{"version":3,"file":"ng-devui-progress.mjs","sources":["../../devui/progress/progress-template.directive.ts","../../devui/progress/progress.component.ts","../../devui/progress/progress.component.html","../../devui/progress/progress.module.ts","../../devui/progress/ng-devui-progress.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n  /* eslint-disable */\n  selector: 'ng-template[position], ng-template[dPosition]',\n})\nexport class ProgressTemplateDirective {\n  @Input() position: 'center' | 'outer';\n  @Input() dPosition: 'center' | 'outer';\n\n  constructor(public template: TemplateRef<any>) {}\n}\n","import { AfterViewInit, Component, ContentChildren, Input, OnChanges, QueryList, SimpleChanges, TemplateRef } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { ProgressTemplateDirective } from './progress-template.directive';\nimport { IGradientColor, IProgressItem, ShowContentConfig } from './progress.types';\n\n@Component({\n  selector: 'd-progress',\n  templateUrl: './progress.component.html',\n  styleUrls: ['./progress.component.scss'],\n  preserveWhitespaces: false,\n})\nexport class ProgressComponent implements OnChanges, AfterViewInit {\n  static ID_SEED = 0;\n  @Input() isDynamic = true;\n  @Input() percentage = 0;\n  @Input() percentageText: string;\n  /**\n   * @deprecated\n   * 用strokeColor替换\n   */\n  @Input() barbgcolor: string;\n  @Input() strokeColor: string | IGradientColor[] = '';\n  /**\n   * @deprecated\n   * 统一用strokeWidth\n   */\n  @Input() set height(value) {\n    this.strokeWidth = parseInt(value, 10);\n  }\n  @Input() strokeWidth = 14; // 进度条的线条宽度\n  /**\n   * @deprecated\n   * 用type类型替换\n   */\n  @Input() set isCircle(value: boolean) {\n    this.type = value ? 'circle' : 'line';\n  }\n  @Input() type: 'line' | 'circle' = 'line';\n  @Input() showContent: boolean | ShowContentConfig;\n  @Input() multiProgressConfig: IProgressItem[] = [];\n  @ContentChildren(ProgressTemplateDirective) templates: QueryList<ProgressTemplateDirective>;\n\n  id: number;\n  pathString: string;\n  trailPath: { [key: string]: string };\n  progressData: IProgressItem[] = [];\n  gradientColor: IGradientColor[] = [];\n  isGradient = false;\n  showContentConfig = {\n    showInnerContent: false,\n    showOuterContent: false,\n    showCenterContent: true,\n  };\n  centerTemplate: TemplateRef<any>;\n  outerTemplate: TemplateRef<any>;\n\n  get content() {\n    return this.percentageText ? this.percentageText : `${this.percentage}%`;\n  }\n\n  constructor() {\n    this.id = ProgressComponent.ID_SEED++;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { isCircle, multiProgressConfig, percentage, showContent, strokeColor, type } = changes;\n    const hasChanged = [percentage, strokeColor, type, isCircle].some((change) => change);\n\n    if (multiProgressConfig || (this.multiProgressConfig?.length && percentage) || (!this.multiProgressConfig?.length && hasChanged)) {\n      this.render();\n    }\n    if (showContent) {\n      this.showContentConfig =\n        typeof this.showContent === 'boolean'\n          ? {\n            showInnerContent: this.showContent,\n            showOuterContent: this.showContent,\n            showCenterContent: false,\n          }\n          : { ...this.showContentConfig, ...this.showContent };\n    }\n  }\n\n  ngAfterViewInit(): void {\n    // 兼容之前line中自定义模板对应右侧模板，circle对应中间模板\n    if (this.templates?.length) {\n      const restItem = [];\n      this.templates.forEach((item) => {\n        const pos = item.position || item.dPosition;\n        const name = pos && `${pos}Template`;\n        if (name) {\n          this[name] = item.template;\n        } else {\n          restItem.push(item);\n        }\n      });\n      if (restItem.length) {\n        this.outerTemplate = this.outerTemplate || restItem[0].template;\n        this.centerTemplate = this.centerTemplate || restItem[restItem.length - 1]?.template;\n      }\n    }\n  }\n\n  render(): void {\n    const data = this.multiProgressConfig?.length\n      ? [...this.multiProgressConfig]\n      : [\n        {\n          color: (this.checkStrokeColor() || this.barbgcolor) ?? '',\n          percentage: this.percentage ?? 0,\n          percentageText: this.percentageText ?? '',\n          content: this.content ?? '',\n        },\n      ];\n\n    if (this.type === 'line') {\n      this.checkSumOfPercentages(data, (sum: number, item: IProgressItem) => {\n        item.width = sum;\n      });\n    }\n\n    if (this.type === 'circle') {\n      this.setCircleProgress(data);\n    }\n\n    // 展示数据倒序输出，短的后输出，显示层级高\n    data.reverse();\n\n    if (this.isDynamic) {\n      // merge方式覆盖数据，不改变数据源，避免重渲染dom导致动画失效\n      merge(this.progressData, data);\n    } else {\n      this.progressData = [...data];\n    }\n  }\n\n  setCircleProgress(data: IProgressItem[]): void {\n    const radius = 50 - this.strokeWidth / 2;\n    const beginPositionY = -radius;\n    const endPositionY = radius * -2;\n    const len = Math.PI * 2 * radius;\n\n    this.pathString = `M 50,50 m 0,${beginPositionY}\n     a ${radius},${radius} 0 1 1 0,${-endPositionY}\n     a ${radius},${radius} 0 1 1 0,${endPositionY}`;\n\n    this.trailPath = {\n      strokeDasharray: `${len}px ${len}px`,\n      strokeDashoffset: `0`,\n      transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s',\n    };\n    this.checkSumOfPercentages(data, (sum: number, item: IProgressItem) => {\n      item.strokePath = {\n        stroke: item.color || this.checkStrokeColor() || this.barbgcolor || (null as any),\n        strokeDasharray: `${(sum / 100) * len}px ${len}px`,\n        strokeDashoffset: `0`,\n        transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s',\n      };\n    });\n  }\n\n  checkSumOfPercentages(data: IProgressItem[], func: Function) {\n    const result = data.reduce((sum: number, item: IProgressItem, index: number) => {\n      sum += Number(item.percentage);\n      sum = sum > 100 || (index > 0 && index === data.length - 1 && this.percentage === 100) ? 100 : sum;\n      func(sum, item);\n      return sum;\n    }, 0);\n    this.percentage = this.percentage >= 100 ? 100 : result;\n  }\n\n  checkStrokeColor(): string {\n    if (Array.isArray(this.strokeColor)) {\n      this.isGradient = true;\n      this.gradientColor = this.strokeColor;\n      if (this.type === 'line') {\n        const colors = this.strokeColor.map((item) => `${item.color} ${item.percentage}`).join(', ');\n        const result = `linear-gradient(to right, ${colors})`;\n        return this.strokeColor.length ? result : '';\n      }\n      if (this.type === 'circle') {\n        return `url(#devui-progress-gradient-${this.id}`;\n      }\n    } else {\n      this.isGradient = false;\n      this.strokeColor = this.strokeColor || '';\n      return this.strokeColor;\n    }\n  }\n}\n","<ng-container *ngIf=\"type === 'line'\">\n  <div id=\"devui-progress-line-{{ id }}\" class=\"devui-progress devui-progress-line\" [style.height]=\"strokeWidth + 'px'\">\n    <div\n      *ngFor=\"let bar of progressData\"\n      class=\"devui-progress-bar\"\n      [class.devui-progress-bar-default-bg]=\"!bar.color\"\n      [style.background]=\"bar.color\"\n      [style.width]=\"bar.width + '%'\"\n    >\n      <ng-template\n        *ngIf=\"showContentConfig.showInnerContent\"\n        [ngTemplateOutlet]=\"bar.template || defaultInnerContent\"\n        [ngTemplateOutletContext]=\"{ $implicit: this, bar: bar }\"\n      ></ng-template>\n    </div>\n    <ng-template\n      *ngIf=\"showContentConfig.showCenterContent\"\n      [ngTemplateOutlet]=\"centerTemplate || defaultCenterContent\"\n      [ngTemplateOutletContext]=\"{ $implicit: this }\"\n    ></ng-template>\n  </div>\n  <ng-template\n    *ngIf=\"showContentConfig.showOuterContent\"\n    [ngTemplateOutlet]=\"outerTemplate || defaultPercentageText\"\n    [ngTemplateOutletContext]=\"{ $implicit: this, percentage: percentage }\"\n  ></ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"type === 'circle'\">\n  <div id=\"devui-progress-circle-{{ id }}\" class=\"devui-progress devui-progress-circle\">\n    <svg viewBox=\"0 0 100 100\">\n      <defs *ngIf=\"isGradient\">\n        <linearGradient id=\"devui-progress-gradient-{{ id }}\" x1=\"100%\" y1=\"0%\" x2=\"0%\" y2=\"0%\">\n          <stop *ngFor=\"let color of gradientColor\" [attr.offset]=\"color.percentage\" [attr.stop-color]=\"color.color\"></stop>\n        </linearGradient>\n      </defs>\n      <path\n        class=\"devui-progress-circle-trail\"\n        fill-opacity=\"0\"\n        [attr.d]=\"pathString\"\n        [attr.stroke-width]=\"strokeWidth\"\n        [ngStyle]=\"trailPath\"\n      ></path>\n      <path\n        *ngFor=\"let circle of progressData\"\n        fill-opacity=\"0\"\n        [attr.d]=\"pathString\"\n        [attr.stroke]=\"circle.color\"\n        [attr.stroke-linecap]=\"'round'\"\n        [attr.stroke-width]=\"circle.percentage ? strokeWidth : 0\"\n        [class.devui-progress-circle-path]=\"!isGradient\"\n        [ngStyle]=\"circle.strokePath\"\n      >\n        <title>{{ circle.percentageText ? circle.percentageText : circle.percentage + '%' }}</title>\n      </path>\n    </svg>\n    <ng-template\n      *ngIf=\"showContentConfig.showCenterContent\"\n      [ngTemplateOutlet]=\"centerTemplate || defaultPercentageText\"\n      [ngTemplateOutletContext]=\"{ $implicit: this, percentage: percentage }\"\n    ></ng-template>\n  </div>\n</ng-container>\n\n<ng-template #defaultInnerContent let-bar=\"bar\">\n  <span [style.line-height]=\"strokeWidth + 'px'\" [title]=\"bar.percentageText ? bar.percentageText : bar.percentage + '%'\">\n    {{ bar.percentageText ? bar.percentageText : bar.percentage + '%' }}\n  </span>\n</ng-template>\n\n<ng-template #defaultCenterContent>\n  <span [style.line-height]=\"strokeWidth + 'px'\" [title]=\"content\">{{ content }}</span>\n</ng-template>\n\n<ng-template #defaultPercentageText>\n  <div class=\"devui-progress-default-text\" [title]=\"content\">{{ content }}</div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ProgressTemplateDirective } from './progress-template.directive';\nimport { ProgressComponent } from './progress.component';\n\n@NgModule({\n  imports: [CommonModule],\n  exports: [ProgressComponent, ProgressTemplateDirective],\n  declarations: [ProgressComponent, ProgressTemplateDirective],\n  providers: [],\n})\nexport class ProgressModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}