{"version":3,"file":"ng-zorro-antd-core-outlet.mjs","sources":["../../components/core/outlet/string_template_outlet.directive.ts","../../components/core/outlet/outlet.module.ts","../../components/core/outlet/public-api.ts","../../components/core/outlet/ng-zorro-antd-core-outlet.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 {\n  Directive,\n  EmbeddedViewRef,\n  Input,\n  OnChanges,\n  SimpleChange,\n  SimpleChanges,\n  TemplateRef,\n  ViewContainerRef\n} from '@angular/core';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Directive({\n  selector: '[nzStringTemplateOutlet]',\n  exportAs: 'nzStringTemplateOutlet'\n})\nexport class NzStringTemplateOutletDirective<_T = unknown> implements OnChanges {\n  private embeddedViewRef: EmbeddedViewRef<NzSafeAny> | null = null;\n  private context = new NzStringTemplateOutletContext();\n  @Input() nzStringTemplateOutletContext: NzSafeAny | null = null;\n  @Input() nzStringTemplateOutlet: NzSafeAny | TemplateRef<NzSafeAny> = null;\n\n  static ngTemplateContextGuard<T>(\n    _dir: NzStringTemplateOutletDirective<T>,\n    _ctx: NzSafeAny\n  ): _ctx is NzStringTemplateOutletContext {\n    return true;\n  }\n\n  private recreateView(): void {\n    this.viewContainer.clear();\n    const isTemplateRef = this.nzStringTemplateOutlet instanceof TemplateRef;\n    const templateRef = (isTemplateRef ? this.nzStringTemplateOutlet : this.templateRef) as NzSafeAny;\n    this.embeddedViewRef = this.viewContainer.createEmbeddedView(\n      templateRef,\n      isTemplateRef ? this.nzStringTemplateOutletContext : this.context\n    );\n  }\n\n  private updateContext(): void {\n    const isTemplateRef = this.nzStringTemplateOutlet instanceof TemplateRef;\n    const newCtx = isTemplateRef ? this.nzStringTemplateOutletContext : this.context;\n    const oldCtx = this.embeddedViewRef!.context as NzSafeAny;\n    if (newCtx) {\n      for (const propName of Object.keys(newCtx)) {\n        oldCtx[propName] = newCtx[propName];\n      }\n    }\n  }\n\n  constructor(private viewContainer: ViewContainerRef, private templateRef: TemplateRef<NzSafeAny>) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzStringTemplateOutletContext, nzStringTemplateOutlet } = changes;\n    const shouldRecreateView = (): boolean => {\n      let shouldOutletRecreate = false;\n      if (nzStringTemplateOutlet) {\n        if (nzStringTemplateOutlet.firstChange) {\n          shouldOutletRecreate = true;\n        } else {\n          const isPreviousOutletTemplate = nzStringTemplateOutlet.previousValue instanceof TemplateRef;\n          const isCurrentOutletTemplate = nzStringTemplateOutlet.currentValue instanceof TemplateRef;\n          shouldOutletRecreate = isPreviousOutletTemplate || isCurrentOutletTemplate;\n        }\n      }\n      const hasContextShapeChanged = (ctxChange: SimpleChange): boolean => {\n        const prevCtxKeys = Object.keys(ctxChange.previousValue || {});\n        const currCtxKeys = Object.keys(ctxChange.currentValue || {});\n        if (prevCtxKeys.length === currCtxKeys.length) {\n          for (const propName of currCtxKeys) {\n            if (prevCtxKeys.indexOf(propName) === -1) {\n              return true;\n            }\n          }\n          return false;\n        } else {\n          return true;\n        }\n      };\n      const shouldContextRecreate =\n        nzStringTemplateOutletContext && hasContextShapeChanged(nzStringTemplateOutletContext);\n      return shouldContextRecreate || shouldOutletRecreate;\n    };\n\n    if (nzStringTemplateOutlet) {\n      this.context.$implicit = nzStringTemplateOutlet.currentValue;\n    }\n\n    const recreateView = shouldRecreateView();\n    if (recreateView) {\n      /** recreate view when context shape or outlet change **/\n      this.recreateView();\n    } else {\n      /** update context **/\n      this.updateContext();\n    }\n  }\n}\n\nexport class NzStringTemplateOutletContext {\n  public $implicit: NzSafeAny;\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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzStringTemplateOutletDirective } from './string_template_outlet.directive';\n\n@NgModule({\n  imports: [CommonModule],\n  exports: [NzStringTemplateOutletDirective],\n  declarations: [NzStringTemplateOutletDirective]\n})\nexport class NzOutletModule {}\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 { NzOutletModule } from './outlet.module';\nexport { NzStringTemplateOutletDirective } from './string_template_outlet.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}