ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 7.72 kB
Source Map (JSON)
{"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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"}