@yinuo-ngm/server 1.0.15 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/plugins/error-handler.plugin.js +5 -0
- package/lib/routes/api-client/hub-token.routes.js +22 -0
- package/lib/routes/index.js +2 -0
- package/lib/routes/node-version.routes.d.ts +2 -0
- package/lib/routes/node-version.routes.js +56 -0
- package/lib/routes/project.routes.js +5 -0
- package/lib/routes/sprite-browse.routes.js +19 -5
- package/lib/routes/sprite.routes.js +17 -11
- package/lib/routes/static-files.routes.js +16 -0
- package/lib/routes/task.routes.js +7 -0
- package/package.json +3 -3
- package/www/3rdpartylicenses.txt +14 -66
- package/www/browser/chunk-2BZRE4G7.js +1 -0
- package/www/browser/chunk-2X3MRS27.js +1 -0
- package/www/browser/chunk-4KETC6EB.js +1 -0
- package/www/browser/chunk-5T5KA5PG.js +1 -0
- package/www/browser/chunk-6CGHNKJI.js +1 -0
- package/www/browser/chunk-76TVIB33.js +63 -0
- package/www/browser/chunk-7J24TP36.js +1 -0
- package/www/browser/chunk-ACAZUX6C.js +1 -0
- package/www/browser/chunk-B6MBYCXI.js +1 -0
- package/www/browser/chunk-BYEU6KGP.js +2 -0
- package/www/browser/chunk-CZ5AZ3VW.js +1 -0
- package/www/browser/chunk-DW7F5PEA.js +1 -0
- package/www/browser/chunk-DXF7BVK5.js +1 -0
- package/www/browser/chunk-EEVPZGEY.js +1 -0
- package/www/browser/chunk-G2W3B7TJ.js +1 -0
- package/www/browser/chunk-GDWS2L66.js +1 -0
- package/www/browser/chunk-HFZLJHYR.js +1 -0
- package/www/browser/chunk-HGONFYP6.js +1 -0
- package/www/browser/chunk-HHBPULJW.js +2 -0
- package/www/browser/chunk-HRXCR3IN.js +1 -0
- package/www/browser/chunk-INL2PELS.js +1 -0
- package/www/browser/chunk-JHMEKUZ5.js +1 -0
- package/www/browser/chunk-JU3TEDBV.js +37 -0
- package/www/browser/chunk-JZULA5JV.js +1 -0
- package/www/browser/chunk-KVFR7GFV.js +20 -0
- package/www/browser/chunk-L5D75AMV.js +1 -0
- package/www/browser/chunk-L7TMCSHV.js +1 -0
- package/www/browser/chunk-LQ5OXSW7.js +3 -0
- package/www/browser/chunk-MVQTKINJ.js +1 -0
- package/www/browser/chunk-N4LRZJBP.js +1 -0
- package/www/browser/chunk-O2EYEF7J.js +1 -0
- package/www/browser/chunk-OMDHJIUB.js +1 -0
- package/www/browser/chunk-OWUAAOHW.js +2 -0
- package/www/browser/chunk-PIK5YPIB.js +1 -0
- package/www/browser/chunk-RHLQRQDK.js +9 -0
- package/www/browser/chunk-RW2JPJV7.js +1 -0
- package/www/browser/chunk-S3SJ4VVM.js +11 -0
- package/www/browser/chunk-SIVPP74B.js +0 -0
- package/www/browser/chunk-SPRWNZHF.js +15 -0
- package/www/browser/chunk-SQQNR223.js +1 -0
- package/www/browser/chunk-SVQWPHF5.js +1 -0
- package/www/browser/chunk-SYCNSLAW.js +4 -0
- package/www/browser/chunk-T3KK7ZXB.js +2 -0
- package/www/browser/chunk-TMX5TTV3.js +1 -0
- package/www/browser/chunk-UFY3FLDK.js +1 -0
- package/www/browser/chunk-UJOHBN2Y.js +1 -0
- package/www/browser/chunk-UQGCUFNM.js +1 -0
- package/www/browser/chunk-UXXWRMM6.js +1 -0
- package/www/browser/chunk-UZRJGJTD.js +2 -0
- package/www/browser/chunk-WD4IAQR3.js +1 -0
- package/www/browser/chunk-WF2QTF5L.js +1 -0
- package/www/browser/chunk-WI67LAOV.js +4 -0
- package/www/browser/chunk-WNCM6QKB.js +1 -0
- package/www/browser/chunk-XJ5KZQNN.js +1 -0
- package/www/browser/chunk-YETDFSQE.js +1 -0
- package/www/browser/chunk-YMTC5GZK.js +1 -0
- package/www/browser/chunk-YVZHJ76K.js +1 -0
- package/www/browser/chunk-ZNTJRLVH.js +1 -0
- package/www/browser/dark.css +1 -30433
- package/www/browser/default.css +1 -30149
- package/www/browser/index.html +3 -3
- package/www/browser/main-6LN5C22E.js +34 -0
- package/www/browser/scripts-U25HCVEI.js +6 -0
- package/www/browser/styles-ROAHD7MY.css +1 -0
- package/www/browser/add-widget-drawer.component.css.map +0 -7
- package/www/browser/advanced-editor.component.css.map +0 -7
- package/www/browser/api-client.component.css.map +0 -7
- package/www/browser/api-history-drawer.component.css.map +0 -7
- package/www/browser/app.css.map +0 -7
- package/www/browser/attachment-viewer.component.css.map +0 -7
- package/www/browser/auth-editor.component.css.map +0 -7
- package/www/browser/body-editor.component.css.map +0 -7
- package/www/browser/chunk-2YSUXBGC.js +0 -627
- package/www/browser/chunk-2YSUXBGC.js.map +0 -1
- package/www/browser/chunk-3G2GEOPV.js +0 -456
- package/www/browser/chunk-3G2GEOPV.js.map +0 -1
- package/www/browser/chunk-3L72DF3R.js +0 -1683
- package/www/browser/chunk-3L72DF3R.js.map +0 -1
- package/www/browser/chunk-3MCIETCQ.js +0 -8279
- package/www/browser/chunk-3MCIETCQ.js.map +0 -1
- package/www/browser/chunk-665WC4RU.js +0 -5383
- package/www/browser/chunk-665WC4RU.js.map +0 -1
- package/www/browser/chunk-6QMSEZPT.js +0 -10044
- package/www/browser/chunk-6QMSEZPT.js.map +0 -1
- package/www/browser/chunk-6TBQERYX.js +0 -280
- package/www/browser/chunk-6TBQERYX.js.map +0 -1
- package/www/browser/chunk-6UW4MRJZ.js +0 -43
- package/www/browser/chunk-6UW4MRJZ.js.map +0 -7
- package/www/browser/chunk-6XUMIL3W.js +0 -5495
- package/www/browser/chunk-6XUMIL3W.js.map +0 -1
- package/www/browser/chunk-724YOJI3.js +0 -903
- package/www/browser/chunk-724YOJI3.js.map +0 -1
- package/www/browser/chunk-766T7YES.js +0 -437
- package/www/browser/chunk-766T7YES.js.map +0 -1
- package/www/browser/chunk-7FC7DN65.js +0 -728
- package/www/browser/chunk-7FC7DN65.js.map +0 -1
- package/www/browser/chunk-APGQRYWX.js +0 -156
- package/www/browser/chunk-APGQRYWX.js.map +0 -7
- package/www/browser/chunk-AQHSGTHS.js +0 -1960
- package/www/browser/chunk-AQHSGTHS.js.map +0 -1
- package/www/browser/chunk-CTOEAJQK.js +0 -40
- package/www/browser/chunk-CTOEAJQK.js.map +0 -7
- package/www/browser/chunk-DEGQJKKZ.js +0 -409
- package/www/browser/chunk-DEGQJKKZ.js.map +0 -1
- package/www/browser/chunk-DIJX2663.js +0 -1166
- package/www/browser/chunk-DIJX2663.js.map +0 -1
- package/www/browser/chunk-E4XD4GLT.js +0 -427
- package/www/browser/chunk-E4XD4GLT.js.map +0 -1
- package/www/browser/chunk-EQOY6A3M.js +0 -212
- package/www/browser/chunk-EQOY6A3M.js.map +0 -1
- package/www/browser/chunk-ETTBRXVA.js +0 -2643
- package/www/browser/chunk-ETTBRXVA.js.map +0 -1
- package/www/browser/chunk-FLSUSPBD.js +0 -5569
- package/www/browser/chunk-FLSUSPBD.js.map +0 -1
- package/www/browser/chunk-FZNHBEAZ.js +0 -102
- package/www/browser/chunk-FZNHBEAZ.js.map +0 -1
- package/www/browser/chunk-GJC7CZIJ.js +0 -361
- package/www/browser/chunk-GJC7CZIJ.js.map +0 -7
- package/www/browser/chunk-GMCNMOTD.js +0 -844
- package/www/browser/chunk-GMCNMOTD.js.map +0 -7
- package/www/browser/chunk-H43HGCRW.js +0 -198
- package/www/browser/chunk-H43HGCRW.js.map +0 -7
- package/www/browser/chunk-J447GBHM.js +0 -160
- package/www/browser/chunk-J447GBHM.js.map +0 -1
- package/www/browser/chunk-JN3VOWP7.js +0 -384
- package/www/browser/chunk-JN3VOWP7.js.map +0 -1
- package/www/browser/chunk-KSHAGY2M.js +0 -399
- package/www/browser/chunk-KSHAGY2M.js.map +0 -7
- package/www/browser/chunk-KV72AKOD.js +0 -59
- package/www/browser/chunk-KV72AKOD.js.map +0 -7
- package/www/browser/chunk-LAVMY2SJ.js +0 -26
- package/www/browser/chunk-LAVMY2SJ.js.map +0 -7
- package/www/browser/chunk-LLRVGHG5.js +0 -73
- package/www/browser/chunk-LLRVGHG5.js.map +0 -7
- package/www/browser/chunk-LPME4AJ3.js +0 -196
- package/www/browser/chunk-LPME4AJ3.js.map +0 -1
- package/www/browser/chunk-LVPSURVU.js +0 -4615
- package/www/browser/chunk-LVPSURVU.js.map +0 -1
- package/www/browser/chunk-MMPO7QLO.js +0 -4146
- package/www/browser/chunk-MMPO7QLO.js.map +0 -7
- package/www/browser/chunk-O7LB6VFM.js +0 -1953
- package/www/browser/chunk-O7LB6VFM.js.map +0 -1
- package/www/browser/chunk-P5CWA4FO.js +0 -685
- package/www/browser/chunk-P5CWA4FO.js.map +0 -1
- package/www/browser/chunk-RBWIWNTL.js +0 -203
- package/www/browser/chunk-RBWIWNTL.js.map +0 -7
- package/www/browser/chunk-RUXJCM3V.js +0 -26199
- package/www/browser/chunk-RUXJCM3V.js.map +0 -1
- package/www/browser/chunk-S77VVYUZ.js +0 -168
- package/www/browser/chunk-S77VVYUZ.js.map +0 -1
- package/www/browser/chunk-SCXPYFOB.js +0 -4316
- package/www/browser/chunk-SCXPYFOB.js.map +0 -1
- package/www/browser/chunk-SS73S33S.js +0 -471
- package/www/browser/chunk-SS73S33S.js.map +0 -7
- package/www/browser/chunk-T6UAOWNP.js +0 -600
- package/www/browser/chunk-T6UAOWNP.js.map +0 -1
- package/www/browser/chunk-TEW4MY4J.js +0 -148
- package/www/browser/chunk-TEW4MY4J.js.map +0 -7
- package/www/browser/chunk-TVORF3SF.js +0 -82
- package/www/browser/chunk-TVORF3SF.js.map +0 -7
- package/www/browser/chunk-UAN42EUZ.js +0 -2147
- package/www/browser/chunk-UAN42EUZ.js.map +0 -1
- package/www/browser/chunk-ULOHDK7Y.js +0 -1
- package/www/browser/chunk-ULOHDK7Y.js.map +0 -7
- package/www/browser/chunk-UYJ3FVRV.js +0 -3978
- package/www/browser/chunk-UYJ3FVRV.js.map +0 -1
- package/www/browser/chunk-VXHZMSDM.js +0 -5509
- package/www/browser/chunk-VXHZMSDM.js.map +0 -1
- package/www/browser/chunk-VYNQPZQO.js +0 -281
- package/www/browser/chunk-VYNQPZQO.js.map +0 -1
- package/www/browser/chunk-W3J23PZI.js +0 -9213
- package/www/browser/chunk-W3J23PZI.js.map +0 -1
- package/www/browser/chunk-W5HGHCQT.js +0 -1642
- package/www/browser/chunk-W5HGHCQT.js.map +0 -7
- package/www/browser/chunk-XF5H7E4L.js +0 -4723
- package/www/browser/chunk-XF5H7E4L.js.map +0 -1
- package/www/browser/chunk-XNFNEBMY.js +0 -398
- package/www/browser/chunk-XNFNEBMY.js.map +0 -7
- package/www/browser/chunk-XQY5SPGI.js +0 -30811
- package/www/browser/chunk-XQY5SPGI.js.map +0 -1
- package/www/browser/chunk-Y7JBZHNK.js +0 -514
- package/www/browser/chunk-Y7JBZHNK.js.map +0 -1
- package/www/browser/chunk-YWHRP4X3.js +0 -406
- package/www/browser/chunk-YWHRP4X3.js.map +0 -1
- package/www/browser/chunk-Z7FJIV62.js +0 -95
- package/www/browser/chunk-Z7FJIV62.js.map +0 -7
- package/www/browser/chunk-ZBZHXS46.js +0 -1674
- package/www/browser/chunk-ZBZHXS46.js.map +0 -1
- package/www/browser/chunk-ZZA5NVAI.js +0 -735
- package/www/browser/chunk-ZZA5NVAI.js.map +0 -1
- package/www/browser/collection-modal.component.css.map +0 -7
- package/www/browser/collection-tree-item.component.css.map +0 -7
- package/www/browser/collection-tree.component.css.map +0 -7
- package/www/browser/config-change-bar-component.css.map +0 -7
- package/www/browser/config-item-component.css.map +0 -7
- package/www/browser/config-nav-component.css.map +0 -7
- package/www/browser/config-section-component.css.map +0 -7
- package/www/browser/create-summary-aside.component.css.map +0 -7
- package/www/browser/curl-actions.component.css.map +0 -7
- package/www/browser/dark.css.map +0 -7
- package/www/browser/dashboard-canvas.component.css.map +0 -7
- package/www/browser/dashboard.component.css.map +0 -7
- package/www/browser/default.css.map +0 -7
- package/www/browser/detail-item-card.component.css.map +0 -7
- package/www/browser/ellipsis-text.component.css.map +0 -7
- package/www/browser/env-modal.component.css.map +0 -7
- package/www/browser/env-picker.component.css.map +0 -7
- package/www/browser/feedback.component.css.map +0 -7
- package/www/browser/fs-explorer.component.css.map +0 -7
- package/www/browser/git-import-modal.component.css.map +0 -7
- package/www/browser/hub-v2-personal-token-modal.component.css.map +0 -7
- package/www/browser/issue-action-area.component.css.map +0 -7
- package/www/browser/issue-add-participants-dialog.component.css.map +0 -7
- package/www/browser/issue-assign-dialog.component.css.map +0 -7
- package/www/browser/issue-attachment-area.component.css.map +0 -7
- package/www/browser/issue-base-info-area.component.css.map +0 -7
- package/www/browser/issue-branches.component.css.map +0 -7
- package/www/browser/issue-close-dialog.component.css.map +0 -7
- package/www/browser/issue-collaborators-panel.component.css.map +0 -7
- package/www/browser/issue-comment-editor.component.css.map +0 -7
- package/www/browser/issue-create-branch-dialog.component.css.map +0 -7
- package/www/browser/issue-description-area.component.css.map +0 -7
- package/www/browser/issue-detail.component.css.map +0 -7
- package/www/browser/issue-resolve-dialog.component.css.map +0 -7
- package/www/browser/issue-start-own-branch-dialog.component.css.map +0 -7
- package/www/browser/issues-list-table.component.css.map +0 -7
- package/www/browser/issues.component.css.map +0 -7
- package/www/browser/kill-port-widget.component.css.map +0 -7
- package/www/browser/kv-table.component.css.map +0 -7
- package/www/browser/layout-footer.component.css.map +0 -7
- package/www/browser/layout-header.component.css.map +0 -7
- package/www/browser/layout-menu.component.css.map +0 -7
- package/www/browser/layout-project-nav.component.css.map +0 -7
- package/www/browser/layout-sidebar.component.css.map +0 -7
- package/www/browser/layout.component.css.map +0 -7
- package/www/browser/less-viewport-component.css.map +0 -7
- package/www/browser/main.js +0 -1872
- package/www/browser/main.js.map +0 -1
- package/www/browser/markdown-viewer.component.css.map +0 -7
- package/www/browser/news-feed-widget.component.css.map +0 -7
- package/www/browser/ng-devtool.component.css.map +0 -7
- package/www/browser/nginx-config-editor.component.css.map +0 -7
- package/www/browser/nginx-log-viewer.component.css.map +0 -7
- package/www/browser/nginx-secondary-logs-tab.component.css.map +0 -7
- package/www/browser/nginx-secondary-perf-tab.component.css.map +0 -7
- package/www/browser/nginx-secondary-settings-tab.component.css.map +0 -7
- package/www/browser/nginx-secondary-ssl-tab.component.css.map +0 -7
- package/www/browser/nginx-secondary-test-tab.component.css.map +0 -7
- package/www/browser/nginx-secondary-traffic-tab.component.css.map +0 -7
- package/www/browser/nginx-secondary-upstream-tab.component.css.map +0 -7
- package/www/browser/nginx-section-card.component.css.map +0 -7
- package/www/browser/nginx-server-drawer.component.css.map +0 -7
- package/www/browser/nginx-server-list.component.css.map +0 -7
- package/www/browser/nginx-stat-card.component.css.map +0 -7
- package/www/browser/nginx.component.css.map +0 -7
- package/www/browser/page-layout.component.css.map +0 -7
- package/www/browser/pick-workspace-modal.component.css.map +0 -7
- package/www/browser/polyfills.js +0 -26584
- package/www/browser/polyfills.js.map +0 -7
- package/www/browser/project-conf.component.css.map +0 -7
- package/www/browser/project-create-modal.component.css.map +0 -7
- package/www/browser/project-create.component.css.map +0 -7
- package/www/browser/project-deps.component.css.map +0 -7
- package/www/browser/project-edit-modal.component.css.map +0 -7
- package/www/browser/project-import.component.css.map +0 -7
- package/www/browser/project-item-popover.component.css.map +0 -7
- package/www/browser/project-item.component.css.map +0 -7
- package/www/browser/project-list.component.css.map +0 -7
- package/www/browser/projects.component.css.map +0 -7
- package/www/browser/quick-task-widget.component.css.map +0 -7
- package/www/browser/rd-action-area.component.css.map +0 -7
- package/www/browser/rd-advance-stage-dialog.component.css.map +0 -7
- package/www/browser/rd-block-dialog.component.css.map +0 -7
- package/www/browser/rd-create-dialog.component.css.map +0 -7
- package/www/browser/rd-detail.component.css.map +0 -7
- package/www/browser/rd-item-card.component.css.map +0 -7
- package/www/browser/rd-list-board.component.css.map +0 -7
- package/www/browser/rd-list-table.component.css.map +0 -7
- package/www/browser/rd.component.css.map +0 -7
- package/www/browser/request-collections.component.css.map +0 -7
- package/www/browser/request-editor.component.css.map +0 -7
- package/www/browser/request-list-item.component.css.map +0 -7
- package/www/browser/request-list.component.css.map +0 -7
- package/www/browser/request-tabs-bar.component.css.map +0 -7
- package/www/browser/request-tabs.component.css.map +0 -7
- package/www/browser/request-urlbar.component.css.map +0 -7
- package/www/browser/response-viewer.component.css.map +0 -7
- package/www/browser/scripts.js +0 -245
- package/www/browser/scripts.js.map +0 -7
- package/www/browser/setting.component.css.map +0 -7
- package/www/browser/sprite-conf-modal.component.css.map +0 -7
- package/www/browser/sprite-icons-panel-component.css.map +0 -7
- package/www/browser/sprite-images-panel-component.css.map +0 -7
- package/www/browser/sprite-result-tabs.component.css.map +0 -7
- package/www/browser/sprite-viewport-component.css.map +0 -7
- package/www/browser/sprite.component.css.map +0 -7
- package/www/browser/step-advance.component.css.map +0 -7
- package/www/browser/step-basic.component.css.map +0 -7
- package/www/browser/step-config.component.css.map +0 -7
- package/www/browser/step-features.component.css.map +0 -7
- package/www/browser/step-preset.component.css.map +0 -7
- package/www/browser/step-summary-aside.component.css.map +0 -7
- package/www/browser/styles.css +0 -258
- package/www/browser/styles.css.map +0 -7
- package/www/browser/system-log.component.css.map +0 -7
- package/www/browser/task-actions.component.css.map +0 -7
- package/www/browser/task-console.component.css.map +0 -7
- package/www/browser/task-header.component.css.map +0 -7
- package/www/browser/task-list.component.css.map +0 -7
- package/www/browser/tasks.component.css.map +0 -7
- package/www/browser/terminal-view.component.css.map +0 -7
- package/www/browser/welcome-widget.component.css.map +0 -7
- package/www/browser/widget-base.component.css.map +0 -7
- package/www/browser/widget-host.component.css.map +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-tabs.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { inject, ElementRef, Input, Component, input, TemplateRef, Directive, ChangeDetectionStrategy, ViewEncapsulation, booleanAttribute, EventEmitter, ChangeDetectorRef, Output, NgZone, DestroyRef, ANIMATION_MODULE_TYPE, computed, ContentChildren, ViewChild, InjectionToken, ContentChild, QueryList, contentChildren, HOST_TAG_NAME, forwardRef, NgModule } from '@angular/core';\nimport * as i1 from 'ng-zorro-antd/core/outlet';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport * as i2 from 'ng-zorro-antd/icon';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { tabSwitchMotion } from 'ng-zorro-antd/core/animation';\nimport { RouterLink, Router, NavigationEnd } from '@angular/router';\nimport * as i1$1 from '@angular/cdk/a11y';\nimport { FocusKeyManager, A11yModule } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { hasModifierKey, SPACE, ENTER, DOWN_ARROW, RIGHT_ARROW, UP_ARROW, LEFT_ARROW } from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { animationFrameScheduler, asapScheduler, of, merge, Subject, Subscription } from 'rxjs';\nimport { auditTime, startWith, first, filter, delay } from 'rxjs/operators';\nimport { NzResizeObserver } from 'ng-zorro-antd/cdk/resize-observer';\nimport { requestAnimationFrame } from 'ng-zorro-antd/core/polyfill';\nimport { NzDropdownMenuComponent, NzDropDownDirective } from 'ng-zorro-antd/dropdown';\nimport * as i3 from 'ng-zorro-antd/menu';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\nimport { fromEventOutsideAngular, wrapIntoObservable } from 'ng-zorro-antd/core/util';\nimport { __esDecorate, __runInitializers } from 'tslib';\nimport { WithConfig, NzConfigService } from 'ng-zorro-antd/core/config';\nimport { warn, PREFIX } from 'ng-zorro-antd/core/logger';\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 */\nclass NzTabChangeEvent {\n index;\n tab;\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 */\nclass NzTabAddButtonComponent {\n addIcon = 'plus';\n element = inject((ElementRef)).nativeElement;\n getElementWidth() {\n return this.element?.offsetWidth || 0;\n }\n getElementHeight() {\n return this.element?.offsetHeight || 0;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabAddButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: NzTabAddButtonComponent, isStandalone: true, selector: \"nz-tab-add-button, button[nz-tab-add-button]\", inputs: { addIcon: \"addIcon\" }, host: { attributes: { \"aria-label\": \"Add tab\", \"type\": \"button\" }, classAttribute: \"ant-tabs-nav-add\" }, ngImport: i0, template: `\n <ng-container *nzStringTemplateOutlet=\"addIcon; let icon\">\n <nz-icon [nzType]=\"icon\" nzTheme=\"outline\" />\n </ng-container>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: NzOutletModule }, { kind: \"directive\", type: i1.NzStringTemplateOutletDirective, selector: \"[nzStringTemplateOutlet]\", inputs: [\"nzStringTemplateOutletContext\", \"nzStringTemplateOutlet\"], exportAs: [\"nzStringTemplateOutlet\"] }, { kind: \"ngmodule\", type: NzIconModule }, { kind: \"directive\", type: i2.NzIconDirective, selector: \"nz-icon,[nz-icon]\", inputs: [\"nzSpin\", \"nzRotate\", \"nzType\", \"nzTheme\", \"nzTwotoneColor\", \"nzIconfont\"], exportAs: [\"nzIcon\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabAddButtonComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'nz-tab-add-button, button[nz-tab-add-button]',\n template: `\n <ng-container *nzStringTemplateOutlet=\"addIcon; let icon\">\n <nz-icon [nzType]=\"icon\" nzTheme=\"outline\" />\n </ng-container>\n `,\n host: {\n class: 'ant-tabs-nav-add',\n 'aria-label': 'Add tab',\n type: 'button'\n },\n imports: [NzOutletModule, NzIconModule]\n }]\n }], propDecorators: { addIcon: [{\n type: Input\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 */\nclass NzTabBarExtraContentDirective {\n position = input('end', ...(ngDevMode ? [{ debugName: \"position\", alias: 'nzTabBarExtraContent' }] : [{ alias: 'nzTabBarExtraContent' }]));\n templateRef = inject(TemplateRef);\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabBarExtraContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.0\", type: NzTabBarExtraContentDirective, isStandalone: true, selector: \"[nzTabBarExtraContent]:not(nz-tabset):not(nz-tabs)\", inputs: { position: { classPropertyName: \"position\", publicName: \"nzTabBarExtraContent\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabBarExtraContentDirective, decorators: [{\n type: Directive,\n args: [{\n // TODO: Remove `nz-tabset` in 21.0.0\n selector: '[nzTabBarExtraContent]:not(nz-tabset):not(nz-tabs)'\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 */\nclass NzTabBodyComponent {\n content = null;\n active = false;\n animated = true;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: NzTabBodyComponent, isStandalone: true, selector: \"[nz-tab-body]\", inputs: { content: \"content\", active: \"active\", animated: \"animated\" }, host: { properties: { \"class.ant-tabs-tabpane-active\": \"active\", \"class.ant-tabs-tabpane-hidden\": \"animated ? null : !active\", \"attr.tabindex\": \"active ? 0 : -1\", \"attr.aria-hidden\": \"!active\", \"style.overflow-y\": \"animated ? active ? null : \\\"none\\\" : null\", \"@tabSwitchMotion\": \"active ? 'enter' : 'leave'\", \"@.disabled\": \"!animated\" }, classAttribute: \"ant-tabs-tabpane\" }, exportAs: [\"nzTabBody\"], ngImport: i0, template: `<ng-template [ngTemplateOutlet]=\"content\"></ng-template>`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], animations: [tabSwitchMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabBodyComponent, decorators: [{\n type: Component,\n args: [{\n selector: '[nz-tab-body]',\n exportAs: 'nzTabBody',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template [ngTemplateOutlet]=\"content\"></ng-template>`,\n host: {\n class: 'ant-tabs-tabpane',\n '[class.ant-tabs-tabpane-active]': 'active',\n '[class.ant-tabs-tabpane-hidden]': 'animated ? null : !active',\n '[attr.tabindex]': 'active ? 0 : -1',\n '[attr.aria-hidden]': '!active',\n '[style.overflow-y]': 'animated ? active ? null : \"none\" : null',\n '[@tabSwitchMotion]': `active ? 'enter' : 'leave'`,\n '[@.disabled]': `!animated`\n },\n imports: [NgTemplateOutlet],\n animations: [tabSwitchMotion]\n }]\n }], propDecorators: { content: [{\n type: Input\n }], active: [{\n type: Input\n }], animated: [{\n type: Input\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 */\nclass NzTabCloseButtonComponent {\n closeIcon = 'close';\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabCloseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: NzTabCloseButtonComponent, isStandalone: true, selector: \"nz-tab-close-button, button[nz-tab-close-button]\", inputs: { closeIcon: \"closeIcon\" }, host: { attributes: { \"aria-label\": \"Close tab\", \"type\": \"button\" }, classAttribute: \"ant-tabs-tab-remove\" }, ngImport: i0, template: `\n <ng-container *nzStringTemplateOutlet=\"closeIcon; let icon\">\n <nz-icon [nzType]=\"icon\" nzTheme=\"outline\" />\n </ng-container>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: NzOutletModule }, { kind: \"directive\", type: i1.NzStringTemplateOutletDirective, selector: \"[nzStringTemplateOutlet]\", inputs: [\"nzStringTemplateOutletContext\", \"nzStringTemplateOutlet\"], exportAs: [\"nzStringTemplateOutlet\"] }, { kind: \"ngmodule\", type: NzIconModule }, { kind: \"directive\", type: i2.NzIconDirective, selector: \"nz-icon,[nz-icon]\", inputs: [\"nzSpin\", \"nzRotate\", \"nzType\", \"nzTheme\", \"nzTwotoneColor\", \"nzIconfont\"], exportAs: [\"nzIcon\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabCloseButtonComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'nz-tab-close-button, button[nz-tab-close-button]',\n template: `\n <ng-container *nzStringTemplateOutlet=\"closeIcon; let icon\">\n <nz-icon [nzType]=\"icon\" nzTheme=\"outline\" />\n </ng-container>\n `,\n host: {\n class: 'ant-tabs-tab-remove',\n 'aria-label': 'Close tab',\n type: 'button'\n },\n imports: [NzOutletModule, NzIconModule]\n }]\n }], propDecorators: { closeIcon: [{\n type: Input\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/**\n * Fix https://github.com/angular/angular/issues/8563\n */\nclass NzTabLinkTemplateDirective {\n templateRef = inject(TemplateRef, { host: true });\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabLinkTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: NzTabLinkTemplateDirective, isStandalone: true, selector: \"ng-template[nzTabLink]\", exportAs: [\"nzTabLinkTemplate\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabLinkTemplateDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'ng-template[nzTabLink]',\n exportAs: 'nzTabLinkTemplate'\n }]\n }] });\n/**\n * This component is for catching `routerLink` directive.\n */\nclass NzTabLinkDirective {\n elementRef = inject((ElementRef));\n routerLink = inject(RouterLink, { self: true, optional: true });\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: NzTabLinkDirective, isStandalone: true, selector: \"a[nz-tab-link]\", exportAs: [\"nzTabLink\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabLinkDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'a[nz-tab-link]',\n exportAs: 'nzTabLink'\n }]\n }] });\n\nclass NzTabNavItemDirective {\n disabled = false;\n tab;\n active = false;\n elementRef = inject((ElementRef));\n el = this.elementRef.nativeElement;\n parentElement = this.el.parentElement;\n focus() {\n this.el.focus({ preventScroll: true });\n }\n get width() {\n return this.parentElement.offsetWidth;\n }\n get height() {\n return this.parentElement.offsetHeight;\n }\n get left() {\n return this.parentElement.offsetLeft;\n }\n get top() {\n return this.parentElement.offsetTop;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabNavItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"20.3.0\", type: NzTabNavItemDirective, isStandalone: true, selector: \"[nzTabNavItem]\", inputs: { disabled: [\"disabled\", \"disabled\", booleanAttribute], tab: \"tab\", active: [\"active\", \"active\", booleanAttribute] }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabNavItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[nzTabNavItem]'\n }]\n }], propDecorators: { disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], tab: [{\n type: Input\n }], active: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\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 */\nclass NzTabNavOperationComponent {\n items = [];\n addable = false;\n addIcon = 'plus';\n addClicked = new EventEmitter();\n selected = new EventEmitter();\n closeAnimationWaitTimeoutId;\n menuOpened = false;\n cdr = inject(ChangeDetectorRef);\n element = inject((ElementRef)).nativeElement;\n onSelect(item) {\n if (!item.disabled) {\n // ignore nzCanDeactivate\n item.tab.nzClick.emit();\n this.selected.emit(item);\n }\n }\n onContextmenu(item, e) {\n if (!item.disabled) {\n item.tab.nzContextmenu.emit(e);\n }\n }\n showItems() {\n clearTimeout(this.closeAnimationWaitTimeoutId);\n this.menuOpened = true;\n this.cdr.markForCheck();\n }\n menuVisChange(visible) {\n if (!visible) {\n this.closeAnimationWaitTimeoutId = setTimeout(() => {\n this.menuOpened = false;\n this.cdr.markForCheck();\n }, 150);\n }\n }\n getElementWidth() {\n return this.element?.offsetWidth || 0;\n }\n getElementHeight() {\n return this.element?.offsetHeight || 0;\n }\n ngOnDestroy() {\n clearTimeout(this.closeAnimationWaitTimeoutId);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabNavOperationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: NzTabNavOperationComponent, isStandalone: true, selector: \"nz-tab-nav-operation\", inputs: { items: \"items\", addable: [\"addable\", \"addable\", booleanAttribute], addIcon: \"addIcon\" }, outputs: { addClicked: \"addClicked\", selected: \"selected\" }, host: { properties: { \"class.ant-tabs-nav-operations-hidden\": \"items.length === 0\" }, classAttribute: \"ant-tabs-nav-operations\" }, exportAs: [\"nzTabNavOperation\"], ngImport: i0, template: `\n <button\n nz-dropdown\n class=\"ant-tabs-nav-more\"\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n nzOverlayClassName=\"nz-tabs-dropdown\"\n #dropdownTrigger=\"nzDropdown\"\n [nzDropdownMenu]=\"menu\"\n [nzOverlayStyle]=\"{ minWidth: '46px' }\"\n [nzMatchWidthElement]=\"null\"\n (nzVisibleChange)=\"menuVisChange($event)\"\n (mouseenter)=\"showItems()\"\n >\n <nz-icon nzType=\"ellipsis\" />\n </button>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n @if (menuOpened) {\n <ul nz-menu>\n @for (item of items; track item) {\n <li\n nz-menu-item\n class=\"ant-tabs-dropdown-menu-item\"\n [class.ant-tabs-dropdown-menu-item-disabled]=\"item.disabled\"\n [nzSelected]=\"item.active\"\n [nzDisabled]=\"item.disabled\"\n (click)=\"onSelect(item)\"\n (contextmenu)=\"onContextmenu(item, $event)\"\n >\n <ng-container *nzStringTemplateOutlet=\"item.tab.label; context: { visible: false }\">\n {{ item.tab.label }}\n </ng-container>\n </li>\n }\n </ul>\n }\n </nz-dropdown-menu>\n @if (addable) {\n <button nz-tab-add-button [addIcon]=\"addIcon\" (click)=\"addClicked.emit()\"></button>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: NzIconModule }, { kind: \"directive\", type: i2.NzIconDirective, selector: \"nz-icon,[nz-icon]\", inputs: [\"nzSpin\", \"nzRotate\", \"nzType\", \"nzTheme\", \"nzTwotoneColor\", \"nzIconfont\"], exportAs: [\"nzIcon\"] }, { kind: \"ngmodule\", type: NzOutletModule }, { kind: \"directive\", type: i1.NzStringTemplateOutletDirective, selector: \"[nzStringTemplateOutlet]\", inputs: [\"nzStringTemplateOutletContext\", \"nzStringTemplateOutlet\"], exportAs: [\"nzStringTemplateOutlet\"] }, { kind: \"component\", type: NzTabAddButtonComponent, selector: \"nz-tab-add-button, button[nz-tab-add-button]\", inputs: [\"addIcon\"] }, { kind: \"component\", type: NzDropdownMenuComponent, selector: \"nz-dropdown-menu\", exportAs: [\"nzDropdownMenu\"] }, { kind: \"ngmodule\", type: NzMenuModule }, { kind: \"directive\", type: i3.NzMenuDirective, selector: \"[nz-menu]\", inputs: [\"nzInlineIndent\", \"nzTheme\", \"nzMode\", \"nzInlineCollapsed\", \"nzSelectable\"], outputs: [\"nzClick\"], exportAs: [\"nzMenu\"] }, { kind: \"component\", type: i3.NzMenuItemComponent, selector: \"[nz-menu-item]\", inputs: [\"nzPaddingLeft\", \"nzDisabled\", \"nzSelected\", \"nzDanger\", \"nzMatchRouterExact\", \"nzMatchRouter\"], exportAs: [\"nzMenuItem\"] }, { kind: \"directive\", type: NzDropDownDirective, selector: \"[nz-dropdown]\", inputs: [\"nzDropdownMenu\", \"nzTrigger\", \"nzMatchWidthElement\", \"nzBackdrop\", \"nzClickHide\", \"nzDisabled\", \"nzVisible\", \"nzArrow\", \"nzOverlayClassName\", \"nzOverlayStyle\", \"nzPlacement\"], outputs: [\"nzVisibleChange\"], exportAs: [\"nzDropdown\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabNavOperationComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'nz-tab-nav-operation',\n exportAs: 'nzTabNavOperation',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <button\n nz-dropdown\n class=\"ant-tabs-nav-more\"\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n nzOverlayClassName=\"nz-tabs-dropdown\"\n #dropdownTrigger=\"nzDropdown\"\n [nzDropdownMenu]=\"menu\"\n [nzOverlayStyle]=\"{ minWidth: '46px' }\"\n [nzMatchWidthElement]=\"null\"\n (nzVisibleChange)=\"menuVisChange($event)\"\n (mouseenter)=\"showItems()\"\n >\n <nz-icon nzType=\"ellipsis\" />\n </button>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n @if (menuOpened) {\n <ul nz-menu>\n @for (item of items; track item) {\n <li\n nz-menu-item\n class=\"ant-tabs-dropdown-menu-item\"\n [class.ant-tabs-dropdown-menu-item-disabled]=\"item.disabled\"\n [nzSelected]=\"item.active\"\n [nzDisabled]=\"item.disabled\"\n (click)=\"onSelect(item)\"\n (contextmenu)=\"onContextmenu(item, $event)\"\n >\n <ng-container *nzStringTemplateOutlet=\"item.tab.label; context: { visible: false }\">\n {{ item.tab.label }}\n </ng-container>\n </li>\n }\n </ul>\n }\n </nz-dropdown-menu>\n @if (addable) {\n <button nz-tab-add-button [addIcon]=\"addIcon\" (click)=\"addClicked.emit()\"></button>\n }\n `,\n host: {\n class: 'ant-tabs-nav-operations',\n '[class.ant-tabs-nav-operations-hidden]': 'items.length === 0'\n },\n imports: [\n NzIconModule,\n NzOutletModule,\n NzTabAddButtonComponent,\n NzDropdownMenuComponent,\n NzMenuModule,\n NzDropDownDirective\n ]\n }]\n }], propDecorators: { items: [{\n type: Input\n }], addable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], addIcon: [{\n type: Input\n }], addClicked: [{\n type: Output\n }], selected: [{\n type: Output\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 */\nconst MIN_SWIPE_DISTANCE = 0.1;\nconst STOP_SWIPE_DISTANCE = 0.01;\nconst REFRESH_INTERVAL = 20;\nconst SPEED_OFF_MULTIPLE = 0.995 ** REFRESH_INTERVAL;\nclass NzTabScrollListDirective {\n ngZone = inject(NgZone);\n destroyRef = inject(DestroyRef);\n el = inject((ElementRef)).nativeElement;\n lastWheelDirection = null;\n lastWheelTimestamp = 0;\n lastTimestamp = 0;\n lastTimeDiff = 0;\n lastMixedWheel = 0;\n lastWheelPrevent = false;\n touchPosition = null;\n lastOffset = null;\n motion = -1;\n offsetChange = new EventEmitter();\n tabScroll = new EventEmitter();\n ngOnInit() {\n const wheel$ = fromEventOutsideAngular(this.el, 'wheel');\n const touchstart$ = fromEventOutsideAngular(this.el, 'touchstart');\n const touchmove$ = fromEventOutsideAngular(this.el, 'touchmove');\n const touchend$ = fromEventOutsideAngular(this.el, 'touchend');\n this.subscribeWrap('wheel', wheel$, this.onWheel);\n this.subscribeWrap('touchstart', touchstart$, this.onTouchStart);\n this.subscribeWrap('touchmove', touchmove$, this.onTouchMove);\n this.subscribeWrap('touchend', touchend$, this.onTouchEnd);\n }\n subscribeWrap(type, observable, handler) {\n return observable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {\n this.tabScroll.emit({\n type,\n event\n });\n if (!event.defaultPrevented) {\n handler(event);\n }\n });\n }\n onTouchEnd = (e) => {\n if (!this.touchPosition) {\n return;\n }\n const lastOffset = this.lastOffset;\n const lastTimeDiff = this.lastTimeDiff;\n this.lastOffset = this.touchPosition = null;\n if (lastOffset) {\n const distanceX = lastOffset.x / lastTimeDiff;\n const distanceY = lastOffset.y / lastTimeDiff;\n const absX = Math.abs(distanceX);\n const absY = Math.abs(distanceY);\n // Skip swipe if low distance\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) {\n return;\n }\n let currentX = distanceX;\n let currentY = distanceY;\n this.motion = window.setInterval(() => {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(this.motion);\n return;\n }\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n this.onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL, e);\n }, REFRESH_INTERVAL);\n }\n };\n onTouchMove = (e) => {\n if (!this.touchPosition) {\n return;\n }\n e.preventDefault();\n const { screenX, screenY } = e.touches[0];\n const offsetX = screenX - this.touchPosition.x;\n const offsetY = screenY - this.touchPosition.y;\n this.onOffset(offsetX, offsetY, e);\n const now = Date.now();\n this.lastTimeDiff = now - this.lastTimestamp;\n this.lastTimestamp = now;\n this.lastOffset = { x: offsetX, y: offsetY };\n this.touchPosition = { x: screenX, y: screenY };\n };\n onTouchStart = (e) => {\n const { screenX, screenY } = e.touches[0];\n this.touchPosition = { x: screenX, y: screenY };\n window.clearInterval(this.motion);\n };\n onWheel = (e) => {\n const { deltaX, deltaY } = e;\n let mixed;\n const absX = Math.abs(deltaX);\n const absY = Math.abs(deltaY);\n if (absX === absY) {\n mixed = this.lastWheelDirection === 'x' ? deltaX : deltaY;\n }\n else if (absX > absY) {\n mixed = deltaX;\n this.lastWheelDirection = 'x';\n }\n else {\n mixed = deltaY;\n this.lastWheelDirection = 'y';\n }\n // Optimize mac touch scroll\n const now = Date.now();\n const absMixed = Math.abs(mixed);\n if (now - this.lastWheelTimestamp > 100 || absMixed - this.lastMixedWheel > 10) {\n this.lastWheelPrevent = false;\n }\n this.onOffset(-mixed, -mixed, e);\n if (e.defaultPrevented || this.lastWheelPrevent) {\n this.lastWheelPrevent = true;\n }\n this.lastWheelTimestamp = now;\n this.lastMixedWheel = absMixed;\n };\n onOffset(x, y, event) {\n if (this.offsetChange.observers.length) {\n this.ngZone.run(() => {\n this.offsetChange.emit({\n x,\n y,\n event\n });\n });\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabScrollListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: NzTabScrollListDirective, isStandalone: true, selector: \"[nzTabScrollList]\", outputs: { offsetChange: \"offsetChange\", tabScroll: \"tabScroll\" }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabScrollListDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[nzTabScrollList]'\n }]\n }], propDecorators: { offsetChange: [{\n type: Output\n }], tabScroll: [{\n type: Output\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 */\nclass NzTabsInkBarDirective {\n ngZone = inject(NgZone);\n el = inject((ElementRef)).nativeElement;\n position = 'horizontal';\n animated = true;\n animationMode = inject(ANIMATION_MODULE_TYPE, { optional: true });\n get _animated() {\n return this.animationMode !== 'NoopAnimations' && this.animated;\n }\n alignToElement(element) {\n this.ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this.setStyles(element));\n });\n }\n setStyles(element) {\n if (this.position === 'horizontal') {\n this.el.style.top = '';\n this.el.style.height = '';\n this.el.style.left = this.getLeftPosition(element);\n this.el.style.width = this.getElementWidth(element);\n }\n else {\n this.el.style.left = '';\n this.el.style.width = '';\n this.el.style.top = this.getTopPosition(element);\n this.el.style.height = this.getElementHeight(element);\n }\n }\n getLeftPosition(element) {\n return element ? `${element.offsetLeft || 0}px` : '0';\n }\n getElementWidth(element) {\n return element ? `${element.offsetWidth || 0}px` : '0';\n }\n getTopPosition(element) {\n return element ? `${element.offsetTop || 0}px` : '0';\n }\n getElementHeight(element) {\n return element ? `${element.offsetHeight || 0}px` : '0';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabsInkBarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: NzTabsInkBarDirective, isStandalone: true, selector: \"nz-tabs-ink-bar, [nz-tabs-ink-bar]\", inputs: { position: \"position\", animated: \"animated\" }, host: { properties: { \"class.ant-tabs-ink-bar-animated\": \"_animated\" }, classAttribute: \"ant-tabs-ink-bar\" }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabsInkBarDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'nz-tabs-ink-bar, [nz-tabs-ink-bar]',\n host: {\n class: 'ant-tabs-ink-bar',\n '[class.ant-tabs-ink-bar-animated]': '_animated'\n }\n }]\n }], propDecorators: { position: [{\n type: Input\n }], animated: [{\n type: Input\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 */\nconst RESIZE_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\nconst CSS_TRANSFORM_TIME = 150;\nclass NzTabNavBarComponent {\n cdr = inject(ChangeDetectorRef);\n ngZone = inject(NgZone);\n viewportRuler = inject(ViewportRuler);\n nzResizeObserver = inject(NzResizeObserver);\n dir = inject(Directionality);\n destroyRef = inject(DestroyRef);\n indexFocused = new EventEmitter();\n selectFocusedIndex = new EventEmitter();\n addClicked = new EventEmitter();\n tabScroll = new EventEmitter();\n position = 'horizontal';\n addable = false;\n hideBar = false;\n addIcon = 'plus';\n inkBarAnimated = true;\n extraTemplate;\n extraContents = input.required(...(ngDevMode ? [{ debugName: \"extraContents\" }] : []));\n startExtraContent = computed(() => this.extraContents().find(item => item.position() === 'start'), ...(ngDevMode ? [{ debugName: \"startExtraContent\" }] : []));\n endExtraContent = computed(() => this.extraContents().find(item => item.position() === 'end'), ...(ngDevMode ? [{ debugName: \"endExtraContent\" }] : []));\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(value) {\n const newValue = coerceNumberProperty(value);\n if (this._selectedIndex !== newValue) {\n this._selectedIndex = value;\n this.selectedIndexChanged = true;\n if (this.keyManager) {\n this.keyManager.updateActiveItem(value);\n }\n }\n }\n navWrapRef;\n navListRef;\n operationRef;\n addBtnRef;\n inkBar;\n items;\n /** Tracks which element has focus; used for keyboard navigation */\n get focusIndex() {\n return this.keyManager ? this.keyManager.activeItemIndex : 0;\n }\n /** When the focus index is set, we must manually send focus to the correct label */\n set focusIndex(value) {\n if (!this.isValidIndex(value) || this.focusIndex === value || !this.keyManager) {\n return;\n }\n this.keyManager.setActiveItem(value);\n }\n get showAddButton() {\n return this.hiddenItems.length === 0 && this.addable;\n }\n translate = null;\n transformX = 0;\n transformY = 0;\n pingLeft = false;\n pingRight = false;\n pingTop = false;\n pingBottom = false;\n hiddenItems = [];\n keyManager;\n _selectedIndex = 0;\n wrapperWidth = 0;\n wrapperHeight = 0;\n scrollListWidth = 0;\n scrollListHeight = 0;\n operationWidth = 0;\n operationHeight = 0;\n addButtonWidth = 0;\n addButtonHeight = 0;\n selectedIndexChanged = false;\n lockAnimationTimeoutId;\n cssTransformTimeWaitingId;\n constructor() {\n this.destroyRef.onDestroy(() => {\n clearTimeout(this.lockAnimationTimeoutId);\n clearTimeout(this.cssTransformTimeWaitingId);\n });\n }\n ngAfterViewInit() {\n const dirChange = this.dir ? this.dir.change.asObservable() : of(null);\n const resize = this.viewportRuler.change(150);\n const realign = () => {\n this.updateScrollListPosition();\n this.alignInkBarToSelectedTab();\n };\n this.keyManager = new FocusKeyManager(this.items)\n .withHorizontalOrientation(this.getLayoutDirection())\n .withWrap();\n this.keyManager.updateActiveItem(this.selectedIndex);\n requestAnimationFrame(realign);\n merge(this.nzResizeObserver.observe(this.navWrapRef), this.nzResizeObserver.observe(this.navListRef))\n .pipe(takeUntilDestroyed(this.destroyRef), auditTime(16, RESIZE_SCHEDULER))\n .subscribe(() => {\n realign();\n });\n merge(dirChange, resize, this.items.changes)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n Promise.resolve().then(realign);\n this.keyManager.withHorizontalOrientation(this.getLayoutDirection());\n });\n this.keyManager.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(newFocusIndex => {\n this.indexFocused.emit(newFocusIndex);\n this.scrollToTab(this.keyManager.activeItem);\n });\n }\n ngAfterContentChecked() {\n if (this.selectedIndexChanged) {\n this.updateScrollListPosition();\n this.alignInkBarToSelectedTab();\n this.selectedIndexChanged = false;\n this.cdr.markForCheck();\n }\n }\n onSelectedFromMenu(tab) {\n const tabIndex = this.items.toArray().findIndex(e => e === tab);\n if (tabIndex !== -1) {\n this.keyManager.updateActiveItem(tabIndex);\n if (this.focusIndex !== this.selectedIndex) {\n this.selectFocusedIndex.emit(this.focusIndex);\n this.scrollToTab(tab);\n }\n }\n }\n onOffsetChange(e) {\n if (this.position === 'horizontal') {\n if (!this.lockAnimationTimeoutId) {\n if (this.transformX >= 0 && e.x > 0) {\n return;\n }\n if (this.transformX <= this.wrapperWidth - this.scrollListWidth && e.x < 0) {\n return;\n }\n }\n e.event.preventDefault();\n this.transformX = this.clampTransformX(this.transformX + e.x);\n this.setTransform(this.transformX, 0);\n }\n else {\n if (!this.lockAnimationTimeoutId) {\n if (this.transformY >= 0 && e.y > 0) {\n return;\n }\n if (this.transformY <= this.wrapperHeight - this.scrollListHeight && e.y < 0) {\n return;\n }\n }\n e.event.preventDefault();\n this.transformY = this.clampTransformY(this.transformY + e.y);\n this.setTransform(0, this.transformY);\n }\n this.lockAnimation();\n this.setVisibleRange();\n this.setPingStatus();\n }\n handleKeydown(event) {\n const inNavigationList = this.navWrapRef.nativeElement.contains(event.target);\n if (hasModifierKey(event) || !inNavigationList) {\n return;\n }\n switch (event.keyCode) {\n case LEFT_ARROW:\n case UP_ARROW:\n case RIGHT_ARROW:\n case DOWN_ARROW:\n this.lockAnimation();\n this.keyManager.onKeydown(event);\n break;\n case ENTER:\n case SPACE:\n if (this.focusIndex !== this.selectedIndex) {\n this.selectFocusedIndex.emit(this.focusIndex);\n }\n break;\n default:\n this.keyManager.onKeydown(event);\n }\n }\n isValidIndex(index) {\n if (!this.items) {\n return true;\n }\n const tab = this.items ? this.items.toArray()[index] : null;\n return !!tab && !tab.disabled;\n }\n scrollToTab(tab) {\n if (!this.items.find(e => e === tab)) {\n return;\n }\n const tabs = this.items.toArray();\n if (this.position === 'horizontal') {\n let newTransform = this.transformX;\n if (this.getLayoutDirection() === 'rtl') {\n const right = tabs[0].left + tabs[0].width - tab.left - tab.width;\n if (right < this.transformX) {\n newTransform = right;\n }\n else if (right + tab.width > this.transformX + this.wrapperWidth) {\n newTransform = right + tab.width - this.wrapperWidth;\n }\n }\n else if (tab.left < -this.transformX) {\n newTransform = -tab.left;\n }\n else if (tab.left + tab.width > -this.transformX + this.wrapperWidth) {\n newTransform = -(tab.left + tab.width - this.wrapperWidth);\n }\n this.transformX = newTransform;\n this.transformY = 0;\n this.setTransform(newTransform, 0);\n }\n else {\n let newTransform = this.transformY;\n if (tab.top < -this.transformY) {\n newTransform = -tab.top;\n }\n else if (tab.top + tab.height > -this.transformY + this.wrapperHeight) {\n newTransform = -(tab.top + tab.height - this.wrapperHeight);\n }\n this.transformY = newTransform;\n this.transformX = 0;\n this.setTransform(0, newTransform);\n }\n clearTimeout(this.cssTransformTimeWaitingId);\n this.cssTransformTimeWaitingId = setTimeout(() => {\n this.setVisibleRange();\n }, CSS_TRANSFORM_TIME);\n }\n lockAnimation() {\n if (!this.lockAnimationTimeoutId) {\n this.ngZone.runOutsideAngular(() => {\n this.navListRef.nativeElement.style.transition = 'none';\n this.lockAnimationTimeoutId = setTimeout(() => {\n this.navListRef.nativeElement.style.transition = '';\n this.lockAnimationTimeoutId = undefined;\n }, CSS_TRANSFORM_TIME);\n });\n }\n }\n setTransform(x, y) {\n this.navListRef.nativeElement.style.transform = `translate(${x}px, ${y}px)`;\n }\n clampTransformX(transform) {\n const scrollWidth = this.wrapperWidth - this.scrollListWidth;\n if (this.getLayoutDirection() === 'rtl') {\n return Math.max(Math.min(scrollWidth, transform), 0);\n }\n else {\n return Math.min(Math.max(scrollWidth, transform), 0);\n }\n }\n clampTransformY(transform) {\n return Math.min(Math.max(this.wrapperHeight - this.scrollListHeight, transform), 0);\n }\n updateScrollListPosition() {\n this.resetSizes();\n this.transformX = this.clampTransformX(this.transformX);\n this.transformY = this.clampTransformY(this.transformY);\n this.setVisibleRange();\n this.setPingStatus();\n if (this.keyManager) {\n this.keyManager.updateActiveItem(this.keyManager.activeItemIndex);\n if (this.keyManager.activeItem) {\n this.scrollToTab(this.keyManager.activeItem);\n }\n }\n }\n resetSizes() {\n this.addButtonWidth = this.addBtnRef ? this.addBtnRef.getElementWidth() : 0;\n this.addButtonHeight = this.addBtnRef ? this.addBtnRef.getElementHeight() : 0;\n this.operationWidth = this.operationRef.getElementWidth();\n this.operationHeight = this.operationRef.getElementHeight();\n this.wrapperWidth = this.navWrapRef.nativeElement.offsetWidth || 0;\n this.wrapperHeight = this.navWrapRef.nativeElement.offsetHeight || 0;\n this.scrollListHeight = this.navListRef.nativeElement.offsetHeight || 0;\n this.scrollListWidth = this.navListRef.nativeElement.offsetWidth || 0;\n }\n alignInkBarToSelectedTab() {\n const selectedItem = this.items && this.items.length ? this.items.toArray()[this.selectedIndex] : null;\n const selectedItemElement = selectedItem ? selectedItem.elementRef.nativeElement : null;\n if (selectedItemElement) {\n /**\n * .ant-tabs-nav-list - Target offset parent element\n * └──.ant-tabs-tab\n * └──.ant-tabs-tab-btn - Currently focused element\n */\n this.inkBar.alignToElement(selectedItemElement.parentElement);\n }\n }\n setPingStatus() {\n const ping = {\n top: false,\n right: false,\n bottom: false,\n left: false\n };\n const navWrap = this.navWrapRef.nativeElement;\n if (this.position === 'horizontal') {\n if (this.getLayoutDirection() === 'rtl') {\n ping.right = this.transformX > 0;\n ping.left = this.transformX + this.wrapperWidth < this.scrollListWidth;\n }\n else {\n ping.left = this.transformX < 0;\n ping.right = -this.transformX + this.wrapperWidth < this.scrollListWidth;\n }\n }\n else {\n ping.top = this.transformY < 0;\n ping.bottom = -this.transformY + this.wrapperHeight < this.scrollListHeight;\n }\n Object.keys(ping).forEach(pos => {\n const className = `ant-tabs-nav-wrap-ping-${pos}`;\n if (ping[pos]) {\n navWrap.classList.add(className);\n }\n else {\n navWrap.classList.remove(className);\n }\n });\n }\n setVisibleRange() {\n let unit;\n let position;\n let transformSize;\n let basicSize;\n let tabContentSize;\n let addSize;\n const tabs = this.items.toArray();\n const DEFAULT_SIZE = { width: 0, height: 0, left: 0, top: 0, right: 0 };\n const getOffset = (index) => {\n let offset;\n const size = tabs[index] || DEFAULT_SIZE;\n if (position === 'right') {\n offset = tabs[0].left + tabs[0].width - tabs[index].left - tabs[index].width;\n }\n else {\n offset = size[position];\n }\n return offset;\n };\n if (this.position === 'horizontal') {\n unit = 'width';\n basicSize = this.wrapperWidth;\n tabContentSize = this.scrollListWidth - (this.hiddenItems.length ? this.operationWidth : 0);\n addSize = this.addButtonWidth;\n transformSize = Math.abs(this.transformX);\n if (this.getLayoutDirection() === 'rtl') {\n position = 'right';\n this.pingRight = this.transformX > 0;\n this.pingLeft = this.transformX + this.wrapperWidth < this.scrollListWidth;\n }\n else {\n this.pingLeft = this.transformX < 0;\n this.pingRight = -this.transformX + this.wrapperWidth < this.scrollListWidth;\n position = 'left';\n }\n }\n else {\n unit = 'height';\n basicSize = this.wrapperHeight;\n tabContentSize = this.scrollListHeight - (this.hiddenItems.length ? this.operationHeight : 0);\n addSize = this.addButtonHeight;\n position = 'top';\n transformSize = -this.transformY;\n this.pingTop = this.transformY < 0;\n this.pingBottom = -this.transformY + this.wrapperHeight < this.scrollListHeight;\n }\n let mergedBasicSize = basicSize;\n if (tabContentSize + addSize > basicSize) {\n mergedBasicSize = basicSize - addSize;\n }\n if (!tabs.length) {\n this.hiddenItems = [];\n this.cdr.markForCheck();\n return;\n }\n const len = tabs.length;\n let endIndex = len;\n for (let i = 0; i < len; i += 1) {\n const offset = getOffset(i);\n const size = tabs[i] || DEFAULT_SIZE;\n if (offset + size[unit] > transformSize + mergedBasicSize) {\n endIndex = i - 1;\n break;\n }\n }\n let startIndex = 0;\n for (let i = len - 1; i >= 0; i -= 1) {\n const offset = getOffset(i);\n if (offset < transformSize) {\n startIndex = i + 1;\n break;\n }\n }\n const startHiddenTabs = tabs.slice(0, startIndex);\n const endHiddenTabs = tabs.slice(endIndex + 1);\n this.hiddenItems = [...startHiddenTabs, ...endHiddenTabs];\n this.cdr.markForCheck();\n }\n getLayoutDirection() {\n return this.dir && this.dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n ngOnChanges(changes) {\n const { position } = changes;\n // The first will be aligning in ngAfterViewInit\n if (position && !position.isFirstChange()) {\n this.alignInkBarToSelectedTab();\n this.lockAnimation();\n this.updateScrollListPosition();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabNavBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: NzTabNavBarComponent, isStandalone: true, selector: \"nz-tabs-nav\", inputs: { position: { classPropertyName: \"position\", publicName: \"position\", isSignal: false, isRequired: false, transformFunction: null }, addable: { classPropertyName: \"addable\", publicName: \"addable\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, hideBar: { classPropertyName: \"hideBar\", publicName: \"hideBar\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, addIcon: { classPropertyName: \"addIcon\", publicName: \"addIcon\", isSignal: false, isRequired: false, transformFunction: null }, inkBarAnimated: { classPropertyName: \"inkBarAnimated\", publicName: \"inkBarAnimated\", isSignal: false, isRequired: false, transformFunction: null }, extraTemplate: { classPropertyName: \"extraTemplate\", publicName: \"extraTemplate\", isSignal: false, isRequired: false, transformFunction: null }, extraContents: { classPropertyName: \"extraContents\", publicName: \"extraContents\", isSignal: true, isRequired: true, transformFunction: null }, selectedIndex: { classPropertyName: \"selectedIndex\", publicName: \"selectedIndex\", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { indexFocused: \"indexFocused\", selectFocusedIndex: \"selectFocusedIndex\", addClicked: \"addClicked\", tabScroll: \"tabScroll\" }, host: { listeners: { \"keydown\": \"handleKeydown($event)\" }, classAttribute: \"ant-tabs-nav\" }, queries: [{ propertyName: \"items\", predicate: NzTabNavItemDirective, descendants: true }], viewQueries: [{ propertyName: \"navWrapRef\", first: true, predicate: [\"navWrap\"], descendants: true, static: true }, { propertyName: \"navListRef\", first: true, predicate: [\"navList\"], descendants: true, static: true }, { propertyName: \"operationRef\", first: true, predicate: NzTabNavOperationComponent, descendants: true, static: true }, { propertyName: \"addBtnRef\", first: true, predicate: NzTabAddButtonComponent, descendants: true }, { propertyName: \"inkBar\", first: true, predicate: NzTabsInkBarDirective, descendants: true, static: true }], exportAs: [\"nzTabsNav\"], usesOnChanges: true, ngImport: i0, template: `\n @if (startExtraContent()) {\n <div class=\"ant-tabs-extra-content\">\n <ng-template [ngTemplateOutlet]=\"startExtraContent()!.templateRef\"></ng-template>\n </div>\n }\n <div\n class=\"ant-tabs-nav-wrap\"\n [class.ant-tabs-nav-wrap-ping-left]=\"pingLeft\"\n [class.ant-tabs-nav-wrap-ping-right]=\"pingRight\"\n [class.ant-tabs-nav-wrap-ping-top]=\"pingTop\"\n [class.ant-tabs-nav-wrap-ping-bottom]=\"pingBottom\"\n #navWrap\n >\n <div\n class=\"ant-tabs-nav-list\"\n #navList\n nzTabScrollList\n (offsetChange)=\"onOffsetChange($event)\"\n (tabScroll)=\"tabScroll.emit($event)\"\n role=\"tablist\"\n >\n <ng-content></ng-content>\n @if (showAddButton) {\n <button\n role=\"tab\"\n [attr.tabindex]=\"-1\"\n nz-tab-add-button\n [addIcon]=\"addIcon\"\n (click)=\"addClicked.emit()\"\n ></button>\n }\n <div nz-tabs-ink-bar [hidden]=\"hideBar\" [position]=\"position\" [animated]=\"inkBarAnimated\"></div>\n </div>\n </div>\n <nz-tab-nav-operation\n (addClicked)=\"addClicked.emit()\"\n (selected)=\"onSelectedFromMenu($event)\"\n [addIcon]=\"addIcon\"\n [addable]=\"addable\"\n [items]=\"hiddenItems\"\n ></nz-tab-nav-operation>\n @if (endExtraContent()) {\n <div class=\"ant-tabs-extra-content\">\n <ng-template [ngTemplateOutlet]=\"endExtraContent()!.templateRef\"></ng-template>\n </div>\n } @else if (extraTemplate) {\n <div class=\"ant-tabs-extra-content\">\n <ng-template [ngTemplateOutlet]=\"extraTemplate\"></ng-template>\n </div>\n }\n `, isInline: true, dependencies: [{ kind: \"directive\", type: NzTabScrollListDirective, selector: \"[nzTabScrollList]\", outputs: [\"offsetChange\", \"tabScroll\"] }, { kind: \"component\", type: NzTabAddButtonComponent, selector: \"nz-tab-add-button, button[nz-tab-add-button]\", inputs: [\"addIcon\"] }, { kind: \"directive\", type: NzTabsInkBarDirective, selector: \"nz-tabs-ink-bar, [nz-tabs-ink-bar]\", inputs: [\"position\", \"animated\"] }, { kind: \"component\", type: NzTabNavOperationComponent, selector: \"nz-tab-nav-operation\", inputs: [\"items\", \"addable\", \"addIcon\"], outputs: [\"addClicked\", \"selected\"], exportAs: [\"nzTabNavOperation\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabNavBarComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'nz-tabs-nav',\n exportAs: 'nzTabsNav',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (startExtraContent()) {\n <div class=\"ant-tabs-extra-content\">\n <ng-template [ngTemplateOutlet]=\"startExtraContent()!.templateRef\"></ng-template>\n </div>\n }\n <div\n class=\"ant-tabs-nav-wrap\"\n [class.ant-tabs-nav-wrap-ping-left]=\"pingLeft\"\n [class.ant-tabs-nav-wrap-ping-right]=\"pingRight\"\n [class.ant-tabs-nav-wrap-ping-top]=\"pingTop\"\n [class.ant-tabs-nav-wrap-ping-bottom]=\"pingBottom\"\n #navWrap\n >\n <div\n class=\"ant-tabs-nav-list\"\n #navList\n nzTabScrollList\n (offsetChange)=\"onOffsetChange($event)\"\n (tabScroll)=\"tabScroll.emit($event)\"\n role=\"tablist\"\n >\n <ng-content></ng-content>\n @if (showAddButton) {\n <button\n role=\"tab\"\n [attr.tabindex]=\"-1\"\n nz-tab-add-button\n [addIcon]=\"addIcon\"\n (click)=\"addClicked.emit()\"\n ></button>\n }\n <div nz-tabs-ink-bar [hidden]=\"hideBar\" [position]=\"position\" [animated]=\"inkBarAnimated\"></div>\n </div>\n </div>\n <nz-tab-nav-operation\n (addClicked)=\"addClicked.emit()\"\n (selected)=\"onSelectedFromMenu($event)\"\n [addIcon]=\"addIcon\"\n [addable]=\"addable\"\n [items]=\"hiddenItems\"\n ></nz-tab-nav-operation>\n @if (endExtraContent()) {\n <div class=\"ant-tabs-extra-content\">\n <ng-template [ngTemplateOutlet]=\"endExtraContent()!.templateRef\"></ng-template>\n </div>\n } @else if (extraTemplate) {\n <div class=\"ant-tabs-extra-content\">\n <ng-template [ngTemplateOutlet]=\"extraTemplate\"></ng-template>\n </div>\n }\n `,\n host: {\n class: 'ant-tabs-nav',\n '(keydown)': 'handleKeydown($event)'\n },\n imports: [\n NzTabScrollListDirective,\n NzTabAddButtonComponent,\n NzTabsInkBarDirective,\n NzTabNavOperationComponent,\n NgTemplateOutlet\n ]\n }]\n }], ctorParameters: () => [], propDecorators: { indexFocused: [{\n type: Output\n }], selectFocusedIndex: [{\n type: Output\n }], addClicked: [{\n type: Output\n }], tabScroll: [{\n type: Output\n }], position: [{\n type: Input\n }], addable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], hideBar: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], addIcon: [{\n type: Input\n }], inkBarAnimated: [{\n type: Input\n }], extraTemplate: [{\n type: Input\n }], selectedIndex: [{\n type: Input\n }], navWrapRef: [{\n type: ViewChild,\n args: ['navWrap', { static: true }]\n }], navListRef: [{\n type: ViewChild,\n args: ['navList', { static: true }]\n }], operationRef: [{\n type: ViewChild,\n args: [NzTabNavOperationComponent, { static: true }]\n }], addBtnRef: [{\n type: ViewChild,\n args: [NzTabAddButtonComponent, { static: false }]\n }], inkBar: [{\n type: ViewChild,\n args: [NzTabsInkBarDirective, { static: true }]\n }], items: [{\n type: ContentChildren,\n args: [NzTabNavItemDirective, { descendants: true }]\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/** Decorates the `ng-template` tags and reads out the template from it. */\nclass NzTabDirective {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: NzTabDirective, isStandalone: true, selector: \"[nz-tab]\", exportAs: [\"nzTab\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[nz-tab]',\n exportAs: 'nzTab'\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/**\n * Used to provide a tab set to a tab without causing a circular dependency.\n */\nconst NZ_TAB_SET = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'nz-tabs' : '');\nclass NzTabComponent {\n nzTitle = '';\n nzClosable = false;\n nzCloseIcon = 'close';\n nzDisabled = false;\n nzForceRender = false;\n nzSelect = new EventEmitter();\n nzDeselect = new EventEmitter();\n nzClick = new EventEmitter();\n nzContextmenu = new EventEmitter();\n nzTabLinkTemplateDirective;\n template = null;\n linkDirective;\n contentTemplate;\n isActive = false;\n hasBeenActive = false;\n position = null;\n origin = null;\n closestTabSet = inject(NZ_TAB_SET);\n stateChanges = new Subject();\n get content() {\n return this.template || this.contentTemplate;\n }\n get label() {\n return this.nzTitle || this.nzTabLinkTemplateDirective?.templateRef;\n }\n ngOnChanges(changes) {\n const { nzTitle, nzDisabled, nzForceRender } = changes;\n if (nzTitle || nzDisabled || nzForceRender) {\n this.stateChanges.next();\n }\n }\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n setActive(active) {\n this.isActive = active;\n if (active) {\n this.hasBeenActive = true;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"20.3.0\", type: NzTabComponent, isStandalone: true, selector: \"nz-tab\", inputs: { nzTitle: \"nzTitle\", nzClosable: [\"nzClosable\", \"nzClosable\", booleanAttribute], nzCloseIcon: \"nzCloseIcon\", nzDisabled: [\"nzDisabled\", \"nzDisabled\", booleanAttribute], nzForceRender: [\"nzForceRender\", \"nzForceRender\", booleanAttribute] }, outputs: { nzSelect: \"nzSelect\", nzDeselect: \"nzDeselect\", nzClick: \"nzClick\", nzContextmenu: \"nzContextmenu\" }, queries: [{ propertyName: \"nzTabLinkTemplateDirective\", first: true, predicate: NzTabLinkTemplateDirective, descendants: true }, { propertyName: \"template\", first: true, predicate: NzTabDirective, descendants: true, read: TemplateRef }, { propertyName: \"linkDirective\", first: true, predicate: NzTabLinkDirective, descendants: true }], viewQueries: [{ propertyName: \"contentTemplate\", first: true, predicate: [\"contentTemplate\"], descendants: true, static: true }], exportAs: [\"nzTab\"], usesOnChanges: true, ngImport: i0, template: `\n <ng-template #tabLinkTemplate>\n <ng-content select=\"[nz-tab-link]\"></ng-content>\n </ng-template>\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'nz-tab',\n exportAs: 'nzTab',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-template #tabLinkTemplate>\n <ng-content select=\"[nz-tab-link]\"></ng-content>\n </ng-template>\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `\n }]\n }], propDecorators: { nzTitle: [{\n type: Input\n }], nzClosable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], nzCloseIcon: [{\n type: Input\n }], nzDisabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], nzForceRender: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], nzSelect: [{\n type: Output\n }], nzDeselect: [{\n type: Output\n }], nzClick: [{\n type: Output\n }], nzContextmenu: [{\n type: Output\n }], nzTabLinkTemplateDirective: [{\n type: ContentChild,\n args: [NzTabLinkTemplateDirective, { static: false }]\n }], template: [{\n type: ContentChild,\n args: [NzTabDirective, { static: false, read: TemplateRef }]\n }], linkDirective: [{\n type: ContentChild,\n args: [NzTabLinkDirective, { static: false }]\n }], contentTemplate: [{\n type: ViewChild,\n args: ['contentTemplate', { static: true }]\n }] } });\n\nconst NZ_CONFIG_MODULE_NAME = 'tabs';\nlet nextId = 0;\nlet NzTabsComponent = (() => {\n let _nzType_decorators;\n let _nzType_initializers = [];\n let _nzType_extraInitializers = [];\n let _nzSize_decorators;\n let _nzSize_initializers = [];\n let _nzSize_extraInitializers = [];\n let _nzAnimated_decorators;\n let _nzAnimated_initializers = [];\n let _nzAnimated_extraInitializers = [];\n let _nzTabBarGutter_decorators;\n let _nzTabBarGutter_initializers = [];\n let _nzTabBarGutter_extraInitializers = [];\n return class NzTabsComponent {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(null) : void 0;\n _nzType_decorators = [WithConfig()];\n _nzSize_decorators = [WithConfig()];\n _nzAnimated_decorators = [WithConfig()];\n _nzTabBarGutter_decorators = [WithConfig()];\n __esDecorate(null, null, _nzType_decorators, { kind: \"field\", name: \"nzType\", static: false, private: false, access: { has: obj => \"nzType\" in obj, get: obj => obj.nzType, set: (obj, value) => { obj.nzType = value; } }, metadata: _metadata }, _nzType_initializers, _nzType_extraInitializers);\n __esDecorate(null, null, _nzSize_decorators, { kind: \"field\", name: \"nzSize\", static: false, private: false, access: { has: obj => \"nzSize\" in obj, get: obj => obj.nzSize, set: (obj, value) => { obj.nzSize = value; } }, metadata: _metadata }, _nzSize_initializers, _nzSize_extraInitializers);\n __esDecorate(null, null, _nzAnimated_decorators, { kind: \"field\", name: \"nzAnimated\", static: false, private: false, access: { has: obj => \"nzAnimated\" in obj, get: obj => obj.nzAnimated, set: (obj, value) => { obj.nzAnimated = value; } }, metadata: _metadata }, _nzAnimated_initializers, _nzAnimated_extraInitializers);\n __esDecorate(null, null, _nzTabBarGutter_decorators, { kind: \"field\", name: \"nzTabBarGutter\", static: false, private: false, access: { has: obj => \"nzTabBarGutter\" in obj, get: obj => obj.nzTabBarGutter, set: (obj, value) => { obj.nzTabBarGutter = value; } }, metadata: _metadata }, _nzTabBarGutter_initializers, _nzTabBarGutter_extraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n _nzModuleName = NZ_CONFIG_MODULE_NAME;\n nzConfigService = inject(NzConfigService);\n ngZone = inject(NgZone);\n cdr = inject(ChangeDetectorRef);\n directionality = inject(Directionality);\n destroyRef = inject(DestroyRef);\n get nzSelectedIndex() {\n return this.selectedIndex;\n }\n set nzSelectedIndex(value) {\n this.indexToSelect = coerceNumberProperty(value, null);\n }\n nzTabPosition = 'top';\n nzTabBarExtraContent;\n nzCanDeactivate = null;\n nzAddIcon = 'plus';\n nzTabBarStyle = null;\n nzType = __runInitializers(this, _nzType_initializers, 'line');\n nzSize = (__runInitializers(this, _nzType_extraInitializers), __runInitializers(this, _nzSize_initializers, 'default'));\n nzAnimated = (__runInitializers(this, _nzSize_extraInitializers), __runInitializers(this, _nzAnimated_initializers, true));\n nzTabBarGutter = (__runInitializers(this, _nzAnimated_extraInitializers), __runInitializers(this, _nzTabBarGutter_initializers, undefined));\n nzHideAdd = (__runInitializers(this, _nzTabBarGutter_extraInitializers), false);\n nzCentered = false;\n nzHideAll = false;\n nzLinkRouter = false;\n nzLinkExact = true;\n nzDestroyInactiveTabPane = false;\n nzSelectChange = new EventEmitter(true);\n nzSelectedIndexChange = new EventEmitter();\n nzTabListScroll = new EventEmitter();\n nzClose = new EventEmitter();\n nzAdd = new EventEmitter();\n get position() {\n return ['top', 'bottom'].indexOf(this.nzTabPosition) === -1 ? 'vertical' : 'horizontal';\n }\n get addable() {\n return this.nzType === 'editable-card' && !this.nzHideAdd;\n }\n get closable() {\n return this.nzType === 'editable-card';\n }\n get line() {\n return this.nzType === 'line';\n }\n get inkBarAnimated() {\n return this.line && (typeof this.nzAnimated === 'boolean' ? this.nzAnimated : this.nzAnimated.inkBar);\n }\n get tabPaneAnimated() {\n return typeof this.nzAnimated === 'boolean' ? this.nzAnimated : this.nzAnimated.tabPane;\n }\n // Pick up only direct descendants under ivy rendering engine\n // We filter out only the tabs that belong to this tab set in `tabs`.\n allTabs = new QueryList();\n tabLinks = new QueryList();\n tabNavBarRef;\n // All the direct tabs for this tab set\n tabs = new QueryList();\n extraContents = contentChildren(NzTabBarExtraContentDirective, ...(ngDevMode ? [{ debugName: \"extraContents\" }] : []));\n dir = 'ltr';\n tabSetId;\n indexToSelect = 0;\n selectedIndex = null;\n tabLabelSubscription = Subscription.EMPTY;\n canDeactivateSubscription = Subscription.EMPTY;\n router = inject(Router, { optional: true });\n constructor() {\n this.tabSetId = nextId++;\n // TODO: Remove this warning in 21.0.0\n if (inject(HOST_TAG_NAME) === 'nz-tabset') {\n warn(`${PREFIX} <nz-tabset> is deprecated, please use <nz-tabs> instead.`);\n }\n this.destroyRef.onDestroy(() => {\n this.tabs.destroy();\n this.tabLabelSubscription.unsubscribe();\n this.canDeactivateSubscription.unsubscribe();\n });\n }\n ngOnInit() {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(direction => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n }\n ngAfterContentInit() {\n this.ngZone.runOutsideAngular(() => {\n Promise.resolve().then(() => this.setUpRouter());\n });\n this.subscribeToTabLabels();\n this.subscribeToAllTabChanges();\n // Subscribe to changes of the number of tabs, to be\n // able to re-render the content as new tabs are added or removed.\n this.tabs.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n const indexToSelect = this.clampTabIndex(this.indexToSelect);\n // Maintain the previously selected tab if a new tab is added or removed, and there is no\n // explicit change that selects a different tab.\n if (indexToSelect === this.selectedIndex) {\n const tabs = this.tabs.toArray();\n for (let i = 0; i < tabs.length; i++) {\n if (tabs[i].isActive) {\n // Assign both to the `indexToSelect` and `selectedIndex` so we don't fire a changed\n // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n // adding a tab within the `nzSelectedIndexChange` event.\n this.indexToSelect = this.selectedIndex = i;\n break;\n }\n }\n }\n this.subscribeToTabLabels();\n this.cdr.markForCheck();\n });\n }\n ngAfterContentChecked() {\n // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n // the amount of tabs changes before the actual change detection runs.\n const indexToSelect = (this.indexToSelect = this.clampTabIndex(this.indexToSelect));\n // If there is a change in the selected index, emit a change event. Should not trigger if\n // the selected index has not yet been initialized.\n if (this.selectedIndex !== indexToSelect) {\n const isFirstRun = this.selectedIndex == null;\n if (!isFirstRun) {\n this.nzSelectChange.emit(this.createChangeEvent(indexToSelect));\n }\n // Changing these values after change detection has run\n // since the checked content may contain references to them.\n Promise.resolve().then(() => {\n this.tabs.forEach((tab, index) => tab.setActive(index === indexToSelect));\n if (!isFirstRun) {\n this.nzSelectedIndexChange.emit(indexToSelect);\n }\n });\n }\n // Set up the position for each tab and optionally set up an origin on the next selected tab.\n this.tabs.forEach((tab, index) => {\n tab.position = index - indexToSelect;\n // If there is already a selected tab, then set up an origin for the next selected tab\n // if it doesn't have one already.\n if (this.selectedIndex != null && tab.position === 0 && !tab.origin) {\n tab.origin = indexToSelect - this.selectedIndex;\n }\n });\n if (this.selectedIndex !== indexToSelect) {\n this.selectedIndex = indexToSelect;\n this.cdr.markForCheck();\n }\n }\n onClose(index, e) {\n e.preventDefault();\n e.stopPropagation();\n this.nzClose.emit({ index });\n }\n onAdd() {\n this.nzAdd.emit();\n }\n clampTabIndex(index) {\n return Math.min(this.tabs.length - 1, Math.max(index || 0, 0));\n }\n createChangeEvent(index) {\n const event = new NzTabChangeEvent();\n event.index = index;\n if (this.tabs && this.tabs.length) {\n event.tab = this.tabs.toArray()[index];\n this.tabs.forEach((tab, i) => {\n if (i !== index) {\n tab.nzDeselect.emit();\n }\n });\n event.tab.nzSelect.emit();\n }\n return event;\n }\n subscribeToTabLabels() {\n if (this.tabLabelSubscription) {\n this.tabLabelSubscription.unsubscribe();\n }\n this.tabLabelSubscription = merge(...this.tabs.map(tab => tab.stateChanges)).subscribe(() => this.cdr.markForCheck());\n }\n subscribeToAllTabChanges() {\n this.allTabs.changes.pipe(startWith(this.allTabs)).subscribe((tabs) => {\n this.tabs.reset(tabs.filter(tab => tab.closestTabSet === this));\n this.tabs.notifyOnChanges();\n });\n }\n canDeactivateFun(pre, next) {\n if (typeof this.nzCanDeactivate === 'function') {\n const observable = wrapIntoObservable(this.nzCanDeactivate(pre, next));\n return observable.pipe(first(), takeUntilDestroyed(this.destroyRef));\n }\n else {\n return of(true);\n }\n }\n clickNavItem(tab, index, e) {\n if (!tab.nzDisabled) {\n // ignore nzCanDeactivate\n tab.nzClick.emit();\n if (!this.isRouterLinkClickEvent(index, e)) {\n this.setSelectedIndex(index);\n }\n }\n }\n isRouterLinkClickEvent(index, event) {\n const target = event.target;\n if (this.nzLinkRouter) {\n return !!this.tabs.toArray()[index]?.linkDirective?.elementRef.nativeElement.contains(target);\n }\n else {\n return false;\n }\n }\n contextmenuNavItem(tab, e) {\n if (!tab.nzDisabled) {\n // ignore nzCanDeactivate\n tab.nzContextmenu.emit(e);\n }\n }\n setSelectedIndex(index) {\n this.canDeactivateSubscription.unsubscribe();\n this.canDeactivateSubscription = this.canDeactivateFun(this.selectedIndex, index).subscribe(can => {\n if (can) {\n this.nzSelectedIndex = index;\n this.tabNavBarRef.focusIndex = index;\n this.cdr.markForCheck();\n }\n });\n }\n getTabIndex(tab, index) {\n if (tab.nzDisabled) {\n return null;\n }\n return this.selectedIndex === index ? 0 : -1;\n }\n getTabContentId(i) {\n return `nz-tabs-${this.tabSetId}-tab-${i}`;\n }\n setUpRouter() {\n if (this.nzLinkRouter) {\n if (!this.router) {\n throw new Error(`${PREFIX} you should import 'RouterModule' if you want to use 'nzLinkRouter'!`);\n }\n merge(this.router.events.pipe(filter(e => e instanceof NavigationEnd)), this.tabLinks.changes)\n .pipe(startWith(true), delay(0), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateRouterActive();\n this.cdr.markForCheck();\n });\n }\n }\n updateRouterActive() {\n if (this.router?.navigated) {\n const index = this.findShouldActiveTabIndex();\n if (index !== this.selectedIndex) {\n this.setSelectedIndex(index);\n }\n Promise.resolve().then(() => (this.nzHideAll = index === -1));\n }\n }\n findShouldActiveTabIndex() {\n const tabs = this.tabs.toArray();\n const isActive = this.isLinkActive(this.router);\n return tabs.findIndex(tab => {\n const c = tab.linkDirective;\n return c ? isActive(c.routerLink) : false;\n });\n }\n isLinkActive(router) {\n return (link) => link\n ? !!router?.isActive(link.urlTree || '', {\n paths: this.nzLinkExact ? 'exact' : 'subset',\n queryParams: this.nzLinkExact ? 'exact' : 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored'\n })\n : false;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: NzTabsComponent, isStandalone: true, selector: \"nz-tabs,nz-tabset\", inputs: { nzSelectedIndex: \"nzSelectedIndex\", nzTabPosition: \"nzTabPosition\", nzTabBarExtraContent: \"nzTabBarExtraContent\", nzCanDeactivate: \"nzCanDeactivate\", nzAddIcon: \"nzAddIcon\", nzTabBarStyle: \"nzTabBarStyle\", nzType: \"nzType\", nzSize: \"nzSize\", nzAnimated: \"nzAnimated\", nzTabBarGutter: \"nzTabBarGutter\", nzHideAdd: [\"nzHideAdd\", \"nzHideAdd\", booleanAttribute], nzCentered: [\"nzCentered\", \"nzCentered\", booleanAttribute], nzHideAll: [\"nzHideAll\", \"nzHideAll\", booleanAttribute], nzLinkRouter: [\"nzLinkRouter\", \"nzLinkRouter\", booleanAttribute], nzLinkExact: [\"nzLinkExact\", \"nzLinkExact\", booleanAttribute], nzDestroyInactiveTabPane: [\"nzDestroyInactiveTabPane\", \"nzDestroyInactiveTabPane\", booleanAttribute] }, outputs: { nzSelectChange: \"nzSelectChange\", nzSelectedIndexChange: \"nzSelectedIndexChange\", nzTabListScroll: \"nzTabListScroll\", nzClose: \"nzClose\", nzAdd: \"nzAdd\" }, host: { properties: { \"class.ant-tabs-card\": \"nzType === 'card' || nzType === 'editable-card'\", \"class.ant-tabs-editable\": \"nzType === 'editable-card'\", \"class.ant-tabs-editable-card\": \"nzType === 'editable-card'\", \"class.ant-tabs-centered\": \"nzCentered\", \"class.ant-tabs-rtl\": \"dir === 'rtl'\", \"class.ant-tabs-top\": \"nzTabPosition === 'top'\", \"class.ant-tabs-bottom\": \"nzTabPosition === 'bottom'\", \"class.ant-tabs-left\": \"nzTabPosition === 'left'\", \"class.ant-tabs-right\": \"nzTabPosition === 'right'\", \"class.ant-tabs-default\": \"nzSize === 'default'\", \"class.ant-tabs-small\": \"nzSize === 'small'\", \"class.ant-tabs-large\": \"nzSize === 'large'\" }, classAttribute: \"ant-tabs\" }, providers: [\n {\n provide: NZ_TAB_SET,\n useExisting: forwardRef(() => NzTabsComponent)\n }\n ], queries: [{ propertyName: \"extraContents\", predicate: NzTabBarExtraContentDirective, isSignal: true }, { propertyName: \"allTabs\", predicate: NzTabComponent, descendants: true }, { propertyName: \"tabLinks\", predicate: NzTabLinkDirective, descendants: true }], viewQueries: [{ propertyName: \"tabNavBarRef\", first: true, predicate: NzTabNavBarComponent, descendants: true }], exportAs: [\"nzTabs\"], ngImport: i0, template: `\n @if (tabs.length || addable) {\n <nz-tabs-nav\n [style]=\"nzTabBarStyle\"\n [selectedIndex]=\"nzSelectedIndex || 0\"\n [inkBarAnimated]=\"inkBarAnimated\"\n [addable]=\"addable\"\n [addIcon]=\"nzAddIcon\"\n [hideBar]=\"nzHideAll\"\n [position]=\"position\"\n [extraTemplate]=\"nzTabBarExtraContent\"\n [extraContents]=\"extraContents()\"\n (tabScroll)=\"nzTabListScroll.emit($event)\"\n (selectFocusedIndex)=\"setSelectedIndex($event)\"\n (addClicked)=\"onAdd()\"\n >\n @for (tab of tabs; track tab; let i = $index) {\n <div\n class=\"ant-tabs-tab\"\n [style.margin-right.px]=\"position === 'horizontal' ? nzTabBarGutter : null\"\n [style.margin-bottom.px]=\"position === 'vertical' ? nzTabBarGutter : null\"\n [class.ant-tabs-tab-active]=\"nzSelectedIndex === i\"\n [class.ant-tabs-tab-disabled]=\"tab.nzDisabled\"\n (click)=\"clickNavItem(tab, i, $event)\"\n (contextmenu)=\"contextmenuNavItem(tab, $event)\"\n >\n <button\n type=\"button\"\n role=\"tab\"\n [id]=\"getTabContentId(i)\"\n [attr.tabIndex]=\"getTabIndex(tab, i)\"\n [attr.aria-disabled]=\"tab.nzDisabled\"\n [attr.aria-selected]=\"nzSelectedIndex === i && !nzHideAll\"\n [attr.aria-controls]=\"getTabContentId(i)\"\n [disabled]=\"tab.nzDisabled\"\n [tab]=\"tab\"\n [active]=\"nzSelectedIndex === i\"\n class=\"ant-tabs-tab-btn\"\n nzTabNavItem\n cdkMonitorElementFocus\n >\n <ng-container *nzStringTemplateOutlet=\"tab.label; context: { visible: true }\">\n {{ tab.label }}\n </ng-container>\n @if (tab.nzClosable && closable && !tab.nzDisabled) {\n <button\n type=\"button\"\n nz-tab-close-button\n [closeIcon]=\"tab.nzCloseIcon\"\n (click)=\"onClose(i, $event)\"\n ></button>\n }\n </button>\n </div>\n }\n </nz-tabs-nav>\n }\n <div class=\"ant-tabs-content-holder\">\n <div\n class=\"ant-tabs-content\"\n [class.ant-tabs-content-top]=\"nzTabPosition === 'top'\"\n [class.ant-tabs-content-bottom]=\"nzTabPosition === 'bottom'\"\n [class.ant-tabs-content-left]=\"nzTabPosition === 'left'\"\n [class.ant-tabs-content-right]=\"nzTabPosition === 'right'\"\n [class.ant-tabs-content-animated]=\"tabPaneAnimated\"\n >\n @if (!nzHideAll) {\n @for (tab of tabs; track tab; let i = $index) {\n @if (tab.nzForceRender) {\n <ng-template [ngTemplateOutlet]=\"tabpaneTmpl\"></ng-template>\n } @else if (nzDestroyInactiveTabPane) {\n @if (nzSelectedIndex === i) {\n <ng-template [ngTemplateOutlet]=\"tabpaneTmpl\"></ng-template>\n }\n } @else {\n @if (nzSelectedIndex === i || tab.hasBeenActive) {\n <ng-template [ngTemplateOutlet]=\"tabpaneTmpl\"></ng-template>\n }\n }\n\n <ng-template #tabpaneTmpl>\n <div\n role=\"tabpanel\"\n [id]=\"getTabContentId(i)\"\n [attr.aria-labelledby]=\"getTabContentId(i)\"\n nz-tab-body\n [active]=\"nzSelectedIndex === i\"\n [content]=\"tab.content\"\n [animated]=\"tabPaneAnimated\"\n ></div>\n </ng-template>\n }\n }\n </div>\n </div>\n `, isInline: true, dependencies: [{ kind: \"component\", type: NzTabNavBarComponent, selector: \"nz-tabs-nav\", inputs: [\"position\", \"addable\", \"hideBar\", \"addIcon\", \"inkBarAnimated\", \"extraTemplate\", \"extraContents\", \"selectedIndex\"], outputs: [\"indexFocused\", \"selectFocusedIndex\", \"addClicked\", \"tabScroll\"], exportAs: [\"nzTabsNav\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: NzTabNavItemDirective, selector: \"[nzTabNavItem]\", inputs: [\"disabled\", \"tab\", \"active\"] }, { kind: \"ngmodule\", type: A11yModule }, { kind: \"directive\", type: i1$1.CdkMonitorFocus, selector: \"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]\", outputs: [\"cdkFocusChange\"], exportAs: [\"cdkMonitorFocus\"] }, { kind: \"ngmodule\", type: NzOutletModule }, { kind: \"directive\", type: i1.NzStringTemplateOutletDirective, selector: \"[nzStringTemplateOutlet]\", inputs: [\"nzStringTemplateOutletContext\", \"nzStringTemplateOutlet\"], exportAs: [\"nzStringTemplateOutlet\"] }, { kind: \"component\", type: NzTabCloseButtonComponent, selector: \"nz-tab-close-button, button[nz-tab-close-button]\", inputs: [\"closeIcon\"] }, { kind: \"component\", type: NzTabBodyComponent, selector: \"[nz-tab-body]\", inputs: [\"content\", \"active\", \"animated\"], exportAs: [\"nzTabBody\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });\n };\n})();\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabsComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'nz-tabs,nz-tabset',\n exportAs: 'nzTabs',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n {\n provide: NZ_TAB_SET,\n useExisting: forwardRef(() => NzTabsComponent)\n }\n ],\n template: `\n @if (tabs.length || addable) {\n <nz-tabs-nav\n [style]=\"nzTabBarStyle\"\n [selectedIndex]=\"nzSelectedIndex || 0\"\n [inkBarAnimated]=\"inkBarAnimated\"\n [addable]=\"addable\"\n [addIcon]=\"nzAddIcon\"\n [hideBar]=\"nzHideAll\"\n [position]=\"position\"\n [extraTemplate]=\"nzTabBarExtraContent\"\n [extraContents]=\"extraContents()\"\n (tabScroll)=\"nzTabListScroll.emit($event)\"\n (selectFocusedIndex)=\"setSelectedIndex($event)\"\n (addClicked)=\"onAdd()\"\n >\n @for (tab of tabs; track tab; let i = $index) {\n <div\n class=\"ant-tabs-tab\"\n [style.margin-right.px]=\"position === 'horizontal' ? nzTabBarGutter : null\"\n [style.margin-bottom.px]=\"position === 'vertical' ? nzTabBarGutter : null\"\n [class.ant-tabs-tab-active]=\"nzSelectedIndex === i\"\n [class.ant-tabs-tab-disabled]=\"tab.nzDisabled\"\n (click)=\"clickNavItem(tab, i, $event)\"\n (contextmenu)=\"contextmenuNavItem(tab, $event)\"\n >\n <button\n type=\"button\"\n role=\"tab\"\n [id]=\"getTabContentId(i)\"\n [attr.tabIndex]=\"getTabIndex(tab, i)\"\n [attr.aria-disabled]=\"tab.nzDisabled\"\n [attr.aria-selected]=\"nzSelectedIndex === i && !nzHideAll\"\n [attr.aria-controls]=\"getTabContentId(i)\"\n [disabled]=\"tab.nzDisabled\"\n [tab]=\"tab\"\n [active]=\"nzSelectedIndex === i\"\n class=\"ant-tabs-tab-btn\"\n nzTabNavItem\n cdkMonitorElementFocus\n >\n <ng-container *nzStringTemplateOutlet=\"tab.label; context: { visible: true }\">\n {{ tab.label }}\n </ng-container>\n @if (tab.nzClosable && closable && !tab.nzDisabled) {\n <button\n type=\"button\"\n nz-tab-close-button\n [closeIcon]=\"tab.nzCloseIcon\"\n (click)=\"onClose(i, $event)\"\n ></button>\n }\n </button>\n </div>\n }\n </nz-tabs-nav>\n }\n <div class=\"ant-tabs-content-holder\">\n <div\n class=\"ant-tabs-content\"\n [class.ant-tabs-content-top]=\"nzTabPosition === 'top'\"\n [class.ant-tabs-content-bottom]=\"nzTabPosition === 'bottom'\"\n [class.ant-tabs-content-left]=\"nzTabPosition === 'left'\"\n [class.ant-tabs-content-right]=\"nzTabPosition === 'right'\"\n [class.ant-tabs-content-animated]=\"tabPaneAnimated\"\n >\n @if (!nzHideAll) {\n @for (tab of tabs; track tab; let i = $index) {\n @if (tab.nzForceRender) {\n <ng-template [ngTemplateOutlet]=\"tabpaneTmpl\"></ng-template>\n } @else if (nzDestroyInactiveTabPane) {\n @if (nzSelectedIndex === i) {\n <ng-template [ngTemplateOutlet]=\"tabpaneTmpl\"></ng-template>\n }\n } @else {\n @if (nzSelectedIndex === i || tab.hasBeenActive) {\n <ng-template [ngTemplateOutlet]=\"tabpaneTmpl\"></ng-template>\n }\n }\n\n <ng-template #tabpaneTmpl>\n <div\n role=\"tabpanel\"\n [id]=\"getTabContentId(i)\"\n [attr.aria-labelledby]=\"getTabContentId(i)\"\n nz-tab-body\n [active]=\"nzSelectedIndex === i\"\n [content]=\"tab.content\"\n [animated]=\"tabPaneAnimated\"\n ></div>\n </ng-template>\n }\n }\n </div>\n </div>\n `,\n host: {\n class: 'ant-tabs',\n '[class.ant-tabs-card]': `nzType === 'card' || nzType === 'editable-card'`,\n '[class.ant-tabs-editable]': `nzType === 'editable-card'`,\n '[class.ant-tabs-editable-card]': `nzType === 'editable-card'`,\n '[class.ant-tabs-centered]': `nzCentered`,\n '[class.ant-tabs-rtl]': `dir === 'rtl'`,\n '[class.ant-tabs-top]': `nzTabPosition === 'top'`,\n '[class.ant-tabs-bottom]': `nzTabPosition === 'bottom'`,\n '[class.ant-tabs-left]': `nzTabPosition === 'left'`,\n '[class.ant-tabs-right]': `nzTabPosition === 'right'`,\n '[class.ant-tabs-default]': `nzSize === 'default'`,\n '[class.ant-tabs-small]': `nzSize === 'small'`,\n '[class.ant-tabs-large]': `nzSize === 'large'`\n },\n imports: [\n NzTabNavBarComponent,\n NgTemplateOutlet,\n NzTabNavItemDirective,\n A11yModule,\n NzOutletModule,\n NzTabCloseButtonComponent,\n NzTabBodyComponent\n ]\n }]\n }], ctorParameters: () => [], propDecorators: { nzSelectedIndex: [{\n type: Input\n }], nzTabPosition: [{\n type: Input\n }], nzTabBarExtraContent: [{\n type: Input\n }], nzCanDeactivate: [{\n type: Input\n }], nzAddIcon: [{\n type: Input\n }], nzTabBarStyle: [{\n type: Input\n }], nzType: [{\n type: Input\n }], nzSize: [{\n type: Input\n }], nzAnimated: [{\n type: Input\n }], nzTabBarGutter: [{\n type: Input\n }], nzHideAdd: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], nzCentered: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], nzHideAll: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], nzLinkRouter: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], nzLinkExact: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], nzDestroyInactiveTabPane: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], nzSelectChange: [{\n type: Output\n }], nzSelectedIndexChange: [{\n type: Output\n }], nzTabListScroll: [{\n type: Output\n }], nzClose: [{\n type: Output\n }], nzAdd: [{\n type: Output\n }], allTabs: [{\n type: ContentChildren,\n args: [NzTabComponent, { descendants: true }]\n }], tabLinks: [{\n type: ContentChildren,\n args: [NzTabLinkDirective, { descendants: true }]\n }], tabNavBarRef: [{\n type: ViewChild,\n args: [NzTabNavBarComponent, { static: false }]\n }] } });\n/**\n * @deprecated Use `NzTabsComponent` instead. This will be removed in 21.0.0.\n */\nconst NzTabSetComponent = NzTabsComponent;\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 */\nconst DIRECTIVES = [\n NzTabsComponent,\n NzTabComponent,\n NzTabNavBarComponent,\n NzTabNavItemDirective,\n NzTabsInkBarDirective,\n NzTabScrollListDirective,\n NzTabNavOperationComponent,\n NzTabAddButtonComponent,\n NzTabCloseButtonComponent,\n NzTabDirective,\n NzTabBodyComponent,\n NzTabLinkDirective,\n NzTabLinkTemplateDirective,\n NzTabBarExtraContentDirective\n];\nclass NzTabsModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabsModule, imports: [NzTabsComponent,\n NzTabComponent,\n NzTabNavBarComponent,\n NzTabNavItemDirective,\n NzTabsInkBarDirective,\n NzTabScrollListDirective,\n NzTabNavOperationComponent,\n NzTabAddButtonComponent,\n NzTabCloseButtonComponent,\n NzTabDirective,\n NzTabBodyComponent,\n NzTabLinkDirective,\n NzTabLinkTemplateDirective,\n NzTabBarExtraContentDirective], exports: [NzTabsComponent,\n NzTabComponent,\n NzTabNavBarComponent,\n NzTabNavItemDirective,\n NzTabsInkBarDirective,\n NzTabScrollListDirective,\n NzTabNavOperationComponent,\n NzTabAddButtonComponent,\n NzTabCloseButtonComponent,\n NzTabDirective,\n NzTabBodyComponent,\n NzTabLinkDirective,\n NzTabLinkTemplateDirective,\n NzTabBarExtraContentDirective] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabsModule, imports: [NzTabsComponent,\n NzTabNavBarComponent,\n NzTabNavOperationComponent,\n NzTabAddButtonComponent,\n NzTabCloseButtonComponent] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: NzTabsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [DIRECTIVES],\n exports: [DIRECTIVES]\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NZ_TAB_SET, NzTabBarExtraContentDirective, NzTabChangeEvent, NzTabComponent, NzTabDirective, NzTabLinkDirective, NzTabLinkTemplateDirective, NzTabSetComponent, NzTabsComponent, NzTabsModule, NzTabAddButtonComponent as ɵNzTabAddButtonComponent, NzTabBodyComponent as ɵNzTabBodyComponent, NzTabCloseButtonComponent as ɵNzTabCloseButtonComponent, NzTabNavBarComponent as ɵNzTabNavBarComponent, NzTabNavItemDirective as ɵNzTabNavItemDirective, NzTabNavOperationComponent as ɵNzTabNavOperationComponent, NzTabScrollListDirective as ɵNzTabScrollListDirective, NzTabsInkBarDirective as ɵNzTabsInkBarDirective };\n\n"],"mappings":"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","names":[],"x_google_ignoreList":[0]}
|