{"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  inject,\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';\nimport { isTemplateRef } from 'ng-zorro-antd/core/util';\n\n@Directive({\n  selector: '[nzStringTemplateOutlet]',\n  exportAs: 'nzStringTemplateOutlet'\n})\nexport class NzStringTemplateOutletDirective<_T = unknown> implements OnChanges {\n  private viewContainer = inject(ViewContainerRef);\n  private templateRef = inject(TemplateRef<NzSafeAny>);\n\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    if (isTemplateRef(this.nzStringTemplateOutlet)) {\n      this.embeddedViewRef = this.viewContainer.createEmbeddedView(\n        this.nzStringTemplateOutlet,\n        this.nzStringTemplateOutletContext\n      );\n    } else {\n      this.embeddedViewRef = this.viewContainer.createEmbeddedView(this.templateRef, this.context);\n    }\n  }\n\n  private updateContext(): void {\n    const newCtx = isTemplateRef(this.nzStringTemplateOutlet) ? 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  ngOnChanges(changes: SimpleChanges): void {\n    const { nzStringTemplateOutletContext, nzStringTemplateOutlet } = changes;\n    const shouldRecreateView = (): boolean => {\n      let shouldOutletRecreate = false;\n      if (nzStringTemplateOutlet) {\n        shouldOutletRecreate =\n          nzStringTemplateOutlet.firstChange ||\n          isTemplateRef(nzStringTemplateOutlet.previousValue) ||\n          isTemplateRef(nzStringTemplateOutlet.currentValue);\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 { NgModule } from '@angular/core';\n\nimport { NzStringTemplateOutletDirective } from './string-template-outlet.directive';\n\n@NgModule({\n  imports: [NzStringTemplateOutletDirective],\n  exports: [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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"}