{"version":3,"file":"ng-devui-dashboard.mjs","sources":["../../devui/dashboard/grid-stack.config.ts","../../devui/dashboard/grid-stack.service.ts","../../devui/dashboard/polyfill.ts","../../devui/dashboard/widget/widget.component.ts","../../devui/dashboard/widget/widget.component.html","../../devui/dashboard/dashboard.component.ts","../../devui/dashboard/dashboard.component.html","../../devui/dashboard/widget-library/library-panel.directive.ts","../../devui/dashboard/widget-library/library-trash.directive.ts","../../devui/dashboard/widget-library/library-widget.directive.ts","../../devui/dashboard/dashboard.module.ts","../../devui/dashboard/ng-devui-dashboard.ts"],"sourcesContent":["import { GridStackNode, GridStackOptions } from 'gridstack';\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n  window.navigator.userAgent\n);\nconst dragDropOption = {\n  alwaysShowResizeHandle: isMobile,\n  resizable: {\n    autoHide: !isMobile,\n    handles: 'se'\n  },\n  acceptWidgets: '.grid-stack-new-item',\n  dragIn: '.grid-stack-new-item',  // class that can be dragged from outside\n  dragInOptions: { revert: 'invalid', scroll: true, appendTo: 'body', helper: 'clone' },\n  removable: '.grid-stack-library-trash', // drag-out delete class\n  removeTimeout: 10,\n};\nconst displayOption = {\n  column: 12,\n  cellHeight: 160,\n  margin: 8,\n  float: true,\n};\nexport const DashBoardGridStackDefaultOption: GridStackOptions = {\n  ...displayOption,\n  ...dragDropOption,\n  disableDrag: false,\n  disableResize: false,\n  animate: true\n};\nexport interface GridStackNodeCompatibleWithV2 {\n  x?: number;\n  y?: number;\n  width?: number;\n  height?: number;\n}\n\nexport interface GridStackNodeCompatible extends GridStackNode, GridStackNodeCompatibleWithV2 {}\n","import { Injectable, isDevMode } from '@angular/core';\r\nimport { DDGridStack, GridItemHTMLElement, GridStack, GridStackNode, Utils } from 'gridstack';\r\nimport { DDElement } from 'gridstack/dist/dd-element';\r\nimport { DashboardComponent } from './dashboard.component';\r\nimport { DashboardLibraryTrashDirective } from './widget-library/library-trash.directive';\r\nimport { DashboardLibraryWidgetDirective } from './widget-library/library-widget.directive';\r\n@Injectable()\r\nexport class GridStackService {\r\n  gridStack: GridStack;\r\n  dragInWidget: DashboardLibraryWidgetDirective;\r\n  lastColumn: number;\r\n  lastStyleSheet: CSSStyleSheet;\r\n\r\n  getDD() {\r\n    return DDGridStack.get() as DDGridStack;\r\n  }\r\n\r\n  static cleanDragIn(el: HTMLElement) {\r\n    if (el.classList.contains('ui-draggable')) {\r\n      (DDGridStack.get() as DDGridStack).draggable(el, 'destroy');\r\n    }\r\n  }\r\n  static isDraggable(el: HTMLElement) {\r\n    return Boolean(el.classList.contains('ui-draggable'));\r\n  }\r\n  static isDroppable(el: HTMLElement) {\r\n    return Boolean(el.classList.contains('ui-droppable'));\r\n  }\r\n  static enableDrag(el: HTMLElement) {\r\n    if (!GridStackService.isDraggable(el)) {\r\n      return;\r\n    }\r\n    (DDGridStack.get() as DDGridStack).draggable(el, 'enable');\r\n  }\r\n  static disableDrag(el: HTMLElement) {\r\n    if (!GridStackService.isDraggable(el)) {\r\n      return;\r\n    }\r\n    (DDGridStack.get() as DDGridStack).draggable(el, 'disable');\r\n  }\r\n  static enableDrop(el: HTMLElement) {\r\n    if (!GridStackService.isDroppable(el)) {\r\n      return;\r\n    }\r\n    (DDGridStack.get() as DDGridStack).droppable(el, 'enable');\r\n  }\r\n  static disableDrop(el: HTMLElement) {\r\n    if (!GridStackService.isDroppable(el)) {\r\n      return;\r\n    }\r\n    (DDGridStack.get() as DDGridStack).droppable(el, 'disable');\r\n  }\r\n  _itemRemoving = (el: GridItemHTMLElement, remove: boolean) => {\r\n    const node = el ? el.gridstackNode : undefined;\r\n    if (!node || !node.grid) {\r\n      return;\r\n    }\r\n    remove ? ((node as any)._isAboutToRemove = true) : delete (node as any)._isAboutToRemove;\r\n    remove ? el.classList.add('grid-stack-item-removing') : el.classList.remove('grid-stack-item-removing');\r\n  };\r\n  resetAcceptWidget(dashboard: DashboardComponent) {\r\n    if (!this.gridStack) {\r\n      if (isDevMode()) {\r\n        console.warn('call resetAcceptWidget after gridStack init');\r\n      }\r\n      return;\r\n    }\r\n    if (this.gridStack.opts.staticGrid || !this.gridStack.opts.acceptWidgets) {\r\n      return;\r\n    }\r\n    if (!this.getDD().isDroppable(this.gridStack.el)) {\r\n      const that = this.gridStack;\r\n      this.getDD().droppable(that.el, {\r\n        accept: (el: GridItemHTMLElement) => {\r\n          const node: GridStackNode = el.gridstackNode;\r\n          // set accept drop to true on ourself (which we ignore) so we don't get \"can't drop\" icon in HTML5 mode while moving\r\n          if (node && node.grid === that) {\r\n            return true;\r\n          }\r\n          if (!that.opts.acceptWidgets) {\r\n            return false;\r\n          }\r\n          // check for accept method or class matching\r\n          let canAccept = true;\r\n          if (typeof that.opts.acceptWidgets === 'function') {\r\n            canAccept = that.opts.acceptWidgets(el);\r\n          } else {\r\n            const selector = that.opts.acceptWidgets === true ? '.grid-stack-item' : (that.opts.acceptWidgets as string);\r\n            canAccept = el.matches(selector);\r\n          }\r\n          // finally check to make sure we actually have space left #1571\r\n          if (canAccept && node && that.opts.maxRow) {\r\n            const n = { w: node.w, h: node.h, minW: node.minW, minH: node.minH }; // only width/height matters and autoPosition\r\n            canAccept = that.engine.willItFit(n);\r\n          }\r\n          return canAccept;\r\n        },\r\n      });\r\n    }\r\n    this.getDD()\r\n      .off(this.gridStack.el, 'dropout')\r\n      .on(this.gridStack.el, 'dropout', (event, el: GridItemHTMLElement, helper) => {\r\n        // 覆盖这个方法是因为 float模式下 dropout影响了原来的布局\r\n        const that: any = this.gridStack;\r\n        const node = el.gridstackNode;\r\n        if (!node.grid || node.grid === that) {\r\n          that._leave(el, helper);\r\n        }\r\n        this.getDD().off(el, 'drag');\r\n        return false;\r\n      })\r\n      .off(this.gridStack.el, 'drop')\r\n      .on(this.gridStack.el, 'drop', (event, el: GridItemHTMLElement, helper: GridItemHTMLElement) => {\r\n        // 覆盖这个方法是因为 drop的情况不想让它放进去而是只发射通知\r\n        const that: any = this.gridStack;\r\n\r\n        const node: GridStackNode = el.gridstackNode;\r\n        if (node && node.grid === that && !(node as any)._isExternal) {\r\n          return false;\r\n        }\r\n\r\n        const wasAdded = !!that.placeholder.parentElement;\r\n        that.placeholder.remove();\r\n\r\n        const origNode = (el as any)._gridstackNodeOrig;\r\n        delete (el as any)._gridstackNodeOrig;\r\n\r\n        if (!node) {\r\n          return false;\r\n        }\r\n        if (wasAdded) {\r\n          that.engine.cleanupNode(node); // 好像没用\r\n          node.grid = that;\r\n        }\r\n\r\n        if (helper !== el) {\r\n          helper.remove();\r\n          el.gridstackNode = origNode; // original item (left behind) is re-stored to pre dragging as the node now has drop info\r\n        } else {\r\n          Utils.removePositioningStyles(el);\r\n        }\r\n\r\n        this.getDD().off(el, 'drag');\r\n        that.engine.removeNode(node);\r\n\r\n        that._updateContainerHeight();\r\n\r\n        dashboard.handleDragInNode(node, origNode, this.dragInWidget);\r\n      });\r\n  }\r\n  resetRemoveDrop(dashboard: DashboardComponent) {\r\n    if (!this.gridStack) {\r\n      if (isDevMode()) {\r\n        console.warn('call resetDragDrop after gridStack init');\r\n      }\r\n      return;\r\n    }\r\n    if (!(!this.gridStack.opts.staticGrid && typeof this.gridStack.opts.removable === 'string')) {\r\n      return;\r\n    }\r\n    const trashZone = document.querySelector(this.gridStack.opts.removable) as HTMLElement;\r\n    if (!trashZone) {\r\n      return;\r\n    }\r\n    if (this.getDD().isDroppable(trashZone)) {\r\n      // 清理掉了dropover和dropout 直接重新绑定对应的逻辑\r\n      this.getDD().off(trashZone, 'dropover').off(trashZone, 'dropout');\r\n    }\r\n  }\r\n  /* 设置新的可拖入的widget */\r\n  setupDragIn(\r\n    el: HTMLElement,\r\n    widget: DashboardLibraryWidgetDirective,\r\n    helper?: ((event: any) => HTMLElement) | string,\r\n    notify?: (eventType: string) => (...args: any) => void\r\n  ) {\r\n    const _ddElement = DDElement.init(el);\r\n    _ddElement.setupDraggable({\r\n      ...widget.targetDashboard.finalOption.dragInOptions,\r\n      ...{ helper: helper || widget.targetDashboard.finalOption.dragInOptions.helper, handle: this.gridStack.opts.handle },\r\n      ...{\r\n        start: () => {\r\n          this.dragInWidget = widget;\r\n          if (notify) {\r\n            notify('dragStart')();\r\n          }\r\n        },\r\n        stop: () => {\r\n          // TODO: 升级gridstack@6.0.0后drop内dragInWidget一直为undefined ,因此删掉了 this.dragInWidget = undefined;\r\n          if (notify) {\r\n            notify('dragStop')();\r\n          }\r\n        },\r\n      },\r\n    });\r\n  }\r\n  destroyDragIn(el: HTMLElement) {\r\n    this.getDD().draggable(el, 'destroy');\r\n  }\r\n\r\n  /* 设置自定义的回收站 */\r\n  setupRemoveDropArea(trashZone: HTMLElement, dashboard: DashboardComponent, trash?: DashboardLibraryTrashDirective) {\r\n    if (!this.gridStack) {\r\n      if (isDevMode()) {\r\n        console.warn('call setupRemoveDropArea after gridStack init');\r\n      }\r\n      return;\r\n    }\r\n    const trashEl = trashZone;\r\n    this.getDD()\r\n      .droppable(trashEl, this.gridStack.opts.removableOptions)\r\n      .on(trashEl, 'dropover', (event, el) => this._itemRemoving(el, true))\r\n      .on(trashEl, 'dropout', (event, el) => this._itemRemoving(el, false));\r\n  }\r\n\r\n  /* 清理自定义的回收站 */\r\n  destroyRemoveDropAreas(trashZone: HTMLElement) {\r\n    if (!this.gridStack) {\r\n      console.warn('call destroyRemoveDropAreas after gridStack init');\r\n      return;\r\n    }\r\n    const that = this.gridStack;\r\n    if (!this.getDD().isDroppable(trashZone)) {\r\n      return;\r\n    }\r\n    this.getDD().off(trashZone, 'dropover').off(trashZone, 'dropout').off(trashZone, 'drop');\r\n  }\r\n\r\n  // 设置背景\r\n  updateBackgroundGridBlock() {\r\n    if (this.gridStack) {\r\n      if (!this.lastStyleSheet) {\r\n        this.lastStyleSheet = Utils.createStylesheet(\r\n          `d-dashboard-${(this.gridStack.opts as any)._styleSheetClass}`,\r\n          this.gridStack.el.parentElement\r\n        );\r\n      } else {\r\n        this.lastStyleSheet.removeRule(0);\r\n      }\r\n      const column = this.gridStack.opts.column as number;\r\n      const margin = this.gridStack.opts.margin as number;\r\n      const marginUnit = this.gridStack.opts.marginUnit;\r\n      const cellHeight = this.gridStack.opts.cellHeight as number;\r\n      const cellHeightUnit = this.gridStack.opts.cellHeightUnit;\r\n      const prefix = `.${(this.gridStack.opts as any)._styleSheetClass}`;\r\n      if (!this.lastStyleSheet) {\r\n        return;\r\n      }\r\n\r\n      Utils.addCSSRule(\r\n        this.lastStyleSheet,\r\n        `${prefix}.d-dashboard-show-grid-block::before`,\r\n        `\r\n      background-image:\r\n        linear-gradient(#fff 0, #fff ${margin * 2}${marginUnit},\r\n          transparent ${margin * 2}${marginUnit}, transparent 100%),\r\n        linear-gradient(90deg, #fff 0, #fff ${margin * 2}${marginUnit},\r\n          transparent ${margin * 2}${marginUnit}, transparent 100%),\r\n        linear-gradient(#f8f8f8 0 , #f8f8f8 100%);\r\n      background-image:\r\n        linear-gradient(var(--devui-base-bg, #fff) 0, var(--devui-base-bg, #fff) ${margin * 2}${marginUnit},\r\n          transparent ${margin * 2}${marginUnit}, transparent 100%),\r\n        linear-gradient(90deg, var(--devui-base-bg, #fff) 0, var(--devui-base-bg, #fff) ${margin * 2}${marginUnit},\r\n          transparent ${margin * 2}${marginUnit}, transparent 100%),\r\n        linear-gradient(var(--devui-area, #f8f8f8) 0 , var(--devui-area, #f8f8f8) 100%);\r\n      background-size: ${100 / column}% ${cellHeight}${cellHeightUnit};\r\n      background-position: -${margin}${marginUnit} -${margin}${marginUnit};\r\n      `\r\n      );\r\n      this.lastColumn = column;\r\n    }\r\n  }\r\n\r\n  setBackgroundGridBlockIfColumnChange() {\r\n    if (this.gridStack?.opts?.column !== this.lastColumn) {\r\n      this.updateBackgroundGridBlock();\r\n    }\r\n  }\r\n\r\n  removeBackgroundGridBlockStyleSheet() {\r\n    if (this.lastStyleSheet) {\r\n      Utils.removeStylesheet(`d-dashboard-${(this.gridStack.opts as any)._class}`);\r\n    }\r\n  }\r\n}\r\n","/* eslint-disable */\r\n// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md\r\nexport default ((...rest) => {\r\n  const arr = rest[0];\r\n  arr.forEach((item) => {\r\n    if (Object.prototype.hasOwnProperty.call(item, 'append')) {\r\n      return;\r\n    }\r\n    Object.defineProperty(item, 'append', {\r\n      configurable: true,\r\n      enumerable: true,\r\n      writable: true,\r\n      value: function append() {\r\n        const argArr = [...rest];\r\n        const docFrag = document.createDocumentFragment();\r\n\r\n        argArr.forEach((argItem) => {\r\n          const isNode = argItem instanceof Node;\r\n          docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\r\n        });\r\n\r\n        this.appendChild(docFrag);\r\n      },\r\n    });\r\n  });\r\n})([Element.prototype, Document.prototype, DocumentFragment.prototype]);\r\n","import {\n  Component,\n  ElementRef,\n  Input,\n  ChangeDetectionStrategy,\n  HostBinding,\n  EventEmitter,\n  Output,\n  OnChanges,\n  SimpleChanges,\n  Optional,\n  AfterViewInit,\n  OnDestroy,\n} from '@angular/core';\nimport { GridStackNode, GridStackWidget } from 'gridstack';\nimport { GridStackNodeCompatible } from '../grid-stack.config';\nimport { GridStackService } from '../grid-stack.service';\n\nexport type DashboardWidget = GridStackWidget & {\n  widgetData?: any;\n  [prop: string]: any;\n};\n\n@Component({\n  selector: 'd-dashboard-widget',\n  templateUrl: './widget.component.html',\n  styleUrls: ['./widget.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'dDashboardWidget',\n  preserveWhitespaces: false\n})\nexport class DashboardWidgetComponent implements GridStackNode, OnChanges, AfterViewInit, OnDestroy {\n  static autoNumberedId = 0;\n  @HostBinding('attr.gs-x')\n  @Input()\n  x: number;\n  @Output() xChange = new EventEmitter<number>();\n\n  @HostBinding('attr.gs-y')\n  @Input()\n  y: number;\n  @Output() yChange = new EventEmitter<number>();\n\n  @HostBinding('attr.gs-w')\n  @Input()\n  width: number;\n  @Output() widthChange = new EventEmitter<number>();\n\n  @HostBinding('attr.gs-h')\n  @Input()\n  height: number;\n  @Output() heightChange = new EventEmitter<number>();\n\n  @HostBinding('attr.gs-id')\n  @Input()\n  id: string;\n\n  @HostBinding('attr.gs-max-w')\n  @Input()\n  maxWidth: number;\n\n  @HostBinding('attr.gs-max-h')\n  @Input()\n  maxHeight: number;\n\n  @HostBinding('attr.gs-min-w')\n  @Input()\n  minWidth: number;\n\n  @HostBinding('attr.gs-min-h')\n  @Input()\n  minHeight: number;\n\n  @HostBinding('attr.gs-no-resize')\n  @Input()\n  noResize: boolean;\n\n  @HostBinding('attr.gs-no-move')\n  @Input()\n  noMove: boolean;\n\n  @HostBinding('attr.gs-auto-position')\n  @Input()\n  autoPosition: boolean; // 仅初始化有效，默认为false\n\n  @HostBinding('attr.gs-locked')\n  @Input()\n  locked: boolean;\n\n  @Input() widgetData;\n\n  @Output() widgetInit = new EventEmitter(true);\n  @Output() widgetResize = new EventEmitter<{ width: number; height: number } | null>(true);\n  @Output() widgetDestroy = new EventEmitter();\n\n  @HostBinding('class.grid-stack-item')\n  hostBinding = true;\n\n  generatedId: string = (DashboardWidgetComponent.autoNumberedId++).toString();\n\n  constructor(public elem: ElementRef, @Optional() private gridStackService: GridStackService) {}\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (this.gridStackService && this.gridStackService.gridStack) {\n      if (changes.x || changes.y || changes.width || changes.height) {\n        this.gridStackService.gridStack.update(this.elem.nativeElement, { x: this.x, y: this.y, w: this.width, h: this.height });\n      }\n      if (changes.noResize) {\n        this.gridStackService.gridStack.resizable(this.elem.nativeElement, !this.noResize);\n      }\n      if (changes.noMove) {\n        this.gridStackService.gridStack.movable(this.elem.nativeElement, !this.noMove);\n      }\n      if (changes.locked) {\n        this.gridStackService.gridStack.update(this.elem.nativeElement, { locked: !!this.locked });\n      }\n      if (changes.maxWidth) {\n        this.gridStackService.gridStack.update(this.elem.nativeElement, { maxW: this.maxWidth });\n      }\n      if (changes.maxHeight) {\n        this.gridStackService.gridStack.update(this.elem.nativeElement, { maxH: this.maxHeight });\n      }\n      if (changes.minWidth) {\n        this.gridStackService.gridStack.update(this.elem.nativeElement, { minW: this.minWidth });\n      }\n      if (changes.minHeight) {\n        this.gridStackService.gridStack.update(this.elem.nativeElement, { minH: this.minHeight });\n      }\n    }\n  }\n\n  ngAfterViewInit() {\n    this.widgetInit.emit();\n  }\n  ngOnDestroy() {\n    this.widgetDestroy.emit();\n  }\n\n  handleChange({ x, y, width, height }: GridStackNodeCompatible) {\n    const change = { x, y, width, height};\n    const beforeChange = { width: this.width, height: this.height };\n    Object.keys(change).forEach((key) => {\n      if (change[key] !== this[key]) {\n        this[key] = change[key];\n        const eventEmitter = this[key + 'Change'] as EventEmitter<number>;\n        if (eventEmitter) {\n          eventEmitter.emit(change[key]);\n        }\n      }\n    });\n    if (change.width !== beforeChange.width || change.height !== beforeChange.height) {\n      this.widgetResize.emit({ width, height});\n    }\n  }\n}\n","<div class=\"grid-stack-item-content d-dashboard-widget devui-scrollbar\">\n  <ng-content></ng-content>\n</div>\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ContentChildren,\r\n  ElementRef,\r\n  EventEmitter,\r\n  HostBinding,\r\n  HostListener,\r\n  Input,\r\n  isDevMode,\r\n  OnChanges,\r\n  OnDestroy,\r\n  Output,\r\n  QueryList,\r\n  Renderer2,\r\n  SimpleChanges,\r\n} from '@angular/core';\r\nimport { GridStack, GridStackNode, GridStackOptions } from 'gridstack';\r\nimport { DashBoardGridStackDefaultOption, GridStackNodeCompatible } from './grid-stack.config';\r\nimport { GridStackService } from './grid-stack.service';\r\nimport './polyfill';\r\nimport { DashboardLibraryTrashDirective } from './widget-library/library-trash.directive';\r\nimport { DashboardLibraryWidgetDirective } from './widget-library/library-widget.directive';\r\nimport { DashboardWidgetComponent } from './widget/widget.component';\r\n\r\nexport type DashboardWidgetEvent = Array<{\r\n  widget?: DashboardWidgetComponent; // change, remove\r\n  node?: GridStackNodeCompatible & {\r\n    widgetData?: any; // add\r\n    willItFit?: boolean;\r\n    trashData?: any; // remove\r\n  };\r\n  origNode?: GridStackNodeCompatible;\r\n}>;\r\n\r\n@Component({\r\n  selector: 'd-dashboard',\r\n  templateUrl: './dashboard.component.html',\r\n  styleUrls: ['./dashboard.component.scss'],\r\n  providers: [GridStackService],\r\n  exportAs: 'dDashboard',\r\n  preserveWhitespaces: false,\r\n})\r\nexport class DashboardComponent implements OnChanges, AfterViewInit, OnDestroy {\r\n  public get gridStack() {\r\n    return this.gridStackService?.gridStack;\r\n  }\r\n  @ContentChildren(DashboardWidgetComponent, { descendants: true }) widgetComponents: QueryList<DashboardWidgetComponent>;\r\n  @Input() initOptions: GridStackOptions;\r\n\r\n  /* move resize setting*/\r\n  @Input() static: boolean;\r\n  @Input() float: boolean;\r\n  @Input() animate: boolean;\r\n  @Input() widgetMoveable: boolean;\r\n  @Input() widgetResizable: boolean;\r\n\r\n  @HostBinding('class.d-dashboard-show-grid-block')\r\n  @Input()\r\n  showGridBlock = false;\r\n\r\n  /* layout setting */\r\n  @Input() column: number;\r\n  @HostBinding('attr.gs-min-row')\r\n  @Input()\r\n  minRow: number;\r\n  @HostBinding('attr.gs-max-row')\r\n  @Input()\r\n  maxRow: number;\r\n  @Input() cellHeight: number | string;\r\n  @Input() margin: number | string;\r\n\r\n  @Output() widgetAdded = new EventEmitter<DashboardWidgetEvent>();\r\n  @Output() widgetChanged = new EventEmitter<DashboardWidgetEvent>();\r\n  @Output() widgetRemoved = new EventEmitter<DashboardWidgetEvent>();\r\n  @Output() dashboardInit = new EventEmitter();\r\n\r\n  finalOption: GridStackOptions;\r\n  renderedWidgets: Array<DashboardWidgetComponent>;\r\n\r\n  @HostBinding('class.grid-stack') addClass = true;\r\n\r\n  constructor(\r\n    public el: ElementRef,\r\n    private cdr: ChangeDetectorRef,\r\n    private renderer: Renderer2,\r\n    public gridStackService: GridStackService\r\n  ) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (this.gridStack) {\r\n      if (changes.static) {\r\n        this.gridStack.setStatic(!!this.static);\r\n        if (!this.static) {\r\n          this.gridStackService.resetAcceptWidget(this);\r\n        }\r\n      }\r\n      if (changes.float) {\r\n        this.gridStack.float(!!this.float);\r\n      }\r\n      if (changes.animate) {\r\n        this.gridStack.setAnimation(!!this.animate);\r\n      }\r\n      if (changes.widgetMoveable) {\r\n        this.gridStack.enableMove(!this.static && this.widgetMoveable);\r\n      }\r\n      if (changes.widgetResizable) {\r\n        this.gridStack.enableResize(!this.static && this.widgetResizable);\r\n      }\r\n      if (changes.column && this.column !== undefined) {\r\n        this.gridStack.column(this.column);\r\n        this.gridStackService.updateBackgroundGridBlock();\r\n      }\r\n      if (changes.maxRow) {\r\n        this.gridStack.engine.maxRow = this.maxRow || 0;\r\n      }\r\n      if (changes.cellHeight) {\r\n        this.gridStack.cellHeight(this.cellHeight, true);\r\n        this.gridStackService.updateBackgroundGridBlock();\r\n      }\r\n      if (changes.margin) {\r\n        this.gridStack.margin(this.margin);\r\n        this.gridStackService.updateBackgroundGridBlock();\r\n      }\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.finalOption = { ...DashBoardGridStackDefaultOption, ...this.initOptions, ...this.getTransformOption() };\r\n    this.renderer.addClass(this.el.nativeElement, 'grid-stack-' + this.finalOption.column);\r\n    this.gridStackService.gridStack = GridStack.init(this.finalOption, this.el.nativeElement);\r\n    this.gridStackService.resetAcceptWidget(this);\r\n    this.gridStackService.resetRemoveDrop(this);\r\n    this.gridStackService.updateBackgroundGridBlock();\r\n\r\n    this.renderedWidgets = this.widgetComponents.toArray();\r\n    setTimeout(() => {\r\n      this.renderedWidgets.forEach((widget) =>\r\n        widget.handleChange(this.addGridStackNodeCompatible(widget.elem.nativeElement.gridstackNode))\r\n      );\r\n    });\r\n    this.widgetComponents.changes.subscribe((changes) => {\r\n      this.handleItemChanges(this.renderedWidgets, this.widgetComponents.toArray());\r\n      this.renderedWidgets = this.widgetComponents.toArray();\r\n    });\r\n    this.dashboardInit.emit();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.gridStackService && this.gridStackService.gridStack) {\r\n      this.gridStackService.removeBackgroundGridBlockStyleSheet();\r\n      this.gridStackService.gridStack.destroy();\r\n    }\r\n  }\r\n\r\n  private getTransformOption() {\r\n    const option = {};\r\n    const getOppositeKeepUndefined = (v) => {\r\n      if (v === undefined) {\r\n        return undefined;\r\n      }\r\n      return !v;\r\n    };\r\n\r\n    Object.assign(option, {\r\n      column: this.column,\r\n      cellHeight: this.cellHeight,\r\n      margin: this.margin,\r\n      minRow: this.minRow,\r\n      maxRow: this.maxRow,\r\n      staticGrid: this.static,\r\n      float: this.float,\r\n      animate: this.animate,\r\n      disableDrag: getOppositeKeepUndefined(this.widgetMoveable),\r\n      disableResize: getOppositeKeepUndefined(this.widgetResizable),\r\n    });\r\n\r\n    Object.keys(option).forEach((k) => {\r\n      if (option[k] === undefined) {\r\n        delete option[k];\r\n      }\r\n    });\r\n    return option;\r\n  }\r\n\r\n  private handleItemChanges(renderedItems: DashboardWidgetComponent[], items: DashboardWidgetComponent[]): void {\r\n    const itemsToAdd = items.filter((i) => !renderedItems.some((w) => w === i));\r\n    const itemsToRemove = renderedItems.filter((w) => !items.some((i) => w === i));\r\n    this.gridStack.batchUpdate();\r\n    itemsToAdd.forEach((i) => this.gridStack.addWidget(i.elem.nativeElement));\r\n    itemsToRemove.forEach((i) => this.gridStack.removeWidget(i.elem.nativeElement));\r\n    this.gridStack.commit();\r\n  }\r\n\r\n  public batchUpdate() {\r\n    this.cdr.detach();\r\n  }\r\n  public commit() {\r\n    this.cdr.detectChanges();\r\n    this.cdr.reattach();\r\n  }\r\n\r\n  @HostListener('added', ['$event', '$event.detail'])\r\n  public addedHandler = (event, items: GridStackNode[]) => {\r\n    setTimeout(() => {\r\n      const all = items.map((item) => ({\r\n        node: this.addGridStackNodeCompatible(item),\r\n        widget: this.widgetComponents.toArray().find((widget) => item.el === widget.elem.nativeElement),\r\n      }));\r\n\r\n      // 处理ContentChildren数据推送进来的\r\n      all\r\n        .filter((wd) => wd.widget)\r\n        .forEach(({ node, widget }) => {\r\n          widget.handleChange(node);\r\n        });\r\n    });\r\n  };\r\n\r\n  @HostListener('change', ['$event', '$event.detail'])\r\n  public changeHandler = (event, items: GridStackNode[]) => {\r\n    if (!this.gridStack) {\r\n      return;\r\n    }\r\n    if (!(this.gridStack as any)._oneColumnMode) {\r\n      setTimeout(() => {\r\n        const all = items.map((item) => ({\r\n          node: this.addGridStackNodeCompatible(item),\r\n          widget: this.renderedWidgets.find((widget) => item.el === widget.elem.nativeElement),\r\n        }));\r\n        // 处理UI操作调整大小/调整位置\r\n        all\r\n          .filter((w) => w.widget)\r\n          .forEach(({ node, widget }) => {\r\n            widget.handleChange(node);\r\n          });\r\n        if (isDevMode() && all.some((w) => !w.widget)) {\r\n          console.warn('remove: something wrong, not handled by dashboard');\r\n        }\r\n        this.widgetChanged.emit(all.filter((w) => w.widget));\r\n      });\r\n    }\r\n    if (this.showGridBlock) {\r\n      this.gridStackService.setBackgroundGridBlockIfColumnChange();\r\n    }\r\n  };\r\n\r\n  @HostListener('removed', ['$event', '$event.detail'])\r\n  public removedHandler = (event, items: GridStackNode[]) => {\r\n    const all = items.map((item) => ({\r\n      node: this.addGridStackNodeCompatible(item),\r\n      widget: this.renderedWidgets.find((widget) => item.el === widget.elem.nativeElement),\r\n    }));\r\n    // 不做处理仅提醒部分组件的移除不能被dashboard所理解\r\n    if (isDevMode() && all.some((wd) => !wd.widget)) {\r\n      console.warn('remove: something wrong, not handled by dashboard');\r\n    }\r\n  };\r\n\r\n  handleDragInNode(node: GridStackNode, origNode: GridStackNode, widget: DashboardLibraryWidgetDirective) {\r\n    this.widgetAdded.emit([\r\n      {\r\n        node: {\r\n          ...this.addGridStackNodeCompatible(node),\r\n          widgetData: widget.widgetData,\r\n          willItFit: this.willItFit(node.x, node.y, widget.width, widget.height),\r\n        },\r\n        // origNode: this.addGridStackNodeCompatible(origNode),\r\n      },\r\n    ]);\r\n  }\r\n\r\n  handleDragOutNode(node: GridStackNode, dropArea: DashboardLibraryTrashDirective) {\r\n    this.widgetRemoved.emit([\r\n      {\r\n        widget: this.renderedWidgets.find((widget) => node.el === widget.elem.nativeElement),\r\n        node: {\r\n          ...this.addGridStackNodeCompatible(node),\r\n          trashData: dropArea.trashData,\r\n        },\r\n      },\r\n    ]);\r\n  }\r\n\r\n  private addGridStackNodeCompatible(item: GridStackNode): GridStackNodeCompatible {\r\n    return {\r\n      ...item,\r\n      ...{\r\n        x: item.x,\r\n        y: item.y,\r\n        width: item.w,\r\n        height: item.h,\r\n      },\r\n    };\r\n  }\r\n\r\n  public getCurrentColumn() {\r\n    if (!this.gridStack) {\r\n      return null;\r\n    }\r\n    return this.gridStack.getColumn();\r\n  }\r\n  public getCurrentRow() {\r\n    if (!this.gridStack) {\r\n      return null;\r\n    }\r\n    return this.gridStack.getRow();\r\n  }\r\n  public getCurrentColumnWidth() {\r\n    if (!this.gridStack) {\r\n      return null;\r\n    }\r\n    return this.gridStack.cellWidth();\r\n  }\r\n  public getCurrentCellHeight() {\r\n    if (!this.gridStack) {\r\n      return null;\r\n    }\r\n    return this.gridStack.getCellHeight();\r\n  }\r\n  public getCurrentMargin() {\r\n    if (!this.gridStack) {\r\n      return null;\r\n    }\r\n    return this.gridStack.getMargin();\r\n  }\r\n\r\n  public compact() {\r\n    if (!this.gridStack) {\r\n      return;\r\n    }\r\n    this.gridStack.compact();\r\n  }\r\n\r\n  public willItFit(x: number, y: number, width: number, height: number, autoPosition = false): boolean {\r\n    if (!this.gridStack) {\r\n      return;\r\n    }\r\n    return this.gridStack.willItFit({ x, y, w: width, h: height, autoPosition });\r\n  }\r\n}\r\n","<ng-content></ng-content>\n","import { Directive, EventEmitter, Output } from '@angular/core';\n\n@Directive({\n  selector: '[dDashboardLibraryPanel]',\n})\nexport class DashboardLibraryPanelDirective {\n  @Output() widgetDragStart = new EventEmitter();\n  @Output() widgetDragStop = new EventEmitter();\n  dragStartHandler() {\n    this.widgetDragStart.emit();\n  }\n  dragStopHandler() {\n    this.widgetDragStop.emit();\n  }\n}\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { DashboardComponent } from '../dashboard.component';\nimport { GridStackService } from '../grid-stack.service';\n\n@Directive({\n  selector: '[dDashboardLibraryTrash]',\n})\nexport class DashboardLibraryTrashDirective implements OnChanges, OnDestroy, AfterViewInit {\n  @Input() targetDashboard: DashboardComponent;\n  @Input() trashData;\n  @Input() dropDisabled = false;\n\n  @HostBinding('class.grid-stack-library-trash')\n  hostBinding = true;\n\n  isSetup = false;\n\n  get gridStackService() {\n    return this.targetDashboard?.gridStackService;\n  }\n\n  constructor (private el: ElementRef) {}\n  ngAfterViewInit() {\n    this.setup();\n  }\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.targetDashBoard) {\n      this.setup();\n    }\n    if (changes.dropDisabled) {\n      if (this.dropDisabled) {\n        GridStackService.disableDrop(this.el.nativeElement);\n      } else {\n        GridStackService.enableDrop(this.el.nativeElement);\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.gridStackService && this.isSetup) {\n      this.gridStackService.destroyRemoveDropAreas(this.el.nativeElement);\n    }\n  }\n\n  setup() {\n    if (this.targetDashboard && !this.isSetup) {\n      setTimeout(() => {\n        if (this.gridStackService) {\n          this.gridStackService.setupRemoveDropArea(this.el.nativeElement, this.targetDashboard, this);\n          if (this.dropDisabled) {\n            GridStackService.disableDrop(this.el.nativeElement);\n          }\n        }\n      });\n      this.isSetup = true;\n    }\n  }\n}\n","import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport {\n  AfterViewInit, ApplicationRef, ComponentFactoryResolver, Directive, ElementRef, HostBinding, Injector,\n  Input, OnChanges, OnDestroy, Optional, SimpleChanges, TemplateRef, ViewContainerRef\n} from '@angular/core';\nimport { DashboardComponent } from '../dashboard.component';\nimport { GridStackService } from '../grid-stack.service';\nimport { DashboardLibraryPanelDirective } from '../widget-library/library-panel.directive';\n\n@Directive({\n  selector: '[dDashboardLibraryWidget]',\n})\nexport class DashboardLibraryWidgetDirective implements OnChanges, AfterViewInit, OnDestroy {\n  @HostBinding('attr.gs-w')\n  @Input()\n  width: number;\n\n  @HostBinding('attr.gs-h')\n  @Input()\n  height: number;\n\n  @Input() widgetData;\n\n  @Input() dragMode: 'copy' | 'move' = 'copy';\n  @Input() dragTemplate: TemplateRef<any>;\n  @Input() dragDisabled = false;\n  @Input() dragCopyStyle = false;\n\n  @HostBinding('class.grid-stack-new-item')\n  hostBinding = true;\n\n  @HostBinding('class.grid-stack-item-content')\n  hostBindingHandler = true;\n\n  @HostBinding('attr.gs-instance')\n  gridStackId;\n\n  @Input() targetDashboard: DashboardComponent;\n  isSetup = false;\n  get gridStackService(): GridStackService {\n    return this.targetDashboard?.gridStackService;\n  }\n  constructor(\n    private el: ElementRef,\n    private cfr: ComponentFactoryResolver,\n    private appRef: ApplicationRef,\n    private injector: Injector,\n    private vcf: ViewContainerRef,\n    @Optional() private libraryPanel: DashboardLibraryPanelDirective\n  ) { }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.targetDashboard) {\n      this.setup();\n    }\n    if (changes.dragDisabled) {\n      if (this.dragDisabled) {\n        GridStackService.disableDrag(this.el.nativeElement);\n      } else {\n        GridStackService.enableDrag(this.el.nativeElement);\n      }\n    }\n  }\n  ngAfterViewInit() {\n    if (!this.isSetup) {\n      GridStackService.cleanDragIn(this.el.nativeElement);\n      this.setup();\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.gridStackService) {\n      this.gridStackService.destroyDragIn(this.el.nativeElement);\n    }\n  }\n\n  setup() {\n    if (this.targetDashboard && !this.isSetup) {\n      setTimeout(() => {\n        if (this.gridStackService && this.gridStackService.gridStack) {\n          GridStackService.cleanDragIn(this.el.nativeElement);\n          this.gridStackService.setupDragIn(this.el.nativeElement, this, this.helper, this.notify);\n          if (this.dragDisabled) {\n            GridStackService.disableDrag(this.el.nativeElement);\n          }\n        }\n      });\n      this.isSetup = true;\n    }\n  }\n  notify = (event: 'dragStart' | 'dragStop' | string) => {\n    if (this.libraryPanel) {\n      if (event === 'dragStart') {\n        return (...args) => {\n          this.libraryPanel.dragStartHandler();\n        };\n      }\n      if (event === 'dragStop') {\n        return (...args) => {\n          this.libraryPanel.dragStopHandler();\n        };\n      }\n    } else {\n      return () => { };\n    }\n  };\n\n  helper = (event) => {\n    if (this.dragMode === 'move') {\n      // grid stack 有高度变化的bug， 暂时就不解决了\n      return this.el.nativeElement;\n    }\n    if (!this.dragTemplate) {\n      const el = this.el.nativeElement.cloneNode(true);\n      el.style.zIndex = '1060';\n      this.copyCanvas(this.el.nativeElement, el);\n      if (this.dragCopyStyle) {\n        this.copyStyle(this.el.nativeElement, el);\n      }\n      return el;\n    } else {\n      const el = document.createElement('div');\n      el.classList.add('grid-stack-item-adding-item-template');\n      el.style.zIndex = '1060';\n      if (this.width !== undefined) {\n        el.setAttribute('gs-w', `${this.width}`);\n      }\n      if (this.height !== undefined) {\n        el.setAttribute('gs-h', `${this.height}`);\n      }\n      this.setDragWidthHeight(el);\n      const domPortalOutlet = new DomPortalOutlet(el, this.cfr, this.appRef, this.injector);\n      domPortalOutlet.attachTemplatePortal(\n        new TemplatePortal(this.dragTemplate, this.vcf, {\n          $implicit: this.widgetData,\n          width: this.width,\n          height: this.height,\n        })\n      );\n      const result = el.cloneNode(true);\n      this.copyCanvas(el, result);\n      if (this.dragCopyStyle) {\n        this.copyStyle(el, result);\n      }\n      domPortalOutlet.detach();\n      domPortalOutlet.dispose();\n      return result;\n    }\n  };\n\n  copyCanvas(origin, target) {\n    // 拷贝canvas的内容\n    const originCanvasArr = origin.querySelectorAll('canvas');\n    const targetCanvasArr = target.querySelectorAll('canvas');\n    [].forEach.call(targetCanvasArr, (canvas, index) => {\n      canvas.getContext('2d').drawImage(originCanvasArr[index], 0, 0);\n    });\n  }\n\n  setDragWidthHeight(el) {\n    const columnWidth = this.targetDashboard.getCurrentColumnWidth();\n    const cellHeight = this.targetDashboard.getCurrentCellHeight();\n    const margin = this.targetDashboard.getCurrentMargin();\n    if (this.width) {\n      el.style.width = columnWidth * (this.width || 1) - margin * ((this.width || 1) - 1) + 'px';\n    }\n    if (this.height) {\n      el.style.height = cellHeight * (this.height || 1) - margin * 2 + 'px';\n    }\n  }\n  copyStyle(source, target) {\n    ['id', 'style', 'draggable'].forEach((att) => {\n      target.removeAttribute(att);\n    });\n\n    // copy style (without transitions)\n    const computedStyle = getComputedStyle(source);\n    for (let i = 0; i < computedStyle.length; i++) {\n      const key = computedStyle[i];\n      if (key.indexOf('transition') < 0) {\n        target.style[key] = computedStyle[key];\n      }\n    }\n    target.style.pointerEvents = 'none';\n    // and repeat for all children\n    for (let i = 0; i < source.children.length; i++) {\n      this.copyStyle(source.children[i], target.children[i]);\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DashboardComponent } from './dashboard.component';\nimport { DashboardLibraryPanelDirective } from './widget-library/library-panel.directive';\nimport { DashboardLibraryTrashDirective } from './widget-library/library-trash.directive';\nimport { DashboardLibraryWidgetDirective } from './widget-library/library-widget.directive';\nimport { DashboardWidgetComponent } from './widget/widget.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n  ],\n  exports: [\n    DashboardComponent,\n    DashboardWidgetComponent,\n    DashboardLibraryWidgetDirective,\n    DashboardLibraryTrashDirective,\n    DashboardLibraryPanelDirective,\n  ],\n  declarations: [\n    DashboardComponent,\n    DashboardWidgetComponent,\n    DashboardLibraryWidgetDirective,\n    DashboardLibraryTrashDirective,\n    DashboardLibraryPanelDirective,\n  ]\n})\nexport class DashboardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GridStackService","i1.DashboardLibraryPanelDirective"],"mappings":"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"}