{"version":3,"file":"ng-devui-quadrant-diagram.mjs","sources":["../../devui/quadrant-diagram/quadrant.config.ts","../../devui/quadrant-diagram/quadrant-axis/quadrant-axis.component.ts","../../devui/quadrant-diagram/quadrant-axis/quadrant-axis.component.html","../../devui/quadrant-diagram/quadrant-diagram.service.ts","../../devui/quadrant-diagram/quadrant-label/quadrant-label.component.ts","../../devui/quadrant-diagram/quadrant-label/quadrant-label.component.html","../../devui/quadrant-diagram/quadrant-region/quadrant-region.component.ts","../../devui/quadrant-diagram/quadrant-region/quadrant-region.component.html","../../devui/quadrant-diagram/quadrant-diagram.component.ts","../../devui/quadrant-diagram/quadrant-diagram.component.html","../../devui/quadrant-diagram/quadrant-diagram.module.ts","../../devui/quadrant-diagram/ng-devui-quadrant-diagram.ts"],"sourcesContent":["export const QUADRANT_CONFIGS = [];\nexport const LABEL_SIZE = ['small', 'normal', 'large'];\nexport const DEFAULT_AXIS_CONFIGS = {\n  tickWidth: 10,\n  spaceBetweenLabelsAxis: 20,\n  xAxisLabel: '紧急度',\n  yAxisLabel: '重要度',\n  xAxisRange: {\n    min: 0,\n    max: 100,\n    step: 10\n  },\n  yAxisRange: {\n    min: 0,\n    max: 50,\n    step: 5\n  },\n  originPosition: {\n    left: 30,\n    bottom: 30\n  },\n  axisMargin: 35,\n  xWeight: 1,\n  yWeight: 1\n};\nexport const DEFAULT_QUADRANT_CONFIGS = [\n  { title: '重要紧急' },\n  { title: '重要不紧急' },\n  { title: '不重要不紧急' },\n  { title: '不重要紧急' }\n];\nexport const AXIS_TITLE_SPACE = 15;\nexport const SMALL_LABEL_SIZE_CENTER_POINT = {\n  x: 6, y: 6\n};\nexport const NORMAL_LABEL_SIZE_CENTER_POINT = {\n  x: 45, y: 14\n};\nexport const LARGE_LABEL_SIZE_CENTER_POINT = {\n  x: 60, y: 18\n};\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { ThemeService } from 'ng-devui/theme';\r\nimport { IAxisConfigs, IViewConfigs } from '../quadrant-diagram.type';\r\nimport { AXIS_TITLE_SPACE } from '../quadrant.config';\r\n\r\n@Component({\r\n  selector: 'd-quadrant-axis',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  templateUrl: './quadrant-axis.component.html',\r\n  styleUrls: ['./quadrant-axis.component.scss'],\r\n})\r\nexport class QuadrantDiagramAxisComponent implements OnInit, OnChanges {\r\n  @Input() axisConfigs: IAxisConfigs;\r\n  @Input() view: IViewConfigs;\r\n  @Input() diagramId;\r\n  quadrantAxis: any;\r\n  context: any;\r\n  axisOrigin: any;\r\n  axisTop: number;\r\n  axisRight: number;\r\n  axisWidth: number;\r\n  axisHeight: number;\r\n  yAxisTicksNum: number;\r\n  xAxisTicksNum: number;\r\n  xTickSpacing: number;\r\n  yTickSpacing: number;\r\n  private AXIS_COLOR;\r\n  private AXIS_LABEL_COLOR;\r\n  themeService: ThemeService;\r\n\r\n  constructor(private elementRef: ElementRef) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { axisConfigs, view } = changes;\r\n    if (changes && (axisConfigs || view)) {\r\n      this.resetAxis();\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (typeof window !== 'undefined') {\r\n      this.themeService = (window as any).devuiThemeService;\r\n      if (this.themeService && this.themeService.eventBus) {\r\n        this.themeService.eventBus.add('themeChanged', this.refreshColor);\r\n      }\r\n      this.refreshColor();\r\n    }\r\n  }\r\n\r\n  refreshColor = () => {\r\n    if (this.themeService) {\r\n      this.AXIS_COLOR = this.themeService.currentTheme.data['devui-dividing-line'];\r\n      this.AXIS_LABEL_COLOR = this.themeService.currentTheme.data['devui-aide-text'];\r\n    }\r\n    this.resetAxis();\r\n  };\r\n\r\n  resetAxis() {\r\n    this.initAxisData();\r\n    this.setAxisData();\r\n    this.drawAxis();\r\n    this.drawAxisLabels();\r\n  }\r\n\r\n  initAxisData() {\r\n    this.quadrantAxis = this.elementRef.nativeElement.querySelector('d-quadrant-diagram#' + this.diagramId + ' canvas');\r\n    this.quadrantAxis.width = this.view.width;\r\n    this.quadrantAxis.height = this.view.height;\r\n  }\r\n  setAxisData() {\r\n    this.context = this.quadrantAxis.getContext('2d');\r\n    this.axisOrigin = this.axisConfigs.axisOrigin;\r\n    this.axisTop = this.axisConfigs.axisTop;\r\n    this.axisRight = this.axisConfigs.axisRight;\r\n    this.axisWidth = this.axisConfigs.axisWidth;\r\n    this.axisHeight = this.axisConfigs.axisHeight;\r\n    this.yAxisTicksNum = this.axisConfigs.yAxisTicksNum;\r\n    this.xAxisTicksNum = this.axisConfigs.xAxisTicksNum;\r\n    this.xTickSpacing = this.axisConfigs.xTickSpacing;\r\n    this.yTickSpacing = this.axisConfigs.yTickSpacing;\r\n  }\r\n\r\n  drawAxis() {\r\n    this.context.save();\r\n    this.context.fillStyle = this.AXIS_COLOR;\r\n    this.context.strokeStyle = this.AXIS_COLOR;\r\n    this.drawXAxis();\r\n    this.drawYAxis();\r\n    this.context.lineWidth = 0.5;\r\n    this.drawYAxisTicks();\r\n    this.drawXAxisTicks();\r\n    this.context.restore();\r\n  }\r\n\r\n  drawXAxisTicks() {\r\n    let deltaY;\r\n    for (let i = 1; i < this.xAxisTicksNum; i++) {\r\n      this.context.beginPath();\r\n      // 判断显示长刻度还是短刻度\r\n      if (i % this.axisConfigs.xAxisRange.step === 0) {\r\n        deltaY = this.axisConfigs.tickWidth;\r\n      } else {\r\n        deltaY = this.axisConfigs.tickWidth / 2;\r\n      }\r\n      this.context.moveTo(this.axisOrigin.x + i * this.xTickSpacing, this.axisOrigin.y - deltaY);\r\n      this.context.lineTo(this.axisOrigin.x + i * this.xTickSpacing, this.axisOrigin.y + deltaY);\r\n      this.context.stroke();\r\n    }\r\n  }\r\n\r\n  drawYAxisTicks() {\r\n    let deltaX;\r\n    for (let i = 1; i < this.yAxisTicksNum; i++) {\r\n      this.context.beginPath();\r\n      if (i % this.axisConfigs.yAxisRange.step === 0) {\r\n        deltaX = this.axisConfigs.tickWidth;\r\n      } else {\r\n        deltaX = this.axisConfigs.tickWidth / 2;\r\n      }\r\n      this.context.moveTo(this.axisOrigin.x - deltaX, this.axisOrigin.y - i * this.yTickSpacing);\r\n      this.context.lineTo(this.axisOrigin.x + deltaX, this.axisOrigin.y - i * this.yTickSpacing);\r\n      this.context.stroke();\r\n    }\r\n  }\r\n\r\n  drawYAxis() {\r\n    this.context.beginPath();\r\n    this.context.moveTo(this.axisOrigin.x, this.axisOrigin.y);\r\n    this.context.lineTo(this.axisOrigin.x, this.axisTop - this.axisConfigs.axisMargin);\r\n    this.context.stroke();\r\n    this.context.moveTo(this.axisOrigin.x, this.axisTop - this.axisConfigs.axisMargin);\r\n    this.context.lineTo(this.axisOrigin.x + 5, this.axisTop - this.axisConfigs.axisMargin + 10);\r\n    this.context.lineTo(this.axisOrigin.x - 5, this.axisTop - this.axisConfigs.axisMargin + 10);\r\n    this.context.fill();\r\n  }\r\n\r\n  drawXAxis() {\r\n    this.context.beginPath();\r\n    this.context.moveTo(this.axisOrigin.x, this.axisOrigin.y);\r\n    this.context.lineTo(this.axisRight + this.axisConfigs.axisMargin - 10, this.axisOrigin.y);\r\n    this.context.stroke();\r\n    // 绘制坐标轴三角形\r\n    this.context.moveTo(this.axisRight + this.axisConfigs.axisMargin, this.axisOrigin.y);\r\n    this.context.lineTo(this.axisRight + this.axisConfigs.axisMargin - 10, this.axisOrigin.y + 5);\r\n    this.context.lineTo(this.axisRight + this.axisConfigs.axisMargin - 10, this.axisOrigin.y - 5);\r\n    this.context.fill();\r\n  }\r\n\r\n  drawAxisLabels() {\r\n    this.context.save();\r\n    this.context.fillStyle = this.AXIS_LABEL_COLOR;\r\n    this.drawXTicksLabels();\r\n    this.drawYTicksLabels();\r\n    this.context.restore();\r\n    this.drawAxisTitle();\r\n  }\r\n\r\n  drawAxisTitle() {\r\n    this.context.font = '12px Microsoft YaHei';\r\n    this.context.textAlign = 'left';\r\n    this.context.fillStyle = this.AXIS_LABEL_COLOR;\r\n    const xLabelWidth = this.context.measureText(this.axisConfigs.xAxisLabel).width;\r\n    this.rotateLabel(\r\n      this.axisConfigs.xAxisLabel,\r\n      this.axisRight + this.axisConfigs.axisMargin / 2,\r\n      this.axisOrigin.y - xLabelWidth - AXIS_TITLE_SPACE\r\n    );\r\n    this.context.fillText(\r\n      this.axisConfigs.yAxisLabel,\r\n      this.axisOrigin.x + AXIS_TITLE_SPACE,\r\n      this.axisTop - this.axisConfigs.axisMargin / 2\r\n    );\r\n  }\r\n\r\n  drawXTicksLabels() {\r\n    this.context.textAlign = 'center';\r\n    this.context.textBaseline = 'top';\r\n    for (let i = 0; i <= this.xAxisTicksNum; i++) {\r\n      if (i % this.axisConfigs.xAxisRange.step === 0) {\r\n        this.context.fillText(i, this.axisOrigin.x + i * this.xTickSpacing, this.axisOrigin.y + this.axisConfigs.spaceBetweenLabelsAxis);\r\n      }\r\n    }\r\n  }\r\n\r\n  drawYTicksLabels() {\r\n    this.context.textAlign = 'center';\r\n    this.context.textBaseline = 'middle';\r\n    for (let i = 0; i <= this.yAxisTicksNum; i++) {\r\n      if (i % this.axisConfigs.yAxisRange.step === 0) {\r\n        this.context.fillText(i, this.axisOrigin.x - this.axisConfigs.spaceBetweenLabelsAxis, this.axisOrigin.y - i * this.yTickSpacing);\r\n      }\r\n    }\r\n  }\r\n\r\n  rotateLabel(name, x, y) {\r\n    for (let i = 0; i < name.length; i++) {\r\n      const str = name.slice(i, i + 1).toString();\r\n      if (str.match(/[A-Za-z0-9]/)) {\r\n        this.context.save();\r\n        this.context.translate(x, y);\r\n        this.context.rotate((Math.PI / 180) * 90);\r\n        this.context.textBaseline = 'bottom';\r\n        this.context.fillText(str, 0, 0);\r\n        this.context.restore();\r\n        y += this.context.measureText(str).width;\r\n      } else if (str.match(/[\\u4E00-\\u9FA5]/)) {\r\n        this.context.save();\r\n        this.context.textBaseline = 'top';\r\n        this.context.fillText(str, x, y);\r\n        this.context.restore();\r\n        y += this.context.measureText(str).width;\r\n      }\r\n    }\r\n  }\r\n}\r\n","<canvas id=\"devui-quadrant-axis\"></canvas>\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable()\nexport class QuadrantDiagramService {\n  document: Document;\n\n  constructor(@Inject(DOCUMENT) private doc: any) {\n    this.document = this.doc;\n  }\n  showAxisLine(x, y, diagramId, view, axisConfigs) {\n    const horizontalLine = this.document.querySelector('d-quadrant-diagram#' + diagramId + ' .devui-horizontal-line') as HTMLElement;\n    const verticalLine = this.document.querySelector('d-quadrant-diagram#' + diagramId + ' .devui-vertical-line') as HTMLElement;\n    const labelXAxisValue = this.document.querySelector('d-quadrant-diagram#' + diagramId + ' #devui-label-x-axis-value') as HTMLElement;\n    const labelYAxisValue = this.document.querySelector('d-quadrant-diagram#' + diagramId + ' #devui-label-y-axis-value') as HTMLElement;\n    labelXAxisValue.textContent = this.getXAxisValue(view, axisConfigs, x);\n    labelYAxisValue.textContent = this.getYAxisValue(view, axisConfigs, y);\n    horizontalLine.style.top = y + 'px';\n    horizontalLine.style.display = '';\n    verticalLine.style.left = x + 'px';\n    verticalLine.style.display = '';\n  }\n  hideAxisLine(diagramId) {\n    const horizontalLine = this.document.querySelector('d-quadrant-diagram#' + diagramId + ' .devui-horizontal-line') as HTMLElement;\n    const verticalLine = this.document.querySelector('d-quadrant-diagram#' + diagramId + ' .devui-vertical-line') as HTMLElement;\n    verticalLine.style.display = 'none';\n    horizontalLine.style.display = 'none';\n  }\n  setListPointerEvents(diagramId, value) {\n    const ele = this.document.querySelectorAll('d-quadrant-diagram#' + diagramId + ' .devui-list-style');\n    ele.forEach(element => {\n      (element as HTMLElement).style.pointerEvents = value;\n    });\n  }\n  getXAxisValue(view, axisConfigs, left) {\n    return ((left - axisConfigs.originPosition.left) / axisConfigs.xTickSpacing).toFixed(1);\n  }\n  getYAxisValue(view, axisConfigs, top) {\n    return ((view.height - top - axisConfigs.originPosition.bottom)\n      / axisConfigs.yTickSpacing).toFixed(1);\n  }\n}\n","import { Component, Input, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { QuadrantDiagramService } from '../quadrant-diagram.service';\r\nimport { IAxisConfigs, IViewConfigs } from '../quadrant-diagram.type';\r\nimport { LARGE_LABEL_SIZE_CENTER_POINT, NORMAL_LABEL_SIZE_CENTER_POINT, SMALL_LABEL_SIZE_CENTER_POINT } from '../quadrant.config';\r\n@Component({\r\n  selector: 'd-quadrant-label',\r\n  templateUrl: './quadrant-label.component.html',\r\n  styleUrls: ['./quadrant-label.component.scss'],\r\n})\r\nexport class QuadrantLabelComponent implements OnChanges {\r\n  @Input() currentLabelSize;\r\n  @Input() labelData;\r\n  @Input() axisConfigs: IAxisConfigs;\r\n  @Input() view: IViewConfigs;\r\n  @Input() normalLabelTemplate: TemplateRef<any>;\r\n  @Input() largeLabelTemplate: TemplateRef<any>;\r\n  @Input() smallLabelTemplate: TemplateRef<any>;\r\n  @Input() dropScope;\r\n  @Input() diagramId;\r\n  currentCenterPoint;\r\n  currentLabelTemplate;\r\n\r\n  constructor(private quadrantDiagramService: QuadrantDiagramService) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes?.currentLabelSize) {\r\n      switch (this.currentLabelSize) {\r\n      case 'small':\r\n        this.currentCenterPoint = SMALL_LABEL_SIZE_CENTER_POINT;\r\n        this.currentLabelTemplate = this.smallLabelTemplate;\r\n        break;\r\n      case 'normal':\r\n        this.currentCenterPoint = NORMAL_LABEL_SIZE_CENTER_POINT;\r\n        this.currentLabelTemplate = this.normalLabelTemplate;\r\n        break;\r\n      default:\r\n        this.currentCenterPoint = LARGE_LABEL_SIZE_CENTER_POINT;\r\n        this.currentLabelTemplate = this.largeLabelTemplate;\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n  * @param offsetY the half height of label\r\n  */\r\n  getLabelTopValue(yAxisValue, offsetY) {\r\n    return this.view.height - yAxisValue * this.axisConfigs.yTickSpacing - this.axisConfigs.originPosition.bottom - offsetY;\r\n  }\r\n\r\n  /**\r\n  * @param offsetX the half width of label\r\n  */\r\n  getLabelLeftValue(xAxisValue, offsetX) {\r\n    return xAxisValue * this.axisConfigs.xTickSpacing + this.axisConfigs.originPosition.left - offsetX;\r\n  }\r\n  showAxisLine(x, y) {\r\n    const top = this.getLabelTopValue(y, 0);\r\n    const left = this.getLabelLeftValue(x, 0);\r\n    this.quadrantDiagramService.showAxisLine(left, top, this.diagramId, this.view, this.axisConfigs);\r\n  }\r\n  hideAxisLine() {\r\n    this.quadrantDiagramService.hideAxisLine(this.diagramId);\r\n  }\r\n  handleDropOutRegion(event) {\r\n    this.hideAxisLine();\r\n    this.quadrantDiagramService.setListPointerEvents(this.diagramId, '');\r\n  }\r\n}\r\n","<ng-template\n  [ngTemplateOutlet]=\"currentLabelTemplate ? currentLabelTemplate : defaultLabel\"\n  [ngTemplateOutletContext]=\"{\n    $implicit: this,\n    labelData: labelData\n  }\"\n>\n</ng-template>\n<ng-template #defaultLabel let-labelData=\"labelData\">\n  <div\n    dDraggable\n    [dragScope]=\"dropScope\"\n    [dragData]=\"{ item: item, parent: labelData }\"\n    (dragEndEvent)=\"handleDropOutRegion($event)\"\n    *ngFor=\"let item of labelData\"\n    class=\"devui-list-style devui-{{ currentLabelSize }}-size\"\n    [style.position]=\"'absolute'\"\n    [style.top.px]=\"getLabelTopValue(item?.y, currentCenterPoint?.y)\"\n    [style.left.px]=\"getLabelLeftValue(item?.x, currentCenterPoint?.x)\"\n    dPopover\n    [content]=\"item?.content\"\n    [position]=\"'bottom'\"\n    [controlled]=\"true\"\n    [trigger]=\"'hover'\"\n    (mouseover)=\"showAxisLine(item?.x, item?.y)\"\n    (mouseout)=\"hideAxisLine()\"\n  >\n    <div *ngIf=\"currentLabelSize !== 'small'\" class=\"devui-label-style\">{{ item?.title }}</div>\n    <ng-container *ngIf=\"currentLabelSize === 'large'\">\n      <d-progress style=\"margin-top: -4px\" [percentage]=\"item?.progress\" [percentageText]=\"''\" [strokeColor]=\"'#3ECCA6'\" [height]=\"'4px'\">\n      </d-progress>\n    </ng-container>\n  </div>\n  <div\n    class=\"devui-horizontal-line\"\n    [style.width.px]=\"view.width - axisConfigs.originPosition.left - axisConfigs.axisMargin\"\n    [style.left.px]=\"axisConfigs.originPosition.left\"\n    [style.display]=\"'none'\"\n  >\n    <span class=\"devui-axis-value\" id=\"devui-label-y-axis-value\"></span>\n  </div>\n  <div\n    class=\"devui-vertical-line\"\n    [style.height.px]=\"view.height - axisConfigs.originPosition.bottom - axisConfigs.axisMargin\"\n    [style.top.px]=\"axisConfigs.axisMargin\"\n    [style.display]=\"'none'\"\n  >\n    <span class=\"devui-axis-value\" id=\"devui-label-x-axis-value\"></span>\n  </div>\n</ng-template>\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { IAxisConfigs, IQuadrantConfigs, IViewConfigs } from '../quadrant-diagram.type';\r\n\r\n@Component({\r\n  selector: 'd-quadrant-region',\r\n  templateUrl: './quadrant-region.component.html',\r\n  styleUrls: ['./quadrant-region.component.scss'],\r\n})\r\nexport class QuadrantRegionComponent implements OnInit, OnChanges {\r\n  @Input() quadrantConfigs: Array<IQuadrantConfigs>;\r\n  @Input() axisConfigs: IAxisConfigs;\r\n  @Input() view: IViewConfigs;\r\n  @Input() labelData;\r\n  @Input() normalLabelTemplate: TemplateRef<any>;\r\n  @Input() largeLabelTemplate: TemplateRef<any>;\r\n  @Input() smallLabelTemplate: TemplateRef<any>;\r\n  @Input() currentLabelSize;\r\n  @Input() showQuadrants;\r\n  @Input() dropScope;\r\n  @Input() diagramId;\r\n  quadrantHeight: number;\r\n  quadrantWidth: number;\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { axisConfigs, view } = changes;\r\n    if (axisConfigs || view) {\r\n      this.drawQuadrantRegion();\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.drawQuadrantRegion();\r\n  }\r\n\r\n  drawQuadrantRegion() {\r\n    if (this.view && this.view.height) {\r\n      this.quadrantHeight = (this.view.height - this.axisConfigs.axisMargin - this.axisConfigs.originPosition.bottom) / 2;\r\n    }\r\n    if (this.view && this.view.width) {\r\n      this.quadrantWidth = (this.view.width - this.axisConfigs.axisMargin - this.axisConfigs.originPosition.left) / 2;\r\n    }\r\n  }\r\n\r\n  getQuadrantTopValue(index) {\r\n    let height = 0;\r\n    if (index + 1 === 3 || index + 1 === 4) {\r\n      height = this.quadrantHeight;\r\n    }\r\n    return this.axisConfigs.axisMargin + height;\r\n  }\r\n\r\n  getQuadrantLeftValue(index) {\r\n    let width = 0;\r\n    if (index + 1 === 1 || index + 1 === 4) {\r\n      width = this.quadrantWidth;\r\n    }\r\n    return this.axisConfigs.originPosition.left + width;\r\n  }\r\n}\r\n","<ng-container *ngIf=\"showQuadrants\">\n  <div\n    *ngFor=\"let item of quadrantConfigs; let i = index\"\n    class=\"devui-quadrant-region devui-quadrant-region-{{ i + 1 }}\"\n    [style.background-color]=\"item?.backgroundColor\"\n    [style.height.px]=\"quadrantHeight\"\n    [style.width.px]=\"quadrantWidth\"\n    [style.top.px]=\"getQuadrantTopValue(i)\"\n    [style.left.px]=\"getQuadrantLeftValue(i)\"\n  >\n    <div class=\"devui-quadrant-title\" [style.color]=\"item?.color\">\n      <span>{{ item?.title }}</span>\n    </div>\n  </div>\n</ng-container>\n<d-quadrant-label\n  [currentLabelSize]=\"currentLabelSize\"\n  [labelData]=\"labelData\"\n  [axisConfigs]=\"axisConfigs\"\n  [view]=\"view\"\n  [dropScope]=\"dropScope\"\n  [diagramId]=\"diagramId\"\n></d-quadrant-label>\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  EventEmitter,\r\n  HostBinding,\r\n  Input,\r\n  OnChanges,\r\n  OnInit,\r\n  Output,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n} from '@angular/core';\r\nimport { QuadrantDiagramService } from './quadrant-diagram.service';\r\nimport { IAxisConfigs, ILabelDataConfigs, IQuadrantConfigs, IViewConfigs, labelSize } from './quadrant-diagram.type';\r\nimport { DEFAULT_AXIS_CONFIGS, DEFAULT_QUADRANT_CONFIGS, LABEL_SIZE } from './quadrant.config';\r\n\r\n@Component({\r\n  selector: 'd-quadrant-diagram',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  templateUrl: './quadrant-diagram.component.html',\r\n  styleUrls: ['./quadrant-diagram.component.scss'],\r\n})\r\nexport class QuadrantDiagramComponent implements OnInit, OnChanges {\r\n  static ID_SEED = 0;\r\n  @Input() axisConfigs: IAxisConfigs = DEFAULT_AXIS_CONFIGS;\r\n  @Input() quadrantConfigs: Array<IQuadrantConfigs> = DEFAULT_QUADRANT_CONFIGS;\r\n  @Input() view: IViewConfigs = {\r\n    height: 900,\r\n    width: 950,\r\n  };\r\n  @Input() normalLabelTemplate: TemplateRef<any>;\r\n  @Input() largeLabelTemplate: TemplateRef<any>;\r\n  @Input() smallLabelTemplate: TemplateRef<any>;\r\n  @Input() labelData: Array<ILabelDataConfigs> = [];\r\n  @Input() currentLabelSize: labelSize = 'large';\r\n  @Input() showQuadrants = true;\r\n  @Input() diagramId;\r\n  @Output() dropEvent: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() zoomInEvent: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() zoomOutEvent: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() fullScreenEvent: EventEmitter<any> = new EventEmitter<any>();\r\n  @Input() dropScope = 'default';\r\n  @Input() showToolbar = true;\r\n  private originHeight;\r\n  private originWidth;\r\n  isFullScreen = false;\r\n  @HostBinding('attr.id')\r\n  get id() {\r\n    return this.diagramId;\r\n  }\r\n  constructor(private quadrantDiagramService: QuadrantDiagramService) {\r\n    if (this.diagramId === undefined) {\r\n      const id = QuadrantDiagramComponent.ID_SEED++;\r\n      this.diagramId = 'devui-quadrant-diagram-' + id;\r\n    }\r\n  }\r\n  ngOnInit(): void {\r\n    this.initAxisData();\r\n    this.originHeight = this.view.height;\r\n    this.originWidth = this.view.width;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { axisConfigs, view } = changes;\r\n    if (axisConfigs || view) {\r\n      this.initAxisData();\r\n      this.originHeight = this.view.height;\r\n      this.originWidth = this.view.width;\r\n    }\r\n  }\r\n\r\n  launchFullscreen({ isFullscreen }) {\r\n    if (typeof window !== 'undefined' && isFullscreen) {\r\n      this.isFullScreen = isFullscreen;\r\n      this.view = {\r\n        height: window.screen.height,\r\n        width: window.screen.width,\r\n      };\r\n      this.initAxisData();\r\n    } else {\r\n      this.isFullScreen = isFullscreen;\r\n      this.view = {\r\n        height: this.originHeight,\r\n        width: this.originWidth,\r\n      };\r\n      this.initAxisData();\r\n    }\r\n    this.fullScreenEvent.emit(isFullscreen);\r\n  }\r\n\r\n  onDrop(e: any) {\r\n    const xAxisValue = this.quadrantDiagramService.getXAxisValue(this.view, this.axisConfigs, e.nativeEvent.offsetX);\r\n    const yAxisValue = this.quadrantDiagramService.getYAxisValue(this.view, this.axisConfigs, e.nativeEvent.offsetY);\r\n    this.quadrantDiagramService.setListPointerEvents(this.diagramId, '');\r\n    this.quadrantDiagramService.hideAxisLine(this.diagramId);\r\n    this.dropEvent.emit({ dragData: e.dragData, xAxisValue: xAxisValue, yAxisValue: yAxisValue });\r\n  }\r\n\r\n  initAxisData() {\r\n    const axisConfigKeys = Object.keys(DEFAULT_AXIS_CONFIGS);\r\n    for (let i = 0; i < axisConfigKeys.length; i++) {\r\n      if (this.axisConfigs[axisConfigKeys[i]] === undefined) {\r\n        this.axisConfigs[axisConfigKeys[i]] = DEFAULT_AXIS_CONFIGS[axisConfigKeys[i]];\r\n      }\r\n    }\r\n    this.axisConfigs.axisOrigin = {\r\n      x: this.axisConfigs.originPosition.left,\r\n      y: this.view.height - this.axisConfigs.originPosition.bottom,\r\n    };\r\n    this.axisConfigs.axisTop = this.axisConfigs.axisMargin;\r\n    this.axisConfigs.axisRight = this.view.width - this.axisConfigs.axisMargin;\r\n    this.axisConfigs.axisWidth = this.axisConfigs.axisRight - this.axisConfigs.axisOrigin.x;\r\n    this.axisConfigs.axisHeight = this.axisConfigs.axisOrigin.y - this.axisConfigs.axisTop;\r\n    this.axisConfigs.yAxisTicksNum = this.axisConfigs.yAxisRange.max - this.axisConfigs.yAxisRange.min;\r\n    this.axisConfigs.xAxisTicksNum = this.axisConfigs.xAxisRange.max - this.axisConfigs.xAxisRange.min;\r\n    this.axisConfigs.xTickSpacing = this.axisConfigs.axisWidth / this.axisConfigs.xAxisTicksNum;\r\n    this.axisConfigs.yTickSpacing = this.axisConfigs.axisHeight / this.axisConfigs.yAxisTicksNum;\r\n  }\r\n\r\n  zoomOut(size) {\r\n    const index = LABEL_SIZE.indexOf(size);\r\n    if (index > 0) {\r\n      this.currentLabelSize = LABEL_SIZE[index - 1] as labelSize;\r\n    }\r\n    this.zoomOutEvent.emit(this.currentLabelSize);\r\n  }\r\n\r\n  zoomIn(size) {\r\n    const index = LABEL_SIZE.indexOf(size);\r\n    if (index < LABEL_SIZE.length - 1) {\r\n      this.currentLabelSize = LABEL_SIZE[index + 1] as labelSize;\r\n    }\r\n    this.zoomInEvent.emit(this.currentLabelSize);\r\n  }\r\n\r\n  dragOverEvent(e) {\r\n    this.quadrantDiagramService.setListPointerEvents(this.diagramId, 'none');\r\n    this.quadrantDiagramService.showAxisLine(e.offsetX, e.offsetY, this.diagramId, this.view, this.axisConfigs);\r\n  }\r\n\r\n  handleDropOut() {\r\n    this.quadrantDiagramService.setListPointerEvents(this.diagramId, '');\r\n    this.quadrantDiagramService.hideAxisLine(this.diagramId);\r\n  }\r\n}\r\n","<d-fullscreen (fullscreenLaunch)=\"launchFullscreen($event)\" [zIndex]=\"1001\">\n  <div fullscreen-target>\n    <div\n      [id]=\"diagramId\"\n      dDroppable\n      [dropScope]=\"dropScope\"\n      (dragOverEvent)=\"dragOverEvent($event)\"\n      (dropEvent)=\"onDrop($event)\"\n      (dragleave)=\"handleDropOut()\"\n      class=\"devui-quadrant-diagram\"\n      [style.height.px]=\"view?.height\"\n      [style.width.px]=\"view?.width\"\n    >\n      <div *ngIf=\"showToolbar\" class=\"devui-control-zoom-container\" [style.right.px]=\"axisConfigs.axisMargin\">\n        <div class=\"devui-icon-display\" [class.disabled]=\"currentLabelSize === 'small'\" (click)=\"zoomOut(currentLabelSize)\">\n          <svg\n            width=\"16px\"\n            height=\"16px\"\n            viewBox=\"0 0 16 16\"\n            version=\"1.1\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          >\n            <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n              <polygon fill=\"#293040\" points=\"14 7 14 9 2 9 2 7\"></polygon>\n            </g>\n          </svg>\n        </div>\n        <div class=\"devui-icon-display\" [class.disabled]=\"currentLabelSize === 'large'\" (click)=\"zoomIn(currentLabelSize)\">\n          <svg\n            width=\"16px\"\n            height=\"16px\"\n            viewBox=\"0 0 16 16\"\n            version=\"1.1\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          >\n            <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n              <polygon fill=\"#293040\" points=\"7 7 7 2 9 2 9 7 14 7 14 9 9 9 9 14 7 14 7 9 2 9 2 7\"></polygon>\n            </g>\n          </svg>\n        </div>\n        <div fullscreen-launch class=\"devui-icon-display\">\n          <svg\n            *ngIf=\"!isFullScreen\"\n            width=\"14px\"\n            height=\"14px\"\n            viewBox=\"0 0 14 14\"\n            version=\"1.1\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          >\n            <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n              <g transform=\"translate(-1482.000000, -1285.000000)\" fill=\"#293040\" fill-rule=\"nonzero\">\n                <g transform=\"translate(1481.000000, 1284.000000)\">\n                  <path\n                    d=\"M15,1 L15,6 L13,6 L13,3 L10,3 L10,1 L15,1 Z M15,10 L15,15 L10,15 L10,13 L13,13 L13,10 L15,10\n                Z M1,15 L1,10 L3,10 L3,13 L6,13 L6,15 L1,15 Z M1,1 L6,1 L6,3 L3,3 L3,6 L1,6 L1,1 Z\"\n                    id=\"Combined-Shape\"\n                  ></path>\n                </g>\n              </g>\n            </g>\n          </svg>\n          <svg\n            *ngIf=\"isFullScreen\"\n            width=\"16px\"\n            height=\"16px\"\n            viewBox=\"0 0 16 16\"\n            version=\"1.1\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          >\n            <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n              <path\n                d=\"M10,6 L10,1 L12,1 L12,4 L15,4 L15,6 L10,6 Z M6,1 L6,6 L1,6 L1,4 L4,4 L4,1 L6,1 Z M10,15 L10,10 L15,10 L15,12\n        L12,12 L12,15 L10,15 Z M6,10 L6,15 L4,15 L4,12 L1,12 L1,10 L6,10 Z\"\n                id=\"形状\"\n                fill=\"#293040\"\n                fill-rule=\"nonzero\"\n              ></path>\n            </g>\n          </svg>\n        </div>\n      </div>\n      <d-quadrant-axis [diagramId]=\"diagramId\" [view]=\"view\" [axisConfigs]=\"axisConfigs\"></d-quadrant-axis>\n      <d-quadrant-region\n        [view]=\"view\"\n        [labelData]=\"labelData\"\n        [axisConfigs]=\"axisConfigs\"\n        [quadrantConfigs]=\"quadrantConfigs\"\n        [currentLabelSize]=\"currentLabelSize\"\n        [showQuadrants]=\"showQuadrants\"\n        [dropScope]=\"dropScope\"\n        [diagramId]=\"diagramId\"\n      ></d-quadrant-region>\n    </div>\n  </div>\n</d-fullscreen>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { QuadrantDiagramAxisComponent } from './quadrant-axis/quadrant-axis.component';\nimport { QuadrantDiagramComponent } from './quadrant-diagram.component';\n\nimport { DragDropModule } from 'ng-devui/dragdrop';\nimport { FullscreenModule } from 'ng-devui/fullscreen';\nimport { PopoverModule } from 'ng-devui/popover';\nimport { ProgressModule } from 'ng-devui/progress';\nimport { SafePipeModule } from 'ng-devui/utils';\nimport { QuadrantDiagramService } from './quadrant-diagram.service';\nimport { QuadrantLabelComponent } from './quadrant-label/quadrant-label.component';\nimport { QuadrantRegionComponent } from './quadrant-region/quadrant-region.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    DragDropModule,\n    ProgressModule,\n    PopoverModule,\n    ProgressModule,\n    FullscreenModule,\n    SafePipeModule\n  ],\n  exports: [\n    QuadrantDiagramComponent\n  ],\n  declarations: [\n    QuadrantDiagramComponent,\n    QuadrantDiagramAxisComponent,\n    QuadrantRegionComponent,\n    QuadrantLabelComponent\n  ],\n  providers: [QuadrantDiagramService]\n})\nexport class QuadrantDiagramModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.QuadrantDiagramService","i1","i2.QuadrantLabelComponent","i4","i5.QuadrantDiagramAxisComponent","i6.QuadrantRegionComponent"],"mappings":"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"}