{"version":3,"file":"ng-zorro-antd-core-wave.mjs","sources":["../../components/core/wave/nz-wave-renderer.ts","../../components/core/wave/nz-wave.directive.ts","../../components/core/wave/nz-wave.module.ts","../../components/core/wave/public-api.ts","../../components/core/wave/ng-zorro-antd-core-wave.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Platform } from '@angular/cdk/platform';\nimport { NgZone } from '@angular/core';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport class NzWaveRenderer {\n  private waveTransitionDuration = 400;\n  private styleForPseudo: HTMLStyleElement | null = null;\n  private extraNode: HTMLDivElement | null = null;\n  private lastTime = 0;\n  private platform!: Platform;\n  clickHandler: (event: MouseEvent) => void;\n  get waveAttributeName(): string {\n    return this.insertExtraNode ? 'ant-click-animating' : 'ant-click-animating-without-extra-node';\n  }\n\n  constructor(\n    private triggerElement: HTMLElement,\n    private ngZone: NgZone,\n    private insertExtraNode: boolean,\n    private platformId: NzSafeAny\n  ) {\n    this.platform = new Platform(this.platformId);\n    this.clickHandler = this.onClick.bind(this);\n    this.bindTriggerEvent();\n  }\n\n  onClick = (event: MouseEvent): void => {\n    if (\n      !this.triggerElement ||\n      !this.triggerElement.getAttribute ||\n      this.triggerElement.getAttribute('disabled') ||\n      (event.target as HTMLElement).tagName === 'INPUT' ||\n      this.triggerElement.className.indexOf('disabled') >= 0\n    ) {\n      return;\n    }\n    this.fadeOutWave();\n  };\n\n  bindTriggerEvent(): void {\n    if (this.platform.isBrowser) {\n      this.ngZone.runOutsideAngular(() => {\n        this.removeTriggerEvent();\n        if (this.triggerElement) {\n          this.triggerElement.addEventListener('click', this.clickHandler, true);\n        }\n      });\n    }\n  }\n\n  removeTriggerEvent(): void {\n    if (this.triggerElement) {\n      this.triggerElement.removeEventListener('click', this.clickHandler, true);\n    }\n  }\n\n  removeStyleAndExtraNode(): void {\n    if (this.styleForPseudo && document.body.contains(this.styleForPseudo)) {\n      document.body.removeChild(this.styleForPseudo);\n      this.styleForPseudo = null;\n    }\n    if (this.insertExtraNode && this.triggerElement.contains(this.extraNode)) {\n      this.triggerElement.removeChild(this.extraNode as Node);\n    }\n  }\n\n  destroy(): void {\n    this.removeTriggerEvent();\n    this.removeStyleAndExtraNode();\n  }\n\n  private fadeOutWave(): void {\n    const node = this.triggerElement;\n    const waveColor = this.getWaveColor(node);\n    node.setAttribute(this.waveAttributeName, 'true');\n    if (Date.now() < this.lastTime + this.waveTransitionDuration) {\n      return;\n    }\n\n    if (this.isValidColor(waveColor)) {\n      if (!this.styleForPseudo) {\n        this.styleForPseudo = document.createElement('style');\n      }\n\n      this.styleForPseudo.innerHTML = `\n      [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\n        --antd-wave-shadow-color: ${waveColor};\n      }`;\n      document.body.appendChild(this.styleForPseudo);\n    }\n\n    if (this.insertExtraNode) {\n      if (!this.extraNode) {\n        this.extraNode = document.createElement('div');\n      }\n      this.extraNode.className = 'ant-click-animating-node';\n      node.appendChild(this.extraNode);\n    }\n\n    this.lastTime = Date.now();\n\n    this.runTimeoutOutsideZone(() => {\n      node.removeAttribute(this.waveAttributeName);\n      this.removeStyleAndExtraNode();\n    }, this.waveTransitionDuration);\n  }\n\n  private isValidColor(color: string): boolean {\n    return (\n      !!color &&\n      color !== '#ffffff' &&\n      color !== 'rgb(255, 255, 255)' &&\n      this.isNotGrey(color) &&\n      !/rgba\\(\\d*, \\d*, \\d*, 0\\)/.test(color) &&\n      color !== 'transparent'\n    );\n  }\n\n  private isNotGrey(color: string): boolean {\n    const match = color.match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\.\\d]*)?\\)/);\n    if (match && match[1] && match[2] && match[3]) {\n      return !(match[1] === match[2] && match[2] === match[3]);\n    }\n    return true;\n  }\n\n  private getWaveColor(node: HTMLElement): string {\n    const nodeStyle = getComputedStyle(node);\n    return (\n      nodeStyle.getPropertyValue('border-top-color') || // Firefox Compatible\n      nodeStyle.getPropertyValue('border-color') ||\n      nodeStyle.getPropertyValue('background-color')\n    );\n  }\n\n  private runTimeoutOutsideZone(fn: () => void, delay: number): void {\n    this.ngZone.runOutsideAngular(() => setTimeout(fn, delay));\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  Directive,\n  ElementRef,\n  Inject,\n  InjectionToken,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  PLATFORM_ID\n} from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { NzWaveRenderer } from './nz-wave-renderer';\n\nexport interface NzWaveConfig {\n  disabled?: boolean;\n}\n\nexport const NZ_WAVE_GLOBAL_DEFAULT_CONFIG: NzWaveConfig = {\n  disabled: false\n};\n\nexport const NZ_WAVE_GLOBAL_CONFIG = new InjectionToken<NzWaveConfig>('nz-wave-global-options', {\n  providedIn: 'root',\n  factory: NZ_WAVE_GLOBAL_CONFIG_FACTORY\n});\n\nexport function NZ_WAVE_GLOBAL_CONFIG_FACTORY(): NzWaveConfig {\n  return NZ_WAVE_GLOBAL_DEFAULT_CONFIG;\n}\n\n@Directive({\n  selector: '[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])',\n  exportAs: 'nzWave'\n})\nexport class NzWaveDirective implements OnInit, OnDestroy {\n  @Input() nzWaveExtraNode = false;\n\n  private waveRenderer?: NzWaveRenderer;\n  private waveDisabled: boolean = false;\n\n  get disabled(): boolean {\n    return this.waveDisabled;\n  }\n\n  get rendererRef(): NzWaveRenderer | undefined {\n    return this.waveRenderer;\n  }\n\n  constructor(\n    private ngZone: NgZone,\n    private elementRef: ElementRef,\n    @Optional() @Inject(NZ_WAVE_GLOBAL_CONFIG) private config: NzWaveConfig,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) private animationType: string,\n    @Inject(PLATFORM_ID) private platformId: NzSafeAny\n  ) {\n    this.waveDisabled = this.isConfigDisabled();\n  }\n\n  isConfigDisabled(): boolean {\n    let disabled = false;\n    if (this.config && typeof this.config.disabled === 'boolean') {\n      disabled = this.config.disabled;\n    }\n    if (this.animationType === 'NoopAnimations') {\n      disabled = true;\n    }\n    return disabled;\n  }\n\n  ngOnDestroy(): void {\n    if (this.waveRenderer) {\n      this.waveRenderer.destroy();\n    }\n  }\n\n  ngOnInit(): void {\n    this.renderWaveIfEnabled();\n  }\n\n  renderWaveIfEnabled(): void {\n    if (!this.waveDisabled && this.elementRef.nativeElement) {\n      this.waveRenderer = new NzWaveRenderer(\n        this.elementRef.nativeElement,\n        this.ngZone,\n        this.nzWaveExtraNode,\n        this.platformId\n      );\n    }\n  }\n\n  disable(): void {\n    this.waveDisabled = true;\n    if (this.waveRenderer) {\n      this.waveRenderer.removeTriggerEvent();\n      this.waveRenderer.removeStyleAndExtraNode();\n    }\n  }\n\n  enable(): void {\n    // config priority\n    this.waveDisabled = this.isConfigDisabled() || false;\n    if (this.waveRenderer) {\n      this.waveRenderer.bindTriggerEvent();\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\n\nimport { NzWaveDirective } from './nz-wave.directive';\n\n@NgModule({\n  imports: [PlatformModule],\n  exports: [NzWaveDirective],\n  declarations: [NzWaveDirective]\n})\nexport class NzWaveModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './nz-wave-renderer';\nexport * from './nz-wave.directive';\nexport * from './nz-wave.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAAA;;;;MAUa,cAAc;IAWzB,YACU,cAA2B,EAC3B,MAAc,EACd,eAAwB,EACxB,UAAqB;QAHrB,mBAAc,GAAd,cAAc,CAAa;QAC3B,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAS;QACxB,eAAU,GAAV,UAAU,CAAW;QAdvB,2BAAsB,GAAG,GAAG,CAAC;QAC7B,mBAAc,GAA4B,IAAI,CAAC;QAC/C,cAAS,GAA0B,IAAI,CAAC;QACxC,aAAQ,GAAG,CAAC,CAAC;QAkBrB,YAAO,GAAG,CAAC,KAAiB;YAC1B,IACE,CAAC,IAAI,CAAC,cAAc;gBACpB,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY;gBACjC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC;gBAC3C,KAAK,CAAC,MAAsB,CAAC,OAAO,KAAK,OAAO;gBACjD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EACtD;gBACA,OAAO;aACR;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB,CAAC;QAhBA,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAbD,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,eAAe,GAAG,qBAAqB,GAAG,wCAAwC,CAAC;KAChG;IA0BD,gBAAgB;QACd,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,cAAc,EAAE;oBACvB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;iBACxE;aACF,CAAC,CAAC;SACJ;KACF;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC3E;KACF;IAED,uBAAuB;QACrB,IAAI,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACtE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,SAAiB,CAAC,CAAC;SACzD;KACF;IAED,OAAO;QACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAEO,WAAW;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE;YAC5D,OAAO;SACR;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aACvD;YAED,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG;;oCAEF,SAAS;QACrC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAChD;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,0BAA0B,CAAC;YACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC,qBAAqB,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC7C,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACjC;IAEO,YAAY,CAAC,KAAa;QAChC,QACE,CAAC,CAAC,KAAK;YACP,KAAK,KAAK,SAAS;YACnB,KAAK,KAAK,oBAAoB;YAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACrB,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,KAAK,KAAK,aAAa,EACvB;KACH;IAEO,SAAS,CAAC,KAAa;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACtE,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YAC7C,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D;QACD,OAAO,IAAI,CAAC;KACb;IAEO,YAAY,CAAC,IAAiB;QACpC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzC,QACE,SAAS,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;YAC9C,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC;YAC1C,SAAS,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAC9C;KACH;IAEO,qBAAqB,CAAC,EAAc,EAAE,KAAa;QACzD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;KAC5D;;;AC/IH;;;;MA2Ba,6BAA6B,GAAiB;IACzD,QAAQ,EAAE,KAAK;EACf;MAEW,qBAAqB,GAAG,IAAI,cAAc,CAAe,wBAAwB,EAAE;IAC9F,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,6BAA6B;CACvC,EAAE;SAEa,6BAA6B;IAC3C,OAAO,6BAA6B,CAAC;AACvC,CAAC;MAMY,eAAe;IAc1B,YACU,MAAc,EACd,UAAsB,EACqB,MAAoB,EACpB,aAAqB,EAC3C,UAAqB;QAJ1C,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAY;QACqB,WAAM,GAAN,MAAM,CAAc;QACpB,kBAAa,GAAb,aAAa,CAAQ;QAC3C,eAAU,GAAV,UAAU,CAAW;QAlB3C,oBAAe,GAAG,KAAK,CAAC;QAGzB,iBAAY,GAAY,KAAK,CAAC;QAiBpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC7C;IAhBD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IAYD,gBAAgB;QACd,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC5D,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,aAAa,KAAK,gBAAgB,EAAE;YAC3C,QAAQ,GAAG,IAAI,CAAC;SACjB;QACD,OAAO,QAAQ,CAAC;KACjB;IAED,WAAW;QACT,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAC7B;KACF;IAED,QAAQ;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YACvD,IAAI,CAAC,YAAY,GAAG,IAAI,cAAc,CACpC,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,UAAU,CAChB,CAAC;SACH;KACF;IAED,OAAO;QACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;SAC7C;KACF;IAED,MAAM;;QAEJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,KAAK,CAAC;QACrD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;SACtC;KACF;;4GAtEU,eAAe,kEAiBJ,qBAAqB,6BACrB,qBAAqB,6BACjC,WAAW;gGAnBV,eAAe;2FAAf,eAAe;kBAJ3B,SAAS;mBAAC;oBACT,QAAQ,EAAE,uEAAuE;oBACjF,QAAQ,EAAE,QAAQ;iBACnB;;;8BAkBI,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB;;8BACxC,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB;;8BACxC,MAAM;+BAAC,WAAW;;yBAlBZ,eAAe;sBAAvB,KAAK;;;AC7CR;;;;MAea,YAAY;;yGAAZ,YAAY;0GAAZ,YAAY,iBAFR,eAAe,aAFpB,cAAc,aACd,eAAe;0GAGd,YAAY,YAJd,CAAC,cAAc,CAAC;2FAId,YAAY;kBALxB,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,YAAY,EAAE,CAAC,eAAe,CAAC;iBAChC;;;ACdD;;;;;ACAA;;;;;;"}