From 09671c76513bafcc2a16e51f93e509507555a473 Mon Sep 17 00:00:00 2001
From: hurui <177768073@qq.com>
Date: Fri, 12 Apr 2024 15:51:31 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.angular/cache/17.0.7/high-web/.tsbuildinfo | 2 +-
.../cache/17.0.7/vite/deps/_metadata.json | 188 +-
.../cache/17.0.7/vite/deps/chunk-2CQTWQUI.js | 720 -
.../17.0.7/vite/deps/chunk-2CQTWQUI.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-55A2ZGND.js | 116 -
.../17.0.7/vite/deps/chunk-55A2ZGND.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-5MZJ5XYV.js | 791 -
.../17.0.7/vite/deps/chunk-5MZJ5XYV.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-6RXUTAFR.js | 309 -
.../17.0.7/vite/deps/chunk-6RXUTAFR.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-6U656R5M.js | 4992 ------
.../17.0.7/vite/deps/chunk-6U656R5M.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-D5ODNR6D.js | 574 -
.../17.0.7/vite/deps/chunk-D5ODNR6D.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-E6XJDY45.js | 2373 ---
.../17.0.7/vite/deps/chunk-E6XJDY45.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-FGZVIKKA.js | 191 -
.../17.0.7/vite/deps/chunk-FGZVIKKA.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-KMGBCF4T.js | 760 -
.../17.0.7/vite/deps/chunk-KMGBCF4T.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-M5GY4FCO.js | 275 -
.../17.0.7/vite/deps/chunk-M5GY4FCO.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-QP2OUFNR.js | 430 -
.../17.0.7/vite/deps/chunk-QP2OUFNR.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-T745QDCV.js | 14666 ----------------
.../17.0.7/vite/deps/chunk-T745QDCV.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-VWMHIMW7.js | 1376 --
.../17.0.7/vite/deps/chunk-VWMHIMW7.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-WB57DPWD.js | 233 -
.../17.0.7/vite/deps/chunk-WB57DPWD.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-WKTPWT5U.js | 1928 --
.../17.0.7/vite/deps/chunk-WKTPWT5U.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-XAGDQPFO.js | 213 -
.../17.0.7/vite/deps/chunk-XAGDQPFO.js.map | 7 -
.../cache/17.0.7/vite/deps/chunk-ZHMJ6SNN.js | 1225 --
.../17.0.7/vite/deps/chunk-ZHMJ6SNN.js.map | 7 -
.../vite/deps/ng-zorro-antd_breadcrumb.js | 30 +-
.../17.0.7/vite/deps/ng-zorro-antd_button.js | 8 +-
.../vite/deps/ng-zorro-antd_carousel.js | 18 +-
.../vite/deps/ng-zorro-antd_checkbox.js | 18 +-
.../17.0.7/vite/deps/ng-zorro-antd_drawer.js | 1073 --
.../vite/deps/ng-zorro-antd_drawer.js.map | 7 -
.../17.0.7/vite/deps/ng-zorro-antd_form.js | 50 +-
.../17.0.7/vite/deps/ng-zorro-antd_grid.js | 8 +-
.../17.0.7/vite/deps/ng-zorro-antd_i18n.js | 4 +-
.../17.0.7/vite/deps/ng-zorro-antd_icon.js | 6 +-
.../17.0.7/vite/deps/ng-zorro-antd_input.js | 30 +-
.../17.0.7/vite/deps/ng-zorro-antd_layout.js | 30 +-
.../17.0.7/vite/deps/ng-zorro-antd_menu.js | 20 +-
.../17.0.7/vite/deps/ng-zorro-antd_message.js | 24 +-
.../17.0.7/vite/deps/ng-zorro-antd_slider.js | 24 +-
.../17.0.7/vite/deps/ng-zorro-antd_tabs.js | 44 +-
.gitignore | 2 +-
src/app/app.routes.ts | 5 +
src/app/pages/body/index/index.component.html | 62 +-
src/app/pages/body/index/index.component.ts | 32 +-
src/app/pages/body/menu/menu.module.ts | 12 +
src/app/pages/body/tab/tab.component.html | 4 +-
src/app/pages/body/tab/tab.component.ts | 9 +-
.../pages/index/index/index.component.html | 2 +-
src/app/pages/menu/menu.component.html | 1 -
src/app/pages/menu/menu.component.spec.ts | 23 -
src/app/pages/menu/menu.component.ts | 12 -
src/app/pages/system/menu/menu.component.html | 26 +
.../{ => system}/menu/menu.component.less | 0
src/app/pages/system/menu/menu.component.ts | 37 +
src/app/pages/system/system.module.ts | 12 +
src/app/pages/system/system.routes.ts | 6 +
src/app/servies/menu/menu.service.ts | 49 +
69 files changed, 458 insertions(+), 32711 deletions(-)
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-2CQTWQUI.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-2CQTWQUI.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-55A2ZGND.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-55A2ZGND.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-5MZJ5XYV.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-5MZJ5XYV.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-6RXUTAFR.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-6RXUTAFR.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-6U656R5M.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-6U656R5M.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-D5ODNR6D.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-D5ODNR6D.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-E6XJDY45.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-E6XJDY45.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-FGZVIKKA.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-FGZVIKKA.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-KMGBCF4T.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-KMGBCF4T.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-M5GY4FCO.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-M5GY4FCO.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-QP2OUFNR.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-QP2OUFNR.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-T745QDCV.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-T745QDCV.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-VWMHIMW7.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-VWMHIMW7.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-WB57DPWD.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-WB57DPWD.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-WKTPWT5U.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-WKTPWT5U.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-XAGDQPFO.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-XAGDQPFO.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-ZHMJ6SNN.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/chunk-ZHMJ6SNN.js.map
delete mode 100644 .angular/cache/17.0.7/vite/deps/ng-zorro-antd_drawer.js
delete mode 100644 .angular/cache/17.0.7/vite/deps/ng-zorro-antd_drawer.js.map
create mode 100644 src/app/pages/body/menu/menu.module.ts
delete mode 100644 src/app/pages/menu/menu.component.html
delete mode 100644 src/app/pages/menu/menu.component.spec.ts
delete mode 100644 src/app/pages/menu/menu.component.ts
create mode 100644 src/app/pages/system/menu/menu.component.html
rename src/app/pages/{ => system}/menu/menu.component.less (100%)
create mode 100644 src/app/pages/system/menu/menu.component.ts
create mode 100644 src/app/pages/system/system.module.ts
create mode 100644 src/app/pages/system/system.routes.ts
create mode 100644 src/app/servies/menu/menu.service.ts
diff --git a/.angular/cache/17.0.7/high-web/.tsbuildinfo b/.angular/cache/17.0.7/high-web/.tsbuildinfo
index 0ffe1b1..7e1d183 100644
--- a/.angular/cache/17.0.7/high-web/.tsbuildinfo
+++ b/.angular/cache/17.0.7/high-web/.tsbuildinfo
@@ -1 +1 @@
-{"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/tslib/tslib.d.ts","../../../../src/main.ngtypecheck.ts","../../../../node_modules/rxjs/dist/types/internal/subscription.d.ts","../../../../node_modules/rxjs/dist/types/internal/subscriber.d.ts","../../../../node_modules/rxjs/dist/types/internal/operator.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/types.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audittime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffercount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffertime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffertoggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/catcherror.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatestall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatestwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatmapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debouncetime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/defaultifempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delaywhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctuntilchanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctuntilkeychanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/elementat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/endwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/findindex.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../../../../node_modules/rxjs/dist/types/internal/subject.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/groupby.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/ignoreelements.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/isempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/notification.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergemap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/flatmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergemapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergescan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergewith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectableobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/observeon.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/onerrorresumenextwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishbehavior.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishlast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishreplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/racewith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeatwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retrywhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/refcount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sampletime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sequenceequal.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sharereplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skiplast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipuntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipwhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/startwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/subscribeon.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchmapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchscan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takelast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeuntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takewhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttletime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throwifempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeinterval.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeoutwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/toarray.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowcount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowtime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowtoggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/withlatestfrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipwith.d.ts","../../../../node_modules/rxjs/dist/types/operators/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/action.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/testmessage.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/subscriptionlog.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/subscriptionloggable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/coldobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/hotobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asyncscheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/timerhandle.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asyncaction.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/virtualtimescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/testscheduler.d.ts","../../../../node_modules/rxjs/dist/types/testing/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/dom/animationframes.d.ts","../../../../node_modules/rxjs/dist/types/internal/behaviorsubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/replaysubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/asyncsubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asapscheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queuescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationframescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationframe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/isobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/lastvaluefrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/firstvaluefrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/argumentoutofrangeerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/emptyerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/notfounderror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/objectunsubscribederror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/sequenceerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/unsubscriptionerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindcallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindnodecallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/anycatcher.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/combinelatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/forkjoin.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromevent.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromeventpattern.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/onerrorresumenext.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/throwerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../../../../node_modules/rxjs/dist/types/internal/config.d.ts","../../../../node_modules/rxjs/dist/types/index.d.ts","../../../../node_modules/@angular/core/primitives/signals/index.d.ts","../../../../node_modules/@angular/core/index.d.ts","../../../../node_modules/@angular/common/index.d.ts","../../../../node_modules/@angular/common/http/index.d.ts","../../../../node_modules/@angular/platform-browser/index.d.ts","../../../../src/app/app.config.ngtypecheck.ts","../../../../node_modules/@angular/router/index.d.ts","../../../../src/app/app.routes.ngtypecheck.ts","../../../../node_modules/@angular/cdk/bidi/index.d.ts","../../../../node_modules/@angular/cdk/platform/index.d.ts","../../../../node_modules/@angular/cdk/layout/index.d.ts","../../../../node_modules/ng-zorro-antd/core/services/resize.d.ts","../../../../node_modules/ng-zorro-antd/core/types/any.d.ts","../../../../node_modules/ng-zorro-antd/core/types/common-wrap.d.ts","../../../../node_modules/ng-zorro-antd/core/types/direction.d.ts","../../../../node_modules/ng-zorro-antd/core/types/indexable.d.ts","../../../../node_modules/ng-zorro-antd/core/types/ng-class.d.ts","../../../../node_modules/ng-zorro-antd/core/types/size.d.ts","../../../../node_modules/ng-zorro-antd/core/types/template.d.ts","../../../../node_modules/ng-zorro-antd/core/types/shape.d.ts","../../../../node_modules/ng-zorro-antd/core/types/compare-with.d.ts","../../../../node_modules/ng-zorro-antd/core/types/control-value-accessor.d.ts","../../../../node_modules/ng-zorro-antd/core/types/convert-input.d.ts","../../../../node_modules/ng-zorro-antd/core/types/input-observable.d.ts","../../../../node_modules/ng-zorro-antd/core/types/type.d.ts","../../../../node_modules/ng-zorro-antd/core/types/status.d.ts","../../../../node_modules/ng-zorro-antd/core/types/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/types/index.d.ts","../../../../node_modules/ng-zorro-antd/core/services/singleton.d.ts","../../../../node_modules/ng-zorro-antd/core/services/drag.d.ts","../../../../node_modules/ng-zorro-antd/core/services/scroll.d.ts","../../../../node_modules/ng-zorro-antd/core/services/breakpoint.d.ts","../../../../node_modules/ng-zorro-antd/core/services/destroy.d.ts","../../../../node_modules/ng-zorro-antd/core/services/image-preload.d.ts","../../../../node_modules/ng-zorro-antd/core/services/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/services/index.d.ts","../../../../node_modules/ng-zorro-antd/grid/row.directive.d.ts","../../../../node_modules/ng-zorro-antd/grid/col.directive.d.ts","../../../../node_modules/ng-zorro-antd/grid/grid.module.d.ts","../../../../node_modules/ng-zorro-antd/grid/public-api.d.ts","../../../../node_modules/ng-zorro-antd/grid/index.d.ts","../../../../node_modules/@ant-design/icons-angular/types.d.ts","../../../../node_modules/@ant-design/icons-angular/component/icon.service.d.ts","../../../../node_modules/@ant-design/icons-angular/component/icon.directive.d.ts","../../../../node_modules/@ant-design/icons-angular/component/icon.module.d.ts","../../../../node_modules/@ant-design/icons-angular/component/icon.error.d.ts","../../../../node_modules/@ant-design/icons-angular/utils.d.ts","../../../../node_modules/@ant-design/icons-angular/manifest.d.ts","../../../../node_modules/@ant-design/icons-angular/public_api.d.ts","../../../../node_modules/@ant-design/icons-angular/index.d.ts","../../../../node_modules/ng-zorro-antd/core/config/config.d.ts","../../../../node_modules/ng-zorro-antd/core/config/config.service.d.ts","../../../../node_modules/ng-zorro-antd/core/config/css-variables.d.ts","../../../../node_modules/ng-zorro-antd/core/config/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/config/index.d.ts","../../../../node_modules/ng-zorro-antd/icon/icon.service.d.ts","../../../../node_modules/ng-zorro-antd/icon/icon.directive.d.ts","../../../../node_modules/ng-zorro-antd/icon/icon.module.d.ts","../../../../node_modules/ng-zorro-antd/icon/icons.d.ts","../../../../node_modules/ng-zorro-antd/icon/public-api.d.ts","../../../../node_modules/ng-zorro-antd/icon/index.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.types.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.service.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu.service.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu-item.component.d.ts","../../../../node_modules/@angular/cdk/collections/index.d.ts","../../../../node_modules/@angular/cdk/coercion/index.d.ts","../../../../node_modules/@angular/cdk/scrolling/index.d.ts","../../../../node_modules/@angular/cdk/portal/index.d.ts","../../../../node_modules/@angular/cdk/overlay/index.d.ts","../../../../node_modules/ng-zorro-antd/core/no-animation/nz-no-animation.directive.d.ts","../../../../node_modules/ng-zorro-antd/core/no-animation/nz-no-animation.module.d.ts","../../../../node_modules/ng-zorro-antd/core/no-animation/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/no-animation/index.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/nz-connected-overlay.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/nz-overlay.module.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/overlay-position.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/index.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.directive.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu-group.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu-divider.directive.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu-title.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu-inline-child.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu-non-inline-child.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.module.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.token.d.ts","../../../../node_modules/ng-zorro-antd/menu/public-api.d.ts","../../../../node_modules/ng-zorro-antd/menu/index.d.ts","../../../../src/app/pages/body/index/index.component.ngtypecheck.ts","../../../../node_modules/ng-zorro-antd/layout/content.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/footer.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/header.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/sider.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/layout.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/sider-trigger.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/layout.module.d.ts","../../../../node_modules/ng-zorro-antd/layout/public-api.d.ts","../../../../node_modules/ng-zorro-antd/layout/index.d.ts","../../../../node_modules/@angular/animations/index.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown-menu.component.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown.directive.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown-a.directive.d.ts","../../../../node_modules/ng-zorro-antd/button/button.component.d.ts","../../../../node_modules/ng-zorro-antd/button/button-group.component.d.ts","../../../../node_modules/ng-zorro-antd/core/transition-patch/transition-patch.directive.d.ts","../../../../node_modules/ng-zorro-antd/core/transition-patch/transition-patch.module.d.ts","../../../../node_modules/ng-zorro-antd/core/transition-patch/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/transition-patch/index.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/nz-wave-renderer.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/nz-wave.directive.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/nz-wave.module.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/index.d.ts","../../../../node_modules/ng-zorro-antd/button/button.module.d.ts","../../../../node_modules/ng-zorro-antd/button/public-api.d.ts","../../../../node_modules/ng-zorro-antd/button/index.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown-button.directive.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/context-menu.service.module.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown.module.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/context-menu.service.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/public-api.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/index.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb-item.component.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb.component.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb-separator.component.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb.module.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/public-api.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/index.d.ts","../../../../src/app/data/menu/menu.namespace.ngtypecheck.ts","../../../../src/app/data/menu/menu.namespace.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-add-button.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/interfaces.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tabs-ink-bar.directive.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/resize-observer.service.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/resize-observer.directive.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/resize-observer.module.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/public-api.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/index.d.ts","../../../../node_modules/@angular/cdk/observers/index.d.ts","../../../../node_modules/@angular/cdk/a11y/index.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-link.directive.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-nav-item.directive.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-nav-operation.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-nav-bar.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-body.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-scroll-list.directive.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-close-button.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab.directive.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tabset.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tabs.module.d.ts","../../../../node_modules/ng-zorro-antd/tabs/public-api.d.ts","../../../../node_modules/ng-zorro-antd/tabs/index.d.ts","../../../../src/app/pages/body/tab/tab.component.ngtypecheck.ts","../../../../src/app/pages/body/tab/tab.component.ts","../../../../src/app/pages/body/index/index.component.ts","../../../../src/app/utils/initguard.service.ngtypecheck.ts","../../../../src/app/data/login/localstorage.namespace.ngtypecheck.ts","../../../../src/app/data/login/localstorage.namespace.ts","../../../../src/app/utils/localstorage.service.ngtypecheck.ts","../../../../src/app/utils/localstorage.service.ts","../../../../src/app/utils/initguard.service.ts","../../../../src/app/pages/login/login.routes.ngtypecheck.ts","../../../../node_modules/ng-zorro-antd/carousel/carousel-content.directive.d.ts","../../../../node_modules/ng-zorro-antd/carousel/typings.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/base-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/carousel.component.d.ts","../../../../node_modules/ng-zorro-antd/carousel/carousel.module.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/opacity-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/transform-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/experimental/transform-no-loop-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/experimental/flip-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/public-api.d.ts","../../../../node_modules/ng-zorro-antd/carousel/index.d.ts","../../../../node_modules/@angular/forms/index.d.ts","../../../../node_modules/ng-zorro-antd/form/form.directive.d.ts","../../../../node_modules/ng-zorro-antd/form/form-item.component.d.ts","../../../../node_modules/ng-zorro-antd/form/form-label.component.d.ts","../../../../node_modules/ng-zorro-antd/core/form/nz-form-status.service.d.ts","../../../../node_modules/ng-zorro-antd/core/form/nz-form-no-status.service.d.ts","../../../../node_modules/ng-zorro-antd/core/form/nz-form-item-feedback-icon.component.d.ts","../../../../node_modules/ng-zorro-antd/core/form/nz-form-patch.module.d.ts","../../../../node_modules/ng-zorro-antd/core/form/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/form/index.d.ts","../../../../node_modules/date-fns/typings.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.interface.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.service.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.pipe.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.module.d.ts","../../../../node_modules/ng-zorro-antd/core/time/candy-date.d.ts","../../../../node_modules/ng-zorro-antd/core/time/time.d.ts","../../../../node_modules/ng-zorro-antd/core/time/time-parser.d.ts","../../../../node_modules/ng-zorro-antd/core/time/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/time/index.d.ts","../../../../node_modules/ng-zorro-antd/i18n/date-config.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.token.d.ts","../../../../node_modules/ng-zorro-antd/i18n/date-helper.service.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ar_eg.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/az_az.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/bg_bg.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/bn_bd.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/by_by.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ca_es.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/cs_cz.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/da_dk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/de_de.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/el_gr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/en_gb.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/en_us.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/es_es.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/et_ee.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fa_ir.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fi_fi.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fr_be.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fr_ca.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fr_fr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ga_ie.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/gl_es.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/he_il.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/hi_in.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/hr_hr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/hu_hu.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/hy_am.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/id_id.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/is_is.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/it_it.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ja_jp.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ka_ge.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/km_kh.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/kk_kz.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/kmr_iq.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/kn_in.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ko_kr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ku_iq.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/lt_lt.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/lv_lv.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/mk_mk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ml_in.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/mn_mn.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ms_my.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/nb_no.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ne_np.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/nl_be.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/nl_nl.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/pl_pl.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/pt_br.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/pt_pt.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ro_ro.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ru_ru.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/sk_sk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/sl_si.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/sr_rs.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/sv_se.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ta_in.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/th_th.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/tr_tr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/uk_ua.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ur_pk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/vi_vn.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/zh_cn.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/zh_hk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/zh_tw.d.ts","../../../../node_modules/ng-zorro-antd/i18n/public-api.d.ts","../../../../node_modules/ng-zorro-antd/i18n/index.d.ts","../../../../node_modules/ng-zorro-antd/form/form-control.component.d.ts","../../../../node_modules/ng-zorro-antd/form/form-text.component.d.ts","../../../../node_modules/ng-zorro-antd/form/form-split.component.d.ts","../../../../node_modules/ng-zorro-antd/form/form.module.d.ts","../../../../node_modules/ng-zorro-antd/form/public-api.d.ts","../../../../node_modules/ng-zorro-antd/form/index.d.ts","../../../../node_modules/ng-zorro-antd/input/input.directive.d.ts","../../../../node_modules/ng-zorro-antd/input/input-group.component.d.ts","../../../../node_modules/ng-zorro-antd/input/textarea-count.component.d.ts","../../../../node_modules/ng-zorro-antd/input/autosize.directive.d.ts","../../../../node_modules/ng-zorro-antd/input/input-group-slot.component.d.ts","../../../../node_modules/ng-zorro-antd/input/input.module.d.ts","../../../../node_modules/ng-zorro-antd/input/public-api.d.ts","../../../../node_modules/ng-zorro-antd/input/index.d.ts","../../../../node_modules/ng-zorro-antd/core/color/color.d.ts","../../../../node_modules/ng-zorro-antd/core/color/generate.d.ts","../../../../node_modules/ng-zorro-antd/core/color/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/color/index.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/base.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/tooltip.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/tooltip.module.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/public-api.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/index.d.ts","../../../../node_modules/ng-zorro-antd/slider/slider.service.d.ts","../../../../node_modules/ng-zorro-antd/slider/typings.d.ts","../../../../node_modules/ng-zorro-antd/slider/handle.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/slider.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/track.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/step.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/marks.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/slider.module.d.ts","../../../../node_modules/ng-zorro-antd/slider/public-api.d.ts","../../../../node_modules/ng-zorro-antd/slider/index.d.ts","../../../../src/app/pages/login/login/login.component.ngtypecheck.ts","../../../../node_modules/ng-zorro-antd/checkbox/checkbox-wrapper.component.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/checkbox.component.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/checkbox-group.component.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/checkbox.module.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/public-api.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/index.d.ts","../../../../src/app/data/login/login.namespace.ngtypecheck.ts","../../../../src/app/data/login/login.namespace.ts","../../../../src/app/utils/mathutils.service.ngtypecheck.ts","../../../../src/app/utils/mathutils.service.ts","../../../../node_modules/ng-zorro-antd/message/typings.d.ts","../../../../node_modules/ng-zorro-antd/message/base.d.ts","../../../../node_modules/ng-zorro-antd/message/message-container.component.d.ts","../../../../node_modules/ng-zorro-antd/message/message.component.d.ts","../../../../node_modules/ng-zorro-antd/message/message.module.d.ts","../../../../node_modules/ng-zorro-antd/message/message.service.d.ts","../../../../node_modules/ng-zorro-antd/message/public-api.d.ts","../../../../node_modules/ng-zorro-antd/message/index.d.ts","../../../../src/app/servies/login/login.service.ngtypecheck.ts","../../../../src/environments/environment.ngtypecheck.ts","../../../../src/environments/environment.ts","../../../../src/app/servies/login/login.service.ts","../../../../src/app/pages/login/login/login.component.ts","../../../../src/app/pages/login/login.routes.ts","../../../../src/app/pages/index/index.routes.ngtypecheck.ts","../../../../src/app/pages/index/index/index.component.ngtypecheck.ts","../../../../src/app/pages/index/index/index.component.ts","../../../../src/app/pages/index/index.routes.ts","../../../../src/app/app.routes.ts","../../../../node_modules/@angular/common/locales/zh.d.ts","../../../../node_modules/@angular/animations/browser/index.d.ts","../../../../node_modules/@angular/platform-browser/animations/index.d.ts","../../../../src/app/app.config.ts","../../../../src/app/app.component.ngtypecheck.ts","../../../../src/app/app.component.ts","../../../../src/main.ts","../../../../src/main.server.ngtypecheck.ts","../../../../src/app/app.config.server.ngtypecheck.ts","../../../../node_modules/@angular/platform-server/index.d.ts","../../../../src/app/app.config.server.ts","../../../../src/main.server.ts","../../../../server.ngtypecheck.ts","../../../../node_modules/@angular/ssr/index.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/dom-events.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/@types/mime/index.d.ts","../../../../node_modules/@types/send/index.d.ts","../../../../node_modules/@types/qs/index.d.ts","../../../../node_modules/@types/range-parser/index.d.ts","../../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../../node_modules/@types/http-errors/index.d.ts","../../../../node_modules/@types/serve-static/index.d.ts","../../../../node_modules/@types/connect/index.d.ts","../../../../node_modules/@types/body-parser/index.d.ts","../../../../node_modules/@types/express/index.d.ts","../../../../server.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc",{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"bc496ef4377553e461efcf7cc5a5a57cf59f9962aea06b5e722d54a36bf66ea1","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","ecf5cb089ea438f2545e04b6c52828c68d0b0f4bfaa661986faf36da273e9892","95444fb6292d5e2f7050d7021383b719c0252bf5f88854973977db9e3e3d8006","241bd4add06f06f0699dcd58f3b334718d85e3045d9e9d4fa556f11f4d1569c1","06540a9f3f2f88375ada0b89712de1c4310f7398d821c4c10ab5c6477dafb4bc",{"version":"de2d3120ed0989dbc776de71e6c0e8a6b4bf1935760cf468ff9d0e9986ef4c09","affectsGlobalScope":true},"b8bff8a60af0173430b18d9c3e5c443eaa3c515617210c0c7b3d2e1743c19ecb","97bdf234f5db52085d99c6842db560bca133f8a0413ff76bf830f5f38f088ce3","a76ebdf2579e68e4cfe618269c47e5a12a4e045c2805ed7f7ab37af8daa6b091","b493ff8a5175cbbb4e6e8bcfa9506c08f5a7318b2278365cfca3b397c9710ebc","e59d36b7b6e8ba2dd36d032a5f5c279d2460968c8b4e691ca384f118fb09b52a","e96885c0684c9042ec72a9a43ef977f6b4b4a2728f4b9e737edcbaa0c74e5bf6","303ee143a869e8f605e7b1d12be6c7269d4cab90d230caba792495be595d4f56","89e061244da3fc21b7330f4bd32f47c1813dd4d7f1dc3d0883d88943f035b993","e46558c2e04d06207b080138678020448e7fc201f3d69c2601b0d1456105f29a","71549375db52b1163411dba383b5f4618bdf35dc57fa327a1c7d135cf9bf67d1","7e6b2d61d6215a4e82ea75bc31a80ebb8ad0c2b37a60c10c70dd671e8d9d6d5d","78bea05df2896083cca28ed75784dde46d4b194984e8fc559123b56873580a23","5dd04ced37b7ea09f29d277db11f160df7fd73ba8b9dba86cb25552e0653a637","f74b81712e06605677ae1f061600201c425430151f95b5ef4d04387ad7617e6a","9a72847fcf4ac937e352d40810f7b7aec7422d9178451148296cf1aa19467620","3ae18f60e0b96fa1e025059b7d25b3247ba4dcb5f4372f6d6e67ce2adac74eac","2b9260f44a2e071450ae82c110f5dc8f330c9e5c3e85567ed97248330f2bf639","4f196e13684186bda6f5115fc4677a87cf84a0c9c4fc17b8f51e0984f3697b6d","61419f2c5822b28c1ea483258437c1faab87d00c6f84481aa22afb3380d8e9a4","64479aee03812264e421c0bf5104a953ca7b02740ba80090aead1330d0effe91","a5eb4835ab561c140ffc4634bb039387d5d0cceebb86918f1696c7ac156d26fd","c5570e504be103e255d80c60b56c367bf45d502ca52ee35c55dec882f6563b5c","4252b852dd791305da39f6e1242694c2e560d5e46f9bb26e2aca77252057c026","0520b5093712c10c6ef23b5fea2f833bf5481771977112500045e5ea7e8e2b69","5c3cf26654cf762ac4d7fd7b83f09acfe08eef88d2d6983b9a5a423cb4004ca3","e60fa19cf7911c1623b891155d7eb6b7e844e9afdf5738e3b46f3b687730a2bd","b1fd72ff2bb0ba91bb588f3e5329f8fc884eb859794f1c4657a2bfa122ae54d0","6cf42a4f3cfec648545925d43afaa8bb364ac10a839ffed88249da109361b275","ba13c7d46a560f3d4df8ffb1110e2bbec5801449af3b1240a718514b5576156e","6df52b70d7f7702202f672541a5f4a424d478ee5be51a9d37b8ccbe1dbf3c0f2","0ca7f997e9a4d8985e842b7c882e521b6f63233c4086e9fe79dd7a9dc4742b5e","91046b5c6b55d3b194c81fd4df52f687736fad3095e9d103ead92bb64dc160ee","db5704fdad56c74dfc5941283c1182ed471bd17598209d3ac4a49faa72e43cfc","758e8e89559b02b81bc0f8fd395b17ad5aff75490c862cbe369bb1a3d1577c40","2ee64342c077b1868f1834c063f575063051edd6e2964257d34aad032d6b657c","6f6b4b3d670b6a5f0e24ea001c1b3d36453c539195e875687950a178f1730fa7","05c4e2a992bb83066a3a648bad1c310cecd4d0628d7e19545bb107ac9596103a","b48b83a86dd9cfe36f8776b3ff52fcd45b0e043c0538dc4a4b149ba45fe367b9","792de5c062444bd2ee0413fb766e57e03cce7cdaebbfc52fc0c7c8e95069c96b","a79e3e81094c7a04a885bad9b049c519aace53300fb8a0fe4f26727cb5a746ce","dd6c3362aaaec60be028b4ba292806da8e7020eef7255c7414ce4a5c3a7138ef","8a4e89564d8ea66ad87ee3762e07540f9f0656a62043c910d819b4746fc429c5","b9011d99942889a0f95e120d06b698c628b0b6fdc3e6b7ecb459b97ed7d5bcc6","4d639cbbcc2f8f9ce6d55d5d503830d6c2556251df332dc5255d75af53c8a0e7","cdb48277f600ab5f429ecf1c5ea046683bc6b9f73f3deab9a100adac4b34969c","75be84956a29040a1afbe864c0a7a369dfdb739380072484eff153905ef867ee","b06b4adc2ae03331a92abd1b19af8eb91ec2bf8541747ee355887a167d53145e","3114b315cd0687aad8b57cff36f9c8c51f5b1bc6254f1b1e8446ae583d8e2474","0d417c15c5c635384d5f1819cc253a540fe786cc3fda32f6a2ae266671506a21","af733cb878419f3012f0d4df36f918a69ba38d73f3232ba1ab46ef9ede6cb29c","cb59317243a11379a101eb2f27b9df1022674c3df1df0727360a0a3f963f523b","0a01b0b5a9e87d04737084731212106add30f63ec640169f1462ba2e44b6b3a8","06b8a7d46195b6b3980e523ef59746702fd210b71681a83a5cf73799623621f9","860e4405959f646c101b8005a191298b2381af8f33716dc5f42097e4620608f8","f7e32adf714b8f25d3c1783473abec3f2e82d5724538d8dcf6f51baaaff1ca7a","e07d62a8a9a3bb65433a62e9bbf400c6bfd2df4de60652af4d738303ee3670a1","bfbf80f9cd4558af2d7b2006065340aaaced15947d590045253ded50aabb9bc5","851e8d57d6dd17c71e9fa0319abd20ab2feb3fb674d0801611a09b7a25fd281c","c3bd2b94e4298f81743d92945b80e9b56c1cdfb2bef43c149b7106a2491b1fc9","a246cce57f558f9ebaffd55c1e5673da44ea603b4da3b2b47eb88915d30a9181","d993eacc103c5a065227153c9aae8acea3a4322fe1a169ee7c70b77015bf0bb2","fc2b03d0c042aa1627406e753a26a1eaad01b3c496510a78016822ef8d456bb6","063c7ebbe756f0155a8b453f410ca6b76ffa1bbc1048735bcaf9c7c81a1ce35f","748e79252a7f476f8f28923612d7696b214e270cc909bc685afefaac8f052af0","9669075ac38ce36b638b290ba468233980d9f38bdc62f0519213b2fd3e2552ec","4d123de012c24e2f373925100be73d50517ac490f9ed3578ac82d0168bfbd303","656c9af789629aa36b39092bee3757034009620439d9a39912f587538033ce28","3ac3f4bdb8c0905d4c3035d6f7fb20118c21e8a17bee46d3735195b0c2a9f39f","1f453e6798ed29c86f703e9b41662640d4f2e61337007f27ac1c616f20093f69","af43b7871ff21c62bf1a54ec5c488e31a8d3408d5b51ff2e9f8581b6c55f2fc7","70550511d25cbb0b6a64dcac7fffc3c1397fd4cbeb6b23ccc7f9b794ab8a6954","af0fbf08386603a62f2a78c42d998c90353b1f1d22e05a384545f7accf881e0a","c3f32a185cd27ac232d3428a8d9b362c3f7b4892a58adaaa022828a7dcd13eed","3139c3e5e09251feec7a87f457084bee383717f3626a7f1459d053db2f34eb76","4888fd2bcfee9a0ce89d0df860d233e0cee8ee9c479b6bd5a5d5f9aae98342fe","3be870c8e17ec14f1c18fc248f5d2c4669e576404744ff5c63e6dafcf05b97ea","56654d2c5923598384e71cb808fac2818ca3f07dd23bb018988a39d5e64f268b","8b6719d3b9e65863da5390cb26994602c10a315aa16e7d70778a63fee6c4c079","6ab380571d87bd1d6f644fb6ab7837239d54b59f07dc84347b1341f866194214","547d3c406a21b30e2b78629ecc0b2ddaf652d9e0bdb2d59ceebce5612906df33","b3a4f9385279443c3a5568ec914a9492b59a723386161fd5ef0619d9f8982f97","3fe66aba4fbe0c3ba196a4f9ed2a776fe99dc4d1567a558fb11693e9fcc4e6ed","140eef237c7db06fc5adcb5df434ee21e81ee3a6fd57e1a75b8b3750aa2df2d8","0944ec553e4744efae790c68807a461720cff9f3977d4911ac0d918a17c9dd99","7c9ed7ffdc6f843ab69e5b2a3e7f667b050dd8d24d0052db81e35480f6d4e15d","7c7d9e116fe51100ff766703e6b5e4424f51ad8977fe474ddd8d0959aa6de257","af70a2567e586be0083df3938b6a6792e6821363d8ef559ad8d721a33a5bcdaf","006cff3a8bcb92d77953f49a94cd7d5272fef4ab488b9052ef82b6a1260d870b","7d44bfdc8ee5e9af70738ff652c622ae3ad81815e63ab49bdc593d34cb3a68e5","339814517abd4dbc7b5f013dfd3b5e37ef0ea914a8bbe65413ecffd668792bc6","34d5bc0a6958967ec237c99f980155b5145b76e6eb927c9ffc57d8680326b5d8","9eae79b70c9d8288032cbe1b21d0941f6bd4f315e14786b2c1d10bccc634e897","18ce015ed308ea469b13b17f99ce53bbb97975855b2a09b86c052eefa4aa013a","5a931bc4106194e474be141e0bc1046629510dc95b9a0e4b02a3783847222965","5e5f371bf23d5ced2212a5ff56675aefbd0c9b3f4d4fdda1b6123ac6e28f058c","907c17ad5a05eecb29b42b36cc8fec6437be27cc4986bb3a218e4f74f606911c","3656f0584d5a7ee0d0f2cc2b9cffbb43af92e80186b2ce160ebd4421d1506655","a726ad2d0a98bfffbe8bc1cd2d90b6d831638c0adc750ce73103a471eb9a891c","f44c0c8ce58d3dacac016607a1a90e5342d830ea84c48d2e571408087ae55894","75a315a098e630e734d9bc932d9841b64b30f7a349a20cf4717bf93044eff113","9131d95e32b3d4611d4046a613e022637348f6cebfe68230d4e81b691e4761a1","b03aa292cfdcd4edc3af00a7dbd71136dd067ec70a7536b655b82f4dd444e857","90f690a1c5fcb4c2d19c80fea05c8ab590d8f6534c4c296d70af6293ede67366","be95e987818530082c43909be722a838315a0fc5deb6043de0a76f5221cbad24","9ed5b799c50467b0c9f81ddf544b6bcda3e34d92076d6cab183c84511e45c39f","b4fa87cc1833839e51c49f20de71230e259c15b2c9c3e89e4814acc1d1ef10de","e90ac9e4ac0326faa1bc39f37af38ace0f9d4a655cd6d147713c653139cf4928","ea27110249d12e072956473a86fd1965df8e1be985f3b686b4e277afefdde584","1f6058d60eaa8825f59d4b76bbf6cc0e6ad9770948be58de68587b0931da00cc","5666075052877fe2fdddd5b16de03168076cf0f03fbca5c1d4a3b8f43cba570c","50100b1a91f61d81ca3329a98e64b7f05cddc5e3cb26b3411adc137c9c631aca","11aceaee5663b4ed597544567d6e6a5a94b66857d7ebd62a9875ea061018cd2c","6e30d0b5a1441d831d19fe02300ab3d83726abd5141cbcc0e2993fa0efd33db4","423f28126b2fc8d8d6fa558035309000a1297ed24473c595b7dec52e5c7ebae5","fb30734f82083d4790775dae393cd004924ebcbfde49849d9430bf0f0229dd16","2c92b04a7a4a1cd9501e1be338bf435738964130fb2ad5bd6c339ee41224ac4c","c5c5f0157b41833180419dacfbd2bcce78fb1a51c136bd4bcba5249864d8b9b5","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","4bb6035e906946163ecfaec982389d0247ceeac6bdee7f1d07c03d9c224db3aa","8a44b424edee7bb17dc35a558cc15f92555f14a0441205613e0e50452ab3a602","24a00d0f98b799e6f628373249ece352b328089c3383b5606214357e9107e7d5","33637e3bc64edd2075d4071c55d60b32bdb0d243652977c66c964021b6fc8066","0f0ad9f14dedfdca37260931fac1edf0f6b951c629e84027255512f06a6ebc4c","16ad86c48bf950f5a480dc812b64225ca4a071827d3d18ffc5ec1ae176399e36","8cbf55a11ff59fd2b8e39a4aa08e25c5ddce46e3af0ed71fb51610607a13c505","d5bc4544938741f5daf8f3a339bfbf0d880da9e89e79f44a6383aaf056fe0159","c82857a876075e665bbcc78213abfe9e9b0206d502379576d7abd481ade3a569","4f71d883ed6f398ba8fe11fcd003b44bb5f220f840b3eac3c395ad91304e4620","5229c3934f58413f34f1b26c01323c93a5a65a2d9f2a565f216590dfbed1fe32","9fd7466b77020847dbc9d2165829796bf7ea00895b2520ff3752ffdcff53564b","fbfc12d54a4488c2eb166ed63bab0fb34413e97069af273210cf39da5280c8d6","85a84240002b7cf577cec637167f0383409d086e3c4443852ca248fc6e16711e","4c754b03f36ff35fc539f9ebb5f024adbb73ec2d3e4bfb35b385a05abb36a50e","59507446213e73654d6979f3b82dadc4efb0ed177425ae052d96a3f5a5be0d35","a914be97ca7a5be670d1545fc0691ac3fbabd023d7d084b338f6934349798a1f","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","62c3621d34fb2567c17a2c4b89914ebefbfbd1b1b875b070391a7d4f722e55dc","c05ac811542e0b59cb9c2e8f60e983461f0b0e39cea93e320fad447ff8e474f3","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","132351cbd8437a463757d3510258d0fa98fd3ebef336f56d6f359cf3e177a3ce","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","33d1888c3c27d3180b7fd20bac84e97ecad94b49830d5dd306f9e770213027d1","ee942c58036a0de88505ffd7c129f86125b783888288c2389330168677d6347f","a3f317d500c30ea56d41501632cdcc376dae6d24770563a5e59c039e1c2a08ec","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","0c1651a159995dfa784c57b4ea9944f16bdf8d924ed2d8b3db5c25d25749a343","aaa13958e03409d72e179b5d7f6ec5c6cc666b7be14773ae7b6b5ee4921e52db","0a86e049843ad02977a94bb9cdfec287a6c5a0a4b6b5391a6648b1a122072c5a","87437ca9dabab3a41d483441696ff9220a19e713f58e0b6a99f1731af10776d7","26c5dfa9aa4e6428f4bb7d14cbf72917ace69f738fa92480b9749eebce933370","8e94328e7ca1a7a517d1aa3c569eac0f6a44f67473f6e22c2c4aff5f9f4a9b38","d604d413aff031f4bfbdae1560e54ebf503d374464d76d50a2c6ded4df525712","299f0af797897d77685d606502be72846b3d1f0dc6a2d8c964e9ea3ccbacf5bc","12bfd290936824373edda13f48a4094adee93239b9a73432db603127881a300d","340ceb3ea308f8e98264988a663640e567c553b8d6dc7d5e43a8f3b64f780374","c5a769564e530fba3ec696d0a5cff1709b9095a0bdf5b0826d940d2fc9786413","7124ef724c3fc833a17896f2d994c368230a8d4b235baed39aa8037db31de54f","5de1c0759a76e7710f76899dcae601386424eab11fb2efaf190f2b0f09c3d3d3","9c5ee8f7e581f045b6be979f062a61bf076d362bf89c7f966b993a23424e8b0d","1a11df987948a86aa1ec4867907c59bdf431f13ed2270444bf47f788a5c7f92d","3c97b5ea66276cf463525a6aa9d5bb086bf5e05beac70a0597cda2575503b57b","b756781cd40d465da57d1fc6a442c34ae61fe8c802d752aace24f6a43fedacee","0fe76167c87289ea094e01616dcbab795c11b56bad23e1ef8aba9aa37e93432a","3a45029dba46b1f091e8dc4d784e7be970e209cd7d4ff02bd15270a98a9ba24b","032c1581f921f8874cf42966f27fd04afcabbb7878fa708a8251cac5415a2a06","69c68ed9652842ce4b8e495d63d2cd425862104c9fb7661f72e7aa8a9ef836f8","a31383256374723b47d8b5497a9558bbbcf95bcecfb586a36caf7bfd3693eb0e","06f62a14599a68bcde148d1efd60c2e52e8fa540cc7dcfa4477af132bb3de271","64aa66c7458cbfd0f48f88070b08c2f66ae94aba099dac981f17c2322d147c06","11f19ce32d21222419cecab448fa335017ebebf4f9e5457c4fa9df42fa2dcca7","2e8ee2cbb5e9159764e2189cf5547aebd0e6b0d9a64d479397bb051cd1991744","1b0471d75f5adb7f545c1a97c02a0f825851b95fe6e069ac6ecaa461b8bb321d","1d157c31a02b1e5cca9bc495b3d8d39f4b42b409da79f863fb953fbe3c7d4884","07baaceaec03d88a4b78cb0651b25f1ae0322ac1aa0b555ae3749a79a41cba86","619a132f634b4ebe5b4b4179ea5870f62f2cb09916a25957bff17b408de8b56d","f60fa446a397eb1aead9c4e568faf2df8068b4d0306ebc075fb4be16ed26b741","f3cb784be4d9e91f966a0b5052a098d9b53b0af0d341f690585b0cc05c6ca412","350f63439f8fe2e06c97368ddc7fb6d6c676d54f59520966f7dbbe6a4586014e","eba613b9b357ac8c50a925fa31dc7e65ff3b95a07efbaa684b624f143d8d34ba","9814545517193cf51127d7fbdc3b7335688206ec04ee3a46bba2ee036bd0dcac","0f6199602df09bdb12b95b5434f5d7474b1490d2cd8cc036364ab3ba6fd24263","c8ca7fd9ec7a3ec82185bfc8213e4a7f63ae748fd6fced931741d23ef4ea3c0f","5c6a8a3c2a8d059f0592d4eab59b062210a1c871117968b10797dee36d991ef7","ad77fd25ece8e09247040826a777dc181f974d28257c9cd5acb4921b51967bd8","2a25d0b3b0c0d5aa9a70635ee33a96f7e0bec5801386954c30680895b214c933","140500c8700a92c38e83d4fd45ac8286a253196956eec51421972e545a4ebb98","071bb591c12282944182a8f6deb88db0e40cbac7865440d884ffcbd2c22a71e1","a13adf241eff1ea22356848130ec6f1a50ca1ec1261a8c16d9cb8e395316462a","2e04efd4f8cf3f3e7feb461b3c43152de857800f52ec0b0abfc23e3f505e5781","ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","40108ecf79f6e648c451725e01a462ee234a5e90d40430b14744728a334042bc","ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","f9b8fedff6c1b0e53221b7890999346cf22f3ffe5fae4e94438530e8e131f5ac","2a7e6241c05770b21ac324f8d6162f53d54f2278cc532a90d21ad7f3c9d6d5f2","1401c9b5b14a8ed7c26f0a504904e1e14bd98b6cbfa4789b0c58eb4ed3e0c799","cccbd41eadd9eb95b06ae129f9fdc2bd97af2fb74edaa4d0feb608488ae0b358","7f8d4c66991cc8beabba3f6cd41c95a083be5f26216ec602b9d0dc7041e04e52","6b443897b39aa381a121d5ed377dc116a6bfc00bcedd069c1406a813dcb4252b","79df8ad48f1e6dfc725f12370cbef8368dd0270bc5c509b2d2100eb62bd32d92","3eac1a527c1a699a01c80aefc247faab8f6fc57b8a18c5dbb50fe7ac9b40de3f","5efc06564f1cf26ef2368c78efdcff70bc62bca08318b02323e2a8b08aa0f608","c62dd22be9abc5c964da33d130b00c4161d7701b8061120b0bd0acf523c42bbd","35aab9cfabc7fad736427e2ed3876257d20cb0826a6c5772401f70b624490d73","5bd166ebcd6c1cb758e70b1866ada6ec23fcaef8633107563ed3ebf95608a2dd","ab470f41a5c3d537b6fc6dd97824ea42f19df285dd2730e22a03f4140eb6a7b9","bb5748a92eed1968ba874b09fe4443a862bf83dd4454aa413a82a6bddf1a629c","e467429b5d588a6cdcb76587d8538ff1e88c6a574c7855029b99e9faa81502a7","b1e513cfe8a71d242ebdca2b04edb7c33624a5e46e3f72c7387478537144ff3b","2ce9f335f847338d25e74b6a800dfa460d1c02959f9d837052e7d47d0396c1ae","a2ec3c64e012294320eca1e860a234abc98f891a25cef5b92d8240601b89ae9b","a4f0485fd9c6133d2cf6574b70288ea49f4544d8fe6da2e367e0702b030c4fc4","ba5e4c01dfcd9c3e1a84ada9a6f9547ebfcd9bf76fc1e0f8250aa63112d410b5","829ccc49b6d32f39fef37a4f3cd964df11439719cfd05a633479bbd4a8116227","4100aee047b0ae7d2314abeba45180b11e396e2b77839c8a701776924ab748b1","9de4f0200c0a6648bfd081cd08b13039f8a89296943ef689ff708bb85d348b1c","f4bbdd4ab3199fc9ce2589211af7b6fd4ed6cebf0088599a6fecc4d11f6a9136","bcd04a5a0a86e67dda69b13b12ce66132863f9730de3a26b292729272367541f","2d86a6efd9a3924bd088c2e14a38bb584c2afd1833ddfb45e9a4a711869c4903","a11ba77c32b76a5d3bfbed16ed4bcdc321f3374e2a0f8e8ea5ed7704b5c3ba0a","3d21cfae4c52397c19fc6cb4decfc839e41532d00c6d4264b730e747022ab15e","6b67105ed49975c125f4472161bc996c19564b8eed07d67d762b0bd3a2cdba56","d85333b813aa0175226d8736c8320037fdf2f7f19afd1c553f9f05196116bf1c","3e7d04c9c7a4a8966226eed8fd1bd12462368914d2157460a06fd775dbefa0cd","5c445c08257e713b5bfe67eee956a5befe88be9a05b1534275e5265aca6eb896","82a1d9f11bbccdab1911e55017c45b723aa6c3a5c5da785f14ff9aa2def55514","3bd88eac730cafb5ee35b5ae13ded04c7821d949c34b5849238bd5c026311ebf","8dd98bf3983a25cdb076d31d5a6b4b18039d463e2c0e23b7307384c4edb5ead6","9c8cf5aa465386f10353efb80823dbed51e0d0196565f176c8111cc6026688b6","91e6bca66381ac9a853e5483050f7835d094fa0bfc0c5544d9b2519411b86706","57133d9d582a4f4fd436a33f0f42e682b1d39d69c5d9a5adad5d7e369c248b98","ef7990368a6a8c09ec4dabe518d15978718013846e6ca18523c2c283b9bc74ab","1fd6fea9b14ffa264260465cbb09991d42da07c6f95235e85bc1281d93e2ad08","fc8db740d2a63c970b913f2969f5ae4b8997deb46c337b8a11a81c03068360ea","9ca73f6ee630cecd2179636661e7b19094370b6851875dfcb6f80132f5c3a387","c60fbfe5d019ce9b911a4ccfcfa9e5229dc9fb1e67cb78495518b08490ac913d","f5e15285963a3485170f709701e8a0a867d637a0ba8ac75ba92a48b4b6c05afb","51cf45d64866a264925a9eeb41713bb427101c11f99e93defb3e72658c4af803","cbc60fb36a57868c4387e622948c3ada0b2953a9f1648e7178690ea37be380f6","b4e6ef7b866196bf46009551a7dd2b01300f95917f24d58d004eb72be6432553","a3dd80e71a8239407f2d906d1d838f45db15a1e433142334b1616fb1f74afdbf","fad4dab531c4e5c79f783f2d59aa4c695a9142be27c451462481f6531b7aaa4b","2e7768cb0e8204575fa0f1488d3d31ac95f2d5e920838c1df16fd34149807aff","c344ba0d586fb697b66bc665bd8d0b35e128b6baa5aca93a0b4c55a6fc9bd210","c2641084cb01af256e9c17fadf95749e6999d1a51259aa543111ce18d2ce133d","62f01f1e1ec4144979d99b918d3cbe443d14b4d8fe6d390e1e44549e9a217489","0c9d432c1c1c69cbdfc63f578b5a6bcd3a06c5be803c26a4b297b57f1da2312e","eec0fd4c7832b9d121698c7ee244bc98cd197a6ee42534d486cd9574eee40a0b","7ecea4c9a6cdd58e40a1f256acfd5a5c4b00e5adf7310f71a660bb2c4d1f7c23","cafa24b3e301a16117e5494de3505a8827c40849fe921b1f75a11f79eeb74ae3","ef32a2c8f06426f20a08d801238e167e9155a8341d1177a7446077be50c8a63e","ddf66648b065311cbc226d6585caa14b37f461698d525857aff60c988b66a6c9","c7e95e3e3988837ae5dc96a6f8b1360de33aaffe12be966418a7e00c8fc7f6c9","7172d4edfc661bc427a1b0f16cfd0261f5255a5a96f3c5add90eca4cf5c4eb1a","93b9f9aac69e01179892697a9d7dd1582f68582ddccc31e94d2c87f063fc700a","9982b7049712023c649e877e6812e2e06ed9249296f2a2d3b51d917f244be4c4","0b8f8981fa81638ca5a3d10174cfc199038b168cb3e7ac4548803f96a0d39d82","516160edba90fe695dabece2f2061b1f4410e1918e9e7d0d57c61c9ffafb3a5e","395981256c3a1af362058fe97f7195d44ec3443260b96766649e6f4d85513b42","6a26538b86e3044028bd01bba54f4efc5c62a7595f96191834513f506109df74","a6c6c2e81efb6c03547bcbe8b09b2a94f0f7f5ec3234cc2123bebe7487749c83","bdec7c3a64765eaace37f2dbf32944f26cec6a8cee4d5b77ae4d07c90e6fc970","d537ee66e2554c96c63ce60caf28076a7478bb34cdd8f88809abeca7931862c0","91252869322804ff931952f9a4c12301681f0728ffc2e574d7c858d04fb54a6d","86de9d676578eb21786318470077f0764a0d2669b032bcf463397142a1c9a163","0aa40ede23b85ee78889e97ae8fec583dafa733b32d269d5928911f62600219c","50a28aa624aba5300de078cee97311cd1da1bd2a9f936493c423e34b96dd9a0c","a9db178b3a5707bd21d051cb626988b29b61baa60d212d4d0fe90b62c7d58716","7ecf0b80eded1937eecbddb36f20cb2d7144fd430d5b1d25a1855207a0fcd381","c88ded4dc1952ec6f5f56b398dff49eb07b8a2838cbe5f0e9cc7553d74236685","845a152b65ac30d47142fbbfa19c73c7d849a0a9232b01589ca847cb96d74c16","28ff71809d8e0194822b92fcaffc2a4f22e56603e0e5fcd6f286fc5b2398c1b0","0d8fad4fc16a5a0f5568e4ff597e5c9556fe2a1c942d6bb84fa8dc228f9bfe14","868be3b56c220bf33cbd7fceee7818aec5d4bc2e0e49a382ea1a53497c4933db","fda33341c6373ec91c0c4b1ab8af633cf7da2a9848aa797997ec2351285e5178",{"version":"ffed33e0ea42887ea82d6cef263b736da8e4994b1bc3c7354ceeeecd75d51743","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},"47f84f10b9c759f75c0a9ecf8f367baf4995c4fe018228391cb65e689ba46cf0","9294e09a3396e7adb3470248873caec3de1d771bf2d233fa5bab1b150870a6fa","c28b8ec18d8fc89d4117d18c278a850de5a29cb3147195489709bdfa1474dc5c","4fb47e3c233f3597f6543977f8d2af03d350c0a6a3483176be2550606cf8202e","a9d0ff42c7dbf3edb3d2bfaf0ec9e6921f97f0a9de070852a985fedfa35e48f7","42453b0f1789cd76ab9b9fed3ad6acedf70ba10c7d0dc6c40cb95951db618d6b","a845229f3a271bc00e95882a44e74f2dda5551e399bbbc066d6ef508eed99916","06ea97d41486ec229c47a5e16144e373e2fffd4a26181a987338ab13d189efb4","1c24693cb55fb0478c6b446ed9d5ba4e076139601a84fc16717987b974077b44","91514ad47ab59e654f4a71943fc6ddf477b06f821fc04ff698e7340ecaedbac1","35653f4b93ee91e2220f372f6bdb446759e0806df2c2948f3e718424161a688c","9c2db9c634f77374074ba35536c510d7abee72b748c6f584254acecc3d9a06b5","fd2b097c9361b5a9910b56e0805a38ef62cb09af726fcc0002b7a993b7838f22","6f42db9e79ef2f8f75b792eebb389950497a58cfe1932acd09b09bd256acdf58","3ac44a422e919afdc3e21a9b4d626673172e18b76b97f730f8d4c0bfa6411565","a433c2f564a3c941eb05cbc41caf7c0d55c0d3c4a86d3e6db793a83dd4ac1599","af62115326b735db1b0ffaceda6fda2e1dcbbb14c5d752a99323d4a65b8a4198","aa5faf80aa97adbf6767faf1c28df7ac42aaaa8ca1066d7e03bc64a1cdb0056e","ca0fc466697d8a2252e0f721b1a88fd165fddd73497c1859491035aa61a0cebd","6f1c5a6ae31084488f48fc78f8acdc9f17b0833004102a9e1c8ad405335a2777","7b04f9659dceea386d3e7a71417a88636cbf7942b0cf313a973db9e79fd4011d","a60d106fc617d5a4ef1d784b430847d270ea334fe2531ae2a4c06c6cc15cb614","d2d9657fb39bca36caecb3d9d08e8197cbf639e6e33b661131fd656f3ea15b1c","e3a60f48af0a29cfc9238f1e2a8fa21624f1c8f80150814c2f6489934dd9c889","b4e723b6cebfdab805a6d63f9127cdc8d6c310993ea2503523247095f973d4ec","7f5b3c5d1485d10d9f6bb1e48b6467331688d23a7fbc4257664a78e971cf9985","60ca9978647761b3c40c18068a1aaa8cd477899dc92df68b4f2e1e92c4d9b8e1","1e218fb115c7f697af3fd2b276ffc101ead9cbff02a69779123c24afc6b8cf9d","c54217bffbff1434b1f05c0abd161e315f2cca16ceb2274077348a789f914f67","b6f843360b25e775baaca51ea2a574fa18fd59294998925ea720fa95b44134c9","503408eaf5058213cba791a6b7d06b66aa5538872131316283335e0afa90f8c6","31781da84adf99ff7412d91c3b592854f4c13685bbc85f781fbd5bb08bf8cb0c","75aafd13ea88e55ac6bbe55813ba03ecaa31b0d7d8128f3959108cb4f91c1ea5","89b2af233f8878bf95ecb8557b39d18ca821c6aca5273044a1d9496a4aa1ec33","a31dc99e8a4fa673b3e4251c6e5d741572af7936dca59978eba45817114f23c5","fe2e77e59c5bdb8fc8ba9823d21b3b21960a5702dca86e82c097065860f14b25","5634484f094491a24dfa775e2be5d6304b4517fbc54065e7ae4e6589b9f46563","d18160b08927fbc0370511df6bf3c6147fb472a8c2638f82096ba4b92aee8103","d75b6926bb6986e3319419943ae6660d487f483a8995aa1489a47046a387cb0e","d301931e78a7bf83720b67937598beaf2fa1604b6dfeb24d256881ab439c717b",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"b9bca31471abd55f6bf648641a3267c7176ab0052de43ef614646284809c3990","signature":"8fff57dfffe7f0bddd41267bbbcb9034d0f836c7cdfbbe3d998dbda9851b7538"},"77461e08bea619444df98b1e404a4eee2320ff30e7db7e657db70a3c799ca1ae","b1b98a42f3f6de2b9661cb1dae8f6a3bc514533d11ba54efd531e09adcac5d6f","5e5e278a6c6fe064c0ff74094f13d09a9608b8ea49c8ad06b37b457e5c822f21","d4b09a3550aae362905da95d0120246ff166dd5fa63a0a5faa069761484efc1e","bda9470a90487aafeda418220fa98d8c58f2d0764d5f25f517dd8734ee9774dd","73e31e7ab4cf17f89c7c3f9118282b871ebf8c648205c2b684ce3c6b1ab8dd38","506ef97ba37c3153a83c53aa742b8bc271e295e68a7f7f3015db7770696a17a3","c7133873697db1e243d43b206b6ec01b961793bd94b0285ad1621565e10825eb","b5782eecab1e0c4dc090000bffe710cfe76649d3c4480eaa142ca8a8e5eafa24","e7d5b3fe910be641ad98b54072c90423a90d285108b1aa0fb440b27bb31bd0ed","eb698b0678be92d270fa5ca69c70c374e0c9b772493c1131a383113ca8816e41","a46345bb2e9bc9d4997808442d6b6000764bea01e82c5097b8d32bce1a29ad06","1795d21b51b716119ec2ab8358c6161f39f039b95489e2964331a0fb3fc2fb91","5c0280f649695c072e81977028ffdb862d696ae3e2a291457784ad65407dcf45","a80c0352e00303ff7024dc349b538b3be352e425ee7774e4c699379359fe0cfa","6fd3d7ca0eee74a1fdd80cbf29a1fc65d8d187e0b53c2478dc7a257fdea7ad14","c2e0b5c4fea9d7356c237f123c25def45a91460155e9bde4d2bf54b7bde6fef8","3e458159a6f8b1fdc6abfc84d64e922547b5c29a59e8bf1024848dcfa350eb01","4564829f496d3b88a825693afe441f4d64c342487e7b2b3e27cd81edd2865b6e","a565a3f0158a047840f6057866a28369791df2d3868389166db88d05cd73f0ad","664c4264d4ff2df0fcc2215e3b4ed49a1ad4991a60999c2025fbe0d81637c443","ec3ceccf5b3a0b7aa261fbe09fb4a88199f193de54c6578490e6f6c949e7b182","6df84c050f9b624825247c3a35b27b90005b40dd61ce395bba26b08a86da0173",{"version":"9b7d4e335757e73864bb8c12c4e41231313ddfc66016f6efbebc441adde9ed4d","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"3c2af37a741e9b008aca4862ee81849753f870ff3f43a1921e982f32970f7bcf","signature":"101e579eb19f10045cab5eb436804e03b315faa6a08c303017424f53e71d89d5"},{"version":"04e8a1111721e17c382d8cf08912558f0031500325c38d459ea6ed4ca35066ed","signature":"5e30cba15886757c7ef704ba5204a316e3fcf1077cf3391589a0abfb834548f3"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"1139f32dae7d552a6debc96d36389108606f8dabb4fb6c313d8f9ca0b0ebf96b","signature":"f347a3f9f9105a8c6a5e34d17ff8a2b28cef41c774b68f2e3e868312ab8428ba"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"4ee3bf01747944bde62be7db61a11a23575475f8e540cfcec24ce326da318948","signature":"22acfb60e12c9e194f5e66c2a7c2cc5bbaf83857aecb053b1cdd53efdbc8288e"},{"version":"69ce9796b121256de68180643d8f418b5551fc17c6e37be0a8615b2b73fb064a","signature":"877c71e6a7dc8bcb1ca727453f53cbca541a55562e3600f0f0de42d325a3212f"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"f9f3f98dca5ea378cce212d4cd89733ec2d976c6da66b4c75f33f5bc1093d2f6","30f1c7606e663da2fcbb7a040bff88a163812d2ad5e3895479e8470b58f07c0f","10140f9820b668e6bf65d747437068df02a9f6e994e55e4c6422259ecee084b3","4e36ea5aee2a66e82249367d813966b0916097cf9ea420349036c6fbef4146c0","495114c33cf472e7fb7d1a423b5fd75427fa82bfe6c2807a99ec373bed518d72","3a8751b6fd22b4dd21e04fd1a61512bcfe8a0600c33c6b091b0d95e814e7b177","d94a6011e6638c44150188268695489a332214b3835b3697ddbd78fb062d9dd0","4531c4e014df4d29708e55174bdf64520323dbb9254e2034b5b8f6e9490d97bf","573a6f2379b3f6d5e7fc36e691e34600ebb8ab0a6bd2682b96d9721b1a8059d1","15e2c5015d44a2b55df5eeba50dae228f404c7daf8910a50a8bfb159f63ab9e6","73c8b895ae734fc095273ed81f6e2ee2108c9268626bc9bc295ef72b3a1ce8ef","8639d3940e64e07c47579793f7c4add0422cc985e9f2cb0e9579f81f149504ae","e3cd075e7df0038318e173732a8d326f6cd040da92045a78af1140f9261f2568","d5499fb1feedc46b53f0e77c7201a24bcaba04a6bf9ce11bf0a2b96c32f10a68","85fd3e2ca5bd2381e08e45c370af340bf4308c9039a40d37cc250185f91eb330","6b136cfef6ac0e1cfde0ea2fd4d1c17c022c5b3d51592dccfb3b56353c2e6b1a","97babe2c3c84a74019559529a296f94a2d0e84356ffb837f2d3d653da6de1fbf","429349e6b779053c191cb29b12bae9f06d0970571fe47ead5d8ddc588f23818b","fda3da7aa15d73fa44ac99822f31bf4767a576db7c726291317d876e7846b937","36ee3b67458d308f7f75f8a8907e41b4a269de73c84c354935332af87797921d","b46e6db5aa43eabb567741d2dc92ca5eb9f0fc368357ebec02c42c8ebb4b14e3",{"version":"d204bd5d20ca52a553f7ba993dc2a422e9d1fce0b8178ce2bfe55fbd027c11ae","affectsGlobalScope":true},"f2d2d91de69fce66ae234019bf19498a996db213872fdc93b156d10eeff5a024","b3a98e8b67d802052c0ad867922743c87cda4c1fc53ae47faed880917f316022","0700aa0e353f816c408d4397cd77ef1509342588f45b65d9d3d616f421502f60","7f4f21af940c59c8f73d432c2a1c33084a861e9af63051ae0995d7bc36a87083","47db7253e3a5b0751035de3a5cb7781ab69885f82021ce5829aeacc9dc3f800f","5a22bf3611194a0d76884b3db71ed6ce1b187784cc6e82eb640f6f90615d2ac7","10a98655b5004f205d644bcdf76dab8fb3a24e9b4d16c6a662646c505d063ab5","e91c0d18807b1554682e1b6e1ab4b1163c2a7bd0e7bf0e1db95a5f370dc88521","12d55621010f9bbf7c3f350ce2ee65196e1868831f7e6cf72662f9c56ef3de6c","8834542917db95340d2f54a5da2cc4dafa2d6fea37d66707c9ba2c0fbd65ac56","1e38e79884cbd440fefc5af70b3d39e12cd9fb2e91bfb0c6d547b4347996e723","d68b8f1244eb6ad752dc795c9ce124bb50eddc2558179ae5610d100e7b5b814c","bfcecc03930b4a53ea87fe95683e4f1a6a0dde7381681ad48097c6ff76a54102","95b40beddb339052d70695b5d92bf6dab9a9c6217094328391901f57501de42b","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","25478f7c35c6cc147786fa39aee2ef41f1e9dae95a947f00c9a9f6ff5d8dfc2e","28cac2e4cd57b4a5a21d52af678c33e0f4e59d7429678891a821f198db50a454","5e315f58156c203360b5925dc469f830a13d83655c42ade472aee07fef269de0","032b5f9e36a973da01d121491ad023656ba756854c9db6c0516e9c336fbb7862","7aa1161bc4ccec053b6c1e2b9e641fdabac7169779cf35fcd54d63212677c288","c5bcfb5b3606412b008f3babe6846b4927e369159916d3e31528882e25587b67","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","3435cec2d6928caab4a2c43ae290a72e34c89682a6a6887f8dff768529a2b8d7","b561cd703ca0b908c800355587c02e0c661156122530a5ca8f38a6f7ca76d9f1","7d09685dced16070e0092e5801dd6ea996ce76ac0df9852604982fcedb31becc","1303b3f08025ede7993a094b1e91e22bcb62758ca6e31a47ccdaed86de34453f","b561cd703ca0b908c800355587c02e0c661156122530a5ca8f38a6f7ca76d9f1","a2060daabf477596c79dd0ff40e7fffdd5f891b452335cf1e2b76e49e9801b49","c4165b29627fca8c10d1abec3e021dbcc1281f08eee0ab95afab821918651958","c4165b29627fca8c10d1abec3e021dbcc1281f08eee0ab95afab821918651958","c4165b29627fca8c10d1abec3e021dbcc1281f08eee0ab95afab821918651958","87f0b178eb55e73830caaee7919ebf1268fb5c40fe47bce767cd2d7629a44717","d8cb69683211b609db45d7d446cf31ef4a9f30ecb1b4583ebfa42828cc613f8e","0d7ac69770bc84f7d1aed70a0f2d82206d149604b5ddf0cbf5ff392406f0f27a","a798d0d15869f63b9f383c5e1265e8d7b5e0f84181d62b0806072e53ad52d6e0","dfd7e342b20e0766f8752179f13d49f9c0f43c4cc1fed9954bdad782651ba902","3435cec2d6928caab4a2c43ae290a72e34c89682a6a6887f8dff768529a2b8d7","8cff76d263a287a10227241ee1fefa4ec5cdc7026d503b278837bb295c22568c","d0b951e00ba5730b4c31a83e50bcb8faf3945042309a92fa22d18b738cc8ad1c","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","b0ac49c3fc1ea98cc2e02e245de2bc98c0d80062e9fedca379d7704652661723","8620ca455bd084145a8cac4cfcc82fc89b6ddd23a604f4a67fa3ec0da71da315","c03f1378b65ff3b24845cb6d0c4ab5822dc828558dcb65433a0b2d45bcdc6cc8","f6241bdd3e97c582e867bdb0ad44787898e664f25372ba65da185e127fd3c09e","ad687590f999dacf925752b19aeeefee0da0eed59aaaf7aca093c68c2d70d031","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","78afeb65ace2d2c73d8a490e4862c414f8d7548fd8c3a2442e0acae7455f697d","fdbc67a48a8bdfda11eba5895a10c646b42df1ff36ac972bb68b8cd30fcf54d7","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","b8558f896e7b51cd5ec060a4414d192013520d0655a5c9afba5602e239b68cc4","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","fb724be8946142e90d685e6cc5685f4744f972a9a4f637297533d07dbbd9d6ce","25478f7c35c6cc147786fa39aee2ef41f1e9dae95a947f00c9a9f6ff5d8dfc2e","81a0056c95c5894f04778e642403d61f190ff7a5287e3558e9481d59868e2c51","319376b531de69c15e647ebe15e4dc4cdb7576a28f4a81380f97f84d89e3be80","c7e26262caaf8fc70ac97ef41a37e50c98973704d62dd7f79f72ca80e6443c9b","7347450f058389e5cd0aeb7b4a205e8a225baee820b2ed28d5e8971793f2ee94","b39bb4b6ce62a15b986f85f9f75e111bfa1cc7059f8cfadd83094353be051408","6eca582f214127d5e70fb5c7d7a52ddaccbcd4990f1886b0d684518ea89807ab","31ada020d9a7668ff1899f1cbf31dacd65d5ca4cb731c74b5493a0f5dce271f5","f82984b8375de304eadcd43938f0b9967f993cff251e762fba49526d9b921d14","09898b8db1dfdfb0aea25a70adffff507671e643e4a112e033350c06eeaf989b","fcb4a735202385a30e97e9d8f5d00aa17105e5e6e68af176fadf250f2a500e37","83488bc112bbd43d904a0b96911d1b71d9725a0004aac7fc46de8e09b1d53a23","1174c1d2ad97c769186616321a2145d022668a7e74ce0ff341971daedfa6154c","c22c37ac8f707477b4d69c280c4ff8cdcc6bf5907f061280eca0072f38e04810","2888895b1588e20afbea35fc92ece80c310af5b7b3fa2bb5576142e6add41442","4b993221700523a05782de87bc71c74bbdb0e791f7cfdc11aa7b4ce6ecfeb300","2d3b5d752096f82e05f8664741ab2dbeff26750cadabf65877653357b785ed43","9b66005a7e5c58c20fac57cafcb0d1ec5cc243df91d355035b5b93fe9c811e41","ca4df64273cc7d0e96254e02d6ceae366eace4df6bbb2b8caf35f38d9348341d","fdc516ece7d33203cbbf503fd1b43fb89b969365b6c5b6552c65a37fcc2138af","25478f7c35c6cc147786fa39aee2ef41f1e9dae95a947f00c9a9f6ff5d8dfc2e","81a0056c95c5894f04778e642403d61f190ff7a5287e3558e9481d59868e2c51","7aa3dde497f25b65d420acebd19354a4495368f6de1cb9d82074da62133db9c2","eef99c2d020325efd8fc2b21de171f71dddcfdededbe3acb797039e1aecb367e","eef99c2d020325efd8fc2b21de171f71dddcfdededbe3acb797039e1aecb367e","775780594dd67c23713ab139f06935f890b1b1b394c85d3522bc79393bdcbb4d","a2ff87dfedb2ec15723094a0b8370d1e5f795838fed73f69bab109b237515c38","2c6609d5a162dabef6404ad6f731327aabb6eaf30a877bb9001fa393f349a680","2e6e36f9c27ddc01b2a104b92ca3f178945b4ec375a3bd556073a3af0a4365d3","b01ec93f00d618730c453dd3fe453926c5fe452a500245014b8fb64e104adcee","fabc6f872dcd6208ab4ee5328c46ffe029e285d936a36152abee239ee1fb99c7","adde1222d7d49b91834b20b75686a762ed0726f5d34dcbda10a1aafa9ba419a4","ba3c7425794b5fe14eb7329ff97aa00f649e82d4891061e033db161b599663af","ba2b1305141ede23483b0f247b2ec3637d7b038b37598346692f7e9e08c75d2a","becea824046b5a36370b7956d271d7fd5ec033af2ebc78c166e360e602e97b92","f945d505b83c966214b80c53d8e7a2d77ec36a7e7a477a88cd09542d183ec83c","af1a9850747573f5c950082157276400d8612fede62af01f8b45629ff61bc975","4d3da7d3b12b46bc9d226706c12cb04387c74038f6fc651d0ece5fe6987230a3","f08169e1605cc96786b8e4a0cf19d853b8f585d25084daf009dc63e212e35c59","cde20424d6e6995855f4cb9f61c067cd215fc1dfeab88749350a4f76253ffae4","c8311ce839580c0875f9ff6aca0a9041f199aac8f674856b77c388983212bdf5","24cf439dc53195a9a22676407e7011c58a362eb5fa2fc32971820556959432d2","fb1fe16e53cea82b5ed56575c7c56671bb7ce502858e7ad5be512cfc816da29b","cd8b02b35bb2cdda78cf08448d5771a4b4f911c5743512a0fd6a6f23979c4dac","4392be558b8509e9624975f047d73286a08d97381ee55899b0227b670b2284bd","b7341adf64ef336742c7b4a68945f9c6e715d15c0ccd2eb6eeda503b39d92653","8fe0068df1a39fb8ecc14562adb77f5923d93f049e3d8a14a76982d0ef49ed80","a56df75b4f9e15358ec312a4ac991e2ab4cbe9656a99114c44530a51b1a0329a","2c37d3aed9fd6034ada2871eed49aa1e532444bca0bbdb27fe6d9cd4e4ba1d6e","8c6b5041b4b9dcc18c40d8d0615028e759d470a4810b1537bacfbd20c92243c4","e53e2f59a1b10434a1eeea3ad2bf0ed363ba88aa01681d68422dc9044ef50d52","af8f17871b68bfcc90f5941444844266c7c0a9328db0dee1414f47d0d1fd8e88","13fdf424f48b67e5fd7e4f25b6400a7fbdd28a0cff99d7d0400b76e4587a8879","13fe00c8acf8d4d8a50aee4c6805faa237b832e8b182154142647ab097808f6b","3cb14bc0d01a1bb99bda29c2366d570954496704ba8ac1f73060ba6ae99a18df","50f9dfb63997fcc83723ec64d6e7c07394022e994dff7984c55c31ffbc028e5e","b1e295cf3c02dee08816417f57ab7559906e55d706dd2b78f8dc045f88d93aaa","9bb720df292acbfd7e53bc0e8110b291f7ef83c16189da325eca9a58ca26ff82","f8a8c916f284fd68e8124f98110847d724fc503bf472a32eab36c95298920b2b","9803c925f6d559f0bce9a0e938b3ca5b192eec1fc5f0e727a75f514dc08f4e49",{"version":"b93e7bb0b556ded822cdcf1fdf2def46dc9dec23f9283101c592885e6a9586df","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},"892621c0131da61968e74ecdb17cdc1cd456e5d1a2db6d77f297c61e4c0773e8","6a8cb539556c1fb6054fa624bc691d0560e7334c06da3f1fc82e0b18e61614b8","de360cd42110490e00c1bb52af87118d5044a8a8054d8dc574087821c9f10b75","8a6ccbe6549c01938fa62d1682f5f1e987ac1924672ed8c8f5ab8d825719decd","7ab9bda66d3066b6164fb656c0c4598fcea5aac89ca96c2da1e049e41769acc8","12f6b1e992132ff669f790beece38ecaa19f2f0db75b7eae92e8dcc5f22b0a34",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ffc06cc59bfc4559f4845fd58694e934c20e4271413c48e4b3ec35a2afbd80a7","signature":"b4c749acb1b02fe0b336d3e89a98d3ee797f41144e7a2917d69a86c012fe9c5b"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"224212aaf624457d4d33e5b8f2bdc2a97ba1e7e487577ee239121a7be84a92c8","signature":"9ee11ad4f320cc402171301b600f529964208d145c82f986d89762679ba43d81"},"ad46be6d7b16fde6ba09fa11a8bdaa963a076d10fa85e8f7cd6a0904062993e1","e657d17c2b9494dfd8a9c6ea35a50214c324f9640c3fd9d63f414bd1f806623e","caf99be297c13988c93dcbd85ac2a65e1a44a428de6c6281478f21686c18a11f","1de8238b7283b31b2cfc8bf4c08c836223d8cefe4fdbdebebf580c59c0b539a6","451a214b2ce4d71b0c6c87a8a10bd4f0bb9d70d6630527da1f3a6fbce0abbffe","21c91e8fd1c8469ac883a5d0e88ee2328f21e761f0d266ef413b0177cdd14a8f","028a4ca49c9f57503e269e11143d17fe86d07b57aa6ad0ff033e37f90069720c","8d0d9d6605b72eb8a2ddb127b630898497fa49ed0adc018f8af55b6bc008c04f",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"76352867f048fb1d055fc08a535f66368a3da114087bb4dfbc5745b73326a9b4","signature":"fe91775da1ed96e5f3cce5a0d62e81419cd4d9c32f478d2913b6fe2a199f6446"},{"version":"a6a5edb26bbc5319a89418e10393eb4f2f61319678b36dcd6394f4963626becf","signature":"5d0aa813eab35a144b4a18ce7beb91d9f22e61452f89b89cf892b404c810804e"},{"version":"17b09eb510cb668276e7436893c1419927f032eddcf579a349b42cb722c9c4d3","signature":"30bb526fbe0a8035ee3a97f62a7a15e126f5f3b4049f306ab134cca27fdbd877"},"ac607c31d42e0aeadc871af07a970af6e76295d63a89d78b5cb8ca27cfea1c8f",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"3a77ffcd5fccbfeeb51ae6b89047dc3658a172db8038782c8b06d367bd63360d","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"b3f712d9f966913ef45b1c9564ec16a0b9ea8368ca40f4dd5f6cfad368f17ebe","signature":"5d36df79871ce6b50ba986cabef382fa5727402ffadc2f6e75eafbc71f3000e1"},{"version":"a894e61b2be096d05faae4a0a57f1710e77ac4b7b9d1be3439fe817f816e8bff","signature":"f281d14d888f10a1131ba9da34445667a044737805d87cd4b1854219abce4814"},"e4edffdb2ef5251caba9aa8a541bdb1158e454c4ceba7301174a10d009af6bcf","9f516737132195476737f2113aa684138738d1285a8bc4d36f403fdcb220fb35","947ce778adc2efb03431cf740955df030620dd160bf6176c0a6e414e57d1423e","780821233ebeb2dd4134de92da1a24f5f56bcc558a2e0dddf76b7c5dd572e20d",{"version":"38a6de73d94fddd9e0c6debc7d8790d1050b8b3c23c9a71865de74c26d31b83d","signature":"55bb18d80ab4836734d6b6075750b673bec340bcaed10fed842407a1fdeb3657"},{"version":"3a14e17beb52aaf8f037bbeff8c0479407bb5893e8f55407143430cda8ef96aa","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"e389f6f63acbbf67132e3bb8c2780884bc4769abe8e19f18a45418e5af21e08b","signature":"fdfbd78f7f5c54884fc2efd20efbd81968b887f3335c974c94dc3db6dd58c02f"},{"version":"abed2fcecfc488c97265276567a7eaeac7acb0abf954ab6fd6ccfbab2243b3e5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","c5a251297fd8eeb861c0e98430de6ea5099e8febac0985edcf5d75feb4c6ce27",{"version":"fd66a97fb95c2ba224478a122a335c2d89202bc5b989a2d58db6aae3db2f85ce","signature":"776e8ea041798d892337df5348635cfcbc1fe9bad68b87d2a8a6f6cbacbbd72b"},{"version":"7adc736dd362f3694bfa0ead421710e99a78f81ba82ca176f190f95d452ea921","signature":"9c60c89de612b6471ab99cd4b57bb1e2b3b5821d9cf81723838d6c8324ed2c36"},"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","955133b47df2272da61dbb50fda84b0e0732d96f5614a373718719b4bc429641","3846d0dcf468a1d1a07e6d00eaa37ec542956fb5fe0357590a6407af20d2ff90","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"49026435d21e3d7559d723af3ae48f73ec28f9cba651b41bd2ac991012836122","affectsGlobalScope":true},"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"b6a4a51bc749ad882c33d98563ff5a94716ca884bfde949a8c97bad530e4ee2c","affectsGlobalScope":true},"16b872cf5432818bdbf405428b4a1d77bb2a7ab908e8bd6609f9a541cea92f81","fe39ceafa361b6d339b518936275eff89a77e7dfe92f2efa5fb97abf9a95ca49",{"version":"4009dd21843fe4a62d1d97b584a2937ca9f045df6fbd65c8b264d8dd04b656fd","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","c9e6ea53a25729dbb5b5bb6960db4387df2f8e88add9cbf36b6ff590481134f9","3e95e6310d49db6d575ac6c2896c02761426aa5aab0b18169f971151c709b770","7eb0662b995994db248290a0f0a1d8ed685991a162ff9eb4dee36f099cccd0d9","bea5c9fc0843a6961411ab4a04df856a8372448bc0d180da0c3a054ff31044b8","715873cecbfcebb49f293f0521bd0955d6298486e2eeb9c7bbf5e9f20a6ed152","c6cf9428f45f3d78b07df7d7aab1569994c177d36549e3a962f952d89f026bc4",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"6c7b9d2139abd8f2e83ed8fa018c3799ab3187755a6665621feb6e93d3429ac3","affectsGlobalScope":true},"a019c9782ea4e21c83881c780cebce8ad86e3f78122619336eacbd87e47fe674","021ca24be8eb8c46f99b4e03ebf872931f590c9b07b88d715c68bd30495b6c44","5899ab1898582115c432cccef063298f75477bf2cebe5473360043fddd67bcc6","6b97f4106d72ae6b4ebf4e46d2fe90f4d04dd04b3dbff6e294572440a428209d","e3baa0c5780c2c805ec33a999722a2f740b572eb3746fd0a5f93a0a5c3dbf7f6","48fedd2f8549a2ae7e62f30fdb015779c2a7b536760730c5269406cd3d17cab2",{"version":"089867511b37a534ae71f3d9bc97acc0b925b7f5dbec113f98c4b49224c694eb","affectsGlobalScope":true},"c874bfffe38a94b129077eaba4e26575972d545d5d04cd64e90c02d2c029ead6","f5ce35485541e817c2d4105d3eb78e3e538bbb009515ed014694363fa3e94ceb","323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c",{"version":"bd88055918cf8bf30ad7c9269177f7ebeafd4c5f0d28919edccd1c1d24f7e73c","affectsGlobalScope":true},{"version":"4ee9304173804c2c6dff4fcb8ad900619a4078b30d37f7e455236836e8e87a45","affectsGlobalScope":true},"ea3ab3727cd6c222d94003ecafa30e8550c61eadcdabbf59514aee76e86211a5","d3cdd41693c5ed6bec4f1a1c399d9501372b14bd341bc46eedacf2854c5df5a7","2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","48dab0d6e633b8052e7eaa0efb0bb3d58a733777b248765eafcb0b0349439834","d3e22aaa84d935196f465fff6645f88bb41352736c3130285eea0f2489c5f183","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","cdaaf046791d7d588f28f32197c5d6acc43343e62540a67eed194c9c20535fdc","4b1ff655bd8edd879dd4f04f15338ce0109f58ccb424165d44fa07e7ea39c4bf",{"version":"6fa61015444e843013443f2e5ca6bee5f033cbf361f953fd932abb0c029b73b2","affectsGlobalScope":true},{"version":"300f8e9de0b0c3482be3e749462b6ebc3dab8a316801f1da0def94aed0cd2018","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","24b8c93eb91a64a6fbb877a295cfac4c10aa4660599970c954a99d33697534a3","76a89af04f2ba1807309320dab5169c0d1243b80738b4a2005989e40a136733e","c045b664abf3fc2a4750fa96117ab2735e4ed45ddd571b2a6a91b9917e231a02",{"version":"ca619678b887ae262316673b55bb358c517593d3b6b96c1271972716c699da32","affectsGlobalScope":true},{"version":"0c312a7c5dec6c616f754d3a4b16318ce8d1cb912dfb3dfa0e808f45e66cbb21","affectsGlobalScope":true},"d1ef1d8516286380fd0a6f498f1650d374a8cb5f03d91633b6124e4fb8fb131d","fecdf44bec4ee9c5188e5f2f58c292c9689c02520900dceaaa6e76594de6da90","2641e5e19268b6f5038ad48a6e2598965301df8a77c48c99d8df760a6a154204",{"version":"6a4a80787c57c10b3ea8314c80d9cc6e1deb99d20adca16106a337825f582420","affectsGlobalScope":true},"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a","fedd311d427fdafac411b4e0edc0d1014668853679e021e04717a6de45ff5c0c","2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed",{"version":"50072f976cfa86af1a3044f55cd729d992abe39222d2f6cdf929266c77a42b0b","affectsGlobalScope":true},"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","34118be360cdd3381bbebbfd4b093c394460c8fc5df40688d58f45d86ab1448b","104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","5c45abf1e13e4463eacfd5dedda06855da8748a6a6cb3334f582b52e219acc04",{"version":"5c0aca385504ae10a42d367e71b6ca644f5012c56568a23495f44d1868e0a5f7","signature":"cdb9a6bec80e1b795ce332c1ce77969dd94d800d45da3b25253d5fcce74f53ae"}],"root":[60,586,587,591,592,691],"options":{"declaration":false,"declarationMap":false,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSourceMap":true,"inlineSources":true,"module":7,"noEmitOnError":false,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"outDir":"../../../..","skipLibCheck":true,"sourceMap":false,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":false},"fileIdsList":[[251,350,437],[251,437],[249,251,259,391,437],[249,251,437],[249,251,259,437],[249,251,316,437],[249,251,252,258,259,317,318,437],[249,251,258,259,315,316,437],[249,251,252,437],[437],[249,250,437],[251,254,437,581],[251,252,253,437],[251,253,254,437,582],[249,251,252,254,256,437],[251,291,292,437],[251,293,437],[249,251,253,254,291,437],[298,437],[291,437],[291,292,293,294,295,296,297,437],[437,646,680,688],[437,646,680],[437,643,646,680,682,683,684],[437,683,685,687,689],[437,594],[437,630],[437,631,636,664],[437,632,643,644,651,661,672],[437,632,633,643,651],[437,634,673],[437,635,636,644,652],[437,636,661,669],[437,637,639,643,651],[437,638],[437,639,640],[437,643],[437,641,643],[437,630,643],[437,643,644,645,661,672],[437,643,644,645,658,661,664],[437,628,677],[437,639,643,646,651,661,672],[437,643,644,646,647,651,661,669,672],[437,646,648,661,669,672],[437,594,595,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679],[437,643,649],[437,650,672,677],[437,639,643,651,661],[437,652],[437,653],[437,630,654],[437,655,671,677],[437,656],[437,657],[437,643,658,659],[437,658,660,673,675],[437,631,643,661,662,663,664],[437,631,661,663],[437,661,662],[437,664],[437,665],[437,630,661],[437,643,667,668],[437,667,668],[437,636,651,661,669],[437,670],[437,651,671],[437,631,646,657,672],[437,636,673],[437,661,674],[437,650,675],[437,676],[437,631,636,643,645,654,661,672,675,677],[437,661,678],[437,644,661,680,681],[437,646,680,681,686],[251,373,374,437],[251,256,258,277,374,437],[251,375,376,377,437],[379,437],[375,376,377,378,437],[251,258,437],[251,258,277,304,437],[251,354,355,359,364,437],[366,437],[354,355,365,437],[251,258,259,277,285,304,416,417,418,437],[251,416,419,437],[425,437],[416,417,418,419,420,421,422,423,424,437],[249,251,259,277,416,417,437],[249,251,416,418,437],[249,251,259,416,417,418,437],[251,258,416,418,437],[389,437],[386,387,388,437],[251,277,386,437],[251,387,437],[251,258,277,392,427,437],[251,437,552],[251,258,277,392,427,436,437,551],[251,437,551,552,553],[437,555],[437,551,552,553,554],[437,533],[437,531,532],[251,254,258,277,285,299,437],[249,251,277,300,437],[300,437],[303,437],[300,301,302,437],[435,437],[251,277,437],[251,252,310,433,437],[249,251,277,437],[431,432,433,434,437],[322,437],[251,320,437],[320,321,437],[327,437],[251,285,319,437],[251,324,437],[319,437],[324,325,326,437],[249,251,260,261,437],[251,259,277,437],[284,437],[261,278,279,280,281,282,283,437],[277,437],[437,445],[437,442,443,444],[358,437],[356,357,437],[251,356,437],[262,437],[276,437],[262,263,264,265,266,267,268,269,270,271,272,273,274,275,437],[363,437],[251,277,360,437],[251,361,437],[360,361,362,437],[251,277,319,351,437],[251,367,437],[249,251,258,277,323,339,350,437],[251,259,277,304,319,351,437],[251,339,351,352,353,368,369,437],[372,437],[351,352,353,368,369,370,371,437],[251,277,427,428,429,436,437,516],[251,277,299,428,437],[249,251,258,277,299,304,437],[251,290,428,429,430,437,517,518,519],[437,521],[428,429,430,437,517,518,519,520],[251,258,286,437],[251,286,287,437],[289,437],[286,287,288,437],[249,251,258,259,260,277,285,437],[251,437,446],[251,437,439,446,447],[437,515],[251,437,440],[251,437,439],[249,251,277,437,438],[251,437,438],[437,438,439,440,441,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514],[251,277,299,305,437],[251,299,306,437],[249,251,253,254,259,277,299,304,437],[299,437],[309,437],[305,306,307,308,437],[251,259,285,437],[437,529],[251,258,277,392,436,437,523],[249,251,258,277,427,436,437],[251,437,523,524,525,526,527],[437,523,524,525,526,527,528],[251,437,523],[348,437],[251,258,344,437],[251,341,342,343,344,345,346,437],[341,342,343,344,345,346,347,437],[251,285,437],[251,259,277,285,339,437],[338,437],[249,251,256,258,277,312,313,437],[251,258,277,311,312,314,329,437],[251,314,329,330,331,332,333,334,335,437],[249,251,277,311,437],[251,312,437],[311,312,313,314,329,330,331,332,333,334,335,336,337,437],[251,258,277,311,437],[251,258,311,437],[251,258,259,277,311,312,313,314,319,323,328,437],[249,251,277,311,312,437],[249,251,285,304,319,350,437,561],[437,567],[251,258,304,437,562],[251,437,561,562],[251,437,563,564],[251,285,319,437,561,562,563],[437,561,562,563,564,565,566],[251,258,277,437,539,540,541],[437,548],[251,277,437,541],[437,540,541,542,543,544,545,546,547],[251,258,259,277,427,437,540,541,542],[251,437,542,543,544,545,546],[251,258,277,437],[404,437],[249,277,437],[383,384,385,393,394,395,396,397,398,399,400,401,402,403,437],[251,256,384,437],[251,258,277,319,383,384,385,390,395,396,437],[251,392,394,437],[251,277,395,437],[249,251,384,437],[249,251,277,384,393,437],[251,384,437],[251,383,385,393,394,395,396,397,398,399,400,401,402,437],[249,251,256,258,277,304,384,394,397,437],[249,251,258,277,304,319,323,328,437],[437,538],[437,535,536,537],[251,258,277,323,437,534,535],[251,437,536],[61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,117,118,119,120,121,122,123,124,125,126,127,128,130,131,132,133,134,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,181,182,184,193,195,196,197,198,199,200,202,203,205,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,437],[106,437],[62,65,437],[64,437],[64,65,437],[61,62,63,65,437],[62,64,65,222,437],[65,437],[61,64,106,437],[64,65,222,437],[64,230,437],[62,64,65,437],[74,437],[97,437],[118,437],[64,65,106,437],[65,113,437],[64,65,106,124,437],[64,65,124,437],[65,165,437],[65,106,437],[61,65,183,437],[61,65,184,437],[206,437],[190,192,437],[201,437],[190,437],[61,65,183,190,191,437],[183,184,192,437],[204,437],[61,65,190,191,192,437],[63,64,65,437],[61,65,437],[62,64,184,185,186,187,437],[106,184,185,186,187,437],[184,186,437],[64,185,186,188,189,193,437],[61,64,437],[65,208,437],[66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,107,108,109,110,111,112,114,115,116,117,118,119,120,121,122,123,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,437],[194,437],[437,605,609,672],[437,605,661,672],[437,600],[437,602,605,669,672],[437,651,669],[437,680],[437,600,680],[437,602,605,651,672],[437,597,598,601,604,631,643,661,672],[437,597,603],[437,601,605,631,664,672,680],[437,631,680],[437,621,631,680],[437,599,600,680],[437,605],[437,599,600,601,602,603,604,605,606,607,609,610,611,612,613,614,615,616,617,618,619,620,622,623,624,625,626,627],[437,605,612,613],[437,603,605,613,614],[437,604],[437,597,600,605],[437,605,609,613,614],[437,609],[437,603,605,608,672],[437,597,602,603,605,609,612],[437,631,661],[437,600,605,621,631,677,680],[59,437],[59,252,437,591,593,653,672,690],[59,437,585],[59,251,252,256,437],[59,251,437,583,589],[59,251,252,253,254,256,414,427,437,516,579,580,582],[59,256,408,414,437,574,578],[59,251,252,290,310,339,408,437],[59,251,252,256,290,310,339,349,350,380,382,405,407,437],[59,251,252,405,407,437],[59,251,252,256,405,437],[59,256,437,577],[59,437,577],[59,251,252,405,437],[59,256,437,573],[59,251,252,290,367,426,427,437,522,530,549,573],[59,251,252,256,290,367,411,413,426,427,437,522,530,549,556,558,560,568,572,632],[59,251,253,437,571],[59,251,256,411,413,437],[59,251,437],[59,254,437,585,590],[59,254,437,583,585],[690],[251],[256],[256,413,427,568,572],[253],[256,413]],"referencedMap":[[581,1],[350,2],[392,3],[258,2],[316,2],[315,4],[260,5],[391,6],[319,7],[259,2],[318,2],[317,8],[253,9],[252,4],[580,10],[251,11],[250,10],[427,4],[582,12],[254,13],[589,14],[256,15],[593,2],[293,16],[295,10],[294,17],[292,18],[299,19],[297,20],[298,21],[291,10],[296,20],[689,22],[688,23],[685,24],[690,25],[686,10],[681,10],[594,26],[595,26],[630,27],[631,28],[632,29],[633,30],[634,31],[635,32],[636,33],[637,34],[638,35],[639,36],[640,36],[642,37],[641,38],[643,39],[644,40],[645,41],[629,42],[679,10],[646,43],[647,44],[648,45],[680,46],[649,47],[650,48],[651,49],[652,50],[653,51],[654,52],[655,53],[656,54],[657,55],[658,56],[659,56],[660,57],[661,58],[663,59],[662,60],[664,61],[665,62],[666,63],[667,64],[668,65],[669,66],[670,67],[671,68],[672,69],[673,70],[674,71],[675,72],[676,73],[677,74],[678,75],[683,10],[684,10],[682,76],[687,77],[596,10],[437,10],[375,78],[377,2],[376,79],[374,2],[378,80],[380,81],[379,82],[355,83],[354,84],[365,85],[367,86],[366,87],[416,2],[419,88],[420,89],[426,90],[425,91],[418,92],[424,93],[423,94],[421,93],[422,94],[417,95],[390,96],[389,97],[387,98],[388,99],[386,4],[553,100],[551,101],[552,102],[554,103],[556,104],[555,105],[531,10],[532,10],[534,106],[533,107],[300,108],[301,109],[302,110],[304,111],[303,112],[436,113],[433,114],[432,4],[434,115],[431,116],[435,117],[323,118],[320,114],[321,119],[322,120],[328,121],[324,122],[325,123],[326,124],[327,125],[281,126],[282,4],[279,4],[283,127],[285,128],[284,129],[261,4],[280,114],[278,114],[442,130],[446,131],[445,132],[444,10],[443,10],[359,133],[358,134],[356,114],[357,135],[262,10],[263,136],[270,136],[271,136],[272,10],[264,10],[277,137],[265,136],[273,4],[266,136],[276,138],[269,10],[267,10],[275,10],[268,2],[274,10],[364,139],[360,114],[361,140],[362,141],[363,142],[371,143],[369,2],[353,2],[368,144],[351,145],[352,146],[370,147],[373,148],[372,149],[517,150],[429,2],[430,151],[519,2],[518,2],[428,152],[520,153],[522,154],[521,155],[287,156],[288,157],[290,158],[289,159],[286,160],[447,161],[449,162],[516,163],[450,10],[451,10],[452,10],[453,10],[454,10],[455,10],[456,10],[457,10],[458,10],[459,10],[460,10],[461,10],[462,10],[463,10],[464,10],[465,10],[466,10],[467,10],[468,10],[469,10],[470,10],[471,10],[472,10],[473,10],[474,10],[475,10],[476,10],[477,10],[478,10],[479,10],[480,10],[482,10],[481,10],[483,10],[484,10],[485,10],[486,10],[487,10],[488,10],[489,10],[490,10],[491,10],[492,10],[493,10],[494,10],[495,10],[496,10],[497,10],[498,10],[499,10],[500,10],[501,10],[502,10],[503,10],[504,10],[505,10],[506,10],[507,10],[508,10],[509,10],[510,10],[511,10],[512,10],[513,10],[514,10],[438,10],[441,164],[440,165],[439,166],[448,167],[515,168],[306,169],[307,170],[305,171],[308,172],[310,173],[309,174],[526,175],[530,176],[527,2],[524,177],[523,178],[528,179],[529,180],[525,181],[341,2],[342,2],[343,2],[349,182],[345,183],[347,184],[348,185],[346,186],[344,187],[339,188],[332,2],[331,2],[314,189],[330,190],[336,191],[312,192],[337,193],[311,10],[338,194],[334,195],[335,195],[333,196],[329,197],[313,198],[562,199],[568,200],[563,201],[564,202],[565,203],[566,204],[567,205],[561,4],[542,206],[549,207],[546,208],[548,209],[543,210],[547,211],[540,2],[545,208],[544,212],[541,10],[405,213],[384,214],[404,215],[383,114],[398,2],[400,114],[393,216],[397,217],[395,218],[396,219],[399,220],[394,221],[401,2],[385,222],[403,223],[402,224],[535,225],[539,226],[538,227],[536,228],[537,229],[249,230],[222,10],[200,231],[198,231],[248,232],[213,233],[212,233],[113,234],[64,235],[220,234],[221,234],[223,236],[224,234],[225,237],[124,238],[226,234],[197,234],[227,234],[228,239],[229,234],[230,233],[231,240],[232,234],[233,234],[234,234],[235,234],[236,233],[237,234],[238,234],[239,234],[240,234],[241,241],[242,234],[243,234],[244,234],[245,234],[246,234],[63,232],[66,237],[67,237],[68,237],[69,237],[70,237],[71,237],[72,237],[73,234],[75,242],[76,237],[74,237],[77,237],[78,237],[79,237],[80,237],[81,237],[82,237],[83,234],[84,237],[85,237],[86,237],[87,237],[88,237],[89,234],[90,237],[91,237],[92,237],[93,237],[94,237],[95,237],[96,234],[98,243],[97,237],[99,237],[100,237],[101,237],[102,237],[103,241],[104,234],[105,234],[119,244],[107,245],[108,237],[109,237],[110,234],[111,237],[112,237],[114,246],[115,237],[116,237],[117,237],[118,237],[120,237],[121,237],[122,237],[123,237],[125,247],[126,237],[127,237],[128,237],[129,234],[130,237],[131,248],[132,248],[133,248],[134,234],[135,237],[136,237],[137,237],[142,237],[138,237],[139,234],[140,237],[141,234],[143,237],[144,237],[145,237],[146,237],[147,237],[148,237],[149,234],[150,237],[151,237],[152,237],[153,237],[154,237],[155,237],[156,237],[157,237],[158,237],[159,237],[160,237],[161,237],[162,237],[163,237],[164,237],[165,237],[166,249],[167,237],[168,237],[169,237],[170,237],[171,237],[172,237],[173,234],[174,234],[175,234],[176,234],[177,234],[178,237],[179,237],[180,237],[181,237],[199,250],[247,234],[184,251],[183,252],[207,253],[206,254],[202,255],[201,254],[203,256],[192,257],[190,258],[205,259],[204,256],[191,10],[193,260],[106,261],[62,262],[61,237],[196,10],[188,263],[189,264],[186,10],[187,265],[185,237],[194,266],[65,267],[214,10],[215,10],[208,10],[211,233],[210,10],[216,10],[217,10],[209,268],[218,10],[219,10],[182,269],[195,270],[59,10],[57,10],[58,10],[10,10],[12,10],[11,10],[2,10],[13,10],[14,10],[15,10],[16,10],[17,10],[18,10],[19,10],[20,10],[3,10],[4,10],[21,10],[25,10],[22,10],[23,10],[24,10],[26,10],[27,10],[28,10],[5,10],[29,10],[30,10],[31,10],[32,10],[6,10],[36,10],[33,10],[34,10],[35,10],[37,10],[7,10],[38,10],[43,10],[44,10],[39,10],[40,10],[41,10],[42,10],[8,10],[48,10],[45,10],[46,10],[47,10],[49,10],[9,10],[50,10],[51,10],[52,10],[55,10],[53,10],[54,10],[1,10],[56,10],[612,271],[619,272],[611,271],[626,273],[603,274],[602,275],[625,276],[620,277],[623,278],[605,279],[604,280],[600,281],[599,282],[622,283],[601,284],[606,285],[607,10],[610,285],[597,10],[628,286],[627,285],[614,287],[615,288],[617,289],[613,290],[616,291],[621,276],[608,292],[609,293],[618,294],[598,295],[624,296],[592,297],[691,298],[584,299],[585,300],[255,297],[588,297],[590,301],[583,302],[257,297],[579,303],[410,297],[411,297],[557,297],[558,297],[381,297],[382,297],[340,304],[408,305],[406,306],[407,307],[575,297],[578,308],[576,309],[577,310],[415,297],[574,311],[550,312],[573,313],[569,297],[572,314],[409,297],[414,315],[412,297],[413,316],[559,297],[560,297],[570,297],[571,297],[60,297],[587,297],[591,317],[586,318]],"exportedModulesMap":[[581,1],[350,2],[392,3],[258,2],[316,2],[315,4],[260,5],[391,6],[319,7],[259,2],[318,2],[317,8],[253,9],[252,4],[580,10],[251,11],[250,10],[427,4],[582,12],[254,13],[589,14],[256,15],[593,2],[293,16],[295,10],[294,17],[292,18],[299,19],[297,20],[298,21],[291,10],[296,20],[689,22],[688,23],[685,24],[690,25],[686,10],[681,10],[594,26],[595,26],[630,27],[631,28],[632,29],[633,30],[634,31],[635,32],[636,33],[637,34],[638,35],[639,36],[640,36],[642,37],[641,38],[643,39],[644,40],[645,41],[629,42],[679,10],[646,43],[647,44],[648,45],[680,46],[649,47],[650,48],[651,49],[652,50],[653,51],[654,52],[655,53],[656,54],[657,55],[658,56],[659,56],[660,57],[661,58],[663,59],[662,60],[664,61],[665,62],[666,63],[667,64],[668,65],[669,66],[670,67],[671,68],[672,69],[673,70],[674,71],[675,72],[676,73],[677,74],[678,75],[683,10],[684,10],[682,76],[687,77],[596,10],[437,10],[375,78],[377,2],[376,79],[374,2],[378,80],[380,81],[379,82],[355,83],[354,84],[365,85],[367,86],[366,87],[416,2],[419,88],[420,89],[426,90],[425,91],[418,92],[424,93],[423,94],[421,93],[422,94],[417,95],[390,96],[389,97],[387,98],[388,99],[386,4],[553,100],[551,101],[552,102],[554,103],[556,104],[555,105],[531,10],[532,10],[534,106],[533,107],[300,108],[301,109],[302,110],[304,111],[303,112],[436,113],[433,114],[432,4],[434,115],[431,116],[435,117],[323,118],[320,114],[321,119],[322,120],[328,121],[324,122],[325,123],[326,124],[327,125],[281,126],[282,4],[279,4],[283,127],[285,128],[284,129],[261,4],[280,114],[278,114],[442,130],[446,131],[445,132],[444,10],[443,10],[359,133],[358,134],[356,114],[357,135],[262,10],[263,136],[270,136],[271,136],[272,10],[264,10],[277,137],[265,136],[273,4],[266,136],[276,138],[269,10],[267,10],[275,10],[268,2],[274,10],[364,139],[360,114],[361,140],[362,141],[363,142],[371,143],[369,2],[353,2],[368,144],[351,145],[352,146],[370,147],[373,148],[372,149],[517,150],[429,2],[430,151],[519,2],[518,2],[428,152],[520,153],[522,154],[521,155],[287,156],[288,157],[290,158],[289,159],[286,160],[447,161],[449,162],[516,163],[450,10],[451,10],[452,10],[453,10],[454,10],[455,10],[456,10],[457,10],[458,10],[459,10],[460,10],[461,10],[462,10],[463,10],[464,10],[465,10],[466,10],[467,10],[468,10],[469,10],[470,10],[471,10],[472,10],[473,10],[474,10],[475,10],[476,10],[477,10],[478,10],[479,10],[480,10],[482,10],[481,10],[483,10],[484,10],[485,10],[486,10],[487,10],[488,10],[489,10],[490,10],[491,10],[492,10],[493,10],[494,10],[495,10],[496,10],[497,10],[498,10],[499,10],[500,10],[501,10],[502,10],[503,10],[504,10],[505,10],[506,10],[507,10],[508,10],[509,10],[510,10],[511,10],[512,10],[513,10],[514,10],[438,10],[441,164],[440,165],[439,166],[448,167],[515,168],[306,169],[307,170],[305,171],[308,172],[310,173],[309,174],[526,175],[530,176],[527,2],[524,177],[523,178],[528,179],[529,180],[525,181],[341,2],[342,2],[343,2],[349,182],[345,183],[347,184],[348,185],[346,186],[344,187],[339,188],[332,2],[331,2],[314,189],[330,190],[336,191],[312,192],[337,193],[311,10],[338,194],[334,195],[335,195],[333,196],[329,197],[313,198],[562,199],[568,200],[563,201],[564,202],[565,203],[566,204],[567,205],[561,4],[542,206],[549,207],[546,208],[548,209],[543,210],[547,211],[540,2],[545,208],[544,212],[541,10],[405,213],[384,214],[404,215],[383,114],[398,2],[400,114],[393,216],[397,217],[395,218],[396,219],[399,220],[394,221],[401,2],[385,222],[403,223],[402,224],[535,225],[539,226],[538,227],[536,228],[537,229],[249,230],[222,10],[200,231],[198,231],[248,232],[213,233],[212,233],[113,234],[64,235],[220,234],[221,234],[223,236],[224,234],[225,237],[124,238],[226,234],[197,234],[227,234],[228,239],[229,234],[230,233],[231,240],[232,234],[233,234],[234,234],[235,234],[236,233],[237,234],[238,234],[239,234],[240,234],[241,241],[242,234],[243,234],[244,234],[245,234],[246,234],[63,232],[66,237],[67,237],[68,237],[69,237],[70,237],[71,237],[72,237],[73,234],[75,242],[76,237],[74,237],[77,237],[78,237],[79,237],[80,237],[81,237],[82,237],[83,234],[84,237],[85,237],[86,237],[87,237],[88,237],[89,234],[90,237],[91,237],[92,237],[93,237],[94,237],[95,237],[96,234],[98,243],[97,237],[99,237],[100,237],[101,237],[102,237],[103,241],[104,234],[105,234],[119,244],[107,245],[108,237],[109,237],[110,234],[111,237],[112,237],[114,246],[115,237],[116,237],[117,237],[118,237],[120,237],[121,237],[122,237],[123,237],[125,247],[126,237],[127,237],[128,237],[129,234],[130,237],[131,248],[132,248],[133,248],[134,234],[135,237],[136,237],[137,237],[142,237],[138,237],[139,234],[140,237],[141,234],[143,237],[144,237],[145,237],[146,237],[147,237],[148,237],[149,234],[150,237],[151,237],[152,237],[153,237],[154,237],[155,237],[156,237],[157,237],[158,237],[159,237],[160,237],[161,237],[162,237],[163,237],[164,237],[165,237],[166,249],[167,237],[168,237],[169,237],[170,237],[171,237],[172,237],[173,234],[174,234],[175,234],[176,234],[177,234],[178,237],[179,237],[180,237],[181,237],[199,250],[247,234],[184,251],[183,252],[207,253],[206,254],[202,255],[201,254],[203,256],[192,257],[190,258],[205,259],[204,256],[191,10],[193,260],[106,261],[62,262],[61,237],[196,10],[188,263],[189,264],[186,10],[187,265],[185,237],[194,266],[65,267],[214,10],[215,10],[208,10],[211,233],[210,10],[216,10],[217,10],[209,268],[218,10],[219,10],[182,269],[195,270],[59,10],[57,10],[58,10],[10,10],[12,10],[11,10],[2,10],[13,10],[14,10],[15,10],[16,10],[17,10],[18,10],[19,10],[20,10],[3,10],[4,10],[21,10],[25,10],[22,10],[23,10],[24,10],[26,10],[27,10],[28,10],[5,10],[29,10],[30,10],[31,10],[32,10],[6,10],[36,10],[33,10],[34,10],[35,10],[37,10],[7,10],[38,10],[43,10],[44,10],[39,10],[40,10],[41,10],[42,10],[8,10],[48,10],[45,10],[46,10],[47,10],[49,10],[9,10],[50,10],[51,10],[52,10],[55,10],[53,10],[54,10],[1,10],[56,10],[612,271],[619,272],[611,271],[626,273],[603,274],[602,275],[625,276],[620,277],[623,278],[605,279],[604,280],[600,281],[599,282],[622,283],[601,284],[606,285],[607,10],[610,285],[597,10],[628,286],[627,285],[614,287],[615,288],[617,289],[613,290],[616,291],[621,276],[608,292],[609,293],[618,294],[598,295],[624,296],[592,297],[691,319],[255,297],[588,297],[590,320],[583,320],[257,297],[579,303],[578,321],[574,311],[573,322],[572,323],[414,324],[413,320],[60,297],[587,297],[591,320]],"semanticDiagnosticsPerFile":[581,350,392,258,316,315,260,391,319,259,318,317,253,252,580,251,250,427,582,254,589,256,593,293,295,294,292,299,297,298,291,296,689,688,685,690,686,681,594,595,630,631,632,633,634,635,636,637,638,639,640,642,641,643,644,645,629,679,646,647,648,680,649,650,651,652,653,654,655,656,657,658,659,660,661,663,662,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,683,684,682,687,596,437,375,377,376,374,378,380,379,355,354,365,367,366,416,419,420,426,425,418,424,423,421,422,417,390,389,387,388,386,553,551,552,554,556,555,531,532,534,533,300,301,302,304,303,436,433,432,434,431,435,323,320,321,322,328,324,325,326,327,281,282,279,283,285,284,261,280,278,442,446,445,444,443,359,358,356,357,262,263,270,271,272,264,277,265,273,266,276,269,267,275,268,274,364,360,361,362,363,371,369,353,368,351,352,370,373,372,517,429,430,519,518,428,520,522,521,287,288,290,289,286,447,449,516,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,482,481,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,438,441,440,439,448,515,306,307,305,308,310,309,526,530,527,524,523,528,529,525,341,342,343,349,345,347,348,346,344,339,332,331,314,330,336,312,337,311,338,334,335,333,329,313,562,568,563,564,565,566,567,561,542,549,546,548,543,547,540,545,544,541,405,384,404,383,398,400,393,397,395,396,399,394,401,385,403,402,535,539,538,536,537,249,222,200,198,248,213,212,113,64,220,221,223,224,225,124,226,197,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,63,66,67,68,69,70,71,72,73,75,76,74,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,98,97,99,100,101,102,103,104,105,119,107,108,109,110,111,112,114,115,116,117,118,120,121,122,123,125,126,127,128,129,130,131,132,133,134,135,136,137,142,138,139,140,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,199,247,184,183,207,206,202,201,203,192,190,205,204,191,193,106,62,61,196,188,189,186,187,185,194,65,214,215,208,211,210,216,217,209,218,219,182,195,59,57,58,10,12,11,2,13,14,15,16,17,18,19,20,3,4,21,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,55,53,54,1,56,612,619,611,626,603,602,625,620,623,605,604,600,599,622,601,606,607,610,597,628,627,614,615,617,613,616,621,608,609,618,598,624,691,585,590,583,579,411,558,382,408,407,578,577,574,573,572,414,413,560,571,591,586]},"version":"5.2.2"}
\ No newline at end of file
+{"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/tslib/tslib.d.ts","../../../../src/main.ngtypecheck.ts","../../../../node_modules/rxjs/dist/types/internal/subscription.d.ts","../../../../node_modules/rxjs/dist/types/internal/subscriber.d.ts","../../../../node_modules/rxjs/dist/types/internal/operator.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/types.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/audittime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffercount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffertime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/buffertoggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/bufferwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/catcherror.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatestall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combineall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/combinelatestwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatmapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/concatwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/debouncetime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/defaultifempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/delaywhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctuntilchanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/distinctuntilkeychanged.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/elementat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/endwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/exhaustmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/findindex.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../../../../node_modules/rxjs/dist/types/internal/subject.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/groupby.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/ignoreelements.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/isempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/notification.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergeall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergemap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/flatmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergemapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergescan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/mergewith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectableobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/observeon.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/onerrorresumenextwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishbehavior.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishlast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/publishreplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/racewith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/repeatwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/retrywhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/refcount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sampletime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sequenceequal.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/sharereplay.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skiplast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipuntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/skipwhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/startwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/subscribeon.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchmap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchmapto.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/switchscan.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takelast.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takeuntil.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/takewhile.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throttletime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/throwifempty.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeinterval.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timeoutwith.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/toarray.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowcount.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowtime.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowtoggle.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/windowwhen.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/withlatestfrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipall.d.ts","../../../../node_modules/rxjs/dist/types/internal/operators/zipwith.d.ts","../../../../node_modules/rxjs/dist/types/operators/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/action.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/testmessage.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/subscriptionlog.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/subscriptionloggable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/coldobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/hotobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asyncscheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/timerhandle.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asyncaction.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/virtualtimescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/testing/testscheduler.d.ts","../../../../node_modules/rxjs/dist/types/testing/index.d.ts","../../../../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/dom/animationframes.d.ts","../../../../node_modules/rxjs/dist/types/internal/behaviorsubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/replaysubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/asyncsubject.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asapscheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queuescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationframescheduler.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduler/animationframe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/isobservable.d.ts","../../../../node_modules/rxjs/dist/types/internal/lastvaluefrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/firstvaluefrom.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/argumentoutofrangeerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/emptyerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/notfounderror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/objectunsubscribederror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/sequenceerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/util/unsubscriptionerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindcallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/bindnodecallback.d.ts","../../../../node_modules/rxjs/dist/types/internal/anycatcher.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/combinelatest.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/forkjoin.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromevent.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/fromeventpattern.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/onerrorresumenext.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/throwerror.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../../../../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../../../../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../../../../node_modules/rxjs/dist/types/internal/config.d.ts","../../../../node_modules/rxjs/dist/types/index.d.ts","../../../../node_modules/@angular/core/primitives/signals/index.d.ts","../../../../node_modules/@angular/core/index.d.ts","../../../../node_modules/@angular/common/index.d.ts","../../../../node_modules/@angular/common/http/index.d.ts","../../../../node_modules/@angular/platform-browser/index.d.ts","../../../../src/app/app.config.ngtypecheck.ts","../../../../node_modules/@angular/router/index.d.ts","../../../../src/app/app.routes.ngtypecheck.ts","../../../../node_modules/@angular/cdk/bidi/index.d.ts","../../../../node_modules/@angular/cdk/platform/index.d.ts","../../../../node_modules/@angular/cdk/layout/index.d.ts","../../../../node_modules/ng-zorro-antd/core/services/resize.d.ts","../../../../node_modules/ng-zorro-antd/core/types/any.d.ts","../../../../node_modules/ng-zorro-antd/core/types/common-wrap.d.ts","../../../../node_modules/ng-zorro-antd/core/types/direction.d.ts","../../../../node_modules/ng-zorro-antd/core/types/indexable.d.ts","../../../../node_modules/ng-zorro-antd/core/types/ng-class.d.ts","../../../../node_modules/ng-zorro-antd/core/types/size.d.ts","../../../../node_modules/ng-zorro-antd/core/types/template.d.ts","../../../../node_modules/ng-zorro-antd/core/types/shape.d.ts","../../../../node_modules/ng-zorro-antd/core/types/compare-with.d.ts","../../../../node_modules/ng-zorro-antd/core/types/control-value-accessor.d.ts","../../../../node_modules/ng-zorro-antd/core/types/convert-input.d.ts","../../../../node_modules/ng-zorro-antd/core/types/input-observable.d.ts","../../../../node_modules/ng-zorro-antd/core/types/type.d.ts","../../../../node_modules/ng-zorro-antd/core/types/status.d.ts","../../../../node_modules/ng-zorro-antd/core/types/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/types/index.d.ts","../../../../node_modules/ng-zorro-antd/core/services/singleton.d.ts","../../../../node_modules/ng-zorro-antd/core/services/drag.d.ts","../../../../node_modules/ng-zorro-antd/core/services/scroll.d.ts","../../../../node_modules/ng-zorro-antd/core/services/breakpoint.d.ts","../../../../node_modules/ng-zorro-antd/core/services/destroy.d.ts","../../../../node_modules/ng-zorro-antd/core/services/image-preload.d.ts","../../../../node_modules/ng-zorro-antd/core/services/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/services/index.d.ts","../../../../node_modules/ng-zorro-antd/grid/row.directive.d.ts","../../../../node_modules/ng-zorro-antd/grid/col.directive.d.ts","../../../../node_modules/ng-zorro-antd/grid/grid.module.d.ts","../../../../node_modules/ng-zorro-antd/grid/public-api.d.ts","../../../../node_modules/ng-zorro-antd/grid/index.d.ts","../../../../node_modules/@ant-design/icons-angular/types.d.ts","../../../../node_modules/@ant-design/icons-angular/component/icon.service.d.ts","../../../../node_modules/@ant-design/icons-angular/component/icon.directive.d.ts","../../../../node_modules/@ant-design/icons-angular/component/icon.module.d.ts","../../../../node_modules/@ant-design/icons-angular/component/icon.error.d.ts","../../../../node_modules/@ant-design/icons-angular/utils.d.ts","../../../../node_modules/@ant-design/icons-angular/manifest.d.ts","../../../../node_modules/@ant-design/icons-angular/public_api.d.ts","../../../../node_modules/@ant-design/icons-angular/index.d.ts","../../../../node_modules/ng-zorro-antd/core/config/config.d.ts","../../../../node_modules/ng-zorro-antd/core/config/config.service.d.ts","../../../../node_modules/ng-zorro-antd/core/config/css-variables.d.ts","../../../../node_modules/ng-zorro-antd/core/config/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/config/index.d.ts","../../../../node_modules/ng-zorro-antd/icon/icon.service.d.ts","../../../../node_modules/ng-zorro-antd/icon/icon.directive.d.ts","../../../../node_modules/ng-zorro-antd/icon/icon.module.d.ts","../../../../node_modules/ng-zorro-antd/icon/icons.d.ts","../../../../node_modules/ng-zorro-antd/icon/public-api.d.ts","../../../../node_modules/ng-zorro-antd/icon/index.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.types.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.service.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu.service.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu-item.component.d.ts","../../../../node_modules/@angular/cdk/collections/index.d.ts","../../../../node_modules/@angular/cdk/coercion/index.d.ts","../../../../node_modules/@angular/cdk/scrolling/index.d.ts","../../../../node_modules/@angular/cdk/portal/index.d.ts","../../../../node_modules/@angular/cdk/overlay/index.d.ts","../../../../node_modules/ng-zorro-antd/core/no-animation/nz-no-animation.directive.d.ts","../../../../node_modules/ng-zorro-antd/core/no-animation/nz-no-animation.module.d.ts","../../../../node_modules/ng-zorro-antd/core/no-animation/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/no-animation/index.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/nz-connected-overlay.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/nz-overlay.module.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/overlay-position.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/overlay/index.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.directive.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu-group.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu-divider.directive.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu-title.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu-inline-child.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/submenu-non-inline-child.component.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.module.d.ts","../../../../node_modules/ng-zorro-antd/menu/menu.token.d.ts","../../../../node_modules/ng-zorro-antd/menu/public-api.d.ts","../../../../node_modules/ng-zorro-antd/menu/index.d.ts","../../../../src/app/pages/body/index/index.component.ngtypecheck.ts","../../../../node_modules/ng-zorro-antd/layout/content.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/footer.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/header.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/sider.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/layout.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/sider-trigger.component.d.ts","../../../../node_modules/ng-zorro-antd/layout/layout.module.d.ts","../../../../node_modules/ng-zorro-antd/layout/public-api.d.ts","../../../../node_modules/ng-zorro-antd/layout/index.d.ts","../../../../node_modules/@angular/animations/index.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown-menu.component.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown.directive.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown-a.directive.d.ts","../../../../node_modules/ng-zorro-antd/button/button.component.d.ts","../../../../node_modules/ng-zorro-antd/button/button-group.component.d.ts","../../../../node_modules/ng-zorro-antd/core/transition-patch/transition-patch.directive.d.ts","../../../../node_modules/ng-zorro-antd/core/transition-patch/transition-patch.module.d.ts","../../../../node_modules/ng-zorro-antd/core/transition-patch/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/transition-patch/index.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/nz-wave-renderer.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/nz-wave.directive.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/nz-wave.module.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/wave/index.d.ts","../../../../node_modules/ng-zorro-antd/button/button.module.d.ts","../../../../node_modules/ng-zorro-antd/button/public-api.d.ts","../../../../node_modules/ng-zorro-antd/button/index.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown-button.directive.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/context-menu.service.module.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/dropdown.module.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/context-menu.service.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/public-api.d.ts","../../../../node_modules/ng-zorro-antd/dropdown/index.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb-item.component.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb.component.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb-separator.component.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/breadcrumb.module.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/public-api.d.ts","../../../../node_modules/ng-zorro-antd/breadcrumb/index.d.ts","../../../../src/app/data/menu/menu.namespace.ngtypecheck.ts","../../../../src/app/data/menu/menu.namespace.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-add-button.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/interfaces.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tabs-ink-bar.directive.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/resize-observer.service.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/resize-observer.directive.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/resize-observer.module.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/public-api.d.ts","../../../../node_modules/ng-zorro-antd/cdk/resize-observer/index.d.ts","../../../../node_modules/@angular/cdk/observers/index.d.ts","../../../../node_modules/@angular/cdk/a11y/index.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-link.directive.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-nav-item.directive.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-nav-operation.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-nav-bar.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-body.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-scroll-list.directive.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab-close-button.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tab.directive.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tabset.component.d.ts","../../../../node_modules/ng-zorro-antd/tabs/tabs.module.d.ts","../../../../node_modules/ng-zorro-antd/tabs/public-api.d.ts","../../../../node_modules/ng-zorro-antd/tabs/index.d.ts","../../../../src/app/pages/body/tab/tab.component.ngtypecheck.ts","../../../../src/app/pages/body/tab/tab.component.ts","../../../../src/app/utils/localstorage.service.ngtypecheck.ts","../../../../src/app/utils/localstorage.service.ts","../../../../src/app/data/login/localstorage.namespace.ngtypecheck.ts","../../../../src/app/data/login/localstorage.namespace.ts","../../../../src/app/pages/body/index/index.component.ts","../../../../src/app/utils/initguard.service.ngtypecheck.ts","../../../../src/app/utils/initguard.service.ts","../../../../src/app/pages/login/login.routes.ngtypecheck.ts","../../../../node_modules/ng-zorro-antd/carousel/carousel-content.directive.d.ts","../../../../node_modules/ng-zorro-antd/carousel/typings.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/base-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/carousel.component.d.ts","../../../../node_modules/ng-zorro-antd/carousel/carousel.module.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/opacity-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/transform-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/experimental/transform-no-loop-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/strategies/experimental/flip-strategy.d.ts","../../../../node_modules/ng-zorro-antd/carousel/public-api.d.ts","../../../../node_modules/ng-zorro-antd/carousel/index.d.ts","../../../../node_modules/@angular/forms/index.d.ts","../../../../node_modules/ng-zorro-antd/form/form.directive.d.ts","../../../../node_modules/ng-zorro-antd/form/form-item.component.d.ts","../../../../node_modules/ng-zorro-antd/form/form-label.component.d.ts","../../../../node_modules/ng-zorro-antd/core/form/nz-form-status.service.d.ts","../../../../node_modules/ng-zorro-antd/core/form/nz-form-no-status.service.d.ts","../../../../node_modules/ng-zorro-antd/core/form/nz-form-item-feedback-icon.component.d.ts","../../../../node_modules/ng-zorro-antd/core/form/nz-form-patch.module.d.ts","../../../../node_modules/ng-zorro-antd/core/form/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/form/index.d.ts","../../../../node_modules/date-fns/typings.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.interface.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.service.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.pipe.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.module.d.ts","../../../../node_modules/ng-zorro-antd/core/time/candy-date.d.ts","../../../../node_modules/ng-zorro-antd/core/time/time.d.ts","../../../../node_modules/ng-zorro-antd/core/time/time-parser.d.ts","../../../../node_modules/ng-zorro-antd/core/time/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/time/index.d.ts","../../../../node_modules/ng-zorro-antd/i18n/date-config.d.ts","../../../../node_modules/ng-zorro-antd/i18n/nz-i18n.token.d.ts","../../../../node_modules/ng-zorro-antd/i18n/date-helper.service.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ar_eg.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/az_az.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/bg_bg.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/bn_bd.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/by_by.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ca_es.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/cs_cz.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/da_dk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/de_de.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/el_gr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/en_gb.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/en_us.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/es_es.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/et_ee.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fa_ir.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fi_fi.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fr_be.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fr_ca.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/fr_fr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ga_ie.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/gl_es.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/he_il.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/hi_in.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/hr_hr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/hu_hu.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/hy_am.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/id_id.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/is_is.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/it_it.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ja_jp.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ka_ge.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/km_kh.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/kk_kz.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/kmr_iq.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/kn_in.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ko_kr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ku_iq.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/lt_lt.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/lv_lv.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/mk_mk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ml_in.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/mn_mn.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ms_my.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/nb_no.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ne_np.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/nl_be.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/nl_nl.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/pl_pl.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/pt_br.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/pt_pt.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ro_ro.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ru_ru.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/sk_sk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/sl_si.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/sr_rs.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/sv_se.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ta_in.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/th_th.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/tr_tr.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/uk_ua.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/ur_pk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/vi_vn.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/zh_cn.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/zh_hk.d.ts","../../../../node_modules/ng-zorro-antd/i18n/languages/zh_tw.d.ts","../../../../node_modules/ng-zorro-antd/i18n/public-api.d.ts","../../../../node_modules/ng-zorro-antd/i18n/index.d.ts","../../../../node_modules/ng-zorro-antd/form/form-control.component.d.ts","../../../../node_modules/ng-zorro-antd/form/form-text.component.d.ts","../../../../node_modules/ng-zorro-antd/form/form-split.component.d.ts","../../../../node_modules/ng-zorro-antd/form/form.module.d.ts","../../../../node_modules/ng-zorro-antd/form/public-api.d.ts","../../../../node_modules/ng-zorro-antd/form/index.d.ts","../../../../node_modules/ng-zorro-antd/input/input.directive.d.ts","../../../../node_modules/ng-zorro-antd/input/input-group.component.d.ts","../../../../node_modules/ng-zorro-antd/input/textarea-count.component.d.ts","../../../../node_modules/ng-zorro-antd/input/autosize.directive.d.ts","../../../../node_modules/ng-zorro-antd/input/input-group-slot.component.d.ts","../../../../node_modules/ng-zorro-antd/input/input.module.d.ts","../../../../node_modules/ng-zorro-antd/input/public-api.d.ts","../../../../node_modules/ng-zorro-antd/input/index.d.ts","../../../../node_modules/ng-zorro-antd/core/color/color.d.ts","../../../../node_modules/ng-zorro-antd/core/color/generate.d.ts","../../../../node_modules/ng-zorro-antd/core/color/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/color/index.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/base.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/tooltip.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/tooltip.module.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/public-api.d.ts","../../../../node_modules/ng-zorro-antd/tooltip/index.d.ts","../../../../node_modules/ng-zorro-antd/slider/slider.service.d.ts","../../../../node_modules/ng-zorro-antd/slider/typings.d.ts","../../../../node_modules/ng-zorro-antd/slider/handle.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/slider.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/track.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/step.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/marks.component.d.ts","../../../../node_modules/ng-zorro-antd/slider/slider.module.d.ts","../../../../node_modules/ng-zorro-antd/slider/public-api.d.ts","../../../../node_modules/ng-zorro-antd/slider/index.d.ts","../../../../src/app/pages/login/login/login.component.ngtypecheck.ts","../../../../node_modules/ng-zorro-antd/checkbox/checkbox-wrapper.component.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/checkbox.component.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/checkbox-group.component.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/checkbox.module.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/public-api.d.ts","../../../../node_modules/ng-zorro-antd/checkbox/index.d.ts","../../../../src/app/data/login/login.namespace.ngtypecheck.ts","../../../../src/app/data/login/login.namespace.ts","../../../../src/app/utils/mathutils.service.ngtypecheck.ts","../../../../src/app/utils/mathutils.service.ts","../../../../node_modules/ng-zorro-antd/message/typings.d.ts","../../../../node_modules/ng-zorro-antd/message/base.d.ts","../../../../node_modules/ng-zorro-antd/message/message-container.component.d.ts","../../../../node_modules/ng-zorro-antd/message/message.component.d.ts","../../../../node_modules/ng-zorro-antd/message/message.module.d.ts","../../../../node_modules/ng-zorro-antd/message/message.service.d.ts","../../../../node_modules/ng-zorro-antd/message/public-api.d.ts","../../../../node_modules/ng-zorro-antd/message/index.d.ts","../../../../src/app/servies/login/login.service.ngtypecheck.ts","../../../../src/environments/environment.ngtypecheck.ts","../../../../src/environments/environment.ts","../../../../src/app/servies/login/login.service.ts","../../../../src/app/pages/login/login/login.component.ts","../../../../src/app/pages/login/login.routes.ts","../../../../src/app/pages/index/index.routes.ngtypecheck.ts","../../../../src/app/pages/index/index/index.component.ngtypecheck.ts","../../../../src/app/pages/index/index/index.component.ts","../../../../src/app/pages/index/index.routes.ts","../../../../src/app/pages/system/system.routes.ngtypecheck.ts","../../../../node_modules/ng-zorro-antd/core/tree/nz-tree-base.definitions.d.ts","../../../../node_modules/ng-zorro-antd/core/tree/nz-tree-base.service.d.ts","../../../../node_modules/ng-zorro-antd/core/tree/nz-tree-base-node.d.ts","../../../../node_modules/ng-zorro-antd/core/tree/nz-tree-service.resolver.d.ts","../../../../node_modules/ng-zorro-antd/core/tree/nz-tree-base.d.ts","../../../../node_modules/ng-zorro-antd/core/tree/nz-tree-base-util.d.ts","../../../../node_modules/ng-zorro-antd/core/tree/public-api.d.ts","../../../../node_modules/ng-zorro-antd/core/tree/index.d.ts","../../../../node_modules/ng-zorro-antd/tree/tree.component.d.ts","../../../../node_modules/ng-zorro-antd/tree/tree-node.component.d.ts","../../../../node_modules/ng-zorro-antd/tree/tree-indent.component.d.ts","../../../../node_modules/ng-zorro-antd/tree/tree-node-switcher.component.d.ts","../../../../node_modules/ng-zorro-antd/tree/tree-node-checkbox.component.d.ts","../../../../node_modules/ng-zorro-antd/tree/tree-node-title.component.d.ts","../../../../node_modules/ng-zorro-antd/tree/tree-drop-indicator.component.d.ts","../../../../node_modules/ng-zorro-antd/tree/tree.module.d.ts","../../../../node_modules/ng-zorro-antd/tree/tree.service.d.ts","../../../../node_modules/ng-zorro-antd/tree/public-api.d.ts","../../../../node_modules/ng-zorro-antd/tree/index.d.ts","../../../../src/app/pages/system/menu/menu.component.ngtypecheck.ts","../../../../src/app/servies/menu/menu.service.ngtypecheck.ts","../../../../src/app/utils/objectdata.service.ngtypecheck.ts","../../../../src/app/utils/objectdata.service.ts","../../../../src/app/servies/menu/menu.service.ts","../../../../src/app/pages/system/menu/menu.component.ts","../../../../src/app/pages/system/system.routes.ts","../../../../src/app/app.routes.ts","../../../../node_modules/@angular/common/locales/zh.d.ts","../../../../node_modules/@angular/animations/browser/index.d.ts","../../../../node_modules/@angular/platform-browser/animations/index.d.ts","../../../../src/app/app.config.ts","../../../../src/app/app.component.ngtypecheck.ts","../../../../src/app/app.component.ts","../../../../src/main.ts","../../../../src/main.server.ngtypecheck.ts","../../../../src/app/app.config.server.ngtypecheck.ts","../../../../node_modules/@angular/platform-server/index.d.ts","../../../../src/app/app.config.server.ts","../../../../src/main.server.ts","../../../../server.ngtypecheck.ts","../../../../node_modules/@angular/ssr/index.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/dom-events.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/@types/mime/index.d.ts","../../../../node_modules/@types/send/index.d.ts","../../../../node_modules/@types/qs/index.d.ts","../../../../node_modules/@types/range-parser/index.d.ts","../../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../../node_modules/@types/http-errors/index.d.ts","../../../../node_modules/@types/serve-static/index.d.ts","../../../../node_modules/@types/connect/index.d.ts","../../../../node_modules/@types/body-parser/index.d.ts","../../../../node_modules/@types/express/index.d.ts","../../../../server.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc",{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"bc496ef4377553e461efcf7cc5a5a57cf59f9962aea06b5e722d54a36bf66ea1","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","ecf5cb089ea438f2545e04b6c52828c68d0b0f4bfaa661986faf36da273e9892","95444fb6292d5e2f7050d7021383b719c0252bf5f88854973977db9e3e3d8006","241bd4add06f06f0699dcd58f3b334718d85e3045d9e9d4fa556f11f4d1569c1","06540a9f3f2f88375ada0b89712de1c4310f7398d821c4c10ab5c6477dafb4bc",{"version":"de2d3120ed0989dbc776de71e6c0e8a6b4bf1935760cf468ff9d0e9986ef4c09","affectsGlobalScope":true},"b8bff8a60af0173430b18d9c3e5c443eaa3c515617210c0c7b3d2e1743c19ecb","97bdf234f5db52085d99c6842db560bca133f8a0413ff76bf830f5f38f088ce3","a76ebdf2579e68e4cfe618269c47e5a12a4e045c2805ed7f7ab37af8daa6b091","b493ff8a5175cbbb4e6e8bcfa9506c08f5a7318b2278365cfca3b397c9710ebc","e59d36b7b6e8ba2dd36d032a5f5c279d2460968c8b4e691ca384f118fb09b52a","e96885c0684c9042ec72a9a43ef977f6b4b4a2728f4b9e737edcbaa0c74e5bf6","303ee143a869e8f605e7b1d12be6c7269d4cab90d230caba792495be595d4f56","89e061244da3fc21b7330f4bd32f47c1813dd4d7f1dc3d0883d88943f035b993","e46558c2e04d06207b080138678020448e7fc201f3d69c2601b0d1456105f29a","71549375db52b1163411dba383b5f4618bdf35dc57fa327a1c7d135cf9bf67d1","7e6b2d61d6215a4e82ea75bc31a80ebb8ad0c2b37a60c10c70dd671e8d9d6d5d","78bea05df2896083cca28ed75784dde46d4b194984e8fc559123b56873580a23","5dd04ced37b7ea09f29d277db11f160df7fd73ba8b9dba86cb25552e0653a637","f74b81712e06605677ae1f061600201c425430151f95b5ef4d04387ad7617e6a","9a72847fcf4ac937e352d40810f7b7aec7422d9178451148296cf1aa19467620","3ae18f60e0b96fa1e025059b7d25b3247ba4dcb5f4372f6d6e67ce2adac74eac","2b9260f44a2e071450ae82c110f5dc8f330c9e5c3e85567ed97248330f2bf639","4f196e13684186bda6f5115fc4677a87cf84a0c9c4fc17b8f51e0984f3697b6d","61419f2c5822b28c1ea483258437c1faab87d00c6f84481aa22afb3380d8e9a4","64479aee03812264e421c0bf5104a953ca7b02740ba80090aead1330d0effe91","a5eb4835ab561c140ffc4634bb039387d5d0cceebb86918f1696c7ac156d26fd","c5570e504be103e255d80c60b56c367bf45d502ca52ee35c55dec882f6563b5c","4252b852dd791305da39f6e1242694c2e560d5e46f9bb26e2aca77252057c026","0520b5093712c10c6ef23b5fea2f833bf5481771977112500045e5ea7e8e2b69","5c3cf26654cf762ac4d7fd7b83f09acfe08eef88d2d6983b9a5a423cb4004ca3","e60fa19cf7911c1623b891155d7eb6b7e844e9afdf5738e3b46f3b687730a2bd","b1fd72ff2bb0ba91bb588f3e5329f8fc884eb859794f1c4657a2bfa122ae54d0","6cf42a4f3cfec648545925d43afaa8bb364ac10a839ffed88249da109361b275","ba13c7d46a560f3d4df8ffb1110e2bbec5801449af3b1240a718514b5576156e","6df52b70d7f7702202f672541a5f4a424d478ee5be51a9d37b8ccbe1dbf3c0f2","0ca7f997e9a4d8985e842b7c882e521b6f63233c4086e9fe79dd7a9dc4742b5e","91046b5c6b55d3b194c81fd4df52f687736fad3095e9d103ead92bb64dc160ee","db5704fdad56c74dfc5941283c1182ed471bd17598209d3ac4a49faa72e43cfc","758e8e89559b02b81bc0f8fd395b17ad5aff75490c862cbe369bb1a3d1577c40","2ee64342c077b1868f1834c063f575063051edd6e2964257d34aad032d6b657c","6f6b4b3d670b6a5f0e24ea001c1b3d36453c539195e875687950a178f1730fa7","05c4e2a992bb83066a3a648bad1c310cecd4d0628d7e19545bb107ac9596103a","b48b83a86dd9cfe36f8776b3ff52fcd45b0e043c0538dc4a4b149ba45fe367b9","792de5c062444bd2ee0413fb766e57e03cce7cdaebbfc52fc0c7c8e95069c96b","a79e3e81094c7a04a885bad9b049c519aace53300fb8a0fe4f26727cb5a746ce","dd6c3362aaaec60be028b4ba292806da8e7020eef7255c7414ce4a5c3a7138ef","8a4e89564d8ea66ad87ee3762e07540f9f0656a62043c910d819b4746fc429c5","b9011d99942889a0f95e120d06b698c628b0b6fdc3e6b7ecb459b97ed7d5bcc6","4d639cbbcc2f8f9ce6d55d5d503830d6c2556251df332dc5255d75af53c8a0e7","cdb48277f600ab5f429ecf1c5ea046683bc6b9f73f3deab9a100adac4b34969c","75be84956a29040a1afbe864c0a7a369dfdb739380072484eff153905ef867ee","b06b4adc2ae03331a92abd1b19af8eb91ec2bf8541747ee355887a167d53145e","3114b315cd0687aad8b57cff36f9c8c51f5b1bc6254f1b1e8446ae583d8e2474","0d417c15c5c635384d5f1819cc253a540fe786cc3fda32f6a2ae266671506a21","af733cb878419f3012f0d4df36f918a69ba38d73f3232ba1ab46ef9ede6cb29c","cb59317243a11379a101eb2f27b9df1022674c3df1df0727360a0a3f963f523b","0a01b0b5a9e87d04737084731212106add30f63ec640169f1462ba2e44b6b3a8","06b8a7d46195b6b3980e523ef59746702fd210b71681a83a5cf73799623621f9","860e4405959f646c101b8005a191298b2381af8f33716dc5f42097e4620608f8","f7e32adf714b8f25d3c1783473abec3f2e82d5724538d8dcf6f51baaaff1ca7a","e07d62a8a9a3bb65433a62e9bbf400c6bfd2df4de60652af4d738303ee3670a1","bfbf80f9cd4558af2d7b2006065340aaaced15947d590045253ded50aabb9bc5","851e8d57d6dd17c71e9fa0319abd20ab2feb3fb674d0801611a09b7a25fd281c","c3bd2b94e4298f81743d92945b80e9b56c1cdfb2bef43c149b7106a2491b1fc9","a246cce57f558f9ebaffd55c1e5673da44ea603b4da3b2b47eb88915d30a9181","d993eacc103c5a065227153c9aae8acea3a4322fe1a169ee7c70b77015bf0bb2","fc2b03d0c042aa1627406e753a26a1eaad01b3c496510a78016822ef8d456bb6","063c7ebbe756f0155a8b453f410ca6b76ffa1bbc1048735bcaf9c7c81a1ce35f","748e79252a7f476f8f28923612d7696b214e270cc909bc685afefaac8f052af0","9669075ac38ce36b638b290ba468233980d9f38bdc62f0519213b2fd3e2552ec","4d123de012c24e2f373925100be73d50517ac490f9ed3578ac82d0168bfbd303","656c9af789629aa36b39092bee3757034009620439d9a39912f587538033ce28","3ac3f4bdb8c0905d4c3035d6f7fb20118c21e8a17bee46d3735195b0c2a9f39f","1f453e6798ed29c86f703e9b41662640d4f2e61337007f27ac1c616f20093f69","af43b7871ff21c62bf1a54ec5c488e31a8d3408d5b51ff2e9f8581b6c55f2fc7","70550511d25cbb0b6a64dcac7fffc3c1397fd4cbeb6b23ccc7f9b794ab8a6954","af0fbf08386603a62f2a78c42d998c90353b1f1d22e05a384545f7accf881e0a","c3f32a185cd27ac232d3428a8d9b362c3f7b4892a58adaaa022828a7dcd13eed","3139c3e5e09251feec7a87f457084bee383717f3626a7f1459d053db2f34eb76","4888fd2bcfee9a0ce89d0df860d233e0cee8ee9c479b6bd5a5d5f9aae98342fe","3be870c8e17ec14f1c18fc248f5d2c4669e576404744ff5c63e6dafcf05b97ea","56654d2c5923598384e71cb808fac2818ca3f07dd23bb018988a39d5e64f268b","8b6719d3b9e65863da5390cb26994602c10a315aa16e7d70778a63fee6c4c079","6ab380571d87bd1d6f644fb6ab7837239d54b59f07dc84347b1341f866194214","547d3c406a21b30e2b78629ecc0b2ddaf652d9e0bdb2d59ceebce5612906df33","b3a4f9385279443c3a5568ec914a9492b59a723386161fd5ef0619d9f8982f97","3fe66aba4fbe0c3ba196a4f9ed2a776fe99dc4d1567a558fb11693e9fcc4e6ed","140eef237c7db06fc5adcb5df434ee21e81ee3a6fd57e1a75b8b3750aa2df2d8","0944ec553e4744efae790c68807a461720cff9f3977d4911ac0d918a17c9dd99","7c9ed7ffdc6f843ab69e5b2a3e7f667b050dd8d24d0052db81e35480f6d4e15d","7c7d9e116fe51100ff766703e6b5e4424f51ad8977fe474ddd8d0959aa6de257","af70a2567e586be0083df3938b6a6792e6821363d8ef559ad8d721a33a5bcdaf","006cff3a8bcb92d77953f49a94cd7d5272fef4ab488b9052ef82b6a1260d870b","7d44bfdc8ee5e9af70738ff652c622ae3ad81815e63ab49bdc593d34cb3a68e5","339814517abd4dbc7b5f013dfd3b5e37ef0ea914a8bbe65413ecffd668792bc6","34d5bc0a6958967ec237c99f980155b5145b76e6eb927c9ffc57d8680326b5d8","9eae79b70c9d8288032cbe1b21d0941f6bd4f315e14786b2c1d10bccc634e897","18ce015ed308ea469b13b17f99ce53bbb97975855b2a09b86c052eefa4aa013a","5a931bc4106194e474be141e0bc1046629510dc95b9a0e4b02a3783847222965","5e5f371bf23d5ced2212a5ff56675aefbd0c9b3f4d4fdda1b6123ac6e28f058c","907c17ad5a05eecb29b42b36cc8fec6437be27cc4986bb3a218e4f74f606911c","3656f0584d5a7ee0d0f2cc2b9cffbb43af92e80186b2ce160ebd4421d1506655","a726ad2d0a98bfffbe8bc1cd2d90b6d831638c0adc750ce73103a471eb9a891c","f44c0c8ce58d3dacac016607a1a90e5342d830ea84c48d2e571408087ae55894","75a315a098e630e734d9bc932d9841b64b30f7a349a20cf4717bf93044eff113","9131d95e32b3d4611d4046a613e022637348f6cebfe68230d4e81b691e4761a1","b03aa292cfdcd4edc3af00a7dbd71136dd067ec70a7536b655b82f4dd444e857","90f690a1c5fcb4c2d19c80fea05c8ab590d8f6534c4c296d70af6293ede67366","be95e987818530082c43909be722a838315a0fc5deb6043de0a76f5221cbad24","9ed5b799c50467b0c9f81ddf544b6bcda3e34d92076d6cab183c84511e45c39f","b4fa87cc1833839e51c49f20de71230e259c15b2c9c3e89e4814acc1d1ef10de","e90ac9e4ac0326faa1bc39f37af38ace0f9d4a655cd6d147713c653139cf4928","ea27110249d12e072956473a86fd1965df8e1be985f3b686b4e277afefdde584","1f6058d60eaa8825f59d4b76bbf6cc0e6ad9770948be58de68587b0931da00cc","5666075052877fe2fdddd5b16de03168076cf0f03fbca5c1d4a3b8f43cba570c","50100b1a91f61d81ca3329a98e64b7f05cddc5e3cb26b3411adc137c9c631aca","11aceaee5663b4ed597544567d6e6a5a94b66857d7ebd62a9875ea061018cd2c","6e30d0b5a1441d831d19fe02300ab3d83726abd5141cbcc0e2993fa0efd33db4","423f28126b2fc8d8d6fa558035309000a1297ed24473c595b7dec52e5c7ebae5","fb30734f82083d4790775dae393cd004924ebcbfde49849d9430bf0f0229dd16","2c92b04a7a4a1cd9501e1be338bf435738964130fb2ad5bd6c339ee41224ac4c","c5c5f0157b41833180419dacfbd2bcce78fb1a51c136bd4bcba5249864d8b9b5","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","4bb6035e906946163ecfaec982389d0247ceeac6bdee7f1d07c03d9c224db3aa","8a44b424edee7bb17dc35a558cc15f92555f14a0441205613e0e50452ab3a602","24a00d0f98b799e6f628373249ece352b328089c3383b5606214357e9107e7d5","33637e3bc64edd2075d4071c55d60b32bdb0d243652977c66c964021b6fc8066","0f0ad9f14dedfdca37260931fac1edf0f6b951c629e84027255512f06a6ebc4c","16ad86c48bf950f5a480dc812b64225ca4a071827d3d18ffc5ec1ae176399e36","8cbf55a11ff59fd2b8e39a4aa08e25c5ddce46e3af0ed71fb51610607a13c505","d5bc4544938741f5daf8f3a339bfbf0d880da9e89e79f44a6383aaf056fe0159","c82857a876075e665bbcc78213abfe9e9b0206d502379576d7abd481ade3a569","4f71d883ed6f398ba8fe11fcd003b44bb5f220f840b3eac3c395ad91304e4620","5229c3934f58413f34f1b26c01323c93a5a65a2d9f2a565f216590dfbed1fe32","9fd7466b77020847dbc9d2165829796bf7ea00895b2520ff3752ffdcff53564b","fbfc12d54a4488c2eb166ed63bab0fb34413e97069af273210cf39da5280c8d6","85a84240002b7cf577cec637167f0383409d086e3c4443852ca248fc6e16711e","4c754b03f36ff35fc539f9ebb5f024adbb73ec2d3e4bfb35b385a05abb36a50e","59507446213e73654d6979f3b82dadc4efb0ed177425ae052d96a3f5a5be0d35","a914be97ca7a5be670d1545fc0691ac3fbabd023d7d084b338f6934349798a1f","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","62c3621d34fb2567c17a2c4b89914ebefbfbd1b1b875b070391a7d4f722e55dc","c05ac811542e0b59cb9c2e8f60e983461f0b0e39cea93e320fad447ff8e474f3","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","132351cbd8437a463757d3510258d0fa98fd3ebef336f56d6f359cf3e177a3ce","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","33d1888c3c27d3180b7fd20bac84e97ecad94b49830d5dd306f9e770213027d1","ee942c58036a0de88505ffd7c129f86125b783888288c2389330168677d6347f","a3f317d500c30ea56d41501632cdcc376dae6d24770563a5e59c039e1c2a08ec","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","0c1651a159995dfa784c57b4ea9944f16bdf8d924ed2d8b3db5c25d25749a343","aaa13958e03409d72e179b5d7f6ec5c6cc666b7be14773ae7b6b5ee4921e52db","0a86e049843ad02977a94bb9cdfec287a6c5a0a4b6b5391a6648b1a122072c5a","87437ca9dabab3a41d483441696ff9220a19e713f58e0b6a99f1731af10776d7","26c5dfa9aa4e6428f4bb7d14cbf72917ace69f738fa92480b9749eebce933370","8e94328e7ca1a7a517d1aa3c569eac0f6a44f67473f6e22c2c4aff5f9f4a9b38","d604d413aff031f4bfbdae1560e54ebf503d374464d76d50a2c6ded4df525712","299f0af797897d77685d606502be72846b3d1f0dc6a2d8c964e9ea3ccbacf5bc","12bfd290936824373edda13f48a4094adee93239b9a73432db603127881a300d","340ceb3ea308f8e98264988a663640e567c553b8d6dc7d5e43a8f3b64f780374","c5a769564e530fba3ec696d0a5cff1709b9095a0bdf5b0826d940d2fc9786413","7124ef724c3fc833a17896f2d994c368230a8d4b235baed39aa8037db31de54f","5de1c0759a76e7710f76899dcae601386424eab11fb2efaf190f2b0f09c3d3d3","9c5ee8f7e581f045b6be979f062a61bf076d362bf89c7f966b993a23424e8b0d","1a11df987948a86aa1ec4867907c59bdf431f13ed2270444bf47f788a5c7f92d","3c97b5ea66276cf463525a6aa9d5bb086bf5e05beac70a0597cda2575503b57b","b756781cd40d465da57d1fc6a442c34ae61fe8c802d752aace24f6a43fedacee","0fe76167c87289ea094e01616dcbab795c11b56bad23e1ef8aba9aa37e93432a","3a45029dba46b1f091e8dc4d784e7be970e209cd7d4ff02bd15270a98a9ba24b","032c1581f921f8874cf42966f27fd04afcabbb7878fa708a8251cac5415a2a06","69c68ed9652842ce4b8e495d63d2cd425862104c9fb7661f72e7aa8a9ef836f8","a31383256374723b47d8b5497a9558bbbcf95bcecfb586a36caf7bfd3693eb0e","06f62a14599a68bcde148d1efd60c2e52e8fa540cc7dcfa4477af132bb3de271","64aa66c7458cbfd0f48f88070b08c2f66ae94aba099dac981f17c2322d147c06","11f19ce32d21222419cecab448fa335017ebebf4f9e5457c4fa9df42fa2dcca7","2e8ee2cbb5e9159764e2189cf5547aebd0e6b0d9a64d479397bb051cd1991744","1b0471d75f5adb7f545c1a97c02a0f825851b95fe6e069ac6ecaa461b8bb321d","1d157c31a02b1e5cca9bc495b3d8d39f4b42b409da79f863fb953fbe3c7d4884","07baaceaec03d88a4b78cb0651b25f1ae0322ac1aa0b555ae3749a79a41cba86","619a132f634b4ebe5b4b4179ea5870f62f2cb09916a25957bff17b408de8b56d","f60fa446a397eb1aead9c4e568faf2df8068b4d0306ebc075fb4be16ed26b741","f3cb784be4d9e91f966a0b5052a098d9b53b0af0d341f690585b0cc05c6ca412","350f63439f8fe2e06c97368ddc7fb6d6c676d54f59520966f7dbbe6a4586014e","eba613b9b357ac8c50a925fa31dc7e65ff3b95a07efbaa684b624f143d8d34ba","9814545517193cf51127d7fbdc3b7335688206ec04ee3a46bba2ee036bd0dcac","0f6199602df09bdb12b95b5434f5d7474b1490d2cd8cc036364ab3ba6fd24263","c8ca7fd9ec7a3ec82185bfc8213e4a7f63ae748fd6fced931741d23ef4ea3c0f","5c6a8a3c2a8d059f0592d4eab59b062210a1c871117968b10797dee36d991ef7","ad77fd25ece8e09247040826a777dc181f974d28257c9cd5acb4921b51967bd8","2a25d0b3b0c0d5aa9a70635ee33a96f7e0bec5801386954c30680895b214c933","140500c8700a92c38e83d4fd45ac8286a253196956eec51421972e545a4ebb98","071bb591c12282944182a8f6deb88db0e40cbac7865440d884ffcbd2c22a71e1","a13adf241eff1ea22356848130ec6f1a50ca1ec1261a8c16d9cb8e395316462a","2e04efd4f8cf3f3e7feb461b3c43152de857800f52ec0b0abfc23e3f505e5781","ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","40108ecf79f6e648c451725e01a462ee234a5e90d40430b14744728a334042bc","ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","f9b8fedff6c1b0e53221b7890999346cf22f3ffe5fae4e94438530e8e131f5ac","2a7e6241c05770b21ac324f8d6162f53d54f2278cc532a90d21ad7f3c9d6d5f2","1401c9b5b14a8ed7c26f0a504904e1e14bd98b6cbfa4789b0c58eb4ed3e0c799","cccbd41eadd9eb95b06ae129f9fdc2bd97af2fb74edaa4d0feb608488ae0b358","7f8d4c66991cc8beabba3f6cd41c95a083be5f26216ec602b9d0dc7041e04e52","6b443897b39aa381a121d5ed377dc116a6bfc00bcedd069c1406a813dcb4252b","79df8ad48f1e6dfc725f12370cbef8368dd0270bc5c509b2d2100eb62bd32d92","3eac1a527c1a699a01c80aefc247faab8f6fc57b8a18c5dbb50fe7ac9b40de3f","5efc06564f1cf26ef2368c78efdcff70bc62bca08318b02323e2a8b08aa0f608","c62dd22be9abc5c964da33d130b00c4161d7701b8061120b0bd0acf523c42bbd","35aab9cfabc7fad736427e2ed3876257d20cb0826a6c5772401f70b624490d73","5bd166ebcd6c1cb758e70b1866ada6ec23fcaef8633107563ed3ebf95608a2dd","ab470f41a5c3d537b6fc6dd97824ea42f19df285dd2730e22a03f4140eb6a7b9","bb5748a92eed1968ba874b09fe4443a862bf83dd4454aa413a82a6bddf1a629c","e467429b5d588a6cdcb76587d8538ff1e88c6a574c7855029b99e9faa81502a7","b1e513cfe8a71d242ebdca2b04edb7c33624a5e46e3f72c7387478537144ff3b","2ce9f335f847338d25e74b6a800dfa460d1c02959f9d837052e7d47d0396c1ae","a2ec3c64e012294320eca1e860a234abc98f891a25cef5b92d8240601b89ae9b","a4f0485fd9c6133d2cf6574b70288ea49f4544d8fe6da2e367e0702b030c4fc4","ba5e4c01dfcd9c3e1a84ada9a6f9547ebfcd9bf76fc1e0f8250aa63112d410b5","829ccc49b6d32f39fef37a4f3cd964df11439719cfd05a633479bbd4a8116227","4100aee047b0ae7d2314abeba45180b11e396e2b77839c8a701776924ab748b1","9de4f0200c0a6648bfd081cd08b13039f8a89296943ef689ff708bb85d348b1c","f4bbdd4ab3199fc9ce2589211af7b6fd4ed6cebf0088599a6fecc4d11f6a9136","bcd04a5a0a86e67dda69b13b12ce66132863f9730de3a26b292729272367541f","2d86a6efd9a3924bd088c2e14a38bb584c2afd1833ddfb45e9a4a711869c4903","a11ba77c32b76a5d3bfbed16ed4bcdc321f3374e2a0f8e8ea5ed7704b5c3ba0a","3d21cfae4c52397c19fc6cb4decfc839e41532d00c6d4264b730e747022ab15e","6b67105ed49975c125f4472161bc996c19564b8eed07d67d762b0bd3a2cdba56","d85333b813aa0175226d8736c8320037fdf2f7f19afd1c553f9f05196116bf1c","3e7d04c9c7a4a8966226eed8fd1bd12462368914d2157460a06fd775dbefa0cd","5c445c08257e713b5bfe67eee956a5befe88be9a05b1534275e5265aca6eb896","82a1d9f11bbccdab1911e55017c45b723aa6c3a5c5da785f14ff9aa2def55514","3bd88eac730cafb5ee35b5ae13ded04c7821d949c34b5849238bd5c026311ebf","8dd98bf3983a25cdb076d31d5a6b4b18039d463e2c0e23b7307384c4edb5ead6","9c8cf5aa465386f10353efb80823dbed51e0d0196565f176c8111cc6026688b6","91e6bca66381ac9a853e5483050f7835d094fa0bfc0c5544d9b2519411b86706","57133d9d582a4f4fd436a33f0f42e682b1d39d69c5d9a5adad5d7e369c248b98","ef7990368a6a8c09ec4dabe518d15978718013846e6ca18523c2c283b9bc74ab","1fd6fea9b14ffa264260465cbb09991d42da07c6f95235e85bc1281d93e2ad08","fc8db740d2a63c970b913f2969f5ae4b8997deb46c337b8a11a81c03068360ea","9ca73f6ee630cecd2179636661e7b19094370b6851875dfcb6f80132f5c3a387","c60fbfe5d019ce9b911a4ccfcfa9e5229dc9fb1e67cb78495518b08490ac913d","f5e15285963a3485170f709701e8a0a867d637a0ba8ac75ba92a48b4b6c05afb","51cf45d64866a264925a9eeb41713bb427101c11f99e93defb3e72658c4af803","cbc60fb36a57868c4387e622948c3ada0b2953a9f1648e7178690ea37be380f6","b4e6ef7b866196bf46009551a7dd2b01300f95917f24d58d004eb72be6432553","a3dd80e71a8239407f2d906d1d838f45db15a1e433142334b1616fb1f74afdbf","fad4dab531c4e5c79f783f2d59aa4c695a9142be27c451462481f6531b7aaa4b","2e7768cb0e8204575fa0f1488d3d31ac95f2d5e920838c1df16fd34149807aff","c344ba0d586fb697b66bc665bd8d0b35e128b6baa5aca93a0b4c55a6fc9bd210","c2641084cb01af256e9c17fadf95749e6999d1a51259aa543111ce18d2ce133d","62f01f1e1ec4144979d99b918d3cbe443d14b4d8fe6d390e1e44549e9a217489","0c9d432c1c1c69cbdfc63f578b5a6bcd3a06c5be803c26a4b297b57f1da2312e","eec0fd4c7832b9d121698c7ee244bc98cd197a6ee42534d486cd9574eee40a0b","7ecea4c9a6cdd58e40a1f256acfd5a5c4b00e5adf7310f71a660bb2c4d1f7c23","cafa24b3e301a16117e5494de3505a8827c40849fe921b1f75a11f79eeb74ae3","ef32a2c8f06426f20a08d801238e167e9155a8341d1177a7446077be50c8a63e","ddf66648b065311cbc226d6585caa14b37f461698d525857aff60c988b66a6c9","c7e95e3e3988837ae5dc96a6f8b1360de33aaffe12be966418a7e00c8fc7f6c9","7172d4edfc661bc427a1b0f16cfd0261f5255a5a96f3c5add90eca4cf5c4eb1a","93b9f9aac69e01179892697a9d7dd1582f68582ddccc31e94d2c87f063fc700a","9982b7049712023c649e877e6812e2e06ed9249296f2a2d3b51d917f244be4c4","0b8f8981fa81638ca5a3d10174cfc199038b168cb3e7ac4548803f96a0d39d82","516160edba90fe695dabece2f2061b1f4410e1918e9e7d0d57c61c9ffafb3a5e","395981256c3a1af362058fe97f7195d44ec3443260b96766649e6f4d85513b42","6a26538b86e3044028bd01bba54f4efc5c62a7595f96191834513f506109df74","a6c6c2e81efb6c03547bcbe8b09b2a94f0f7f5ec3234cc2123bebe7487749c83","bdec7c3a64765eaace37f2dbf32944f26cec6a8cee4d5b77ae4d07c90e6fc970","d537ee66e2554c96c63ce60caf28076a7478bb34cdd8f88809abeca7931862c0","91252869322804ff931952f9a4c12301681f0728ffc2e574d7c858d04fb54a6d","86de9d676578eb21786318470077f0764a0d2669b032bcf463397142a1c9a163","0aa40ede23b85ee78889e97ae8fec583dafa733b32d269d5928911f62600219c","50a28aa624aba5300de078cee97311cd1da1bd2a9f936493c423e34b96dd9a0c","a9db178b3a5707bd21d051cb626988b29b61baa60d212d4d0fe90b62c7d58716","7ecf0b80eded1937eecbddb36f20cb2d7144fd430d5b1d25a1855207a0fcd381","c88ded4dc1952ec6f5f56b398dff49eb07b8a2838cbe5f0e9cc7553d74236685","845a152b65ac30d47142fbbfa19c73c7d849a0a9232b01589ca847cb96d74c16","28ff71809d8e0194822b92fcaffc2a4f22e56603e0e5fcd6f286fc5b2398c1b0","0d8fad4fc16a5a0f5568e4ff597e5c9556fe2a1c942d6bb84fa8dc228f9bfe14","868be3b56c220bf33cbd7fceee7818aec5d4bc2e0e49a382ea1a53497c4933db","fda33341c6373ec91c0c4b1ab8af633cf7da2a9848aa797997ec2351285e5178",{"version":"3d3ccc1cf11dc39bdd9ef3d9d0f1a6c0d63b59d8110b87e9e7369b2a25236b79","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},"47f84f10b9c759f75c0a9ecf8f367baf4995c4fe018228391cb65e689ba46cf0","9294e09a3396e7adb3470248873caec3de1d771bf2d233fa5bab1b150870a6fa","c28b8ec18d8fc89d4117d18c278a850de5a29cb3147195489709bdfa1474dc5c","4fb47e3c233f3597f6543977f8d2af03d350c0a6a3483176be2550606cf8202e","a9d0ff42c7dbf3edb3d2bfaf0ec9e6921f97f0a9de070852a985fedfa35e48f7","42453b0f1789cd76ab9b9fed3ad6acedf70ba10c7d0dc6c40cb95951db618d6b","a845229f3a271bc00e95882a44e74f2dda5551e399bbbc066d6ef508eed99916","06ea97d41486ec229c47a5e16144e373e2fffd4a26181a987338ab13d189efb4","1c24693cb55fb0478c6b446ed9d5ba4e076139601a84fc16717987b974077b44","91514ad47ab59e654f4a71943fc6ddf477b06f821fc04ff698e7340ecaedbac1","35653f4b93ee91e2220f372f6bdb446759e0806df2c2948f3e718424161a688c","9c2db9c634f77374074ba35536c510d7abee72b748c6f584254acecc3d9a06b5","fd2b097c9361b5a9910b56e0805a38ef62cb09af726fcc0002b7a993b7838f22","6f42db9e79ef2f8f75b792eebb389950497a58cfe1932acd09b09bd256acdf58","3ac44a422e919afdc3e21a9b4d626673172e18b76b97f730f8d4c0bfa6411565","a433c2f564a3c941eb05cbc41caf7c0d55c0d3c4a86d3e6db793a83dd4ac1599","af62115326b735db1b0ffaceda6fda2e1dcbbb14c5d752a99323d4a65b8a4198","aa5faf80aa97adbf6767faf1c28df7ac42aaaa8ca1066d7e03bc64a1cdb0056e","ca0fc466697d8a2252e0f721b1a88fd165fddd73497c1859491035aa61a0cebd","6f1c5a6ae31084488f48fc78f8acdc9f17b0833004102a9e1c8ad405335a2777","7b04f9659dceea386d3e7a71417a88636cbf7942b0cf313a973db9e79fd4011d","a60d106fc617d5a4ef1d784b430847d270ea334fe2531ae2a4c06c6cc15cb614","d2d9657fb39bca36caecb3d9d08e8197cbf639e6e33b661131fd656f3ea15b1c","e3a60f48af0a29cfc9238f1e2a8fa21624f1c8f80150814c2f6489934dd9c889","b4e723b6cebfdab805a6d63f9127cdc8d6c310993ea2503523247095f973d4ec","7f5b3c5d1485d10d9f6bb1e48b6467331688d23a7fbc4257664a78e971cf9985","60ca9978647761b3c40c18068a1aaa8cd477899dc92df68b4f2e1e92c4d9b8e1","1e218fb115c7f697af3fd2b276ffc101ead9cbff02a69779123c24afc6b8cf9d","c54217bffbff1434b1f05c0abd161e315f2cca16ceb2274077348a789f914f67","b6f843360b25e775baaca51ea2a574fa18fd59294998925ea720fa95b44134c9","503408eaf5058213cba791a6b7d06b66aa5538872131316283335e0afa90f8c6","31781da84adf99ff7412d91c3b592854f4c13685bbc85f781fbd5bb08bf8cb0c","75aafd13ea88e55ac6bbe55813ba03ecaa31b0d7d8128f3959108cb4f91c1ea5","89b2af233f8878bf95ecb8557b39d18ca821c6aca5273044a1d9496a4aa1ec33","a31dc99e8a4fa673b3e4251c6e5d741572af7936dca59978eba45817114f23c5","fe2e77e59c5bdb8fc8ba9823d21b3b21960a5702dca86e82c097065860f14b25","5634484f094491a24dfa775e2be5d6304b4517fbc54065e7ae4e6589b9f46563","d18160b08927fbc0370511df6bf3c6147fb472a8c2638f82096ba4b92aee8103","d75b6926bb6986e3319419943ae6660d487f483a8995aa1489a47046a387cb0e","d301931e78a7bf83720b67937598beaf2fa1604b6dfeb24d256881ab439c717b",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"b9bca31471abd55f6bf648641a3267c7176ab0052de43ef614646284809c3990","signature":"8fff57dfffe7f0bddd41267bbbcb9034d0f836c7cdfbbe3d998dbda9851b7538"},"77461e08bea619444df98b1e404a4eee2320ff30e7db7e657db70a3c799ca1ae","b1b98a42f3f6de2b9661cb1dae8f6a3bc514533d11ba54efd531e09adcac5d6f","5e5e278a6c6fe064c0ff74094f13d09a9608b8ea49c8ad06b37b457e5c822f21","d4b09a3550aae362905da95d0120246ff166dd5fa63a0a5faa069761484efc1e","bda9470a90487aafeda418220fa98d8c58f2d0764d5f25f517dd8734ee9774dd","73e31e7ab4cf17f89c7c3f9118282b871ebf8c648205c2b684ce3c6b1ab8dd38","506ef97ba37c3153a83c53aa742b8bc271e295e68a7f7f3015db7770696a17a3","c7133873697db1e243d43b206b6ec01b961793bd94b0285ad1621565e10825eb","b5782eecab1e0c4dc090000bffe710cfe76649d3c4480eaa142ca8a8e5eafa24","e7d5b3fe910be641ad98b54072c90423a90d285108b1aa0fb440b27bb31bd0ed","eb698b0678be92d270fa5ca69c70c374e0c9b772493c1131a383113ca8816e41","a46345bb2e9bc9d4997808442d6b6000764bea01e82c5097b8d32bce1a29ad06","1795d21b51b716119ec2ab8358c6161f39f039b95489e2964331a0fb3fc2fb91","5c0280f649695c072e81977028ffdb862d696ae3e2a291457784ad65407dcf45","a80c0352e00303ff7024dc349b538b3be352e425ee7774e4c699379359fe0cfa","6fd3d7ca0eee74a1fdd80cbf29a1fc65d8d187e0b53c2478dc7a257fdea7ad14","c2e0b5c4fea9d7356c237f123c25def45a91460155e9bde4d2bf54b7bde6fef8","3e458159a6f8b1fdc6abfc84d64e922547b5c29a59e8bf1024848dcfa350eb01","4564829f496d3b88a825693afe441f4d64c342487e7b2b3e27cd81edd2865b6e","a565a3f0158a047840f6057866a28369791df2d3868389166db88d05cd73f0ad","664c4264d4ff2df0fcc2215e3b4ed49a1ad4991a60999c2025fbe0d81637c443","ec3ceccf5b3a0b7aa261fbe09fb4a88199f193de54c6578490e6f6c949e7b182","6df84c050f9b624825247c3a35b27b90005b40dd61ce395bba26b08a86da0173",{"version":"921b36b49f184c72be358fc3387b08500af658765874f3fcf9c3e54a66f2f3c8","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"c575b861350120eb188e36643902f50c4c95dfdfa99f319118dd4032a684f357","signature":"4f792de60b8e7ceb2b0f77689be6b6ccb5f2be4a11c6f714afe477b475052ba9"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"4ee3bf01747944bde62be7db61a11a23575475f8e540cfcec24ce326da318948","signature":"22acfb60e12c9e194f5e66c2a7c2cc5bbaf83857aecb053b1cdd53efdbc8288e"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"1139f32dae7d552a6debc96d36389108606f8dabb4fb6c313d8f9ca0b0ebf96b","signature":"f347a3f9f9105a8c6a5e34d17ff8a2b28cef41c774b68f2e3e868312ab8428ba"},{"version":"d3e1a0b76104e6da501ebc1be7a073cc89ee9f3853cd834e76ed389c8077c815","signature":"f2866dc5699cf33decd630c8d4071bbc0d8d812036d70bc95dc2599616467bd3"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"69ce9796b121256de68180643d8f418b5551fc17c6e37be0a8615b2b73fb064a","signature":"877c71e6a7dc8bcb1ca727453f53cbca541a55562e3600f0f0de42d325a3212f"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"f9f3f98dca5ea378cce212d4cd89733ec2d976c6da66b4c75f33f5bc1093d2f6","30f1c7606e663da2fcbb7a040bff88a163812d2ad5e3895479e8470b58f07c0f","10140f9820b668e6bf65d747437068df02a9f6e994e55e4c6422259ecee084b3","4e36ea5aee2a66e82249367d813966b0916097cf9ea420349036c6fbef4146c0","495114c33cf472e7fb7d1a423b5fd75427fa82bfe6c2807a99ec373bed518d72","3a8751b6fd22b4dd21e04fd1a61512bcfe8a0600c33c6b091b0d95e814e7b177","d94a6011e6638c44150188268695489a332214b3835b3697ddbd78fb062d9dd0","4531c4e014df4d29708e55174bdf64520323dbb9254e2034b5b8f6e9490d97bf","573a6f2379b3f6d5e7fc36e691e34600ebb8ab0a6bd2682b96d9721b1a8059d1","15e2c5015d44a2b55df5eeba50dae228f404c7daf8910a50a8bfb159f63ab9e6","73c8b895ae734fc095273ed81f6e2ee2108c9268626bc9bc295ef72b3a1ce8ef","8639d3940e64e07c47579793f7c4add0422cc985e9f2cb0e9579f81f149504ae","e3cd075e7df0038318e173732a8d326f6cd040da92045a78af1140f9261f2568","d5499fb1feedc46b53f0e77c7201a24bcaba04a6bf9ce11bf0a2b96c32f10a68","85fd3e2ca5bd2381e08e45c370af340bf4308c9039a40d37cc250185f91eb330","6b136cfef6ac0e1cfde0ea2fd4d1c17c022c5b3d51592dccfb3b56353c2e6b1a","97babe2c3c84a74019559529a296f94a2d0e84356ffb837f2d3d653da6de1fbf","429349e6b779053c191cb29b12bae9f06d0970571fe47ead5d8ddc588f23818b","fda3da7aa15d73fa44ac99822f31bf4767a576db7c726291317d876e7846b937","36ee3b67458d308f7f75f8a8907e41b4a269de73c84c354935332af87797921d","b46e6db5aa43eabb567741d2dc92ca5eb9f0fc368357ebec02c42c8ebb4b14e3",{"version":"d204bd5d20ca52a553f7ba993dc2a422e9d1fce0b8178ce2bfe55fbd027c11ae","affectsGlobalScope":true},"f2d2d91de69fce66ae234019bf19498a996db213872fdc93b156d10eeff5a024","b3a98e8b67d802052c0ad867922743c87cda4c1fc53ae47faed880917f316022","0700aa0e353f816c408d4397cd77ef1509342588f45b65d9d3d616f421502f60","7f4f21af940c59c8f73d432c2a1c33084a861e9af63051ae0995d7bc36a87083","47db7253e3a5b0751035de3a5cb7781ab69885f82021ce5829aeacc9dc3f800f","5a22bf3611194a0d76884b3db71ed6ce1b187784cc6e82eb640f6f90615d2ac7","10a98655b5004f205d644bcdf76dab8fb3a24e9b4d16c6a662646c505d063ab5","e91c0d18807b1554682e1b6e1ab4b1163c2a7bd0e7bf0e1db95a5f370dc88521","12d55621010f9bbf7c3f350ce2ee65196e1868831f7e6cf72662f9c56ef3de6c","8834542917db95340d2f54a5da2cc4dafa2d6fea37d66707c9ba2c0fbd65ac56","1e38e79884cbd440fefc5af70b3d39e12cd9fb2e91bfb0c6d547b4347996e723","d68b8f1244eb6ad752dc795c9ce124bb50eddc2558179ae5610d100e7b5b814c","bfcecc03930b4a53ea87fe95683e4f1a6a0dde7381681ad48097c6ff76a54102","95b40beddb339052d70695b5d92bf6dab9a9c6217094328391901f57501de42b","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","25478f7c35c6cc147786fa39aee2ef41f1e9dae95a947f00c9a9f6ff5d8dfc2e","28cac2e4cd57b4a5a21d52af678c33e0f4e59d7429678891a821f198db50a454","5e315f58156c203360b5925dc469f830a13d83655c42ade472aee07fef269de0","032b5f9e36a973da01d121491ad023656ba756854c9db6c0516e9c336fbb7862","7aa1161bc4ccec053b6c1e2b9e641fdabac7169779cf35fcd54d63212677c288","c5bcfb5b3606412b008f3babe6846b4927e369159916d3e31528882e25587b67","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","3435cec2d6928caab4a2c43ae290a72e34c89682a6a6887f8dff768529a2b8d7","b561cd703ca0b908c800355587c02e0c661156122530a5ca8f38a6f7ca76d9f1","7d09685dced16070e0092e5801dd6ea996ce76ac0df9852604982fcedb31becc","1303b3f08025ede7993a094b1e91e22bcb62758ca6e31a47ccdaed86de34453f","b561cd703ca0b908c800355587c02e0c661156122530a5ca8f38a6f7ca76d9f1","a2060daabf477596c79dd0ff40e7fffdd5f891b452335cf1e2b76e49e9801b49","c4165b29627fca8c10d1abec3e021dbcc1281f08eee0ab95afab821918651958","c4165b29627fca8c10d1abec3e021dbcc1281f08eee0ab95afab821918651958","c4165b29627fca8c10d1abec3e021dbcc1281f08eee0ab95afab821918651958","87f0b178eb55e73830caaee7919ebf1268fb5c40fe47bce767cd2d7629a44717","d8cb69683211b609db45d7d446cf31ef4a9f30ecb1b4583ebfa42828cc613f8e","0d7ac69770bc84f7d1aed70a0f2d82206d149604b5ddf0cbf5ff392406f0f27a","a798d0d15869f63b9f383c5e1265e8d7b5e0f84181d62b0806072e53ad52d6e0","dfd7e342b20e0766f8752179f13d49f9c0f43c4cc1fed9954bdad782651ba902","3435cec2d6928caab4a2c43ae290a72e34c89682a6a6887f8dff768529a2b8d7","8cff76d263a287a10227241ee1fefa4ec5cdc7026d503b278837bb295c22568c","d0b951e00ba5730b4c31a83e50bcb8faf3945042309a92fa22d18b738cc8ad1c","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","b0ac49c3fc1ea98cc2e02e245de2bc98c0d80062e9fedca379d7704652661723","8620ca455bd084145a8cac4cfcc82fc89b6ddd23a604f4a67fa3ec0da71da315","c03f1378b65ff3b24845cb6d0c4ab5822dc828558dcb65433a0b2d45bcdc6cc8","f6241bdd3e97c582e867bdb0ad44787898e664f25372ba65da185e127fd3c09e","ad687590f999dacf925752b19aeeefee0da0eed59aaaf7aca093c68c2d70d031","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","78afeb65ace2d2c73d8a490e4862c414f8d7548fd8c3a2442e0acae7455f697d","fdbc67a48a8bdfda11eba5895a10c646b42df1ff36ac972bb68b8cd30fcf54d7","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","b8558f896e7b51cd5ec060a4414d192013520d0655a5c9afba5602e239b68cc4","7ae9bdbc119d322babb1805ccc2d3c6917b9eb5835749a2ad88f7ec1f5ee0ba8","fb724be8946142e90d685e6cc5685f4744f972a9a4f637297533d07dbbd9d6ce","25478f7c35c6cc147786fa39aee2ef41f1e9dae95a947f00c9a9f6ff5d8dfc2e","81a0056c95c5894f04778e642403d61f190ff7a5287e3558e9481d59868e2c51","319376b531de69c15e647ebe15e4dc4cdb7576a28f4a81380f97f84d89e3be80","c7e26262caaf8fc70ac97ef41a37e50c98973704d62dd7f79f72ca80e6443c9b","7347450f058389e5cd0aeb7b4a205e8a225baee820b2ed28d5e8971793f2ee94","b39bb4b6ce62a15b986f85f9f75e111bfa1cc7059f8cfadd83094353be051408","6eca582f214127d5e70fb5c7d7a52ddaccbcd4990f1886b0d684518ea89807ab","31ada020d9a7668ff1899f1cbf31dacd65d5ca4cb731c74b5493a0f5dce271f5","f82984b8375de304eadcd43938f0b9967f993cff251e762fba49526d9b921d14","09898b8db1dfdfb0aea25a70adffff507671e643e4a112e033350c06eeaf989b","fcb4a735202385a30e97e9d8f5d00aa17105e5e6e68af176fadf250f2a500e37","83488bc112bbd43d904a0b96911d1b71d9725a0004aac7fc46de8e09b1d53a23","1174c1d2ad97c769186616321a2145d022668a7e74ce0ff341971daedfa6154c","c22c37ac8f707477b4d69c280c4ff8cdcc6bf5907f061280eca0072f38e04810","2888895b1588e20afbea35fc92ece80c310af5b7b3fa2bb5576142e6add41442","4b993221700523a05782de87bc71c74bbdb0e791f7cfdc11aa7b4ce6ecfeb300","2d3b5d752096f82e05f8664741ab2dbeff26750cadabf65877653357b785ed43","9b66005a7e5c58c20fac57cafcb0d1ec5cc243df91d355035b5b93fe9c811e41","ca4df64273cc7d0e96254e02d6ceae366eace4df6bbb2b8caf35f38d9348341d","fdc516ece7d33203cbbf503fd1b43fb89b969365b6c5b6552c65a37fcc2138af","25478f7c35c6cc147786fa39aee2ef41f1e9dae95a947f00c9a9f6ff5d8dfc2e","81a0056c95c5894f04778e642403d61f190ff7a5287e3558e9481d59868e2c51","7aa3dde497f25b65d420acebd19354a4495368f6de1cb9d82074da62133db9c2","eef99c2d020325efd8fc2b21de171f71dddcfdededbe3acb797039e1aecb367e","eef99c2d020325efd8fc2b21de171f71dddcfdededbe3acb797039e1aecb367e","775780594dd67c23713ab139f06935f890b1b1b394c85d3522bc79393bdcbb4d","a2ff87dfedb2ec15723094a0b8370d1e5f795838fed73f69bab109b237515c38","2c6609d5a162dabef6404ad6f731327aabb6eaf30a877bb9001fa393f349a680","2e6e36f9c27ddc01b2a104b92ca3f178945b4ec375a3bd556073a3af0a4365d3","b01ec93f00d618730c453dd3fe453926c5fe452a500245014b8fb64e104adcee","fabc6f872dcd6208ab4ee5328c46ffe029e285d936a36152abee239ee1fb99c7","adde1222d7d49b91834b20b75686a762ed0726f5d34dcbda10a1aafa9ba419a4","ba3c7425794b5fe14eb7329ff97aa00f649e82d4891061e033db161b599663af","ba2b1305141ede23483b0f247b2ec3637d7b038b37598346692f7e9e08c75d2a","becea824046b5a36370b7956d271d7fd5ec033af2ebc78c166e360e602e97b92","f945d505b83c966214b80c53d8e7a2d77ec36a7e7a477a88cd09542d183ec83c","af1a9850747573f5c950082157276400d8612fede62af01f8b45629ff61bc975","4d3da7d3b12b46bc9d226706c12cb04387c74038f6fc651d0ece5fe6987230a3","f08169e1605cc96786b8e4a0cf19d853b8f585d25084daf009dc63e212e35c59","cde20424d6e6995855f4cb9f61c067cd215fc1dfeab88749350a4f76253ffae4","c8311ce839580c0875f9ff6aca0a9041f199aac8f674856b77c388983212bdf5","24cf439dc53195a9a22676407e7011c58a362eb5fa2fc32971820556959432d2","fb1fe16e53cea82b5ed56575c7c56671bb7ce502858e7ad5be512cfc816da29b","cd8b02b35bb2cdda78cf08448d5771a4b4f911c5743512a0fd6a6f23979c4dac","4392be558b8509e9624975f047d73286a08d97381ee55899b0227b670b2284bd","b7341adf64ef336742c7b4a68945f9c6e715d15c0ccd2eb6eeda503b39d92653","8fe0068df1a39fb8ecc14562adb77f5923d93f049e3d8a14a76982d0ef49ed80","a56df75b4f9e15358ec312a4ac991e2ab4cbe9656a99114c44530a51b1a0329a","2c37d3aed9fd6034ada2871eed49aa1e532444bca0bbdb27fe6d9cd4e4ba1d6e","8c6b5041b4b9dcc18c40d8d0615028e759d470a4810b1537bacfbd20c92243c4","e53e2f59a1b10434a1eeea3ad2bf0ed363ba88aa01681d68422dc9044ef50d52","af8f17871b68bfcc90f5941444844266c7c0a9328db0dee1414f47d0d1fd8e88","13fdf424f48b67e5fd7e4f25b6400a7fbdd28a0cff99d7d0400b76e4587a8879","13fe00c8acf8d4d8a50aee4c6805faa237b832e8b182154142647ab097808f6b","3cb14bc0d01a1bb99bda29c2366d570954496704ba8ac1f73060ba6ae99a18df","50f9dfb63997fcc83723ec64d6e7c07394022e994dff7984c55c31ffbc028e5e","b1e295cf3c02dee08816417f57ab7559906e55d706dd2b78f8dc045f88d93aaa","9bb720df292acbfd7e53bc0e8110b291f7ef83c16189da325eca9a58ca26ff82","f8a8c916f284fd68e8124f98110847d724fc503bf472a32eab36c95298920b2b","9803c925f6d559f0bce9a0e938b3ca5b192eec1fc5f0e727a75f514dc08f4e49",{"version":"b93e7bb0b556ded822cdcf1fdf2def46dc9dec23f9283101c592885e6a9586df","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},"892621c0131da61968e74ecdb17cdc1cd456e5d1a2db6d77f297c61e4c0773e8","6a8cb539556c1fb6054fa624bc691d0560e7334c06da3f1fc82e0b18e61614b8","de360cd42110490e00c1bb52af87118d5044a8a8054d8dc574087821c9f10b75","8a6ccbe6549c01938fa62d1682f5f1e987ac1924672ed8c8f5ab8d825719decd","7ab9bda66d3066b6164fb656c0c4598fcea5aac89ca96c2da1e049e41769acc8","12f6b1e992132ff669f790beece38ecaa19f2f0db75b7eae92e8dcc5f22b0a34",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ffc06cc59bfc4559f4845fd58694e934c20e4271413c48e4b3ec35a2afbd80a7","signature":"b4c749acb1b02fe0b336d3e89a98d3ee797f41144e7a2917d69a86c012fe9c5b"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"224212aaf624457d4d33e5b8f2bdc2a97ba1e7e487577ee239121a7be84a92c8","signature":"9ee11ad4f320cc402171301b600f529964208d145c82f986d89762679ba43d81"},"ad46be6d7b16fde6ba09fa11a8bdaa963a076d10fa85e8f7cd6a0904062993e1","e657d17c2b9494dfd8a9c6ea35a50214c324f9640c3fd9d63f414bd1f806623e","caf99be297c13988c93dcbd85ac2a65e1a44a428de6c6281478f21686c18a11f","1de8238b7283b31b2cfc8bf4c08c836223d8cefe4fdbdebebf580c59c0b539a6","451a214b2ce4d71b0c6c87a8a10bd4f0bb9d70d6630527da1f3a6fbce0abbffe","21c91e8fd1c8469ac883a5d0e88ee2328f21e761f0d266ef413b0177cdd14a8f","028a4ca49c9f57503e269e11143d17fe86d07b57aa6ad0ff033e37f90069720c","8d0d9d6605b72eb8a2ddb127b630898497fa49ed0adc018f8af55b6bc008c04f",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"76352867f048fb1d055fc08a535f66368a3da114087bb4dfbc5745b73326a9b4","signature":"fe91775da1ed96e5f3cce5a0d62e81419cd4d9c32f478d2913b6fe2a199f6446"},{"version":"a6a5edb26bbc5319a89418e10393eb4f2f61319678b36dcd6394f4963626becf","signature":"5d0aa813eab35a144b4a18ce7beb91d9f22e61452f89b89cf892b404c810804e"},{"version":"17b09eb510cb668276e7436893c1419927f032eddcf579a349b42cb722c9c4d3","signature":"30bb526fbe0a8035ee3a97f62a7a15e126f5f3b4049f306ab134cca27fdbd877"},"ac607c31d42e0aeadc871af07a970af6e76295d63a89d78b5cb8ca27cfea1c8f",{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"3a77ffcd5fccbfeeb51ae6b89047dc3658a172db8038782c8b06d367bd63360d","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"7bcb15e7c7cc0700073c85df48e2ffaa178f193b87e5a00b3eae3dac6fdcf18f","signature":"5d36df79871ce6b50ba986cabef382fa5727402ffadc2f6e75eafbc71f3000e1"},{"version":"d593f9b187455fdf42acba09680d4a16247015f618d41092b6eaf29a9ff3bc9e","signature":"f281d14d888f10a1131ba9da34445667a044737805d87cd4b1854219abce4814"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},"0037b0b3380948406c77421bec158bf7cfbca2ec515e04d3739cc5b486b2c5c4","7d9746262041fff9f56e7bfdc4002aa778b31802a4a3a7e88bb02f738186ba2b","cd7918c44d49973232c82a59d7e2fc99101a9d8df48eecb8ffb74b4ec9f03b7f","43c74ff4793d3f39ae5425d40ce993bc7c1587c340d57174f6e39b2322042aed","1d3d8f49c18ff44b8eafec5c28c67e3857e5b248f33e124b520a3ad5eddd73a0","3a3ee5c3cc2042b106a322c9585e2ed18f4092df796e0dd04abfe72b5f3db612","9f92365b21a12a8f9b0e1477b43c426d9a35b0330ebb09737f51815b41d0ab15","1cc0ee07534c288517bebef6046fe23fef2e2a7aa54ecdc7607cc5f09f5c7267","6216d6b951a28da6416554cb33d2337b2e42de4e0dc0410f1904dd334c5524e8","49b35c9171111aad770a01e3114523cba5aba348d863a4bfb84b92a46434b81b","dd460f019b71074c979aac0f415cfe6723c067629423bd665f696b4de49593d0","bd26ca4c5ff3ca39fb0dadb511926c397c3466458e7e117f0b6c5ddd9dcd5a88","b912aaa6449f0fc33a28fe0560ac77186afea745f93a7b9b55405309c3f331af","97f315672e8bc8fef3d2991b1f06ff5860fa8185b952ac0d648f05633b25835d","2ca8195a4bd7534233df328b9a8363001068fea513f5c9546c42e6c2f38d1596","53cd4ba4cff7857d22d822f45d996c83cbdae8e601ee63a3b2c80dbee3f5782b","f289516267bb1a806b883ffb1549cc016598f89e6aa0a3d31d0db6c6c1fa9473","a27a60405eedf0870ad380feb0f170a012a0c322aa3ca89004fda5cce6c59bfd","19ed885da368a9bae375220d33479f966fe59ef4296e7cf5f1a7dc1784b1e2eb",{"version":"220ae7ac6878340171934d6c237ceacf2bd9b02a1fedb0cfcb34e8979b3e9e84","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","signature":"da14a67372982ca6e605fea114900b492b3316618581634e0ce72afbcb09baca"},{"version":"8bce268aaa7f883029138a7138bf3655f976a414adc00fa0af9152321f80dfd7","signature":"ff972b31978df36bf5bea6e1d53e099af1f477227829093ccd9c9ce68298c739"},{"version":"69ecea2aaf22da7ce7d647ad29c8f7b783f098d07a1953c28a491ec38b6d7e9d","signature":"1365572ec08ff4e77e73be4a664ff9e31389e7a0d0798692c519ac74c0f746d4"},{"version":"ddae87121b9cdb5b07b8be308c1cb9e80d44a0b053af7c613f03761db3eae903","signature":"81e01a920a089e44a3c69249b4ea2d2ccda445e3ef763cdece2ab57104e5d282"},"467220c0854e91341b8efd75ae59759cbc518dc1fd87c07fb71699f2580f6a91",{"version":"34904e61f7bcde52f7161922804c34ad785ea2f2431b994c43ad9178611db857","signature":"fe23f4b686e191a57f63331b1016a7c543e2f86cd96e678d9034ffa71f777ba3"},"9f516737132195476737f2113aa684138738d1285a8bc4d36f403fdcb220fb35","947ce778adc2efb03431cf740955df030620dd160bf6176c0a6e414e57d1423e","780821233ebeb2dd4134de92da1a24f5f56bcc558a2e0dddf76b7c5dd572e20d",{"version":"38a6de73d94fddd9e0c6debc7d8790d1050b8b3c23c9a71865de74c26d31b83d","signature":"55bb18d80ab4836734d6b6075750b673bec340bcaed10fed842407a1fdeb3657"},{"version":"3a14e17beb52aaf8f037bbeff8c0479407bb5893e8f55407143430cda8ef96aa","signature":"b52dcd199c97746007e4589749483d8b943e6bac0bbf6a90c0b9c7be86f9b793"},{"version":"e389f6f63acbbf67132e3bb8c2780884bc4769abe8e19f18a45418e5af21e08b","signature":"fdfbd78f7f5c54884fc2efd20efbd81968b887f3335c974c94dc3db6dd58c02f"},{"version":"abed2fcecfc488c97265276567a7eaeac7acb0abf954ab6fd6ccfbab2243b3e5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","c5a251297fd8eeb861c0e98430de6ea5099e8febac0985edcf5d75feb4c6ce27",{"version":"fd66a97fb95c2ba224478a122a335c2d89202bc5b989a2d58db6aae3db2f85ce","signature":"776e8ea041798d892337df5348635cfcbc1fe9bad68b87d2a8a6f6cbacbbd72b"},{"version":"7adc736dd362f3694bfa0ead421710e99a78f81ba82ca176f190f95d452ea921","signature":"9c60c89de612b6471ab99cd4b57bb1e2b3b5821d9cf81723838d6c8324ed2c36"},"ddd578018a259d1c494c834bdd8707769d07d1eb64f87f5217560cd2181b9e93","955133b47df2272da61dbb50fda84b0e0732d96f5614a373718719b4bc429641","3846d0dcf468a1d1a07e6d00eaa37ec542956fb5fe0357590a6407af20d2ff90","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"49026435d21e3d7559d723af3ae48f73ec28f9cba651b41bd2ac991012836122","affectsGlobalScope":true},"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"b6a4a51bc749ad882c33d98563ff5a94716ca884bfde949a8c97bad530e4ee2c","affectsGlobalScope":true},"16b872cf5432818bdbf405428b4a1d77bb2a7ab908e8bd6609f9a541cea92f81","fe39ceafa361b6d339b518936275eff89a77e7dfe92f2efa5fb97abf9a95ca49",{"version":"4009dd21843fe4a62d1d97b584a2937ca9f045df6fbd65c8b264d8dd04b656fd","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","c9e6ea53a25729dbb5b5bb6960db4387df2f8e88add9cbf36b6ff590481134f9","3e95e6310d49db6d575ac6c2896c02761426aa5aab0b18169f971151c709b770","7eb0662b995994db248290a0f0a1d8ed685991a162ff9eb4dee36f099cccd0d9","bea5c9fc0843a6961411ab4a04df856a8372448bc0d180da0c3a054ff31044b8","715873cecbfcebb49f293f0521bd0955d6298486e2eeb9c7bbf5e9f20a6ed152","c6cf9428f45f3d78b07df7d7aab1569994c177d36549e3a962f952d89f026bc4",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"6c7b9d2139abd8f2e83ed8fa018c3799ab3187755a6665621feb6e93d3429ac3","affectsGlobalScope":true},"a019c9782ea4e21c83881c780cebce8ad86e3f78122619336eacbd87e47fe674","021ca24be8eb8c46f99b4e03ebf872931f590c9b07b88d715c68bd30495b6c44","5899ab1898582115c432cccef063298f75477bf2cebe5473360043fddd67bcc6","6b97f4106d72ae6b4ebf4e46d2fe90f4d04dd04b3dbff6e294572440a428209d","e3baa0c5780c2c805ec33a999722a2f740b572eb3746fd0a5f93a0a5c3dbf7f6","48fedd2f8549a2ae7e62f30fdb015779c2a7b536760730c5269406cd3d17cab2",{"version":"089867511b37a534ae71f3d9bc97acc0b925b7f5dbec113f98c4b49224c694eb","affectsGlobalScope":true},"c874bfffe38a94b129077eaba4e26575972d545d5d04cd64e90c02d2c029ead6","f5ce35485541e817c2d4105d3eb78e3e538bbb009515ed014694363fa3e94ceb","323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c",{"version":"bd88055918cf8bf30ad7c9269177f7ebeafd4c5f0d28919edccd1c1d24f7e73c","affectsGlobalScope":true},{"version":"4ee9304173804c2c6dff4fcb8ad900619a4078b30d37f7e455236836e8e87a45","affectsGlobalScope":true},"ea3ab3727cd6c222d94003ecafa30e8550c61eadcdabbf59514aee76e86211a5","d3cdd41693c5ed6bec4f1a1c399d9501372b14bd341bc46eedacf2854c5df5a7","2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","48dab0d6e633b8052e7eaa0efb0bb3d58a733777b248765eafcb0b0349439834","d3e22aaa84d935196f465fff6645f88bb41352736c3130285eea0f2489c5f183","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","cdaaf046791d7d588f28f32197c5d6acc43343e62540a67eed194c9c20535fdc","4b1ff655bd8edd879dd4f04f15338ce0109f58ccb424165d44fa07e7ea39c4bf",{"version":"6fa61015444e843013443f2e5ca6bee5f033cbf361f953fd932abb0c029b73b2","affectsGlobalScope":true},{"version":"300f8e9de0b0c3482be3e749462b6ebc3dab8a316801f1da0def94aed0cd2018","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","24b8c93eb91a64a6fbb877a295cfac4c10aa4660599970c954a99d33697534a3","76a89af04f2ba1807309320dab5169c0d1243b80738b4a2005989e40a136733e","c045b664abf3fc2a4750fa96117ab2735e4ed45ddd571b2a6a91b9917e231a02",{"version":"ca619678b887ae262316673b55bb358c517593d3b6b96c1271972716c699da32","affectsGlobalScope":true},{"version":"0c312a7c5dec6c616f754d3a4b16318ce8d1cb912dfb3dfa0e808f45e66cbb21","affectsGlobalScope":true},"d1ef1d8516286380fd0a6f498f1650d374a8cb5f03d91633b6124e4fb8fb131d","fecdf44bec4ee9c5188e5f2f58c292c9689c02520900dceaaa6e76594de6da90","2641e5e19268b6f5038ad48a6e2598965301df8a77c48c99d8df760a6a154204",{"version":"6a4a80787c57c10b3ea8314c80d9cc6e1deb99d20adca16106a337825f582420","affectsGlobalScope":true},"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a","fedd311d427fdafac411b4e0edc0d1014668853679e021e04717a6de45ff5c0c","2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed",{"version":"50072f976cfa86af1a3044f55cd729d992abe39222d2f6cdf929266c77a42b0b","affectsGlobalScope":true},"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","34118be360cdd3381bbebbfd4b093c394460c8fc5df40688d58f45d86ab1448b","104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","5c45abf1e13e4463eacfd5dedda06855da8748a6a6cb3334f582b52e219acc04",{"version":"5c0aca385504ae10a42d367e71b6ca644f5012c56568a23495f44d1868e0a5f7","signature":"cdb9a6bec80e1b795ce332c1ce77969dd94d800d45da3b25253d5fcce74f53ae"}],"root":[60,613,614,618,619,718],"options":{"declaration":false,"declarationMap":false,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSourceMap":true,"inlineSources":true,"module":7,"noEmitOnError":false,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"outDir":"../../../..","skipLibCheck":true,"sourceMap":false,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":false},"fileIdsList":[[251,350,437],[251,437],[249,251,259,391,437],[249,251,437],[249,251,259,437],[249,251,316,437],[249,251,252,258,259,317,318,437],[249,251,258,259,315,316,437],[249,251,252,437],[437],[249,250,437],[251,254,437,608],[251,252,253,437],[251,253,254,437,609],[249,251,252,254,256,437],[251,291,292,437],[251,293,437],[249,251,253,254,291,437],[298,437],[291,437],[291,292,293,294,295,296,297,437],[437,673,707,715],[437,673,707],[437,670,673,707,709,710,711],[437,710,712,714,716],[437,621],[437,657],[437,658,663,691],[437,659,670,671,678,688,699],[437,659,660,670,678],[437,661,700],[437,662,663,671,679],[437,663,688,696],[437,664,666,670,678],[437,665],[437,666,667],[437,670],[437,668,670],[437,657,670],[437,670,671,672,688,699],[437,670,671,672,685,688,691],[437,655,704],[437,666,670,673,678,688,699],[437,670,671,673,674,678,688,696,699],[437,673,675,688,696,699],[437,621,622,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706],[437,670,676],[437,677,699,704],[437,666,670,678,688],[437,679],[437,680],[437,657,681],[437,682,698,704],[437,683],[437,684],[437,670,685,686],[437,685,687,700,702],[437,658,670,688,689,690,691],[437,658,688,690],[437,688,689],[437,691],[437,692],[437,657,688],[437,670,694,695],[437,694,695],[437,663,678,688,696],[437,697],[437,678,698],[437,658,673,684,699],[437,663,700],[437,688,701],[437,677,702],[437,703],[437,658,663,670,672,681,688,699,702,704],[437,688,705],[437,671,688,707,708],[437,673,707,708,713],[251,373,374,437],[251,256,258,277,374,437],[251,375,376,377,437],[379,437],[375,376,377,378,437],[251,258,437],[251,258,277,304,437],[251,354,355,359,364,437],[366,437],[354,355,365,437],[251,258,259,277,285,304,416,417,418,437],[251,416,419,437],[425,437],[416,417,418,419,420,421,422,423,424,437],[249,251,259,277,416,417,437],[249,251,416,418,437],[249,251,259,416,417,418,437],[251,258,416,418,437],[389,437],[386,387,388,437],[251,277,386,437],[251,387,437],[251,258,277,392,427,437],[251,437,552],[251,258,277,392,427,436,437,551],[251,437,551,552,553],[437,555],[437,551,552,553,554],[437,533],[437,531,532],[251,254,258,277,285,299,437],[249,251,277,300,437],[300,437],[303,437],[300,301,302,437],[435,437],[251,277,437],[251,252,310,433,437],[249,251,277,437],[431,432,433,434,437],[322,437],[251,320,437],[320,321,437],[327,437],[251,285,319,437],[251,324,437],[319,437],[324,325,326,437],[249,251,260,261,437],[251,259,277,437],[284,437],[261,278,279,280,281,282,283,437],[277,437],[437,445],[437,442,443,444],[358,437],[356,357,437],[251,356,437],[437,586],[277,437,580,581],[277,437,582],[277,437,581,582],[437,582],[249,251,277,437,580,582],[251,437,581],[437,580,581,582,583,584,585],[262,437],[276,437],[262,263,264,265,266,267,268,269,270,271,272,273,274,275,437],[363,437],[251,277,360,437],[251,361,437],[360,361,362,437],[251,277,319,351,437],[251,367,437],[249,251,258,277,323,339,350,437],[251,259,277,304,319,351,437],[251,339,351,352,353,368,369,437],[372,437],[351,352,353,368,369,370,371,437],[251,277,427,428,429,436,437,516],[251,277,299,428,437],[249,251,258,277,299,304,437],[251,290,428,429,430,437,517,518,519],[437,521],[428,429,430,437,517,518,519,520],[251,258,286,437],[251,286,287,437],[289,437],[286,287,288,437],[249,251,258,259,260,277,285,437],[251,437,446],[251,437,439,446,447],[437,515],[251,437,440],[251,437,439],[249,251,277,437,438],[251,437,438],[437,438,439,440,441,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514],[251,277,299,305,437],[251,299,306,437],[249,251,253,254,259,277,299,304,437],[299,437],[309,437],[305,306,307,308,437],[251,259,285,437],[437,529],[251,258,277,392,436,437,523],[249,251,258,277,427,436,437],[251,437,523,524,525,526,527],[437,523,524,525,526,527,528],[251,437,523],[348,437],[251,258,344,437],[251,341,342,343,344,345,346,437],[341,342,343,344,345,346,347,437],[251,285,437],[251,259,277,285,339,437],[338,437],[249,251,256,258,277,312,313,437],[251,258,277,311,312,314,329,437],[251,314,329,330,331,332,333,334,335,437],[249,251,277,311,437],[251,312,437],[311,312,313,314,329,330,331,332,333,334,335,336,337,437],[251,258,277,311,437],[251,258,311,437],[251,258,259,277,311,312,313,314,319,323,328,437],[249,251,277,311,312,437],[249,251,285,304,319,350,437,561],[437,567],[251,258,304,437,562],[251,437,561,562],[251,437,563,564],[251,285,319,437,561,562,563],[437,561,562,563,564,565,566],[251,258,277,437,539,540,541],[437,548],[251,277,437,541],[437,540,541,542,543,544,545,546,547],[251,258,259,277,427,437,540,541,542],[251,437,542,543,544,545,546],[251,258,277,437],[404,437],[249,277,437],[383,384,385,393,394,395,396,397,398,399,400,401,402,403,437],[251,256,384,437],[251,258,277,319,383,384,385,390,395,396,437],[251,392,394,437],[251,277,395,437],[249,251,384,437],[249,251,277,384,393,437],[251,384,437],[251,383,385,393,394,395,396,397,398,399,400,401,402,437],[249,251,256,258,277,304,384,394,397,437],[249,251,258,277,304,319,323,328,437],[437,538],[437,535,536,537],[251,258,277,323,437,534,535],[251,437,536],[437,597],[437,587,588,589,590,591,592,593,595,596],[251,437,587],[249,251,277,323,437,587],[249,251,258,277,304,317,323,427,437,587],[251,437,588,589,590,591,592,593,594],[61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,117,118,119,120,121,122,123,124,125,126,127,128,130,131,132,133,134,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,181,182,184,193,195,196,197,198,199,200,202,203,205,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,437],[106,437],[62,65,437],[64,437],[64,65,437],[61,62,63,65,437],[62,64,65,222,437],[65,437],[61,64,106,437],[64,65,222,437],[64,230,437],[62,64,65,437],[74,437],[97,437],[118,437],[64,65,106,437],[65,113,437],[64,65,106,124,437],[64,65,124,437],[65,165,437],[65,106,437],[61,65,183,437],[61,65,184,437],[206,437],[190,192,437],[201,437],[190,437],[61,65,183,190,191,437],[183,184,192,437],[204,437],[61,65,190,191,192,437],[63,64,65,437],[61,65,437],[62,64,184,185,186,187,437],[106,184,185,186,187,437],[184,186,437],[64,185,186,188,189,193,437],[61,64,437],[65,208,437],[66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,107,108,109,110,111,112,114,115,116,117,118,119,120,121,122,123,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,437],[194,437],[437,632,636,699],[437,632,688,699],[437,627],[437,629,632,696,699],[437,678,696],[437,707],[437,627,707],[437,629,632,678,699],[437,624,625,628,631,658,670,688,699],[437,624,630],[437,628,632,658,691,699,707],[437,658,707],[437,648,658,707],[437,626,627,707],[437,632],[437,626,627,628,629,630,631,632,633,634,636,637,638,639,640,641,642,643,644,645,646,647,649,650,651,652,653,654],[437,632,639,640],[437,630,632,640,641],[437,631],[437,624,627,632],[437,632,636,640,641],[437,636],[437,630,632,635,699],[437,624,629,630,632,636,639],[437,658,688],[437,627,632,648,658,704,707],[59,437],[59,252,437,618,620,680,699,717],[59,437,612],[59,251,252,256,437],[59,251,437,610,616],[59,251,252,253,254,256,414,427,437,516,606,607,609],[59,256,412,414,437,574,578,605],[59,251,252,290,310,339,412,437],[59,251,252,256,290,310,339,349,350,380,382,405,407,409,411,437],[59,251,252,405,407,437],[59,251,252,256,405,437],[59,256,437,577],[59,437,577],[59,251,252,405,437],[59,256,437,573],[59,251,252,290,367,426,427,437,522,530,549,573],[59,251,252,256,290,367,409,411,426,427,437,522,530,549,556,558,560,568,572,659],[59,251,437,598,604],[59,251,252,310,373,382,437,598,603],[59,256,437,604],[59,251,253,437,571],[59,251,253,437,571,602],[59,251,256,409,411,437],[59,251,437],[59,254,437,612,617],[59,254,437,610,612],[717],[251],[256],[409],[256,409,427,568,572],[603],[253],[256,409]],"referencedMap":[[608,1],[350,2],[392,3],[258,2],[316,2],[315,4],[260,5],[391,6],[319,7],[259,2],[318,2],[317,8],[253,9],[252,4],[607,10],[251,11],[250,10],[427,4],[609,12],[254,13],[616,14],[256,15],[620,2],[293,16],[295,10],[294,17],[292,18],[299,19],[297,20],[298,21],[291,10],[296,20],[716,22],[715,23],[712,24],[717,25],[713,10],[708,10],[621,26],[622,26],[657,27],[658,28],[659,29],[660,30],[661,31],[662,32],[663,33],[664,34],[665,35],[666,36],[667,36],[669,37],[668,38],[670,39],[671,40],[672,41],[656,42],[706,10],[673,43],[674,44],[675,45],[707,46],[676,47],[677,48],[678,49],[679,50],[680,51],[681,52],[682,53],[683,54],[684,55],[685,56],[686,56],[687,57],[688,58],[690,59],[689,60],[691,61],[692,62],[693,63],[694,64],[695,65],[696,66],[697,67],[698,68],[699,69],[700,70],[701,71],[702,72],[703,73],[704,74],[705,75],[710,10],[711,10],[709,76],[714,77],[623,10],[437,10],[375,78],[377,2],[376,79],[374,2],[378,80],[380,81],[379,82],[355,83],[354,84],[365,85],[367,86],[366,87],[416,2],[419,88],[420,89],[426,90],[425,91],[418,92],[424,93],[423,94],[421,93],[422,94],[417,95],[390,96],[389,97],[387,98],[388,99],[386,4],[553,100],[551,101],[552,102],[554,103],[556,104],[555,105],[531,10],[532,10],[534,106],[533,107],[300,108],[301,109],[302,110],[304,111],[303,112],[436,113],[433,114],[432,4],[434,115],[431,116],[435,117],[323,118],[320,114],[321,119],[322,120],[328,121],[324,122],[325,123],[326,124],[327,125],[281,126],[282,4],[279,4],[283,127],[285,128],[284,129],[261,4],[280,114],[278,114],[442,130],[446,131],[445,132],[444,10],[443,10],[359,133],[358,134],[356,114],[357,135],[587,136],[582,137],[585,138],[584,139],[580,140],[581,141],[583,142],[586,143],[262,10],[263,144],[270,144],[271,144],[272,10],[264,10],[277,145],[265,144],[273,4],[266,144],[276,146],[269,10],[267,10],[275,10],[268,2],[274,10],[364,147],[360,114],[361,148],[362,149],[363,150],[371,151],[369,2],[353,2],[368,152],[351,153],[352,154],[370,155],[373,156],[372,157],[517,158],[429,2],[430,159],[519,2],[518,2],[428,160],[520,161],[522,162],[521,163],[287,164],[288,165],[290,166],[289,167],[286,168],[447,169],[449,170],[516,171],[450,10],[451,10],[452,10],[453,10],[454,10],[455,10],[456,10],[457,10],[458,10],[459,10],[460,10],[461,10],[462,10],[463,10],[464,10],[465,10],[466,10],[467,10],[468,10],[469,10],[470,10],[471,10],[472,10],[473,10],[474,10],[475,10],[476,10],[477,10],[478,10],[479,10],[480,10],[482,10],[481,10],[483,10],[484,10],[485,10],[486,10],[487,10],[488,10],[489,10],[490,10],[491,10],[492,10],[493,10],[494,10],[495,10],[496,10],[497,10],[498,10],[499,10],[500,10],[501,10],[502,10],[503,10],[504,10],[505,10],[506,10],[507,10],[508,10],[509,10],[510,10],[511,10],[512,10],[513,10],[514,10],[438,10],[441,172],[440,173],[439,174],[448,175],[515,176],[306,177],[307,178],[305,179],[308,180],[310,181],[309,182],[526,183],[530,184],[527,2],[524,185],[523,186],[528,187],[529,188],[525,189],[341,2],[342,2],[343,2],[349,190],[345,191],[347,192],[348,193],[346,194],[344,195],[339,196],[332,2],[331,2],[314,197],[330,198],[336,199],[312,200],[337,201],[311,10],[338,202],[334,203],[335,203],[333,204],[329,205],[313,206],[562,207],[568,208],[563,209],[564,210],[565,211],[566,212],[567,213],[561,4],[542,214],[549,215],[546,216],[548,217],[543,218],[547,219],[540,2],[545,216],[544,220],[541,10],[405,221],[384,222],[404,223],[383,114],[398,2],[400,114],[393,224],[397,225],[395,226],[396,227],[399,228],[394,229],[401,2],[385,230],[403,231],[402,232],[535,233],[539,234],[538,235],[536,236],[537,237],[598,238],[597,239],[594,114],[590,2],[592,2],[591,240],[593,240],[589,241],[588,242],[595,243],[596,240],[249,244],[222,10],[200,245],[198,245],[248,246],[213,247],[212,247],[113,248],[64,249],[220,248],[221,248],[223,250],[224,248],[225,251],[124,252],[226,248],[197,248],[227,248],[228,253],[229,248],[230,247],[231,254],[232,248],[233,248],[234,248],[235,248],[236,247],[237,248],[238,248],[239,248],[240,248],[241,255],[242,248],[243,248],[244,248],[245,248],[246,248],[63,246],[66,251],[67,251],[68,251],[69,251],[70,251],[71,251],[72,251],[73,248],[75,256],[76,251],[74,251],[77,251],[78,251],[79,251],[80,251],[81,251],[82,251],[83,248],[84,251],[85,251],[86,251],[87,251],[88,251],[89,248],[90,251],[91,251],[92,251],[93,251],[94,251],[95,251],[96,248],[98,257],[97,251],[99,251],[100,251],[101,251],[102,251],[103,255],[104,248],[105,248],[119,258],[107,259],[108,251],[109,251],[110,248],[111,251],[112,251],[114,260],[115,251],[116,251],[117,251],[118,251],[120,251],[121,251],[122,251],[123,251],[125,261],[126,251],[127,251],[128,251],[129,248],[130,251],[131,262],[132,262],[133,262],[134,248],[135,251],[136,251],[137,251],[142,251],[138,251],[139,248],[140,251],[141,248],[143,251],[144,251],[145,251],[146,251],[147,251],[148,251],[149,248],[150,251],[151,251],[152,251],[153,251],[154,251],[155,251],[156,251],[157,251],[158,251],[159,251],[160,251],[161,251],[162,251],[163,251],[164,251],[165,251],[166,263],[167,251],[168,251],[169,251],[170,251],[171,251],[172,251],[173,248],[174,248],[175,248],[176,248],[177,248],[178,251],[179,251],[180,251],[181,251],[199,264],[247,248],[184,265],[183,266],[207,267],[206,268],[202,269],[201,268],[203,270],[192,271],[190,272],[205,273],[204,270],[191,10],[193,274],[106,275],[62,276],[61,251],[196,10],[188,277],[189,278],[186,10],[187,279],[185,251],[194,280],[65,281],[214,10],[215,10],[208,10],[211,247],[210,10],[216,10],[217,10],[209,282],[218,10],[219,10],[182,283],[195,284],[59,10],[57,10],[58,10],[10,10],[12,10],[11,10],[2,10],[13,10],[14,10],[15,10],[16,10],[17,10],[18,10],[19,10],[20,10],[3,10],[4,10],[21,10],[25,10],[22,10],[23,10],[24,10],[26,10],[27,10],[28,10],[5,10],[29,10],[30,10],[31,10],[32,10],[6,10],[36,10],[33,10],[34,10],[35,10],[37,10],[7,10],[38,10],[43,10],[44,10],[39,10],[40,10],[41,10],[42,10],[8,10],[48,10],[45,10],[46,10],[47,10],[49,10],[9,10],[50,10],[51,10],[52,10],[55,10],[53,10],[54,10],[1,10],[56,10],[639,285],[646,286],[638,285],[653,287],[630,288],[629,289],[652,290],[647,291],[650,292],[632,293],[631,294],[627,295],[626,296],[649,297],[628,298],[633,299],[634,10],[637,299],[624,10],[655,300],[654,299],[641,301],[642,302],[644,303],[640,304],[643,305],[648,290],[635,306],[636,307],[645,308],[625,309],[651,310],[619,311],[718,312],[611,313],[612,314],[255,311],[615,311],[617,315],[610,316],[257,311],[606,317],[410,311],[411,311],[557,311],[558,311],[381,311],[382,311],[340,318],[412,319],[406,320],[407,321],[575,311],[578,322],[576,323],[577,324],[415,311],[574,325],[550,326],[573,327],[599,328],[604,329],[579,311],[605,330],[569,311],[572,331],[600,311],[603,332],[413,311],[414,333],[408,311],[409,334],[559,311],[560,311],[601,311],[602,311],[570,311],[571,311],[60,311],[614,311],[618,335],[613,336]],"exportedModulesMap":[[608,1],[350,2],[392,3],[258,2],[316,2],[315,4],[260,5],[391,6],[319,7],[259,2],[318,2],[317,8],[253,9],[252,4],[607,10],[251,11],[250,10],[427,4],[609,12],[254,13],[616,14],[256,15],[620,2],[293,16],[295,10],[294,17],[292,18],[299,19],[297,20],[298,21],[291,10],[296,20],[716,22],[715,23],[712,24],[717,25],[713,10],[708,10],[621,26],[622,26],[657,27],[658,28],[659,29],[660,30],[661,31],[662,32],[663,33],[664,34],[665,35],[666,36],[667,36],[669,37],[668,38],[670,39],[671,40],[672,41],[656,42],[706,10],[673,43],[674,44],[675,45],[707,46],[676,47],[677,48],[678,49],[679,50],[680,51],[681,52],[682,53],[683,54],[684,55],[685,56],[686,56],[687,57],[688,58],[690,59],[689,60],[691,61],[692,62],[693,63],[694,64],[695,65],[696,66],[697,67],[698,68],[699,69],[700,70],[701,71],[702,72],[703,73],[704,74],[705,75],[710,10],[711,10],[709,76],[714,77],[623,10],[437,10],[375,78],[377,2],[376,79],[374,2],[378,80],[380,81],[379,82],[355,83],[354,84],[365,85],[367,86],[366,87],[416,2],[419,88],[420,89],[426,90],[425,91],[418,92],[424,93],[423,94],[421,93],[422,94],[417,95],[390,96],[389,97],[387,98],[388,99],[386,4],[553,100],[551,101],[552,102],[554,103],[556,104],[555,105],[531,10],[532,10],[534,106],[533,107],[300,108],[301,109],[302,110],[304,111],[303,112],[436,113],[433,114],[432,4],[434,115],[431,116],[435,117],[323,118],[320,114],[321,119],[322,120],[328,121],[324,122],[325,123],[326,124],[327,125],[281,126],[282,4],[279,4],[283,127],[285,128],[284,129],[261,4],[280,114],[278,114],[442,130],[446,131],[445,132],[444,10],[443,10],[359,133],[358,134],[356,114],[357,135],[587,136],[582,137],[585,138],[584,139],[580,140],[581,141],[583,142],[586,143],[262,10],[263,144],[270,144],[271,144],[272,10],[264,10],[277,145],[265,144],[273,4],[266,144],[276,146],[269,10],[267,10],[275,10],[268,2],[274,10],[364,147],[360,114],[361,148],[362,149],[363,150],[371,151],[369,2],[353,2],[368,152],[351,153],[352,154],[370,155],[373,156],[372,157],[517,158],[429,2],[430,159],[519,2],[518,2],[428,160],[520,161],[522,162],[521,163],[287,164],[288,165],[290,166],[289,167],[286,168],[447,169],[449,170],[516,171],[450,10],[451,10],[452,10],[453,10],[454,10],[455,10],[456,10],[457,10],[458,10],[459,10],[460,10],[461,10],[462,10],[463,10],[464,10],[465,10],[466,10],[467,10],[468,10],[469,10],[470,10],[471,10],[472,10],[473,10],[474,10],[475,10],[476,10],[477,10],[478,10],[479,10],[480,10],[482,10],[481,10],[483,10],[484,10],[485,10],[486,10],[487,10],[488,10],[489,10],[490,10],[491,10],[492,10],[493,10],[494,10],[495,10],[496,10],[497,10],[498,10],[499,10],[500,10],[501,10],[502,10],[503,10],[504,10],[505,10],[506,10],[507,10],[508,10],[509,10],[510,10],[511,10],[512,10],[513,10],[514,10],[438,10],[441,172],[440,173],[439,174],[448,175],[515,176],[306,177],[307,178],[305,179],[308,180],[310,181],[309,182],[526,183],[530,184],[527,2],[524,185],[523,186],[528,187],[529,188],[525,189],[341,2],[342,2],[343,2],[349,190],[345,191],[347,192],[348,193],[346,194],[344,195],[339,196],[332,2],[331,2],[314,197],[330,198],[336,199],[312,200],[337,201],[311,10],[338,202],[334,203],[335,203],[333,204],[329,205],[313,206],[562,207],[568,208],[563,209],[564,210],[565,211],[566,212],[567,213],[561,4],[542,214],[549,215],[546,216],[548,217],[543,218],[547,219],[540,2],[545,216],[544,220],[541,10],[405,221],[384,222],[404,223],[383,114],[398,2],[400,114],[393,224],[397,225],[395,226],[396,227],[399,228],[394,229],[401,2],[385,230],[403,231],[402,232],[535,233],[539,234],[538,235],[536,236],[537,237],[598,238],[597,239],[594,114],[590,2],[592,2],[591,240],[593,240],[589,241],[588,242],[595,243],[596,240],[249,244],[222,10],[200,245],[198,245],[248,246],[213,247],[212,247],[113,248],[64,249],[220,248],[221,248],[223,250],[224,248],[225,251],[124,252],[226,248],[197,248],[227,248],[228,253],[229,248],[230,247],[231,254],[232,248],[233,248],[234,248],[235,248],[236,247],[237,248],[238,248],[239,248],[240,248],[241,255],[242,248],[243,248],[244,248],[245,248],[246,248],[63,246],[66,251],[67,251],[68,251],[69,251],[70,251],[71,251],[72,251],[73,248],[75,256],[76,251],[74,251],[77,251],[78,251],[79,251],[80,251],[81,251],[82,251],[83,248],[84,251],[85,251],[86,251],[87,251],[88,251],[89,248],[90,251],[91,251],[92,251],[93,251],[94,251],[95,251],[96,248],[98,257],[97,251],[99,251],[100,251],[101,251],[102,251],[103,255],[104,248],[105,248],[119,258],[107,259],[108,251],[109,251],[110,248],[111,251],[112,251],[114,260],[115,251],[116,251],[117,251],[118,251],[120,251],[121,251],[122,251],[123,251],[125,261],[126,251],[127,251],[128,251],[129,248],[130,251],[131,262],[132,262],[133,262],[134,248],[135,251],[136,251],[137,251],[142,251],[138,251],[139,248],[140,251],[141,248],[143,251],[144,251],[145,251],[146,251],[147,251],[148,251],[149,248],[150,251],[151,251],[152,251],[153,251],[154,251],[155,251],[156,251],[157,251],[158,251],[159,251],[160,251],[161,251],[162,251],[163,251],[164,251],[165,251],[166,263],[167,251],[168,251],[169,251],[170,251],[171,251],[172,251],[173,248],[174,248],[175,248],[176,248],[177,248],[178,251],[179,251],[180,251],[181,251],[199,264],[247,248],[184,265],[183,266],[207,267],[206,268],[202,269],[201,268],[203,270],[192,271],[190,272],[205,273],[204,270],[191,10],[193,274],[106,275],[62,276],[61,251],[196,10],[188,277],[189,278],[186,10],[187,279],[185,251],[194,280],[65,281],[214,10],[215,10],[208,10],[211,247],[210,10],[216,10],[217,10],[209,282],[218,10],[219,10],[182,283],[195,284],[59,10],[57,10],[58,10],[10,10],[12,10],[11,10],[2,10],[13,10],[14,10],[15,10],[16,10],[17,10],[18,10],[19,10],[20,10],[3,10],[4,10],[21,10],[25,10],[22,10],[23,10],[24,10],[26,10],[27,10],[28,10],[5,10],[29,10],[30,10],[31,10],[32,10],[6,10],[36,10],[33,10],[34,10],[35,10],[37,10],[7,10],[38,10],[43,10],[44,10],[39,10],[40,10],[41,10],[42,10],[8,10],[48,10],[45,10],[46,10],[47,10],[49,10],[9,10],[50,10],[51,10],[52,10],[55,10],[53,10],[54,10],[1,10],[56,10],[639,285],[646,286],[638,285],[653,287],[630,288],[629,289],[652,290],[647,291],[650,292],[632,293],[631,294],[627,295],[626,296],[649,297],[628,298],[633,299],[634,10],[637,299],[624,10],[655,300],[654,299],[641,301],[642,302],[644,303],[640,304],[643,305],[648,290],[635,306],[636,307],[645,308],[625,309],[651,310],[619,311],[718,337],[255,311],[615,311],[617,338],[610,338],[257,311],[606,339],[412,340],[578,339],[574,325],[573,341],[604,342],[605,330],[572,343],[603,343],[414,344],[409,338],[60,311],[614,311],[618,338]],"semanticDiagnosticsPerFile":[608,350,392,258,316,315,260,391,319,259,318,317,253,252,607,251,250,427,609,254,616,256,620,293,295,294,292,299,297,298,291,296,716,715,712,717,713,708,621,622,657,658,659,660,661,662,663,664,665,666,667,669,668,670,671,672,656,706,673,674,675,707,676,677,678,679,680,681,682,683,684,685,686,687,688,690,689,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,710,711,709,714,623,437,375,377,376,374,378,380,379,355,354,365,367,366,416,419,420,426,425,418,424,423,421,422,417,390,389,387,388,386,553,551,552,554,556,555,531,532,534,533,300,301,302,304,303,436,433,432,434,431,435,323,320,321,322,328,324,325,326,327,281,282,279,283,285,284,261,280,278,442,446,445,444,443,359,358,356,357,587,582,585,584,580,581,583,586,262,263,270,271,272,264,277,265,273,266,276,269,267,275,268,274,364,360,361,362,363,371,369,353,368,351,352,370,373,372,517,429,430,519,518,428,520,522,521,287,288,290,289,286,447,449,516,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,482,481,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,438,441,440,439,448,515,306,307,305,308,310,309,526,530,527,524,523,528,529,525,341,342,343,349,345,347,348,346,344,339,332,331,314,330,336,312,337,311,338,334,335,333,329,313,562,568,563,564,565,566,567,561,542,549,546,548,543,547,540,545,544,541,405,384,404,383,398,400,393,397,395,396,399,394,401,385,403,402,535,539,538,536,537,598,597,594,590,592,591,593,589,588,595,596,249,222,200,198,248,213,212,113,64,220,221,223,224,225,124,226,197,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,63,66,67,68,69,70,71,72,73,75,76,74,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,98,97,99,100,101,102,103,104,105,119,107,108,109,110,111,112,114,115,116,117,118,120,121,122,123,125,126,127,128,129,130,131,132,133,134,135,136,137,142,138,139,140,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,199,247,184,183,207,206,202,201,203,192,190,205,204,191,193,106,62,61,196,188,189,186,187,185,194,65,214,215,208,211,210,216,217,209,218,219,182,195,59,57,58,10,12,11,2,13,14,15,16,17,18,19,20,3,4,21,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,55,53,54,1,56,639,646,638,653,630,629,652,647,650,632,631,627,626,649,628,633,634,637,624,655,654,641,642,644,640,643,648,635,636,645,625,651,718,612,617,610,606,411,558,382,412,407,578,577,574,573,604,605,572,603,414,409,560,602,571,618,613]},"version":"5.2.2"}
\ No newline at end of file
diff --git a/.angular/cache/17.0.7/vite/deps/_metadata.json b/.angular/cache/17.0.7/vite/deps/_metadata.json
index 8997a26..e850e08 100644
--- a/.angular/cache/17.0.7/vite/deps/_metadata.json
+++ b/.angular/cache/17.0.7/vite/deps/_metadata.json
@@ -1,191 +1,200 @@
{
- "hash": "f2c549cf",
- "browserHash": "6460fb2f",
+ "hash": "88038483",
+ "browserHash": "5ef39866",
"optimized": {
+ "@angular/animations": {
+ "src": "../../../../../node_modules/@angular/animations/fesm2022/animations.mjs",
+ "file": "@angular_animations.js",
+ "fileHash": "809a02fb",
+ "needsInterop": false
+ },
"@angular/common": {
"src": "../../../../../node_modules/@angular/common/fesm2022/common.mjs",
"file": "@angular_common.js",
- "fileHash": "59595a21",
+ "fileHash": "84f4329d",
"needsInterop": false
},
"@angular/common/http": {
"src": "../../../../../node_modules/@angular/common/fesm2022/http.mjs",
"file": "@angular_common_http.js",
- "fileHash": "2c57824c",
+ "fileHash": "76586bff",
"needsInterop": false
},
"@angular/common/locales/zh": {
"src": "../../../../../node_modules/@angular/common/locales/zh.mjs",
"file": "@angular_common_locales_zh.js",
- "fileHash": "bb85227d",
+ "fileHash": "6017edb4",
"needsInterop": false
},
"@angular/core": {
"src": "../../../../../node_modules/@angular/core/fesm2022/core.mjs",
"file": "@angular_core.js",
- "fileHash": "f3b036a6",
+ "fileHash": "f8c9868f",
"needsInterop": false
},
"@angular/forms": {
"src": "../../../../../node_modules/@angular/forms/fesm2022/forms.mjs",
"file": "@angular_forms.js",
- "fileHash": "895ea0a9",
+ "fileHash": "429061e0",
"needsInterop": false
},
"@angular/platform-browser": {
"src": "../../../../../node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs",
"file": "@angular_platform-browser.js",
- "fileHash": "3477a2a2",
+ "fileHash": "7b63e7a1",
"needsInterop": false
},
"@angular/platform-browser/animations": {
"src": "../../../../../node_modules/@angular/platform-browser/fesm2022/animations.mjs",
"file": "@angular_platform-browser_animations.js",
- "fileHash": "37b95759",
+ "fileHash": "f48204c1",
"needsInterop": false
},
"@angular/router": {
"src": "../../../../../node_modules/@angular/router/fesm2022/router.mjs",
"file": "@angular_router.js",
- "fileHash": "03f6ea04",
+ "fileHash": "52deb9fe",
+ "needsInterop": false
+ },
+ "ng-zorro-antd/breadcrumb": {
+ "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-breadcrumb.mjs",
+ "file": "ng-zorro-antd_breadcrumb.js",
+ "fileHash": "0cf8cf86",
"needsInterop": false
},
"ng-zorro-antd/button": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-button.mjs",
"file": "ng-zorro-antd_button.js",
- "fileHash": "10e41c15",
+ "fileHash": "ef565dc3",
"needsInterop": false
},
"ng-zorro-antd/carousel": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-carousel.mjs",
"file": "ng-zorro-antd_carousel.js",
- "fileHash": "e182053d",
+ "fileHash": "ce54ae7f",
"needsInterop": false
},
"ng-zorro-antd/checkbox": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-checkbox.mjs",
"file": "ng-zorro-antd_checkbox.js",
- "fileHash": "4236d5cd",
+ "fileHash": "dc1d3456",
+ "needsInterop": false
+ },
+ "ng-zorro-antd/dropdown": {
+ "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-dropdown.mjs",
+ "file": "ng-zorro-antd_dropdown.js",
+ "fileHash": "0b661e23",
"needsInterop": false
},
"ng-zorro-antd/form": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-form.mjs",
"file": "ng-zorro-antd_form.js",
- "fileHash": "e14855e4",
+ "fileHash": "f209f997",
"needsInterop": false
},
"ng-zorro-antd/grid": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-grid.mjs",
"file": "ng-zorro-antd_grid.js",
- "fileHash": "3f1a0f26",
+ "fileHash": "86145a31",
"needsInterop": false
},
"ng-zorro-antd/i18n": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-i18n.mjs",
"file": "ng-zorro-antd_i18n.js",
- "fileHash": "f58def7c",
+ "fileHash": "d7b1f1ed",
+ "needsInterop": false
+ },
+ "ng-zorro-antd/icon": {
+ "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-icon.mjs",
+ "file": "ng-zorro-antd_icon.js",
+ "fileHash": "612c8079",
"needsInterop": false
},
"ng-zorro-antd/input": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-input.mjs",
"file": "ng-zorro-antd_input.js",
- "fileHash": "039d5013",
- "needsInterop": false
- },
- "ng-zorro-antd/message": {
- "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-message.mjs",
- "file": "ng-zorro-antd_message.js",
- "fileHash": "ce0966f1",
- "needsInterop": false
- },
- "ng-zorro-antd/slider": {
- "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-slider.mjs",
- "file": "ng-zorro-antd_slider.js",
- "fileHash": "d5dd996a",
+ "fileHash": "f8038bf0",
"needsInterop": false
},
"ng-zorro-antd/layout": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-layout.mjs",
"file": "ng-zorro-antd_layout.js",
- "fileHash": "5184b024",
- "needsInterop": false
- },
- "ng-zorro-antd/breadcrumb": {
- "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-breadcrumb.mjs",
- "file": "ng-zorro-antd_breadcrumb.js",
- "fileHash": "a30d135a",
+ "fileHash": "ffd2dad7",
"needsInterop": false
},
"ng-zorro-antd/menu": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-menu.mjs",
"file": "ng-zorro-antd_menu.js",
- "fileHash": "8c79e727",
+ "fileHash": "fddf30bb",
"needsInterop": false
},
- "@angular/animations": {
- "src": "../../../../../node_modules/@angular/animations/fesm2022/animations.mjs",
- "file": "@angular_animations.js",
- "fileHash": "4591f2a0",
+ "ng-zorro-antd/message": {
+ "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-message.mjs",
+ "file": "ng-zorro-antd_message.js",
+ "fileHash": "b05b5e15",
"needsInterop": false
},
- "ng-zorro-antd/icon": {
- "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-icon.mjs",
- "file": "ng-zorro-antd_icon.js",
- "fileHash": "106b5b91",
+ "ng-zorro-antd/slider": {
+ "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-slider.mjs",
+ "file": "ng-zorro-antd_slider.js",
+ "fileHash": "13f32c53",
"needsInterop": false
},
"ng-zorro-antd/tabs": {
"src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-tabs.mjs",
"file": "ng-zorro-antd_tabs.js",
- "fileHash": "bb33851d",
+ "fileHash": "ff0f3616",
"needsInterop": false
},
- "ng-zorro-antd/drawer": {
- "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-drawer.mjs",
- "file": "ng-zorro-antd_drawer.js",
- "fileHash": "b3ae3835",
+ "ng-zorro-antd/tree": {
+ "src": "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-tree.mjs",
+ "file": "ng-zorro-antd_tree.js",
+ "fileHash": "4039d652",
"needsInterop": false
}
},
"chunks": {
- "chunk-2CQTWQUI": {
- "file": "chunk-2CQTWQUI.js"
+ "chunk-EISFVYMQ": {
+ "file": "chunk-EISFVYMQ.js"
},
- "chunk-WKTPWT5U": {
- "file": "chunk-WKTPWT5U.js"
+ "chunk-VMSZ6GWB": {
+ "file": "chunk-VMSZ6GWB.js"
},
- "chunk-CZEXXPIB": {
- "file": "chunk-CZEXXPIB.js"
+ "chunk-C33RY4ER": {
+ "file": "chunk-C33RY4ER.js"
},
- "chunk-5MZJ5XYV": {
- "file": "chunk-5MZJ5XYV.js"
+ "chunk-5AGOG3VI": {
+ "file": "chunk-5AGOG3VI.js"
},
- "chunk-6RXUTAFR": {
- "file": "chunk-6RXUTAFR.js"
+ "chunk-4OID6NLN": {
+ "file": "chunk-4OID6NLN.js"
},
- "chunk-QP2OUFNR": {
- "file": "chunk-QP2OUFNR.js"
+ "chunk-D4IIJHV7": {
+ "file": "chunk-D4IIJHV7.js"
},
- "chunk-FGZVIKKA": {
- "file": "chunk-FGZVIKKA.js"
+ "chunk-KUR2ZJJB": {
+ "file": "chunk-KUR2ZJJB.js"
},
- "chunk-T745QDCV": {
- "file": "chunk-T745QDCV.js"
+ "chunk-YGBKDI43": {
+ "file": "chunk-YGBKDI43.js"
},
- "chunk-XAGDQPFO": {
- "file": "chunk-XAGDQPFO.js"
+ "chunk-RSMXCRFI": {
+ "file": "chunk-RSMXCRFI.js"
+ },
+ "chunk-CZEXXPIB": {
+ "file": "chunk-CZEXXPIB.js"
},
- "chunk-D5ODNR6D": {
- "file": "chunk-D5ODNR6D.js"
+ "chunk-K4MSLGWI": {
+ "file": "chunk-K4MSLGWI.js"
},
- "chunk-55A2ZGND": {
- "file": "chunk-55A2ZGND.js"
+ "chunk-NOHVXVKW": {
+ "file": "chunk-NOHVXVKW.js"
},
- "chunk-E6XJDY45": {
- "file": "chunk-E6XJDY45.js"
+ "chunk-XDMUMVNQ": {
+ "file": "chunk-XDMUMVNQ.js"
},
- "chunk-6U656R5M": {
- "file": "chunk-6U656R5M.js"
+ "chunk-RJWK6JFA": {
+ "file": "chunk-RJWK6JFA.js"
},
"chunk-VOD2PKZN": {
"file": "chunk-VOD2PKZN.js"
@@ -193,29 +202,26 @@
"chunk-JGP5BR6B": {
"file": "chunk-JGP5BR6B.js"
},
- "chunk-WB57DPWD": {
- "file": "chunk-WB57DPWD.js"
+ "chunk-A7MWZ3GO": {
+ "file": "chunk-A7MWZ3GO.js"
},
- "chunk-D4IIJHV7": {
- "file": "chunk-D4IIJHV7.js"
- },
- "chunk-KMGBCF4T": {
- "file": "chunk-KMGBCF4T.js"
- },
- "chunk-VWMHIMW7": {
- "file": "chunk-VWMHIMW7.js"
- },
- "chunk-ZHMJ6SNN": {
- "file": "chunk-ZHMJ6SNN.js"
+ "chunk-Q646SFZH": {
+ "file": "chunk-Q646SFZH.js"
},
"chunk-6NZ2BEBG": {
"file": "chunk-6NZ2BEBG.js"
},
+ "chunk-G327EOBL": {
+ "file": "chunk-G327EOBL.js"
+ },
+ "chunk-DASIIA63": {
+ "file": "chunk-DASIIA63.js"
+ },
"chunk-IAC53GOD": {
"file": "chunk-IAC53GOD.js"
},
- "chunk-M5GY4FCO": {
- "file": "chunk-M5GY4FCO.js"
+ "chunk-SATQCK6M": {
+ "file": "chunk-SATQCK6M.js"
},
"chunk-ECVKT3ZH": {
"file": "chunk-ECVKT3ZH.js"
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-2CQTWQUI.js b/.angular/cache/17.0.7/vite/deps/chunk-2CQTWQUI.js
deleted file mode 100644
index 367ca55..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-2CQTWQUI.js
+++ /dev/null
@@ -1,720 +0,0 @@
-import {
- MenuService,
- NzIsMenuInsideDropDownToken,
- NzMenuModule
-} from "./chunk-WKTPWT5U.js";
-import {
- POSITION_MAP
-} from "./chunk-6RXUTAFR.js";
-import {
- slideMotion
-} from "./chunk-XAGDQPFO.js";
-import {
- NzNoAnimationDirective
-} from "./chunk-55A2ZGND.js";
-import {
- ConnectionPositionPair,
- Overlay,
- TemplatePortal
-} from "./chunk-6U656R5M.js";
-import {
- ESCAPE,
- hasModifierKey
-} from "./chunk-JGP5BR6B.js";
-import {
- NzButtonGroupComponent
-} from "./chunk-KMGBCF4T.js";
-import {
- NzConfigService,
- WithConfig
-} from "./chunk-ZHMJ6SNN.js";
-import {
- Directionality
-} from "./chunk-6NZ2BEBG.js";
-import {
- Platform
-} from "./chunk-IAC53GOD.js";
-import {
- InputBoolean
-} from "./chunk-M5GY4FCO.js";
-import {
- NgClass,
- NgStyle
-} from "./chunk-OSQBUYO6.js";
-import {
- BehaviorSubject,
- ChangeDetectionStrategy,
- ChangeDetectorRef,
- Component,
- Directive,
- EMPTY,
- ElementRef,
- EventEmitter,
- Host,
- Injectable,
- Input,
- NgModule,
- NgZone,
- Optional,
- Output,
- Renderer2,
- Subject,
- Subscription,
- TemplateRef,
- ViewChild,
- ViewContainerRef,
- ViewEncapsulation$1,
- __decorate,
- auditTime,
- combineLatest,
- distinctUntilChanged,
- filter,
- first,
- fromEvent,
- map,
- mapTo,
- merge,
- setClassMetadata,
- switchMap,
- takeUntil,
- ɵɵNgOnChangesFeature,
- ɵɵProvidersFeature,
- ɵɵStandaloneFeature,
- ɵɵclassProp,
- ɵɵdefineComponent,
- ɵɵdefineDirective,
- ɵɵdefineInjectable,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵelementEnd,
- ɵɵelementStart,
- ɵɵgetCurrentView,
- ɵɵinject,
- ɵɵlistener,
- ɵɵloadQuery,
- ɵɵnextContext,
- ɵɵprojection,
- ɵɵprojectionDef,
- ɵɵproperty,
- ɵɵqueryRefresh,
- ɵɵresetView,
- ɵɵrestoreView,
- ɵɵtemplate,
- ɵɵviewQuery
-} from "./chunk-FGESKT7O.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-dropdown.mjs
-function NzDropdownMenuComponent_ng_template_0_Template(rf, ctx) {
- if (rf & 1) {
- const _r2 = ɵɵgetCurrentView();
- ɵɵelementStart(0, "div", 0);
- ɵɵlistener("@slideMotion.done", function NzDropdownMenuComponent_ng_template_0_Template_div_animation_slideMotion_done_0_listener($event) {
- ɵɵrestoreView(_r2);
- const ctx_r1 = ɵɵnextContext();
- return ɵɵresetView(ctx_r1.onAnimationEvent($event));
- })("mouseenter", function NzDropdownMenuComponent_ng_template_0_Template_div_mouseenter_0_listener() {
- ɵɵrestoreView(_r2);
- const ctx_r3 = ɵɵnextContext();
- return ɵɵresetView(ctx_r3.setMouseState(true));
- })("mouseleave", function NzDropdownMenuComponent_ng_template_0_Template_div_mouseleave_0_listener() {
- ɵɵrestoreView(_r2);
- const ctx_r4 = ɵɵnextContext();
- return ɵɵresetView(ctx_r4.setMouseState(false));
- });
- ɵɵprojection(1);
- ɵɵelementEnd();
- }
- if (rf & 2) {
- const ctx_r0 = ɵɵnextContext();
- ɵɵclassProp("ant-dropdown-rtl", ctx_r0.dir === "rtl");
- ɵɵproperty("ngClass", ctx_r0.nzOverlayClassName)("ngStyle", ctx_r0.nzOverlayStyle)("@slideMotion", void 0)("@.disabled", !!(ctx_r0.noAnimation == null ? null : ctx_r0.noAnimation.nzNoAnimation))("nzNoAnimation", ctx_r0.noAnimation == null ? null : ctx_r0.noAnimation.nzNoAnimation);
- }
-}
-var _c0 = ["*"];
-var NZ_CONFIG_MODULE_NAME = "dropDown";
-var listOfPositions = [POSITION_MAP.bottomLeft, POSITION_MAP.bottomRight, POSITION_MAP.topRight, POSITION_MAP.topLeft];
-var _NzDropDownDirective = class _NzDropDownDirective {
- setDropdownMenuValue(key, value) {
- if (this.nzDropdownMenu) {
- this.nzDropdownMenu.setValue(key, value);
- }
- }
- constructor(nzConfigService, elementRef, overlay, renderer, viewContainerRef, platform) {
- this.nzConfigService = nzConfigService;
- this.elementRef = elementRef;
- this.overlay = overlay;
- this.renderer = renderer;
- this.viewContainerRef = viewContainerRef;
- this.platform = platform;
- this._nzModuleName = NZ_CONFIG_MODULE_NAME;
- this.overlayRef = null;
- this.destroy$ = new Subject();
- this.positionStrategy = this.overlay.position().flexibleConnectedTo(this.elementRef.nativeElement).withLockedPosition().withTransformOriginOn(".ant-dropdown");
- this.inputVisible$ = new BehaviorSubject(false);
- this.nzTrigger$ = new BehaviorSubject("hover");
- this.overlayClose$ = new Subject();
- this.nzDropdownMenu = null;
- this.nzTrigger = "hover";
- this.nzMatchWidthElement = null;
- this.nzBackdrop = false;
- this.nzClickHide = true;
- this.nzDisabled = false;
- this.nzVisible = false;
- this.nzOverlayClassName = "";
- this.nzOverlayStyle = {};
- this.nzPlacement = "bottomLeft";
- this.nzVisibleChange = new EventEmitter();
- }
- ngAfterViewInit() {
- if (this.nzDropdownMenu) {
- const nativeElement = this.elementRef.nativeElement;
- const hostMouseState$ = merge(fromEvent(nativeElement, "mouseenter").pipe(mapTo(true)), fromEvent(nativeElement, "mouseleave").pipe(mapTo(false)));
- const menuMouseState$ = this.nzDropdownMenu.mouseState$;
- const mergedMouseState$ = merge(menuMouseState$, hostMouseState$);
- const hostClickState$ = fromEvent(nativeElement, "click").pipe(map(() => !this.nzVisible));
- const visibleStateByTrigger$ = this.nzTrigger$.pipe(switchMap((trigger) => {
- if (trigger === "hover") {
- return mergedMouseState$;
- } else if (trigger === "click") {
- return hostClickState$;
- } else {
- return EMPTY;
- }
- }));
- const descendantMenuItemClick$ = this.nzDropdownMenu.descendantMenuItemClick$.pipe(filter(() => this.nzClickHide), mapTo(false));
- const domTriggerVisible$ = merge(visibleStateByTrigger$, descendantMenuItemClick$, this.overlayClose$).pipe(filter(() => !this.nzDisabled));
- const visible$ = merge(this.inputVisible$, domTriggerVisible$);
- combineLatest([visible$, this.nzDropdownMenu.isChildSubMenuOpen$]).pipe(map(([visible, sub]) => visible || sub), auditTime(150), distinctUntilChanged(), filter(() => this.platform.isBrowser), takeUntil(this.destroy$)).subscribe((visible) => {
- const element = this.nzMatchWidthElement ? this.nzMatchWidthElement.nativeElement : nativeElement;
- const triggerWidth = element.getBoundingClientRect().width;
- if (this.nzVisible !== visible) {
- this.nzVisibleChange.emit(visible);
- }
- this.nzVisible = visible;
- if (visible) {
- if (!this.overlayRef) {
- this.overlayRef = this.overlay.create({
- positionStrategy: this.positionStrategy,
- minWidth: triggerWidth,
- disposeOnNavigation: true,
- hasBackdrop: this.nzBackdrop && this.nzTrigger === "click",
- scrollStrategy: this.overlay.scrollStrategies.reposition()
- });
- merge(this.overlayRef.backdropClick(), this.overlayRef.detachments(), this.overlayRef.outsidePointerEvents().pipe(filter((e) => !this.elementRef.nativeElement.contains(e.target))), this.overlayRef.keydownEvents().pipe(filter((e) => e.keyCode === ESCAPE && !hasModifierKey(e)))).pipe(takeUntil(this.destroy$)).subscribe(() => {
- this.overlayClose$.next(false);
- });
- } else {
- const overlayConfig = this.overlayRef.getConfig();
- overlayConfig.minWidth = triggerWidth;
- }
- this.positionStrategy.withPositions([POSITION_MAP[this.nzPlacement], ...listOfPositions]);
- if (!this.portal || this.portal.templateRef !== this.nzDropdownMenu.templateRef) {
- this.portal = new TemplatePortal(this.nzDropdownMenu.templateRef, this.viewContainerRef);
- }
- this.overlayRef.attach(this.portal);
- } else {
- if (this.overlayRef) {
- this.overlayRef.detach();
- }
- }
- });
- this.nzDropdownMenu.animationStateChange$.pipe(takeUntil(this.destroy$)).subscribe((event) => {
- if (event.toState === "void") {
- if (this.overlayRef) {
- this.overlayRef.dispose();
- }
- this.overlayRef = null;
- }
- });
- }
- }
- ngOnDestroy() {
- this.destroy$.next(true);
- this.destroy$.complete();
- if (this.overlayRef) {
- this.overlayRef.dispose();
- this.overlayRef = null;
- }
- }
- ngOnChanges(changes) {
- const {
- nzVisible,
- nzDisabled,
- nzOverlayClassName,
- nzOverlayStyle,
- nzTrigger
- } = changes;
- if (nzTrigger) {
- this.nzTrigger$.next(this.nzTrigger);
- }
- if (nzVisible) {
- this.inputVisible$.next(this.nzVisible);
- }
- if (nzDisabled) {
- const nativeElement = this.elementRef.nativeElement;
- if (this.nzDisabled) {
- this.renderer.setAttribute(nativeElement, "disabled", "");
- this.inputVisible$.next(false);
- } else {
- this.renderer.removeAttribute(nativeElement, "disabled");
- }
- }
- if (nzOverlayClassName) {
- this.setDropdownMenuValue("nzOverlayClassName", this.nzOverlayClassName);
- }
- if (nzOverlayStyle) {
- this.setDropdownMenuValue("nzOverlayStyle", this.nzOverlayStyle);
- }
- }
-};
-_NzDropDownDirective.ɵfac = function NzDropDownDirective_Factory(t) {
- return new (t || _NzDropDownDirective)(ɵɵdirectiveInject(NzConfigService), ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(Overlay), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(ViewContainerRef), ɵɵdirectiveInject(Platform));
-};
-_NzDropDownDirective.ɵdir = ɵɵdefineDirective({
- type: _NzDropDownDirective,
- selectors: [["", "nz-dropdown", ""]],
- hostAttrs: [1, "ant-dropdown-trigger"],
- inputs: {
- nzDropdownMenu: "nzDropdownMenu",
- nzTrigger: "nzTrigger",
- nzMatchWidthElement: "nzMatchWidthElement",
- nzBackdrop: "nzBackdrop",
- nzClickHide: "nzClickHide",
- nzDisabled: "nzDisabled",
- nzVisible: "nzVisible",
- nzOverlayClassName: "nzOverlayClassName",
- nzOverlayStyle: "nzOverlayStyle",
- nzPlacement: "nzPlacement"
- },
- outputs: {
- nzVisibleChange: "nzVisibleChange"
- },
- exportAs: ["nzDropdown"],
- standalone: true,
- features: [ɵɵNgOnChangesFeature]
-});
-var NzDropDownDirective = _NzDropDownDirective;
-__decorate([WithConfig(), InputBoolean()], NzDropDownDirective.prototype, "nzBackdrop", void 0);
-__decorate([InputBoolean()], NzDropDownDirective.prototype, "nzClickHide", void 0);
-__decorate([InputBoolean()], NzDropDownDirective.prototype, "nzDisabled", void 0);
-__decorate([InputBoolean()], NzDropDownDirective.prototype, "nzVisible", void 0);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDropDownDirective, [{
- type: Directive,
- args: [{
- selector: "[nz-dropdown]",
- exportAs: "nzDropdown",
- host: {
- class: "ant-dropdown-trigger"
- },
- standalone: true
- }]
- }], () => [{
- type: NzConfigService
- }, {
- type: ElementRef
- }, {
- type: Overlay
- }, {
- type: Renderer2
- }, {
- type: ViewContainerRef
- }, {
- type: Platform
- }], {
- nzDropdownMenu: [{
- type: Input
- }],
- nzTrigger: [{
- type: Input
- }],
- nzMatchWidthElement: [{
- type: Input
- }],
- nzBackdrop: [{
- type: Input
- }],
- nzClickHide: [{
- type: Input
- }],
- nzDisabled: [{
- type: Input
- }],
- nzVisible: [{
- type: Input
- }],
- nzOverlayClassName: [{
- type: Input
- }],
- nzOverlayStyle: [{
- type: Input
- }],
- nzPlacement: [{
- type: Input
- }],
- nzVisibleChange: [{
- type: Output
- }]
- });
-})();
-var _NzContextMenuServiceModule = class _NzContextMenuServiceModule {
-};
-_NzContextMenuServiceModule.ɵfac = function NzContextMenuServiceModule_Factory(t) {
- return new (t || _NzContextMenuServiceModule)();
-};
-_NzContextMenuServiceModule.ɵmod = ɵɵdefineNgModule({
- type: _NzContextMenuServiceModule
-});
-_NzContextMenuServiceModule.ɵinj = ɵɵdefineInjector({});
-var NzContextMenuServiceModule = _NzContextMenuServiceModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzContextMenuServiceModule, [{
- type: NgModule
- }], null, null);
-})();
-var _NzDropDownADirective = class _NzDropDownADirective {
- constructor() {
- }
-};
-_NzDropDownADirective.ɵfac = function NzDropDownADirective_Factory(t) {
- return new (t || _NzDropDownADirective)();
-};
-_NzDropDownADirective.ɵdir = ɵɵdefineDirective({
- type: _NzDropDownADirective,
- selectors: [["a", "nz-dropdown", ""]],
- hostAttrs: [1, "ant-dropdown-link"],
- standalone: true
-});
-var NzDropDownADirective = _NzDropDownADirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDropDownADirective, [{
- type: Directive,
- args: [{
- selector: "a[nz-dropdown]",
- host: {
- class: "ant-dropdown-link"
- },
- standalone: true
- }]
- }], () => [], null);
-})();
-var _NzDropdownButtonDirective = class _NzDropdownButtonDirective {
- constructor(renderer, nzButtonGroupComponent, elementRef) {
- this.renderer = renderer;
- this.nzButtonGroupComponent = nzButtonGroupComponent;
- this.elementRef = elementRef;
- }
- ngAfterViewInit() {
- const parentElement = this.renderer.parentNode(this.elementRef.nativeElement);
- if (this.nzButtonGroupComponent && parentElement) {
- this.renderer.addClass(parentElement, "ant-dropdown-button");
- }
- }
-};
-_NzDropdownButtonDirective.ɵfac = function NzDropdownButtonDirective_Factory(t) {
- return new (t || _NzDropdownButtonDirective)(ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(NzButtonGroupComponent, 9), ɵɵdirectiveInject(ElementRef));
-};
-_NzDropdownButtonDirective.ɵdir = ɵɵdefineDirective({
- type: _NzDropdownButtonDirective,
- selectors: [["", "nz-button", "", "nz-dropdown", ""]],
- standalone: true
-});
-var NzDropdownButtonDirective = _NzDropdownButtonDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDropdownButtonDirective, [{
- type: Directive,
- args: [{
- selector: "[nz-button][nz-dropdown]",
- standalone: true
- }]
- }], () => [{
- type: Renderer2
- }, {
- type: NzButtonGroupComponent,
- decorators: [{
- type: Host
- }, {
- type: Optional
- }]
- }, {
- type: ElementRef
- }], null);
-})();
-var _NzDropdownMenuComponent = class _NzDropdownMenuComponent {
- onAnimationEvent(event) {
- this.animationStateChange$.emit(event);
- }
- setMouseState(visible) {
- this.mouseState$.next(visible);
- }
- setValue(key, value) {
- this[key] = value;
- this.cdr.markForCheck();
- }
- constructor(cdr, elementRef, renderer, viewContainerRef, nzMenuService, directionality, noAnimation) {
- this.cdr = cdr;
- this.elementRef = elementRef;
- this.renderer = renderer;
- this.viewContainerRef = viewContainerRef;
- this.nzMenuService = nzMenuService;
- this.directionality = directionality;
- this.noAnimation = noAnimation;
- this.mouseState$ = new BehaviorSubject(false);
- this.isChildSubMenuOpen$ = this.nzMenuService.isChildSubMenuOpen$;
- this.descendantMenuItemClick$ = this.nzMenuService.descendantMenuItemClick$;
- this.animationStateChange$ = new EventEmitter();
- this.nzOverlayClassName = "";
- this.nzOverlayStyle = {};
- this.dir = "ltr";
- this.destroy$ = new Subject();
- }
- ngOnInit() {
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- this.cdr.detectChanges();
- });
- this.dir = this.directionality.value;
- }
- ngAfterContentInit() {
- this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement), this.elementRef.nativeElement);
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- }
-};
-_NzDropdownMenuComponent.ɵfac = function NzDropdownMenuComponent_Factory(t) {
- return new (t || _NzDropdownMenuComponent)(ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(ViewContainerRef), ɵɵdirectiveInject(MenuService), ɵɵdirectiveInject(Directionality, 8), ɵɵdirectiveInject(NzNoAnimationDirective, 9));
-};
-_NzDropdownMenuComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzDropdownMenuComponent,
- selectors: [["nz-dropdown-menu"]],
- viewQuery: function NzDropdownMenuComponent_Query(rf, ctx) {
- if (rf & 1) {
- ɵɵviewQuery(TemplateRef, 7);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.templateRef = _t.first);
- }
- },
- exportAs: ["nzDropdownMenu"],
- standalone: true,
- features: [ɵɵProvidersFeature([
- MenuService,
- /** menu is inside dropdown-menu component **/
- {
- provide: NzIsMenuInsideDropDownToken,
- useValue: true
- }
- ]), ɵɵStandaloneFeature],
- ngContentSelectors: _c0,
- decls: 1,
- vars: 0,
- consts: [[1, "ant-dropdown", 3, "ngClass", "ngStyle", "nzNoAnimation", "mouseenter", "mouseleave"]],
- template: function NzDropdownMenuComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojectionDef();
- ɵɵtemplate(0, NzDropdownMenuComponent_ng_template_0_Template, 2, 7, "ng-template");
- }
- },
- dependencies: [NgClass, NgStyle, NzNoAnimationDirective],
- encapsulation: 2,
- data: {
- animation: [slideMotion]
- },
- changeDetection: 0
-});
-var NzDropdownMenuComponent = _NzDropdownMenuComponent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDropdownMenuComponent, [{
- type: Component,
- args: [{
- selector: `nz-dropdown-menu`,
- exportAs: `nzDropdownMenu`,
- animations: [slideMotion],
- providers: [
- MenuService,
- /** menu is inside dropdown-menu component **/
- {
- provide: NzIsMenuInsideDropDownToken,
- useValue: true
- }
- ],
- template: `
-
-
-
-
-
- `,
- preserveWhitespaces: false,
- encapsulation: ViewEncapsulation$1.None,
- changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [NgClass, NgStyle, NzNoAnimationDirective],
- standalone: true
- }]
- }], () => [{
- type: ChangeDetectorRef
- }, {
- type: ElementRef
- }, {
- type: Renderer2
- }, {
- type: ViewContainerRef
- }, {
- type: MenuService
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }, {
- type: NzNoAnimationDirective,
- decorators: [{
- type: Host
- }, {
- type: Optional
- }]
- }], {
- templateRef: [{
- type: ViewChild,
- args: [TemplateRef, {
- static: true
- }]
- }]
- });
-})();
-var _NzDropDownModule = class _NzDropDownModule {
-};
-_NzDropDownModule.ɵfac = function NzDropDownModule_Factory(t) {
- return new (t || _NzDropDownModule)();
-};
-_NzDropDownModule.ɵmod = ɵɵdefineNgModule({
- type: _NzDropDownModule,
- imports: [NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective, NzContextMenuServiceModule],
- exports: [NzMenuModule, NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective]
-});
-_NzDropDownModule.ɵinj = ɵɵdefineInjector({
- imports: [NzContextMenuServiceModule, NzMenuModule]
-});
-var NzDropDownModule = _NzDropDownModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDropDownModule, [{
- type: NgModule,
- args: [{
- imports: [NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective, NzContextMenuServiceModule],
- exports: [NzMenuModule, NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective]
- }]
- }], null, null);
-})();
-var LIST_OF_POSITIONS = [new ConnectionPositionPair({
- originX: "start",
- originY: "top"
-}, {
- overlayX: "start",
- overlayY: "top"
-}), new ConnectionPositionPair({
- originX: "start",
- originY: "top"
-}, {
- overlayX: "start",
- overlayY: "bottom"
-}), new ConnectionPositionPair({
- originX: "start",
- originY: "top"
-}, {
- overlayX: "end",
- overlayY: "bottom"
-}), new ConnectionPositionPair({
- originX: "start",
- originY: "top"
-}, {
- overlayX: "end",
- overlayY: "top"
-})];
-var _NzContextMenuService = class _NzContextMenuService {
- constructor(ngZone, overlay) {
- this.ngZone = ngZone;
- this.overlay = overlay;
- this.overlayRef = null;
- this.closeSubscription = Subscription.EMPTY;
- }
- create($event, nzDropdownMenuComponent) {
- this.close(true);
- const {
- x,
- y
- } = $event;
- if ($event instanceof MouseEvent) {
- $event.preventDefault();
- }
- const positionStrategy = this.overlay.position().flexibleConnectedTo({
- x,
- y
- }).withPositions(LIST_OF_POSITIONS).withTransformOriginOn(".ant-dropdown");
- this.overlayRef = this.overlay.create({
- positionStrategy,
- disposeOnNavigation: true,
- scrollStrategy: this.overlay.scrollStrategies.close()
- });
- this.closeSubscription = new Subscription();
- this.closeSubscription.add(nzDropdownMenuComponent.descendantMenuItemClick$.subscribe(() => this.close()));
- this.closeSubscription.add(this.ngZone.runOutsideAngular(() => merge(fromEvent(document, "click").pipe(
- filter((event) => !!this.overlayRef && !this.overlayRef.overlayElement.contains(event.target)),
- /** handle firefox contextmenu event **/
- filter((event) => event.button !== 2)
- ), fromEvent(document, "keydown").pipe(filter((event) => event.key === "Escape"))).pipe(first()).subscribe(() => this.ngZone.run(() => this.close()))));
- return this.overlayRef.attach(new TemplatePortal(nzDropdownMenuComponent.templateRef, nzDropdownMenuComponent.viewContainerRef));
- }
- close(clear = false) {
- if (this.overlayRef) {
- this.overlayRef.detach();
- if (clear) {
- this.overlayRef.dispose();
- }
- this.overlayRef = null;
- this.closeSubscription.unsubscribe();
- }
- }
-};
-_NzContextMenuService.ɵfac = function NzContextMenuService_Factory(t) {
- return new (t || _NzContextMenuService)(ɵɵinject(NgZone), ɵɵinject(Overlay));
-};
-_NzContextMenuService.ɵprov = ɵɵdefineInjectable({
- token: _NzContextMenuService,
- factory: _NzContextMenuService.ɵfac,
- providedIn: NzContextMenuServiceModule
-});
-var NzContextMenuService = _NzContextMenuService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzContextMenuService, [{
- type: Injectable,
- args: [{
- providedIn: NzContextMenuServiceModule
- }]
- }], () => [{
- type: NgZone
- }, {
- type: Overlay
- }], null);
-})();
-
-export {
- NzDropDownDirective,
- NzDropdownMenuComponent,
- NzDropDownModule
-};
-//# sourceMappingURL=chunk-2CQTWQUI.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-2CQTWQUI.js.map b/.angular/cache/17.0.7/vite/deps/chunk-2CQTWQUI.js.map
deleted file mode 100644
index c3a9bba..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-2CQTWQUI.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-dropdown.mjs"],
- "sourcesContent": ["import { __decorate } from 'tslib';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport * as i0 from '@angular/core';\nimport { EventEmitter, Directive, Input, Output, NgModule, Host, Optional, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Injectable } from '@angular/core';\nimport { Subject, BehaviorSubject, fromEvent, merge, EMPTY, combineLatest, Subscription } from 'rxjs';\nimport { mapTo, map, switchMap, filter, takeUntil, auditTime, distinctUntilChanged, first } from 'rxjs/operators';\nimport * as i1 from 'ng-zorro-antd/core/config';\nimport { WithConfig } from 'ng-zorro-antd/core/config';\nimport { POSITION_MAP } from 'ng-zorro-antd/core/overlay';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\nimport * as i2 from '@angular/cdk/overlay';\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport * as i3 from '@angular/cdk/platform';\nimport * as i1$2 from 'ng-zorro-antd/menu';\nimport { MenuService, NzIsMenuInsideDropDownToken, NzMenuModule } from 'ng-zorro-antd/menu';\nimport * as i1$1 from 'ng-zorro-antd/button';\nimport { NgClass, NgStyle } from '@angular/common';\nimport { slideMotion } from 'ng-zorro-antd/core/animation';\nimport * as i3$1 from 'ng-zorro-antd/core/no-animation';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport * as i2$1 from '@angular/cdk/bidi';\nfunction NzDropdownMenuComponent_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"@slideMotion.done\", function NzDropdownMenuComponent_ng_template_0_Template_div_animation_slideMotion_done_0_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onAnimationEvent($event));\n })(\"mouseenter\", function NzDropdownMenuComponent_ng_template_0_Template_div_mouseenter_0_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.setMouseState(true));\n })(\"mouseleave\", function NzDropdownMenuComponent_ng_template_0_Template_div_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.setMouseState(false));\n });\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"ant-dropdown-rtl\", ctx_r0.dir === \"rtl\");\n i0.ɵɵproperty(\"ngClass\", ctx_r0.nzOverlayClassName)(\"ngStyle\", ctx_r0.nzOverlayStyle)(\"@slideMotion\", undefined)(\"@.disabled\", !!(ctx_r0.noAnimation == null ? null : ctx_r0.noAnimation.nzNoAnimation))(\"nzNoAnimation\", ctx_r0.noAnimation == null ? null : ctx_r0.noAnimation.nzNoAnimation);\n }\n}\nconst _c0 = [\"*\"];\nconst NZ_CONFIG_MODULE_NAME = 'dropDown';\nconst listOfPositions = [POSITION_MAP.bottomLeft, POSITION_MAP.bottomRight, POSITION_MAP.topRight, POSITION_MAP.topLeft];\nclass NzDropDownDirective {\n setDropdownMenuValue(key, value) {\n if (this.nzDropdownMenu) {\n this.nzDropdownMenu.setValue(key, value);\n }\n }\n constructor(nzConfigService, elementRef, overlay, renderer, viewContainerRef, platform) {\n this.nzConfigService = nzConfigService;\n this.elementRef = elementRef;\n this.overlay = overlay;\n this.renderer = renderer;\n this.viewContainerRef = viewContainerRef;\n this.platform = platform;\n this._nzModuleName = NZ_CONFIG_MODULE_NAME;\n this.overlayRef = null;\n this.destroy$ = new Subject();\n this.positionStrategy = this.overlay.position().flexibleConnectedTo(this.elementRef.nativeElement).withLockedPosition().withTransformOriginOn('.ant-dropdown');\n this.inputVisible$ = new BehaviorSubject(false);\n this.nzTrigger$ = new BehaviorSubject('hover');\n this.overlayClose$ = new Subject();\n this.nzDropdownMenu = null;\n this.nzTrigger = 'hover';\n this.nzMatchWidthElement = null;\n this.nzBackdrop = false;\n this.nzClickHide = true;\n this.nzDisabled = false;\n this.nzVisible = false;\n this.nzOverlayClassName = '';\n this.nzOverlayStyle = {};\n this.nzPlacement = 'bottomLeft';\n this.nzVisibleChange = new EventEmitter();\n }\n ngAfterViewInit() {\n if (this.nzDropdownMenu) {\n const nativeElement = this.elementRef.nativeElement;\n /** host mouse state **/\n const hostMouseState$ = merge(fromEvent(nativeElement, 'mouseenter').pipe(mapTo(true)), fromEvent(nativeElement, 'mouseleave').pipe(mapTo(false)));\n /** menu mouse state **/\n const menuMouseState$ = this.nzDropdownMenu.mouseState$;\n /** merged mouse state **/\n const mergedMouseState$ = merge(menuMouseState$, hostMouseState$);\n /** host click state **/\n const hostClickState$ = fromEvent(nativeElement, 'click').pipe(map(() => !this.nzVisible));\n /** visible state switch by nzTrigger **/\n const visibleStateByTrigger$ = this.nzTrigger$.pipe(switchMap(trigger => {\n if (trigger === 'hover') {\n return mergedMouseState$;\n } else if (trigger === 'click') {\n return hostClickState$;\n } else {\n return EMPTY;\n }\n }));\n const descendantMenuItemClick$ = this.nzDropdownMenu.descendantMenuItemClick$.pipe(filter(() => this.nzClickHide), mapTo(false));\n const domTriggerVisible$ = merge(visibleStateByTrigger$, descendantMenuItemClick$, this.overlayClose$).pipe(filter(() => !this.nzDisabled));\n const visible$ = merge(this.inputVisible$, domTriggerVisible$);\n combineLatest([visible$, this.nzDropdownMenu.isChildSubMenuOpen$]).pipe(map(([visible, sub]) => visible || sub), auditTime(150), distinctUntilChanged(), filter(() => this.platform.isBrowser), takeUntil(this.destroy$)).subscribe(visible => {\n const element = this.nzMatchWidthElement ? this.nzMatchWidthElement.nativeElement : nativeElement;\n const triggerWidth = element.getBoundingClientRect().width;\n if (this.nzVisible !== visible) {\n this.nzVisibleChange.emit(visible);\n }\n this.nzVisible = visible;\n if (visible) {\n /** set up overlayRef **/\n if (!this.overlayRef) {\n /** new overlay **/\n this.overlayRef = this.overlay.create({\n positionStrategy: this.positionStrategy,\n minWidth: triggerWidth,\n disposeOnNavigation: true,\n hasBackdrop: this.nzBackdrop && this.nzTrigger === 'click',\n scrollStrategy: this.overlay.scrollStrategies.reposition()\n });\n merge(this.overlayRef.backdropClick(), this.overlayRef.detachments(), this.overlayRef.outsidePointerEvents().pipe(filter(e => !this.elementRef.nativeElement.contains(e.target))), this.overlayRef.keydownEvents().pipe(filter(e => e.keyCode === ESCAPE && !hasModifierKey(e)))).pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.overlayClose$.next(false);\n });\n } else {\n /** update overlay config **/\n const overlayConfig = this.overlayRef.getConfig();\n overlayConfig.minWidth = triggerWidth;\n }\n /** open dropdown with animation **/\n this.positionStrategy.withPositions([POSITION_MAP[this.nzPlacement], ...listOfPositions]);\n /** reset portal if needed **/\n if (!this.portal || this.portal.templateRef !== this.nzDropdownMenu.templateRef) {\n this.portal = new TemplatePortal(this.nzDropdownMenu.templateRef, this.viewContainerRef);\n }\n this.overlayRef.attach(this.portal);\n } else {\n /** detach overlayRef if needed **/\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n }\n });\n this.nzDropdownMenu.animationStateChange$.pipe(takeUntil(this.destroy$)).subscribe(event => {\n if (event.toState === 'void') {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n }\n });\n }\n }\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.complete();\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n ngOnChanges(changes) {\n const {\n nzVisible,\n nzDisabled,\n nzOverlayClassName,\n nzOverlayStyle,\n nzTrigger\n } = changes;\n if (nzTrigger) {\n this.nzTrigger$.next(this.nzTrigger);\n }\n if (nzVisible) {\n this.inputVisible$.next(this.nzVisible);\n }\n if (nzDisabled) {\n const nativeElement = this.elementRef.nativeElement;\n if (this.nzDisabled) {\n this.renderer.setAttribute(nativeElement, 'disabled', '');\n this.inputVisible$.next(false);\n } else {\n this.renderer.removeAttribute(nativeElement, 'disabled');\n }\n }\n if (nzOverlayClassName) {\n this.setDropdownMenuValue('nzOverlayClassName', this.nzOverlayClassName);\n }\n if (nzOverlayStyle) {\n this.setDropdownMenuValue('nzOverlayStyle', this.nzOverlayStyle);\n }\n }\n static {\n this.ɵfac = function NzDropDownDirective_Factory(t) {\n return new (t || NzDropDownDirective)(i0.ɵɵdirectiveInject(i1.NzConfigService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.Overlay), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i3.Platform));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzDropDownDirective,\n selectors: [[\"\", \"nz-dropdown\", \"\"]],\n hostAttrs: [1, \"ant-dropdown-trigger\"],\n inputs: {\n nzDropdownMenu: \"nzDropdownMenu\",\n nzTrigger: \"nzTrigger\",\n nzMatchWidthElement: \"nzMatchWidthElement\",\n nzBackdrop: \"nzBackdrop\",\n nzClickHide: \"nzClickHide\",\n nzDisabled: \"nzDisabled\",\n nzVisible: \"nzVisible\",\n nzOverlayClassName: \"nzOverlayClassName\",\n nzOverlayStyle: \"nzOverlayStyle\",\n nzPlacement: \"nzPlacement\"\n },\n outputs: {\n nzVisibleChange: \"nzVisibleChange\"\n },\n exportAs: [\"nzDropdown\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n__decorate([WithConfig(), InputBoolean()], NzDropDownDirective.prototype, \"nzBackdrop\", void 0);\n__decorate([InputBoolean()], NzDropDownDirective.prototype, \"nzClickHide\", void 0);\n__decorate([InputBoolean()], NzDropDownDirective.prototype, \"nzDisabled\", void 0);\n__decorate([InputBoolean()], NzDropDownDirective.prototype, \"nzVisible\", void 0);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDropDownDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-dropdown]',\n exportAs: 'nzDropdown',\n host: {\n class: 'ant-dropdown-trigger'\n },\n standalone: true\n }]\n }], () => [{\n type: i1.NzConfigService\n }, {\n type: i0.ElementRef\n }, {\n type: i2.Overlay\n }, {\n type: i0.Renderer2\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i3.Platform\n }], {\n nzDropdownMenu: [{\n type: Input\n }],\n nzTrigger: [{\n type: Input\n }],\n nzMatchWidthElement: [{\n type: Input\n }],\n nzBackdrop: [{\n type: Input\n }],\n nzClickHide: [{\n type: Input\n }],\n nzDisabled: [{\n type: Input\n }],\n nzVisible: [{\n type: Input\n }],\n nzOverlayClassName: [{\n type: Input\n }],\n nzOverlayStyle: [{\n type: Input\n }],\n nzPlacement: [{\n type: Input\n }],\n nzVisibleChange: [{\n type: Output\n }]\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 NzContextMenuServiceModule {\n static {\n this.ɵfac = function NzContextMenuServiceModule_Factory(t) {\n return new (t || NzContextMenuServiceModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzContextMenuServiceModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzContextMenuServiceModule, [{\n type: NgModule\n }], null, null);\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 NzDropDownADirective {\n constructor() {}\n static {\n this.ɵfac = function NzDropDownADirective_Factory(t) {\n return new (t || NzDropDownADirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzDropDownADirective,\n selectors: [[\"a\", \"nz-dropdown\", \"\"]],\n hostAttrs: [1, \"ant-dropdown-link\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDropDownADirective, [{\n type: Directive,\n args: [{\n selector: 'a[nz-dropdown]',\n host: {\n class: 'ant-dropdown-link'\n },\n standalone: true\n }]\n }], () => [], null);\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 NzDropdownButtonDirective {\n constructor(renderer, nzButtonGroupComponent, elementRef) {\n this.renderer = renderer;\n this.nzButtonGroupComponent = nzButtonGroupComponent;\n this.elementRef = elementRef;\n }\n ngAfterViewInit() {\n const parentElement = this.renderer.parentNode(this.elementRef.nativeElement);\n if (this.nzButtonGroupComponent && parentElement) {\n this.renderer.addClass(parentElement, 'ant-dropdown-button');\n }\n }\n static {\n this.ɵfac = function NzDropdownButtonDirective_Factory(t) {\n return new (t || NzDropdownButtonDirective)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.NzButtonGroupComponent, 9), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzDropdownButtonDirective,\n selectors: [[\"\", \"nz-button\", \"\", \"nz-dropdown\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDropdownButtonDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-button][nz-dropdown]',\n standalone: true\n }]\n }], () => [{\n type: i0.Renderer2\n }, {\n type: i1$1.NzButtonGroupComponent,\n decorators: [{\n type: Host\n }, {\n type: Optional\n }]\n }, {\n type: i0.ElementRef\n }], null);\n})();\nclass NzDropdownMenuComponent {\n onAnimationEvent(event) {\n this.animationStateChange$.emit(event);\n }\n setMouseState(visible) {\n this.mouseState$.next(visible);\n }\n setValue(key, value) {\n this[key] = value;\n this.cdr.markForCheck();\n }\n constructor(cdr, elementRef, renderer, viewContainerRef, nzMenuService, directionality, noAnimation) {\n this.cdr = cdr;\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.viewContainerRef = viewContainerRef;\n this.nzMenuService = nzMenuService;\n this.directionality = directionality;\n this.noAnimation = noAnimation;\n this.mouseState$ = new BehaviorSubject(false);\n this.isChildSubMenuOpen$ = this.nzMenuService.isChildSubMenuOpen$;\n this.descendantMenuItemClick$ = this.nzMenuService.descendantMenuItemClick$;\n this.animationStateChange$ = new EventEmitter();\n this.nzOverlayClassName = '';\n this.nzOverlayStyle = {};\n this.dir = 'ltr';\n this.destroy$ = new Subject();\n }\n ngOnInit() {\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n this.dir = this.directionality.value;\n }\n ngAfterContentInit() {\n this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement), this.elementRef.nativeElement);\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzDropdownMenuComponent_Factory(t) {\n return new (t || NzDropdownMenuComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1$2.MenuService), i0.ɵɵdirectiveInject(i2$1.Directionality, 8), i0.ɵɵdirectiveInject(i3$1.NzNoAnimationDirective, 9));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzDropdownMenuComponent,\n selectors: [[\"nz-dropdown-menu\"]],\n viewQuery: function NzDropdownMenuComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TemplateRef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateRef = _t.first);\n }\n },\n exportAs: [\"nzDropdownMenu\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([MenuService, /** menu is inside dropdown-menu component **/\n {\n provide: NzIsMenuInsideDropDownToken,\n useValue: true\n }]), i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n consts: [[1, \"ant-dropdown\", 3, \"ngClass\", \"ngStyle\", \"nzNoAnimation\", \"mouseenter\", \"mouseleave\"]],\n template: function NzDropdownMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, NzDropdownMenuComponent_ng_template_0_Template, 2, 7, \"ng-template\");\n }\n },\n dependencies: [NgClass, NgStyle, NzNoAnimationDirective],\n encapsulation: 2,\n data: {\n animation: [slideMotion]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDropdownMenuComponent, [{\n type: Component,\n args: [{\n selector: `nz-dropdown-menu`,\n exportAs: `nzDropdownMenu`,\n animations: [slideMotion],\n providers: [MenuService, /** menu is inside dropdown-menu component **/\n {\n provide: NzIsMenuInsideDropDownToken,\n useValue: true\n }],\n template: `\n \n \n \n
\n \n `,\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, NgStyle, NzNoAnimationDirective],\n standalone: true\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i1$2.MenuService\n }, {\n type: i2$1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i3$1.NzNoAnimationDirective,\n decorators: [{\n type: Host\n }, {\n type: Optional\n }]\n }], {\n templateRef: [{\n type: ViewChild,\n args: [TemplateRef, {\n static: true\n }]\n }]\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 NzDropDownModule {\n static {\n this.ɵfac = function NzDropDownModule_Factory(t) {\n return new (t || NzDropDownModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzDropDownModule,\n imports: [NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective, NzContextMenuServiceModule],\n exports: [NzMenuModule, NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [NzContextMenuServiceModule, NzMenuModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDropDownModule, [{\n type: NgModule,\n args: [{\n imports: [NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective, NzContextMenuServiceModule],\n exports: [NzMenuModule, NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective]\n }]\n }], null, null);\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 LIST_OF_POSITIONS = [new ConnectionPositionPair({\n originX: 'start',\n originY: 'top'\n}, {\n overlayX: 'start',\n overlayY: 'top'\n}), new ConnectionPositionPair({\n originX: 'start',\n originY: 'top'\n}, {\n overlayX: 'start',\n overlayY: 'bottom'\n}), new ConnectionPositionPair({\n originX: 'start',\n originY: 'top'\n}, {\n overlayX: 'end',\n overlayY: 'bottom'\n}), new ConnectionPositionPair({\n originX: 'start',\n originY: 'top'\n}, {\n overlayX: 'end',\n overlayY: 'top'\n})];\nclass NzContextMenuService {\n constructor(ngZone, overlay) {\n this.ngZone = ngZone;\n this.overlay = overlay;\n this.overlayRef = null;\n this.closeSubscription = Subscription.EMPTY;\n }\n create($event, nzDropdownMenuComponent) {\n this.close(true);\n const {\n x,\n y\n } = $event;\n if ($event instanceof MouseEvent) {\n $event.preventDefault();\n }\n const positionStrategy = this.overlay.position().flexibleConnectedTo({\n x,\n y\n }).withPositions(LIST_OF_POSITIONS).withTransformOriginOn('.ant-dropdown');\n this.overlayRef = this.overlay.create({\n positionStrategy,\n disposeOnNavigation: true,\n scrollStrategy: this.overlay.scrollStrategies.close()\n });\n this.closeSubscription = new Subscription();\n this.closeSubscription.add(nzDropdownMenuComponent.descendantMenuItemClick$.subscribe(() => this.close()));\n this.closeSubscription.add(this.ngZone.runOutsideAngular(() => merge(fromEvent(document, 'click').pipe(filter(event => !!this.overlayRef && !this.overlayRef.overlayElement.contains(event.target)), /** handle firefox contextmenu event **/\n filter(event => event.button !== 2)), fromEvent(document, 'keydown').pipe(filter(event => event.key === 'Escape'))).pipe(first()).subscribe(() => this.ngZone.run(() => this.close()))));\n return this.overlayRef.attach(new TemplatePortal(nzDropdownMenuComponent.templateRef, nzDropdownMenuComponent.viewContainerRef));\n }\n close(clear = false) {\n if (this.overlayRef) {\n this.overlayRef.detach();\n if (clear) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n this.closeSubscription.unsubscribe();\n }\n }\n static {\n this.ɵfac = function NzContextMenuService_Factory(t) {\n return new (t || NzContextMenuService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i2.Overlay));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzContextMenuService,\n factory: NzContextMenuService.ɵfac,\n providedIn: NzContextMenuServiceModule\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzContextMenuService, [{\n type: Injectable,\n args: [{\n providedIn: NzContextMenuServiceModule\n }]\n }], () => [{\n type: i0.NgZone\n }, {\n type: i2.Overlay\n }], null);\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 { NzContextMenuService, NzContextMenuServiceModule, NzDropDownADirective, NzDropDownDirective, NzDropDownModule, NzDropdownButtonDirective, NzDropdownMenuComponent };\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-55A2ZGND.js b/.angular/cache/17.0.7/vite/deps/chunk-55A2ZGND.js
deleted file mode 100644
index d855a3b..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-55A2ZGND.js
+++ /dev/null
@@ -1,116 +0,0 @@
-import {
- InputBoolean,
- coerceElement
-} from "./chunk-M5GY4FCO.js";
-import {
- ANIMATION_MODULE_TYPE,
- Directive,
- ElementRef,
- Inject,
- Input,
- NgModule,
- Optional,
- Renderer2,
- __decorate,
- setClassMetadata,
- ɵɵNgOnChangesFeature,
- ɵɵdefineDirective,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject
-} from "./chunk-FGESKT7O.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-no-animation.mjs
-var DISABLED_CLASSNAME = "nz-animate-disabled";
-var _NzNoAnimationDirective = class _NzNoAnimationDirective {
- constructor(element, renderer, animationType) {
- this.element = element;
- this.renderer = renderer;
- this.animationType = animationType;
- this.nzNoAnimation = false;
- }
- ngOnChanges() {
- this.updateClass();
- }
- ngAfterViewInit() {
- this.updateClass();
- }
- updateClass() {
- const element = coerceElement(this.element);
- if (!element) {
- return;
- }
- if (this.nzNoAnimation || this.animationType === "NoopAnimations") {
- this.renderer.addClass(element, DISABLED_CLASSNAME);
- } else {
- this.renderer.removeClass(element, DISABLED_CLASSNAME);
- }
- }
-};
-_NzNoAnimationDirective.ɵfac = function NzNoAnimationDirective_Factory(t) {
- return new (t || _NzNoAnimationDirective)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));
-};
-_NzNoAnimationDirective.ɵdir = ɵɵdefineDirective({
- type: _NzNoAnimationDirective,
- selectors: [["", "nzNoAnimation", ""]],
- inputs: {
- nzNoAnimation: "nzNoAnimation"
- },
- exportAs: ["nzNoAnimation"],
- standalone: true,
- features: [ɵɵNgOnChangesFeature]
-});
-var NzNoAnimationDirective = _NzNoAnimationDirective;
-__decorate([InputBoolean()], NzNoAnimationDirective.prototype, "nzNoAnimation", void 0);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzNoAnimationDirective, [{
- type: Directive,
- args: [{
- selector: "[nzNoAnimation]",
- exportAs: "nzNoAnimation",
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: Renderer2
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [ANIMATION_MODULE_TYPE]
- }]
- }], {
- nzNoAnimation: [{
- type: Input
- }]
- });
-})();
-var _NzNoAnimationModule = class _NzNoAnimationModule {
-};
-_NzNoAnimationModule.ɵfac = function NzNoAnimationModule_Factory(t) {
- return new (t || _NzNoAnimationModule)();
-};
-_NzNoAnimationModule.ɵmod = ɵɵdefineNgModule({
- type: _NzNoAnimationModule,
- imports: [NzNoAnimationDirective],
- exports: [NzNoAnimationDirective]
-});
-_NzNoAnimationModule.ɵinj = ɵɵdefineInjector({});
-var NzNoAnimationModule = _NzNoAnimationModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzNoAnimationModule, [{
- type: NgModule,
- args: [{
- imports: [NzNoAnimationDirective],
- exports: [NzNoAnimationDirective]
- }]
- }], null, null);
-})();
-
-export {
- NzNoAnimationDirective
-};
-//# sourceMappingURL=chunk-55A2ZGND.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-55A2ZGND.js.map b/.angular/cache/17.0.7/vite/deps/chunk-55A2ZGND.js.map
deleted file mode 100644
index e5361c8..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-55A2ZGND.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-no-animation.mjs"],
- "sourcesContent": ["import * as i0 from '@angular/core';\nimport { Directive, Optional, Inject, Input, NgModule } from '@angular/core';\nimport { __decorate } from 'tslib';\nimport { coerceElement } from '@angular/cdk/coercion';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\nconst DISABLED_CLASSNAME = 'nz-animate-disabled';\nclass NzNoAnimationDirective {\n constructor(element, renderer, animationType) {\n this.element = element;\n this.renderer = renderer;\n this.animationType = animationType;\n this.nzNoAnimation = false;\n }\n ngOnChanges() {\n this.updateClass();\n }\n ngAfterViewInit() {\n this.updateClass();\n }\n updateClass() {\n const element = coerceElement(this.element);\n if (!element) {\n return;\n }\n if (this.nzNoAnimation || this.animationType === 'NoopAnimations') {\n this.renderer.addClass(element, DISABLED_CLASSNAME);\n } else {\n this.renderer.removeClass(element, DISABLED_CLASSNAME);\n }\n }\n static {\n this.ɵfac = function NzNoAnimationDirective_Factory(t) {\n return new (t || NzNoAnimationDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzNoAnimationDirective,\n selectors: [[\"\", \"nzNoAnimation\", \"\"]],\n inputs: {\n nzNoAnimation: \"nzNoAnimation\"\n },\n exportAs: [\"nzNoAnimation\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n__decorate([InputBoolean()], NzNoAnimationDirective.prototype, \"nzNoAnimation\", void 0);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzNoAnimationDirective, [{\n type: Directive,\n args: [{\n selector: '[nzNoAnimation]',\n exportAs: 'nzNoAnimation',\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }], {\n nzNoAnimation: [{\n type: Input\n }]\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 NzNoAnimationModule {\n static {\n this.ɵfac = function NzNoAnimationModule_Factory(t) {\n return new (t || NzNoAnimationModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzNoAnimationModule,\n imports: [NzNoAnimationDirective],\n exports: [NzNoAnimationDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzNoAnimationModule, [{\n type: NgModule,\n args: [{\n imports: [NzNoAnimationDirective],\n exports: [NzNoAnimationDirective]\n }]\n }], null, null);\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 { NzNoAnimationDirective, NzNoAnimationModule };\n"],
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAM,qBAAqB;AAC3B,IAAM,0BAAN,MAAM,wBAAuB;AAAA,EAC3B,YAAY,SAAS,UAAU,eAAe;AAC5C,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AAAA,EACvB;AAAA,EACA,cAAc;AACZ,SAAK,YAAY;AAAA,EACnB;AAAA,EACA,kBAAkB;AAChB,SAAK,YAAY;AAAA,EACnB;AAAA,EACA,cAAc;AACZ,UAAM,UAAU,cAAc,KAAK,OAAO;AAC1C,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AACA,QAAI,KAAK,iBAAiB,KAAK,kBAAkB,kBAAkB;AACjE,WAAK,SAAS,SAAS,SAAS,kBAAkB;AAAA,IACpD,OAAO;AACL,WAAK,SAAS,YAAY,SAAS,kBAAkB;AAAA,IACvD;AAAA,EACF;AAkBF;AAhBI,wBAAK,OAAO,SAAS,+BAA+B,GAAG;AACrD,SAAO,KAAK,KAAK,yBAA2B,kBAAqB,UAAU,GAAM,kBAAqB,SAAS,GAAM,kBAAkB,uBAAuB,CAAC,CAAC;AAClK;AAGA,wBAAK,OAAyB,kBAAkB;AAAA,EAC9C,MAAM;AAAA,EACN,WAAW,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC;AAAA,EACrC,QAAQ;AAAA,IACN,eAAe;AAAA,EACjB;AAAA,EACA,UAAU,CAAC,eAAe;AAAA,EAC1B,YAAY;AAAA,EACZ,UAAU,CAAI,oBAAoB;AACpC,CAAC;AAvCL,IAAM,yBAAN;AA0CA,WAAW,CAAC,aAAa,CAAC,GAAG,uBAAuB,WAAW,iBAAiB,MAAM;AAAA,CACrF,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,wBAAwB,CAAC;AAAA,IAC/F,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,MACL,UAAU;AAAA,MACV,UAAU;AAAA,MACV,YAAY;AAAA,IACd,CAAC;AAAA,EACH,CAAC,GAAG,MAAM,CAAC;AAAA,IACT,MAAS;AAAA,EACX,GAAG;AAAA,IACD,MAAS;AAAA,EACX,GAAG;AAAA,IACD,MAAM;AAAA,IACN,YAAY,CAAC;AAAA,MACX,MAAM;AAAA,IACR,GAAG;AAAA,MACD,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB;AAAA,IAC9B,CAAC;AAAA,EACH,CAAC,GAAG;AAAA,IACF,eAAe,CAAC;AAAA,MACd,MAAM;AAAA,IACR,CAAC;AAAA,EACH,CAAC;AACH,GAAG;AAMH,IAAM,uBAAN,MAAM,qBAAoB;AAgB1B;AAdI,qBAAK,OAAO,SAAS,4BAA4B,GAAG;AAClD,SAAO,KAAK,KAAK,sBAAqB;AACxC;AAGA,qBAAK,OAAyB,iBAAiB;AAAA,EAC7C,MAAM;AAAA,EACN,SAAS,CAAC,sBAAsB;AAAA,EAChC,SAAS,CAAC,sBAAsB;AAClC,CAAC;AAGD,qBAAK,OAAyB,iBAAiB,CAAC,CAAC;AAdrD,IAAM,sBAAN;AAAA,CAiBC,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,qBAAqB,CAAC;AAAA,IAC5F,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,MACL,SAAS,CAAC,sBAAsB;AAAA,MAChC,SAAS,CAAC,sBAAsB;AAAA,IAClC,CAAC;AAAA,EACH,CAAC,GAAG,MAAM,IAAI;AAChB,GAAG;",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-5MZJ5XYV.js b/.angular/cache/17.0.7/vite/deps/chunk-5MZJ5XYV.js
deleted file mode 100644
index 9f95f46..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-5MZJ5XYV.js
+++ /dev/null
@@ -1,791 +0,0 @@
-import {
- DEFAULT_TOOLTIP_POSITIONS,
- NzConnectedOverlayDirective,
- NzOverlayModule,
- POSITION_MAP,
- getPlacementName
-} from "./chunk-6RXUTAFR.js";
-import {
- zoomBigMotion
-} from "./chunk-XAGDQPFO.js";
-import {
- NzNoAnimationDirective
-} from "./chunk-55A2ZGND.js";
-import {
- CdkConnectedOverlay,
- OverlayModule
-} from "./chunk-6U656R5M.js";
-import {
- NzOutletModule,
- NzStringTemplateOutletDirective
-} from "./chunk-VOD2PKZN.js";
-import {
- NzConfigService,
- isPresetColor
-} from "./chunk-ZHMJ6SNN.js";
-import {
- Directionality
-} from "./chunk-6NZ2BEBG.js";
-import {
- InputBoolean,
- isNotNil,
- toBoolean
-} from "./chunk-M5GY4FCO.js";
-import {
- NgClass,
- NgStyle
-} from "./chunk-OSQBUYO6.js";
-import {
- ChangeDetectionStrategy,
- ChangeDetectorRef,
- Component,
- Directive,
- ElementRef,
- EventEmitter,
- Host,
- Input,
- NgModule,
- Optional,
- Output,
- Renderer2,
- Subject,
- TemplateRef,
- ViewChild,
- ViewContainerRef,
- ViewEncapsulation$1,
- __decorate,
- asapScheduler,
- delay,
- distinctUntilChanged,
- filter,
- setClassMetadata,
- takeUntil,
- ɵɵInheritDefinitionFeature,
- ɵɵNgOnChangesFeature,
- ɵɵStandaloneFeature,
- ɵɵadvance,
- ɵɵclassProp,
- ɵɵdefineComponent,
- ɵɵdefineDirective,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵelement,
- ɵɵelementContainerEnd,
- ɵɵelementContainerStart,
- ɵɵelementEnd,
- ɵɵelementStart,
- ɵɵlistener,
- ɵɵloadQuery,
- ɵɵnextContext,
- ɵɵproperty,
- ɵɵqueryRefresh,
- ɵɵtemplate,
- ɵɵtemplateRefExtractor,
- ɵɵtext,
- ɵɵtextInterpolate,
- ɵɵviewQuery
-} from "./chunk-FGESKT7O.js";
-import {
- __spreadProps,
- __spreadValues
-} from "./chunk-HSNDBVJ3.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-tooltip.mjs
-var _c0 = ["overlay"];
-function NzToolTipComponent_ng_template_0_ng_container_5_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵtext(1);
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const ctx_r2 = ɵɵnextContext(2);
- ɵɵadvance(1);
- ɵɵtextInterpolate(ctx_r2.nzTitle);
- }
-}
-function NzToolTipComponent_ng_template_0_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4);
- ɵɵelement(3, "span", 5);
- ɵɵelementEnd();
- ɵɵelementStart(4, "div", 6);
- ɵɵtemplate(5, NzToolTipComponent_ng_template_0_ng_container_5_Template, 2, 1, "ng-container", 7);
- ɵɵelementEnd()()();
- }
- if (rf & 2) {
- const ctx_r0 = ɵɵnextContext();
- ɵɵclassProp("ant-tooltip-rtl", ctx_r0.dir === "rtl");
- ɵɵproperty("ngClass", ctx_r0._classMap)("ngStyle", ctx_r0.nzOverlayStyle)("@.disabled", !!(ctx_r0.noAnimation == null ? null : ctx_r0.noAnimation.nzNoAnimation))("nzNoAnimation", ctx_r0.noAnimation == null ? null : ctx_r0.noAnimation.nzNoAnimation)("@zoomBigMotion", "active");
- ɵɵadvance(3);
- ɵɵproperty("ngStyle", ctx_r0._contentStyleMap);
- ɵɵadvance(1);
- ɵɵproperty("ngStyle", ctx_r0._contentStyleMap);
- ɵɵadvance(1);
- ɵɵproperty("nzStringTemplateOutlet", ctx_r0.nzTitle)("nzStringTemplateOutletContext", ctx_r0.nzTitleContext);
- }
-}
-var _NzTooltipBaseDirective = class _NzTooltipBaseDirective {
- /**
- * This true title that would be used in other parts on this component.
- */
- get _title() {
- return this.title || this.directiveTitle || null;
- }
- get _content() {
- return this.content || this.directiveContent || null;
- }
- get _trigger() {
- return typeof this.trigger !== "undefined" ? this.trigger : "hover";
- }
- get _placement() {
- const p = this.placement;
- return Array.isArray(p) && p.length > 0 ? p : typeof p === "string" && p ? [p] : ["top"];
- }
- get _visible() {
- return (typeof this.visible !== "undefined" ? this.visible : this.internalVisible) || false;
- }
- get _mouseEnterDelay() {
- return this.mouseEnterDelay || 0.15;
- }
- get _mouseLeaveDelay() {
- return this.mouseLeaveDelay || 0.1;
- }
- get _overlayClassName() {
- return this.overlayClassName || null;
- }
- get _overlayStyle() {
- return this.overlayStyle || null;
- }
- getProxyPropertyMap() {
- return {
- noAnimation: ["noAnimation", () => !!this.noAnimation]
- };
- }
- constructor(elementRef, hostView, renderer, noAnimation, nzConfigService) {
- this.elementRef = elementRef;
- this.hostView = hostView;
- this.renderer = renderer;
- this.noAnimation = noAnimation;
- this.nzConfigService = nzConfigService;
- this.visibleChange = new EventEmitter();
- this.internalVisible = false;
- this.destroy$ = new Subject();
- this.triggerDisposables = [];
- }
- ngOnChanges(changes) {
- const {
- trigger
- } = changes;
- if (trigger && !trigger.isFirstChange()) {
- this.registerTriggers();
- }
- if (this.component) {
- this.updatePropertiesByChanges(changes);
- }
- }
- ngAfterViewInit() {
- this.createComponent();
- this.registerTriggers();
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- this.clearTogglingTimer();
- this.removeTriggerListeners();
- }
- show() {
- this.component?.show();
- }
- hide() {
- this.component?.hide();
- }
- /**
- * Force the component to update its position.
- */
- updatePosition() {
- if (this.component) {
- this.component.updatePosition();
- }
- }
- /**
- * Create a dynamic tooltip component. This method can be override.
- */
- createComponent() {
- const componentRef = this.componentRef;
- this.component = componentRef.instance;
- this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement), componentRef.location.nativeElement);
- this.component.setOverlayOrigin(this.origin || this.elementRef);
- this.initProperties();
- const ngVisibleChange$ = this.component.nzVisibleChange.pipe(distinctUntilChanged());
- ngVisibleChange$.pipe(takeUntil(this.destroy$)).subscribe((visible) => {
- this.internalVisible = visible;
- this.visibleChange.emit(visible);
- });
- ngVisibleChange$.pipe(filter((visible) => visible), delay(0, asapScheduler), filter(() => Boolean(this.component?.overlay?.overlayRef)), takeUntil(this.destroy$)).subscribe(() => {
- this.component?.updatePosition();
- });
- }
- registerTriggers() {
- const el = this.elementRef.nativeElement;
- const trigger = this.trigger;
- this.removeTriggerListeners();
- if (trigger === "hover") {
- let overlayElement;
- this.triggerDisposables.push(this.renderer.listen(el, "mouseenter", () => {
- this.delayEnterLeave(true, true, this._mouseEnterDelay);
- }));
- this.triggerDisposables.push(this.renderer.listen(el, "mouseleave", () => {
- this.delayEnterLeave(true, false, this._mouseLeaveDelay);
- if (this.component?.overlay.overlayRef && !overlayElement) {
- overlayElement = this.component.overlay.overlayRef.overlayElement;
- this.triggerDisposables.push(this.renderer.listen(overlayElement, "mouseenter", () => {
- this.delayEnterLeave(false, true, this._mouseEnterDelay);
- }));
- this.triggerDisposables.push(this.renderer.listen(overlayElement, "mouseleave", () => {
- this.delayEnterLeave(false, false, this._mouseLeaveDelay);
- }));
- }
- }));
- } else if (trigger === "focus") {
- this.triggerDisposables.push(this.renderer.listen(el, "focusin", () => this.show()));
- this.triggerDisposables.push(this.renderer.listen(el, "focusout", () => this.hide()));
- } else if (trigger === "click") {
- this.triggerDisposables.push(this.renderer.listen(el, "click", (e) => {
- e.preventDefault();
- this.show();
- }));
- }
- }
- updatePropertiesByChanges(changes) {
- this.updatePropertiesByKeys(Object.keys(changes));
- }
- updatePropertiesByKeys(keys) {
- const mappingProperties = __spreadValues({
- // common mappings
- title: ["nzTitle", () => this._title],
- directiveTitle: ["nzTitle", () => this._title],
- content: ["nzContent", () => this._content],
- directiveContent: ["nzContent", () => this._content],
- trigger: ["nzTrigger", () => this._trigger],
- placement: ["nzPlacement", () => this._placement],
- visible: ["nzVisible", () => this._visible],
- mouseEnterDelay: ["nzMouseEnterDelay", () => this._mouseEnterDelay],
- mouseLeaveDelay: ["nzMouseLeaveDelay", () => this._mouseLeaveDelay],
- overlayClassName: ["nzOverlayClassName", () => this._overlayClassName],
- overlayStyle: ["nzOverlayStyle", () => this._overlayStyle],
- arrowPointAtCenter: ["nzArrowPointAtCenter", () => this.arrowPointAtCenter],
- cdkConnectedOverlayPush: ["cdkConnectedOverlayPush", () => this.cdkConnectedOverlayPush]
- }, this.getProxyPropertyMap());
- (keys || Object.keys(mappingProperties).filter((key) => !key.startsWith("directive"))).forEach((property) => {
- if (mappingProperties[property]) {
- const [name, valueFn] = mappingProperties[property];
- this.updateComponentValue(name, valueFn());
- }
- });
- this.component?.updateByDirective();
- }
- initProperties() {
- this.updatePropertiesByKeys();
- }
- updateComponentValue(key, value) {
- if (typeof value !== "undefined") {
- this.component[key] = value;
- }
- }
- delayEnterLeave(isOrigin, isEnter, delay2 = -1) {
- if (this.delayTimer) {
- this.clearTogglingTimer();
- } else if (delay2 > 0) {
- this.delayTimer = setTimeout(() => {
- this.delayTimer = void 0;
- isEnter ? this.show() : this.hide();
- }, delay2 * 1e3);
- } else {
- isEnter && isOrigin ? this.show() : this.hide();
- }
- }
- removeTriggerListeners() {
- this.triggerDisposables.forEach((dispose) => dispose());
- this.triggerDisposables.length = 0;
- }
- clearTogglingTimer() {
- if (this.delayTimer) {
- clearTimeout(this.delayTimer);
- this.delayTimer = void 0;
- }
- }
-};
-_NzTooltipBaseDirective.ɵfac = function NzTooltipBaseDirective_Factory(t) {
- return new (t || _NzTooltipBaseDirective)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(ViewContainerRef), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(NzNoAnimationDirective), ɵɵdirectiveInject(NzConfigService));
-};
-_NzTooltipBaseDirective.ɵdir = ɵɵdefineDirective({
- type: _NzTooltipBaseDirective,
- features: [ɵɵNgOnChangesFeature]
-});
-var NzTooltipBaseDirective = _NzTooltipBaseDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzTooltipBaseDirective, [{
- type: Directive
- }], () => [{
- type: ElementRef
- }, {
- type: ViewContainerRef
- }, {
- type: Renderer2
- }, {
- type: NzNoAnimationDirective
- }, {
- type: NzConfigService
- }], null);
-})();
-var _NzTooltipBaseComponent = class _NzTooltipBaseComponent {
- set nzVisible(value) {
- const visible = toBoolean(value);
- if (this._visible !== visible) {
- this._visible = visible;
- this.nzVisibleChange.next(visible);
- }
- }
- get nzVisible() {
- return this._visible;
- }
- set nzTrigger(value) {
- this._trigger = value;
- }
- get nzTrigger() {
- return this._trigger;
- }
- set nzPlacement(value) {
- const preferredPosition = value.map((placement) => POSITION_MAP[placement]);
- this._positions = [...preferredPosition, ...DEFAULT_TOOLTIP_POSITIONS];
- }
- constructor(cdr, directionality, noAnimation) {
- this.cdr = cdr;
- this.directionality = directionality;
- this.noAnimation = noAnimation;
- this.nzTitle = null;
- this.nzContent = null;
- this.nzArrowPointAtCenter = false;
- this.nzOverlayStyle = {};
- this.nzBackdrop = false;
- this.cdkConnectedOverlayPush = true;
- this.nzVisibleChange = new Subject();
- this._visible = false;
- this._trigger = "hover";
- this.preferredPlacement = "top";
- this.dir = "ltr";
- this._classMap = {};
- this._prefix = "ant-tooltip";
- this._positions = [...DEFAULT_TOOLTIP_POSITIONS];
- this.destroy$ = new Subject();
- }
- ngOnInit() {
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- this.cdr.detectChanges();
- });
- this.dir = this.directionality.value;
- }
- ngOnDestroy() {
- this.nzVisibleChange.complete();
- this.destroy$.next();
- this.destroy$.complete();
- }
- show() {
- if (this.nzVisible) {
- return;
- }
- if (!this.isEmpty()) {
- this.nzVisible = true;
- this.nzVisibleChange.next(true);
- this.cdr.detectChanges();
- }
- if (this.origin && this.overlay && this.overlay.overlayRef && this.overlay.overlayRef.getDirection() === "rtl") {
- this.overlay.overlayRef.setDirection("ltr");
- }
- }
- hide() {
- if (!this.nzVisible) {
- return;
- }
- this.nzVisible = false;
- this.nzVisibleChange.next(false);
- this.cdr.detectChanges();
- }
- updateByDirective() {
- this.updateStyles();
- this.cdr.detectChanges();
- Promise.resolve().then(() => {
- this.updatePosition();
- this.updateVisibilityByTitle();
- });
- }
- /**
- * Force the component to update its position.
- */
- updatePosition() {
- if (this.origin && this.overlay && this.overlay.overlayRef) {
- this.overlay.overlayRef.updatePosition();
- }
- }
- onPositionChange(position) {
- this.preferredPlacement = getPlacementName(position);
- this.updateStyles();
- this.cdr.detectChanges();
- }
- setOverlayOrigin(origin) {
- this.origin = origin;
- this.cdr.markForCheck();
- }
- onClickOutside(event) {
- if (!this.origin.nativeElement.contains(event.target) && this.nzTrigger !== null) {
- this.hide();
- }
- }
- /**
- * Hide the component while the content is empty.
- */
- updateVisibilityByTitle() {
- if (this.isEmpty()) {
- this.hide();
- }
- }
- updateStyles() {
- this._classMap = {
- [this.nzOverlayClassName]: true,
- [`${this._prefix}-placement-${this.preferredPlacement}`]: true
- };
- }
-};
-_NzTooltipBaseComponent.ɵfac = function NzTooltipBaseComponent_Factory(t) {
- return new (t || _NzTooltipBaseComponent)(ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(Directionality, 8), ɵɵdirectiveInject(NzNoAnimationDirective));
-};
-_NzTooltipBaseComponent.ɵdir = ɵɵdefineDirective({
- type: _NzTooltipBaseComponent,
- viewQuery: function NzTooltipBaseComponent_Query(rf, ctx) {
- if (rf & 1) {
- ɵɵviewQuery(_c0, 5);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.overlay = _t.first);
- }
- }
-});
-var NzTooltipBaseComponent = _NzTooltipBaseComponent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzTooltipBaseComponent, [{
- type: Directive
- }], () => [{
- type: ChangeDetectorRef
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }, {
- type: NzNoAnimationDirective
- }], {
- overlay: [{
- type: ViewChild,
- args: ["overlay", {
- static: false
- }]
- }]
- });
-})();
-function isTooltipEmpty(value) {
- return value instanceof TemplateRef ? false : value === "" || !isNotNil(value);
-}
-var _NzTooltipDirective = class _NzTooltipDirective extends NzTooltipBaseDirective {
- constructor(elementRef, hostView, renderer, noAnimation) {
- super(elementRef, hostView, renderer, noAnimation);
- this.titleContext = null;
- this.trigger = "hover";
- this.placement = "top";
- this.cdkConnectedOverlayPush = true;
- this.visibleChange = new EventEmitter();
- this.componentRef = this.hostView.createComponent(NzToolTipComponent);
- }
- getProxyPropertyMap() {
- return __spreadProps(__spreadValues({}, super.getProxyPropertyMap()), {
- nzTooltipColor: ["nzColor", () => this.nzTooltipColor],
- titleContext: ["nzTitleContext", () => this.titleContext]
- });
- }
-};
-_NzTooltipDirective.ɵfac = function NzTooltipDirective_Factory(t) {
- return new (t || _NzTooltipDirective)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(ViewContainerRef), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(NzNoAnimationDirective, 9));
-};
-_NzTooltipDirective.ɵdir = ɵɵdefineDirective({
- type: _NzTooltipDirective,
- selectors: [["", "nz-tooltip", ""]],
- hostVars: 2,
- hostBindings: function NzTooltipDirective_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵclassProp("ant-tooltip-open", ctx.visible);
- }
- },
- inputs: {
- title: ["nzTooltipTitle", "title"],
- titleContext: ["nzTooltipTitleContext", "titleContext"],
- directiveTitle: ["nz-tooltip", "directiveTitle"],
- trigger: ["nzTooltipTrigger", "trigger"],
- placement: ["nzTooltipPlacement", "placement"],
- origin: ["nzTooltipOrigin", "origin"],
- visible: ["nzTooltipVisible", "visible"],
- mouseEnterDelay: ["nzTooltipMouseEnterDelay", "mouseEnterDelay"],
- mouseLeaveDelay: ["nzTooltipMouseLeaveDelay", "mouseLeaveDelay"],
- overlayClassName: ["nzTooltipOverlayClassName", "overlayClassName"],
- overlayStyle: ["nzTooltipOverlayStyle", "overlayStyle"],
- arrowPointAtCenter: ["nzTooltipArrowPointAtCenter", "arrowPointAtCenter"],
- cdkConnectedOverlayPush: "cdkConnectedOverlayPush",
- nzTooltipColor: "nzTooltipColor"
- },
- outputs: {
- visibleChange: "nzTooltipVisibleChange"
- },
- exportAs: ["nzTooltip"],
- standalone: true,
- features: [ɵɵInheritDefinitionFeature]
-});
-var NzTooltipDirective = _NzTooltipDirective;
-__decorate([InputBoolean()], NzTooltipDirective.prototype, "arrowPointAtCenter", void 0);
-__decorate([InputBoolean()], NzTooltipDirective.prototype, "cdkConnectedOverlayPush", void 0);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzTooltipDirective, [{
- type: Directive,
- args: [{
- selector: "[nz-tooltip]",
- exportAs: "nzTooltip",
- host: {
- "[class.ant-tooltip-open]": "visible"
- },
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: ViewContainerRef
- }, {
- type: Renderer2
- }, {
- type: NzNoAnimationDirective,
- decorators: [{
- type: Host
- }, {
- type: Optional
- }]
- }], {
- title: [{
- type: Input,
- args: ["nzTooltipTitle"]
- }],
- titleContext: [{
- type: Input,
- args: ["nzTooltipTitleContext"]
- }],
- directiveTitle: [{
- type: Input,
- args: ["nz-tooltip"]
- }],
- trigger: [{
- type: Input,
- args: ["nzTooltipTrigger"]
- }],
- placement: [{
- type: Input,
- args: ["nzTooltipPlacement"]
- }],
- origin: [{
- type: Input,
- args: ["nzTooltipOrigin"]
- }],
- visible: [{
- type: Input,
- args: ["nzTooltipVisible"]
- }],
- mouseEnterDelay: [{
- type: Input,
- args: ["nzTooltipMouseEnterDelay"]
- }],
- mouseLeaveDelay: [{
- type: Input,
- args: ["nzTooltipMouseLeaveDelay"]
- }],
- overlayClassName: [{
- type: Input,
- args: ["nzTooltipOverlayClassName"]
- }],
- overlayStyle: [{
- type: Input,
- args: ["nzTooltipOverlayStyle"]
- }],
- arrowPointAtCenter: [{
- type: Input,
- args: ["nzTooltipArrowPointAtCenter"]
- }],
- cdkConnectedOverlayPush: [{
- type: Input
- }],
- nzTooltipColor: [{
- type: Input
- }],
- visibleChange: [{
- type: Output,
- args: ["nzTooltipVisibleChange"]
- }]
- });
-})();
-var _NzToolTipComponent = class _NzToolTipComponent extends NzTooltipBaseComponent {
- constructor(cdr, directionality, noAnimation) {
- super(cdr, directionality, noAnimation);
- this.nzTitle = null;
- this.nzTitleContext = null;
- this._contentStyleMap = {};
- }
- isEmpty() {
- return isTooltipEmpty(this.nzTitle);
- }
- updateStyles() {
- const isColorPreset = this.nzColor && isPresetColor(this.nzColor);
- this._classMap = {
- [this.nzOverlayClassName]: true,
- [`${this._prefix}-placement-${this.preferredPlacement}`]: true,
- [`${this._prefix}-${this.nzColor}`]: isColorPreset
- };
- this._contentStyleMap = {
- backgroundColor: !!this.nzColor && !isColorPreset ? this.nzColor : null,
- "--color": this.nzColor
- };
- }
-};
-_NzToolTipComponent.ɵfac = function NzToolTipComponent_Factory(t) {
- return new (t || _NzToolTipComponent)(ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(Directionality, 8), ɵɵdirectiveInject(NzNoAnimationDirective, 9));
-};
-_NzToolTipComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzToolTipComponent,
- selectors: [["nz-tooltip"]],
- exportAs: ["nzTooltipComponent"],
- standalone: true,
- features: [ɵɵInheritDefinitionFeature, ɵɵStandaloneFeature],
- decls: 2,
- vars: 5,
- consts: [["cdkConnectedOverlay", "", "nzConnectedOverlay", "", 3, "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPush", "nzArrowPointAtCenter", "overlayOutsideClick", "detach", "positionChange"], ["overlay", "cdkConnectedOverlay"], [1, "ant-tooltip", 3, "ngClass", "ngStyle", "nzNoAnimation"], [1, "ant-tooltip-content"], [1, "ant-tooltip-arrow"], [1, "ant-tooltip-arrow-content", 3, "ngStyle"], [1, "ant-tooltip-inner", 3, "ngStyle"], [4, "nzStringTemplateOutlet", "nzStringTemplateOutletContext"]],
- template: function NzToolTipComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵtemplate(0, NzToolTipComponent_ng_template_0_Template, 6, 11, "ng-template", 0, 1, ɵɵtemplateRefExtractor);
- ɵɵlistener("overlayOutsideClick", function NzToolTipComponent_Template_ng_template_overlayOutsideClick_0_listener($event) {
- return ctx.onClickOutside($event);
- })("detach", function NzToolTipComponent_Template_ng_template_detach_0_listener() {
- return ctx.hide();
- })("positionChange", function NzToolTipComponent_Template_ng_template_positionChange_0_listener($event) {
- return ctx.onPositionChange($event);
- });
- }
- if (rf & 2) {
- ɵɵproperty("cdkConnectedOverlayOrigin", ctx.origin)("cdkConnectedOverlayOpen", ctx._visible)("cdkConnectedOverlayPositions", ctx._positions)("cdkConnectedOverlayPush", ctx.cdkConnectedOverlayPush)("nzArrowPointAtCenter", ctx.nzArrowPointAtCenter);
- }
- },
- dependencies: [OverlayModule, CdkConnectedOverlay, NgClass, NgStyle, NzNoAnimationDirective, NzOutletModule, NzStringTemplateOutletDirective, NzOverlayModule, NzConnectedOverlayDirective],
- encapsulation: 2,
- data: {
- animation: [zoomBigMotion]
- },
- changeDetection: 0
-});
-var NzToolTipComponent = _NzToolTipComponent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzToolTipComponent, [{
- type: Component,
- args: [{
- selector: "nz-tooltip",
- exportAs: "nzTooltipComponent",
- changeDetection: ChangeDetectionStrategy.OnPush,
- encapsulation: ViewEncapsulation$1.None,
- animations: [zoomBigMotion],
- template: `
-
-
-
- `,
- preserveWhitespaces: false,
- imports: [OverlayModule, NgClass, NgStyle, NzNoAnimationDirective, NzOutletModule, NzOverlayModule],
- standalone: true
- }]
- }], () => [{
- type: ChangeDetectorRef
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }, {
- type: NzNoAnimationDirective,
- decorators: [{
- type: Host
- }, {
- type: Optional
- }]
- }], null);
-})();
-var _NzToolTipModule = class _NzToolTipModule {
-};
-_NzToolTipModule.ɵfac = function NzToolTipModule_Factory(t) {
- return new (t || _NzToolTipModule)();
-};
-_NzToolTipModule.ɵmod = ɵɵdefineNgModule({
- type: _NzToolTipModule,
- imports: [NzToolTipComponent, NzTooltipDirective],
- exports: [NzToolTipComponent, NzTooltipDirective]
-});
-_NzToolTipModule.ɵinj = ɵɵdefineInjector({
- imports: [NzToolTipComponent]
-});
-var NzToolTipModule = _NzToolTipModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzToolTipModule, [{
- type: NgModule,
- args: [{
- imports: [NzToolTipComponent, NzTooltipDirective],
- exports: [NzToolTipComponent, NzTooltipDirective]
- }]
- }], null, null);
-})();
-
-export {
- NzTooltipDirective,
- NzToolTipModule
-};
-//# sourceMappingURL=chunk-5MZJ5XYV.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-5MZJ5XYV.js.map b/.angular/cache/17.0.7/vite/deps/chunk-5MZJ5XYV.js.map
deleted file mode 100644
index 4ab1ce7..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-5MZJ5XYV.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-tooltip.mjs"],
- "sourcesContent": ["import { __decorate } from 'tslib';\nimport * as i3$1 from '@angular/cdk/overlay';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { NgClass, NgStyle } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { EventEmitter, Directive, Optional, ViewChild, TemplateRef, Host, Input, Output, Component, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';\nimport { zoomBigMotion } from 'ng-zorro-antd/core/animation';\nimport { isPresetColor } from 'ng-zorro-antd/core/color';\nimport * as i1 from 'ng-zorro-antd/core/no-animation';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport * as i4 from 'ng-zorro-antd/core/outlet';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport * as i5 from 'ng-zorro-antd/core/overlay';\nimport { POSITION_MAP, DEFAULT_TOOLTIP_POSITIONS, getPlacementName, NzOverlayModule } from 'ng-zorro-antd/core/overlay';\nimport { toBoolean, isNotNil, InputBoolean } from 'ng-zorro-antd/core/util';\nimport { Subject, asapScheduler } from 'rxjs';\nimport { distinctUntilChanged, takeUntil, filter, delay } from 'rxjs/operators';\nimport * as i2 from 'ng-zorro-antd/core/config';\nimport * as i3 from '@angular/cdk/bidi';\nconst _c0 = [\"overlay\"];\nfunction NzToolTipComponent_ng_template_0_ng_container_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r2.nzTitle);\n }\n}\nfunction NzToolTipComponent_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2)(1, \"div\", 3)(2, \"div\", 4);\n i0.ɵɵelement(3, \"span\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 6);\n i0.ɵɵtemplate(5, NzToolTipComponent_ng_template_0_ng_container_5_Template, 2, 1, \"ng-container\", 7);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"ant-tooltip-rtl\", ctx_r0.dir === \"rtl\");\n i0.ɵɵproperty(\"ngClass\", ctx_r0._classMap)(\"ngStyle\", ctx_r0.nzOverlayStyle)(\"@.disabled\", !!(ctx_r0.noAnimation == null ? null : ctx_r0.noAnimation.nzNoAnimation))(\"nzNoAnimation\", ctx_r0.noAnimation == null ? null : ctx_r0.noAnimation.nzNoAnimation)(\"@zoomBigMotion\", \"active\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngStyle\", ctx_r0._contentStyleMap);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngStyle\", ctx_r0._contentStyleMap);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"nzStringTemplateOutlet\", ctx_r0.nzTitle)(\"nzStringTemplateOutletContext\", ctx_r0.nzTitleContext);\n }\n}\nclass NzTooltipBaseDirective {\n /**\n * This true title that would be used in other parts on this component.\n */\n get _title() {\n return this.title || this.directiveTitle || null;\n }\n get _content() {\n return this.content || this.directiveContent || null;\n }\n get _trigger() {\n return typeof this.trigger !== 'undefined' ? this.trigger : 'hover';\n }\n get _placement() {\n const p = this.placement;\n return Array.isArray(p) && p.length > 0 ? p : typeof p === 'string' && p ? [p] : ['top'];\n }\n get _visible() {\n return (typeof this.visible !== 'undefined' ? this.visible : this.internalVisible) || false;\n }\n get _mouseEnterDelay() {\n return this.mouseEnterDelay || 0.15;\n }\n get _mouseLeaveDelay() {\n return this.mouseLeaveDelay || 0.1;\n }\n get _overlayClassName() {\n return this.overlayClassName || null;\n }\n get _overlayStyle() {\n return this.overlayStyle || null;\n }\n getProxyPropertyMap() {\n return {\n noAnimation: ['noAnimation', () => !!this.noAnimation]\n };\n }\n constructor(elementRef, hostView, renderer, noAnimation, nzConfigService) {\n this.elementRef = elementRef;\n this.hostView = hostView;\n this.renderer = renderer;\n this.noAnimation = noAnimation;\n this.nzConfigService = nzConfigService;\n this.visibleChange = new EventEmitter();\n this.internalVisible = false;\n this.destroy$ = new Subject();\n this.triggerDisposables = [];\n }\n ngOnChanges(changes) {\n const {\n trigger\n } = changes;\n if (trigger && !trigger.isFirstChange()) {\n this.registerTriggers();\n }\n if (this.component) {\n this.updatePropertiesByChanges(changes);\n }\n }\n ngAfterViewInit() {\n this.createComponent();\n this.registerTriggers();\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n // Clear toggling timer. Issue #3875 #4317 #4386\n this.clearTogglingTimer();\n this.removeTriggerListeners();\n }\n show() {\n this.component?.show();\n }\n hide() {\n this.component?.hide();\n }\n /**\n * Force the component to update its position.\n */\n updatePosition() {\n if (this.component) {\n this.component.updatePosition();\n }\n }\n /**\n * Create a dynamic tooltip component. This method can be override.\n */\n createComponent() {\n const componentRef = this.componentRef;\n this.component = componentRef.instance;\n // Remove the component's DOM because it should be in the overlay container.\n this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement), componentRef.location.nativeElement);\n this.component.setOverlayOrigin(this.origin || this.elementRef);\n this.initProperties();\n const ngVisibleChange$ = this.component.nzVisibleChange.pipe(distinctUntilChanged());\n ngVisibleChange$.pipe(takeUntil(this.destroy$)).subscribe(visible => {\n this.internalVisible = visible;\n this.visibleChange.emit(visible);\n });\n // In some cases, the rendering takes into account the height at which the `arrow` is in wrong place,\n // so `cdk` sets the container position incorrectly.\n // To avoid this, after placing the `arrow` in the correct position, we should `re-calculate` the position of the `overlay`.\n ngVisibleChange$.pipe(filter(visible => visible), delay(0, asapScheduler), filter(() => Boolean(this.component?.overlay?.overlayRef)), takeUntil(this.destroy$)).subscribe(() => {\n this.component?.updatePosition();\n });\n }\n registerTriggers() {\n // When the method gets invoked, all properties has been synced to the dynamic component.\n // After removing the old API, we can just check the directive's own `nzTrigger`.\n const el = this.elementRef.nativeElement;\n const trigger = this.trigger;\n this.removeTriggerListeners();\n if (trigger === 'hover') {\n let overlayElement;\n this.triggerDisposables.push(this.renderer.listen(el, 'mouseenter', () => {\n this.delayEnterLeave(true, true, this._mouseEnterDelay);\n }));\n this.triggerDisposables.push(this.renderer.listen(el, 'mouseleave', () => {\n this.delayEnterLeave(true, false, this._mouseLeaveDelay);\n if (this.component?.overlay.overlayRef && !overlayElement) {\n overlayElement = this.component.overlay.overlayRef.overlayElement;\n this.triggerDisposables.push(this.renderer.listen(overlayElement, 'mouseenter', () => {\n this.delayEnterLeave(false, true, this._mouseEnterDelay);\n }));\n this.triggerDisposables.push(this.renderer.listen(overlayElement, 'mouseleave', () => {\n this.delayEnterLeave(false, false, this._mouseLeaveDelay);\n }));\n }\n }));\n } else if (trigger === 'focus') {\n this.triggerDisposables.push(this.renderer.listen(el, 'focusin', () => this.show()));\n this.triggerDisposables.push(this.renderer.listen(el, 'focusout', () => this.hide()));\n } else if (trigger === 'click') {\n this.triggerDisposables.push(this.renderer.listen(el, 'click', e => {\n e.preventDefault();\n this.show();\n }));\n }\n // Else do nothing because user wants to control the visibility programmatically.\n }\n\n updatePropertiesByChanges(changes) {\n this.updatePropertiesByKeys(Object.keys(changes));\n }\n updatePropertiesByKeys(keys) {\n const mappingProperties = {\n // common mappings\n title: ['nzTitle', () => this._title],\n directiveTitle: ['nzTitle', () => this._title],\n content: ['nzContent', () => this._content],\n directiveContent: ['nzContent', () => this._content],\n trigger: ['nzTrigger', () => this._trigger],\n placement: ['nzPlacement', () => this._placement],\n visible: ['nzVisible', () => this._visible],\n mouseEnterDelay: ['nzMouseEnterDelay', () => this._mouseEnterDelay],\n mouseLeaveDelay: ['nzMouseLeaveDelay', () => this._mouseLeaveDelay],\n overlayClassName: ['nzOverlayClassName', () => this._overlayClassName],\n overlayStyle: ['nzOverlayStyle', () => this._overlayStyle],\n arrowPointAtCenter: ['nzArrowPointAtCenter', () => this.arrowPointAtCenter],\n cdkConnectedOverlayPush: ['cdkConnectedOverlayPush', () => this.cdkConnectedOverlayPush],\n ...this.getProxyPropertyMap()\n };\n (keys || Object.keys(mappingProperties).filter(key => !key.startsWith('directive'))).forEach(property => {\n if (mappingProperties[property]) {\n const [name, valueFn] = mappingProperties[property];\n this.updateComponentValue(name, valueFn());\n }\n });\n this.component?.updateByDirective();\n }\n initProperties() {\n this.updatePropertiesByKeys();\n }\n updateComponentValue(key, value) {\n if (typeof value !== 'undefined') {\n // @ts-ignore\n this.component[key] = value;\n }\n }\n delayEnterLeave(isOrigin, isEnter, delay = -1) {\n if (this.delayTimer) {\n this.clearTogglingTimer();\n } else if (delay > 0) {\n this.delayTimer = setTimeout(() => {\n this.delayTimer = undefined;\n isEnter ? this.show() : this.hide();\n }, delay * 1000);\n } else {\n // `isOrigin` is used due to the tooltip will not hide immediately\n // (may caused by the fade-out animation).\n isEnter && isOrigin ? this.show() : this.hide();\n }\n }\n removeTriggerListeners() {\n this.triggerDisposables.forEach(dispose => dispose());\n this.triggerDisposables.length = 0;\n }\n clearTogglingTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = undefined;\n }\n }\n static {\n this.ɵfac = function NzTooltipBaseDirective_Factory(t) {\n return new (t || NzTooltipBaseDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.NzNoAnimationDirective), i0.ɵɵdirectiveInject(i2.NzConfigService));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzTooltipBaseDirective,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzTooltipBaseDirective, [{\n type: Directive\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i0.Renderer2\n }, {\n type: i1.NzNoAnimationDirective\n }, {\n type: i2.NzConfigService\n }], null);\n})();\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nclass NzTooltipBaseComponent {\n set nzVisible(value) {\n const visible = toBoolean(value);\n if (this._visible !== visible) {\n this._visible = visible;\n this.nzVisibleChange.next(visible);\n }\n }\n get nzVisible() {\n return this._visible;\n }\n set nzTrigger(value) {\n this._trigger = value;\n }\n get nzTrigger() {\n return this._trigger;\n }\n set nzPlacement(value) {\n const preferredPosition = value.map(placement => POSITION_MAP[placement]);\n this._positions = [...preferredPosition, ...DEFAULT_TOOLTIP_POSITIONS];\n }\n constructor(cdr, directionality, noAnimation) {\n this.cdr = cdr;\n this.directionality = directionality;\n this.noAnimation = noAnimation;\n this.nzTitle = null;\n this.nzContent = null;\n this.nzArrowPointAtCenter = false;\n this.nzOverlayStyle = {};\n this.nzBackdrop = false;\n this.cdkConnectedOverlayPush = true;\n this.nzVisibleChange = new Subject();\n this._visible = false;\n this._trigger = 'hover';\n this.preferredPlacement = 'top';\n this.dir = 'ltr';\n this._classMap = {};\n this._prefix = 'ant-tooltip';\n this._positions = [...DEFAULT_TOOLTIP_POSITIONS];\n this.destroy$ = new Subject();\n }\n ngOnInit() {\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n this.dir = this.directionality.value;\n }\n ngOnDestroy() {\n this.nzVisibleChange.complete();\n this.destroy$.next();\n this.destroy$.complete();\n }\n show() {\n if (this.nzVisible) {\n return;\n }\n if (!this.isEmpty()) {\n this.nzVisible = true;\n this.nzVisibleChange.next(true);\n this.cdr.detectChanges();\n }\n // for ltr for overlay to display tooltip in correct placement in rtl direction.\n if (this.origin && this.overlay && this.overlay.overlayRef && this.overlay.overlayRef.getDirection() === 'rtl') {\n this.overlay.overlayRef.setDirection('ltr');\n }\n }\n hide() {\n if (!this.nzVisible) {\n return;\n }\n this.nzVisible = false;\n this.nzVisibleChange.next(false);\n this.cdr.detectChanges();\n }\n updateByDirective() {\n this.updateStyles();\n this.cdr.detectChanges();\n Promise.resolve().then(() => {\n this.updatePosition();\n this.updateVisibilityByTitle();\n });\n }\n /**\n * Force the component to update its position.\n */\n updatePosition() {\n if (this.origin && this.overlay && this.overlay.overlayRef) {\n this.overlay.overlayRef.updatePosition();\n }\n }\n onPositionChange(position) {\n this.preferredPlacement = getPlacementName(position);\n this.updateStyles();\n // We have to trigger immediate change detection or the element would blink.\n this.cdr.detectChanges();\n }\n setOverlayOrigin(origin) {\n this.origin = origin;\n this.cdr.markForCheck();\n }\n onClickOutside(event) {\n if (!this.origin.nativeElement.contains(event.target) && this.nzTrigger !== null) {\n this.hide();\n }\n }\n /**\n * Hide the component while the content is empty.\n */\n updateVisibilityByTitle() {\n if (this.isEmpty()) {\n this.hide();\n }\n }\n updateStyles() {\n this._classMap = {\n [this.nzOverlayClassName]: true,\n [`${this._prefix}-placement-${this.preferredPlacement}`]: true\n };\n }\n static {\n this.ɵfac = function NzTooltipBaseComponent_Factory(t) {\n return new (t || NzTooltipBaseComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.Directionality, 8), i0.ɵɵdirectiveInject(i1.NzNoAnimationDirective));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzTooltipBaseComponent,\n viewQuery: function NzTooltipBaseComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.overlay = _t.first);\n }\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzTooltipBaseComponent, [{\n type: Directive\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i3.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i1.NzNoAnimationDirective\n }], {\n overlay: [{\n type: ViewChild,\n args: ['overlay', {\n static: false\n }]\n }]\n });\n})();\nfunction isTooltipEmpty(value) {\n return value instanceof TemplateRef ? false : value === '' || !isNotNil(value);\n}\nclass NzTooltipDirective extends NzTooltipBaseDirective {\n constructor(elementRef, hostView, renderer, noAnimation) {\n super(elementRef, hostView, renderer, noAnimation);\n this.titleContext = null;\n this.trigger = 'hover';\n this.placement = 'top';\n this.cdkConnectedOverlayPush = true;\n // eslint-disable-next-line @angular-eslint/no-output-rename\n this.visibleChange = new EventEmitter();\n this.componentRef = this.hostView.createComponent(NzToolTipComponent);\n }\n getProxyPropertyMap() {\n return {\n ...super.getProxyPropertyMap(),\n nzTooltipColor: ['nzColor', () => this.nzTooltipColor],\n titleContext: ['nzTitleContext', () => this.titleContext]\n };\n }\n static {\n this.ɵfac = function NzTooltipDirective_Factory(t) {\n return new (t || NzTooltipDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.NzNoAnimationDirective, 9));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzTooltipDirective,\n selectors: [[\"\", \"nz-tooltip\", \"\"]],\n hostVars: 2,\n hostBindings: function NzTooltipDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"ant-tooltip-open\", ctx.visible);\n }\n },\n inputs: {\n title: [\"nzTooltipTitle\", \"title\"],\n titleContext: [\"nzTooltipTitleContext\", \"titleContext\"],\n directiveTitle: [\"nz-tooltip\", \"directiveTitle\"],\n trigger: [\"nzTooltipTrigger\", \"trigger\"],\n placement: [\"nzTooltipPlacement\", \"placement\"],\n origin: [\"nzTooltipOrigin\", \"origin\"],\n visible: [\"nzTooltipVisible\", \"visible\"],\n mouseEnterDelay: [\"nzTooltipMouseEnterDelay\", \"mouseEnterDelay\"],\n mouseLeaveDelay: [\"nzTooltipMouseLeaveDelay\", \"mouseLeaveDelay\"],\n overlayClassName: [\"nzTooltipOverlayClassName\", \"overlayClassName\"],\n overlayStyle: [\"nzTooltipOverlayStyle\", \"overlayStyle\"],\n arrowPointAtCenter: [\"nzTooltipArrowPointAtCenter\", \"arrowPointAtCenter\"],\n cdkConnectedOverlayPush: \"cdkConnectedOverlayPush\",\n nzTooltipColor: \"nzTooltipColor\"\n },\n outputs: {\n visibleChange: \"nzTooltipVisibleChange\"\n },\n exportAs: [\"nzTooltip\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n__decorate([InputBoolean()], NzTooltipDirective.prototype, \"arrowPointAtCenter\", void 0);\n__decorate([InputBoolean()], NzTooltipDirective.prototype, \"cdkConnectedOverlayPush\", void 0);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzTooltipDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-tooltip]',\n exportAs: 'nzTooltip',\n host: {\n '[class.ant-tooltip-open]': 'visible'\n },\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i0.Renderer2\n }, {\n type: i1.NzNoAnimationDirective,\n decorators: [{\n type: Host\n }, {\n type: Optional\n }]\n }], {\n title: [{\n type: Input,\n args: ['nzTooltipTitle']\n }],\n titleContext: [{\n type: Input,\n args: ['nzTooltipTitleContext']\n }],\n directiveTitle: [{\n type: Input,\n args: ['nz-tooltip']\n }],\n trigger: [{\n type: Input,\n args: ['nzTooltipTrigger']\n }],\n placement: [{\n type: Input,\n args: ['nzTooltipPlacement']\n }],\n origin: [{\n type: Input,\n args: ['nzTooltipOrigin']\n }],\n visible: [{\n type: Input,\n args: ['nzTooltipVisible']\n }],\n mouseEnterDelay: [{\n type: Input,\n args: ['nzTooltipMouseEnterDelay']\n }],\n mouseLeaveDelay: [{\n type: Input,\n args: ['nzTooltipMouseLeaveDelay']\n }],\n overlayClassName: [{\n type: Input,\n args: ['nzTooltipOverlayClassName']\n }],\n overlayStyle: [{\n type: Input,\n args: ['nzTooltipOverlayStyle']\n }],\n arrowPointAtCenter: [{\n type: Input,\n args: ['nzTooltipArrowPointAtCenter']\n }],\n cdkConnectedOverlayPush: [{\n type: Input\n }],\n nzTooltipColor: [{\n type: Input\n }],\n visibleChange: [{\n type: Output,\n args: ['nzTooltipVisibleChange']\n }]\n });\n})();\nclass NzToolTipComponent extends NzTooltipBaseComponent {\n constructor(cdr, directionality, noAnimation) {\n super(cdr, directionality, noAnimation);\n this.nzTitle = null;\n this.nzTitleContext = null;\n this._contentStyleMap = {};\n }\n isEmpty() {\n return isTooltipEmpty(this.nzTitle);\n }\n updateStyles() {\n const isColorPreset = this.nzColor && isPresetColor(this.nzColor);\n this._classMap = {\n [this.nzOverlayClassName]: true,\n [`${this._prefix}-placement-${this.preferredPlacement}`]: true,\n [`${this._prefix}-${this.nzColor}`]: isColorPreset\n };\n this._contentStyleMap = {\n backgroundColor: !!this.nzColor && !isColorPreset ? this.nzColor : null,\n '--color': this.nzColor\n };\n }\n static {\n this.ɵfac = function NzToolTipComponent_Factory(t) {\n return new (t || NzToolTipComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.Directionality, 8), i0.ɵɵdirectiveInject(i1.NzNoAnimationDirective, 9));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzToolTipComponent,\n selectors: [[\"nz-tooltip\"]],\n exportAs: [\"nzTooltipComponent\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 5,\n consts: [[\"cdkConnectedOverlay\", \"\", \"nzConnectedOverlay\", \"\", 3, \"cdkConnectedOverlayOrigin\", \"cdkConnectedOverlayOpen\", \"cdkConnectedOverlayPositions\", \"cdkConnectedOverlayPush\", \"nzArrowPointAtCenter\", \"overlayOutsideClick\", \"detach\", \"positionChange\"], [\"overlay\", \"cdkConnectedOverlay\"], [1, \"ant-tooltip\", 3, \"ngClass\", \"ngStyle\", \"nzNoAnimation\"], [1, \"ant-tooltip-content\"], [1, \"ant-tooltip-arrow\"], [1, \"ant-tooltip-arrow-content\", 3, \"ngStyle\"], [1, \"ant-tooltip-inner\", 3, \"ngStyle\"], [4, \"nzStringTemplateOutlet\", \"nzStringTemplateOutletContext\"]],\n template: function NzToolTipComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NzToolTipComponent_ng_template_0_Template, 6, 11, \"ng-template\", 0, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵlistener(\"overlayOutsideClick\", function NzToolTipComponent_Template_ng_template_overlayOutsideClick_0_listener($event) {\n return ctx.onClickOutside($event);\n })(\"detach\", function NzToolTipComponent_Template_ng_template_detach_0_listener() {\n return ctx.hide();\n })(\"positionChange\", function NzToolTipComponent_Template_ng_template_positionChange_0_listener($event) {\n return ctx.onPositionChange($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"cdkConnectedOverlayOrigin\", ctx.origin)(\"cdkConnectedOverlayOpen\", ctx._visible)(\"cdkConnectedOverlayPositions\", ctx._positions)(\"cdkConnectedOverlayPush\", ctx.cdkConnectedOverlayPush)(\"nzArrowPointAtCenter\", ctx.nzArrowPointAtCenter);\n }\n },\n dependencies: [OverlayModule, i3$1.CdkConnectedOverlay, NgClass, NgStyle, NzNoAnimationDirective, NzOutletModule, i4.NzStringTemplateOutletDirective, NzOverlayModule, i5.NzConnectedOverlayDirective],\n encapsulation: 2,\n data: {\n animation: [zoomBigMotion]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzToolTipComponent, [{\n type: Component,\n args: [{\n selector: 'nz-tooltip',\n exportAs: 'nzTooltipComponent',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [zoomBigMotion],\n template: `\n \n \n \n `,\n preserveWhitespaces: false,\n imports: [OverlayModule, NgClass, NgStyle, NzNoAnimationDirective, NzOutletModule, NzOverlayModule],\n standalone: true\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i3.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i1.NzNoAnimationDirective,\n decorators: [{\n type: Host\n }, {\n type: Optional\n }]\n }], null);\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 NzToolTipModule {\n static {\n this.ɵfac = function NzToolTipModule_Factory(t) {\n return new (t || NzToolTipModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzToolTipModule,\n imports: [NzToolTipComponent, NzTooltipDirective],\n exports: [NzToolTipComponent, NzTooltipDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [NzToolTipComponent]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzToolTipModule, [{\n type: NgModule,\n args: [{\n imports: [NzToolTipComponent, NzTooltipDirective],\n exports: [NzToolTipComponent, NzTooltipDirective]\n }]\n }], null, null);\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 { NzToolTipComponent, NzToolTipModule, NzTooltipBaseComponent, NzTooltipBaseDirective, NzTooltipDirective, isTooltipEmpty };\n"],
- "mappings": "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",
- "names": ["delay"]
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-6RXUTAFR.js b/.angular/cache/17.0.7/vite/deps/chunk-6RXUTAFR.js
deleted file mode 100644
index 7fed394..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-6RXUTAFR.js
+++ /dev/null
@@ -1,309 +0,0 @@
-import {
- NzDestroyService
-} from "./chunk-D5ODNR6D.js";
-import {
- CdkConnectedOverlay,
- CdkOverlayOrigin,
- ConnectionPositionPair
-} from "./chunk-6U656R5M.js";
-import {
- InputBoolean
-} from "./chunk-M5GY4FCO.js";
-import {
- Directive,
- ElementRef,
- Input,
- NgModule,
- __decorate,
- setClassMetadata,
- takeUntil,
- ɵɵProvidersFeature,
- ɵɵdefineDirective,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject
-} from "./chunk-FGESKT7O.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-overlay.mjs
-var POSITION_MAP = {
- top: new ConnectionPositionPair({
- originX: "center",
- originY: "top"
- }, {
- overlayX: "center",
- overlayY: "bottom"
- }),
- topCenter: new ConnectionPositionPair({
- originX: "center",
- originY: "top"
- }, {
- overlayX: "center",
- overlayY: "bottom"
- }),
- topLeft: new ConnectionPositionPair({
- originX: "start",
- originY: "top"
- }, {
- overlayX: "start",
- overlayY: "bottom"
- }),
- topRight: new ConnectionPositionPair({
- originX: "end",
- originY: "top"
- }, {
- overlayX: "end",
- overlayY: "bottom"
- }),
- right: new ConnectionPositionPair({
- originX: "end",
- originY: "center"
- }, {
- overlayX: "start",
- overlayY: "center"
- }),
- rightTop: new ConnectionPositionPair({
- originX: "end",
- originY: "top"
- }, {
- overlayX: "start",
- overlayY: "top"
- }),
- rightBottom: new ConnectionPositionPair({
- originX: "end",
- originY: "bottom"
- }, {
- overlayX: "start",
- overlayY: "bottom"
- }),
- bottom: new ConnectionPositionPair({
- originX: "center",
- originY: "bottom"
- }, {
- overlayX: "center",
- overlayY: "top"
- }),
- bottomCenter: new ConnectionPositionPair({
- originX: "center",
- originY: "bottom"
- }, {
- overlayX: "center",
- overlayY: "top"
- }),
- bottomLeft: new ConnectionPositionPair({
- originX: "start",
- originY: "bottom"
- }, {
- overlayX: "start",
- overlayY: "top"
- }),
- bottomRight: new ConnectionPositionPair({
- originX: "end",
- originY: "bottom"
- }, {
- overlayX: "end",
- overlayY: "top"
- }),
- left: new ConnectionPositionPair({
- originX: "start",
- originY: "center"
- }, {
- overlayX: "end",
- overlayY: "center"
- }),
- leftTop: new ConnectionPositionPair({
- originX: "start",
- originY: "top"
- }, {
- overlayX: "end",
- overlayY: "top"
- }),
- leftBottom: new ConnectionPositionPair({
- originX: "start",
- originY: "bottom"
- }, {
- overlayX: "end",
- overlayY: "bottom"
- })
-};
-var DEFAULT_TOOLTIP_POSITIONS = [POSITION_MAP.top, POSITION_MAP.right, POSITION_MAP.bottom, POSITION_MAP.left];
-var DEFAULT_CASCADER_POSITIONS = [POSITION_MAP.bottomLeft, POSITION_MAP.bottomRight, POSITION_MAP.topLeft, POSITION_MAP.topRight, POSITION_MAP.topCenter, POSITION_MAP.bottomCenter];
-var DEFAULT_MENTION_TOP_POSITIONS = [new ConnectionPositionPair({
- originX: "start",
- originY: "bottom"
-}, {
- overlayX: "start",
- overlayY: "bottom"
-}), new ConnectionPositionPair({
- originX: "start",
- originY: "bottom"
-}, {
- overlayX: "end",
- overlayY: "bottom"
-})];
-var DEFAULT_MENTION_BOTTOM_POSITIONS = [POSITION_MAP.bottomLeft, new ConnectionPositionPair({
- originX: "start",
- originY: "bottom"
-}, {
- overlayX: "end",
- overlayY: "top"
-})];
-function getPlacementName(position) {
- for (const placement in POSITION_MAP) {
- if (position.connectionPair.originX === POSITION_MAP[placement].originX && position.connectionPair.originY === POSITION_MAP[placement].originY && position.connectionPair.overlayX === POSITION_MAP[placement].overlayX && position.connectionPair.overlayY === POSITION_MAP[placement].overlayY) {
- return placement;
- }
- }
- return void 0;
-}
-var DATE_PICKER_POSITION_MAP = {
- bottomLeft: new ConnectionPositionPair({
- originX: "start",
- originY: "bottom"
- }, {
- overlayX: "start",
- overlayY: "top"
- }, void 0, 2),
- topLeft: new ConnectionPositionPair({
- originX: "start",
- originY: "top"
- }, {
- overlayX: "start",
- overlayY: "bottom"
- }, void 0, -2),
- bottomRight: new ConnectionPositionPair({
- originX: "end",
- originY: "bottom"
- }, {
- overlayX: "end",
- overlayY: "top"
- }, void 0, 2),
- topRight: new ConnectionPositionPair({
- originX: "end",
- originY: "top"
- }, {
- overlayX: "end",
- overlayY: "bottom"
- }, void 0, -2)
-};
-var DEFAULT_DATE_PICKER_POSITIONS = [DATE_PICKER_POSITION_MAP.bottomLeft, DATE_PICKER_POSITION_MAP.topLeft, DATE_PICKER_POSITION_MAP.bottomRight, DATE_PICKER_POSITION_MAP.topRight];
-var _NzConnectedOverlayDirective = class _NzConnectedOverlayDirective {
- constructor(cdkConnectedOverlay, nzDestroyService) {
- this.cdkConnectedOverlay = cdkConnectedOverlay;
- this.nzDestroyService = nzDestroyService;
- this.nzArrowPointAtCenter = false;
- this.cdkConnectedOverlay.backdropClass = "nz-overlay-transparent-backdrop";
- this.cdkConnectedOverlay.positionChange.pipe(takeUntil(this.nzDestroyService)).subscribe((position) => {
- if (this.nzArrowPointAtCenter) {
- this.updateArrowPosition(position);
- }
- });
- }
- updateArrowPosition(position) {
- const originRect = this.getOriginRect();
- const placement = getPlacementName(position);
- let offsetX = 0;
- let offsetY = 0;
- if (placement === "topLeft" || placement === "bottomLeft") {
- offsetX = originRect.width / 2 - 14;
- } else if (placement === "topRight" || placement === "bottomRight") {
- offsetX = -(originRect.width / 2 - 14);
- } else if (placement === "leftTop" || placement === "rightTop") {
- offsetY = originRect.height / 2 - 10;
- } else if (placement === "leftBottom" || placement === "rightBottom") {
- offsetY = -(originRect.height / 2 - 10);
- }
- if (this.cdkConnectedOverlay.offsetX !== offsetX || this.cdkConnectedOverlay.offsetY !== offsetY) {
- this.cdkConnectedOverlay.offsetY = offsetY;
- this.cdkConnectedOverlay.offsetX = offsetX;
- this.cdkConnectedOverlay.overlayRef.updatePosition();
- }
- }
- getFlexibleConnectedPositionStrategyOrigin() {
- if (this.cdkConnectedOverlay.origin instanceof CdkOverlayOrigin) {
- return this.cdkConnectedOverlay.origin.elementRef;
- } else {
- return this.cdkConnectedOverlay.origin;
- }
- }
- getOriginRect() {
- const origin = this.getFlexibleConnectedPositionStrategyOrigin();
- if (origin instanceof ElementRef) {
- return origin.nativeElement.getBoundingClientRect();
- }
- if (origin instanceof Element) {
- return origin.getBoundingClientRect();
- }
- const width = origin.width || 0;
- const height = origin.height || 0;
- return {
- top: origin.y,
- bottom: origin.y + height,
- left: origin.x,
- right: origin.x + width,
- height,
- width
- };
- }
-};
-_NzConnectedOverlayDirective.ɵfac = function NzConnectedOverlayDirective_Factory(t) {
- return new (t || _NzConnectedOverlayDirective)(ɵɵdirectiveInject(CdkConnectedOverlay), ɵɵdirectiveInject(NzDestroyService));
-};
-_NzConnectedOverlayDirective.ɵdir = ɵɵdefineDirective({
- type: _NzConnectedOverlayDirective,
- selectors: [["", "cdkConnectedOverlay", "", "nzConnectedOverlay", ""]],
- inputs: {
- nzArrowPointAtCenter: "nzArrowPointAtCenter"
- },
- exportAs: ["nzConnectedOverlay"],
- features: [ɵɵProvidersFeature([NzDestroyService])]
-});
-var NzConnectedOverlayDirective = _NzConnectedOverlayDirective;
-__decorate([InputBoolean()], NzConnectedOverlayDirective.prototype, "nzArrowPointAtCenter", void 0);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzConnectedOverlayDirective, [{
- type: Directive,
- args: [{
- selector: "[cdkConnectedOverlay][nzConnectedOverlay]",
- exportAs: "nzConnectedOverlay",
- providers: [NzDestroyService]
- }]
- }], () => [{
- type: CdkConnectedOverlay
- }, {
- type: NzDestroyService
- }], {
- nzArrowPointAtCenter: [{
- type: Input
- }]
- });
-})();
-var _NzOverlayModule = class _NzOverlayModule {
-};
-_NzOverlayModule.ɵfac = function NzOverlayModule_Factory(t) {
- return new (t || _NzOverlayModule)();
-};
-_NzOverlayModule.ɵmod = ɵɵdefineNgModule({
- type: _NzOverlayModule,
- declarations: [NzConnectedOverlayDirective],
- exports: [NzConnectedOverlayDirective]
-});
-_NzOverlayModule.ɵinj = ɵɵdefineInjector({});
-var NzOverlayModule = _NzOverlayModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzOverlayModule, [{
- type: NgModule,
- args: [{
- declarations: [NzConnectedOverlayDirective],
- exports: [NzConnectedOverlayDirective]
- }]
- }], null, null);
-})();
-
-export {
- POSITION_MAP,
- DEFAULT_TOOLTIP_POSITIONS,
- getPlacementName,
- NzConnectedOverlayDirective,
- NzOverlayModule
-};
-//# sourceMappingURL=chunk-6RXUTAFR.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-6RXUTAFR.js.map b/.angular/cache/17.0.7/vite/deps/chunk-6RXUTAFR.js.map
deleted file mode 100644
index fc8983e..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-6RXUTAFR.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-overlay.mjs"],
- "sourcesContent": ["import { __decorate } from 'tslib';\nimport * as i1 from '@angular/cdk/overlay';\nimport { ConnectionPositionPair, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport * as i0 from '@angular/core';\nimport { ElementRef, Directive, Input, NgModule } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i2 from 'ng-zorro-antd/core/services';\nimport { NzDestroyService } from 'ng-zorro-antd/core/services';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\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 POSITION_MAP = {\n top: new ConnectionPositionPair({\n originX: 'center',\n originY: 'top'\n }, {\n overlayX: 'center',\n overlayY: 'bottom'\n }),\n topCenter: new ConnectionPositionPair({\n originX: 'center',\n originY: 'top'\n }, {\n overlayX: 'center',\n overlayY: 'bottom'\n }),\n topLeft: new ConnectionPositionPair({\n originX: 'start',\n originY: 'top'\n }, {\n overlayX: 'start',\n overlayY: 'bottom'\n }),\n topRight: new ConnectionPositionPair({\n originX: 'end',\n originY: 'top'\n }, {\n overlayX: 'end',\n overlayY: 'bottom'\n }),\n right: new ConnectionPositionPair({\n originX: 'end',\n originY: 'center'\n }, {\n overlayX: 'start',\n overlayY: 'center'\n }),\n rightTop: new ConnectionPositionPair({\n originX: 'end',\n originY: 'top'\n }, {\n overlayX: 'start',\n overlayY: 'top'\n }),\n rightBottom: new ConnectionPositionPair({\n originX: 'end',\n originY: 'bottom'\n }, {\n overlayX: 'start',\n overlayY: 'bottom'\n }),\n bottom: new ConnectionPositionPair({\n originX: 'center',\n originY: 'bottom'\n }, {\n overlayX: 'center',\n overlayY: 'top'\n }),\n bottomCenter: new ConnectionPositionPair({\n originX: 'center',\n originY: 'bottom'\n }, {\n overlayX: 'center',\n overlayY: 'top'\n }),\n bottomLeft: new ConnectionPositionPair({\n originX: 'start',\n originY: 'bottom'\n }, {\n overlayX: 'start',\n overlayY: 'top'\n }),\n bottomRight: new ConnectionPositionPair({\n originX: 'end',\n originY: 'bottom'\n }, {\n overlayX: 'end',\n overlayY: 'top'\n }),\n left: new ConnectionPositionPair({\n originX: 'start',\n originY: 'center'\n }, {\n overlayX: 'end',\n overlayY: 'center'\n }),\n leftTop: new ConnectionPositionPair({\n originX: 'start',\n originY: 'top'\n }, {\n overlayX: 'end',\n overlayY: 'top'\n }),\n leftBottom: new ConnectionPositionPair({\n originX: 'start',\n originY: 'bottom'\n }, {\n overlayX: 'end',\n overlayY: 'bottom'\n })\n};\nconst DEFAULT_TOOLTIP_POSITIONS = [POSITION_MAP.top, POSITION_MAP.right, POSITION_MAP.bottom, POSITION_MAP.left];\nconst DEFAULT_CASCADER_POSITIONS = [POSITION_MAP.bottomLeft, POSITION_MAP.bottomRight, POSITION_MAP.topLeft, POSITION_MAP.topRight, POSITION_MAP.topCenter, POSITION_MAP.bottomCenter];\nconst DEFAULT_MENTION_TOP_POSITIONS = [new ConnectionPositionPair({\n originX: 'start',\n originY: 'bottom'\n}, {\n overlayX: 'start',\n overlayY: 'bottom'\n}), new ConnectionPositionPair({\n originX: 'start',\n originY: 'bottom'\n}, {\n overlayX: 'end',\n overlayY: 'bottom'\n})];\nconst DEFAULT_MENTION_BOTTOM_POSITIONS = [POSITION_MAP.bottomLeft, new ConnectionPositionPair({\n originX: 'start',\n originY: 'bottom'\n}, {\n overlayX: 'end',\n overlayY: 'top'\n})];\nfunction getPlacementName(position) {\n for (const placement in POSITION_MAP) {\n if (position.connectionPair.originX === POSITION_MAP[placement].originX && position.connectionPair.originY === POSITION_MAP[placement].originY && position.connectionPair.overlayX === POSITION_MAP[placement].overlayX && position.connectionPair.overlayY === POSITION_MAP[placement].overlayY) {\n return placement;\n }\n }\n return undefined;\n}\nconst DATE_PICKER_POSITION_MAP = {\n bottomLeft: new ConnectionPositionPair({\n originX: 'start',\n originY: 'bottom'\n }, {\n overlayX: 'start',\n overlayY: 'top'\n }, undefined, 2),\n topLeft: new ConnectionPositionPair({\n originX: 'start',\n originY: 'top'\n }, {\n overlayX: 'start',\n overlayY: 'bottom'\n }, undefined, -2),\n bottomRight: new ConnectionPositionPair({\n originX: 'end',\n originY: 'bottom'\n }, {\n overlayX: 'end',\n overlayY: 'top'\n }, undefined, 2),\n topRight: new ConnectionPositionPair({\n originX: 'end',\n originY: 'top'\n }, {\n overlayX: 'end',\n overlayY: 'bottom'\n }, undefined, -2)\n};\nconst DEFAULT_DATE_PICKER_POSITIONS = [DATE_PICKER_POSITION_MAP.bottomLeft, DATE_PICKER_POSITION_MAP.topLeft, DATE_PICKER_POSITION_MAP.bottomRight, DATE_PICKER_POSITION_MAP.topRight];\nclass NzConnectedOverlayDirective {\n constructor(cdkConnectedOverlay, nzDestroyService) {\n this.cdkConnectedOverlay = cdkConnectedOverlay;\n this.nzDestroyService = nzDestroyService;\n this.nzArrowPointAtCenter = false;\n this.cdkConnectedOverlay.backdropClass = 'nz-overlay-transparent-backdrop';\n this.cdkConnectedOverlay.positionChange.pipe(takeUntil(this.nzDestroyService)).subscribe(position => {\n if (this.nzArrowPointAtCenter) {\n this.updateArrowPosition(position);\n }\n });\n }\n updateArrowPosition(position) {\n const originRect = this.getOriginRect();\n const placement = getPlacementName(position);\n let offsetX = 0;\n let offsetY = 0;\n if (placement === 'topLeft' || placement === 'bottomLeft') {\n offsetX = originRect.width / 2 - 14;\n } else if (placement === 'topRight' || placement === 'bottomRight') {\n offsetX = -(originRect.width / 2 - 14);\n } else if (placement === 'leftTop' || placement === 'rightTop') {\n offsetY = originRect.height / 2 - 10;\n } else if (placement === 'leftBottom' || placement === 'rightBottom') {\n offsetY = -(originRect.height / 2 - 10);\n }\n if (this.cdkConnectedOverlay.offsetX !== offsetX || this.cdkConnectedOverlay.offsetY !== offsetY) {\n this.cdkConnectedOverlay.offsetY = offsetY;\n this.cdkConnectedOverlay.offsetX = offsetX;\n this.cdkConnectedOverlay.overlayRef.updatePosition();\n }\n }\n getFlexibleConnectedPositionStrategyOrigin() {\n if (this.cdkConnectedOverlay.origin instanceof CdkOverlayOrigin) {\n return this.cdkConnectedOverlay.origin.elementRef;\n } else {\n return this.cdkConnectedOverlay.origin;\n }\n }\n getOriginRect() {\n const origin = this.getFlexibleConnectedPositionStrategyOrigin();\n if (origin instanceof ElementRef) {\n return origin.nativeElement.getBoundingClientRect();\n }\n // Check for Element so SVG elements are also supported.\n if (origin instanceof Element) {\n return origin.getBoundingClientRect();\n }\n const width = origin.width || 0;\n const height = origin.height || 0;\n // If the origin is a point, return a client rect as if it was a 0x0 element at the point.\n return {\n top: origin.y,\n bottom: origin.y + height,\n left: origin.x,\n right: origin.x + width,\n height,\n width\n };\n }\n static {\n this.ɵfac = function NzConnectedOverlayDirective_Factory(t) {\n return new (t || NzConnectedOverlayDirective)(i0.ɵɵdirectiveInject(i1.CdkConnectedOverlay), i0.ɵɵdirectiveInject(i2.NzDestroyService));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzConnectedOverlayDirective,\n selectors: [[\"\", \"cdkConnectedOverlay\", \"\", \"nzConnectedOverlay\", \"\"]],\n inputs: {\n nzArrowPointAtCenter: \"nzArrowPointAtCenter\"\n },\n exportAs: [\"nzConnectedOverlay\"],\n features: [i0.ɵɵProvidersFeature([NzDestroyService])]\n });\n }\n}\n__decorate([InputBoolean()], NzConnectedOverlayDirective.prototype, \"nzArrowPointAtCenter\", void 0);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzConnectedOverlayDirective, [{\n type: Directive,\n args: [{\n selector: '[cdkConnectedOverlay][nzConnectedOverlay]',\n exportAs: 'nzConnectedOverlay',\n providers: [NzDestroyService]\n }]\n }], () => [{\n type: i1.CdkConnectedOverlay\n }, {\n type: i2.NzDestroyService\n }], {\n nzArrowPointAtCenter: [{\n type: Input\n }]\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 NzOverlayModule {\n static {\n this.ɵfac = function NzOverlayModule_Factory(t) {\n return new (t || NzOverlayModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzOverlayModule,\n declarations: [NzConnectedOverlayDirective],\n exports: [NzConnectedOverlayDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzOverlayModule, [{\n type: NgModule,\n args: [{\n declarations: [NzConnectedOverlayDirective],\n exports: [NzConnectedOverlayDirective]\n }]\n }], null, null);\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 { DATE_PICKER_POSITION_MAP, DEFAULT_CASCADER_POSITIONS, DEFAULT_DATE_PICKER_POSITIONS, DEFAULT_MENTION_BOTTOM_POSITIONS, DEFAULT_MENTION_TOP_POSITIONS, DEFAULT_TOOLTIP_POSITIONS, NzConnectedOverlayDirective, NzOverlayModule, POSITION_MAP, getPlacementName };\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-6U656R5M.js b/.angular/cache/17.0.7/vite/deps/chunk-6U656R5M.js
deleted file mode 100644
index 6f19629..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-6U656R5M.js
+++ /dev/null
@@ -1,4992 +0,0 @@
-import {
- ESCAPE,
- hasModifierKey
-} from "./chunk-JGP5BR6B.js";
-import {
- BidiModule,
- Directionality
-} from "./chunk-6NZ2BEBG.js";
-import {
- Platform,
- _getEventTarget,
- _isTestEnvironment,
- getRtlScrollAxisType,
- supportsScrollBehavior
-} from "./chunk-IAC53GOD.js";
-import {
- coerceArray,
- coerceCssPixelValue,
- coerceElement,
- coerceNumberProperty
-} from "./chunk-M5GY4FCO.js";
-import {
- DOCUMENT,
- Location
-} from "./chunk-OSQBUYO6.js";
-import {
- ANIMATION_MODULE_TYPE,
- ApplicationRef,
- ChangeDetectionStrategy,
- ChangeDetectorRef,
- Component,
- ComponentFactoryResolver$1,
- ConnectableObservable,
- Directive,
- ElementRef,
- EventEmitter,
- Inject,
- Injectable,
- InjectionToken,
- Injector,
- Input,
- IterableDiffers,
- NgModule,
- NgZone,
- Observable,
- Optional,
- Output,
- SkipSelf,
- Subject,
- Subscription,
- TemplateRef,
- ViewChild,
- ViewContainerRef,
- ViewEncapsulation$1,
- animationFrameScheduler,
- asapScheduler,
- auditTime,
- booleanAttribute,
- distinctUntilChanged,
- filter,
- forwardRef,
- fromEvent,
- inject,
- isObservable,
- merge,
- of,
- pairwise,
- setClassMetadata,
- shareReplay,
- startWith,
- switchMap,
- take,
- takeUntil,
- takeWhile,
- ɵɵInheritDefinitionFeature,
- ɵɵInputTransformsFeature,
- ɵɵNgOnChangesFeature,
- ɵɵProvidersFeature,
- ɵɵStandaloneFeature,
- ɵɵadvance,
- ɵɵclassProp,
- ɵɵdefineComponent,
- ɵɵdefineDirective,
- ɵɵdefineInjectable,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵelement,
- ɵɵelementEnd,
- ɵɵelementStart,
- ɵɵgetInheritedFactory,
- ɵɵinject,
- ɵɵloadQuery,
- ɵɵprojection,
- ɵɵprojectionDef,
- ɵɵqueryRefresh,
- ɵɵstyleProp,
- ɵɵviewQuery
-} from "./chunk-FGESKT7O.js";
-import {
- __spreadProps,
- __spreadValues
-} from "./chunk-HSNDBVJ3.js";
-
-// node_modules/@angular/cdk/fesm2022/collections.mjs
-var DataSource = class {
-};
-function isDataSource(value) {
- return value && typeof value.connect === "function" && !(value instanceof ConnectableObservable);
-}
-var ArrayDataSource = class extends DataSource {
- constructor(_data) {
- super();
- this._data = _data;
- }
- connect() {
- return isObservable(this._data) ? this._data : of(this._data);
- }
- disconnect() {
- }
-};
-var _RecycleViewRepeaterStrategy = class {
- constructor() {
- this.viewCacheSize = 20;
- this._viewCache = [];
- }
- /** Apply changes to the DOM. */
- applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {
- changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {
- let view;
- let operation;
- if (record.previousIndex == null) {
- const viewArgsFactory = () => itemContextFactory(record, adjustedPreviousIndex, currentIndex);
- view = this._insertView(viewArgsFactory, currentIndex, viewContainerRef, itemValueResolver(record));
- operation = view ? 1 : 0;
- } else if (currentIndex == null) {
- this._detachAndCacheView(adjustedPreviousIndex, viewContainerRef);
- operation = 3;
- } else {
- view = this._moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, itemValueResolver(record));
- operation = 2;
- }
- if (itemViewChanged) {
- itemViewChanged({
- context: view?.context,
- operation,
- record
- });
- }
- });
- }
- detach() {
- for (const view of this._viewCache) {
- view.destroy();
- }
- this._viewCache = [];
- }
- /**
- * Inserts a view for a new item, either from the cache or by creating a new
- * one. Returns `undefined` if the item was inserted into a cached view.
- */
- _insertView(viewArgsFactory, currentIndex, viewContainerRef, value) {
- const cachedView = this._insertViewFromCache(currentIndex, viewContainerRef);
- if (cachedView) {
- cachedView.context.$implicit = value;
- return void 0;
- }
- const viewArgs = viewArgsFactory();
- return viewContainerRef.createEmbeddedView(viewArgs.templateRef, viewArgs.context, viewArgs.index);
- }
- /** Detaches the view at the given index and inserts into the view cache. */
- _detachAndCacheView(index, viewContainerRef) {
- const detachedView = viewContainerRef.detach(index);
- this._maybeCacheView(detachedView, viewContainerRef);
- }
- /** Moves view at the previous index to the current index. */
- _moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, value) {
- const view = viewContainerRef.get(adjustedPreviousIndex);
- viewContainerRef.move(view, currentIndex);
- view.context.$implicit = value;
- return view;
- }
- /**
- * Cache the given detached view. If the cache is full, the view will be
- * destroyed.
- */
- _maybeCacheView(view, viewContainerRef) {
- if (this._viewCache.length < this.viewCacheSize) {
- this._viewCache.push(view);
- } else {
- const index = viewContainerRef.indexOf(view);
- if (index === -1) {
- view.destroy();
- } else {
- viewContainerRef.remove(index);
- }
- }
- }
- /** Inserts a recycled view from the cache at the given index. */
- _insertViewFromCache(index, viewContainerRef) {
- const cachedView = this._viewCache.pop();
- if (cachedView) {
- viewContainerRef.insert(cachedView, index);
- }
- return cachedView || null;
- }
-};
-var _UniqueSelectionDispatcher = class _UniqueSelectionDispatcher {
- constructor() {
- this._listeners = [];
- }
- /**
- * Notify other items that selection for the given name has been set.
- * @param id ID of the item.
- * @param name Name of the item.
- */
- notify(id, name) {
- for (let listener of this._listeners) {
- listener(id, name);
- }
- }
- /**
- * Listen for future changes to item selection.
- * @return Function used to deregister listener
- */
- listen(listener) {
- this._listeners.push(listener);
- return () => {
- this._listeners = this._listeners.filter((registered) => {
- return listener !== registered;
- });
- };
- }
- ngOnDestroy() {
- this._listeners = [];
- }
-};
-_UniqueSelectionDispatcher.ɵfac = function UniqueSelectionDispatcher_Factory(t) {
- return new (t || _UniqueSelectionDispatcher)();
-};
-_UniqueSelectionDispatcher.ɵprov = ɵɵdefineInjectable({
- token: _UniqueSelectionDispatcher,
- factory: _UniqueSelectionDispatcher.ɵfac,
- providedIn: "root"
-});
-var UniqueSelectionDispatcher = _UniqueSelectionDispatcher;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(UniqueSelectionDispatcher, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], null, null);
-})();
-var _VIEW_REPEATER_STRATEGY = new InjectionToken("_ViewRepeater");
-
-// node_modules/@angular/cdk/fesm2022/scrolling.mjs
-var _c0 = ["contentWrapper"];
-var _c1 = ["*"];
-var VIRTUAL_SCROLL_STRATEGY = new InjectionToken("VIRTUAL_SCROLL_STRATEGY");
-var FixedSizeVirtualScrollStrategy = class {
- /**
- * @param itemSize The size of the items in the virtually scrolling list.
- * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more
- * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.
- */
- constructor(itemSize, minBufferPx, maxBufferPx) {
- this._scrolledIndexChange = new Subject();
- this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());
- this._viewport = null;
- this._itemSize = itemSize;
- this._minBufferPx = minBufferPx;
- this._maxBufferPx = maxBufferPx;
- }
- /**
- * Attaches this scroll strategy to a viewport.
- * @param viewport The viewport to attach this strategy to.
- */
- attach(viewport) {
- this._viewport = viewport;
- this._updateTotalContentSize();
- this._updateRenderedRange();
- }
- /** Detaches this scroll strategy from the currently attached viewport. */
- detach() {
- this._scrolledIndexChange.complete();
- this._viewport = null;
- }
- /**
- * Update the item size and buffer size.
- * @param itemSize The size of the items in the virtually scrolling list.
- * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more
- * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.
- */
- updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {
- if (maxBufferPx < minBufferPx && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw Error("CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx");
- }
- this._itemSize = itemSize;
- this._minBufferPx = minBufferPx;
- this._maxBufferPx = maxBufferPx;
- this._updateTotalContentSize();
- this._updateRenderedRange();
- }
- /** @docs-private Implemented as part of VirtualScrollStrategy. */
- onContentScrolled() {
- this._updateRenderedRange();
- }
- /** @docs-private Implemented as part of VirtualScrollStrategy. */
- onDataLengthChanged() {
- this._updateTotalContentSize();
- this._updateRenderedRange();
- }
- /** @docs-private Implemented as part of VirtualScrollStrategy. */
- onContentRendered() {
- }
- /** @docs-private Implemented as part of VirtualScrollStrategy. */
- onRenderedOffsetChanged() {
- }
- /**
- * Scroll to the offset for the given index.
- * @param index The index of the element to scroll to.
- * @param behavior The ScrollBehavior to use when scrolling.
- */
- scrollToIndex(index, behavior) {
- if (this._viewport) {
- this._viewport.scrollToOffset(index * this._itemSize, behavior);
- }
- }
- /** Update the viewport's total content size. */
- _updateTotalContentSize() {
- if (!this._viewport) {
- return;
- }
- this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);
- }
- /** Update the viewport's rendered range. */
- _updateRenderedRange() {
- if (!this._viewport) {
- return;
- }
- const renderedRange = this._viewport.getRenderedRange();
- const newRange = {
- start: renderedRange.start,
- end: renderedRange.end
- };
- const viewportSize = this._viewport.getViewportSize();
- const dataLength = this._viewport.getDataLength();
- let scrollOffset = this._viewport.measureScrollOffset();
- let firstVisibleIndex = this._itemSize > 0 ? scrollOffset / this._itemSize : 0;
- if (newRange.end > dataLength) {
- const maxVisibleItems = Math.ceil(viewportSize / this._itemSize);
- const newVisibleIndex = Math.max(0, Math.min(firstVisibleIndex, dataLength - maxVisibleItems));
- if (firstVisibleIndex != newVisibleIndex) {
- firstVisibleIndex = newVisibleIndex;
- scrollOffset = newVisibleIndex * this._itemSize;
- newRange.start = Math.floor(firstVisibleIndex);
- }
- newRange.end = Math.max(0, Math.min(dataLength, newRange.start + maxVisibleItems));
- }
- const startBuffer = scrollOffset - newRange.start * this._itemSize;
- if (startBuffer < this._minBufferPx && newRange.start != 0) {
- const expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);
- newRange.start = Math.max(0, newRange.start - expandStart);
- newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));
- } else {
- const endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);
- if (endBuffer < this._minBufferPx && newRange.end != dataLength) {
- const expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);
- if (expandEnd > 0) {
- newRange.end = Math.min(dataLength, newRange.end + expandEnd);
- newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));
- }
- }
- }
- this._viewport.setRenderedRange(newRange);
- this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);
- this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));
- }
-};
-function _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {
- return fixedSizeDir._scrollStrategy;
-}
-var _CdkFixedSizeVirtualScroll = class _CdkFixedSizeVirtualScroll {
- constructor() {
- this._itemSize = 20;
- this._minBufferPx = 100;
- this._maxBufferPx = 200;
- this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);
- }
- /** The size of the items in the list (in pixels). */
- get itemSize() {
- return this._itemSize;
- }
- set itemSize(value) {
- this._itemSize = coerceNumberProperty(value);
- }
- /**
- * The minimum amount of buffer rendered beyond the viewport (in pixels).
- * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.
- */
- get minBufferPx() {
- return this._minBufferPx;
- }
- set minBufferPx(value) {
- this._minBufferPx = coerceNumberProperty(value);
- }
- /**
- * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.
- */
- get maxBufferPx() {
- return this._maxBufferPx;
- }
- set maxBufferPx(value) {
- this._maxBufferPx = coerceNumberProperty(value);
- }
- ngOnChanges() {
- this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);
- }
-};
-_CdkFixedSizeVirtualScroll.ɵfac = function CdkFixedSizeVirtualScroll_Factory(t) {
- return new (t || _CdkFixedSizeVirtualScroll)();
-};
-_CdkFixedSizeVirtualScroll.ɵdir = ɵɵdefineDirective({
- type: _CdkFixedSizeVirtualScroll,
- selectors: [["cdk-virtual-scroll-viewport", "itemSize", ""]],
- inputs: {
- itemSize: "itemSize",
- minBufferPx: "minBufferPx",
- maxBufferPx: "maxBufferPx"
- },
- standalone: true,
- features: [ɵɵProvidersFeature([{
- provide: VIRTUAL_SCROLL_STRATEGY,
- useFactory: _fixedSizeVirtualScrollStrategyFactory,
- deps: [forwardRef(() => _CdkFixedSizeVirtualScroll)]
- }]), ɵɵNgOnChangesFeature]
-});
-var CdkFixedSizeVirtualScroll = _CdkFixedSizeVirtualScroll;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkFixedSizeVirtualScroll, [{
- type: Directive,
- args: [{
- selector: "cdk-virtual-scroll-viewport[itemSize]",
- standalone: true,
- providers: [{
- provide: VIRTUAL_SCROLL_STRATEGY,
- useFactory: _fixedSizeVirtualScrollStrategyFactory,
- deps: [forwardRef(() => CdkFixedSizeVirtualScroll)]
- }]
- }]
- }], null, {
- itemSize: [{
- type: Input
- }],
- minBufferPx: [{
- type: Input
- }],
- maxBufferPx: [{
- type: Input
- }]
- });
-})();
-var DEFAULT_SCROLL_TIME = 20;
-var _ScrollDispatcher = class _ScrollDispatcher {
- constructor(_ngZone, _platform, document2) {
- this._ngZone = _ngZone;
- this._platform = _platform;
- this._scrolled = new Subject();
- this._globalSubscription = null;
- this._scrolledCount = 0;
- this.scrollContainers = /* @__PURE__ */ new Map();
- this._document = document2;
- }
- /**
- * Registers a scrollable instance with the service and listens for its scrolled events. When the
- * scrollable is scrolled, the service emits the event to its scrolled observable.
- * @param scrollable Scrollable instance to be registered.
- */
- register(scrollable) {
- if (!this.scrollContainers.has(scrollable)) {
- this.scrollContainers.set(scrollable, scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)));
- }
- }
- /**
- * De-registers a Scrollable reference and unsubscribes from its scroll event observable.
- * @param scrollable Scrollable instance to be deregistered.
- */
- deregister(scrollable) {
- const scrollableReference = this.scrollContainers.get(scrollable);
- if (scrollableReference) {
- scrollableReference.unsubscribe();
- this.scrollContainers.delete(scrollable);
- }
- }
- /**
- * Returns an observable that emits an event whenever any of the registered Scrollable
- * references (or window, document, or body) fire a scrolled event. Can provide a time in ms
- * to override the default "throttle" time.
- *
- * **Note:** in order to avoid hitting change detection for every scroll event,
- * all of the events emitted from this stream will be run outside the Angular zone.
- * If you need to update any data bindings as a result of a scroll event, you have
- * to run the callback using `NgZone.run`.
- */
- scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {
- if (!this._platform.isBrowser) {
- return of();
- }
- return new Observable((observer) => {
- if (!this._globalSubscription) {
- this._addGlobalListener();
- }
- const subscription = auditTimeInMs > 0 ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer) : this._scrolled.subscribe(observer);
- this._scrolledCount++;
- return () => {
- subscription.unsubscribe();
- this._scrolledCount--;
- if (!this._scrolledCount) {
- this._removeGlobalListener();
- }
- };
- });
- }
- ngOnDestroy() {
- this._removeGlobalListener();
- this.scrollContainers.forEach((_, container) => this.deregister(container));
- this._scrolled.complete();
- }
- /**
- * Returns an observable that emits whenever any of the
- * scrollable ancestors of an element are scrolled.
- * @param elementOrElementRef Element whose ancestors to listen for.
- * @param auditTimeInMs Time to throttle the scroll events.
- */
- ancestorScrolled(elementOrElementRef, auditTimeInMs) {
- const ancestors = this.getAncestorScrollContainers(elementOrElementRef);
- return this.scrolled(auditTimeInMs).pipe(filter((target) => {
- return !target || ancestors.indexOf(target) > -1;
- }));
- }
- /** Returns all registered Scrollables that contain the provided element. */
- getAncestorScrollContainers(elementOrElementRef) {
- const scrollingContainers = [];
- this.scrollContainers.forEach((_subscription, scrollable) => {
- if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {
- scrollingContainers.push(scrollable);
- }
- });
- return scrollingContainers;
- }
- /** Use defaultView of injected document if available or fallback to global window reference */
- _getWindow() {
- return this._document.defaultView || window;
- }
- /** Returns true if the element is contained within the provided Scrollable. */
- _scrollableContainsElement(scrollable, elementOrElementRef) {
- let element = coerceElement(elementOrElementRef);
- let scrollableElement = scrollable.getElementRef().nativeElement;
- do {
- if (element == scrollableElement) {
- return true;
- }
- } while (element = element.parentElement);
- return false;
- }
- /** Sets up the global scroll listeners. */
- _addGlobalListener() {
- this._globalSubscription = this._ngZone.runOutsideAngular(() => {
- const window2 = this._getWindow();
- return fromEvent(window2.document, "scroll").subscribe(() => this._scrolled.next());
- });
- }
- /** Cleans up the global scroll listener. */
- _removeGlobalListener() {
- if (this._globalSubscription) {
- this._globalSubscription.unsubscribe();
- this._globalSubscription = null;
- }
- }
-};
-_ScrollDispatcher.ɵfac = function ScrollDispatcher_Factory(t) {
- return new (t || _ScrollDispatcher)(ɵɵinject(NgZone), ɵɵinject(Platform), ɵɵinject(DOCUMENT, 8));
-};
-_ScrollDispatcher.ɵprov = ɵɵdefineInjectable({
- token: _ScrollDispatcher,
- factory: _ScrollDispatcher.ɵfac,
- providedIn: "root"
-});
-var ScrollDispatcher = _ScrollDispatcher;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ScrollDispatcher, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: NgZone
- }, {
- type: Platform
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [DOCUMENT]
- }]
- }], null);
-})();
-var _CdkScrollable = class _CdkScrollable {
- constructor(elementRef, scrollDispatcher, ngZone, dir) {
- this.elementRef = elementRef;
- this.scrollDispatcher = scrollDispatcher;
- this.ngZone = ngZone;
- this.dir = dir;
- this._destroyed = new Subject();
- this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, "scroll").pipe(takeUntil(this._destroyed)).subscribe(observer)));
- }
- ngOnInit() {
- this.scrollDispatcher.register(this);
- }
- ngOnDestroy() {
- this.scrollDispatcher.deregister(this);
- this._destroyed.next();
- this._destroyed.complete();
- }
- /** Returns observable that emits when a scroll event is fired on the host element. */
- elementScrolled() {
- return this._elementScrolled;
- }
- /** Gets the ElementRef for the viewport. */
- getElementRef() {
- return this.elementRef;
- }
- /**
- * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo
- * method, since browsers are not consistent about what scrollLeft means in RTL. For this method
- * left and right always refer to the left and right side of the scrolling container irrespective
- * of the layout direction. start and end refer to left and right in an LTR context and vice-versa
- * in an RTL context.
- * @param options specified the offsets to scroll to.
- */
- scrollTo(options) {
- const el = this.elementRef.nativeElement;
- const isRtl = this.dir && this.dir.value == "rtl";
- if (options.left == null) {
- options.left = isRtl ? options.end : options.start;
- }
- if (options.right == null) {
- options.right = isRtl ? options.start : options.end;
- }
- if (options.bottom != null) {
- options.top = el.scrollHeight - el.clientHeight - options.bottom;
- }
- if (isRtl && getRtlScrollAxisType() != 0) {
- if (options.left != null) {
- options.right = el.scrollWidth - el.clientWidth - options.left;
- }
- if (getRtlScrollAxisType() == 2) {
- options.left = options.right;
- } else if (getRtlScrollAxisType() == 1) {
- options.left = options.right ? -options.right : options.right;
- }
- } else {
- if (options.right != null) {
- options.left = el.scrollWidth - el.clientWidth - options.right;
- }
- }
- this._applyScrollToOptions(options);
- }
- _applyScrollToOptions(options) {
- const el = this.elementRef.nativeElement;
- if (supportsScrollBehavior()) {
- el.scrollTo(options);
- } else {
- if (options.top != null) {
- el.scrollTop = options.top;
- }
- if (options.left != null) {
- el.scrollLeft = options.left;
- }
- }
- }
- /**
- * Measures the scroll offset relative to the specified edge of the viewport. This method can be
- * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent
- * about what scrollLeft means in RTL. The values returned by this method are normalized such that
- * left and right always refer to the left and right side of the scrolling container irrespective
- * of the layout direction. start and end refer to left and right in an LTR context and vice-versa
- * in an RTL context.
- * @param from The edge to measure from.
- */
- measureScrollOffset(from) {
- const LEFT = "left";
- const RIGHT = "right";
- const el = this.elementRef.nativeElement;
- if (from == "top") {
- return el.scrollTop;
- }
- if (from == "bottom") {
- return el.scrollHeight - el.clientHeight - el.scrollTop;
- }
- const isRtl = this.dir && this.dir.value == "rtl";
- if (from == "start") {
- from = isRtl ? RIGHT : LEFT;
- } else if (from == "end") {
- from = isRtl ? LEFT : RIGHT;
- }
- if (isRtl && getRtlScrollAxisType() == 2) {
- if (from == LEFT) {
- return el.scrollWidth - el.clientWidth - el.scrollLeft;
- } else {
- return el.scrollLeft;
- }
- } else if (isRtl && getRtlScrollAxisType() == 1) {
- if (from == LEFT) {
- return el.scrollLeft + el.scrollWidth - el.clientWidth;
- } else {
- return -el.scrollLeft;
- }
- } else {
- if (from == LEFT) {
- return el.scrollLeft;
- } else {
- return el.scrollWidth - el.clientWidth - el.scrollLeft;
- }
- }
- }
-};
-_CdkScrollable.ɵfac = function CdkScrollable_Factory(t) {
- return new (t || _CdkScrollable)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(ScrollDispatcher), ɵɵdirectiveInject(NgZone), ɵɵdirectiveInject(Directionality, 8));
-};
-_CdkScrollable.ɵdir = ɵɵdefineDirective({
- type: _CdkScrollable,
- selectors: [["", "cdk-scrollable", ""], ["", "cdkScrollable", ""]],
- standalone: true
-});
-var CdkScrollable = _CdkScrollable;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkScrollable, [{
- type: Directive,
- args: [{
- selector: "[cdk-scrollable], [cdkScrollable]",
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: ScrollDispatcher
- }, {
- type: NgZone
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], null);
-})();
-var DEFAULT_RESIZE_TIME = 20;
-var _ViewportRuler = class _ViewportRuler {
- constructor(_platform, ngZone, document2) {
- this._platform = _platform;
- this._change = new Subject();
- this._changeListener = (event) => {
- this._change.next(event);
- };
- this._document = document2;
- ngZone.runOutsideAngular(() => {
- if (_platform.isBrowser) {
- const window2 = this._getWindow();
- window2.addEventListener("resize", this._changeListener);
- window2.addEventListener("orientationchange", this._changeListener);
- }
- this.change().subscribe(() => this._viewportSize = null);
- });
- }
- ngOnDestroy() {
- if (this._platform.isBrowser) {
- const window2 = this._getWindow();
- window2.removeEventListener("resize", this._changeListener);
- window2.removeEventListener("orientationchange", this._changeListener);
- }
- this._change.complete();
- }
- /** Returns the viewport's width and height. */
- getViewportSize() {
- if (!this._viewportSize) {
- this._updateViewportSize();
- }
- const output = {
- width: this._viewportSize.width,
- height: this._viewportSize.height
- };
- if (!this._platform.isBrowser) {
- this._viewportSize = null;
- }
- return output;
- }
- /** Gets a ClientRect for the viewport's bounds. */
- getViewportRect() {
- const scrollPosition = this.getViewportScrollPosition();
- const {
- width,
- height
- } = this.getViewportSize();
- return {
- top: scrollPosition.top,
- left: scrollPosition.left,
- bottom: scrollPosition.top + height,
- right: scrollPosition.left + width,
- height,
- width
- };
- }
- /** Gets the (top, left) scroll position of the viewport. */
- getViewportScrollPosition() {
- if (!this._platform.isBrowser) {
- return {
- top: 0,
- left: 0
- };
- }
- const document2 = this._document;
- const window2 = this._getWindow();
- const documentElement = document2.documentElement;
- const documentRect = documentElement.getBoundingClientRect();
- const top = -documentRect.top || document2.body.scrollTop || window2.scrollY || documentElement.scrollTop || 0;
- const left = -documentRect.left || document2.body.scrollLeft || window2.scrollX || documentElement.scrollLeft || 0;
- return {
- top,
- left
- };
- }
- /**
- * Returns a stream that emits whenever the size of the viewport changes.
- * This stream emits outside of the Angular zone.
- * @param throttleTime Time in milliseconds to throttle the stream.
- */
- change(throttleTime = DEFAULT_RESIZE_TIME) {
- return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;
- }
- /** Use defaultView of injected document if available or fallback to global window reference */
- _getWindow() {
- return this._document.defaultView || window;
- }
- /** Updates the cached viewport size. */
- _updateViewportSize() {
- const window2 = this._getWindow();
- this._viewportSize = this._platform.isBrowser ? {
- width: window2.innerWidth,
- height: window2.innerHeight
- } : {
- width: 0,
- height: 0
- };
- }
-};
-_ViewportRuler.ɵfac = function ViewportRuler_Factory(t) {
- return new (t || _ViewportRuler)(ɵɵinject(Platform), ɵɵinject(NgZone), ɵɵinject(DOCUMENT, 8));
-};
-_ViewportRuler.ɵprov = ɵɵdefineInjectable({
- token: _ViewportRuler,
- factory: _ViewportRuler.ɵfac,
- providedIn: "root"
-});
-var ViewportRuler = _ViewportRuler;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ViewportRuler, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: Platform
- }, {
- type: NgZone
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [DOCUMENT]
- }]
- }], null);
-})();
-var VIRTUAL_SCROLLABLE = new InjectionToken("VIRTUAL_SCROLLABLE");
-var _CdkVirtualScrollable = class _CdkVirtualScrollable extends CdkScrollable {
- constructor(elementRef, scrollDispatcher, ngZone, dir) {
- super(elementRef, scrollDispatcher, ngZone, dir);
- }
- /**
- * Measure the viewport size for the provided orientation.
- *
- * @param orientation The orientation to measure the size from.
- */
- measureViewportSize(orientation) {
- const viewportEl = this.elementRef.nativeElement;
- return orientation === "horizontal" ? viewportEl.clientWidth : viewportEl.clientHeight;
- }
-};
-_CdkVirtualScrollable.ɵfac = function CdkVirtualScrollable_Factory(t) {
- return new (t || _CdkVirtualScrollable)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(ScrollDispatcher), ɵɵdirectiveInject(NgZone), ɵɵdirectiveInject(Directionality, 8));
-};
-_CdkVirtualScrollable.ɵdir = ɵɵdefineDirective({
- type: _CdkVirtualScrollable,
- features: [ɵɵInheritDefinitionFeature]
-});
-var CdkVirtualScrollable = _CdkVirtualScrollable;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualScrollable, [{
- type: Directive
- }], () => [{
- type: ElementRef
- }, {
- type: ScrollDispatcher
- }, {
- type: NgZone
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], null);
-})();
-function rangesEqual(r1, r2) {
- return r1.start == r2.start && r1.end == r2.end;
-}
-var SCROLL_SCHEDULER = typeof requestAnimationFrame !== "undefined" ? animationFrameScheduler : asapScheduler;
-var _CdkVirtualScrollViewport = class _CdkVirtualScrollViewport extends CdkVirtualScrollable {
- /** The direction the viewport scrolls. */
- get orientation() {
- return this._orientation;
- }
- set orientation(orientation) {
- if (this._orientation !== orientation) {
- this._orientation = orientation;
- this._calculateSpacerSize();
- }
- }
- constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler, scrollable) {
- super(elementRef, scrollDispatcher, ngZone, dir);
- this.elementRef = elementRef;
- this._changeDetectorRef = _changeDetectorRef;
- this._scrollStrategy = _scrollStrategy;
- this.scrollable = scrollable;
- this._platform = inject(Platform);
- this._detachedSubject = new Subject();
- this._renderedRangeSubject = new Subject();
- this._orientation = "vertical";
- this.appendOnly = false;
- this.scrolledIndexChange = new Observable((observer) => this._scrollStrategy.scrolledIndexChange.subscribe((index) => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));
- this.renderedRangeStream = this._renderedRangeSubject;
- this._totalContentSize = 0;
- this._totalContentWidth = "";
- this._totalContentHeight = "";
- this._renderedRange = {
- start: 0,
- end: 0
- };
- this._dataLength = 0;
- this._viewportSize = 0;
- this._renderedContentOffset = 0;
- this._renderedContentOffsetNeedsRewrite = false;
- this._isChangeDetectionPending = false;
- this._runAfterChangeDetection = [];
- this._viewportChanges = Subscription.EMPTY;
- if (!_scrollStrategy && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw Error('Error: cdk-virtual-scroll-viewport requires the "itemSize" property to be set.');
- }
- this._viewportChanges = viewportRuler.change().subscribe(() => {
- this.checkViewportSize();
- });
- if (!this.scrollable) {
- this.elementRef.nativeElement.classList.add("cdk-virtual-scrollable");
- this.scrollable = this;
- }
- }
- ngOnInit() {
- if (!this._platform.isBrowser) {
- return;
- }
- if (this.scrollable === this) {
- super.ngOnInit();
- }
- this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
- this._measureViewportSize();
- this._scrollStrategy.attach(this);
- this.scrollable.elementScrolled().pipe(
- // Start off with a fake scroll event so we properly detect our initial position.
- startWith(null),
- // Collect multiple events into one until the next animation frame. This way if
- // there are multiple scroll events in the same frame we only need to recheck
- // our layout once.
- auditTime(0, SCROLL_SCHEDULER),
- // Usually `elementScrolled` is completed when the scrollable is destroyed, but
- // that may not be the case if a `CdkVirtualScrollableElement` is used so we have
- // to unsubscribe here just in case.
- takeUntil(this._destroyed)
- ).subscribe(() => this._scrollStrategy.onContentScrolled());
- this._markChangeDetectionNeeded();
- }));
- }
- ngOnDestroy() {
- this.detach();
- this._scrollStrategy.detach();
- this._renderedRangeSubject.complete();
- this._detachedSubject.complete();
- this._viewportChanges.unsubscribe();
- super.ngOnDestroy();
- }
- /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */
- attach(forOf) {
- if (this._forOf && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw Error("CdkVirtualScrollViewport is already attached.");
- }
- this.ngZone.runOutsideAngular(() => {
- this._forOf = forOf;
- this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe((data) => {
- const newLength = data.length;
- if (newLength !== this._dataLength) {
- this._dataLength = newLength;
- this._scrollStrategy.onDataLengthChanged();
- }
- this._doChangeDetection();
- });
- });
- }
- /** Detaches the current `CdkVirtualForOf`. */
- detach() {
- this._forOf = null;
- this._detachedSubject.next();
- }
- /** Gets the length of the data bound to this viewport (in number of items). */
- getDataLength() {
- return this._dataLength;
- }
- /** Gets the size of the viewport (in pixels). */
- getViewportSize() {
- return this._viewportSize;
- }
- // TODO(mmalerba): This is technically out of sync with what's really rendered until a render
- // cycle happens. I'm being careful to only call it after the render cycle is complete and before
- // setting it to something else, but its error prone and should probably be split into
- // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.
- /** Get the current rendered range of items. */
- getRenderedRange() {
- return this._renderedRange;
- }
- measureBoundingClientRectWithScrollOffset(from) {
- return this.getElementRef().nativeElement.getBoundingClientRect()[from];
- }
- /**
- * Sets the total size of all content (in pixels), including content that is not currently
- * rendered.
- */
- setTotalContentSize(size) {
- if (this._totalContentSize !== size) {
- this._totalContentSize = size;
- this._calculateSpacerSize();
- this._markChangeDetectionNeeded();
- }
- }
- /** Sets the currently rendered range of indices. */
- setRenderedRange(range) {
- if (!rangesEqual(this._renderedRange, range)) {
- if (this.appendOnly) {
- range = {
- start: 0,
- end: Math.max(this._renderedRange.end, range.end)
- };
- }
- this._renderedRangeSubject.next(this._renderedRange = range);
- this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());
- }
- }
- /**
- * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).
- */
- getOffsetToRenderedContentStart() {
- return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;
- }
- /**
- * Sets the offset from the start of the viewport to either the start or end of the rendered data
- * (in pixels).
- */
- setRenderedContentOffset(offset, to = "to-start") {
- offset = this.appendOnly && to === "to-start" ? 0 : offset;
- const isRtl = this.dir && this.dir.value == "rtl";
- const isHorizontal = this.orientation == "horizontal";
- const axis = isHorizontal ? "X" : "Y";
- const axisDirection = isHorizontal && isRtl ? -1 : 1;
- let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;
- this._renderedContentOffset = offset;
- if (to === "to-end") {
- transform += ` translate${axis}(-100%)`;
- this._renderedContentOffsetNeedsRewrite = true;
- }
- if (this._renderedContentTransform != transform) {
- this._renderedContentTransform = transform;
- this._markChangeDetectionNeeded(() => {
- if (this._renderedContentOffsetNeedsRewrite) {
- this._renderedContentOffset -= this.measureRenderedContentSize();
- this._renderedContentOffsetNeedsRewrite = false;
- this.setRenderedContentOffset(this._renderedContentOffset);
- } else {
- this._scrollStrategy.onRenderedOffsetChanged();
- }
- });
- }
- }
- /**
- * Scrolls to the given offset from the start of the viewport. Please note that this is not always
- * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left
- * direction, this would be the equivalent of setting a fictional `scrollRight` property.
- * @param offset The offset to scroll to.
- * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.
- */
- scrollToOffset(offset, behavior = "auto") {
- const options = {
- behavior
- };
- if (this.orientation === "horizontal") {
- options.start = offset;
- } else {
- options.top = offset;
- }
- this.scrollable.scrollTo(options);
- }
- /**
- * Scrolls to the offset for the given index.
- * @param index The index of the element to scroll to.
- * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.
- */
- scrollToIndex(index, behavior = "auto") {
- this._scrollStrategy.scrollToIndex(index, behavior);
- }
- /**
- * Gets the current scroll offset from the start of the scrollable (in pixels).
- * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'
- * in horizontal mode.
- */
- measureScrollOffset(from) {
- let measureScrollOffset;
- if (this.scrollable == this) {
- measureScrollOffset = (_from) => super.measureScrollOffset(_from);
- } else {
- measureScrollOffset = (_from) => this.scrollable.measureScrollOffset(_from);
- }
- return Math.max(0, measureScrollOffset(from ?? (this.orientation === "horizontal" ? "start" : "top")) - this.measureViewportOffset());
- }
- /**
- * Measures the offset of the viewport from the scrolling container
- * @param from The edge to measure from.
- */
- measureViewportOffset(from) {
- let fromRect;
- const LEFT = "left";
- const RIGHT = "right";
- const isRtl = this.dir?.value == "rtl";
- if (from == "start") {
- fromRect = isRtl ? RIGHT : LEFT;
- } else if (from == "end") {
- fromRect = isRtl ? LEFT : RIGHT;
- } else if (from) {
- fromRect = from;
- } else {
- fromRect = this.orientation === "horizontal" ? "left" : "top";
- }
- const scrollerClientRect = this.scrollable.measureBoundingClientRectWithScrollOffset(fromRect);
- const viewportClientRect = this.elementRef.nativeElement.getBoundingClientRect()[fromRect];
- return viewportClientRect - scrollerClientRect;
- }
- /** Measure the combined size of all of the rendered items. */
- measureRenderedContentSize() {
- const contentEl = this._contentWrapper.nativeElement;
- return this.orientation === "horizontal" ? contentEl.offsetWidth : contentEl.offsetHeight;
- }
- /**
- * Measure the total combined size of the given range. Throws if the range includes items that are
- * not rendered.
- */
- measureRangeSize(range) {
- if (!this._forOf) {
- return 0;
- }
- return this._forOf.measureRangeSize(range, this.orientation);
- }
- /** Update the viewport dimensions and re-render. */
- checkViewportSize() {
- this._measureViewportSize();
- this._scrollStrategy.onDataLengthChanged();
- }
- /** Measure the viewport size. */
- _measureViewportSize() {
- this._viewportSize = this.scrollable.measureViewportSize(this.orientation);
- }
- /** Queue up change detection to run. */
- _markChangeDetectionNeeded(runAfter) {
- if (runAfter) {
- this._runAfterChangeDetection.push(runAfter);
- }
- if (!this._isChangeDetectionPending) {
- this._isChangeDetectionPending = true;
- this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
- this._doChangeDetection();
- }));
- }
- }
- /** Run change detection. */
- _doChangeDetection() {
- this._isChangeDetectionPending = false;
- this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;
- this.ngZone.run(() => this._changeDetectorRef.markForCheck());
- const runAfterChangeDetection = this._runAfterChangeDetection;
- this._runAfterChangeDetection = [];
- for (const fn of runAfterChangeDetection) {
- fn();
- }
- }
- /** Calculates the `style.width` and `style.height` for the spacer element. */
- _calculateSpacerSize() {
- this._totalContentHeight = this.orientation === "horizontal" ? "" : `${this._totalContentSize}px`;
- this._totalContentWidth = this.orientation === "horizontal" ? `${this._totalContentSize}px` : "";
- }
-};
-_CdkVirtualScrollViewport.ɵfac = function CdkVirtualScrollViewport_Factory(t) {
- return new (t || _CdkVirtualScrollViewport)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(NgZone), ɵɵdirectiveInject(VIRTUAL_SCROLL_STRATEGY, 8), ɵɵdirectiveInject(Directionality, 8), ɵɵdirectiveInject(ScrollDispatcher), ɵɵdirectiveInject(ViewportRuler), ɵɵdirectiveInject(VIRTUAL_SCROLLABLE, 8));
-};
-_CdkVirtualScrollViewport.ɵcmp = ɵɵdefineComponent({
- type: _CdkVirtualScrollViewport,
- selectors: [["cdk-virtual-scroll-viewport"]],
- viewQuery: function CdkVirtualScrollViewport_Query(rf, ctx) {
- if (rf & 1) {
- ɵɵviewQuery(_c0, 7);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx._contentWrapper = _t.first);
- }
- },
- hostAttrs: [1, "cdk-virtual-scroll-viewport"],
- hostVars: 4,
- hostBindings: function CdkVirtualScrollViewport_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵclassProp("cdk-virtual-scroll-orientation-horizontal", ctx.orientation === "horizontal")("cdk-virtual-scroll-orientation-vertical", ctx.orientation !== "horizontal");
- }
- },
- inputs: {
- orientation: "orientation",
- appendOnly: ["appendOnly", "appendOnly", booleanAttribute]
- },
- outputs: {
- scrolledIndexChange: "scrolledIndexChange"
- },
- standalone: true,
- features: [ɵɵProvidersFeature([{
- provide: CdkScrollable,
- useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,
- deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], _CdkVirtualScrollViewport]
- }]), ɵɵInputTransformsFeature, ɵɵInheritDefinitionFeature, ɵɵStandaloneFeature],
- ngContentSelectors: _c1,
- decls: 4,
- vars: 4,
- consts: [[1, "cdk-virtual-scroll-content-wrapper"], ["contentWrapper", ""], [1, "cdk-virtual-scroll-spacer"]],
- template: function CdkVirtualScrollViewport_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojectionDef();
- ɵɵelementStart(0, "div", 0, 1);
- ɵɵprojection(2);
- ɵɵelementEnd();
- ɵɵelement(3, "div", 2);
- }
- if (rf & 2) {
- ɵɵadvance(3);
- ɵɵstyleProp("width", ctx._totalContentWidth)("height", ctx._totalContentHeight);
- }
- },
- styles: ["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"],
- encapsulation: 2,
- changeDetection: 0
-});
-var CdkVirtualScrollViewport = _CdkVirtualScrollViewport;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualScrollViewport, [{
- type: Component,
- args: [{
- selector: "cdk-virtual-scroll-viewport",
- host: {
- "class": "cdk-virtual-scroll-viewport",
- "[class.cdk-virtual-scroll-orientation-horizontal]": 'orientation === "horizontal"',
- "[class.cdk-virtual-scroll-orientation-vertical]": 'orientation !== "horizontal"'
- },
- encapsulation: ViewEncapsulation$1.None,
- changeDetection: ChangeDetectionStrategy.OnPush,
- standalone: true,
- providers: [{
- provide: CdkScrollable,
- useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,
- deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport]
- }],
- template: '\n
\n \n
\n\n
\n',
- styles: ["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"]
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: ChangeDetectorRef
- }, {
- type: NgZone
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [VIRTUAL_SCROLL_STRATEGY]
- }]
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }, {
- type: ScrollDispatcher
- }, {
- type: ViewportRuler
- }, {
- type: CdkVirtualScrollable,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [VIRTUAL_SCROLLABLE]
- }]
- }], {
- orientation: [{
- type: Input
- }],
- appendOnly: [{
- type: Input,
- args: [{
- transform: booleanAttribute
- }]
- }],
- scrolledIndexChange: [{
- type: Output
- }],
- _contentWrapper: [{
- type: ViewChild,
- args: ["contentWrapper", {
- static: true
- }]
- }]
- });
-})();
-function getOffset(orientation, direction, node) {
- const el = node;
- if (!el.getBoundingClientRect) {
- return 0;
- }
- const rect = el.getBoundingClientRect();
- if (orientation === "horizontal") {
- return direction === "start" ? rect.left : rect.right;
- }
- return direction === "start" ? rect.top : rect.bottom;
-}
-var _CdkVirtualForOf = class _CdkVirtualForOf {
- /** The DataSource to display. */
- get cdkVirtualForOf() {
- return this._cdkVirtualForOf;
- }
- set cdkVirtualForOf(value) {
- this._cdkVirtualForOf = value;
- if (isDataSource(value)) {
- this._dataSourceChanges.next(value);
- } else {
- this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));
- }
- }
- /**
- * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and
- * the item and produces a value to be used as the item's identity when tracking changes.
- */
- get cdkVirtualForTrackBy() {
- return this._cdkVirtualForTrackBy;
- }
- set cdkVirtualForTrackBy(fn) {
- this._needsUpdate = true;
- this._cdkVirtualForTrackBy = fn ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item) : void 0;
- }
- /** The template used to stamp out new elements. */
- set cdkVirtualForTemplate(value) {
- if (value) {
- this._needsUpdate = true;
- this._template = value;
- }
- }
- /**
- * The size of the cache used to store templates that are not being used for re-use later.
- * Setting the cache size to `0` will disable caching. Defaults to 20 templates.
- */
- get cdkVirtualForTemplateCacheSize() {
- return this._viewRepeater.viewCacheSize;
- }
- set cdkVirtualForTemplateCacheSize(size) {
- this._viewRepeater.viewCacheSize = coerceNumberProperty(size);
- }
- constructor(_viewContainerRef, _template, _differs, _viewRepeater, _viewport, ngZone) {
- this._viewContainerRef = _viewContainerRef;
- this._template = _template;
- this._differs = _differs;
- this._viewRepeater = _viewRepeater;
- this._viewport = _viewport;
- this.viewChange = new Subject();
- this._dataSourceChanges = new Subject();
- this.dataStream = this._dataSourceChanges.pipe(
- // Start off with null `DataSource`.
- startWith(null),
- // Bundle up the previous and current data sources so we can work with both.
- pairwise(),
- // Use `_changeDataSource` to disconnect from the previous data source and connect to the
- // new one, passing back a stream of data changes which we run through `switchMap` to give
- // us a data stream that emits the latest data from whatever the current `DataSource` is.
- switchMap(([prev, cur]) => this._changeDataSource(prev, cur)),
- // Replay the last emitted data when someone subscribes.
- shareReplay(1)
- );
- this._differ = null;
- this._needsUpdate = false;
- this._destroyed = new Subject();
- this.dataStream.subscribe((data) => {
- this._data = data;
- this._onRenderedDataChange();
- });
- this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe((range) => {
- this._renderedRange = range;
- if (this.viewChange.observers.length) {
- ngZone.run(() => this.viewChange.next(this._renderedRange));
- }
- this._onRenderedDataChange();
- });
- this._viewport.attach(this);
- }
- /**
- * Measures the combined size (width for horizontal orientation, height for vertical) of all items
- * in the specified range. Throws an error if the range includes items that are not currently
- * rendered.
- */
- measureRangeSize(range, orientation) {
- if (range.start >= range.end) {
- return 0;
- }
- if ((range.start < this._renderedRange.start || range.end > this._renderedRange.end) && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw Error(`Error: attempted to measure an item that isn't rendered.`);
- }
- const renderedStartIndex = range.start - this._renderedRange.start;
- const rangeLen = range.end - range.start;
- let firstNode;
- let lastNode;
- for (let i = 0; i < rangeLen; i++) {
- const view = this._viewContainerRef.get(i + renderedStartIndex);
- if (view && view.rootNodes.length) {
- firstNode = lastNode = view.rootNodes[0];
- break;
- }
- }
- for (let i = rangeLen - 1; i > -1; i--) {
- const view = this._viewContainerRef.get(i + renderedStartIndex);
- if (view && view.rootNodes.length) {
- lastNode = view.rootNodes[view.rootNodes.length - 1];
- break;
- }
- }
- return firstNode && lastNode ? getOffset(orientation, "end", lastNode) - getOffset(orientation, "start", firstNode) : 0;
- }
- ngDoCheck() {
- if (this._differ && this._needsUpdate) {
- const changes = this._differ.diff(this._renderedItems);
- if (!changes) {
- this._updateContext();
- } else {
- this._applyChanges(changes);
- }
- this._needsUpdate = false;
- }
- }
- ngOnDestroy() {
- this._viewport.detach();
- this._dataSourceChanges.next(void 0);
- this._dataSourceChanges.complete();
- this.viewChange.complete();
- this._destroyed.next();
- this._destroyed.complete();
- this._viewRepeater.detach();
- }
- /** React to scroll state changes in the viewport. */
- _onRenderedDataChange() {
- if (!this._renderedRange) {
- return;
- }
- this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);
- if (!this._differ) {
- this._differ = this._differs.find(this._renderedItems).create((index, item) => {
- return this.cdkVirtualForTrackBy ? this.cdkVirtualForTrackBy(index, item) : item;
- });
- }
- this._needsUpdate = true;
- }
- /** Swap out one `DataSource` for another. */
- _changeDataSource(oldDs, newDs) {
- if (oldDs) {
- oldDs.disconnect(this);
- }
- this._needsUpdate = true;
- return newDs ? newDs.connect(this) : of();
- }
- /** Update the `CdkVirtualForOfContext` for all views. */
- _updateContext() {
- const count = this._data.length;
- let i = this._viewContainerRef.length;
- while (i--) {
- const view = this._viewContainerRef.get(i);
- view.context.index = this._renderedRange.start + i;
- view.context.count = count;
- this._updateComputedContextProperties(view.context);
- view.detectChanges();
- }
- }
- /** Apply changes to the DOM. */
- _applyChanges(changes) {
- this._viewRepeater.applyChanges(changes, this._viewContainerRef, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record, currentIndex), (record) => record.item);
- changes.forEachIdentityChange((record) => {
- const view = this._viewContainerRef.get(record.currentIndex);
- view.context.$implicit = record.item;
- });
- const count = this._data.length;
- let i = this._viewContainerRef.length;
- while (i--) {
- const view = this._viewContainerRef.get(i);
- view.context.index = this._renderedRange.start + i;
- view.context.count = count;
- this._updateComputedContextProperties(view.context);
- }
- }
- /** Update the computed properties on the `CdkVirtualForOfContext`. */
- _updateComputedContextProperties(context) {
- context.first = context.index === 0;
- context.last = context.index === context.count - 1;
- context.even = context.index % 2 === 0;
- context.odd = !context.even;
- }
- _getEmbeddedViewArgs(record, index) {
- return {
- templateRef: this._template,
- context: {
- $implicit: record.item,
- // It's guaranteed that the iterable is not "undefined" or "null" because we only
- // generate views for elements if the "cdkVirtualForOf" iterable has elements.
- cdkVirtualForOf: this._cdkVirtualForOf,
- index: -1,
- count: -1,
- first: false,
- last: false,
- odd: false,
- even: false
- },
- index
- };
- }
-};
-_CdkVirtualForOf.ɵfac = function CdkVirtualForOf_Factory(t) {
- return new (t || _CdkVirtualForOf)(ɵɵdirectiveInject(ViewContainerRef), ɵɵdirectiveInject(TemplateRef), ɵɵdirectiveInject(IterableDiffers), ɵɵdirectiveInject(_VIEW_REPEATER_STRATEGY), ɵɵdirectiveInject(CdkVirtualScrollViewport, 4), ɵɵdirectiveInject(NgZone));
-};
-_CdkVirtualForOf.ɵdir = ɵɵdefineDirective({
- type: _CdkVirtualForOf,
- selectors: [["", "cdkVirtualFor", "", "cdkVirtualForOf", ""]],
- inputs: {
- cdkVirtualForOf: "cdkVirtualForOf",
- cdkVirtualForTrackBy: "cdkVirtualForTrackBy",
- cdkVirtualForTemplate: "cdkVirtualForTemplate",
- cdkVirtualForTemplateCacheSize: "cdkVirtualForTemplateCacheSize"
- },
- standalone: true,
- features: [ɵɵProvidersFeature([{
- provide: _VIEW_REPEATER_STRATEGY,
- useClass: _RecycleViewRepeaterStrategy
- }])]
-});
-var CdkVirtualForOf = _CdkVirtualForOf;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualForOf, [{
- type: Directive,
- args: [{
- selector: "[cdkVirtualFor][cdkVirtualForOf]",
- providers: [{
- provide: _VIEW_REPEATER_STRATEGY,
- useClass: _RecycleViewRepeaterStrategy
- }],
- standalone: true
- }]
- }], () => [{
- type: ViewContainerRef
- }, {
- type: TemplateRef
- }, {
- type: IterableDiffers
- }, {
- type: _RecycleViewRepeaterStrategy,
- decorators: [{
- type: Inject,
- args: [_VIEW_REPEATER_STRATEGY]
- }]
- }, {
- type: CdkVirtualScrollViewport,
- decorators: [{
- type: SkipSelf
- }]
- }, {
- type: NgZone
- }], {
- cdkVirtualForOf: [{
- type: Input
- }],
- cdkVirtualForTrackBy: [{
- type: Input
- }],
- cdkVirtualForTemplate: [{
- type: Input
- }],
- cdkVirtualForTemplateCacheSize: [{
- type: Input
- }]
- });
-})();
-var _CdkVirtualScrollableElement = class _CdkVirtualScrollableElement extends CdkVirtualScrollable {
- constructor(elementRef, scrollDispatcher, ngZone, dir) {
- super(elementRef, scrollDispatcher, ngZone, dir);
- }
- measureBoundingClientRectWithScrollOffset(from) {
- return this.getElementRef().nativeElement.getBoundingClientRect()[from] - this.measureScrollOffset(from);
- }
-};
-_CdkVirtualScrollableElement.ɵfac = function CdkVirtualScrollableElement_Factory(t) {
- return new (t || _CdkVirtualScrollableElement)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(ScrollDispatcher), ɵɵdirectiveInject(NgZone), ɵɵdirectiveInject(Directionality, 8));
-};
-_CdkVirtualScrollableElement.ɵdir = ɵɵdefineDirective({
- type: _CdkVirtualScrollableElement,
- selectors: [["", "cdkVirtualScrollingElement", ""]],
- hostAttrs: [1, "cdk-virtual-scrollable"],
- standalone: true,
- features: [ɵɵProvidersFeature([{
- provide: VIRTUAL_SCROLLABLE,
- useExisting: _CdkVirtualScrollableElement
- }]), ɵɵInheritDefinitionFeature]
-});
-var CdkVirtualScrollableElement = _CdkVirtualScrollableElement;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualScrollableElement, [{
- type: Directive,
- args: [{
- selector: "[cdkVirtualScrollingElement]",
- providers: [{
- provide: VIRTUAL_SCROLLABLE,
- useExisting: CdkVirtualScrollableElement
- }],
- standalone: true,
- host: {
- "class": "cdk-virtual-scrollable"
- }
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: ScrollDispatcher
- }, {
- type: NgZone
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], null);
-})();
-var _CdkVirtualScrollableWindow = class _CdkVirtualScrollableWindow extends CdkVirtualScrollable {
- constructor(scrollDispatcher, ngZone, dir) {
- super(new ElementRef(document.documentElement), scrollDispatcher, ngZone, dir);
- this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(document, "scroll").pipe(takeUntil(this._destroyed)).subscribe(observer)));
- }
- measureBoundingClientRectWithScrollOffset(from) {
- return this.getElementRef().nativeElement.getBoundingClientRect()[from];
- }
-};
-_CdkVirtualScrollableWindow.ɵfac = function CdkVirtualScrollableWindow_Factory(t) {
- return new (t || _CdkVirtualScrollableWindow)(ɵɵdirectiveInject(ScrollDispatcher), ɵɵdirectiveInject(NgZone), ɵɵdirectiveInject(Directionality, 8));
-};
-_CdkVirtualScrollableWindow.ɵdir = ɵɵdefineDirective({
- type: _CdkVirtualScrollableWindow,
- selectors: [["cdk-virtual-scroll-viewport", "scrollWindow", ""]],
- standalone: true,
- features: [ɵɵProvidersFeature([{
- provide: VIRTUAL_SCROLLABLE,
- useExisting: _CdkVirtualScrollableWindow
- }]), ɵɵInheritDefinitionFeature]
-});
-var CdkVirtualScrollableWindow = _CdkVirtualScrollableWindow;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkVirtualScrollableWindow, [{
- type: Directive,
- args: [{
- selector: "cdk-virtual-scroll-viewport[scrollWindow]",
- providers: [{
- provide: VIRTUAL_SCROLLABLE,
- useExisting: CdkVirtualScrollableWindow
- }],
- standalone: true
- }]
- }], () => [{
- type: ScrollDispatcher
- }, {
- type: NgZone
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], null);
-})();
-var _CdkScrollableModule = class _CdkScrollableModule {
-};
-_CdkScrollableModule.ɵfac = function CdkScrollableModule_Factory(t) {
- return new (t || _CdkScrollableModule)();
-};
-_CdkScrollableModule.ɵmod = ɵɵdefineNgModule({
- type: _CdkScrollableModule,
- imports: [CdkScrollable],
- exports: [CdkScrollable]
-});
-_CdkScrollableModule.ɵinj = ɵɵdefineInjector({});
-var CdkScrollableModule = _CdkScrollableModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkScrollableModule, [{
- type: NgModule,
- args: [{
- exports: [CdkScrollable],
- imports: [CdkScrollable]
- }]
- }], null, null);
-})();
-var _ScrollingModule = class _ScrollingModule {
-};
-_ScrollingModule.ɵfac = function ScrollingModule_Factory(t) {
- return new (t || _ScrollingModule)();
-};
-_ScrollingModule.ɵmod = ɵɵdefineNgModule({
- type: _ScrollingModule,
- imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollableWindow, CdkVirtualScrollableElement],
- exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollableWindow, CdkVirtualScrollableElement]
-});
-_ScrollingModule.ɵinj = ɵɵdefineInjector({
- imports: [BidiModule, CdkScrollableModule, BidiModule, CdkScrollableModule]
-});
-var ScrollingModule = _ScrollingModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ScrollingModule, [{
- type: NgModule,
- args: [{
- imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollableWindow, CdkVirtualScrollableElement],
- exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollableWindow, CdkVirtualScrollableElement]
- }]
- }], null, null);
-})();
-
-// node_modules/@angular/cdk/fesm2022/portal.mjs
-function throwNullPortalError() {
- throw Error("Must provide a portal to attach");
-}
-function throwPortalAlreadyAttachedError() {
- throw Error("Host already has a portal attached");
-}
-function throwPortalOutletAlreadyDisposedError() {
- throw Error("This PortalOutlet has already been disposed");
-}
-function throwUnknownPortalTypeError() {
- throw Error("Attempting to attach an unknown Portal type. BasePortalOutlet accepts either a ComponentPortal or a TemplatePortal.");
-}
-function throwNullPortalOutletError() {
- throw Error("Attempting to attach a portal to a null PortalOutlet");
-}
-function throwNoPortalAttachedError() {
- throw Error("Attempting to detach a portal that is not attached to a host");
-}
-var Portal = class {
- /** Attach this portal to a host. */
- attach(host) {
- if (typeof ngDevMode === "undefined" || ngDevMode) {
- if (host == null) {
- throwNullPortalOutletError();
- }
- if (host.hasAttached()) {
- throwPortalAlreadyAttachedError();
- }
- }
- this._attachedHost = host;
- return host.attach(this);
- }
- /** Detach this portal from its host */
- detach() {
- let host = this._attachedHost;
- if (host != null) {
- this._attachedHost = null;
- host.detach();
- } else if (typeof ngDevMode === "undefined" || ngDevMode) {
- throwNoPortalAttachedError();
- }
- }
- /** Whether this portal is attached to a host. */
- get isAttached() {
- return this._attachedHost != null;
- }
- /**
- * Sets the PortalOutlet reference without performing `attach()`. This is used directly by
- * the PortalOutlet when it is performing an `attach()` or `detach()`.
- */
- setAttachedHost(host) {
- this._attachedHost = host;
- }
-};
-var ComponentPortal = class extends Portal {
- constructor(component, viewContainerRef, injector, componentFactoryResolver, projectableNodes) {
- super();
- this.component = component;
- this.viewContainerRef = viewContainerRef;
- this.injector = injector;
- this.componentFactoryResolver = componentFactoryResolver;
- this.projectableNodes = projectableNodes;
- }
-};
-var TemplatePortal = class extends Portal {
- constructor(templateRef, viewContainerRef, context, injector) {
- super();
- this.templateRef = templateRef;
- this.viewContainerRef = viewContainerRef;
- this.context = context;
- this.injector = injector;
- }
- get origin() {
- return this.templateRef.elementRef;
- }
- /**
- * Attach the portal to the provided `PortalOutlet`.
- * When a context is provided it will override the `context` property of the `TemplatePortal`
- * instance.
- */
- attach(host, context = this.context) {
- this.context = context;
- return super.attach(host);
- }
- detach() {
- this.context = void 0;
- return super.detach();
- }
-};
-var DomPortal = class extends Portal {
- constructor(element) {
- super();
- this.element = element instanceof ElementRef ? element.nativeElement : element;
- }
-};
-var BasePortalOutlet = class {
- constructor() {
- this._isDisposed = false;
- this.attachDomPortal = null;
- }
- /** Whether this host has an attached portal. */
- hasAttached() {
- return !!this._attachedPortal;
- }
- /** Attaches a portal. */
- attach(portal) {
- if (typeof ngDevMode === "undefined" || ngDevMode) {
- if (!portal) {
- throwNullPortalError();
- }
- if (this.hasAttached()) {
- throwPortalAlreadyAttachedError();
- }
- if (this._isDisposed) {
- throwPortalOutletAlreadyDisposedError();
- }
- }
- if (portal instanceof ComponentPortal) {
- this._attachedPortal = portal;
- return this.attachComponentPortal(portal);
- } else if (portal instanceof TemplatePortal) {
- this._attachedPortal = portal;
- return this.attachTemplatePortal(portal);
- } else if (this.attachDomPortal && portal instanceof DomPortal) {
- this._attachedPortal = portal;
- return this.attachDomPortal(portal);
- }
- if (typeof ngDevMode === "undefined" || ngDevMode) {
- throwUnknownPortalTypeError();
- }
- }
- /** Detaches a previously attached portal. */
- detach() {
- if (this._attachedPortal) {
- this._attachedPortal.setAttachedHost(null);
- this._attachedPortal = null;
- }
- this._invokeDisposeFn();
- }
- /** Permanently dispose of this portal host. */
- dispose() {
- if (this.hasAttached()) {
- this.detach();
- }
- this._invokeDisposeFn();
- this._isDisposed = true;
- }
- /** @docs-private */
- setDisposeFn(fn) {
- this._disposeFn = fn;
- }
- _invokeDisposeFn() {
- if (this._disposeFn) {
- this._disposeFn();
- this._disposeFn = null;
- }
- }
-};
-var DomPortalOutlet = class extends BasePortalOutlet {
- /**
- * @param outletElement Element into which the content is projected.
- * @param _componentFactoryResolver Used to resolve the component factory.
- * Only required when attaching component portals.
- * @param _appRef Reference to the application. Only used in component portals when there
- * is no `ViewContainerRef` available.
- * @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't
- * have one. Only used for component portals.
- * @param _document Reference to the document. Used when attaching a DOM portal. Will eventually
- * become a required parameter.
- */
- constructor(outletElement, _componentFactoryResolver, _appRef, _defaultInjector, _document) {
- super();
- this.outletElement = outletElement;
- this._componentFactoryResolver = _componentFactoryResolver;
- this._appRef = _appRef;
- this._defaultInjector = _defaultInjector;
- this.attachDomPortal = (portal) => {
- if (!this._document && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw Error("Cannot attach DOM portal without _document constructor parameter");
- }
- const element = portal.element;
- if (!element.parentNode && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw Error("DOM portal content must be attached to a parent node.");
- }
- const anchorNode = this._document.createComment("dom-portal");
- element.parentNode.insertBefore(anchorNode, element);
- this.outletElement.appendChild(element);
- this._attachedPortal = portal;
- super.setDisposeFn(() => {
- if (anchorNode.parentNode) {
- anchorNode.parentNode.replaceChild(element, anchorNode);
- }
- });
- };
- this._document = _document;
- }
- /**
- * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.
- * @param portal Portal to be attached
- * @returns Reference to the created component.
- */
- attachComponentPortal(portal) {
- const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;
- if ((typeof ngDevMode === "undefined" || ngDevMode) && !resolver) {
- throw Error("Cannot attach component portal to outlet without a ComponentFactoryResolver.");
- }
- const componentFactory = resolver.resolveComponentFactory(portal.component);
- let componentRef;
- if (portal.viewContainerRef) {
- componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector, portal.projectableNodes || void 0);
- this.setDisposeFn(() => componentRef.destroy());
- } else {
- if ((typeof ngDevMode === "undefined" || ngDevMode) && !this._appRef) {
- throw Error("Cannot attach component portal to outlet without an ApplicationRef.");
- }
- componentRef = componentFactory.create(portal.injector || this._defaultInjector || Injector.NULL);
- this._appRef.attachView(componentRef.hostView);
- this.setDisposeFn(() => {
- if (this._appRef.viewCount > 0) {
- this._appRef.detachView(componentRef.hostView);
- }
- componentRef.destroy();
- });
- }
- this.outletElement.appendChild(this._getComponentRootNode(componentRef));
- this._attachedPortal = portal;
- return componentRef;
- }
- /**
- * Attaches a template portal to the DOM as an embedded view.
- * @param portal Portal to be attached.
- * @returns Reference to the created embedded view.
- */
- attachTemplatePortal(portal) {
- let viewContainer = portal.viewContainerRef;
- let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context, {
- injector: portal.injector
- });
- viewRef.rootNodes.forEach((rootNode) => this.outletElement.appendChild(rootNode));
- viewRef.detectChanges();
- this.setDisposeFn(() => {
- let index = viewContainer.indexOf(viewRef);
- if (index !== -1) {
- viewContainer.remove(index);
- }
- });
- this._attachedPortal = portal;
- return viewRef;
- }
- /**
- * Clears out a portal from the DOM.
- */
- dispose() {
- super.dispose();
- this.outletElement.remove();
- }
- /** Gets the root HTMLElement for an instantiated component. */
- _getComponentRootNode(componentRef) {
- return componentRef.hostView.rootNodes[0];
- }
-};
-var _CdkPortal = class _CdkPortal extends TemplatePortal {
- constructor(templateRef, viewContainerRef) {
- super(templateRef, viewContainerRef);
- }
-};
-_CdkPortal.ɵfac = function CdkPortal_Factory(t) {
- return new (t || _CdkPortal)(ɵɵdirectiveInject(TemplateRef), ɵɵdirectiveInject(ViewContainerRef));
-};
-_CdkPortal.ɵdir = ɵɵdefineDirective({
- type: _CdkPortal,
- selectors: [["", "cdkPortal", ""]],
- exportAs: ["cdkPortal"],
- features: [ɵɵInheritDefinitionFeature]
-});
-var CdkPortal = _CdkPortal;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkPortal, [{
- type: Directive,
- args: [{
- selector: "[cdkPortal]",
- exportAs: "cdkPortal"
- }]
- }], () => [{
- type: TemplateRef
- }, {
- type: ViewContainerRef
- }], null);
-})();
-var _TemplatePortalDirective = class _TemplatePortalDirective extends CdkPortal {
-};
-_TemplatePortalDirective.ɵfac = (() => {
- let ɵTemplatePortalDirective_BaseFactory;
- return function TemplatePortalDirective_Factory(t) {
- return (ɵTemplatePortalDirective_BaseFactory || (ɵTemplatePortalDirective_BaseFactory = ɵɵgetInheritedFactory(_TemplatePortalDirective)))(t || _TemplatePortalDirective);
- };
-})();
-_TemplatePortalDirective.ɵdir = ɵɵdefineDirective({
- type: _TemplatePortalDirective,
- selectors: [["", "cdk-portal", ""], ["", "portal", ""]],
- exportAs: ["cdkPortal"],
- features: [ɵɵProvidersFeature([{
- provide: CdkPortal,
- useExisting: _TemplatePortalDirective
- }]), ɵɵInheritDefinitionFeature]
-});
-var TemplatePortalDirective = _TemplatePortalDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(TemplatePortalDirective, [{
- type: Directive,
- args: [{
- selector: "[cdk-portal], [portal]",
- exportAs: "cdkPortal",
- providers: [{
- provide: CdkPortal,
- useExisting: TemplatePortalDirective
- }]
- }]
- }], null, null);
-})();
-var _CdkPortalOutlet = class _CdkPortalOutlet extends BasePortalOutlet {
- constructor(_componentFactoryResolver, _viewContainerRef, _document) {
- super();
- this._componentFactoryResolver = _componentFactoryResolver;
- this._viewContainerRef = _viewContainerRef;
- this._isInitialized = false;
- this.attached = new EventEmitter();
- this.attachDomPortal = (portal) => {
- if (!this._document && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw Error("Cannot attach DOM portal without _document constructor parameter");
- }
- const element = portal.element;
- if (!element.parentNode && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw Error("DOM portal content must be attached to a parent node.");
- }
- const anchorNode = this._document.createComment("dom-portal");
- portal.setAttachedHost(this);
- element.parentNode.insertBefore(anchorNode, element);
- this._getRootNode().appendChild(element);
- this._attachedPortal = portal;
- super.setDisposeFn(() => {
- if (anchorNode.parentNode) {
- anchorNode.parentNode.replaceChild(element, anchorNode);
- }
- });
- };
- this._document = _document;
- }
- /** Portal associated with the Portal outlet. */
- get portal() {
- return this._attachedPortal;
- }
- set portal(portal) {
- if (this.hasAttached() && !portal && !this._isInitialized) {
- return;
- }
- if (this.hasAttached()) {
- super.detach();
- }
- if (portal) {
- super.attach(portal);
- }
- this._attachedPortal = portal || null;
- }
- /** Component or view reference that is attached to the portal. */
- get attachedRef() {
- return this._attachedRef;
- }
- ngOnInit() {
- this._isInitialized = true;
- }
- ngOnDestroy() {
- super.dispose();
- this._attachedRef = this._attachedPortal = null;
- }
- /**
- * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.
- *
- * @param portal Portal to be attached to the portal outlet.
- * @returns Reference to the created component.
- */
- attachComponentPortal(portal) {
- portal.setAttachedHost(this);
- const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;
- const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;
- const componentFactory = resolver.resolveComponentFactory(portal.component);
- const ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector, portal.projectableNodes || void 0);
- if (viewContainerRef !== this._viewContainerRef) {
- this._getRootNode().appendChild(ref.hostView.rootNodes[0]);
- }
- super.setDisposeFn(() => ref.destroy());
- this._attachedPortal = portal;
- this._attachedRef = ref;
- this.attached.emit(ref);
- return ref;
- }
- /**
- * Attach the given TemplatePortal to this PortalHost as an embedded View.
- * @param portal Portal to be attached.
- * @returns Reference to the created embedded view.
- */
- attachTemplatePortal(portal) {
- portal.setAttachedHost(this);
- const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {
- injector: portal.injector
- });
- super.setDisposeFn(() => this._viewContainerRef.clear());
- this._attachedPortal = portal;
- this._attachedRef = viewRef;
- this.attached.emit(viewRef);
- return viewRef;
- }
- /** Gets the root node of the portal outlet. */
- _getRootNode() {
- const nativeElement = this._viewContainerRef.element.nativeElement;
- return nativeElement.nodeType === nativeElement.ELEMENT_NODE ? nativeElement : nativeElement.parentNode;
- }
-};
-_CdkPortalOutlet.ɵfac = function CdkPortalOutlet_Factory(t) {
- return new (t || _CdkPortalOutlet)(ɵɵdirectiveInject(ComponentFactoryResolver$1), ɵɵdirectiveInject(ViewContainerRef), ɵɵdirectiveInject(DOCUMENT));
-};
-_CdkPortalOutlet.ɵdir = ɵɵdefineDirective({
- type: _CdkPortalOutlet,
- selectors: [["", "cdkPortalOutlet", ""]],
- inputs: {
- portal: ["cdkPortalOutlet", "portal"]
- },
- outputs: {
- attached: "attached"
- },
- exportAs: ["cdkPortalOutlet"],
- features: [ɵɵInheritDefinitionFeature]
-});
-var CdkPortalOutlet = _CdkPortalOutlet;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkPortalOutlet, [{
- type: Directive,
- args: [{
- selector: "[cdkPortalOutlet]",
- exportAs: "cdkPortalOutlet",
- inputs: ["portal: cdkPortalOutlet"]
- }]
- }], () => [{
- type: ComponentFactoryResolver$1
- }, {
- type: ViewContainerRef
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }], {
- attached: [{
- type: Output
- }]
- });
-})();
-var _PortalHostDirective = class _PortalHostDirective extends CdkPortalOutlet {
-};
-_PortalHostDirective.ɵfac = (() => {
- let ɵPortalHostDirective_BaseFactory;
- return function PortalHostDirective_Factory(t) {
- return (ɵPortalHostDirective_BaseFactory || (ɵPortalHostDirective_BaseFactory = ɵɵgetInheritedFactory(_PortalHostDirective)))(t || _PortalHostDirective);
- };
-})();
-_PortalHostDirective.ɵdir = ɵɵdefineDirective({
- type: _PortalHostDirective,
- selectors: [["", "cdkPortalHost", ""], ["", "portalHost", ""]],
- inputs: {
- portal: ["cdkPortalHost", "portal"]
- },
- exportAs: ["cdkPortalHost"],
- features: [ɵɵProvidersFeature([{
- provide: CdkPortalOutlet,
- useExisting: _PortalHostDirective
- }]), ɵɵInheritDefinitionFeature]
-});
-var PortalHostDirective = _PortalHostDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(PortalHostDirective, [{
- type: Directive,
- args: [{
- selector: "[cdkPortalHost], [portalHost]",
- exportAs: "cdkPortalHost",
- inputs: ["portal: cdkPortalHost"],
- providers: [{
- provide: CdkPortalOutlet,
- useExisting: PortalHostDirective
- }]
- }]
- }], null, null);
-})();
-var _PortalModule = class _PortalModule {
-};
-_PortalModule.ɵfac = function PortalModule_Factory(t) {
- return new (t || _PortalModule)();
-};
-_PortalModule.ɵmod = ɵɵdefineNgModule({
- type: _PortalModule,
- declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],
- exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective]
-});
-_PortalModule.ɵinj = ɵɵdefineInjector({});
-var PortalModule = _PortalModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(PortalModule, [{
- type: NgModule,
- args: [{
- exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],
- declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective]
- }]
- }], null, null);
-})();
-
-// node_modules/@angular/cdk/fesm2022/overlay.mjs
-var scrollBehaviorSupported = supportsScrollBehavior();
-var BlockScrollStrategy = class {
- constructor(_viewportRuler, document2) {
- this._viewportRuler = _viewportRuler;
- this._previousHTMLStyles = {
- top: "",
- left: ""
- };
- this._isEnabled = false;
- this._document = document2;
- }
- /** Attaches this scroll strategy to an overlay. */
- attach() {
- }
- /** Blocks page-level scroll while the attached overlay is open. */
- enable() {
- if (this._canBeEnabled()) {
- const root = this._document.documentElement;
- this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();
- this._previousHTMLStyles.left = root.style.left || "";
- this._previousHTMLStyles.top = root.style.top || "";
- root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);
- root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);
- root.classList.add("cdk-global-scrollblock");
- this._isEnabled = true;
- }
- }
- /** Unblocks page-level scroll while the attached overlay is open. */
- disable() {
- if (this._isEnabled) {
- const html = this._document.documentElement;
- const body = this._document.body;
- const htmlStyle = html.style;
- const bodyStyle = body.style;
- const previousHtmlScrollBehavior = htmlStyle.scrollBehavior || "";
- const previousBodyScrollBehavior = bodyStyle.scrollBehavior || "";
- this._isEnabled = false;
- htmlStyle.left = this._previousHTMLStyles.left;
- htmlStyle.top = this._previousHTMLStyles.top;
- html.classList.remove("cdk-global-scrollblock");
- if (scrollBehaviorSupported) {
- htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = "auto";
- }
- window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);
- if (scrollBehaviorSupported) {
- htmlStyle.scrollBehavior = previousHtmlScrollBehavior;
- bodyStyle.scrollBehavior = previousBodyScrollBehavior;
- }
- }
- }
- _canBeEnabled() {
- const html = this._document.documentElement;
- if (html.classList.contains("cdk-global-scrollblock") || this._isEnabled) {
- return false;
- }
- const body = this._document.body;
- const viewport = this._viewportRuler.getViewportSize();
- return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;
- }
-};
-function getMatScrollStrategyAlreadyAttachedError() {
- return Error(`Scroll strategy has already been attached.`);
-}
-var CloseScrollStrategy = class {
- constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {
- this._scrollDispatcher = _scrollDispatcher;
- this._ngZone = _ngZone;
- this._viewportRuler = _viewportRuler;
- this._config = _config;
- this._scrollSubscription = null;
- this._detach = () => {
- this.disable();
- if (this._overlayRef.hasAttached()) {
- this._ngZone.run(() => this._overlayRef.detach());
- }
- };
- }
- /** Attaches this scroll strategy to an overlay. */
- attach(overlayRef) {
- if (this._overlayRef && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw getMatScrollStrategyAlreadyAttachedError();
- }
- this._overlayRef = overlayRef;
- }
- /** Enables the closing of the attached overlay on scroll. */
- enable() {
- if (this._scrollSubscription) {
- return;
- }
- const stream = this._scrollDispatcher.scrolled(0).pipe(filter((scrollable) => {
- return !scrollable || !this._overlayRef.overlayElement.contains(scrollable.getElementRef().nativeElement);
- }));
- if (this._config && this._config.threshold && this._config.threshold > 1) {
- this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top;
- this._scrollSubscription = stream.subscribe(() => {
- const scrollPosition = this._viewportRuler.getViewportScrollPosition().top;
- if (Math.abs(scrollPosition - this._initialScrollPosition) > this._config.threshold) {
- this._detach();
- } else {
- this._overlayRef.updatePosition();
- }
- });
- } else {
- this._scrollSubscription = stream.subscribe(this._detach);
- }
- }
- /** Disables the closing the attached overlay on scroll. */
- disable() {
- if (this._scrollSubscription) {
- this._scrollSubscription.unsubscribe();
- this._scrollSubscription = null;
- }
- }
- detach() {
- this.disable();
- this._overlayRef = null;
- }
-};
-var NoopScrollStrategy = class {
- /** Does nothing, as this scroll strategy is a no-op. */
- enable() {
- }
- /** Does nothing, as this scroll strategy is a no-op. */
- disable() {
- }
- /** Does nothing, as this scroll strategy is a no-op. */
- attach() {
- }
-};
-function isElementScrolledOutsideView(element, scrollContainers) {
- return scrollContainers.some((containerBounds) => {
- const outsideAbove = element.bottom < containerBounds.top;
- const outsideBelow = element.top > containerBounds.bottom;
- const outsideLeft = element.right < containerBounds.left;
- const outsideRight = element.left > containerBounds.right;
- return outsideAbove || outsideBelow || outsideLeft || outsideRight;
- });
-}
-function isElementClippedByScrolling(element, scrollContainers) {
- return scrollContainers.some((scrollContainerRect) => {
- const clippedAbove = element.top < scrollContainerRect.top;
- const clippedBelow = element.bottom > scrollContainerRect.bottom;
- const clippedLeft = element.left < scrollContainerRect.left;
- const clippedRight = element.right > scrollContainerRect.right;
- return clippedAbove || clippedBelow || clippedLeft || clippedRight;
- });
-}
-var RepositionScrollStrategy = class {
- constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {
- this._scrollDispatcher = _scrollDispatcher;
- this._viewportRuler = _viewportRuler;
- this._ngZone = _ngZone;
- this._config = _config;
- this._scrollSubscription = null;
- }
- /** Attaches this scroll strategy to an overlay. */
- attach(overlayRef) {
- if (this._overlayRef && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw getMatScrollStrategyAlreadyAttachedError();
- }
- this._overlayRef = overlayRef;
- }
- /** Enables repositioning of the attached overlay on scroll. */
- enable() {
- if (!this._scrollSubscription) {
- const throttle = this._config ? this._config.scrollThrottle : 0;
- this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe(() => {
- this._overlayRef.updatePosition();
- if (this._config && this._config.autoClose) {
- const overlayRect = this._overlayRef.overlayElement.getBoundingClientRect();
- const {
- width,
- height
- } = this._viewportRuler.getViewportSize();
- const parentRects = [{
- width,
- height,
- bottom: height,
- right: width,
- top: 0,
- left: 0
- }];
- if (isElementScrolledOutsideView(overlayRect, parentRects)) {
- this.disable();
- this._ngZone.run(() => this._overlayRef.detach());
- }
- }
- });
- }
- }
- /** Disables repositioning of the attached overlay on scroll. */
- disable() {
- if (this._scrollSubscription) {
- this._scrollSubscription.unsubscribe();
- this._scrollSubscription = null;
- }
- }
- detach() {
- this.disable();
- this._overlayRef = null;
- }
-};
-var _ScrollStrategyOptions = class _ScrollStrategyOptions {
- constructor(_scrollDispatcher, _viewportRuler, _ngZone, document2) {
- this._scrollDispatcher = _scrollDispatcher;
- this._viewportRuler = _viewportRuler;
- this._ngZone = _ngZone;
- this.noop = () => new NoopScrollStrategy();
- this.close = (config) => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);
- this.block = () => new BlockScrollStrategy(this._viewportRuler, this._document);
- this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);
- this._document = document2;
- }
-};
-_ScrollStrategyOptions.ɵfac = function ScrollStrategyOptions_Factory(t) {
- return new (t || _ScrollStrategyOptions)(ɵɵinject(ScrollDispatcher), ɵɵinject(ViewportRuler), ɵɵinject(NgZone), ɵɵinject(DOCUMENT));
-};
-_ScrollStrategyOptions.ɵprov = ɵɵdefineInjectable({
- token: _ScrollStrategyOptions,
- factory: _ScrollStrategyOptions.ɵfac,
- providedIn: "root"
-});
-var ScrollStrategyOptions = _ScrollStrategyOptions;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ScrollStrategyOptions, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: ScrollDispatcher
- }, {
- type: ViewportRuler
- }, {
- type: NgZone
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }], null);
-})();
-var OverlayConfig = class {
- constructor(config) {
- this.scrollStrategy = new NoopScrollStrategy();
- this.panelClass = "";
- this.hasBackdrop = false;
- this.backdropClass = "cdk-overlay-dark-backdrop";
- this.disposeOnNavigation = false;
- if (config) {
- const configKeys = Object.keys(config);
- for (const key of configKeys) {
- if (config[key] !== void 0) {
- this[key] = config[key];
- }
- }
- }
- }
-};
-var ConnectionPositionPair = class {
- constructor(origin, overlay, offsetX, offsetY, panelClass) {
- this.offsetX = offsetX;
- this.offsetY = offsetY;
- this.panelClass = panelClass;
- this.originX = origin.originX;
- this.originY = origin.originY;
- this.overlayX = overlay.overlayX;
- this.overlayY = overlay.overlayY;
- }
-};
-var ConnectedOverlayPositionChange = class {
- constructor(connectionPair, scrollableViewProperties) {
- this.connectionPair = connectionPair;
- this.scrollableViewProperties = scrollableViewProperties;
- }
-};
-function validateVerticalPosition(property, value) {
- if (value !== "top" && value !== "bottom" && value !== "center") {
- throw Error(`ConnectedPosition: Invalid ${property} "${value}". Expected "top", "bottom" or "center".`);
- }
-}
-function validateHorizontalPosition(property, value) {
- if (value !== "start" && value !== "end" && value !== "center") {
- throw Error(`ConnectedPosition: Invalid ${property} "${value}". Expected "start", "end" or "center".`);
- }
-}
-var _BaseOverlayDispatcher = class _BaseOverlayDispatcher {
- constructor(document2) {
- this._attachedOverlays = [];
- this._document = document2;
- }
- ngOnDestroy() {
- this.detach();
- }
- /** Add a new overlay to the list of attached overlay refs. */
- add(overlayRef) {
- this.remove(overlayRef);
- this._attachedOverlays.push(overlayRef);
- }
- /** Remove an overlay from the list of attached overlay refs. */
- remove(overlayRef) {
- const index = this._attachedOverlays.indexOf(overlayRef);
- if (index > -1) {
- this._attachedOverlays.splice(index, 1);
- }
- if (this._attachedOverlays.length === 0) {
- this.detach();
- }
- }
-};
-_BaseOverlayDispatcher.ɵfac = function BaseOverlayDispatcher_Factory(t) {
- return new (t || _BaseOverlayDispatcher)(ɵɵinject(DOCUMENT));
-};
-_BaseOverlayDispatcher.ɵprov = ɵɵdefineInjectable({
- token: _BaseOverlayDispatcher,
- factory: _BaseOverlayDispatcher.ɵfac,
- providedIn: "root"
-});
-var BaseOverlayDispatcher = _BaseOverlayDispatcher;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BaseOverlayDispatcher, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }], null);
-})();
-var _OverlayKeyboardDispatcher = class _OverlayKeyboardDispatcher extends BaseOverlayDispatcher {
- constructor(document2, _ngZone) {
- super(document2);
- this._ngZone = _ngZone;
- this._keydownListener = (event) => {
- const overlays = this._attachedOverlays;
- for (let i = overlays.length - 1; i > -1; i--) {
- if (overlays[i]._keydownEvents.observers.length > 0) {
- const keydownEvents = overlays[i]._keydownEvents;
- if (this._ngZone) {
- this._ngZone.run(() => keydownEvents.next(event));
- } else {
- keydownEvents.next(event);
- }
- break;
- }
- }
- };
- }
- /** Add a new overlay to the list of attached overlay refs. */
- add(overlayRef) {
- super.add(overlayRef);
- if (!this._isAttached) {
- if (this._ngZone) {
- this._ngZone.runOutsideAngular(() => this._document.body.addEventListener("keydown", this._keydownListener));
- } else {
- this._document.body.addEventListener("keydown", this._keydownListener);
- }
- this._isAttached = true;
- }
- }
- /** Detaches the global keyboard event listener. */
- detach() {
- if (this._isAttached) {
- this._document.body.removeEventListener("keydown", this._keydownListener);
- this._isAttached = false;
- }
- }
-};
-_OverlayKeyboardDispatcher.ɵfac = function OverlayKeyboardDispatcher_Factory(t) {
- return new (t || _OverlayKeyboardDispatcher)(ɵɵinject(DOCUMENT), ɵɵinject(NgZone, 8));
-};
-_OverlayKeyboardDispatcher.ɵprov = ɵɵdefineInjectable({
- token: _OverlayKeyboardDispatcher,
- factory: _OverlayKeyboardDispatcher.ɵfac,
- providedIn: "root"
-});
-var OverlayKeyboardDispatcher = _OverlayKeyboardDispatcher;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(OverlayKeyboardDispatcher, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: NgZone,
- decorators: [{
- type: Optional
- }]
- }], null);
-})();
-var _OverlayOutsideClickDispatcher = class _OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {
- constructor(document2, _platform, _ngZone) {
- super(document2);
- this._platform = _platform;
- this._ngZone = _ngZone;
- this._cursorStyleIsSet = false;
- this._pointerDownListener = (event) => {
- this._pointerDownEventTarget = _getEventTarget(event);
- };
- this._clickListener = (event) => {
- const target = _getEventTarget(event);
- const origin = event.type === "click" && this._pointerDownEventTarget ? this._pointerDownEventTarget : target;
- this._pointerDownEventTarget = null;
- const overlays = this._attachedOverlays.slice();
- for (let i = overlays.length - 1; i > -1; i--) {
- const overlayRef = overlays[i];
- if (overlayRef._outsidePointerEvents.observers.length < 1 || !overlayRef.hasAttached()) {
- continue;
- }
- if (overlayRef.overlayElement.contains(target) || overlayRef.overlayElement.contains(origin)) {
- break;
- }
- const outsidePointerEvents = overlayRef._outsidePointerEvents;
- if (this._ngZone) {
- this._ngZone.run(() => outsidePointerEvents.next(event));
- } else {
- outsidePointerEvents.next(event);
- }
- }
- };
- }
- /** Add a new overlay to the list of attached overlay refs. */
- add(overlayRef) {
- super.add(overlayRef);
- if (!this._isAttached) {
- const body = this._document.body;
- if (this._ngZone) {
- this._ngZone.runOutsideAngular(() => this._addEventListeners(body));
- } else {
- this._addEventListeners(body);
- }
- if (this._platform.IOS && !this._cursorStyleIsSet) {
- this._cursorOriginalValue = body.style.cursor;
- body.style.cursor = "pointer";
- this._cursorStyleIsSet = true;
- }
- this._isAttached = true;
- }
- }
- /** Detaches the global keyboard event listener. */
- detach() {
- if (this._isAttached) {
- const body = this._document.body;
- body.removeEventListener("pointerdown", this._pointerDownListener, true);
- body.removeEventListener("click", this._clickListener, true);
- body.removeEventListener("auxclick", this._clickListener, true);
- body.removeEventListener("contextmenu", this._clickListener, true);
- if (this._platform.IOS && this._cursorStyleIsSet) {
- body.style.cursor = this._cursorOriginalValue;
- this._cursorStyleIsSet = false;
- }
- this._isAttached = false;
- }
- }
- _addEventListeners(body) {
- body.addEventListener("pointerdown", this._pointerDownListener, true);
- body.addEventListener("click", this._clickListener, true);
- body.addEventListener("auxclick", this._clickListener, true);
- body.addEventListener("contextmenu", this._clickListener, true);
- }
-};
-_OverlayOutsideClickDispatcher.ɵfac = function OverlayOutsideClickDispatcher_Factory(t) {
- return new (t || _OverlayOutsideClickDispatcher)(ɵɵinject(DOCUMENT), ɵɵinject(Platform), ɵɵinject(NgZone, 8));
-};
-_OverlayOutsideClickDispatcher.ɵprov = ɵɵdefineInjectable({
- token: _OverlayOutsideClickDispatcher,
- factory: _OverlayOutsideClickDispatcher.ɵfac,
- providedIn: "root"
-});
-var OverlayOutsideClickDispatcher = _OverlayOutsideClickDispatcher;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(OverlayOutsideClickDispatcher, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: Platform
- }, {
- type: NgZone,
- decorators: [{
- type: Optional
- }]
- }], null);
-})();
-var _OverlayContainer = class _OverlayContainer {
- constructor(document2, _platform) {
- this._platform = _platform;
- this._document = document2;
- }
- ngOnDestroy() {
- this._containerElement?.remove();
- }
- /**
- * This method returns the overlay container element. It will lazily
- * create the element the first time it is called to facilitate using
- * the container in non-browser environments.
- * @returns the container element
- */
- getContainerElement() {
- if (!this._containerElement) {
- this._createContainer();
- }
- return this._containerElement;
- }
- /**
- * Create the overlay container element, which is simply a div
- * with the 'cdk-overlay-container' class on the document body.
- */
- _createContainer() {
- const containerClass = "cdk-overlay-container";
- if (this._platform.isBrowser || _isTestEnvironment()) {
- const oppositePlatformContainers = this._document.querySelectorAll(`.${containerClass}[platform="server"], .${containerClass}[platform="test"]`);
- for (let i = 0; i < oppositePlatformContainers.length; i++) {
- oppositePlatformContainers[i].remove();
- }
- }
- const container = this._document.createElement("div");
- container.classList.add(containerClass);
- if (_isTestEnvironment()) {
- container.setAttribute("platform", "test");
- } else if (!this._platform.isBrowser) {
- container.setAttribute("platform", "server");
- }
- this._document.body.appendChild(container);
- this._containerElement = container;
- }
-};
-_OverlayContainer.ɵfac = function OverlayContainer_Factory(t) {
- return new (t || _OverlayContainer)(ɵɵinject(DOCUMENT), ɵɵinject(Platform));
-};
-_OverlayContainer.ɵprov = ɵɵdefineInjectable({
- token: _OverlayContainer,
- factory: _OverlayContainer.ɵfac,
- providedIn: "root"
-});
-var OverlayContainer = _OverlayContainer;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(OverlayContainer, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: Platform
- }], null);
-})();
-var OverlayRef = class {
- constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDispatcher, _document, _location, _outsideClickDispatcher, _animationsDisabled = false) {
- this._portalOutlet = _portalOutlet;
- this._host = _host;
- this._pane = _pane;
- this._config = _config;
- this._ngZone = _ngZone;
- this._keyboardDispatcher = _keyboardDispatcher;
- this._document = _document;
- this._location = _location;
- this._outsideClickDispatcher = _outsideClickDispatcher;
- this._animationsDisabled = _animationsDisabled;
- this._backdropElement = null;
- this._backdropClick = new Subject();
- this._attachments = new Subject();
- this._detachments = new Subject();
- this._locationChanges = Subscription.EMPTY;
- this._backdropClickHandler = (event) => this._backdropClick.next(event);
- this._backdropTransitionendHandler = (event) => {
- this._disposeBackdrop(event.target);
- };
- this._keydownEvents = new Subject();
- this._outsidePointerEvents = new Subject();
- if (_config.scrollStrategy) {
- this._scrollStrategy = _config.scrollStrategy;
- this._scrollStrategy.attach(this);
- }
- this._positionStrategy = _config.positionStrategy;
- }
- /** The overlay's HTML element */
- get overlayElement() {
- return this._pane;
- }
- /** The overlay's backdrop HTML element. */
- get backdropElement() {
- return this._backdropElement;
- }
- /**
- * Wrapper around the panel element. Can be used for advanced
- * positioning where a wrapper with specific styling is
- * required around the overlay pane.
- */
- get hostElement() {
- return this._host;
- }
- /**
- * Attaches content, given via a Portal, to the overlay.
- * If the overlay is configured to have a backdrop, it will be created.
- *
- * @param portal Portal instance to which to attach the overlay.
- * @returns The portal attachment result.
- */
- attach(portal) {
- if (!this._host.parentElement && this._previousHostParent) {
- this._previousHostParent.appendChild(this._host);
- }
- const attachResult = this._portalOutlet.attach(portal);
- if (this._positionStrategy) {
- this._positionStrategy.attach(this);
- }
- this._updateStackingOrder();
- this._updateElementSize();
- this._updateElementDirection();
- if (this._scrollStrategy) {
- this._scrollStrategy.enable();
- }
- this._ngZone.onStable.pipe(take(1)).subscribe(() => {
- if (this.hasAttached()) {
- this.updatePosition();
- }
- });
- this._togglePointerEvents(true);
- if (this._config.hasBackdrop) {
- this._attachBackdrop();
- }
- if (this._config.panelClass) {
- this._toggleClasses(this._pane, this._config.panelClass, true);
- }
- this._attachments.next();
- this._keyboardDispatcher.add(this);
- if (this._config.disposeOnNavigation) {
- this._locationChanges = this._location.subscribe(() => this.dispose());
- }
- this._outsideClickDispatcher.add(this);
- if (typeof attachResult?.onDestroy === "function") {
- attachResult.onDestroy(() => {
- if (this.hasAttached()) {
- this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => this.detach()));
- }
- });
- }
- return attachResult;
- }
- /**
- * Detaches an overlay from a portal.
- * @returns The portal detachment result.
- */
- detach() {
- if (!this.hasAttached()) {
- return;
- }
- this.detachBackdrop();
- this._togglePointerEvents(false);
- if (this._positionStrategy && this._positionStrategy.detach) {
- this._positionStrategy.detach();
- }
- if (this._scrollStrategy) {
- this._scrollStrategy.disable();
- }
- const detachmentResult = this._portalOutlet.detach();
- this._detachments.next();
- this._keyboardDispatcher.remove(this);
- this._detachContentWhenStable();
- this._locationChanges.unsubscribe();
- this._outsideClickDispatcher.remove(this);
- return detachmentResult;
- }
- /** Cleans up the overlay from the DOM. */
- dispose() {
- const isAttached = this.hasAttached();
- if (this._positionStrategy) {
- this._positionStrategy.dispose();
- }
- this._disposeScrollStrategy();
- this._disposeBackdrop(this._backdropElement);
- this._locationChanges.unsubscribe();
- this._keyboardDispatcher.remove(this);
- this._portalOutlet.dispose();
- this._attachments.complete();
- this._backdropClick.complete();
- this._keydownEvents.complete();
- this._outsidePointerEvents.complete();
- this._outsideClickDispatcher.remove(this);
- this._host?.remove();
- this._previousHostParent = this._pane = this._host = null;
- if (isAttached) {
- this._detachments.next();
- }
- this._detachments.complete();
- }
- /** Whether the overlay has attached content. */
- hasAttached() {
- return this._portalOutlet.hasAttached();
- }
- /** Gets an observable that emits when the backdrop has been clicked. */
- backdropClick() {
- return this._backdropClick;
- }
- /** Gets an observable that emits when the overlay has been attached. */
- attachments() {
- return this._attachments;
- }
- /** Gets an observable that emits when the overlay has been detached. */
- detachments() {
- return this._detachments;
- }
- /** Gets an observable of keydown events targeted to this overlay. */
- keydownEvents() {
- return this._keydownEvents;
- }
- /** Gets an observable of pointer events targeted outside this overlay. */
- outsidePointerEvents() {
- return this._outsidePointerEvents;
- }
- /** Gets the current overlay configuration, which is immutable. */
- getConfig() {
- return this._config;
- }
- /** Updates the position of the overlay based on the position strategy. */
- updatePosition() {
- if (this._positionStrategy) {
- this._positionStrategy.apply();
- }
- }
- /** Switches to a new position strategy and updates the overlay position. */
- updatePositionStrategy(strategy) {
- if (strategy === this._positionStrategy) {
- return;
- }
- if (this._positionStrategy) {
- this._positionStrategy.dispose();
- }
- this._positionStrategy = strategy;
- if (this.hasAttached()) {
- strategy.attach(this);
- this.updatePosition();
- }
- }
- /** Update the size properties of the overlay. */
- updateSize(sizeConfig) {
- this._config = __spreadValues(__spreadValues({}, this._config), sizeConfig);
- this._updateElementSize();
- }
- /** Sets the LTR/RTL direction for the overlay. */
- setDirection(dir) {
- this._config = __spreadProps(__spreadValues({}, this._config), {
- direction: dir
- });
- this._updateElementDirection();
- }
- /** Add a CSS class or an array of classes to the overlay pane. */
- addPanelClass(classes) {
- if (this._pane) {
- this._toggleClasses(this._pane, classes, true);
- }
- }
- /** Remove a CSS class or an array of classes from the overlay pane. */
- removePanelClass(classes) {
- if (this._pane) {
- this._toggleClasses(this._pane, classes, false);
- }
- }
- /**
- * Returns the layout direction of the overlay panel.
- */
- getDirection() {
- const direction = this._config.direction;
- if (!direction) {
- return "ltr";
- }
- return typeof direction === "string" ? direction : direction.value;
- }
- /** Switches to a new scroll strategy. */
- updateScrollStrategy(strategy) {
- if (strategy === this._scrollStrategy) {
- return;
- }
- this._disposeScrollStrategy();
- this._scrollStrategy = strategy;
- if (this.hasAttached()) {
- strategy.attach(this);
- strategy.enable();
- }
- }
- /** Updates the text direction of the overlay panel. */
- _updateElementDirection() {
- this._host.setAttribute("dir", this.getDirection());
- }
- /** Updates the size of the overlay element based on the overlay config. */
- _updateElementSize() {
- if (!this._pane) {
- return;
- }
- const style = this._pane.style;
- style.width = coerceCssPixelValue(this._config.width);
- style.height = coerceCssPixelValue(this._config.height);
- style.minWidth = coerceCssPixelValue(this._config.minWidth);
- style.minHeight = coerceCssPixelValue(this._config.minHeight);
- style.maxWidth = coerceCssPixelValue(this._config.maxWidth);
- style.maxHeight = coerceCssPixelValue(this._config.maxHeight);
- }
- /** Toggles the pointer events for the overlay pane element. */
- _togglePointerEvents(enablePointer) {
- this._pane.style.pointerEvents = enablePointer ? "" : "none";
- }
- /** Attaches a backdrop for this overlay. */
- _attachBackdrop() {
- const showingClass = "cdk-overlay-backdrop-showing";
- this._backdropElement = this._document.createElement("div");
- this._backdropElement.classList.add("cdk-overlay-backdrop");
- if (this._animationsDisabled) {
- this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation");
- }
- if (this._config.backdropClass) {
- this._toggleClasses(this._backdropElement, this._config.backdropClass, true);
- }
- this._host.parentElement.insertBefore(this._backdropElement, this._host);
- this._backdropElement.addEventListener("click", this._backdropClickHandler);
- if (!this._animationsDisabled && typeof requestAnimationFrame !== "undefined") {
- this._ngZone.runOutsideAngular(() => {
- requestAnimationFrame(() => {
- if (this._backdropElement) {
- this._backdropElement.classList.add(showingClass);
- }
- });
- });
- } else {
- this._backdropElement.classList.add(showingClass);
- }
- }
- /**
- * Updates the stacking order of the element, moving it to the top if necessary.
- * This is required in cases where one overlay was detached, while another one,
- * that should be behind it, was destroyed. The next time both of them are opened,
- * the stacking will be wrong, because the detached element's pane will still be
- * in its original DOM position.
- */
- _updateStackingOrder() {
- if (this._host.nextSibling) {
- this._host.parentNode.appendChild(this._host);
- }
- }
- /** Detaches the backdrop (if any) associated with the overlay. */
- detachBackdrop() {
- const backdropToDetach = this._backdropElement;
- if (!backdropToDetach) {
- return;
- }
- if (this._animationsDisabled) {
- this._disposeBackdrop(backdropToDetach);
- return;
- }
- backdropToDetach.classList.remove("cdk-overlay-backdrop-showing");
- this._ngZone.runOutsideAngular(() => {
- backdropToDetach.addEventListener("transitionend", this._backdropTransitionendHandler);
- });
- backdropToDetach.style.pointerEvents = "none";
- this._backdropTimeout = this._ngZone.runOutsideAngular(() => setTimeout(() => {
- this._disposeBackdrop(backdropToDetach);
- }, 500));
- }
- /** Toggles a single CSS class or an array of classes on an element. */
- _toggleClasses(element, cssClasses, isAdd) {
- const classes = coerceArray(cssClasses || []).filter((c) => !!c);
- if (classes.length) {
- isAdd ? element.classList.add(...classes) : element.classList.remove(...classes);
- }
- }
- /** Detaches the overlay content next time the zone stabilizes. */
- _detachContentWhenStable() {
- this._ngZone.runOutsideAngular(() => {
- const subscription = this._ngZone.onStable.pipe(takeUntil(merge(this._attachments, this._detachments))).subscribe(() => {
- if (!this._pane || !this._host || this._pane.children.length === 0) {
- if (this._pane && this._config.panelClass) {
- this._toggleClasses(this._pane, this._config.panelClass, false);
- }
- if (this._host && this._host.parentElement) {
- this._previousHostParent = this._host.parentElement;
- this._host.remove();
- }
- subscription.unsubscribe();
- }
- });
- });
- }
- /** Disposes of a scroll strategy. */
- _disposeScrollStrategy() {
- const scrollStrategy = this._scrollStrategy;
- if (scrollStrategy) {
- scrollStrategy.disable();
- if (scrollStrategy.detach) {
- scrollStrategy.detach();
- }
- }
- }
- /** Removes a backdrop element from the DOM. */
- _disposeBackdrop(backdrop) {
- if (backdrop) {
- backdrop.removeEventListener("click", this._backdropClickHandler);
- backdrop.removeEventListener("transitionend", this._backdropTransitionendHandler);
- backdrop.remove();
- if (this._backdropElement === backdrop) {
- this._backdropElement = null;
- }
- }
- if (this._backdropTimeout) {
- clearTimeout(this._backdropTimeout);
- this._backdropTimeout = void 0;
- }
- }
-};
-var boundingBoxClass = "cdk-overlay-connected-position-bounding-box";
-var cssUnitPattern = /([A-Za-z%]+)$/;
-var FlexibleConnectedPositionStrategy = class {
- /** Ordered list of preferred positions, from most to least desirable. */
- get positions() {
- return this._preferredPositions;
- }
- constructor(connectedTo, _viewportRuler, _document, _platform, _overlayContainer) {
- this._viewportRuler = _viewportRuler;
- this._document = _document;
- this._platform = _platform;
- this._overlayContainer = _overlayContainer;
- this._lastBoundingBoxSize = {
- width: 0,
- height: 0
- };
- this._isPushed = false;
- this._canPush = true;
- this._growAfterOpen = false;
- this._hasFlexibleDimensions = true;
- this._positionLocked = false;
- this._viewportMargin = 0;
- this._scrollables = [];
- this._preferredPositions = [];
- this._positionChanges = new Subject();
- this._resizeSubscription = Subscription.EMPTY;
- this._offsetX = 0;
- this._offsetY = 0;
- this._appliedPanelClasses = [];
- this.positionChanges = this._positionChanges;
- this.setOrigin(connectedTo);
- }
- /** Attaches this position strategy to an overlay. */
- attach(overlayRef) {
- if (this._overlayRef && overlayRef !== this._overlayRef && (typeof ngDevMode === "undefined" || ngDevMode)) {
- throw Error("This position strategy is already attached to an overlay");
- }
- this._validatePositions();
- overlayRef.hostElement.classList.add(boundingBoxClass);
- this._overlayRef = overlayRef;
- this._boundingBox = overlayRef.hostElement;
- this._pane = overlayRef.overlayElement;
- this._isDisposed = false;
- this._isInitialRender = true;
- this._lastPosition = null;
- this._resizeSubscription.unsubscribe();
- this._resizeSubscription = this._viewportRuler.change().subscribe(() => {
- this._isInitialRender = true;
- this.apply();
- });
- }
- /**
- * Updates the position of the overlay element, using whichever preferred position relative
- * to the origin best fits on-screen.
- *
- * The selection of a position goes as follows:
- * - If any positions fit completely within the viewport as-is,
- * choose the first position that does so.
- * - If flexible dimensions are enabled and at least one satisfies the given minimum width/height,
- * choose the position with the greatest available size modified by the positions' weight.
- * - If pushing is enabled, take the position that went off-screen the least and push it
- * on-screen.
- * - If none of the previous criteria were met, use the position that goes off-screen the least.
- * @docs-private
- */
- apply() {
- if (this._isDisposed || !this._platform.isBrowser) {
- return;
- }
- if (!this._isInitialRender && this._positionLocked && this._lastPosition) {
- this.reapplyLastPosition();
- return;
- }
- this._clearPanelClasses();
- this._resetOverlayElementStyles();
- this._resetBoundingBoxStyles();
- this._viewportRect = this._getNarrowedViewportRect();
- this._originRect = this._getOriginRect();
- this._overlayRect = this._pane.getBoundingClientRect();
- this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();
- const originRect = this._originRect;
- const overlayRect = this._overlayRect;
- const viewportRect = this._viewportRect;
- const containerRect = this._containerRect;
- const flexibleFits = [];
- let fallback;
- for (let pos of this._preferredPositions) {
- let originPoint = this._getOriginPoint(originRect, containerRect, pos);
- let overlayPoint = this._getOverlayPoint(originPoint, overlayRect, pos);
- let overlayFit = this._getOverlayFit(overlayPoint, overlayRect, viewportRect, pos);
- if (overlayFit.isCompletelyWithinViewport) {
- this._isPushed = false;
- this._applyPosition(pos, originPoint);
- return;
- }
- if (this._canFitWithFlexibleDimensions(overlayFit, overlayPoint, viewportRect)) {
- flexibleFits.push({
- position: pos,
- origin: originPoint,
- overlayRect,
- boundingBoxRect: this._calculateBoundingBoxRect(originPoint, pos)
- });
- continue;
- }
- if (!fallback || fallback.overlayFit.visibleArea < overlayFit.visibleArea) {
- fallback = {
- overlayFit,
- overlayPoint,
- originPoint,
- position: pos,
- overlayRect
- };
- }
- }
- if (flexibleFits.length) {
- let bestFit = null;
- let bestScore = -1;
- for (const fit of flexibleFits) {
- const score = fit.boundingBoxRect.width * fit.boundingBoxRect.height * (fit.position.weight || 1);
- if (score > bestScore) {
- bestScore = score;
- bestFit = fit;
- }
- }
- this._isPushed = false;
- this._applyPosition(bestFit.position, bestFit.origin);
- return;
- }
- if (this._canPush) {
- this._isPushed = true;
- this._applyPosition(fallback.position, fallback.originPoint);
- return;
- }
- this._applyPosition(fallback.position, fallback.originPoint);
- }
- detach() {
- this._clearPanelClasses();
- this._lastPosition = null;
- this._previousPushAmount = null;
- this._resizeSubscription.unsubscribe();
- }
- /** Cleanup after the element gets destroyed. */
- dispose() {
- if (this._isDisposed) {
- return;
- }
- if (this._boundingBox) {
- extendStyles(this._boundingBox.style, {
- top: "",
- left: "",
- right: "",
- bottom: "",
- height: "",
- width: "",
- alignItems: "",
- justifyContent: ""
- });
- }
- if (this._pane) {
- this._resetOverlayElementStyles();
- }
- if (this._overlayRef) {
- this._overlayRef.hostElement.classList.remove(boundingBoxClass);
- }
- this.detach();
- this._positionChanges.complete();
- this._overlayRef = this._boundingBox = null;
- this._isDisposed = true;
- }
- /**
- * This re-aligns the overlay element with the trigger in its last calculated position,
- * even if a position higher in the "preferred positions" list would now fit. This
- * allows one to re-align the panel without changing the orientation of the panel.
- */
- reapplyLastPosition() {
- if (this._isDisposed || !this._platform.isBrowser) {
- return;
- }
- const lastPosition = this._lastPosition;
- if (lastPosition) {
- this._originRect = this._getOriginRect();
- this._overlayRect = this._pane.getBoundingClientRect();
- this._viewportRect = this._getNarrowedViewportRect();
- this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();
- const originPoint = this._getOriginPoint(this._originRect, this._containerRect, lastPosition);
- this._applyPosition(lastPosition, originPoint);
- } else {
- this.apply();
- }
- }
- /**
- * Sets the list of Scrollable containers that host the origin element so that
- * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every
- * Scrollable must be an ancestor element of the strategy's origin element.
- */
- withScrollableContainers(scrollables) {
- this._scrollables = scrollables;
- return this;
- }
- /**
- * Adds new preferred positions.
- * @param positions List of positions options for this overlay.
- */
- withPositions(positions) {
- this._preferredPositions = positions;
- if (positions.indexOf(this._lastPosition) === -1) {
- this._lastPosition = null;
- }
- this._validatePositions();
- return this;
- }
- /**
- * Sets a minimum distance the overlay may be positioned to the edge of the viewport.
- * @param margin Required margin between the overlay and the viewport edge in pixels.
- */
- withViewportMargin(margin) {
- this._viewportMargin = margin;
- return this;
- }
- /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */
- withFlexibleDimensions(flexibleDimensions = true) {
- this._hasFlexibleDimensions = flexibleDimensions;
- return this;
- }
- /** Sets whether the overlay can grow after the initial open via flexible width/height. */
- withGrowAfterOpen(growAfterOpen = true) {
- this._growAfterOpen = growAfterOpen;
- return this;
- }
- /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */
- withPush(canPush = true) {
- this._canPush = canPush;
- return this;
- }
- /**
- * Sets whether the overlay's position should be locked in after it is positioned
- * initially. When an overlay is locked in, it won't attempt to reposition itself
- * when the position is re-applied (e.g. when the user scrolls away).
- * @param isLocked Whether the overlay should locked in.
- */
- withLockedPosition(isLocked = true) {
- this._positionLocked = isLocked;
- return this;
- }
- /**
- * Sets the origin, relative to which to position the overlay.
- * Using an element origin is useful for building components that need to be positioned
- * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be
- * used for cases like contextual menus which open relative to the user's pointer.
- * @param origin Reference to the new origin.
- */
- setOrigin(origin) {
- this._origin = origin;
- return this;
- }
- /**
- * Sets the default offset for the overlay's connection point on the x-axis.
- * @param offset New offset in the X axis.
- */
- withDefaultOffsetX(offset) {
- this._offsetX = offset;
- return this;
- }
- /**
- * Sets the default offset for the overlay's connection point on the y-axis.
- * @param offset New offset in the Y axis.
- */
- withDefaultOffsetY(offset) {
- this._offsetY = offset;
- return this;
- }
- /**
- * Configures that the position strategy should set a `transform-origin` on some elements
- * inside the overlay, depending on the current position that is being applied. This is
- * useful for the cases where the origin of an animation can change depending on the
- * alignment of the overlay.
- * @param selector CSS selector that will be used to find the target
- * elements onto which to set the transform origin.
- */
- withTransformOriginOn(selector) {
- this._transformOriginSelector = selector;
- return this;
- }
- /**
- * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.
- */
- _getOriginPoint(originRect, containerRect, pos) {
- let x;
- if (pos.originX == "center") {
- x = originRect.left + originRect.width / 2;
- } else {
- const startX = this._isRtl() ? originRect.right : originRect.left;
- const endX = this._isRtl() ? originRect.left : originRect.right;
- x = pos.originX == "start" ? startX : endX;
- }
- if (containerRect.left < 0) {
- x -= containerRect.left;
- }
- let y;
- if (pos.originY == "center") {
- y = originRect.top + originRect.height / 2;
- } else {
- y = pos.originY == "top" ? originRect.top : originRect.bottom;
- }
- if (containerRect.top < 0) {
- y -= containerRect.top;
- }
- return {
- x,
- y
- };
- }
- /**
- * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and
- * origin point to which the overlay should be connected.
- */
- _getOverlayPoint(originPoint, overlayRect, pos) {
- let overlayStartX;
- if (pos.overlayX == "center") {
- overlayStartX = -overlayRect.width / 2;
- } else if (pos.overlayX === "start") {
- overlayStartX = this._isRtl() ? -overlayRect.width : 0;
- } else {
- overlayStartX = this._isRtl() ? 0 : -overlayRect.width;
- }
- let overlayStartY;
- if (pos.overlayY == "center") {
- overlayStartY = -overlayRect.height / 2;
- } else {
- overlayStartY = pos.overlayY == "top" ? 0 : -overlayRect.height;
- }
- return {
- x: originPoint.x + overlayStartX,
- y: originPoint.y + overlayStartY
- };
- }
- /** Gets how well an overlay at the given point will fit within the viewport. */
- _getOverlayFit(point, rawOverlayRect, viewport, position) {
- const overlay = getRoundedBoundingClientRect(rawOverlayRect);
- let {
- x,
- y
- } = point;
- let offsetX = this._getOffset(position, "x");
- let offsetY = this._getOffset(position, "y");
- if (offsetX) {
- x += offsetX;
- }
- if (offsetY) {
- y += offsetY;
- }
- let leftOverflow = 0 - x;
- let rightOverflow = x + overlay.width - viewport.width;
- let topOverflow = 0 - y;
- let bottomOverflow = y + overlay.height - viewport.height;
- let visibleWidth = this._subtractOverflows(overlay.width, leftOverflow, rightOverflow);
- let visibleHeight = this._subtractOverflows(overlay.height, topOverflow, bottomOverflow);
- let visibleArea = visibleWidth * visibleHeight;
- return {
- visibleArea,
- isCompletelyWithinViewport: overlay.width * overlay.height === visibleArea,
- fitsInViewportVertically: visibleHeight === overlay.height,
- fitsInViewportHorizontally: visibleWidth == overlay.width
- };
- }
- /**
- * Whether the overlay can fit within the viewport when it may resize either its width or height.
- * @param fit How well the overlay fits in the viewport at some position.
- * @param point The (x, y) coordinates of the overlay at some position.
- * @param viewport The geometry of the viewport.
- */
- _canFitWithFlexibleDimensions(fit, point, viewport) {
- if (this._hasFlexibleDimensions) {
- const availableHeight = viewport.bottom - point.y;
- const availableWidth = viewport.right - point.x;
- const minHeight = getPixelValue(this._overlayRef.getConfig().minHeight);
- const minWidth = getPixelValue(this._overlayRef.getConfig().minWidth);
- const verticalFit = fit.fitsInViewportVertically || minHeight != null && minHeight <= availableHeight;
- const horizontalFit = fit.fitsInViewportHorizontally || minWidth != null && minWidth <= availableWidth;
- return verticalFit && horizontalFit;
- }
- return false;
- }
- /**
- * Gets the point at which the overlay can be "pushed" on-screen. If the overlay is larger than
- * the viewport, the top-left corner will be pushed on-screen (with overflow occurring on the
- * right and bottom).
- *
- * @param start Starting point from which the overlay is pushed.
- * @param rawOverlayRect Dimensions of the overlay.
- * @param scrollPosition Current viewport scroll position.
- * @returns The point at which to position the overlay after pushing. This is effectively a new
- * originPoint.
- */
- _pushOverlayOnScreen(start, rawOverlayRect, scrollPosition) {
- if (this._previousPushAmount && this._positionLocked) {
- return {
- x: start.x + this._previousPushAmount.x,
- y: start.y + this._previousPushAmount.y
- };
- }
- const overlay = getRoundedBoundingClientRect(rawOverlayRect);
- const viewport = this._viewportRect;
- const overflowRight = Math.max(start.x + overlay.width - viewport.width, 0);
- const overflowBottom = Math.max(start.y + overlay.height - viewport.height, 0);
- const overflowTop = Math.max(viewport.top - scrollPosition.top - start.y, 0);
- const overflowLeft = Math.max(viewport.left - scrollPosition.left - start.x, 0);
- let pushX = 0;
- let pushY = 0;
- if (overlay.width <= viewport.width) {
- pushX = overflowLeft || -overflowRight;
- } else {
- pushX = start.x < this._viewportMargin ? viewport.left - scrollPosition.left - start.x : 0;
- }
- if (overlay.height <= viewport.height) {
- pushY = overflowTop || -overflowBottom;
- } else {
- pushY = start.y < this._viewportMargin ? viewport.top - scrollPosition.top - start.y : 0;
- }
- this._previousPushAmount = {
- x: pushX,
- y: pushY
- };
- return {
- x: start.x + pushX,
- y: start.y + pushY
- };
- }
- /**
- * Applies a computed position to the overlay and emits a position change.
- * @param position The position preference
- * @param originPoint The point on the origin element where the overlay is connected.
- */
- _applyPosition(position, originPoint) {
- this._setTransformOrigin(position);
- this._setOverlayElementStyles(originPoint, position);
- this._setBoundingBoxStyles(originPoint, position);
- if (position.panelClass) {
- this._addPanelClasses(position.panelClass);
- }
- this._lastPosition = position;
- if (this._positionChanges.observers.length) {
- const scrollableViewProperties = this._getScrollVisibility();
- const changeEvent = new ConnectedOverlayPositionChange(position, scrollableViewProperties);
- this._positionChanges.next(changeEvent);
- }
- this._isInitialRender = false;
- }
- /** Sets the transform origin based on the configured selector and the passed-in position. */
- _setTransformOrigin(position) {
- if (!this._transformOriginSelector) {
- return;
- }
- const elements = this._boundingBox.querySelectorAll(this._transformOriginSelector);
- let xOrigin;
- let yOrigin = position.overlayY;
- if (position.overlayX === "center") {
- xOrigin = "center";
- } else if (this._isRtl()) {
- xOrigin = position.overlayX === "start" ? "right" : "left";
- } else {
- xOrigin = position.overlayX === "start" ? "left" : "right";
- }
- for (let i = 0; i < elements.length; i++) {
- elements[i].style.transformOrigin = `${xOrigin} ${yOrigin}`;
- }
- }
- /**
- * Gets the position and size of the overlay's sizing container.
- *
- * This method does no measuring and applies no styles so that we can cheaply compute the
- * bounds for all positions and choose the best fit based on these results.
- */
- _calculateBoundingBoxRect(origin, position) {
- const viewport = this._viewportRect;
- const isRtl = this._isRtl();
- let height, top, bottom;
- if (position.overlayY === "top") {
- top = origin.y;
- height = viewport.height - top + this._viewportMargin;
- } else if (position.overlayY === "bottom") {
- bottom = viewport.height - origin.y + this._viewportMargin * 2;
- height = viewport.height - bottom + this._viewportMargin;
- } else {
- const smallestDistanceToViewportEdge = Math.min(viewport.bottom - origin.y + viewport.top, origin.y);
- const previousHeight = this._lastBoundingBoxSize.height;
- height = smallestDistanceToViewportEdge * 2;
- top = origin.y - smallestDistanceToViewportEdge;
- if (height > previousHeight && !this._isInitialRender && !this._growAfterOpen) {
- top = origin.y - previousHeight / 2;
- }
- }
- const isBoundedByRightViewportEdge = position.overlayX === "start" && !isRtl || position.overlayX === "end" && isRtl;
- const isBoundedByLeftViewportEdge = position.overlayX === "end" && !isRtl || position.overlayX === "start" && isRtl;
- let width, left, right;
- if (isBoundedByLeftViewportEdge) {
- right = viewport.width - origin.x + this._viewportMargin;
- width = origin.x - this._viewportMargin;
- } else if (isBoundedByRightViewportEdge) {
- left = origin.x;
- width = viewport.right - origin.x;
- } else {
- const smallestDistanceToViewportEdge = Math.min(viewport.right - origin.x + viewport.left, origin.x);
- const previousWidth = this._lastBoundingBoxSize.width;
- width = smallestDistanceToViewportEdge * 2;
- left = origin.x - smallestDistanceToViewportEdge;
- if (width > previousWidth && !this._isInitialRender && !this._growAfterOpen) {
- left = origin.x - previousWidth / 2;
- }
- }
- return {
- top,
- left,
- bottom,
- right,
- width,
- height
- };
- }
- /**
- * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the
- * origin's connection point and stretches to the bounds of the viewport.
- *
- * @param origin The point on the origin element where the overlay is connected.
- * @param position The position preference
- */
- _setBoundingBoxStyles(origin, position) {
- const boundingBoxRect = this._calculateBoundingBoxRect(origin, position);
- if (!this._isInitialRender && !this._growAfterOpen) {
- boundingBoxRect.height = Math.min(boundingBoxRect.height, this._lastBoundingBoxSize.height);
- boundingBoxRect.width = Math.min(boundingBoxRect.width, this._lastBoundingBoxSize.width);
- }
- const styles = {};
- if (this._hasExactPosition()) {
- styles.top = styles.left = "0";
- styles.bottom = styles.right = styles.maxHeight = styles.maxWidth = "";
- styles.width = styles.height = "100%";
- } else {
- const maxHeight = this._overlayRef.getConfig().maxHeight;
- const maxWidth = this._overlayRef.getConfig().maxWidth;
- styles.height = coerceCssPixelValue(boundingBoxRect.height);
- styles.top = coerceCssPixelValue(boundingBoxRect.top);
- styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom);
- styles.width = coerceCssPixelValue(boundingBoxRect.width);
- styles.left = coerceCssPixelValue(boundingBoxRect.left);
- styles.right = coerceCssPixelValue(boundingBoxRect.right);
- if (position.overlayX === "center") {
- styles.alignItems = "center";
- } else {
- styles.alignItems = position.overlayX === "end" ? "flex-end" : "flex-start";
- }
- if (position.overlayY === "center") {
- styles.justifyContent = "center";
- } else {
- styles.justifyContent = position.overlayY === "bottom" ? "flex-end" : "flex-start";
- }
- if (maxHeight) {
- styles.maxHeight = coerceCssPixelValue(maxHeight);
- }
- if (maxWidth) {
- styles.maxWidth = coerceCssPixelValue(maxWidth);
- }
- }
- this._lastBoundingBoxSize = boundingBoxRect;
- extendStyles(this._boundingBox.style, styles);
- }
- /** Resets the styles for the bounding box so that a new positioning can be computed. */
- _resetBoundingBoxStyles() {
- extendStyles(this._boundingBox.style, {
- top: "0",
- left: "0",
- right: "0",
- bottom: "0",
- height: "",
- width: "",
- alignItems: "",
- justifyContent: ""
- });
- }
- /** Resets the styles for the overlay pane so that a new positioning can be computed. */
- _resetOverlayElementStyles() {
- extendStyles(this._pane.style, {
- top: "",
- left: "",
- bottom: "",
- right: "",
- position: "",
- transform: ""
- });
- }
- /** Sets positioning styles to the overlay element. */
- _setOverlayElementStyles(originPoint, position) {
- const styles = {};
- const hasExactPosition = this._hasExactPosition();
- const hasFlexibleDimensions = this._hasFlexibleDimensions;
- const config = this._overlayRef.getConfig();
- if (hasExactPosition) {
- const scrollPosition = this._viewportRuler.getViewportScrollPosition();
- extendStyles(styles, this._getExactOverlayY(position, originPoint, scrollPosition));
- extendStyles(styles, this._getExactOverlayX(position, originPoint, scrollPosition));
- } else {
- styles.position = "static";
- }
- let transformString = "";
- let offsetX = this._getOffset(position, "x");
- let offsetY = this._getOffset(position, "y");
- if (offsetX) {
- transformString += `translateX(${offsetX}px) `;
- }
- if (offsetY) {
- transformString += `translateY(${offsetY}px)`;
- }
- styles.transform = transformString.trim();
- if (config.maxHeight) {
- if (hasExactPosition) {
- styles.maxHeight = coerceCssPixelValue(config.maxHeight);
- } else if (hasFlexibleDimensions) {
- styles.maxHeight = "";
- }
- }
- if (config.maxWidth) {
- if (hasExactPosition) {
- styles.maxWidth = coerceCssPixelValue(config.maxWidth);
- } else if (hasFlexibleDimensions) {
- styles.maxWidth = "";
- }
- }
- extendStyles(this._pane.style, styles);
- }
- /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */
- _getExactOverlayY(position, originPoint, scrollPosition) {
- let styles = {
- top: "",
- bottom: ""
- };
- let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);
- if (this._isPushed) {
- overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);
- }
- if (position.overlayY === "bottom") {
- const documentHeight = this._document.documentElement.clientHeight;
- styles.bottom = `${documentHeight - (overlayPoint.y + this._overlayRect.height)}px`;
- } else {
- styles.top = coerceCssPixelValue(overlayPoint.y);
- }
- return styles;
- }
- /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */
- _getExactOverlayX(position, originPoint, scrollPosition) {
- let styles = {
- left: "",
- right: ""
- };
- let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);
- if (this._isPushed) {
- overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);
- }
- let horizontalStyleProperty;
- if (this._isRtl()) {
- horizontalStyleProperty = position.overlayX === "end" ? "left" : "right";
- } else {
- horizontalStyleProperty = position.overlayX === "end" ? "right" : "left";
- }
- if (horizontalStyleProperty === "right") {
- const documentWidth = this._document.documentElement.clientWidth;
- styles.right = `${documentWidth - (overlayPoint.x + this._overlayRect.width)}px`;
- } else {
- styles.left = coerceCssPixelValue(overlayPoint.x);
- }
- return styles;
- }
- /**
- * Gets the view properties of the trigger and overlay, including whether they are clipped
- * or completely outside the view of any of the strategy's scrollables.
- */
- _getScrollVisibility() {
- const originBounds = this._getOriginRect();
- const overlayBounds = this._pane.getBoundingClientRect();
- const scrollContainerBounds = this._scrollables.map((scrollable) => {
- return scrollable.getElementRef().nativeElement.getBoundingClientRect();
- });
- return {
- isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),
- isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),
- isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),
- isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds)
- };
- }
- /** Subtracts the amount that an element is overflowing on an axis from its length. */
- _subtractOverflows(length, ...overflows) {
- return overflows.reduce((currentValue, currentOverflow) => {
- return currentValue - Math.max(currentOverflow, 0);
- }, length);
- }
- /** Narrows the given viewport rect by the current _viewportMargin. */
- _getNarrowedViewportRect() {
- const width = this._document.documentElement.clientWidth;
- const height = this._document.documentElement.clientHeight;
- const scrollPosition = this._viewportRuler.getViewportScrollPosition();
- return {
- top: scrollPosition.top + this._viewportMargin,
- left: scrollPosition.left + this._viewportMargin,
- right: scrollPosition.left + width - this._viewportMargin,
- bottom: scrollPosition.top + height - this._viewportMargin,
- width: width - 2 * this._viewportMargin,
- height: height - 2 * this._viewportMargin
- };
- }
- /** Whether the we're dealing with an RTL context */
- _isRtl() {
- return this._overlayRef.getDirection() === "rtl";
- }
- /** Determines whether the overlay uses exact or flexible positioning. */
- _hasExactPosition() {
- return !this._hasFlexibleDimensions || this._isPushed;
- }
- /** Retrieves the offset of a position along the x or y axis. */
- _getOffset(position, axis) {
- if (axis === "x") {
- return position.offsetX == null ? this._offsetX : position.offsetX;
- }
- return position.offsetY == null ? this._offsetY : position.offsetY;
- }
- /** Validates that the current position match the expected values. */
- _validatePositions() {
- if (typeof ngDevMode === "undefined" || ngDevMode) {
- if (!this._preferredPositions.length) {
- throw Error("FlexibleConnectedPositionStrategy: At least one position is required.");
- }
- this._preferredPositions.forEach((pair) => {
- validateHorizontalPosition("originX", pair.originX);
- validateVerticalPosition("originY", pair.originY);
- validateHorizontalPosition("overlayX", pair.overlayX);
- validateVerticalPosition("overlayY", pair.overlayY);
- });
- }
- }
- /** Adds a single CSS class or an array of classes on the overlay panel. */
- _addPanelClasses(cssClasses) {
- if (this._pane) {
- coerceArray(cssClasses).forEach((cssClass) => {
- if (cssClass !== "" && this._appliedPanelClasses.indexOf(cssClass) === -1) {
- this._appliedPanelClasses.push(cssClass);
- this._pane.classList.add(cssClass);
- }
- });
- }
- }
- /** Clears the classes that the position strategy has applied from the overlay panel. */
- _clearPanelClasses() {
- if (this._pane) {
- this._appliedPanelClasses.forEach((cssClass) => {
- this._pane.classList.remove(cssClass);
- });
- this._appliedPanelClasses = [];
- }
- }
- /** Returns the ClientRect of the current origin. */
- _getOriginRect() {
- const origin = this._origin;
- if (origin instanceof ElementRef) {
- return origin.nativeElement.getBoundingClientRect();
- }
- if (origin instanceof Element) {
- return origin.getBoundingClientRect();
- }
- const width = origin.width || 0;
- const height = origin.height || 0;
- return {
- top: origin.y,
- bottom: origin.y + height,
- left: origin.x,
- right: origin.x + width,
- height,
- width
- };
- }
-};
-function extendStyles(destination, source) {
- for (let key in source) {
- if (source.hasOwnProperty(key)) {
- destination[key] = source[key];
- }
- }
- return destination;
-}
-function getPixelValue(input) {
- if (typeof input !== "number" && input != null) {
- const [value, units] = input.split(cssUnitPattern);
- return !units || units === "px" ? parseFloat(value) : null;
- }
- return input || null;
-}
-function getRoundedBoundingClientRect(clientRect) {
- return {
- top: Math.floor(clientRect.top),
- right: Math.floor(clientRect.right),
- bottom: Math.floor(clientRect.bottom),
- left: Math.floor(clientRect.left),
- width: Math.floor(clientRect.width),
- height: Math.floor(clientRect.height)
- };
-}
-var wrapperClass = "cdk-global-overlay-wrapper";
-var GlobalPositionStrategy = class {
- constructor() {
- this._cssPosition = "static";
- this._topOffset = "";
- this._bottomOffset = "";
- this._alignItems = "";
- this._xPosition = "";
- this._xOffset = "";
- this._width = "";
- this._height = "";
- this._isDisposed = false;
- }
- attach(overlayRef) {
- const config = overlayRef.getConfig();
- this._overlayRef = overlayRef;
- if (this._width && !config.width) {
- overlayRef.updateSize({
- width: this._width
- });
- }
- if (this._height && !config.height) {
- overlayRef.updateSize({
- height: this._height
- });
- }
- overlayRef.hostElement.classList.add(wrapperClass);
- this._isDisposed = false;
- }
- /**
- * Sets the top position of the overlay. Clears any previously set vertical position.
- * @param value New top offset.
- */
- top(value = "") {
- this._bottomOffset = "";
- this._topOffset = value;
- this._alignItems = "flex-start";
- return this;
- }
- /**
- * Sets the left position of the overlay. Clears any previously set horizontal position.
- * @param value New left offset.
- */
- left(value = "") {
- this._xOffset = value;
- this._xPosition = "left";
- return this;
- }
- /**
- * Sets the bottom position of the overlay. Clears any previously set vertical position.
- * @param value New bottom offset.
- */
- bottom(value = "") {
- this._topOffset = "";
- this._bottomOffset = value;
- this._alignItems = "flex-end";
- return this;
- }
- /**
- * Sets the right position of the overlay. Clears any previously set horizontal position.
- * @param value New right offset.
- */
- right(value = "") {
- this._xOffset = value;
- this._xPosition = "right";
- return this;
- }
- /**
- * Sets the overlay to the start of the viewport, depending on the overlay direction.
- * This will be to the left in LTR layouts and to the right in RTL.
- * @param offset Offset from the edge of the screen.
- */
- start(value = "") {
- this._xOffset = value;
- this._xPosition = "start";
- return this;
- }
- /**
- * Sets the overlay to the end of the viewport, depending on the overlay direction.
- * This will be to the right in LTR layouts and to the left in RTL.
- * @param offset Offset from the edge of the screen.
- */
- end(value = "") {
- this._xOffset = value;
- this._xPosition = "end";
- return this;
- }
- /**
- * Sets the overlay width and clears any previously set width.
- * @param value New width for the overlay
- * @deprecated Pass the `width` through the `OverlayConfig`.
- * @breaking-change 8.0.0
- */
- width(value = "") {
- if (this._overlayRef) {
- this._overlayRef.updateSize({
- width: value
- });
- } else {
- this._width = value;
- }
- return this;
- }
- /**
- * Sets the overlay height and clears any previously set height.
- * @param value New height for the overlay
- * @deprecated Pass the `height` through the `OverlayConfig`.
- * @breaking-change 8.0.0
- */
- height(value = "") {
- if (this._overlayRef) {
- this._overlayRef.updateSize({
- height: value
- });
- } else {
- this._height = value;
- }
- return this;
- }
- /**
- * Centers the overlay horizontally with an optional offset.
- * Clears any previously set horizontal position.
- *
- * @param offset Overlay offset from the horizontal center.
- */
- centerHorizontally(offset = "") {
- this.left(offset);
- this._xPosition = "center";
- return this;
- }
- /**
- * Centers the overlay vertically with an optional offset.
- * Clears any previously set vertical position.
- *
- * @param offset Overlay offset from the vertical center.
- */
- centerVertically(offset = "") {
- this.top(offset);
- this._alignItems = "center";
- return this;
- }
- /**
- * Apply the position to the element.
- * @docs-private
- */
- apply() {
- if (!this._overlayRef || !this._overlayRef.hasAttached()) {
- return;
- }
- const styles = this._overlayRef.overlayElement.style;
- const parentStyles = this._overlayRef.hostElement.style;
- const config = this._overlayRef.getConfig();
- const {
- width,
- height,
- maxWidth,
- maxHeight
- } = config;
- const shouldBeFlushHorizontally = (width === "100%" || width === "100vw") && (!maxWidth || maxWidth === "100%" || maxWidth === "100vw");
- const shouldBeFlushVertically = (height === "100%" || height === "100vh") && (!maxHeight || maxHeight === "100%" || maxHeight === "100vh");
- const xPosition = this._xPosition;
- const xOffset = this._xOffset;
- const isRtl = this._overlayRef.getConfig().direction === "rtl";
- let marginLeft = "";
- let marginRight = "";
- let justifyContent = "";
- if (shouldBeFlushHorizontally) {
- justifyContent = "flex-start";
- } else if (xPosition === "center") {
- justifyContent = "center";
- if (isRtl) {
- marginRight = xOffset;
- } else {
- marginLeft = xOffset;
- }
- } else if (isRtl) {
- if (xPosition === "left" || xPosition === "end") {
- justifyContent = "flex-end";
- marginLeft = xOffset;
- } else if (xPosition === "right" || xPosition === "start") {
- justifyContent = "flex-start";
- marginRight = xOffset;
- }
- } else if (xPosition === "left" || xPosition === "start") {
- justifyContent = "flex-start";
- marginLeft = xOffset;
- } else if (xPosition === "right" || xPosition === "end") {
- justifyContent = "flex-end";
- marginRight = xOffset;
- }
- styles.position = this._cssPosition;
- styles.marginLeft = shouldBeFlushHorizontally ? "0" : marginLeft;
- styles.marginTop = shouldBeFlushVertically ? "0" : this._topOffset;
- styles.marginBottom = this._bottomOffset;
- styles.marginRight = shouldBeFlushHorizontally ? "0" : marginRight;
- parentStyles.justifyContent = justifyContent;
- parentStyles.alignItems = shouldBeFlushVertically ? "flex-start" : this._alignItems;
- }
- /**
- * Cleans up the DOM changes from the position strategy.
- * @docs-private
- */
- dispose() {
- if (this._isDisposed || !this._overlayRef) {
- return;
- }
- const styles = this._overlayRef.overlayElement.style;
- const parent = this._overlayRef.hostElement;
- const parentStyles = parent.style;
- parent.classList.remove(wrapperClass);
- parentStyles.justifyContent = parentStyles.alignItems = styles.marginTop = styles.marginBottom = styles.marginLeft = styles.marginRight = styles.position = "";
- this._overlayRef = null;
- this._isDisposed = true;
- }
-};
-var _OverlayPositionBuilder = class _OverlayPositionBuilder {
- constructor(_viewportRuler, _document, _platform, _overlayContainer) {
- this._viewportRuler = _viewportRuler;
- this._document = _document;
- this._platform = _platform;
- this._overlayContainer = _overlayContainer;
- }
- /**
- * Creates a global position strategy.
- */
- global() {
- return new GlobalPositionStrategy();
- }
- /**
- * Creates a flexible position strategy.
- * @param origin Origin relative to which to position the overlay.
- */
- flexibleConnectedTo(origin) {
- return new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);
- }
-};
-_OverlayPositionBuilder.ɵfac = function OverlayPositionBuilder_Factory(t) {
- return new (t || _OverlayPositionBuilder)(ɵɵinject(ViewportRuler), ɵɵinject(DOCUMENT), ɵɵinject(Platform), ɵɵinject(OverlayContainer));
-};
-_OverlayPositionBuilder.ɵprov = ɵɵdefineInjectable({
- token: _OverlayPositionBuilder,
- factory: _OverlayPositionBuilder.ɵfac,
- providedIn: "root"
-});
-var OverlayPositionBuilder = _OverlayPositionBuilder;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(OverlayPositionBuilder, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: ViewportRuler
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: Platform
- }, {
- type: OverlayContainer
- }], null);
-})();
-var nextUniqueId = 0;
-var _Overlay = class _Overlay {
- constructor(scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _keyboardDispatcher, _injector, _ngZone, _document, _directionality, _location, _outsideClickDispatcher, _animationsModuleType) {
- this.scrollStrategies = scrollStrategies;
- this._overlayContainer = _overlayContainer;
- this._componentFactoryResolver = _componentFactoryResolver;
- this._positionBuilder = _positionBuilder;
- this._keyboardDispatcher = _keyboardDispatcher;
- this._injector = _injector;
- this._ngZone = _ngZone;
- this._document = _document;
- this._directionality = _directionality;
- this._location = _location;
- this._outsideClickDispatcher = _outsideClickDispatcher;
- this._animationsModuleType = _animationsModuleType;
- }
- /**
- * Creates an overlay.
- * @param config Configuration applied to the overlay.
- * @returns Reference to the created overlay.
- */
- create(config) {
- const host = this._createHostElement();
- const pane = this._createPaneElement(host);
- const portalOutlet = this._createPortalOutlet(pane);
- const overlayConfig = new OverlayConfig(config);
- overlayConfig.direction = overlayConfig.direction || this._directionality.value;
- return new OverlayRef(portalOutlet, host, pane, overlayConfig, this._ngZone, this._keyboardDispatcher, this._document, this._location, this._outsideClickDispatcher, this._animationsModuleType === "NoopAnimations");
- }
- /**
- * Gets a position builder that can be used, via fluent API,
- * to construct and configure a position strategy.
- * @returns An overlay position builder.
- */
- position() {
- return this._positionBuilder;
- }
- /**
- * Creates the DOM element for an overlay and appends it to the overlay container.
- * @returns Newly-created pane element
- */
- _createPaneElement(host) {
- const pane = this._document.createElement("div");
- pane.id = `cdk-overlay-${nextUniqueId++}`;
- pane.classList.add("cdk-overlay-pane");
- host.appendChild(pane);
- return pane;
- }
- /**
- * Creates the host element that wraps around an overlay
- * and can be used for advanced positioning.
- * @returns Newly-create host element.
- */
- _createHostElement() {
- const host = this._document.createElement("div");
- this._overlayContainer.getContainerElement().appendChild(host);
- return host;
- }
- /**
- * Create a DomPortalOutlet into which the overlay content can be loaded.
- * @param pane The DOM element to turn into a portal outlet.
- * @returns A portal outlet for the given DOM element.
- */
- _createPortalOutlet(pane) {
- if (!this._appRef) {
- this._appRef = this._injector.get(ApplicationRef);
- }
- return new DomPortalOutlet(pane, this._componentFactoryResolver, this._appRef, this._injector, this._document);
- }
-};
-_Overlay.ɵfac = function Overlay_Factory(t) {
- return new (t || _Overlay)(ɵɵinject(ScrollStrategyOptions), ɵɵinject(OverlayContainer), ɵɵinject(ComponentFactoryResolver$1), ɵɵinject(OverlayPositionBuilder), ɵɵinject(OverlayKeyboardDispatcher), ɵɵinject(Injector), ɵɵinject(NgZone), ɵɵinject(DOCUMENT), ɵɵinject(Directionality), ɵɵinject(Location), ɵɵinject(OverlayOutsideClickDispatcher), ɵɵinject(ANIMATION_MODULE_TYPE, 8));
-};
-_Overlay.ɵprov = ɵɵdefineInjectable({
- token: _Overlay,
- factory: _Overlay.ɵfac,
- providedIn: "root"
-});
-var Overlay = _Overlay;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Overlay, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: ScrollStrategyOptions
- }, {
- type: OverlayContainer
- }, {
- type: ComponentFactoryResolver$1
- }, {
- type: OverlayPositionBuilder
- }, {
- type: OverlayKeyboardDispatcher
- }, {
- type: Injector
- }, {
- type: NgZone
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: Directionality
- }, {
- type: Location
- }, {
- type: OverlayOutsideClickDispatcher
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [ANIMATION_MODULE_TYPE]
- }, {
- type: Optional
- }]
- }], null);
-})();
-var defaultPositionList = [{
- originX: "start",
- originY: "bottom",
- overlayX: "start",
- overlayY: "top"
-}, {
- originX: "start",
- originY: "top",
- overlayX: "start",
- overlayY: "bottom"
-}, {
- originX: "end",
- originY: "top",
- overlayX: "end",
- overlayY: "bottom"
-}, {
- originX: "end",
- originY: "bottom",
- overlayX: "end",
- overlayY: "top"
-}];
-var CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken("cdk-connected-overlay-scroll-strategy", {
- providedIn: "root",
- factory: () => {
- const overlay = inject(Overlay);
- return () => overlay.scrollStrategies.reposition();
- }
-});
-var _CdkOverlayOrigin = class _CdkOverlayOrigin {
- constructor(elementRef) {
- this.elementRef = elementRef;
- }
-};
-_CdkOverlayOrigin.ɵfac = function CdkOverlayOrigin_Factory(t) {
- return new (t || _CdkOverlayOrigin)(ɵɵdirectiveInject(ElementRef));
-};
-_CdkOverlayOrigin.ɵdir = ɵɵdefineDirective({
- type: _CdkOverlayOrigin,
- selectors: [["", "cdk-overlay-origin", ""], ["", "overlay-origin", ""], ["", "cdkOverlayOrigin", ""]],
- exportAs: ["cdkOverlayOrigin"],
- standalone: true
-});
-var CdkOverlayOrigin = _CdkOverlayOrigin;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkOverlayOrigin, [{
- type: Directive,
- args: [{
- selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]",
- exportAs: "cdkOverlayOrigin",
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }], null);
-})();
-var _CdkConnectedOverlay = class _CdkConnectedOverlay {
- /** The offset in pixels for the overlay connection point on the x-axis */
- get offsetX() {
- return this._offsetX;
- }
- set offsetX(offsetX) {
- this._offsetX = offsetX;
- if (this._position) {
- this._updatePositionStrategy(this._position);
- }
- }
- /** The offset in pixels for the overlay connection point on the y-axis */
- get offsetY() {
- return this._offsetY;
- }
- set offsetY(offsetY) {
- this._offsetY = offsetY;
- if (this._position) {
- this._updatePositionStrategy(this._position);
- }
- }
- /** Whether the overlay should be disposed of when the user goes backwards/forwards in history. */
- get disposeOnNavigation() {
- return this._disposeOnNavigation;
- }
- set disposeOnNavigation(value) {
- this._disposeOnNavigation = value;
- }
- // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.
- constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFactory, _dir) {
- this._overlay = _overlay;
- this._dir = _dir;
- this._backdropSubscription = Subscription.EMPTY;
- this._attachSubscription = Subscription.EMPTY;
- this._detachSubscription = Subscription.EMPTY;
- this._positionSubscription = Subscription.EMPTY;
- this._disposeOnNavigation = false;
- this.viewportMargin = 0;
- this.open = false;
- this.disableClose = false;
- this.hasBackdrop = false;
- this.lockPosition = false;
- this.flexibleDimensions = false;
- this.growAfterOpen = false;
- this.push = false;
- this.backdropClick = new EventEmitter();
- this.positionChange = new EventEmitter();
- this.attach = new EventEmitter();
- this.detach = new EventEmitter();
- this.overlayKeydown = new EventEmitter();
- this.overlayOutsideClick = new EventEmitter();
- this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);
- this._scrollStrategyFactory = scrollStrategyFactory;
- this.scrollStrategy = this._scrollStrategyFactory();
- }
- /** The associated overlay reference. */
- get overlayRef() {
- return this._overlayRef;
- }
- /** The element's layout direction. */
- get dir() {
- return this._dir ? this._dir.value : "ltr";
- }
- ngOnDestroy() {
- this._attachSubscription.unsubscribe();
- this._detachSubscription.unsubscribe();
- this._backdropSubscription.unsubscribe();
- this._positionSubscription.unsubscribe();
- if (this._overlayRef) {
- this._overlayRef.dispose();
- }
- }
- ngOnChanges(changes) {
- if (this._position) {
- this._updatePositionStrategy(this._position);
- this._overlayRef.updateSize({
- width: this.width,
- minWidth: this.minWidth,
- height: this.height,
- minHeight: this.minHeight
- });
- if (changes["origin"] && this.open) {
- this._position.apply();
- }
- }
- if (changes["open"]) {
- this.open ? this._attachOverlay() : this._detachOverlay();
- }
- }
- /** Creates an overlay */
- _createOverlay() {
- if (!this.positions || !this.positions.length) {
- this.positions = defaultPositionList;
- }
- const overlayRef = this._overlayRef = this._overlay.create(this._buildConfig());
- this._attachSubscription = overlayRef.attachments().subscribe(() => this.attach.emit());
- this._detachSubscription = overlayRef.detachments().subscribe(() => this.detach.emit());
- overlayRef.keydownEvents().subscribe((event) => {
- this.overlayKeydown.next(event);
- if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {
- event.preventDefault();
- this._detachOverlay();
- }
- });
- this._overlayRef.outsidePointerEvents().subscribe((event) => {
- this.overlayOutsideClick.next(event);
- });
- }
- /** Builds the overlay config based on the directive's inputs */
- _buildConfig() {
- const positionStrategy = this._position = this.positionStrategy || this._createPositionStrategy();
- const overlayConfig = new OverlayConfig({
- direction: this._dir,
- positionStrategy,
- scrollStrategy: this.scrollStrategy,
- hasBackdrop: this.hasBackdrop,
- disposeOnNavigation: this.disposeOnNavigation
- });
- if (this.width || this.width === 0) {
- overlayConfig.width = this.width;
- }
- if (this.height || this.height === 0) {
- overlayConfig.height = this.height;
- }
- if (this.minWidth || this.minWidth === 0) {
- overlayConfig.minWidth = this.minWidth;
- }
- if (this.minHeight || this.minHeight === 0) {
- overlayConfig.minHeight = this.minHeight;
- }
- if (this.backdropClass) {
- overlayConfig.backdropClass = this.backdropClass;
- }
- if (this.panelClass) {
- overlayConfig.panelClass = this.panelClass;
- }
- return overlayConfig;
- }
- /** Updates the state of a position strategy, based on the values of the directive inputs. */
- _updatePositionStrategy(positionStrategy) {
- const positions = this.positions.map((currentPosition) => ({
- originX: currentPosition.originX,
- originY: currentPosition.originY,
- overlayX: currentPosition.overlayX,
- overlayY: currentPosition.overlayY,
- offsetX: currentPosition.offsetX || this.offsetX,
- offsetY: currentPosition.offsetY || this.offsetY,
- panelClass: currentPosition.panelClass || void 0
- }));
- return positionStrategy.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(positions).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector);
- }
- /** Returns the position strategy of the overlay to be set on the overlay config */
- _createPositionStrategy() {
- const strategy = this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());
- this._updatePositionStrategy(strategy);
- return strategy;
- }
- _getFlexibleConnectedPositionStrategyOrigin() {
- if (this.origin instanceof CdkOverlayOrigin) {
- return this.origin.elementRef;
- } else {
- return this.origin;
- }
- }
- /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */
- _attachOverlay() {
- if (!this._overlayRef) {
- this._createOverlay();
- } else {
- this._overlayRef.getConfig().hasBackdrop = this.hasBackdrop;
- }
- if (!this._overlayRef.hasAttached()) {
- this._overlayRef.attach(this._templatePortal);
- }
- if (this.hasBackdrop) {
- this._backdropSubscription = this._overlayRef.backdropClick().subscribe((event) => {
- this.backdropClick.emit(event);
- });
- } else {
- this._backdropSubscription.unsubscribe();
- }
- this._positionSubscription.unsubscribe();
- if (this.positionChange.observers.length > 0) {
- this._positionSubscription = this._position.positionChanges.pipe(takeWhile(() => this.positionChange.observers.length > 0)).subscribe((position) => {
- this.positionChange.emit(position);
- if (this.positionChange.observers.length === 0) {
- this._positionSubscription.unsubscribe();
- }
- });
- }
- }
- /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */
- _detachOverlay() {
- if (this._overlayRef) {
- this._overlayRef.detach();
- }
- this._backdropSubscription.unsubscribe();
- this._positionSubscription.unsubscribe();
- }
-};
-_CdkConnectedOverlay.ɵfac = function CdkConnectedOverlay_Factory(t) {
- return new (t || _CdkConnectedOverlay)(ɵɵdirectiveInject(Overlay), ɵɵdirectiveInject(TemplateRef), ɵɵdirectiveInject(ViewContainerRef), ɵɵdirectiveInject(CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY), ɵɵdirectiveInject(Directionality, 8));
-};
-_CdkConnectedOverlay.ɵdir = ɵɵdefineDirective({
- type: _CdkConnectedOverlay,
- selectors: [["", "cdk-connected-overlay", ""], ["", "connected-overlay", ""], ["", "cdkConnectedOverlay", ""]],
- inputs: {
- origin: ["cdkConnectedOverlayOrigin", "origin"],
- positions: ["cdkConnectedOverlayPositions", "positions"],
- positionStrategy: ["cdkConnectedOverlayPositionStrategy", "positionStrategy"],
- offsetX: ["cdkConnectedOverlayOffsetX", "offsetX"],
- offsetY: ["cdkConnectedOverlayOffsetY", "offsetY"],
- width: ["cdkConnectedOverlayWidth", "width"],
- height: ["cdkConnectedOverlayHeight", "height"],
- minWidth: ["cdkConnectedOverlayMinWidth", "minWidth"],
- minHeight: ["cdkConnectedOverlayMinHeight", "minHeight"],
- backdropClass: ["cdkConnectedOverlayBackdropClass", "backdropClass"],
- panelClass: ["cdkConnectedOverlayPanelClass", "panelClass"],
- viewportMargin: ["cdkConnectedOverlayViewportMargin", "viewportMargin"],
- scrollStrategy: ["cdkConnectedOverlayScrollStrategy", "scrollStrategy"],
- open: ["cdkConnectedOverlayOpen", "open"],
- disableClose: ["cdkConnectedOverlayDisableClose", "disableClose"],
- transformOriginSelector: ["cdkConnectedOverlayTransformOriginOn", "transformOriginSelector"],
- hasBackdrop: ["cdkConnectedOverlayHasBackdrop", "hasBackdrop", booleanAttribute],
- lockPosition: ["cdkConnectedOverlayLockPosition", "lockPosition", booleanAttribute],
- flexibleDimensions: ["cdkConnectedOverlayFlexibleDimensions", "flexibleDimensions", booleanAttribute],
- growAfterOpen: ["cdkConnectedOverlayGrowAfterOpen", "growAfterOpen", booleanAttribute],
- push: ["cdkConnectedOverlayPush", "push", booleanAttribute],
- disposeOnNavigation: ["cdkConnectedOverlayDisposeOnNavigation", "disposeOnNavigation", booleanAttribute]
- },
- outputs: {
- backdropClick: "backdropClick",
- positionChange: "positionChange",
- attach: "attach",
- detach: "detach",
- overlayKeydown: "overlayKeydown",
- overlayOutsideClick: "overlayOutsideClick"
- },
- exportAs: ["cdkConnectedOverlay"],
- standalone: true,
- features: [ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature]
-});
-var CdkConnectedOverlay = _CdkConnectedOverlay;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkConnectedOverlay, [{
- type: Directive,
- args: [{
- selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]",
- exportAs: "cdkConnectedOverlay",
- standalone: true
- }]
- }], () => [{
- type: Overlay
- }, {
- type: TemplateRef
- }, {
- type: ViewContainerRef
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY]
- }]
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- origin: [{
- type: Input,
- args: ["cdkConnectedOverlayOrigin"]
- }],
- positions: [{
- type: Input,
- args: ["cdkConnectedOverlayPositions"]
- }],
- positionStrategy: [{
- type: Input,
- args: ["cdkConnectedOverlayPositionStrategy"]
- }],
- offsetX: [{
- type: Input,
- args: ["cdkConnectedOverlayOffsetX"]
- }],
- offsetY: [{
- type: Input,
- args: ["cdkConnectedOverlayOffsetY"]
- }],
- width: [{
- type: Input,
- args: ["cdkConnectedOverlayWidth"]
- }],
- height: [{
- type: Input,
- args: ["cdkConnectedOverlayHeight"]
- }],
- minWidth: [{
- type: Input,
- args: ["cdkConnectedOverlayMinWidth"]
- }],
- minHeight: [{
- type: Input,
- args: ["cdkConnectedOverlayMinHeight"]
- }],
- backdropClass: [{
- type: Input,
- args: ["cdkConnectedOverlayBackdropClass"]
- }],
- panelClass: [{
- type: Input,
- args: ["cdkConnectedOverlayPanelClass"]
- }],
- viewportMargin: [{
- type: Input,
- args: ["cdkConnectedOverlayViewportMargin"]
- }],
- scrollStrategy: [{
- type: Input,
- args: ["cdkConnectedOverlayScrollStrategy"]
- }],
- open: [{
- type: Input,
- args: ["cdkConnectedOverlayOpen"]
- }],
- disableClose: [{
- type: Input,
- args: ["cdkConnectedOverlayDisableClose"]
- }],
- transformOriginSelector: [{
- type: Input,
- args: ["cdkConnectedOverlayTransformOriginOn"]
- }],
- hasBackdrop: [{
- type: Input,
- args: [{
- alias: "cdkConnectedOverlayHasBackdrop",
- transform: booleanAttribute
- }]
- }],
- lockPosition: [{
- type: Input,
- args: [{
- alias: "cdkConnectedOverlayLockPosition",
- transform: booleanAttribute
- }]
- }],
- flexibleDimensions: [{
- type: Input,
- args: [{
- alias: "cdkConnectedOverlayFlexibleDimensions",
- transform: booleanAttribute
- }]
- }],
- growAfterOpen: [{
- type: Input,
- args: [{
- alias: "cdkConnectedOverlayGrowAfterOpen",
- transform: booleanAttribute
- }]
- }],
- push: [{
- type: Input,
- args: [{
- alias: "cdkConnectedOverlayPush",
- transform: booleanAttribute
- }]
- }],
- disposeOnNavigation: [{
- type: Input,
- args: [{
- alias: "cdkConnectedOverlayDisposeOnNavigation",
- transform: booleanAttribute
- }]
- }],
- backdropClick: [{
- type: Output
- }],
- positionChange: [{
- type: Output
- }],
- attach: [{
- type: Output
- }],
- detach: [{
- type: Output
- }],
- overlayKeydown: [{
- type: Output
- }],
- overlayOutsideClick: [{
- type: Output
- }]
- });
-})();
-function CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {
- return () => overlay.scrollStrategies.reposition();
-}
-var CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {
- provide: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,
- deps: [Overlay],
- useFactory: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY
-};
-var _OverlayModule = class _OverlayModule {
-};
-_OverlayModule.ɵfac = function OverlayModule_Factory(t) {
- return new (t || _OverlayModule)();
-};
-_OverlayModule.ɵmod = ɵɵdefineNgModule({
- type: _OverlayModule,
- imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin],
- exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule]
-});
-_OverlayModule.ɵinj = ɵɵdefineInjector({
- providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER],
- imports: [BidiModule, PortalModule, ScrollingModule, ScrollingModule]
-});
-var OverlayModule = _OverlayModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(OverlayModule, [{
- type: NgModule,
- args: [{
- imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin],
- exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule],
- providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER]
- }]
- }], null, null);
-})();
-var _FullscreenOverlayContainer = class _FullscreenOverlayContainer extends OverlayContainer {
- constructor(_document, platform) {
- super(_document, platform);
- }
- ngOnDestroy() {
- super.ngOnDestroy();
- if (this._fullScreenEventName && this._fullScreenListener) {
- this._document.removeEventListener(this._fullScreenEventName, this._fullScreenListener);
- }
- }
- _createContainer() {
- super._createContainer();
- this._adjustParentForFullscreenChange();
- this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());
- }
- _adjustParentForFullscreenChange() {
- if (!this._containerElement) {
- return;
- }
- const fullscreenElement = this.getFullscreenElement();
- const parent = fullscreenElement || this._document.body;
- parent.appendChild(this._containerElement);
- }
- _addFullscreenChangeListener(fn) {
- const eventName = this._getEventName();
- if (eventName) {
- if (this._fullScreenListener) {
- this._document.removeEventListener(eventName, this._fullScreenListener);
- }
- this._document.addEventListener(eventName, fn);
- this._fullScreenListener = fn;
- }
- }
- _getEventName() {
- if (!this._fullScreenEventName) {
- const _document = this._document;
- if (_document.fullscreenEnabled) {
- this._fullScreenEventName = "fullscreenchange";
- } else if (_document.webkitFullscreenEnabled) {
- this._fullScreenEventName = "webkitfullscreenchange";
- } else if (_document.mozFullScreenEnabled) {
- this._fullScreenEventName = "mozfullscreenchange";
- } else if (_document.msFullscreenEnabled) {
- this._fullScreenEventName = "MSFullscreenChange";
- }
- }
- return this._fullScreenEventName;
- }
- /**
- * When the page is put into fullscreen mode, a specific element is specified.
- * Only that element and its children are visible when in fullscreen mode.
- */
- getFullscreenElement() {
- const _document = this._document;
- return _document.fullscreenElement || _document.webkitFullscreenElement || _document.mozFullScreenElement || _document.msFullscreenElement || null;
- }
-};
-_FullscreenOverlayContainer.ɵfac = function FullscreenOverlayContainer_Factory(t) {
- return new (t || _FullscreenOverlayContainer)(ɵɵinject(DOCUMENT), ɵɵinject(Platform));
-};
-_FullscreenOverlayContainer.ɵprov = ɵɵdefineInjectable({
- token: _FullscreenOverlayContainer,
- factory: _FullscreenOverlayContainer.ɵfac,
- providedIn: "root"
-});
-var FullscreenOverlayContainer = _FullscreenOverlayContainer;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(FullscreenOverlayContainer, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: Platform
- }], null);
-})();
-
-export {
- ViewportRuler,
- ComponentPortal,
- TemplatePortal,
- CdkPortalOutlet,
- PortalModule,
- OverlayConfig,
- ConnectionPositionPair,
- OverlayKeyboardDispatcher,
- Overlay,
- CdkOverlayOrigin,
- CdkConnectedOverlay,
- OverlayModule
-};
-//# sourceMappingURL=chunk-6U656R5M.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-6U656R5M.js.map b/.angular/cache/17.0.7/vite/deps/chunk-6U656R5M.js.map
deleted file mode 100644
index f0f030a..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-6U656R5M.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/@angular/cdk/fesm2022/collections.mjs", "../../../../../node_modules/@angular/cdk/fesm2022/scrolling.mjs", "../../../../../node_modules/@angular/cdk/fesm2022/portal.mjs", "../../../../../node_modules/@angular/cdk/fesm2022/overlay.mjs"],
- "sourcesContent": ["import { ConnectableObservable, isObservable, of, Subject } from 'rxjs';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken } from '@angular/core';\nclass DataSource {}\n/** Checks whether an object is a data source. */\nfunction isDataSource(value) {\n // Check if the value is a DataSource by observing if it has a connect function. Cannot\n // be checked as an `instanceof DataSource` since people could create their own sources\n // that match the interface, but don't extend DataSource. We also can't use `isObservable`\n // here, because of some internal apps.\n return value && typeof value.connect === 'function' && !(value instanceof ConnectableObservable);\n}\n\n/** DataSource wrapper for a native array. */\nclass ArrayDataSource extends DataSource {\n constructor(_data) {\n super();\n this._data = _data;\n }\n connect() {\n return isObservable(this._data) ? this._data : of(this._data);\n }\n disconnect() {}\n}\n\n/**\n * A repeater that destroys views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will always construct a new embedded view for each item.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _DisposeViewRepeaterStrategy {\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n const insertContext = itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = viewContainerRef.createEmbeddedView(insertContext.templateRef, insertContext.context, insertContext.index);\n operation = 1 /* _ViewRepeaterOperation.INSERTED */;\n } else if (currentIndex == null) {\n viewContainerRef.remove(adjustedPreviousIndex);\n operation = 3 /* _ViewRepeaterOperation.REMOVED */;\n } else {\n view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n operation = 2 /* _ViewRepeaterOperation.MOVED */;\n }\n\n if (itemViewChanged) {\n itemViewChanged({\n context: view?.context,\n operation,\n record\n });\n }\n });\n }\n detach() {}\n}\n\n/**\n * A repeater that caches views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will reuse one of the cached views instead of creating a new\n * embedded view. Recycling cached views reduces the quantity of expensive DOM\n * inserts.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _RecycleViewRepeaterStrategy {\n constructor() {\n /**\n * The size of the cache used to store unused views.\n * Setting the cache size to `0` will disable caching. Defaults to 20 views.\n */\n this.viewCacheSize = 20;\n /**\n * View cache that stores embedded view instances that have been previously stamped out,\n * but don't are not currently rendered. The view repeater will reuse these views rather than\n * creating brand new ones.\n *\n * TODO(michaeljamesparsons) Investigate whether using a linked list would improve performance.\n */\n this._viewCache = [];\n }\n /** Apply changes to the DOM. */\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n // Rearrange the views to put them in the right location.\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n // Item added.\n const viewArgsFactory = () => itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = this._insertView(viewArgsFactory, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = view ? 1 /* _ViewRepeaterOperation.INSERTED */ : 0 /* _ViewRepeaterOperation.REPLACED */;\n } else if (currentIndex == null) {\n // Item removed.\n this._detachAndCacheView(adjustedPreviousIndex, viewContainerRef);\n operation = 3 /* _ViewRepeaterOperation.REMOVED */;\n } else {\n // Item moved.\n view = this._moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = 2 /* _ViewRepeaterOperation.MOVED */;\n }\n\n if (itemViewChanged) {\n itemViewChanged({\n context: view?.context,\n operation,\n record\n });\n }\n });\n }\n detach() {\n for (const view of this._viewCache) {\n view.destroy();\n }\n this._viewCache = [];\n }\n /**\n * Inserts a view for a new item, either from the cache or by creating a new\n * one. Returns `undefined` if the item was inserted into a cached view.\n */\n _insertView(viewArgsFactory, currentIndex, viewContainerRef, value) {\n const cachedView = this._insertViewFromCache(currentIndex, viewContainerRef);\n if (cachedView) {\n cachedView.context.$implicit = value;\n return undefined;\n }\n const viewArgs = viewArgsFactory();\n return viewContainerRef.createEmbeddedView(viewArgs.templateRef, viewArgs.context, viewArgs.index);\n }\n /** Detaches the view at the given index and inserts into the view cache. */\n _detachAndCacheView(index, viewContainerRef) {\n const detachedView = viewContainerRef.detach(index);\n this._maybeCacheView(detachedView, viewContainerRef);\n }\n /** Moves view at the previous index to the current index. */\n _moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, value) {\n const view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n view.context.$implicit = value;\n return view;\n }\n /**\n * Cache the given detached view. If the cache is full, the view will be\n * destroyed.\n */\n _maybeCacheView(view, viewContainerRef) {\n if (this._viewCache.length < this.viewCacheSize) {\n this._viewCache.push(view);\n } else {\n const index = viewContainerRef.indexOf(view);\n // The host component could remove views from the container outside of\n // the view repeater. It's unlikely this will occur, but just in case,\n // destroy the view on its own, otherwise destroy it through the\n // container to ensure that all the references are removed.\n if (index === -1) {\n view.destroy();\n } else {\n viewContainerRef.remove(index);\n }\n }\n }\n /** Inserts a recycled view from the cache at the given index. */\n _insertViewFromCache(index, viewContainerRef) {\n const cachedView = this._viewCache.pop();\n if (cachedView) {\n viewContainerRef.insert(cachedView, index);\n }\n return cachedView || null;\n }\n}\n\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nclass SelectionModel {\n /** Selected values. */\n get selected() {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n return this._selected;\n }\n constructor(_multiple = false, initiallySelectedValues, _emitChanges = true, compareWith) {\n this._multiple = _multiple;\n this._emitChanges = _emitChanges;\n this.compareWith = compareWith;\n /** Currently-selected values. */\n this._selection = new Set();\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n this._deselectedToEmit = [];\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n this._selectedToEmit = [];\n /** Event emitted when the value has changed. */\n this.changed = new Subject();\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n } else {\n this._markSelected(initiallySelectedValues[0]);\n }\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n /**\n * Selects a value or an array of values.\n * @param values The values to select\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n select(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Deselects a value or an array of values.\n * @param values The values to deselect\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n deselect(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Sets the selected values\n * @param values The new selected values\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n setSelection(...values) {\n this._verifyValueAssignment(values);\n const oldValues = this.selected;\n const newSelectedSet = new Set(values);\n values.forEach(value => this._markSelected(value));\n oldValues.filter(value => !newSelectedSet.has(value)).forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n this._emitChangeEvent();\n return changed;\n }\n /**\n * Toggles a value between selected and deselected.\n * @param value The value to toggle\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n toggle(value) {\n return this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n /**\n * Clears all of the selected values.\n * @param flushEvent Whether to flush the changes in an event.\n * If false, the changes to the selection will be flushed along with the next event.\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n clear(flushEvent = true) {\n this._unmarkAll();\n const changed = this._hasQueuedChanges();\n if (flushEvent) {\n this._emitChangeEvent();\n }\n return changed;\n }\n /**\n * Determines whether a value is selected.\n */\n isSelected(value) {\n return this._selection.has(this._getConcreteValue(value));\n }\n /**\n * Determines whether the model does not have a value.\n */\n isEmpty() {\n return this._selection.size === 0;\n }\n /**\n * Determines whether the model has a value.\n */\n hasValue() {\n return !this.isEmpty();\n }\n /**\n * Sorts the selected values based on a predicate function.\n */\n sort(predicate) {\n if (this._multiple && this.selected) {\n this._selected.sort(predicate);\n }\n }\n /**\n * Gets whether multiple values can be selected.\n */\n isMultipleSelection() {\n return this._multiple;\n }\n /** Emits a change event and clears the records of selected and deselected values. */\n _emitChangeEvent() {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n this.changed.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit\n });\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n }\n /** Selects a value. */\n _markSelected(value) {\n value = this._getConcreteValue(value);\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n if (!this.isSelected(value)) {\n this._selection.add(value);\n }\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n /** Deselects a value. */\n _unmarkSelected(value) {\n value = this._getConcreteValue(value);\n if (this.isSelected(value)) {\n this._selection.delete(value);\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n /** Clears out the selected values. */\n _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n /**\n * Verifies the value assignment and throws an error if the specified value array is\n * including multiple values while the selection model is not supporting multiple values.\n */\n _verifyValueAssignment(values) {\n if (values.length > 1 && !this._multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n /** Whether there are queued up change to be emitted. */\n _hasQueuedChanges() {\n return !!(this._deselectedToEmit.length || this._selectedToEmit.length);\n }\n /** Returns a value that is comparable to inputValue by applying compareWith function, returns the same inputValue otherwise. */\n _getConcreteValue(inputValue) {\n if (!this.compareWith) {\n return inputValue;\n } else {\n for (let selectedValue of this._selection) {\n if (this.compareWith(inputValue, selectedValue)) {\n return selectedValue;\n }\n }\n return inputValue;\n }\n }\n}\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @docs-private\n */\nfunction getMultipleValuesInSingleSelectionError() {\n return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nclass UniqueSelectionDispatcher {\n constructor() {\n this._listeners = [];\n }\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id, name) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener) {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter(registered => {\n return listener !== registered;\n });\n };\n }\n ngOnDestroy() {\n this._listeners = [];\n }\n static {\n this.ɵfac = function UniqueSelectionDispatcher_Factory(t) {\n return new (t || UniqueSelectionDispatcher)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: UniqueSelectionDispatcher,\n factory: UniqueSelectionDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(UniqueSelectionDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * Injection token for {@link _ViewRepeater}. This token is for use by Angular Material only.\n * @docs-private\n */\nconst _VIEW_REPEATER_STRATEGY = new InjectionToken('_ViewRepeater');\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ArrayDataSource, DataSource, SelectionModel, UniqueSelectionDispatcher, _DisposeViewRepeaterStrategy, _RecycleViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY, getMultipleValuesInSingleSelectionError, isDataSource };\n", "import { coerceNumberProperty, coerceElement } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Directive, Input, Injectable, Optional, Inject, inject, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChild, SkipSelf, ElementRef, NgModule } from '@angular/core';\nimport { Subject, of, Observable, fromEvent, animationFrameScheduler, asapScheduler, Subscription, isObservable } from 'rxjs';\nimport { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise, switchMap, shareReplay } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\nimport { getRtlScrollAxisType, supportsScrollBehavior, Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport * as i2 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport * as i2$1 from '@angular/cdk/collections';\nimport { isDataSource, ArrayDataSource, _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy } from '@angular/cdk/collections';\n\n/** The injection token used to specify the virtual scrolling strategy. */\nconst _c0 = [\"contentWrapper\"];\nconst _c1 = [\"*\"];\nconst VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');\n\n/** Virtual scrolling strategy for lists with items of known fixed size. */\nclass FixedSizeVirtualScrollStrategy {\n /**\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n constructor(itemSize, minBufferPx, maxBufferPx) {\n this._scrolledIndexChange = new Subject();\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());\n /** The attached viewport. */\n this._viewport = null;\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport) {\n this._viewport = viewport;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._scrolledIndexChange.complete();\n this._viewport = null;\n }\n /**\n * Update the item size and buffer size.\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {\n if (maxBufferPx < minBufferPx && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n /* no-op */\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n /* no-op */\n }\n /**\n * Scroll to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling.\n */\n scrollToIndex(index, behavior) {\n if (this._viewport) {\n this._viewport.scrollToOffset(index * this._itemSize, behavior);\n }\n }\n /** Update the viewport's total content size. */\n _updateTotalContentSize() {\n if (!this._viewport) {\n return;\n }\n this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);\n }\n /** Update the viewport's rendered range. */\n _updateRenderedRange() {\n if (!this._viewport) {\n return;\n }\n const renderedRange = this._viewport.getRenderedRange();\n const newRange = {\n start: renderedRange.start,\n end: renderedRange.end\n };\n const viewportSize = this._viewport.getViewportSize();\n const dataLength = this._viewport.getDataLength();\n let scrollOffset = this._viewport.measureScrollOffset();\n // Prevent NaN as result when dividing by zero.\n let firstVisibleIndex = this._itemSize > 0 ? scrollOffset / this._itemSize : 0;\n // If user scrolls to the bottom of the list and data changes to a smaller list\n if (newRange.end > dataLength) {\n // We have to recalculate the first visible index based on new data length and viewport size.\n const maxVisibleItems = Math.ceil(viewportSize / this._itemSize);\n const newVisibleIndex = Math.max(0, Math.min(firstVisibleIndex, dataLength - maxVisibleItems));\n // If first visible index changed we must update scroll offset to handle start/end buffers\n // Current range must also be adjusted to cover the new position (bottom of new list).\n if (firstVisibleIndex != newVisibleIndex) {\n firstVisibleIndex = newVisibleIndex;\n scrollOffset = newVisibleIndex * this._itemSize;\n newRange.start = Math.floor(firstVisibleIndex);\n }\n newRange.end = Math.max(0, Math.min(dataLength, newRange.start + maxVisibleItems));\n }\n const startBuffer = scrollOffset - newRange.start * this._itemSize;\n if (startBuffer < this._minBufferPx && newRange.start != 0) {\n const expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);\n newRange.start = Math.max(0, newRange.start - expandStart);\n newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));\n } else {\n const endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);\n if (endBuffer < this._minBufferPx && newRange.end != dataLength) {\n const expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);\n if (expandEnd > 0) {\n newRange.end = Math.min(dataLength, newRange.end + expandEnd);\n newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));\n }\n }\n }\n this._viewport.setRenderedRange(newRange);\n this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);\n this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));\n }\n}\n/**\n * Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created\n * `FixedSizeVirtualScrollStrategy` from the given directive.\n * @param fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the\n * `FixedSizeVirtualScrollStrategy` from.\n */\nfunction _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {\n return fixedSizeDir._scrollStrategy;\n}\n/** A virtual scroll strategy that supports fixed-size items. */\nclass CdkFixedSizeVirtualScroll {\n constructor() {\n this._itemSize = 20;\n this._minBufferPx = 100;\n this._maxBufferPx = 200;\n /** The scroll strategy used by this directive. */\n this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n /** The size of the items in the list (in pixels). */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(value) {\n this._itemSize = coerceNumberProperty(value);\n }\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n get minBufferPx() {\n return this._minBufferPx;\n }\n set minBufferPx(value) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n /**\n * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.\n */\n get maxBufferPx() {\n return this._maxBufferPx;\n }\n set maxBufferPx(value) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n ngOnChanges() {\n this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n static {\n this.ɵfac = function CdkFixedSizeVirtualScroll_Factory(t) {\n return new (t || CdkFixedSizeVirtualScroll)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkFixedSizeVirtualScroll,\n selectors: [[\"cdk-virtual-scroll-viewport\", \"itemSize\", \"\"]],\n inputs: {\n itemSize: \"itemSize\",\n minBufferPx: \"minBufferPx\",\n maxBufferPx: \"maxBufferPx\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)]\n }]), i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkFixedSizeVirtualScroll, [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[itemSize]',\n standalone: true,\n providers: [{\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)]\n }]\n }]\n }], null, {\n itemSize: [{\n type: Input\n }],\n minBufferPx: [{\n type: Input\n }],\n maxBufferPx: [{\n type: Input\n }]\n });\n})();\n\n/** Time in ms to throttle the scrolling events by default. */\nconst DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nclass ScrollDispatcher {\n constructor(_ngZone, _platform, document) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n this._scrolled = new Subject();\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n this._globalSubscription = null;\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n this._scrolledCount = 0;\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n this.scrollContainers = new Map();\n this._document = document;\n }\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n register(scrollable) {\n if (!this.scrollContainers.has(scrollable)) {\n this.scrollContainers.set(scrollable, scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)));\n }\n }\n /**\n * De-registers a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n deregister(scrollable) {\n const scrollableReference = this.scrollContainers.get(scrollable);\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n }\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outside the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {\n if (!this._platform.isBrowser) {\n return of();\n }\n return new Observable(observer => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription = auditTimeInMs > 0 ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer) : this._scrolled.subscribe(observer);\n this._scrolledCount++;\n return () => {\n subscription.unsubscribe();\n this._scrolledCount--;\n if (!this._scrolledCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n ngOnDestroy() {\n this._removeGlobalListener();\n this.scrollContainers.forEach((_, container) => this.deregister(container));\n this._scrolled.complete();\n }\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementOrElementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ancestorScrolled(elementOrElementRef, auditTimeInMs) {\n const ancestors = this.getAncestorScrollContainers(elementOrElementRef);\n return this.scrolled(auditTimeInMs).pipe(filter(target => {\n return !target || ancestors.indexOf(target) > -1;\n }));\n }\n /** Returns all registered Scrollables that contain the provided element. */\n getAncestorScrollContainers(elementOrElementRef) {\n const scrollingContainers = [];\n this.scrollContainers.forEach((_subscription, scrollable) => {\n if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {\n scrollingContainers.push(scrollable);\n }\n });\n return scrollingContainers;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Returns true if the element is contained within the provided Scrollable. */\n _scrollableContainsElement(scrollable, elementOrElementRef) {\n let element = coerceElement(elementOrElementRef);\n let scrollableElement = scrollable.getElementRef().nativeElement;\n // Traverse through the element parents until we reach null, checking if any of the elements\n // are the scrollable's element.\n do {\n if (element == scrollableElement) {\n return true;\n }\n } while (element = element.parentElement);\n return false;\n }\n /** Sets up the global scroll listeners. */\n _addGlobalListener() {\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n return fromEvent(window.document, 'scroll').subscribe(() => this._scrolled.next());\n });\n }\n /** Cleans up the global scroll listener. */\n _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n static {\n this.ɵfac = function ScrollDispatcher_Factory(t) {\n return new (t || ScrollDispatcher)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Platform), i0.ɵɵinject(DOCUMENT, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollDispatcher,\n factory: ScrollDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i0.NgZone\n }, {\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\n\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nclass CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n this.elementRef = elementRef;\n this.scrollDispatcher = scrollDispatcher;\n this.ngZone = ngZone;\n this.dir = dir;\n this._destroyed = new Subject();\n this._elementScrolled = new Observable(observer => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));\n }\n ngOnInit() {\n this.scrollDispatcher.register(this);\n }\n ngOnDestroy() {\n this.scrollDispatcher.deregister(this);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Returns observable that emits when a scroll event is fired on the host element. */\n elementScrolled() {\n return this._elementScrolled;\n }\n /** Gets the ElementRef for the viewport. */\n getElementRef() {\n return this.elementRef;\n }\n /**\n * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\n * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param options specified the offsets to scroll to.\n */\n scrollTo(options) {\n const el = this.elementRef.nativeElement;\n const isRtl = this.dir && this.dir.value == 'rtl';\n // Rewrite start & end offsets as right or left offsets.\n if (options.left == null) {\n options.left = isRtl ? options.end : options.start;\n }\n if (options.right == null) {\n options.right = isRtl ? options.start : options.end;\n }\n // Rewrite the bottom offset as a top offset.\n if (options.bottom != null) {\n options.top = el.scrollHeight - el.clientHeight - options.bottom;\n }\n // Rewrite the right offset as a left offset.\n if (isRtl && getRtlScrollAxisType() != 0 /* RtlScrollAxisType.NORMAL */) {\n if (options.left != null) {\n options.right = el.scrollWidth - el.clientWidth - options.left;\n }\n if (getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n options.left = options.right;\n } else if (getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n options.left = options.right ? -options.right : options.right;\n }\n } else {\n if (options.right != null) {\n options.left = el.scrollWidth - el.clientWidth - options.right;\n }\n }\n this._applyScrollToOptions(options);\n }\n _applyScrollToOptions(options) {\n const el = this.elementRef.nativeElement;\n if (supportsScrollBehavior()) {\n el.scrollTo(options);\n } else {\n if (options.top != null) {\n el.scrollTop = options.top;\n }\n if (options.left != null) {\n el.scrollLeft = options.left;\n }\n }\n }\n /**\n * Measures the scroll offset relative to the specified edge of the viewport. This method can be\n * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent\n * about what scrollLeft means in RTL. The values returned by this method are normalized such that\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param from The edge to measure from.\n */\n measureScrollOffset(from) {\n const LEFT = 'left';\n const RIGHT = 'right';\n const el = this.elementRef.nativeElement;\n if (from == 'top') {\n return el.scrollTop;\n }\n if (from == 'bottom') {\n return el.scrollHeight - el.clientHeight - el.scrollTop;\n }\n // Rewrite start & end as left or right offsets.\n const isRtl = this.dir && this.dir.value == 'rtl';\n if (from == 'start') {\n from = isRtl ? RIGHT : LEFT;\n } else if (from == 'end') {\n from = isRtl ? LEFT : RIGHT;\n }\n if (isRtl && getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n } else {\n return el.scrollLeft;\n }\n } else if (isRtl && getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft + el.scrollWidth - el.clientWidth;\n } else {\n return -el.scrollLeft;\n }\n } else {\n // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and\n // (scrollWidth - clientWidth) when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft;\n } else {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n }\n }\n static {\n this.ɵfac = function CdkScrollable_Factory(t) {\n return new (t || CdkScrollable)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkScrollable,\n selectors: [[\"\", \"cdk-scrollable\", \"\"], [\"\", \"cdkScrollable\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkScrollable, [{\n type: Directive,\n args: [{\n selector: '[cdk-scrollable], [cdkScrollable]',\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: ScrollDispatcher\n }, {\n type: i0.NgZone\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\n\n/** Time in ms to throttle the resize events by default. */\nconst DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\nclass ViewportRuler {\n constructor(_platform, ngZone, document) {\n this._platform = _platform;\n /** Stream of viewport change events. */\n this._change = new Subject();\n /** Event listener that will be used to handle the viewport change events. */\n this._changeListener = event => {\n this._change.next(event);\n };\n this._document = document;\n ngZone.runOutsideAngular(() => {\n if (_platform.isBrowser) {\n const window = this._getWindow();\n // Note that bind the events ourselves, rather than going through something like RxJS's\n // `fromEvent` so that we can ensure that they're bound outside of the NgZone.\n window.addEventListener('resize', this._changeListener);\n window.addEventListener('orientationchange', this._changeListener);\n }\n // Clear the cached position so that the viewport is re-measured next time it is required.\n // We don't need to keep track of the subscription, because it is completed on destroy.\n this.change().subscribe(() => this._viewportSize = null);\n });\n }\n ngOnDestroy() {\n if (this._platform.isBrowser) {\n const window = this._getWindow();\n window.removeEventListener('resize', this._changeListener);\n window.removeEventListener('orientationchange', this._changeListener);\n }\n this._change.complete();\n }\n /** Returns the viewport's width and height. */\n getViewportSize() {\n if (!this._viewportSize) {\n this._updateViewportSize();\n }\n const output = {\n width: this._viewportSize.width,\n height: this._viewportSize.height\n };\n // If we're not on a browser, don't cache the size since it'll be mocked out anyway.\n if (!this._platform.isBrowser) {\n this._viewportSize = null;\n }\n return output;\n }\n /** Gets a ClientRect for the viewport's bounds. */\n getViewportRect() {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n const scrollPosition = this.getViewportScrollPosition();\n const {\n width,\n height\n } = this.getViewportSize();\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height,\n width\n };\n }\n /** Gets the (top, left) scroll position of the viewport. */\n getViewportScrollPosition() {\n // While we can get a reference to the fake document\n // during SSR, it doesn't have getBoundingClientRect.\n if (!this._platform.isBrowser) {\n return {\n top: 0,\n left: 0\n };\n }\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n const document = this._document;\n const window = this._getWindow();\n const documentElement = document.documentElement;\n const documentRect = documentElement.getBoundingClientRect();\n const top = -documentRect.top || document.body.scrollTop || window.scrollY || documentElement.scrollTop || 0;\n const left = -documentRect.left || document.body.scrollLeft || window.scrollX || documentElement.scrollLeft || 0;\n return {\n top,\n left\n };\n }\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * This stream emits outside of the Angular zone.\n * @param throttleTime Time in milliseconds to throttle the stream.\n */\n change(throttleTime = DEFAULT_RESIZE_TIME) {\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Updates the cached viewport size. */\n _updateViewportSize() {\n const window = this._getWindow();\n this._viewportSize = this._platform.isBrowser ? {\n width: window.innerWidth,\n height: window.innerHeight\n } : {\n width: 0,\n height: 0\n };\n }\n static {\n this.ɵfac = function ViewportRuler_Factory(t) {\n return new (t || ViewportRuler)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ViewportRuler,\n factory: ViewportRuler.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ViewportRuler, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\nconst VIRTUAL_SCROLLABLE = new InjectionToken('VIRTUAL_SCROLLABLE');\n/**\n * Extending the {@link CdkScrollable} to be used as scrolling container for virtual scrolling.\n */\nclass CdkVirtualScrollable extends CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n /**\n * Measure the viewport size for the provided orientation.\n *\n * @param orientation The orientation to measure the size from.\n */\n measureViewportSize(orientation) {\n const viewportEl = this.elementRef.nativeElement;\n return orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;\n }\n static {\n this.ɵfac = function CdkVirtualScrollable_Factory(t) {\n return new (t || CdkVirtualScrollable)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkVirtualScrollable,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualScrollable, [{\n type: Directive\n }], () => [{\n type: i0.ElementRef\n }, {\n type: ScrollDispatcher\n }, {\n type: i0.NgZone\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\n\n/** Checks if the given ranges are equal. */\nfunction rangesEqual(r1, r2) {\n return r1.start == r2.start && r1.end == r2.end;\n}\n/**\n * Scheduler to be used for scroll events. Needs to fall back to\n * something that doesn't rely on requestAnimationFrame on environments\n * that don't support it (e.g. server-side rendering).\n */\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */\nclass CdkVirtualScrollViewport extends CdkVirtualScrollable {\n /** The direction the viewport scrolls. */\n get orientation() {\n return this._orientation;\n }\n set orientation(orientation) {\n if (this._orientation !== orientation) {\n this._orientation = orientation;\n this._calculateSpacerSize();\n }\n }\n constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler, scrollable) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n this.elementRef = elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollStrategy = _scrollStrategy;\n this.scrollable = scrollable;\n this._platform = inject(Platform);\n /** Emits when the viewport is detached from a CdkVirtualForOf. */\n this._detachedSubject = new Subject();\n /** Emits when the rendered range changes. */\n this._renderedRangeSubject = new Subject();\n this._orientation = 'vertical';\n /**\n * Whether rendered items should persist in the DOM after scrolling out of view. By default, items\n * will be removed.\n */\n this.appendOnly = false;\n // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll\n // strategy lazily (i.e. only if the user is actually listening to the events). We do this because\n // depending on how the strategy calculates the scrolled index, it may come at a cost to\n // performance.\n /** Emits when the index of the first element visible in the viewport changes. */\n this.scrolledIndexChange = new Observable(observer => this._scrollStrategy.scrolledIndexChange.subscribe(index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));\n /** A stream that emits whenever the rendered range changes. */\n this.renderedRangeStream = this._renderedRangeSubject;\n /**\n * The total size of all content (in pixels), including content that is not currently rendered.\n */\n this._totalContentSize = 0;\n /** A string representing the `style.width` property value to be used for the spacer element. */\n this._totalContentWidth = '';\n /** A string representing the `style.height` property value to be used for the spacer element. */\n this._totalContentHeight = '';\n /** The currently rendered range of indices. */\n this._renderedRange = {\n start: 0,\n end: 0\n };\n /** The length of the data bound to this viewport (in number of items). */\n this._dataLength = 0;\n /** The size of the viewport (in pixels). */\n this._viewportSize = 0;\n /** The last rendered content offset that was set. */\n this._renderedContentOffset = 0;\n /**\n * Whether the last rendered content offset was to the end of the content (and therefore needs to\n * be rewritten as an offset to the start of the content).\n */\n this._renderedContentOffsetNeedsRewrite = false;\n /** Whether there is a pending change detection cycle. */\n this._isChangeDetectionPending = false;\n /** A list of functions to run after the next change detection cycle. */\n this._runAfterChangeDetection = [];\n /** Subscription to changes in the viewport size. */\n this._viewportChanges = Subscription.EMPTY;\n if (!_scrollStrategy && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Error: cdk-virtual-scroll-viewport requires the \"itemSize\" property to be set.');\n }\n this._viewportChanges = viewportRuler.change().subscribe(() => {\n this.checkViewportSize();\n });\n if (!this.scrollable) {\n // No scrollable is provided, so the virtual-scroll-viewport needs to become a scrollable\n this.elementRef.nativeElement.classList.add('cdk-virtual-scrollable');\n this.scrollable = this;\n }\n }\n ngOnInit() {\n // Scrolling depends on the element dimensions which we can't get during SSR.\n if (!this._platform.isBrowser) {\n return;\n }\n if (this.scrollable === this) {\n super.ngOnInit();\n }\n // It's still too early to measure the viewport at this point. Deferring with a promise allows\n // the Viewport to be rendered with the correct size before we measure. We run this outside the\n // zone to avoid causing more change detection cycles. We handle the change detection loop\n // ourselves instead.\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._measureViewportSize();\n this._scrollStrategy.attach(this);\n this.scrollable.elementScrolled().pipe(\n // Start off with a fake scroll event so we properly detect our initial position.\n startWith(null),\n // Collect multiple events into one until the next animation frame. This way if\n // there are multiple scroll events in the same frame we only need to recheck\n // our layout once.\n auditTime(0, SCROLL_SCHEDULER),\n // Usually `elementScrolled` is completed when the scrollable is destroyed, but\n // that may not be the case if a `CdkVirtualScrollableElement` is used so we have\n // to unsubscribe here just in case.\n takeUntil(this._destroyed)).subscribe(() => this._scrollStrategy.onContentScrolled());\n this._markChangeDetectionNeeded();\n }));\n }\n ngOnDestroy() {\n this.detach();\n this._scrollStrategy.detach();\n // Complete all subjects\n this._renderedRangeSubject.complete();\n this._detachedSubject.complete();\n this._viewportChanges.unsubscribe();\n super.ngOnDestroy();\n }\n /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */\n attach(forOf) {\n if (this._forOf && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkVirtualScrollViewport is already attached.');\n }\n // Subscribe to the data stream of the CdkVirtualForOf to keep track of when the data length\n // changes. Run outside the zone to avoid triggering change detection, since we're managing the\n // change detection loop ourselves.\n this.ngZone.runOutsideAngular(() => {\n this._forOf = forOf;\n this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe(data => {\n const newLength = data.length;\n if (newLength !== this._dataLength) {\n this._dataLength = newLength;\n this._scrollStrategy.onDataLengthChanged();\n }\n this._doChangeDetection();\n });\n });\n }\n /** Detaches the current `CdkVirtualForOf`. */\n detach() {\n this._forOf = null;\n this._detachedSubject.next();\n }\n /** Gets the length of the data bound to this viewport (in number of items). */\n getDataLength() {\n return this._dataLength;\n }\n /** Gets the size of the viewport (in pixels). */\n getViewportSize() {\n return this._viewportSize;\n }\n // TODO(mmalerba): This is technically out of sync with what's really rendered until a render\n // cycle happens. I'm being careful to only call it after the render cycle is complete and before\n // setting it to something else, but its error prone and should probably be split into\n // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.\n /** Get the current rendered range of items. */\n getRenderedRange() {\n return this._renderedRange;\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n /**\n * Sets the total size of all content (in pixels), including content that is not currently\n * rendered.\n */\n setTotalContentSize(size) {\n if (this._totalContentSize !== size) {\n this._totalContentSize = size;\n this._calculateSpacerSize();\n this._markChangeDetectionNeeded();\n }\n }\n /** Sets the currently rendered range of indices. */\n setRenderedRange(range) {\n if (!rangesEqual(this._renderedRange, range)) {\n if (this.appendOnly) {\n range = {\n start: 0,\n end: Math.max(this._renderedRange.end, range.end)\n };\n }\n this._renderedRangeSubject.next(this._renderedRange = range);\n this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());\n }\n }\n /**\n * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).\n */\n getOffsetToRenderedContentStart() {\n return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;\n }\n /**\n * Sets the offset from the start of the viewport to either the start or end of the rendered data\n * (in pixels).\n */\n setRenderedContentOffset(offset, to = 'to-start') {\n // In appendOnly, we always start from the top\n offset = this.appendOnly && to === 'to-start' ? 0 : offset;\n // For a horizontal viewport in a right-to-left language we need to translate along the x-axis\n // in the negative direction.\n const isRtl = this.dir && this.dir.value == 'rtl';\n const isHorizontal = this.orientation == 'horizontal';\n const axis = isHorizontal ? 'X' : 'Y';\n const axisDirection = isHorizontal && isRtl ? -1 : 1;\n let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;\n this._renderedContentOffset = offset;\n if (to === 'to-end') {\n transform += ` translate${axis}(-100%)`;\n // The viewport should rewrite this as a `to-start` offset on the next render cycle. Otherwise\n // elements will appear to expand in the wrong direction (e.g. `mat-expansion-panel` would\n // expand upward).\n this._renderedContentOffsetNeedsRewrite = true;\n }\n if (this._renderedContentTransform != transform) {\n // We know this value is safe because we parse `offset` with `Number()` before passing it\n // into the string.\n this._renderedContentTransform = transform;\n this._markChangeDetectionNeeded(() => {\n if (this._renderedContentOffsetNeedsRewrite) {\n this._renderedContentOffset -= this.measureRenderedContentSize();\n this._renderedContentOffsetNeedsRewrite = false;\n this.setRenderedContentOffset(this._renderedContentOffset);\n } else {\n this._scrollStrategy.onRenderedOffsetChanged();\n }\n });\n }\n }\n /**\n * Scrolls to the given offset from the start of the viewport. Please note that this is not always\n * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left\n * direction, this would be the equivalent of setting a fictional `scrollRight` property.\n * @param offset The offset to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToOffset(offset, behavior = 'auto') {\n const options = {\n behavior\n };\n if (this.orientation === 'horizontal') {\n options.start = offset;\n } else {\n options.top = offset;\n }\n this.scrollable.scrollTo(options);\n }\n /**\n * Scrolls to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToIndex(index, behavior = 'auto') {\n this._scrollStrategy.scrollToIndex(index, behavior);\n }\n /**\n * Gets the current scroll offset from the start of the scrollable (in pixels).\n * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'\n * in horizontal mode.\n */\n measureScrollOffset(from) {\n // This is to break the call cycle\n let measureScrollOffset;\n if (this.scrollable == this) {\n measureScrollOffset = _from => super.measureScrollOffset(_from);\n } else {\n measureScrollOffset = _from => this.scrollable.measureScrollOffset(_from);\n }\n return Math.max(0, measureScrollOffset(from ?? (this.orientation === 'horizontal' ? 'start' : 'top')) - this.measureViewportOffset());\n }\n /**\n * Measures the offset of the viewport from the scrolling container\n * @param from The edge to measure from.\n */\n measureViewportOffset(from) {\n let fromRect;\n const LEFT = 'left';\n const RIGHT = 'right';\n const isRtl = this.dir?.value == 'rtl';\n if (from == 'start') {\n fromRect = isRtl ? RIGHT : LEFT;\n } else if (from == 'end') {\n fromRect = isRtl ? LEFT : RIGHT;\n } else if (from) {\n fromRect = from;\n } else {\n fromRect = this.orientation === 'horizontal' ? 'left' : 'top';\n }\n const scrollerClientRect = this.scrollable.measureBoundingClientRectWithScrollOffset(fromRect);\n const viewportClientRect = this.elementRef.nativeElement.getBoundingClientRect()[fromRect];\n return viewportClientRect - scrollerClientRect;\n }\n /** Measure the combined size of all of the rendered items. */\n measureRenderedContentSize() {\n const contentEl = this._contentWrapper.nativeElement;\n return this.orientation === 'horizontal' ? contentEl.offsetWidth : contentEl.offsetHeight;\n }\n /**\n * Measure the total combined size of the given range. Throws if the range includes items that are\n * not rendered.\n */\n measureRangeSize(range) {\n if (!this._forOf) {\n return 0;\n }\n return this._forOf.measureRangeSize(range, this.orientation);\n }\n /** Update the viewport dimensions and re-render. */\n checkViewportSize() {\n // TODO: Cleanup later when add logic for handling content resize\n this._measureViewportSize();\n this._scrollStrategy.onDataLengthChanged();\n }\n /** Measure the viewport size. */\n _measureViewportSize() {\n this._viewportSize = this.scrollable.measureViewportSize(this.orientation);\n }\n /** Queue up change detection to run. */\n _markChangeDetectionNeeded(runAfter) {\n if (runAfter) {\n this._runAfterChangeDetection.push(runAfter);\n }\n // Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of\n // properties sequentially we only have to run `_doChangeDetection` once at the end.\n if (!this._isChangeDetectionPending) {\n this._isChangeDetectionPending = true;\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._doChangeDetection();\n }));\n }\n }\n /** Run change detection. */\n _doChangeDetection() {\n this._isChangeDetectionPending = false;\n // Apply the content transform. The transform can't be set via an Angular binding because\n // bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of\n // string literals, a variable that can only be 'X' or 'Y', and user input that is run through\n // the `Number` function first to coerce it to a numeric value.\n this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;\n // Apply changes to Angular bindings. Note: We must call `markForCheck` to run change detection\n // from the root, since the repeated items are content projected in. Calling `detectChanges`\n // instead does not properly check the projected content.\n this.ngZone.run(() => this._changeDetectorRef.markForCheck());\n const runAfterChangeDetection = this._runAfterChangeDetection;\n this._runAfterChangeDetection = [];\n for (const fn of runAfterChangeDetection) {\n fn();\n }\n }\n /** Calculates the `style.width` and `style.height` for the spacer element. */\n _calculateSpacerSize() {\n this._totalContentHeight = this.orientation === 'horizontal' ? '' : `${this._totalContentSize}px`;\n this._totalContentWidth = this.orientation === 'horizontal' ? `${this._totalContentSize}px` : '';\n }\n static {\n this.ɵfac = function CdkVirtualScrollViewport_Factory(t) {\n return new (t || CdkVirtualScrollViewport)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(VIRTUAL_SCROLL_STRATEGY, 8), i0.ɵɵdirectiveInject(i2.Directionality, 8), i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(ViewportRuler), i0.ɵɵdirectiveInject(VIRTUAL_SCROLLABLE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkVirtualScrollViewport,\n selectors: [[\"cdk-virtual-scroll-viewport\"]],\n viewQuery: function CdkVirtualScrollViewport_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentWrapper = _t.first);\n }\n },\n hostAttrs: [1, \"cdk-virtual-scroll-viewport\"],\n hostVars: 4,\n hostBindings: function CdkVirtualScrollViewport_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"cdk-virtual-scroll-orientation-horizontal\", ctx.orientation === \"horizontal\")(\"cdk-virtual-scroll-orientation-vertical\", ctx.orientation !== \"horizontal\");\n }\n },\n inputs: {\n orientation: \"orientation\",\n appendOnly: [\"appendOnly\", \"appendOnly\", booleanAttribute]\n },\n outputs: {\n scrolledIndexChange: \"scrolledIndexChange\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport]\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 4,\n vars: 4,\n consts: [[1, \"cdk-virtual-scroll-content-wrapper\"], [\"contentWrapper\", \"\"], [1, \"cdk-virtual-scroll-spacer\"]],\n template: function CdkVirtualScrollViewport_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0, 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"div\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵstyleProp(\"width\", ctx._totalContentWidth)(\"height\", ctx._totalContentHeight);\n }\n },\n styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualScrollViewport, [{\n type: Component,\n args: [{\n selector: 'cdk-virtual-scroll-viewport',\n host: {\n 'class': 'cdk-virtual-scroll-viewport',\n '[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === \"horizontal\"',\n '[class.cdk-virtual-scroll-orientation-vertical]': 'orientation !== \"horizontal\"'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n providers: [{\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport]\n }],\n template: \"\\n\\n \\n
\\n\\n
\\n\",\n styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"]\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLL_STRATEGY]\n }]\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: ScrollDispatcher\n }, {\n type: ViewportRuler\n }, {\n type: CdkVirtualScrollable,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLLABLE]\n }]\n }], {\n orientation: [{\n type: Input\n }],\n appendOnly: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n scrolledIndexChange: [{\n type: Output\n }],\n _contentWrapper: [{\n type: ViewChild,\n args: ['contentWrapper', {\n static: true\n }]\n }]\n });\n})();\n\n/** Helper to extract the offset of a DOM Node in a certain direction. */\nfunction getOffset(orientation, direction, node) {\n const el = node;\n if (!el.getBoundingClientRect) {\n return 0;\n }\n const rect = el.getBoundingClientRect();\n if (orientation === 'horizontal') {\n return direction === 'start' ? rect.left : rect.right;\n }\n return direction === 'start' ? rect.top : rect.bottom;\n}\n/**\n * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling\n * container.\n */\nclass CdkVirtualForOf {\n /** The DataSource to display. */\n get cdkVirtualForOf() {\n return this._cdkVirtualForOf;\n }\n set cdkVirtualForOf(value) {\n this._cdkVirtualForOf = value;\n if (isDataSource(value)) {\n this._dataSourceChanges.next(value);\n } else {\n // If value is an an NgIterable, convert it to an array.\n this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));\n }\n }\n /**\n * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and\n * the item and produces a value to be used as the item's identity when tracking changes.\n */\n get cdkVirtualForTrackBy() {\n return this._cdkVirtualForTrackBy;\n }\n set cdkVirtualForTrackBy(fn) {\n this._needsUpdate = true;\n this._cdkVirtualForTrackBy = fn ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item) : undefined;\n }\n /** The template used to stamp out new elements. */\n set cdkVirtualForTemplate(value) {\n if (value) {\n this._needsUpdate = true;\n this._template = value;\n }\n }\n /**\n * The size of the cache used to store templates that are not being used for re-use later.\n * Setting the cache size to `0` will disable caching. Defaults to 20 templates.\n */\n get cdkVirtualForTemplateCacheSize() {\n return this._viewRepeater.viewCacheSize;\n }\n set cdkVirtualForTemplateCacheSize(size) {\n this._viewRepeater.viewCacheSize = coerceNumberProperty(size);\n }\n constructor( /** The view container to add items to. */\n _viewContainerRef, /** The template to use when stamping out new items. */\n _template, /** The set of available differs. */\n _differs, /** The strategy used to render items in the virtual scroll viewport. */\n _viewRepeater, /** The virtual scrolling viewport that these items are being rendered in. */\n _viewport, ngZone) {\n this._viewContainerRef = _viewContainerRef;\n this._template = _template;\n this._differs = _differs;\n this._viewRepeater = _viewRepeater;\n this._viewport = _viewport;\n /** Emits when the rendered view of the data changes. */\n this.viewChange = new Subject();\n /** Subject that emits when a new DataSource instance is given. */\n this._dataSourceChanges = new Subject();\n /** Emits whenever the data in the current DataSource changes. */\n this.dataStream = this._dataSourceChanges.pipe(\n // Start off with null `DataSource`.\n startWith(null),\n // Bundle up the previous and current data sources so we can work with both.\n pairwise(),\n // Use `_changeDataSource` to disconnect from the previous data source and connect to the\n // new one, passing back a stream of data changes which we run through `switchMap` to give\n // us a data stream that emits the latest data from whatever the current `DataSource` is.\n switchMap(([prev, cur]) => this._changeDataSource(prev, cur)),\n // Replay the last emitted data when someone subscribes.\n shareReplay(1));\n /** The differ used to calculate changes to the data. */\n this._differ = null;\n /** Whether the rendered data should be updated during the next ngDoCheck cycle. */\n this._needsUpdate = false;\n this._destroyed = new Subject();\n this.dataStream.subscribe(data => {\n this._data = data;\n this._onRenderedDataChange();\n });\n this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(range => {\n this._renderedRange = range;\n if (this.viewChange.observers.length) {\n ngZone.run(() => this.viewChange.next(this._renderedRange));\n }\n this._onRenderedDataChange();\n });\n this._viewport.attach(this);\n }\n /**\n * Measures the combined size (width for horizontal orientation, height for vertical) of all items\n * in the specified range. Throws an error if the range includes items that are not currently\n * rendered.\n */\n measureRangeSize(range, orientation) {\n if (range.start >= range.end) {\n return 0;\n }\n if ((range.start < this._renderedRange.start || range.end > this._renderedRange.end) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Error: attempted to measure an item that isn't rendered.`);\n }\n // The index into the list of rendered views for the first item in the range.\n const renderedStartIndex = range.start - this._renderedRange.start;\n // The length of the range we're measuring.\n const rangeLen = range.end - range.start;\n // Loop over all the views, find the first and land node and compute the size by subtracting\n // the top of the first node from the bottom of the last one.\n let firstNode;\n let lastNode;\n // Find the first node by starting from the beginning and going forwards.\n for (let i = 0; i < rangeLen; i++) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n firstNode = lastNode = view.rootNodes[0];\n break;\n }\n }\n // Find the last node by starting from the end and going backwards.\n for (let i = rangeLen - 1; i > -1; i--) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n lastNode = view.rootNodes[view.rootNodes.length - 1];\n break;\n }\n }\n return firstNode && lastNode ? getOffset(orientation, 'end', lastNode) - getOffset(orientation, 'start', firstNode) : 0;\n }\n ngDoCheck() {\n if (this._differ && this._needsUpdate) {\n // TODO(mmalerba): We should differentiate needs update due to scrolling and a new portion of\n // this list being rendered (can use simpler algorithm) vs needs update due to data actually\n // changing (need to do this diff).\n const changes = this._differ.diff(this._renderedItems);\n if (!changes) {\n this._updateContext();\n } else {\n this._applyChanges(changes);\n }\n this._needsUpdate = false;\n }\n }\n ngOnDestroy() {\n this._viewport.detach();\n this._dataSourceChanges.next(undefined);\n this._dataSourceChanges.complete();\n this.viewChange.complete();\n this._destroyed.next();\n this._destroyed.complete();\n this._viewRepeater.detach();\n }\n /** React to scroll state changes in the viewport. */\n _onRenderedDataChange() {\n if (!this._renderedRange) {\n return;\n }\n this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);\n if (!this._differ) {\n // Use a wrapper function for the `trackBy` so any new values are\n // picked up automatically without having to recreate the differ.\n this._differ = this._differs.find(this._renderedItems).create((index, item) => {\n return this.cdkVirtualForTrackBy ? this.cdkVirtualForTrackBy(index, item) : item;\n });\n }\n this._needsUpdate = true;\n }\n /** Swap out one `DataSource` for another. */\n _changeDataSource(oldDs, newDs) {\n if (oldDs) {\n oldDs.disconnect(this);\n }\n this._needsUpdate = true;\n return newDs ? newDs.connect(this) : of();\n }\n /** Update the `CdkVirtualForOfContext` for all views. */\n _updateContext() {\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n view.detectChanges();\n }\n }\n /** Apply changes to the DOM. */\n _applyChanges(changes) {\n this._viewRepeater.applyChanges(changes, this._viewContainerRef, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record, currentIndex), record => record.item);\n // Update $implicit for any items that had an identity change.\n changes.forEachIdentityChange(record => {\n const view = this._viewContainerRef.get(record.currentIndex);\n view.context.$implicit = record.item;\n });\n // Update the context variables on all items.\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n }\n }\n /** Update the computed properties on the `CdkVirtualForOfContext`. */\n _updateComputedContextProperties(context) {\n context.first = context.index === 0;\n context.last = context.index === context.count - 1;\n context.even = context.index % 2 === 0;\n context.odd = !context.even;\n }\n _getEmbeddedViewArgs(record, index) {\n // Note that it's important that we insert the item directly at the proper index,\n // rather than inserting it and the moving it in place, because if there's a directive\n // on the same node that injects the `ViewContainerRef`, Angular will insert another\n // comment node which can throw off the move when it's being repeated for all items.\n return {\n templateRef: this._template,\n context: {\n $implicit: record.item,\n // It's guaranteed that the iterable is not \"undefined\" or \"null\" because we only\n // generate views for elements if the \"cdkVirtualForOf\" iterable has elements.\n cdkVirtualForOf: this._cdkVirtualForOf,\n index: -1,\n count: -1,\n first: false,\n last: false,\n odd: false,\n even: false\n },\n index\n };\n }\n static {\n this.ɵfac = function CdkVirtualForOf_Factory(t) {\n return new (t || CdkVirtualForOf)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(_VIEW_REPEATER_STRATEGY), i0.ɵɵdirectiveInject(CdkVirtualScrollViewport, 4), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkVirtualForOf,\n selectors: [[\"\", \"cdkVirtualFor\", \"\", \"cdkVirtualForOf\", \"\"]],\n inputs: {\n cdkVirtualForOf: \"cdkVirtualForOf\",\n cdkVirtualForTrackBy: \"cdkVirtualForTrackBy\",\n cdkVirtualForTemplate: \"cdkVirtualForTemplate\",\n cdkVirtualForTemplateCacheSize: \"cdkVirtualForTemplateCacheSize\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualForOf, [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualFor][cdkVirtualForOf]',\n providers: [{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }],\n standalone: true\n }]\n }], () => [{\n type: i0.ViewContainerRef\n }, {\n type: i0.TemplateRef\n }, {\n type: i0.IterableDiffers\n }, {\n type: i2$1._RecycleViewRepeaterStrategy,\n decorators: [{\n type: Inject,\n args: [_VIEW_REPEATER_STRATEGY]\n }]\n }, {\n type: CdkVirtualScrollViewport,\n decorators: [{\n type: SkipSelf\n }]\n }, {\n type: i0.NgZone\n }], {\n cdkVirtualForOf: [{\n type: Input\n }],\n cdkVirtualForTrackBy: [{\n type: Input\n }],\n cdkVirtualForTemplate: [{\n type: Input\n }],\n cdkVirtualForTemplateCacheSize: [{\n type: Input\n }]\n });\n})();\n\n/**\n * Provides a virtual scrollable for the element it is attached to.\n */\nclass CdkVirtualScrollableElement extends CdkVirtualScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from] - this.measureScrollOffset(from);\n }\n static {\n this.ɵfac = function CdkVirtualScrollableElement_Factory(t) {\n return new (t || CdkVirtualScrollableElement)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkVirtualScrollableElement,\n selectors: [[\"\", \"cdkVirtualScrollingElement\", \"\"]],\n hostAttrs: [1, \"cdk-virtual-scrollable\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: VIRTUAL_SCROLLABLE,\n useExisting: CdkVirtualScrollableElement\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualScrollableElement, [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualScrollingElement]',\n providers: [{\n provide: VIRTUAL_SCROLLABLE,\n useExisting: CdkVirtualScrollableElement\n }],\n standalone: true,\n host: {\n 'class': 'cdk-virtual-scrollable'\n }\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: ScrollDispatcher\n }, {\n type: i0.NgZone\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\n\n/**\n * Provides as virtual scrollable for the global / window scrollbar.\n */\nclass CdkVirtualScrollableWindow extends CdkVirtualScrollable {\n constructor(scrollDispatcher, ngZone, dir) {\n super(new ElementRef(document.documentElement), scrollDispatcher, ngZone, dir);\n this._elementScrolled = new Observable(observer => this.ngZone.runOutsideAngular(() => fromEvent(document, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n static {\n this.ɵfac = function CdkVirtualScrollableWindow_Factory(t) {\n return new (t || CdkVirtualScrollableWindow)(i0.ɵɵdirectiveInject(ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkVirtualScrollableWindow,\n selectors: [[\"cdk-virtual-scroll-viewport\", \"scrollWindow\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: VIRTUAL_SCROLLABLE,\n useExisting: CdkVirtualScrollableWindow\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkVirtualScrollableWindow, [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[scrollWindow]',\n providers: [{\n provide: VIRTUAL_SCROLLABLE,\n useExisting: CdkVirtualScrollableWindow\n }],\n standalone: true\n }]\n }], () => [{\n type: ScrollDispatcher\n }, {\n type: i0.NgZone\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\nclass CdkScrollableModule {\n static {\n this.ɵfac = function CdkScrollableModule_Factory(t) {\n return new (t || CdkScrollableModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CdkScrollableModule,\n imports: [CdkScrollable],\n exports: [CdkScrollable]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkScrollableModule, [{\n type: NgModule,\n args: [{\n exports: [CdkScrollable],\n imports: [CdkScrollable]\n }]\n }], null, null);\n})();\n/**\n * @docs-primary-export\n */\nclass ScrollingModule {\n static {\n this.ɵfac = function ScrollingModule_Factory(t) {\n return new (t || ScrollingModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ScrollingModule,\n imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollableWindow, CdkVirtualScrollableElement],\n exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollableWindow, CdkVirtualScrollableElement]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [BidiModule, CdkScrollableModule, BidiModule, CdkScrollableModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollingModule, [{\n type: NgModule,\n args: [{\n imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollableWindow, CdkVirtualScrollableElement],\n exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollableWindow, CdkVirtualScrollableElement]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkFixedSizeVirtualScroll, CdkScrollable, CdkScrollableModule, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollable, CdkVirtualScrollableElement, CdkVirtualScrollableWindow, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLLABLE, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };\n", "import * as i0 from '@angular/core';\nimport { ElementRef, Injector, Directive, EventEmitter, Inject, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nfunction throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nfunction throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nfunction throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nfunction throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' + 'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nfunction throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nfunction throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nclass Portal {\n /** Attach this portal to a host. */\n attach(host) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n this._attachedHost = host;\n return host.attach(this);\n }\n /** Detach this portal from its host */\n detach() {\n let host = this._attachedHost;\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n /** Whether this portal is attached to a host. */\n get isAttached() {\n return this._attachedHost != null;\n }\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host) {\n this._attachedHost = host;\n }\n}\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nclass ComponentPortal extends Portal {\n constructor(component, viewContainerRef, injector, componentFactoryResolver, projectableNodes) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n this.projectableNodes = projectableNodes;\n }\n}\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nclass TemplatePortal extends Portal {\n constructor( /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef, /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef, /** Contextual data to be passed in to the embedded view. */\n context, /** The injector to use for the embedded view. */\n injector) {\n super();\n this.templateRef = templateRef;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n this.injector = injector;\n }\n get origin() {\n return this.templateRef.elementRef;\n }\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host, context = this.context) {\n this.context = context;\n return super.attach(host);\n }\n detach() {\n this.context = undefined;\n return super.detach();\n }\n}\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nclass DomPortal extends Portal {\n constructor(element) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nclass BasePortalOutlet {\n constructor() {\n /** Whether this host has already been permanently disposed. */\n this._isDisposed = false;\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n this.attachDomPortal = null;\n }\n /** Whether this host has an attached portal. */\n hasAttached() {\n return !!this._attachedPortal;\n }\n /** Attaches a portal. */\n attach(portal) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n } else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n /** Detaches a previously attached portal. */\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n this._invokeDisposeFn();\n }\n /** Permanently dispose of this portal host. */\n dispose() {\n if (this.hasAttached()) {\n this.detach();\n }\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n /** @docs-private */\n setDisposeFn(fn) {\n this._disposeFn = fn;\n }\n _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass BasePortalHost extends BasePortalOutlet {}\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nclass DomPortalOutlet extends BasePortalOutlet {\n /**\n * @param outletElement Element into which the content is projected.\n * @param _componentFactoryResolver Used to resolve the component factory.\n * Only required when attaching component portals.\n * @param _appRef Reference to the application. Only used in component portals when there\n * is no `ViewContainerRef` available.\n * @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't\n * have one. Only used for component portals.\n * @param _document Reference to the document. Used when attaching a DOM portal. Will eventually\n * become a required parameter.\n */\n constructor( /** Element into which the content is projected. */\n outletElement, _componentFactoryResolver, _appRef, _defaultInjector,\n /**\n * @deprecated `_document` Parameter to be made required.\n * @breaking-change 10.0.0\n */\n _document) {\n super();\n this.outletElement = outletElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n this._defaultInjector = _defaultInjector;\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = portal => {\n // @breaking-change 10.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n element.parentNode.insertBefore(anchorNode, element);\n this.outletElement.appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !resolver) {\n throw Error('Cannot attach component portal to outlet without a ComponentFactoryResolver.');\n }\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector, portal.projectableNodes || undefined);\n this.setDisposeFn(() => componentRef.destroy());\n } else {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this._appRef) {\n throw Error('Cannot attach component portal to outlet without an ApplicationRef.');\n }\n componentRef = componentFactory.create(portal.injector || this._defaultInjector || Injector.NULL);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n // Verify that the ApplicationRef has registered views before trying to detach a host view.\n // This check also protects the `detachView` from being called on a destroyed ApplicationRef.\n if (this._appRef.viewCount > 0) {\n this._appRef.detachView(componentRef.hostView);\n }\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n this._attachedPortal = portal;\n return componentRef;\n }\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector\n });\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n this.setDisposeFn(() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n this._attachedPortal = portal;\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n /**\n * Clears out a portal from the DOM.\n */\n dispose() {\n super.dispose();\n this.outletElement.remove();\n }\n /** Gets the root HTMLElement for an instantiated component. */\n _getComponentRootNode(componentRef) {\n return componentRef.hostView.rootNodes[0];\n }\n}\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass DomPortalHost extends DomPortalOutlet {}\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\nclass CdkPortal extends TemplatePortal {\n constructor(templateRef, viewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n static {\n this.ɵfac = function CdkPortal_Factory(t) {\n return new (t || CdkPortal)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkPortal,\n selectors: [[\"\", \"cdkPortal\", \"\"]],\n exportAs: [\"cdkPortal\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkPortal, [{\n type: Directive,\n args: [{\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal'\n }]\n }], () => [{\n type: i0.TemplateRef\n }, {\n type: i0.ViewContainerRef\n }], null);\n})();\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\nclass TemplatePortalDirective extends CdkPortal {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵTemplatePortalDirective_BaseFactory;\n return function TemplatePortalDirective_Factory(t) {\n return (ɵTemplatePortalDirective_BaseFactory || (ɵTemplatePortalDirective_BaseFactory = i0.ɵɵgetInheritedFactory(TemplatePortalDirective)))(t || TemplatePortalDirective);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TemplatePortalDirective,\n selectors: [[\"\", \"cdk-portal\", \"\"], [\"\", \"portal\", \"\"]],\n exportAs: [\"cdkPortal\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkPortal,\n useExisting: TemplatePortalDirective\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TemplatePortalDirective, [{\n type: Directive,\n args: [{\n selector: '[cdk-portal], [portal]',\n exportAs: 'cdkPortal',\n providers: [{\n provide: CdkPortal,\n useExisting: TemplatePortalDirective\n }]\n }]\n }], null, null);\n})();\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * ` `\n */\nclass CdkPortalOutlet extends BasePortalOutlet {\n constructor(_componentFactoryResolver, _viewContainerRef,\n /**\n * @deprecated `_document` parameter to be made required.\n * @breaking-change 9.0.0\n */\n _document) {\n super();\n this._componentFactoryResolver = _componentFactoryResolver;\n this._viewContainerRef = _viewContainerRef;\n /** Whether the portal component is initialized. */\n this._isInitialized = false;\n /** Emits when a portal is attached to the outlet. */\n this.attached = new EventEmitter();\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = portal => {\n // @breaking-change 9.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n portal.setAttachedHost(this);\n element.parentNode.insertBefore(anchorNode, element);\n this._getRootNode().appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /** Portal associated with the Portal outlet. */\n get portal() {\n return this._attachedPortal;\n }\n set portal(portal) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like ``\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n if (this.hasAttached()) {\n super.detach();\n }\n if (portal) {\n super.attach(portal);\n }\n this._attachedPortal = portal || null;\n }\n /** Component or view reference that is attached to the portal. */\n get attachedRef() {\n return this._attachedRef;\n }\n ngOnInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n super.dispose();\n this._attachedRef = this._attachedPortal = null;\n }\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector, portal.projectableNodes || undefined);\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild(ref.hostView.rootNodes[0]);\n }\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n return ref;\n }\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector\n });\n super.setDisposeFn(() => this._viewContainerRef.clear());\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n return viewRef;\n }\n /** Gets the root node of the portal outlet. */\n _getRootNode() {\n const nativeElement = this._viewContainerRef.element.nativeElement;\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return nativeElement.nodeType === nativeElement.ELEMENT_NODE ? nativeElement : nativeElement.parentNode;\n }\n static {\n this.ɵfac = function CdkPortalOutlet_Factory(t) {\n return new (t || CdkPortalOutlet)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkPortalOutlet,\n selectors: [[\"\", \"cdkPortalOutlet\", \"\"]],\n inputs: {\n portal: [\"cdkPortalOutlet\", \"portal\"]\n },\n outputs: {\n attached: \"attached\"\n },\n exportAs: [\"cdkPortalOutlet\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkPortalOutlet, [{\n type: Directive,\n args: [{\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n inputs: ['portal: cdkPortalOutlet']\n }]\n }], () => [{\n type: i0.ComponentFactoryResolver\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], {\n attached: [{\n type: Output\n }]\n });\n})();\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass PortalHostDirective extends CdkPortalOutlet {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵPortalHostDirective_BaseFactory;\n return function PortalHostDirective_Factory(t) {\n return (ɵPortalHostDirective_BaseFactory || (ɵPortalHostDirective_BaseFactory = i0.ɵɵgetInheritedFactory(PortalHostDirective)))(t || PortalHostDirective);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PortalHostDirective,\n selectors: [[\"\", \"cdkPortalHost\", \"\"], [\"\", \"portalHost\", \"\"]],\n inputs: {\n portal: [\"cdkPortalHost\", \"portal\"]\n },\n exportAs: [\"cdkPortalHost\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PortalHostDirective, [{\n type: Directive,\n args: [{\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: ['portal: cdkPortalHost'],\n providers: [{\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective\n }]\n }]\n }], null, null);\n})();\nclass PortalModule {\n static {\n this.ɵfac = function PortalModule_Factory(t) {\n return new (t || PortalModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PortalModule,\n declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PortalModule, [{\n type: NgModule,\n args: [{\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective]\n }]\n }], null, null);\n})();\n\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n * @deprecated Use `Injector.create` instead.\n * @breaking-change 11.0.0\n */\nclass PortalInjector {\n constructor(_parentInjector, _customTokens) {\n this._parentInjector = _parentInjector;\n this._customTokens = _customTokens;\n }\n get(token, notFoundValue) {\n const value = this._customTokens.get(token);\n if (typeof value !== 'undefined') {\n return value;\n }\n return this._parentInjector.get(token, notFoundValue);\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, BasePortalOutlet, CdkPortal, CdkPortalOutlet, ComponentPortal, DomPortal, DomPortalHost, DomPortalOutlet, Portal, PortalHostDirective, PortalInjector, PortalModule, TemplatePortal, TemplatePortalDirective };\n", "import * as i1 from '@angular/cdk/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nexport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport * as i6 from '@angular/common';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, Optional, ElementRef, ApplicationRef, ANIMATION_MODULE_TYPE, InjectionToken, inject, Directive, EventEmitter, booleanAttribute, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/platform';\nimport { supportsScrollBehavior, _getEventTarget, _isTestEnvironment } from '@angular/cdk/platform';\nimport { filter, take, takeUntil, takeWhile } from 'rxjs/operators';\nimport * as i5 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { DomPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nconst scrollBehaviorSupported = supportsScrollBehavior();\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nclass BlockScrollStrategy {\n constructor(_viewportRuler, document) {\n this._viewportRuler = _viewportRuler;\n this._previousHTMLStyles = {\n top: '',\n left: ''\n };\n this._isEnabled = false;\n this._document = document;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach() {}\n /** Blocks page-level scroll while the attached overlay is open. */\n enable() {\n if (this._canBeEnabled()) {\n const root = this._document.documentElement;\n this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n // Cache the previous inline styles in case the user had set them.\n this._previousHTMLStyles.left = root.style.left || '';\n this._previousHTMLStyles.top = root.style.top || '';\n // Note: we're using the `html` node, instead of the `body`, because the `body` may\n // have the user agent margin, whereas the `html` is guaranteed not to have one.\n root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);\n root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);\n root.classList.add('cdk-global-scrollblock');\n this._isEnabled = true;\n }\n }\n /** Unblocks page-level scroll while the attached overlay is open. */\n disable() {\n if (this._isEnabled) {\n const html = this._document.documentElement;\n const body = this._document.body;\n const htmlStyle = html.style;\n const bodyStyle = body.style;\n const previousHtmlScrollBehavior = htmlStyle.scrollBehavior || '';\n const previousBodyScrollBehavior = bodyStyle.scrollBehavior || '';\n this._isEnabled = false;\n htmlStyle.left = this._previousHTMLStyles.left;\n htmlStyle.top = this._previousHTMLStyles.top;\n html.classList.remove('cdk-global-scrollblock');\n // Disable user-defined smooth scrolling temporarily while we restore the scroll position.\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n // Note that we don't mutate the property if the browser doesn't support `scroll-behavior`,\n // because it can throw off feature detections in `supportsScrollBehavior` which\n // checks for `'scrollBehavior' in documentElement.style`.\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = 'auto';\n }\n window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = previousHtmlScrollBehavior;\n bodyStyle.scrollBehavior = previousBodyScrollBehavior;\n }\n }\n }\n _canBeEnabled() {\n // Since the scroll strategies can't be singletons, we have to use a global CSS class\n // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n // scrolling multiple times.\n const html = this._document.documentElement;\n if (html.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n return false;\n }\n const body = this._document.body;\n const viewport = this._viewportRuler.getViewportSize();\n return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\n }\n}\n\n/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n */\nfunction getMatScrollStrategyAlreadyAttachedError() {\n return Error(`Scroll strategy has already been attached.`);\n}\n\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nclass CloseScrollStrategy {\n constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._config = _config;\n this._scrollSubscription = null;\n /** Detaches the overlay ref and disables the scroll strategy. */\n this._detach = () => {\n this.disable();\n if (this._overlayRef.hasAttached()) {\n this._ngZone.run(() => this._overlayRef.detach());\n }\n };\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables the closing of the attached overlay on scroll. */\n enable() {\n if (this._scrollSubscription) {\n return;\n }\n const stream = this._scrollDispatcher.scrolled(0).pipe(filter(scrollable => {\n return !scrollable || !this._overlayRef.overlayElement.contains(scrollable.getElementRef().nativeElement);\n }));\n if (this._config && this._config.threshold && this._config.threshold > 1) {\n this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n this._scrollSubscription = stream.subscribe(() => {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n if (Math.abs(scrollPosition - this._initialScrollPosition) > this._config.threshold) {\n this._detach();\n } else {\n this._overlayRef.updatePosition();\n }\n });\n } else {\n this._scrollSubscription = stream.subscribe(this._detach);\n }\n }\n /** Disables the closing the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\n\n/** Scroll strategy that doesn't do anything. */\nclass NoopScrollStrategy {\n /** Does nothing, as this scroll strategy is a no-op. */\n enable() {}\n /** Does nothing, as this scroll strategy is a no-op. */\n disable() {}\n /** Does nothing, as this scroll strategy is a no-op. */\n attach() {}\n}\n\n/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is scrolled out of view\n * @docs-private\n */\nfunction isElementScrolledOutsideView(element, scrollContainers) {\n return scrollContainers.some(containerBounds => {\n const outsideAbove = element.bottom < containerBounds.top;\n const outsideBelow = element.top > containerBounds.bottom;\n const outsideLeft = element.right < containerBounds.left;\n const outsideRight = element.left > containerBounds.right;\n return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is clipped\n * @docs-private\n */\nfunction isElementClippedByScrolling(element, scrollContainers) {\n return scrollContainers.some(scrollContainerRect => {\n const clippedAbove = element.top < scrollContainerRect.top;\n const clippedBelow = element.bottom > scrollContainerRect.bottom;\n const clippedLeft = element.left < scrollContainerRect.left;\n const clippedRight = element.right > scrollContainerRect.right;\n return clippedAbove || clippedBelow || clippedLeft || clippedRight;\n });\n}\n\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nclass RepositionScrollStrategy {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n this._config = _config;\n this._scrollSubscription = null;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables repositioning of the attached overlay on scroll. */\n enable() {\n if (!this._scrollSubscription) {\n const throttle = this._config ? this._config.scrollThrottle : 0;\n this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe(() => {\n this._overlayRef.updatePosition();\n // TODO(crisbeto): make `close` on by default once all components can handle it.\n if (this._config && this._config.autoClose) {\n const overlayRect = this._overlayRef.overlayElement.getBoundingClientRect();\n const {\n width,\n height\n } = this._viewportRuler.getViewportSize();\n // TODO(crisbeto): include all ancestor scroll containers here once\n // we have a way of exposing the trigger element to the scroll strategy.\n const parentRects = [{\n width,\n height,\n bottom: height,\n right: width,\n top: 0,\n left: 0\n }];\n if (isElementScrolledOutsideView(overlayRect, parentRects)) {\n this.disable();\n this._ngZone.run(() => this._overlayRef.detach());\n }\n }\n });\n }\n }\n /** Disables repositioning of the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\n\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nclass ScrollStrategyOptions {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, document) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n /** Do nothing on scroll. */\n this.noop = () => new NoopScrollStrategy();\n /**\n * Close the overlay as soon as the user scrolls.\n * @param config Configuration to be used inside the scroll strategy.\n */\n this.close = config => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);\n /** Block scrolling. */\n this.block = () => new BlockScrollStrategy(this._viewportRuler, this._document);\n /**\n * Update the overlay's position on scroll.\n * @param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n */\n this.reposition = config => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);\n this._document = document;\n }\n static {\n this.ɵfac = function ScrollStrategyOptions_Factory(t) {\n return new (t || ScrollStrategyOptions)(i0.ɵɵinject(i1.ScrollDispatcher), i0.ɵɵinject(i1.ViewportRuler), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollStrategyOptions,\n factory: ScrollStrategyOptions.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollStrategyOptions, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.ScrollDispatcher\n }, {\n type: i1.ViewportRuler\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\n\n/** Initial configuration used when creating an overlay. */\nclass OverlayConfig {\n constructor(config) {\n /** Strategy to be used when handling scroll events while the overlay is open. */\n this.scrollStrategy = new NoopScrollStrategy();\n /** Custom class to add to the overlay pane. */\n this.panelClass = '';\n /** Whether the overlay has a backdrop. */\n this.hasBackdrop = false;\n /** Custom class to add to the backdrop */\n this.backdropClass = 'cdk-overlay-dark-backdrop';\n /**\n * Whether the overlay should be disposed of when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n this.disposeOnNavigation = false;\n if (config) {\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n const configKeys = Object.keys(config);\n for (const key of configKeys) {\n if (config[key] !== undefined) {\n // TypeScript, as of version 3.5, sees the left-hand-side of this expression\n // as \"I don't know *which* key this is, so the only valid value is the intersection\n // of all the possible values.\" In this case, that happens to be `undefined`. TypeScript\n // is not smart enough to see that the right-hand-side is actually an access of the same\n // exact type with the same exact key, meaning that the value type must be identical.\n // So we use `any` to work around this.\n this[key] = config[key];\n }\n }\n }\n }\n}\n\n/** The points of the origin element and the overlay element to connect. */\nclass ConnectionPositionPair {\n constructor(origin, overlay, /** Offset along the X axis. */\n offsetX, /** Offset along the Y axis. */\n offsetY, /** Class(es) to be applied to the panel while this position is active. */\n panelClass) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.panelClass = panelClass;\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n * ----------- -----------\n * | outside | | clipped |\n * | view | --------------------------\n * | | | | | |\n * ---------- | ----------- |\n * -------------------------- | |\n * | | | Scrollable |\n * | | | |\n * | | --------------------------\n * | Scrollable |\n * | |\n * --------------------------\n *\n * @docs-private\n */\nclass ScrollingVisibility {}\n/** The change event emitted by the strategy when a fallback position is used. */\nclass ConnectedOverlayPositionChange {\n constructor( /** The position used as a result of this change. */\n connectionPair, /** @docs-private */\n scrollableViewProperties) {\n this.connectionPair = connectionPair;\n this.scrollableViewProperties = scrollableViewProperties;\n }\n}\n/**\n * Validates whether a vertical position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateVerticalPosition(property, value) {\n if (value !== 'top' && value !== 'bottom' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` + `Expected \"top\", \"bottom\" or \"center\".`);\n }\n}\n/**\n * Validates whether a horizontal position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateHorizontalPosition(property, value) {\n if (value !== 'start' && value !== 'end' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` + `Expected \"start\", \"end\" or \"center\".`);\n }\n}\n\n/**\n * Service for dispatching events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass BaseOverlayDispatcher {\n constructor(document) {\n /** Currently attached overlays in the order they were attached. */\n this._attachedOverlays = [];\n this._document = document;\n }\n ngOnDestroy() {\n this.detach();\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n // Ensure that we don't get the same overlay multiple times.\n this.remove(overlayRef);\n this._attachedOverlays.push(overlayRef);\n }\n /** Remove an overlay from the list of attached overlay refs. */\n remove(overlayRef) {\n const index = this._attachedOverlays.indexOf(overlayRef);\n if (index > -1) {\n this._attachedOverlays.splice(index, 1);\n }\n // Remove the global listener once there are no more overlays.\n if (this._attachedOverlays.length === 0) {\n this.detach();\n }\n }\n static {\n this.ɵfac = function BaseOverlayDispatcher_Factory(t) {\n return new (t || BaseOverlayDispatcher)(i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BaseOverlayDispatcher,\n factory: BaseOverlayDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BaseOverlayDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\n\n/**\n * Service for dispatching keyboard events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayKeyboardDispatcher extends BaseOverlayDispatcher {\n constructor(document, /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._ngZone = _ngZone;\n /** Keyboard event listener that will be attached to the body. */\n this._keydownListener = event => {\n const overlays = this._attachedOverlays;\n for (let i = overlays.length - 1; i > -1; i--) {\n // Dispatch the keydown event to the top overlay which has subscribers to its keydown events.\n // We want to target the most recent overlay, rather than trying to match where the event came\n // from, because some components might open an overlay, but keep focus on a trigger element\n // (e.g. for select and autocomplete). We skip overlays without keydown event subscriptions,\n // because we don't want overlays that don't handle keyboard events to block the ones below\n // them that do.\n if (overlays[i]._keydownEvents.observers.length > 0) {\n const keydownEvents = overlays[i]._keydownEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => keydownEvents.next(event));\n } else {\n keydownEvents.next(event);\n }\n break;\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Lazily start dispatcher once first overlay is added\n if (!this._isAttached) {\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._document.body.addEventListener('keydown', this._keydownListener));\n } else {\n this._document.body.addEventListener('keydown', this._keydownListener);\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n this._document.body.removeEventListener('keydown', this._keydownListener);\n this._isAttached = false;\n }\n }\n static {\n this.ɵfac = function OverlayKeyboardDispatcher_Factory(t) {\n return new (t || OverlayKeyboardDispatcher)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i0.NgZone, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OverlayKeyboardDispatcher,\n factory: OverlayKeyboardDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayKeyboardDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i0.NgZone,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\n\n/**\n * Service for dispatching mouse click events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {\n constructor(document, _platform, /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._cursorStyleIsSet = false;\n /** Store pointerdown event target to track origin of click. */\n this._pointerDownListener = event => {\n this._pointerDownEventTarget = _getEventTarget(event);\n };\n /** Click event listener that will be attached to the body propagate phase. */\n this._clickListener = event => {\n const target = _getEventTarget(event);\n // In case of a click event, we want to check the origin of the click\n // (e.g. in case where a user starts a click inside the overlay and\n // releases the click outside of it).\n // This is done by using the event target of the preceding pointerdown event.\n // Every click event caused by a pointer device has a preceding pointerdown\n // event, unless the click was programmatically triggered (e.g. in a unit test).\n const origin = event.type === 'click' && this._pointerDownEventTarget ? this._pointerDownEventTarget : target;\n // Reset the stored pointerdown event target, to avoid having it interfere\n // in subsequent events.\n this._pointerDownEventTarget = null;\n // We copy the array because the original may be modified asynchronously if the\n // outsidePointerEvents listener decides to detach overlays resulting in index errors inside\n // the for loop.\n const overlays = this._attachedOverlays.slice();\n // Dispatch the mouse event to the top overlay which has subscribers to its mouse events.\n // We want to target all overlays for which the click could be considered as outside click.\n // As soon as we reach an overlay for which the click is not outside click we break off\n // the loop.\n for (let i = overlays.length - 1; i > -1; i--) {\n const overlayRef = overlays[i];\n if (overlayRef._outsidePointerEvents.observers.length < 1 || !overlayRef.hasAttached()) {\n continue;\n }\n // If it's a click inside the overlay, just break - we should do nothing\n // If it's an outside click (both origin and target of the click) dispatch the mouse event,\n // and proceed with the next overlay\n if (overlayRef.overlayElement.contains(target) || overlayRef.overlayElement.contains(origin)) {\n break;\n }\n const outsidePointerEvents = overlayRef._outsidePointerEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => outsidePointerEvents.next(event));\n } else {\n outsidePointerEvents.next(event);\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Safari on iOS does not generate click events for non-interactive\n // elements. However, we want to receive a click for any element outside\n // the overlay. We can force a \"clickable\" state by setting\n // `cursor: pointer` on the document body. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event#Safari_Mobile\n // https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n if (!this._isAttached) {\n const body = this._document.body;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._addEventListeners(body));\n } else {\n this._addEventListeners(body);\n }\n // click event is not fired on iOS. To make element \"clickable\" we are\n // setting the cursor to pointer\n if (this._platform.IOS && !this._cursorStyleIsSet) {\n this._cursorOriginalValue = body.style.cursor;\n body.style.cursor = 'pointer';\n this._cursorStyleIsSet = true;\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n const body = this._document.body;\n body.removeEventListener('pointerdown', this._pointerDownListener, true);\n body.removeEventListener('click', this._clickListener, true);\n body.removeEventListener('auxclick', this._clickListener, true);\n body.removeEventListener('contextmenu', this._clickListener, true);\n if (this._platform.IOS && this._cursorStyleIsSet) {\n body.style.cursor = this._cursorOriginalValue;\n this._cursorStyleIsSet = false;\n }\n this._isAttached = false;\n }\n }\n _addEventListeners(body) {\n body.addEventListener('pointerdown', this._pointerDownListener, true);\n body.addEventListener('click', this._clickListener, true);\n body.addEventListener('auxclick', this._clickListener, true);\n body.addEventListener('contextmenu', this._clickListener, true);\n }\n static {\n this.ɵfac = function OverlayOutsideClickDispatcher_Factory(t) {\n return new (t || OverlayOutsideClickDispatcher)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1$1.Platform), i0.ɵɵinject(i0.NgZone, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OverlayOutsideClickDispatcher,\n factory: OverlayOutsideClickDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayOutsideClickDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1$1.Platform\n }, {\n type: i0.NgZone,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\n\n/** Container inside which all overlays will render. */\nclass OverlayContainer {\n constructor(document, _platform) {\n this._platform = _platform;\n this._document = document;\n }\n ngOnDestroy() {\n this._containerElement?.remove();\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n _createContainer() {\n const containerClass = 'cdk-overlay-container';\n // TODO(crisbeto): remove the testing check once we have an overlay testing\n // module or Angular starts tearing down the testing `NgModule`. See:\n // https://github.com/angular/angular/issues/18831\n if (this._platform.isBrowser || _isTestEnvironment()) {\n const oppositePlatformContainers = this._document.querySelectorAll(`.${containerClass}[platform=\"server\"], ` + `.${containerClass}[platform=\"test\"]`);\n // Remove any old containers from the opposite platform.\n // This can happen when transitioning from the server to the client.\n for (let i = 0; i < oppositePlatformContainers.length; i++) {\n oppositePlatformContainers[i].remove();\n }\n }\n const container = this._document.createElement('div');\n container.classList.add(containerClass);\n // A long time ago we kept adding new overlay containers whenever a new app was instantiated,\n // but at some point we added logic which clears the duplicate ones in order to avoid leaks.\n // The new logic was a little too aggressive since it was breaking some legitimate use cases.\n // To mitigate the problem we made it so that only containers from a different platform are\n // cleared, but the side-effect was that people started depending on the overly-aggressive\n // logic to clean up their tests for them. Until we can introduce an overlay-specific testing\n // module which does the cleanup, we try to detect that we're in a test environment and we\n // always clear the container. See #17006.\n // TODO(crisbeto): remove the test environment check once we have an overlay testing module.\n if (_isTestEnvironment()) {\n container.setAttribute('platform', 'test');\n } else if (!this._platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n static {\n this.ɵfac = function OverlayContainer_Factory(t) {\n return new (t || OverlayContainer)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1$1.Platform));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OverlayContainer,\n factory: OverlayContainer.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayContainer, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1$1.Platform\n }], null);\n})();\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDispatcher, _document, _location, _outsideClickDispatcher, _animationsDisabled = false) {\n this._portalOutlet = _portalOutlet;\n this._host = _host;\n this._pane = _pane;\n this._config = _config;\n this._ngZone = _ngZone;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._document = _document;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsDisabled = _animationsDisabled;\n this._backdropElement = null;\n this._backdropClick = new Subject();\n this._attachments = new Subject();\n this._detachments = new Subject();\n this._locationChanges = Subscription.EMPTY;\n this._backdropClickHandler = event => this._backdropClick.next(event);\n this._backdropTransitionendHandler = event => {\n this._disposeBackdrop(event.target);\n };\n /** Stream of keydown events dispatched to this overlay. */\n this._keydownEvents = new Subject();\n /** Stream of mouse outside events dispatched to this overlay. */\n this._outsidePointerEvents = new Subject();\n if (_config.scrollStrategy) {\n this._scrollStrategy = _config.scrollStrategy;\n this._scrollStrategy.attach(this);\n }\n this._positionStrategy = _config.positionStrategy;\n }\n /** The overlay's HTML element */\n get overlayElement() {\n return this._pane;\n }\n /** The overlay's backdrop HTML element. */\n get backdropElement() {\n return this._backdropElement;\n }\n /**\n * Wrapper around the panel element. Can be used for advanced\n * positioning where a wrapper with specific styling is\n * required around the overlay pane.\n */\n get hostElement() {\n return this._host;\n }\n /**\n * Attaches content, given via a Portal, to the overlay.\n * If the overlay is configured to have a backdrop, it will be created.\n *\n * @param portal Portal instance to which to attach the overlay.\n * @returns The portal attachment result.\n */\n attach(portal) {\n // Insert the host into the DOM before attaching the portal, otherwise\n // the animations module will skip animations on repeat attachments.\n if (!this._host.parentElement && this._previousHostParent) {\n this._previousHostParent.appendChild(this._host);\n }\n const attachResult = this._portalOutlet.attach(portal);\n if (this._positionStrategy) {\n this._positionStrategy.attach(this);\n }\n this._updateStackingOrder();\n this._updateElementSize();\n this._updateElementDirection();\n if (this._scrollStrategy) {\n this._scrollStrategy.enable();\n }\n // Update the position once the zone is stable so that the overlay will be fully rendered\n // before attempting to position it, as the position may depend on the size of the rendered\n // content.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n // The overlay could've been detached before the zone has stabilized.\n if (this.hasAttached()) {\n this.updatePosition();\n }\n });\n // Enable pointer events for the overlay pane element.\n this._togglePointerEvents(true);\n if (this._config.hasBackdrop) {\n this._attachBackdrop();\n }\n if (this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, true);\n }\n // Only emit the `attachments` event once all other setup is done.\n this._attachments.next();\n // Track this overlay by the keyboard dispatcher\n this._keyboardDispatcher.add(this);\n if (this._config.disposeOnNavigation) {\n this._locationChanges = this._location.subscribe(() => this.dispose());\n }\n this._outsideClickDispatcher.add(this);\n // TODO(crisbeto): the null check is here, because the portal outlet returns `any`.\n // We should be guaranteed for the result to be `ComponentRef | EmbeddedViewRef`, but\n // `instanceof EmbeddedViewRef` doesn't appear to work at the moment.\n if (typeof attachResult?.onDestroy === 'function') {\n // In most cases we control the portal and we know when it is being detached so that\n // we can finish the disposal process. The exception is if the user passes in a custom\n // `ViewContainerRef` that isn't destroyed through the overlay API. Note that we use\n // `detach` here instead of `dispose`, because we don't know if the user intends to\n // reattach the overlay at a later point. It also has the advantage of waiting for animations.\n attachResult.onDestroy(() => {\n if (this.hasAttached()) {\n // We have to delay the `detach` call, because detaching immediately prevents\n // other destroy hooks from running. This is likely a framework bug similar to\n // https://github.com/angular/angular/issues/46119\n this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => this.detach()));\n }\n });\n }\n return attachResult;\n }\n /**\n * Detaches an overlay from a portal.\n * @returns The portal detachment result.\n */\n detach() {\n if (!this.hasAttached()) {\n return;\n }\n this.detachBackdrop();\n // When the overlay is detached, the pane element should disable pointer events.\n // This is necessary because otherwise the pane element will cover the page and disable\n // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n this._togglePointerEvents(false);\n if (this._positionStrategy && this._positionStrategy.detach) {\n this._positionStrategy.detach();\n }\n if (this._scrollStrategy) {\n this._scrollStrategy.disable();\n }\n const detachmentResult = this._portalOutlet.detach();\n // Only emit after everything is detached.\n this._detachments.next();\n // Remove this overlay from keyboard dispatcher tracking.\n this._keyboardDispatcher.remove(this);\n // Keeping the host element in the DOM can cause scroll jank, because it still gets\n // rendered, even though it's transparent and unclickable which is why we remove it.\n this._detachContentWhenStable();\n this._locationChanges.unsubscribe();\n this._outsideClickDispatcher.remove(this);\n return detachmentResult;\n }\n /** Cleans up the overlay from the DOM. */\n dispose() {\n const isAttached = this.hasAttached();\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._disposeScrollStrategy();\n this._disposeBackdrop(this._backdropElement);\n this._locationChanges.unsubscribe();\n this._keyboardDispatcher.remove(this);\n this._portalOutlet.dispose();\n this._attachments.complete();\n this._backdropClick.complete();\n this._keydownEvents.complete();\n this._outsidePointerEvents.complete();\n this._outsideClickDispatcher.remove(this);\n this._host?.remove();\n this._previousHostParent = this._pane = this._host = null;\n if (isAttached) {\n this._detachments.next();\n }\n this._detachments.complete();\n }\n /** Whether the overlay has attached content. */\n hasAttached() {\n return this._portalOutlet.hasAttached();\n }\n /** Gets an observable that emits when the backdrop has been clicked. */\n backdropClick() {\n return this._backdropClick;\n }\n /** Gets an observable that emits when the overlay has been attached. */\n attachments() {\n return this._attachments;\n }\n /** Gets an observable that emits when the overlay has been detached. */\n detachments() {\n return this._detachments;\n }\n /** Gets an observable of keydown events targeted to this overlay. */\n keydownEvents() {\n return this._keydownEvents;\n }\n /** Gets an observable of pointer events targeted outside this overlay. */\n outsidePointerEvents() {\n return this._outsidePointerEvents;\n }\n /** Gets the current overlay configuration, which is immutable. */\n getConfig() {\n return this._config;\n }\n /** Updates the position of the overlay based on the position strategy. */\n updatePosition() {\n if (this._positionStrategy) {\n this._positionStrategy.apply();\n }\n }\n /** Switches to a new position strategy and updates the overlay position. */\n updatePositionStrategy(strategy) {\n if (strategy === this._positionStrategy) {\n return;\n }\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._positionStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n this.updatePosition();\n }\n }\n /** Update the size properties of the overlay. */\n updateSize(sizeConfig) {\n this._config = {\n ...this._config,\n ...sizeConfig\n };\n this._updateElementSize();\n }\n /** Sets the LTR/RTL direction for the overlay. */\n setDirection(dir) {\n this._config = {\n ...this._config,\n direction: dir\n };\n this._updateElementDirection();\n }\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, true);\n }\n }\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, false);\n }\n }\n /**\n * Returns the layout direction of the overlay panel.\n */\n getDirection() {\n const direction = this._config.direction;\n if (!direction) {\n return 'ltr';\n }\n return typeof direction === 'string' ? direction : direction.value;\n }\n /** Switches to a new scroll strategy. */\n updateScrollStrategy(strategy) {\n if (strategy === this._scrollStrategy) {\n return;\n }\n this._disposeScrollStrategy();\n this._scrollStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n strategy.enable();\n }\n }\n /** Updates the text direction of the overlay panel. */\n _updateElementDirection() {\n this._host.setAttribute('dir', this.getDirection());\n }\n /** Updates the size of the overlay element based on the overlay config. */\n _updateElementSize() {\n if (!this._pane) {\n return;\n }\n const style = this._pane.style;\n style.width = coerceCssPixelValue(this._config.width);\n style.height = coerceCssPixelValue(this._config.height);\n style.minWidth = coerceCssPixelValue(this._config.minWidth);\n style.minHeight = coerceCssPixelValue(this._config.minHeight);\n style.maxWidth = coerceCssPixelValue(this._config.maxWidth);\n style.maxHeight = coerceCssPixelValue(this._config.maxHeight);\n }\n /** Toggles the pointer events for the overlay pane element. */\n _togglePointerEvents(enablePointer) {\n this._pane.style.pointerEvents = enablePointer ? '' : 'none';\n }\n /** Attaches a backdrop for this overlay. */\n _attachBackdrop() {\n const showingClass = 'cdk-overlay-backdrop-showing';\n this._backdropElement = this._document.createElement('div');\n this._backdropElement.classList.add('cdk-overlay-backdrop');\n if (this._animationsDisabled) {\n this._backdropElement.classList.add('cdk-overlay-backdrop-noop-animation');\n }\n if (this._config.backdropClass) {\n this._toggleClasses(this._backdropElement, this._config.backdropClass, true);\n }\n // Insert the backdrop before the pane in the DOM order,\n // in order to handle stacked overlays properly.\n this._host.parentElement.insertBefore(this._backdropElement, this._host);\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', this._backdropClickHandler);\n // Add class to fade-in the backdrop after one frame.\n if (!this._animationsDisabled && typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (this._backdropElement) {\n this._backdropElement.classList.add(showingClass);\n }\n });\n });\n } else {\n this._backdropElement.classList.add(showingClass);\n }\n }\n /**\n * Updates the stacking order of the element, moving it to the top if necessary.\n * This is required in cases where one overlay was detached, while another one,\n * that should be behind it, was destroyed. The next time both of them are opened,\n * the stacking will be wrong, because the detached element's pane will still be\n * in its original DOM position.\n */\n _updateStackingOrder() {\n if (this._host.nextSibling) {\n this._host.parentNode.appendChild(this._host);\n }\n }\n /** Detaches the backdrop (if any) associated with the overlay. */\n detachBackdrop() {\n const backdropToDetach = this._backdropElement;\n if (!backdropToDetach) {\n return;\n }\n if (this._animationsDisabled) {\n this._disposeBackdrop(backdropToDetach);\n return;\n }\n backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n this._ngZone.runOutsideAngular(() => {\n backdropToDetach.addEventListener('transitionend', this._backdropTransitionendHandler);\n });\n // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n // In this case we make it unclickable and we try to remove it after a delay.\n backdropToDetach.style.pointerEvents = 'none';\n // Run this outside the Angular zone because there's nothing that Angular cares about.\n // If it were to run inside the Angular zone, every test that used Overlay would have to be\n // either async or fakeAsync.\n this._backdropTimeout = this._ngZone.runOutsideAngular(() => setTimeout(() => {\n this._disposeBackdrop(backdropToDetach);\n }, 500));\n }\n /** Toggles a single CSS class or an array of classes on an element. */\n _toggleClasses(element, cssClasses, isAdd) {\n const classes = coerceArray(cssClasses || []).filter(c => !!c);\n if (classes.length) {\n isAdd ? element.classList.add(...classes) : element.classList.remove(...classes);\n }\n }\n /** Detaches the overlay content next time the zone stabilizes. */\n _detachContentWhenStable() {\n // Normally we wouldn't have to explicitly run this outside the `NgZone`, however\n // if the consumer is using `zone-patch-rxjs`, the `Subscription.unsubscribe` call will\n // be patched to run inside the zone, which will throw us into an infinite loop.\n this._ngZone.runOutsideAngular(() => {\n // We can't remove the host here immediately, because the overlay pane's content\n // might still be animating. This stream helps us avoid interrupting the animation\n // by waiting for the pane to become empty.\n const subscription = this._ngZone.onStable.pipe(takeUntil(merge(this._attachments, this._detachments))).subscribe(() => {\n // Needs a couple of checks for the pane and host, because\n // they may have been removed by the time the zone stabilizes.\n if (!this._pane || !this._host || this._pane.children.length === 0) {\n if (this._pane && this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, false);\n }\n if (this._host && this._host.parentElement) {\n this._previousHostParent = this._host.parentElement;\n this._host.remove();\n }\n subscription.unsubscribe();\n }\n });\n });\n }\n /** Disposes of a scroll strategy. */\n _disposeScrollStrategy() {\n const scrollStrategy = this._scrollStrategy;\n if (scrollStrategy) {\n scrollStrategy.disable();\n if (scrollStrategy.detach) {\n scrollStrategy.detach();\n }\n }\n }\n /** Removes a backdrop element from the DOM. */\n _disposeBackdrop(backdrop) {\n if (backdrop) {\n backdrop.removeEventListener('click', this._backdropClickHandler);\n backdrop.removeEventListener('transitionend', this._backdropTransitionendHandler);\n backdrop.remove();\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (this._backdropElement === backdrop) {\n this._backdropElement = null;\n }\n }\n if (this._backdropTimeout) {\n clearTimeout(this._backdropTimeout);\n this._backdropTimeout = undefined;\n }\n }\n}\n\n// TODO: refactor clipping detection into a separate thing (part of scrolling module)\n// TODO: doesn't handle both flexible width and height when it has to scroll along both axis.\n/** Class to be added to the overlay bounding box. */\nconst boundingBoxClass = 'cdk-overlay-connected-position-bounding-box';\n/** Regex used to split a string on its CSS units. */\nconst cssUnitPattern = /([A-Za-z%]+)$/;\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nclass FlexibleConnectedPositionStrategy {\n /** Ordered list of preferred positions, from most to least desirable. */\n get positions() {\n return this._preferredPositions;\n }\n constructor(connectedTo, _viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */\n this._lastBoundingBoxSize = {\n width: 0,\n height: 0\n };\n /** Whether the overlay was pushed in a previous positioning. */\n this._isPushed = false;\n /** Whether the overlay can be pushed on-screen on the initial open. */\n this._canPush = true;\n /** Whether the overlay can grow via flexible width/height after the initial open. */\n this._growAfterOpen = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this._hasFlexibleDimensions = true;\n /** Whether the overlay position is locked. */\n this._positionLocked = false;\n /** Amount of space that must be maintained between the overlay and the edge of the viewport. */\n this._viewportMargin = 0;\n /** The Scrollable containers used to check scrollable view properties on position change. */\n this._scrollables = [];\n /** Ordered list of preferred positions, from most to least desirable. */\n this._preferredPositions = [];\n /** Subject that emits whenever the position changes. */\n this._positionChanges = new Subject();\n /** Subscription to viewport size changes. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Default offset for the overlay along the x axis. */\n this._offsetX = 0;\n /** Default offset for the overlay along the y axis. */\n this._offsetY = 0;\n /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */\n this._appliedPanelClasses = [];\n /** Observable sequence of position changes. */\n this.positionChanges = this._positionChanges;\n this.setOrigin(connectedTo);\n }\n /** Attaches this position strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && overlayRef !== this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('This position strategy is already attached to an overlay');\n }\n this._validatePositions();\n overlayRef.hostElement.classList.add(boundingBoxClass);\n this._overlayRef = overlayRef;\n this._boundingBox = overlayRef.hostElement;\n this._pane = overlayRef.overlayElement;\n this._isDisposed = false;\n this._isInitialRender = true;\n this._lastPosition = null;\n this._resizeSubscription.unsubscribe();\n this._resizeSubscription = this._viewportRuler.change().subscribe(() => {\n // When the window is resized, we want to trigger the next reposition as if it\n // was an initial render, in order for the strategy to pick a new optimal position,\n // otherwise position locking will cause it to stay at the old one.\n this._isInitialRender = true;\n this.apply();\n });\n }\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin best fits on-screen.\n *\n * The selection of a position goes as follows:\n * - If any positions fit completely within the viewport as-is,\n * choose the first position that does so.\n * - If flexible dimensions are enabled and at least one satisfies the given minimum width/height,\n * choose the position with the greatest available size modified by the positions' weight.\n * - If pushing is enabled, take the position that went off-screen the least and push it\n * on-screen.\n * - If none of the previous criteria were met, use the position that goes off-screen the least.\n * @docs-private\n */\n apply() {\n // We shouldn't do anything if the strategy was disposed or we're on the server.\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n // If the position has been applied already (e.g. when the overlay was opened) and the\n // consumer opted into locking in the position, re-use the old position, in order to\n // prevent the overlay from jumping around.\n if (!this._isInitialRender && this._positionLocked && this._lastPosition) {\n this.reapplyLastPosition();\n return;\n }\n this._clearPanelClasses();\n this._resetOverlayElementStyles();\n this._resetBoundingBoxStyles();\n // We need the bounding rects for the origin, the overlay and the container to determine how to position\n // the overlay relative to the origin.\n // We use the viewport rect to determine whether a position would go off-screen.\n this._viewportRect = this._getNarrowedViewportRect();\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originRect = this._originRect;\n const overlayRect = this._overlayRect;\n const viewportRect = this._viewportRect;\n const containerRect = this._containerRect;\n // Positions where the overlay will fit with flexible dimensions.\n const flexibleFits = [];\n // Fallback if none of the preferred positions fit within the viewport.\n let fallback;\n // Go through each of the preferred positions looking for a good fit.\n // If a good fit is found, it will be applied immediately.\n for (let pos of this._preferredPositions) {\n // Get the exact (x, y) coordinate for the point-of-origin on the origin element.\n let originPoint = this._getOriginPoint(originRect, containerRect, pos);\n // From that point-of-origin, get the exact (x, y) coordinate for the top-left corner of the\n // overlay in this position. We use the top-left corner for calculations and later translate\n // this into an appropriate (top, left, bottom, right) style.\n let overlayPoint = this._getOverlayPoint(originPoint, overlayRect, pos);\n // Calculate how well the overlay would fit into the viewport with this point.\n let overlayFit = this._getOverlayFit(overlayPoint, overlayRect, viewportRect, pos);\n // If the overlay, without any further work, fits into the viewport, use this position.\n if (overlayFit.isCompletelyWithinViewport) {\n this._isPushed = false;\n this._applyPosition(pos, originPoint);\n return;\n }\n // If the overlay has flexible dimensions, we can use this position\n // so long as there's enough space for the minimum dimensions.\n if (this._canFitWithFlexibleDimensions(overlayFit, overlayPoint, viewportRect)) {\n // Save positions where the overlay will fit with flexible dimensions. We will use these\n // if none of the positions fit *without* flexible dimensions.\n flexibleFits.push({\n position: pos,\n origin: originPoint,\n overlayRect,\n boundingBoxRect: this._calculateBoundingBoxRect(originPoint, pos)\n });\n continue;\n }\n // If the current preferred position does not fit on the screen, remember the position\n // if it has more visible area on-screen than we've seen and move onto the next preferred\n // position.\n if (!fallback || fallback.overlayFit.visibleArea < overlayFit.visibleArea) {\n fallback = {\n overlayFit,\n overlayPoint,\n originPoint,\n position: pos,\n overlayRect\n };\n }\n }\n // If there are any positions where the overlay would fit with flexible dimensions, choose the\n // one that has the greatest area available modified by the position's weight\n if (flexibleFits.length) {\n let bestFit = null;\n let bestScore = -1;\n for (const fit of flexibleFits) {\n const score = fit.boundingBoxRect.width * fit.boundingBoxRect.height * (fit.position.weight || 1);\n if (score > bestScore) {\n bestScore = score;\n bestFit = fit;\n }\n }\n this._isPushed = false;\n this._applyPosition(bestFit.position, bestFit.origin);\n return;\n }\n // When none of the preferred positions fit within the viewport, take the position\n // that went off-screen the least and attempt to push it on-screen.\n if (this._canPush) {\n // TODO(jelbourn): after pushing, the opening \"direction\" of the overlay might not make sense.\n this._isPushed = true;\n this._applyPosition(fallback.position, fallback.originPoint);\n return;\n }\n // All options for getting the overlay within the viewport have been exhausted, so go with the\n // position that went off-screen the least.\n this._applyPosition(fallback.position, fallback.originPoint);\n }\n detach() {\n this._clearPanelClasses();\n this._lastPosition = null;\n this._previousPushAmount = null;\n this._resizeSubscription.unsubscribe();\n }\n /** Cleanup after the element gets destroyed. */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n // We can't use `_resetBoundingBoxStyles` here, because it resets\n // some properties to zero, rather than removing them.\n if (this._boundingBox) {\n extendStyles(this._boundingBox.style, {\n top: '',\n left: '',\n right: '',\n bottom: '',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: ''\n });\n }\n if (this._pane) {\n this._resetOverlayElementStyles();\n }\n if (this._overlayRef) {\n this._overlayRef.hostElement.classList.remove(boundingBoxClass);\n }\n this.detach();\n this._positionChanges.complete();\n this._overlayRef = this._boundingBox = null;\n this._isDisposed = true;\n }\n /**\n * This re-aligns the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n */\n reapplyLastPosition() {\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n const lastPosition = this._lastPosition;\n if (lastPosition) {\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._viewportRect = this._getNarrowedViewportRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originPoint = this._getOriginPoint(this._originRect, this._containerRect, lastPosition);\n this._applyPosition(lastPosition, originPoint);\n } else {\n this.apply();\n }\n }\n /**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n */\n withScrollableContainers(scrollables) {\n this._scrollables = scrollables;\n return this;\n }\n /**\n * Adds new preferred positions.\n * @param positions List of positions options for this overlay.\n */\n withPositions(positions) {\n this._preferredPositions = positions;\n // If the last calculated position object isn't part of the positions anymore, clear\n // it in order to avoid it being picked up if the consumer tries to re-apply.\n if (positions.indexOf(this._lastPosition) === -1) {\n this._lastPosition = null;\n }\n this._validatePositions();\n return this;\n }\n /**\n * Sets a minimum distance the overlay may be positioned to the edge of the viewport.\n * @param margin Required margin between the overlay and the viewport edge in pixels.\n */\n withViewportMargin(margin) {\n this._viewportMargin = margin;\n return this;\n }\n /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */\n withFlexibleDimensions(flexibleDimensions = true) {\n this._hasFlexibleDimensions = flexibleDimensions;\n return this;\n }\n /** Sets whether the overlay can grow after the initial open via flexible width/height. */\n withGrowAfterOpen(growAfterOpen = true) {\n this._growAfterOpen = growAfterOpen;\n return this;\n }\n /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */\n withPush(canPush = true) {\n this._canPush = canPush;\n return this;\n }\n /**\n * Sets whether the overlay's position should be locked in after it is positioned\n * initially. When an overlay is locked in, it won't attempt to reposition itself\n * when the position is re-applied (e.g. when the user scrolls away).\n * @param isLocked Whether the overlay should locked in.\n */\n withLockedPosition(isLocked = true) {\n this._positionLocked = isLocked;\n return this;\n }\n /**\n * Sets the origin, relative to which to position the overlay.\n * Using an element origin is useful for building components that need to be positioned\n * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be\n * used for cases like contextual menus which open relative to the user's pointer.\n * @param origin Reference to the new origin.\n */\n setOrigin(origin) {\n this._origin = origin;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the x-axis.\n * @param offset New offset in the X axis.\n */\n withDefaultOffsetX(offset) {\n this._offsetX = offset;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the y-axis.\n * @param offset New offset in the Y axis.\n */\n withDefaultOffsetY(offset) {\n this._offsetY = offset;\n return this;\n }\n /**\n * Configures that the position strategy should set a `transform-origin` on some elements\n * inside the overlay, depending on the current position that is being applied. This is\n * useful for the cases where the origin of an animation can change depending on the\n * alignment of the overlay.\n * @param selector CSS selector that will be used to find the target\n * elements onto which to set the transform origin.\n */\n withTransformOriginOn(selector) {\n this._transformOriginSelector = selector;\n return this;\n }\n /**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n */\n _getOriginPoint(originRect, containerRect, pos) {\n let x;\n if (pos.originX == 'center') {\n // Note: when centering we should always use the `left`\n // offset, otherwise the position will be wrong in RTL.\n x = originRect.left + originRect.width / 2;\n } else {\n const startX = this._isRtl() ? originRect.right : originRect.left;\n const endX = this._isRtl() ? originRect.left : originRect.right;\n x = pos.originX == 'start' ? startX : endX;\n }\n // When zooming in Safari the container rectangle contains negative values for the position\n // and we need to re-add them to the calculated coordinates.\n if (containerRect.left < 0) {\n x -= containerRect.left;\n }\n let y;\n if (pos.originY == 'center') {\n y = originRect.top + originRect.height / 2;\n } else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n // Normally the containerRect's top value would be zero, however when the overlay is attached to an input\n // (e.g. in an autocomplete), mobile browsers will shift everything in order to put the input in the middle\n // of the screen and to make space for the virtual keyboard. We need to account for this offset,\n // otherwise our positioning will be thrown off.\n // Additionally, when zooming in Safari this fixes the vertical position.\n if (containerRect.top < 0) {\n y -= containerRect.top;\n }\n return {\n x,\n y\n };\n }\n /**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected.\n */\n _getOverlayPoint(originPoint, overlayRect, pos) {\n // Calculate the (overlayStartX, overlayStartY), the start of the\n // potential overlay position relative to the origin point.\n let overlayStartX;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n } else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl() ? -overlayRect.width : 0;\n } else {\n overlayStartX = this._isRtl() ? 0 : -overlayRect.width;\n }\n let overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n } else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n // The (x, y) coordinates of the overlay.\n return {\n x: originPoint.x + overlayStartX,\n y: originPoint.y + overlayStartY\n };\n }\n /** Gets how well an overlay at the given point will fit within the viewport. */\n _getOverlayFit(point, rawOverlayRect, viewport, position) {\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n let {\n x,\n y\n } = point;\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n // Account for the offsets since they could push the overlay out of the viewport.\n if (offsetX) {\n x += offsetX;\n }\n if (offsetY) {\n y += offsetY;\n }\n // How much the overlay would overflow at this position, on each side.\n let leftOverflow = 0 - x;\n let rightOverflow = x + overlay.width - viewport.width;\n let topOverflow = 0 - y;\n let bottomOverflow = y + overlay.height - viewport.height;\n // Visible parts of the element on each axis.\n let visibleWidth = this._subtractOverflows(overlay.width, leftOverflow, rightOverflow);\n let visibleHeight = this._subtractOverflows(overlay.height, topOverflow, bottomOverflow);\n let visibleArea = visibleWidth * visibleHeight;\n return {\n visibleArea,\n isCompletelyWithinViewport: overlay.width * overlay.height === visibleArea,\n fitsInViewportVertically: visibleHeight === overlay.height,\n fitsInViewportHorizontally: visibleWidth == overlay.width\n };\n }\n /**\n * Whether the overlay can fit within the viewport when it may resize either its width or height.\n * @param fit How well the overlay fits in the viewport at some position.\n * @param point The (x, y) coordinates of the overlay at some position.\n * @param viewport The geometry of the viewport.\n */\n _canFitWithFlexibleDimensions(fit, point, viewport) {\n if (this._hasFlexibleDimensions) {\n const availableHeight = viewport.bottom - point.y;\n const availableWidth = viewport.right - point.x;\n const minHeight = getPixelValue(this._overlayRef.getConfig().minHeight);\n const minWidth = getPixelValue(this._overlayRef.getConfig().minWidth);\n const verticalFit = fit.fitsInViewportVertically || minHeight != null && minHeight <= availableHeight;\n const horizontalFit = fit.fitsInViewportHorizontally || minWidth != null && minWidth <= availableWidth;\n return verticalFit && horizontalFit;\n }\n return false;\n }\n /**\n * Gets the point at which the overlay can be \"pushed\" on-screen. If the overlay is larger than\n * the viewport, the top-left corner will be pushed on-screen (with overflow occurring on the\n * right and bottom).\n *\n * @param start Starting point from which the overlay is pushed.\n * @param rawOverlayRect Dimensions of the overlay.\n * @param scrollPosition Current viewport scroll position.\n * @returns The point at which to position the overlay after pushing. This is effectively a new\n * originPoint.\n */\n _pushOverlayOnScreen(start, rawOverlayRect, scrollPosition) {\n // If the position is locked and we've pushed the overlay already, reuse the previous push\n // amount, rather than pushing it again. If we were to continue pushing, the element would\n // remain in the viewport, which goes against the expectations when position locking is enabled.\n if (this._previousPushAmount && this._positionLocked) {\n return {\n x: start.x + this._previousPushAmount.x,\n y: start.y + this._previousPushAmount.y\n };\n }\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n const viewport = this._viewportRect;\n // Determine how much the overlay goes outside the viewport on each\n // side, which we'll use to decide which direction to push it.\n const overflowRight = Math.max(start.x + overlay.width - viewport.width, 0);\n const overflowBottom = Math.max(start.y + overlay.height - viewport.height, 0);\n const overflowTop = Math.max(viewport.top - scrollPosition.top - start.y, 0);\n const overflowLeft = Math.max(viewport.left - scrollPosition.left - start.x, 0);\n // Amount by which to push the overlay in each axis such that it remains on-screen.\n let pushX = 0;\n let pushY = 0;\n // If the overlay fits completely within the bounds of the viewport, push it from whichever\n // direction is goes off-screen. Otherwise, push the top-left corner such that its in the\n // viewport and allow for the trailing end of the overlay to go out of bounds.\n if (overlay.width <= viewport.width) {\n pushX = overflowLeft || -overflowRight;\n } else {\n pushX = start.x < this._viewportMargin ? viewport.left - scrollPosition.left - start.x : 0;\n }\n if (overlay.height <= viewport.height) {\n pushY = overflowTop || -overflowBottom;\n } else {\n pushY = start.y < this._viewportMargin ? viewport.top - scrollPosition.top - start.y : 0;\n }\n this._previousPushAmount = {\n x: pushX,\n y: pushY\n };\n return {\n x: start.x + pushX,\n y: start.y + pushY\n };\n }\n /**\n * Applies a computed position to the overlay and emits a position change.\n * @param position The position preference\n * @param originPoint The point on the origin element where the overlay is connected.\n */\n _applyPosition(position, originPoint) {\n this._setTransformOrigin(position);\n this._setOverlayElementStyles(originPoint, position);\n this._setBoundingBoxStyles(originPoint, position);\n if (position.panelClass) {\n this._addPanelClasses(position.panelClass);\n }\n // Save the last connected position in case the position needs to be re-calculated.\n this._lastPosition = position;\n // Notify that the position has been changed along with its change properties.\n // We only emit if we've got any subscriptions, because the scroll visibility\n // calculations can be somewhat expensive.\n if (this._positionChanges.observers.length) {\n const scrollableViewProperties = this._getScrollVisibility();\n const changeEvent = new ConnectedOverlayPositionChange(position, scrollableViewProperties);\n this._positionChanges.next(changeEvent);\n }\n this._isInitialRender = false;\n }\n /** Sets the transform origin based on the configured selector and the passed-in position. */\n _setTransformOrigin(position) {\n if (!this._transformOriginSelector) {\n return;\n }\n const elements = this._boundingBox.querySelectorAll(this._transformOriginSelector);\n let xOrigin;\n let yOrigin = position.overlayY;\n if (position.overlayX === 'center') {\n xOrigin = 'center';\n } else if (this._isRtl()) {\n xOrigin = position.overlayX === 'start' ? 'right' : 'left';\n } else {\n xOrigin = position.overlayX === 'start' ? 'left' : 'right';\n }\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.transformOrigin = `${xOrigin} ${yOrigin}`;\n }\n }\n /**\n * Gets the position and size of the overlay's sizing container.\n *\n * This method does no measuring and applies no styles so that we can cheaply compute the\n * bounds for all positions and choose the best fit based on these results.\n */\n _calculateBoundingBoxRect(origin, position) {\n const viewport = this._viewportRect;\n const isRtl = this._isRtl();\n let height, top, bottom;\n if (position.overlayY === 'top') {\n // Overlay is opening \"downward\" and thus is bound by the bottom viewport edge.\n top = origin.y;\n height = viewport.height - top + this._viewportMargin;\n } else if (position.overlayY === 'bottom') {\n // Overlay is opening \"upward\" and thus is bound by the top viewport edge. We need to add\n // the viewport margin back in, because the viewport rect is narrowed down to remove the\n // margin, whereas the `origin` position is calculated based on its `ClientRect`.\n bottom = viewport.height - origin.y + this._viewportMargin * 2;\n height = viewport.height - bottom + this._viewportMargin;\n } else {\n // If neither top nor bottom, it means that the overlay is vertically centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.bottom - origin.y` and\n // `origin.y - viewport.top`.\n const smallestDistanceToViewportEdge = Math.min(viewport.bottom - origin.y + viewport.top, origin.y);\n const previousHeight = this._lastBoundingBoxSize.height;\n height = smallestDistanceToViewportEdge * 2;\n top = origin.y - smallestDistanceToViewportEdge;\n if (height > previousHeight && !this._isInitialRender && !this._growAfterOpen) {\n top = origin.y - previousHeight / 2;\n }\n }\n // The overlay is opening 'right-ward' (the content flows to the right).\n const isBoundedByRightViewportEdge = position.overlayX === 'start' && !isRtl || position.overlayX === 'end' && isRtl;\n // The overlay is opening 'left-ward' (the content flows to the left).\n const isBoundedByLeftViewportEdge = position.overlayX === 'end' && !isRtl || position.overlayX === 'start' && isRtl;\n let width, left, right;\n if (isBoundedByLeftViewportEdge) {\n right = viewport.width - origin.x + this._viewportMargin;\n width = origin.x - this._viewportMargin;\n } else if (isBoundedByRightViewportEdge) {\n left = origin.x;\n width = viewport.right - origin.x;\n } else {\n // If neither start nor end, it means that the overlay is horizontally centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.right - origin.x` and\n // `origin.x - viewport.left`.\n const smallestDistanceToViewportEdge = Math.min(viewport.right - origin.x + viewport.left, origin.x);\n const previousWidth = this._lastBoundingBoxSize.width;\n width = smallestDistanceToViewportEdge * 2;\n left = origin.x - smallestDistanceToViewportEdge;\n if (width > previousWidth && !this._isInitialRender && !this._growAfterOpen) {\n left = origin.x - previousWidth / 2;\n }\n }\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width,\n height\n };\n }\n /**\n * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the\n * origin's connection point and stretches to the bounds of the viewport.\n *\n * @param origin The point on the origin element where the overlay is connected.\n * @param position The position preference\n */\n _setBoundingBoxStyles(origin, position) {\n const boundingBoxRect = this._calculateBoundingBoxRect(origin, position);\n // It's weird if the overlay *grows* while scrolling, so we take the last size into account\n // when applying a new size.\n if (!this._isInitialRender && !this._growAfterOpen) {\n boundingBoxRect.height = Math.min(boundingBoxRect.height, this._lastBoundingBoxSize.height);\n boundingBoxRect.width = Math.min(boundingBoxRect.width, this._lastBoundingBoxSize.width);\n }\n const styles = {};\n if (this._hasExactPosition()) {\n styles.top = styles.left = '0';\n styles.bottom = styles.right = styles.maxHeight = styles.maxWidth = '';\n styles.width = styles.height = '100%';\n } else {\n const maxHeight = this._overlayRef.getConfig().maxHeight;\n const maxWidth = this._overlayRef.getConfig().maxWidth;\n styles.height = coerceCssPixelValue(boundingBoxRect.height);\n styles.top = coerceCssPixelValue(boundingBoxRect.top);\n styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom);\n styles.width = coerceCssPixelValue(boundingBoxRect.width);\n styles.left = coerceCssPixelValue(boundingBoxRect.left);\n styles.right = coerceCssPixelValue(boundingBoxRect.right);\n // Push the pane content towards the proper direction.\n if (position.overlayX === 'center') {\n styles.alignItems = 'center';\n } else {\n styles.alignItems = position.overlayX === 'end' ? 'flex-end' : 'flex-start';\n }\n if (position.overlayY === 'center') {\n styles.justifyContent = 'center';\n } else {\n styles.justifyContent = position.overlayY === 'bottom' ? 'flex-end' : 'flex-start';\n }\n if (maxHeight) {\n styles.maxHeight = coerceCssPixelValue(maxHeight);\n }\n if (maxWidth) {\n styles.maxWidth = coerceCssPixelValue(maxWidth);\n }\n }\n this._lastBoundingBoxSize = boundingBoxRect;\n extendStyles(this._boundingBox.style, styles);\n }\n /** Resets the styles for the bounding box so that a new positioning can be computed. */\n _resetBoundingBoxStyles() {\n extendStyles(this._boundingBox.style, {\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: ''\n });\n }\n /** Resets the styles for the overlay pane so that a new positioning can be computed. */\n _resetOverlayElementStyles() {\n extendStyles(this._pane.style, {\n top: '',\n left: '',\n bottom: '',\n right: '',\n position: '',\n transform: ''\n });\n }\n /** Sets positioning styles to the overlay element. */\n _setOverlayElementStyles(originPoint, position) {\n const styles = {};\n const hasExactPosition = this._hasExactPosition();\n const hasFlexibleDimensions = this._hasFlexibleDimensions;\n const config = this._overlayRef.getConfig();\n if (hasExactPosition) {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n extendStyles(styles, this._getExactOverlayY(position, originPoint, scrollPosition));\n extendStyles(styles, this._getExactOverlayX(position, originPoint, scrollPosition));\n } else {\n styles.position = 'static';\n }\n // Use a transform to apply the offsets. We do this because the `center` positions rely on\n // being in the normal flex flow and setting a `top` / `left` at all will completely throw\n // off the position. We also can't use margins, because they won't have an effect in some\n // cases where the element doesn't have anything to \"push off of\". Finally, this works\n // better both with flexible and non-flexible positioning.\n let transformString = '';\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n if (offsetX) {\n transformString += `translateX(${offsetX}px) `;\n }\n if (offsetY) {\n transformString += `translateY(${offsetY}px)`;\n }\n styles.transform = transformString.trim();\n // If a maxWidth or maxHeight is specified on the overlay, we remove them. We do this because\n // we need these values to both be set to \"100%\" for the automatic flexible sizing to work.\n // The maxHeight and maxWidth are set on the boundingBox in order to enforce the constraint.\n // Note that this doesn't apply when we have an exact position, in which case we do want to\n // apply them because they'll be cleared from the bounding box.\n if (config.maxHeight) {\n if (hasExactPosition) {\n styles.maxHeight = coerceCssPixelValue(config.maxHeight);\n } else if (hasFlexibleDimensions) {\n styles.maxHeight = '';\n }\n }\n if (config.maxWidth) {\n if (hasExactPosition) {\n styles.maxWidth = coerceCssPixelValue(config.maxWidth);\n } else if (hasFlexibleDimensions) {\n styles.maxWidth = '';\n }\n }\n extendStyles(this._pane.style, styles);\n }\n /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayY(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the\n // preferred position has changed since the last `apply`.\n let styles = {\n top: '',\n bottom: ''\n };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `top` or `bottom` based on whether the overlay wants to appear\n // above or below the origin and the direction in which the element will expand.\n if (position.overlayY === 'bottom') {\n // When using `bottom`, we adjust the y position such that it is the distance\n // from the bottom of the viewport rather than the top.\n const documentHeight = this._document.documentElement.clientHeight;\n styles.bottom = `${documentHeight - (overlayPoint.y + this._overlayRect.height)}px`;\n } else {\n styles.top = coerceCssPixelValue(overlayPoint.y);\n }\n return styles;\n }\n /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayX(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the preferred position has\n // changed since the last `apply`.\n let styles = {\n left: '',\n right: ''\n };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n // or \"after\" the origin, which determines the direction in which the element will expand.\n // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n // page is in RTL or LTR.\n let horizontalStyleProperty;\n if (this._isRtl()) {\n horizontalStyleProperty = position.overlayX === 'end' ? 'left' : 'right';\n } else {\n horizontalStyleProperty = position.overlayX === 'end' ? 'right' : 'left';\n }\n // When we're setting `right`, we adjust the x position such that it is the distance\n // from the right edge of the viewport rather than the left edge.\n if (horizontalStyleProperty === 'right') {\n const documentWidth = this._document.documentElement.clientWidth;\n styles.right = `${documentWidth - (overlayPoint.x + this._overlayRect.width)}px`;\n } else {\n styles.left = coerceCssPixelValue(overlayPoint.x);\n }\n return styles;\n }\n /**\n * Gets the view properties of the trigger and overlay, including whether they are clipped\n * or completely outside the view of any of the strategy's scrollables.\n */\n _getScrollVisibility() {\n // Note: needs fresh rects since the position could've changed.\n const originBounds = this._getOriginRect();\n const overlayBounds = this._pane.getBoundingClientRect();\n // TODO(jelbourn): instead of needing all of the client rects for these scrolling containers\n // every time, we should be able to use the scrollTop of the containers if the size of those\n // containers hasn't changed.\n const scrollContainerBounds = this._scrollables.map(scrollable => {\n return scrollable.getElementRef().nativeElement.getBoundingClientRect();\n });\n return {\n isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds)\n };\n }\n /** Subtracts the amount that an element is overflowing on an axis from its length. */\n _subtractOverflows(length, ...overflows) {\n return overflows.reduce((currentValue, currentOverflow) => {\n return currentValue - Math.max(currentOverflow, 0);\n }, length);\n }\n /** Narrows the given viewport rect by the current _viewportMargin. */\n _getNarrowedViewportRect() {\n // We recalculate the viewport rect here ourselves, rather than using the ViewportRuler,\n // because we want to use the `clientWidth` and `clientHeight` as the base. The difference\n // being that the client properties don't include the scrollbar, as opposed to `innerWidth`\n // and `innerHeight` that do. This is necessary, because the overlay container uses\n // 100% `width` and `height` which don't include the scrollbar either.\n const width = this._document.documentElement.clientWidth;\n const height = this._document.documentElement.clientHeight;\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n return {\n top: scrollPosition.top + this._viewportMargin,\n left: scrollPosition.left + this._viewportMargin,\n right: scrollPosition.left + width - this._viewportMargin,\n bottom: scrollPosition.top + height - this._viewportMargin,\n width: width - 2 * this._viewportMargin,\n height: height - 2 * this._viewportMargin\n };\n }\n /** Whether the we're dealing with an RTL context */\n _isRtl() {\n return this._overlayRef.getDirection() === 'rtl';\n }\n /** Determines whether the overlay uses exact or flexible positioning. */\n _hasExactPosition() {\n return !this._hasFlexibleDimensions || this._isPushed;\n }\n /** Retrieves the offset of a position along the x or y axis. */\n _getOffset(position, axis) {\n if (axis === 'x') {\n // We don't do something like `position['offset' + axis]` in\n // order to avoid breaking minifiers that rename properties.\n return position.offsetX == null ? this._offsetX : position.offsetX;\n }\n return position.offsetY == null ? this._offsetY : position.offsetY;\n }\n /** Validates that the current position match the expected values. */\n _validatePositions() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._preferredPositions.length) {\n throw Error('FlexibleConnectedPositionStrategy: At least one position is required.');\n }\n // TODO(crisbeto): remove these once Angular's template type\n // checking is advanced enough to catch these cases.\n this._preferredPositions.forEach(pair => {\n validateHorizontalPosition('originX', pair.originX);\n validateVerticalPosition('originY', pair.originY);\n validateHorizontalPosition('overlayX', pair.overlayX);\n validateVerticalPosition('overlayY', pair.overlayY);\n });\n }\n }\n /** Adds a single CSS class or an array of classes on the overlay panel. */\n _addPanelClasses(cssClasses) {\n if (this._pane) {\n coerceArray(cssClasses).forEach(cssClass => {\n if (cssClass !== '' && this._appliedPanelClasses.indexOf(cssClass) === -1) {\n this._appliedPanelClasses.push(cssClass);\n this._pane.classList.add(cssClass);\n }\n });\n }\n }\n /** Clears the classes that the position strategy has applied from the overlay panel. */\n _clearPanelClasses() {\n if (this._pane) {\n this._appliedPanelClasses.forEach(cssClass => {\n this._pane.classList.remove(cssClass);\n });\n this._appliedPanelClasses = [];\n }\n }\n /** Returns the ClientRect of the current origin. */\n _getOriginRect() {\n const origin = this._origin;\n if (origin instanceof ElementRef) {\n return origin.nativeElement.getBoundingClientRect();\n }\n // Check for Element so SVG elements are also supported.\n if (origin instanceof Element) {\n return origin.getBoundingClientRect();\n }\n const width = origin.width || 0;\n const height = origin.height || 0;\n // If the origin is a point, return a client rect as if it was a 0x0 element at the point.\n return {\n top: origin.y,\n bottom: origin.y + height,\n left: origin.x,\n right: origin.x + width,\n height,\n width\n };\n }\n}\n/** Shallow-extends a stylesheet object with another stylesheet object. */\nfunction extendStyles(destination, source) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = source[key];\n }\n }\n return destination;\n}\n/**\n * Extracts the pixel value as a number from a value, if it's a number\n * or a CSS pixel string (e.g. `1337px`). Otherwise returns null.\n */\nfunction getPixelValue(input) {\n if (typeof input !== 'number' && input != null) {\n const [value, units] = input.split(cssUnitPattern);\n return !units || units === 'px' ? parseFloat(value) : null;\n }\n return input || null;\n}\n/**\n * Gets a version of an element's bounding `ClientRect` where all the values are rounded down to\n * the nearest pixel. This allows us to account for the cases where there may be sub-pixel\n * deviations in the `ClientRect` returned by the browser (e.g. when zoomed in with a percentage\n * size, see #21350).\n */\nfunction getRoundedBoundingClientRect(clientRect) {\n return {\n top: Math.floor(clientRect.top),\n right: Math.floor(clientRect.right),\n bottom: Math.floor(clientRect.bottom),\n left: Math.floor(clientRect.left),\n width: Math.floor(clientRect.width),\n height: Math.floor(clientRect.height)\n };\n}\nconst STANDARD_DROPDOWN_BELOW_POSITIONS = [{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n}, {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n}, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n}, {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n}];\nconst STANDARD_DROPDOWN_ADJACENT_POSITIONS = [{\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n}, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n}, {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n}, {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n}];\n\n/** Class to be added to the overlay pane wrapper. */\nconst wrapperClass = 'cdk-global-overlay-wrapper';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nclass GlobalPositionStrategy {\n constructor() {\n this._cssPosition = 'static';\n this._topOffset = '';\n this._bottomOffset = '';\n this._alignItems = '';\n this._xPosition = '';\n this._xOffset = '';\n this._width = '';\n this._height = '';\n this._isDisposed = false;\n }\n attach(overlayRef) {\n const config = overlayRef.getConfig();\n this._overlayRef = overlayRef;\n if (this._width && !config.width) {\n overlayRef.updateSize({\n width: this._width\n });\n }\n if (this._height && !config.height) {\n overlayRef.updateSize({\n height: this._height\n });\n }\n overlayRef.hostElement.classList.add(wrapperClass);\n this._isDisposed = false;\n }\n /**\n * Sets the top position of the overlay. Clears any previously set vertical position.\n * @param value New top offset.\n */\n top(value = '') {\n this._bottomOffset = '';\n this._topOffset = value;\n this._alignItems = 'flex-start';\n return this;\n }\n /**\n * Sets the left position of the overlay. Clears any previously set horizontal position.\n * @param value New left offset.\n */\n left(value = '') {\n this._xOffset = value;\n this._xPosition = 'left';\n return this;\n }\n /**\n * Sets the bottom position of the overlay. Clears any previously set vertical position.\n * @param value New bottom offset.\n */\n bottom(value = '') {\n this._topOffset = '';\n this._bottomOffset = value;\n this._alignItems = 'flex-end';\n return this;\n }\n /**\n * Sets the right position of the overlay. Clears any previously set horizontal position.\n * @param value New right offset.\n */\n right(value = '') {\n this._xOffset = value;\n this._xPosition = 'right';\n return this;\n }\n /**\n * Sets the overlay to the start of the viewport, depending on the overlay direction.\n * This will be to the left in LTR layouts and to the right in RTL.\n * @param offset Offset from the edge of the screen.\n */\n start(value = '') {\n this._xOffset = value;\n this._xPosition = 'start';\n return this;\n }\n /**\n * Sets the overlay to the end of the viewport, depending on the overlay direction.\n * This will be to the right in LTR layouts and to the left in RTL.\n * @param offset Offset from the edge of the screen.\n */\n end(value = '') {\n this._xOffset = value;\n this._xPosition = 'end';\n return this;\n }\n /**\n * Sets the overlay width and clears any previously set width.\n * @param value New width for the overlay\n * @deprecated Pass the `width` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n width(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({\n width: value\n });\n } else {\n this._width = value;\n }\n return this;\n }\n /**\n * Sets the overlay height and clears any previously set height.\n * @param value New height for the overlay\n * @deprecated Pass the `height` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n height(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({\n height: value\n });\n } else {\n this._height = value;\n }\n return this;\n }\n /**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n *\n * @param offset Overlay offset from the horizontal center.\n */\n centerHorizontally(offset = '') {\n this.left(offset);\n this._xPosition = 'center';\n return this;\n }\n /**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n *\n * @param offset Overlay offset from the vertical center.\n */\n centerVertically(offset = '') {\n this.top(offset);\n this._alignItems = 'center';\n return this;\n }\n /**\n * Apply the position to the element.\n * @docs-private\n */\n apply() {\n // Since the overlay ref applies the strategy asynchronously, it could\n // have been disposed before it ends up being applied. If that is the\n // case, we shouldn't do anything.\n if (!this._overlayRef || !this._overlayRef.hasAttached()) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parentStyles = this._overlayRef.hostElement.style;\n const config = this._overlayRef.getConfig();\n const {\n width,\n height,\n maxWidth,\n maxHeight\n } = config;\n const shouldBeFlushHorizontally = (width === '100%' || width === '100vw') && (!maxWidth || maxWidth === '100%' || maxWidth === '100vw');\n const shouldBeFlushVertically = (height === '100%' || height === '100vh') && (!maxHeight || maxHeight === '100%' || maxHeight === '100vh');\n const xPosition = this._xPosition;\n const xOffset = this._xOffset;\n const isRtl = this._overlayRef.getConfig().direction === 'rtl';\n let marginLeft = '';\n let marginRight = '';\n let justifyContent = '';\n if (shouldBeFlushHorizontally) {\n justifyContent = 'flex-start';\n } else if (xPosition === 'center') {\n justifyContent = 'center';\n if (isRtl) {\n marginRight = xOffset;\n } else {\n marginLeft = xOffset;\n }\n } else if (isRtl) {\n if (xPosition === 'left' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginLeft = xOffset;\n } else if (xPosition === 'right' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginRight = xOffset;\n }\n } else if (xPosition === 'left' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginLeft = xOffset;\n } else if (xPosition === 'right' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginRight = xOffset;\n }\n styles.position = this._cssPosition;\n styles.marginLeft = shouldBeFlushHorizontally ? '0' : marginLeft;\n styles.marginTop = shouldBeFlushVertically ? '0' : this._topOffset;\n styles.marginBottom = this._bottomOffset;\n styles.marginRight = shouldBeFlushHorizontally ? '0' : marginRight;\n parentStyles.justifyContent = justifyContent;\n parentStyles.alignItems = shouldBeFlushVertically ? 'flex-start' : this._alignItems;\n }\n /**\n * Cleans up the DOM changes from the position strategy.\n * @docs-private\n */\n dispose() {\n if (this._isDisposed || !this._overlayRef) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parent = this._overlayRef.hostElement;\n const parentStyles = parent.style;\n parent.classList.remove(wrapperClass);\n parentStyles.justifyContent = parentStyles.alignItems = styles.marginTop = styles.marginBottom = styles.marginLeft = styles.marginRight = styles.position = '';\n this._overlayRef = null;\n this._isDisposed = true;\n }\n}\n\n/** Builder for overlay position strategy. */\nclass OverlayPositionBuilder {\n constructor(_viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n }\n /**\n * Creates a global position strategy.\n */\n global() {\n return new GlobalPositionStrategy();\n }\n /**\n * Creates a flexible position strategy.\n * @param origin Origin relative to which to position the overlay.\n */\n flexibleConnectedTo(origin) {\n return new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);\n }\n static {\n this.ɵfac = function OverlayPositionBuilder_Factory(t) {\n return new (t || OverlayPositionBuilder)(i0.ɵɵinject(i1.ViewportRuler), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1$1.Platform), i0.ɵɵinject(OverlayContainer));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OverlayPositionBuilder,\n factory: OverlayPositionBuilder.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayPositionBuilder, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.ViewportRuler\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1$1.Platform\n }, {\n type: OverlayContainer\n }], null);\n})();\n\n/** Next overlay unique ID. */\nlet nextUniqueId = 0;\n// Note that Overlay is *not* scoped to the app root because of the ComponentFactoryResolver\n// which needs to be different depending on where OverlayModule is imported.\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalOutlet, so any kind of Portal can be loaded into one.\n */\nclass Overlay {\n constructor( /** Scrolling strategies that can be used when creating an overlay. */\n scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _keyboardDispatcher, _injector, _ngZone, _document, _directionality, _location, _outsideClickDispatcher, _animationsModuleType) {\n this.scrollStrategies = scrollStrategies;\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._positionBuilder = _positionBuilder;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._injector = _injector;\n this._ngZone = _ngZone;\n this._document = _document;\n this._directionality = _directionality;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsModuleType = _animationsModuleType;\n }\n /**\n * Creates an overlay.\n * @param config Configuration applied to the overlay.\n * @returns Reference to the created overlay.\n */\n create(config) {\n const host = this._createHostElement();\n const pane = this._createPaneElement(host);\n const portalOutlet = this._createPortalOutlet(pane);\n const overlayConfig = new OverlayConfig(config);\n overlayConfig.direction = overlayConfig.direction || this._directionality.value;\n return new OverlayRef(portalOutlet, host, pane, overlayConfig, this._ngZone, this._keyboardDispatcher, this._document, this._location, this._outsideClickDispatcher, this._animationsModuleType === 'NoopAnimations');\n }\n /**\n * Gets a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n * @returns An overlay position builder.\n */\n position() {\n return this._positionBuilder;\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(host) {\n const pane = this._document.createElement('div');\n pane.id = `cdk-overlay-${nextUniqueId++}`;\n pane.classList.add('cdk-overlay-pane');\n host.appendChild(pane);\n return pane;\n }\n /**\n * Creates the host element that wraps around an overlay\n * and can be used for advanced positioning.\n * @returns Newly-create host element.\n */\n _createHostElement() {\n const host = this._document.createElement('div');\n this._overlayContainer.getContainerElement().appendChild(host);\n return host;\n }\n /**\n * Create a DomPortalOutlet into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal outlet.\n * @returns A portal outlet for the given DOM element.\n */\n _createPortalOutlet(pane) {\n // We have to resolve the ApplicationRef later in order to allow people\n // to use overlay-based providers during app initialization.\n if (!this._appRef) {\n this._appRef = this._injector.get(ApplicationRef);\n }\n return new DomPortalOutlet(pane, this._componentFactoryResolver, this._appRef, this._injector, this._document);\n }\n static {\n this.ɵfac = function Overlay_Factory(t) {\n return new (t || Overlay)(i0.ɵɵinject(ScrollStrategyOptions), i0.ɵɵinject(OverlayContainer), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(OverlayPositionBuilder), i0.ɵɵinject(OverlayKeyboardDispatcher), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i5.Directionality), i0.ɵɵinject(i6.Location), i0.ɵɵinject(OverlayOutsideClickDispatcher), i0.ɵɵinject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Overlay,\n factory: Overlay.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Overlay, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: ScrollStrategyOptions\n }, {\n type: OverlayContainer\n }, {\n type: i0.ComponentFactoryResolver\n }, {\n type: OverlayPositionBuilder\n }, {\n type: OverlayKeyboardDispatcher\n }, {\n type: i0.Injector\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i5.Directionality\n }, {\n type: i6.Location\n }, {\n type: OverlayOutsideClickDispatcher\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }, {\n type: Optional\n }]\n }], null);\n})();\n\n/** Default set of positions for the overlay. Follows the behavior of a dropdown. */\nconst defaultPositionList = [{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n}, {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n}, {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n}, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n}];\n/** Injection token that determines the scroll handling while the connected overlay is open. */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('cdk-connected-overlay-scroll-strategy', {\n providedIn: 'root',\n factory: () => {\n const overlay = inject(Overlay);\n return () => overlay.scrollStrategies.reposition();\n }\n});\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nclass CdkOverlayOrigin {\n constructor( /** Reference to the element on which the directive is applied. */\n elementRef) {\n this.elementRef = elementRef;\n }\n static {\n this.ɵfac = function CdkOverlayOrigin_Factory(t) {\n return new (t || CdkOverlayOrigin)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkOverlayOrigin,\n selectors: [[\"\", \"cdk-overlay-origin\", \"\"], [\"\", \"overlay-origin\", \"\"], [\"\", \"cdkOverlayOrigin\", \"\"]],\n exportAs: [\"cdkOverlayOrigin\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkOverlayOrigin, [{\n type: Directive,\n args: [{\n selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n exportAs: 'cdkOverlayOrigin',\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }], null);\n})();\n/**\n * Directive to facilitate declarative creation of an\n * Overlay using a FlexibleConnectedPositionStrategy.\n */\nclass CdkConnectedOverlay {\n /** The offset in pixels for the overlay connection point on the x-axis */\n get offsetX() {\n return this._offsetX;\n }\n set offsetX(offsetX) {\n this._offsetX = offsetX;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** The offset in pixels for the overlay connection point on the y-axis */\n get offsetY() {\n return this._offsetY;\n }\n set offsetY(offsetY) {\n this._offsetY = offsetY;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** Whether the overlay should be disposed of when the user goes backwards/forwards in history. */\n get disposeOnNavigation() {\n return this._disposeOnNavigation;\n }\n set disposeOnNavigation(value) {\n this._disposeOnNavigation = value;\n }\n // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFactory, _dir) {\n this._overlay = _overlay;\n this._dir = _dir;\n this._backdropSubscription = Subscription.EMPTY;\n this._attachSubscription = Subscription.EMPTY;\n this._detachSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\n this._disposeOnNavigation = false;\n /** Margin between the overlay and the viewport edges. */\n this.viewportMargin = 0;\n /** Whether the overlay is open. */\n this.open = false;\n /** Whether the overlay can be closed by user interaction. */\n this.disableClose = false;\n /** Whether or not the overlay should attach a backdrop. */\n this.hasBackdrop = false;\n /** Whether or not the overlay should be locked when scrolling. */\n this.lockPosition = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this.flexibleDimensions = false;\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n this.growAfterOpen = false;\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n this.push = false;\n /** Event emitted when the backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Event emitted when the position has changed. */\n this.positionChange = new EventEmitter();\n /** Event emitted when the overlay has been attached. */\n this.attach = new EventEmitter();\n /** Event emitted when the overlay has been detached. */\n this.detach = new EventEmitter();\n /** Emits when there are keyboard events that are targeted at the overlay. */\n this.overlayKeydown = new EventEmitter();\n /** Emits when there are mouse outside click events that are targeted at the overlay. */\n this.overlayOutsideClick = new EventEmitter();\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this._scrollStrategyFactory = scrollStrategyFactory;\n this.scrollStrategy = this._scrollStrategyFactory();\n }\n /** The associated overlay reference. */\n get overlayRef() {\n return this._overlayRef;\n }\n /** The element's layout direction. */\n get dir() {\n return this._dir ? this._dir.value : 'ltr';\n }\n ngOnDestroy() {\n this._attachSubscription.unsubscribe();\n this._detachSubscription.unsubscribe();\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n ngOnChanges(changes) {\n if (this._position) {\n this._updatePositionStrategy(this._position);\n this._overlayRef.updateSize({\n width: this.width,\n minWidth: this.minWidth,\n height: this.height,\n minHeight: this.minHeight\n });\n if (changes['origin'] && this.open) {\n this._position.apply();\n }\n }\n if (changes['open']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n }\n /** Creates an overlay */\n _createOverlay() {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n const overlayRef = this._overlayRef = this._overlay.create(this._buildConfig());\n this._attachSubscription = overlayRef.attachments().subscribe(() => this.attach.emit());\n this._detachSubscription = overlayRef.detachments().subscribe(() => this.detach.emit());\n overlayRef.keydownEvents().subscribe(event => {\n this.overlayKeydown.next(event);\n if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this._detachOverlay();\n }\n });\n this._overlayRef.outsidePointerEvents().subscribe(event => {\n this.overlayOutsideClick.next(event);\n });\n }\n /** Builds the overlay config based on the directive's inputs */\n _buildConfig() {\n const positionStrategy = this._position = this.positionStrategy || this._createPositionStrategy();\n const overlayConfig = new OverlayConfig({\n direction: this._dir,\n positionStrategy,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.hasBackdrop,\n disposeOnNavigation: this.disposeOnNavigation\n });\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n if (this.panelClass) {\n overlayConfig.panelClass = this.panelClass;\n }\n return overlayConfig;\n }\n /** Updates the state of a position strategy, based on the values of the directive inputs. */\n _updatePositionStrategy(positionStrategy) {\n const positions = this.positions.map(currentPosition => ({\n originX: currentPosition.originX,\n originY: currentPosition.originY,\n overlayX: currentPosition.overlayX,\n overlayY: currentPosition.overlayY,\n offsetX: currentPosition.offsetX || this.offsetX,\n offsetY: currentPosition.offsetY || this.offsetY,\n panelClass: currentPosition.panelClass || undefined\n }));\n return positionStrategy.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(positions).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector);\n }\n /** Returns the position strategy of the overlay to be set on the overlay config */\n _createPositionStrategy() {\n const strategy = this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());\n this._updatePositionStrategy(strategy);\n return strategy;\n }\n _getFlexibleConnectedPositionStrategyOrigin() {\n if (this.origin instanceof CdkOverlayOrigin) {\n return this.origin.elementRef;\n } else {\n return this.origin;\n }\n }\n /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */\n _attachOverlay() {\n if (!this._overlayRef) {\n this._createOverlay();\n } else {\n // Update the overlay size, in case the directive's inputs have changed\n this._overlayRef.getConfig().hasBackdrop = this.hasBackdrop;\n }\n if (!this._overlayRef.hasAttached()) {\n this._overlayRef.attach(this._templatePortal);\n }\n if (this.hasBackdrop) {\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(event => {\n this.backdropClick.emit(event);\n });\n } else {\n this._backdropSubscription.unsubscribe();\n }\n this._positionSubscription.unsubscribe();\n // Only subscribe to `positionChanges` if requested, because putting\n // together all the information for it can be expensive.\n if (this.positionChange.observers.length > 0) {\n this._positionSubscription = this._position.positionChanges.pipe(takeWhile(() => this.positionChange.observers.length > 0)).subscribe(position => {\n this.positionChange.emit(position);\n if (this.positionChange.observers.length === 0) {\n this._positionSubscription.unsubscribe();\n }\n });\n }\n }\n /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */\n _detachOverlay() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n }\n static {\n this.ɵfac = function CdkConnectedOverlay_Factory(t) {\n return new (t || CdkConnectedOverlay)(i0.ɵɵdirectiveInject(Overlay), i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i5.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkConnectedOverlay,\n selectors: [[\"\", \"cdk-connected-overlay\", \"\"], [\"\", \"connected-overlay\", \"\"], [\"\", \"cdkConnectedOverlay\", \"\"]],\n inputs: {\n origin: [\"cdkConnectedOverlayOrigin\", \"origin\"],\n positions: [\"cdkConnectedOverlayPositions\", \"positions\"],\n positionStrategy: [\"cdkConnectedOverlayPositionStrategy\", \"positionStrategy\"],\n offsetX: [\"cdkConnectedOverlayOffsetX\", \"offsetX\"],\n offsetY: [\"cdkConnectedOverlayOffsetY\", \"offsetY\"],\n width: [\"cdkConnectedOverlayWidth\", \"width\"],\n height: [\"cdkConnectedOverlayHeight\", \"height\"],\n minWidth: [\"cdkConnectedOverlayMinWidth\", \"minWidth\"],\n minHeight: [\"cdkConnectedOverlayMinHeight\", \"minHeight\"],\n backdropClass: [\"cdkConnectedOverlayBackdropClass\", \"backdropClass\"],\n panelClass: [\"cdkConnectedOverlayPanelClass\", \"panelClass\"],\n viewportMargin: [\"cdkConnectedOverlayViewportMargin\", \"viewportMargin\"],\n scrollStrategy: [\"cdkConnectedOverlayScrollStrategy\", \"scrollStrategy\"],\n open: [\"cdkConnectedOverlayOpen\", \"open\"],\n disableClose: [\"cdkConnectedOverlayDisableClose\", \"disableClose\"],\n transformOriginSelector: [\"cdkConnectedOverlayTransformOriginOn\", \"transformOriginSelector\"],\n hasBackdrop: [\"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\", booleanAttribute],\n lockPosition: [\"cdkConnectedOverlayLockPosition\", \"lockPosition\", booleanAttribute],\n flexibleDimensions: [\"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\", booleanAttribute],\n growAfterOpen: [\"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\", booleanAttribute],\n push: [\"cdkConnectedOverlayPush\", \"push\", booleanAttribute],\n disposeOnNavigation: [\"cdkConnectedOverlayDisposeOnNavigation\", \"disposeOnNavigation\", booleanAttribute]\n },\n outputs: {\n backdropClick: \"backdropClick\",\n positionChange: \"positionChange\",\n attach: \"attach\",\n detach: \"detach\",\n overlayKeydown: \"overlayKeydown\",\n overlayOutsideClick: \"overlayOutsideClick\"\n },\n exportAs: [\"cdkConnectedOverlay\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkConnectedOverlay, [{\n type: Directive,\n args: [{\n selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n exportAs: 'cdkConnectedOverlay',\n standalone: true\n }]\n }], () => [{\n type: Overlay\n }, {\n type: i0.TemplateRef\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY]\n }]\n }, {\n type: i5.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n origin: [{\n type: Input,\n args: ['cdkConnectedOverlayOrigin']\n }],\n positions: [{\n type: Input,\n args: ['cdkConnectedOverlayPositions']\n }],\n positionStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayPositionStrategy']\n }],\n offsetX: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetX']\n }],\n offsetY: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetY']\n }],\n width: [{\n type: Input,\n args: ['cdkConnectedOverlayWidth']\n }],\n height: [{\n type: Input,\n args: ['cdkConnectedOverlayHeight']\n }],\n minWidth: [{\n type: Input,\n args: ['cdkConnectedOverlayMinWidth']\n }],\n minHeight: [{\n type: Input,\n args: ['cdkConnectedOverlayMinHeight']\n }],\n backdropClass: [{\n type: Input,\n args: ['cdkConnectedOverlayBackdropClass']\n }],\n panelClass: [{\n type: Input,\n args: ['cdkConnectedOverlayPanelClass']\n }],\n viewportMargin: [{\n type: Input,\n args: ['cdkConnectedOverlayViewportMargin']\n }],\n scrollStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayScrollStrategy']\n }],\n open: [{\n type: Input,\n args: ['cdkConnectedOverlayOpen']\n }],\n disableClose: [{\n type: Input,\n args: ['cdkConnectedOverlayDisableClose']\n }],\n transformOriginSelector: [{\n type: Input,\n args: ['cdkConnectedOverlayTransformOriginOn']\n }],\n hasBackdrop: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayHasBackdrop',\n transform: booleanAttribute\n }]\n }],\n lockPosition: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayLockPosition',\n transform: booleanAttribute\n }]\n }],\n flexibleDimensions: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayFlexibleDimensions',\n transform: booleanAttribute\n }]\n }],\n growAfterOpen: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayGrowAfterOpen',\n transform: booleanAttribute\n }]\n }],\n push: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayPush',\n transform: booleanAttribute\n }]\n }],\n disposeOnNavigation: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayDisposeOnNavigation',\n transform: booleanAttribute\n }]\n }],\n backdropClick: [{\n type: Output\n }],\n positionChange: [{\n type: Output\n }],\n attach: [{\n type: Output\n }],\n detach: [{\n type: Output\n }],\n overlayKeydown: [{\n type: Output\n }],\n overlayOutsideClick: [{\n type: Output\n }]\n });\n})();\n/** @docs-private */\nfunction CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY\n};\nclass OverlayModule {\n static {\n this.ɵfac = function OverlayModule_Factory(t) {\n return new (t || OverlayModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: OverlayModule,\n imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin],\n exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER],\n imports: [BidiModule, PortalModule, ScrollingModule, ScrollingModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayModule, [{\n type: NgModule,\n args: [{\n imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin],\n exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule],\n providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Alternative to OverlayContainer that supports correct displaying of overlay elements in\n * Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n *\n * Should be provided in the root component.\n */\nclass FullscreenOverlayContainer extends OverlayContainer {\n constructor(_document, platform) {\n super(_document, platform);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this._fullScreenEventName && this._fullScreenListener) {\n this._document.removeEventListener(this._fullScreenEventName, this._fullScreenListener);\n }\n }\n _createContainer() {\n super._createContainer();\n this._adjustParentForFullscreenChange();\n this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());\n }\n _adjustParentForFullscreenChange() {\n if (!this._containerElement) {\n return;\n }\n const fullscreenElement = this.getFullscreenElement();\n const parent = fullscreenElement || this._document.body;\n parent.appendChild(this._containerElement);\n }\n _addFullscreenChangeListener(fn) {\n const eventName = this._getEventName();\n if (eventName) {\n if (this._fullScreenListener) {\n this._document.removeEventListener(eventName, this._fullScreenListener);\n }\n this._document.addEventListener(eventName, fn);\n this._fullScreenListener = fn;\n }\n }\n _getEventName() {\n if (!this._fullScreenEventName) {\n const _document = this._document;\n if (_document.fullscreenEnabled) {\n this._fullScreenEventName = 'fullscreenchange';\n } else if (_document.webkitFullscreenEnabled) {\n this._fullScreenEventName = 'webkitfullscreenchange';\n } else if (_document.mozFullScreenEnabled) {\n this._fullScreenEventName = 'mozfullscreenchange';\n } else if (_document.msFullscreenEnabled) {\n this._fullScreenEventName = 'MSFullscreenChange';\n }\n }\n return this._fullScreenEventName;\n }\n /**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n */\n getFullscreenElement() {\n const _document = this._document;\n return _document.fullscreenElement || _document.webkitFullscreenElement || _document.mozFullScreenElement || _document.msFullscreenElement || null;\n }\n static {\n this.ɵfac = function FullscreenOverlayContainer_Factory(t) {\n return new (t || FullscreenOverlayContainer)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1$1.Platform));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FullscreenOverlayContainer,\n factory: FullscreenOverlayContainer.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FullscreenOverlayContainer, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1$1.Platform\n }], null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BlockScrollStrategy, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectionPositionPair, FlexibleConnectedPositionStrategy, FullscreenOverlayContainer, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, STANDARD_DROPDOWN_ADJACENT_POSITIONS, STANDARD_DROPDOWN_BELOW_POSITIONS, ScrollStrategyOptions, ScrollingVisibility, validateHorizontalPosition, validateVerticalPosition };\n"],
- "mappings": "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",
- "names": ["document", "window", "document", "document"]
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-D5ODNR6D.js b/.angular/cache/17.0.7/vite/deps/chunk-D5ODNR6D.js
deleted file mode 100644
index 946c199..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-D5ODNR6D.js
+++ /dev/null
@@ -1,574 +0,0 @@
-import {
- MediaMatcher
-} from "./chunk-WB57DPWD.js";
-import {
- Platform
-} from "./chunk-IAC53GOD.js";
-import {
- environment,
- getEventPosition,
- isTouchEvent
-} from "./chunk-M5GY4FCO.js";
-import {
- DOCUMENT
-} from "./chunk-OSQBUYO6.js";
-import {
- Inject,
- Injectable,
- NgZone,
- RendererFactory2,
- Subject,
- auditTime,
- distinctUntilChanged,
- filter,
- finalize,
- map,
- setClassMetadata,
- startWith,
- takeUntil,
- ɵɵdefineInjectable,
- ɵɵgetInheritedFactory,
- ɵɵinject
-} from "./chunk-FGESKT7O.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-polyfill.mjs
-var availablePrefixes = ["moz", "ms", "webkit"];
-function requestAnimationFramePolyfill() {
- let lastTime = 0;
- return function(callback) {
- const currTime = (/* @__PURE__ */ new Date()).getTime();
- const timeToCall = Math.max(0, 16 - (currTime - lastTime));
- const id = setTimeout(() => {
- callback(currTime + timeToCall);
- }, timeToCall);
- lastTime = currTime + timeToCall;
- return id;
- };
-}
-function getRequestAnimationFrame() {
- if (typeof window === "undefined") {
- return () => 0;
- }
- if (window.requestAnimationFrame) {
- return window.requestAnimationFrame.bind(window);
- }
- const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];
- return prefix ? window[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();
-}
-var reqAnimFrame = getRequestAnimationFrame();
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-services.mjs
-var NOOP = () => {
-};
-var _NzResizeService = class _NzResizeService {
- constructor(ngZone, rendererFactory2) {
- this.ngZone = ngZone;
- this.rendererFactory2 = rendererFactory2;
- this.resizeSource$ = new Subject();
- this.listeners = 0;
- this.disposeHandle = NOOP;
- this.handler = () => {
- this.ngZone.run(() => {
- this.resizeSource$.next();
- });
- };
- this.renderer = this.rendererFactory2.createRenderer(null, null);
- }
- ngOnDestroy() {
- this.handler = NOOP;
- }
- subscribe() {
- this.registerListener();
- return this.resizeSource$.pipe(auditTime(16), finalize(() => this.unregisterListener()));
- }
- unsubscribe() {
- this.unregisterListener();
- }
- registerListener() {
- if (this.listeners === 0) {
- this.ngZone.runOutsideAngular(() => {
- this.disposeHandle = this.renderer.listen("window", "resize", this.handler);
- });
- }
- this.listeners += 1;
- }
- unregisterListener() {
- this.listeners -= 1;
- if (this.listeners === 0) {
- this.disposeHandle();
- this.disposeHandle = NOOP;
- }
- }
-};
-_NzResizeService.ɵfac = function NzResizeService_Factory(t) {
- return new (t || _NzResizeService)(ɵɵinject(NgZone), ɵɵinject(RendererFactory2));
-};
-_NzResizeService.ɵprov = ɵɵdefineInjectable({
- token: _NzResizeService,
- factory: _NzResizeService.ɵfac,
- providedIn: "root"
-});
-var NzResizeService = _NzResizeService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzResizeService, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: NgZone
- }, {
- type: RendererFactory2
- }], null);
-})();
-var testSingleRegistry = /* @__PURE__ */ new Map();
-var _NzSingletonService = class _NzSingletonService {
- constructor() {
- this._singletonRegistry = /* @__PURE__ */ new Map();
- }
- get singletonRegistry() {
- return environment.isTestMode ? testSingleRegistry : this._singletonRegistry;
- }
- registerSingletonWithKey(key, target) {
- const alreadyHave = this.singletonRegistry.has(key);
- const item = alreadyHave ? this.singletonRegistry.get(key) : this.withNewTarget(target);
- if (!alreadyHave) {
- this.singletonRegistry.set(key, item);
- }
- }
- unregisterSingletonWithKey(key) {
- if (this.singletonRegistry.has(key)) {
- this.singletonRegistry.delete(key);
- }
- }
- getSingletonWithKey(key) {
- return this.singletonRegistry.has(key) ? this.singletonRegistry.get(key).target : null;
- }
- withNewTarget(target) {
- return {
- target
- };
- }
-};
-_NzSingletonService.ɵfac = function NzSingletonService_Factory(t) {
- return new (t || _NzSingletonService)();
-};
-_NzSingletonService.ɵprov = ɵɵdefineInjectable({
- token: _NzSingletonService,
- factory: _NzSingletonService.ɵfac,
- providedIn: "root"
-});
-var NzSingletonService = _NzSingletonService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzSingletonService, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], null, null);
-})();
-function getPagePosition(event) {
- const e = getEventPosition(event);
- return {
- x: e.pageX,
- y: e.pageY
- };
-}
-var _NzDragService = class _NzDragService {
- constructor(rendererFactory2) {
- this.draggingThreshold = 5;
- this.currentDraggingSequence = null;
- this.currentStartingPoint = null;
- this.handleRegistry = /* @__PURE__ */ new Set();
- this.renderer = rendererFactory2.createRenderer(null, null);
- }
- requestDraggingSequence(event) {
- if (!this.handleRegistry.size) {
- this.registerDraggingHandler(isTouchEvent(event));
- }
- if (this.currentDraggingSequence) {
- this.currentDraggingSequence.complete();
- }
- this.currentStartingPoint = getPagePosition(event);
- this.currentDraggingSequence = new Subject();
- return this.currentDraggingSequence.pipe(map((e) => ({
- x: e.pageX - this.currentStartingPoint.x,
- y: e.pageY - this.currentStartingPoint.y
- })), filter((e) => Math.abs(e.x) > this.draggingThreshold || Math.abs(e.y) > this.draggingThreshold), finalize(() => this.teardownDraggingSequence()));
- }
- registerDraggingHandler(isTouch) {
- if (isTouch) {
- this.handleRegistry.add({
- teardown: this.renderer.listen("document", "touchmove", (e) => {
- if (this.currentDraggingSequence) {
- this.currentDraggingSequence.next(e.touches[0] || e.changedTouches[0]);
- }
- })
- });
- this.handleRegistry.add({
- teardown: this.renderer.listen("document", "touchend", () => {
- if (this.currentDraggingSequence) {
- this.currentDraggingSequence.complete();
- }
- })
- });
- } else {
- this.handleRegistry.add({
- teardown: this.renderer.listen("document", "mousemove", (e) => {
- if (this.currentDraggingSequence) {
- this.currentDraggingSequence.next(e);
- }
- })
- });
- this.handleRegistry.add({
- teardown: this.renderer.listen("document", "mouseup", () => {
- if (this.currentDraggingSequence) {
- this.currentDraggingSequence.complete();
- }
- })
- });
- }
- }
- teardownDraggingSequence() {
- this.currentDraggingSequence = null;
- }
-};
-_NzDragService.ɵfac = function NzDragService_Factory(t) {
- return new (t || _NzDragService)(ɵɵinject(RendererFactory2));
-};
-_NzDragService.ɵprov = ɵɵdefineInjectable({
- token: _NzDragService,
- factory: _NzDragService.ɵfac,
- providedIn: "root"
-});
-var NzDragService = _NzDragService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDragService, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: RendererFactory2
- }], null);
-})();
-function easeInOutCubic(t, b, c, d) {
- const cc = c - b;
- let tt = t / (d / 2);
- if (tt < 1) {
- return cc / 2 * tt * tt * tt + b;
- } else {
- return cc / 2 * ((tt -= 2) * tt * tt + 2) + b;
- }
-}
-var _NzScrollService = class _NzScrollService {
- constructor(ngZone, doc) {
- this.ngZone = ngZone;
- this.doc = doc;
- }
- /** Set the position of the scroll bar of `el`. */
- setScrollTop(el, topValue = 0) {
- if (el === window) {
- this.doc.body.scrollTop = topValue;
- this.doc.documentElement.scrollTop = topValue;
- } else {
- el.scrollTop = topValue;
- }
- }
- /** Get position of `el` against window. */
- getOffset(el) {
- const ret = {
- top: 0,
- left: 0
- };
- if (!el || !el.getClientRects().length) {
- return ret;
- }
- const rect = el.getBoundingClientRect();
- if (rect.width || rect.height) {
- const doc = el.ownerDocument.documentElement;
- ret.top = rect.top - doc.clientTop;
- ret.left = rect.left - doc.clientLeft;
- } else {
- ret.top = rect.top;
- ret.left = rect.left;
- }
- return ret;
- }
- /** Get the position of the scoll bar of `el`. */
- // TODO: remove '| Window' as the fallback already happens here
- getScroll(target, top = true) {
- if (typeof window === "undefined") {
- return 0;
- }
- const method = top ? "scrollTop" : "scrollLeft";
- let result = 0;
- if (this.isWindow(target)) {
- result = target[top ? "pageYOffset" : "pageXOffset"];
- } else if (target instanceof Document) {
- result = target.documentElement[method];
- } else if (target) {
- result = target[method];
- }
- if (target && !this.isWindow(target) && typeof result !== "number") {
- result = (target.ownerDocument || target).documentElement[method];
- }
- return result;
- }
- isWindow(obj) {
- return obj !== null && obj !== void 0 && obj === obj.window;
- }
- /**
- * Scroll `el` to some position with animation.
- *
- * @param containerEl container, `window` by default
- * @param y Scroll to `top`, 0 by default
- */
- scrollTo(containerEl, y = 0, options = {}) {
- const target = containerEl ? containerEl : window;
- const scrollTop = this.getScroll(target);
- const startTime = Date.now();
- const {
- easing,
- callback,
- duration = 450
- } = options;
- const frameFunc = () => {
- const timestamp = Date.now();
- const time = timestamp - startTime;
- const nextScrollTop = (easing || easeInOutCubic)(time > duration ? duration : time, scrollTop, y, duration);
- if (this.isWindow(target)) {
- target.scrollTo(window.pageXOffset, nextScrollTop);
- } else if (target instanceof HTMLDocument || target.constructor.name === "HTMLDocument") {
- target.documentElement.scrollTop = nextScrollTop;
- } else {
- target.scrollTop = nextScrollTop;
- }
- if (time < duration) {
- reqAnimFrame(frameFunc);
- } else if (typeof callback === "function") {
- this.ngZone.run(callback);
- }
- };
- this.ngZone.runOutsideAngular(() => reqAnimFrame(frameFunc));
- }
-};
-_NzScrollService.ɵfac = function NzScrollService_Factory(t) {
- return new (t || _NzScrollService)(ɵɵinject(NgZone), ɵɵinject(DOCUMENT));
-};
-_NzScrollService.ɵprov = ɵɵdefineInjectable({
- token: _NzScrollService,
- factory: _NzScrollService.ɵfac,
- providedIn: "root"
-});
-var NzScrollService = _NzScrollService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzScrollService, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: NgZone
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }], null);
-})();
-var NzBreakpointEnum;
-(function(NzBreakpointEnum2) {
- NzBreakpointEnum2["xxl"] = "xxl";
- NzBreakpointEnum2["xl"] = "xl";
- NzBreakpointEnum2["lg"] = "lg";
- NzBreakpointEnum2["md"] = "md";
- NzBreakpointEnum2["sm"] = "sm";
- NzBreakpointEnum2["xs"] = "xs";
-})(NzBreakpointEnum || (NzBreakpointEnum = {}));
-var gridResponsiveMap = {
- xs: "(max-width: 575px)",
- sm: "(min-width: 576px)",
- md: "(min-width: 768px)",
- lg: "(min-width: 992px)",
- xl: "(min-width: 1200px)",
- xxl: "(min-width: 1600px)"
-};
-var siderResponsiveMap = {
- xs: "(max-width: 479.98px)",
- sm: "(max-width: 575.98px)",
- md: "(max-width: 767.98px)",
- lg: "(max-width: 991.98px)",
- xl: "(max-width: 1199.98px)",
- xxl: "(max-width: 1599.98px)"
-};
-var _NzBreakpointService = class _NzBreakpointService {
- constructor(resizeService, mediaMatcher) {
- this.resizeService = resizeService;
- this.mediaMatcher = mediaMatcher;
- this.destroy$ = new Subject();
- this.resizeService.subscribe().pipe(takeUntil(this.destroy$)).subscribe(() => {
- });
- }
- ngOnDestroy() {
- this.destroy$.next();
- }
- subscribe(breakpointMap, fullMap) {
- if (fullMap) {
- const get = () => this.matchMedia(breakpointMap, true);
- return this.resizeService.subscribe().pipe(map(get), startWith(get()), distinctUntilChanged((x, y) => x[0] === y[0]), map((x) => x[1]));
- } else {
- const get = () => this.matchMedia(breakpointMap);
- return this.resizeService.subscribe().pipe(map(get), startWith(get()), distinctUntilChanged());
- }
- }
- matchMedia(breakpointMap, fullMap) {
- let bp = NzBreakpointEnum.md;
- const breakpointBooleanMap = {};
- Object.keys(breakpointMap).map((breakpoint) => {
- const castBP = breakpoint;
- const matched = this.mediaMatcher.matchMedia(gridResponsiveMap[castBP]).matches;
- breakpointBooleanMap[breakpoint] = matched;
- if (matched) {
- bp = castBP;
- }
- });
- if (fullMap) {
- return [bp, breakpointBooleanMap];
- } else {
- return bp;
- }
- }
-};
-_NzBreakpointService.ɵfac = function NzBreakpointService_Factory(t) {
- return new (t || _NzBreakpointService)(ɵɵinject(NzResizeService), ɵɵinject(MediaMatcher));
-};
-_NzBreakpointService.ɵprov = ɵɵdefineInjectable({
- token: _NzBreakpointService,
- factory: _NzBreakpointService.ɵfac,
- providedIn: "root"
-});
-var NzBreakpointService = _NzBreakpointService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzBreakpointService, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: NzResizeService
- }, {
- type: MediaMatcher
- }], null);
-})();
-var _NzDestroyService = class _NzDestroyService extends Subject {
- ngOnDestroy() {
- this.next();
- this.complete();
- }
-};
-_NzDestroyService.ɵfac = (() => {
- let ɵNzDestroyService_BaseFactory;
- return function NzDestroyService_Factory(t) {
- return (ɵNzDestroyService_BaseFactory || (ɵNzDestroyService_BaseFactory = ɵɵgetInheritedFactory(_NzDestroyService)))(t || _NzDestroyService);
- };
-})();
-_NzDestroyService.ɵprov = ɵɵdefineInjectable({
- token: _NzDestroyService,
- factory: _NzDestroyService.ɵfac
-});
-var NzDestroyService = _NzDestroyService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDestroyService, [{
- type: Injectable
- }], null, null);
-})();
-var _ImagePreloadService = class _ImagePreloadService {
- constructor(document, platform) {
- this.document = document;
- this.platform = platform;
- this.counter = /* @__PURE__ */ new Map();
- this.linkRefs = /* @__PURE__ */ new Map();
- }
- addPreload(option) {
- if (this.platform.isBrowser) {
- return () => void 0;
- }
- const uniqueKey = `${option.src}${option.srcset}`;
- let currentCount = this.counter.get(uniqueKey) || 0;
- currentCount++;
- this.counter.set(uniqueKey, currentCount);
- if (!this.linkRefs.has(uniqueKey)) {
- const linkNode = this.appendPreloadLink(option);
- this.linkRefs.set(uniqueKey, linkNode);
- }
- return () => {
- if (this.counter.has(uniqueKey)) {
- let count = this.counter.get(uniqueKey);
- count--;
- if (count === 0) {
- const linkNode = this.linkRefs.get(uniqueKey);
- this.removePreloadLink(linkNode);
- this.counter.delete(uniqueKey);
- this.linkRefs.delete(uniqueKey);
- } else {
- this.counter.set(uniqueKey, count);
- }
- }
- };
- }
- appendPreloadLink(option) {
- const linkNode = this.document.createElement("link");
- linkNode.setAttribute("rel", "preload");
- linkNode.setAttribute("as", "image");
- linkNode.setAttribute("href", option.src);
- if (option.srcset) {
- linkNode.setAttribute("imagesrcset", option.srcset);
- }
- this.document.head.appendChild(linkNode);
- return linkNode;
- }
- removePreloadLink(linkNode) {
- if (this.document.head.contains(linkNode)) {
- this.document.head.removeChild(linkNode);
- }
- }
-};
-_ImagePreloadService.ɵfac = function ImagePreloadService_Factory(t) {
- return new (t || _ImagePreloadService)(ɵɵinject(DOCUMENT), ɵɵinject(Platform));
-};
-_ImagePreloadService.ɵprov = ɵɵdefineInjectable({
- token: _ImagePreloadService,
- factory: _ImagePreloadService.ɵfac,
- providedIn: "root"
-});
-var ImagePreloadService = _ImagePreloadService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ImagePreloadService, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: Platform
- }], null);
-})();
-
-export {
- reqAnimFrame,
- NzResizeService,
- NzSingletonService,
- NzDragService,
- gridResponsiveMap,
- siderResponsiveMap,
- NzBreakpointService,
- NzDestroyService
-};
-//# sourceMappingURL=chunk-D5ODNR6D.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-D5ODNR6D.js.map b/.angular/cache/17.0.7/vite/deps/chunk-D5ODNR6D.js.map
deleted file mode 100644
index 9ed51da..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-D5ODNR6D.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-polyfill.mjs", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-services.mjs"],
- "sourcesContent": ["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n/* eslint-disable no-invalid-this */\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\nfunction requestAnimationFramePolyfill() {\n let lastTime = 0;\n return function (callback) {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n const id = setTimeout(() => {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n}\nfunction getRequestAnimationFrame() {\n if (typeof window === 'undefined') {\n return () => 0;\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n const prefix = availablePrefixes.filter(key => `${key}RequestAnimationFrame` in window)[0];\n return prefix ? window[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\nfunction cancelRequestAnimationFrame(id) {\n if (typeof window === 'undefined') {\n return null;\n }\n if (window.cancelAnimationFrame) {\n return window.cancelAnimationFrame(id);\n }\n const prefix = availablePrefixes.filter(key => `${key}CancelAnimationFrame` in window || `${key}CancelRequestAnimationFrame` in window)[0];\n return prefix\n ? (window[`${prefix}CancelAnimationFrame`] ||\n window[`${prefix}CancelRequestAnimationFrame`])\n // @ts-ignore\n .call(this, id)\n : clearTimeout(id);\n}\nconst reqAnimFrame = getRequestAnimationFrame();\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 { cancelRequestAnimationFrame, reqAnimFrame };\n\n", "import * as i0 from '@angular/core';\nimport { Injectable, Inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { auditTime, finalize, map, filter, takeUntil, startWith, distinctUntilChanged } from 'rxjs/operators';\nimport { environment } from 'ng-zorro-antd/core/environments';\nimport { getEventPosition, isTouchEvent } from 'ng-zorro-antd/core/util';\nimport { DOCUMENT } from '@angular/common';\nimport { reqAnimFrame } from 'ng-zorro-antd/core/polyfill';\nimport * as i2 from '@angular/cdk/layout';\nimport * as i1 from '@angular/cdk/platform';\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 NOOP = () => {};\nclass NzResizeService {\n constructor(ngZone, rendererFactory2) {\n this.ngZone = ngZone;\n this.rendererFactory2 = rendererFactory2;\n this.resizeSource$ = new Subject();\n this.listeners = 0;\n this.disposeHandle = NOOP;\n this.handler = () => {\n this.ngZone.run(() => {\n this.resizeSource$.next();\n });\n };\n this.renderer = this.rendererFactory2.createRenderer(null, null);\n }\n ngOnDestroy() {\n // Caretaker note: the `handler` is an instance property (it's not defined on the class prototype).\n // The `handler` captures `this` and prevents the `NzResizeService` from being GC'd.\n this.handler = NOOP;\n }\n subscribe() {\n this.registerListener();\n return this.resizeSource$.pipe(auditTime(16), finalize(() => this.unregisterListener()));\n }\n unsubscribe() {\n this.unregisterListener();\n }\n registerListener() {\n if (this.listeners === 0) {\n this.ngZone.runOutsideAngular(() => {\n this.disposeHandle = this.renderer.listen('window', 'resize', this.handler);\n });\n }\n this.listeners += 1;\n }\n unregisterListener() {\n this.listeners -= 1;\n if (this.listeners === 0) {\n this.disposeHandle();\n this.disposeHandle = NOOP;\n }\n }\n static {\n this.ɵfac = function NzResizeService_Factory(t) {\n return new (t || NzResizeService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.RendererFactory2));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzResizeService,\n factory: NzResizeService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzResizeService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i0.NgZone\n }, {\n type: i0.RendererFactory2\n }], null);\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 * When running in test, singletons should not be destroyed. So we keep references of singletons\n * in this global variable.\n */\nconst testSingleRegistry = new Map();\n/**\n * Some singletons should have life cycle that is same to Angular's. This service make sure that\n * those singletons get destroyed in HMR.\n */\nclass NzSingletonService {\n constructor() {\n /**\n * This registry is used to register singleton in dev mode.\n * So that singletons get destroyed when hot module reload happens.\n *\n * This works in prod mode too but with no specific effect.\n */\n this._singletonRegistry = new Map();\n }\n get singletonRegistry() {\n return environment.isTestMode ? testSingleRegistry : this._singletonRegistry;\n }\n registerSingletonWithKey(key, target) {\n const alreadyHave = this.singletonRegistry.has(key);\n const item = alreadyHave ? this.singletonRegistry.get(key) : this.withNewTarget(target);\n if (!alreadyHave) {\n this.singletonRegistry.set(key, item);\n }\n }\n unregisterSingletonWithKey(key) {\n if (this.singletonRegistry.has(key)) {\n this.singletonRegistry.delete(key);\n }\n }\n getSingletonWithKey(key) {\n return this.singletonRegistry.has(key) ? this.singletonRegistry.get(key).target : null;\n }\n withNewTarget(target) {\n return {\n target\n };\n }\n static {\n this.ɵfac = function NzSingletonService_Factory(t) {\n return new (t || NzSingletonService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzSingletonService,\n factory: NzSingletonService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzSingletonService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\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 */\nfunction getPagePosition(event) {\n const e = getEventPosition(event);\n return {\n x: e.pageX,\n y: e.pageY\n };\n}\n/**\n * This module provide a global dragging service to other components.\n */\nclass NzDragService {\n constructor(rendererFactory2) {\n this.draggingThreshold = 5;\n this.currentDraggingSequence = null;\n this.currentStartingPoint = null;\n this.handleRegistry = new Set();\n this.renderer = rendererFactory2.createRenderer(null, null);\n }\n requestDraggingSequence(event) {\n if (!this.handleRegistry.size) {\n this.registerDraggingHandler(isTouchEvent(event));\n }\n // Complete last dragging sequence if a new target is dragged.\n if (this.currentDraggingSequence) {\n this.currentDraggingSequence.complete();\n }\n this.currentStartingPoint = getPagePosition(event);\n this.currentDraggingSequence = new Subject();\n return this.currentDraggingSequence.pipe(map(e => ({\n x: e.pageX - this.currentStartingPoint.x,\n y: e.pageY - this.currentStartingPoint.y\n })), filter(e => Math.abs(e.x) > this.draggingThreshold || Math.abs(e.y) > this.draggingThreshold), finalize(() => this.teardownDraggingSequence()));\n }\n registerDraggingHandler(isTouch) {\n if (isTouch) {\n this.handleRegistry.add({\n teardown: this.renderer.listen('document', 'touchmove', e => {\n if (this.currentDraggingSequence) {\n this.currentDraggingSequence.next(e.touches[0] || e.changedTouches[0]);\n }\n })\n });\n this.handleRegistry.add({\n teardown: this.renderer.listen('document', 'touchend', () => {\n if (this.currentDraggingSequence) {\n this.currentDraggingSequence.complete();\n }\n })\n });\n } else {\n this.handleRegistry.add({\n teardown: this.renderer.listen('document', 'mousemove', e => {\n if (this.currentDraggingSequence) {\n this.currentDraggingSequence.next(e);\n }\n })\n });\n this.handleRegistry.add({\n teardown: this.renderer.listen('document', 'mouseup', () => {\n if (this.currentDraggingSequence) {\n this.currentDraggingSequence.complete();\n }\n })\n });\n }\n }\n teardownDraggingSequence() {\n this.currentDraggingSequence = null;\n }\n static {\n this.ɵfac = function NzDragService_Factory(t) {\n return new (t || NzDragService)(i0.ɵɵinject(i0.RendererFactory2));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzDragService,\n factory: NzDragService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDragService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i0.RendererFactory2\n }], null);\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 */\nfunction easeInOutCubic(t, b, c, d) {\n const cc = c - b;\n let tt = t / (d / 2);\n if (tt < 1) {\n return cc / 2 * tt * tt * tt + b;\n } else {\n return cc / 2 * ((tt -= 2) * tt * tt + 2) + b;\n }\n}\nclass NzScrollService {\n constructor(ngZone, doc) {\n this.ngZone = ngZone;\n this.doc = doc;\n }\n /** Set the position of the scroll bar of `el`. */\n setScrollTop(el, topValue = 0) {\n if (el === window) {\n this.doc.body.scrollTop = topValue;\n this.doc.documentElement.scrollTop = topValue;\n } else {\n el.scrollTop = topValue;\n }\n }\n /** Get position of `el` against window. */\n getOffset(el) {\n const ret = {\n top: 0,\n left: 0\n };\n if (!el || !el.getClientRects().length) {\n return ret;\n }\n const rect = el.getBoundingClientRect();\n if (rect.width || rect.height) {\n const doc = el.ownerDocument.documentElement;\n ret.top = rect.top - doc.clientTop;\n ret.left = rect.left - doc.clientLeft;\n } else {\n ret.top = rect.top;\n ret.left = rect.left;\n }\n return ret;\n }\n /** Get the position of the scoll bar of `el`. */\n // TODO: remove '| Window' as the fallback already happens here\n getScroll(target, top = true) {\n if (typeof window === 'undefined') {\n return 0;\n }\n const method = top ? 'scrollTop' : 'scrollLeft';\n let result = 0;\n if (this.isWindow(target)) {\n result = target[top ? 'pageYOffset' : 'pageXOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target) {\n result = target[method];\n }\n if (target && !this.isWindow(target) && typeof result !== 'number') {\n result = (target.ownerDocument || target).documentElement[method];\n }\n return result;\n }\n isWindow(obj) {\n return obj !== null && obj !== undefined && obj === obj.window;\n }\n /**\n * Scroll `el` to some position with animation.\n *\n * @param containerEl container, `window` by default\n * @param y Scroll to `top`, 0 by default\n */\n scrollTo(containerEl, y = 0, options = {}) {\n const target = containerEl ? containerEl : window;\n const scrollTop = this.getScroll(target);\n const startTime = Date.now();\n const {\n easing,\n callback,\n duration = 450\n } = options;\n const frameFunc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = (easing || easeInOutCubic)(time > duration ? duration : time, scrollTop, y, duration);\n if (this.isWindow(target)) {\n target.scrollTo(window.pageXOffset, nextScrollTop);\n } else if (target instanceof HTMLDocument || target.constructor.name === 'HTMLDocument') {\n target.documentElement.scrollTop = nextScrollTop;\n } else {\n target.scrollTop = nextScrollTop;\n }\n if (time < duration) {\n reqAnimFrame(frameFunc);\n } else if (typeof callback === 'function') {\n // Caretaker note: the `frameFunc` is called within the `
` zone, but we have to re-enter\n // the Angular zone when calling custom callback to be backwards-compatible.\n this.ngZone.run(callback);\n }\n };\n // Caretaker note: the `requestAnimationFrame` triggers change detection, but updating a `scrollTop` property or\n // calling `window.scrollTo` doesn't require Angular to run `ApplicationRef.tick()`.\n this.ngZone.runOutsideAngular(() => reqAnimFrame(frameFunc));\n }\n static {\n this.ɵfac = function NzScrollService_Factory(t) {\n return new (t || NzScrollService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzScrollService,\n factory: NzScrollService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzScrollService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\nvar NzBreakpointEnum;\n(function (NzBreakpointEnum) {\n NzBreakpointEnum[\"xxl\"] = \"xxl\";\n NzBreakpointEnum[\"xl\"] = \"xl\";\n NzBreakpointEnum[\"lg\"] = \"lg\";\n NzBreakpointEnum[\"md\"] = \"md\";\n NzBreakpointEnum[\"sm\"] = \"sm\";\n NzBreakpointEnum[\"xs\"] = \"xs\";\n})(NzBreakpointEnum || (NzBreakpointEnum = {}));\nconst gridResponsiveMap = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)'\n};\nconst siderResponsiveMap = {\n xs: '(max-width: 479.98px)',\n sm: '(max-width: 575.98px)',\n md: '(max-width: 767.98px)',\n lg: '(max-width: 991.98px)',\n xl: '(max-width: 1199.98px)',\n xxl: '(max-width: 1599.98px)'\n};\nclass NzBreakpointService {\n constructor(resizeService, mediaMatcher) {\n this.resizeService = resizeService;\n this.mediaMatcher = mediaMatcher;\n this.destroy$ = new Subject();\n this.resizeService.subscribe().pipe(takeUntil(this.destroy$)).subscribe(() => {});\n }\n ngOnDestroy() {\n this.destroy$.next();\n }\n subscribe(breakpointMap, fullMap) {\n if (fullMap) {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const get = () => this.matchMedia(breakpointMap, true);\n return this.resizeService.subscribe().pipe(map(get), startWith(get()), distinctUntilChanged((x, y) => x[0] === y[0]), map(x => x[1]));\n } else {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const get = () => this.matchMedia(breakpointMap);\n return this.resizeService.subscribe().pipe(map(get), startWith(get()), distinctUntilChanged());\n }\n }\n matchMedia(breakpointMap, fullMap) {\n let bp = NzBreakpointEnum.md;\n const breakpointBooleanMap = {};\n Object.keys(breakpointMap).map(breakpoint => {\n const castBP = breakpoint;\n const matched = this.mediaMatcher.matchMedia(gridResponsiveMap[castBP]).matches;\n breakpointBooleanMap[breakpoint] = matched;\n if (matched) {\n bp = castBP;\n }\n });\n if (fullMap) {\n return [bp, breakpointBooleanMap];\n } else {\n return bp;\n }\n }\n static {\n this.ɵfac = function NzBreakpointService_Factory(t) {\n return new (t || NzBreakpointService)(i0.ɵɵinject(NzResizeService), i0.ɵɵinject(i2.MediaMatcher));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzBreakpointService,\n factory: NzBreakpointService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzBreakpointService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: NzResizeService\n }, {\n type: i2.MediaMatcher\n }], null);\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 NzDestroyService extends Subject {\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNzDestroyService_BaseFactory;\n return function NzDestroyService_Factory(t) {\n return (ɵNzDestroyService_BaseFactory || (ɵNzDestroyService_BaseFactory = i0.ɵɵgetInheritedFactory(NzDestroyService)))(t || NzDestroyService);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzDestroyService,\n factory: NzDestroyService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDestroyService, [{\n type: Injectable\n }], null, null);\n})();\nclass ImagePreloadService {\n constructor(document, platform) {\n this.document = document;\n this.platform = platform;\n this.counter = new Map();\n this.linkRefs = new Map();\n }\n addPreload(option) {\n if (this.platform.isBrowser) {\n return () => void 0;\n }\n const uniqueKey = `${option.src}${option.srcset}`;\n let currentCount = this.counter.get(uniqueKey) || 0;\n currentCount++;\n this.counter.set(uniqueKey, currentCount);\n if (!this.linkRefs.has(uniqueKey)) {\n const linkNode = this.appendPreloadLink(option);\n this.linkRefs.set(uniqueKey, linkNode);\n }\n return () => {\n if (this.counter.has(uniqueKey)) {\n let count = this.counter.get(uniqueKey);\n count--;\n if (count === 0) {\n const linkNode = this.linkRefs.get(uniqueKey);\n this.removePreloadLink(linkNode);\n this.counter.delete(uniqueKey);\n this.linkRefs.delete(uniqueKey);\n } else {\n this.counter.set(uniqueKey, count);\n }\n }\n };\n }\n appendPreloadLink(option) {\n const linkNode = this.document.createElement('link');\n linkNode.setAttribute('rel', 'preload');\n linkNode.setAttribute('as', 'image');\n linkNode.setAttribute('href', option.src);\n if (option.srcset) {\n linkNode.setAttribute('imagesrcset', option.srcset);\n }\n this.document.head.appendChild(linkNode);\n return linkNode;\n }\n removePreloadLink(linkNode) {\n if (this.document.head.contains(linkNode)) {\n this.document.head.removeChild(linkNode);\n }\n }\n static {\n this.ɵfac = function ImagePreloadService_Factory(t) {\n return new (t || ImagePreloadService)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1.Platform));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ImagePreloadService,\n factory: ImagePreloadService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ImagePreloadService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1.Platform\n }], null);\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 { ImagePreloadService, NzBreakpointEnum, NzBreakpointService, NzDestroyService, NzDragService, NzResizeService, NzScrollService, NzSingletonService, gridResponsiveMap, siderResponsiveMap };\n"],
- "mappings": "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",
- "names": ["NzBreakpointEnum"]
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-E6XJDY45.js b/.angular/cache/17.0.7/vite/deps/chunk-E6XJDY45.js
deleted file mode 100644
index dd6ff51..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-E6XJDY45.js
+++ /dev/null
@@ -1,2373 +0,0 @@
-import {
- A,
- ALT,
- CONTROL,
- DOWN_ARROW,
- END,
- HOME,
- LEFT_ARROW,
- MAC_META,
- META,
- NINE,
- PAGE_DOWN,
- PAGE_UP,
- RIGHT_ARROW,
- SHIFT,
- TAB,
- UP_ARROW,
- Z,
- ZERO,
- hasModifierKey
-} from "./chunk-JGP5BR6B.js";
-import {
- BreakpointObserver
-} from "./chunk-WB57DPWD.js";
-import {
- Platform,
- _getEventTarget,
- _getFocusedElementPierceShadowDom,
- _getShadowRoot,
- normalizePassiveListenerOptions
-} from "./chunk-IAC53GOD.js";
-import {
- coerceElement,
- coerceNumberProperty
-} from "./chunk-M5GY4FCO.js";
-import {
- DOCUMENT
-} from "./chunk-OSQBUYO6.js";
-import {
- APP_ID,
- BehaviorSubject,
- Directive,
- ElementRef,
- EventEmitter,
- Inject,
- Injectable,
- InjectionToken,
- Input,
- NgModule,
- NgZone,
- Observable,
- Optional,
- Output,
- QueryList,
- Subject,
- Subscription,
- booleanAttribute,
- debounceTime,
- distinctUntilChanged,
- filter,
- inject,
- map,
- of,
- setClassMetadata,
- skip,
- take,
- takeUntil,
- tap,
- ɵɵInputTransformsFeature,
- ɵɵNgOnChangesFeature,
- ɵɵdefineDirective,
- ɵɵdefineInjectable,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵinject
-} from "./chunk-FGESKT7O.js";
-import {
- __spreadValues
-} from "./chunk-HSNDBVJ3.js";
-
-// node_modules/@angular/cdk/fesm2022/observers.mjs
-var _MutationObserverFactory = class _MutationObserverFactory {
- create(callback) {
- return typeof MutationObserver === "undefined" ? null : new MutationObserver(callback);
- }
-};
-_MutationObserverFactory.ɵfac = function MutationObserverFactory_Factory(t) {
- return new (t || _MutationObserverFactory)();
-};
-_MutationObserverFactory.ɵprov = ɵɵdefineInjectable({
- token: _MutationObserverFactory,
- factory: _MutationObserverFactory.ɵfac,
- providedIn: "root"
-});
-var MutationObserverFactory = _MutationObserverFactory;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MutationObserverFactory, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], null, null);
-})();
-var _ContentObserver = class _ContentObserver {
- constructor(_mutationObserverFactory) {
- this._mutationObserverFactory = _mutationObserverFactory;
- this._observedElements = /* @__PURE__ */ new Map();
- }
- ngOnDestroy() {
- this._observedElements.forEach((_, element) => this._cleanupObserver(element));
- }
- observe(elementOrRef) {
- const element = coerceElement(elementOrRef);
- return new Observable((observer) => {
- const stream = this._observeElement(element);
- const subscription = stream.subscribe(observer);
- return () => {
- subscription.unsubscribe();
- this._unobserveElement(element);
- };
- });
- }
- /**
- * Observes the given element by using the existing MutationObserver if available, or creating a
- * new one if not.
- */
- _observeElement(element) {
- if (!this._observedElements.has(element)) {
- const stream = new Subject();
- const observer = this._mutationObserverFactory.create((mutations) => stream.next(mutations));
- if (observer) {
- observer.observe(element, {
- characterData: true,
- childList: true,
- subtree: true
- });
- }
- this._observedElements.set(element, {
- observer,
- stream,
- count: 1
- });
- } else {
- this._observedElements.get(element).count++;
- }
- return this._observedElements.get(element).stream;
- }
- /**
- * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is
- * observing this element.
- */
- _unobserveElement(element) {
- if (this._observedElements.has(element)) {
- this._observedElements.get(element).count--;
- if (!this._observedElements.get(element).count) {
- this._cleanupObserver(element);
- }
- }
- }
- /** Clean up the underlying MutationObserver for the specified element. */
- _cleanupObserver(element) {
- if (this._observedElements.has(element)) {
- const {
- observer,
- stream
- } = this._observedElements.get(element);
- if (observer) {
- observer.disconnect();
- }
- stream.complete();
- this._observedElements.delete(element);
- }
- }
-};
-_ContentObserver.ɵfac = function ContentObserver_Factory(t) {
- return new (t || _ContentObserver)(ɵɵinject(MutationObserverFactory));
-};
-_ContentObserver.ɵprov = ɵɵdefineInjectable({
- token: _ContentObserver,
- factory: _ContentObserver.ɵfac,
- providedIn: "root"
-});
-var ContentObserver = _ContentObserver;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ContentObserver, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: MutationObserverFactory
- }], null);
-})();
-var _CdkObserveContent = class _CdkObserveContent {
- /**
- * Whether observing content is disabled. This option can be used
- * to disconnect the underlying MutationObserver until it is needed.
- */
- get disabled() {
- return this._disabled;
- }
- set disabled(value) {
- this._disabled = value;
- this._disabled ? this._unsubscribe() : this._subscribe();
- }
- /** Debounce interval for emitting the changes. */
- get debounce() {
- return this._debounce;
- }
- set debounce(value) {
- this._debounce = coerceNumberProperty(value);
- this._subscribe();
- }
- constructor(_contentObserver, _elementRef, _ngZone) {
- this._contentObserver = _contentObserver;
- this._elementRef = _elementRef;
- this._ngZone = _ngZone;
- this.event = new EventEmitter();
- this._disabled = false;
- this._currentSubscription = null;
- }
- ngAfterContentInit() {
- if (!this._currentSubscription && !this.disabled) {
- this._subscribe();
- }
- }
- ngOnDestroy() {
- this._unsubscribe();
- }
- _subscribe() {
- this._unsubscribe();
- const stream = this._contentObserver.observe(this._elementRef);
- this._ngZone.runOutsideAngular(() => {
- this._currentSubscription = (this.debounce ? stream.pipe(debounceTime(this.debounce)) : stream).subscribe(this.event);
- });
- }
- _unsubscribe() {
- this._currentSubscription?.unsubscribe();
- }
-};
-_CdkObserveContent.ɵfac = function CdkObserveContent_Factory(t) {
- return new (t || _CdkObserveContent)(ɵɵdirectiveInject(ContentObserver), ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(NgZone));
-};
-_CdkObserveContent.ɵdir = ɵɵdefineDirective({
- type: _CdkObserveContent,
- selectors: [["", "cdkObserveContent", ""]],
- inputs: {
- disabled: ["cdkObserveContentDisabled", "disabled", booleanAttribute],
- debounce: "debounce"
- },
- outputs: {
- event: "cdkObserveContent"
- },
- exportAs: ["cdkObserveContent"],
- features: [ɵɵInputTransformsFeature]
-});
-var CdkObserveContent = _CdkObserveContent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkObserveContent, [{
- type: Directive,
- args: [{
- selector: "[cdkObserveContent]",
- exportAs: "cdkObserveContent"
- }]
- }], () => [{
- type: ContentObserver
- }, {
- type: ElementRef
- }, {
- type: NgZone
- }], {
- event: [{
- type: Output,
- args: ["cdkObserveContent"]
- }],
- disabled: [{
- type: Input,
- args: [{
- alias: "cdkObserveContentDisabled",
- transform: booleanAttribute
- }]
- }],
- debounce: [{
- type: Input
- }]
- });
-})();
-var _ObserversModule = class _ObserversModule {
-};
-_ObserversModule.ɵfac = function ObserversModule_Factory(t) {
- return new (t || _ObserversModule)();
-};
-_ObserversModule.ɵmod = ɵɵdefineNgModule({
- type: _ObserversModule,
- declarations: [CdkObserveContent],
- exports: [CdkObserveContent]
-});
-_ObserversModule.ɵinj = ɵɵdefineInjector({
- providers: [MutationObserverFactory]
-});
-var ObserversModule = _ObserversModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ObserversModule, [{
- type: NgModule,
- args: [{
- exports: [CdkObserveContent],
- declarations: [CdkObserveContent],
- providers: [MutationObserverFactory]
- }]
- }], null, null);
-})();
-
-// node_modules/@angular/cdk/fesm2022/a11y.mjs
-var ID_DELIMITER = " ";
-function addAriaReferencedId(el, attr, id) {
- const ids = getAriaReferenceIds(el, attr);
- if (ids.some((existingId) => existingId.trim() == id.trim())) {
- return;
- }
- ids.push(id.trim());
- el.setAttribute(attr, ids.join(ID_DELIMITER));
-}
-function removeAriaReferencedId(el, attr, id) {
- const ids = getAriaReferenceIds(el, attr);
- const filteredIds = ids.filter((val) => val != id.trim());
- if (filteredIds.length) {
- el.setAttribute(attr, filteredIds.join(ID_DELIMITER));
- } else {
- el.removeAttribute(attr);
- }
-}
-function getAriaReferenceIds(el, attr) {
- return (el.getAttribute(attr) || "").match(/\S+/g) || [];
-}
-var CDK_DESCRIBEDBY_ID_PREFIX = "cdk-describedby-message";
-var CDK_DESCRIBEDBY_HOST_ATTRIBUTE = "cdk-describedby-host";
-var nextId = 0;
-var _AriaDescriber = class _AriaDescriber {
- constructor(_document, _platform) {
- this._platform = _platform;
- this._messageRegistry = /* @__PURE__ */ new Map();
- this._messagesContainer = null;
- this._id = `${nextId++}`;
- this._document = _document;
- this._id = inject(APP_ID) + "-" + nextId++;
- }
- describe(hostElement, message, role) {
- if (!this._canBeDescribed(hostElement, message)) {
- return;
- }
- const key = getKey(message, role);
- if (typeof message !== "string") {
- setMessageId(message, this._id);
- this._messageRegistry.set(key, {
- messageElement: message,
- referenceCount: 0
- });
- } else if (!this._messageRegistry.has(key)) {
- this._createMessageElement(message, role);
- }
- if (!this._isElementDescribedByMessage(hostElement, key)) {
- this._addMessageReference(hostElement, key);
- }
- }
- removeDescription(hostElement, message, role) {
- if (!message || !this._isElementNode(hostElement)) {
- return;
- }
- const key = getKey(message, role);
- if (this._isElementDescribedByMessage(hostElement, key)) {
- this._removeMessageReference(hostElement, key);
- }
- if (typeof message === "string") {
- const registeredMessage = this._messageRegistry.get(key);
- if (registeredMessage && registeredMessage.referenceCount === 0) {
- this._deleteMessageElement(key);
- }
- }
- if (this._messagesContainer?.childNodes.length === 0) {
- this._messagesContainer.remove();
- this._messagesContainer = null;
- }
- }
- /** Unregisters all created message elements and removes the message container. */
- ngOnDestroy() {
- const describedElements = this._document.querySelectorAll(`[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}="${this._id}"]`);
- for (let i = 0; i < describedElements.length; i++) {
- this._removeCdkDescribedByReferenceIds(describedElements[i]);
- describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
- }
- this._messagesContainer?.remove();
- this._messagesContainer = null;
- this._messageRegistry.clear();
- }
- /**
- * Creates a new element in the visually hidden message container element with the message
- * as its content and adds it to the message registry.
- */
- _createMessageElement(message, role) {
- const messageElement = this._document.createElement("div");
- setMessageId(messageElement, this._id);
- messageElement.textContent = message;
- if (role) {
- messageElement.setAttribute("role", role);
- }
- this._createMessagesContainer();
- this._messagesContainer.appendChild(messageElement);
- this._messageRegistry.set(getKey(message, role), {
- messageElement,
- referenceCount: 0
- });
- }
- /** Deletes the message element from the global messages container. */
- _deleteMessageElement(key) {
- this._messageRegistry.get(key)?.messageElement?.remove();
- this._messageRegistry.delete(key);
- }
- /** Creates the global container for all aria-describedby messages. */
- _createMessagesContainer() {
- if (this._messagesContainer) {
- return;
- }
- const containerClassName = "cdk-describedby-message-container";
- const serverContainers = this._document.querySelectorAll(`.${containerClassName}[platform="server"]`);
- for (let i = 0; i < serverContainers.length; i++) {
- serverContainers[i].remove();
- }
- const messagesContainer = this._document.createElement("div");
- messagesContainer.style.visibility = "hidden";
- messagesContainer.classList.add(containerClassName);
- messagesContainer.classList.add("cdk-visually-hidden");
- if (this._platform && !this._platform.isBrowser) {
- messagesContainer.setAttribute("platform", "server");
- }
- this._document.body.appendChild(messagesContainer);
- this._messagesContainer = messagesContainer;
- }
- /** Removes all cdk-describedby messages that are hosted through the element. */
- _removeCdkDescribedByReferenceIds(element) {
- const originalReferenceIds = getAriaReferenceIds(element, "aria-describedby").filter((id) => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0);
- element.setAttribute("aria-describedby", originalReferenceIds.join(" "));
- }
- /**
- * Adds a message reference to the element using aria-describedby and increments the registered
- * message's reference count.
- */
- _addMessageReference(element, key) {
- const registeredMessage = this._messageRegistry.get(key);
- addAriaReferencedId(element, "aria-describedby", registeredMessage.messageElement.id);
- element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, this._id);
- registeredMessage.referenceCount++;
- }
- /**
- * Removes a message reference from the element using aria-describedby
- * and decrements the registered message's reference count.
- */
- _removeMessageReference(element, key) {
- const registeredMessage = this._messageRegistry.get(key);
- registeredMessage.referenceCount--;
- removeAriaReferencedId(element, "aria-describedby", registeredMessage.messageElement.id);
- element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
- }
- /** Returns true if the element has been described by the provided message ID. */
- _isElementDescribedByMessage(element, key) {
- const referenceIds = getAriaReferenceIds(element, "aria-describedby");
- const registeredMessage = this._messageRegistry.get(key);
- const messageId = registeredMessage && registeredMessage.messageElement.id;
- return !!messageId && referenceIds.indexOf(messageId) != -1;
- }
- /** Determines whether a message can be described on a particular element. */
- _canBeDescribed(element, message) {
- if (!this._isElementNode(element)) {
- return false;
- }
- if (message && typeof message === "object") {
- return true;
- }
- const trimmedMessage = message == null ? "" : `${message}`.trim();
- const ariaLabel = element.getAttribute("aria-label");
- return trimmedMessage ? !ariaLabel || ariaLabel.trim() !== trimmedMessage : false;
- }
- /** Checks whether a node is an Element node. */
- _isElementNode(element) {
- return element.nodeType === this._document.ELEMENT_NODE;
- }
-};
-_AriaDescriber.ɵfac = function AriaDescriber_Factory(t) {
- return new (t || _AriaDescriber)(ɵɵinject(DOCUMENT), ɵɵinject(Platform));
-};
-_AriaDescriber.ɵprov = ɵɵdefineInjectable({
- token: _AriaDescriber,
- factory: _AriaDescriber.ɵfac,
- providedIn: "root"
-});
-var AriaDescriber = _AriaDescriber;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(AriaDescriber, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: Platform
- }], null);
-})();
-function getKey(message, role) {
- return typeof message === "string" ? `${role || ""}/${message}` : message;
-}
-function setMessageId(element, serviceId) {
- if (!element.id) {
- element.id = `${CDK_DESCRIBEDBY_ID_PREFIX}-${serviceId}-${nextId++}`;
- }
-}
-var ListKeyManager = class {
- constructor(_items) {
- this._items = _items;
- this._activeItemIndex = -1;
- this._activeItem = null;
- this._wrap = false;
- this._letterKeyStream = new Subject();
- this._typeaheadSubscription = Subscription.EMPTY;
- this._vertical = true;
- this._allowedModifierKeys = [];
- this._homeAndEnd = false;
- this._pageUpAndDown = {
- enabled: false,
- delta: 10
- };
- this._skipPredicateFn = (item) => item.disabled;
- this._pressedLetters = [];
- this.tabOut = new Subject();
- this.change = new Subject();
- if (_items instanceof QueryList) {
- this._itemChangesSubscription = _items.changes.subscribe((newItems) => {
- if (this._activeItem) {
- const itemArray = newItems.toArray();
- const newIndex = itemArray.indexOf(this._activeItem);
- if (newIndex > -1 && newIndex !== this._activeItemIndex) {
- this._activeItemIndex = newIndex;
- }
- }
- });
- }
- }
- /**
- * Sets the predicate function that determines which items should be skipped by the
- * list key manager.
- * @param predicate Function that determines whether the given item should be skipped.
- */
- skipPredicate(predicate) {
- this._skipPredicateFn = predicate;
- return this;
- }
- /**
- * Configures wrapping mode, which determines whether the active item will wrap to
- * the other end of list when there are no more items in the given direction.
- * @param shouldWrap Whether the list should wrap when reaching the end.
- */
- withWrap(shouldWrap = true) {
- this._wrap = shouldWrap;
- return this;
- }
- /**
- * Configures whether the key manager should be able to move the selection vertically.
- * @param enabled Whether vertical selection should be enabled.
- */
- withVerticalOrientation(enabled = true) {
- this._vertical = enabled;
- return this;
- }
- /**
- * Configures the key manager to move the selection horizontally.
- * Passing in `null` will disable horizontal movement.
- * @param direction Direction in which the selection can be moved.
- */
- withHorizontalOrientation(direction) {
- this._horizontal = direction;
- return this;
- }
- /**
- * Modifier keys which are allowed to be held down and whose default actions will be prevented
- * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.
- */
- withAllowedModifierKeys(keys) {
- this._allowedModifierKeys = keys;
- return this;
- }
- /**
- * Turns on typeahead mode which allows users to set the active item by typing.
- * @param debounceInterval Time to wait after the last keystroke before setting the active item.
- */
- withTypeAhead(debounceInterval = 200) {
- if ((typeof ngDevMode === "undefined" || ngDevMode) && this._items.length && this._items.some((item) => typeof item.getLabel !== "function")) {
- throw Error("ListKeyManager items in typeahead mode must implement the `getLabel` method.");
- }
- this._typeaheadSubscription.unsubscribe();
- this._typeaheadSubscription = this._letterKeyStream.pipe(tap((letter) => this._pressedLetters.push(letter)), debounceTime(debounceInterval), filter(() => this._pressedLetters.length > 0), map(() => this._pressedLetters.join(""))).subscribe((inputString) => {
- const items = this._getItemsArray();
- for (let i = 1; i < items.length + 1; i++) {
- const index = (this._activeItemIndex + i) % items.length;
- const item = items[index];
- if (!this._skipPredicateFn(item) && item.getLabel().toUpperCase().trim().indexOf(inputString) === 0) {
- this.setActiveItem(index);
- break;
- }
- }
- this._pressedLetters = [];
- });
- return this;
- }
- /** Cancels the current typeahead sequence. */
- cancelTypeahead() {
- this._pressedLetters = [];
- return this;
- }
- /**
- * Configures the key manager to activate the first and last items
- * respectively when the Home or End key is pressed.
- * @param enabled Whether pressing the Home or End key activates the first/last item.
- */
- withHomeAndEnd(enabled = true) {
- this._homeAndEnd = enabled;
- return this;
- }
- /**
- * Configures the key manager to activate every 10th, configured or first/last element in up/down direction
- * respectively when the Page-Up or Page-Down key is pressed.
- * @param enabled Whether pressing the Page-Up or Page-Down key activates the first/last item.
- * @param delta Whether pressing the Home or End key activates the first/last item.
- */
- withPageUpDown(enabled = true, delta = 10) {
- this._pageUpAndDown = {
- enabled,
- delta
- };
- return this;
- }
- setActiveItem(item) {
- const previousActiveItem = this._activeItem;
- this.updateActiveItem(item);
- if (this._activeItem !== previousActiveItem) {
- this.change.next(this._activeItemIndex);
- }
- }
- /**
- * Sets the active item depending on the key event passed in.
- * @param event Keyboard event to be used for determining which element should be active.
- */
- onKeydown(event) {
- const keyCode = event.keyCode;
- const modifiers = ["altKey", "ctrlKey", "metaKey", "shiftKey"];
- const isModifierAllowed = modifiers.every((modifier) => {
- return !event[modifier] || this._allowedModifierKeys.indexOf(modifier) > -1;
- });
- switch (keyCode) {
- case TAB:
- this.tabOut.next();
- return;
- case DOWN_ARROW:
- if (this._vertical && isModifierAllowed) {
- this.setNextItemActive();
- break;
- } else {
- return;
- }
- case UP_ARROW:
- if (this._vertical && isModifierAllowed) {
- this.setPreviousItemActive();
- break;
- } else {
- return;
- }
- case RIGHT_ARROW:
- if (this._horizontal && isModifierAllowed) {
- this._horizontal === "rtl" ? this.setPreviousItemActive() : this.setNextItemActive();
- break;
- } else {
- return;
- }
- case LEFT_ARROW:
- if (this._horizontal && isModifierAllowed) {
- this._horizontal === "rtl" ? this.setNextItemActive() : this.setPreviousItemActive();
- break;
- } else {
- return;
- }
- case HOME:
- if (this._homeAndEnd && isModifierAllowed) {
- this.setFirstItemActive();
- break;
- } else {
- return;
- }
- case END:
- if (this._homeAndEnd && isModifierAllowed) {
- this.setLastItemActive();
- break;
- } else {
- return;
- }
- case PAGE_UP:
- if (this._pageUpAndDown.enabled && isModifierAllowed) {
- const targetIndex = this._activeItemIndex - this._pageUpAndDown.delta;
- this._setActiveItemByIndex(targetIndex > 0 ? targetIndex : 0, 1);
- break;
- } else {
- return;
- }
- case PAGE_DOWN:
- if (this._pageUpAndDown.enabled && isModifierAllowed) {
- const targetIndex = this._activeItemIndex + this._pageUpAndDown.delta;
- const itemsLength = this._getItemsArray().length;
- this._setActiveItemByIndex(targetIndex < itemsLength ? targetIndex : itemsLength - 1, -1);
- break;
- } else {
- return;
- }
- default:
- if (isModifierAllowed || hasModifierKey(event, "shiftKey")) {
- if (event.key && event.key.length === 1) {
- this._letterKeyStream.next(event.key.toLocaleUpperCase());
- } else if (keyCode >= A && keyCode <= Z || keyCode >= ZERO && keyCode <= NINE) {
- this._letterKeyStream.next(String.fromCharCode(keyCode));
- }
- }
- return;
- }
- this._pressedLetters = [];
- event.preventDefault();
- }
- /** Index of the currently active item. */
- get activeItemIndex() {
- return this._activeItemIndex;
- }
- /** The active item. */
- get activeItem() {
- return this._activeItem;
- }
- /** Gets whether the user is currently typing into the manager using the typeahead feature. */
- isTyping() {
- return this._pressedLetters.length > 0;
- }
- /** Sets the active item to the first enabled item in the list. */
- setFirstItemActive() {
- this._setActiveItemByIndex(0, 1);
- }
- /** Sets the active item to the last enabled item in the list. */
- setLastItemActive() {
- this._setActiveItemByIndex(this._items.length - 1, -1);
- }
- /** Sets the active item to the next enabled item in the list. */
- setNextItemActive() {
- this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);
- }
- /** Sets the active item to a previous enabled item in the list. */
- setPreviousItemActive() {
- this._activeItemIndex < 0 && this._wrap ? this.setLastItemActive() : this._setActiveItemByDelta(-1);
- }
- updateActiveItem(item) {
- const itemArray = this._getItemsArray();
- const index = typeof item === "number" ? item : itemArray.indexOf(item);
- const activeItem = itemArray[index];
- this._activeItem = activeItem == null ? null : activeItem;
- this._activeItemIndex = index;
- }
- /** Cleans up the key manager. */
- destroy() {
- this._typeaheadSubscription.unsubscribe();
- this._itemChangesSubscription?.unsubscribe();
- this._letterKeyStream.complete();
- this.tabOut.complete();
- this.change.complete();
- this._pressedLetters = [];
- }
- /**
- * This method sets the active item, given a list of items and the delta between the
- * currently active item and the new active item. It will calculate differently
- * depending on whether wrap mode is turned on.
- */
- _setActiveItemByDelta(delta) {
- this._wrap ? this._setActiveInWrapMode(delta) : this._setActiveInDefaultMode(delta);
- }
- /**
- * Sets the active item properly given "wrap" mode. In other words, it will continue to move
- * down the list until it finds an item that is not disabled, and it will wrap if it
- * encounters either end of the list.
- */
- _setActiveInWrapMode(delta) {
- const items = this._getItemsArray();
- for (let i = 1; i <= items.length; i++) {
- const index = (this._activeItemIndex + delta * i + items.length) % items.length;
- const item = items[index];
- if (!this._skipPredicateFn(item)) {
- this.setActiveItem(index);
- return;
- }
- }
- }
- /**
- * Sets the active item properly given the default mode. In other words, it will
- * continue to move down the list until it finds an item that is not disabled. If
- * it encounters either end of the list, it will stop and not wrap.
- */
- _setActiveInDefaultMode(delta) {
- this._setActiveItemByIndex(this._activeItemIndex + delta, delta);
- }
- /**
- * Sets the active item to the first enabled item starting at the index specified. If the
- * item is disabled, it will move in the fallbackDelta direction until it either
- * finds an enabled item or encounters the end of the list.
- */
- _setActiveItemByIndex(index, fallbackDelta) {
- const items = this._getItemsArray();
- if (!items[index]) {
- return;
- }
- while (this._skipPredicateFn(items[index])) {
- index += fallbackDelta;
- if (!items[index]) {
- return;
- }
- }
- this.setActiveItem(index);
- }
- /** Returns the items as an array. */
- _getItemsArray() {
- return this._items instanceof QueryList ? this._items.toArray() : this._items;
- }
-};
-var FocusKeyManager = class extends ListKeyManager {
- constructor() {
- super(...arguments);
- this._origin = "program";
- }
- /**
- * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.
- * @param origin Focus origin to be used when focusing items.
- */
- setFocusOrigin(origin) {
- this._origin = origin;
- return this;
- }
- setActiveItem(item) {
- super.setActiveItem(item);
- if (this.activeItem) {
- this.activeItem.focus(this._origin);
- }
- }
-};
-var _InteractivityChecker = class _InteractivityChecker {
- constructor(_platform) {
- this._platform = _platform;
- }
- /**
- * Gets whether an element is disabled.
- *
- * @param element Element to be checked.
- * @returns Whether the element is disabled.
- */
- isDisabled(element) {
- return element.hasAttribute("disabled");
- }
- /**
- * Gets whether an element is visible for the purposes of interactivity.
- *
- * This will capture states like `display: none` and `visibility: hidden`, but not things like
- * being clipped by an `overflow: hidden` parent or being outside the viewport.
- *
- * @returns Whether the element is visible.
- */
- isVisible(element) {
- return hasGeometry(element) && getComputedStyle(element).visibility === "visible";
- }
- /**
- * Gets whether an element can be reached via Tab key.
- * Assumes that the element has already been checked with isFocusable.
- *
- * @param element Element to be checked.
- * @returns Whether the element is tabbable.
- */
- isTabbable(element) {
- if (!this._platform.isBrowser) {
- return false;
- }
- const frameElement = getFrameElement(getWindow(element));
- if (frameElement) {
- if (getTabIndexValue(frameElement) === -1) {
- return false;
- }
- if (!this.isVisible(frameElement)) {
- return false;
- }
- }
- let nodeName = element.nodeName.toLowerCase();
- let tabIndexValue = getTabIndexValue(element);
- if (element.hasAttribute("contenteditable")) {
- return tabIndexValue !== -1;
- }
- if (nodeName === "iframe" || nodeName === "object") {
- return false;
- }
- if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {
- return false;
- }
- if (nodeName === "audio") {
- if (!element.hasAttribute("controls")) {
- return false;
- }
- return tabIndexValue !== -1;
- }
- if (nodeName === "video") {
- if (tabIndexValue === -1) {
- return false;
- }
- if (tabIndexValue !== null) {
- return true;
- }
- return this._platform.FIREFOX || element.hasAttribute("controls");
- }
- return element.tabIndex >= 0;
- }
- /**
- * Gets whether an element can be focused by the user.
- *
- * @param element Element to be checked.
- * @param config The config object with options to customize this method's behavior
- * @returns Whether the element is focusable.
- */
- isFocusable(element, config) {
- return isPotentiallyFocusable(element) && !this.isDisabled(element) && (config?.ignoreVisibility || this.isVisible(element));
- }
-};
-_InteractivityChecker.ɵfac = function InteractivityChecker_Factory(t) {
- return new (t || _InteractivityChecker)(ɵɵinject(Platform));
-};
-_InteractivityChecker.ɵprov = ɵɵdefineInjectable({
- token: _InteractivityChecker,
- factory: _InteractivityChecker.ɵfac,
- providedIn: "root"
-});
-var InteractivityChecker = _InteractivityChecker;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(InteractivityChecker, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: Platform
- }], null);
-})();
-function getFrameElement(window2) {
- try {
- return window2.frameElement;
- } catch {
- return null;
- }
-}
-function hasGeometry(element) {
- return !!(element.offsetWidth || element.offsetHeight || typeof element.getClientRects === "function" && element.getClientRects().length);
-}
-function isNativeFormElement(element) {
- let nodeName = element.nodeName.toLowerCase();
- return nodeName === "input" || nodeName === "select" || nodeName === "button" || nodeName === "textarea";
-}
-function isHiddenInput(element) {
- return isInputElement(element) && element.type == "hidden";
-}
-function isAnchorWithHref(element) {
- return isAnchorElement(element) && element.hasAttribute("href");
-}
-function isInputElement(element) {
- return element.nodeName.toLowerCase() == "input";
-}
-function isAnchorElement(element) {
- return element.nodeName.toLowerCase() == "a";
-}
-function hasValidTabIndex(element) {
- if (!element.hasAttribute("tabindex") || element.tabIndex === void 0) {
- return false;
- }
- let tabIndex = element.getAttribute("tabindex");
- return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));
-}
-function getTabIndexValue(element) {
- if (!hasValidTabIndex(element)) {
- return null;
- }
- const tabIndex = parseInt(element.getAttribute("tabindex") || "", 10);
- return isNaN(tabIndex) ? -1 : tabIndex;
-}
-function isPotentiallyTabbableIOS(element) {
- let nodeName = element.nodeName.toLowerCase();
- let inputType = nodeName === "input" && element.type;
- return inputType === "text" || inputType === "password" || nodeName === "select" || nodeName === "textarea";
-}
-function isPotentiallyFocusable(element) {
- if (isHiddenInput(element)) {
- return false;
- }
- return isNativeFormElement(element) || isAnchorWithHref(element) || element.hasAttribute("contenteditable") || hasValidTabIndex(element);
-}
-function getWindow(node) {
- return node.ownerDocument && node.ownerDocument.defaultView || window;
-}
-var FocusTrap = class {
- /** Whether the focus trap is active. */
- get enabled() {
- return this._enabled;
- }
- set enabled(value) {
- this._enabled = value;
- if (this._startAnchor && this._endAnchor) {
- this._toggleAnchorTabIndex(value, this._startAnchor);
- this._toggleAnchorTabIndex(value, this._endAnchor);
- }
- }
- constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {
- this._element = _element;
- this._checker = _checker;
- this._ngZone = _ngZone;
- this._document = _document;
- this._hasAttached = false;
- this.startAnchorListener = () => this.focusLastTabbableElement();
- this.endAnchorListener = () => this.focusFirstTabbableElement();
- this._enabled = true;
- if (!deferAnchors) {
- this.attachAnchors();
- }
- }
- /** Destroys the focus trap by cleaning up the anchors. */
- destroy() {
- const startAnchor = this._startAnchor;
- const endAnchor = this._endAnchor;
- if (startAnchor) {
- startAnchor.removeEventListener("focus", this.startAnchorListener);
- startAnchor.remove();
- }
- if (endAnchor) {
- endAnchor.removeEventListener("focus", this.endAnchorListener);
- endAnchor.remove();
- }
- this._startAnchor = this._endAnchor = null;
- this._hasAttached = false;
- }
- /**
- * Inserts the anchors into the DOM. This is usually done automatically
- * in the constructor, but can be deferred for cases like directives with `*ngIf`.
- * @returns Whether the focus trap managed to attach successfully. This may not be the case
- * if the target element isn't currently in the DOM.
- */
- attachAnchors() {
- if (this._hasAttached) {
- return true;
- }
- this._ngZone.runOutsideAngular(() => {
- if (!this._startAnchor) {
- this._startAnchor = this._createAnchor();
- this._startAnchor.addEventListener("focus", this.startAnchorListener);
- }
- if (!this._endAnchor) {
- this._endAnchor = this._createAnchor();
- this._endAnchor.addEventListener("focus", this.endAnchorListener);
- }
- });
- if (this._element.parentNode) {
- this._element.parentNode.insertBefore(this._startAnchor, this._element);
- this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);
- this._hasAttached = true;
- }
- return this._hasAttached;
- }
- /**
- * Waits for the zone to stabilize, then focuses the first tabbable element.
- * @returns Returns a promise that resolves with a boolean, depending
- * on whether focus was moved successfully.
- */
- focusInitialElementWhenReady(options) {
- return new Promise((resolve) => {
- this._executeOnStable(() => resolve(this.focusInitialElement(options)));
- });
- }
- /**
- * Waits for the zone to stabilize, then focuses
- * the first tabbable element within the focus trap region.
- * @returns Returns a promise that resolves with a boolean, depending
- * on whether focus was moved successfully.
- */
- focusFirstTabbableElementWhenReady(options) {
- return new Promise((resolve) => {
- this._executeOnStable(() => resolve(this.focusFirstTabbableElement(options)));
- });
- }
- /**
- * Waits for the zone to stabilize, then focuses
- * the last tabbable element within the focus trap region.
- * @returns Returns a promise that resolves with a boolean, depending
- * on whether focus was moved successfully.
- */
- focusLastTabbableElementWhenReady(options) {
- return new Promise((resolve) => {
- this._executeOnStable(() => resolve(this.focusLastTabbableElement(options)));
- });
- }
- /**
- * Get the specified boundary element of the trapped region.
- * @param bound The boundary to get (start or end of trapped region).
- * @returns The boundary element.
- */
- _getRegionBoundary(bound) {
- const markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], [cdkFocusRegion${bound}], [cdk-focus-${bound}]`);
- if (typeof ngDevMode === "undefined" || ngDevMode) {
- for (let i = 0; i < markers.length; i++) {
- if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {
- console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}', use 'cdkFocusRegion${bound}' instead. The deprecated attribute will be removed in 8.0.0.`, markers[i]);
- } else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {
- console.warn(`Found use of deprecated attribute 'cdk-focus-region-${bound}', use 'cdkFocusRegion${bound}' instead. The deprecated attribute will be removed in 8.0.0.`, markers[i]);
- }
- }
- }
- if (bound == "start") {
- return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);
- }
- return markers.length ? markers[markers.length - 1] : this._getLastTabbableElement(this._element);
- }
- /**
- * Focuses the element that should be focused when the focus trap is initialized.
- * @returns Whether focus was moved successfully.
- */
- focusInitialElement(options) {
- const redirectToElement = this._element.querySelector(`[cdk-focus-initial], [cdkFocusInitial]`);
- if (redirectToElement) {
- if ((typeof ngDevMode === "undefined" || ngDevMode) && redirectToElement.hasAttribute(`cdk-focus-initial`)) {
- console.warn(`Found use of deprecated attribute 'cdk-focus-initial', use 'cdkFocusInitial' instead. The deprecated attribute will be removed in 8.0.0`, redirectToElement);
- }
- if ((typeof ngDevMode === "undefined" || ngDevMode) && !this._checker.isFocusable(redirectToElement)) {
- console.warn(`Element matching '[cdkFocusInitial]' is not focusable.`, redirectToElement);
- }
- if (!this._checker.isFocusable(redirectToElement)) {
- const focusableChild = this._getFirstTabbableElement(redirectToElement);
- focusableChild?.focus(options);
- return !!focusableChild;
- }
- redirectToElement.focus(options);
- return true;
- }
- return this.focusFirstTabbableElement(options);
- }
- /**
- * Focuses the first tabbable element within the focus trap region.
- * @returns Whether focus was moved successfully.
- */
- focusFirstTabbableElement(options) {
- const redirectToElement = this._getRegionBoundary("start");
- if (redirectToElement) {
- redirectToElement.focus(options);
- }
- return !!redirectToElement;
- }
- /**
- * Focuses the last tabbable element within the focus trap region.
- * @returns Whether focus was moved successfully.
- */
- focusLastTabbableElement(options) {
- const redirectToElement = this._getRegionBoundary("end");
- if (redirectToElement) {
- redirectToElement.focus(options);
- }
- return !!redirectToElement;
- }
- /**
- * Checks whether the focus trap has successfully been attached.
- */
- hasAttached() {
- return this._hasAttached;
- }
- /** Get the first tabbable element from a DOM subtree (inclusive). */
- _getFirstTabbableElement(root) {
- if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
- return root;
- }
- const children = root.children;
- for (let i = 0; i < children.length; i++) {
- const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ? this._getFirstTabbableElement(children[i]) : null;
- if (tabbableChild) {
- return tabbableChild;
- }
- }
- return null;
- }
- /** Get the last tabbable element from a DOM subtree (inclusive). */
- _getLastTabbableElement(root) {
- if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
- return root;
- }
- const children = root.children;
- for (let i = children.length - 1; i >= 0; i--) {
- const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ? this._getLastTabbableElement(children[i]) : null;
- if (tabbableChild) {
- return tabbableChild;
- }
- }
- return null;
- }
- /** Creates an anchor element. */
- _createAnchor() {
- const anchor = this._document.createElement("div");
- this._toggleAnchorTabIndex(this._enabled, anchor);
- anchor.classList.add("cdk-visually-hidden");
- anchor.classList.add("cdk-focus-trap-anchor");
- anchor.setAttribute("aria-hidden", "true");
- return anchor;
- }
- /**
- * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.
- * @param isEnabled Whether the focus trap is enabled.
- * @param anchor Anchor on which to toggle the tabindex.
- */
- _toggleAnchorTabIndex(isEnabled, anchor) {
- isEnabled ? anchor.setAttribute("tabindex", "0") : anchor.removeAttribute("tabindex");
- }
- /**
- * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.
- * @param enabled: Whether the anchors should trap Tab.
- */
- toggleAnchors(enabled) {
- if (this._startAnchor && this._endAnchor) {
- this._toggleAnchorTabIndex(enabled, this._startAnchor);
- this._toggleAnchorTabIndex(enabled, this._endAnchor);
- }
- }
- /** Executes a function when the zone is stable. */
- _executeOnStable(fn) {
- if (this._ngZone.isStable) {
- fn();
- } else {
- this._ngZone.onStable.pipe(take(1)).subscribe(fn);
- }
- }
-};
-var _FocusTrapFactory = class _FocusTrapFactory {
- constructor(_checker, _ngZone, _document) {
- this._checker = _checker;
- this._ngZone = _ngZone;
- this._document = _document;
- }
- /**
- * Creates a focus-trapped region around the given element.
- * @param element The element around which focus will be trapped.
- * @param deferCaptureElements Defers the creation of focus-capturing elements to be done
- * manually by the user.
- * @returns The created focus trap instance.
- */
- create(element, deferCaptureElements = false) {
- return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);
- }
-};
-_FocusTrapFactory.ɵfac = function FocusTrapFactory_Factory(t) {
- return new (t || _FocusTrapFactory)(ɵɵinject(InteractivityChecker), ɵɵinject(NgZone), ɵɵinject(DOCUMENT));
-};
-_FocusTrapFactory.ɵprov = ɵɵdefineInjectable({
- token: _FocusTrapFactory,
- factory: _FocusTrapFactory.ɵfac,
- providedIn: "root"
-});
-var FocusTrapFactory = _FocusTrapFactory;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(FocusTrapFactory, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: InteractivityChecker
- }, {
- type: NgZone
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }], null);
-})();
-var _CdkTrapFocus = class _CdkTrapFocus {
- /** Whether the focus trap is active. */
- get enabled() {
- return this.focusTrap.enabled;
- }
- set enabled(value) {
- this.focusTrap.enabled = value;
- }
- constructor(_elementRef, _focusTrapFactory, _document) {
- this._elementRef = _elementRef;
- this._focusTrapFactory = _focusTrapFactory;
- this._previouslyFocusedElement = null;
- this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);
- }
- ngOnDestroy() {
- this.focusTrap.destroy();
- if (this._previouslyFocusedElement) {
- this._previouslyFocusedElement.focus();
- this._previouslyFocusedElement = null;
- }
- }
- ngAfterContentInit() {
- this.focusTrap.attachAnchors();
- if (this.autoCapture) {
- this._captureFocus();
- }
- }
- ngDoCheck() {
- if (!this.focusTrap.hasAttached()) {
- this.focusTrap.attachAnchors();
- }
- }
- ngOnChanges(changes) {
- const autoCaptureChange = changes["autoCapture"];
- if (autoCaptureChange && !autoCaptureChange.firstChange && this.autoCapture && this.focusTrap.hasAttached()) {
- this._captureFocus();
- }
- }
- _captureFocus() {
- this._previouslyFocusedElement = _getFocusedElementPierceShadowDom();
- this.focusTrap.focusInitialElementWhenReady();
- }
-};
-_CdkTrapFocus.ɵfac = function CdkTrapFocus_Factory(t) {
- return new (t || _CdkTrapFocus)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(FocusTrapFactory), ɵɵdirectiveInject(DOCUMENT));
-};
-_CdkTrapFocus.ɵdir = ɵɵdefineDirective({
- type: _CdkTrapFocus,
- selectors: [["", "cdkTrapFocus", ""]],
- inputs: {
- enabled: ["cdkTrapFocus", "enabled", booleanAttribute],
- autoCapture: ["cdkTrapFocusAutoCapture", "autoCapture", booleanAttribute]
- },
- exportAs: ["cdkTrapFocus"],
- features: [ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature]
-});
-var CdkTrapFocus = _CdkTrapFocus;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkTrapFocus, [{
- type: Directive,
- args: [{
- selector: "[cdkTrapFocus]",
- exportAs: "cdkTrapFocus"
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: FocusTrapFactory
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }], {
- enabled: [{
- type: Input,
- args: [{
- alias: "cdkTrapFocus",
- transform: booleanAttribute
- }]
- }],
- autoCapture: [{
- type: Input,
- args: [{
- alias: "cdkTrapFocusAutoCapture",
- transform: booleanAttribute
- }]
- }]
- });
-})();
-var ConfigurableFocusTrap = class extends FocusTrap {
- /** Whether the FocusTrap is enabled. */
- get enabled() {
- return this._enabled;
- }
- set enabled(value) {
- this._enabled = value;
- if (this._enabled) {
- this._focusTrapManager.register(this);
- } else {
- this._focusTrapManager.deregister(this);
- }
- }
- constructor(_element, _checker, _ngZone, _document, _focusTrapManager, _inertStrategy, config) {
- super(_element, _checker, _ngZone, _document, config.defer);
- this._focusTrapManager = _focusTrapManager;
- this._inertStrategy = _inertStrategy;
- this._focusTrapManager.register(this);
- }
- /** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */
- destroy() {
- this._focusTrapManager.deregister(this);
- super.destroy();
- }
- /** @docs-private Implemented as part of ManagedFocusTrap. */
- _enable() {
- this._inertStrategy.preventFocus(this);
- this.toggleAnchors(true);
- }
- /** @docs-private Implemented as part of ManagedFocusTrap. */
- _disable() {
- this._inertStrategy.allowFocus(this);
- this.toggleAnchors(false);
- }
-};
-var FOCUS_TRAP_INERT_STRATEGY = new InjectionToken("FOCUS_TRAP_INERT_STRATEGY");
-var EventListenerFocusTrapInertStrategy = class {
- constructor() {
- this._listener = null;
- }
- /** Adds a document event listener that keeps focus inside the FocusTrap. */
- preventFocus(focusTrap) {
- if (this._listener) {
- focusTrap._document.removeEventListener("focus", this._listener, true);
- }
- this._listener = (e) => this._trapFocus(focusTrap, e);
- focusTrap._ngZone.runOutsideAngular(() => {
- focusTrap._document.addEventListener("focus", this._listener, true);
- });
- }
- /** Removes the event listener added in preventFocus. */
- allowFocus(focusTrap) {
- if (!this._listener) {
- return;
- }
- focusTrap._document.removeEventListener("focus", this._listener, true);
- this._listener = null;
- }
- /**
- * Refocuses the first element in the FocusTrap if the focus event target was outside
- * the FocusTrap.
- *
- * This is an event listener callback. The event listener is added in runOutsideAngular,
- * so all this code runs outside Angular as well.
- */
- _trapFocus(focusTrap, event) {
- const target = event.target;
- const focusTrapRoot = focusTrap._element;
- if (target && !focusTrapRoot.contains(target) && !target.closest?.("div.cdk-overlay-pane")) {
- setTimeout(() => {
- if (focusTrap.enabled && !focusTrapRoot.contains(focusTrap._document.activeElement)) {
- focusTrap.focusFirstTabbableElement();
- }
- });
- }
- }
-};
-var _FocusTrapManager = class _FocusTrapManager {
- constructor() {
- this._focusTrapStack = [];
- }
- /**
- * Disables the FocusTrap at the top of the stack, and then pushes
- * the new FocusTrap onto the stack.
- */
- register(focusTrap) {
- this._focusTrapStack = this._focusTrapStack.filter((ft) => ft !== focusTrap);
- let stack = this._focusTrapStack;
- if (stack.length) {
- stack[stack.length - 1]._disable();
- }
- stack.push(focusTrap);
- focusTrap._enable();
- }
- /**
- * Removes the FocusTrap from the stack, and activates the
- * FocusTrap that is the new top of the stack.
- */
- deregister(focusTrap) {
- focusTrap._disable();
- const stack = this._focusTrapStack;
- const i = stack.indexOf(focusTrap);
- if (i !== -1) {
- stack.splice(i, 1);
- if (stack.length) {
- stack[stack.length - 1]._enable();
- }
- }
- }
-};
-_FocusTrapManager.ɵfac = function FocusTrapManager_Factory(t) {
- return new (t || _FocusTrapManager)();
-};
-_FocusTrapManager.ɵprov = ɵɵdefineInjectable({
- token: _FocusTrapManager,
- factory: _FocusTrapManager.ɵfac,
- providedIn: "root"
-});
-var FocusTrapManager = _FocusTrapManager;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(FocusTrapManager, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], null, null);
-})();
-var _ConfigurableFocusTrapFactory = class _ConfigurableFocusTrapFactory {
- constructor(_checker, _ngZone, _focusTrapManager, _document, _inertStrategy) {
- this._checker = _checker;
- this._ngZone = _ngZone;
- this._focusTrapManager = _focusTrapManager;
- this._document = _document;
- this._inertStrategy = _inertStrategy || new EventListenerFocusTrapInertStrategy();
- }
- create(element, config = {
- defer: false
- }) {
- let configObject;
- if (typeof config === "boolean") {
- configObject = {
- defer: config
- };
- } else {
- configObject = config;
- }
- return new ConfigurableFocusTrap(element, this._checker, this._ngZone, this._document, this._focusTrapManager, this._inertStrategy, configObject);
- }
-};
-_ConfigurableFocusTrapFactory.ɵfac = function ConfigurableFocusTrapFactory_Factory(t) {
- return new (t || _ConfigurableFocusTrapFactory)(ɵɵinject(InteractivityChecker), ɵɵinject(NgZone), ɵɵinject(FocusTrapManager), ɵɵinject(DOCUMENT), ɵɵinject(FOCUS_TRAP_INERT_STRATEGY, 8));
-};
-_ConfigurableFocusTrapFactory.ɵprov = ɵɵdefineInjectable({
- token: _ConfigurableFocusTrapFactory,
- factory: _ConfigurableFocusTrapFactory.ɵfac,
- providedIn: "root"
-});
-var ConfigurableFocusTrapFactory = _ConfigurableFocusTrapFactory;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ConfigurableFocusTrapFactory, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: InteractivityChecker
- }, {
- type: NgZone
- }, {
- type: FocusTrapManager
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [FOCUS_TRAP_INERT_STRATEGY]
- }]
- }], null);
-})();
-function isFakeMousedownFromScreenReader(event) {
- return event.buttons === 0 || event.detail === 0;
-}
-function isFakeTouchstartFromScreenReader(event) {
- const touch = event.touches && event.touches[0] || event.changedTouches && event.changedTouches[0];
- return !!touch && touch.identifier === -1 && (touch.radiusX == null || touch.radiusX === 1) && (touch.radiusY == null || touch.radiusY === 1);
-}
-var INPUT_MODALITY_DETECTOR_OPTIONS = new InjectionToken("cdk-input-modality-detector-options");
-var INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS = {
- ignoreKeys: [ALT, CONTROL, MAC_META, META, SHIFT]
-};
-var TOUCH_BUFFER_MS = 650;
-var modalityEventListenerOptions = normalizePassiveListenerOptions({
- passive: true,
- capture: true
-});
-var _InputModalityDetector = class _InputModalityDetector {
- /** The most recently detected input modality. */
- get mostRecentModality() {
- return this._modality.value;
- }
- constructor(_platform, ngZone, document2, options) {
- this._platform = _platform;
- this._mostRecentTarget = null;
- this._modality = new BehaviorSubject(null);
- this._lastTouchMs = 0;
- this._onKeydown = (event) => {
- if (this._options?.ignoreKeys?.some((keyCode) => keyCode === event.keyCode)) {
- return;
- }
- this._modality.next("keyboard");
- this._mostRecentTarget = _getEventTarget(event);
- };
- this._onMousedown = (event) => {
- if (Date.now() - this._lastTouchMs < TOUCH_BUFFER_MS) {
- return;
- }
- this._modality.next(isFakeMousedownFromScreenReader(event) ? "keyboard" : "mouse");
- this._mostRecentTarget = _getEventTarget(event);
- };
- this._onTouchstart = (event) => {
- if (isFakeTouchstartFromScreenReader(event)) {
- this._modality.next("keyboard");
- return;
- }
- this._lastTouchMs = Date.now();
- this._modality.next("touch");
- this._mostRecentTarget = _getEventTarget(event);
- };
- this._options = __spreadValues(__spreadValues({}, INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS), options);
- this.modalityDetected = this._modality.pipe(skip(1));
- this.modalityChanged = this.modalityDetected.pipe(distinctUntilChanged());
- if (_platform.isBrowser) {
- ngZone.runOutsideAngular(() => {
- document2.addEventListener("keydown", this._onKeydown, modalityEventListenerOptions);
- document2.addEventListener("mousedown", this._onMousedown, modalityEventListenerOptions);
- document2.addEventListener("touchstart", this._onTouchstart, modalityEventListenerOptions);
- });
- }
- }
- ngOnDestroy() {
- this._modality.complete();
- if (this._platform.isBrowser) {
- document.removeEventListener("keydown", this._onKeydown, modalityEventListenerOptions);
- document.removeEventListener("mousedown", this._onMousedown, modalityEventListenerOptions);
- document.removeEventListener("touchstart", this._onTouchstart, modalityEventListenerOptions);
- }
- }
-};
-_InputModalityDetector.ɵfac = function InputModalityDetector_Factory(t) {
- return new (t || _InputModalityDetector)(ɵɵinject(Platform), ɵɵinject(NgZone), ɵɵinject(DOCUMENT), ɵɵinject(INPUT_MODALITY_DETECTOR_OPTIONS, 8));
-};
-_InputModalityDetector.ɵprov = ɵɵdefineInjectable({
- token: _InputModalityDetector,
- factory: _InputModalityDetector.ɵfac,
- providedIn: "root"
-});
-var InputModalityDetector = _InputModalityDetector;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(InputModalityDetector, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: Platform
- }, {
- type: NgZone
- }, {
- type: Document,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [INPUT_MODALITY_DETECTOR_OPTIONS]
- }]
- }], null);
-})();
-var LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken("liveAnnouncerElement", {
- providedIn: "root",
- factory: LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY
-});
-function LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY() {
- return null;
-}
-var LIVE_ANNOUNCER_DEFAULT_OPTIONS = new InjectionToken("LIVE_ANNOUNCER_DEFAULT_OPTIONS");
-var uniqueIds = 0;
-var _LiveAnnouncer = class _LiveAnnouncer {
- constructor(elementToken, _ngZone, _document, _defaultOptions) {
- this._ngZone = _ngZone;
- this._defaultOptions = _defaultOptions;
- this._document = _document;
- this._liveElement = elementToken || this._createLiveElement();
- }
- announce(message, ...args) {
- const defaultOptions = this._defaultOptions;
- let politeness;
- let duration;
- if (args.length === 1 && typeof args[0] === "number") {
- duration = args[0];
- } else {
- [politeness, duration] = args;
- }
- this.clear();
- clearTimeout(this._previousTimeout);
- if (!politeness) {
- politeness = defaultOptions && defaultOptions.politeness ? defaultOptions.politeness : "polite";
- }
- if (duration == null && defaultOptions) {
- duration = defaultOptions.duration;
- }
- this._liveElement.setAttribute("aria-live", politeness);
- if (this._liveElement.id) {
- this._exposeAnnouncerToModals(this._liveElement.id);
- }
- return this._ngZone.runOutsideAngular(() => {
- if (!this._currentPromise) {
- this._currentPromise = new Promise((resolve) => this._currentResolve = resolve);
- }
- clearTimeout(this._previousTimeout);
- this._previousTimeout = setTimeout(() => {
- this._liveElement.textContent = message;
- if (typeof duration === "number") {
- this._previousTimeout = setTimeout(() => this.clear(), duration);
- }
- this._currentResolve();
- this._currentPromise = this._currentResolve = void 0;
- }, 100);
- return this._currentPromise;
- });
- }
- /**
- * Clears the current text from the announcer element. Can be used to prevent
- * screen readers from reading the text out again while the user is going
- * through the page landmarks.
- */
- clear() {
- if (this._liveElement) {
- this._liveElement.textContent = "";
- }
- }
- ngOnDestroy() {
- clearTimeout(this._previousTimeout);
- this._liveElement?.remove();
- this._liveElement = null;
- this._currentResolve?.();
- this._currentPromise = this._currentResolve = void 0;
- }
- _createLiveElement() {
- const elementClass = "cdk-live-announcer-element";
- const previousElements = this._document.getElementsByClassName(elementClass);
- const liveEl = this._document.createElement("div");
- for (let i = 0; i < previousElements.length; i++) {
- previousElements[i].remove();
- }
- liveEl.classList.add(elementClass);
- liveEl.classList.add("cdk-visually-hidden");
- liveEl.setAttribute("aria-atomic", "true");
- liveEl.setAttribute("aria-live", "polite");
- liveEl.id = `cdk-live-announcer-${uniqueIds++}`;
- this._document.body.appendChild(liveEl);
- return liveEl;
- }
- /**
- * Some browsers won't expose the accessibility node of the live announcer element if there is an
- * `aria-modal` and the live announcer is outside of it. This method works around the issue by
- * pointing the `aria-owns` of all modals to the live announcer element.
- */
- _exposeAnnouncerToModals(id) {
- const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');
- for (let i = 0; i < modals.length; i++) {
- const modal = modals[i];
- const ariaOwns = modal.getAttribute("aria-owns");
- if (!ariaOwns) {
- modal.setAttribute("aria-owns", id);
- } else if (ariaOwns.indexOf(id) === -1) {
- modal.setAttribute("aria-owns", ariaOwns + " " + id);
- }
- }
- }
-};
-_LiveAnnouncer.ɵfac = function LiveAnnouncer_Factory(t) {
- return new (t || _LiveAnnouncer)(ɵɵinject(LIVE_ANNOUNCER_ELEMENT_TOKEN, 8), ɵɵinject(NgZone), ɵɵinject(DOCUMENT), ɵɵinject(LIVE_ANNOUNCER_DEFAULT_OPTIONS, 8));
-};
-_LiveAnnouncer.ɵprov = ɵɵdefineInjectable({
- token: _LiveAnnouncer,
- factory: _LiveAnnouncer.ɵfac,
- providedIn: "root"
-});
-var LiveAnnouncer = _LiveAnnouncer;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(LiveAnnouncer, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [LIVE_ANNOUNCER_ELEMENT_TOKEN]
- }]
- }, {
- type: NgZone
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [LIVE_ANNOUNCER_DEFAULT_OPTIONS]
- }]
- }], null);
-})();
-var _CdkAriaLive = class _CdkAriaLive {
- /** The aria-live politeness level to use when announcing messages. */
- get politeness() {
- return this._politeness;
- }
- set politeness(value) {
- this._politeness = value === "off" || value === "assertive" ? value : "polite";
- if (this._politeness === "off") {
- if (this._subscription) {
- this._subscription.unsubscribe();
- this._subscription = null;
- }
- } else if (!this._subscription) {
- this._subscription = this._ngZone.runOutsideAngular(() => {
- return this._contentObserver.observe(this._elementRef).subscribe(() => {
- const elementText = this._elementRef.nativeElement.textContent;
- if (elementText !== this._previousAnnouncedText) {
- this._liveAnnouncer.announce(elementText, this._politeness, this.duration);
- this._previousAnnouncedText = elementText;
- }
- });
- });
- }
- }
- constructor(_elementRef, _liveAnnouncer, _contentObserver, _ngZone) {
- this._elementRef = _elementRef;
- this._liveAnnouncer = _liveAnnouncer;
- this._contentObserver = _contentObserver;
- this._ngZone = _ngZone;
- this._politeness = "polite";
- }
- ngOnDestroy() {
- if (this._subscription) {
- this._subscription.unsubscribe();
- }
- }
-};
-_CdkAriaLive.ɵfac = function CdkAriaLive_Factory(t) {
- return new (t || _CdkAriaLive)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(LiveAnnouncer), ɵɵdirectiveInject(ContentObserver), ɵɵdirectiveInject(NgZone));
-};
-_CdkAriaLive.ɵdir = ɵɵdefineDirective({
- type: _CdkAriaLive,
- selectors: [["", "cdkAriaLive", ""]],
- inputs: {
- politeness: ["cdkAriaLive", "politeness"],
- duration: ["cdkAriaLiveDuration", "duration"]
- },
- exportAs: ["cdkAriaLive"]
-});
-var CdkAriaLive = _CdkAriaLive;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkAriaLive, [{
- type: Directive,
- args: [{
- selector: "[cdkAriaLive]",
- exportAs: "cdkAriaLive"
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: LiveAnnouncer
- }, {
- type: ContentObserver
- }, {
- type: NgZone
- }], {
- politeness: [{
- type: Input,
- args: ["cdkAriaLive"]
- }],
- duration: [{
- type: Input,
- args: ["cdkAriaLiveDuration"]
- }]
- });
-})();
-var FOCUS_MONITOR_DEFAULT_OPTIONS = new InjectionToken("cdk-focus-monitor-default-options");
-var captureEventListenerOptions = normalizePassiveListenerOptions({
- passive: true,
- capture: true
-});
-var _FocusMonitor = class _FocusMonitor {
- constructor(_ngZone, _platform, _inputModalityDetector, document2, options) {
- this._ngZone = _ngZone;
- this._platform = _platform;
- this._inputModalityDetector = _inputModalityDetector;
- this._origin = null;
- this._windowFocused = false;
- this._originFromTouchInteraction = false;
- this._elementInfo = /* @__PURE__ */ new Map();
- this._monitoredElementCount = 0;
- this._rootNodeFocusListenerCount = /* @__PURE__ */ new Map();
- this._windowFocusListener = () => {
- this._windowFocused = true;
- this._windowFocusTimeoutId = window.setTimeout(() => this._windowFocused = false);
- };
- this._stopInputModalityDetector = new Subject();
- this._rootNodeFocusAndBlurListener = (event) => {
- const target = _getEventTarget(event);
- for (let element = target; element; element = element.parentElement) {
- if (event.type === "focus") {
- this._onFocus(event, element);
- } else {
- this._onBlur(event, element);
- }
- }
- };
- this._document = document2;
- this._detectionMode = options?.detectionMode || 0;
- }
- monitor(element, checkChildren = false) {
- const nativeElement = coerceElement(element);
- if (!this._platform.isBrowser || nativeElement.nodeType !== 1) {
- return of();
- }
- const rootNode = _getShadowRoot(nativeElement) || this._getDocument();
- const cachedInfo = this._elementInfo.get(nativeElement);
- if (cachedInfo) {
- if (checkChildren) {
- cachedInfo.checkChildren = true;
- }
- return cachedInfo.subject;
- }
- const info = {
- checkChildren,
- subject: new Subject(),
- rootNode
- };
- this._elementInfo.set(nativeElement, info);
- this._registerGlobalListeners(info);
- return info.subject;
- }
- stopMonitoring(element) {
- const nativeElement = coerceElement(element);
- const elementInfo = this._elementInfo.get(nativeElement);
- if (elementInfo) {
- elementInfo.subject.complete();
- this._setClasses(nativeElement);
- this._elementInfo.delete(nativeElement);
- this._removeGlobalListeners(elementInfo);
- }
- }
- focusVia(element, origin, options) {
- const nativeElement = coerceElement(element);
- const focusedElement = this._getDocument().activeElement;
- if (nativeElement === focusedElement) {
- this._getClosestElementsInfo(nativeElement).forEach(([currentElement, info]) => this._originChanged(currentElement, origin, info));
- } else {
- this._setOrigin(origin);
- if (typeof nativeElement.focus === "function") {
- nativeElement.focus(options);
- }
- }
- }
- ngOnDestroy() {
- this._elementInfo.forEach((_info, element) => this.stopMonitoring(element));
- }
- /** Access injected document if available or fallback to global document reference */
- _getDocument() {
- return this._document || document;
- }
- /** Use defaultView of injected document if available or fallback to global window reference */
- _getWindow() {
- const doc = this._getDocument();
- return doc.defaultView || window;
- }
- _getFocusOrigin(focusEventTarget) {
- if (this._origin) {
- if (this._originFromTouchInteraction) {
- return this._shouldBeAttributedToTouch(focusEventTarget) ? "touch" : "program";
- } else {
- return this._origin;
- }
- }
- if (this._windowFocused && this._lastFocusOrigin) {
- return this._lastFocusOrigin;
- }
- if (focusEventTarget && this._isLastInteractionFromInputLabel(focusEventTarget)) {
- return "mouse";
- }
- return "program";
- }
- /**
- * Returns whether the focus event should be attributed to touch. Recall that in IMMEDIATE mode, a
- * touch origin isn't immediately reset at the next tick (see _setOrigin). This means that when we
- * handle a focus event following a touch interaction, we need to determine whether (1) the focus
- * event was directly caused by the touch interaction or (2) the focus event was caused by a
- * subsequent programmatic focus call triggered by the touch interaction.
- * @param focusEventTarget The target of the focus event under examination.
- */
- _shouldBeAttributedToTouch(focusEventTarget) {
- return this._detectionMode === 1 || !!focusEventTarget?.contains(this._inputModalityDetector._mostRecentTarget);
- }
- /**
- * Sets the focus classes on the element based on the given focus origin.
- * @param element The element to update the classes on.
- * @param origin The focus origin.
- */
- _setClasses(element, origin) {
- element.classList.toggle("cdk-focused", !!origin);
- element.classList.toggle("cdk-touch-focused", origin === "touch");
- element.classList.toggle("cdk-keyboard-focused", origin === "keyboard");
- element.classList.toggle("cdk-mouse-focused", origin === "mouse");
- element.classList.toggle("cdk-program-focused", origin === "program");
- }
- /**
- * Updates the focus origin. If we're using immediate detection mode, we schedule an async
- * function to clear the origin at the end of a timeout. The duration of the timeout depends on
- * the origin being set.
- * @param origin The origin to set.
- * @param isFromInteraction Whether we are setting the origin from an interaction event.
- */
- _setOrigin(origin, isFromInteraction = false) {
- this._ngZone.runOutsideAngular(() => {
- this._origin = origin;
- this._originFromTouchInteraction = origin === "touch" && isFromInteraction;
- if (this._detectionMode === 0) {
- clearTimeout(this._originTimeoutId);
- const ms = this._originFromTouchInteraction ? TOUCH_BUFFER_MS : 1;
- this._originTimeoutId = setTimeout(() => this._origin = null, ms);
- }
- });
- }
- /**
- * Handles focus events on a registered element.
- * @param event The focus event.
- * @param element The monitored element.
- */
- _onFocus(event, element) {
- const elementInfo = this._elementInfo.get(element);
- const focusEventTarget = _getEventTarget(event);
- if (!elementInfo || !elementInfo.checkChildren && element !== focusEventTarget) {
- return;
- }
- this._originChanged(element, this._getFocusOrigin(focusEventTarget), elementInfo);
- }
- /**
- * Handles blur events on a registered element.
- * @param event The blur event.
- * @param element The monitored element.
- */
- _onBlur(event, element) {
- const elementInfo = this._elementInfo.get(element);
- if (!elementInfo || elementInfo.checkChildren && event.relatedTarget instanceof Node && element.contains(event.relatedTarget)) {
- return;
- }
- this._setClasses(element);
- this._emitOrigin(elementInfo, null);
- }
- _emitOrigin(info, origin) {
- if (info.subject.observers.length) {
- this._ngZone.run(() => info.subject.next(origin));
- }
- }
- _registerGlobalListeners(elementInfo) {
- if (!this._platform.isBrowser) {
- return;
- }
- const rootNode = elementInfo.rootNode;
- const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode) || 0;
- if (!rootNodeFocusListeners) {
- this._ngZone.runOutsideAngular(() => {
- rootNode.addEventListener("focus", this._rootNodeFocusAndBlurListener, captureEventListenerOptions);
- rootNode.addEventListener("blur", this._rootNodeFocusAndBlurListener, captureEventListenerOptions);
- });
- }
- this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners + 1);
- if (++this._monitoredElementCount === 1) {
- this._ngZone.runOutsideAngular(() => {
- const window2 = this._getWindow();
- window2.addEventListener("focus", this._windowFocusListener);
- });
- this._inputModalityDetector.modalityDetected.pipe(takeUntil(this._stopInputModalityDetector)).subscribe((modality) => {
- this._setOrigin(
- modality,
- true
- /* isFromInteraction */
- );
- });
- }
- }
- _removeGlobalListeners(elementInfo) {
- const rootNode = elementInfo.rootNode;
- if (this._rootNodeFocusListenerCount.has(rootNode)) {
- const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode);
- if (rootNodeFocusListeners > 1) {
- this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners - 1);
- } else {
- rootNode.removeEventListener("focus", this._rootNodeFocusAndBlurListener, captureEventListenerOptions);
- rootNode.removeEventListener("blur", this._rootNodeFocusAndBlurListener, captureEventListenerOptions);
- this._rootNodeFocusListenerCount.delete(rootNode);
- }
- }
- if (!--this._monitoredElementCount) {
- const window2 = this._getWindow();
- window2.removeEventListener("focus", this._windowFocusListener);
- this._stopInputModalityDetector.next();
- clearTimeout(this._windowFocusTimeoutId);
- clearTimeout(this._originTimeoutId);
- }
- }
- /** Updates all the state on an element once its focus origin has changed. */
- _originChanged(element, origin, elementInfo) {
- this._setClasses(element, origin);
- this._emitOrigin(elementInfo, origin);
- this._lastFocusOrigin = origin;
- }
- /**
- * Collects the `MonitoredElementInfo` of a particular element and
- * all of its ancestors that have enabled `checkChildren`.
- * @param element Element from which to start the search.
- */
- _getClosestElementsInfo(element) {
- const results = [];
- this._elementInfo.forEach((info, currentElement) => {
- if (currentElement === element || info.checkChildren && currentElement.contains(element)) {
- results.push([currentElement, info]);
- }
- });
- return results;
- }
- /**
- * Returns whether an interaction is likely to have come from the user clicking the `label` of
- * an `input` or `textarea` in order to focus it.
- * @param focusEventTarget Target currently receiving focus.
- */
- _isLastInteractionFromInputLabel(focusEventTarget) {
- const {
- _mostRecentTarget: mostRecentTarget,
- mostRecentModality
- } = this._inputModalityDetector;
- if (mostRecentModality !== "mouse" || !mostRecentTarget || mostRecentTarget === focusEventTarget || focusEventTarget.nodeName !== "INPUT" && focusEventTarget.nodeName !== "TEXTAREA" || focusEventTarget.disabled) {
- return false;
- }
- const labels = focusEventTarget.labels;
- if (labels) {
- for (let i = 0; i < labels.length; i++) {
- if (labels[i].contains(mostRecentTarget)) {
- return true;
- }
- }
- }
- return false;
- }
-};
-_FocusMonitor.ɵfac = function FocusMonitor_Factory(t) {
- return new (t || _FocusMonitor)(ɵɵinject(NgZone), ɵɵinject(Platform), ɵɵinject(InputModalityDetector), ɵɵinject(DOCUMENT, 8), ɵɵinject(FOCUS_MONITOR_DEFAULT_OPTIONS, 8));
-};
-_FocusMonitor.ɵprov = ɵɵdefineInjectable({
- token: _FocusMonitor,
- factory: _FocusMonitor.ɵfac,
- providedIn: "root"
-});
-var FocusMonitor = _FocusMonitor;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(FocusMonitor, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: NgZone
- }, {
- type: Platform
- }, {
- type: InputModalityDetector
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [FOCUS_MONITOR_DEFAULT_OPTIONS]
- }]
- }], null);
-})();
-var _CdkMonitorFocus = class _CdkMonitorFocus {
- constructor(_elementRef, _focusMonitor) {
- this._elementRef = _elementRef;
- this._focusMonitor = _focusMonitor;
- this._focusOrigin = null;
- this.cdkFocusChange = new EventEmitter();
- }
- get focusOrigin() {
- return this._focusOrigin;
- }
- ngAfterViewInit() {
- const element = this._elementRef.nativeElement;
- this._monitorSubscription = this._focusMonitor.monitor(element, element.nodeType === 1 && element.hasAttribute("cdkMonitorSubtreeFocus")).subscribe((origin) => {
- this._focusOrigin = origin;
- this.cdkFocusChange.emit(origin);
- });
- }
- ngOnDestroy() {
- this._focusMonitor.stopMonitoring(this._elementRef);
- if (this._monitorSubscription) {
- this._monitorSubscription.unsubscribe();
- }
- }
-};
-_CdkMonitorFocus.ɵfac = function CdkMonitorFocus_Factory(t) {
- return new (t || _CdkMonitorFocus)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(FocusMonitor));
-};
-_CdkMonitorFocus.ɵdir = ɵɵdefineDirective({
- type: _CdkMonitorFocus,
- selectors: [["", "cdkMonitorElementFocus", ""], ["", "cdkMonitorSubtreeFocus", ""]],
- outputs: {
- cdkFocusChange: "cdkFocusChange"
- },
- exportAs: ["cdkMonitorFocus"]
-});
-var CdkMonitorFocus = _CdkMonitorFocus;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CdkMonitorFocus, [{
- type: Directive,
- args: [{
- selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]",
- exportAs: "cdkMonitorFocus"
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: FocusMonitor
- }], {
- cdkFocusChange: [{
- type: Output
- }]
- });
-})();
-var BLACK_ON_WHITE_CSS_CLASS = "cdk-high-contrast-black-on-white";
-var WHITE_ON_BLACK_CSS_CLASS = "cdk-high-contrast-white-on-black";
-var HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS = "cdk-high-contrast-active";
-var _HighContrastModeDetector = class _HighContrastModeDetector {
- constructor(_platform, document2) {
- this._platform = _platform;
- this._document = document2;
- this._breakpointSubscription = inject(BreakpointObserver).observe("(forced-colors: active)").subscribe(() => {
- if (this._hasCheckedHighContrastMode) {
- this._hasCheckedHighContrastMode = false;
- this._applyBodyHighContrastModeCssClasses();
- }
- });
- }
- /** Gets the current high-contrast-mode for the page. */
- getHighContrastMode() {
- if (!this._platform.isBrowser) {
- return 0;
- }
- const testElement = this._document.createElement("div");
- testElement.style.backgroundColor = "rgb(1,2,3)";
- testElement.style.position = "absolute";
- this._document.body.appendChild(testElement);
- const documentWindow = this._document.defaultView || window;
- const computedStyle = documentWindow && documentWindow.getComputedStyle ? documentWindow.getComputedStyle(testElement) : null;
- const computedColor = (computedStyle && computedStyle.backgroundColor || "").replace(/ /g, "");
- testElement.remove();
- switch (computedColor) {
- case "rgb(0,0,0)":
- case "rgb(45,50,54)":
- case "rgb(32,32,32)":
- return 2;
- case "rgb(255,255,255)":
- case "rgb(255,250,239)":
- return 1;
- }
- return 0;
- }
- ngOnDestroy() {
- this._breakpointSubscription.unsubscribe();
- }
- /** Applies CSS classes indicating high-contrast mode to document body (browser-only). */
- _applyBodyHighContrastModeCssClasses() {
- if (!this._hasCheckedHighContrastMode && this._platform.isBrowser && this._document.body) {
- const bodyClasses = this._document.body.classList;
- bodyClasses.remove(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);
- this._hasCheckedHighContrastMode = true;
- const mode = this.getHighContrastMode();
- if (mode === 1) {
- bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS);
- } else if (mode === 2) {
- bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);
- }
- }
- }
-};
-_HighContrastModeDetector.ɵfac = function HighContrastModeDetector_Factory(t) {
- return new (t || _HighContrastModeDetector)(ɵɵinject(Platform), ɵɵinject(DOCUMENT));
-};
-_HighContrastModeDetector.ɵprov = ɵɵdefineInjectable({
- token: _HighContrastModeDetector,
- factory: _HighContrastModeDetector.ɵfac,
- providedIn: "root"
-});
-var HighContrastModeDetector = _HighContrastModeDetector;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(HighContrastModeDetector, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: Platform
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [DOCUMENT]
- }]
- }], null);
-})();
-var _A11yModule = class _A11yModule {
- constructor(highContrastModeDetector) {
- highContrastModeDetector._applyBodyHighContrastModeCssClasses();
- }
-};
-_A11yModule.ɵfac = function A11yModule_Factory(t) {
- return new (t || _A11yModule)(ɵɵinject(HighContrastModeDetector));
-};
-_A11yModule.ɵmod = ɵɵdefineNgModule({
- type: _A11yModule,
- declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],
- imports: [ObserversModule],
- exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus]
-});
-_A11yModule.ɵinj = ɵɵdefineInjector({
- imports: [ObserversModule]
-});
-var A11yModule = _A11yModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(A11yModule, [{
- type: NgModule,
- args: [{
- imports: [ObserversModule],
- declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],
- exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus]
- }]
- }], () => [{
- type: HighContrastModeDetector
- }], null);
-})();
-
-export {
- FocusKeyManager,
- FocusTrapFactory,
- FocusMonitor,
- CdkMonitorFocus,
- A11yModule
-};
-//# sourceMappingURL=chunk-E6XJDY45.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-E6XJDY45.js.map b/.angular/cache/17.0.7/vite/deps/chunk-E6XJDY45.js.map
deleted file mode 100644
index 7aab48b..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-E6XJDY45.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/@angular/cdk/fesm2022/observers.mjs", "../../../../../node_modules/@angular/cdk/fesm2022/a11y.mjs"],
- "sourcesContent": ["import { coerceElement, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, booleanAttribute, Directive, Output, Input, NgModule } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * @docs-private\n */\nclass MutationObserverFactory {\n create(callback) {\n return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n }\n static {\n this.ɵfac = function MutationObserverFactory_Factory(t) {\n return new (t || MutationObserverFactory)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MutationObserverFactory,\n factory: MutationObserverFactory.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MutationObserverFactory, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n/** An injectable service that allows watching elements for changes to their content. */\nclass ContentObserver {\n constructor(_mutationObserverFactory) {\n this._mutationObserverFactory = _mutationObserverFactory;\n /** Keeps track of the existing MutationObservers so they can be reused. */\n this._observedElements = new Map();\n }\n ngOnDestroy() {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n observe(elementOrRef) {\n const element = coerceElement(elementOrRef);\n return new Observable(observer => {\n const stream = this._observeElement(element);\n const subscription = stream.subscribe(observer);\n return () => {\n subscription.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n /**\n * Observes the given element by using the existing MutationObserver if available, or creating a\n * new one if not.\n */\n _observeElement(element) {\n if (!this._observedElements.has(element)) {\n const stream = new Subject();\n const observer = this._mutationObserverFactory.create(mutations => stream.next(mutations));\n if (observer) {\n observer.observe(element, {\n characterData: true,\n childList: true,\n subtree: true\n });\n }\n this._observedElements.set(element, {\n observer,\n stream,\n count: 1\n });\n } else {\n this._observedElements.get(element).count++;\n }\n return this._observedElements.get(element).stream;\n }\n /**\n * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is\n * observing this element.\n */\n _unobserveElement(element) {\n if (this._observedElements.has(element)) {\n this._observedElements.get(element).count--;\n if (!this._observedElements.get(element).count) {\n this._cleanupObserver(element);\n }\n }\n }\n /** Clean up the underlying MutationObserver for the specified element. */\n _cleanupObserver(element) {\n if (this._observedElements.has(element)) {\n const {\n observer,\n stream\n } = this._observedElements.get(element);\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n }\n static {\n this.ɵfac = function ContentObserver_Factory(t) {\n return new (t || ContentObserver)(i0.ɵɵinject(MutationObserverFactory));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ContentObserver,\n factory: ContentObserver.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ContentObserver, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: MutationObserverFactory\n }], null);\n})();\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nclass CdkObserveContent {\n /**\n * Whether observing content is disabled. This option can be used\n * to disconnect the underlying MutationObserver until it is needed.\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n this._disabled ? this._unsubscribe() : this._subscribe();\n }\n /** Debounce interval for emitting the changes. */\n get debounce() {\n return this._debounce;\n }\n set debounce(value) {\n this._debounce = coerceNumberProperty(value);\n this._subscribe();\n }\n constructor(_contentObserver, _elementRef, _ngZone) {\n this._contentObserver = _contentObserver;\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n /** Event emitted for each change in the element's content. */\n this.event = new EventEmitter();\n this._disabled = false;\n this._currentSubscription = null;\n }\n ngAfterContentInit() {\n if (!this._currentSubscription && !this.disabled) {\n this._subscribe();\n }\n }\n ngOnDestroy() {\n this._unsubscribe();\n }\n _subscribe() {\n this._unsubscribe();\n const stream = this._contentObserver.observe(this._elementRef);\n // TODO(mmalerba): We shouldn't be emitting on this @Output() outside the zone.\n // Consider brining it back inside the zone next time we're making breaking changes.\n // Bringing it back inside can cause things like infinite change detection loops and changed\n // after checked errors if people's code isn't handling it properly.\n this._ngZone.runOutsideAngular(() => {\n this._currentSubscription = (this.debounce ? stream.pipe(debounceTime(this.debounce)) : stream).subscribe(this.event);\n });\n }\n _unsubscribe() {\n this._currentSubscription?.unsubscribe();\n }\n static {\n this.ɵfac = function CdkObserveContent_Factory(t) {\n return new (t || CdkObserveContent)(i0.ɵɵdirectiveInject(ContentObserver), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkObserveContent,\n selectors: [[\"\", \"cdkObserveContent\", \"\"]],\n inputs: {\n disabled: [\"cdkObserveContentDisabled\", \"disabled\", booleanAttribute],\n debounce: \"debounce\"\n },\n outputs: {\n event: \"cdkObserveContent\"\n },\n exportAs: [\"cdkObserveContent\"],\n features: [i0.ɵɵInputTransformsFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkObserveContent, [{\n type: Directive,\n args: [{\n selector: '[cdkObserveContent]',\n exportAs: 'cdkObserveContent'\n }]\n }], () => [{\n type: ContentObserver\n }, {\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }], {\n event: [{\n type: Output,\n args: ['cdkObserveContent']\n }],\n disabled: [{\n type: Input,\n args: [{\n alias: 'cdkObserveContentDisabled',\n transform: booleanAttribute\n }]\n }],\n debounce: [{\n type: Input\n }]\n });\n})();\nclass ObserversModule {\n static {\n this.ɵfac = function ObserversModule_Factory(t) {\n return new (t || ObserversModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ObserversModule,\n declarations: [CdkObserveContent],\n exports: [CdkObserveContent]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MutationObserverFactory]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ObserversModule, [{\n type: NgModule,\n args: [{\n exports: [CdkObserveContent],\n declarations: [CdkObserveContent],\n providers: [MutationObserverFactory]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkObserveContent, ContentObserver, MutationObserverFactory, ObserversModule };\n", "import { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, APP_ID, Injectable, Inject, QueryList, booleanAttribute, Directive, Input, InjectionToken, Optional, EventEmitter, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getFocusedElementPierceShadowDom, normalizePassiveListenerOptions, _getEventTarget, _getShadowRoot } from '@angular/cdk/platform';\nimport { Subject, Subscription, BehaviorSubject, of } from 'rxjs';\nimport { hasModifierKey, A, Z, ZERO, NINE, PAGE_DOWN, PAGE_UP, END, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW, TAB, ALT, CONTROL, MAC_META, META, SHIFT } from '@angular/cdk/keycodes';\nimport { tap, debounceTime, filter, map, take, skip, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport * as i1$1 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { coerceElement } from '@angular/cdk/coercion';\nimport { BreakpointObserver } from '@angular/cdk/layout';\n\n/** IDs are delimited by an empty space, as per the spec. */\nconst ID_DELIMITER = ' ';\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction addAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n if (ids.some(existingId => existingId.trim() == id.trim())) {\n return;\n }\n ids.push(id.trim());\n el.setAttribute(attr, ids.join(ID_DELIMITER));\n}\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction removeAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n const filteredIds = ids.filter(val => val != id.trim());\n if (filteredIds.length) {\n el.setAttribute(attr, filteredIds.join(ID_DELIMITER));\n } else {\n el.removeAttribute(attr);\n }\n}\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction getAriaReferenceIds(el, attr) {\n // Get string array of all individual ids (whitespace delimited) in the attribute value\n return (el.getAttribute(attr) || '').match(/\\S+/g) || [];\n}\n\n/**\n * ID used for the body container where all messages are appended.\n * @deprecated No longer being used. To be removed.\n * @breaking-change 14.0.0\n */\nconst MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n/**\n * ID prefix used for each created message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n/**\n * Attribute given to each host element that is described by a message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n/** Global incremental identifier for each registered message element. */\nlet nextId = 0;\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n */\nclass AriaDescriber {\n constructor(_document,\n /**\n * @deprecated To be turned into a required parameter.\n * @breaking-change 14.0.0\n */\n _platform) {\n this._platform = _platform;\n /** Map of all registered message elements that have been placed into the document. */\n this._messageRegistry = new Map();\n /** Container for all registered messages. */\n this._messagesContainer = null;\n /** Unique ID for the service. */\n this._id = `${nextId++}`;\n this._document = _document;\n this._id = inject(APP_ID) + '-' + nextId++;\n }\n describe(hostElement, message, role) {\n if (!this._canBeDescribed(hostElement, message)) {\n return;\n }\n const key = getKey(message, role);\n if (typeof message !== 'string') {\n // We need to ensure that the element has an ID.\n setMessageId(message, this._id);\n this._messageRegistry.set(key, {\n messageElement: message,\n referenceCount: 0\n });\n } else if (!this._messageRegistry.has(key)) {\n this._createMessageElement(message, role);\n }\n if (!this._isElementDescribedByMessage(hostElement, key)) {\n this._addMessageReference(hostElement, key);\n }\n }\n removeDescription(hostElement, message, role) {\n if (!message || !this._isElementNode(hostElement)) {\n return;\n }\n const key = getKey(message, role);\n if (this._isElementDescribedByMessage(hostElement, key)) {\n this._removeMessageReference(hostElement, key);\n }\n // If the message is a string, it means that it's one that we created for the\n // consumer so we can remove it safely, otherwise we should leave it in place.\n if (typeof message === 'string') {\n const registeredMessage = this._messageRegistry.get(key);\n if (registeredMessage && registeredMessage.referenceCount === 0) {\n this._deleteMessageElement(key);\n }\n }\n if (this._messagesContainer?.childNodes.length === 0) {\n this._messagesContainer.remove();\n this._messagesContainer = null;\n }\n }\n /** Unregisters all created message elements and removes the message container. */\n ngOnDestroy() {\n const describedElements = this._document.querySelectorAll(`[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}=\"${this._id}\"]`);\n for (let i = 0; i < describedElements.length; i++) {\n this._removeCdkDescribedByReferenceIds(describedElements[i]);\n describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n this._messagesContainer?.remove();\n this._messagesContainer = null;\n this._messageRegistry.clear();\n }\n /**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n */\n _createMessageElement(message, role) {\n const messageElement = this._document.createElement('div');\n setMessageId(messageElement, this._id);\n messageElement.textContent = message;\n if (role) {\n messageElement.setAttribute('role', role);\n }\n this._createMessagesContainer();\n this._messagesContainer.appendChild(messageElement);\n this._messageRegistry.set(getKey(message, role), {\n messageElement,\n referenceCount: 0\n });\n }\n /** Deletes the message element from the global messages container. */\n _deleteMessageElement(key) {\n this._messageRegistry.get(key)?.messageElement?.remove();\n this._messageRegistry.delete(key);\n }\n /** Creates the global container for all aria-describedby messages. */\n _createMessagesContainer() {\n if (this._messagesContainer) {\n return;\n }\n const containerClassName = 'cdk-describedby-message-container';\n const serverContainers = this._document.querySelectorAll(`.${containerClassName}[platform=\"server\"]`);\n for (let i = 0; i < serverContainers.length; i++) {\n // When going from the server to the client, we may end up in a situation where there's\n // already a container on the page, but we don't have a reference to it. Clear the\n // old container so we don't get duplicates. Doing this, instead of emptying the previous\n // container, should be slightly faster.\n serverContainers[i].remove();\n }\n const messagesContainer = this._document.createElement('div');\n // We add `visibility: hidden` in order to prevent text in this container from\n // being searchable by the browser's Ctrl + F functionality.\n // Screen-readers will still read the description for elements with aria-describedby even\n // when the description element is not visible.\n messagesContainer.style.visibility = 'hidden';\n // Even though we use `visibility: hidden`, we still apply `cdk-visually-hidden` so that\n // the description element doesn't impact page layout.\n messagesContainer.classList.add(containerClassName);\n messagesContainer.classList.add('cdk-visually-hidden');\n // @breaking-change 14.0.0 Remove null check for `_platform`.\n if (this._platform && !this._platform.isBrowser) {\n messagesContainer.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(messagesContainer);\n this._messagesContainer = messagesContainer;\n }\n /** Removes all cdk-describedby messages that are hosted through the element. */\n _removeCdkDescribedByReferenceIds(element) {\n // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n const originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby').filter(id => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0);\n element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n }\n /**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n */\n _addMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n // Add the aria-describedby reference and set the\n // describedby_host attribute to mark the element.\n addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, this._id);\n registeredMessage.referenceCount++;\n }\n /**\n * Removes a message reference from the element using aria-describedby\n * and decrements the registered message's reference count.\n */\n _removeMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n registeredMessage.referenceCount--;\n removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n /** Returns true if the element has been described by the provided message ID. */\n _isElementDescribedByMessage(element, key) {\n const referenceIds = getAriaReferenceIds(element, 'aria-describedby');\n const registeredMessage = this._messageRegistry.get(key);\n const messageId = registeredMessage && registeredMessage.messageElement.id;\n return !!messageId && referenceIds.indexOf(messageId) != -1;\n }\n /** Determines whether a message can be described on a particular element. */\n _canBeDescribed(element, message) {\n if (!this._isElementNode(element)) {\n return false;\n }\n if (message && typeof message === 'object') {\n // We'd have to make some assumptions about the description element's text, if the consumer\n // passed in an element. Assume that if an element is passed in, the consumer has verified\n // that it can be used as a description.\n return true;\n }\n const trimmedMessage = message == null ? '' : `${message}`.trim();\n const ariaLabel = element.getAttribute('aria-label');\n // We shouldn't set descriptions if they're exactly the same as the `aria-label` of the\n // element, because screen readers will end up reading out the same text twice in a row.\n return trimmedMessage ? !ariaLabel || ariaLabel.trim() !== trimmedMessage : false;\n }\n /** Checks whether a node is an Element node. */\n _isElementNode(element) {\n return element.nodeType === this._document.ELEMENT_NODE;\n }\n static {\n this.ɵfac = function AriaDescriber_Factory(t) {\n return new (t || AriaDescriber)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1.Platform));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AriaDescriber,\n factory: AriaDescriber.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AriaDescriber, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1.Platform\n }], null);\n})();\n/** Gets a key that can be used to look messages up in the registry. */\nfunction getKey(message, role) {\n return typeof message === 'string' ? `${role || ''}/${message}` : message;\n}\n/** Assigns a unique ID to an element, if it doesn't have one already. */\nfunction setMessageId(element, serviceId) {\n if (!element.id) {\n element.id = `${CDK_DESCRIBEDBY_ID_PREFIX}-${serviceId}-${nextId++}`;\n }\n}\n\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nclass ListKeyManager {\n constructor(_items) {\n this._items = _items;\n this._activeItemIndex = -1;\n this._activeItem = null;\n this._wrap = false;\n this._letterKeyStream = new Subject();\n this._typeaheadSubscription = Subscription.EMPTY;\n this._vertical = true;\n this._allowedModifierKeys = [];\n this._homeAndEnd = false;\n this._pageUpAndDown = {\n enabled: false,\n delta: 10\n };\n /**\n * Predicate function that can be used to check whether an item should be skipped\n * by the key manager. By default, disabled items are skipped.\n */\n this._skipPredicateFn = item => item.disabled;\n // Buffer for the letters that the user has pressed when the typeahead option is turned on.\n this._pressedLetters = [];\n /**\n * Stream that emits any time the TAB key is pressed, so components can react\n * when focus is shifted off of the list.\n */\n this.tabOut = new Subject();\n /** Stream that emits whenever the active item of the list manager changes. */\n this.change = new Subject();\n // We allow for the items to be an array because, in some cases, the consumer may\n // not have access to a QueryList of the items they want to manage (e.g. when the\n // items aren't being collected via `ViewChildren` or `ContentChildren`).\n if (_items instanceof QueryList) {\n this._itemChangesSubscription = _items.changes.subscribe(newItems => {\n if (this._activeItem) {\n const itemArray = newItems.toArray();\n const newIndex = itemArray.indexOf(this._activeItem);\n if (newIndex > -1 && newIndex !== this._activeItemIndex) {\n this._activeItemIndex = newIndex;\n }\n }\n });\n }\n }\n /**\n * Sets the predicate function that determines which items should be skipped by the\n * list key manager.\n * @param predicate Function that determines whether the given item should be skipped.\n */\n skipPredicate(predicate) {\n this._skipPredicateFn = predicate;\n return this;\n }\n /**\n * Configures wrapping mode, which determines whether the active item will wrap to\n * the other end of list when there are no more items in the given direction.\n * @param shouldWrap Whether the list should wrap when reaching the end.\n */\n withWrap(shouldWrap = true) {\n this._wrap = shouldWrap;\n return this;\n }\n /**\n * Configures whether the key manager should be able to move the selection vertically.\n * @param enabled Whether vertical selection should be enabled.\n */\n withVerticalOrientation(enabled = true) {\n this._vertical = enabled;\n return this;\n }\n /**\n * Configures the key manager to move the selection horizontally.\n * Passing in `null` will disable horizontal movement.\n * @param direction Direction in which the selection can be moved.\n */\n withHorizontalOrientation(direction) {\n this._horizontal = direction;\n return this;\n }\n /**\n * Modifier keys which are allowed to be held down and whose default actions will be prevented\n * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.\n */\n withAllowedModifierKeys(keys) {\n this._allowedModifierKeys = keys;\n return this;\n }\n /**\n * Turns on typeahead mode which allows users to set the active item by typing.\n * @param debounceInterval Time to wait after the last keystroke before setting the active item.\n */\n withTypeAhead(debounceInterval = 200) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && this._items.length && this._items.some(item => typeof item.getLabel !== 'function')) {\n throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');\n }\n this._typeaheadSubscription.unsubscribe();\n // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n // and convert those letters back into a string. Afterwards find the first item that starts\n // with that string and select it.\n this._typeaheadSubscription = this._letterKeyStream.pipe(tap(letter => this._pressedLetters.push(letter)), debounceTime(debounceInterval), filter(() => this._pressedLetters.length > 0), map(() => this._pressedLetters.join(''))).subscribe(inputString => {\n const items = this._getItemsArray();\n // Start at 1 because we want to start searching at the item immediately\n // following the current active item.\n for (let i = 1; i < items.length + 1; i++) {\n const index = (this._activeItemIndex + i) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item) && item.getLabel().toUpperCase().trim().indexOf(inputString) === 0) {\n this.setActiveItem(index);\n break;\n }\n }\n this._pressedLetters = [];\n });\n return this;\n }\n /** Cancels the current typeahead sequence. */\n cancelTypeahead() {\n this._pressedLetters = [];\n return this;\n }\n /**\n * Configures the key manager to activate the first and last items\n * respectively when the Home or End key is pressed.\n * @param enabled Whether pressing the Home or End key activates the first/last item.\n */\n withHomeAndEnd(enabled = true) {\n this._homeAndEnd = enabled;\n return this;\n }\n /**\n * Configures the key manager to activate every 10th, configured or first/last element in up/down direction\n * respectively when the Page-Up or Page-Down key is pressed.\n * @param enabled Whether pressing the Page-Up or Page-Down key activates the first/last item.\n * @param delta Whether pressing the Home or End key activates the first/last item.\n */\n withPageUpDown(enabled = true, delta = 10) {\n this._pageUpAndDown = {\n enabled,\n delta\n };\n return this;\n }\n setActiveItem(item) {\n const previousActiveItem = this._activeItem;\n this.updateActiveItem(item);\n if (this._activeItem !== previousActiveItem) {\n this.change.next(this._activeItemIndex);\n }\n }\n /**\n * Sets the active item depending on the key event passed in.\n * @param event Keyboard event to be used for determining which element should be active.\n */\n onKeydown(event) {\n const keyCode = event.keyCode;\n const modifiers = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];\n const isModifierAllowed = modifiers.every(modifier => {\n return !event[modifier] || this._allowedModifierKeys.indexOf(modifier) > -1;\n });\n switch (keyCode) {\n case TAB:\n this.tabOut.next();\n return;\n case DOWN_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setNextItemActive();\n break;\n } else {\n return;\n }\n case UP_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setPreviousItemActive();\n break;\n } else {\n return;\n }\n case RIGHT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setPreviousItemActive() : this.setNextItemActive();\n break;\n } else {\n return;\n }\n case LEFT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setNextItemActive() : this.setPreviousItemActive();\n break;\n } else {\n return;\n }\n case HOME:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setFirstItemActive();\n break;\n } else {\n return;\n }\n case END:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setLastItemActive();\n break;\n } else {\n return;\n }\n case PAGE_UP:\n if (this._pageUpAndDown.enabled && isModifierAllowed) {\n const targetIndex = this._activeItemIndex - this._pageUpAndDown.delta;\n this._setActiveItemByIndex(targetIndex > 0 ? targetIndex : 0, 1);\n break;\n } else {\n return;\n }\n case PAGE_DOWN:\n if (this._pageUpAndDown.enabled && isModifierAllowed) {\n const targetIndex = this._activeItemIndex + this._pageUpAndDown.delta;\n const itemsLength = this._getItemsArray().length;\n this._setActiveItemByIndex(targetIndex < itemsLength ? targetIndex : itemsLength - 1, -1);\n break;\n } else {\n return;\n }\n default:\n if (isModifierAllowed || hasModifierKey(event, 'shiftKey')) {\n // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n // otherwise fall back to resolving alphanumeric characters via the keyCode.\n if (event.key && event.key.length === 1) {\n this._letterKeyStream.next(event.key.toLocaleUpperCase());\n } else if (keyCode >= A && keyCode <= Z || keyCode >= ZERO && keyCode <= NINE) {\n this._letterKeyStream.next(String.fromCharCode(keyCode));\n }\n }\n // Note that we return here, in order to avoid preventing\n // the default action of non-navigational keys.\n return;\n }\n this._pressedLetters = [];\n event.preventDefault();\n }\n /** Index of the currently active item. */\n get activeItemIndex() {\n return this._activeItemIndex;\n }\n /** The active item. */\n get activeItem() {\n return this._activeItem;\n }\n /** Gets whether the user is currently typing into the manager using the typeahead feature. */\n isTyping() {\n return this._pressedLetters.length > 0;\n }\n /** Sets the active item to the first enabled item in the list. */\n setFirstItemActive() {\n this._setActiveItemByIndex(0, 1);\n }\n /** Sets the active item to the last enabled item in the list. */\n setLastItemActive() {\n this._setActiveItemByIndex(this._items.length - 1, -1);\n }\n /** Sets the active item to the next enabled item in the list. */\n setNextItemActive() {\n this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);\n }\n /** Sets the active item to a previous enabled item in the list. */\n setPreviousItemActive() {\n this._activeItemIndex < 0 && this._wrap ? this.setLastItemActive() : this._setActiveItemByDelta(-1);\n }\n updateActiveItem(item) {\n const itemArray = this._getItemsArray();\n const index = typeof item === 'number' ? item : itemArray.indexOf(item);\n const activeItem = itemArray[index];\n // Explicitly check for `null` and `undefined` because other falsy values are valid.\n this._activeItem = activeItem == null ? null : activeItem;\n this._activeItemIndex = index;\n }\n /** Cleans up the key manager. */\n destroy() {\n this._typeaheadSubscription.unsubscribe();\n this._itemChangesSubscription?.unsubscribe();\n this._letterKeyStream.complete();\n this.tabOut.complete();\n this.change.complete();\n this._pressedLetters = [];\n }\n /**\n * This method sets the active item, given a list of items and the delta between the\n * currently active item and the new active item. It will calculate differently\n * depending on whether wrap mode is turned on.\n */\n _setActiveItemByDelta(delta) {\n this._wrap ? this._setActiveInWrapMode(delta) : this._setActiveInDefaultMode(delta);\n }\n /**\n * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n * down the list until it finds an item that is not disabled, and it will wrap if it\n * encounters either end of the list.\n */\n _setActiveInWrapMode(delta) {\n const items = this._getItemsArray();\n for (let i = 1; i <= items.length; i++) {\n const index = (this._activeItemIndex + delta * i + items.length) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item)) {\n this.setActiveItem(index);\n return;\n }\n }\n }\n /**\n * Sets the active item properly given the default mode. In other words, it will\n * continue to move down the list until it finds an item that is not disabled. If\n * it encounters either end of the list, it will stop and not wrap.\n */\n _setActiveInDefaultMode(delta) {\n this._setActiveItemByIndex(this._activeItemIndex + delta, delta);\n }\n /**\n * Sets the active item to the first enabled item starting at the index specified. If the\n * item is disabled, it will move in the fallbackDelta direction until it either\n * finds an enabled item or encounters the end of the list.\n */\n _setActiveItemByIndex(index, fallbackDelta) {\n const items = this._getItemsArray();\n if (!items[index]) {\n return;\n }\n while (this._skipPredicateFn(items[index])) {\n index += fallbackDelta;\n if (!items[index]) {\n return;\n }\n }\n this.setActiveItem(index);\n }\n /** Returns the items as an array. */\n _getItemsArray() {\n return this._items instanceof QueryList ? this._items.toArray() : this._items;\n }\n}\nclass ActiveDescendantKeyManager extends ListKeyManager {\n setActiveItem(index) {\n if (this.activeItem) {\n this.activeItem.setInactiveStyles();\n }\n super.setActiveItem(index);\n if (this.activeItem) {\n this.activeItem.setActiveStyles();\n }\n }\n}\nclass FocusKeyManager extends ListKeyManager {\n constructor() {\n super(...arguments);\n this._origin = 'program';\n }\n /**\n * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.\n * @param origin Focus origin to be used when focusing items.\n */\n setFocusOrigin(origin) {\n this._origin = origin;\n return this;\n }\n setActiveItem(item) {\n super.setActiveItem(item);\n if (this.activeItem) {\n this.activeItem.focus(this._origin);\n }\n }\n}\n\n/**\n * Configuration for the isFocusable method.\n */\nclass IsFocusableConfig {\n constructor() {\n /**\n * Whether to count an element as focusable even if it is not currently visible.\n */\n this.ignoreVisibility = false;\n }\n}\n// The InteractivityChecker leans heavily on the ally.js accessibility utilities.\n// Methods like `isTabbable` are only covering specific edge-cases for the browsers which are\n// supported.\n/**\n * Utility for checking the interactivity of an element, such as whether it is focusable or\n * tabbable.\n */\nclass InteractivityChecker {\n constructor(_platform) {\n this._platform = _platform;\n }\n /**\n * Gets whether an element is disabled.\n *\n * @param element Element to be checked.\n * @returns Whether the element is disabled.\n */\n isDisabled(element) {\n // This does not capture some cases, such as a non-form control with a disabled attribute or\n // a form control inside of a disabled form, but should capture the most common cases.\n return element.hasAttribute('disabled');\n }\n /**\n * Gets whether an element is visible for the purposes of interactivity.\n *\n * This will capture states like `display: none` and `visibility: hidden`, but not things like\n * being clipped by an `overflow: hidden` parent or being outside the viewport.\n *\n * @returns Whether the element is visible.\n */\n isVisible(element) {\n return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n }\n /**\n * Gets whether an element can be reached via Tab key.\n * Assumes that the element has already been checked with isFocusable.\n *\n * @param element Element to be checked.\n * @returns Whether the element is tabbable.\n */\n isTabbable(element) {\n // Nothing is tabbable on the server 😎\n if (!this._platform.isBrowser) {\n return false;\n }\n const frameElement = getFrameElement(getWindow(element));\n if (frameElement) {\n // Frame elements inherit their tabindex onto all child elements.\n if (getTabIndexValue(frameElement) === -1) {\n return false;\n }\n // Browsers disable tabbing to an element inside of an invisible frame.\n if (!this.isVisible(frameElement)) {\n return false;\n }\n }\n let nodeName = element.nodeName.toLowerCase();\n let tabIndexValue = getTabIndexValue(element);\n if (element.hasAttribute('contenteditable')) {\n return tabIndexValue !== -1;\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // The frame or object's content may be tabbable depending on the content, but it's\n // not possibly to reliably detect the content of the frames. We always consider such\n // elements as non-tabbable.\n return false;\n }\n // In iOS, the browser only considers some specific elements as tabbable.\n if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n return false;\n }\n if (nodeName === 'audio') {\n // Audio elements without controls enabled are never tabbable, regardless\n // of the tabindex attribute explicitly being set.\n if (!element.hasAttribute('controls')) {\n return false;\n }\n // Audio elements with controls are by default tabbable unless the\n // tabindex attribute is set to `-1` explicitly.\n return tabIndexValue !== -1;\n }\n if (nodeName === 'video') {\n // For all video elements, if the tabindex attribute is set to `-1`, the video\n // is not tabbable. Note: We cannot rely on the default `HTMLElement.tabIndex`\n // property as that one is set to `-1` in Chrome, Edge and Safari v13.1. The\n // tabindex attribute is the source of truth here.\n if (tabIndexValue === -1) {\n return false;\n }\n // If the tabindex is explicitly set, and not `-1` (as per check before), the\n // video element is always tabbable (regardless of whether it has controls or not).\n if (tabIndexValue !== null) {\n return true;\n }\n // Otherwise (when no explicit tabindex is set), a video is only tabbable if it\n // has controls enabled. Firefox is special as videos are always tabbable regardless\n // of whether there are controls or not.\n return this._platform.FIREFOX || element.hasAttribute('controls');\n }\n return element.tabIndex >= 0;\n }\n /**\n * Gets whether an element can be focused by the user.\n *\n * @param element Element to be checked.\n * @param config The config object with options to customize this method's behavior\n * @returns Whether the element is focusable.\n */\n isFocusable(element, config) {\n // Perform checks in order of left to most expensive.\n // Again, naive approach that does not capture many edge cases and browser quirks.\n return isPotentiallyFocusable(element) && !this.isDisabled(element) && (config?.ignoreVisibility || this.isVisible(element));\n }\n static {\n this.ɵfac = function InteractivityChecker_Factory(t) {\n return new (t || InteractivityChecker)(i0.ɵɵinject(i1.Platform));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InteractivityChecker,\n factory: InteractivityChecker.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InteractivityChecker, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.Platform\n }], null);\n})();\n/**\n * Returns the frame element from a window object. Since browsers like MS Edge throw errors if\n * the frameElement property is being accessed from a different host address, this property\n * should be accessed carefully.\n */\nfunction getFrameElement(window) {\n try {\n return window.frameElement;\n } catch {\n return null;\n }\n}\n/** Checks whether the specified element has any geometry / rectangles. */\nfunction hasGeometry(element) {\n // Use logic from jQuery to check for an invisible element.\n // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n return !!(element.offsetWidth || element.offsetHeight || typeof element.getClientRects === 'function' && element.getClientRects().length);\n}\n/** Gets whether an element's */\nfunction isNativeFormElement(element) {\n let nodeName = element.nodeName.toLowerCase();\n return nodeName === 'input' || nodeName === 'select' || nodeName === 'button' || nodeName === 'textarea';\n}\n/** Gets whether an element is an ` `. */\nfunction isHiddenInput(element) {\n return isInputElement(element) && element.type == 'hidden';\n}\n/** Gets whether an element is an anchor that has an href attribute. */\nfunction isAnchorWithHref(element) {\n return isAnchorElement(element) && element.hasAttribute('href');\n}\n/** Gets whether an element is an input element. */\nfunction isInputElement(element) {\n return element.nodeName.toLowerCase() == 'input';\n}\n/** Gets whether an element is an anchor element. */\nfunction isAnchorElement(element) {\n return element.nodeName.toLowerCase() == 'a';\n}\n/** Gets whether an element has a valid tabindex. */\nfunction hasValidTabIndex(element) {\n if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n return false;\n }\n let tabIndex = element.getAttribute('tabindex');\n return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n */\nfunction getTabIndexValue(element) {\n if (!hasValidTabIndex(element)) {\n return null;\n }\n // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n const tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);\n return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/** Checks whether the specified element is potentially tabbable on iOS */\nfunction isPotentiallyTabbableIOS(element) {\n let nodeName = element.nodeName.toLowerCase();\n let inputType = nodeName === 'input' && element.type;\n return inputType === 'text' || inputType === 'password' || nodeName === 'select' || nodeName === 'textarea';\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n */\nfunction isPotentiallyFocusable(element) {\n // Inputs are potentially focusable *unless* they're type=\"hidden\".\n if (isHiddenInput(element)) {\n return false;\n }\n return isNativeFormElement(element) || isAnchorWithHref(element) || element.hasAttribute('contenteditable') || hasValidTabIndex(element);\n}\n/** Gets the parent window of a DOM node with regards of being inside of an iframe. */\nfunction getWindow(node) {\n // ownerDocument is null if `node` itself *is* a document.\n return node.ownerDocument && node.ownerDocument.defaultView || window;\n}\n\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class currently uses a relatively simple approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause the two to be misaligned.\n *\n * @deprecated Use `ConfigurableFocusTrap` instead.\n * @breaking-change 11.0.0\n */\nclass FocusTrap {\n /** Whether the focus trap is active. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(value, this._startAnchor);\n this._toggleAnchorTabIndex(value, this._endAnchor);\n }\n }\n constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {\n this._element = _element;\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n this._hasAttached = false;\n // Event listeners for the anchors. Need to be regular functions so that we can unbind them later.\n this.startAnchorListener = () => this.focusLastTabbableElement();\n this.endAnchorListener = () => this.focusFirstTabbableElement();\n this._enabled = true;\n if (!deferAnchors) {\n this.attachAnchors();\n }\n }\n /** Destroys the focus trap by cleaning up the anchors. */\n destroy() {\n const startAnchor = this._startAnchor;\n const endAnchor = this._endAnchor;\n if (startAnchor) {\n startAnchor.removeEventListener('focus', this.startAnchorListener);\n startAnchor.remove();\n }\n if (endAnchor) {\n endAnchor.removeEventListener('focus', this.endAnchorListener);\n endAnchor.remove();\n }\n this._startAnchor = this._endAnchor = null;\n this._hasAttached = false;\n }\n /**\n * Inserts the anchors into the DOM. This is usually done automatically\n * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n * @returns Whether the focus trap managed to attach successfully. This may not be the case\n * if the target element isn't currently in the DOM.\n */\n attachAnchors() {\n // If we're not on the browser, there can be no focus to trap.\n if (this._hasAttached) {\n return true;\n }\n this._ngZone.runOutsideAngular(() => {\n if (!this._startAnchor) {\n this._startAnchor = this._createAnchor();\n this._startAnchor.addEventListener('focus', this.startAnchorListener);\n }\n if (!this._endAnchor) {\n this._endAnchor = this._createAnchor();\n this._endAnchor.addEventListener('focus', this.endAnchorListener);\n }\n });\n if (this._element.parentNode) {\n this._element.parentNode.insertBefore(this._startAnchor, this._element);\n this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);\n this._hasAttached = true;\n }\n return this._hasAttached;\n }\n /**\n * Waits for the zone to stabilize, then focuses the first tabbable element.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusInitialElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusInitialElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the first tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusFirstTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusFirstTabbableElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the last tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusLastTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusLastTabbableElement(options)));\n });\n }\n /**\n * Get the specified boundary element of the trapped region.\n * @param bound The boundary to get (start or end of trapped region).\n * @returns The boundary element.\n */\n _getRegionBoundary(bound) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` + `[cdkFocusRegion${bound}], ` + `[cdk-focus-${bound}]`);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n for (let i = 0; i < markers.length; i++) {\n // @breaking-change 8.0.0\n if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}', ` + `use 'cdkFocusRegion${bound}' instead. The deprecated ` + `attribute will be removed in 8.0.0.`, markers[i]);\n } else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-region-${bound}', ` + `use 'cdkFocusRegion${bound}' instead. The deprecated attribute ` + `will be removed in 8.0.0.`, markers[i]);\n }\n }\n }\n if (bound == 'start') {\n return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n }\n return markers.length ? markers[markers.length - 1] : this._getLastTabbableElement(this._element);\n }\n /**\n * Focuses the element that should be focused when the focus trap is initialized.\n * @returns Whether focus was moved successfully.\n */\n focusInitialElement(options) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const redirectToElement = this._element.querySelector(`[cdk-focus-initial], ` + `[cdkFocusInitial]`);\n if (redirectToElement) {\n // @breaking-change 8.0.0\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && redirectToElement.hasAttribute(`cdk-focus-initial`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-initial', ` + `use 'cdkFocusInitial' instead. The deprecated attribute ` + `will be removed in 8.0.0`, redirectToElement);\n }\n // Warn the consumer if the element they've pointed to\n // isn't focusable, when not in production mode.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this._checker.isFocusable(redirectToElement)) {\n console.warn(`Element matching '[cdkFocusInitial]' is not focusable.`, redirectToElement);\n }\n if (!this._checker.isFocusable(redirectToElement)) {\n const focusableChild = this._getFirstTabbableElement(redirectToElement);\n focusableChild?.focus(options);\n return !!focusableChild;\n }\n redirectToElement.focus(options);\n return true;\n }\n return this.focusFirstTabbableElement(options);\n }\n /**\n * Focuses the first tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusFirstTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('start');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Focuses the last tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusLastTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('end');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Checks whether the focus trap has successfully been attached.\n */\n hasAttached() {\n return this._hasAttached;\n }\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n _getFirstTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n const children = root.children;\n for (let i = 0; i < children.length; i++) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ? this._getFirstTabbableElement(children[i]) : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Get the last tabbable element from a DOM subtree (inclusive). */\n _getLastTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in reverse DOM order.\n const children = root.children;\n for (let i = children.length - 1; i >= 0; i--) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ? this._getLastTabbableElement(children[i]) : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Creates an anchor element. */\n _createAnchor() {\n const anchor = this._document.createElement('div');\n this._toggleAnchorTabIndex(this._enabled, anchor);\n anchor.classList.add('cdk-visually-hidden');\n anchor.classList.add('cdk-focus-trap-anchor');\n anchor.setAttribute('aria-hidden', 'true');\n return anchor;\n }\n /**\n * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.\n * @param isEnabled Whether the focus trap is enabled.\n * @param anchor Anchor on which to toggle the tabindex.\n */\n _toggleAnchorTabIndex(isEnabled, anchor) {\n // Remove the tabindex completely, rather than setting it to -1, because if the\n // element has a tabindex, the user might still hit it when navigating with the arrow keys.\n isEnabled ? anchor.setAttribute('tabindex', '0') : anchor.removeAttribute('tabindex');\n }\n /**\n * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.\n * @param enabled: Whether the anchors should trap Tab.\n */\n toggleAnchors(enabled) {\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(enabled, this._startAnchor);\n this._toggleAnchorTabIndex(enabled, this._endAnchor);\n }\n }\n /** Executes a function when the zone is stable. */\n _executeOnStable(fn) {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n}\n/**\n * Factory that allows easy instantiation of focus traps.\n * @deprecated Use `ConfigurableFocusTrapFactory` instead.\n * @breaking-change 11.0.0\n */\nclass FocusTrapFactory {\n constructor(_checker, _ngZone, _document) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n }\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param deferCaptureElements Defers the creation of focus-capturing elements to be done\n * manually by the user.\n * @returns The created focus trap instance.\n */\n create(element, deferCaptureElements = false) {\n return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);\n }\n static {\n this.ɵfac = function FocusTrapFactory_Factory(t) {\n return new (t || FocusTrapFactory)(i0.ɵɵinject(InteractivityChecker), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FocusTrapFactory,\n factory: FocusTrapFactory.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FocusTrapFactory, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: InteractivityChecker\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\n/** Directive for trapping focus within a region. */\nclass CdkTrapFocus {\n /** Whether the focus trap is active. */\n get enabled() {\n return this.focusTrap.enabled;\n }\n set enabled(value) {\n this.focusTrap.enabled = value;\n }\n constructor(_elementRef, _focusTrapFactory,\n /**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 13.0.0\n */\n _document) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n this._previouslyFocusedElement = null;\n this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n }\n ngOnDestroy() {\n this.focusTrap.destroy();\n // If we stored a previously focused element when using autoCapture, return focus to that\n // element now that the trapped region is being destroyed.\n if (this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n this._previouslyFocusedElement = null;\n }\n }\n ngAfterContentInit() {\n this.focusTrap.attachAnchors();\n if (this.autoCapture) {\n this._captureFocus();\n }\n }\n ngDoCheck() {\n if (!this.focusTrap.hasAttached()) {\n this.focusTrap.attachAnchors();\n }\n }\n ngOnChanges(changes) {\n const autoCaptureChange = changes['autoCapture'];\n if (autoCaptureChange && !autoCaptureChange.firstChange && this.autoCapture && this.focusTrap.hasAttached()) {\n this._captureFocus();\n }\n }\n _captureFocus() {\n this._previouslyFocusedElement = _getFocusedElementPierceShadowDom();\n this.focusTrap.focusInitialElementWhenReady();\n }\n static {\n this.ɵfac = function CdkTrapFocus_Factory(t) {\n return new (t || CdkTrapFocus)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(FocusTrapFactory), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkTrapFocus,\n selectors: [[\"\", \"cdkTrapFocus\", \"\"]],\n inputs: {\n enabled: [\"cdkTrapFocus\", \"enabled\", booleanAttribute],\n autoCapture: [\"cdkTrapFocusAutoCapture\", \"autoCapture\", booleanAttribute]\n },\n exportAs: [\"cdkTrapFocus\"],\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkTrapFocus, [{\n type: Directive,\n args: [{\n selector: '[cdkTrapFocus]',\n exportAs: 'cdkTrapFocus'\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: FocusTrapFactory\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], {\n enabled: [{\n type: Input,\n args: [{\n alias: 'cdkTrapFocus',\n transform: booleanAttribute\n }]\n }],\n autoCapture: [{\n type: Input,\n args: [{\n alias: 'cdkTrapFocusAutoCapture',\n transform: booleanAttribute\n }]\n }]\n });\n})();\n\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class uses a strategy pattern that determines how it traps focus.\n * See FocusTrapInertStrategy.\n */\nclass ConfigurableFocusTrap extends FocusTrap {\n /** Whether the FocusTrap is enabled. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._enabled) {\n this._focusTrapManager.register(this);\n } else {\n this._focusTrapManager.deregister(this);\n }\n }\n constructor(_element, _checker, _ngZone, _document, _focusTrapManager, _inertStrategy, config) {\n super(_element, _checker, _ngZone, _document, config.defer);\n this._focusTrapManager = _focusTrapManager;\n this._inertStrategy = _inertStrategy;\n this._focusTrapManager.register(this);\n }\n /** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */\n destroy() {\n this._focusTrapManager.deregister(this);\n super.destroy();\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _enable() {\n this._inertStrategy.preventFocus(this);\n this.toggleAnchors(true);\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _disable() {\n this._inertStrategy.allowFocus(this);\n this.toggleAnchors(false);\n }\n}\n\n/** The injection token used to specify the inert strategy. */\nconst FOCUS_TRAP_INERT_STRATEGY = new InjectionToken('FOCUS_TRAP_INERT_STRATEGY');\n\n/**\n * Lightweight FocusTrapInertStrategy that adds a document focus event\n * listener to redirect focus back inside the FocusTrap.\n */\nclass EventListenerFocusTrapInertStrategy {\n constructor() {\n /** Focus event handler. */\n this._listener = null;\n }\n /** Adds a document event listener that keeps focus inside the FocusTrap. */\n preventFocus(focusTrap) {\n // Ensure there's only one listener per document\n if (this._listener) {\n focusTrap._document.removeEventListener('focus', this._listener, true);\n }\n this._listener = e => this._trapFocus(focusTrap, e);\n focusTrap._ngZone.runOutsideAngular(() => {\n focusTrap._document.addEventListener('focus', this._listener, true);\n });\n }\n /** Removes the event listener added in preventFocus. */\n allowFocus(focusTrap) {\n if (!this._listener) {\n return;\n }\n focusTrap._document.removeEventListener('focus', this._listener, true);\n this._listener = null;\n }\n /**\n * Refocuses the first element in the FocusTrap if the focus event target was outside\n * the FocusTrap.\n *\n * This is an event listener callback. The event listener is added in runOutsideAngular,\n * so all this code runs outside Angular as well.\n */\n _trapFocus(focusTrap, event) {\n const target = event.target;\n const focusTrapRoot = focusTrap._element;\n // Don't refocus if target was in an overlay, because the overlay might be associated\n // with an element inside the FocusTrap, ex. mat-select.\n if (target && !focusTrapRoot.contains(target) && !target.closest?.('div.cdk-overlay-pane')) {\n // Some legacy FocusTrap usages have logic that focuses some element on the page\n // just before FocusTrap is destroyed. For backwards compatibility, wait\n // to be sure FocusTrap is still enabled before refocusing.\n setTimeout(() => {\n // Check whether focus wasn't put back into the focus trap while the timeout was pending.\n if (focusTrap.enabled && !focusTrapRoot.contains(focusTrap._document.activeElement)) {\n focusTrap.focusFirstTabbableElement();\n }\n });\n }\n }\n}\n\n/** Injectable that ensures only the most recently enabled FocusTrap is active. */\nclass FocusTrapManager {\n constructor() {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n this._focusTrapStack = [];\n }\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap) {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter(ft => ft !== focusTrap);\n let stack = this._focusTrapStack;\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n stack.push(focusTrap);\n focusTrap._enable();\n }\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap) {\n focusTrap._disable();\n const stack = this._focusTrapStack;\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\n }\n }\n }\n static {\n this.ɵfac = function FocusTrapManager_Factory(t) {\n return new (t || FocusTrapManager)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FocusTrapManager,\n factory: FocusTrapManager.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FocusTrapManager, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/** Factory that allows easy instantiation of configurable focus traps. */\nclass ConfigurableFocusTrapFactory {\n constructor(_checker, _ngZone, _focusTrapManager, _document, _inertStrategy) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._focusTrapManager = _focusTrapManager;\n this._document = _document;\n // TODO split up the strategies into different modules, similar to DateAdapter.\n this._inertStrategy = _inertStrategy || new EventListenerFocusTrapInertStrategy();\n }\n create(element, config = {\n defer: false\n }) {\n let configObject;\n if (typeof config === 'boolean') {\n configObject = {\n defer: config\n };\n } else {\n configObject = config;\n }\n return new ConfigurableFocusTrap(element, this._checker, this._ngZone, this._document, this._focusTrapManager, this._inertStrategy, configObject);\n }\n static {\n this.ɵfac = function ConfigurableFocusTrapFactory_Factory(t) {\n return new (t || ConfigurableFocusTrapFactory)(i0.ɵɵinject(InteractivityChecker), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(FocusTrapManager), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(FOCUS_TRAP_INERT_STRATEGY, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ConfigurableFocusTrapFactory,\n factory: ConfigurableFocusTrapFactory.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ConfigurableFocusTrapFactory, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: InteractivityChecker\n }, {\n type: i0.NgZone\n }, {\n type: FocusTrapManager\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_TRAP_INERT_STRATEGY]\n }]\n }], null);\n})();\n\n/** Gets whether an event could be a faked `mousedown` event dispatched by a screen reader. */\nfunction isFakeMousedownFromScreenReader(event) {\n // Some screen readers will dispatch a fake `mousedown` event when pressing enter or space on\n // a clickable element. We can distinguish these events when `event.buttons` is zero, or\n // `event.detail` is zero depending on the browser:\n // - `event.buttons` works on Firefox, but fails on Chrome.\n // - `detail` works on Chrome, but fails on Firefox.\n return event.buttons === 0 || event.detail === 0;\n}\n/** Gets whether an event could be a faked `touchstart` event dispatched by a screen reader. */\nfunction isFakeTouchstartFromScreenReader(event) {\n const touch = event.touches && event.touches[0] || event.changedTouches && event.changedTouches[0];\n // A fake `touchstart` can be distinguished from a real one by looking at the `identifier`\n // which is typically >= 0 on a real device versus -1 from a screen reader. Just to be safe,\n // we can also look at `radiusX` and `radiusY`. This behavior was observed against a Windows 10\n // device with a touch screen running NVDA v2020.4 and Firefox 85 or Chrome 88.\n return !!touch && touch.identifier === -1 && (touch.radiusX == null || touch.radiusX === 1) && (touch.radiusY == null || touch.radiusY === 1);\n}\n\n/**\n * Injectable options for the InputModalityDetector. These are shallowly merged with the default\n * options.\n */\nconst INPUT_MODALITY_DETECTOR_OPTIONS = new InjectionToken('cdk-input-modality-detector-options');\n/**\n * Default options for the InputModalityDetector.\n *\n * Modifier keys are ignored by default (i.e. when pressed won't cause the service to detect\n * keyboard input modality) for two reasons:\n *\n * 1. Modifier keys are commonly used with mouse to perform actions such as 'right click' or 'open\n * in new tab', and are thus less representative of actual keyboard interaction.\n * 2. VoiceOver triggers some keyboard events when linearly navigating with Control + Option (but\n * confusingly not with Caps Lock). Thus, to have parity with other screen readers, we ignore\n * these keys so as to not update the input modality.\n *\n * Note that we do not by default ignore the right Meta key on Safari because it has the same key\n * code as the ContextMenu key on other browsers. When we switch to using event.key, we can\n * distinguish between the two.\n */\nconst INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS = {\n ignoreKeys: [ALT, CONTROL, MAC_META, META, SHIFT]\n};\n/**\n * The amount of time needed to pass after a touchstart event in order for a subsequent mousedown\n * event to be attributed as mouse and not touch.\n *\n * This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found\n * that a value of around 650ms seems appropriate.\n */\nconst TOUCH_BUFFER_MS = 650;\n/**\n * Event listener options that enable capturing and also mark the listener as passive if the browser\n * supports it.\n */\nconst modalityEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true\n});\n/**\n * Service that detects the user's input modality.\n *\n * This service does not update the input modality when a user navigates with a screen reader\n * (e.g. linear navigation with VoiceOver, object navigation / browse mode with NVDA, virtual PC\n * cursor mode with JAWS). This is in part due to technical limitations (i.e. keyboard events do not\n * fire as expected in these modes) but is also arguably the correct behavior. Navigating with a\n * screen reader is akin to visually scanning a page, and should not be interpreted as actual user\n * input interaction.\n *\n * When a user is not navigating but *interacting* with a screen reader, this service attempts to\n * update the input modality to keyboard, but in general this service's behavior is largely\n * undefined.\n */\nclass InputModalityDetector {\n /** The most recently detected input modality. */\n get mostRecentModality() {\n return this._modality.value;\n }\n constructor(_platform, ngZone, document, options) {\n this._platform = _platform;\n /**\n * The most recently detected input modality event target. Is null if no input modality has been\n * detected or if the associated event target is null for some unknown reason.\n */\n this._mostRecentTarget = null;\n /** The underlying BehaviorSubject that emits whenever an input modality is detected. */\n this._modality = new BehaviorSubject(null);\n /**\n * The timestamp of the last touch input modality. Used to determine whether mousedown events\n * should be attributed to mouse or touch.\n */\n this._lastTouchMs = 0;\n /**\n * Handles keydown events. Must be an arrow function in order to preserve the context when it gets\n * bound.\n */\n this._onKeydown = event => {\n // If this is one of the keys we should ignore, then ignore it and don't update the input\n // modality to keyboard.\n if (this._options?.ignoreKeys?.some(keyCode => keyCode === event.keyCode)) {\n return;\n }\n this._modality.next('keyboard');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles mousedown events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onMousedown = event => {\n // Touches trigger both touch and mouse events, so we need to distinguish between mouse events\n // that were triggered via mouse vs touch. To do so, check if the mouse event occurs closely\n // after the previous touch event.\n if (Date.now() - this._lastTouchMs < TOUCH_BUFFER_MS) {\n return;\n }\n // Fake mousedown events are fired by some screen readers when controls are activated by the\n // screen reader. Attribute them to keyboard input modality.\n this._modality.next(isFakeMousedownFromScreenReader(event) ? 'keyboard' : 'mouse');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles touchstart events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onTouchstart = event => {\n // Same scenario as mentioned in _onMousedown, but on touch screen devices, fake touchstart\n // events are fired. Again, attribute to keyboard input modality.\n if (isFakeTouchstartFromScreenReader(event)) {\n this._modality.next('keyboard');\n return;\n }\n // Store the timestamp of this touch event, as it's used to distinguish between mouse events\n // triggered via mouse vs touch.\n this._lastTouchMs = Date.now();\n this._modality.next('touch');\n this._mostRecentTarget = _getEventTarget(event);\n };\n this._options = {\n ...INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS,\n ...options\n };\n // Skip the first emission as it's null.\n this.modalityDetected = this._modality.pipe(skip(1));\n this.modalityChanged = this.modalityDetected.pipe(distinctUntilChanged());\n // If we're not in a browser, this service should do nothing, as there's no relevant input\n // modality to detect.\n if (_platform.isBrowser) {\n ngZone.runOutsideAngular(() => {\n document.addEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.addEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.addEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n });\n }\n }\n ngOnDestroy() {\n this._modality.complete();\n if (this._platform.isBrowser) {\n document.removeEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.removeEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.removeEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n }\n }\n static {\n this.ɵfac = function InputModalityDetector_Factory(t) {\n return new (t || InputModalityDetector)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(INPUT_MODALITY_DETECTOR_OPTIONS, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InputModalityDetector,\n factory: InputModalityDetector.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputModalityDetector, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: Document,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [INPUT_MODALITY_DETECTOR_OPTIONS]\n }]\n }], null);\n})();\nconst LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement', {\n providedIn: 'root',\n factory: LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY\n});\n/** @docs-private */\nfunction LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY() {\n return null;\n}\n/** Injection token that can be used to configure the default options for the LiveAnnouncer. */\nconst LIVE_ANNOUNCER_DEFAULT_OPTIONS = new InjectionToken('LIVE_ANNOUNCER_DEFAULT_OPTIONS');\nlet uniqueIds = 0;\nclass LiveAnnouncer {\n constructor(elementToken, _ngZone, _document, _defaultOptions) {\n this._ngZone = _ngZone;\n this._defaultOptions = _defaultOptions;\n // We inject the live element and document as `any` because the constructor signature cannot\n // reference browser globals (HTMLElement, Document) on non-browser environments, since having\n // a class decorator causes TypeScript to preserve the constructor signature types.\n this._document = _document;\n this._liveElement = elementToken || this._createLiveElement();\n }\n announce(message, ...args) {\n const defaultOptions = this._defaultOptions;\n let politeness;\n let duration;\n if (args.length === 1 && typeof args[0] === 'number') {\n duration = args[0];\n } else {\n [politeness, duration] = args;\n }\n this.clear();\n clearTimeout(this._previousTimeout);\n if (!politeness) {\n politeness = defaultOptions && defaultOptions.politeness ? defaultOptions.politeness : 'polite';\n }\n if (duration == null && defaultOptions) {\n duration = defaultOptions.duration;\n }\n // TODO: ensure changing the politeness works on all environments we support.\n this._liveElement.setAttribute('aria-live', politeness);\n if (this._liveElement.id) {\n this._exposeAnnouncerToModals(this._liveElement.id);\n }\n // This 100ms timeout is necessary for some browser + screen-reader combinations:\n // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n // second time without clearing and then using a non-zero delay.\n // (using JAWS 17 at time of this writing).\n return this._ngZone.runOutsideAngular(() => {\n if (!this._currentPromise) {\n this._currentPromise = new Promise(resolve => this._currentResolve = resolve);\n }\n clearTimeout(this._previousTimeout);\n this._previousTimeout = setTimeout(() => {\n this._liveElement.textContent = message;\n if (typeof duration === 'number') {\n this._previousTimeout = setTimeout(() => this.clear(), duration);\n }\n this._currentResolve();\n this._currentPromise = this._currentResolve = undefined;\n }, 100);\n return this._currentPromise;\n });\n }\n /**\n * Clears the current text from the announcer element. Can be used to prevent\n * screen readers from reading the text out again while the user is going\n * through the page landmarks.\n */\n clear() {\n if (this._liveElement) {\n this._liveElement.textContent = '';\n }\n }\n ngOnDestroy() {\n clearTimeout(this._previousTimeout);\n this._liveElement?.remove();\n this._liveElement = null;\n this._currentResolve?.();\n this._currentPromise = this._currentResolve = undefined;\n }\n _createLiveElement() {\n const elementClass = 'cdk-live-announcer-element';\n const previousElements = this._document.getElementsByClassName(elementClass);\n const liveEl = this._document.createElement('div');\n // Remove any old containers. This can happen when coming in from a server-side-rendered page.\n for (let i = 0; i < previousElements.length; i++) {\n previousElements[i].remove();\n }\n liveEl.classList.add(elementClass);\n liveEl.classList.add('cdk-visually-hidden');\n liveEl.setAttribute('aria-atomic', 'true');\n liveEl.setAttribute('aria-live', 'polite');\n liveEl.id = `cdk-live-announcer-${uniqueIds++}`;\n this._document.body.appendChild(liveEl);\n return liveEl;\n }\n /**\n * Some browsers won't expose the accessibility node of the live announcer element if there is an\n * `aria-modal` and the live announcer is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live announcer element.\n */\n _exposeAnnouncerToModals(id) {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with\n // the `SnakBarContainer` and other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal=\"true\"]');\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n } else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n static {\n this.ɵfac = function LiveAnnouncer_Factory(t) {\n return new (t || LiveAnnouncer)(i0.ɵɵinject(LIVE_ANNOUNCER_ELEMENT_TOKEN, 8), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(LIVE_ANNOUNCER_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LiveAnnouncer,\n factory: LiveAnnouncer.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(LiveAnnouncer, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_ELEMENT_TOKEN]\n }]\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_DEFAULT_OPTIONS]\n }]\n }], null);\n})();\n/**\n * A directive that works similarly to aria-live, but uses the LiveAnnouncer to ensure compatibility\n * with a wider range of browsers and screen readers.\n */\nclass CdkAriaLive {\n /** The aria-live politeness level to use when announcing messages. */\n get politeness() {\n return this._politeness;\n }\n set politeness(value) {\n this._politeness = value === 'off' || value === 'assertive' ? value : 'polite';\n if (this._politeness === 'off') {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n } else if (!this._subscription) {\n this._subscription = this._ngZone.runOutsideAngular(() => {\n return this._contentObserver.observe(this._elementRef).subscribe(() => {\n // Note that we use textContent here, rather than innerText, in order to avoid a reflow.\n const elementText = this._elementRef.nativeElement.textContent;\n // The `MutationObserver` fires also for attribute\n // changes which we don't want to announce.\n if (elementText !== this._previousAnnouncedText) {\n this._liveAnnouncer.announce(elementText, this._politeness, this.duration);\n this._previousAnnouncedText = elementText;\n }\n });\n });\n }\n }\n constructor(_elementRef, _liveAnnouncer, _contentObserver, _ngZone) {\n this._elementRef = _elementRef;\n this._liveAnnouncer = _liveAnnouncer;\n this._contentObserver = _contentObserver;\n this._ngZone = _ngZone;\n this._politeness = 'polite';\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n static {\n this.ɵfac = function CdkAriaLive_Factory(t) {\n return new (t || CdkAriaLive)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(LiveAnnouncer), i0.ɵɵdirectiveInject(i1$1.ContentObserver), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkAriaLive,\n selectors: [[\"\", \"cdkAriaLive\", \"\"]],\n inputs: {\n politeness: [\"cdkAriaLive\", \"politeness\"],\n duration: [\"cdkAriaLiveDuration\", \"duration\"]\n },\n exportAs: [\"cdkAriaLive\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkAriaLive, [{\n type: Directive,\n args: [{\n selector: '[cdkAriaLive]',\n exportAs: 'cdkAriaLive'\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: LiveAnnouncer\n }, {\n type: i1$1.ContentObserver\n }, {\n type: i0.NgZone\n }], {\n politeness: [{\n type: Input,\n args: ['cdkAriaLive']\n }],\n duration: [{\n type: Input,\n args: ['cdkAriaLiveDuration']\n }]\n });\n})();\n\n/** InjectionToken for FocusMonitorOptions. */\nconst FOCUS_MONITOR_DEFAULT_OPTIONS = new InjectionToken('cdk-focus-monitor-default-options');\n/**\n * Event listener options that enable capturing and also\n * mark the listener as passive if the browser supports it.\n */\nconst captureEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true\n});\n/** Monitors mouse and keyboard events to determine the cause of focus events. */\nclass FocusMonitor {\n constructor(_ngZone, _platform, _inputModalityDetector, /** @breaking-change 11.0.0 make document required */\n document, options) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._inputModalityDetector = _inputModalityDetector;\n /** The focus origin that the next focus event is a result of. */\n this._origin = null;\n /** Whether the window has just been focused. */\n this._windowFocused = false;\n /**\n * Whether the origin was determined via a touch interaction. Necessary as properly attributing\n * focus events to touch interactions requires special logic.\n */\n this._originFromTouchInteraction = false;\n /** Map of elements being monitored to their info. */\n this._elementInfo = new Map();\n /** The number of elements currently being monitored. */\n this._monitoredElementCount = 0;\n /**\n * Keeps track of the root nodes to which we've currently bound a focus/blur handler,\n * as well as the number of monitored elements that they contain. We have to treat focus/blur\n * handlers differently from the rest of the events, because the browser won't emit events\n * to the document when focus moves inside of a shadow root.\n */\n this._rootNodeFocusListenerCount = new Map();\n /**\n * Event listener for `focus` events on the window.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._windowFocusListener = () => {\n // Make a note of when the window regains focus, so we can\n // restore the origin info for the focused element.\n this._windowFocused = true;\n this._windowFocusTimeoutId = window.setTimeout(() => this._windowFocused = false);\n };\n /** Subject for stopping our InputModalityDetector subscription. */\n this._stopInputModalityDetector = new Subject();\n /**\n * Event listener for `focus` and 'blur' events on the document.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._rootNodeFocusAndBlurListener = event => {\n const target = _getEventTarget(event);\n // We need to walk up the ancestor chain in order to support `checkChildren`.\n for (let element = target; element; element = element.parentElement) {\n if (event.type === 'focus') {\n this._onFocus(event, element);\n } else {\n this._onBlur(event, element);\n }\n }\n };\n this._document = document;\n this._detectionMode = options?.detectionMode || 0 /* FocusMonitorDetectionMode.IMMEDIATE */;\n }\n\n monitor(element, checkChildren = false) {\n const nativeElement = coerceElement(element);\n // Do nothing if we're not on the browser platform or the passed in node isn't an element.\n if (!this._platform.isBrowser || nativeElement.nodeType !== 1) {\n // Note: we don't want the observable to emit at all so we don't pass any parameters.\n return of();\n }\n // If the element is inside the shadow DOM, we need to bind our focus/blur listeners to\n // the shadow root, rather than the `document`, because the browser won't emit focus events\n // to the `document`, if focus is moving within the same shadow root.\n const rootNode = _getShadowRoot(nativeElement) || this._getDocument();\n const cachedInfo = this._elementInfo.get(nativeElement);\n // Check if we're already monitoring this element.\n if (cachedInfo) {\n if (checkChildren) {\n // TODO(COMP-318): this can be problematic, because it'll turn all non-checkChildren\n // observers into ones that behave as if `checkChildren` was turned on. We need a more\n // robust solution.\n cachedInfo.checkChildren = true;\n }\n return cachedInfo.subject;\n }\n // Create monitored element info.\n const info = {\n checkChildren: checkChildren,\n subject: new Subject(),\n rootNode\n };\n this._elementInfo.set(nativeElement, info);\n this._registerGlobalListeners(info);\n return info.subject;\n }\n stopMonitoring(element) {\n const nativeElement = coerceElement(element);\n const elementInfo = this._elementInfo.get(nativeElement);\n if (elementInfo) {\n elementInfo.subject.complete();\n this._setClasses(nativeElement);\n this._elementInfo.delete(nativeElement);\n this._removeGlobalListeners(elementInfo);\n }\n }\n focusVia(element, origin, options) {\n const nativeElement = coerceElement(element);\n const focusedElement = this._getDocument().activeElement;\n // If the element is focused already, calling `focus` again won't trigger the event listener\n // which means that the focus classes won't be updated. If that's the case, update the classes\n // directly without waiting for an event.\n if (nativeElement === focusedElement) {\n this._getClosestElementsInfo(nativeElement).forEach(([currentElement, info]) => this._originChanged(currentElement, origin, info));\n } else {\n this._setOrigin(origin);\n // `focus` isn't available on the server\n if (typeof nativeElement.focus === 'function') {\n nativeElement.focus(options);\n }\n }\n }\n ngOnDestroy() {\n this._elementInfo.forEach((_info, element) => this.stopMonitoring(element));\n }\n /** Access injected document if available or fallback to global document reference */\n _getDocument() {\n return this._document || document;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const doc = this._getDocument();\n return doc.defaultView || window;\n }\n _getFocusOrigin(focusEventTarget) {\n if (this._origin) {\n // If the origin was realized via a touch interaction, we need to perform additional checks\n // to determine whether the focus origin should be attributed to touch or program.\n if (this._originFromTouchInteraction) {\n return this._shouldBeAttributedToTouch(focusEventTarget) ? 'touch' : 'program';\n } else {\n return this._origin;\n }\n }\n // If the window has just regained focus, we can restore the most recent origin from before the\n // window blurred. Otherwise, we've reached the point where we can't identify the source of the\n // focus. This typically means one of two things happened:\n //\n // 1) The element was programmatically focused, or\n // 2) The element was focused via screen reader navigation (which generally doesn't fire\n // events).\n //\n // Because we can't distinguish between these two cases, we default to setting `program`.\n if (this._windowFocused && this._lastFocusOrigin) {\n return this._lastFocusOrigin;\n }\n // If the interaction is coming from an input label, we consider it a mouse interactions.\n // This is a special case where focus moves on `click`, rather than `mousedown` which breaks\n // our detection, because all our assumptions are for `mousedown`. We need to handle this\n // special case, because it's very common for checkboxes and radio buttons.\n if (focusEventTarget && this._isLastInteractionFromInputLabel(focusEventTarget)) {\n return 'mouse';\n }\n return 'program';\n }\n /**\n * Returns whether the focus event should be attributed to touch. Recall that in IMMEDIATE mode, a\n * touch origin isn't immediately reset at the next tick (see _setOrigin). This means that when we\n * handle a focus event following a touch interaction, we need to determine whether (1) the focus\n * event was directly caused by the touch interaction or (2) the focus event was caused by a\n * subsequent programmatic focus call triggered by the touch interaction.\n * @param focusEventTarget The target of the focus event under examination.\n */\n _shouldBeAttributedToTouch(focusEventTarget) {\n // Please note that this check is not perfect. Consider the following edge case:\n //\n // \n //\n // Suppose there is a FocusMonitor in IMMEDIATE mode attached to #parent. When the user touches\n // #child, #parent is programmatically focused. This code will attribute the focus to touch\n // instead of program. This is a relatively minor edge-case that can be worked around by using\n // focusVia(parent, 'program') to focus #parent.\n return this._detectionMode === 1 /* FocusMonitorDetectionMode.EVENTUAL */ || !!focusEventTarget?.contains(this._inputModalityDetector._mostRecentTarget);\n }\n /**\n * Sets the focus classes on the element based on the given focus origin.\n * @param element The element to update the classes on.\n * @param origin The focus origin.\n */\n _setClasses(element, origin) {\n element.classList.toggle('cdk-focused', !!origin);\n element.classList.toggle('cdk-touch-focused', origin === 'touch');\n element.classList.toggle('cdk-keyboard-focused', origin === 'keyboard');\n element.classList.toggle('cdk-mouse-focused', origin === 'mouse');\n element.classList.toggle('cdk-program-focused', origin === 'program');\n }\n /**\n * Updates the focus origin. If we're using immediate detection mode, we schedule an async\n * function to clear the origin at the end of a timeout. The duration of the timeout depends on\n * the origin being set.\n * @param origin The origin to set.\n * @param isFromInteraction Whether we are setting the origin from an interaction event.\n */\n _setOrigin(origin, isFromInteraction = false) {\n this._ngZone.runOutsideAngular(() => {\n this._origin = origin;\n this._originFromTouchInteraction = origin === 'touch' && isFromInteraction;\n // If we're in IMMEDIATE mode, reset the origin at the next tick (or in `TOUCH_BUFFER_MS` ms\n // for a touch event). We reset the origin at the next tick because Firefox focuses one tick\n // after the interaction event. We wait `TOUCH_BUFFER_MS` ms before resetting the origin for\n // a touch event because when a touch event is fired, the associated focus event isn't yet in\n // the event queue. Before doing so, clear any pending timeouts.\n if (this._detectionMode === 0 /* FocusMonitorDetectionMode.IMMEDIATE */) {\n clearTimeout(this._originTimeoutId);\n const ms = this._originFromTouchInteraction ? TOUCH_BUFFER_MS : 1;\n this._originTimeoutId = setTimeout(() => this._origin = null, ms);\n }\n });\n }\n /**\n * Handles focus events on a registered element.\n * @param event The focus event.\n * @param element The monitored element.\n */\n _onFocus(event, element) {\n // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent\n // focus event affecting the monitored element. If we want to use the origin of the first event\n // instead we should check for the cdk-focused class here and return if the element already has\n // it. (This only matters for elements that have includesChildren = true).\n // If we are not counting child-element-focus as focused, make sure that the event target is the\n // monitored element itself.\n const elementInfo = this._elementInfo.get(element);\n const focusEventTarget = _getEventTarget(event);\n if (!elementInfo || !elementInfo.checkChildren && element !== focusEventTarget) {\n return;\n }\n this._originChanged(element, this._getFocusOrigin(focusEventTarget), elementInfo);\n }\n /**\n * Handles blur events on a registered element.\n * @param event The blur event.\n * @param element The monitored element.\n */\n _onBlur(event, element) {\n // If we are counting child-element-focus as focused, make sure that we aren't just blurring in\n // order to focus another child of the monitored element.\n const elementInfo = this._elementInfo.get(element);\n if (!elementInfo || elementInfo.checkChildren && event.relatedTarget instanceof Node && element.contains(event.relatedTarget)) {\n return;\n }\n this._setClasses(element);\n this._emitOrigin(elementInfo, null);\n }\n _emitOrigin(info, origin) {\n if (info.subject.observers.length) {\n this._ngZone.run(() => info.subject.next(origin));\n }\n }\n _registerGlobalListeners(elementInfo) {\n if (!this._platform.isBrowser) {\n return;\n }\n const rootNode = elementInfo.rootNode;\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode) || 0;\n if (!rootNodeFocusListeners) {\n this._ngZone.runOutsideAngular(() => {\n rootNode.addEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.addEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n });\n }\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners + 1);\n // Register global listeners when first element is monitored.\n if (++this._monitoredElementCount === 1) {\n // Note: we listen to events in the capture phase so we\n // can detect them even if the user stops propagation.\n this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n window.addEventListener('focus', this._windowFocusListener);\n });\n // The InputModalityDetector is also just a collection of global listeners.\n this._inputModalityDetector.modalityDetected.pipe(takeUntil(this._stopInputModalityDetector)).subscribe(modality => {\n this._setOrigin(modality, true /* isFromInteraction */);\n });\n }\n }\n\n _removeGlobalListeners(elementInfo) {\n const rootNode = elementInfo.rootNode;\n if (this._rootNodeFocusListenerCount.has(rootNode)) {\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode);\n if (rootNodeFocusListeners > 1) {\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners - 1);\n } else {\n rootNode.removeEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.removeEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n this._rootNodeFocusListenerCount.delete(rootNode);\n }\n }\n // Unregister global listeners when last element is unmonitored.\n if (! --this._monitoredElementCount) {\n const window = this._getWindow();\n window.removeEventListener('focus', this._windowFocusListener);\n // Equivalently, stop our InputModalityDetector subscription.\n this._stopInputModalityDetector.next();\n // Clear timeouts for all potentially pending timeouts to prevent the leaks.\n clearTimeout(this._windowFocusTimeoutId);\n clearTimeout(this._originTimeoutId);\n }\n }\n /** Updates all the state on an element once its focus origin has changed. */\n _originChanged(element, origin, elementInfo) {\n this._setClasses(element, origin);\n this._emitOrigin(elementInfo, origin);\n this._lastFocusOrigin = origin;\n }\n /**\n * Collects the `MonitoredElementInfo` of a particular element and\n * all of its ancestors that have enabled `checkChildren`.\n * @param element Element from which to start the search.\n */\n _getClosestElementsInfo(element) {\n const results = [];\n this._elementInfo.forEach((info, currentElement) => {\n if (currentElement === element || info.checkChildren && currentElement.contains(element)) {\n results.push([currentElement, info]);\n }\n });\n return results;\n }\n /**\n * Returns whether an interaction is likely to have come from the user clicking the `label` of\n * an `input` or `textarea` in order to focus it.\n * @param focusEventTarget Target currently receiving focus.\n */\n _isLastInteractionFromInputLabel(focusEventTarget) {\n const {\n _mostRecentTarget: mostRecentTarget,\n mostRecentModality\n } = this._inputModalityDetector;\n // If the last interaction used the mouse on an element contained by one of the labels\n // of an `input`/`textarea` that is currently focused, it is very likely that the\n // user redirected focus using the label.\n if (mostRecentModality !== 'mouse' || !mostRecentTarget || mostRecentTarget === focusEventTarget || focusEventTarget.nodeName !== 'INPUT' && focusEventTarget.nodeName !== 'TEXTAREA' || focusEventTarget.disabled) {\n return false;\n }\n const labels = focusEventTarget.labels;\n if (labels) {\n for (let i = 0; i < labels.length; i++) {\n if (labels[i].contains(mostRecentTarget)) {\n return true;\n }\n }\n }\n return false;\n }\n static {\n this.ɵfac = function FocusMonitor_Factory(t) {\n return new (t || FocusMonitor)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Platform), i0.ɵɵinject(InputModalityDetector), i0.ɵɵinject(DOCUMENT, 8), i0.ɵɵinject(FOCUS_MONITOR_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FocusMonitor,\n factory: FocusMonitor.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FocusMonitor, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i0.NgZone\n }, {\n type: i1.Platform\n }, {\n type: InputModalityDetector\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_MONITOR_DEFAULT_OPTIONS]\n }]\n }], null);\n})();\n/**\n * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or\n * programmatically) and adds corresponding classes to the element.\n *\n * There are two variants of this directive:\n * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is\n * focused.\n * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.\n */\nclass CdkMonitorFocus {\n constructor(_elementRef, _focusMonitor) {\n this._elementRef = _elementRef;\n this._focusMonitor = _focusMonitor;\n this._focusOrigin = null;\n this.cdkFocusChange = new EventEmitter();\n }\n get focusOrigin() {\n return this._focusOrigin;\n }\n ngAfterViewInit() {\n const element = this._elementRef.nativeElement;\n this._monitorSubscription = this._focusMonitor.monitor(element, element.nodeType === 1 && element.hasAttribute('cdkMonitorSubtreeFocus')).subscribe(origin => {\n this._focusOrigin = origin;\n this.cdkFocusChange.emit(origin);\n });\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n if (this._monitorSubscription) {\n this._monitorSubscription.unsubscribe();\n }\n }\n static {\n this.ɵfac = function CdkMonitorFocus_Factory(t) {\n return new (t || CdkMonitorFocus)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(FocusMonitor));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkMonitorFocus,\n selectors: [[\"\", \"cdkMonitorElementFocus\", \"\"], [\"\", \"cdkMonitorSubtreeFocus\", \"\"]],\n outputs: {\n cdkFocusChange: \"cdkFocusChange\"\n },\n exportAs: [\"cdkMonitorFocus\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkMonitorFocus, [{\n type: Directive,\n args: [{\n selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',\n exportAs: 'cdkMonitorFocus'\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: FocusMonitor\n }], {\n cdkFocusChange: [{\n type: Output\n }]\n });\n})();\n\n/** CSS class applied to the document body when in black-on-white high-contrast mode. */\nconst BLACK_ON_WHITE_CSS_CLASS = 'cdk-high-contrast-black-on-white';\n/** CSS class applied to the document body when in white-on-black high-contrast mode. */\nconst WHITE_ON_BLACK_CSS_CLASS = 'cdk-high-contrast-white-on-black';\n/** CSS class applied to the document body when in high-contrast mode. */\nconst HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS = 'cdk-high-contrast-active';\n/**\n * Service to determine whether the browser is currently in a high-contrast-mode environment.\n *\n * Microsoft Windows supports an accessibility feature called \"High Contrast Mode\". This mode\n * changes the appearance of all applications, including web applications, to dramatically increase\n * contrast.\n *\n * IE, Edge, and Firefox currently support this mode. Chrome does not support Windows High Contrast\n * Mode. This service does not detect high-contrast mode as added by the Chrome \"High Contrast\"\n * browser extension.\n */\nclass HighContrastModeDetector {\n constructor(_platform, document) {\n this._platform = _platform;\n this._document = document;\n this._breakpointSubscription = inject(BreakpointObserver).observe('(forced-colors: active)').subscribe(() => {\n if (this._hasCheckedHighContrastMode) {\n this._hasCheckedHighContrastMode = false;\n this._applyBodyHighContrastModeCssClasses();\n }\n });\n }\n /** Gets the current high-contrast-mode for the page. */\n getHighContrastMode() {\n if (!this._platform.isBrowser) {\n return 0 /* HighContrastMode.NONE */;\n }\n // Create a test element with an arbitrary background-color that is neither black nor\n // white; high-contrast mode will coerce the color to either black or white. Also ensure that\n // appending the test element to the DOM does not affect layout by absolutely positioning it\n const testElement = this._document.createElement('div');\n testElement.style.backgroundColor = 'rgb(1,2,3)';\n testElement.style.position = 'absolute';\n this._document.body.appendChild(testElement);\n // Get the computed style for the background color, collapsing spaces to normalize between\n // browsers. Once we get this color, we no longer need the test element. Access the `window`\n // via the document so we can fake it in tests. Note that we have extra null checks, because\n // this logic will likely run during app bootstrap and throwing can break the entire app.\n const documentWindow = this._document.defaultView || window;\n const computedStyle = documentWindow && documentWindow.getComputedStyle ? documentWindow.getComputedStyle(testElement) : null;\n const computedColor = (computedStyle && computedStyle.backgroundColor || '').replace(/ /g, '');\n testElement.remove();\n switch (computedColor) {\n // Pre Windows 11 dark theme.\n case 'rgb(0,0,0)':\n // Windows 11 dark themes.\n case 'rgb(45,50,54)':\n case 'rgb(32,32,32)':\n return 2 /* HighContrastMode.WHITE_ON_BLACK */;\n // Pre Windows 11 light theme.\n case 'rgb(255,255,255)':\n // Windows 11 light theme.\n case 'rgb(255,250,239)':\n return 1 /* HighContrastMode.BLACK_ON_WHITE */;\n }\n\n return 0 /* HighContrastMode.NONE */;\n }\n\n ngOnDestroy() {\n this._breakpointSubscription.unsubscribe();\n }\n /** Applies CSS classes indicating high-contrast mode to document body (browser-only). */\n _applyBodyHighContrastModeCssClasses() {\n if (!this._hasCheckedHighContrastMode && this._platform.isBrowser && this._document.body) {\n const bodyClasses = this._document.body.classList;\n bodyClasses.remove(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);\n this._hasCheckedHighContrastMode = true;\n const mode = this.getHighContrastMode();\n if (mode === 1 /* HighContrastMode.BLACK_ON_WHITE */) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS);\n } else if (mode === 2 /* HighContrastMode.WHITE_ON_BLACK */) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);\n }\n }\n }\n static {\n this.ɵfac = function HighContrastModeDetector_Factory(t) {\n return new (t || HighContrastModeDetector)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HighContrastModeDetector,\n factory: HighContrastModeDetector.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(HighContrastModeDetector, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\nclass A11yModule {\n constructor(highContrastModeDetector) {\n highContrastModeDetector._applyBodyHighContrastModeCssClasses();\n }\n static {\n this.ɵfac = function A11yModule_Factory(t) {\n return new (t || A11yModule)(i0.ɵɵinject(HighContrastModeDetector));\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: A11yModule,\n declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n imports: [ObserversModule],\n exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ObserversModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(A11yModule, [{\n type: NgModule,\n args: [{\n imports: [ObserversModule],\n declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus]\n }]\n }], () => [{\n type: HighContrastModeDetector\n }], null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A11yModule, ActiveDescendantKeyManager, AriaDescriber, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, CDK_DESCRIBEDBY_ID_PREFIX, CdkAriaLive, CdkMonitorFocus, CdkTrapFocus, ConfigurableFocusTrap, ConfigurableFocusTrapFactory, EventListenerFocusTrapInertStrategy, FOCUS_MONITOR_DEFAULT_OPTIONS, FOCUS_TRAP_INERT_STRATEGY, FocusKeyManager, FocusMonitor, FocusTrap, FocusTrapFactory, HighContrastModeDetector, INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS, INPUT_MODALITY_DETECTOR_OPTIONS, InputModalityDetector, InteractivityChecker, IsFocusableConfig, LIVE_ANNOUNCER_DEFAULT_OPTIONS, LIVE_ANNOUNCER_ELEMENT_TOKEN, LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY, ListKeyManager, LiveAnnouncer, MESSAGES_CONTAINER_ID, addAriaReferencedId, getAriaReferenceIds, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader, removeAriaReferencedId };\n"],
- "mappings": "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",
- "names": ["window", "document"]
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-FGZVIKKA.js b/.angular/cache/17.0.7/vite/deps/chunk-FGZVIKKA.js
deleted file mode 100644
index e3deb4a..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-FGZVIKKA.js
+++ /dev/null
@@ -1,191 +0,0 @@
-import {
- NzIconDirective,
- NzIconModule
-} from "./chunk-VWMHIMW7.js";
-import {
- CommonModule,
- NgIf
-} from "./chunk-OSQBUYO6.js";
-import {
- BehaviorSubject,
- ChangeDetectionStrategy,
- ChangeDetectorRef,
- Component,
- Injectable,
- Input,
- NgModule,
- ReplaySubject,
- ViewEncapsulation$1,
- setClassMetadata,
- ɵɵNgOnChangesFeature,
- ɵɵclassProp,
- ɵɵdefineComponent,
- ɵɵdefineInjectable,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵelement,
- ɵɵnextContext,
- ɵɵproperty,
- ɵɵtemplate
-} from "./chunk-FGESKT7O.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-form.mjs
-function NzFormItemFeedbackIconComponent_span_0_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelement(0, "span", 1);
- }
- if (rf & 2) {
- const ctx_r0 = ɵɵnextContext();
- ɵɵproperty("nzType", ctx_r0.iconType);
- }
-}
-var _NzFormStatusService = class _NzFormStatusService {
- constructor() {
- this.formStatusChanges = new ReplaySubject(1);
- }
-};
-_NzFormStatusService.ɵfac = function NzFormStatusService_Factory(t) {
- return new (t || _NzFormStatusService)();
-};
-_NzFormStatusService.ɵprov = ɵɵdefineInjectable({
- token: _NzFormStatusService,
- factory: _NzFormStatusService.ɵfac
-});
-var NzFormStatusService = _NzFormStatusService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzFormStatusService, [{
- type: Injectable
- }], null, null);
-})();
-var _NzFormNoStatusService = class _NzFormNoStatusService {
- constructor() {
- this.noFormStatus = new BehaviorSubject(false);
- }
-};
-_NzFormNoStatusService.ɵfac = function NzFormNoStatusService_Factory(t) {
- return new (t || _NzFormNoStatusService)();
-};
-_NzFormNoStatusService.ɵprov = ɵɵdefineInjectable({
- token: _NzFormNoStatusService,
- factory: _NzFormNoStatusService.ɵfac
-});
-var NzFormNoStatusService = _NzFormNoStatusService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzFormNoStatusService, [{
- type: Injectable
- }], null, null);
-})();
-var iconTypeMap = {
- error: "close-circle-fill",
- validating: "loading",
- success: "check-circle-fill",
- warning: "exclamation-circle-fill"
-};
-var _NzFormItemFeedbackIconComponent = class _NzFormItemFeedbackIconComponent {
- constructor(cdr) {
- this.cdr = cdr;
- this.status = "";
- this.iconType = null;
- }
- ngOnChanges(_changes) {
- this.updateIcon();
- }
- updateIcon() {
- this.iconType = this.status ? iconTypeMap[this.status] : null;
- this.cdr.markForCheck();
- }
-};
-_NzFormItemFeedbackIconComponent.ɵfac = function NzFormItemFeedbackIconComponent_Factory(t) {
- return new (t || _NzFormItemFeedbackIconComponent)(ɵɵdirectiveInject(ChangeDetectorRef));
-};
-_NzFormItemFeedbackIconComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzFormItemFeedbackIconComponent,
- selectors: [["nz-form-item-feedback-icon"]],
- hostAttrs: [1, "ant-form-item-feedback-icon"],
- hostVars: 8,
- hostBindings: function NzFormItemFeedbackIconComponent_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵclassProp("ant-form-item-feedback-icon-error", ctx.status === "error")("ant-form-item-feedback-icon-warning", ctx.status === "warning")("ant-form-item-feedback-icon-success", ctx.status === "success")("ant-form-item-feedback-icon-validating", ctx.status === "validating");
- }
- },
- inputs: {
- status: "status"
- },
- exportAs: ["nzFormFeedbackIcon"],
- features: [ɵɵNgOnChangesFeature],
- decls: 1,
- vars: 1,
- consts: [["nz-icon", "", 3, "nzType", 4, "ngIf"], ["nz-icon", "", 3, "nzType"]],
- template: function NzFormItemFeedbackIconComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵtemplate(0, NzFormItemFeedbackIconComponent_span_0_Template, 1, 1, "span", 0);
- }
- if (rf & 2) {
- ɵɵproperty("ngIf", ctx.iconType);
- }
- },
- dependencies: [NgIf, NzIconDirective],
- encapsulation: 2,
- changeDetection: 0
-});
-var NzFormItemFeedbackIconComponent = _NzFormItemFeedbackIconComponent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzFormItemFeedbackIconComponent, [{
- type: Component,
- args: [{
- selector: "nz-form-item-feedback-icon",
- exportAs: "nzFormFeedbackIcon",
- preserveWhitespaces: false,
- encapsulation: ViewEncapsulation$1.None,
- changeDetection: ChangeDetectionStrategy.OnPush,
- template: ` `,
- host: {
- class: "ant-form-item-feedback-icon",
- "[class.ant-form-item-feedback-icon-error]": 'status==="error"',
- "[class.ant-form-item-feedback-icon-warning]": 'status==="warning"',
- "[class.ant-form-item-feedback-icon-success]": 'status==="success"',
- "[class.ant-form-item-feedback-icon-validating]": 'status==="validating"'
- }
- }]
- }], () => [{
- type: ChangeDetectorRef
- }], {
- status: [{
- type: Input
- }]
- });
-})();
-var _NzFormPatchModule = class _NzFormPatchModule {
-};
-_NzFormPatchModule.ɵfac = function NzFormPatchModule_Factory(t) {
- return new (t || _NzFormPatchModule)();
-};
-_NzFormPatchModule.ɵmod = ɵɵdefineNgModule({
- type: _NzFormPatchModule,
- declarations: [NzFormItemFeedbackIconComponent],
- imports: [CommonModule, NzIconModule],
- exports: [NzFormItemFeedbackIconComponent]
-});
-_NzFormPatchModule.ɵinj = ɵɵdefineInjector({
- imports: [CommonModule, NzIconModule]
-});
-var NzFormPatchModule = _NzFormPatchModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzFormPatchModule, [{
- type: NgModule,
- args: [{
- imports: [CommonModule, NzIconModule],
- exports: [NzFormItemFeedbackIconComponent],
- declarations: [NzFormItemFeedbackIconComponent]
- }]
- }], null, null);
-})();
-
-export {
- NzFormStatusService,
- NzFormNoStatusService,
- NzFormItemFeedbackIconComponent,
- NzFormPatchModule
-};
-//# sourceMappingURL=chunk-FGZVIKKA.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-FGZVIKKA.js.map b/.angular/cache/17.0.7/vite/deps/chunk-FGZVIKKA.js.map
deleted file mode 100644
index 99985f2..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-FGZVIKKA.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-form.mjs"],
- "sourcesContent": ["import * as i0 from '@angular/core';\nimport { Injectable, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';\nimport { ReplaySubject, BehaviorSubject } from 'rxjs';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from 'ng-zorro-antd/icon';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\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 */\nfunction NzFormItemFeedbackIconComponent_span_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 1);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"nzType\", ctx_r0.iconType);\n }\n}\nclass NzFormStatusService {\n constructor() {\n this.formStatusChanges = new ReplaySubject(1);\n }\n static {\n this.ɵfac = function NzFormStatusService_Factory(t) {\n return new (t || NzFormStatusService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzFormStatusService,\n factory: NzFormStatusService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzFormStatusService, [{\n type: Injectable\n }], null, null);\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// Used in input-group/input-number-group to make sure components in addon work well\nclass NzFormNoStatusService {\n constructor() {\n this.noFormStatus = new BehaviorSubject(false);\n }\n static {\n this.ɵfac = function NzFormNoStatusService_Factory(t) {\n return new (t || NzFormNoStatusService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzFormNoStatusService,\n factory: NzFormNoStatusService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzFormNoStatusService, [{\n type: Injectable\n }], null, null);\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 iconTypeMap = {\n error: 'close-circle-fill',\n validating: 'loading',\n success: 'check-circle-fill',\n warning: 'exclamation-circle-fill'\n};\nclass NzFormItemFeedbackIconComponent {\n constructor(cdr) {\n this.cdr = cdr;\n this.status = '';\n this.iconType = null;\n }\n ngOnChanges(_changes) {\n this.updateIcon();\n }\n updateIcon() {\n this.iconType = this.status ? iconTypeMap[this.status] : null;\n this.cdr.markForCheck();\n }\n static {\n this.ɵfac = function NzFormItemFeedbackIconComponent_Factory(t) {\n return new (t || NzFormItemFeedbackIconComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzFormItemFeedbackIconComponent,\n selectors: [[\"nz-form-item-feedback-icon\"]],\n hostAttrs: [1, \"ant-form-item-feedback-icon\"],\n hostVars: 8,\n hostBindings: function NzFormItemFeedbackIconComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"ant-form-item-feedback-icon-error\", ctx.status === \"error\")(\"ant-form-item-feedback-icon-warning\", ctx.status === \"warning\")(\"ant-form-item-feedback-icon-success\", ctx.status === \"success\")(\"ant-form-item-feedback-icon-validating\", ctx.status === \"validating\");\n }\n },\n inputs: {\n status: \"status\"\n },\n exportAs: [\"nzFormFeedbackIcon\"],\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 1,\n vars: 1,\n consts: [[\"nz-icon\", \"\", 3, \"nzType\", 4, \"ngIf\"], [\"nz-icon\", \"\", 3, \"nzType\"]],\n template: function NzFormItemFeedbackIconComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NzFormItemFeedbackIconComponent_span_0_Template, 1, 1, \"span\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.iconType);\n }\n },\n dependencies: [i1.NgIf, i2.NzIconDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzFormItemFeedbackIconComponent, [{\n type: Component,\n args: [{\n selector: 'nz-form-item-feedback-icon',\n exportAs: 'nzFormFeedbackIcon',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ` `,\n host: {\n class: 'ant-form-item-feedback-icon',\n '[class.ant-form-item-feedback-icon-error]': 'status===\"error\"',\n '[class.ant-form-item-feedback-icon-warning]': 'status===\"warning\"',\n '[class.ant-form-item-feedback-icon-success]': 'status===\"success\"',\n '[class.ant-form-item-feedback-icon-validating]': 'status===\"validating\"'\n }\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }], {\n status: [{\n type: Input\n }]\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 NzFormPatchModule {\n static {\n this.ɵfac = function NzFormPatchModule_Factory(t) {\n return new (t || NzFormPatchModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzFormPatchModule,\n declarations: [NzFormItemFeedbackIconComponent],\n imports: [CommonModule, NzIconModule],\n exports: [NzFormItemFeedbackIconComponent]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, NzIconModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzFormPatchModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, NzIconModule],\n exports: [NzFormItemFeedbackIconComponent],\n declarations: [NzFormItemFeedbackIconComponent]\n }]\n }], null, null);\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 { NzFormItemFeedbackIconComponent, NzFormNoStatusService, NzFormPatchModule, NzFormStatusService };\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-KMGBCF4T.js b/.angular/cache/17.0.7/vite/deps/chunk-KMGBCF4T.js
deleted file mode 100644
index 47fc483..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-KMGBCF4T.js
+++ /dev/null
@@ -1,760 +0,0 @@
-import {
- NzIconDirective,
- NzIconModule
-} from "./chunk-VWMHIMW7.js";
-import {
- NzConfigService,
- WithConfig
-} from "./chunk-ZHMJ6SNN.js";
-import {
- Directionality
-} from "./chunk-6NZ2BEBG.js";
-import {
- Platform
-} from "./chunk-IAC53GOD.js";
-import {
- InputBoolean
-} from "./chunk-M5GY4FCO.js";
-import {
- NgIf
-} from "./chunk-OSQBUYO6.js";
-import {
- ANIMATION_MODULE_TYPE,
- CSP_NONCE,
- ChangeDetectionStrategy,
- ChangeDetectorRef,
- Component,
- ContentChild,
- Directive,
- ElementRef,
- Inject,
- InjectionToken,
- Input,
- NgModule,
- NgZone,
- Optional,
- PLATFORM_ID,
- Renderer2,
- Subject,
- ViewEncapsulation$1,
- __decorate,
- filter,
- fromEvent,
- makeEnvironmentProviders,
- setClassMetadata,
- startWith,
- takeUntil,
- ɵɵNgOnChangesFeature,
- ɵɵStandaloneFeature,
- ɵɵattribute,
- ɵɵclassProp,
- ɵɵcontentQuery,
- ɵɵdefineComponent,
- ɵɵdefineDirective,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵelement,
- ɵɵloadQuery,
- ɵɵprojection,
- ɵɵprojectionDef,
- ɵɵproperty,
- ɵɵqueryRefresh,
- ɵɵtemplate
-} from "./chunk-FGESKT7O.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-transition-patch.mjs
-var _NzTransitionPatchDirective = class _NzTransitionPatchDirective {
- setHiddenAttribute() {
- if (this.hidden) {
- if (typeof this.hidden === "string") {
- this.renderer.setAttribute(this.elementRef.nativeElement, "hidden", this.hidden);
- } else {
- this.renderer.setAttribute(this.elementRef.nativeElement, "hidden", "");
- }
- } else {
- this.renderer.removeAttribute(this.elementRef.nativeElement, "hidden");
- }
- }
- constructor(elementRef, renderer) {
- this.elementRef = elementRef;
- this.renderer = renderer;
- this.hidden = null;
- this.renderer.setAttribute(this.elementRef.nativeElement, "hidden", "");
- }
- ngOnChanges() {
- this.setHiddenAttribute();
- }
- ngAfterViewInit() {
- this.setHiddenAttribute();
- }
-};
-_NzTransitionPatchDirective.ɵfac = function NzTransitionPatchDirective_Factory(t) {
- return new (t || _NzTransitionPatchDirective)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(Renderer2));
-};
-_NzTransitionPatchDirective.ɵdir = ɵɵdefineDirective({
- type: _NzTransitionPatchDirective,
- selectors: [["", "nz-button", ""], ["nz-button-group"], ["", "nz-icon", ""], ["", "nz-menu-item", ""], ["", "nz-submenu", ""], ["nz-select-top-control"], ["nz-select-placeholder"], ["nz-input-group"]],
- inputs: {
- hidden: "hidden"
- },
- standalone: true,
- features: [ɵɵNgOnChangesFeature]
-});
-var NzTransitionPatchDirective = _NzTransitionPatchDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzTransitionPatchDirective, [{
- type: Directive,
- args: [{
- selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group",
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: Renderer2
- }], {
- hidden: [{
- type: Input
- }]
- });
-})();
-var _NzTransitionPatchModule = class _NzTransitionPatchModule {
-};
-_NzTransitionPatchModule.ɵfac = function NzTransitionPatchModule_Factory(t) {
- return new (t || _NzTransitionPatchModule)();
-};
-_NzTransitionPatchModule.ɵmod = ɵɵdefineNgModule({
- type: _NzTransitionPatchModule,
- imports: [NzTransitionPatchDirective],
- exports: [NzTransitionPatchDirective]
-});
-_NzTransitionPatchModule.ɵinj = ɵɵdefineInjector({});
-var NzTransitionPatchModule = _NzTransitionPatchModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzTransitionPatchModule, [{
- type: NgModule,
- args: [{
- imports: [NzTransitionPatchDirective],
- exports: [NzTransitionPatchDirective]
- }]
- }], null, null);
-})();
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-wave.mjs
-var NzWaveRenderer = class {
- get waveAttributeName() {
- return this.insertExtraNode ? "ant-click-animating" : "ant-click-animating-without-extra-node";
- }
- constructor(triggerElement, ngZone, insertExtraNode, platformId, cspNonce) {
- this.triggerElement = triggerElement;
- this.ngZone = ngZone;
- this.insertExtraNode = insertExtraNode;
- this.platformId = platformId;
- this.cspNonce = cspNonce;
- this.waveTransitionDuration = 400;
- this.styleForPseudo = null;
- this.extraNode = null;
- this.lastTime = 0;
- this.onClick = (event) => {
- if (!this.triggerElement || !this.triggerElement.getAttribute || this.triggerElement.getAttribute("disabled") || event.target.tagName === "INPUT" || this.triggerElement.className.indexOf("disabled") >= 0) {
- return;
- }
- this.fadeOutWave();
- };
- this.platform = new Platform(this.platformId);
- this.clickHandler = this.onClick.bind(this);
- this.bindTriggerEvent();
- }
- bindTriggerEvent() {
- if (this.platform.isBrowser) {
- this.ngZone.runOutsideAngular(() => {
- this.removeTriggerEvent();
- if (this.triggerElement) {
- this.triggerElement.addEventListener("click", this.clickHandler, true);
- }
- });
- }
- }
- removeTriggerEvent() {
- if (this.triggerElement) {
- this.triggerElement.removeEventListener("click", this.clickHandler, true);
- }
- }
- removeStyleAndExtraNode() {
- if (this.styleForPseudo && document.body.contains(this.styleForPseudo)) {
- document.body.removeChild(this.styleForPseudo);
- this.styleForPseudo = null;
- }
- if (this.insertExtraNode && this.triggerElement.contains(this.extraNode)) {
- this.triggerElement.removeChild(this.extraNode);
- }
- }
- destroy() {
- this.removeTriggerEvent();
- this.removeStyleAndExtraNode();
- }
- fadeOutWave() {
- const node = this.triggerElement;
- const waveColor = this.getWaveColor(node);
- node.setAttribute(this.waveAttributeName, "true");
- if (Date.now() < this.lastTime + this.waveTransitionDuration) {
- return;
- }
- if (this.isValidColor(waveColor)) {
- if (!this.styleForPseudo) {
- this.styleForPseudo = document.createElement("style");
- if (this.cspNonce) {
- this.styleForPseudo.nonce = this.cspNonce;
- }
- }
- this.styleForPseudo.innerHTML = `
- [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {
- --antd-wave-shadow-color: ${waveColor};
- }`;
- document.body.appendChild(this.styleForPseudo);
- }
- if (this.insertExtraNode) {
- if (!this.extraNode) {
- this.extraNode = document.createElement("div");
- }
- this.extraNode.className = "ant-click-animating-node";
- node.appendChild(this.extraNode);
- }
- this.lastTime = Date.now();
- this.runTimeoutOutsideZone(() => {
- node.removeAttribute(this.waveAttributeName);
- this.removeStyleAndExtraNode();
- }, this.waveTransitionDuration);
- }
- isValidColor(color) {
- return !!color && color !== "#ffffff" && color !== "rgb(255, 255, 255)" && this.isNotGrey(color) && !/rgba\(\d*, \d*, \d*, 0\)/.test(color) && color !== "transparent";
- }
- isNotGrey(color) {
- const match = color.match(/rgba?\((\d*), (\d*), (\d*)(, [\.\d]*)?\)/);
- if (match && match[1] && match[2] && match[3]) {
- return !(match[1] === match[2] && match[2] === match[3]);
- }
- return true;
- }
- getWaveColor(node) {
- const nodeStyle = getComputedStyle(node);
- return nodeStyle.getPropertyValue("border-top-color") || // Firefox Compatible
- nodeStyle.getPropertyValue("border-color") || nodeStyle.getPropertyValue("background-color");
- }
- runTimeoutOutsideZone(fn, delay) {
- this.ngZone.runOutsideAngular(() => setTimeout(fn, delay));
- }
-};
-var NZ_WAVE_GLOBAL_DEFAULT_CONFIG = {
- disabled: false
-};
-var NZ_WAVE_GLOBAL_CONFIG = new InjectionToken("nz-wave-global-options");
-function provideNzWave(config) {
- return makeEnvironmentProviders([{
- provide: NZ_WAVE_GLOBAL_CONFIG,
- useValue: config
- }]);
-}
-var _NzWaveDirective = class _NzWaveDirective {
- get disabled() {
- return this.waveDisabled;
- }
- get rendererRef() {
- return this.waveRenderer;
- }
- constructor(ngZone, elementRef, config, animationType, platformId, cspNonce) {
- this.ngZone = ngZone;
- this.elementRef = elementRef;
- this.config = config;
- this.animationType = animationType;
- this.platformId = platformId;
- this.cspNonce = cspNonce;
- this.nzWaveExtraNode = false;
- this.waveDisabled = false;
- this.waveDisabled = this.isConfigDisabled();
- }
- isConfigDisabled() {
- let disabled = false;
- if (this.config && typeof this.config.disabled === "boolean") {
- disabled = this.config.disabled;
- }
- if (this.animationType === "NoopAnimations") {
- disabled = true;
- }
- return disabled;
- }
- ngOnDestroy() {
- if (this.waveRenderer) {
- this.waveRenderer.destroy();
- }
- }
- ngOnInit() {
- this.renderWaveIfEnabled();
- }
- renderWaveIfEnabled() {
- if (!this.waveDisabled && this.elementRef.nativeElement) {
- this.waveRenderer = new NzWaveRenderer(this.elementRef.nativeElement, this.ngZone, this.nzWaveExtraNode, this.platformId, this.cspNonce);
- }
- }
- disable() {
- this.waveDisabled = true;
- if (this.waveRenderer) {
- this.waveRenderer.removeTriggerEvent();
- this.waveRenderer.removeStyleAndExtraNode();
- }
- }
- enable() {
- this.waveDisabled = this.isConfigDisabled() || false;
- if (this.waveRenderer) {
- this.waveRenderer.bindTriggerEvent();
- }
- }
-};
-_NzWaveDirective.ɵfac = function NzWaveDirective_Factory(t) {
- return new (t || _NzWaveDirective)(ɵɵdirectiveInject(NgZone), ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(NZ_WAVE_GLOBAL_CONFIG, 8), ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), ɵɵdirectiveInject(PLATFORM_ID), ɵɵdirectiveInject(CSP_NONCE, 8));
-};
-_NzWaveDirective.ɵdir = ɵɵdefineDirective({
- type: _NzWaveDirective,
- selectors: [["", "nz-wave", ""], ["button", "nz-button", "", 3, "nzType", "link", 3, "nzType", "text"]],
- inputs: {
- nzWaveExtraNode: "nzWaveExtraNode"
- },
- exportAs: ["nzWave"],
- standalone: true
-});
-var NzWaveDirective = _NzWaveDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzWaveDirective, [{
- type: Directive,
- args: [{
- selector: '[nz-wave],button[nz-button]:not([nzType="link"]):not([nzType="text"])',
- exportAs: "nzWave",
- standalone: true
- }]
- }], () => [{
- type: NgZone
- }, {
- type: ElementRef
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [NZ_WAVE_GLOBAL_CONFIG]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [ANIMATION_MODULE_TYPE]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [PLATFORM_ID]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [CSP_NONCE]
- }]
- }], {
- nzWaveExtraNode: [{
- type: Input
- }]
- });
-})();
-var _NzWaveModule = class _NzWaveModule {
-};
-_NzWaveModule.ɵfac = function NzWaveModule_Factory(t) {
- return new (t || _NzWaveModule)();
-};
-_NzWaveModule.ɵmod = ɵɵdefineNgModule({
- type: _NzWaveModule,
- imports: [NzWaveDirective],
- exports: [NzWaveDirective]
-});
-_NzWaveModule.ɵinj = ɵɵdefineInjector({
- providers: [provideNzWave(NZ_WAVE_GLOBAL_DEFAULT_CONFIG)]
-});
-var NzWaveModule = _NzWaveModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzWaveModule, [{
- type: NgModule,
- args: [{
- imports: [NzWaveDirective],
- exports: [NzWaveDirective],
- providers: [provideNzWave(NZ_WAVE_GLOBAL_DEFAULT_CONFIG)]
- }]
- }], null, null);
-})();
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-button.mjs
-var _c0 = ["nz-button", ""];
-function NzButtonComponent_span_0_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelement(0, "span", 1);
- }
-}
-var _c1 = ["*"];
-var NZ_CONFIG_MODULE_NAME = "button";
-var _NzButtonComponent = class _NzButtonComponent {
- insertSpan(nodes, renderer) {
- nodes.forEach((node) => {
- if (node.nodeName === "#text") {
- const span = renderer.createElement("span");
- const parent = renderer.parentNode(node);
- renderer.insertBefore(parent, span, node);
- renderer.appendChild(span, node);
- }
- });
- }
- get iconOnly() {
- const listOfNode = Array.from(this.elementRef?.nativeElement?.childNodes || []);
- const noText = listOfNode.every((node) => node.nodeName !== "#text");
- const noSpan = listOfNode.filter((node) => {
- return !(node.nodeName === "#comment" || !!node?.attributes?.getNamedItem("nz-icon"));
- }).length == 0;
- const isIconOnly = !!this.nzIconDirectiveElement && noSpan && noText;
- return isIconOnly;
- }
- constructor(ngZone, elementRef, cdr, renderer, nzConfigService, directionality) {
- this.ngZone = ngZone;
- this.elementRef = elementRef;
- this.cdr = cdr;
- this.renderer = renderer;
- this.nzConfigService = nzConfigService;
- this.directionality = directionality;
- this._nzModuleName = NZ_CONFIG_MODULE_NAME;
- this.nzBlock = false;
- this.nzGhost = false;
- this.nzSearch = false;
- this.nzLoading = false;
- this.nzDanger = false;
- this.disabled = false;
- this.tabIndex = null;
- this.nzType = null;
- this.nzShape = null;
- this.nzSize = "default";
- this.dir = "ltr";
- this.destroy$ = new Subject();
- this.loading$ = new Subject();
- this.nzConfigService.getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME).pipe(takeUntil(this.destroy$)).subscribe(() => {
- this.cdr.markForCheck();
- });
- }
- ngOnInit() {
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- this.cdr.detectChanges();
- });
- this.dir = this.directionality.value;
- this.ngZone.runOutsideAngular(() => {
- fromEvent(this.elementRef.nativeElement, "click", {
- capture: true
- }).pipe(takeUntil(this.destroy$)).subscribe((event) => {
- if (this.disabled && event.target?.tagName === "A" || this.nzLoading) {
- event.preventDefault();
- event.stopImmediatePropagation();
- }
- });
- });
- }
- ngOnChanges(changes) {
- const {
- nzLoading
- } = changes;
- if (nzLoading) {
- this.loading$.next(this.nzLoading);
- }
- }
- ngAfterViewInit() {
- this.insertSpan(this.elementRef.nativeElement.childNodes, this.renderer);
- }
- ngAfterContentInit() {
- this.loading$.pipe(startWith(this.nzLoading), filter(() => !!this.nzIconDirectiveElement), takeUntil(this.destroy$)).subscribe((loading) => {
- const nativeElement = this.nzIconDirectiveElement.nativeElement;
- if (loading) {
- this.renderer.setStyle(nativeElement, "display", "none");
- } else {
- this.renderer.removeStyle(nativeElement, "display");
- }
- });
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- }
-};
-_NzButtonComponent.ɵfac = function NzButtonComponent_Factory(t) {
- return new (t || _NzButtonComponent)(ɵɵdirectiveInject(NgZone), ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(NzConfigService), ɵɵdirectiveInject(Directionality, 8));
-};
-_NzButtonComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzButtonComponent,
- selectors: [["button", "nz-button", ""], ["a", "nz-button", ""]],
- contentQueries: function NzButtonComponent_ContentQueries(rf, ctx, dirIndex) {
- if (rf & 1) {
- ɵɵcontentQuery(dirIndex, NzIconDirective, 5, ElementRef);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.nzIconDirectiveElement = _t.first);
- }
- },
- hostAttrs: [1, "ant-btn"],
- hostVars: 32,
- hostBindings: function NzButtonComponent_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵattribute("tabindex", ctx.disabled ? -1 : ctx.tabIndex === null ? null : ctx.tabIndex)("disabled", ctx.disabled || null);
- ɵɵclassProp("ant-btn-primary", ctx.nzType === "primary")("ant-btn-dashed", ctx.nzType === "dashed")("ant-btn-link", ctx.nzType === "link")("ant-btn-text", ctx.nzType === "text")("ant-btn-circle", ctx.nzShape === "circle")("ant-btn-round", ctx.nzShape === "round")("ant-btn-lg", ctx.nzSize === "large")("ant-btn-sm", ctx.nzSize === "small")("ant-btn-dangerous", ctx.nzDanger)("ant-btn-loading", ctx.nzLoading)("ant-btn-background-ghost", ctx.nzGhost)("ant-btn-block", ctx.nzBlock)("ant-input-search-button", ctx.nzSearch)("ant-btn-rtl", ctx.dir === "rtl")("ant-btn-icon-only", ctx.iconOnly);
- }
- },
- inputs: {
- nzBlock: "nzBlock",
- nzGhost: "nzGhost",
- nzSearch: "nzSearch",
- nzLoading: "nzLoading",
- nzDanger: "nzDanger",
- disabled: "disabled",
- tabIndex: "tabIndex",
- nzType: "nzType",
- nzShape: "nzShape",
- nzSize: "nzSize"
- },
- exportAs: ["nzButton"],
- standalone: true,
- features: [ɵɵNgOnChangesFeature, ɵɵStandaloneFeature],
- attrs: _c0,
- ngContentSelectors: _c1,
- decls: 2,
- vars: 1,
- consts: [["nz-icon", "", "nzType", "loading", 4, "ngIf"], ["nz-icon", "", "nzType", "loading"]],
- template: function NzButtonComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojectionDef();
- ɵɵtemplate(0, NzButtonComponent_span_0_Template, 1, 0, "span", 0);
- ɵɵprojection(1);
- }
- if (rf & 2) {
- ɵɵproperty("ngIf", ctx.nzLoading);
- }
- },
- dependencies: [NzIconModule, NzIconDirective, NgIf],
- encapsulation: 2,
- changeDetection: 0
-});
-var NzButtonComponent = _NzButtonComponent;
-__decorate([InputBoolean()], NzButtonComponent.prototype, "nzBlock", void 0);
-__decorate([InputBoolean()], NzButtonComponent.prototype, "nzGhost", void 0);
-__decorate([InputBoolean()], NzButtonComponent.prototype, "nzSearch", void 0);
-__decorate([InputBoolean()], NzButtonComponent.prototype, "nzLoading", void 0);
-__decorate([InputBoolean()], NzButtonComponent.prototype, "nzDanger", void 0);
-__decorate([InputBoolean()], NzButtonComponent.prototype, "disabled", void 0);
-__decorate([WithConfig()], NzButtonComponent.prototype, "nzSize", void 0);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzButtonComponent, [{
- type: Component,
- args: [{
- selector: "button[nz-button], a[nz-button]",
- exportAs: "nzButton",
- preserveWhitespaces: false,
- changeDetection: ChangeDetectionStrategy.OnPush,
- encapsulation: ViewEncapsulation$1.None,
- template: `
-
-
- `,
- host: {
- class: "ant-btn",
- "[class.ant-btn-primary]": `nzType === 'primary'`,
- "[class.ant-btn-dashed]": `nzType === 'dashed'`,
- "[class.ant-btn-link]": `nzType === 'link'`,
- "[class.ant-btn-text]": `nzType === 'text'`,
- "[class.ant-btn-circle]": `nzShape === 'circle'`,
- "[class.ant-btn-round]": `nzShape === 'round'`,
- "[class.ant-btn-lg]": `nzSize === 'large'`,
- "[class.ant-btn-sm]": `nzSize === 'small'`,
- "[class.ant-btn-dangerous]": `nzDanger`,
- "[class.ant-btn-loading]": `nzLoading`,
- "[class.ant-btn-background-ghost]": `nzGhost`,
- "[class.ant-btn-block]": `nzBlock`,
- "[class.ant-input-search-button]": `nzSearch`,
- "[class.ant-btn-rtl]": `dir === 'rtl'`,
- "[class.ant-btn-icon-only]": `iconOnly`,
- "[attr.tabindex]": "disabled ? -1 : (tabIndex === null ? null : tabIndex)",
- "[attr.disabled]": "disabled || null"
- },
- imports: [NzIconModule, NgIf],
- standalone: true
- }]
- }], () => [{
- type: NgZone
- }, {
- type: ElementRef
- }, {
- type: ChangeDetectorRef
- }, {
- type: Renderer2
- }, {
- type: NzConfigService
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- nzIconDirectiveElement: [{
- type: ContentChild,
- args: [NzIconDirective, {
- read: ElementRef
- }]
- }],
- nzBlock: [{
- type: Input
- }],
- nzGhost: [{
- type: Input
- }],
- nzSearch: [{
- type: Input
- }],
- nzLoading: [{
- type: Input
- }],
- nzDanger: [{
- type: Input
- }],
- disabled: [{
- type: Input
- }],
- tabIndex: [{
- type: Input
- }],
- nzType: [{
- type: Input
- }],
- nzShape: [{
- type: Input
- }],
- nzSize: [{
- type: Input
- }]
- });
-})();
-var _NzButtonGroupComponent = class _NzButtonGroupComponent {
- constructor(directionality) {
- this.directionality = directionality;
- this.nzSize = "default";
- this.dir = "ltr";
- this.destroy$ = new Subject();
- }
- ngOnInit() {
- this.dir = this.directionality.value;
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- });
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- }
-};
-_NzButtonGroupComponent.ɵfac = function NzButtonGroupComponent_Factory(t) {
- return new (t || _NzButtonGroupComponent)(ɵɵdirectiveInject(Directionality, 8));
-};
-_NzButtonGroupComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzButtonGroupComponent,
- selectors: [["nz-button-group"]],
- hostAttrs: [1, "ant-btn-group"],
- hostVars: 6,
- hostBindings: function NzButtonGroupComponent_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵclassProp("ant-btn-group-lg", ctx.nzSize === "large")("ant-btn-group-sm", ctx.nzSize === "small")("ant-btn-group-rtl", ctx.dir === "rtl");
- }
- },
- inputs: {
- nzSize: "nzSize"
- },
- exportAs: ["nzButtonGroup"],
- standalone: true,
- features: [ɵɵStandaloneFeature],
- ngContentSelectors: _c1,
- decls: 1,
- vars: 0,
- template: function NzButtonGroupComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojectionDef();
- ɵɵprojection(0);
- }
- },
- encapsulation: 2,
- changeDetection: 0
-});
-var NzButtonGroupComponent = _NzButtonGroupComponent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzButtonGroupComponent, [{
- type: Component,
- args: [{
- selector: "nz-button-group",
- exportAs: "nzButtonGroup",
- changeDetection: ChangeDetectionStrategy.OnPush,
- encapsulation: ViewEncapsulation$1.None,
- host: {
- class: "ant-btn-group",
- "[class.ant-btn-group-lg]": `nzSize === 'large'`,
- "[class.ant-btn-group-sm]": `nzSize === 'small'`,
- "[class.ant-btn-group-rtl]": `dir === 'rtl'`
- },
- preserveWhitespaces: false,
- template: ` `,
- standalone: true
- }]
- }], () => [{
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- nzSize: [{
- type: Input
- }]
- });
-})();
-var _NzButtonModule = class _NzButtonModule {
-};
-_NzButtonModule.ɵfac = function NzButtonModule_Factory(t) {
- return new (t || _NzButtonModule)();
-};
-_NzButtonModule.ɵmod = ɵɵdefineNgModule({
- type: _NzButtonModule,
- imports: [NzButtonComponent, NzButtonGroupComponent],
- exports: [NzButtonComponent, NzButtonGroupComponent, NzTransitionPatchModule, NzWaveModule]
-});
-_NzButtonModule.ɵinj = ɵɵdefineInjector({
- imports: [NzButtonComponent, NzTransitionPatchModule, NzWaveModule]
-});
-var NzButtonModule = _NzButtonModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzButtonModule, [{
- type: NgModule,
- args: [{
- imports: [NzButtonComponent, NzButtonGroupComponent],
- exports: [NzButtonComponent, NzButtonGroupComponent, NzTransitionPatchModule, NzWaveModule]
- }]
- }], null, null);
-})();
-
-export {
- NzButtonComponent,
- NzButtonGroupComponent,
- NzButtonModule
-};
-//# sourceMappingURL=chunk-KMGBCF4T.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-KMGBCF4T.js.map b/.angular/cache/17.0.7/vite/deps/chunk-KMGBCF4T.js.map
deleted file mode 100644
index 8630654..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-KMGBCF4T.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-transition-patch.mjs", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-wave.mjs", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-button.mjs"],
- "sourcesContent": ["import * as i0 from '@angular/core';\nimport { Directive, Input, NgModule } from '@angular/core';\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 * hack the bug\n * angular router change with unexpected transition trigger after calling applicationRef.attachView\n * https://github.com/angular/angular/issues/34718\n */\nclass NzTransitionPatchDirective {\n setHiddenAttribute() {\n if (this.hidden) {\n if (typeof this.hidden === 'string') {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'hidden', this.hidden);\n } else {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'hidden', '');\n }\n } else {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'hidden');\n }\n }\n constructor(elementRef, renderer) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.hidden = null;\n this.renderer.setAttribute(this.elementRef.nativeElement, 'hidden', '');\n }\n ngOnChanges() {\n this.setHiddenAttribute();\n }\n ngAfterViewInit() {\n this.setHiddenAttribute();\n }\n static {\n this.ɵfac = function NzTransitionPatchDirective_Factory(t) {\n return new (t || NzTransitionPatchDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzTransitionPatchDirective,\n selectors: [[\"\", \"nz-button\", \"\"], [\"nz-button-group\"], [\"\", \"nz-icon\", \"\"], [\"\", \"nz-menu-item\", \"\"], [\"\", \"nz-submenu\", \"\"], [\"nz-select-top-control\"], [\"nz-select-placeholder\"], [\"nz-input-group\"]],\n inputs: {\n hidden: \"hidden\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzTransitionPatchDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group',\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }], {\n hidden: [{\n type: Input\n }]\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 NzTransitionPatchModule {\n static {\n this.ɵfac = function NzTransitionPatchModule_Factory(t) {\n return new (t || NzTransitionPatchModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzTransitionPatchModule,\n imports: [NzTransitionPatchDirective],\n exports: [NzTransitionPatchDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzTransitionPatchModule, [{\n type: NgModule,\n args: [{\n imports: [NzTransitionPatchDirective],\n exports: [NzTransitionPatchDirective]\n }]\n }], null, null);\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 { NzTransitionPatchDirective as ɵNzTransitionPatchDirective, NzTransitionPatchModule as ɵNzTransitionPatchModule };\n", "import { Platform } from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, makeEnvironmentProviders, PLATFORM_ID, CSP_NONCE, Directive, Optional, Inject, Input, NgModule } from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\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 NzWaveRenderer {\n get waveAttributeName() {\n return this.insertExtraNode ? 'ant-click-animating' : 'ant-click-animating-without-extra-node';\n }\n constructor(triggerElement, ngZone, insertExtraNode, platformId, cspNonce) {\n this.triggerElement = triggerElement;\n this.ngZone = ngZone;\n this.insertExtraNode = insertExtraNode;\n this.platformId = platformId;\n this.cspNonce = cspNonce;\n this.waveTransitionDuration = 400;\n this.styleForPseudo = null;\n this.extraNode = null;\n this.lastTime = 0;\n this.onClick = event => {\n if (!this.triggerElement || !this.triggerElement.getAttribute || this.triggerElement.getAttribute('disabled') || event.target.tagName === 'INPUT' || this.triggerElement.className.indexOf('disabled') >= 0) {\n return;\n }\n this.fadeOutWave();\n };\n this.platform = new Platform(this.platformId);\n this.clickHandler = this.onClick.bind(this);\n this.bindTriggerEvent();\n }\n bindTriggerEvent() {\n if (this.platform.isBrowser) {\n this.ngZone.runOutsideAngular(() => {\n this.removeTriggerEvent();\n if (this.triggerElement) {\n this.triggerElement.addEventListener('click', this.clickHandler, true);\n }\n });\n }\n }\n removeTriggerEvent() {\n if (this.triggerElement) {\n this.triggerElement.removeEventListener('click', this.clickHandler, true);\n }\n }\n removeStyleAndExtraNode() {\n if (this.styleForPseudo && document.body.contains(this.styleForPseudo)) {\n document.body.removeChild(this.styleForPseudo);\n this.styleForPseudo = null;\n }\n if (this.insertExtraNode && this.triggerElement.contains(this.extraNode)) {\n this.triggerElement.removeChild(this.extraNode);\n }\n }\n destroy() {\n this.removeTriggerEvent();\n this.removeStyleAndExtraNode();\n }\n fadeOutWave() {\n const node = this.triggerElement;\n const waveColor = this.getWaveColor(node);\n node.setAttribute(this.waveAttributeName, 'true');\n if (Date.now() < this.lastTime + this.waveTransitionDuration) {\n return;\n }\n if (this.isValidColor(waveColor)) {\n if (!this.styleForPseudo) {\n this.styleForPseudo = document.createElement('style');\n if (this.cspNonce) {\n this.styleForPseudo.nonce = this.cspNonce;\n }\n }\n this.styleForPseudo.innerHTML = `\n [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\n --antd-wave-shadow-color: ${waveColor};\n }`;\n document.body.appendChild(this.styleForPseudo);\n }\n if (this.insertExtraNode) {\n if (!this.extraNode) {\n this.extraNode = document.createElement('div');\n }\n this.extraNode.className = 'ant-click-animating-node';\n node.appendChild(this.extraNode);\n }\n this.lastTime = Date.now();\n this.runTimeoutOutsideZone(() => {\n node.removeAttribute(this.waveAttributeName);\n this.removeStyleAndExtraNode();\n }, this.waveTransitionDuration);\n }\n isValidColor(color) {\n return !!color && color !== '#ffffff' && color !== 'rgb(255, 255, 255)' && this.isNotGrey(color) && !/rgba\\(\\d*, \\d*, \\d*, 0\\)/.test(color) && color !== 'transparent';\n }\n isNotGrey(color) {\n const match = color.match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\.\\d]*)?\\)/);\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n return true;\n }\n getWaveColor(node) {\n const nodeStyle = getComputedStyle(node);\n return nodeStyle.getPropertyValue('border-top-color') ||\n // Firefox Compatible\n nodeStyle.getPropertyValue('border-color') || nodeStyle.getPropertyValue('background-color');\n }\n runTimeoutOutsideZone(fn, delay) {\n this.ngZone.runOutsideAngular(() => setTimeout(fn, delay));\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 */\nconst NZ_WAVE_GLOBAL_DEFAULT_CONFIG = {\n disabled: false\n};\nconst NZ_WAVE_GLOBAL_CONFIG = new InjectionToken('nz-wave-global-options');\nfunction provideNzWave(config) {\n return makeEnvironmentProviders([{\n provide: NZ_WAVE_GLOBAL_CONFIG,\n useValue: config\n }]);\n}\nclass NzWaveDirective {\n get disabled() {\n return this.waveDisabled;\n }\n get rendererRef() {\n return this.waveRenderer;\n }\n constructor(ngZone, elementRef, config, animationType, platformId, cspNonce) {\n this.ngZone = ngZone;\n this.elementRef = elementRef;\n this.config = config;\n this.animationType = animationType;\n this.platformId = platformId;\n this.cspNonce = cspNonce;\n this.nzWaveExtraNode = false;\n this.waveDisabled = false;\n this.waveDisabled = this.isConfigDisabled();\n }\n isConfigDisabled() {\n let disabled = false;\n if (this.config && typeof this.config.disabled === 'boolean') {\n disabled = this.config.disabled;\n }\n if (this.animationType === 'NoopAnimations') {\n disabled = true;\n }\n return disabled;\n }\n ngOnDestroy() {\n if (this.waveRenderer) {\n this.waveRenderer.destroy();\n }\n }\n ngOnInit() {\n this.renderWaveIfEnabled();\n }\n renderWaveIfEnabled() {\n if (!this.waveDisabled && this.elementRef.nativeElement) {\n this.waveRenderer = new NzWaveRenderer(this.elementRef.nativeElement, this.ngZone, this.nzWaveExtraNode, this.platformId, this.cspNonce);\n }\n }\n disable() {\n this.waveDisabled = true;\n if (this.waveRenderer) {\n this.waveRenderer.removeTriggerEvent();\n this.waveRenderer.removeStyleAndExtraNode();\n }\n }\n enable() {\n // config priority\n this.waveDisabled = this.isConfigDisabled() || false;\n if (this.waveRenderer) {\n this.waveRenderer.bindTriggerEvent();\n }\n }\n static {\n this.ɵfac = function NzWaveDirective_Factory(t) {\n return new (t || NzWaveDirective)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(NZ_WAVE_GLOBAL_CONFIG, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(CSP_NONCE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzWaveDirective,\n selectors: [[\"\", \"nz-wave\", \"\"], [\"button\", \"nz-button\", \"\", 3, \"nzType\", \"link\", 3, \"nzType\", \"text\"]],\n inputs: {\n nzWaveExtraNode: \"nzWaveExtraNode\"\n },\n exportAs: [\"nzWave\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzWaveDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])',\n exportAs: 'nzWave',\n standalone: true\n }]\n }], () => [{\n type: i0.NgZone\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NZ_WAVE_GLOBAL_CONFIG]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CSP_NONCE]\n }]\n }], {\n nzWaveExtraNode: [{\n type: Input\n }]\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 NzWaveModule {\n static {\n this.ɵfac = function NzWaveModule_Factory(t) {\n return new (t || NzWaveModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzWaveModule,\n imports: [NzWaveDirective],\n exports: [NzWaveDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [provideNzWave(NZ_WAVE_GLOBAL_DEFAULT_CONFIG)]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzWaveModule, [{\n type: NgModule,\n args: [{\n imports: [NzWaveDirective],\n exports: [NzWaveDirective],\n providers: [provideNzWave(NZ_WAVE_GLOBAL_DEFAULT_CONFIG)]\n }]\n }], null, null);\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_WAVE_GLOBAL_CONFIG, NZ_WAVE_GLOBAL_DEFAULT_CONFIG, NzWaveDirective, NzWaveModule, NzWaveRenderer, provideNzWave };\n", "import { __decorate } from 'tslib';\nimport { NgIf } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { ElementRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, ContentChild, Input, NgModule } from '@angular/core';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil, startWith, filter } from 'rxjs/operators';\nimport * as i1 from 'ng-zorro-antd/core/config';\nimport { WithConfig } from 'ng-zorro-antd/core/config';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\nimport * as i3 from 'ng-zorro-antd/icon';\nimport { NzIconDirective, NzIconModule } from 'ng-zorro-antd/icon';\nimport * as i2 from '@angular/cdk/bidi';\nimport { ɵNzTransitionPatchModule as _NzTransitionPatchModule } from 'ng-zorro-antd/core/transition-patch';\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\nconst _c0 = [\"nz-button\", \"\"];\nfunction NzButtonComponent_span_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 1);\n }\n}\nconst _c1 = [\"*\"];\nconst NZ_CONFIG_MODULE_NAME = 'button';\nclass NzButtonComponent {\n insertSpan(nodes, renderer) {\n nodes.forEach(node => {\n if (node.nodeName === '#text') {\n const span = renderer.createElement('span');\n const parent = renderer.parentNode(node);\n renderer.insertBefore(parent, span, node);\n renderer.appendChild(span, node);\n }\n });\n }\n get iconOnly() {\n const listOfNode = Array.from(this.elementRef?.nativeElement?.childNodes || []);\n const noText = listOfNode.every(node => node.nodeName !== '#text');\n // ignore icon and comment\n const noSpan = listOfNode.filter(node => {\n return !(node.nodeName === '#comment' || !!node?.attributes?.getNamedItem('nz-icon'));\n }).length == 0;\n const isIconOnly = !!this.nzIconDirectiveElement && noSpan && noText;\n return isIconOnly;\n }\n constructor(ngZone, elementRef, cdr, renderer, nzConfigService, directionality) {\n this.ngZone = ngZone;\n this.elementRef = elementRef;\n this.cdr = cdr;\n this.renderer = renderer;\n this.nzConfigService = nzConfigService;\n this.directionality = directionality;\n this._nzModuleName = NZ_CONFIG_MODULE_NAME;\n this.nzBlock = false;\n this.nzGhost = false;\n this.nzSearch = false;\n this.nzLoading = false;\n this.nzDanger = false;\n this.disabled = false;\n this.tabIndex = null;\n this.nzType = null;\n this.nzShape = null;\n this.nzSize = 'default';\n this.dir = 'ltr';\n this.destroy$ = new Subject();\n this.loading$ = new Subject();\n this.nzConfigService.getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME).pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n ngOnInit() {\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n this.dir = this.directionality.value;\n this.ngZone.runOutsideAngular(() => {\n // Caretaker note: this event listener could've been added through `host.click` or `HostListener`.\n // The compiler generates the `ɵɵlistener` instruction which wraps the actual listener internally into the\n // function, which runs `markDirty()` before running the actual listener (the decorated class method).\n // Since we're preventing the default behavior and stopping event propagation this doesn't require Angular to run the change detection.\n fromEvent(this.elementRef.nativeElement, 'click', {\n capture: true\n }).pipe(takeUntil(this.destroy$)).subscribe(event => {\n if (this.disabled && event.target?.tagName === 'A' || this.nzLoading) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n });\n });\n }\n ngOnChanges(changes) {\n const {\n nzLoading\n } = changes;\n if (nzLoading) {\n this.loading$.next(this.nzLoading);\n }\n }\n ngAfterViewInit() {\n this.insertSpan(this.elementRef.nativeElement.childNodes, this.renderer);\n }\n ngAfterContentInit() {\n this.loading$.pipe(startWith(this.nzLoading), filter(() => !!this.nzIconDirectiveElement), takeUntil(this.destroy$)).subscribe(loading => {\n const nativeElement = this.nzIconDirectiveElement.nativeElement;\n if (loading) {\n this.renderer.setStyle(nativeElement, 'display', 'none');\n } else {\n this.renderer.removeStyle(nativeElement, 'display');\n }\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzButtonComponent_Factory(t) {\n return new (t || NzButtonComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.NzConfigService), i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzButtonComponent,\n selectors: [[\"button\", \"nz-button\", \"\"], [\"a\", \"nz-button\", \"\"]],\n contentQueries: function NzButtonComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NzIconDirective, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nzIconDirectiveElement = _t.first);\n }\n },\n hostAttrs: [1, \"ant-btn\"],\n hostVars: 32,\n hostBindings: function NzButtonComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex === null ? null : ctx.tabIndex)(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"ant-btn-primary\", ctx.nzType === \"primary\")(\"ant-btn-dashed\", ctx.nzType === \"dashed\")(\"ant-btn-link\", ctx.nzType === \"link\")(\"ant-btn-text\", ctx.nzType === \"text\")(\"ant-btn-circle\", ctx.nzShape === \"circle\")(\"ant-btn-round\", ctx.nzShape === \"round\")(\"ant-btn-lg\", ctx.nzSize === \"large\")(\"ant-btn-sm\", ctx.nzSize === \"small\")(\"ant-btn-dangerous\", ctx.nzDanger)(\"ant-btn-loading\", ctx.nzLoading)(\"ant-btn-background-ghost\", ctx.nzGhost)(\"ant-btn-block\", ctx.nzBlock)(\"ant-input-search-button\", ctx.nzSearch)(\"ant-btn-rtl\", ctx.dir === \"rtl\")(\"ant-btn-icon-only\", ctx.iconOnly);\n }\n },\n inputs: {\n nzBlock: \"nzBlock\",\n nzGhost: \"nzGhost\",\n nzSearch: \"nzSearch\",\n nzLoading: \"nzLoading\",\n nzDanger: \"nzDanger\",\n disabled: \"disabled\",\n tabIndex: \"tabIndex\",\n nzType: \"nzType\",\n nzShape: \"nzShape\",\n nzSize: \"nzSize\"\n },\n exportAs: [\"nzButton\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n attrs: _c0,\n ngContentSelectors: _c1,\n decls: 2,\n vars: 1,\n consts: [[\"nz-icon\", \"\", \"nzType\", \"loading\", 4, \"ngIf\"], [\"nz-icon\", \"\", \"nzType\", \"loading\"]],\n template: function NzButtonComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, NzButtonComponent_span_0_Template, 1, 0, \"span\", 0);\n i0.ɵɵprojection(1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.nzLoading);\n }\n },\n dependencies: [NzIconModule, i3.NzIconDirective, NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n__decorate([InputBoolean()], NzButtonComponent.prototype, \"nzBlock\", void 0);\n__decorate([InputBoolean()], NzButtonComponent.prototype, \"nzGhost\", void 0);\n__decorate([InputBoolean()], NzButtonComponent.prototype, \"nzSearch\", void 0);\n__decorate([InputBoolean()], NzButtonComponent.prototype, \"nzLoading\", void 0);\n__decorate([InputBoolean()], NzButtonComponent.prototype, \"nzDanger\", void 0);\n__decorate([InputBoolean()], NzButtonComponent.prototype, \"disabled\", void 0);\n__decorate([WithConfig()], NzButtonComponent.prototype, \"nzSize\", void 0);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzButtonComponent, [{\n type: Component,\n args: [{\n selector: 'button[nz-button], a[nz-button]',\n exportAs: 'nzButton',\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n \n \n `,\n host: {\n class: 'ant-btn',\n '[class.ant-btn-primary]': `nzType === 'primary'`,\n '[class.ant-btn-dashed]': `nzType === 'dashed'`,\n '[class.ant-btn-link]': `nzType === 'link'`,\n '[class.ant-btn-text]': `nzType === 'text'`,\n '[class.ant-btn-circle]': `nzShape === 'circle'`,\n '[class.ant-btn-round]': `nzShape === 'round'`,\n '[class.ant-btn-lg]': `nzSize === 'large'`,\n '[class.ant-btn-sm]': `nzSize === 'small'`,\n '[class.ant-btn-dangerous]': `nzDanger`,\n '[class.ant-btn-loading]': `nzLoading`,\n '[class.ant-btn-background-ghost]': `nzGhost`,\n '[class.ant-btn-block]': `nzBlock`,\n '[class.ant-input-search-button]': `nzSearch`,\n '[class.ant-btn-rtl]': `dir === 'rtl'`,\n '[class.ant-btn-icon-only]': `iconOnly`,\n '[attr.tabindex]': 'disabled ? -1 : (tabIndex === null ? null : tabIndex)',\n '[attr.disabled]': 'disabled || null'\n },\n imports: [NzIconModule, NgIf],\n standalone: true\n }]\n }], () => [{\n type: i0.NgZone\n }, {\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.Renderer2\n }, {\n type: i1.NzConfigService\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n nzIconDirectiveElement: [{\n type: ContentChild,\n args: [NzIconDirective, {\n read: ElementRef\n }]\n }],\n nzBlock: [{\n type: Input\n }],\n nzGhost: [{\n type: Input\n }],\n nzSearch: [{\n type: Input\n }],\n nzLoading: [{\n type: Input\n }],\n nzDanger: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n tabIndex: [{\n type: Input\n }],\n nzType: [{\n type: Input\n }],\n nzShape: [{\n type: Input\n }],\n nzSize: [{\n type: Input\n }]\n });\n})();\nclass NzButtonGroupComponent {\n constructor(directionality) {\n this.directionality = directionality;\n this.nzSize = 'default';\n this.dir = 'ltr';\n this.destroy$ = new Subject();\n }\n ngOnInit() {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzButtonGroupComponent_Factory(t) {\n return new (t || NzButtonGroupComponent)(i0.ɵɵdirectiveInject(i2.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzButtonGroupComponent,\n selectors: [[\"nz-button-group\"]],\n hostAttrs: [1, \"ant-btn-group\"],\n hostVars: 6,\n hostBindings: function NzButtonGroupComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"ant-btn-group-lg\", ctx.nzSize === \"large\")(\"ant-btn-group-sm\", ctx.nzSize === \"small\")(\"ant-btn-group-rtl\", ctx.dir === \"rtl\");\n }\n },\n inputs: {\n nzSize: \"nzSize\"\n },\n exportAs: [\"nzButtonGroup\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 1,\n vars: 0,\n template: function NzButtonGroupComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzButtonGroupComponent, [{\n type: Component,\n args: [{\n selector: 'nz-button-group',\n exportAs: 'nzButtonGroup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ant-btn-group',\n '[class.ant-btn-group-lg]': `nzSize === 'large'`,\n '[class.ant-btn-group-sm]': `nzSize === 'small'`,\n '[class.ant-btn-group-rtl]': `dir === 'rtl'`\n },\n preserveWhitespaces: false,\n template: ` `,\n standalone: true\n }]\n }], () => [{\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n nzSize: [{\n type: Input\n }]\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 NzButtonModule {\n static {\n this.ɵfac = function NzButtonModule_Factory(t) {\n return new (t || NzButtonModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzButtonModule,\n imports: [NzButtonComponent, NzButtonGroupComponent],\n exports: [NzButtonComponent, NzButtonGroupComponent, _NzTransitionPatchModule, NzWaveModule]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [NzButtonComponent, _NzTransitionPatchModule, NzWaveModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzButtonModule, [{\n type: NgModule,\n args: [{\n imports: [NzButtonComponent, NzButtonGroupComponent],\n exports: [NzButtonComponent, NzButtonGroupComponent, _NzTransitionPatchModule, NzWaveModule]\n }]\n }], null, null);\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 { NzButtonComponent, NzButtonGroupComponent, NzButtonModule };\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-M5GY4FCO.js b/.angular/cache/17.0.7/vite/deps/chunk-M5GY4FCO.js
deleted file mode 100644
index 96dfc6d..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-M5GY4FCO.js
+++ /dev/null
@@ -1,275 +0,0 @@
-import {
- ElementRef,
- Subject,
- from,
- isDevMode,
- isObservable,
- of,
- take
-} from "./chunk-FGESKT7O.js";
-
-// node_modules/@angular/cdk/fesm2022/coercion.mjs
-function coerceBooleanProperty(value) {
- return value != null && `${value}` !== "false";
-}
-function coerceNumberProperty(value, fallbackValue = 0) {
- return _isNumberValue(value) ? Number(value) : fallbackValue;
-}
-function _isNumberValue(value) {
- return !isNaN(parseFloat(value)) && !isNaN(Number(value));
-}
-function coerceArray(value) {
- return Array.isArray(value) ? value : [value];
-}
-function coerceCssPixelValue(value) {
- if (value == null) {
- return "";
- }
- return typeof value === "string" ? value : `${value}px`;
-}
-function coerceElement(elementOrRef) {
- return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;
-}
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-environments.mjs
-var environment = {
- isTestMode: false
-};
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-logger.mjs
-var record = {};
-var PREFIX = "[NG-ZORRO]:";
-function notRecorded(...args) {
- const asRecord = args.reduce((acc, c) => acc + c.toString(), "");
- if (record[asRecord]) {
- return false;
- } else {
- record[asRecord] = true;
- return true;
- }
-}
-function consoleCommonBehavior(consoleFunc, ...args) {
- if (environment.isTestMode || isDevMode() && notRecorded(...args)) {
- consoleFunc(...args);
- }
-}
-var warn = (...args) => consoleCommonBehavior((...arg) => console.warn(PREFIX, ...arg), ...args);
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-util.mjs
-function arraysEqual(array1, array2) {
- if (!array1 || !array2 || array1.length !== array2.length) {
- return false;
- }
- const len = array1.length;
- for (let i = 0; i < len; i++) {
- if (array1[i] !== array2[i]) {
- return false;
- }
- }
- return true;
-}
-function isNotNil(value) {
- return typeof value !== "undefined" && value !== null;
-}
-function isNil(value) {
- return typeof value === "undefined" || value === null;
-}
-function toBoolean(value) {
- return coerceBooleanProperty(value);
-}
-function toNumber(value, fallbackValue = 0) {
- return _isNumberValue(value) ? Number(value) : fallbackValue;
-}
-function toCssPixel(value) {
- return coerceCssPixelValue(value);
-}
-function propDecoratorFactory(name, fallback) {
- function propDecorator(target, propName, originalDescriptor) {
- const privatePropName = `$$__zorroPropDecorator__${propName}`;
- if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {
- warn(`The prop "${privatePropName}" is already exist, it will be overrided by ${name} decorator.`);
- }
- Object.defineProperty(target, privatePropName, {
- configurable: true,
- writable: true
- });
- return {
- get() {
- return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];
- },
- set(value) {
- if (originalDescriptor && originalDescriptor.set) {
- originalDescriptor.set.bind(this)(fallback(value));
- }
- this[privatePropName] = fallback(value);
- }
- };
- }
- return propDecorator;
-}
-function InputBoolean() {
- return propDecoratorFactory("InputBoolean", toBoolean);
-}
-function InputNumber(fallbackValue) {
- return propDecoratorFactory("InputNumber", (value) => toNumber(value, fallbackValue));
-}
-function silentEvent(e) {
- e.stopPropagation();
- e.preventDefault();
-}
-function getElementOffset(elem) {
- if (!elem.getClientRects().length) {
- return { top: 0, left: 0 };
- }
- const rect = elem.getBoundingClientRect();
- const win = elem.ownerDocument.defaultView;
- return {
- top: rect.top + win.pageYOffset,
- left: rect.left + win.pageXOffset
- };
-}
-function isTouchEvent(event) {
- return event.type.startsWith("touch");
-}
-function getEventPosition(event) {
- return isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : event;
-}
-function isPromise(obj) {
- return !!obj && typeof obj.then === "function" && typeof obj.catch === "function";
-}
-function getPercent(min, max, value) {
- return (value - min) / (max - min) * 100;
-}
-function getPrecision(num) {
- const numStr = num.toString();
- const dotIndex = numStr.indexOf(".");
- return dotIndex >= 0 ? numStr.length - dotIndex - 1 : 0;
-}
-function ensureNumberInRange(num, min, max) {
- if (isNaN(num) || num < min) {
- return min;
- } else if (num > max) {
- return max;
- } else {
- return num;
- }
-}
-var isBrowser = typeof window !== "undefined";
-var isFirefox = isBrowser && window.mozInnerScreenX != null;
-function inNextTick() {
- const timer = new Subject();
- Promise.resolve().then(() => timer.next());
- return timer.pipe(take(1));
-}
-function wrapIntoObservable(value) {
- if (isObservable(value)) {
- return value;
- }
- if (isPromise(value)) {
- return from(Promise.resolve(value));
- }
- return of(value);
-}
-function canUseDom() {
- return !!(typeof window !== "undefined" && window.document && window.document.createElement);
-}
-var MARK_KEY = `rc-util-key`;
-function getMark({ mark } = {}) {
- if (mark) {
- return mark.startsWith("data-") ? mark : `data-${mark}`;
- }
- return MARK_KEY;
-}
-function getContainer(option) {
- if (option.attachTo) {
- return option.attachTo;
- }
- const head = document.querySelector("head");
- return head || document.body;
-}
-function injectCSS(css, options = {}) {
- if (!canUseDom()) {
- return null;
- }
- const styleNode = document.createElement("style");
- if (options.cspNonce) {
- styleNode.nonce = options.cspNonce;
- }
- styleNode.innerHTML = css;
- const container = getContainer(options);
- const { firstChild } = container;
- if (options.prepend && container.prepend) {
- container.prepend(styleNode);
- } else if (options.prepend && firstChild) {
- container.insertBefore(styleNode, firstChild);
- } else {
- container.appendChild(styleNode);
- }
- return styleNode;
-}
-var containerCache = /* @__PURE__ */ new Map();
-function findExistNode(key, option = {}) {
- const container = getContainer(option);
- return Array.from(containerCache.get(container)?.children || []).find((node) => node.tagName === "STYLE" && node.getAttribute(getMark(option)) === key);
-}
-function updateCSS(css, key, options = {}) {
- const container = getContainer(options);
- if (!containerCache.has(container)) {
- const placeholderStyle = injectCSS("", options);
- const { parentNode } = placeholderStyle;
- containerCache.set(container, parentNode);
- parentNode.removeChild(placeholderStyle);
- }
- const existNode = findExistNode(key, options);
- if (existNode) {
- if (options.cspNonce && existNode.nonce !== options.cspNonce) {
- existNode.nonce = options.cspNonce;
- }
- if (existNode.innerHTML !== css) {
- existNode.innerHTML = css;
- }
- return existNode;
- }
- const newNode = injectCSS(css, options);
- newNode?.setAttribute(getMark(options), key);
- return newNode;
-}
-function getStatusClassNames(prefixCls, status, hasFeedback) {
- return {
- [`${prefixCls}-status-success`]: status === "success",
- [`${prefixCls}-status-warning`]: status === "warning",
- [`${prefixCls}-status-error`]: status === "error",
- [`${prefixCls}-status-validating`]: status === "validating",
- [`${prefixCls}-has-feedback`]: hasFeedback
- };
-}
-
-export {
- coerceNumberProperty,
- coerceArray,
- coerceCssPixelValue,
- coerceElement,
- environment,
- PREFIX,
- warn,
- arraysEqual,
- isNotNil,
- isNil,
- toBoolean,
- toCssPixel,
- InputBoolean,
- InputNumber,
- silentEvent,
- getElementOffset,
- isTouchEvent,
- getEventPosition,
- getPercent,
- getPrecision,
- ensureNumberInRange,
- inNextTick,
- wrapIntoObservable,
- canUseDom,
- updateCSS,
- getStatusClassNames
-};
-//# sourceMappingURL=chunk-M5GY4FCO.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-M5GY4FCO.js.map b/.angular/cache/17.0.7/vite/deps/chunk-M5GY4FCO.js.map
deleted file mode 100644
index 3b83a05..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-M5GY4FCO.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/@angular/cdk/fesm2022/coercion.mjs", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-environments.mjs", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-logger.mjs", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-util.mjs"],
- "sourcesContent": ["import { ElementRef } from '@angular/core';\n\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n\nfunction coerceNumberProperty(value, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nfunction _isNumberValue(value) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value)) && !isNaN(Number(value));\n}\n\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : `${value}px`;\n}\n\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nfunction coerceElement(elementOrRef) {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n\n/**\n * Coerces a value to an array of trimmed non-empty strings.\n * Any input that is not an array, `null` or `undefined` will be turned into a string\n * via `toString()` and subsequently split with the given separator.\n * `null` and `undefined` will result in an empty array.\n * This results in the following outcomes:\n * - `null` -> `[]`\n * - `[null]` -> `[\"null\"]`\n * - `[\"a\", \"b \", \" \"]` -> `[\"a\", \"b\"]`\n * - `[1, [2, 3]]` -> `[\"1\", \"2,3\"]`\n * - `[{ a: 0 }]` -> `[\"[object Object]\"]`\n * - `{ a: 0 }` -> `[\"[object\", \"Object]\"]`\n *\n * Useful for defining CSS classes or table columns.\n * @param value the value to coerce into an array of strings\n * @param separator split-separator if value isn't an array\n */\nfunction coerceStringArray(value, separator = /\\s+/) {\n const result = [];\n if (value != null) {\n const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);\n for (const sourceValue of sourceValues) {\n const trimmedString = `${sourceValue}`.trim();\n if (trimmedString) {\n result.push(trimmedString);\n }\n }\n }\n return result;\n}\n\nexport { _isNumberValue, coerceArray, coerceBooleanProperty, coerceCssPixelValue, coerceElement, coerceNumberProperty, coerceStringArray };\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 environment = {\n isTestMode: false\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 { environment };\n\n", "import { isDevMode } from '@angular/core';\nimport { environment } from 'ng-zorro-antd/core/environments';\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 record = {};\nconst PREFIX = '[NG-ZORRO]:';\nfunction notRecorded(...args) {\n const asRecord = args.reduce((acc, c) => acc + c.toString(), '');\n if (record[asRecord]) {\n return false;\n }\n else {\n record[asRecord] = true;\n return true;\n }\n}\nfunction consoleCommonBehavior(consoleFunc, ...args) {\n if (environment.isTestMode || (isDevMode() && notRecorded(...args))) {\n consoleFunc(...args);\n }\n}\n// Warning should only be printed in dev mode and only once.\nconst warn = (...args) => consoleCommonBehavior((...arg) => console.warn(PREFIX, ...arg), ...args);\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nconst warnDeprecation = (...args) => {\n if (!environment.isTestMode) {\n const stack = new Error().stack;\n return consoleCommonBehavior((...arg) => console.warn(PREFIX, 'deprecated:', ...arg, stack), ...args);\n }\n else {\n return () => { };\n }\n};\n// Log should only be printed in dev mode.\nconst log = (...args) => {\n if (isDevMode()) {\n console.log(PREFIX, ...args);\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 { PREFIX, log, warn, warnDeprecation };\n\n", "import { TemplateRef } from '@angular/core';\nimport { coerceBooleanProperty, _isNumberValue, coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { Subject, isObservable, from, of } from 'rxjs';\nimport { take } from 'rxjs/operators';\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 */\nfunction toArray(value) {\n let ret;\n if (value == null) {\n ret = [];\n }\n else if (!Array.isArray(value)) {\n ret = [value];\n }\n else {\n ret = value;\n }\n return ret;\n}\nfunction arraysEqual(array1, array2) {\n if (!array1 || !array2 || array1.length !== array2.length) {\n return false;\n }\n const len = array1.length;\n for (let i = 0; i < len; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction shallowCopyArray(source) {\n return source.slice();\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 */\nfunction isNotNil(value) {\n return typeof value !== 'undefined' && value !== null;\n}\nfunction isNil(value) {\n return typeof value === 'undefined' || value === null;\n}\n/**\n * Examine if two objects are shallowly equaled.\n */\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let idx = 0; idx < keysA.length; idx++) {\n const key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isNonEmptyString(value) {\n return typeof value === 'string' && value !== '';\n}\nfunction isTemplateRef(value) {\n return value instanceof TemplateRef;\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 */\nfunction toBoolean(value) {\n return coerceBooleanProperty(value);\n}\nfunction toNumber(value, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\nfunction toCssPixel(value) {\n return coerceCssPixelValue(value);\n}\n// eslint-disable no-invalid-this\n/**\n * Get the function-property type's value\n */\nfunction valueFunctionProp(prop, ...args) {\n return typeof prop === 'function' ? prop(...args) : prop;\n}\nfunction propDecoratorFactory(name, fallback) {\n function propDecorator(target, propName, originalDescriptor) {\n const privatePropName = `$$__zorroPropDecorator__${propName}`;\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\n warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\n }\n Object.defineProperty(target, privatePropName, {\n configurable: true,\n writable: true\n });\n return {\n get() {\n return originalDescriptor && originalDescriptor.get\n ? originalDescriptor.get.bind(this)()\n : this[privatePropName];\n },\n set(value) {\n if (originalDescriptor && originalDescriptor.set) {\n originalDescriptor.set.bind(this)(fallback(value));\n }\n this[privatePropName] = fallback(value);\n }\n };\n }\n return propDecorator;\n}\n/**\n * Input decorator that handle a prop to do get/set automatically with toBoolean\n *\n * Why not using @InputBoolean alone without @Input? AOT needs @Input to be visible\n *\n * @howToUse\n * ```\n * @Input() @InputBoolean() visible: boolean = false;\n *\n * // Act as below:\n * // @Input()\n * // get visible() { return this.__visible; }\n * // set visible(value) { this.__visible = value; }\n * // __visible = false;\n * ```\n */\nfunction InputBoolean() {\n return propDecoratorFactory('InputBoolean', toBoolean);\n}\nfunction InputCssPixel() {\n return propDecoratorFactory('InputCssPixel', toCssPixel);\n}\nfunction InputNumber(fallbackValue) {\n return propDecoratorFactory('InputNumber', (value) => toNumber(value, fallbackValue));\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 * Silent an event by stopping and preventing it.\n */\nfunction silentEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\nfunction getElementOffset(elem) {\n if (!elem.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n const rect = elem.getBoundingClientRect();\n const win = elem.ownerDocument.defaultView;\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset\n };\n}\n/**\n * Investigate if an event is a `TouchEvent`.\n */\nfunction isTouchEvent(event) {\n return event.type.startsWith('touch');\n}\nfunction getEventPosition(event) {\n return isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : event;\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 */\nfunction getRegExp(prefix) {\n const prefixArray = Array.isArray(prefix) ? prefix : [prefix];\n let prefixToken = prefixArray.join('').replace(/(\\$|\\^)/g, '\\\\$1');\n if (prefixArray.length > 1) {\n prefixToken = `[${prefixToken}]`;\n }\n return new RegExp(`(\\\\s|^)(${prefixToken})[^\\\\s]*`, 'g');\n}\nfunction getMentions(value, prefix = '@') {\n if (typeof value !== 'string') {\n return [];\n }\n const regex = getRegExp(prefix);\n const mentions = value.match(regex);\n return mentions !== null ? mentions.map(e => e.trim()) : [];\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 * Much like lodash.\n */\nfunction padStart(toPad, length, element) {\n if (toPad.length > length) {\n return toPad;\n }\n const joined = `${getRepeatedElement(length, element)}${toPad}`;\n return joined.slice(joined.length - length, joined.length);\n}\nfunction padEnd(toPad, length, element) {\n const joined = `${toPad}${getRepeatedElement(length, element)}`;\n return joined.slice(0, length);\n}\nfunction getRepeatedElement(length, element) {\n return Array(length).fill(element).join('');\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 */\nfunction isPromise(obj) {\n return !!obj && typeof obj.then === 'function' && typeof obj.catch === 'function';\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 */\nfunction getPercent(min, max, value) {\n return ((value - min) / (max - min)) * 100;\n}\nfunction getPrecision(num) {\n const numStr = num.toString();\n const dotIndex = numStr.indexOf('.');\n return dotIndex >= 0 ? numStr.length - dotIndex - 1 : 0;\n}\nfunction ensureNumberInRange(num, min, max) {\n if (isNaN(num) || num < min) {\n return min;\n }\n else if (num > max) {\n return max;\n }\n else {\n return num;\n }\n}\nfunction isNumberFinite(value) {\n return typeof value === 'number' && isFinite(value);\n}\nfunction toDecimal(value, decimal) {\n return Math.round(value * Math.pow(10, decimal)) / Math.pow(10, decimal);\n}\nfunction sum(input, initial = 0) {\n return input.reduce((previous, current) => previous + current, initial);\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 */\nfunction scrollIntoView(node) {\n const nodeAsAny = node;\n if (nodeAsAny.scrollIntoViewIfNeeded) {\n /* eslint-disable-next-line @typescript-eslint/dot-notation */\n nodeAsAny.scrollIntoViewIfNeeded(false);\n return;\n }\n if (node.scrollIntoView) {\n node.scrollIntoView(false);\n return;\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// from https://github.com/component/textarea-caret-position\n// We'll copy the properties below into the mirror div.\n// Note that some browsers, such as Firefox, do not concatenate properties\n// into their shorthand (e.g. padding-top, padding-bottom etc. -> padding),\n// so we have to list every single property explicitly.\nconst properties = [\n 'direction',\n 'boxSizing',\n 'width',\n 'height',\n 'overflowX',\n 'overflowY',\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderStyle',\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'fontStretch',\n 'fontSize',\n 'fontSizeAdjust',\n 'lineHeight',\n 'fontFamily',\n 'textAlign',\n 'textTransform',\n 'textIndent',\n 'textDecoration',\n 'letterSpacing',\n 'wordSpacing',\n 'tabSize',\n 'MozTabSize'\n];\nconst isBrowser = typeof window !== 'undefined';\nconst isFirefox = isBrowser && window.mozInnerScreenX != null;\nconst _parseInt = (str) => parseInt(str, 10);\nfunction getCaretCoordinates(element, position, options) {\n if (!isBrowser) {\n throw new Error('textarea-caret-position#getCaretCoordinates should only be called in a browser');\n }\n const debug = (options && options.debug) || false;\n if (debug) {\n const el = document.querySelector('#input-textarea-caret-position-mirror-div');\n if (el) {\n el.parentNode.removeChild(el);\n }\n }\n // The mirror div will replicate the textarea's style\n const div = document.createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n document.body.appendChild(div);\n const style = div.style;\n const computed = window.getComputedStyle ? window.getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\n const isInput = element.nodeName === 'INPUT';\n // Default textarea styles\n style.whiteSpace = 'pre-wrap';\n if (!isInput) {\n style.wordWrap = 'break-word'; // only for textarea-s\n }\n // Position off-screen\n style.position = 'absolute'; // required to return coordinates properly\n if (!debug) {\n style.visibility = 'hidden';\n } // not 'display: none' because we want rendering\n // Transfer the element's properties to the div\n properties.forEach((prop) => {\n if (isInput && prop === 'lineHeight') {\n // Special case for s because text is rendered centered and line height may be != height\n style.lineHeight = computed.height;\n }\n else {\n // @ts-ignore\n style[prop] = computed[prop];\n }\n });\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > _parseInt(computed.height)) {\n style.overflowY = 'scroll';\n }\n }\n else {\n style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n div.textContent = element.value.substring(0, position);\n // The second special handling for input type=\"text\" vs textarea:\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n if (isInput) {\n div.textContent = div.textContent.replace(/\\s/g, '\\u00a0');\n }\n const span = document.createElement('span');\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the created at the caret position.\n // For inputs, just '.' would be enough, but no need to bother.\n span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n const coordinates = {\n top: span.offsetTop + _parseInt(computed.borderTopWidth),\n left: span.offsetLeft + _parseInt(computed.borderLeftWidth),\n height: _parseInt(computed.lineHeight)\n };\n if (debug) {\n span.style.backgroundColor = '#eee';\n createDebugEle(element, coordinates);\n }\n else {\n document.body.removeChild(div);\n }\n return coordinates;\n}\nfunction createDebugEle(element, coordinates) {\n const fontSize = getComputedStyle(element).getPropertyValue('font-size');\n const rect = document.querySelector('#DEBUG') || document.createElement('div');\n document.body.appendChild(rect);\n rect.id = 'DEBUG';\n rect.style.position = 'absolute';\n rect.style.backgroundColor = 'red';\n rect.style.height = fontSize;\n rect.style.width = '1px';\n rect.style.top = `${element.getBoundingClientRect().top - element.scrollTop + window.pageYOffset + coordinates.top}px`;\n rect.style.left = `${element.getBoundingClientRect().left - element.scrollLeft + window.pageXOffset + coordinates.left}px`;\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 */\nfunction isStyleSupport(styleName) {\n if (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n const styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n const { documentElement } = window.document;\n return styleNameList.some(name => name in documentElement.style);\n }\n return false;\n}\nfunction getStyleAsText(styles) {\n if (!styles) {\n return '';\n }\n return Object.keys(styles)\n .map(key => {\n const val = styles[key];\n return `${key}:${typeof val === 'string' ? val : `${val}px`}`;\n })\n .join(';');\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// We only handle element & text node.\nconst ELEMENT_NODE = 1;\nconst TEXT_NODE = 3;\nconst COMMENT_NODE = 8;\nlet ellipsisContainer;\nconst wrapperStyle = {\n padding: '0',\n margin: '0',\n display: 'inline',\n lineHeight: 'inherit'\n};\nfunction pxToNumber(value) {\n if (!value) {\n return 0;\n }\n const match = value.match(/^\\d*(\\.\\d*)?/);\n return match ? Number(match[0]) : 0;\n}\nfunction styleToString(style) {\n // There are some different behavior between Firefox & Chrome.\n // We have to handle this ourself.\n const styleNames = Array.prototype.slice.apply(style);\n return styleNames.map(name => `${name}: ${style.getPropertyValue(name)};`).join('');\n}\nfunction mergeChildren(children) {\n const childList = [];\n children.forEach((child) => {\n const prevChild = childList[childList.length - 1];\n if (prevChild && child.nodeType === TEXT_NODE && prevChild.nodeType === TEXT_NODE) {\n prevChild.data += child.data;\n }\n else {\n childList.push(child);\n }\n });\n return childList;\n}\nfunction measure(originEle, rows, contentNodes, fixedContent, ellipsisStr, suffixStr = '') {\n if (!ellipsisContainer) {\n ellipsisContainer = document.createElement('div');\n ellipsisContainer.setAttribute('aria-hidden', 'true');\n document.body.appendChild(ellipsisContainer);\n }\n // Get origin style\n const originStyle = window.getComputedStyle(originEle);\n const originCSS = styleToString(originStyle);\n const lineHeight = pxToNumber(originStyle.lineHeight);\n const maxHeight = Math.round(lineHeight * (rows + 1) + pxToNumber(originStyle.paddingTop) + pxToNumber(originStyle.paddingBottom));\n // Set shadow\n ellipsisContainer.setAttribute('style', originCSS);\n ellipsisContainer.style.position = 'fixed';\n ellipsisContainer.style.left = '0';\n ellipsisContainer.style.height = 'auto';\n ellipsisContainer.style.minHeight = 'auto';\n ellipsisContainer.style.maxHeight = 'auto';\n ellipsisContainer.style.top = '-999999px';\n ellipsisContainer.style.zIndex = '-1000';\n // clean up css overflow\n ellipsisContainer.style.textOverflow = 'clip';\n ellipsisContainer.style.whiteSpace = 'normal';\n ellipsisContainer.style.webkitLineClamp = 'none';\n const contentList = mergeChildren(contentNodes);\n const container = document.createElement('div');\n const contentContainer = document.createElement('span');\n const suffixContainer = document.createTextNode(suffixStr);\n const fixedContainer = document.createElement('span');\n // Add styles in container\n Object.assign(container.style, wrapperStyle);\n Object.assign(contentContainer.style, wrapperStyle);\n Object.assign(fixedContainer.style, wrapperStyle);\n contentList.forEach(n => {\n contentContainer.appendChild(n);\n });\n contentContainer.appendChild(suffixContainer);\n fixedContent.forEach(node => {\n fixedContainer.appendChild(node.cloneNode(true));\n });\n container.appendChild(contentContainer);\n container.appendChild(fixedContainer);\n // Render in the fake container\n ellipsisContainer.appendChild(container);\n // Check if ellipsis in measure div is height enough for content\n function inRange() {\n return ellipsisContainer.offsetHeight < maxHeight;\n }\n if (inRange()) {\n const text = ellipsisContainer.innerHTML;\n ellipsisContainer.removeChild(container);\n return { contentNodes, text, ellipsis: false };\n }\n // We should clone the childNode since they're controlled by React and we can't reuse it without warning\n const childNodes = Array.prototype.slice\n .apply(ellipsisContainer.childNodes[0].childNodes[0].cloneNode(true).childNodes)\n .filter(({ nodeType }) => nodeType !== COMMENT_NODE);\n const fixedNodes = Array.prototype.slice.apply(ellipsisContainer.childNodes[0].childNodes[1].cloneNode(true).childNodes);\n ellipsisContainer.removeChild(container);\n // ========================= Find match ellipsis content =========================\n ellipsisContainer.innerHTML = '';\n // Create origin content holder\n const ellipsisContentHolder = document.createElement('span');\n ellipsisContainer.appendChild(ellipsisContentHolder);\n const ellipsisTextNode = document.createTextNode(ellipsisStr + suffixStr);\n ellipsisContentHolder.appendChild(ellipsisTextNode);\n fixedNodes.forEach(childNode => {\n ellipsisContainer.appendChild(childNode);\n });\n // Append before fixed nodes\n function appendChildNode(node) {\n ellipsisContentHolder.insertBefore(node, ellipsisTextNode);\n }\n // Get maximum text\n function measureText(textNode, fullText, startLoc = 0, endLoc = fullText.length, lastSuccessLoc = 0) {\n const midLoc = Math.floor((startLoc + endLoc) / 2);\n textNode.textContent = fullText.slice(0, midLoc);\n if (startLoc >= endLoc - 1) {\n // Loop when step is small\n for (let step = endLoc; step >= startLoc; step -= 1) {\n const currentStepText = fullText.slice(0, step);\n textNode.textContent = currentStepText;\n if (inRange() || !currentStepText) {\n return step === fullText.length\n ? {\n finished: false,\n node: document.createTextNode(fullText)\n }\n : {\n finished: true,\n node: document.createTextNode(currentStepText)\n };\n }\n }\n }\n if (inRange()) {\n return measureText(textNode, fullText, midLoc, endLoc, midLoc);\n }\n else {\n return measureText(textNode, fullText, startLoc, midLoc, lastSuccessLoc);\n }\n }\n function measureNode(childNode, index) {\n const type = childNode.nodeType;\n if (type === ELEMENT_NODE) {\n // We don't split element, it will keep if whole element can be displayed.\n // appendChildNode(childNode);\n if (inRange()) {\n return {\n finished: false,\n node: contentList[index]\n };\n }\n // Clean up if can not pull in\n ellipsisContentHolder.removeChild(childNode);\n return {\n finished: true,\n node: null\n };\n }\n else if (type === TEXT_NODE) {\n const fullText = childNode.textContent || '';\n const textNode = document.createTextNode(fullText);\n appendChildNode(textNode);\n return measureText(textNode, fullText);\n }\n // Not handle other type of content\n // PS: This code should not be attached after react 16\n return {\n finished: false,\n node: null\n };\n }\n const ellipsisNodes = [];\n childNodes.some((childNode, index) => {\n const { finished, node } = measureNode(childNode, index);\n if (node) {\n ellipsisNodes.push(node);\n }\n return finished;\n });\n const result = {\n contentNodes: ellipsisNodes,\n text: ellipsisContainer.innerHTML,\n ellipsis: true\n };\n while (ellipsisContainer.firstChild) {\n ellipsisContainer.removeChild(ellipsisContainer.firstChild);\n }\n return result;\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 */\nlet scrollbarVerticalSize;\nlet scrollbarHorizontalSize;\n// Measure scrollbar width for padding body during modal show/hide\nconst scrollbarMeasure = {\n position: 'absolute',\n top: '-9999px',\n width: '50px',\n height: '50px'\n};\nfunction measureScrollbar(direction = 'vertical', prefix = 'ant') {\n if (typeof document === 'undefined' || typeof window === 'undefined') {\n return 0;\n }\n const isVertical = direction === 'vertical';\n if (isVertical && scrollbarVerticalSize) {\n return scrollbarVerticalSize;\n }\n else if (!isVertical && scrollbarHorizontalSize) {\n return scrollbarHorizontalSize;\n }\n const scrollDiv = document.createElement('div');\n Object.keys(scrollbarMeasure).forEach(scrollProp => {\n // @ts-ignore\n scrollDiv.style[scrollProp] = scrollbarMeasure[scrollProp];\n });\n // apply hide scrollbar className ahead\n scrollDiv.className = `${prefix}-hide-scrollbar scroll-div-append-to-body`;\n // Append related overflow style\n if (isVertical) {\n scrollDiv.style.overflowY = 'scroll';\n }\n else {\n scrollDiv.style.overflowX = 'scroll';\n }\n document.body.appendChild(scrollDiv);\n let size = 0;\n if (isVertical) {\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n scrollbarVerticalSize = size;\n }\n else {\n size = scrollDiv.offsetHeight - scrollDiv.clientHeight;\n scrollbarHorizontalSize = size;\n }\n document.body.removeChild(scrollDiv);\n return size;\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 */\nfunction ensureInBounds(value, boundValue) {\n return value ? (value < boundValue ? value : boundValue) : boundValue;\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 */\nfunction inNextTick() {\n const timer = new Subject();\n Promise.resolve().then(() => timer.next());\n return timer.pipe(take(1));\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 */\nfunction wrapIntoObservable(value) {\n if (isObservable(value)) {\n return value;\n }\n if (isPromise(value)) {\n // Use `Promise.resolve()` to wrap promise-like instances.\n return from(Promise.resolve(value));\n }\n return of(value);\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 * Sync from rc-util [https://github.com/react-component/util]\n */\nfunction canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\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 * Sync from rc-util [https://github.com/react-component/util]\n */\nconst MARK_KEY = `rc-util-key`;\nfunction getMark({ mark } = {}) {\n if (mark) {\n return mark.startsWith('data-') ? mark : `data-${mark}`;\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n const head = document.querySelector('head');\n return head || document.body;\n}\nfunction injectCSS(css, options = {}) {\n if (!canUseDom()) {\n return null;\n }\n const styleNode = document.createElement('style');\n if (options.cspNonce) {\n styleNode.nonce = options.cspNonce;\n }\n styleNode.innerHTML = css;\n const container = getContainer(options);\n const { firstChild } = container;\n if (options.prepend && container.prepend) {\n // Use `prepend` first\n container.prepend(styleNode);\n }\n else if (options.prepend && firstChild) {\n // Fallback to `insertBefore` like IE not support `prepend`\n container.insertBefore(styleNode, firstChild);\n }\n else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nconst containerCache = new Map();\nfunction findExistNode(key, option = {}) {\n const container = getContainer(option);\n return Array.from(containerCache.get(container)?.children || []).find(node => node.tagName === 'STYLE' && node.getAttribute(getMark(option)) === key);\n}\nfunction removeCSS(key, option = {}) {\n const existNode = findExistNode(key, option);\n existNode?.parentNode?.removeChild(existNode);\n}\nfunction updateCSS(css, key, options = {}) {\n const container = getContainer(options);\n // Get real parent\n if (!containerCache.has(container)) {\n const placeholderStyle = injectCSS('', options);\n // @ts-ignore\n const { parentNode } = placeholderStyle;\n containerCache.set(container, parentNode);\n parentNode.removeChild(placeholderStyle);\n }\n const existNode = findExistNode(key, options);\n if (existNode) {\n if (options.cspNonce && existNode.nonce !== options.cspNonce) {\n existNode.nonce = options.cspNonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n const newNode = injectCSS(css, options);\n newNode?.setAttribute(getMark(options), key);\n return newNode;\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 */\nfunction getStatusClassNames(prefixCls, status, hasFeedback) {\n return {\n [`${prefixCls}-status-success`]: status === 'success',\n [`${prefixCls}-status-warning`]: status === 'warning',\n [`${prefixCls}-status-error`]: status === 'error',\n [`${prefixCls}-status-validating`]: status === 'validating',\n [`${prefixCls}-has-feedback`]: hasFeedback\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 { InputBoolean, InputCssPixel, InputNumber, arraysEqual, canUseDom, createDebugEle, ensureInBounds, ensureNumberInRange, getCaretCoordinates, getElementOffset, getEventPosition, getMentions, getPercent, getPrecision, getRegExp, getRepeatedElement, getStatusClassNames, getStyleAsText, inNextTick, injectCSS, isNil, isNonEmptyString, isNotNil, isNumberFinite, isPromise, isStyleSupport, isTemplateRef, isTouchEvent, measure, measureScrollbar, padEnd, padStart, properties, pxToNumber, removeCSS, scrollIntoView, shallowCopyArray, shallowEqual, silentEvent, sum, toArray, toBoolean, toCssPixel, toDecimal, toNumber, updateCSS, valueFunctionProp, wrapIntoObservable };\n\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-QP2OUFNR.js b/.angular/cache/17.0.7/vite/deps/chunk-QP2OUFNR.js
deleted file mode 100644
index 8151afa..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-QP2OUFNR.js
+++ /dev/null
@@ -1,430 +0,0 @@
-import {
- NzBreakpointService,
- gridResponsiveMap
-} from "./chunk-D5ODNR6D.js";
-import {
- MediaMatcher
-} from "./chunk-WB57DPWD.js";
-import {
- Directionality
-} from "./chunk-6NZ2BEBG.js";
-import {
- Platform
-} from "./chunk-IAC53GOD.js";
-import {
- isNotNil
-} from "./chunk-M5GY4FCO.js";
-import {
- Directive,
- ElementRef,
- Host,
- Input,
- NgModule,
- NgZone,
- Optional,
- Renderer2,
- ReplaySubject,
- Subject,
- setClassMetadata,
- takeUntil,
- ɵɵNgOnChangesFeature,
- ɵɵclassProp,
- ɵɵdefineDirective,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵstyleProp
-} from "./chunk-FGESKT7O.js";
-import {
- __spreadValues
-} from "./chunk-HSNDBVJ3.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-grid.mjs
-var _NzRowDirective = class _NzRowDirective {
- getGutter() {
- const results = [null, null];
- const gutter = this.nzGutter || 0;
- const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, null];
- normalizedGutter.forEach((g, index) => {
- if (typeof g === "object" && g !== null) {
- results[index] = null;
- Object.keys(gridResponsiveMap).map((screen) => {
- const bp = screen;
- if (this.mediaMatcher.matchMedia(gridResponsiveMap[bp]).matches && g[bp]) {
- results[index] = g[bp];
- }
- });
- } else {
- results[index] = Number(g) || null;
- }
- });
- return results;
- }
- setGutterStyle() {
- const [horizontalGutter, verticalGutter] = this.getGutter();
- this.actualGutter$.next([horizontalGutter, verticalGutter]);
- const renderGutter = (name, gutter) => {
- const nativeElement = this.elementRef.nativeElement;
- if (gutter !== null) {
- this.renderer.setStyle(nativeElement, name, `-${gutter / 2}px`);
- }
- };
- renderGutter("margin-left", horizontalGutter);
- renderGutter("margin-right", horizontalGutter);
- renderGutter("margin-top", verticalGutter);
- renderGutter("margin-bottom", verticalGutter);
- }
- constructor(elementRef, renderer, mediaMatcher, ngZone, platform, breakpointService, directionality) {
- this.elementRef = elementRef;
- this.renderer = renderer;
- this.mediaMatcher = mediaMatcher;
- this.ngZone = ngZone;
- this.platform = platform;
- this.breakpointService = breakpointService;
- this.directionality = directionality;
- this.nzAlign = null;
- this.nzJustify = null;
- this.nzGutter = null;
- this.actualGutter$ = new ReplaySubject(1);
- this.dir = "ltr";
- this.destroy$ = new Subject();
- }
- ngOnInit() {
- this.dir = this.directionality.value;
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- });
- this.setGutterStyle();
- }
- ngOnChanges(changes) {
- if (changes.nzGutter) {
- this.setGutterStyle();
- }
- }
- ngAfterViewInit() {
- if (this.platform.isBrowser) {
- this.breakpointService.subscribe(gridResponsiveMap).pipe(takeUntil(this.destroy$)).subscribe(() => {
- this.setGutterStyle();
- });
- }
- }
- ngOnDestroy() {
- this.destroy$.next(true);
- this.destroy$.complete();
- }
-};
-_NzRowDirective.ɵfac = function NzRowDirective_Factory(t) {
- return new (t || _NzRowDirective)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(MediaMatcher), ɵɵdirectiveInject(NgZone), ɵɵdirectiveInject(Platform), ɵɵdirectiveInject(NzBreakpointService), ɵɵdirectiveInject(Directionality, 8));
-};
-_NzRowDirective.ɵdir = ɵɵdefineDirective({
- type: _NzRowDirective,
- selectors: [["", "nz-row", ""], ["nz-row"], ["nz-form-item"]],
- hostAttrs: [1, "ant-row"],
- hostVars: 20,
- hostBindings: function NzRowDirective_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵclassProp("ant-row-top", ctx.nzAlign === "top")("ant-row-middle", ctx.nzAlign === "middle")("ant-row-bottom", ctx.nzAlign === "bottom")("ant-row-start", ctx.nzJustify === "start")("ant-row-end", ctx.nzJustify === "end")("ant-row-center", ctx.nzJustify === "center")("ant-row-space-around", ctx.nzJustify === "space-around")("ant-row-space-between", ctx.nzJustify === "space-between")("ant-row-space-evenly", ctx.nzJustify === "space-evenly")("ant-row-rtl", ctx.dir === "rtl");
- }
- },
- inputs: {
- nzAlign: "nzAlign",
- nzJustify: "nzJustify",
- nzGutter: "nzGutter"
- },
- exportAs: ["nzRow"],
- standalone: true,
- features: [ɵɵNgOnChangesFeature]
-});
-var NzRowDirective = _NzRowDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzRowDirective, [{
- type: Directive,
- args: [{
- selector: "[nz-row],nz-row,nz-form-item",
- exportAs: "nzRow",
- host: {
- class: "ant-row",
- "[class.ant-row-top]": `nzAlign === 'top'`,
- "[class.ant-row-middle]": `nzAlign === 'middle'`,
- "[class.ant-row-bottom]": `nzAlign === 'bottom'`,
- "[class.ant-row-start]": `nzJustify === 'start'`,
- "[class.ant-row-end]": `nzJustify === 'end'`,
- "[class.ant-row-center]": `nzJustify === 'center'`,
- "[class.ant-row-space-around]": `nzJustify === 'space-around'`,
- "[class.ant-row-space-between]": `nzJustify === 'space-between'`,
- "[class.ant-row-space-evenly]": `nzJustify === 'space-evenly'`,
- "[class.ant-row-rtl]": `dir === "rtl"`
- },
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: Renderer2
- }, {
- type: MediaMatcher
- }, {
- type: NgZone
- }, {
- type: Platform
- }, {
- type: NzBreakpointService
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- nzAlign: [{
- type: Input
- }],
- nzJustify: [{
- type: Input
- }],
- nzGutter: [{
- type: Input
- }]
- });
-})();
-var _NzColDirective = class _NzColDirective {
- setHostClassMap() {
- const hostClassMap = __spreadValues({
- ["ant-col"]: true,
- [`ant-col-${this.nzSpan}`]: isNotNil(this.nzSpan),
- [`ant-col-order-${this.nzOrder}`]: isNotNil(this.nzOrder),
- [`ant-col-offset-${this.nzOffset}`]: isNotNil(this.nzOffset),
- [`ant-col-pull-${this.nzPull}`]: isNotNil(this.nzPull),
- [`ant-col-push-${this.nzPush}`]: isNotNil(this.nzPush),
- ["ant-col-rtl"]: this.dir === "rtl"
- }, this.generateClass());
- for (const i in this.classMap) {
- if (this.classMap.hasOwnProperty(i)) {
- this.renderer.removeClass(this.elementRef.nativeElement, i);
- }
- }
- this.classMap = __spreadValues({}, hostClassMap);
- for (const i in this.classMap) {
- if (this.classMap.hasOwnProperty(i) && this.classMap[i]) {
- this.renderer.addClass(this.elementRef.nativeElement, i);
- }
- }
- }
- setHostFlexStyle() {
- this.hostFlexStyle = this.parseFlex(this.nzFlex);
- }
- parseFlex(flex) {
- if (typeof flex === "number") {
- return `${flex} ${flex} auto`;
- } else if (typeof flex === "string") {
- if (/^\d+(\.\d+)?(px|em|rem|%)$/.test(flex)) {
- return `0 0 ${flex}`;
- }
- }
- return flex;
- }
- generateClass() {
- const listOfSizeInputName = ["nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"];
- const listClassMap = {};
- listOfSizeInputName.forEach((name) => {
- const sizeName = name.replace("nz", "").toLowerCase();
- if (isNotNil(this[name])) {
- if (typeof this[name] === "number" || typeof this[name] === "string") {
- listClassMap[`ant-col-${sizeName}-${this[name]}`] = true;
- } else {
- const embedded = this[name];
- const prefixArray = ["span", "pull", "push", "offset", "order"];
- prefixArray.forEach((prefix) => {
- const prefixClass = prefix === "span" ? "-" : `-${prefix}-`;
- listClassMap[`ant-col-${sizeName}${prefixClass}${embedded[prefix]}`] = embedded && isNotNil(embedded[prefix]);
- });
- }
- }
- });
- return listClassMap;
- }
- constructor(elementRef, nzRowDirective, renderer, directionality) {
- this.elementRef = elementRef;
- this.nzRowDirective = nzRowDirective;
- this.renderer = renderer;
- this.directionality = directionality;
- this.classMap = {};
- this.destroy$ = new Subject();
- this.hostFlexStyle = null;
- this.dir = "ltr";
- this.nzFlex = null;
- this.nzSpan = null;
- this.nzOrder = null;
- this.nzOffset = null;
- this.nzPush = null;
- this.nzPull = null;
- this.nzXs = null;
- this.nzSm = null;
- this.nzMd = null;
- this.nzLg = null;
- this.nzXl = null;
- this.nzXXl = null;
- }
- ngOnInit() {
- this.dir = this.directionality.value;
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- this.setHostClassMap();
- });
- this.setHostClassMap();
- this.setHostFlexStyle();
- }
- ngOnChanges(changes) {
- this.setHostClassMap();
- const {
- nzFlex
- } = changes;
- if (nzFlex) {
- this.setHostFlexStyle();
- }
- }
- ngAfterViewInit() {
- if (this.nzRowDirective) {
- this.nzRowDirective.actualGutter$.pipe(takeUntil(this.destroy$)).subscribe(([horizontalGutter, verticalGutter]) => {
- const renderGutter = (name, gutter) => {
- const nativeElement = this.elementRef.nativeElement;
- if (gutter !== null) {
- this.renderer.setStyle(nativeElement, name, `${gutter / 2}px`);
- }
- };
- renderGutter("padding-left", horizontalGutter);
- renderGutter("padding-right", horizontalGutter);
- renderGutter("padding-top", verticalGutter);
- renderGutter("padding-bottom", verticalGutter);
- });
- }
- }
- ngOnDestroy() {
- this.destroy$.next(true);
- this.destroy$.complete();
- }
-};
-_NzColDirective.ɵfac = function NzColDirective_Factory(t) {
- return new (t || _NzColDirective)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(NzRowDirective, 9), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(Directionality, 8));
-};
-_NzColDirective.ɵdir = ɵɵdefineDirective({
- type: _NzColDirective,
- selectors: [["", "nz-col", ""], ["nz-col"], ["nz-form-control"], ["nz-form-label"]],
- hostVars: 2,
- hostBindings: function NzColDirective_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵstyleProp("flex", ctx.hostFlexStyle);
- }
- },
- inputs: {
- nzFlex: "nzFlex",
- nzSpan: "nzSpan",
- nzOrder: "nzOrder",
- nzOffset: "nzOffset",
- nzPush: "nzPush",
- nzPull: "nzPull",
- nzXs: "nzXs",
- nzSm: "nzSm",
- nzMd: "nzMd",
- nzLg: "nzLg",
- nzXl: "nzXl",
- nzXXl: "nzXXl"
- },
- exportAs: ["nzCol"],
- standalone: true,
- features: [ɵɵNgOnChangesFeature]
-});
-var NzColDirective = _NzColDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzColDirective, [{
- type: Directive,
- args: [{
- selector: "[nz-col],nz-col,nz-form-control,nz-form-label",
- exportAs: "nzCol",
- host: {
- "[style.flex]": "hostFlexStyle"
- },
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: NzRowDirective,
- decorators: [{
- type: Optional
- }, {
- type: Host
- }]
- }, {
- type: Renderer2
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- nzFlex: [{
- type: Input
- }],
- nzSpan: [{
- type: Input
- }],
- nzOrder: [{
- type: Input
- }],
- nzOffset: [{
- type: Input
- }],
- nzPush: [{
- type: Input
- }],
- nzPull: [{
- type: Input
- }],
- nzXs: [{
- type: Input
- }],
- nzSm: [{
- type: Input
- }],
- nzMd: [{
- type: Input
- }],
- nzLg: [{
- type: Input
- }],
- nzXl: [{
- type: Input
- }],
- nzXXl: [{
- type: Input
- }]
- });
-})();
-var _NzGridModule = class _NzGridModule {
-};
-_NzGridModule.ɵfac = function NzGridModule_Factory(t) {
- return new (t || _NzGridModule)();
-};
-_NzGridModule.ɵmod = ɵɵdefineNgModule({
- type: _NzGridModule,
- imports: [NzColDirective, NzRowDirective],
- exports: [NzColDirective, NzRowDirective]
-});
-_NzGridModule.ɵinj = ɵɵdefineInjector({});
-var NzGridModule = _NzGridModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzGridModule, [{
- type: NgModule,
- args: [{
- imports: [NzColDirective, NzRowDirective],
- exports: [NzColDirective, NzRowDirective]
- }]
- }], null, null);
-})();
-
-export {
- NzRowDirective,
- NzColDirective,
- NzGridModule
-};
-//# sourceMappingURL=chunk-QP2OUFNR.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-QP2OUFNR.js.map b/.angular/cache/17.0.7/vite/deps/chunk-QP2OUFNR.js.map
deleted file mode 100644
index 2ccbdf7..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-QP2OUFNR.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-grid.mjs"],
- "sourcesContent": ["import * as i0 from '@angular/core';\nimport { Directive, Optional, Input, Host, NgModule } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i3 from 'ng-zorro-antd/core/services';\nimport { gridResponsiveMap } from 'ng-zorro-antd/core/services';\nimport * as i1 from '@angular/cdk/layout';\nimport * as i2 from '@angular/cdk/platform';\nimport * as i4 from '@angular/cdk/bidi';\nimport { isNotNil } from 'ng-zorro-antd/core/util';\nclass NzRowDirective {\n getGutter() {\n const results = [null, null];\n const gutter = this.nzGutter || 0;\n const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, null];\n normalizedGutter.forEach((g, index) => {\n if (typeof g === 'object' && g !== null) {\n results[index] = null;\n Object.keys(gridResponsiveMap).map(screen => {\n const bp = screen;\n if (this.mediaMatcher.matchMedia(gridResponsiveMap[bp]).matches && g[bp]) {\n results[index] = g[bp];\n }\n });\n } else {\n results[index] = Number(g) || null;\n }\n });\n return results;\n }\n setGutterStyle() {\n const [horizontalGutter, verticalGutter] = this.getGutter();\n this.actualGutter$.next([horizontalGutter, verticalGutter]);\n const renderGutter = (name, gutter) => {\n const nativeElement = this.elementRef.nativeElement;\n if (gutter !== null) {\n this.renderer.setStyle(nativeElement, name, `-${gutter / 2}px`);\n }\n };\n renderGutter('margin-left', horizontalGutter);\n renderGutter('margin-right', horizontalGutter);\n renderGutter('margin-top', verticalGutter);\n renderGutter('margin-bottom', verticalGutter);\n }\n constructor(elementRef, renderer, mediaMatcher, ngZone, platform, breakpointService, directionality) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.mediaMatcher = mediaMatcher;\n this.ngZone = ngZone;\n this.platform = platform;\n this.breakpointService = breakpointService;\n this.directionality = directionality;\n this.nzAlign = null;\n this.nzJustify = null;\n this.nzGutter = null;\n this.actualGutter$ = new ReplaySubject(1);\n this.dir = 'ltr';\n this.destroy$ = new Subject();\n }\n ngOnInit() {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n });\n this.setGutterStyle();\n }\n ngOnChanges(changes) {\n if (changes.nzGutter) {\n this.setGutterStyle();\n }\n }\n ngAfterViewInit() {\n if (this.platform.isBrowser) {\n this.breakpointService.subscribe(gridResponsiveMap).pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.setGutterStyle();\n });\n }\n }\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzRowDirective_Factory(t) {\n return new (t || NzRowDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.MediaMatcher), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i3.NzBreakpointService), i0.ɵɵdirectiveInject(i4.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzRowDirective,\n selectors: [[\"\", \"nz-row\", \"\"], [\"nz-row\"], [\"nz-form-item\"]],\n hostAttrs: [1, \"ant-row\"],\n hostVars: 20,\n hostBindings: function NzRowDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"ant-row-top\", ctx.nzAlign === \"top\")(\"ant-row-middle\", ctx.nzAlign === \"middle\")(\"ant-row-bottom\", ctx.nzAlign === \"bottom\")(\"ant-row-start\", ctx.nzJustify === \"start\")(\"ant-row-end\", ctx.nzJustify === \"end\")(\"ant-row-center\", ctx.nzJustify === \"center\")(\"ant-row-space-around\", ctx.nzJustify === \"space-around\")(\"ant-row-space-between\", ctx.nzJustify === \"space-between\")(\"ant-row-space-evenly\", ctx.nzJustify === \"space-evenly\")(\"ant-row-rtl\", ctx.dir === \"rtl\");\n }\n },\n inputs: {\n nzAlign: \"nzAlign\",\n nzJustify: \"nzJustify\",\n nzGutter: \"nzGutter\"\n },\n exportAs: [\"nzRow\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzRowDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-row],nz-row,nz-form-item',\n exportAs: 'nzRow',\n host: {\n class: 'ant-row',\n '[class.ant-row-top]': `nzAlign === 'top'`,\n '[class.ant-row-middle]': `nzAlign === 'middle'`,\n '[class.ant-row-bottom]': `nzAlign === 'bottom'`,\n '[class.ant-row-start]': `nzJustify === 'start'`,\n '[class.ant-row-end]': `nzJustify === 'end'`,\n '[class.ant-row-center]': `nzJustify === 'center'`,\n '[class.ant-row-space-around]': `nzJustify === 'space-around'`,\n '[class.ant-row-space-between]': `nzJustify === 'space-between'`,\n '[class.ant-row-space-evenly]': `nzJustify === 'space-evenly'`,\n '[class.ant-row-rtl]': `dir === \"rtl\"`\n },\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }, {\n type: i1.MediaMatcher\n }, {\n type: i0.NgZone\n }, {\n type: i2.Platform\n }, {\n type: i3.NzBreakpointService\n }, {\n type: i4.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n nzAlign: [{\n type: Input\n }],\n nzJustify: [{\n type: Input\n }],\n nzGutter: [{\n type: Input\n }]\n });\n})();\nclass NzColDirective {\n setHostClassMap() {\n const hostClassMap = {\n ['ant-col']: true,\n [`ant-col-${this.nzSpan}`]: isNotNil(this.nzSpan),\n [`ant-col-order-${this.nzOrder}`]: isNotNil(this.nzOrder),\n [`ant-col-offset-${this.nzOffset}`]: isNotNil(this.nzOffset),\n [`ant-col-pull-${this.nzPull}`]: isNotNil(this.nzPull),\n [`ant-col-push-${this.nzPush}`]: isNotNil(this.nzPush),\n ['ant-col-rtl']: this.dir === 'rtl',\n ...this.generateClass()\n };\n for (const i in this.classMap) {\n if (this.classMap.hasOwnProperty(i)) {\n this.renderer.removeClass(this.elementRef.nativeElement, i);\n }\n }\n this.classMap = {\n ...hostClassMap\n };\n for (const i in this.classMap) {\n if (this.classMap.hasOwnProperty(i) && this.classMap[i]) {\n this.renderer.addClass(this.elementRef.nativeElement, i);\n }\n }\n }\n setHostFlexStyle() {\n this.hostFlexStyle = this.parseFlex(this.nzFlex);\n }\n parseFlex(flex) {\n if (typeof flex === 'number') {\n return `${flex} ${flex} auto`;\n } else if (typeof flex === 'string') {\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return `0 0 ${flex}`;\n }\n }\n return flex;\n }\n generateClass() {\n const listOfSizeInputName = ['nzXs', 'nzSm', 'nzMd', 'nzLg', 'nzXl', 'nzXXl'];\n const listClassMap = {};\n listOfSizeInputName.forEach(name => {\n const sizeName = name.replace('nz', '').toLowerCase();\n if (isNotNil(this[name])) {\n if (typeof this[name] === 'number' || typeof this[name] === 'string') {\n listClassMap[`ant-col-${sizeName}-${this[name]}`] = true;\n } else {\n const embedded = this[name];\n const prefixArray = ['span', 'pull', 'push', 'offset', 'order'];\n prefixArray.forEach(prefix => {\n const prefixClass = prefix === 'span' ? '-' : `-${prefix}-`;\n listClassMap[`ant-col-${sizeName}${prefixClass}${embedded[prefix]}`] = embedded && isNotNil(embedded[prefix]);\n });\n }\n }\n });\n return listClassMap;\n }\n constructor(elementRef, nzRowDirective, renderer, directionality) {\n this.elementRef = elementRef;\n this.nzRowDirective = nzRowDirective;\n this.renderer = renderer;\n this.directionality = directionality;\n this.classMap = {};\n this.destroy$ = new Subject();\n this.hostFlexStyle = null;\n this.dir = 'ltr';\n this.nzFlex = null;\n this.nzSpan = null;\n this.nzOrder = null;\n this.nzOffset = null;\n this.nzPush = null;\n this.nzPull = null;\n this.nzXs = null;\n this.nzSm = null;\n this.nzMd = null;\n this.nzLg = null;\n this.nzXl = null;\n this.nzXXl = null;\n }\n ngOnInit() {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.setHostClassMap();\n });\n this.setHostClassMap();\n this.setHostFlexStyle();\n }\n ngOnChanges(changes) {\n this.setHostClassMap();\n const {\n nzFlex\n } = changes;\n if (nzFlex) {\n this.setHostFlexStyle();\n }\n }\n ngAfterViewInit() {\n if (this.nzRowDirective) {\n this.nzRowDirective.actualGutter$.pipe(takeUntil(this.destroy$)).subscribe(([horizontalGutter, verticalGutter]) => {\n const renderGutter = (name, gutter) => {\n const nativeElement = this.elementRef.nativeElement;\n if (gutter !== null) {\n this.renderer.setStyle(nativeElement, name, `${gutter / 2}px`);\n }\n };\n renderGutter('padding-left', horizontalGutter);\n renderGutter('padding-right', horizontalGutter);\n renderGutter('padding-top', verticalGutter);\n renderGutter('padding-bottom', verticalGutter);\n });\n }\n }\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzColDirective_Factory(t) {\n return new (t || NzColDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(NzRowDirective, 9), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i4.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzColDirective,\n selectors: [[\"\", \"nz-col\", \"\"], [\"nz-col\"], [\"nz-form-control\"], [\"nz-form-label\"]],\n hostVars: 2,\n hostBindings: function NzColDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"flex\", ctx.hostFlexStyle);\n }\n },\n inputs: {\n nzFlex: \"nzFlex\",\n nzSpan: \"nzSpan\",\n nzOrder: \"nzOrder\",\n nzOffset: \"nzOffset\",\n nzPush: \"nzPush\",\n nzPull: \"nzPull\",\n nzXs: \"nzXs\",\n nzSm: \"nzSm\",\n nzMd: \"nzMd\",\n nzLg: \"nzLg\",\n nzXl: \"nzXl\",\n nzXXl: \"nzXXl\"\n },\n exportAs: [\"nzCol\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzColDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-col],nz-col,nz-form-control,nz-form-label',\n exportAs: 'nzCol',\n host: {\n '[style.flex]': 'hostFlexStyle'\n },\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: NzRowDirective,\n decorators: [{\n type: Optional\n }, {\n type: Host\n }]\n }, {\n type: i0.Renderer2\n }, {\n type: i4.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n nzFlex: [{\n type: Input\n }],\n nzSpan: [{\n type: Input\n }],\n nzOrder: [{\n type: Input\n }],\n nzOffset: [{\n type: Input\n }],\n nzPush: [{\n type: Input\n }],\n nzPull: [{\n type: Input\n }],\n nzXs: [{\n type: Input\n }],\n nzSm: [{\n type: Input\n }],\n nzMd: [{\n type: Input\n }],\n nzLg: [{\n type: Input\n }],\n nzXl: [{\n type: Input\n }],\n nzXXl: [{\n type: Input\n }]\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 NzGridModule {\n static {\n this.ɵfac = function NzGridModule_Factory(t) {\n return new (t || NzGridModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzGridModule,\n imports: [NzColDirective, NzRowDirective],\n exports: [NzColDirective, NzRowDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzGridModule, [{\n type: NgModule,\n args: [{\n imports: [NzColDirective, NzRowDirective],\n exports: [NzColDirective, NzRowDirective]\n }]\n }], null, null);\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 { NzColDirective, NzGridModule, NzRowDirective };\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-T745QDCV.js b/.angular/cache/17.0.7/vite/deps/chunk-T745QDCV.js
deleted file mode 100644
index 95ce01b..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-T745QDCV.js
+++ /dev/null
@@ -1,14666 +0,0 @@
-import {
- isNotNil,
- warn
-} from "./chunk-M5GY4FCO.js";
-import {
- FormStyle,
- TranslationWidth,
- formatDate,
- getLocaleDayPeriods
-} from "./chunk-OSQBUYO6.js";
-import {
- BehaviorSubject,
- Inject,
- Injectable,
- InjectionToken,
- NgModule,
- Optional,
- Pipe,
- inject,
- makeEnvironmentProviders,
- setClassMetadata,
- ɵɵdefineInjectable,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdefinePipe,
- ɵɵdirectiveInject,
- ɵɵinject
-} from "./chunk-FGESKT7O.js";
-import {
- __spreadValues
-} from "./chunk-HSNDBVJ3.js";
-
-// node_modules/@babel/runtime/helpers/esm/typeof.js
-function _typeof(o) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
- return typeof o2;
- } : function(o2) {
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
- }, _typeof(o);
-}
-
-// node_modules/date-fns/esm/_lib/toInteger/index.js
-function toInteger(dirtyNumber) {
- if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
- return NaN;
- }
- var number = Number(dirtyNumber);
- if (isNaN(number)) {
- return number;
- }
- return number < 0 ? Math.ceil(number) : Math.floor(number);
-}
-
-// node_modules/date-fns/esm/_lib/requiredArgs/index.js
-function requiredArgs(required, args) {
- if (args.length < required) {
- throw new TypeError(required + " argument" + (required > 1 ? "s" : "") + " required, but only " + args.length + " present");
- }
-}
-
-// node_modules/date-fns/esm/toDate/index.js
-function toDate(argument) {
- requiredArgs(1, arguments);
- var argStr = Object.prototype.toString.call(argument);
- if (argument instanceof Date || _typeof(argument) === "object" && argStr === "[object Date]") {
- return new Date(argument.getTime());
- } else if (typeof argument === "number" || argStr === "[object Number]") {
- return new Date(argument);
- } else {
- if ((typeof argument === "string" || argStr === "[object String]") && typeof console !== "undefined") {
- console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments");
- console.warn(new Error().stack);
- }
- return /* @__PURE__ */ new Date(NaN);
- }
-}
-
-// node_modules/date-fns/esm/addMilliseconds/index.js
-function addMilliseconds(dirtyDate, dirtyAmount) {
- requiredArgs(2, arguments);
- var timestamp = toDate(dirtyDate).getTime();
- var amount = toInteger(dirtyAmount);
- return new Date(timestamp + amount);
-}
-
-// node_modules/date-fns/esm/_lib/defaultOptions/index.js
-var defaultOptions = {};
-function getDefaultOptions() {
- return defaultOptions;
-}
-
-// node_modules/date-fns/esm/startOfWeek/index.js
-function startOfWeek(dirtyDate, options) {
- var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
- requiredArgs(1, arguments);
- var defaultOptions2 = getDefaultOptions();
- var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
- throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
- }
- var date = toDate(dirtyDate);
- var day = date.getDay();
- var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
- date.setDate(date.getDate() - diff);
- date.setHours(0, 0, 0, 0);
- return date;
-}
-
-// node_modules/date-fns/esm/startOfISOWeek/index.js
-function startOfISOWeek(dirtyDate) {
- requiredArgs(1, arguments);
- return startOfWeek(dirtyDate, {
- weekStartsOn: 1
- });
-}
-
-// node_modules/date-fns/esm/getISOWeekYear/index.js
-function getISOWeekYear(dirtyDate) {
- requiredArgs(1, arguments);
- var date = toDate(dirtyDate);
- var year = date.getFullYear();
- var fourthOfJanuaryOfNextYear = /* @__PURE__ */ new Date(0);
- fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);
- fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);
- var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);
- var fourthOfJanuaryOfThisYear = /* @__PURE__ */ new Date(0);
- fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);
- fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);
- var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);
- if (date.getTime() >= startOfNextYear.getTime()) {
- return year + 1;
- } else if (date.getTime() >= startOfThisYear.getTime()) {
- return year;
- } else {
- return year - 1;
- }
-}
-
-// node_modules/date-fns/esm/startOfISOWeekYear/index.js
-function startOfISOWeekYear(dirtyDate) {
- requiredArgs(1, arguments);
- var year = getISOWeekYear(dirtyDate);
- var fourthOfJanuary = /* @__PURE__ */ new Date(0);
- fourthOfJanuary.setFullYear(year, 0, 4);
- fourthOfJanuary.setHours(0, 0, 0, 0);
- var date = startOfISOWeek(fourthOfJanuary);
- return date;
-}
-
-// node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js
-function getTimezoneOffsetInMilliseconds(date) {
- var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
- utcDate.setUTCFullYear(date.getFullYear());
- return date.getTime() - utcDate.getTime();
-}
-
-// node_modules/date-fns/esm/constants/index.js
-var daysInYear = 365.2425;
-var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1e3;
-var millisecondsInMinute = 6e4;
-var millisecondsInHour = 36e5;
-var millisecondsInSecond = 1e3;
-var minTime = -maxTime;
-var secondsInHour = 3600;
-var secondsInDay = secondsInHour * 24;
-var secondsInWeek = secondsInDay * 7;
-var secondsInYear = secondsInDay * daysInYear;
-var secondsInMonth = secondsInYear / 12;
-var secondsInQuarter = secondsInMonth * 3;
-
-// node_modules/date-fns/esm/isDate/index.js
-function isDate(value) {
- requiredArgs(1, arguments);
- return value instanceof Date || _typeof(value) === "object" && Object.prototype.toString.call(value) === "[object Date]";
-}
-
-// node_modules/date-fns/esm/isValid/index.js
-function isValid(dirtyDate) {
- requiredArgs(1, arguments);
- if (!isDate(dirtyDate) && typeof dirtyDate !== "number") {
- return false;
- }
- var date = toDate(dirtyDate);
- return !isNaN(Number(date));
-}
-
-// node_modules/date-fns/esm/subMilliseconds/index.js
-function subMilliseconds(dirtyDate, dirtyAmount) {
- requiredArgs(2, arguments);
- var amount = toInteger(dirtyAmount);
- return addMilliseconds(dirtyDate, -amount);
-}
-
-// node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js
-var MILLISECONDS_IN_DAY = 864e5;
-function getUTCDayOfYear(dirtyDate) {
- requiredArgs(1, arguments);
- var date = toDate(dirtyDate);
- var timestamp = date.getTime();
- date.setUTCMonth(0, 1);
- date.setUTCHours(0, 0, 0, 0);
- var startOfYearTimestamp = date.getTime();
- var difference = timestamp - startOfYearTimestamp;
- return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;
-}
-
-// node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js
-function startOfUTCISOWeek(dirtyDate) {
- requiredArgs(1, arguments);
- var weekStartsOn = 1;
- var date = toDate(dirtyDate);
- var day = date.getUTCDay();
- var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
- date.setUTCDate(date.getUTCDate() - diff);
- date.setUTCHours(0, 0, 0, 0);
- return date;
-}
-
-// node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js
-function getUTCISOWeekYear(dirtyDate) {
- requiredArgs(1, arguments);
- var date = toDate(dirtyDate);
- var year = date.getUTCFullYear();
- var fourthOfJanuaryOfNextYear = /* @__PURE__ */ new Date(0);
- fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);
- fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);
- var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);
- var fourthOfJanuaryOfThisYear = /* @__PURE__ */ new Date(0);
- fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);
- fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);
- var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);
- if (date.getTime() >= startOfNextYear.getTime()) {
- return year + 1;
- } else if (date.getTime() >= startOfThisYear.getTime()) {
- return year;
- } else {
- return year - 1;
- }
-}
-
-// node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js
-function startOfUTCISOWeekYear(dirtyDate) {
- requiredArgs(1, arguments);
- var year = getUTCISOWeekYear(dirtyDate);
- var fourthOfJanuary = /* @__PURE__ */ new Date(0);
- fourthOfJanuary.setUTCFullYear(year, 0, 4);
- fourthOfJanuary.setUTCHours(0, 0, 0, 0);
- var date = startOfUTCISOWeek(fourthOfJanuary);
- return date;
-}
-
-// node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js
-var MILLISECONDS_IN_WEEK = 6048e5;
-function getUTCISOWeek(dirtyDate) {
- requiredArgs(1, arguments);
- var date = toDate(dirtyDate);
- var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();
- return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;
-}
-
-// node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js
-function startOfUTCWeek(dirtyDate, options) {
- var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
- requiredArgs(1, arguments);
- var defaultOptions2 = getDefaultOptions();
- var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
- throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
- }
- var date = toDate(dirtyDate);
- var day = date.getUTCDay();
- var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
- date.setUTCDate(date.getUTCDate() - diff);
- date.setUTCHours(0, 0, 0, 0);
- return date;
-}
-
-// node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js
-function getUTCWeekYear(dirtyDate, options) {
- var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
- requiredArgs(1, arguments);
- var date = toDate(dirtyDate);
- var year = date.getUTCFullYear();
- var defaultOptions2 = getDefaultOptions();
- var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);
- if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
- throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");
- }
- var firstWeekOfNextYear = /* @__PURE__ */ new Date(0);
- firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);
- firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);
- var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);
- var firstWeekOfThisYear = /* @__PURE__ */ new Date(0);
- firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);
- firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);
- var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);
- if (date.getTime() >= startOfNextYear.getTime()) {
- return year + 1;
- } else if (date.getTime() >= startOfThisYear.getTime()) {
- return year;
- } else {
- return year - 1;
- }
-}
-
-// node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js
-function startOfUTCWeekYear(dirtyDate, options) {
- var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
- requiredArgs(1, arguments);
- var defaultOptions2 = getDefaultOptions();
- var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);
- var year = getUTCWeekYear(dirtyDate, options);
- var firstWeek = /* @__PURE__ */ new Date(0);
- firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);
- firstWeek.setUTCHours(0, 0, 0, 0);
- var date = startOfUTCWeek(firstWeek, options);
- return date;
-}
-
-// node_modules/date-fns/esm/_lib/getUTCWeek/index.js
-var MILLISECONDS_IN_WEEK2 = 6048e5;
-function getUTCWeek(dirtyDate, options) {
- requiredArgs(1, arguments);
- var date = toDate(dirtyDate);
- var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();
- return Math.round(diff / MILLISECONDS_IN_WEEK2) + 1;
-}
-
-// node_modules/date-fns/esm/_lib/addLeadingZeros/index.js
-function addLeadingZeros(number, targetLength) {
- var sign = number < 0 ? "-" : "";
- var output = Math.abs(number).toString();
- while (output.length < targetLength) {
- output = "0" + output;
- }
- return sign + output;
-}
-
-// node_modules/date-fns/esm/_lib/format/lightFormatters/index.js
-var formatters = {
- // Year
- y: function y(date, token) {
- var signedYear = date.getUTCFullYear();
- var year = signedYear > 0 ? signedYear : 1 - signedYear;
- return addLeadingZeros(token === "yy" ? year % 100 : year, token.length);
- },
- // Month
- M: function M(date, token) {
- var month = date.getUTCMonth();
- return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2);
- },
- // Day of the month
- d: function d(date, token) {
- return addLeadingZeros(date.getUTCDate(), token.length);
- },
- // AM or PM
- a: function a(date, token) {
- var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? "pm" : "am";
- switch (token) {
- case "a":
- case "aa":
- return dayPeriodEnumValue.toUpperCase();
- case "aaa":
- return dayPeriodEnumValue;
- case "aaaaa":
- return dayPeriodEnumValue[0];
- case "aaaa":
- default:
- return dayPeriodEnumValue === "am" ? "a.m." : "p.m.";
- }
- },
- // Hour [1-12]
- h: function h(date, token) {
- return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);
- },
- // Hour [0-23]
- H: function H(date, token) {
- return addLeadingZeros(date.getUTCHours(), token.length);
- },
- // Minute
- m: function m(date, token) {
- return addLeadingZeros(date.getUTCMinutes(), token.length);
- },
- // Second
- s: function s(date, token) {
- return addLeadingZeros(date.getUTCSeconds(), token.length);
- },
- // Fraction of second
- S: function S(date, token) {
- var numberOfDigits = token.length;
- var milliseconds2 = date.getUTCMilliseconds();
- var fractionalSeconds = Math.floor(milliseconds2 * Math.pow(10, numberOfDigits - 3));
- return addLeadingZeros(fractionalSeconds, token.length);
- }
-};
-var lightFormatters_default = formatters;
-
-// node_modules/date-fns/esm/_lib/format/formatters/index.js
-var dayPeriodEnum = {
- am: "am",
- pm: "pm",
- midnight: "midnight",
- noon: "noon",
- morning: "morning",
- afternoon: "afternoon",
- evening: "evening",
- night: "night"
-};
-var formatters2 = {
- // Era
- G: function G(date, token, localize2) {
- var era = date.getUTCFullYear() > 0 ? 1 : 0;
- switch (token) {
- case "G":
- case "GG":
- case "GGG":
- return localize2.era(era, {
- width: "abbreviated"
- });
- case "GGGGG":
- return localize2.era(era, {
- width: "narrow"
- });
- case "GGGG":
- default:
- return localize2.era(era, {
- width: "wide"
- });
- }
- },
- // Year
- y: function y2(date, token, localize2) {
- if (token === "yo") {
- var signedYear = date.getUTCFullYear();
- var year = signedYear > 0 ? signedYear : 1 - signedYear;
- return localize2.ordinalNumber(year, {
- unit: "year"
- });
- }
- return lightFormatters_default.y(date, token);
- },
- // Local week-numbering year
- Y: function Y(date, token, localize2, options) {
- var signedWeekYear = getUTCWeekYear(date, options);
- var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;
- if (token === "YY") {
- var twoDigitYear = weekYear % 100;
- return addLeadingZeros(twoDigitYear, 2);
- }
- if (token === "Yo") {
- return localize2.ordinalNumber(weekYear, {
- unit: "year"
- });
- }
- return addLeadingZeros(weekYear, token.length);
- },
- // ISO week-numbering year
- R: function R(date, token) {
- var isoWeekYear = getUTCISOWeekYear(date);
- return addLeadingZeros(isoWeekYear, token.length);
- },
- // Extended year. This is a single number designating the year of this calendar system.
- // The main difference between `y` and `u` localizers are B.C. years:
- // | Year | `y` | `u` |
- // |------|-----|-----|
- // | AC 1 | 1 | 1 |
- // | BC 1 | 1 | 0 |
- // | BC 2 | 2 | -1 |
- // Also `yy` always returns the last two digits of a year,
- // while `uu` pads single digit years to 2 characters and returns other years unchanged.
- u: function u(date, token) {
- var year = date.getUTCFullYear();
- return addLeadingZeros(year, token.length);
- },
- // Quarter
- Q: function Q(date, token, localize2) {
- var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
- switch (token) {
- case "Q":
- return String(quarter);
- case "QQ":
- return addLeadingZeros(quarter, 2);
- case "Qo":
- return localize2.ordinalNumber(quarter, {
- unit: "quarter"
- });
- case "QQQ":
- return localize2.quarter(quarter, {
- width: "abbreviated",
- context: "formatting"
- });
- case "QQQQQ":
- return localize2.quarter(quarter, {
- width: "narrow",
- context: "formatting"
- });
- case "QQQQ":
- default:
- return localize2.quarter(quarter, {
- width: "wide",
- context: "formatting"
- });
- }
- },
- // Stand-alone quarter
- q: function q(date, token, localize2) {
- var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
- switch (token) {
- case "q":
- return String(quarter);
- case "qq":
- return addLeadingZeros(quarter, 2);
- case "qo":
- return localize2.ordinalNumber(quarter, {
- unit: "quarter"
- });
- case "qqq":
- return localize2.quarter(quarter, {
- width: "abbreviated",
- context: "standalone"
- });
- case "qqqqq":
- return localize2.quarter(quarter, {
- width: "narrow",
- context: "standalone"
- });
- case "qqqq":
- default:
- return localize2.quarter(quarter, {
- width: "wide",
- context: "standalone"
- });
- }
- },
- // Month
- M: function M2(date, token, localize2) {
- var month = date.getUTCMonth();
- switch (token) {
- case "M":
- case "MM":
- return lightFormatters_default.M(date, token);
- case "Mo":
- return localize2.ordinalNumber(month + 1, {
- unit: "month"
- });
- case "MMM":
- return localize2.month(month, {
- width: "abbreviated",
- context: "formatting"
- });
- case "MMMMM":
- return localize2.month(month, {
- width: "narrow",
- context: "formatting"
- });
- case "MMMM":
- default:
- return localize2.month(month, {
- width: "wide",
- context: "formatting"
- });
- }
- },
- // Stand-alone month
- L: function L(date, token, localize2) {
- var month = date.getUTCMonth();
- switch (token) {
- case "L":
- return String(month + 1);
- case "LL":
- return addLeadingZeros(month + 1, 2);
- case "Lo":
- return localize2.ordinalNumber(month + 1, {
- unit: "month"
- });
- case "LLL":
- return localize2.month(month, {
- width: "abbreviated",
- context: "standalone"
- });
- case "LLLLL":
- return localize2.month(month, {
- width: "narrow",
- context: "standalone"
- });
- case "LLLL":
- default:
- return localize2.month(month, {
- width: "wide",
- context: "standalone"
- });
- }
- },
- // Local week of year
- w: function w(date, token, localize2, options) {
- var week = getUTCWeek(date, options);
- if (token === "wo") {
- return localize2.ordinalNumber(week, {
- unit: "week"
- });
- }
- return addLeadingZeros(week, token.length);
- },
- // ISO week of year
- I: function I(date, token, localize2) {
- var isoWeek = getUTCISOWeek(date);
- if (token === "Io") {
- return localize2.ordinalNumber(isoWeek, {
- unit: "week"
- });
- }
- return addLeadingZeros(isoWeek, token.length);
- },
- // Day of the month
- d: function d2(date, token, localize2) {
- if (token === "do") {
- return localize2.ordinalNumber(date.getUTCDate(), {
- unit: "date"
- });
- }
- return lightFormatters_default.d(date, token);
- },
- // Day of year
- D: function D(date, token, localize2) {
- var dayOfYear = getUTCDayOfYear(date);
- if (token === "Do") {
- return localize2.ordinalNumber(dayOfYear, {
- unit: "dayOfYear"
- });
- }
- return addLeadingZeros(dayOfYear, token.length);
- },
- // Day of week
- E: function E(date, token, localize2) {
- var dayOfWeek = date.getUTCDay();
- switch (token) {
- case "E":
- case "EE":
- case "EEE":
- return localize2.day(dayOfWeek, {
- width: "abbreviated",
- context: "formatting"
- });
- case "EEEEE":
- return localize2.day(dayOfWeek, {
- width: "narrow",
- context: "formatting"
- });
- case "EEEEEE":
- return localize2.day(dayOfWeek, {
- width: "short",
- context: "formatting"
- });
- case "EEEE":
- default:
- return localize2.day(dayOfWeek, {
- width: "wide",
- context: "formatting"
- });
- }
- },
- // Local day of week
- e: function e(date, token, localize2, options) {
- var dayOfWeek = date.getUTCDay();
- var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
- switch (token) {
- case "e":
- return String(localDayOfWeek);
- case "ee":
- return addLeadingZeros(localDayOfWeek, 2);
- case "eo":
- return localize2.ordinalNumber(localDayOfWeek, {
- unit: "day"
- });
- case "eee":
- return localize2.day(dayOfWeek, {
- width: "abbreviated",
- context: "formatting"
- });
- case "eeeee":
- return localize2.day(dayOfWeek, {
- width: "narrow",
- context: "formatting"
- });
- case "eeeeee":
- return localize2.day(dayOfWeek, {
- width: "short",
- context: "formatting"
- });
- case "eeee":
- default:
- return localize2.day(dayOfWeek, {
- width: "wide",
- context: "formatting"
- });
- }
- },
- // Stand-alone local day of week
- c: function c(date, token, localize2, options) {
- var dayOfWeek = date.getUTCDay();
- var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
- switch (token) {
- case "c":
- return String(localDayOfWeek);
- case "cc":
- return addLeadingZeros(localDayOfWeek, token.length);
- case "co":
- return localize2.ordinalNumber(localDayOfWeek, {
- unit: "day"
- });
- case "ccc":
- return localize2.day(dayOfWeek, {
- width: "abbreviated",
- context: "standalone"
- });
- case "ccccc":
- return localize2.day(dayOfWeek, {
- width: "narrow",
- context: "standalone"
- });
- case "cccccc":
- return localize2.day(dayOfWeek, {
- width: "short",
- context: "standalone"
- });
- case "cccc":
- default:
- return localize2.day(dayOfWeek, {
- width: "wide",
- context: "standalone"
- });
- }
- },
- // ISO day of week
- i: function i(date, token, localize2) {
- var dayOfWeek = date.getUTCDay();
- var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
- switch (token) {
- case "i":
- return String(isoDayOfWeek);
- case "ii":
- return addLeadingZeros(isoDayOfWeek, token.length);
- case "io":
- return localize2.ordinalNumber(isoDayOfWeek, {
- unit: "day"
- });
- case "iii":
- return localize2.day(dayOfWeek, {
- width: "abbreviated",
- context: "formatting"
- });
- case "iiiii":
- return localize2.day(dayOfWeek, {
- width: "narrow",
- context: "formatting"
- });
- case "iiiiii":
- return localize2.day(dayOfWeek, {
- width: "short",
- context: "formatting"
- });
- case "iiii":
- default:
- return localize2.day(dayOfWeek, {
- width: "wide",
- context: "formatting"
- });
- }
- },
- // AM or PM
- a: function a2(date, token, localize2) {
- var hours = date.getUTCHours();
- var dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
- switch (token) {
- case "a":
- case "aa":
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "abbreviated",
- context: "formatting"
- });
- case "aaa":
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "abbreviated",
- context: "formatting"
- }).toLowerCase();
- case "aaaaa":
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "narrow",
- context: "formatting"
- });
- case "aaaa":
- default:
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "wide",
- context: "formatting"
- });
- }
- },
- // AM, PM, midnight, noon
- b: function b(date, token, localize2) {
- var hours = date.getUTCHours();
- var dayPeriodEnumValue;
- if (hours === 12) {
- dayPeriodEnumValue = dayPeriodEnum.noon;
- } else if (hours === 0) {
- dayPeriodEnumValue = dayPeriodEnum.midnight;
- } else {
- dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
- }
- switch (token) {
- case "b":
- case "bb":
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "abbreviated",
- context: "formatting"
- });
- case "bbb":
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "abbreviated",
- context: "formatting"
- }).toLowerCase();
- case "bbbbb":
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "narrow",
- context: "formatting"
- });
- case "bbbb":
- default:
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "wide",
- context: "formatting"
- });
- }
- },
- // in the morning, in the afternoon, in the evening, at night
- B: function B(date, token, localize2) {
- var hours = date.getUTCHours();
- var dayPeriodEnumValue;
- if (hours >= 17) {
- dayPeriodEnumValue = dayPeriodEnum.evening;
- } else if (hours >= 12) {
- dayPeriodEnumValue = dayPeriodEnum.afternoon;
- } else if (hours >= 4) {
- dayPeriodEnumValue = dayPeriodEnum.morning;
- } else {
- dayPeriodEnumValue = dayPeriodEnum.night;
- }
- switch (token) {
- case "B":
- case "BB":
- case "BBB":
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "abbreviated",
- context: "formatting"
- });
- case "BBBBB":
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "narrow",
- context: "formatting"
- });
- case "BBBB":
- default:
- return localize2.dayPeriod(dayPeriodEnumValue, {
- width: "wide",
- context: "formatting"
- });
- }
- },
- // Hour [1-12]
- h: function h2(date, token, localize2) {
- if (token === "ho") {
- var hours = date.getUTCHours() % 12;
- if (hours === 0)
- hours = 12;
- return localize2.ordinalNumber(hours, {
- unit: "hour"
- });
- }
- return lightFormatters_default.h(date, token);
- },
- // Hour [0-23]
- H: function H2(date, token, localize2) {
- if (token === "Ho") {
- return localize2.ordinalNumber(date.getUTCHours(), {
- unit: "hour"
- });
- }
- return lightFormatters_default.H(date, token);
- },
- // Hour [0-11]
- K: function K(date, token, localize2) {
- var hours = date.getUTCHours() % 12;
- if (token === "Ko") {
- return localize2.ordinalNumber(hours, {
- unit: "hour"
- });
- }
- return addLeadingZeros(hours, token.length);
- },
- // Hour [1-24]
- k: function k(date, token, localize2) {
- var hours = date.getUTCHours();
- if (hours === 0)
- hours = 24;
- if (token === "ko") {
- return localize2.ordinalNumber(hours, {
- unit: "hour"
- });
- }
- return addLeadingZeros(hours, token.length);
- },
- // Minute
- m: function m2(date, token, localize2) {
- if (token === "mo") {
- return localize2.ordinalNumber(date.getUTCMinutes(), {
- unit: "minute"
- });
- }
- return lightFormatters_default.m(date, token);
- },
- // Second
- s: function s2(date, token, localize2) {
- if (token === "so") {
- return localize2.ordinalNumber(date.getUTCSeconds(), {
- unit: "second"
- });
- }
- return lightFormatters_default.s(date, token);
- },
- // Fraction of second
- S: function S2(date, token) {
- return lightFormatters_default.S(date, token);
- },
- // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
- X: function X(date, token, _localize, options) {
- var originalDate = options._originalDate || date;
- var timezoneOffset = originalDate.getTimezoneOffset();
- if (timezoneOffset === 0) {
- return "Z";
- }
- switch (token) {
- case "X":
- return formatTimezoneWithOptionalMinutes(timezoneOffset);
- case "XXXX":
- case "XX":
- return formatTimezone(timezoneOffset);
- case "XXXXX":
- case "XXX":
- default:
- return formatTimezone(timezoneOffset, ":");
- }
- },
- // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
- x: function x(date, token, _localize, options) {
- var originalDate = options._originalDate || date;
- var timezoneOffset = originalDate.getTimezoneOffset();
- switch (token) {
- case "x":
- return formatTimezoneWithOptionalMinutes(timezoneOffset);
- case "xxxx":
- case "xx":
- return formatTimezone(timezoneOffset);
- case "xxxxx":
- case "xxx":
- default:
- return formatTimezone(timezoneOffset, ":");
- }
- },
- // Timezone (GMT)
- O: function O(date, token, _localize, options) {
- var originalDate = options._originalDate || date;
- var timezoneOffset = originalDate.getTimezoneOffset();
- switch (token) {
- case "O":
- case "OO":
- case "OOO":
- return "GMT" + formatTimezoneShort(timezoneOffset, ":");
- case "OOOO":
- default:
- return "GMT" + formatTimezone(timezoneOffset, ":");
- }
- },
- // Timezone (specific non-location)
- z: function z(date, token, _localize, options) {
- var originalDate = options._originalDate || date;
- var timezoneOffset = originalDate.getTimezoneOffset();
- switch (token) {
- case "z":
- case "zz":
- case "zzz":
- return "GMT" + formatTimezoneShort(timezoneOffset, ":");
- case "zzzz":
- default:
- return "GMT" + formatTimezone(timezoneOffset, ":");
- }
- },
- // Seconds timestamp
- t: function t(date, token, _localize, options) {
- var originalDate = options._originalDate || date;
- var timestamp = Math.floor(originalDate.getTime() / 1e3);
- return addLeadingZeros(timestamp, token.length);
- },
- // Milliseconds timestamp
- T: function T(date, token, _localize, options) {
- var originalDate = options._originalDate || date;
- var timestamp = originalDate.getTime();
- return addLeadingZeros(timestamp, token.length);
- }
-};
-function formatTimezoneShort(offset, dirtyDelimiter) {
- var sign = offset > 0 ? "-" : "+";
- var absOffset = Math.abs(offset);
- var hours = Math.floor(absOffset / 60);
- var minutes = absOffset % 60;
- if (minutes === 0) {
- return sign + String(hours);
- }
- var delimiter = dirtyDelimiter || "";
- return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);
-}
-function formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {
- if (offset % 60 === 0) {
- var sign = offset > 0 ? "-" : "+";
- return sign + addLeadingZeros(Math.abs(offset) / 60, 2);
- }
- return formatTimezone(offset, dirtyDelimiter);
-}
-function formatTimezone(offset, dirtyDelimiter) {
- var delimiter = dirtyDelimiter || "";
- var sign = offset > 0 ? "-" : "+";
- var absOffset = Math.abs(offset);
- var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);
- var minutes = addLeadingZeros(absOffset % 60, 2);
- return sign + hours + delimiter + minutes;
-}
-var formatters_default = formatters2;
-
-// node_modules/date-fns/esm/_lib/format/longFormatters/index.js
-var dateLongFormatter = function dateLongFormatter2(pattern, formatLong2) {
- switch (pattern) {
- case "P":
- return formatLong2.date({
- width: "short"
- });
- case "PP":
- return formatLong2.date({
- width: "medium"
- });
- case "PPP":
- return formatLong2.date({
- width: "long"
- });
- case "PPPP":
- default:
- return formatLong2.date({
- width: "full"
- });
- }
-};
-var timeLongFormatter = function timeLongFormatter2(pattern, formatLong2) {
- switch (pattern) {
- case "p":
- return formatLong2.time({
- width: "short"
- });
- case "pp":
- return formatLong2.time({
- width: "medium"
- });
- case "ppp":
- return formatLong2.time({
- width: "long"
- });
- case "pppp":
- default:
- return formatLong2.time({
- width: "full"
- });
- }
-};
-var dateTimeLongFormatter = function dateTimeLongFormatter2(pattern, formatLong2) {
- var matchResult = pattern.match(/(P+)(p+)?/) || [];
- var datePattern = matchResult[1];
- var timePattern = matchResult[2];
- if (!timePattern) {
- return dateLongFormatter(pattern, formatLong2);
- }
- var dateTimeFormat;
- switch (datePattern) {
- case "P":
- dateTimeFormat = formatLong2.dateTime({
- width: "short"
- });
- break;
- case "PP":
- dateTimeFormat = formatLong2.dateTime({
- width: "medium"
- });
- break;
- case "PPP":
- dateTimeFormat = formatLong2.dateTime({
- width: "long"
- });
- break;
- case "PPPP":
- default:
- dateTimeFormat = formatLong2.dateTime({
- width: "full"
- });
- break;
- }
- return dateTimeFormat.replace("{{date}}", dateLongFormatter(datePattern, formatLong2)).replace("{{time}}", timeLongFormatter(timePattern, formatLong2));
-};
-var longFormatters = {
- p: timeLongFormatter,
- P: dateTimeLongFormatter
-};
-var longFormatters_default = longFormatters;
-
-// node_modules/date-fns/esm/_lib/protectedTokens/index.js
-var protectedDayOfYearTokens = ["D", "DD"];
-var protectedWeekYearTokens = ["YY", "YYYY"];
-function isProtectedDayOfYearToken(token) {
- return protectedDayOfYearTokens.indexOf(token) !== -1;
-}
-function isProtectedWeekYearToken(token) {
- return protectedWeekYearTokens.indexOf(token) !== -1;
-}
-function throwProtectedError(token, format2, input) {
- if (token === "YYYY") {
- throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format2, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
- } else if (token === "YY") {
- throw new RangeError("Use `yy` instead of `YY` (in `".concat(format2, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
- } else if (token === "D") {
- throw new RangeError("Use `d` instead of `D` (in `".concat(format2, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
- } else if (token === "DD") {
- throw new RangeError("Use `dd` instead of `DD` (in `".concat(format2, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
- }
-}
-
-// node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js
-var formatDistanceLocale = {
- lessThanXSeconds: {
- one: "less than a second",
- other: "less than {{count}} seconds"
- },
- xSeconds: {
- one: "1 second",
- other: "{{count}} seconds"
- },
- halfAMinute: "half a minute",
- lessThanXMinutes: {
- one: "less than a minute",
- other: "less than {{count}} minutes"
- },
- xMinutes: {
- one: "1 minute",
- other: "{{count}} minutes"
- },
- aboutXHours: {
- one: "about 1 hour",
- other: "about {{count}} hours"
- },
- xHours: {
- one: "1 hour",
- other: "{{count}} hours"
- },
- xDays: {
- one: "1 day",
- other: "{{count}} days"
- },
- aboutXWeeks: {
- one: "about 1 week",
- other: "about {{count}} weeks"
- },
- xWeeks: {
- one: "1 week",
- other: "{{count}} weeks"
- },
- aboutXMonths: {
- one: "about 1 month",
- other: "about {{count}} months"
- },
- xMonths: {
- one: "1 month",
- other: "{{count}} months"
- },
- aboutXYears: {
- one: "about 1 year",
- other: "about {{count}} years"
- },
- xYears: {
- one: "1 year",
- other: "{{count}} years"
- },
- overXYears: {
- one: "over 1 year",
- other: "over {{count}} years"
- },
- almostXYears: {
- one: "almost 1 year",
- other: "almost {{count}} years"
- }
-};
-var formatDistance = function formatDistance2(token, count, options) {
- var result;
- var tokenValue = formatDistanceLocale[token];
- if (typeof tokenValue === "string") {
- result = tokenValue;
- } else if (count === 1) {
- result = tokenValue.one;
- } else {
- result = tokenValue.other.replace("{{count}}", count.toString());
- }
- if (options !== null && options !== void 0 && options.addSuffix) {
- if (options.comparison && options.comparison > 0) {
- return "in " + result;
- } else {
- return result + " ago";
- }
- }
- return result;
-};
-var formatDistance_default = formatDistance;
-
-// node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js
-function buildFormatLongFn(args) {
- return function() {
- var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
- var width = options.width ? String(options.width) : args.defaultWidth;
- var format2 = args.formats[width] || args.formats[args.defaultWidth];
- return format2;
- };
-}
-
-// node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js
-var dateFormats = {
- full: "EEEE, MMMM do, y",
- long: "MMMM do, y",
- medium: "MMM d, y",
- short: "MM/dd/yyyy"
-};
-var timeFormats = {
- full: "h:mm:ss a zzzz",
- long: "h:mm:ss a z",
- medium: "h:mm:ss a",
- short: "h:mm a"
-};
-var dateTimeFormats = {
- full: "{{date}} 'at' {{time}}",
- long: "{{date}} 'at' {{time}}",
- medium: "{{date}}, {{time}}",
- short: "{{date}}, {{time}}"
-};
-var formatLong = {
- date: buildFormatLongFn({
- formats: dateFormats,
- defaultWidth: "full"
- }),
- time: buildFormatLongFn({
- formats: timeFormats,
- defaultWidth: "full"
- }),
- dateTime: buildFormatLongFn({
- formats: dateTimeFormats,
- defaultWidth: "full"
- })
-};
-var formatLong_default = formatLong;
-
-// node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js
-var formatRelativeLocale = {
- lastWeek: "'last' eeee 'at' p",
- yesterday: "'yesterday at' p",
- today: "'today at' p",
- tomorrow: "'tomorrow at' p",
- nextWeek: "eeee 'at' p",
- other: "P"
-};
-var formatRelative = function formatRelative2(token, _date, _baseDate, _options) {
- return formatRelativeLocale[token];
-};
-var formatRelative_default = formatRelative;
-
-// node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js
-function buildLocalizeFn(args) {
- return function(dirtyIndex, options) {
- var context = options !== null && options !== void 0 && options.context ? String(options.context) : "standalone";
- var valuesArray;
- if (context === "formatting" && args.formattingValues) {
- var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
- var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;
- valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
- } else {
- var _defaultWidth = args.defaultWidth;
- var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;
- valuesArray = args.values[_width] || args.values[_defaultWidth];
- }
- var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;
- return valuesArray[index];
- };
-}
-
-// node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js
-var eraValues = {
- narrow: ["B", "A"],
- abbreviated: ["BC", "AD"],
- wide: ["Before Christ", "Anno Domini"]
-};
-var quarterValues = {
- narrow: ["1", "2", "3", "4"],
- abbreviated: ["Q1", "Q2", "Q3", "Q4"],
- wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"]
-};
-var monthValues = {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- abbreviated: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- wide: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
-};
-var dayValues = {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
- abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- wide: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
-};
-var dayPeriodValues = {
- narrow: {
- am: "a",
- pm: "p",
- midnight: "mi",
- noon: "n",
- morning: "morning",
- afternoon: "afternoon",
- evening: "evening",
- night: "night"
- },
- abbreviated: {
- am: "AM",
- pm: "PM",
- midnight: "midnight",
- noon: "noon",
- morning: "morning",
- afternoon: "afternoon",
- evening: "evening",
- night: "night"
- },
- wide: {
- am: "a.m.",
- pm: "p.m.",
- midnight: "midnight",
- noon: "noon",
- morning: "morning",
- afternoon: "afternoon",
- evening: "evening",
- night: "night"
- }
-};
-var formattingDayPeriodValues = {
- narrow: {
- am: "a",
- pm: "p",
- midnight: "mi",
- noon: "n",
- morning: "in the morning",
- afternoon: "in the afternoon",
- evening: "in the evening",
- night: "at night"
- },
- abbreviated: {
- am: "AM",
- pm: "PM",
- midnight: "midnight",
- noon: "noon",
- morning: "in the morning",
- afternoon: "in the afternoon",
- evening: "in the evening",
- night: "at night"
- },
- wide: {
- am: "a.m.",
- pm: "p.m.",
- midnight: "midnight",
- noon: "noon",
- morning: "in the morning",
- afternoon: "in the afternoon",
- evening: "in the evening",
- night: "at night"
- }
-};
-var ordinalNumber = function ordinalNumber2(dirtyNumber, _options) {
- var number = Number(dirtyNumber);
- var rem100 = number % 100;
- if (rem100 > 20 || rem100 < 10) {
- switch (rem100 % 10) {
- case 1:
- return number + "st";
- case 2:
- return number + "nd";
- case 3:
- return number + "rd";
- }
- }
- return number + "th";
-};
-var localize = {
- ordinalNumber,
- era: buildLocalizeFn({
- values: eraValues,
- defaultWidth: "wide"
- }),
- quarter: buildLocalizeFn({
- values: quarterValues,
- defaultWidth: "wide",
- argumentCallback: function argumentCallback(quarter) {
- return quarter - 1;
- }
- }),
- month: buildLocalizeFn({
- values: monthValues,
- defaultWidth: "wide"
- }),
- day: buildLocalizeFn({
- values: dayValues,
- defaultWidth: "wide"
- }),
- dayPeriod: buildLocalizeFn({
- values: dayPeriodValues,
- defaultWidth: "wide",
- formattingValues: formattingDayPeriodValues,
- defaultFormattingWidth: "wide"
- })
-};
-var localize_default = localize;
-
-// node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js
-function buildMatchFn(args) {
- return function(string) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- var width = options.width;
- var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
- var matchResult = string.match(matchPattern);
- if (!matchResult) {
- return null;
- }
- var matchedString = matchResult[0];
- var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
- var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function(pattern) {
- return pattern.test(matchedString);
- }) : findKey(parsePatterns, function(pattern) {
- return pattern.test(matchedString);
- });
- var value;
- value = args.valueCallback ? args.valueCallback(key) : key;
- value = options.valueCallback ? options.valueCallback(value) : value;
- var rest = string.slice(matchedString.length);
- return {
- value,
- rest
- };
- };
-}
-function findKey(object, predicate) {
- for (var key in object) {
- if (object.hasOwnProperty(key) && predicate(object[key])) {
- return key;
- }
- }
- return void 0;
-}
-function findIndex(array, predicate) {
- for (var key = 0; key < array.length; key++) {
- if (predicate(array[key])) {
- return key;
- }
- }
- return void 0;
-}
-
-// node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js
-function buildMatchPatternFn(args) {
- return function(string) {
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- var matchResult = string.match(args.matchPattern);
- if (!matchResult)
- return null;
- var matchedString = matchResult[0];
- var parseResult = string.match(args.parsePattern);
- if (!parseResult)
- return null;
- var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
- value = options.valueCallback ? options.valueCallback(value) : value;
- var rest = string.slice(matchedString.length);
- return {
- value,
- rest
- };
- };
-}
-
-// node_modules/date-fns/esm/locale/en-US/_lib/match/index.js
-var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
-var parseOrdinalNumberPattern = /\d+/i;
-var matchEraPatterns = {
- narrow: /^(b|a)/i,
- abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
- wide: /^(before christ|before common era|anno domini|common era)/i
-};
-var parseEraPatterns = {
- any: [/^b/i, /^(a|c)/i]
-};
-var matchQuarterPatterns = {
- narrow: /^[1234]/i,
- abbreviated: /^q[1234]/i,
- wide: /^[1234](th|st|nd|rd)? quarter/i
-};
-var parseQuarterPatterns = {
- any: [/1/i, /2/i, /3/i, /4/i]
-};
-var matchMonthPatterns = {
- narrow: /^[jfmasond]/i,
- abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
- wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
-};
-var parseMonthPatterns = {
- narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],
- any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]
-};
-var matchDayPatterns = {
- narrow: /^[smtwf]/i,
- short: /^(su|mo|tu|we|th|fr|sa)/i,
- abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
- wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
-};
-var parseDayPatterns = {
- narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
- any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
-};
-var matchDayPeriodPatterns = {
- narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
- any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
-};
-var parseDayPeriodPatterns = {
- any: {
- am: /^a/i,
- pm: /^p/i,
- midnight: /^mi/i,
- noon: /^no/i,
- morning: /morning/i,
- afternoon: /afternoon/i,
- evening: /evening/i,
- night: /night/i
- }
-};
-var match = {
- ordinalNumber: buildMatchPatternFn({
- matchPattern: matchOrdinalNumberPattern,
- parsePattern: parseOrdinalNumberPattern,
- valueCallback: function valueCallback(value) {
- return parseInt(value, 10);
- }
- }),
- era: buildMatchFn({
- matchPatterns: matchEraPatterns,
- defaultMatchWidth: "wide",
- parsePatterns: parseEraPatterns,
- defaultParseWidth: "any"
- }),
- quarter: buildMatchFn({
- matchPatterns: matchQuarterPatterns,
- defaultMatchWidth: "wide",
- parsePatterns: parseQuarterPatterns,
- defaultParseWidth: "any",
- valueCallback: function valueCallback2(index) {
- return index + 1;
- }
- }),
- month: buildMatchFn({
- matchPatterns: matchMonthPatterns,
- defaultMatchWidth: "wide",
- parsePatterns: parseMonthPatterns,
- defaultParseWidth: "any"
- }),
- day: buildMatchFn({
- matchPatterns: matchDayPatterns,
- defaultMatchWidth: "wide",
- parsePatterns: parseDayPatterns,
- defaultParseWidth: "any"
- }),
- dayPeriod: buildMatchFn({
- matchPatterns: matchDayPeriodPatterns,
- defaultMatchWidth: "any",
- parsePatterns: parseDayPeriodPatterns,
- defaultParseWidth: "any"
- })
-};
-var match_default = match;
-
-// node_modules/date-fns/esm/locale/en-US/index.js
-var locale = {
- code: "en-US",
- formatDistance: formatDistance_default,
- formatLong: formatLong_default,
- formatRelative: formatRelative_default,
- localize: localize_default,
- match: match_default,
- options: {
- weekStartsOn: 0,
- firstWeekContainsDate: 1
- }
-};
-var en_US_default = locale;
-
-// node_modules/date-fns/esm/_lib/defaultLocale/index.js
-var defaultLocale_default = en_US_default;
-
-// node_modules/date-fns/esm/format/index.js
-var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
-var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
-var escapedStringRegExp = /^'([^]*?)'?$/;
-var doubleQuoteRegExp = /''/g;
-var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
-function format(dirtyDate, dirtyFormatStr, options) {
- var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;
- requiredArgs(2, arguments);
- var formatStr = String(dirtyFormatStr);
- var defaultOptions2 = getDefaultOptions();
- var locale2 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions2.locale) !== null && _ref !== void 0 ? _ref : defaultLocale_default;
- var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions2.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);
- if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
- throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");
- }
- var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions2.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions2.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
- throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
- }
- if (!locale2.localize) {
- throw new RangeError("locale must contain localize property");
- }
- if (!locale2.formatLong) {
- throw new RangeError("locale must contain formatLong property");
- }
- var originalDate = toDate(dirtyDate);
- if (!isValid(originalDate)) {
- throw new RangeError("Invalid time value");
- }
- var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);
- var utcDate = subMilliseconds(originalDate, timezoneOffset);
- var formatterOptions = {
- firstWeekContainsDate,
- weekStartsOn,
- locale: locale2,
- _originalDate: originalDate
- };
- var result = formatStr.match(longFormattingTokensRegExp).map(function(substring) {
- var firstCharacter = substring[0];
- if (firstCharacter === "p" || firstCharacter === "P") {
- var longFormatter = longFormatters_default[firstCharacter];
- return longFormatter(substring, locale2.formatLong);
- }
- return substring;
- }).join("").match(formattingTokensRegExp).map(function(substring) {
- if (substring === "''") {
- return "'";
- }
- var firstCharacter = substring[0];
- if (firstCharacter === "'") {
- return cleanEscapedString(substring);
- }
- var formatter = formatters_default[firstCharacter];
- if (formatter) {
- if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {
- throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));
- }
- if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {
- throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));
- }
- return formatter(utcDate, substring, locale2.localize, formatterOptions);
- }
- if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
- throw new RangeError("Format string contains an unescaped latin alphabet character `" + firstCharacter + "`");
- }
- return substring;
- }).join("");
- return result;
-}
-function cleanEscapedString(input) {
- var matched = input.match(escapedStringRegExp);
- if (!matched) {
- return input;
- }
- return matched[1].replace(doubleQuoteRegExp, "'");
-}
-
-// node_modules/date-fns/esm/_lib/assign/index.js
-function assign(target, object) {
- if (target == null) {
- throw new TypeError("assign requires that input parameter not be null or undefined");
- }
- for (var property in object) {
- if (Object.prototype.hasOwnProperty.call(object, property)) {
- ;
- target[property] = object[property];
- }
- }
- return target;
-}
-
-// node_modules/date-fns/esm/formatDistanceStrict/index.js
-var MILLISECONDS_IN_MINUTE = 1e3 * 60;
-var MINUTES_IN_DAY = 60 * 24;
-var MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;
-var MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;
-
-// node_modules/date-fns/esm/getISOWeek/index.js
-var MILLISECONDS_IN_WEEK3 = 6048e5;
-function getISOWeek(dirtyDate) {
- requiredArgs(1, arguments);
- var date = toDate(dirtyDate);
- var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();
- return Math.round(diff / MILLISECONDS_IN_WEEK3) + 1;
-}
-
-// node_modules/date-fns/esm/getOverlappingDaysInIntervals/index.js
-var MILLISECONDS_IN_DAY2 = 24 * 60 * 60 * 1e3;
-
-// node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
-function _arrayLikeToArray(arr, len) {
- if (len == null || len > arr.length)
- len = arr.length;
- for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++)
- arr2[i2] = arr[i2];
- return arr2;
-}
-
-// node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
-function _unsupportedIterableToArray(o, minLen) {
- if (!o)
- return;
- if (typeof o === "string")
- return _arrayLikeToArray(o, minLen);
- var n = Object.prototype.toString.call(o).slice(8, -1);
- if (n === "Object" && o.constructor)
- n = o.constructor.name;
- if (n === "Map" || n === "Set")
- return Array.from(o);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
- return _arrayLikeToArray(o, minLen);
-}
-
-// node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js
-function _createForOfIteratorHelper(o, allowArrayLike) {
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
- if (!it) {
- if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
- if (it)
- o = it;
- var i2 = 0;
- var F = function F2() {
- };
- return {
- s: F,
- n: function n() {
- if (i2 >= o.length)
- return {
- done: true
- };
- return {
- done: false,
- value: o[i2++]
- };
- },
- e: function e2(_e) {
- throw _e;
- },
- f: F
- };
- }
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- var normalCompletion = true, didErr = false, err;
- return {
- s: function s3() {
- it = it.call(o);
- },
- n: function n() {
- var step = it.next();
- normalCompletion = step.done;
- return step;
- },
- e: function e2(_e2) {
- didErr = true;
- err = _e2;
- },
- f: function f() {
- try {
- if (!normalCompletion && it["return"] != null)
- it["return"]();
- } finally {
- if (didErr)
- throw err;
- }
- }
- };
-}
-
-// node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
-function _assertThisInitialized(self) {
- if (self === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self;
-}
-
-// node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
-function _setPrototypeOf(o, p) {
- _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf2(o2, p2) {
- o2.__proto__ = p2;
- return o2;
- };
- return _setPrototypeOf(o, p);
-}
-
-// node_modules/@babel/runtime/helpers/esm/inherits.js
-function _inherits(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, {
- constructor: {
- value: subClass,
- writable: true,
- configurable: true
- }
- });
- Object.defineProperty(subClass, "prototype", {
- writable: false
- });
- if (superClass)
- _setPrototypeOf(subClass, superClass);
-}
-
-// node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
-function _getPrototypeOf(o) {
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o2) {
- return o2.__proto__ || Object.getPrototypeOf(o2);
- };
- return _getPrototypeOf(o);
-}
-
-// node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
-function _isNativeReflectConstruct() {
- if (typeof Reflect === "undefined" || !Reflect.construct)
- return false;
- if (Reflect.construct.sham)
- return false;
- if (typeof Proxy === "function")
- return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
- }));
- return true;
- } catch (e2) {
- return false;
- }
-}
-
-// node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
-function _possibleConstructorReturn(self, call) {
- if (call && (_typeof(call) === "object" || typeof call === "function")) {
- return call;
- } else if (call !== void 0) {
- throw new TypeError("Derived constructors may only return object or undefined");
- }
- return _assertThisInitialized(self);
-}
-
-// node_modules/@babel/runtime/helpers/esm/createSuper.js
-function _createSuper(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct();
- return function _createSuperInternal() {
- var Super = _getPrototypeOf(Derived), result;
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return _possibleConstructorReturn(this, result);
- };
-}
-
-// node_modules/@babel/runtime/helpers/esm/classCallCheck.js
-function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-
-// node_modules/@babel/runtime/helpers/esm/toPrimitive.js
-function _toPrimitive(input, hint) {
- if (_typeof(input) !== "object" || input === null)
- return input;
- var prim = input[Symbol.toPrimitive];
- if (prim !== void 0) {
- var res = prim.call(input, hint || "default");
- if (_typeof(res) !== "object")
- return res;
- throw new TypeError("@@toPrimitive must return a primitive value.");
- }
- return (hint === "string" ? String : Number)(input);
-}
-
-// node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
-function _toPropertyKey(arg) {
- var key = _toPrimitive(arg, "string");
- return _typeof(key) === "symbol" ? key : String(key);
-}
-
-// node_modules/@babel/runtime/helpers/esm/createClass.js
-function _defineProperties(target, props) {
- for (var i2 = 0; i2 < props.length; i2++) {
- var descriptor = props[i2];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
- }
-}
-function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps)
- _defineProperties(Constructor.prototype, protoProps);
- if (staticProps)
- _defineProperties(Constructor, staticProps);
- Object.defineProperty(Constructor, "prototype", {
- writable: false
- });
- return Constructor;
-}
-
-// node_modules/@babel/runtime/helpers/esm/defineProperty.js
-function _defineProperty(obj, key, value) {
- key = _toPropertyKey(key);
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-
-// node_modules/date-fns/esm/parse/_lib/Setter.js
-var TIMEZONE_UNIT_PRIORITY = 10;
-var Setter = function() {
- function Setter2() {
- _classCallCheck(this, Setter2);
- _defineProperty(this, "priority", void 0);
- _defineProperty(this, "subPriority", 0);
- }
- _createClass(Setter2, [{
- key: "validate",
- value: function validate(_utcDate, _options) {
- return true;
- }
- }]);
- return Setter2;
-}();
-var ValueSetter = function(_Setter) {
- _inherits(ValueSetter2, _Setter);
- var _super = _createSuper(ValueSetter2);
- function ValueSetter2(value, validateValue, setValue, priority, subPriority) {
- var _this;
- _classCallCheck(this, ValueSetter2);
- _this = _super.call(this);
- _this.value = value;
- _this.validateValue = validateValue;
- _this.setValue = setValue;
- _this.priority = priority;
- if (subPriority) {
- _this.subPriority = subPriority;
- }
- return _this;
- }
- _createClass(ValueSetter2, [{
- key: "validate",
- value: function validate(utcDate, options) {
- return this.validateValue(utcDate, this.value, options);
- }
- }, {
- key: "set",
- value: function set2(utcDate, flags, options) {
- return this.setValue(utcDate, flags, this.value, options);
- }
- }]);
- return ValueSetter2;
-}(Setter);
-var DateToSystemTimezoneSetter = function(_Setter2) {
- _inherits(DateToSystemTimezoneSetter2, _Setter2);
- var _super2 = _createSuper(DateToSystemTimezoneSetter2);
- function DateToSystemTimezoneSetter2() {
- var _this2;
- _classCallCheck(this, DateToSystemTimezoneSetter2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this2 = _super2.call.apply(_super2, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this2), "priority", TIMEZONE_UNIT_PRIORITY);
- _defineProperty(_assertThisInitialized(_this2), "subPriority", -1);
- return _this2;
- }
- _createClass(DateToSystemTimezoneSetter2, [{
- key: "set",
- value: function set2(date, flags) {
- if (flags.timestampIsSet) {
- return date;
- }
- var convertedDate = /* @__PURE__ */ new Date(0);
- convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());
- convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());
- return convertedDate;
- }
- }]);
- return DateToSystemTimezoneSetter2;
-}(Setter);
-
-// node_modules/date-fns/esm/parse/_lib/Parser.js
-var Parser = function() {
- function Parser2() {
- _classCallCheck(this, Parser2);
- _defineProperty(this, "incompatibleTokens", void 0);
- _defineProperty(this, "priority", void 0);
- _defineProperty(this, "subPriority", void 0);
- }
- _createClass(Parser2, [{
- key: "run",
- value: function run(dateString, token, match2, options) {
- var result = this.parse(dateString, token, match2, options);
- if (!result) {
- return null;
- }
- return {
- setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),
- rest: result.rest
- };
- }
- }, {
- key: "validate",
- value: function validate(_utcDate, _value, _options) {
- return true;
- }
- }]);
- return Parser2;
-}();
-
-// node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js
-var EraParser = function(_Parser) {
- _inherits(EraParser2, _Parser);
- var _super = _createSuper(EraParser2);
- function EraParser2() {
- var _this;
- _classCallCheck(this, EraParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 140);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["R", "u", "t", "T"]);
- return _this;
- }
- _createClass(EraParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "G":
- case "GG":
- case "GGG":
- return match2.era(dateString, {
- width: "abbreviated"
- }) || match2.era(dateString, {
- width: "narrow"
- });
- case "GGGGG":
- return match2.era(dateString, {
- width: "narrow"
- });
- case "GGGG":
- default:
- return match2.era(dateString, {
- width: "wide"
- }) || match2.era(dateString, {
- width: "abbreviated"
- }) || match2.era(dateString, {
- width: "narrow"
- });
- }
- }
- }, {
- key: "set",
- value: function set2(date, flags, value) {
- flags.era = value;
- date.setUTCFullYear(value, 0, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return EraParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/constants.js
-var numericPatterns = {
- month: /^(1[0-2]|0?\d)/,
- // 0 to 12
- date: /^(3[0-1]|[0-2]?\d)/,
- // 0 to 31
- dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,
- // 0 to 366
- week: /^(5[0-3]|[0-4]?\d)/,
- // 0 to 53
- hour23h: /^(2[0-3]|[0-1]?\d)/,
- // 0 to 23
- hour24h: /^(2[0-4]|[0-1]?\d)/,
- // 0 to 24
- hour11h: /^(1[0-1]|0?\d)/,
- // 0 to 11
- hour12h: /^(1[0-2]|0?\d)/,
- // 0 to 12
- minute: /^[0-5]?\d/,
- // 0 to 59
- second: /^[0-5]?\d/,
- // 0 to 59
- singleDigit: /^\d/,
- // 0 to 9
- twoDigits: /^\d{1,2}/,
- // 0 to 99
- threeDigits: /^\d{1,3}/,
- // 0 to 999
- fourDigits: /^\d{1,4}/,
- // 0 to 9999
- anyDigitsSigned: /^-?\d+/,
- singleDigitSigned: /^-?\d/,
- // 0 to 9, -0 to -9
- twoDigitsSigned: /^-?\d{1,2}/,
- // 0 to 99, -0 to -99
- threeDigitsSigned: /^-?\d{1,3}/,
- // 0 to 999, -0 to -999
- fourDigitsSigned: /^-?\d{1,4}/
- // 0 to 9999, -0 to -9999
-};
-var timezonePatterns = {
- basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/,
- basic: /^([+-])(\d{2})(\d{2})|Z/,
- basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,
- extended: /^([+-])(\d{2}):(\d{2})|Z/,
- extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/
-};
-
-// node_modules/date-fns/esm/parse/_lib/utils.js
-function mapValue(parseFnResult, mapFn) {
- if (!parseFnResult) {
- return parseFnResult;
- }
- return {
- value: mapFn(parseFnResult.value),
- rest: parseFnResult.rest
- };
-}
-function parseNumericPattern(pattern, dateString) {
- var matchResult = dateString.match(pattern);
- if (!matchResult) {
- return null;
- }
- return {
- value: parseInt(matchResult[0], 10),
- rest: dateString.slice(matchResult[0].length)
- };
-}
-function parseTimezonePattern(pattern, dateString) {
- var matchResult = dateString.match(pattern);
- if (!matchResult) {
- return null;
- }
- if (matchResult[0] === "Z") {
- return {
- value: 0,
- rest: dateString.slice(1)
- };
- }
- var sign = matchResult[1] === "+" ? 1 : -1;
- var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;
- var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;
- var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;
- return {
- value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),
- rest: dateString.slice(matchResult[0].length)
- };
-}
-function parseAnyDigitsSigned(dateString) {
- return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);
-}
-function parseNDigits(n, dateString) {
- switch (n) {
- case 1:
- return parseNumericPattern(numericPatterns.singleDigit, dateString);
- case 2:
- return parseNumericPattern(numericPatterns.twoDigits, dateString);
- case 3:
- return parseNumericPattern(numericPatterns.threeDigits, dateString);
- case 4:
- return parseNumericPattern(numericPatterns.fourDigits, dateString);
- default:
- return parseNumericPattern(new RegExp("^\\d{1," + n + "}"), dateString);
- }
-}
-function parseNDigitsSigned(n, dateString) {
- switch (n) {
- case 1:
- return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);
- case 2:
- return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);
- case 3:
- return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);
- case 4:
- return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);
- default:
- return parseNumericPattern(new RegExp("^-?\\d{1," + n + "}"), dateString);
- }
-}
-function dayPeriodEnumToHours(dayPeriod) {
- switch (dayPeriod) {
- case "morning":
- return 4;
- case "evening":
- return 17;
- case "pm":
- case "noon":
- case "afternoon":
- return 12;
- case "am":
- case "midnight":
- case "night":
- default:
- return 0;
- }
-}
-function normalizeTwoDigitYear(twoDigitYear, currentYear) {
- var isCommonEra = currentYear > 0;
- var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;
- var result;
- if (absCurrentYear <= 50) {
- result = twoDigitYear || 100;
- } else {
- var rangeEnd = absCurrentYear + 50;
- var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;
- var isPreviousCentury = twoDigitYear >= rangeEnd % 100;
- result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);
- }
- return isCommonEra ? result : 1 - result;
-}
-function isLeapYearIndex(year) {
- return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
-}
-
-// node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js
-var YearParser = function(_Parser) {
- _inherits(YearParser2, _Parser);
- var _super = _createSuper(YearParser2);
- function YearParser2() {
- var _this;
- _classCallCheck(this, YearParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 130);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(YearParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- var valueCallback3 = function valueCallback4(year) {
- return {
- year,
- isTwoDigitYear: token === "yy"
- };
- };
- switch (token) {
- case "y":
- return mapValue(parseNDigits(4, dateString), valueCallback3);
- case "yo":
- return mapValue(match2.ordinalNumber(dateString, {
- unit: "year"
- }), valueCallback3);
- default:
- return mapValue(parseNDigits(token.length, dateString), valueCallback3);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value.isTwoDigitYear || value.year > 0;
- }
- }, {
- key: "set",
- value: function set2(date, flags, value) {
- var currentYear = date.getUTCFullYear();
- if (value.isTwoDigitYear) {
- var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);
- date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- var year = !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year;
- date.setUTCFullYear(year, 0, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return YearParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js
-var LocalWeekYearParser = function(_Parser) {
- _inherits(LocalWeekYearParser2, _Parser);
- var _super = _createSuper(LocalWeekYearParser2);
- function LocalWeekYearParser2() {
- var _this;
- _classCallCheck(this, LocalWeekYearParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 130);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "R", "u", "Q", "q", "M", "L", "I", "d", "D", "i", "t", "T"]);
- return _this;
- }
- _createClass(LocalWeekYearParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- var valueCallback3 = function valueCallback4(year) {
- return {
- year,
- isTwoDigitYear: token === "YY"
- };
- };
- switch (token) {
- case "Y":
- return mapValue(parseNDigits(4, dateString), valueCallback3);
- case "Yo":
- return mapValue(match2.ordinalNumber(dateString, {
- unit: "year"
- }), valueCallback3);
- default:
- return mapValue(parseNDigits(token.length, dateString), valueCallback3);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value.isTwoDigitYear || value.year > 0;
- }
- }, {
- key: "set",
- value: function set2(date, flags, value, options) {
- var currentYear = getUTCWeekYear(date, options);
- if (value.isTwoDigitYear) {
- var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);
- date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);
- date.setUTCHours(0, 0, 0, 0);
- return startOfUTCWeek(date, options);
- }
- var year = !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year;
- date.setUTCFullYear(year, 0, options.firstWeekContainsDate);
- date.setUTCHours(0, 0, 0, 0);
- return startOfUTCWeek(date, options);
- }
- }]);
- return LocalWeekYearParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js
-var ISOWeekYearParser = function(_Parser) {
- _inherits(ISOWeekYearParser2, _Parser);
- var _super = _createSuper(ISOWeekYearParser2);
- function ISOWeekYearParser2() {
- var _this;
- _classCallCheck(this, ISOWeekYearParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 130);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["G", "y", "Y", "u", "Q", "q", "M", "L", "w", "d", "D", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(ISOWeekYearParser2, [{
- key: "parse",
- value: function parse2(dateString, token) {
- if (token === "R") {
- return parseNDigitsSigned(4, dateString);
- }
- return parseNDigitsSigned(token.length, dateString);
- }
- }, {
- key: "set",
- value: function set2(_date, _flags, value) {
- var firstWeekOfYear = /* @__PURE__ */ new Date(0);
- firstWeekOfYear.setUTCFullYear(value, 0, 4);
- firstWeekOfYear.setUTCHours(0, 0, 0, 0);
- return startOfUTCISOWeek(firstWeekOfYear);
- }
- }]);
- return ISOWeekYearParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js
-var ExtendedYearParser = function(_Parser) {
- _inherits(ExtendedYearParser2, _Parser);
- var _super = _createSuper(ExtendedYearParser2);
- function ExtendedYearParser2() {
- var _this;
- _classCallCheck(this, ExtendedYearParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 130);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(ExtendedYearParser2, [{
- key: "parse",
- value: function parse2(dateString, token) {
- if (token === "u") {
- return parseNDigitsSigned(4, dateString);
- }
- return parseNDigitsSigned(token.length, dateString);
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCFullYear(value, 0, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return ExtendedYearParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js
-var QuarterParser = function(_Parser) {
- _inherits(QuarterParser2, _Parser);
- var _super = _createSuper(QuarterParser2);
- function QuarterParser2() {
- var _this;
- _classCallCheck(this, QuarterParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 120);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(QuarterParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "Q":
- case "QQ":
- return parseNDigits(token.length, dateString);
- case "Qo":
- return match2.ordinalNumber(dateString, {
- unit: "quarter"
- });
- case "QQQ":
- return match2.quarter(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.quarter(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "QQQQQ":
- return match2.quarter(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "QQQQ":
- default:
- return match2.quarter(dateString, {
- width: "wide",
- context: "formatting"
- }) || match2.quarter(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.quarter(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 4;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCMonth((value - 1) * 3, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return QuarterParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js
-var StandAloneQuarterParser = function(_Parser) {
- _inherits(StandAloneQuarterParser2, _Parser);
- var _super = _createSuper(StandAloneQuarterParser2);
- function StandAloneQuarterParser2() {
- var _this;
- _classCallCheck(this, StandAloneQuarterParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 120);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "Q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(StandAloneQuarterParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "q":
- case "qq":
- return parseNDigits(token.length, dateString);
- case "qo":
- return match2.ordinalNumber(dateString, {
- unit: "quarter"
- });
- case "qqq":
- return match2.quarter(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match2.quarter(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "qqqqq":
- return match2.quarter(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "qqqq":
- default:
- return match2.quarter(dateString, {
- width: "wide",
- context: "standalone"
- }) || match2.quarter(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match2.quarter(dateString, {
- width: "narrow",
- context: "standalone"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 4;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCMonth((value - 1) * 3, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return StandAloneQuarterParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js
-var MonthParser = function(_Parser) {
- _inherits(MonthParser2, _Parser);
- var _super = _createSuper(MonthParser2);
- function MonthParser2() {
- var _this;
- _classCallCheck(this, MonthParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "L", "w", "I", "D", "i", "e", "c", "t", "T"]);
- _defineProperty(_assertThisInitialized(_this), "priority", 110);
- return _this;
- }
- _createClass(MonthParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- var valueCallback3 = function valueCallback4(value) {
- return value - 1;
- };
- switch (token) {
- case "M":
- return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback3);
- case "MM":
- return mapValue(parseNDigits(2, dateString), valueCallback3);
- case "Mo":
- return mapValue(match2.ordinalNumber(dateString, {
- unit: "month"
- }), valueCallback3);
- case "MMM":
- return match2.month(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.month(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "MMMMM":
- return match2.month(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "MMMM":
- default:
- return match2.month(dateString, {
- width: "wide",
- context: "formatting"
- }) || match2.month(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.month(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 11;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCMonth(value, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return MonthParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js
-var StandAloneMonthParser = function(_Parser) {
- _inherits(StandAloneMonthParser2, _Parser);
- var _super = _createSuper(StandAloneMonthParser2);
- function StandAloneMonthParser2() {
- var _this;
- _classCallCheck(this, StandAloneMonthParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 110);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "M", "w", "I", "D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(StandAloneMonthParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- var valueCallback3 = function valueCallback4(value) {
- return value - 1;
- };
- switch (token) {
- case "L":
- return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback3);
- case "LL":
- return mapValue(parseNDigits(2, dateString), valueCallback3);
- case "Lo":
- return mapValue(match2.ordinalNumber(dateString, {
- unit: "month"
- }), valueCallback3);
- case "LLL":
- return match2.month(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match2.month(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "LLLLL":
- return match2.month(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "LLLL":
- default:
- return match2.month(dateString, {
- width: "wide",
- context: "standalone"
- }) || match2.month(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match2.month(dateString, {
- width: "narrow",
- context: "standalone"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 11;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCMonth(value, 1);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return StandAloneMonthParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/_lib/setUTCWeek/index.js
-function setUTCWeek(dirtyDate, dirtyWeek, options) {
- requiredArgs(2, arguments);
- var date = toDate(dirtyDate);
- var week = toInteger(dirtyWeek);
- var diff = getUTCWeek(date, options) - week;
- date.setUTCDate(date.getUTCDate() - diff * 7);
- return date;
-}
-
-// node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js
-var LocalWeekParser = function(_Parser) {
- _inherits(LocalWeekParser2, _Parser);
- var _super = _createSuper(LocalWeekParser2);
- function LocalWeekParser2() {
- var _this;
- _classCallCheck(this, LocalWeekParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 100);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "i", "t", "T"]);
- return _this;
- }
- _createClass(LocalWeekParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "w":
- return parseNumericPattern(numericPatterns.week, dateString);
- case "wo":
- return match2.ordinalNumber(dateString, {
- unit: "week"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 53;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value, options) {
- return startOfUTCWeek(setUTCWeek(date, value, options), options);
- }
- }]);
- return LocalWeekParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js
-function setUTCISOWeek(dirtyDate, dirtyISOWeek) {
- requiredArgs(2, arguments);
- var date = toDate(dirtyDate);
- var isoWeek = toInteger(dirtyISOWeek);
- var diff = getUTCISOWeek(date) - isoWeek;
- date.setUTCDate(date.getUTCDate() - diff * 7);
- return date;
-}
-
-// node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js
-var ISOWeekParser = function(_Parser) {
- _inherits(ISOWeekParser2, _Parser);
- var _super = _createSuper(ISOWeekParser2);
- function ISOWeekParser2() {
- var _this;
- _classCallCheck(this, ISOWeekParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 100);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(ISOWeekParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "I":
- return parseNumericPattern(numericPatterns.week, dateString);
- case "Io":
- return match2.ordinalNumber(dateString, {
- unit: "week"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 53;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- return startOfUTCISOWeek(setUTCISOWeek(date, value));
- }
- }]);
- return ISOWeekParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js
-var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-var DateParser = function(_Parser) {
- _inherits(DateParser2, _Parser);
- var _super = _createSuper(DateParser2);
- function DateParser2() {
- var _this;
- _classCallCheck(this, DateParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 90);
- _defineProperty(_assertThisInitialized(_this), "subPriority", 1);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "w", "I", "D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(DateParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "d":
- return parseNumericPattern(numericPatterns.date, dateString);
- case "do":
- return match2.ordinalNumber(dateString, {
- unit: "date"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(date, value) {
- var year = date.getUTCFullYear();
- var isLeapYear2 = isLeapYearIndex(year);
- var month = date.getUTCMonth();
- if (isLeapYear2) {
- return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];
- } else {
- return value >= 1 && value <= DAYS_IN_MONTH[month];
- }
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCDate(value);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return DateParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js
-var DayOfYearParser = function(_Parser) {
- _inherits(DayOfYearParser2, _Parser);
- var _super = _createSuper(DayOfYearParser2);
- function DayOfYearParser2() {
- var _this;
- _classCallCheck(this, DayOfYearParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 90);
- _defineProperty(_assertThisInitialized(_this), "subpriority", 1);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["Y", "R", "q", "Q", "M", "L", "w", "I", "d", "E", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(DayOfYearParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "D":
- case "DD":
- return parseNumericPattern(numericPatterns.dayOfYear, dateString);
- case "Do":
- return match2.ordinalNumber(dateString, {
- unit: "date"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(date, value) {
- var year = date.getUTCFullYear();
- var isLeapYear2 = isLeapYearIndex(year);
- if (isLeapYear2) {
- return value >= 1 && value <= 366;
- } else {
- return value >= 1 && value <= 365;
- }
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCMonth(0, value);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return DayOfYearParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/_lib/setUTCDay/index.js
-function setUTCDay(dirtyDate, dirtyDay, options) {
- var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
- requiredArgs(2, arguments);
- var defaultOptions2 = getDefaultOptions();
- var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
- throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
- }
- var date = toDate(dirtyDate);
- var day = toInteger(dirtyDay);
- var currentDay = date.getUTCDay();
- var remainder = day % 7;
- var dayIndex = (remainder + 7) % 7;
- var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;
- date.setUTCDate(date.getUTCDate() + diff);
- return date;
-}
-
-// node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js
-var DayParser = function(_Parser) {
- _inherits(DayParser2, _Parser);
- var _super = _createSuper(DayParser2);
- function DayParser2() {
- var _this;
- _classCallCheck(this, DayParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 90);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["D", "i", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(DayParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "E":
- case "EE":
- case "EEE":
- return match2.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "EEEEE":
- return match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "EEEEEE":
- return match2.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "EEEE":
- default:
- return match2.day(dateString, {
- width: "wide",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 6;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value, options) {
- date = setUTCDay(date, value, options);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return DayParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js
-var LocalDayParser = function(_Parser) {
- _inherits(LocalDayParser2, _Parser);
- var _super = _createSuper(LocalDayParser2);
- function LocalDayParser2() {
- var _this;
- _classCallCheck(this, LocalDayParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 90);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "E", "i", "c", "t", "T"]);
- return _this;
- }
- _createClass(LocalDayParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2, options) {
- var valueCallback3 = function valueCallback4(value) {
- var wholeWeekDays = Math.floor((value - 1) / 7) * 7;
- return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;
- };
- switch (token) {
- case "e":
- case "ee":
- return mapValue(parseNDigits(token.length, dateString), valueCallback3);
- case "eo":
- return mapValue(match2.ordinalNumber(dateString, {
- unit: "day"
- }), valueCallback3);
- case "eee":
- return match2.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "eeeee":
- return match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "eeeeee":
- return match2.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "eeee":
- default:
- return match2.day(dateString, {
- width: "wide",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 6;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value, options) {
- date = setUTCDay(date, value, options);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return LocalDayParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js
-var StandAloneLocalDayParser = function(_Parser) {
- _inherits(StandAloneLocalDayParser2, _Parser);
- var _super = _createSuper(StandAloneLocalDayParser2);
- function StandAloneLocalDayParser2() {
- var _this;
- _classCallCheck(this, StandAloneLocalDayParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 90);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "E", "i", "e", "t", "T"]);
- return _this;
- }
- _createClass(StandAloneLocalDayParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2, options) {
- var valueCallback3 = function valueCallback4(value) {
- var wholeWeekDays = Math.floor((value - 1) / 7) * 7;
- return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;
- };
- switch (token) {
- case "c":
- case "cc":
- return mapValue(parseNDigits(token.length, dateString), valueCallback3);
- case "co":
- return mapValue(match2.ordinalNumber(dateString, {
- unit: "day"
- }), valueCallback3);
- case "ccc":
- return match2.day(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match2.day(dateString, {
- width: "short",
- context: "standalone"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "ccccc":
- return match2.day(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "cccccc":
- return match2.day(dateString, {
- width: "short",
- context: "standalone"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "standalone"
- });
- case "cccc":
- default:
- return match2.day(dateString, {
- width: "wide",
- context: "standalone"
- }) || match2.day(dateString, {
- width: "abbreviated",
- context: "standalone"
- }) || match2.day(dateString, {
- width: "short",
- context: "standalone"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "standalone"
- });
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 6;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value, options) {
- date = setUTCDay(date, value, options);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return StandAloneLocalDayParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/_lib/setUTCISODay/index.js
-function setUTCISODay(dirtyDate, dirtyDay) {
- requiredArgs(2, arguments);
- var day = toInteger(dirtyDay);
- if (day % 7 === 0) {
- day = day - 7;
- }
- var weekStartsOn = 1;
- var date = toDate(dirtyDate);
- var currentDay = date.getUTCDay();
- var remainder = day % 7;
- var dayIndex = (remainder + 7) % 7;
- var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;
- date.setUTCDate(date.getUTCDate() + diff);
- return date;
-}
-
-// node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js
-var ISODayParser = function(_Parser) {
- _inherits(ISODayParser2, _Parser);
- var _super = _createSuper(ISODayParser2);
- function ISODayParser2() {
- var _this;
- _classCallCheck(this, ISODayParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 90);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "E", "e", "c", "t", "T"]);
- return _this;
- }
- _createClass(ISODayParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- var valueCallback3 = function valueCallback4(value) {
- if (value === 0) {
- return 7;
- }
- return value;
- };
- switch (token) {
- case "i":
- case "ii":
- return parseNDigits(token.length, dateString);
- case "io":
- return match2.ordinalNumber(dateString, {
- unit: "day"
- });
- case "iii":
- return mapValue(match2.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- }), valueCallback3);
- case "iiiii":
- return mapValue(match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- }), valueCallback3);
- case "iiiiii":
- return mapValue(match2.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- }), valueCallback3);
- case "iiii":
- default:
- return mapValue(match2.day(dateString, {
- width: "wide",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "short",
- context: "formatting"
- }) || match2.day(dateString, {
- width: "narrow",
- context: "formatting"
- }), valueCallback3);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 7;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date = setUTCISODay(date, value);
- date.setUTCHours(0, 0, 0, 0);
- return date;
- }
- }]);
- return ISODayParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js
-var AMPMParser = function(_Parser) {
- _inherits(AMPMParser2, _Parser);
- var _super = _createSuper(AMPMParser2);
- function AMPMParser2() {
- var _this;
- _classCallCheck(this, AMPMParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 80);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["b", "B", "H", "k", "t", "T"]);
- return _this;
- }
- _createClass(AMPMParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "a":
- case "aa":
- case "aaa":
- return match2.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "aaaaa":
- return match2.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "aaaa":
- default:
- return match2.dayPeriod(dateString, {
- width: "wide",
- context: "formatting"
- }) || match2.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);
- return date;
- }
- }]);
- return AMPMParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js
-var AMPMMidnightParser = function(_Parser) {
- _inherits(AMPMMidnightParser2, _Parser);
- var _super = _createSuper(AMPMMidnightParser2);
- function AMPMMidnightParser2() {
- var _this;
- _classCallCheck(this, AMPMMidnightParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 80);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["a", "B", "H", "k", "t", "T"]);
- return _this;
- }
- _createClass(AMPMMidnightParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "b":
- case "bb":
- case "bbb":
- return match2.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "bbbbb":
- return match2.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "bbbb":
- default:
- return match2.dayPeriod(dateString, {
- width: "wide",
- context: "formatting"
- }) || match2.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);
- return date;
- }
- }]);
- return AMPMMidnightParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js
-var DayPeriodParser = function(_Parser) {
- _inherits(DayPeriodParser2, _Parser);
- var _super = _createSuper(DayPeriodParser2);
- function DayPeriodParser2() {
- var _this;
- _classCallCheck(this, DayPeriodParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 80);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["a", "b", "t", "T"]);
- return _this;
- }
- _createClass(DayPeriodParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "B":
- case "BB":
- case "BBB":
- return match2.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "BBBBB":
- return match2.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- case "BBBB":
- default:
- return match2.dayPeriod(dateString, {
- width: "wide",
- context: "formatting"
- }) || match2.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting"
- }) || match2.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting"
- });
- }
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);
- return date;
- }
- }]);
- return DayPeriodParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js
-var Hour1to12Parser = function(_Parser) {
- _inherits(Hour1to12Parser2, _Parser);
- var _super = _createSuper(Hour1to12Parser2);
- function Hour1to12Parser2() {
- var _this;
- _classCallCheck(this, Hour1to12Parser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 70);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["H", "K", "k", "t", "T"]);
- return _this;
- }
- _createClass(Hour1to12Parser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "h":
- return parseNumericPattern(numericPatterns.hour12h, dateString);
- case "ho":
- return match2.ordinalNumber(dateString, {
- unit: "hour"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 12;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- var isPM = date.getUTCHours() >= 12;
- if (isPM && value < 12) {
- date.setUTCHours(value + 12, 0, 0, 0);
- } else if (!isPM && value === 12) {
- date.setUTCHours(0, 0, 0, 0);
- } else {
- date.setUTCHours(value, 0, 0, 0);
- }
- return date;
- }
- }]);
- return Hour1to12Parser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js
-var Hour0to23Parser = function(_Parser) {
- _inherits(Hour0to23Parser2, _Parser);
- var _super = _createSuper(Hour0to23Parser2);
- function Hour0to23Parser2() {
- var _this;
- _classCallCheck(this, Hour0to23Parser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 70);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["a", "b", "h", "K", "k", "t", "T"]);
- return _this;
- }
- _createClass(Hour0to23Parser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "H":
- return parseNumericPattern(numericPatterns.hour23h, dateString);
- case "Ho":
- return match2.ordinalNumber(dateString, {
- unit: "hour"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 23;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCHours(value, 0, 0, 0);
- return date;
- }
- }]);
- return Hour0to23Parser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js
-var Hour0To11Parser = function(_Parser) {
- _inherits(Hour0To11Parser2, _Parser);
- var _super = _createSuper(Hour0To11Parser2);
- function Hour0To11Parser2() {
- var _this;
- _classCallCheck(this, Hour0To11Parser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 70);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["h", "H", "k", "t", "T"]);
- return _this;
- }
- _createClass(Hour0To11Parser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "K":
- return parseNumericPattern(numericPatterns.hour11h, dateString);
- case "Ko":
- return match2.ordinalNumber(dateString, {
- unit: "hour"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 11;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- var isPM = date.getUTCHours() >= 12;
- if (isPM && value < 12) {
- date.setUTCHours(value + 12, 0, 0, 0);
- } else {
- date.setUTCHours(value, 0, 0, 0);
- }
- return date;
- }
- }]);
- return Hour0To11Parser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js
-var Hour1To24Parser = function(_Parser) {
- _inherits(Hour1To24Parser2, _Parser);
- var _super = _createSuper(Hour1To24Parser2);
- function Hour1To24Parser2() {
- var _this;
- _classCallCheck(this, Hour1To24Parser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 70);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["a", "b", "h", "H", "K", "t", "T"]);
- return _this;
- }
- _createClass(Hour1To24Parser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "k":
- return parseNumericPattern(numericPatterns.hour24h, dateString);
- case "ko":
- return match2.ordinalNumber(dateString, {
- unit: "hour"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 1 && value <= 24;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- var hours = value <= 24 ? value % 24 : value;
- date.setUTCHours(hours, 0, 0, 0);
- return date;
- }
- }]);
- return Hour1To24Parser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js
-var MinuteParser = function(_Parser) {
- _inherits(MinuteParser2, _Parser);
- var _super = _createSuper(MinuteParser2);
- function MinuteParser2() {
- var _this;
- _classCallCheck(this, MinuteParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 60);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T"]);
- return _this;
- }
- _createClass(MinuteParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "m":
- return parseNumericPattern(numericPatterns.minute, dateString);
- case "mo":
- return match2.ordinalNumber(dateString, {
- unit: "minute"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 59;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCMinutes(value, 0, 0);
- return date;
- }
- }]);
- return MinuteParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js
-var SecondParser = function(_Parser) {
- _inherits(SecondParser2, _Parser);
- var _super = _createSuper(SecondParser2);
- function SecondParser2() {
- var _this;
- _classCallCheck(this, SecondParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 50);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T"]);
- return _this;
- }
- _createClass(SecondParser2, [{
- key: "parse",
- value: function parse2(dateString, token, match2) {
- switch (token) {
- case "s":
- return parseNumericPattern(numericPatterns.second, dateString);
- case "so":
- return match2.ordinalNumber(dateString, {
- unit: "second"
- });
- default:
- return parseNDigits(token.length, dateString);
- }
- }
- }, {
- key: "validate",
- value: function validate(_date, value) {
- return value >= 0 && value <= 59;
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCSeconds(value, 0);
- return date;
- }
- }]);
- return SecondParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js
-var FractionOfSecondParser = function(_Parser) {
- _inherits(FractionOfSecondParser2, _Parser);
- var _super = _createSuper(FractionOfSecondParser2);
- function FractionOfSecondParser2() {
- var _this;
- _classCallCheck(this, FractionOfSecondParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 30);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T"]);
- return _this;
- }
- _createClass(FractionOfSecondParser2, [{
- key: "parse",
- value: function parse2(dateString, token) {
- var valueCallback3 = function valueCallback4(value) {
- return Math.floor(value * Math.pow(10, -token.length + 3));
- };
- return mapValue(parseNDigits(token.length, dateString), valueCallback3);
- }
- }, {
- key: "set",
- value: function set2(date, _flags, value) {
- date.setUTCMilliseconds(value);
- return date;
- }
- }]);
- return FractionOfSecondParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js
-var ISOTimezoneWithZParser = function(_Parser) {
- _inherits(ISOTimezoneWithZParser2, _Parser);
- var _super = _createSuper(ISOTimezoneWithZParser2);
- function ISOTimezoneWithZParser2() {
- var _this;
- _classCallCheck(this, ISOTimezoneWithZParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 10);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T", "x"]);
- return _this;
- }
- _createClass(ISOTimezoneWithZParser2, [{
- key: "parse",
- value: function parse2(dateString, token) {
- switch (token) {
- case "X":
- return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);
- case "XX":
- return parseTimezonePattern(timezonePatterns.basic, dateString);
- case "XXXX":
- return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);
- case "XXXXX":
- return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);
- case "XXX":
- default:
- return parseTimezonePattern(timezonePatterns.extended, dateString);
- }
- }
- }, {
- key: "set",
- value: function set2(date, flags, value) {
- if (flags.timestampIsSet) {
- return date;
- }
- return new Date(date.getTime() - value);
- }
- }]);
- return ISOTimezoneWithZParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js
-var ISOTimezoneParser = function(_Parser) {
- _inherits(ISOTimezoneParser2, _Parser);
- var _super = _createSuper(ISOTimezoneParser2);
- function ISOTimezoneParser2() {
- var _this;
- _classCallCheck(this, ISOTimezoneParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 10);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ["t", "T", "X"]);
- return _this;
- }
- _createClass(ISOTimezoneParser2, [{
- key: "parse",
- value: function parse2(dateString, token) {
- switch (token) {
- case "x":
- return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);
- case "xx":
- return parseTimezonePattern(timezonePatterns.basic, dateString);
- case "xxxx":
- return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);
- case "xxxxx":
- return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);
- case "xxx":
- default:
- return parseTimezonePattern(timezonePatterns.extended, dateString);
- }
- }
- }, {
- key: "set",
- value: function set2(date, flags, value) {
- if (flags.timestampIsSet) {
- return date;
- }
- return new Date(date.getTime() - value);
- }
- }]);
- return ISOTimezoneParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js
-var TimestampSecondsParser = function(_Parser) {
- _inherits(TimestampSecondsParser2, _Parser);
- var _super = _createSuper(TimestampSecondsParser2);
- function TimestampSecondsParser2() {
- var _this;
- _classCallCheck(this, TimestampSecondsParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 40);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", "*");
- return _this;
- }
- _createClass(TimestampSecondsParser2, [{
- key: "parse",
- value: function parse2(dateString) {
- return parseAnyDigitsSigned(dateString);
- }
- }, {
- key: "set",
- value: function set2(_date, _flags, value) {
- return [new Date(value * 1e3), {
- timestampIsSet: true
- }];
- }
- }]);
- return TimestampSecondsParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js
-var TimestampMillisecondsParser = function(_Parser) {
- _inherits(TimestampMillisecondsParser2, _Parser);
- var _super = _createSuper(TimestampMillisecondsParser2);
- function TimestampMillisecondsParser2() {
- var _this;
- _classCallCheck(this, TimestampMillisecondsParser2);
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- _this = _super.call.apply(_super, [this].concat(args));
- _defineProperty(_assertThisInitialized(_this), "priority", 20);
- _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", "*");
- return _this;
- }
- _createClass(TimestampMillisecondsParser2, [{
- key: "parse",
- value: function parse2(dateString) {
- return parseAnyDigitsSigned(dateString);
- }
- }, {
- key: "set",
- value: function set2(_date, _flags, value) {
- return [new Date(value), {
- timestampIsSet: true
- }];
- }
- }]);
- return TimestampMillisecondsParser2;
-}(Parser);
-
-// node_modules/date-fns/esm/parse/_lib/parsers/index.js
-var parsers = {
- G: new EraParser(),
- y: new YearParser(),
- Y: new LocalWeekYearParser(),
- R: new ISOWeekYearParser(),
- u: new ExtendedYearParser(),
- Q: new QuarterParser(),
- q: new StandAloneQuarterParser(),
- M: new MonthParser(),
- L: new StandAloneMonthParser(),
- w: new LocalWeekParser(),
- I: new ISOWeekParser(),
- d: new DateParser(),
- D: new DayOfYearParser(),
- E: new DayParser(),
- e: new LocalDayParser(),
- c: new StandAloneLocalDayParser(),
- i: new ISODayParser(),
- a: new AMPMParser(),
- b: new AMPMMidnightParser(),
- B: new DayPeriodParser(),
- h: new Hour1to12Parser(),
- H: new Hour0to23Parser(),
- K: new Hour0To11Parser(),
- k: new Hour1To24Parser(),
- m: new MinuteParser(),
- s: new SecondParser(),
- S: new FractionOfSecondParser(),
- X: new ISOTimezoneWithZParser(),
- x: new ISOTimezoneParser(),
- t: new TimestampSecondsParser(),
- T: new TimestampMillisecondsParser()
-};
-
-// node_modules/date-fns/esm/parse/index.js
-var formattingTokensRegExp2 = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
-var longFormattingTokensRegExp2 = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
-var escapedStringRegExp2 = /^'([^]*?)'?$/;
-var doubleQuoteRegExp2 = /''/g;
-var notWhitespaceRegExp = /\S/;
-var unescapedLatinCharacterRegExp2 = /[a-zA-Z]/;
-function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {
- var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;
- requiredArgs(3, arguments);
- var dateString = String(dirtyDateString);
- var formatString = String(dirtyFormatString);
- var defaultOptions2 = getDefaultOptions();
- var locale2 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions2.locale) !== null && _ref !== void 0 ? _ref : defaultLocale_default;
- if (!locale2.match) {
- throw new RangeError("locale must contain match property");
- }
- var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions2.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);
- if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
- throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");
- }
- var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions2.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions2.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);
- if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
- throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");
- }
- if (formatString === "") {
- if (dateString === "") {
- return toDate(dirtyReferenceDate);
- } else {
- return /* @__PURE__ */ new Date(NaN);
- }
- }
- var subFnOptions = {
- firstWeekContainsDate,
- weekStartsOn,
- locale: locale2
- };
- var setters = [new DateToSystemTimezoneSetter()];
- var tokens = formatString.match(longFormattingTokensRegExp2).map(function(substring) {
- var firstCharacter = substring[0];
- if (firstCharacter in longFormatters_default) {
- var longFormatter = longFormatters_default[firstCharacter];
- return longFormatter(substring, locale2.formatLong);
- }
- return substring;
- }).join("").match(formattingTokensRegExp2);
- var usedTokens = [];
- var _iterator = _createForOfIteratorHelper(tokens), _step;
- try {
- var _loop = function _loop2() {
- var token = _step.value;
- if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {
- throwProtectedError(token, formatString, dirtyDateString);
- }
- if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {
- throwProtectedError(token, formatString, dirtyDateString);
- }
- var firstCharacter = token[0];
- var parser = parsers[firstCharacter];
- if (parser) {
- var incompatibleTokens = parser.incompatibleTokens;
- if (Array.isArray(incompatibleTokens)) {
- var incompatibleToken = usedTokens.find(function(usedToken) {
- return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;
- });
- if (incompatibleToken) {
- throw new RangeError("The format string mustn't contain `".concat(incompatibleToken.fullToken, "` and `").concat(token, "` at the same time"));
- }
- } else if (parser.incompatibleTokens === "*" && usedTokens.length > 0) {
- throw new RangeError("The format string mustn't contain `".concat(token, "` and any other token at the same time"));
- }
- usedTokens.push({
- token: firstCharacter,
- fullToken: token
- });
- var parseResult = parser.run(dateString, token, locale2.match, subFnOptions);
- if (!parseResult) {
- return {
- v: /* @__PURE__ */ new Date(NaN)
- };
- }
- setters.push(parseResult.setter);
- dateString = parseResult.rest;
- } else {
- if (firstCharacter.match(unescapedLatinCharacterRegExp2)) {
- throw new RangeError("Format string contains an unescaped latin alphabet character `" + firstCharacter + "`");
- }
- if (token === "''") {
- token = "'";
- } else if (firstCharacter === "'") {
- token = cleanEscapedString2(token);
- }
- if (dateString.indexOf(token) === 0) {
- dateString = dateString.slice(token.length);
- } else {
- return {
- v: /* @__PURE__ */ new Date(NaN)
- };
- }
- }
- };
- for (_iterator.s(); !(_step = _iterator.n()).done; ) {
- var _ret = _loop();
- if (_typeof(_ret) === "object")
- return _ret.v;
- }
- } catch (err) {
- _iterator.e(err);
- } finally {
- _iterator.f();
- }
- if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {
- return /* @__PURE__ */ new Date(NaN);
- }
- var uniquePrioritySetters = setters.map(function(setter2) {
- return setter2.priority;
- }).sort(function(a3, b2) {
- return b2 - a3;
- }).filter(function(priority, index, array) {
- return array.indexOf(priority) === index;
- }).map(function(priority) {
- return setters.filter(function(setter2) {
- return setter2.priority === priority;
- }).sort(function(a3, b2) {
- return b2.subPriority - a3.subPriority;
- });
- }).map(function(setterArray) {
- return setterArray[0];
- });
- var date = toDate(dirtyReferenceDate);
- if (isNaN(date.getTime())) {
- return /* @__PURE__ */ new Date(NaN);
- }
- var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));
- var flags = {};
- var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters), _step2;
- try {
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {
- var setter = _step2.value;
- if (!setter.validate(utcDate, subFnOptions)) {
- return /* @__PURE__ */ new Date(NaN);
- }
- var result = setter.set(utcDate, flags, subFnOptions);
- if (Array.isArray(result)) {
- utcDate = result[0];
- assign(flags, result[1]);
- } else {
- utcDate = result;
- }
- }
- } catch (err) {
- _iterator2.e(err);
- } finally {
- _iterator2.f();
- }
- return utcDate;
-}
-function cleanEscapedString2(input) {
- return input.match(escapedStringRegExp2)[1].replace(doubleQuoteRegExp2, "'");
-}
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-time.mjs
-var timeUnits = [
- ["Y", 1e3 * 60 * 60 * 24 * 365],
- ["M", 1e3 * 60 * 60 * 24 * 30],
- ["D", 1e3 * 60 * 60 * 24],
- ["H", 1e3 * 60 * 60],
- ["m", 1e3 * 60],
- ["s", 1e3],
- ["S", 1]
- // million seconds
-];
-var NgTimeParser = class {
- constructor(format2, localeId) {
- this.format = format2;
- this.localeId = localeId;
- this.regex = null;
- this.matchMap = {
- hour: null,
- minute: null,
- second: null,
- periodNarrow: null,
- periodWide: null,
- periodAbbreviated: null
- };
- this.genRegexp();
- }
- toDate(str) {
- const result = this.getTimeResult(str);
- const time = /* @__PURE__ */ new Date();
- if (isNotNil(result?.hour)) {
- time.setHours(result.hour);
- }
- if (isNotNil(result?.minute)) {
- time.setMinutes(result.minute);
- }
- if (isNotNil(result?.second)) {
- time.setSeconds(result.second);
- }
- if (result?.period === 1 && time.getHours() < 12) {
- time.setHours(time.getHours() + 12);
- }
- return time;
- }
- getTimeResult(str) {
- const match2 = this.regex.exec(str);
- let period = null;
- if (match2) {
- if (isNotNil(this.matchMap.periodNarrow)) {
- period = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Narrow).indexOf(match2[this.matchMap.periodNarrow + 1]);
- }
- if (isNotNil(this.matchMap.periodWide)) {
- period = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Wide).indexOf(match2[this.matchMap.periodWide + 1]);
- }
- if (isNotNil(this.matchMap.periodAbbreviated)) {
- period = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Abbreviated).indexOf(match2[this.matchMap.periodAbbreviated + 1]);
- }
- return {
- hour: isNotNil(this.matchMap.hour) ? Number.parseInt(match2[this.matchMap.hour + 1], 10) : null,
- minute: isNotNil(this.matchMap.minute) ? Number.parseInt(match2[this.matchMap.minute + 1], 10) : null,
- second: isNotNil(this.matchMap.second) ? Number.parseInt(match2[this.matchMap.second + 1], 10) : null,
- period
- };
- } else {
- return null;
- }
- }
- genRegexp() {
- let regexStr = this.format.replace(/([.*+?^=!:${}()|[\]\/\\])/g, "\\$&");
- const hourRegex = /h{1,2}/i;
- const minuteRegex = /m{1,2}/;
- const secondRegex = /s{1,2}/;
- const periodNarrow = /aaaaa/;
- const periodWide = /aaaa/;
- const periodAbbreviated = /a{1,3}/;
- const hourMatch = hourRegex.exec(this.format);
- const minuteMatch = minuteRegex.exec(this.format);
- const secondMatch = secondRegex.exec(this.format);
- const periodNarrowMatch = periodNarrow.exec(this.format);
- let periodWideMatch = null;
- let periodAbbreviatedMatch = null;
- if (!periodNarrowMatch) {
- periodWideMatch = periodWide.exec(this.format);
- }
- if (!periodWideMatch && !periodNarrowMatch) {
- periodAbbreviatedMatch = periodAbbreviated.exec(this.format);
- }
- const matchs = [hourMatch, minuteMatch, secondMatch, periodNarrowMatch, periodWideMatch, periodAbbreviatedMatch].filter((m3) => !!m3).sort((a3, b2) => a3.index - b2.index);
- matchs.forEach((match2, index) => {
- switch (match2) {
- case hourMatch:
- this.matchMap.hour = index;
- regexStr = regexStr.replace(hourRegex, "(\\d{1,2})");
- break;
- case minuteMatch:
- this.matchMap.minute = index;
- regexStr = regexStr.replace(minuteRegex, "(\\d{1,2})");
- break;
- case secondMatch:
- this.matchMap.second = index;
- regexStr = regexStr.replace(secondRegex, "(\\d{1,2})");
- break;
- case periodNarrowMatch:
- this.matchMap.periodNarrow = index;
- const periodsNarrow = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Narrow).join("|");
- regexStr = regexStr.replace(periodNarrow, `(${periodsNarrow})`);
- break;
- case periodWideMatch:
- this.matchMap.periodWide = index;
- const periodsWide = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Wide).join("|");
- regexStr = regexStr.replace(periodWide, `(${periodsWide})`);
- break;
- case periodAbbreviatedMatch:
- this.matchMap.periodAbbreviated = index;
- const periodsAbbreviated = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Abbreviated).join("|");
- regexStr = regexStr.replace(periodAbbreviated, `(${periodsAbbreviated})`);
- break;
- }
- });
- this.regex = new RegExp(regexStr);
- }
-};
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-i18n.mjs
-var en_US = {
- locale: "en",
- Pagination: {
- items_per_page: "/ page",
- jump_to: "Go to",
- jump_to_confirm: "confirm",
- page: "Page",
- prev_page: "Previous Page",
- next_page: "Next Page",
- prev_5: "Previous 5 Pages",
- next_5: "Next 5 Pages",
- prev_3: "Previous 3 Pages",
- next_3: "Next 3 Pages",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Select date",
- yearPlaceholder: "Select year",
- quarterPlaceholder: "Select quarter",
- monthPlaceholder: "Select month",
- weekPlaceholder: "Select week",
- rangePlaceholder: ["Start date", "End date"],
- rangeYearPlaceholder: ["Start year", "End year"],
- rangeMonthPlaceholder: ["Start month", "End month"],
- rangeWeekPlaceholder: ["Start week", "End week"],
- locale: "en_US",
- today: "Today",
- now: "Now",
- backToToday: "Back to today",
- ok: "Ok",
- clear: "Clear",
- month: "Month",
- year: "Year",
- timeSelect: "select time",
- dateSelect: "select date",
- weekSelect: "Choose a week",
- monthSelect: "Choose a month",
- yearSelect: "Choose a year",
- decadeSelect: "Choose a decade",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Previous month (PageUp)",
- nextMonth: "Next month (PageDown)",
- previousYear: "Last year (Control + left)",
- nextYear: "Next year (Control + right)",
- previousDecade: "Last decade",
- nextDecade: "Next decade",
- previousCentury: "Last century",
- nextCentury: "Next century"
- },
- timePickerLocale: {
- placeholder: "Select time",
- rangePlaceholder: ["Start time", "End time"]
- }
- },
- TimePicker: {
- placeholder: "Select time",
- rangePlaceholder: ["Start time", "End time"]
- },
- Calendar: {
- lang: {
- placeholder: "Select date",
- yearPlaceholder: "Select year",
- quarterPlaceholder: "Select quarter",
- monthPlaceholder: "Select month",
- weekPlaceholder: "Select week",
- rangePlaceholder: ["Start date", "End date"],
- rangeYearPlaceholder: ["Start year", "End year"],
- rangeMonthPlaceholder: ["Start month", "End month"],
- rangeWeekPlaceholder: ["Start week", "End week"],
- locale: "en_US",
- today: "Today",
- now: "Now",
- backToToday: "Back to today",
- ok: "Ok",
- clear: "Clear",
- month: "Month",
- year: "Year",
- timeSelect: "select time",
- dateSelect: "select date",
- weekSelect: "Choose a week",
- monthSelect: "Choose a month",
- yearSelect: "Choose a year",
- decadeSelect: "Choose a decade",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Previous month (PageUp)",
- nextMonth: "Next month (PageDown)",
- previousYear: "Last year (Control + left)",
- nextYear: "Next year (Control + right)",
- previousDecade: "Last decade",
- nextDecade: "Next decade",
- previousCentury: "Last century",
- nextCentury: "Next century"
- },
- timePickerLocale: {
- placeholder: "Select time",
- rangePlaceholder: ["Start time", "End time"]
- }
- },
- global: {
- placeholder: "Please select"
- },
- Table: {
- filterTitle: "Filter menu",
- filterConfirm: "OK",
- filterReset: "Reset",
- filterEmptyText: "No filters",
- emptyText: "No data",
- selectAll: "Select current page",
- selectInvert: "Invert current page",
- selectionAll: "Select all data",
- sortTitle: "Sort",
- expand: "Expand row",
- collapse: "Collapse row",
- triggerDesc: "Click to sort descending",
- triggerAsc: "Click to sort ascending",
- cancelSort: "Click to cancel sorting",
- filterCheckall: "Select all items",
- filterSearchPlaceholder: "Search in filters",
- selectNone: "Clear all data"
- },
- Modal: {
- okText: "OK",
- cancelText: "Cancel",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Cancel"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Search here",
- itemUnit: "item",
- itemsUnit: "items",
- remove: "Remove",
- selectCurrent: "Select current page",
- removeCurrent: "Remove current page",
- selectAll: "Select all data",
- removeAll: "Remove all data",
- selectInvert: "Invert current page"
- },
- Upload: {
- uploading: "Uploading...",
- removeFile: "Remove file",
- uploadError: "Upload error",
- previewFile: "Preview file",
- downloadFile: "Download file"
- },
- Empty: {
- description: "No Data"
- },
- Icon: {
- icon: "icon"
- },
- Text: {
- edit: "Edit",
- copy: "Copy",
- copied: "Copied",
- expand: "Expand"
- },
- PageHeader: {
- back: "Back"
- },
- Image: {
- preview: "Preview"
- },
- CronExpression: {
- cronError: "Invalid cron expression",
- second: "second",
- minute: "minute",
- hour: "hour",
- day: "day",
- month: "month",
- week: "week"
- },
- QRCode: {
- expired: "QR code expired",
- refresh: "Refresh"
- }
-};
-var zh_CN = {
- locale: "zh-cn",
- Pagination: {
- items_per_page: "条/页",
- jump_to: "跳至",
- jump_to_confirm: "确定",
- page: "页",
- prev_page: "上一页",
- next_page: "下一页",
- prev_5: "向前 5 页",
- next_5: "向后 5 页",
- prev_3: "向前 3 页",
- next_3: "向后 3 页",
- page_size: "页码"
- },
- DatePicker: {
- lang: {
- placeholder: "请选择日期",
- yearPlaceholder: "请选择年份",
- quarterPlaceholder: "请选择季度",
- monthPlaceholder: "请选择月份",
- weekPlaceholder: "请选择周",
- rangePlaceholder: ["开始日期", "结束日期"],
- rangeYearPlaceholder: ["开始年份", "结束年份"],
- rangeMonthPlaceholder: ["开始月份", "结束月份"],
- rangeWeekPlaceholder: ["开始周", "结束周"],
- locale: "zh_CN",
- today: "今天",
- now: "此刻",
- backToToday: "返回今天",
- ok: "确定",
- timeSelect: "选择时间",
- dateSelect: "选择日期",
- weekSelect: "选择周",
- clear: "清除",
- month: "月",
- year: "年",
- previousMonth: "上个月 (翻页上键)",
- nextMonth: "下个月 (翻页下键)",
- monthSelect: "选择月份",
- yearSelect: "选择年份",
- decadeSelect: "选择年代",
- yearFormat: "YYYY年",
- dayFormat: "D日",
- dateFormat: "YYYY年M月D日",
- dateTimeFormat: "YYYY年M月D日 HH时mm分ss秒",
- previousYear: "上一年 (Control键加左方向键)",
- nextYear: "下一年 (Control键加右方向键)",
- previousDecade: "上一年代",
- nextDecade: "下一年代",
- previousCentury: "上一世纪",
- nextCentury: "下一世纪"
- },
- timePickerLocale: {
- placeholder: "请选择时间",
- rangePlaceholder: ["开始时间", "结束时间"]
- }
- },
- TimePicker: {
- placeholder: "请选择时间",
- rangePlaceholder: ["开始时间", "结束时间"]
- },
- Calendar: {
- lang: {
- placeholder: "请选择日期",
- yearPlaceholder: "请选择年份",
- quarterPlaceholder: "请选择季度",
- monthPlaceholder: "请选择月份",
- weekPlaceholder: "请选择周",
- rangePlaceholder: ["开始日期", "结束日期"],
- rangeYearPlaceholder: ["开始年份", "结束年份"],
- rangeMonthPlaceholder: ["开始月份", "结束月份"],
- rangeWeekPlaceholder: ["开始周", "结束周"],
- locale: "zh_CN",
- today: "今天",
- now: "此刻",
- backToToday: "返回今天",
- ok: "确定",
- timeSelect: "选择时间",
- dateSelect: "选择日期",
- weekSelect: "选择周",
- clear: "清除",
- month: "月",
- year: "年",
- previousMonth: "上个月 (翻页上键)",
- nextMonth: "下个月 (翻页下键)",
- monthSelect: "选择月份",
- yearSelect: "选择年份",
- decadeSelect: "选择年代",
- yearFormat: "YYYY年",
- dayFormat: "D日",
- dateFormat: "YYYY年M月D日",
- dateTimeFormat: "YYYY年M月D日 HH时mm分ss秒",
- previousYear: "上一年 (Control键加左方向键)",
- nextYear: "下一年 (Control键加右方向键)",
- previousDecade: "上一年代",
- nextDecade: "下一年代",
- previousCentury: "上一世纪",
- nextCentury: "下一世纪"
- },
- timePickerLocale: {
- placeholder: "请选择时间",
- rangePlaceholder: ["开始时间", "结束时间"]
- }
- },
- global: {
- placeholder: "请选择"
- },
- Table: {
- filterTitle: "筛选",
- filterConfirm: "确定",
- filterReset: "重置",
- filterEmptyText: "无筛选项",
- selectAll: "全选当页",
- selectInvert: "反选当页",
- selectionAll: "全选所有",
- sortTitle: "排序",
- expand: "展开行",
- collapse: "关闭行",
- triggerDesc: "点击降序",
- triggerAsc: "点击升序",
- cancelSort: "取消排序",
- filterCheckall: "全选",
- filterSearchPlaceholder: "在筛选项中搜索",
- selectNone: "清空所有"
- },
- Modal: {
- okText: "确定",
- cancelText: "取消",
- justOkText: "知道了"
- },
- Popconfirm: {
- cancelText: "取消",
- okText: "确定"
- },
- Transfer: {
- searchPlaceholder: "请输入搜索内容",
- itemUnit: "项",
- itemsUnit: "项",
- remove: "删除",
- selectCurrent: "全选当页",
- removeCurrent: "删除当页",
- selectAll: "全选所有",
- removeAll: "删除全部",
- selectInvert: "反选当页"
- },
- Upload: {
- uploading: "文件上传中",
- removeFile: "删除文件",
- uploadError: "上传错误",
- previewFile: "预览文件",
- downloadFile: "下载文件"
- },
- Empty: {
- description: "暂无数据"
- },
- Icon: {
- icon: "图标"
- },
- Text: {
- edit: "编辑",
- copy: "复制",
- copied: "复制成功",
- expand: "展开"
- },
- PageHeader: {
- back: "返回"
- },
- Image: {
- preview: "预览"
- },
- CronExpression: {
- cronError: "cron 表达式不合法",
- second: "秒",
- minute: "分钟",
- hour: "小时",
- day: "日",
- month: "月",
- week: "周"
- },
- QRCode: {
- expired: "二维码过期",
- refresh: "点击刷新"
- }
-};
-var NZ_I18N = new InjectionToken("nz-i18n");
-function provideNzI18n(config) {
- return makeEnvironmentProviders([{
- provide: NZ_I18N,
- useValue: config
- }]);
-}
-var NZ_DATE_LOCALE = new InjectionToken("nz-date-locale");
-var _NzI18nService = class _NzI18nService {
- get localeChange() {
- return this._change.asObservable();
- }
- constructor(locale2, dateLocale) {
- this._change = new BehaviorSubject(this._locale);
- this.setLocale(locale2 || zh_CN);
- this.setDateLocale(dateLocale || null);
- }
- // [NOTE] Performance issue: this method may called by every change detections
- // TODO: cache more deeply paths for performance
- translate(path, data) {
- let content = this._getObjectPath(this._locale, path);
- if (typeof content === "string") {
- if (data) {
- Object.keys(data).forEach((key) => content = content.replace(new RegExp(`%${key}%`, "g"), data[key]));
- }
- return content;
- }
- return path;
- }
- /**
- * Set/Change current locale globally throughout the WHOLE application
- * NOTE: If called at runtime, rendered interface may not change along with the locale change,
- * because this do not trigger another render schedule.
- *
- * @param locale The translating letters
- */
- setLocale(locale2) {
- if (this._locale && this._locale.locale === locale2.locale) {
- return;
- }
- this._locale = locale2;
- this._change.next(locale2);
- }
- getLocale() {
- return this._locale;
- }
- getLocaleId() {
- return this._locale ? this._locale.locale : "";
- }
- setDateLocale(dateLocale) {
- this.dateLocale = dateLocale;
- }
- getDateLocale() {
- return this.dateLocale;
- }
- /**
- * Get locale data
- *
- * @param path dot paths for finding exist value from locale data, eg. "a.b.c"
- * @param defaultValue default value if the result is not "truthy"
- */
- getLocaleData(path, defaultValue) {
- const result = path ? this._getObjectPath(this._locale, path) : this._locale;
- if (!result && !defaultValue) {
- warn(`Missing translations for "${path}" in language "${this._locale.locale}".
-You can use "NzI18nService.setLocale" as a temporary fix.
-Welcome to submit a pull request to help us optimize the translations!
-https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md`);
- }
- return result || defaultValue || this._getObjectPath(en_US, path) || {};
- }
- _getObjectPath(obj, path) {
- let res = obj;
- const paths = path.split(".");
- const depth = paths.length;
- let index = 0;
- while (res && index < depth) {
- res = res[paths[index++]];
- }
- return index === depth ? res : null;
- }
-};
-_NzI18nService.ɵfac = function NzI18nService_Factory(t2) {
- return new (t2 || _NzI18nService)(ɵɵinject(NZ_I18N, 8), ɵɵinject(NZ_DATE_LOCALE, 8));
-};
-_NzI18nService.ɵprov = ɵɵdefineInjectable({
- token: _NzI18nService,
- factory: _NzI18nService.ɵfac,
- providedIn: "root"
-});
-var NzI18nService = _NzI18nService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzI18nService, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [NZ_I18N]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [NZ_DATE_LOCALE]
- }]
- }], null);
-})();
-var _NzI18nPipe = class _NzI18nPipe {
- constructor(_locale) {
- this._locale = _locale;
- }
- transform(path, keyValue) {
- return this._locale.translate(path, keyValue);
- }
-};
-_NzI18nPipe.ɵfac = function NzI18nPipe_Factory(t2) {
- return new (t2 || _NzI18nPipe)(ɵɵdirectiveInject(NzI18nService, 16));
-};
-_NzI18nPipe.ɵpipe = ɵɵdefinePipe({
- name: "nzI18n",
- type: _NzI18nPipe,
- pure: true,
- standalone: true
-});
-var NzI18nPipe = _NzI18nPipe;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzI18nPipe, [{
- type: Pipe,
- args: [{
- name: "nzI18n",
- standalone: true
- }]
- }], () => [{
- type: NzI18nService
- }], null);
-})();
-var _NzI18nModule = class _NzI18nModule {
-};
-_NzI18nModule.ɵfac = function NzI18nModule_Factory(t2) {
- return new (t2 || _NzI18nModule)();
-};
-_NzI18nModule.ɵmod = ɵɵdefineNgModule({
- type: _NzI18nModule,
- imports: [NzI18nPipe],
- exports: [NzI18nPipe]
-});
-_NzI18nModule.ɵinj = ɵɵdefineInjector({});
-var NzI18nModule = _NzI18nModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzI18nModule, [{
- type: NgModule,
- args: [{
- imports: [NzI18nPipe],
- exports: [NzI18nPipe]
- }]
- }], null, null);
-})();
-var NZ_DATE_CONFIG = new InjectionToken("date-config");
-var NZ_DATE_CONFIG_DEFAULT = {
- firstDayOfWeek: void 0
-};
-function mergeDateConfig(config) {
- return __spreadValues(__spreadValues({}, NZ_DATE_CONFIG_DEFAULT), config);
-}
-function DATE_HELPER_SERVICE_FACTORY() {
- const i18n = inject(NzI18nService);
- const config = inject(NZ_DATE_CONFIG, {
- optional: true
- });
- return i18n.getDateLocale() ? new DateHelperByDateFns(i18n, config) : new DateHelperByDatePipe(i18n, config);
-}
-var _DateHelperService = class _DateHelperService {
- constructor(i18n, config) {
- this.i18n = i18n;
- this.config = mergeDateConfig(config);
- }
-};
-_DateHelperService.ɵfac = function DateHelperService_Factory(t2) {
- return new (t2 || _DateHelperService)(ɵɵinject(NzI18nService), ɵɵinject(NZ_DATE_CONFIG, 8));
-};
-_DateHelperService.ɵprov = ɵɵdefineInjectable({
- token: _DateHelperService,
- factory: () => DATE_HELPER_SERVICE_FACTORY(),
- providedIn: "root"
-});
-var DateHelperService = _DateHelperService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DateHelperService, [{
- type: Injectable,
- args: [{
- providedIn: "root",
- useFactory: DATE_HELPER_SERVICE_FACTORY
- }]
- }], () => [{
- type: NzI18nService
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [NZ_DATE_CONFIG]
- }]
- }], null);
-})();
-var DateHelperByDateFns = class extends DateHelperService {
- getISOWeek(date) {
- return getISOWeek(date);
- }
- // Use date-fns's "weekStartsOn" to support different locale when "config.firstDayOfWeek" is null
- // https://github.com/date-fns/date-fns/blob/v2.0.0-alpha.27/src/locale/en-US/index.js#L23
- getFirstDayOfWeek() {
- let defaultWeekStartsOn;
- try {
- defaultWeekStartsOn = this.i18n.getDateLocale().options.weekStartsOn;
- } catch (e2) {
- defaultWeekStartsOn = 1;
- }
- return this.config.firstDayOfWeek == null ? defaultWeekStartsOn : this.config.firstDayOfWeek;
- }
- /**
- * Format a date
- *
- * @see https://date-fns.org/docs/format#description
- * @param date Date
- * @param formatStr format string
- */
- format(date, formatStr) {
- return date ? format(date, formatStr, {
- locale: this.i18n.getDateLocale()
- }) : "";
- }
- parseDate(text, formatStr) {
- return parse(text, formatStr, /* @__PURE__ */ new Date(), {
- locale: this.i18n.getDateLocale(),
- weekStartsOn: this.getFirstDayOfWeek()
- });
- }
- parseTime(text, formatStr) {
- return this.parseDate(text, formatStr);
- }
-};
-var DateHelperByDatePipe = class extends DateHelperService {
- getISOWeek(date) {
- return +this.format(date, "w");
- }
- getFirstDayOfWeek() {
- if (this.config.firstDayOfWeek === void 0) {
- const locale2 = this.i18n.getLocaleId();
- return locale2 && ["zh-cn", "zh-tw"].indexOf(locale2.toLowerCase()) > -1 ? 1 : 0;
- }
- return this.config.firstDayOfWeek;
- }
- format(date, formatStr) {
- return date ? formatDate(date, formatStr, this.i18n.getLocaleId()) : "";
- }
- parseDate(text) {
- return new Date(text);
- }
- parseTime(text, formatStr) {
- const parser = new NgTimeParser(formatStr, this.i18n.getLocaleId());
- return parser.toDate(text);
- }
-};
-var ar_EG = {
- locale: "ar",
- Pagination: {
- items_per_page: "/ الصفحة",
- jump_to: "الذهاب إلى",
- jump_to_confirm: "تأكيد",
- page: "الصفحة",
- prev_page: "الصفحة السابقة",
- next_page: "الصفحة التالية",
- prev_5: "خمس صفحات سابقة",
- next_5: "خمس صفحات تالية",
- prev_3: "ثلاث صفحات سابقة",
- next_3: "ثلاث صفحات تالية",
- page_size: "مقاس الصفحه"
- },
- DatePicker: {
- lang: {
- placeholder: "اختيار التاريخ",
- yearPlaceholder: "اختيار السنة",
- quarterPlaceholder: "اختيار الربع",
- monthPlaceholder: "اختيار الشهر",
- weekPlaceholder: "اختيار الأسبوع",
- rangePlaceholder: ["البداية", "النهاية"],
- rangeYearPlaceholder: ["سنة البداية", "سنة النهاية"],
- rangeMonthPlaceholder: ["شهر البداية", "شهر النهاية"],
- rangeWeekPlaceholder: ["أسبوع البداية", "أسبوع النهاية"],
- locale: "ar_EG",
- today: "اليوم",
- now: "الأن",
- backToToday: "العودة إلى اليوم",
- ok: "تأكيد",
- clear: "مسح",
- month: "الشهر",
- year: "السنة",
- timeSelect: "اختيار الوقت",
- dateSelect: "اختيار التاريخ",
- weekSelect: "اختيار الأسبوع",
- monthSelect: "اختيار الشهر",
- yearSelect: "اختيار السنة",
- decadeSelect: "اختيار العقد",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "الشهر السابق (PageUp)",
- nextMonth: "الشهر التالى(PageDown)",
- previousYear: "العام السابق (Control + left)",
- nextYear: "العام التالى (Control + right)",
- previousDecade: "العقد السابق",
- nextDecade: "العقد التالى",
- previousCentury: "القرن السابق",
- nextCentury: "القرن التالى"
- },
- timePickerLocale: {
- placeholder: "اختيار الوقت"
- },
- dateFormat: "DD-MM-YYYY",
- monthFormat: "MM-YYYY",
- dateTimeFormat: "DD-MM-YYYY HH:mm:ss",
- weekFormat: "wo-YYYY"
- },
- TimePicker: {
- placeholder: "اختيار الوقت"
- },
- Calendar: {
- lang: {
- placeholder: "اختيار التاريخ",
- yearPlaceholder: "اختيار السنة",
- quarterPlaceholder: "اختيار الربع",
- monthPlaceholder: "اختيار الشهر",
- weekPlaceholder: "اختيار الأسبوع",
- rangePlaceholder: ["البداية", "النهاية"],
- rangeYearPlaceholder: ["سنة البداية", "سنة النهاية"],
- rangeMonthPlaceholder: ["شهر البداية", "شهر النهاية"],
- rangeWeekPlaceholder: ["أسبوع البداية", "أسبوع النهاية"],
- locale: "ar_EG",
- today: "اليوم",
- now: "الأن",
- backToToday: "العودة إلى اليوم",
- ok: "تأكيد",
- clear: "مسح",
- month: "الشهر",
- year: "السنة",
- timeSelect: "اختيار الوقت",
- dateSelect: "اختيار التاريخ",
- weekSelect: "اختيار الأسبوع",
- monthSelect: "اختيار الشهر",
- yearSelect: "اختيار السنة",
- decadeSelect: "اختيار العقد",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "الشهر السابق (PageUp)",
- nextMonth: "الشهر التالى(PageDown)",
- previousYear: "العام السابق (Control + left)",
- nextYear: "العام التالى (Control + right)",
- previousDecade: "العقد السابق",
- nextDecade: "العقد التالى",
- previousCentury: "القرن السابق",
- nextCentury: "القرن التالى"
- },
- timePickerLocale: {
- placeholder: "اختيار الوقت"
- },
- dateFormat: "DD-MM-YYYY",
- monthFormat: "MM-YYYY",
- dateTimeFormat: "DD-MM-YYYY HH:mm:ss",
- weekFormat: "wo-YYYY"
- },
- global: {
- placeholder: "يرجى التحديد"
- },
- Table: {
- filterTitle: "الفلاتر",
- filterConfirm: "تأكيد",
- filterReset: "إعادة ضبط",
- selectAll: "اختيار الكل",
- selectInvert: "إلغاء الاختيار",
- selectionAll: "حدد جميع البيانات",
- sortTitle: "رتب",
- expand: "توسيع الصف",
- collapse: "طي الصف",
- triggerDesc: "ترتيب تنازلي",
- triggerAsc: "ترتيب تصاعدي",
- cancelSort: "إلغاء الترتيب"
- },
- Modal: {
- okText: "تأكيد",
- cancelText: "إلغاء",
- justOkText: "تأكيد"
- },
- Popconfirm: {
- okText: "تأكيد",
- cancelText: "إلغاء"
- },
- Transfer: {
- searchPlaceholder: "ابحث هنا",
- itemUnit: "عنصر",
- itemsUnit: "عناصر"
- },
- Upload: {
- uploading: "جاري الرفع...",
- removeFile: "احذف الملف",
- uploadError: "مشكلة فى الرفع",
- previewFile: "استعرض الملف",
- downloadFile: "تحميل الملف"
- },
- Empty: {
- description: "لا توجد بيانات"
- },
- Icon: {
- icon: "أيقونة"
- },
- Text: {
- edit: "تعديل",
- copy: "نسخ",
- copied: "نقل",
- expand: "وسع"
- },
- PageHeader: {
- back: "عودة"
- }
-};
-var az_AZ = {
- locale: "az",
- Pagination: {
- items_per_page: "/ səhifə",
- jump_to: "Get",
- jump_to_confirm: "təsdiqlə",
- page: "",
- prev_page: "Əvvəlki Səhifə",
- next_page: "Növbəti Səhifə",
- prev_5: "Əvvəlki 5 Səhifə",
- next_5: "Növbəti 5 Səhifə",
- prev_3: "Əvvəlki 3 Səhifə",
- next_3: "Növbəti 3 Səhifə",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Tarix seçin",
- rangePlaceholder: ["Başlama tarixi", "Bitmə tarixi"],
- locale: "az_AZ",
- today: "Bugün",
- now: "İndi",
- backToToday: "Bugünə qayıt",
- ok: "Təsdiq",
- clear: "Təmizlə",
- month: "Ay",
- year: "İl",
- timeSelect: "vaxtı seç",
- dateSelect: "tarixi seç",
- weekSelect: "Həftə seç",
- monthSelect: "Ay seç",
- yearSelect: "il seç",
- decadeSelect: "Onillik seçin",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Əvvəlki ay (PageUp)",
- nextMonth: "Növbəti ay (PageDown)",
- previousYear: "Sonuncu il (Control + left)",
- nextYear: "Növbəti il (Control + right)",
- previousDecade: "Sonuncu onillik",
- nextDecade: "Növbəti onillik",
- previousCentury: "Sonuncu əsr",
- nextCentury: "Növbəti əsr"
- },
- timePickerLocale: {
- placeholder: "Vaxtı seç"
- }
- },
- TimePicker: {
- placeholder: "Vaxtı seç"
- },
- Calendar: {
- lang: {
- placeholder: "Tarix seçin",
- rangePlaceholder: ["Başlama tarixi", "Bitmə tarixi"],
- locale: "az_AZ",
- today: "Bugün",
- now: "İndi",
- backToToday: "Bugünə qayıt",
- ok: "Təsdiq",
- clear: "Təmizlə",
- month: "Ay",
- year: "İl",
- timeSelect: "vaxtı seç",
- dateSelect: "tarixi seç",
- weekSelect: "Həftə seç",
- monthSelect: "Ay seç",
- yearSelect: "il seç",
- decadeSelect: "Onillik seçin",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Əvvəlki ay (PageUp)",
- nextMonth: "Növbəti ay (PageDown)",
- previousYear: "Sonuncu il (Control + left)",
- nextYear: "Növbəti il (Control + right)",
- previousDecade: "Sonuncu onillik",
- nextDecade: "Növbəti onillik",
- previousCentury: "Sonuncu əsr",
- nextCentury: "Növbəti əsr"
- },
- timePickerLocale: {
- placeholder: "Vaxtı seç"
- }
- },
- Table: {
- filterTitle: "Filter menyu",
- filterConfirm: "Axtar",
- filterReset: "Sıfırla",
- emptyText: "Məlumat yoxdur",
- selectAll: "Cari səhifəni seç",
- selectInvert: "Invert current page"
- },
- Modal: {
- okText: "Bəli",
- cancelText: "Ləğv et",
- justOkText: "Bəli"
- },
- Popconfirm: {
- okText: "Bəli",
- cancelText: "Ləğv et"
- },
- Transfer: {
- titles: ["", ""],
- notFoundContent: "Tapılmadı",
- searchPlaceholder: "Burada axtar",
- itemUnit: "item",
- itemsUnit: "items"
- },
- Select: {
- notFoundContent: "Tapılmadı"
- },
- Upload: {
- uploading: "Yüklənir...",
- removeFile: "Faylı sil",
- uploadError: "Yükləmə xətası",
- previewFile: "Fayla önbaxış"
- }
-};
-var bg_BG = {
- locale: "bg",
- Pagination: {
- items_per_page: "/ страница",
- jump_to: "Към",
- jump_to_confirm: "потвърждавам",
- page: "",
- prev_page: "Предишна страница",
- next_page: "Следваща страница",
- prev_5: "Предишни 5 страници",
- next_5: "Следващи 5 страници",
- prev_3: "Предишни 3 страници",
- next_3: "Следващи 3 страници",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Избор на дата",
- rangePlaceholder: ["Начална", "Крайна"],
- locale: "bg_BG",
- today: "Днес",
- now: "Сега",
- backToToday: "Към днес",
- ok: "Добре",
- clear: "Изчистване",
- month: "Месец",
- year: "Година",
- timeSelect: "Избор на час",
- dateSelect: "Избор на дата",
- monthSelect: "Избор на месец",
- yearSelect: "Избор на година",
- decadeSelect: "Десетилетие",
- yearFormat: "YYYY",
- dateFormat: "D M YYYY",
- dayFormat: "D",
- dateTimeFormat: "D M YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Предишен месец (PageUp)",
- nextMonth: "Следващ месец (PageDown)",
- previousYear: "Последна година (Control + left)",
- nextYear: "Следваща година (Control + right)",
- previousDecade: "Предишно десетилетие",
- nextDecade: "Следващо десетилетие",
- previousCentury: "Последен век",
- nextCentury: "Следващ век"
- },
- timePickerLocale: {
- placeholder: "Избор на час"
- }
- },
- TimePicker: {
- placeholder: "Избор на час"
- },
- Calendar: {
- lang: {
- placeholder: "Избор на дата",
- rangePlaceholder: ["Начална", "Крайна"],
- locale: "bg_BG",
- today: "Днес",
- now: "Сега",
- backToToday: "Към днес",
- ok: "Добре",
- clear: "Изчистване",
- month: "Месец",
- year: "Година",
- timeSelect: "Избор на час",
- dateSelect: "Избор на дата",
- monthSelect: "Избор на месец",
- yearSelect: "Избор на година",
- decadeSelect: "Десетилетие",
- yearFormat: "YYYY",
- dateFormat: "D M YYYY",
- dayFormat: "D",
- dateTimeFormat: "D M YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Предишен месец (PageUp)",
- nextMonth: "Следващ месец (PageDown)",
- previousYear: "Последна година (Control + left)",
- nextYear: "Следваща година (Control + right)",
- previousDecade: "Предишно десетилетие",
- nextDecade: "Следващо десетилетие",
- previousCentury: "Последен век",
- nextCentury: "Следващ век"
- },
- timePickerLocale: {
- placeholder: "Избор на час"
- }
- },
- Table: {
- filterTitle: "Филтриране",
- filterConfirm: "Добре",
- filterReset: "Нулриане",
- selectAll: "Избор на текуща страница",
- selectInvert: "Обръщане"
- },
- Modal: {
- okText: "Добре",
- cancelText: "Отказ",
- justOkText: "Добре"
- },
- Popconfirm: {
- okText: "Добре",
- cancelText: "Отказ"
- },
- Transfer: {
- searchPlaceholder: "Търсене",
- itemUnit: "избор",
- itemsUnit: "избори"
- },
- Upload: {
- uploading: "Качване...",
- removeFile: "Премахване",
- uploadError: "Грешка при качването",
- previewFile: "Преглед",
- downloadFile: "Свали файл"
- },
- Empty: {
- description: "Няма данни"
- }
-};
-var bn_BD = {
- locale: "bn-bd",
- Pagination: {
- items_per_page: "/ পৃষ্ঠা",
- jump_to: "যাও",
- jump_to_confirm: "নিশ্চিত",
- page: "পৃষ্ঠা",
- prev_page: "আগের পৃষ্ঠা",
- next_page: "পরের পৃষ্ঠা",
- prev_5: "পূর্ববর্তী ৫ পৃষ্ঠা",
- next_5: "পরবর্তী ৫ পৃষ্ঠা",
- prev_3: "পূর্ববর্তী ৩ পৃষ্ঠা",
- next_3: "পরবর্তী ৩ পৃষ্ঠা",
- page_size: "পাতার আকার"
- },
- DatePicker: {
- lang: {
- placeholder: "তারিখ নির্বাচন",
- yearPlaceholder: "বছর নির্বাচন",
- quarterPlaceholder: "কোয়ার্টার নির্বাচন",
- monthPlaceholder: "মাস নির্বাচন",
- weekPlaceholder: "সপ্তাহ নির্বাচন",
- rangePlaceholder: ["শুরুর তারিখ", "শেষ তারিখ"],
- rangeYearPlaceholder: ["শুরুর বছর", "শেষ বছর"],
- rangeMonthPlaceholder: ["শুরুর মাস", "শেষ মাস"],
- rangeWeekPlaceholder: ["শুরুর সপ্তাহ", "শেষ সপ্তাহ"],
- locale: "bn_BD",
- today: "আজ",
- now: "এখন",
- backToToday: "আজকে ফিরে চলুন",
- ok: "ওকে",
- clear: "পরিস্কার",
- month: "মাস",
- year: "বছর",
- timeSelect: "সময় নির্বাচন",
- dateSelect: "তারিখ নির্বাচন",
- weekSelect: "সপ্তাহ পছন্দ করুন",
- monthSelect: "মাস পছন্দ করুন",
- yearSelect: "বছর পছন্দ করুন",
- decadeSelect: "একটি দশক পছন্দ করুন",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "গত মাস (PageUp)",
- nextMonth: "আগামী মাস (PageDown)",
- previousYear: "গত বছর (Control + left)",
- nextYear: "আগামী বছর (Control + right)",
- previousDecade: "গত দশক",
- nextDecade: "পরের দশক",
- previousCentury: "গত শতাব্দী",
- nextCentury: "পরের শতাব্দী"
- },
- timePickerLocale: {
- placeholder: "সময় নির্বাচন",
- rangePlaceholder: ["সময় শুরু", "শেষ সময়"]
- }
- },
- TimePicker: {
- placeholder: "সময় নির্বাচন",
- rangePlaceholder: ["সময় শুরু", "শেষ সময়"]
- },
- Calendar: {
- lang: {
- placeholder: "তারিখ নির্বাচন",
- yearPlaceholder: "বছর নির্বাচন",
- quarterPlaceholder: "কোয়ার্টার নির্বাচন",
- monthPlaceholder: "মাস নির্বাচন",
- weekPlaceholder: "সপ্তাহ নির্বাচন",
- rangePlaceholder: ["শুরুর তারিখ", "শেষ তারিখ"],
- rangeYearPlaceholder: ["শুরুর বছর", "শেষ বছর"],
- rangeMonthPlaceholder: ["শুরুর মাস", "শেষ মাস"],
- rangeWeekPlaceholder: ["শুরুর সপ্তাহ", "শেষ সপ্তাহ"],
- locale: "bn_BD",
- today: "আজ",
- now: "এখন",
- backToToday: "আজকে ফিরে চলুন",
- ok: "ওকে",
- clear: "পরিস্কার",
- month: "মাস",
- year: "বছর",
- timeSelect: "সময় নির্বাচন",
- dateSelect: "তারিখ নির্বাচন",
- weekSelect: "সপ্তাহ পছন্দ করুন",
- monthSelect: "মাস পছন্দ করুন",
- yearSelect: "বছর পছন্দ করুন",
- decadeSelect: "একটি দশক পছন্দ করুন",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "গত মাস (PageUp)",
- nextMonth: "আগামী মাস (PageDown)",
- previousYear: "গত বছর (Control + left)",
- nextYear: "আগামী বছর (Control + right)",
- previousDecade: "গত দশক",
- nextDecade: "পরের দশক",
- previousCentury: "গত শতাব্দী",
- nextCentury: "পরের শতাব্দী"
- },
- timePickerLocale: {
- placeholder: "সময় নির্বাচন",
- rangePlaceholder: ["সময় শুরু", "শেষ সময়"]
- }
- },
- global: {
- placeholder: "অনুগ্রহ করে নির্বাচন করুন"
- },
- Table: {
- filterTitle: "ফিল্টার মেনু",
- filterConfirm: "ঠিক",
- filterReset: "রিসেট",
- filterEmptyText: "ফিল্টার নেই",
- emptyText: "কোনও ডেটা নেই",
- selectAll: "বর্তমান পৃষ্ঠা নির্বাচন করুন",
- selectInvert: "বর্তমান পৃষ্ঠাটি উল্টে দিন",
- selectNone: "সমস্ত ডেটা সাফ করুন",
- selectionAll: "সমস্ত ডেটা নির্বাচন করুন",
- sortTitle: "সাজান",
- expand: "সারি প্রসারিত করুন",
- collapse: "সারি সঙ্কুচিত করুন",
- triggerDesc: "অবতরণকে সাজানোর জন্য ক্লিক করুন",
- triggerAsc: "আরোহী বাছাই করতে ক্লিক করুন",
- cancelSort: "বাছাই বাতিল করতে ক্লিক করুন"
- },
- Modal: {
- okText: "ঠিক",
- cancelText: "বাতিল",
- justOkText: "ঠিক"
- },
- Popconfirm: {
- okText: "ঠিক",
- cancelText: "বাতিল"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "এখানে অনুসন্ধান",
- itemUnit: "আইটেম",
- itemsUnit: "আইটেমসমূহ",
- remove: "অপসারণ",
- selectCurrent: "বর্তমান পৃষ্ঠা নির্বাচন করুন",
- removeCurrent: "বর্তমান পৃষ্ঠাটি সরান",
- selectAll: "সমস্ত ডেটা নির্বাচন করুন",
- removeAll: "সমস্ত ডেটা সরান",
- selectInvert: "বর্তমান পৃষ্ঠাটি উল্টে দিন"
- },
- Upload: {
- uploading: "আপলোড হচ্ছে ...",
- removeFile: "ফাইল সরান",
- uploadError: "আপলোডে সমস্যা",
- previewFile: "ফাইলের পূর্বরূপ",
- downloadFile: "ফাইল ডাউনলোড"
- },
- Empty: {
- description: "কোনও ডেটা নেই"
- },
- Icon: {
- icon: "আইকন"
- },
- Text: {
- edit: "সম্পাদনা",
- copy: "অনুলিপি",
- copied: "অনুলিপি হয়েছে",
- expand: "বিস্তৃত করা"
- },
- PageHeader: {
- back: "পেছনে"
- },
- Image: {
- preview: "পূর্বরূপ"
- }
-};
-var by_BY = {
- locale: "by",
- Pagination: {
- items_per_page: "/старонка",
- jump_to: "Перайсці",
- jump_to_confirm: "Пацвердзіць",
- page: "",
- prev_page: "Назад",
- next_page: "Наперад",
- prev_5: "Папярэднія 5",
- next_5: "Наступныя 5",
- prev_3: "Папярэднія 3",
- next_3: "Наступныя 3",
- page_size: "памер старонкі"
- },
- DatePicker: {
- lang: {
- placeholder: "Выберыце дату",
- yearPlaceholder: "Выберыце год",
- quarterPlaceholder: "Выберыце квартал",
- monthPlaceholder: "Выберыце месяц",
- weekPlaceholder: "Выберыце тыдзень",
- rangePlaceholder: ["Пачатковая дата", "Канчатковая дата"],
- rangeYearPlaceholder: ["Пачатковы год", "Год заканчэння"],
- rangeMonthPlaceholder: ["Пачатковы месяц", "Канчатковы месяц"],
- rangeWeekPlaceholder: ["Пачатковы тыдзень", "Канчатковы тыдзень"],
- locale: "by_BY",
- today: "Сёння",
- now: "Зараз",
- backToToday: "Дадзеная дата",
- ok: "Ok",
- clear: "Ачысціць",
- month: "Месяц",
- year: "Год",
- timeSelect: "Выбраць час",
- dateSelect: "Выбраць дату",
- weekSelect: "Выбраць тыдзень",
- monthSelect: "Выбраць месяц",
- yearSelect: "Выбраць год",
- decadeSelect: "Выбраць дзесяцігоддзе",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Папярэдні месяц (PageUp)",
- nextMonth: "Наступны месяц (PageDown)",
- previousYear: "Папярэдні год (Control + left)",
- nextYear: "Наступны год (Control + right)",
- previousDecade: "Папярэдняе дзесяцігоддзе",
- nextDecade: "Наступнае дзесяцігоддзе",
- previousCentury: "Папярэдні век",
- nextCentury: "Наступны век"
- },
- timePickerLocale: {
- placeholder: "Выберыце час",
- rangePlaceholder: ["Час пачатку", "Час заканчэння"]
- }
- },
- TimePicker: {
- placeholder: "Выберыце час",
- rangePlaceholder: ["Час пачатку", "Час заканчэння"]
- },
- Calendar: {
- lang: {
- placeholder: "Выберыце дату",
- yearPlaceholder: "Выберыце год",
- quarterPlaceholder: "Выберыце квартал",
- monthPlaceholder: "Выберыце месяц",
- weekPlaceholder: "Выберыце тыдзень",
- rangePlaceholder: ["Пачатковая дата", "Канчатковая дата"],
- rangeYearPlaceholder: ["Пачатковы год", "Год заканчэння"],
- rangeMonthPlaceholder: ["Пачатковы месяц", "Канчатковы месяц"],
- rangeWeekPlaceholder: ["Пачатковы тыдзень", "Канчатковы тыдзень"],
- locale: "by_BY",
- today: "Сёння",
- now: "Зараз",
- backToToday: "Дадзеная дата",
- ok: "Ok",
- clear: "Ачысціць",
- month: "Месяц",
- year: "Год",
- timeSelect: "Выбраць час",
- dateSelect: "Выбраць дату",
- weekSelect: "Выбраць тыдзень",
- monthSelect: "Выбраць месяц",
- yearSelect: "Выбраць год",
- decadeSelect: "Выбраць дзесяцігоддзе",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Папярэдні месяц (PageUp)",
- nextMonth: "Наступны месяц (PageDown)",
- previousYear: "Папярэдні год (Control + left)",
- nextYear: "Наступны год (Control + right)",
- previousDecade: "Папярэдняе дзесяцігоддзе",
- nextDecade: "Наступнае дзесяцігоддзе",
- previousCentury: "Папярэдні век",
- nextCentury: "Наступны век"
- },
- timePickerLocale: {
- placeholder: "Выберыце час",
- rangePlaceholder: ["Час пачатку", "Час заканчэння"]
- }
- },
- global: {
- placeholder: "Калі ласка выберыце"
- },
- Table: {
- filterTitle: "Фільтр",
- filterConfirm: "OK",
- filterReset: "Скінуць",
- filterEmptyText: "Без фільтраў",
- emptyText: "Няма дадзеных",
- selectAll: "Выбраць усе",
- selectInvert: "Інвертаваць выбар",
- selectionAll: "Выбраць усе дадзеныя",
- sortTitle: "Сартаванне",
- expand: "Разгарнуць радок",
- collapse: "Згарнуць радок",
- triggerDesc: "Націсніце для сартавання па змяншэнні",
- triggerAsc: "Націсніце для сартавання па ўзросту",
- cancelSort: "Націсніце, каб адмяніць сартаванне"
- },
- Modal: {
- okText: "OK",
- cancelText: "Адмена",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Адмена"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Пошук",
- itemUnit: "элем.",
- itemsUnit: "элем.",
- remove: "Выдаліць",
- selectAll: "Выбраць усе дадзеныя",
- selectCurrent: "Вылучыць дадзеную старонку",
- selectInvert: "Паказаць у зваротным парадку",
- removeAll: "Выдаліць усе дадзеныя",
- removeCurrent: "Выдаліць дадзеную старонку"
- },
- Upload: {
- uploading: "Загрузка...",
- removeFile: "Выдаліць файл",
- uploadError: "Адбылася памылка пры загрузцы",
- previewFile: "Прадпрагляд файла",
- downloadFile: "Загрузіць файл"
- },
- Empty: {
- description: "Няма дадзеных"
- },
- Icon: {
- icon: "Іконка"
- },
- Text: {
- edit: "Рэдагаваць",
- copy: "Капіяваць",
- copied: "Капіяванне завершана",
- expand: "Разгарнуць"
- },
- PageHeader: {
- back: "Назад"
- }
-};
-var ca_ES = {
- locale: "ca",
- Pagination: {
- items_per_page: "/ pàgina",
- jump_to: "Anar a",
- jump_to_confirm: "Confirma",
- page: "",
- prev_page: "Pàgina prèvia",
- next_page: "Pàgina següent",
- prev_5: "5 pàgines prèvies",
- next_5: "5 pàgines següents",
- prev_3: "3 pàgines prèvies",
- next_3: "3 pàgines següents",
- page_size: "mida de la pàgina"
- },
- DatePicker: {
- lang: {
- placeholder: "Seleccionar data",
- rangePlaceholder: ["Data inicial", "Data final"],
- locale: "ca_ES",
- today: "Avui",
- now: "Ara",
- backToToday: "Tornar a avui",
- ok: "Acceptar",
- clear: "Netejar",
- month: "Mes",
- year: "Any",
- timeSelect: "Seleccionar hora",
- dateSelect: "Seleccionar data",
- monthSelect: "Escollir un mes",
- yearSelect: "Escollir un any",
- decadeSelect: "Escollir una dècada",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mes anterior (PageUp)",
- nextMonth: "Mes següent (PageDown)",
- previousYear: "Any anterior (Control + left)",
- nextYear: "Mes següent (Control + right)",
- previousDecade: "Dècada anterior",
- nextDecade: "Dècada següent",
- previousCentury: "Segle anterior",
- nextCentury: "Segle següent"
- },
- timePickerLocale: {
- placeholder: "Seleccionar hora"
- }
- },
- TimePicker: {
- placeholder: "Seleccionar hora"
- },
- Calendar: {
- lang: {
- placeholder: "Seleccionar data",
- rangePlaceholder: ["Data inicial", "Data final"],
- locale: "ca_ES",
- today: "Avui",
- now: "Ara",
- backToToday: "Tornar a avui",
- ok: "Acceptar",
- clear: "Netejar",
- month: "Mes",
- year: "Any",
- timeSelect: "Seleccionar hora",
- dateSelect: "Seleccionar data",
- monthSelect: "Escollir un mes",
- yearSelect: "Escollir un any",
- decadeSelect: "Escollir una dècada",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mes anterior (PageUp)",
- nextMonth: "Mes següent (PageDown)",
- previousYear: "Any anterior (Control + left)",
- nextYear: "Mes següent (Control + right)",
- previousDecade: "Dècada anterior",
- nextDecade: "Dècada següent",
- previousCentury: "Segle anterior",
- nextCentury: "Segle següent"
- },
- timePickerLocale: {
- placeholder: "Seleccionar hora"
- }
- },
- global: {
- placeholder: "Seleccionar"
- },
- Table: {
- filterTitle: "Filtrar el menú",
- filterConfirm: "D’acord",
- filterReset: "Reiniciar",
- filterEmptyText: "Sense filtres",
- selectAll: "Seleccionar la pàgina actual",
- selectInvert: "Invertir la selecció",
- selectionAll: "Seleccionar-ho tot",
- sortTitle: "Ordenar",
- expand: "Ampliar la fila",
- collapse: "Plegar la fila",
- triggerDesc: "Ordre descendent",
- triggerAsc: "Ordre ascendent",
- cancelSort: "Desactivar l’ordre"
- },
- Modal: {
- okText: "D’acord",
- cancelText: "Cancel·lar",
- justOkText: "D’acord"
- },
- Popconfirm: {
- okText: "D’acord",
- cancelText: "Cancel·lar"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Cercar",
- itemUnit: "ítem",
- itemsUnit: "ítems",
- remove: "Eliminar",
- selectCurrent: "Seleccionar la pàgina actual",
- removeCurrent: "Eliminar la selecció",
- selectAll: "Seleccionar-ho tot",
- removeAll: "Eliminar-ho tot",
- selectInvert: "Invertir la selecció"
- },
- Upload: {
- uploading: "Carregant…",
- removeFile: "Eliminar el fitxer",
- uploadError: "Error de càrrega",
- previewFile: "Vista prèvia del fitxer",
- downloadFile: "Baixar el fitxer"
- },
- Empty: {
- description: "Sense dades"
- },
- Icon: {
- icon: "icona"
- },
- Text: {
- edit: "Editar",
- copy: "Copiar",
- copied: "Copiat",
- expand: "Ampliar"
- },
- PageHeader: {
- back: "Enrere"
- }
-};
-var cs_CZ = {
- locale: "cs",
- Pagination: {
- items_per_page: "/ strana",
- jump_to: "Přejít",
- jump_to_confirm: "potvrdit",
- page: "",
- prev_page: "Předchozí strana",
- next_page: "Následující strana",
- prev_5: "Předchozích 5 stran",
- next_5: "Následujících 5 stran",
- prev_3: "Předchozí 3 strany",
- next_3: "Následující 3 strany",
- page_size: "velikost stránky"
- },
- DatePicker: {
- lang: {
- placeholder: "Vybrat datum",
- rangePlaceholder: ["Od", "Do"],
- locale: "cs_CZ",
- today: "Dnes",
- now: "Nyní",
- backToToday: "Zpět na dnešek",
- ok: "Ok",
- clear: "Vymazat",
- month: "Měsíc",
- year: "Rok",
- timeSelect: "Vybrat čas",
- dateSelect: "Vybrat datum",
- monthSelect: "Vyberte měsíc",
- yearSelect: "Vyberte rok",
- decadeSelect: "Vyberte dekádu",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Předchozí měsíc (PageUp)",
- nextMonth: "Následující (PageDown)",
- previousYear: "Předchozí rok (Control + left)",
- nextYear: "Následující rok (Control + right)",
- previousDecade: "Předchozí dekáda",
- nextDecade: "Následující dekáda",
- previousCentury: "Předchozí století",
- nextCentury: "Následující století"
- },
- timePickerLocale: {
- placeholder: "Vybrat čas"
- }
- },
- TimePicker: {
- placeholder: "Vybrat čas"
- },
- Calendar: {
- lang: {
- placeholder: "Vybrat datum",
- rangePlaceholder: ["Od", "Do"],
- locale: "cs_CZ",
- today: "Dnes",
- now: "Nyní",
- backToToday: "Zpět na dnešek",
- ok: "Ok",
- clear: "Vymazat",
- month: "Měsíc",
- year: "Rok",
- timeSelect: "Vybrat čas",
- dateSelect: "Vybrat datum",
- monthSelect: "Vyberte měsíc",
- yearSelect: "Vyberte rok",
- decadeSelect: "Vyberte dekádu",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Předchozí měsíc (PageUp)",
- nextMonth: "Následující (PageDown)",
- previousYear: "Předchozí rok (Control + left)",
- nextYear: "Následující rok (Control + right)",
- previousDecade: "Předchozí dekáda",
- nextDecade: "Následující dekáda",
- previousCentury: "Předchozí století",
- nextCentury: "Následující století"
- },
- timePickerLocale: {
- placeholder: "Vybrat čas"
- }
- },
- global: {
- placeholder: "Prosím vyber"
- },
- Table: {
- filterTitle: "Filtr",
- filterConfirm: "Potvrdit",
- filterReset: "Obnovit",
- filterEmptyText: "Žádné filtry",
- selectAll: "Vybrat všechny řádky na současné stránce",
- selectInvert: "Invertovat výběr na současné stránce",
- selectionAll: "Vybrat všechny řádky",
- sortTitle: "Řadit",
- expand: "Rozbalit řádek",
- collapse: "Zabalit řádek",
- triggerDesc: "Klikni pro sestupné řazení",
- triggerAsc: "Klikni pro vzestupné řazení",
- cancelSort: "Klikni pro zrušení řazení"
- },
- Modal: {
- okText: "OK",
- cancelText: "Storno",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Storno"
- },
- Transfer: {
- searchPlaceholder: "Vyhledávání",
- itemUnit: "položka",
- itemsUnit: "položek"
- },
- Upload: {
- uploading: "Nahrávání...",
- removeFile: "Odstranit soubor",
- uploadError: "Chyba při nahrávání",
- previewFile: "Zobrazit soubor",
- downloadFile: "Stáhnout soubor"
- },
- Empty: {
- description: "Žádná data"
- }
-};
-var da_DK = {
- locale: "da",
- DatePicker: {
- lang: {
- placeholder: "Vælg dato",
- rangePlaceholder: ["Startdato", "Slutdato"],
- locale: "da_DK",
- today: "I dag",
- now: "Nu",
- backToToday: "Gå til i dag",
- ok: "Ok",
- clear: "Ryd",
- month: "Måned",
- year: "År",
- timeSelect: "Vælg tidspunkt",
- dateSelect: "Vælg dato",
- monthSelect: "Vælg måned",
- yearSelect: "Vælg år",
- decadeSelect: "Vælg årti",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Forrige måned (Page Up)",
- nextMonth: "Næste måned (Page Down)",
- previousYear: "Forrige år (Ctrl-venstre pil)",
- nextYear: "Næste år (Ctrl-højre pil)",
- previousDecade: "Forrige årti",
- nextDecade: "Næste årti",
- previousCentury: "Forrige århundrede",
- nextCentury: "Næste århundrede"
- },
- timePickerLocale: {
- placeholder: "Vælg tid",
- rangePlaceholder: ["Starttidspunkt", "Sluttidspunkt"]
- }
- },
- TimePicker: {
- placeholder: "Vælg tid",
- rangePlaceholder: ["Starttidspunkt", "Sluttidspunkt"]
- },
- Calendar: {
- lang: {
- placeholder: "Vælg dato",
- rangePlaceholder: ["Startdato", "Slutdato"],
- locale: "da_DK",
- today: "I dag",
- now: "Nu",
- backToToday: "Gå til i dag",
- ok: "Ok",
- clear: "Ryd",
- month: "Måned",
- year: "År",
- timeSelect: "Vælg tidspunkt",
- dateSelect: "Vælg dato",
- monthSelect: "Vælg måned",
- yearSelect: "Vælg år",
- decadeSelect: "Vælg årti",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Forrige måned (Page Up)",
- nextMonth: "Næste måned (Page Down)",
- previousYear: "Forrige år (Ctrl-venstre pil)",
- nextYear: "Næste år (Ctrl-højre pil)",
- previousDecade: "Forrige årti",
- nextDecade: "Næste årti",
- previousCentury: "Forrige århundrede",
- nextCentury: "Næste århundrede"
- },
- timePickerLocale: {
- placeholder: "Vælg tid",
- rangePlaceholder: ["Starttidspunkt", "Sluttidspunkt"]
- }
- },
- Pagination: {
- items_per_page: "/ side",
- jump_to: "Gå til",
- jump_to_confirm: "bekræft",
- page: "Side",
- prev_page: "Forrige Side",
- next_page: "Næste Side",
- prev_5: "Forrige 5 Sider",
- next_5: "Næste 5 Sider",
- prev_3: "Forrige 3 Sider",
- next_3: "Næste 3 Sider",
- page_size: "sidestørrelse"
- },
- Table: {
- filterTitle: "Filtermenu",
- filterConfirm: "OK",
- filterReset: "Nulstil",
- selectAll: "Vælg alle",
- selectInvert: "Invertér valg",
- filterEmptyText: "Ingen filtre",
- emptyText: "Ingen data",
- selectNone: "Ryd alt data",
- selectionAll: "Vælg alt data",
- sortTitle: "Sortér",
- expand: "Udvid række",
- collapse: "Flet række",
- triggerDesc: "Klik for at sortere faldende",
- triggerAsc: "Klik for at sortere stigende",
- cancelSort: "Klik for at annullere sortering"
- },
- Modal: {
- okText: "OK",
- cancelText: "Afbryd",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Afbryd"
- },
- Transfer: {
- searchPlaceholder: "Søg her",
- itemUnit: "element",
- itemsUnit: "elementer"
- },
- Upload: {
- uploading: "Uploader...",
- removeFile: "Fjern fil",
- uploadError: "Fejl ved upload",
- previewFile: "Forhåndsvisning",
- downloadFile: "Download fil"
- },
- Empty: {
- description: "Ingen data"
- }
-};
-var de_DE = {
- locale: "de",
- Pagination: {
- items_per_page: "/ Seite",
- jump_to: "Gehe zu",
- jump_to_confirm: "bestätigen",
- page: "Seite",
- prev_page: "Vorherige Seite",
- next_page: "Nächste Seite",
- prev_5: "5 Seiten zurück",
- next_5: "5 Seiten vor",
- prev_3: "3 Seiten zurück",
- next_3: "3 Seiten vor",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Datum auswählen",
- yearPlaceholder: "Jahr auswählen",
- quarterPlaceholder: "Quartal auswählen",
- monthPlaceholder: "Monat auswählen",
- weekPlaceholder: "Woche auswählen",
- rangePlaceholder: ["Startdatum", "Enddatum"],
- rangeYearPlaceholder: ["Startjahr", "Endjahr"],
- rangeMonthPlaceholder: ["Startmonat", "Endmonat"],
- rangeWeekPlaceholder: ["Startwoche", "Endwoche"],
- locale: "de_DE",
- today: "Heute",
- now: "Jetzt",
- backToToday: "Zurück zu Heute",
- ok: "OK",
- clear: "Zurücksetzen",
- month: "Monat",
- year: "Jahr",
- timeSelect: "Zeit wählen",
- dateSelect: "Datum wählen",
- weekSelect: "Woche wählen",
- monthSelect: "Wähle einen Monat",
- yearSelect: "Wähle ein Jahr",
- decadeSelect: "Wähle ein Jahrzehnt",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Vorheriger Monat (PageUp)",
- nextMonth: "Nächster Monat (PageDown)",
- previousYear: "Vorheriges Jahr (Ctrl + left)",
- nextYear: "Nächstes Jahr (Ctrl + right)",
- previousDecade: "Vorheriges Jahrzehnt",
- nextDecade: "Nächstes Jahrzehnt",
- previousCentury: "Vorheriges Jahrhundert",
- nextCentury: "Nächstes Jahrhundert"
- },
- timePickerLocale: {
- placeholder: "Zeit auswählen",
- rangePlaceholder: ["Startzeit", "Endzeit"]
- }
- },
- TimePicker: {
- placeholder: "Zeit auswählen"
- },
- Calendar: {
- lang: {
- placeholder: "Datum auswählen",
- yearPlaceholder: "Jahr auswählen",
- quarterPlaceholder: "Quartal auswählen",
- monthPlaceholder: "Monat auswählen",
- weekPlaceholder: "Woche auswählen",
- rangePlaceholder: ["Startdatum", "Enddatum"],
- rangeYearPlaceholder: ["Startjahr", "Endjahr"],
- rangeMonthPlaceholder: ["Startmonat", "Endmonat"],
- rangeWeekPlaceholder: ["Startwoche", "Endwoche"],
- locale: "de_DE",
- today: "Heute",
- now: "Jetzt",
- backToToday: "Zurück zu Heute",
- ok: "OK",
- clear: "Zurücksetzen",
- month: "Monat",
- year: "Jahr",
- timeSelect: "Zeit wählen",
- dateSelect: "Datum wählen",
- weekSelect: "Woche wählen",
- monthSelect: "Wähle einen Monat",
- yearSelect: "Wähle ein Jahr",
- decadeSelect: "Wähle ein Jahrzehnt",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Vorheriger Monat (PageUp)",
- nextMonth: "Nächster Monat (PageDown)",
- previousYear: "Vorheriges Jahr (Ctrl + left)",
- nextYear: "Nächstes Jahr (Ctrl + right)",
- previousDecade: "Vorheriges Jahrzehnt",
- nextDecade: "Nächstes Jahrzehnt",
- previousCentury: "Vorheriges Jahrhundert",
- nextCentury: "Nächstes Jahrhundert"
- },
- timePickerLocale: {
- placeholder: "Zeit auswählen",
- rangePlaceholder: ["Startzeit", "Endzeit"]
- }
- },
- global: {
- placeholder: "Bitte auswählen"
- },
- Table: {
- filterTitle: "Filter-Menü",
- filterConfirm: "OK",
- filterReset: "Zurücksetzen",
- filterEmptyText: "Keine Filter",
- emptyText: "Keine Daten",
- selectAll: "Selektiere Alle",
- selectInvert: "Selektion Invertieren",
- selectionAll: "Wählen Sie alle Daten aus",
- sortTitle: "Sortieren",
- expand: "Zeile erweitern",
- collapse: "Zeile reduzieren",
- triggerDesc: "Klicken zur absteigenden Sortierung",
- triggerAsc: "Klicken zur aufsteigenden Sortierung",
- cancelSort: "Klicken zum Abbrechen der Sortierung"
- },
- Modal: {
- okText: "OK",
- cancelText: "Abbrechen",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Abbrechen"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Suchen",
- itemUnit: "Eintrag",
- itemsUnit: "Einträge",
- remove: "Entfernen",
- selectCurrent: "Alle auf aktueller Seite auswählen",
- removeCurrent: "Auswahl auf aktueller Seite aufheben",
- selectAll: "Alle auswählen",
- removeAll: "Auswahl aufheben",
- selectInvert: "Auswahl umkehren"
- },
- Upload: {
- uploading: "Hochladen...",
- removeFile: "Datei entfernen",
- uploadError: "Fehler beim Hochladen",
- previewFile: "Dateivorschau",
- downloadFile: "Download-Datei"
- },
- Empty: {
- description: "Keine Daten"
- },
- Text: {
- edit: "Bearbeiten",
- copy: "Kopieren",
- copied: "Kopiert",
- expand: "Erweitern"
- },
- PageHeader: {
- back: "Zurück"
- },
- Image: {
- preview: "Vorschau"
- }
-};
-var el_GR = {
- locale: "el",
- Pagination: {
- items_per_page: "/ σελίδα",
- jump_to: "Μετάβαση",
- jump_to_confirm: "επιβεβαιώνω",
- page: "",
- prev_page: "Προηγούμενη Σελίδα",
- next_page: "Επόμενη Σελίδα",
- prev_5: "Προηγούμενες 5 Σελίδες",
- next_5: "Επόμενες 5 σελίδες",
- prev_3: "Προηγούμενες 3 Σελίδες",
- next_3: "Επόμενες 3 Σελίδες",
- page_size: "Μέγεθος σελίδας"
- },
- DatePicker: {
- lang: {
- placeholder: "Επιλέξτε ημερομηνία",
- rangePlaceholder: ["Αρχική ημερομηνία", "Τελική ημερομηνία"],
- locale: "el_GR",
- today: "Σήμερα",
- now: "Τώρα",
- backToToday: "Πίσω στη σημερινή μέρα",
- ok: "Ok",
- clear: "Καθαρισμός",
- month: "Μήνας",
- year: "Έτος",
- timeSelect: "Επιλογή ώρας",
- dateSelect: "Επιλογή ημερομηνίας",
- monthSelect: "Επιλογή μήνα",
- yearSelect: "Επιλογή έτους",
- decadeSelect: "Επιλογή δεκαετίας",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Προηγούμενος μήνας (PageUp)",
- nextMonth: "Επόμενος μήνας (PageDown)",
- previousYear: "Προηγούμενο έτος (Control + αριστερά)",
- nextYear: "Επόμενο έτος (Control + δεξιά)",
- previousDecade: "Προηγούμενη δεκαετία",
- nextDecade: "Επόμενη δεκαετία",
- previousCentury: "Προηγούμενος αιώνας",
- nextCentury: "Επόμενος αιώνας"
- },
- timePickerLocale: {
- placeholder: "Επιλέξτε ώρα"
- }
- },
- TimePicker: {
- placeholder: "Επιλέξτε ώρα"
- },
- Calendar: {
- lang: {
- placeholder: "Επιλέξτε ημερομηνία",
- rangePlaceholder: ["Αρχική ημερομηνία", "Τελική ημερομηνία"],
- locale: "el_GR",
- today: "Σήμερα",
- now: "Τώρα",
- backToToday: "Πίσω στη σημερινή μέρα",
- ok: "Ok",
- clear: "Καθαρισμός",
- month: "Μήνας",
- year: "Έτος",
- timeSelect: "Επιλογή ώρας",
- dateSelect: "Επιλογή ημερομηνίας",
- monthSelect: "Επιλογή μήνα",
- yearSelect: "Επιλογή έτους",
- decadeSelect: "Επιλογή δεκαετίας",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Προηγούμενος μήνας (PageUp)",
- nextMonth: "Επόμενος μήνας (PageDown)",
- previousYear: "Προηγούμενο έτος (Control + αριστερά)",
- nextYear: "Επόμενο έτος (Control + δεξιά)",
- previousDecade: "Προηγούμενη δεκαετία",
- nextDecade: "Επόμενη δεκαετία",
- previousCentury: "Προηγούμενος αιώνας",
- nextCentury: "Επόμενος αιώνας"
- },
- timePickerLocale: {
- placeholder: "Επιλέξτε ώρα"
- }
- },
- Table: {
- filterTitle: "Μενού φίλτρων",
- filterConfirm: "ΟΚ",
- filterReset: "Επαναφορά",
- selectAll: "Επιλογή τρέχουσας σελίδας",
- selectInvert: "Αντιστροφή τρέχουσας σελίδας"
- },
- Modal: {
- okText: "ΟΚ",
- cancelText: "Άκυρο",
- justOkText: "ΟΚ"
- },
- Popconfirm: {
- okText: "ΟΚ",
- cancelText: "Άκυρο"
- },
- Transfer: {
- searchPlaceholder: "Αναζήτηση",
- itemUnit: "αντικείμενο",
- itemsUnit: "αντικείμενα"
- },
- Upload: {
- uploading: "Μεταφόρτωση...",
- removeFile: "Αφαίρεση αρχείου",
- uploadError: "Σφάλμα μεταφόρτωσης",
- previewFile: "Προεπισκόπηση αρχείου",
- downloadFile: "Λήψη αρχείου"
- },
- Empty: {
- description: "Δεν υπάρχουν δεδομένα"
- }
-};
-var en_GB = {
- locale: "en-gb",
- Pagination: {
- items_per_page: "/ page",
- jump_to: "Go to",
- jump_to_confirm: "confirm",
- page: "Page",
- prev_page: "Previous Page",
- next_page: "Next Page",
- prev_5: "Previous 5 Pages",
- next_5: "Next 5 Pages",
- prev_3: "Previous 3 Pages",
- next_3: "Next 3 Pages",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Select date",
- yearPlaceholder: "Select year",
- quarterPlaceholder: "Select quarter",
- monthPlaceholder: "Select month",
- weekPlaceholder: "Select week",
- rangePlaceholder: ["Start date", "End date"],
- rangeYearPlaceholder: ["Start year", "End year"],
- rangeMonthPlaceholder: ["Start month", "End month"],
- rangeWeekPlaceholder: ["Start week", "End week"],
- locale: "en_GB",
- today: "Today",
- now: "Now",
- backToToday: "Back to today",
- ok: "Ok",
- clear: "Clear",
- month: "Month",
- year: "Year",
- timeSelect: "Select time",
- dateSelect: "Select date",
- weekSelect: "Choose a week",
- monthSelect: "Choose a month",
- yearSelect: "Choose a year",
- decadeSelect: "Choose a decade",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Previous month (PageUp)",
- nextMonth: "Next month (PageDown)",
- previousYear: "Last year (Control + left)",
- nextYear: "Next year (Control + right)",
- previousDecade: "Last decade",
- nextDecade: "Next decade",
- previousCentury: "Last century",
- nextCentury: "Next century"
- },
- timePickerLocale: {
- placeholder: "Select time",
- rangePlaceholder: ["Start time", "End time"]
- }
- },
- TimePicker: {
- placeholder: "Select time",
- rangePlaceholder: ["Start time", "End time"]
- },
- Calendar: {
- lang: {
- placeholder: "Select date",
- yearPlaceholder: "Select year",
- quarterPlaceholder: "Select quarter",
- monthPlaceholder: "Select month",
- weekPlaceholder: "Select week",
- rangePlaceholder: ["Start date", "End date"],
- rangeYearPlaceholder: ["Start year", "End year"],
- rangeMonthPlaceholder: ["Start month", "End month"],
- rangeWeekPlaceholder: ["Start week", "End week"],
- locale: "en_GB",
- today: "Today",
- now: "Now",
- backToToday: "Back to today",
- ok: "Ok",
- clear: "Clear",
- month: "Month",
- year: "Year",
- timeSelect: "Select time",
- dateSelect: "Select date",
- weekSelect: "Choose a week",
- monthSelect: "Choose a month",
- yearSelect: "Choose a year",
- decadeSelect: "Choose a decade",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Previous month (PageUp)",
- nextMonth: "Next month (PageDown)",
- previousYear: "Last year (Control + left)",
- nextYear: "Next year (Control + right)",
- previousDecade: "Last decade",
- nextDecade: "Next decade",
- previousCentury: "Last century",
- nextCentury: "Next century"
- },
- timePickerLocale: {
- placeholder: "Select time",
- rangePlaceholder: ["Start time", "End time"]
- }
- },
- global: {
- placeholder: "Please select"
- },
- Table: {
- filterTitle: "Filter menu",
- filterConfirm: "OK",
- filterReset: "Reset",
- filterEmptyText: "No filters",
- emptyText: "No data",
- selectAll: "Select current page",
- selectInvert: "Invert current page",
- selectionAll: "Select all data",
- sortTitle: "Sort",
- expand: "Expand row",
- collapse: "Collapse row",
- triggerDesc: "Click to sort descending",
- triggerAsc: "Click to sort ascending",
- cancelSort: "Click to cancel sorting",
- selectNone: "Clear all data"
- },
- Modal: {
- okText: "OK",
- cancelText: "Cancel",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Cancel"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Search here",
- itemUnit: "item",
- itemsUnit: "items",
- remove: "Remove",
- selectCurrent: "Select current page",
- removeCurrent: "Remove current page",
- selectAll: "Select all data",
- removeAll: "Remove all data",
- selectInvert: "Invert current page"
- },
- Upload: {
- uploading: "Uploading...",
- removeFile: "Remove file",
- uploadError: "Upload error",
- previewFile: "Preview file",
- downloadFile: "Download file"
- },
- Empty: {
- description: "No data"
- },
- Icon: {
- icon: "icon"
- },
- Text: {
- edit: "Edit",
- copy: "Copy",
- copied: "Copied",
- expand: "Expand"
- },
- PageHeader: {
- back: "Back"
- }
-};
-var es_ES = {
- locale: "es",
- Pagination: {
- items_per_page: "/ página",
- jump_to: "Ir a",
- jump_to_confirm: "confirmar",
- page: "Página",
- prev_page: "Página anterior",
- next_page: "Página siguiente",
- prev_5: "5 páginas previas",
- next_5: "5 páginas siguientes",
- prev_3: "3 páginas previas",
- next_3: "3 páginas siguientes",
- page_size: "tamaño de página"
- },
- DatePicker: {
- lang: {
- placeholder: "Seleccionar fecha",
- yearPlaceholder: "Seleccionar año",
- quarterPlaceholder: "Seleccionar trimestre",
- monthPlaceholder: "Seleccionar mes",
- weekPlaceholder: "Seleccionar semana",
- rangePlaceholder: ["Fecha inicial", "Fecha final"],
- rangeYearPlaceholder: ["Año inicial", "Año final"],
- rangeMonthPlaceholder: ["Mes inicial", "Mes final"],
- rangeWeekPlaceholder: ["Semana inicial", "Semana final"],
- locale: "es_ES",
- today: "Hoy",
- now: "Ahora",
- backToToday: "Volver a hoy",
- ok: "Aceptar",
- clear: "Limpiar",
- month: "Mes",
- year: "Año",
- timeSelect: "Seleccionar hora",
- dateSelect: "Seleccionar fecha",
- weekSelect: "Elegir una semana",
- monthSelect: "Elegir un mes",
- yearSelect: "Elegir un año",
- decadeSelect: "Elegir una década",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mes anterior (PageUp)",
- nextMonth: "Mes siguiente (PageDown)",
- previousYear: "Año anterior (Control + left)",
- nextYear: "Año siguiente (Control + right)",
- previousDecade: "Década anterior",
- nextDecade: "Década siguiente",
- previousCentury: "Siglo anterior",
- nextCentury: "Siglo siguiente"
- },
- timePickerLocale: {
- placeholder: "Seleccionar hora",
- rangePlaceholder: ["Hora inicial", "Hora final"]
- }
- },
- TimePicker: {
- placeholder: "Seleccionar hora",
- rangePlaceholder: ["Hora inicial", "Hora final"]
- },
- Calendar: {
- lang: {
- placeholder: "Seleccionar fecha",
- yearPlaceholder: "Seleccionar año",
- quarterPlaceholder: "Seleccionar trimestre",
- monthPlaceholder: "Seleccionar mes",
- weekPlaceholder: "Seleccionar semana",
- rangePlaceholder: ["Fecha inicial", "Fecha final"],
- rangeYearPlaceholder: ["Año inicial", "Año final"],
- rangeMonthPlaceholder: ["Mes inicial", "Mes final"],
- rangeWeekPlaceholder: ["Semana inicial", "Semana final"],
- locale: "es_ES",
- today: "Hoy",
- now: "Ahora",
- backToToday: "Volver a hoy",
- ok: "Aceptar",
- clear: "Limpiar",
- month: "Mes",
- year: "Año",
- timeSelect: "Seleccionar hora",
- dateSelect: "Seleccionar fecha",
- weekSelect: "Elegir una semana",
- monthSelect: "Elegir un mes",
- yearSelect: "Elegir un año",
- decadeSelect: "Elegir una década",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mes anterior (AvPág)",
- nextMonth: "Mes siguiente (RePág)",
- previousYear: "Año anterior (Control + izquierda)",
- nextYear: "Año siguiente (Control + derecha)",
- previousDecade: "Década anterior",
- nextDecade: "Década siguiente",
- previousCentury: "Siglo anterior",
- nextCentury: "Siglo siguiente"
- },
- timePickerLocale: {
- placeholder: "Seleccionar hora",
- rangePlaceholder: ["Hora inicial", "Hora final"]
- }
- },
- global: {
- placeholder: "Seleccione"
- },
- Table: {
- filterTitle: "Filtrar menú",
- filterConfirm: "Aceptar",
- filterReset: "Reiniciar",
- filterEmptyText: "Sin filtros",
- emptyText: "Sin datos",
- selectAll: "Seleccionar todo",
- selectInvert: "Invertir selección",
- selectionAll: "Seleccionar todos los datos",
- sortTitle: "Ordenar",
- expand: "Expandir fila",
- collapse: "Colapsar fila",
- triggerDesc: "Click para ordenar descendentemente",
- triggerAsc: "Click para ordenar ascendentemenre",
- cancelSort: "Click para cancelar ordenación",
- filterCheckall: "Seleccionar todos los filtros",
- filterSearchPlaceholder: "Buscar en filtros",
- selectNone: "Vaciar todo"
- },
- Modal: {
- okText: "Aceptar",
- cancelText: "Cancelar",
- justOkText: "Aceptar"
- },
- Popconfirm: {
- okText: "Aceptar",
- cancelText: "Cancelar"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Buscar aquí",
- itemUnit: "elemento",
- itemsUnit: "elementos",
- remove: "Eliminar",
- selectCurrent: "Seleccionar página actual",
- removeCurrent: "Eliminar página actual",
- selectAll: "Seleccionar todos los datos",
- removeAll: "Eliminar todos los datos",
- selectInvert: "Invertir página actual"
- },
- Upload: {
- uploading: "Subiendo...",
- removeFile: "Eliminar archivo",
- uploadError: "Error al subir el archivo",
- previewFile: "Vista previa",
- downloadFile: "Descargar archivo"
- },
- Empty: {
- description: "No hay datos"
- },
- Icon: {
- icon: "icono"
- },
- Text: {
- edit: "Editar",
- copy: "Copiar",
- copied: "Copiado",
- expand: "Expandir"
- },
- PageHeader: {
- back: "Volver"
- },
- Image: {
- preview: "Previsualización"
- }
-};
-var et_EE = {
- locale: "et",
- Pagination: {
- items_per_page: "/ leheküljel",
- jump_to: "Hüppa",
- jump_to_confirm: "Kinnitage",
- page: "",
- prev_page: "Eelmine leht",
- next_page: "Järgmine leht",
- prev_5: "Eelmised 5 lehekülge",
- next_5: "Järgmised 5 lehekülge",
- prev_3: "Eelmised 3 lehekülge",
- next_3: "Järgmised 3 lehekülge",
- page_size: "lehe suurus"
- },
- DatePicker: {
- lang: {
- placeholder: "Vali kuupäev",
- rangePlaceholder: ["Algus kuupäev", "Lõpu kuupäev"],
- locale: "et_EE",
- today: "Täna",
- now: "Praegu",
- backToToday: "Tagasi tänase juurde",
- ok: "Ok",
- clear: "Tühista",
- month: "Kuu",
- year: "Aasta",
- timeSelect: "Vali aeg",
- dateSelect: "Vali kuupäev",
- monthSelect: "Vali kuu",
- yearSelect: "Vali aasta",
- decadeSelect: "Vali dekaad",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Eelmine kuu (PageUp)",
- nextMonth: "Järgmine kuu (PageDown)",
- previousYear: "Eelmine aasta (Control + left)",
- nextYear: "Järgmine aasta (Control + right)",
- previousDecade: "Eelmine dekaad",
- nextDecade: "Järgmine dekaad",
- previousCentury: "Eelmine sajand",
- nextCentury: "Järgmine sajand"
- },
- timePickerLocale: {
- placeholder: "Vali aeg"
- }
- },
- TimePicker: {
- placeholder: "Vali aeg"
- },
- Calendar: {
- lang: {
- placeholder: "Vali kuupäev",
- rangePlaceholder: ["Algus kuupäev", "Lõpu kuupäev"],
- locale: "et_EE",
- today: "Täna",
- now: "Praegu",
- backToToday: "Tagasi tänase juurde",
- ok: "Ok",
- clear: "Tühista",
- month: "Kuu",
- year: "Aasta",
- timeSelect: "Vali aeg",
- dateSelect: "Vali kuupäev",
- monthSelect: "Vali kuu",
- yearSelect: "Vali aasta",
- decadeSelect: "Vali dekaad",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Eelmine kuu (PageUp)",
- nextMonth: "Järgmine kuu (PageDown)",
- previousYear: "Eelmine aasta (Control + left)",
- nextYear: "Järgmine aasta (Control + right)",
- previousDecade: "Eelmine dekaad",
- nextDecade: "Järgmine dekaad",
- previousCentury: "Eelmine sajand",
- nextCentury: "Järgmine sajand"
- },
- timePickerLocale: {
- placeholder: "Vali aeg"
- }
- },
- Table: {
- filterTitle: "Filtri menüü",
- filterConfirm: "OK",
- filterReset: "Nulli",
- selectAll: "Vali kõik",
- selectInvert: "Inverteeri valik",
- filterEmptyText: "Filtreid pole",
- filterCheckall: "Vali kõik",
- filterSearchPlaceholder: "Otsi filtritest",
- emptyText: "Andmed puuduvad",
- selectNone: "Kustuta kõik andmed",
- selectionAll: "Vali kõik andmed",
- sortTitle: "Sorteeri",
- expand: "Laienda rida",
- collapse: "Ahenda rida",
- triggerDesc: "Klõpsa kahanevalt sortimiseks",
- triggerAsc: "Klõpsa kasvavalt sortimiseks",
- cancelSort: "Klõpsa sortimise tühistamiseks"
- },
- Modal: {
- okText: "OK",
- cancelText: "Tühista",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Tühista"
- },
- Transfer: {
- searchPlaceholder: "Otsi siit",
- itemUnit: "kogus",
- itemsUnit: "kogused",
- titles: ["", ""],
- remove: "Eemalda",
- selectCurrent: "Vali praegune leht",
- removeCurrent: "Eemalda praegune leht",
- selectAll: "Vali kõik",
- removeAll: "Eemalda kõik andmed",
- selectInvert: "Inverteeri valik"
- },
- Upload: {
- uploading: "Üleslaadimine...",
- removeFile: "Eemalda fail",
- uploadError: "Üleslaadimise tõrge",
- previewFile: "Faili eelvaade",
- downloadFile: "Lae fail alla"
- },
- Empty: {
- description: "Andmed puuduvad"
- },
- global: {
- placeholder: "Palun vali"
- },
- Icon: {
- icon: "ikoon"
- },
- Text: {
- edit: "Muuda",
- copy: "Kopeeri",
- copied: "Kopeeritud",
- expand: "Laienda"
- },
- PageHeader: {
- back: "Tagasi"
- },
- Image: {
- preview: "Eelvaade"
- }
-};
-var fa_IR = {
- locale: "fa",
- Pagination: {
- items_per_page: "/ صفحه",
- jump_to: "برو به",
- jump_to_confirm: "تایید",
- page: "",
- prev_page: "صفحه قبلی",
- next_page: "صفحه بعدی",
- prev_5: "۵ صفحه قبلی",
- next_5: "۵ صفحه بعدی",
- prev_3: "۳ صفحه قبلی",
- next_3: "۳ صفحه بعدی",
- page_size: "اندازه صفحه"
- },
- DatePicker: {
- lang: {
- placeholder: "انتخاب تاریخ",
- yearPlaceholder: "انتخاب سال",
- quarterPlaceholder: "انتخاب فصل",
- monthPlaceholder: "انتخاب ماه",
- weekPlaceholder: "انتخاب هفته",
- rangePlaceholder: ["تاریخ شروع", "تاریخ پایان"],
- rangeYearPlaceholder: ["سال شروع", "سال پایان"],
- rangeMonthPlaceholder: ["ماه شروع", "ماه پایان"],
- rangeWeekPlaceholder: ["هفته شروع", "هفته پایان"],
- locale: "fa_IR",
- today: "امروز",
- now: "اکنون",
- backToToday: "بازگشت به روز",
- ok: "باشه",
- clear: "پاک کردن",
- month: "ماه",
- year: "سال",
- timeSelect: "انتخاب زمان",
- dateSelect: "انتخاب تاریخ",
- weekSelect: "یک هفته رو انتخاب کنید",
- monthSelect: "یک ماه را انتخاب کنید",
- yearSelect: "یک سال را انتخاب کنید",
- decadeSelect: "یک دهه را انتخاب کنید",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "ماه قبل (PageUp)",
- nextMonth: "ماه بعد (PageDown)",
- previousYear: "سال قبل (Control + left)",
- nextYear: "سال بعد (Control + right)",
- previousDecade: "دهه قبل",
- nextDecade: "دهه بعد",
- previousCentury: "قرن قبل",
- nextCentury: "قرن بعد"
- },
- timePickerLocale: {
- placeholder: "انتخاب زمان",
- rangePlaceholder: ["زمان شروع", "زمان پایان"]
- }
- },
- TimePicker: {
- placeholder: "انتخاب زمان",
- rangePlaceholder: ["زمان شروع", "زمان پایان"]
- },
- Calendar: {
- lang: {
- placeholder: "انتخاب تاریخ",
- yearPlaceholder: "انتخاب سال",
- quarterPlaceholder: "انتخاب فصل",
- monthPlaceholder: "انتخاب ماه",
- weekPlaceholder: "انتخاب هفته",
- rangePlaceholder: ["تاریخ شروع", "تاریخ پایان"],
- rangeYearPlaceholder: ["سال شروع", "سال پایان"],
- rangeMonthPlaceholder: ["ماه شروع", "ماه پایان"],
- rangeWeekPlaceholder: ["هفته شروع", "هفته پایان"],
- locale: "fa_IR",
- today: "امروز",
- now: "اکنون",
- backToToday: "بازگشت به روز",
- ok: "باشه",
- clear: "پاک کردن",
- month: "ماه",
- year: "سال",
- timeSelect: "انتخاب زمان",
- dateSelect: "انتخاب تاریخ",
- weekSelect: "انتخاب هفته",
- monthSelect: "یک ماه را انتخاب کنید",
- yearSelect: "یک سال را انتخاب کنید",
- decadeSelect: "یک دهه را انتخاب کنید",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "ماه قبل (PageUp)",
- nextMonth: "ماه بعد (PageDown)",
- previousYear: "سال قبل (Control + left)",
- nextYear: "سال بعد (Control + right)",
- previousDecade: "دهه قبل",
- nextDecade: "دهه بعد",
- previousCentury: "قرن قبل",
- nextCentury: "قرن بعد"
- },
- timePickerLocale: {
- placeholder: "انتخاب زمان",
- rangePlaceholder: ["زمان شروع", "زمان پایان"]
- }
- },
- global: {
- placeholder: "لطفا انتخاب کنید"
- },
- Table: {
- filterTitle: "منوی فیلتر",
- filterConfirm: "تایید",
- filterReset: "پاک کردن",
- filterEmptyText: "بدون فیلتر",
- emptyText: "بدون داده",
- selectAll: "انتخاب صفحهی کنونی",
- selectInvert: "معکوس کردن انتخابها در صفحه ی کنونی",
- selectionAll: "انتخاب همه دادهها",
- sortTitle: "مرتب سازی",
- expand: "باز شدن ردیف",
- collapse: "بستن ردیف",
- triggerDesc: "ترتیب نزولی",
- triggerAsc: "ترتیب صعودی",
- cancelSort: "لغوِ ترتیبِ داده شده",
- filterCheckall: "انتخاب همه موارد",
- filterSearchPlaceholder: "جستوجو در فیلترها",
- selectNone: "انتخاب هیچکدام"
- },
- Modal: {
- okText: "تایید",
- cancelText: "لغو",
- justOkText: "تایید"
- },
- Popconfirm: {
- okText: "تایید",
- cancelText: "لغو"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "جستجو",
- itemUnit: "عدد",
- itemsUnit: "عدد",
- remove: "حذف",
- selectCurrent: "انتخاب صفحه فعلی",
- removeCurrent: "پاک کردن انتخابهای صفحه فعلی",
- selectAll: "انتخاب همه",
- removeAll: "پاک کردن همه انتخابها",
- selectInvert: "معکوس کردن انتخابها در صفحه ی کنونی"
- },
- Upload: {
- uploading: "در حال آپلود...",
- removeFile: "حذف فایل",
- uploadError: "خطا در آپلود",
- previewFile: "مشاهدهی فایل",
- downloadFile: "دریافت فایل"
- },
- Empty: {
- description: "دادهای موجود نیست"
- },
- Icon: {
- icon: "آیکن"
- },
- Text: {
- edit: "ویرایش",
- copy: "کپی",
- copied: "کپی شد",
- expand: "توسعه"
- },
- PageHeader: {
- back: "برگشت"
- },
- Image: {
- preview: "نمایش"
- },
- CronExpression: {
- cronError: "Invalid cron expression",
- second: "ثانیه",
- minute: "دقیقه",
- hour: "ساعت",
- day: "روز",
- month: "ماه",
- week: "هفته"
- },
- QRCode: {
- expired: "کد QR منقضی شده است",
- refresh: "تازه کردن"
- }
-};
-var fi_FI = {
- locale: "fi",
- Pagination: {
- items_per_page: "/ sivu",
- jump_to: "Mene",
- jump_to_confirm: "Potvrdite",
- page: "Sivu",
- prev_page: "Edellinen sivu",
- next_page: "Seuraava sivu",
- prev_5: "Edelliset 5 sivua",
- next_5: "Seuraavat 5 sivua",
- prev_3: "Edelliset 3 sivua",
- next_3: "Seuraavat 3 sivua",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Valitse päivä",
- rangePlaceholder: ["Alkamispäivä", "Päättymispäivä"],
- locale: "fi_FI",
- today: "Tänään",
- now: "Nyt",
- backToToday: "Tämä päivä",
- ok: "Ok",
- clear: "Tyhjennä",
- month: "Kuukausi",
- year: "Vuosi",
- timeSelect: "Valise aika",
- dateSelect: "Valitse päivä",
- monthSelect: "Valitse kuukausi",
- yearSelect: "Valitse vuosi",
- decadeSelect: "Valitse vuosikymmen",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Edellinen kuukausi (PageUp)",
- nextMonth: "Seuraava kuukausi (PageDown)",
- previousYear: "Edellinen vuosi (Control + left)",
- nextYear: "Seuraava vuosi (Control + right)",
- previousDecade: "Edellinen vuosikymmen",
- nextDecade: "Seuraava vuosikymmen",
- previousCentury: "Edellinen vuosisata",
- nextCentury: "Seuraava vuosisata"
- },
- timePickerLocale: {
- placeholder: "Valitse aika"
- }
- },
- TimePicker: {
- placeholder: "Valitse aika"
- },
- Calendar: {
- lang: {
- placeholder: "Valitse päivä",
- rangePlaceholder: ["Alkamispäivä", "Päättymispäivä"],
- locale: "fi_FI",
- today: "Tänään",
- now: "Nyt",
- backToToday: "Tämä päivä",
- ok: "Ok",
- clear: "Tyhjennä",
- month: "Kuukausi",
- year: "Vuosi",
- timeSelect: "Valise aika",
- dateSelect: "Valitse päivä",
- monthSelect: "Valitse kuukausi",
- yearSelect: "Valitse vuosi",
- decadeSelect: "Valitse vuosikymmen",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Edellinen kuukausi (PageUp)",
- nextMonth: "Seuraava kuukausi (PageDown)",
- previousYear: "Edellinen vuosi (Control + left)",
- nextYear: "Seuraava vuosi (Control + right)",
- previousDecade: "Edellinen vuosikymmen",
- nextDecade: "Seuraava vuosikymmen",
- previousCentury: "Edellinen vuosisata",
- nextCentury: "Seuraava vuosisata"
- },
- timePickerLocale: {
- placeholder: "Valitse aika"
- }
- },
- Table: {
- filterTitle: "Suodatus valikko",
- filterConfirm: "OK",
- filterReset: "Tyhjennä",
- selectAll: "Valitse kaikki",
- selectInvert: "Valitse päinvastoin",
- sortTitle: "Lajittele",
- triggerDesc: "Lajittele laskevasti",
- triggerAsc: "Lajittele nousevasti",
- cancelSort: "Peruuta lajittelu"
- },
- Modal: {
- okText: "OK",
- cancelText: "Peruuta",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Peruuta"
- },
- Transfer: {
- searchPlaceholder: "Etsi täältä",
- itemUnit: "kohde",
- itemsUnit: "kohdetta"
- },
- Upload: {
- uploading: "Lähetetään...",
- removeFile: "Poista tiedosto",
- uploadError: "Virhe lähetyksessä",
- previewFile: "Esikatsele tiedostoa",
- downloadFile: "Lataa tiedosto"
- },
- Empty: {
- description: "Ei kohteita"
- },
- Text: {
- edit: "Muokkaa",
- copy: "Kopioi",
- copied: "Kopioitu",
- expand: "Näytä lisää"
- }
-};
-var fr_BE = {
- locale: "fr",
- Pagination: {
- items_per_page: "/ page",
- jump_to: "Aller à",
- jump_to_confirm: "confirmer",
- page: "Page",
- prev_page: "Page précédente",
- next_page: "Page suivante",
- prev_5: "5 Pages précédentes",
- next_5: "5 Pages suivantes",
- prev_3: "3 Pages précédentes",
- next_3: "3 Pages suivantes",
- page_size: "taille de la page"
- },
- DatePicker: {
- lang: {
- placeholder: "Sélectionner une date",
- yearPlaceholder: "Sélectionner une année",
- quarterPlaceholder: "Sélectionner un trimestre",
- monthPlaceholder: "Sélectionner un mois",
- weekPlaceholder: "Sélectionner une semaine",
- rangePlaceholder: ["Date de début", "Date de fin"],
- rangeYearPlaceholder: ["Année de début", "Année de fin"],
- rangeMonthPlaceholder: ["Mois de début", "Mois de fin"],
- rangeWeekPlaceholder: ["Semaine de début", "Semaine de fin"],
- locale: "fr_BE",
- today: "Aujourd'hui",
- now: "Maintenant",
- backToToday: "Aujourd'hui",
- ok: "Ok",
- clear: "Rétablir",
- month: "Mois",
- year: "Année",
- timeSelect: "Sélectionner l'heure",
- dateSelect: "Sélectionner la date",
- weekSelect: "Choisissez une semaine",
- monthSelect: "Choisissez un mois",
- yearSelect: "Choisissez une année",
- decadeSelect: "Choisissez une décennie",
- yearFormat: "YYYY",
- dateFormat: "DD/MM/YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD/MM/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mois précédent (PageUp)",
- nextMonth: "Mois suivant (PageDown)",
- previousYear: "Année précédente (Ctrl + gauche)",
- nextYear: "Année prochaine (Ctrl + droite)",
- previousDecade: "Décennie précédente",
- nextDecade: "Décennie suivante",
- previousCentury: "Siècle précédent",
- nextCentury: "Siècle suivant"
- },
- timePickerLocale: {
- placeholder: "Sélectionner l'heure",
- rangePlaceholder: ["Heure de début", "Heure de fin"]
- }
- },
- TimePicker: {
- placeholder: "Sélectionner l'heure",
- rangePlaceholder: ["Heure de début", "Heure de fin"]
- },
- Calendar: {
- lang: {
- placeholder: "Sélectionner une date",
- yearPlaceholder: "Sélectionner une année",
- quarterPlaceholder: "Sélectionner un trimestre",
- monthPlaceholder: "Sélectionner un mois",
- weekPlaceholder: "Sélectionner une semaine",
- rangePlaceholder: ["Date de début", "Date de fin"],
- rangeYearPlaceholder: ["Année de début", "Année de fin"],
- rangeMonthPlaceholder: ["Mois de début", "Mois de fin"],
- rangeWeekPlaceholder: ["Semaine de début", "Semaine de fin"],
- locale: "fr_BE",
- today: "Aujourd'hui",
- now: "Maintenant",
- backToToday: "Aujourd'hui",
- ok: "Ok",
- clear: "Rétablir",
- month: "Mois",
- year: "Année",
- timeSelect: "Sélectionner l'heure",
- dateSelect: "Sélectionner la date",
- monthSelect: "Choisissez un mois",
- yearSelect: "Choisissez une année",
- decadeSelect: "Choisissez une décennie",
- yearFormat: "YYYY",
- dateFormat: "DD/MM/YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD/MM/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mois précédent (PageUp)",
- nextMonth: "Mois suivant (PageDown)",
- previousYear: "Année précédente (Ctrl + gauche)",
- nextYear: "Année prochaine (Ctrl + droite)",
- previousDecade: "Décennie précédente",
- nextDecade: "Décennie suivante",
- previousCentury: "Siècle précédent",
- nextCentury: "Siècle suivant"
- },
- timePickerLocale: {
- placeholder: "Sélectionner l'heure",
- rangePlaceholder: ["Heure de début", "Heure de fin"]
- }
- },
- global: {
- placeholder: "Sélectionner"
- },
- Table: {
- filterTitle: "Filtrer",
- filterConfirm: "OK",
- filterReset: "Réinitialiser",
- selectAll: "Sélectionner la page actuelle",
- selectInvert: "Inverser la sélection de la page actuelle",
- selectionAll: "Sélectionner toutes les données",
- sortTitle: "Trier",
- expand: "Développer la ligne",
- collapse: "Réduire la ligne",
- triggerDesc: "Trier par ordre décroissant",
- triggerAsc: "Trier par ordre croissant",
- cancelSort: "Annuler le tri",
- filterEmptyText: "Aucun filtre",
- emptyText: "Aucune donnée",
- selectNone: "Désélectionner toutes les données"
- },
- Modal: {
- okText: "OK",
- cancelText: "Annuler",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Annuler"
- },
- Transfer: {
- searchPlaceholder: "Rechercher",
- itemUnit: "élément",
- itemsUnit: "éléments",
- titles: ["", ""],
- remove: "Désélectionner",
- selectCurrent: "Sélectionner la page actuelle",
- removeCurrent: "Désélectionner la page actuelle",
- selectAll: "Sélectionner toutes les données",
- removeAll: "Désélectionner toutes les données",
- selectInvert: "Inverser la sélection de la page actuelle"
- },
- Empty: {
- description: "Aucune donnée"
- },
- Upload: {
- uploading: "Téléchargement...",
- removeFile: "Effacer le fichier",
- uploadError: "Erreur de téléchargement",
- previewFile: "Fichier de prévisualisation",
- downloadFile: "Télécharger un fichier"
- },
- Text: {
- edit: "Éditer",
- copy: "Copier",
- copied: "Copie effectuée",
- expand: "Développer"
- },
- PageHeader: {
- back: "Retour"
- },
- Icon: {
- icon: "icône"
- },
- Image: {
- preview: "Aperçu"
- },
- CronExpression: {
- cronError: "Expression CRON invalide",
- second: "seconde",
- minute: "minute",
- hour: "heure",
- day: "jour",
- month: "mois",
- week: "semaine"
- },
- QRCode: {
- expired: "QR code expiré",
- refresh: "Rafraîchir"
- }
-};
-var fr_CA = {
- locale: "fr",
- Pagination: {
- items_per_page: "/ page",
- jump_to: "Aller à",
- jump_to_confirm: "confirmer",
- page: "Page",
- prev_page: "Page précédente",
- next_page: "Page suivante",
- prev_5: "5 Pages précédentes",
- next_5: "5 Pages suivantes",
- prev_3: "3 Pages précédentes",
- next_3: "3 Pages suivantes",
- page_size: "taille de la page"
- },
- DatePicker: {
- lang: {
- placeholder: "Sélectionner une date",
- yearPlaceholder: "Sélectionner une année",
- quarterPlaceholder: "Sélectionner un trimestre",
- monthPlaceholder: "Sélectionner un mois",
- weekPlaceholder: "Sélectionner une semaine",
- rangePlaceholder: ["Date de début", "Date de fin"],
- rangeYearPlaceholder: ["Année de début", "Année de fin"],
- rangeMonthPlaceholder: ["Mois de début", "Mois de fin"],
- rangeWeekPlaceholder: ["Semaine de début", "Semaine de fin"],
- locale: "fr_CA",
- today: "Aujourd'hui",
- now: "Maintenant",
- backToToday: "Aujourd'hui",
- ok: "Ok",
- clear: "Rétablir",
- month: "Mois",
- year: "Année",
- timeSelect: "Sélectionner l'heure",
- dateSelect: "Sélectionner la date",
- weekSelect: "Choisissez une semaine",
- monthSelect: "Choisissez un mois",
- yearSelect: "Choisissez une année",
- decadeSelect: "Choisissez une décennie",
- yearFormat: "YYYY",
- dateFormat: "DD/MM/YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD/MM/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mois précédent (PageUp)",
- nextMonth: "Mois suivant (PageDown)",
- previousYear: "Année précédente (Ctrl + gauche)",
- nextYear: "Année prochaine (Ctrl + droite)",
- previousDecade: "Décennie précédente",
- nextDecade: "Décennie suivante",
- previousCentury: "Siècle précédent",
- nextCentury: "Siècle suivant"
- },
- timePickerLocale: {
- placeholder: "Sélectionner l'heure",
- rangePlaceholder: ["Heure de début", "Heure de fin"]
- }
- },
- TimePicker: {
- placeholder: "Sélectionner l'heure",
- rangePlaceholder: ["Heure de début", "Heure de fin"]
- },
- Calendar: {
- lang: {
- placeholder: "Sélectionner une date",
- yearPlaceholder: "Sélectionner une année",
- quarterPlaceholder: "Sélectionner un trimestre",
- monthPlaceholder: "Sélectionner un mois",
- weekPlaceholder: "Sélectionner une semaine",
- rangePlaceholder: ["Date de début", "Date de fin"],
- rangeYearPlaceholder: ["Année de début", "Année de fin"],
- rangeMonthPlaceholder: ["Mois de début", "Mois de fin"],
- rangeWeekPlaceholder: ["Semaine de début", "Semaine de fin"],
- locale: "fr_CA",
- today: "Aujourd'hui",
- now: "Maintenant",
- backToToday: "Aujourd'hui",
- ok: "Ok",
- clear: "Rétablir",
- month: "Mois",
- year: "Année",
- timeSelect: "Sélectionner l'heure",
- dateSelect: "Sélectionner la date",
- monthSelect: "Choisissez un mois",
- yearSelect: "Choisissez une année",
- decadeSelect: "Choisissez une décennie",
- yearFormat: "YYYY",
- dateFormat: "DD/MM/YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD/MM/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mois précédent (PageUp)",
- nextMonth: "Mois suivant (PageDown)",
- previousYear: "Année précédente (Ctrl + gauche)",
- nextYear: "Année prochaine (Ctrl + droite)",
- previousDecade: "Décennie précédente",
- nextDecade: "Décennie suivante",
- previousCentury: "Siècle précédent",
- nextCentury: "Siècle suivant"
- },
- timePickerLocale: {
- placeholder: "Sélectionner l'heure",
- rangePlaceholder: ["Heure de début", "Heure de fin"]
- }
- },
- global: {
- placeholder: "Sélectionner"
- },
- Table: {
- filterTitle: "Filtrer",
- filterConfirm: "OK",
- filterReset: "Réinitialiser",
- selectAll: "Sélectionner la page actuelle",
- selectInvert: "Inverser la sélection de la page actuelle",
- selectionAll: "Sélectionner toutes les données",
- sortTitle: "Trier",
- expand: "Développer la ligne",
- collapse: "Réduire la ligne",
- triggerDesc: "Trier par ordre décroissant",
- triggerAsc: "Trier par ordre croissant",
- cancelSort: "Annuler le tri",
- filterEmptyText: "Aucun filtre",
- emptyText: "Aucune donnée",
- selectNone: "Désélectionner toutes les données"
- },
- Modal: {
- okText: "OK",
- cancelText: "Annuler",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Annuler"
- },
- Transfer: {
- searchPlaceholder: "Rechercher",
- itemUnit: "élément",
- itemsUnit: "éléments",
- titles: ["", ""],
- remove: "Désélectionner",
- selectCurrent: "Sélectionner la page actuelle",
- removeCurrent: "Désélectionner la page actuelle",
- selectAll: "Sélectionner toutes les données",
- removeAll: "Désélectionner toutes les données",
- selectInvert: "Inverser la sélection de la page actuelle"
- },
- Empty: {
- description: "Aucune donnée"
- },
- Upload: {
- uploading: "Téléchargement...",
- removeFile: "Effacer le fichier",
- uploadError: "Erreur de téléchargement",
- previewFile: "Fichier de prévisualisation",
- downloadFile: "Télécharger un fichier"
- },
- Text: {
- edit: "Éditer",
- copy: "Copier",
- copied: "Copie effectuée",
- expand: "Développer"
- },
- PageHeader: {
- back: "Retour"
- },
- Icon: {
- icon: "icône"
- },
- Image: {
- preview: "Aperçu"
- },
- CronExpression: {
- cronError: "Expression CRON invalide",
- second: "seconde",
- minute: "minute",
- hour: "heure",
- day: "jour",
- month: "mois",
- week: "semaine"
- },
- QRCode: {
- expired: "QR code expiré",
- refresh: "Rafraîchir"
- }
-};
-var fr_FR = {
- locale: "fr",
- Pagination: {
- items_per_page: "/ page",
- jump_to: "Aller à",
- jump_to_confirm: "confirmer",
- page: "Page",
- prev_page: "Page précédente",
- next_page: "Page suivante",
- prev_5: "5 Pages précédentes",
- next_5: "5 Pages suivantes",
- prev_3: "3 Pages précédentes",
- next_3: "3 Pages suivantes",
- page_size: "taille de la page"
- },
- DatePicker: {
- lang: {
- placeholder: "Sélectionner une date",
- yearPlaceholder: "Sélectionner une année",
- quarterPlaceholder: "Sélectionner un trimestre",
- monthPlaceholder: "Sélectionner un mois",
- weekPlaceholder: "Sélectionner une semaine",
- rangePlaceholder: ["Date de début", "Date de fin"],
- rangeYearPlaceholder: ["Année de début", "Année de fin"],
- rangeMonthPlaceholder: ["Mois de début", "Mois de fin"],
- rangeWeekPlaceholder: ["Semaine de début", "Semaine de fin"],
- locale: "fr_FR",
- today: "Aujourd'hui",
- now: "Maintenant",
- backToToday: "Aujourd'hui",
- ok: "Ok",
- clear: "Rétablir",
- month: "Mois",
- year: "Année",
- timeSelect: "Sélectionner l'heure",
- dateSelect: "Sélectionner la date",
- weekSelect: "Choisissez une semaine",
- monthSelect: "Choisissez un mois",
- yearSelect: "Choisissez une année",
- decadeSelect: "Choisissez une décennie",
- yearFormat: "YYYY",
- dateFormat: "DD/MM/YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD/MM/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mois précédent (PageUp)",
- nextMonth: "Mois suivant (PageDown)",
- previousYear: "Année précédente (Ctrl + gauche)",
- nextYear: "Année prochaine (Ctrl + droite)",
- previousDecade: "Décennie précédente",
- nextDecade: "Décennie suivante",
- previousCentury: "Siècle précédent",
- nextCentury: "Siècle suivant"
- },
- timePickerLocale: {
- placeholder: "Sélectionner l'heure",
- rangePlaceholder: ["Heure de début", "Heure de fin"]
- }
- },
- TimePicker: {
- placeholder: "Sélectionner l'heure",
- rangePlaceholder: ["Heure de début", "Heure de fin"]
- },
- Calendar: {
- lang: {
- placeholder: "Sélectionner une date",
- yearPlaceholder: "Sélectionner une année",
- quarterPlaceholder: "Sélectionner un trimestre",
- monthPlaceholder: "Sélectionner un mois",
- weekPlaceholder: "Sélectionner une semaine",
- rangePlaceholder: ["Date de début", "Date de fin"],
- rangeYearPlaceholder: ["Année de début", "Année de fin"],
- rangeMonthPlaceholder: ["Mois de début", "Mois de fin"],
- rangeWeekPlaceholder: ["Semaine de début", "Semaine de fin"],
- locale: "fr_FR",
- today: "Aujourd'hui",
- now: "Maintenant",
- backToToday: "Aujourd'hui",
- ok: "Ok",
- clear: "Rétablir",
- month: "Mois",
- year: "Année",
- timeSelect: "Sélectionner l'heure",
- dateSelect: "Sélectionner la date",
- monthSelect: "Choisissez un mois",
- yearSelect: "Choisissez une année",
- decadeSelect: "Choisissez une décennie",
- yearFormat: "YYYY",
- dateFormat: "DD/MM/YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD/MM/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mois précédent (PageUp)",
- nextMonth: "Mois suivant (PageDown)",
- previousYear: "Année précédente (Ctrl + gauche)",
- nextYear: "Année prochaine (Ctrl + droite)",
- previousDecade: "Décennie précédente",
- nextDecade: "Décennie suivante",
- previousCentury: "Siècle précédent",
- nextCentury: "Siècle suivant"
- },
- timePickerLocale: {
- placeholder: "Sélectionner l'heure",
- rangePlaceholder: ["Heure de début", "Heure de fin"]
- }
- },
- global: {
- placeholder: "Sélectionner"
- },
- Table: {
- filterTitle: "Filtrer",
- filterConfirm: "OK",
- filterReset: "Réinitialiser",
- selectAll: "Sélectionner la page actuelle",
- selectInvert: "Inverser la sélection de la page actuelle",
- selectionAll: "Sélectionner toutes les données",
- sortTitle: "Trier",
- expand: "Développer la ligne",
- collapse: "Réduire la ligne",
- triggerDesc: "Trier par ordre décroissant",
- triggerAsc: "Trier par ordre croissant",
- cancelSort: "Annuler le tri",
- filterEmptyText: "Aucun filtre",
- emptyText: "Aucune donnée",
- selectNone: "Désélectionner toutes les données"
- },
- Modal: {
- okText: "OK",
- cancelText: "Annuler",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Annuler"
- },
- Transfer: {
- searchPlaceholder: "Rechercher",
- itemUnit: "élément",
- itemsUnit: "éléments",
- titles: ["", ""],
- remove: "Désélectionner",
- selectCurrent: "Sélectionner la page actuelle",
- removeCurrent: "Désélectionner la page actuelle",
- selectAll: "Sélectionner toutes les données",
- removeAll: "Désélectionner toutes les données",
- selectInvert: "Inverser la sélection de la page actuelle"
- },
- Empty: {
- description: "Aucune donnée"
- },
- Upload: {
- uploading: "Téléchargement...",
- removeFile: "Effacer le fichier",
- uploadError: "Erreur de téléchargement",
- previewFile: "Fichier de prévisualisation",
- downloadFile: "Télécharger un fichier"
- },
- Text: {
- edit: "Éditer",
- copy: "Copier",
- copied: "Copie effectuée",
- expand: "Développer"
- },
- PageHeader: {
- back: "Retour"
- },
- Icon: {
- icon: "icône"
- },
- Image: {
- preview: "Aperçu"
- },
- CronExpression: {
- cronError: "Expression CRON invalide",
- second: "seconde",
- minute: "minute",
- hour: "heure",
- day: "jour",
- month: "mois",
- week: "semaine"
- },
- QRCode: {
- expired: "QR code expiré",
- refresh: "Rafraîchir"
- }
-};
-var ga_IE = {
- locale: "ga",
- Pagination: {
- items_per_page: "/ leathanach",
- jump_to: "Téigh",
- jump_to_confirm: "dheimhnigh",
- page: "",
- prev_page: "Leathanach Roimhe Seo",
- next_page: "An chéad leathanach eile",
- prev_5: "5 leathanach roimhe seo",
- next_5: "Ar Aghaidh 5 Leathanaigh",
- prev_3: "3 leathanach roimhe seo",
- next_3: "Ar Aghaidh 3 Leathanaigh",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Roghnaigh dáta",
- yearPlaceholder: "Roghnaigh bliain",
- quarterPlaceholder: "Roghnaigh ráithe",
- monthPlaceholder: "Roghnaigh mí",
- weekPlaceholder: "Roghnaigh seachtain",
- rangePlaceholder: ["Dáta tosaigh", "Dáta deiridh"],
- rangeYearPlaceholder: ["Tús na bliana", "Deireadh na bliana"],
- rangeMonthPlaceholder: ["Tosaigh mhí", "Deireadh mhí"],
- rangeWeekPlaceholder: ["Tosaigh an tseachtain", "Deireadh na seachtaine"],
- locale: "ga_IE",
- today: "inniu",
- now: "anois",
- backToToday: "Ar ais inniu",
- ok: "ceart go leor",
- clear: "soiléir",
- month: "mhí",
- year: "bhliain",
- timeSelect: "roghnaigh am",
- dateSelect: "roghnaigh dáta",
- weekSelect: "Roghnaigh seachtain",
- monthSelect: "Roghnaigh mí",
- yearSelect: "Roghnaigh bliain",
- decadeSelect: "Roghnaigh deich mbliana",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "An mhí roimhe seo (PageUp)",
- nextMonth: "An mhí seo chugainn (PageDown)",
- previousYear: "Anuraidh (Control + left)",
- nextYear: "An bhliain seo chugainn (Control + right)",
- previousDecade: "Le deich mbliana anuas",
- nextDecade: "Deich mbliana amach romhainn",
- previousCentury: "An chéid seo caite",
- nextCentury: "An chéad aois eile"
- },
- timePickerLocale: {
- placeholder: "Roghnaigh am",
- rangePlaceholder: ["Am tosaigh", "Am deiridh"]
- }
- },
- TimePicker: {
- placeholder: "Roghnaigh am",
- rangePlaceholder: ["Am tosaigh", "Am deiridh"]
- },
- Calendar: {
- lang: {
- placeholder: "Roghnaigh dáta",
- yearPlaceholder: "Roghnaigh bliain",
- quarterPlaceholder: "Roghnaigh ráithe",
- monthPlaceholder: "Roghnaigh mí",
- weekPlaceholder: "Roghnaigh seachtain",
- rangePlaceholder: ["Dáta tosaigh", "Dáta deiridh"],
- rangeYearPlaceholder: ["Tús na bliana", "Deireadh na bliana"],
- rangeMonthPlaceholder: ["Tosaigh mhí", "Deireadh mhí"],
- rangeWeekPlaceholder: ["Tosaigh an tseachtain", "Deireadh na seachtaine"],
- locale: "ga_IE",
- today: "inniu",
- now: "anois",
- backToToday: "Ar ais inniu",
- ok: "ceart go leor",
- clear: "soiléir",
- month: "mhí",
- year: "bhliain",
- timeSelect: "roghnaigh am",
- dateSelect: "roghnaigh dáta",
- weekSelect: "Roghnaigh seachtain",
- monthSelect: "Roghnaigh mí",
- yearSelect: "Roghnaigh bliain",
- decadeSelect: "Roghnaigh deich mbliana",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "An mhí roimhe seo (PageUp)",
- nextMonth: "An mhí seo chugainn (PageDown)",
- previousYear: "Anuraidh (Control + left)",
- nextYear: "An bhliain seo chugainn (Control + right)",
- previousDecade: "Le deich mbliana anuas",
- nextDecade: "Deich mbliana amach romhainn",
- previousCentury: "An chéid seo caite",
- nextCentury: "An chéad aois eile"
- },
- timePickerLocale: {
- placeholder: "Roghnaigh am",
- rangePlaceholder: ["Am tosaigh", "Am deiridh"]
- }
- },
- global: {
- placeholder: "Please select"
- },
- Table: {
- filterTitle: "Filter menu",
- filterConfirm: "OK",
- filterReset: "Reset",
- selectAll: "Select current page",
- selectInvert: "Invert current page",
- selectionAll: "Select all data",
- sortTitle: "Sort",
- expand: "Expand row",
- collapse: "Collapse row",
- triggerDesc: "Click to sort descending",
- triggerAsc: "Click to sort ascending",
- cancelSort: "Click to cancel sorting"
- },
- Modal: {
- okText: "OK",
- cancelText: "Cancel",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Cancel"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Search here",
- itemUnit: "item",
- itemsUnit: "items",
- remove: "Remove",
- selectCurrent: "Select current page",
- removeCurrent: "Remove current page",
- selectAll: "Select all data",
- removeAll: "Remove all data",
- selectInvert: "Invert current page"
- },
- Upload: {
- uploading: "Uploading...",
- removeFile: "Remove file",
- uploadError: "Upload error",
- previewFile: "Preview file",
- downloadFile: "Download file"
- },
- Empty: {
- description: "No Data"
- },
- Icon: {
- icon: "icon"
- },
- Text: {
- edit: "Edit",
- copy: "Copy",
- copied: "Copied",
- expand: "Expand"
- },
- PageHeader: {
- back: "Back"
- }
-};
-var gl_ES = {
- locale: "gl",
- Pagination: {
- items_per_page: "/ páxina",
- jump_to: "Ir a",
- jump_to_confirm: "confirmar",
- page: "",
- prev_page: "Páxina anterior",
- next_page: "Páxina seguinte",
- prev_5: "5 páxinas previas",
- next_5: "5 páxinas seguintes",
- prev_3: "3 páxinas previas",
- next_3: "3 páxinas seguintes",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Escolla data",
- rangePlaceholder: ["Data inicial", "Data final"],
- locale: "gl_ES",
- today: "Hoxe",
- now: "Agora",
- backToToday: "Voltar a hoxe",
- ok: "Aceptar",
- clear: "Limpar",
- month: "Mes",
- year: "Ano",
- timeSelect: "Seleccionar hora",
- dateSelect: "Seleccionar data",
- monthSelect: "Elexir un mes",
- yearSelect: "Elexir un año",
- decadeSelect: "Elexir unha década",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mes anterior (PageUp)",
- nextMonth: "Mes seguinte (PageDown)",
- previousYear: "Ano anterior (Control + left)",
- nextYear: "Ano seguinte (Control + right)",
- previousDecade: "Década anterior",
- nextDecade: "Década seguinte",
- previousCentury: "Século anterior",
- nextCentury: "Século seguinte"
- },
- timePickerLocale: {
- placeholder: "Escolla hora"
- }
- },
- TimePicker: {
- placeholder: "Escolla hora"
- },
- Calendar: {
- lang: {
- placeholder: "Escolla data",
- rangePlaceholder: ["Data inicial", "Data final"],
- locale: "gl_ES",
- today: "Hoxe",
- now: "Agora",
- backToToday: "Voltar a hoxe",
- ok: "Aceptar",
- clear: "Limpar",
- month: "Mes",
- year: "Ano",
- timeSelect: "Seleccionar hora",
- dateSelect: "Seleccionar data",
- monthSelect: "Elexir un mes",
- yearSelect: "Elexir un año",
- decadeSelect: "Elexir unha década",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Mes anterior (PageUp)",
- nextMonth: "Mes seguinte (PageDown)",
- previousYear: "Ano anterior (Control + left)",
- nextYear: "Ano seguinte (Control + right)",
- previousDecade: "Década anterior",
- nextDecade: "Década seguinte",
- previousCentury: "Século anterior",
- nextCentury: "Século seguinte"
- },
- timePickerLocale: {
- placeholder: "Escolla hora"
- }
- },
- global: {
- placeholder: "Escolla"
- },
- Table: {
- filterTitle: "Filtrar menú",
- filterConfirm: "Aceptar",
- filterReset: "Reiniciar",
- selectAll: "Seleccionar todo",
- selectInvert: "Invertir selección",
- sortTitle: "Ordenar"
- },
- Modal: {
- okText: "Aceptar",
- cancelText: "Cancelar",
- justOkText: "Aceptar"
- },
- Popconfirm: {
- okText: "Aceptar",
- cancelText: "Cancelar"
- },
- Transfer: {
- searchPlaceholder: "Buscar aquí",
- itemUnit: "elemento",
- itemsUnit: "elementos"
- },
- Upload: {
- uploading: "Subindo...",
- removeFile: "Eliminar arquivo",
- uploadError: "Error ao subir o arquivo",
- previewFile: "Vista previa",
- downloadFile: "Descargar arquivo"
- },
- Empty: {
- description: "Non hai datos"
- },
- Icon: {
- icon: "icona"
- },
- Text: {
- edit: "editar",
- copy: "copiar",
- copied: "copiado",
- expand: "expandir"
- },
- PageHeader: {
- back: "voltar"
- }
-};
-var he_IL = {
- locale: "he",
- Pagination: {
- items_per_page: "/ עמוד",
- jump_to: "עבור אל",
- jump_to_confirm: "אישור",
- page: "",
- prev_page: "העמוד הקודם",
- next_page: "העמוד הבא",
- prev_5: "5 עמודים קודמים",
- next_5: "5 עמודים הבאים",
- prev_3: "3 עמודים קודמים",
- next_3: "3 עמודים הבאים",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "בחר תאריך",
- rangePlaceholder: ["תאריך התחלה", "תאריך סיום"],
- locale: "he_IL",
- today: "היום",
- now: "עכשיו",
- backToToday: "חזור להיום",
- ok: "אישור",
- clear: "איפוס",
- month: "חודש",
- year: "שנה",
- timeSelect: "בחר שעה",
- dateSelect: "בחר תאריך",
- weekSelect: "בחר שבוע",
- monthSelect: "בחר חודש",
- yearSelect: "בחר שנה",
- decadeSelect: "בחר עשור",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "חודש קודם (PageUp)",
- nextMonth: "חודש הבא (PageDown)",
- previousYear: "שנה שעברה (Control + left)",
- nextYear: "שנה הבאה (Control + right)",
- previousDecade: "העשור הקודם",
- nextDecade: "העשור הבא",
- previousCentury: "המאה הקודמת",
- nextCentury: "המאה הבאה"
- },
- timePickerLocale: {
- placeholder: "בחר שעה"
- }
- },
- TimePicker: {
- placeholder: "בחר שעה"
- },
- Calendar: {
- lang: {
- placeholder: "בחר תאריך",
- rangePlaceholder: ["תאריך התחלה", "תאריך סיום"],
- locale: "he_IL",
- today: "היום",
- now: "עכשיו",
- backToToday: "חזור להיום",
- ok: "אישור",
- clear: "איפוס",
- month: "חודש",
- year: "שנה",
- timeSelect: "בחר שעה",
- dateSelect: "בחר תאריך",
- weekSelect: "בחר שבוע",
- monthSelect: "בחר חודש",
- yearSelect: "בחר שנה",
- decadeSelect: "בחר עשור",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "חודש קודם (PageUp)",
- nextMonth: "חודש הבא (PageDown)",
- previousYear: "שנה שעברה (Control + left)",
- nextYear: "שנה הבאה (Control + right)",
- previousDecade: "העשור הקודם",
- nextDecade: "העשור הבא",
- previousCentury: "המאה הקודמת",
- nextCentury: "המאה הבאה"
- },
- timePickerLocale: {
- placeholder: "בחר שעה"
- }
- },
- global: {
- placeholder: "אנא בחר"
- },
- Table: {
- filterTitle: "תפריט סינון",
- filterConfirm: "אישור",
- filterReset: "איפוס",
- selectAll: "בחר הכל",
- selectInvert: "הפוך בחירה",
- selectionAll: "בחר את כל הנתונים",
- sortTitle: "מיון",
- expand: "הרחב שורה",
- collapse: "צמצם שורהw",
- triggerDesc: "לחץ על מיון לפי סדר יורד",
- triggerAsc: "לחץ על מיון לפי סדר עולה",
- cancelSort: "לחץ כדי לבטל את המיון"
- },
- Modal: {
- okText: "אישור",
- cancelText: "ביטול",
- justOkText: "אישור"
- },
- Popconfirm: {
- okText: "אישור",
- cancelText: "ביטול"
- },
- Transfer: {
- searchPlaceholder: "חפש כאן",
- itemUnit: "פריט",
- itemsUnit: "פריטים"
- },
- Upload: {
- uploading: "מעלה...",
- removeFile: "הסר קובץ",
- uploadError: "שגיאת העלאה",
- previewFile: "הצג קובץ",
- downloadFile: "הורד קובץ"
- },
- Empty: {
- description: "אין מידע"
- },
- Icon: {
- icon: "סמל"
- },
- Text: {
- edit: "ערוך",
- copy: "העתק",
- copied: "הועתק",
- expand: "הרחב"
- },
- PageHeader: {
- back: "חזרה"
- }
-};
-var hi_IN = {
- locale: "hi",
- Pagination: {
- items_per_page: "/ पृष्ठ",
- jump_to: "इस पर चलें",
- jump_to_confirm: "पुष्टि करें",
- page: "",
- prev_page: "पिछला पृष्ठ",
- next_page: "अगला पृष्ठ",
- prev_5: "पिछले 5 पृष्ठ",
- next_5: "अगले 5 पृष्ठ",
- prev_3: "पिछले 3 पृष्ठ",
- next_3: "अगले 3 पेज",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "तारीख़ चुनें",
- rangePlaceholder: ["प्रारंभ तिथि", "समाप्ति तिथि"],
- locale: "hi_IN",
- today: "आज",
- now: "अभी",
- backToToday: "आज तक",
- ok: "ठीक",
- clear: "स्पष्ट",
- month: "महीना",
- year: "साल",
- timeSelect: "समय का चयन करें",
- dateSelect: "तारीख़ चुनें",
- weekSelect: "एक सप्ताह चुनें",
- monthSelect: "एक महीना चुनें",
- yearSelect: "एक वर्ष चुनें",
- decadeSelect: "एक दशक चुनें",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "पिछला महीना (पेजअप)",
- nextMonth: "अगले महीने (पेजडाउन)",
- previousYear: "पिछले साल (Ctrl + बाएं)",
- nextYear: "अगले साल (Ctrl + दाहिना)",
- previousDecade: "पिछला दशक",
- nextDecade: "अगले दशक",
- previousCentury: "पीछ्ली शताब्दी",
- nextCentury: "अगली सदी",
- yearPlaceholder: "वर्ष चुनें",
- quarterPlaceholder: "तिमाही चुनें",
- monthPlaceholder: "महीना चुनिए",
- weekPlaceholder: "सप्ताह चुनें",
- rangeYearPlaceholder: ["आरंभिक वर्ष", "अंत वर्ष"],
- rangeMonthPlaceholder: ["आरंभिक महीना", "अंत महीना"],
- rangeWeekPlaceholder: ["आरंभिक सप्ताह", "अंत सप्ताह"]
- },
- timePickerLocale: {
- placeholder: "समय का चयन करें",
- rangePlaceholder: ["आरंभिक समय", "अंत समय"]
- }
- },
- TimePicker: {
- placeholder: "समय का चयन करें",
- rangePlaceholder: ["आरंभिक समय", "अंत समय"]
- },
- Calendar: {
- lang: {
- placeholder: "तारीख़ चुनें",
- rangePlaceholder: ["प्रारंभ तिथि", "समाप्ति तिथि"],
- locale: "hi_IN",
- today: "आज",
- now: "अभी",
- backToToday: "आज तक",
- ok: "ठीक",
- clear: "स्पष्ट",
- month: "महीना",
- year: "साल",
- timeSelect: "समय का चयन करें",
- dateSelect: "तारीख़ चुनें",
- weekSelect: "एक सप्ताह चुनें",
- monthSelect: "एक महीना चुनें",
- yearSelect: "एक वर्ष चुनें",
- decadeSelect: "एक दशक चुनें",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "पिछला महीना (पेजअप)",
- nextMonth: "अगले महीने (पेजडाउन)",
- previousYear: "पिछले साल (Ctrl + बाएं)",
- nextYear: "अगले साल (Ctrl + दाहिना)",
- previousDecade: "पिछला दशक",
- nextDecade: "अगले दशक",
- previousCentury: "पीछ्ली शताब्दी",
- nextCentury: "अगली सदी",
- yearPlaceholder: "वर्ष चुनें",
- quarterPlaceholder: "तिमाही चुनें",
- monthPlaceholder: "महीना चुनिए",
- weekPlaceholder: "सप्ताह चुनें",
- rangeYearPlaceholder: ["आरंभिक वर्ष", "अंत वर्ष"],
- rangeMonthPlaceholder: ["आरंभिक महीना", "अंत महीना"],
- rangeWeekPlaceholder: ["आरंभिक सप्ताह", "अंत सप्ताह"]
- },
- timePickerLocale: {
- placeholder: "समय का चयन करें",
- rangePlaceholder: ["आरंभिक समय", "अंत समय"]
- }
- },
- global: {
- placeholder: "कृपया चुनें"
- },
- Table: {
- filterTitle: "सूची बंद करें",
- filterConfirm: "अच्छी तरह से",
- filterReset: "रीसेट",
- emptyText: "कोई जानकारी नहीं",
- selectAll: "वर्तमान पृष्ठ का चयन करें",
- selectInvert: "वर्तमान पृष्ठ घुमाएं",
- sortTitle: "द्वारा क्रमबद्ध करें",
- filterEmptyText: "कोई फ़िल्टर नहीं",
- selectNone: "सभी डेटा साफ़ करें",
- selectionAll: "सभी डेटा का चयन करें",
- expand: "पंक्ति का विस्तार करें",
- collapse: "पंक्ति संक्षिप्त करें",
- triggerDesc: "अवरोही क्रमित करने के लिए क्लिक करें",
- triggerAsc: "आरोही क्रमित करने के लिए क्लिक करें",
- cancelSort: "छँटाई रद्द करने के लिए क्लिक करें"
- },
- Modal: {
- okText: "अच्छी तरह से",
- cancelText: "रद्द करना",
- justOkText: "अच्छी तरह से"
- },
- Popconfirm: {
- okText: "अच्छी तरह से",
- cancelText: "रद्द करना"
- },
- Transfer: {
- titles: ["", ""],
- notFoundContent: "नहीं मिला",
- searchPlaceholder: "यहां खोजें",
- itemUnit: "तत्त्व",
- itemsUnit: "विषय-वस्तु",
- remove: "हटाए",
- selectCurrent: "वर्तमान पृष्ठ का चयन करें",
- removeCurrent: "वर्तमान पृष्ठ हटाएं",
- selectAll: "सभी डेटा का चयन करें",
- removeAll: "सभी डेटा हटाएं",
- selectInvert: "वर्तमान पृष्ठ को उल्टा करें"
- },
- Select: {
- notFoundContent: "नहीं मिला"
- },
- Upload: {
- uploading: "अपलोड हो रहा...",
- removeFile: "फ़ाइल निकालें",
- uploadError: "अपलोड में त्रुटि",
- previewFile: "फ़ाइल पूर्वावलोकन",
- downloadFile: "फ़ाइल डाउनलोड करें"
- },
- Empty: {
- description: "कोई आकड़ा उपलब्ध नहीं है"
- },
- Icon: {
- icon: "आइकन"
- },
- Text: {
- edit: "संपादित करें",
- copy: "प्रतिलिपि",
- copied: "कॉपी किया गया",
- expand: "विस्तार"
- },
- PageHeader: {
- back: "वापस"
- },
- Image: {
- preview: "पूर्वावलोकन"
- }
-};
-var hr_HR = {
- locale: "hr",
- Pagination: {
- items_per_page: "/ str",
- jump_to: "Idi na",
- jump_to_confirm: "potvrdi",
- page: "",
- prev_page: "Prijašnja stranica",
- next_page: "Sljedeća stranica",
- prev_5: "Prijašnjih 5 stranica",
- next_5: "Sljedećih 5 stranica",
- prev_3: "Prijašnje 3 stranice",
- next_3: "Sljedeće 3 stranice",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Odaberite datum",
- rangePlaceholder: ["Početni datum", "Završni datum"],
- locale: "hr_HR",
- today: "Danas",
- now: "Sad",
- backToToday: "Natrag na danas",
- ok: "Ok",
- clear: "Očisti",
- month: "Mjesec",
- year: "Godina",
- timeSelect: "odaberite vrijeme",
- dateSelect: "odaberite datum",
- weekSelect: "Odaberite tjedan",
- monthSelect: "Odaberite mjesec",
- yearSelect: "Odaberite godinu",
- decadeSelect: "Odaberite desetljeće",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Prošli mjesec (PageUp)",
- nextMonth: "Sljedeći mjesec (PageDown)",
- previousYear: "Prošla godina (Control + left)",
- nextYear: "Sljedeća godina (Control + right)",
- previousDecade: "Prošlo desetljeće",
- nextDecade: "Sljedeće desetljeće",
- previousCentury: "Prošlo stoljeće",
- nextCentury: "Sljedeće stoljeće",
- yearPlaceholder: "Odaberite godinu",
- quarterPlaceholder: "Odaberite četvrtinu",
- monthPlaceholder: "Odaberite mjesec",
- weekPlaceholder: "Odaberite tjedan",
- rangeYearPlaceholder: ["Početna godina", "Završna godina"],
- rangeMonthPlaceholder: ["Početni mjesec", "Završni mjesec"],
- rangeWeekPlaceholder: ["Početni tjedan", "Završni tjedan"]
- },
- timePickerLocale: {
- placeholder: "Odaberite vrijeme",
- rangePlaceholder: ["Vrijeme početka", "Vrijeme završetka"]
- }
- },
- TimePicker: {
- placeholder: "Odaberite vrijeme",
- rangePlaceholder: ["Vrijeme početka", "Vrijeme završetka"]
- },
- Calendar: {
- lang: {
- placeholder: "Odaberite datum",
- rangePlaceholder: ["Početni datum", "Završni datum"],
- locale: "hr_HR",
- today: "Danas",
- now: "Sad",
- backToToday: "Natrag na danas",
- ok: "Ok",
- clear: "Očisti",
- month: "Mjesec",
- year: "Godina",
- timeSelect: "odaberite vrijeme",
- dateSelect: "odaberite datum",
- weekSelect: "Odaberite tjedan",
- monthSelect: "Odaberite mjesec",
- yearSelect: "Odaberite godinu",
- decadeSelect: "Odaberite desetljeće",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Prošli mjesec (PageUp)",
- nextMonth: "Sljedeći mjesec (PageDown)",
- previousYear: "Prošla godina (Control + left)",
- nextYear: "Sljedeća godina (Control + right)",
- previousDecade: "Prošlo desetljeće",
- nextDecade: "Sljedeće desetljeće",
- previousCentury: "Prošlo stoljeće",
- nextCentury: "Sljedeće stoljeće",
- yearPlaceholder: "Odaberite godinu",
- quarterPlaceholder: "Odaberite četvrtinu",
- monthPlaceholder: "Odaberite mjesec",
- weekPlaceholder: "Odaberite tjedan",
- rangeYearPlaceholder: ["Početna godina", "Završna godina"],
- rangeMonthPlaceholder: ["Početni mjesec", "Završni mjesec"],
- rangeWeekPlaceholder: ["Početni tjedan", "Završni tjedan"]
- },
- timePickerLocale: {
- placeholder: "Odaberite vrijeme",
- rangePlaceholder: ["Vrijeme početka", "Vrijeme završetka"]
- }
- },
- global: {
- placeholder: "Molimo označite"
- },
- Table: {
- filterTitle: "Filter meni",
- filterConfirm: "OK",
- filterReset: "Reset",
- selectAll: "Označi trenutnu stranicu",
- selectInvert: "Invertiraj trenutnu stranicu",
- sortTitle: "Sortiraj",
- filterEmptyText: "Nema filtera",
- emptyText: "Nema podataka",
- selectionAll: "Odaberite sve podatke",
- expand: "Proširi redak",
- collapse: "Sažmi redak",
- triggerDesc: "Kliknite za sortiranje silazno",
- triggerAsc: "Kliknite za sortiranje uzlazno",
- cancelSort: "Kliknite da biste otkazali sortiranje"
- },
- Modal: {
- okText: "OK",
- cancelText: "Odustani",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Odustani"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Pretraži ovdje",
- itemUnit: "stavka",
- itemsUnit: "stavke",
- remove: "Ukloniti",
- selectCurrent: "Odaberite trenutnu stranicu",
- removeCurrent: "Ukloni trenutnu stranicu",
- selectAll: "Odaberite sve podatke",
- removeAll: "Uklonite sve podatke",
- selectInvert: "Obrni trenutnu stranicu"
- },
- Upload: {
- uploading: "Upload u tijeku...",
- removeFile: "Makni datoteku",
- uploadError: "Greška kod uploada",
- previewFile: "Pogledaj datoteku",
- downloadFile: "Preuzmi datoteku"
- },
- Empty: {
- description: "Nema podataka"
- },
- Icon: {
- icon: "ikona"
- },
- Text: {
- edit: "Uredi",
- copy: "Kopiraj",
- copied: "Kopiranje uspješno",
- expand: "Proširi"
- },
- PageHeader: {
- back: "Natrag"
- },
- Image: {
- preview: "Pregled"
- }
-};
-var hu_HU = {
- locale: "hu",
- Pagination: {
- items_per_page: "/ oldal",
- jump_to: "Ugrás",
- jump_to_confirm: "megerősít",
- page: "",
- prev_page: "Előző oldal",
- next_page: "Következő oldal",
- prev_5: "Előző 5 oldal",
- next_5: "Következő 5 oldal",
- prev_3: "Előző 3 oldal",
- next_3: "Következő 3 oldal",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Válasszon dátumot",
- yearPlaceholder: "Válasszon évet",
- quarterPlaceholder: "Válasszon negyedévet",
- monthPlaceholder: "Válasszon hónapot",
- weekPlaceholder: "Válasszon hetet",
- rangePlaceholder: ["Kezdő dátum", "Befejezés dátuma"],
- rangeYearPlaceholder: ["Kezdő év", "Befejezés éve"],
- rangeMonthPlaceholder: ["Kezdő hónap", "Befejezés hónapja"],
- rangeWeekPlaceholder: ["Kezdő hét", "Befejezés hete"],
- locale: "hu_HU",
- today: "Ma",
- now: "Most",
- backToToday: "Vissza a mai napra",
- ok: "Ok",
- clear: "Törlés",
- month: "Hónap",
- year: "Év",
- timeSelect: "Időpont kiválasztása",
- dateSelect: "Dátum kiválasztása",
- weekSelect: "Hét kiválasztása",
- monthSelect: "Hónap kiválasztása",
- yearSelect: "Év kiválasztása",
- decadeSelect: "Évtized kiválasztása",
- yearFormat: "YYYY",
- dateFormat: "YYYY/MM/DD",
- dayFormat: "DD",
- dateTimeFormat: "YYYY/MM/DD HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Előző hónap (PageUp)",
- nextMonth: "Következő hónap (PageDown)",
- previousYear: "Múlt év (Control + left)",
- nextYear: "Jövő év (Control + right)",
- previousDecade: "Előző évtized",
- nextDecade: "Következő évtized",
- previousCentury: "Múlt évszázad",
- nextCentury: "Jövő évszázad"
- },
- timePickerLocale: {
- placeholder: "Válasszon időt",
- rangePlaceholder: ["Kezdő idő", "Befejezés ideje"]
- }
- },
- TimePicker: {
- placeholder: "Válasszon időt",
- rangePlaceholder: ["Kezdő idő", "Befejezés ideje"]
- },
- Calendar: {
- lang: {
- placeholder: "Válasszon dátumot",
- yearPlaceholder: "Válasszon évet",
- quarterPlaceholder: "Válasszon negyedévet",
- monthPlaceholder: "Válasszon hónapot",
- weekPlaceholder: "Válasszon hetet",
- rangePlaceholder: ["Kezdő dátum", "Befejezés dátuma"],
- rangeYearPlaceholder: ["Kezdő év", "Befejezés éve"],
- rangeMonthPlaceholder: ["Kezdő hónap", "Befejezés hónapja"],
- rangeWeekPlaceholder: ["Kezdő hét", "Befejezés hete"],
- locale: "hu_HU",
- today: "Ma",
- now: "Most",
- backToToday: "Vissza a mai napra",
- ok: "Ok",
- clear: "Törlés",
- month: "Hónap",
- year: "Év",
- timeSelect: "Időpont kiválasztása",
- dateSelect: "Dátum kiválasztása",
- weekSelect: "Hét kiválasztása",
- monthSelect: "Hónap kiválasztása",
- yearSelect: "Év kiválasztása",
- decadeSelect: "Évtized kiválasztása",
- yearFormat: "YYYY",
- dateFormat: "YYYY/MM/DD",
- dayFormat: "DD",
- dateTimeFormat: "YYYY/MM/DD HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Előző hónap (PageUp)",
- nextMonth: "Következő hónap (PageDown)",
- previousYear: "Múlt év (Control + left)",
- nextYear: "Jövő év (Control + right)",
- previousDecade: "Előző évtized",
- nextDecade: "Következő évtized",
- previousCentury: "Múlt évszázad",
- nextCentury: "Jövő évszázad"
- },
- timePickerLocale: {
- placeholder: "Válasszon időt",
- rangePlaceholder: ["Kezdő idő", "Befejezés ideje"]
- }
- },
- global: {
- placeholder: "Kérlek, válassz"
- },
- Table: {
- filterTitle: "Szűrők",
- filterConfirm: "Alkalmazás",
- filterReset: "Visszaállítás",
- filterEmptyText: "No filters",
- emptyText: "Nincs adat",
- selectAll: "Jelenlegi oldal kiválasztása",
- selectInvert: "Jelenlegi oldal inverze",
- selectionAll: "Összes adat kiválasztása",
- sortTitle: "Rendezés",
- expand: "Sor kinyitása",
- collapse: "Sor becsukása",
- triggerDesc: "Kattintson a csökkenő sorrendbe rendezéshez",
- triggerAsc: "Kattintson a növekvő sorrendbe rendezéshez",
- cancelSort: "Kattintson a rendezés visszavonásához",
- selectNone: "Összes visszavonása"
- },
- Modal: {
- okText: "Alkalmazás",
- cancelText: "Visszavonás",
- justOkText: "Alkalmazás"
- },
- Popconfirm: {
- okText: "Alkalmazás",
- cancelText: "Visszavonás"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Keresés",
- itemUnit: "elem",
- itemsUnit: "elemek",
- remove: "Eltávolít",
- selectCurrent: "Jelenlegi oldal kiválasztása",
- removeCurrent: "Jelenlegi oldal eltávolítása",
- selectAll: "Összes adat kiválasztása",
- removeAll: "Összes adat eltávolítása",
- selectInvert: "Jelenlegi oldal inverze"
- },
- Upload: {
- uploading: "Feltöltés...",
- removeFile: "Fájl eltávolítása",
- uploadError: "Feltöltési hiba",
- previewFile: "Fájl előnézet",
- downloadFile: "Fájl letöltése"
- },
- Empty: {
- description: "Nincs adat"
- },
- Icon: {
- icon: "ikon"
- },
- Text: {
- edit: "Szerkesztés",
- copy: "Másolás",
- copied: "Másolva",
- expand: "Kiterjesztés"
- },
- PageHeader: {
- back: "Vissza"
- }
-};
-var hy_AM = {
- locale: "hy-am",
- Pagination: {
- items_per_page: "/ էջ",
- jump_to: "Գնալ",
- jump_to_confirm: "հաստատել",
- page: "",
- prev_page: "Նախորդ Էջ",
- next_page: "Հաջորդ Էջ",
- prev_5: "Նախորդ 5 Էջերը",
- next_5: "Հաջորդ 5 Էջերը",
- prev_3: "Նախորդ 3 Էջերը",
- next_3: "Հաջորդ 3 Էջերը"
- },
- DatePicker: {
- lang: {
- locale: "hy-am",
- placeholder: "Ընտրեք ամսաթիվը",
- rangePlaceholder: ["Մեկնարկի ամսաթիվ", "Ավարտի ամսաթիվը"],
- today: "Այսօր",
- now: "Հիմա",
- backToToday: "Վերադառնալ այսօր",
- ok: "Օկ",
- clear: "Մաքրել",
- month: "Ամիս",
- year: "Տարի",
- timeSelect: "ընտրեք ժամը",
- dateSelect: "ընտրեք ամսաթիվը",
- weekSelect: "Ընտրեք շաբաթը",
- monthSelect: "Ընտրեք ամիսը",
- yearSelect: "Ընտրեք տարին",
- decadeSelect: "Ընտրեք տասնամյակը",
- yearFormat: "YYYY",
- dateFormat: "DD/MM//YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD/MM//YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Անցած ամիս (PageUp)",
- nextMonth: "Մյուս ամիս (PageDown)",
- previousYear: "Անցած տարի (Control + left)",
- nextYear: "Մյուս տարի (Control + right)",
- previousDecade: "Անցած տասնամյակ",
- nextDecade: "Մյուս տասնամյակ",
- previousCentury: "Անցած դար",
- nextCentury: "Մյուս դար"
- },
- timePickerLocale: {
- placeholder: "Ընտրեք ժամը"
- }
- },
- TimePicker: {
- placeholder: "Ընտրեք ժամը"
- },
- Calendar: {
- lang: {
- locale: "hy-am",
- placeholder: "Ընտրեք ամսաթիվը",
- rangePlaceholder: ["Մեկնարկի ամսաթիվ", "Ավարտի ամսաթիվը"],
- today: "Այսօր",
- now: "Հիմա",
- backToToday: "Վերադառնալ այսօր",
- ok: "Օկ",
- clear: "Մաքրել",
- month: "Ամիս",
- year: "Տարի",
- timeSelect: "ընտրեք ժամը",
- dateSelect: "ընտրեք ամսաթիվը",
- weekSelect: "Ընտրեք շաբաթը",
- monthSelect: "Ընտրեք ամիսը",
- yearSelect: "Ընտրեք տարին",
- decadeSelect: "Ընտրեք տասնամյակը",
- yearFormat: "YYYY",
- dateFormat: "DD/MM//YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD/MM//YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Անցած ամիս (PageUp)",
- nextMonth: "Մյուս ամիս (PageDown)",
- previousYear: "Անցած տարի (Control + left)",
- nextYear: "Մյուս տարի (Control + right)",
- previousDecade: "Անցած տասնամյակ",
- nextDecade: "Մյուս տասնամյակ",
- previousCentury: "Անցած դար",
- nextCentury: "Մյուս դար"
- },
- timePickerLocale: {
- placeholder: "Ընտրեք ժամը"
- }
- },
- global: {
- placeholder: "Ընտրեք"
- },
- Table: {
- filterTitle: "ֆիլտրի ընտրացանկ",
- filterConfirm: "ֆիլտրել",
- filterReset: "Զրոյացնել",
- selectAll: "Ընտրեք ընթացիկ էջը",
- selectInvert: "Փոխարկել ընթացիկ էջը",
- sortTitle: "Տեսակավորել",
- expand: "Ընդլայնեք տողը",
- collapse: "Կրճատել տողը"
- },
- Modal: {
- okText: "Օկ",
- cancelText: "Չեղարկել",
- justOkText: "Օկ"
- },
- Popconfirm: {
- okText: "Հաստատել",
- cancelText: "Մերժել"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Որոնեք այստեղ",
- itemUnit: "պարագան",
- itemsUnit: "պարագաները"
- },
- Upload: {
- uploading: "Ներբեռնում...",
- removeFile: "Հեռացնել ֆայլը",
- uploadError: "Ներբեռնման սխալ",
- previewFile: "Դիտել ֆայլը",
- downloadFile: "Ներբեռնել ֆայլը"
- },
- Empty: {
- description: "Տվյալներ չկան"
- },
- Icon: {
- icon: "պատկեր"
- },
- Text: {
- edit: "Խմբագրել",
- copy: "Պատճենել",
- copied: "Պատճենվել է",
- expand: "Տեսնել ավելին"
- },
- PageHeader: {
- back: "Հետ"
- }
-};
-var id_ID = {
- locale: "id",
- Pagination: {
- items_per_page: "/ halaman",
- jump_to: "Menuju",
- jump_to_confirm: "konfirmasi",
- page: "Halaman",
- prev_page: "Halaman Sebelumnya",
- next_page: "Halaman Berikutnya",
- prev_5: "5 Halaman Sebelumnya",
- next_5: "5 Halaman Berikutnya",
- prev_3: "3 Halaman Sebelumnya",
- next_3: "3 Halaman Berikutnya",
- page_size: "ukuran halaman"
- },
- DatePicker: {
- lang: {
- placeholder: "Pilih tanggal",
- rangePlaceholder: ["Mulai tanggal", "Tanggal akhir"],
- locale: "id_ID",
- today: "Hari ini",
- now: "Sekarang",
- backToToday: "Kembali ke hari ini",
- ok: "Baik",
- clear: "Bersih",
- month: "Bulan",
- year: "Tahun",
- timeSelect: "pilih waktu",
- dateSelect: "pilih tanggal",
- weekSelect: "Pilih satu minggu",
- monthSelect: "Pilih satu bulan",
- yearSelect: "Pilih satu tahun",
- decadeSelect: "Pilih satu dekade",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Bulan sebelumnya (PageUp)",
- nextMonth: "Bulan selanjutnya (PageDown)",
- previousYear: "Tahun lalu (Control + kiri)",
- nextYear: "Tahun selanjutnya (Kontrol + kanan)",
- previousDecade: "Dekade terakhir",
- nextDecade: "Dekade berikutnya",
- previousCentury: "Abad terakhir",
- nextCentury: "Abad berikutnya"
- },
- timePickerLocale: {
- placeholder: "Pilih waktu"
- }
- },
- TimePicker: {
- placeholder: "Pilih waktu"
- },
- Calendar: {
- lang: {
- placeholder: "Pilih tanggal",
- rangePlaceholder: ["Mulai tanggal", "Tanggal akhir"],
- locale: "id_ID",
- today: "Hari ini",
- now: "Sekarang",
- backToToday: "Kembali ke hari ini",
- ok: "Baik",
- clear: "Bersih",
- month: "Bulan",
- year: "Tahun",
- timeSelect: "pilih waktu",
- dateSelect: "pilih tanggal",
- weekSelect: "Pilih satu minggu",
- monthSelect: "Pilih satu bulan",
- yearSelect: "Pilih satu tahun",
- decadeSelect: "Pilih satu dekade",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Bulan sebelumnya (PageUp)",
- nextMonth: "Bulan selanjutnya (PageDown)",
- previousYear: "Tahun lalu (Control + kiri)",
- nextYear: "Tahun selanjutnya (Kontrol + kanan)",
- previousDecade: "Dekade terakhir",
- nextDecade: "Dekade berikutnya",
- previousCentury: "Abad terakhir",
- nextCentury: "Abad berikutnya"
- },
- timePickerLocale: {
- placeholder: "Pilih waktu"
- }
- },
- Table: {
- filterTitle: "Saring",
- filterConfirm: "OK",
- filterReset: "Hapus",
- selectAll: "Pilih semua di halaman ini",
- selectInvert: "Balikkan pilihan di halaman ini",
- sortTitle: "Urutkan"
- },
- Modal: {
- okText: "OK",
- cancelText: "Batal",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Batal"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Cari",
- itemUnit: "item",
- itemsUnit: "item"
- },
- Upload: {
- uploading: "Mengunggah...",
- removeFile: "Hapus file",
- uploadError: "Kesalahan pengunggahan",
- previewFile: "File pratinjau",
- downloadFile: "Unduh berkas"
- },
- Empty: {
- description: "Tidak ada data"
- }
-};
-var is_IS = {
- locale: "is",
- Pagination: {
- items_per_page: "/ síðu",
- jump_to: "Síða",
- jump_to_confirm: "staðfest",
- page: "",
- prev_page: "Fyrri síða",
- next_page: "Næsta síða",
- prev_5: "Til baka 5 síður",
- next_5: "Áfram 5 síður",
- prev_3: "Til baka 3 síður",
- next_3: "Áfram 3 síður",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Veldu dag",
- rangePlaceholder: ["Upphafsdagur", "Lokadagur"],
- locale: "is_IS",
- today: "Í dag",
- now: "Núna",
- backToToday: "Til baka til dagsins í dag",
- ok: "Í lagi",
- clear: "Hreinsa",
- month: "Mánuður",
- year: "Ár",
- timeSelect: "Velja tíma",
- dateSelect: "Velja dag",
- monthSelect: "Velja mánuð",
- yearSelect: "Velja ár",
- decadeSelect: "Velja áratug",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Fyrri mánuður (PageUp)",
- nextMonth: "Næsti mánuður (PageDown)",
- previousYear: "Fyrra ár (Control + left)",
- nextYear: "Næsta ár (Control + right)",
- previousDecade: "Fyrri áratugur",
- nextDecade: "Næsti áratugur",
- previousCentury: "Fyrri öld",
- nextCentury: "Næsta öld"
- },
- timePickerLocale: {
- placeholder: "Velja tíma"
- }
- },
- TimePicker: {
- placeholder: "Velja tíma"
- },
- Calendar: {
- lang: {
- placeholder: "Veldu dag",
- rangePlaceholder: ["Upphafsdagur", "Lokadagur"],
- locale: "is_IS",
- today: "Í dag",
- now: "Núna",
- backToToday: "Til baka til dagsins í dag",
- ok: "Í lagi",
- clear: "Hreinsa",
- month: "Mánuður",
- year: "Ár",
- timeSelect: "Velja tíma",
- dateSelect: "Velja dag",
- monthSelect: "Velja mánuð",
- yearSelect: "Velja ár",
- decadeSelect: "Velja áratug",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Fyrri mánuður (PageUp)",
- nextMonth: "Næsti mánuður (PageDown)",
- previousYear: "Fyrra ár (Control + left)",
- nextYear: "Næsta ár (Control + right)",
- previousDecade: "Fyrri áratugur",
- nextDecade: "Næsti áratugur",
- previousCentury: "Fyrri öld",
- nextCentury: "Næsta öld"
- },
- timePickerLocale: {
- placeholder: "Velja tíma"
- }
- },
- Table: {
- filterTitle: "Afmarkanir",
- filterConfirm: "Staðfesta",
- filterReset: "Núllstilla",
- selectAll: "Velja allt",
- selectInvert: "Viðsnúa vali"
- },
- Modal: {
- okText: "Áfram",
- cancelText: "Hætta við",
- justOkText: "Í lagi"
- },
- Popconfirm: {
- okText: "Áfram",
- cancelText: "Hætta við"
- },
- Transfer: {
- searchPlaceholder: "Leita hér",
- itemUnit: "færsla",
- itemsUnit: "færslur"
- },
- Upload: {
- uploading: "Hleð upp...",
- removeFile: "Fjarlægja skrá",
- uploadError: "Villa við að hlaða upp",
- previewFile: "Forskoða skrá",
- downloadFile: "Hlaða niður skrá"
- },
- Empty: {
- description: "Engin gögn"
- }
-};
-var it_IT = {
- locale: "it",
- Pagination: {
- items_per_page: "/ pagina",
- jump_to: "vai a",
- jump_to_confirm: "Conferma",
- page: "Pagina",
- prev_page: "Pagina precedente",
- next_page: "Pagina successiva",
- prev_5: "Precedente 5 pagine",
- next_5: "Prossime 5 pagine",
- prev_3: "Precedente 3 pagine",
- next_3: "Prossime 3 pagine",
- page_size: "dimensioni della pagina"
- },
- DatePicker: {
- lang: {
- placeholder: "Selezionare la data",
- yearPlaceholder: "Selezionare l'anno",
- quarterPlaceholder: "Selezionare il trimestre",
- monthPlaceholder: "Selezionare il mese",
- weekPlaceholder: "Selezionare la settimana",
- rangePlaceholder: ["Data d'inizio", "Data di fine"],
- rangeYearPlaceholder: ["Anno d'inizio", "Anno di fine"],
- rangeMonthPlaceholder: ["Mese d'inizio ", "Mese di fine"],
- rangeWeekPlaceholder: ["Settimana d'inizio", "Settimana di fine"],
- locale: "it_IT",
- today: "Oggi",
- now: "Adesso",
- backToToday: "Torna ad oggi",
- ok: "Ok",
- clear: "Cancella",
- month: "Mese",
- year: "Anno",
- timeSelect: "Seleziona l'ora",
- dateSelect: "Seleziona la data",
- weekSelect: "Seleziona la settimana",
- monthSelect: "Seleziona il mese",
- yearSelect: "Seleziona l'anno",
- decadeSelect: "Seleziona il decennio",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Il mese scorso (PageUp)",
- nextMonth: "Il prossimo mese (PageDown)",
- previousYear: "L'anno scorso (Control + sinistra)",
- nextYear: "L'anno prossimo (Control + destra)",
- previousDecade: "Ultimo decennio",
- nextDecade: "Prossimo decennio",
- previousCentury: "Secolo precedente",
- nextCentury: "Prossimo secolo"
- },
- timePickerLocale: {
- placeholder: "Selezionare l'orario",
- rangePlaceholder: ["Ora d'inizio", "Ora di fine"]
- }
- },
- TimePicker: {
- placeholder: "Selezionare l'orario",
- rangePlaceholder: ["Ora d'inizio", "Ora di fine"]
- },
- Calendar: {
- lang: {
- placeholder: "Selezionare la data",
- yearPlaceholder: "Selezionare l'anno",
- quarterPlaceholder: "Selezionare il trimestre",
- monthPlaceholder: "Selezionare il mese",
- weekPlaceholder: "Selezionare la settimana",
- rangePlaceholder: ["Data d'inizio", "Data di fine"],
- rangeYearPlaceholder: ["Anno d'inizio", "Anno di fine"],
- rangeMonthPlaceholder: ["Mese d'inizio ", "Mese di fine"],
- rangeWeekPlaceholder: ["Settimana d'inizio", "Settimana di fine"],
- locale: "it_IT",
- today: "Oggi",
- now: "Adesso",
- backToToday: "Torna ad oggi",
- ok: "Ok",
- clear: "Cancella",
- month: "Mese",
- year: "Anno",
- timeSelect: "Seleziona l'ora",
- weekSelect: "Seleziona la settimana",
- dateSelect: "Seleziona la data",
- monthSelect: "Seleziona il mese",
- yearSelect: "Seleziona l'anno",
- decadeSelect: "Seleziona il decennio",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Il mese scorso (PageUp)",
- nextMonth: "Il prossimo mese (PageDown)",
- previousYear: "L'anno scorso (Control + sinistra)",
- nextYear: "L'anno prossimo (Control + destra)",
- previousDecade: "Ultimo decennio",
- nextDecade: "Prossimo decennio",
- previousCentury: "Secolo precedente",
- nextCentury: "Prossimo secolo"
- },
- timePickerLocale: {
- placeholder: "Selezionare l'orario",
- rangePlaceholder: ["Ora d'inizio", "Ora di fine"]
- }
- },
- global: {
- placeholder: "Selezionare"
- },
- Table: {
- filterTitle: "Menù Filtro",
- filterConfirm: "OK",
- filterReset: "Reset",
- filterEmptyText: "Nessun filtro",
- emptyText: "Nessun dato",
- selectAll: "Seleziona pagina corrente",
- selectInvert: "Inverti selezione nella pagina corrente",
- selectionAll: "Seleziona tutti i dati",
- sortTitle: "Ordina",
- expand: "Esapandi riga",
- collapse: "Chiudi riga",
- triggerDesc: "Clicca per ordinare in modo discendente",
- triggerAsc: "Clicca per ordinare in modo ascendente",
- cancelSort: "Clicca per eliminare i filtri",
- filterCheckall: "Seleziona tutto",
- filterSearchPlaceholder: "Cerca nei filtri",
- selectNone: "Pulisci tutti i dati"
- },
- Modal: {
- okText: "OK",
- cancelText: "Annulla",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Annulla"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Cerca qui",
- itemUnit: "elemento",
- itemsUnit: "elementi",
- remove: "Rimuovi",
- selectCurrent: "Seleziona pagina corrente",
- removeCurrent: "Rimuovi pagina corrente",
- selectAll: "Selezione tutti i dati",
- removeAll: "Rimuovi tutti i dati",
- selectInvert: "Inverti selezione nella pagina corrente"
- },
- Upload: {
- uploading: "Caricamento...",
- removeFile: "Rimuovi il file",
- uploadError: "Errore di caricamento",
- previewFile: "Anteprima file",
- downloadFile: "Download file"
- },
- Empty: {
- description: "Nessun dato"
- },
- Icon: {
- icon: "icona"
- },
- Text: {
- edit: "modifica",
- copy: "copia",
- copied: "copia effettuata",
- expand: "espandi"
- },
- PageHeader: {
- back: "Indietro"
- },
- Image: {
- preview: "Anteprima"
- }
-};
-var ja_JP = {
- locale: "ja",
- Pagination: {
- items_per_page: "件 / ページ",
- jump_to: "移動",
- jump_to_confirm: "確認する",
- page: "ページ",
- prev_page: "前のページ",
- next_page: "次のページ",
- prev_5: "前 5ページ",
- next_5: "次 5ページ",
- prev_3: "前 3ページ",
- next_3: "次 3ページ",
- page_size: "ページサイズ"
- },
- DatePicker: {
- lang: {
- placeholder: "日付を選択",
- rangePlaceholder: ["開始日付", "終了日付"],
- locale: "ja_JP",
- today: "今日",
- now: "現在時刻",
- backToToday: "今日に戻る",
- ok: "決定",
- timeSelect: "時間を選択",
- dateSelect: "日時を選択",
- weekSelect: "週を選択",
- clear: "クリア",
- month: "月",
- year: "年",
- previousMonth: "前月 (ページアップキー)",
- nextMonth: "翌月 (ページダウンキー)",
- monthSelect: "月を選択",
- yearSelect: "年を選択",
- decadeSelect: "年代を選択",
- yearFormat: "YYYY年",
- dayFormat: "D日",
- dateFormat: "YYYY年M月D日",
- dateTimeFormat: "YYYY年M月D日 HH時mm分ss秒",
- previousYear: "前年 (Controlを押しながら左キー)",
- nextYear: "翌年 (Controlを押しながら右キー)",
- previousDecade: "前の年代",
- nextDecade: "次の年代",
- previousCentury: "前の世紀",
- nextCentury: "次の世紀"
- },
- timePickerLocale: {
- placeholder: "時間を選択",
- rangePlaceholder: ["開始時間", "終了時間"]
- }
- },
- TimePicker: {
- placeholder: "時間を選択",
- rangePlaceholder: ["開始時間", "終了時間"]
- },
- Calendar: {
- lang: {
- placeholder: "日付を選択",
- rangePlaceholder: ["開始日付", "終了日付"],
- locale: "ja_JP",
- today: "今日",
- now: "現在時刻",
- backToToday: "今日に戻る",
- ok: "決定",
- timeSelect: "時間を選択",
- dateSelect: "日時を選択",
- weekSelect: "週を選択",
- clear: "クリア",
- month: "月",
- year: "年",
- previousMonth: "前月 (ページアップキー)",
- nextMonth: "翌月 (ページダウンキー)",
- monthSelect: "月を選択",
- yearSelect: "年を選択",
- decadeSelect: "年代を選択",
- yearFormat: "YYYY年",
- dayFormat: "D日",
- dateFormat: "YYYY年M月D日",
- dateTimeFormat: "YYYY年M月D日 HH時mm分ss秒",
- previousYear: "前年 (Controlを押しながら左キー)",
- nextYear: "翌年 (Controlを押しながら右キー)",
- previousDecade: "前の年代",
- nextDecade: "次の年代",
- previousCentury: "前の世紀",
- nextCentury: "次の世紀"
- },
- timePickerLocale: {
- placeholder: "時間を選択",
- rangePlaceholder: ["開始時間", "終了時間"]
- }
- },
- Table: {
- filterTitle: "フィルター",
- filterConfirm: "OK",
- filterReset: "リセット",
- filterEmptyText: "フィルターなし",
- selectAll: "ページ単位で選択",
- selectInvert: "ページ単位で反転",
- selectionAll: "すべてを選択",
- sortTitle: "ソート",
- expand: "展開する",
- collapse: "折り畳む",
- triggerDesc: "クリックで降順にソート",
- triggerAsc: "クリックで昇順にソート",
- cancelSort: "ソートをキャンセル"
- },
- Modal: {
- okText: "OK",
- cancelText: "キャンセル",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "キャンセル"
- },
- Transfer: {
- searchPlaceholder: "ここを検索",
- itemUnit: "アイテム",
- itemsUnit: "アイテム"
- },
- Upload: {
- uploading: "アップロード中...",
- removeFile: "ファイルを削除",
- uploadError: "アップロードエラー",
- previewFile: "ファイルをプレビュー",
- downloadFile: "ダウンロードファイル"
- },
- Empty: {
- description: "データがありません"
- }
-};
-var ka_GE = {
- locale: "ka",
- Pagination: {
- items_per_page: "/ გვერდი.",
- jump_to: "გადასვლა",
- jump_to_confirm: "დადასტურება",
- page: "",
- prev_page: "წინა გვერდი",
- next_page: "შემდეგი გვერდი",
- prev_5: "წინა 5 გვერდი",
- next_5: "შემდეგი 5 გვერდი",
- prev_3: "წინა 3 გვერდი",
- next_3: "შემდეგი 3 გვერდი",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "აირჩიეთ თარიღი",
- yearPlaceholder: "აირჩიეთ წელი",
- quarterPlaceholder: "აირჩიეთ მეოთხედი",
- monthPlaceholder: "აირჩიეთ თვე",
- weekPlaceholder: "აირჩიეთ კვირა",
- rangePlaceholder: ["საწყისი თარიღი", "საბოლოო თარიღი"],
- rangeYearPlaceholder: ["საწყისი წელი", "საბოლოო წელი"],
- rangeMonthPlaceholder: ["საწყისი თვე", "საბოლოო თვე"],
- rangeWeekPlaceholder: ["საწყისი კვირა", "საბოლოო კვირა"],
- locale: "ka_GE",
- today: "დღეს",
- now: "ახლა",
- backToToday: "მიმდინარე თარიღი",
- ok: "Ok",
- clear: "გასუფთავება",
- month: "თვე",
- year: "წელი",
- timeSelect: "დროის არჩევა",
- dateSelect: "თარიღის არჩევა",
- weekSelect: "კვირის არჩევა",
- monthSelect: "თვის არჩევა",
- yearSelect: "წლის არჩევა",
- decadeSelect: "ათწლეულის არჩევა",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "წინა თვე (PageUp)",
- nextMonth: "მომდევნო თვე (PageDown)",
- previousYear: "წინა წელი (Control + left)",
- nextYear: "მომდევნო წელი (Control + right)",
- previousDecade: "წინა ათწლეული",
- nextDecade: "მომდევნო ათწლეული",
- previousCentury: "გასული საუკუნე",
- nextCentury: "მომდევნო საუკუნე"
- },
- timePickerLocale: {
- placeholder: "აირჩიეთ დრო",
- rangePlaceholder: ["საწყისი თარიღი", "საბოლოო თარიღი"]
- }
- },
- TimePicker: {
- placeholder: "აირჩიეთ დრო",
- rangePlaceholder: ["საწყისი თარიღი", "საბოლოო თარიღი"]
- },
- Calendar: {
- lang: {
- placeholder: "აირჩიეთ თარიღი",
- yearPlaceholder: "აირჩიეთ წელი",
- quarterPlaceholder: "აირჩიეთ მეოთხედი",
- monthPlaceholder: "აირჩიეთ თვე",
- weekPlaceholder: "აირჩიეთ კვირა",
- rangePlaceholder: ["საწყისი თარიღი", "საბოლოო თარიღი"],
- rangeYearPlaceholder: ["საწყისი წელი", "საბოლოო წელი"],
- rangeMonthPlaceholder: ["საწყისი თვე", "საბოლოო თვე"],
- rangeWeekPlaceholder: ["საწყისი კვირა", "საბოლოო კვირა"],
- locale: "ka_GE",
- today: "დღეს",
- now: "ახლა",
- backToToday: "მიმდინარე თარიღი",
- ok: "Ok",
- clear: "გასუფთავება",
- month: "თვე",
- year: "წელი",
- timeSelect: "დროის არჩევა",
- dateSelect: "თარიღის არჩევა",
- weekSelect: "კვირის არჩევა",
- monthSelect: "თვის არჩევა",
- yearSelect: "წლის არჩევა",
- decadeSelect: "ათწლეულის არჩევა",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "წინა თვე (PageUp)",
- nextMonth: "მომდევნო თვე (PageDown)",
- previousYear: "წინა წელი (Control + left)",
- nextYear: "მომდევნო წელი (Control + right)",
- previousDecade: "წინა ათწლეული",
- nextDecade: "მომდევნო ათწლეული",
- previousCentury: "გასული საუკუნე",
- nextCentury: "მომდევნო საუკუნე"
- },
- timePickerLocale: {
- placeholder: "აირჩიეთ დრო",
- rangePlaceholder: ["საწყისი თარიღი", "საბოლოო თარიღი"]
- }
- },
- global: {
- placeholder: "გთხოვთ აირჩიოთ"
- },
- Table: {
- filterTitle: "ფილტრის მენიუ",
- filterConfirm: "კარგი",
- filterReset: "გასუფთავება",
- filterEmptyText: "ფილტრები არაა",
- emptyText: "ინფორმაცია არაა",
- selectAll: "აირჩიეთ მიმდინარე გვერდი",
- selectInvert: "შეაბრუნეთ მიმდინარე გვერდი",
- selectionAll: "ყველას მონიშვნა",
- sortTitle: "დალაგება",
- expand: "სტრიქონის გაშლა",
- collapse: "სტრიქონის შეკუმშვა",
- triggerDesc: "დაღმავალი დალაგება",
- triggerAsc: "აღმავალი დალაგება",
- cancelSort: "დალაგების გაუქმება",
- selectNone: "მონაცემების გასუფთავება"
- },
- Modal: {
- okText: "კარგი",
- cancelText: "გაუქმება",
- justOkText: "ოკ"
- },
- Popconfirm: {
- okText: "კარგი",
- cancelText: "გაუქმება"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "მოძებნე აქ",
- itemUnit: "ერთეული",
- itemsUnit: "ერთეულები",
- remove: "ამოშლა",
- selectCurrent: "მიმდინარე გვერდის არჩევა",
- removeCurrent: "მიმდინარე გვერდის ამოშლა",
- selectAll: "ყველას მონიშვნა",
- removeAll: "ყველას წაშლა",
- selectInvert: "მიმდინარე გვერდის შებრუნება"
- },
- Upload: {
- uploading: "იტვირთება...",
- removeFile: "ფაილის ამოშლა",
- uploadError: "ატვირთვის შეცდომა",
- previewFile: "ფაილის გადახედვა",
- downloadFile: "ფაილის ჩამოტვირთვა"
- },
- Empty: {
- description: "ინფორმაცია არაა"
- },
- Icon: {
- icon: "ხატულა"
- },
- Text: {
- edit: "რედაქტირება",
- copy: "ასლი",
- copied: "ასლი აღებულია",
- expand: "გაშლა"
- },
- PageHeader: {
- back: "უკან"
- },
- Image: {
- preview: "გადახედვა"
- }
-};
-var km_KH = {
- locale: "km",
- Pagination: {
- items_per_page: "/ ទំព័រ",
- jump_to: "លោតទៅ",
- jump_to_confirm: "បញ្ជាក់",
- page: "ទំព័រ",
- prev_page: "ទំព័រមុន",
- next_page: "ទំព័របន្ទាប់",
- prev_5: "៥ ទំព័រថយក្រោយ",
- next_5: "៥ ទំព័រទៅមុខ",
- prev_3: "៣ ទំព័រថយក្រោយ",
- next_3: "៣ ទំព័រទៅមុខ",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "រើសថ្ងៃ",
- yearPlaceholder: "រើសឆ្នាំ",
- quarterPlaceholder: "រើសត្រីមាស",
- monthPlaceholder: "រើសខែ",
- weekPlaceholder: "រើសសប្តាហ៍",
- rangePlaceholder: ["ថ្ងៃចាប់ផ្ដើម", "ថ្ងៃបញ្ចប់"],
- rangeYearPlaceholder: ["ឆ្នាំចាប់ផ្ដើម", "ឆ្នាំបញ្ចប់"],
- rangeMonthPlaceholder: ["ខែចាប់ផ្ដើម", "ខែបញ្ចប់"],
- rangeWeekPlaceholder: ["សប្ដាហ៍ចាប់ផ្ដើម", "សប្ដាហ៍បញ្ចប់"],
- locale: "km",
- today: "ថ្ងៃនេះ",
- now: "ឥឡូវនេះ",
- backToToday: "ត្រលប់ទៅថ្ងៃនេះ",
- ok: "កំណត់",
- timeSelect: "រយៈពេលជ្រើសរើស",
- dateSelect: "ជ្រើសរើសកាលបរិច្ឆេទ",
- weekSelect: "ជ្រើសរើសសប្តាហ៍",
- clear: "ច្បាស់",
- month: "ខែ",
- year: "ឆ្នាំ",
- previousMonth: "ខែមុន (ឡើងទំព័រ)",
- nextMonth: "ខែបន្ទាប់ (ប៊ូតុងចុះទំព័រ)",
- monthSelect: "ជ្រើសរើសខែ",
- yearSelect: "ជ្រើសរើសឆ្នាំ",
- decadeSelect: "ជ្រើសរើសអាយុ",
- yearFormat: "YYYY",
- dayFormat: "D",
- dateFormat: "YYYY-M-D",
- dateTimeFormat: "YYYY-M-D HH:mm:ss",
- previousYear: "ឆ្នាំមុន (Controlគ្រាប់ចុចបូកព្រួញខាងឆ្វេង)",
- nextYear: "ឆ្នាំក្រោយ (Control គ្រាប់ចុចបូកព្រួញស្ដាំ)",
- previousDecade: "ជំនាន់ចុងក្រោយ",
- nextDecade: "ជំនាន់ក្រោយ",
- previousCentury: "សតវត្សចុងក្រោយ",
- nextCentury: "សតវត្សរ៍បន្ទាប់",
- monthBeforeYear: true
- },
- timePickerLocale: {
- placeholder: "រើសម៉ោង",
- rangePlaceholder: ["ម៉ោងចប់ផ្ដើម", "ម៉ោងបញ្ចប់"]
- }
- },
- TimePicker: {
- placeholder: "រើសម៉ោង",
- rangePlaceholder: ["ម៉ោងចប់ផ្ដើម", "ម៉ោងបញ្ចប់"]
- },
- Calendar: {
- lang: {
- placeholder: "រើសថ្ងៃ",
- yearPlaceholder: "រើសឆ្នាំ",
- quarterPlaceholder: "រើសត្រីមាស",
- monthPlaceholder: "រើសខែ",
- weekPlaceholder: "រើសសប្តាហ៍",
- rangePlaceholder: ["ថ្ងៃចាប់ផ្ដើម", "ថ្ងៃបញ្ចប់"],
- rangeYearPlaceholder: ["ឆ្នាំចាប់ផ្ដើម", "ឆ្នាំបញ្ចប់"],
- rangeMonthPlaceholder: ["ខែចាប់ផ្ដើម", "ខែបញ្ចប់"],
- rangeWeekPlaceholder: ["សប្ដាហ៍ចាប់ផ្ដើម", "សប្ដាហ៍បញ្ចប់"],
- locale: "km",
- today: "ថ្ងៃនេះ",
- now: "ឥឡូវនេះ",
- backToToday: "ត្រលប់ទៅថ្ងៃនេះ",
- ok: "កំណត់",
- timeSelect: "រយៈពេលជ្រើសរើស",
- dateSelect: "ជ្រើសរើសកាលបរិច្ឆេទ",
- weekSelect: "ជ្រើសរើសសប្តាហ៍",
- clear: "ច្បាស់",
- month: "ខែ",
- year: "ឆ្នាំ",
- previousMonth: "ខែមុន (ឡើងទំព័រ)",
- nextMonth: "ខែបន្ទាប់ (ប៊ូតុងចុះទំព័រ)",
- monthSelect: "ជ្រើសរើសខែ",
- yearSelect: "ជ្រើសរើសឆ្នាំ",
- decadeSelect: "ជ្រើសរើសអាយុ",
- yearFormat: "YYYY",
- dayFormat: "D",
- dateFormat: "YYYY-M-D",
- dateTimeFormat: "YYYY-M-D HH:mm:ss",
- previousYear: "ឆ្នាំមុន (Controlគ្រាប់ចុចបូកព្រួញខាងឆ្វេង)",
- nextYear: "ឆ្នាំក្រោយ (Control គ្រាប់ចុចបូកព្រួញស្ដាំ)",
- previousDecade: "ជំនាន់ចុងក្រោយ",
- nextDecade: "ជំនាន់ក្រោយ",
- previousCentury: "សតវត្សចុងក្រោយ",
- nextCentury: "សតវត្សរ៍បន្ទាប់",
- monthBeforeYear: true
- },
- timePickerLocale: {
- placeholder: "រើសម៉ោង",
- rangePlaceholder: ["ម៉ោងចប់ផ្ដើម", "ម៉ោងបញ្ចប់"]
- }
- },
- global: {
- placeholder: "សូមជ្រើសរើស"
- },
- Table: {
- filterTitle: "បញ្ចីតម្រៀប",
- filterConfirm: "យល់ព្រម",
- filterReset: "ត្រឡប់ដើម",
- filterEmptyText: "គ្មានបញ្ចីតម្រៀប",
- emptyText: "គ្មានទិន្នន័យ",
- selectAll: "រើសក្នុងទំព័រនេះ",
- selectInvert: "បញ្ច្រាសក្នុងទំព័រនេះ",
- selectNone: "លុបចេញទាំងអស់",
- selectionAll: "រើសយកទាំងអស់",
- sortTitle: "តម្រៀប",
- expand: "ពន្លាត",
- collapse: "បិតបាំង",
- triggerDesc: "ចុចដើម្បីរៀបតាមលំដាប់ធំ",
- triggerAsc: "ចុចដើម្បីរៀបតាមលំដាប់តូច",
- cancelSort: "ចុចដើម្បីបោះបង់"
- },
- Modal: {
- okText: "យល់ព្រម",
- cancelText: "បោះបង់",
- justOkText: "យល់ព្រម"
- },
- Popconfirm: {
- okText: "យល់ព្រម",
- cancelText: "បោះបង់"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "ស្វែងរកនៅទីនេះ",
- itemUnit: "item",
- itemsUnit: "items",
- remove: "លុប",
- selectCurrent: "រើសទំព័របច្ចុប្បន្ន",
- removeCurrent: "លុបទំព័របច្ចុប្បន្ន",
- selectAll: "រើសទិន្នន័យទាំងអស់",
- removeAll: "លុបទិន្នន័យទាំងអស់",
- selectInvert: "បញ្ច្រាសទំព័របច្ចុប្បន្ន"
- },
- Upload: {
- uploading: "កំពុងបញ្ចូលឡើង...",
- removeFile: "លុបឯកសារ",
- uploadError: "បញ្ចូលមិនជោកជ័យ",
- previewFile: "មើលឯកសារ",
- downloadFile: "ទាញយកឯកសារ"
- },
- Empty: {
- description: "គ្មានទិន្នន័យ"
- },
- Icon: {
- icon: "icon"
- },
- Text: {
- edit: "កែ",
- copy: "Copy",
- copied: "Copied",
- expand: "ពង្រីក"
- },
- PageHeader: {
- back: "Back"
- }
-};
-var kk_KZ = {
- locale: "kk",
- Pagination: {
- items_per_page: "/ бет",
- jump_to: "Секіру",
- jump_to_confirm: "Растау",
- page: "",
- prev_page: "Артқа",
- next_page: "Алға",
- prev_5: "Алдыңғы 5",
- next_5: "Келесі 5",
- prev_3: "Алдыңғы 3",
- next_3: "Келесі 3",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Күнді таңдаңыз",
- yearPlaceholder: "Жылды таңдаңыз",
- quarterPlaceholder: "Тоқсанды таңдаңыз",
- monthPlaceholder: "Айды таңдаңыз",
- weekPlaceholder: "Аптаны таңдаңыз",
- rangePlaceholder: ["Бастау күні", "Аяқталу күні"],
- rangeYearPlaceholder: ["Бастау жылы", "Аяқталу жылы"],
- rangeMonthPlaceholder: ["Бастау айы", "Аяқталу айы"],
- rangeWeekPlaceholder: ["Бастау апта", "Аяқталу апта"],
- locale: "kk_KZ",
- today: "Бүгін",
- now: "Қазір",
- backToToday: "Ағымдағы күн",
- ok: "Таңдау",
- clear: "Таза",
- month: "Ай",
- year: "Жыл",
- timeSelect: "Уақытты таңдау",
- dateSelect: "Күнді таңдау",
- monthSelect: "Айды таңдаңыз",
- yearSelect: "Жылды таңдаңыз",
- decadeSelect: "Онжылды таңдаңыз",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Алдыңғы ай (PageUp)",
- nextMonth: "Келесі ай (PageDown)",
- previousYear: "Алдыңғы жыл (Control + left)",
- nextYear: "Келесі жыл (Control + right)",
- previousDecade: "Алдыңғы онжылдық",
- nextDecade: "Келесі онжылдық",
- previousCentury: "Алдыңғы ғасыр",
- nextCentury: "Келесі ғасыр"
- },
- timePickerLocale: {
- placeholder: "Уақытты таңдаңыз",
- rangePlaceholder: ["Бастау уақыты", "Аяқталу уақыты"]
- }
- },
- TimePicker: {
- placeholder: "Уақытты таңдаңыз",
- rangePlaceholder: ["Бастау уақыты", "Аяқталу уақыты"]
- },
- Calendar: {
- lang: {
- placeholder: "Күнді таңдаңыз",
- yearPlaceholder: "Жылды таңдаңыз",
- quarterPlaceholder: "Тоқсанды таңдаңыз",
- monthPlaceholder: "Айды таңдаңыз",
- weekPlaceholder: "Аптаны таңдаңыз",
- rangePlaceholder: ["Бастау күні", "Аяқталу күні"],
- rangeYearPlaceholder: ["Бастау жылы", "Аяқталу жылы"],
- rangeMonthPlaceholder: ["Бастау айы", "Аяқталу айы"],
- rangeWeekPlaceholder: ["Бастау апта", "Аяқталу апта"],
- locale: "kk_KZ",
- today: "Бүгін",
- now: "Қазір",
- backToToday: "Ағымдағы күн",
- ok: "Таңдау",
- clear: "Таза",
- month: "Ай",
- year: "Жыл",
- timeSelect: "Уақытты таңдау",
- dateSelect: "Күнді таңдау",
- monthSelect: "Айды таңдаңыз",
- yearSelect: "Жылды таңдаңыз",
- decadeSelect: "Онжылды таңдаңыз",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Алдыңғы ай (PageUp)",
- nextMonth: "Келесі ай (PageDown)",
- previousYear: "Алдыңғы жыл (Control + left)",
- nextYear: "Келесі жыл (Control + right)",
- previousDecade: "Алдыңғы онжылдық",
- nextDecade: "Келесі онжылдық",
- previousCentury: "Алдыңғы ғасыр",
- nextCentury: "Келесі ғасыр"
- },
- timePickerLocale: {
- placeholder: "Уақытты таңдаңыз",
- rangePlaceholder: ["Бастау уақыты", "Аяқталу уақыты"]
- }
- },
- global: {
- placeholder: "Таңдаңыз"
- },
- Table: {
- filterTitle: "Фильтр",
- filterConfirm: "OK",
- filterReset: "Тазарту",
- filterEmptyText: "Фильтр жоқ",
- emptyText: "Деректер жоқ",
- selectAll: "Барлығын таңдау",
- selectInvert: "Таңдауды төңкеру",
- selectionAll: "Барлық деректерді таңдаңыз",
- sortTitle: "Сұрыптау",
- expand: "Жолды жазу",
- collapse: "Жолды бүктеу",
- triggerDesc: "Төмендеуді сұрыптау үшін басыңыз",
- triggerAsc: "Өсу ретімен сұрыптау үшін басыңыз",
- cancelSort: "Сұрыптаудан бас тарту үшін басыңыз"
- },
- Modal: {
- okText: "Жарайды",
- cancelText: "Болдырмау",
- justOkText: "Жарайды"
- },
- Popconfirm: {
- okText: "Жарайды",
- cancelText: "Болдырмау"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Іздеу",
- itemUnit: "элемент.",
- itemsUnit: "элемент.",
- remove: "Жою",
- selectAll: "Барлық деректерді таңдау",
- selectCurrent: "Ағымдағы бетті таңдау",
- selectInvert: "Кері тәртіпте көрсету",
- removeAll: "Барлық деректерді жою",
- removeCurrent: "Ағымдағы парақты өшіру"
- },
- Upload: {
- uploading: "Жүктеу...",
- removeFile: "Файлды жою",
- uploadError: "Жүктеу кезінде қате пайда болды",
- previewFile: "Файлды алдын ала қарау",
- downloadFile: "Файлды жүктеу"
- },
- Empty: {
- description: "Деректер жоқ"
- },
- Icon: {
- icon: "белгішесі"
- },
- Text: {
- edit: "Өңдеу",
- copy: "Көшіру",
- copied: "Көшірілді",
- expand: "Жазу"
- },
- PageHeader: {
- back: "Артқа"
- }
-};
-var kmr_IQ = {
- locale: "ku",
- Pagination: {
- items_per_page: "/ rûpel",
- jump_to: "Biçe",
- jump_to_confirm: "piştrast bike",
- page: "",
- prev_page: "Rûpelê Pêş",
- next_page: "Rûpelê Paş",
- prev_5: "5 Rûpelên Pêş",
- next_5: "5 Rûpelên Paş",
- prev_3: "3 Rûpelên Pêş",
- next_3: "3 Rûpelên Paş",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Dîrok hilbijêre",
- rangePlaceholder: ["Dîroka destpêkê", "Dîroka dawîn"],
- locale: "ku",
- today: "Îro",
- now: "Niha",
- backToToday: "Vegere îro",
- ok: "Temam",
- clear: "Paqij bike",
- month: "Meh",
- year: "Sal",
- timeSelect: "Demê hilbijêre",
- dateSelect: "Dîrok hilbijêre",
- monthSelect: "Meh hilbijêre",
- yearSelect: "Sal hilbijêre",
- decadeSelect: "Dehsal hilbijêre",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Meha peş (PageUp))",
- nextMonth: "Meha paş (PageDown)",
- previousYear: "Sala peş (Control + şep)",
- nextYear: "Sala paş (Control + rast)",
- previousDecade: "Dehsalen peş",
- nextDecade: "Dehsalen paş",
- previousCentury: "Sedsalen peş",
- nextCentury: "Sedsalen paş"
- },
- timePickerLocale: {
- placeholder: "Demê hilbijêre"
- }
- },
- TimePicker: {
- placeholder: "Demê hilbijêre"
- },
- Calendar: {
- lang: {
- placeholder: "Dîrok hilbijêre",
- rangePlaceholder: ["Dîroka destpêkê", "Dîroka dawîn"],
- locale: "ku",
- today: "Îro",
- now: "Niha",
- backToToday: "Vegere îro",
- ok: "Temam",
- clear: "Paqij bike",
- month: "Meh",
- year: "Sal",
- timeSelect: "Demê hilbijêre",
- dateSelect: "Dîrok hilbijêre",
- monthSelect: "Meh hilbijêre",
- yearSelect: "Sal hilbijêre",
- decadeSelect: "Dehsal hilbijêre",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Meha peş (PageUp))",
- nextMonth: "Meha paş (PageDown)",
- previousYear: "Sala peş (Control + şep)",
- nextYear: "Sala paş (Control + rast)",
- previousDecade: "Dehsalen peş",
- nextDecade: "Dehsalen paş",
- previousCentury: "Sedsalen peş",
- nextCentury: "Sedsalen paş"
- },
- timePickerLocale: {
- placeholder: "Demê hilbijêre"
- }
- },
- Table: {
- filterTitle: "Menuê peldanka",
- filterConfirm: "Temam",
- filterReset: "Jê bibe",
- selectAll: "Hemî hilbijêre",
- selectInvert: "Hilbijartinan veguhere"
- },
- Modal: {
- okText: "Temam",
- cancelText: "Betal ke",
- justOkText: "Temam"
- },
- Popconfirm: {
- okText: "Temam",
- cancelText: "Betal ke"
- },
- Transfer: {
- searchPlaceholder: "Lêgerîn",
- itemUnit: "tişt",
- itemsUnit: "tişt"
- },
- Upload: {
- uploading: "Bardike...",
- removeFile: "Pelê rabike",
- uploadError: "Xeta barkirine",
- previewFile: "Pelê pêşbibîne",
- downloadFile: "Pelê dakêşin"
- },
- Empty: {
- description: "Agahî tune"
- }
-};
-var kn_IN = {
- locale: "kn",
- Pagination: {
- items_per_page: "/ ಪುಟ",
- jump_to: "ಜಿಗಿತವನ್ನು",
- jump_to_confirm: "ಖಚಿತಪಡಿಸಲು ಜಿಗಿತವನ್ನು",
- page: "",
- prev_page: "ಹಿಂದಿನ ಪುಟ",
- next_page: "ಮುಂದಿನ ಪುಟ",
- prev_5: "ಹಿಂದಿನ 5 ಪುಟಗಳು",
- next_5: "ಮುಂದಿನ 5 ಪುಟಗಳು",
- prev_3: "ಹಿಂದಿನ 3 ಪುಟಗಳು",
- next_3: "ಮುಂದಿನ 3 ಪುಟಗಳು",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "ದಿನಾಂಕ ಆಯ್ಕೆಮಾಡಿ",
- rangePlaceholder: ["ಪ್ರಾರಂಭ ದಿನಾಂಕ", "ಅಂತಿಮ ದಿನಾಂಕ"],
- locale: "kn_IN",
- today: "ಇಂದು",
- now: "ಈಗ",
- backToToday: "ಇಂದು ಹಿಂದಿರುಗಿ",
- ok: "ಸರಿ",
- clear: "ಸ್ಪಷ್ಟ",
- month: "ತಿಂಗಳು",
- year: "ವರ್ಷ",
- timeSelect: "ಸಮಯ ಆಯ್ಕೆಮಾಡಿ",
- dateSelect: "ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ",
- weekSelect: "ಒಂದು ವಾರದ ಆರಿಸಿ",
- monthSelect: "ಒಂದು ತಿಂಗಳು ಆಯ್ಕೆಮಾಡಿ",
- yearSelect: "ಒಂದು ವರ್ಷ ಆರಿಸಿ",
- decadeSelect: "ಒಂದು ದಶಕದ ಆಯ್ಕೆಮಾಡಿ",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "ಹಿಂದಿನ ತಿಂಗಳು (ಪೇಜ್ಅಪ್)",
- nextMonth: "ಮುಂದಿನ ತಿಂಗಳು (ಪೇಜ್ಡೌನ್)",
- previousYear: "ಕಳೆದ ವರ್ಷ (Ctrl + ಎಡ)",
- nextYear: "ಮುಂದಿನ ವರ್ಷ (Ctrl + ಬಲ)",
- previousDecade: "ಕಳೆದ ದಶಕ",
- nextDecade: "ಮುಂದಿನ ದಶಕ",
- previousCentury: "ಕಳೆದ ಶತಮಾನ",
- nextCentury: "ಮುಂದಿನ ಶತಮಾನ"
- },
- timePickerLocale: {
- placeholder: "ಸಮಯ ಆಯ್ಕೆಮಾಡಿ"
- }
- },
- TimePicker: {
- placeholder: "ಸಮಯ ಆಯ್ಕೆಮಾಡಿ"
- },
- Calendar: {
- lang: {
- placeholder: "ದಿನಾಂಕ ಆಯ್ಕೆಮಾಡಿ",
- rangePlaceholder: ["ಪ್ರಾರಂಭ ದಿನಾಂಕ", "ಅಂತಿಮ ದಿನಾಂಕ"],
- locale: "kn_IN",
- today: "ಇಂದು",
- now: "ಈಗ",
- backToToday: "ಇಂದು ಹಿಂದಿರುಗಿ",
- ok: "ಸರಿ",
- clear: "ಸ್ಪಷ್ಟ",
- month: "ತಿಂಗಳು",
- year: "ವರ್ಷ",
- timeSelect: "ಸಮಯ ಆಯ್ಕೆಮಾಡಿ",
- dateSelect: "ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ",
- weekSelect: "ಒಂದು ವಾರದ ಆರಿಸಿ",
- monthSelect: "ಒಂದು ತಿಂಗಳು ಆಯ್ಕೆಮಾಡಿ",
- yearSelect: "ಒಂದು ವರ್ಷ ಆರಿಸಿ",
- decadeSelect: "ಒಂದು ದಶಕದ ಆಯ್ಕೆಮಾಡಿ",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "ಹಿಂದಿನ ತಿಂಗಳು (ಪೇಜ್ಅಪ್)",
- nextMonth: "ಮುಂದಿನ ತಿಂಗಳು (ಪೇಜ್ಡೌನ್)",
- previousYear: "ಕಳೆದ ವರ್ಷ (Ctrl + ಎಡ)",
- nextYear: "ಮುಂದಿನ ವರ್ಷ (Ctrl + ಬಲ)",
- previousDecade: "ಕಳೆದ ದಶಕ",
- nextDecade: "ಮುಂದಿನ ದಶಕ",
- previousCentury: "ಕಳೆದ ಶತಮಾನ",
- nextCentury: "ಮುಂದಿನ ಶತಮಾನ"
- },
- timePickerLocale: {
- placeholder: "ಸಮಯ ಆಯ್ಕೆಮಾಡಿ"
- }
- },
- global: {
- placeholder: "ದಯವಿಟ್ಟು ಆರಿಸಿ"
- },
- Table: {
- filterTitle: "ಪಟ್ಟಿ ಸೋಸಿ",
- filterConfirm: "ಸರಿ",
- filterReset: "ಮರುಹೊಂದಿಸಿ",
- emptyText: "ಮಾಹಿತಿ ಇಲ್ಲ",
- selectAll: "ಪ್ರಸ್ತುತ ಪುಟವನ್ನು ಆಯ್ಕೆಮಾಡಿ",
- selectInvert: "ಪ್ರಸ್ತುತ ಪುಟವನ್ನು ತಿರುಗಿಸಿ",
- sortTitle: "ವಿಂಗಡಿಸಿ"
- },
- Modal: {
- okText: "ಸರಿ",
- cancelText: "ರದ್ದು",
- justOkText: "ಸರಿ"
- },
- Popconfirm: {
- okText: "ಸರಿ",
- cancelText: "ರದ್ದು"
- },
- Transfer: {
- titles: ["", ""],
- notFoundContent: "ದೊರೆತಿಲ್ಲ",
- searchPlaceholder: "ಇಲ್ಲಿ ಹುಡುಕಿ",
- itemUnit: "ವಿಷಯ",
- itemsUnit: "ವಿಷಯಗಳು"
- },
- Select: {
- notFoundContent: "ದೊರೆತಿಲ್ಲ"
- },
- Upload: {
- uploading: "ಏರಿಸಿ...",
- removeFile: "ಫೈಲ್ ತೆಗೆದುಹಾಕಿ",
- uploadError: "ಏರಿಸುವ ದೋಷ",
- previewFile: "ಫೈಲ್ ಮುನ್ನೋಟ",
- downloadFile: "ಫೈಲ್ ಡೌನ್ಲೋಡ್ ಮಾಡಿ"
- }
-};
-var ko_KR = {
- locale: "ko",
- Pagination: {
- items_per_page: "/ 쪽",
- jump_to: "이동하기",
- jump_to_confirm: "확인하다",
- page: "페이지",
- prev_page: "이전 페이지",
- next_page: "다음 페이지",
- prev_5: "이전 5 페이지",
- next_5: "다음 5 페이지",
- prev_3: "이전 3 페이지",
- next_3: "다음 3 페이지",
- page_size: "페이지 크기"
- },
- DatePicker: {
- lang: {
- placeholder: "날짜 선택",
- rangePlaceholder: ["시작일", "종료일"],
- locale: "ko_KR",
- today: "오늘",
- now: "현재 시각",
- backToToday: "오늘로 돌아가기",
- ok: "확인",
- clear: "지우기",
- month: "월",
- year: "년",
- timeSelect: "시간 선택",
- dateSelect: "날짜 선택",
- monthSelect: "달 선택",
- yearSelect: "연 선택",
- decadeSelect: "연대 선택",
- yearFormat: "YYYY년",
- dateFormat: "YYYY-MM-DD",
- dayFormat: "Do",
- dateTimeFormat: "YYYY-MM-DD HH:mm:ss",
- monthBeforeYear: false,
- previousMonth: "이전 달 (PageUp)",
- nextMonth: "다음 달 (PageDown)",
- previousYear: "이전 해 (Control + left)",
- nextYear: "다음 해 (Control + right)",
- previousDecade: "이전 연대",
- nextDecade: "다음 연대",
- previousCentury: "이전 세기",
- nextCentury: "다음 세기"
- },
- timePickerLocale: {
- placeholder: "시간 선택",
- rangePlaceholder: ["시작 시간", "종료 시간"]
- }
- },
- TimePicker: {
- placeholder: "시간 선택",
- rangePlaceholder: ["시작 시간", "종료 시간"]
- },
- Calendar: {
- lang: {
- placeholder: "날짜 선택",
- rangePlaceholder: ["시작일", "종료일"],
- locale: "ko_KR",
- today: "오늘",
- now: "현재 시각",
- backToToday: "오늘로 돌아가기",
- ok: "확인",
- clear: "지우기",
- month: "월",
- year: "년",
- timeSelect: "시간 선택",
- dateSelect: "날짜 선택",
- monthSelect: "달 선택",
- yearSelect: "연 선택",
- decadeSelect: "연대 선택",
- yearFormat: "YYYY년",
- dateFormat: "YYYY-MM-DD",
- dayFormat: "Do",
- dateTimeFormat: "YYYY-MM-DD HH:mm:ss",
- monthBeforeYear: false,
- previousMonth: "이전 달 (PageUp)",
- nextMonth: "다음 달 (PageDown)",
- previousYear: "이전 해 (Control + left)",
- nextYear: "다음 해 (Control + right)",
- previousDecade: "이전 연대",
- nextDecade: "다음 연대",
- previousCentury: "이전 세기",
- nextCentury: "다음 세기"
- },
- timePickerLocale: {
- placeholder: "시간 선택",
- rangePlaceholder: ["시작 시간", "종료 시간"]
- }
- },
- Table: {
- filterTitle: "필터 메뉴",
- filterConfirm: "확인",
- filterReset: "초기화",
- selectAll: "모두 선택",
- selectInvert: "선택 반전",
- filterEmptyText: "필터 없음",
- emptyText: "데이터 없음"
- },
- Modal: {
- okText: "확인",
- cancelText: "취소",
- justOkText: "확인"
- },
- Popconfirm: {
- okText: "확인",
- cancelText: "취소"
- },
- Transfer: {
- searchPlaceholder: "여기에 검색하세요",
- itemUnit: "개",
- itemsUnit: "개"
- },
- Upload: {
- uploading: "업로드 중...",
- removeFile: "파일 삭제",
- uploadError: "업로드 실패",
- previewFile: "파일 미리보기",
- downloadFile: "파일 다운로드"
- },
- Empty: {
- description: "데이터 없음"
- }
-};
-var ku_IQ = {
- locale: "ku-iq",
- Pagination: {
- items_per_page: "/ rûpel",
- jump_to: "Biçe",
- jump_to_confirm: "piştrast bike",
- page: "",
- prev_page: "Rûpelê Pêş",
- next_page: "Rûpelê Paş",
- prev_5: "5 Rûpelên Pêş",
- next_5: "5 Rûpelên Paş",
- prev_3: "3 Rûpelên Pêş",
- next_3: "3 Rûpelên Paş",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Dîrok hilbijêre",
- rangePlaceholder: ["Dîroka destpêkê", "Dîroka dawîn"],
- locale: "ku",
- today: "Îro",
- now: "Niha",
- backToToday: "Vegere îro",
- ok: "Temam",
- clear: "Paqij bike",
- month: "Meh",
- year: "Sal",
- timeSelect: "Demê hilbijêre",
- dateSelect: "Dîrok hilbijêre",
- monthSelect: "Meh hilbijêre",
- yearSelect: "Sal hilbijêre",
- decadeSelect: "Dehsal hilbijêre",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Meha peş (PageUp))",
- nextMonth: "Meha paş (PageDown)",
- previousYear: "Sala peş (Control + şep)",
- nextYear: "Sala paş (Control + rast)",
- previousDecade: "Dehsalen peş",
- nextDecade: "Dehsalen paş",
- previousCentury: "Sedsalen peş",
- nextCentury: "Sedsalen paş"
- },
- timePickerLocale: {
- placeholder: "Demê hilbijêre"
- }
- },
- TimePicker: {
- placeholder: "Demê hilbijêre"
- },
- Calendar: {
- lang: {
- placeholder: "Dîrok hilbijêre",
- rangePlaceholder: ["Dîroka destpêkê", "Dîroka dawîn"],
- locale: "ku",
- today: "Îro",
- now: "Niha",
- backToToday: "Vegere îro",
- ok: "Temam",
- clear: "Paqij bike",
- month: "Meh",
- year: "Sal",
- timeSelect: "Demê hilbijêre",
- dateSelect: "Dîrok hilbijêre",
- monthSelect: "Meh hilbijêre",
- yearSelect: "Sal hilbijêre",
- decadeSelect: "Dehsal hilbijêre",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Meha peş (PageUp))",
- nextMonth: "Meha paş (PageDown)",
- previousYear: "Sala peş (Control + şep)",
- nextYear: "Sala paş (Control + rast)",
- previousDecade: "Dehsalen peş",
- nextDecade: "Dehsalen paş",
- previousCentury: "Sedsalen peş",
- nextCentury: "Sedsalen paş"
- },
- timePickerLocale: {
- placeholder: "Demê hilbijêre"
- }
- },
- Table: {
- filterTitle: "Menuê peldanka",
- filterConfirm: "Temam",
- filterReset: "Jê bibe",
- selectAll: "Hemî hilbijêre",
- selectInvert: "Hilbijartinan veguhere"
- },
- Modal: {
- okText: "Temam",
- cancelText: "Betal ke",
- justOkText: "Temam"
- },
- Popconfirm: {
- okText: "Temam",
- cancelText: "Betal ke"
- },
- Transfer: {
- searchPlaceholder: "Lêgerîn",
- itemUnit: "tişt",
- itemsUnit: "tişt"
- },
- Upload: {
- uploading: "Bardike...",
- removeFile: "Pelê rabike",
- uploadError: "Xeta barkirine",
- previewFile: "Pelê pêşbibîne",
- downloadFile: "Pelê dakêşin"
- },
- Empty: {
- description: "Agahî tune"
- }
-};
-var lt_LT = {
- locale: "lt",
- Pagination: {
- items_per_page: "/ psl.",
- jump_to: "Pereiti",
- jump_to_confirm: "patvirtinti",
- page: "",
- prev_page: "Atgal",
- next_page: "Pirmyn",
- prev_5: "Grįžti 5 pls.",
- next_5: "Peršokti 5 pls.",
- prev_3: "Grįžti 3 pls.",
- next_3: "Peršokti 3 pls.",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Pasirinkite datą",
- yearPlaceholder: "Pasirinkite metus",
- quarterPlaceholder: "Pasirinkite ketvirtį",
- monthPlaceholder: "Pasirinkite mėnesį",
- weekPlaceholder: "Pasirinkite savaitę",
- rangePlaceholder: ["Pradžios data", "Pabaigos data"],
- rangeYearPlaceholder: ["Pradžios metai", "Pabaigos metai"],
- rangeMonthPlaceholder: ["Pradžios mėnesis", "Pabaigos mėnesis"],
- rangeWeekPlaceholder: ["Pradžios savaitė", "Pabaigos savaitė"],
- locale: "lt_LT",
- today: "Šiandien",
- now: "Dabar",
- backToToday: "Rodyti šiandien",
- ok: "Gerai",
- clear: "Išvalyti",
- month: "Mėnesis",
- year: "Metai",
- timeSelect: "Pasirinkti laiką",
- dateSelect: "Pasirinkti datą",
- monthSelect: "Pasirinkti mėnesį",
- yearSelect: "Pasirinkti metus",
- decadeSelect: "Pasirinkti dešimtmetį",
- yearFormat: "YYYY",
- dateFormat: "YYYY-MM-DD",
- dayFormat: "DD",
- dateTimeFormat: "YYYY-MM-DD HH:MM:SS",
- monthBeforeYear: true,
- previousMonth: "Buvęs mėnesis (PageUp)",
- nextMonth: "Sekantis mėnesis (PageDown)",
- previousYear: "Buvę metai (Control + left)",
- nextYear: "Sekantis metai (Control + right)",
- previousDecade: "Buvęs dešimtmetis",
- nextDecade: "Sekantis dešimtmetis",
- previousCentury: "Buvęs amžius",
- nextCentury: "Sekantis amžius"
- },
- timePickerLocale: {
- placeholder: "Pasirinkite laiką",
- rangePlaceholder: ["Pradžios laikas", "Pabaigos laikas"]
- }
- },
- TimePicker: {
- placeholder: "Pasirinkite laiką",
- rangePlaceholder: ["Pradžios laikas", "Pabaigos laikas"]
- },
- Calendar: {
- lang: {
- placeholder: "Pasirinkite datą",
- yearPlaceholder: "Pasirinkite metus",
- quarterPlaceholder: "Pasirinkite ketvirtį",
- monthPlaceholder: "Pasirinkite mėnesį",
- weekPlaceholder: "Pasirinkite savaitę",
- rangePlaceholder: ["Pradžios data", "Pabaigos data"],
- rangeYearPlaceholder: ["Pradžios metai", "Pabaigos metai"],
- rangeMonthPlaceholder: ["Pradžios mėnesis", "Pabaigos mėnesis"],
- rangeWeekPlaceholder: ["Pradžios savaitė", "Pabaigos savaitė"],
- locale: "lt_LT",
- today: "Šiandien",
- now: "Dabar",
- backToToday: "Rodyti šiandien",
- ok: "Gerai",
- clear: "Išvalyti",
- month: "Mėnesis",
- year: "Metai",
- timeSelect: "Pasirinkti laiką",
- dateSelect: "Pasirinkti datą",
- monthSelect: "Pasirinkti mėnesį",
- yearSelect: "Pasirinkti metus",
- decadeSelect: "Pasirinkti dešimtmetį",
- yearFormat: "YYYY",
- dateFormat: "YYYY-MM-DD",
- dayFormat: "DD",
- dateTimeFormat: "YYYY-MM-DD HH:MM:SS",
- monthBeforeYear: true,
- previousMonth: "Buvęs mėnesis (PageUp)",
- nextMonth: "Sekantis mėnesis (PageDown)",
- previousYear: "Buvę metai (Control + left)",
- nextYear: "Sekantis metai (Control + right)",
- previousDecade: "Buvęs dešimtmetis",
- nextDecade: "Sekantis dešimtmetis",
- previousCentury: "Buvęs amžius",
- nextCentury: "Sekantis amžius"
- },
- timePickerLocale: {
- placeholder: "Pasirinkite laiką",
- rangePlaceholder: ["Pradžios laikas", "Pabaigos laikas"]
- }
- },
- Table: {
- filterTitle: "Filtras",
- filterConfirm: "Gerai",
- filterReset: "Atstatyti",
- filterEmptyText: "Be filtrų",
- emptyText: "Nėra duomenų",
- selectAll: "Pasirinkti viską",
- selectInvert: "Apversti pasirinkimą",
- selectionAll: "Rinktis visus",
- sortTitle: "Rikiavimas",
- expand: "Išskleisti",
- collapse: "Suskleisti",
- triggerDesc: "Spustelėkite norėdami rūšiuoti mažėjančia tvarka",
- triggerAsc: "Spustelėkite norėdami rūšiuoti didėjančia tvarka",
- cancelSort: "Spustelėkite, kad atšauktumėte rūšiavimą"
- },
- Modal: {
- okText: "Taip",
- cancelText: "Atšaukti",
- justOkText: "Gerai"
- },
- Popconfirm: {
- okText: "Taip",
- cancelText: "Atšaukti"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Paieška",
- itemUnit: "vnt.",
- itemsUnit: "vnt.",
- remove: "Pašalinti",
- selectAll: "Pasirinkti visus",
- selectCurrent: "Pasirinkite dabartinį puslapį",
- selectInvert: "Atkeist pasirinkimą",
- removeAll: "Ištrinti visus duomenis",
- removeCurrent: "Ištrinti dabartinį puslapį"
- },
- Upload: {
- uploading: "Gaunami duomenys...",
- removeFile: "Ištrinti failą",
- uploadError: "Įkeliant įvyko klaida",
- previewFile: "Failo peržiūra",
- downloadFile: "Įkelti failą"
- },
- Empty: {
- description: "Nėra duomenų"
- },
- Icon: {
- icon: "piktograma"
- },
- Text: {
- edit: "Redaguoti",
- copy: "Kopijuoti",
- copied: "Nukopijuota",
- expand: "Plačiau"
- },
- PageHeader: {
- back: "Atgal"
- }
-};
-var lv_LV = {
- locale: "lv",
- Pagination: {
- items_per_page: "/ lappuse",
- jump_to: "iet uz",
- jump_to_confirm: "apstiprināt",
- page: "",
- prev_page: "Iepriekšējā lapa",
- next_page: "Nākamā lapaspuse",
- prev_5: "Iepriekšējās 5 lapas",
- next_5: "Nākamās 5 lapas",
- prev_3: "Iepriekšējās 3 lapas",
- next_3: "Nākamās 3 lapas",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Izvēlieties datumu",
- rangePlaceholder: ["Sākuma datums", "Beigu datums"],
- locale: "lv_LV",
- today: "Šodien",
- now: "Tagad",
- backToToday: "Atpakaļ pie šodienas",
- ok: "Ok",
- clear: "Skaidrs",
- month: "Mēnesis",
- year: "Gads",
- timeSelect: "Izvēlieties laiku",
- dateSelect: "Izvēlieties datumu",
- monthSelect: "Izvēlieties mēnesi",
- yearSelect: "Izvēlieties gadu",
- decadeSelect: "Izvēlieties desmit gadus",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Iepriekšējais mēnesis (PageUp)",
- nextMonth: "Nākammēnes (PageDown)",
- previousYear: "Pagājušais gads (Control + left)",
- nextYear: "Nākamgad (Control + right)",
- previousDecade: "Pēdējā desmitgadē",
- nextDecade: "Nākamā desmitgade",
- previousCentury: "Pagājušajā gadsimtā",
- nextCentury: "Nākamajā gadsimtā"
- },
- timePickerLocale: {
- placeholder: "Izvēlieties laiku"
- }
- },
- TimePicker: {
- placeholder: "Izvēlieties laiku"
- },
- Calendar: {
- lang: {
- placeholder: "Izvēlieties datumu",
- rangePlaceholder: ["Sākuma datums", "Beigu datums"],
- locale: "lv_LV",
- today: "Šodien",
- now: "Tagad",
- backToToday: "Atpakaļ pie šodienas",
- ok: "Ok",
- clear: "Skaidrs",
- month: "Mēnesis",
- year: "Gads",
- timeSelect: "Izvēlieties laiku",
- dateSelect: "Izvēlieties datumu",
- monthSelect: "Izvēlieties mēnesi",
- yearSelect: "Izvēlieties gadu",
- decadeSelect: "Izvēlieties desmit gadus",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Iepriekšējais mēnesis (PageUp)",
- nextMonth: "Nākammēnes (PageDown)",
- previousYear: "Pagājušais gads (Control + left)",
- nextYear: "Nākamgad (Control + right)",
- previousDecade: "Pēdējā desmitgadē",
- nextDecade: "Nākamā desmitgade",
- previousCentury: "Pagājušajā gadsimtā",
- nextCentury: "Nākamajā gadsimtā"
- },
- timePickerLocale: {
- placeholder: "Izvēlieties laiku"
- }
- },
- Table: {
- filterTitle: "Filtrēšanas izvēlne",
- filterConfirm: "OK",
- filterReset: "Atiestatīt",
- selectAll: "Atlasiet pašreizējo lapu",
- selectInvert: "Pārvērst pašreizējo lapu"
- },
- Modal: {
- okText: "OK",
- cancelText: "Atcelt",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Atcelt"
- },
- Transfer: {
- searchPlaceholder: "Meklēt šeit",
- itemUnit: "vienumu",
- itemsUnit: "vienumus"
- },
- Upload: {
- uploading: "Augšupielāde...",
- removeFile: "Noņemt failu",
- uploadError: "Augšupielādes kļūda",
- previewFile: "Priekšskatiet failu",
- downloadFile: "Lejupielādēt failu"
- },
- Empty: {
- description: "Nav datu"
- }
-};
-var mk_MK = {
- locale: "mk",
- Pagination: {
- items_per_page: "/ стр",
- jump_to: "Оди на",
- jump_to_confirm: "потврди",
- page: "",
- prev_page: "Претходна страница",
- next_page: "Наредна страница",
- prev_5: "Претходни 5 страници",
- next_5: "Наредни 5 страници",
- prev_3: "Претходни 3 страници",
- next_3: "Наредни 3 страници",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Избери датум",
- rangePlaceholder: ["Од датум", "До датум"],
- locale: "mk_MK",
- today: "Денес",
- now: "Сега",
- backToToday: "Назад до денес",
- ok: "ОК",
- clear: "Избриши",
- month: "Месец",
- year: "Година",
- timeSelect: "Избери време",
- dateSelect: "Избери датум",
- monthSelect: "Избери месец",
- yearSelect: "Избери година",
- decadeSelect: "Избери деценија",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Претходен месец (PageUp)",
- nextMonth: "Нареден месец (PageDown)",
- previousYear: "Претходна година (Control + left)",
- nextYear: "Наредна година (Control + right)",
- previousDecade: "Претходна деценија",
- nextDecade: "Наредна деценија",
- previousCentury: "Претходен век",
- nextCentury: "Нареден век"
- },
- timePickerLocale: {
- placeholder: "Избери време"
- }
- },
- TimePicker: {
- placeholder: "Избери време"
- },
- Calendar: {
- lang: {
- placeholder: "Избери датум",
- rangePlaceholder: ["Од датум", "До датум"],
- locale: "mk_MK",
- today: "Денес",
- now: "Сега",
- backToToday: "Назад до денес",
- ok: "ОК",
- clear: "Избриши",
- month: "Месец",
- year: "Година",
- timeSelect: "Избери време",
- dateSelect: "Избери датум",
- monthSelect: "Избери месец",
- yearSelect: "Избери година",
- decadeSelect: "Избери деценија",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Претходен месец (PageUp)",
- nextMonth: "Нареден месец (PageDown)",
- previousYear: "Претходна година (Control + left)",
- nextYear: "Наредна година (Control + right)",
- previousDecade: "Претходна деценија",
- nextDecade: "Наредна деценија",
- previousCentury: "Претходен век",
- nextCentury: "Нареден век"
- },
- timePickerLocale: {
- placeholder: "Избери време"
- }
- },
- global: {
- placeholder: "Ве молиме означете"
- },
- Table: {
- filterTitle: "Мени за филтрирање",
- filterConfirm: "ОК",
- filterReset: "Избриши",
- selectAll: "Одбери страница",
- selectInvert: "Инвертирај страница"
- },
- Modal: {
- okText: "ОК",
- cancelText: "Откажи",
- justOkText: "ОК"
- },
- Popconfirm: {
- okText: "ОК",
- cancelText: "Откажи"
- },
- Transfer: {
- searchPlaceholder: "Пребарај тука",
- itemUnit: "предмет",
- itemsUnit: "предмети"
- },
- Upload: {
- uploading: "Се прикачува...",
- removeFile: "Избриши фајл",
- uploadError: "Грешка при прикачување",
- previewFile: "Прикажи фајл",
- downloadFile: "Преземи фајл"
- },
- Empty: {
- description: "Нема податоци"
- },
- Icon: {
- icon: "Икона"
- },
- Text: {
- edit: "Уреди",
- copy: "Копирај",
- copied: "Копирано",
- expand: "Зголеми"
- },
- PageHeader: {
- back: "Назад"
- }
-};
-var ml_IN = {
- locale: "ml",
- Pagination: {
- items_per_page: "/ പേജ്",
- jump_to: "അടുത്തത്",
- jump_to_confirm: "ഉറപ്പാക്കുക",
- page: "",
- prev_page: "മുൻപുള്ള പേജ്",
- next_page: "അടുത്ത പേജ്",
- prev_5: "മുൻപുള്ള 5 പേജുകൾ",
- next_5: "അടുത്ത 5 പേജുകൾ",
- prev_3: "മുൻപുള്ള 3 പേജുകൾ",
- next_3: "അടുത്ത 3 പേജുകൾ",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "തിയതി തിരഞ്ഞെടുക്കുക",
- yearPlaceholder: "വർഷം തിരഞ്ഞെടുക്കുക",
- quarterPlaceholder: "ത്രൈമാസം തിരഞ്ഞെടുക്കുക",
- monthPlaceholder: "മാസം തിരഞ്ഞെടുക്കുക",
- weekPlaceholder: "വാരം തിരഞ്ഞെടുക്കുക",
- rangePlaceholder: ["ആരംഭ ദിനം", "അവസാന ദിനം"],
- rangeYearPlaceholder: ["ആരംഭ വർഷം", "അവസാന വർഷം"],
- rangeMonthPlaceholder: ["ആരംഭ മാസം", "അവസാന മാസം"],
- rangeWeekPlaceholder: ["ആരംഭ വാരം", "അവസാന വാരം"],
- locale: "ml_IN",
- today: "ഇന്ന്",
- now: "ഇപ്പോൾ",
- backToToday: "ഇന്നത്തെ ദിവസത്തിലേക്ക് തിരിച്ചു പോകുക",
- ok: "ശരിയാണ്",
- clear: "നീക്കം ചെയ്യുക",
- month: "മാസം",
- year: "വർഷം",
- timeSelect: "സമയം തിരഞ്ഞെടുക്കുക",
- dateSelect: "ദിവസം തിരഞ്ഞെടുക്കുക",
- weekSelect: "വാരം തിരഞ്ഞെടുക്കുക",
- monthSelect: "മാസം തിരഞ്ഞെടുക്കുക",
- yearSelect: "വർഷം തിരഞ്ഞെടുക്കുക",
- decadeSelect: "ദശാബ്ദം തിരഞ്ഞെടുക്കുക",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "കഴിഞ്ഞ മാസം (PageUp)",
- nextMonth: "അടുത്ത മാസം (PageDown)",
- previousYear: "കഴിഞ്ഞ വർഷം (Control + left)",
- nextYear: "അടുത്ത വർഷം (Control + right)",
- previousDecade: "കഴിഞ്ഞ ദശാബ്ദം",
- nextDecade: "അടുത്ത ദശാബ്ദം",
- previousCentury: "കഴിഞ്ഞ നൂറ്റാണ്ട്",
- nextCentury: "അടുത്ത നൂറ്റാണ്ട്"
- },
- timePickerLocale: {
- placeholder: "സമയം തിരഞ്ഞെടുക്കുക",
- rangePlaceholder: ["ആരംഭ സമയം", "അവസാന സമയം"]
- }
- },
- TimePicker: {
- placeholder: "സമയം തിരഞ്ഞെടുക്കുക",
- rangePlaceholder: ["ആരംഭ സമയം", "അവസാന സമയം"]
- },
- Calendar: {
- lang: {
- placeholder: "തിയതി തിരഞ്ഞെടുക്കുക",
- yearPlaceholder: "വർഷം തിരഞ്ഞെടുക്കുക",
- quarterPlaceholder: "ത്രൈമാസം തിരഞ്ഞെടുക്കുക",
- monthPlaceholder: "മാസം തിരഞ്ഞെടുക്കുക",
- weekPlaceholder: "വാരം തിരഞ്ഞെടുക്കുക",
- rangePlaceholder: ["ആരംഭ ദിനം", "അവസാന ദിനം"],
- rangeYearPlaceholder: ["ആരംഭ വർഷം", "അവസാന വർഷം"],
- rangeMonthPlaceholder: ["ആരംഭ മാസം", "അവസാന മാസം"],
- rangeWeekPlaceholder: ["ആരംഭ വാരം", "അവസാന വാരം"],
- locale: "ml_IN",
- today: "ഇന്ന്",
- now: "ഇപ്പോൾ",
- backToToday: "ഇന്നത്തെ ദിവസത്തിലേക്ക് തിരിച്ചു പോകുക",
- ok: "ശരിയാണ്",
- clear: "നീക്കം ചെയ്യുക",
- month: "മാസം",
- year: "വർഷം",
- timeSelect: "സമയം തിരഞ്ഞെടുക്കുക",
- dateSelect: "ദിവസം തിരഞ്ഞെടുക്കുക",
- weekSelect: "വാരം തിരഞ്ഞെടുക്കുക",
- monthSelect: "മാസം തിരഞ്ഞെടുക്കുക",
- yearSelect: "വർഷം തിരഞ്ഞെടുക്കുക",
- decadeSelect: "ദശാബ്ദം തിരഞ്ഞെടുക്കുക",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "കഴിഞ്ഞ മാസം (PageUp)",
- nextMonth: "അടുത്ത മാസം (PageDown)",
- previousYear: "കഴിഞ്ഞ വർഷം (Control + left)",
- nextYear: "അടുത്ത വർഷം (Control + right)",
- previousDecade: "കഴിഞ്ഞ ദശാബ്ദം",
- nextDecade: "അടുത്ത ദശാബ്ദം",
- previousCentury: "കഴിഞ്ഞ നൂറ്റാണ്ട്",
- nextCentury: "അടുത്ത നൂറ്റാണ്ട്"
- },
- timePickerLocale: {
- placeholder: "സമയം തിരഞ്ഞെടുക്കുക",
- rangePlaceholder: ["ആരംഭ സമയം", "അവസാന സമയം"]
- }
- },
- global: {
- placeholder: "ദയവായി തിരഞ്ഞെടുക്കുക"
- },
- Table: {
- filterTitle: "ഫിൽറ്റർ",
- filterConfirm: "ശരിയാണ്",
- filterReset: "പുനഃക്രമീകരിക്കുക",
- filterEmptyText: "ഫിൽറ്ററുകളൊന്നുമില്ല",
- emptyText: "ഡാറ്റയൊന്നുമില്ല",
- selectAll: "നിലവിലെ പേജ് തിരഞ്ഞെടുക്കുക",
- selectInvert: "നിലവിലെ പേജിൽ ഇല്ലാത്തത് തിരഞ്ഞെടുക്കുക",
- selectNone: "എല്ലാ ഡാറ്റയും നീക്കം ചെയ്യുക",
- selectionAll: "എല്ലാ ഡാറ്റയും തിരഞ്ഞെടുക്കുക",
- sortTitle: "ക്രമമാക്കുക",
- expand: "വരി വികസിപ്പിക്കുക",
- collapse: "വരി ചുരുക്കുക",
- triggerDesc: "അവരോഹണ ക്രമത്തിനായി ക്ലിക്ക് ചെയ്യുക",
- triggerAsc: "ആരോഹണ ക്രമത്തിനായി ക്ലിക്ക് ചെയ്യുക",
- cancelSort: "ക്രമീകരണം ഒഴിവാക്കുന്നതിനായി ക്ലിക്ക് ചെയ്യുക"
- },
- Modal: {
- okText: "ശരിയാണ്",
- cancelText: "റദ്ദാക്കുക",
- justOkText: "ശരിയാണ്"
- },
- Popconfirm: {
- okText: "ശരിയാണ്",
- cancelText: "റദ്ദാക്കുക"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "ഇവിടെ തിരയുക",
- itemUnit: "ഇനം",
- itemsUnit: "ഇനങ്ങൾ",
- remove: "നീക്കം ചെയ്യുക",
- selectCurrent: "നിലവിലെ പേജ് തിരഞ്ഞെടുക്കുക",
- removeCurrent: "നിലവിലെ പേജ് നീക്കം ചെയ്യുക",
- selectAll: "എല്ലാ ഡാറ്റയും തിരഞ്ഞെടുക്കുക",
- removeAll: "എല്ലാ ഡാറ്റയും നീക്കം ചെയ്യുക",
- selectInvert: "നിലവിലെ പേജിൽ ഇല്ലാത്തത് തിരഞ്ഞെടുക്കുക"
- },
- Upload: {
- uploading: "അപ്ലോഡ് ചെയ്തു കൊണ്ടിരിക്കുന്നു...",
- removeFile: "ഫയൽ നീക്കം ചെയ്യുക",
- uploadError: "അപ്ലോഡിൽ പിശക് സംഭവിച്ചിരിക്കുന്നു",
- previewFile: "ഫയൽ പ്രിവ്യൂ ചെയ്യുക",
- downloadFile: "ഫയൽ ഡൗൺലോഡ് ചെയ്യുക"
- },
- Empty: {
- description: "ഡാറ്റയൊന്നുമില്ല"
- },
- Icon: {
- icon: "ഐക്കൺ"
- },
- Text: {
- edit: "തിരുത്തുക",
- copy: "കോപ്പി ചെയ്യുക",
- copied: "കോപ്പി ചെയ്തു",
- expand: "വികസിപ്പിക്കുക"
- },
- PageHeader: {
- back: "തിരികെ"
- },
- Image: {
- preview: "പ്രിവ്യൂ"
- }
-};
-var mn_MN = {
- locale: "mn-mn",
- Pagination: {
- items_per_page: "/ хуудас",
- jump_to: "Шилжих",
- jump_to_confirm: "сонгох",
- page: "",
- prev_page: "Өмнөх хуудас",
- next_page: "Дараагийн хуудас",
- prev_5: "Дараагийн 5 хуудас",
- next_5: "Дараагийн 5 хуудас",
- prev_3: "Дараагийн 3 хуудас",
- next_3: "Дараагийн 3 хуудас",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Огноо сонгох",
- rangePlaceholder: ["Эхлэх огноо", "Дуусах огноо"],
- locale: "mn_MN",
- today: "Өнөөдөр",
- now: "Одоо",
- backToToday: "Өнөөдөрлүү буцах",
- ok: "Ok",
- clear: "Цэвэрлэх",
- month: "Сар",
- year: "Жил",
- timeSelect: "Цаг сонгох",
- dateSelect: "Огноо сонгох",
- weekSelect: "7 хоног сонгох",
- monthSelect: "Сар сонгох",
- yearSelect: "Жил сонгох",
- decadeSelect: "Арван сонгох",
- yearFormat: "YYYY",
- dateFormat: "YYYY/MM/DD",
- dayFormat: "DD",
- dateTimeFormat: "YYYY/MM/DD HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Өмнөх сар (PageUp)",
- nextMonth: "Дараа сар (PageDown)",
- previousYear: "Өмнөх жил (Control + left)",
- nextYear: "Дараа жил (Control + right)",
- previousDecade: "Өмнөх арван",
- nextDecade: "Дараа арван",
- previousCentury: "Өмнөх зуун",
- nextCentury: "Дараа зуун"
- },
- timePickerLocale: {
- placeholder: "Цаг сонгох"
- }
- },
- TimePicker: {
- placeholder: "Цаг сонгох"
- },
- Calendar: {
- lang: {
- placeholder: "Огноо сонгох",
- rangePlaceholder: ["Эхлэх огноо", "Дуусах огноо"],
- locale: "mn_MN",
- today: "Өнөөдөр",
- now: "Одоо",
- backToToday: "Өнөөдөрлүү буцах",
- ok: "Ok",
- clear: "Цэвэрлэх",
- month: "Сар",
- year: "Жил",
- timeSelect: "Цаг сонгох",
- dateSelect: "Огноо сонгох",
- weekSelect: "7 хоног сонгох",
- monthSelect: "Сар сонгох",
- yearSelect: "Жил сонгох",
- decadeSelect: "Арван сонгох",
- yearFormat: "YYYY",
- dateFormat: "YYYY/MM/DD",
- dayFormat: "DD",
- dateTimeFormat: "YYYY/MM/DD HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Өмнөх сар (PageUp)",
- nextMonth: "Дараа сар (PageDown)",
- previousYear: "Өмнөх жил (Control + left)",
- nextYear: "Дараа жил (Control + right)",
- previousDecade: "Өмнөх арван",
- nextDecade: "Дараа арван",
- previousCentury: "Өмнөх зуун",
- nextCentury: "Дараа зуун"
- },
- timePickerLocale: {
- placeholder: "Цаг сонгох"
- }
- },
- Table: {
- filterTitle: "Хайх цэс",
- filterConfirm: "OK",
- filterReset: "Цэвэрлэх",
- selectAll: "Бүгдийг сонгох",
- selectInvert: "Бусдыг сонгох"
- },
- Modal: {
- okText: "OK",
- cancelText: "Цуцлах",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Цуцлах"
- },
- Transfer: {
- searchPlaceholder: "Хайх",
- itemUnit: "Зүйл",
- itemsUnit: "Зүйлүүд"
- },
- Upload: {
- uploading: "Хуулж байна...",
- removeFile: "Файл устгах",
- uploadError: "Хуулахад алдаа гарлаа",
- previewFile: "Файлыг түргэн үзэх",
- downloadFile: "Файлыг татах"
- },
- Empty: {
- description: "Мэдээлэл байхгүй байна"
- }
-};
-var ms_MY = {
- locale: "ms-my",
- Pagination: {
- items_per_page: "/ halaman",
- jump_to: "Lompat ke",
- jump_to_confirm: "Sahkan",
- page: "",
- prev_page: "Halaman sebelumnya",
- next_page: "Halam seterusnya",
- prev_5: "5 halaman sebelum",
- next_5: "5 halaman seterusnya",
- prev_3: "3 halaman sebelumnya",
- next_3: "3 halaman seterusnya",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Pilih tarikh",
- rangePlaceholder: ["Tarikh mula", "Tarikh akhir"],
- locale: "ms_MY",
- today: "Hari ini",
- now: "Sekarang",
- backToToday: "Kembali ke hari ini",
- ok: "Ok",
- timeSelect: "Pilih masa",
- dateSelect: "Pilih tarikh",
- weekSelect: "Pilih minggu",
- clear: "Padam",
- month: "Bulan",
- year: "Tahun",
- previousMonth: "Bulan lepas",
- nextMonth: "Bulan depan",
- monthSelect: "Pilih bulan",
- yearSelect: "Pilih tahun",
- decadeSelect: "Pilih dekad",
- yearFormat: "YYYY",
- dayFormat: "D",
- dateFormat: "M/D/YYYY",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- previousYear: "Tahun lepas (Ctrl+left)",
- nextYear: "Tahun depan (Ctrl+right)",
- previousDecade: "Dekad lepas",
- nextDecade: "Dekad depan",
- previousCentury: "Abad lepas",
- nextCentury: "Abad depan"
- },
- timePickerLocale: {
- placeholder: "Sila pilih masa"
- }
- },
- TimePicker: {
- placeholder: "Sila pilih masa"
- },
- Calendar: {
- lang: {
- placeholder: "Pilih tarikh",
- rangePlaceholder: ["Tarikh mula", "Tarikh akhir"],
- locale: "ms_MY",
- today: "Hari ini",
- now: "Sekarang",
- backToToday: "Kembali ke hari ini",
- ok: "Ok",
- timeSelect: "Pilih masa",
- dateSelect: "Pilih tarikh",
- weekSelect: "Pilih minggu",
- clear: "Padam",
- month: "Bulan",
- year: "Tahun",
- previousMonth: "Bulan lepas",
- nextMonth: "Bulan depan",
- monthSelect: "Pilih bulan",
- yearSelect: "Pilih tahun",
- decadeSelect: "Pilih dekad",
- yearFormat: "YYYY",
- dayFormat: "D",
- dateFormat: "M/D/YYYY",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- previousYear: "Tahun lepas (Ctrl+left)",
- nextYear: "Tahun depan (Ctrl+right)",
- previousDecade: "Dekad lepas",
- nextDecade: "Dekad depan",
- previousCentury: "Abad lepas",
- nextCentury: "Abad depan"
- },
- timePickerLocale: {
- placeholder: "Sila pilih masa"
- }
- },
- global: {
- placeholder: "Sila pilih"
- },
- PageHeader: {
- back: "Kembali"
- },
- Text: {
- edit: "Sunting",
- copy: "Salin",
- copied: "Berjaya menyalin",
- expand: "Kembang"
- },
- Empty: {
- description: "Tiada data"
- },
- Table: {
- filterTitle: "Cari dengan tajuk",
- filterConfirm: "OK",
- filterReset: "Menetapkan semula",
- emptyText: "Tiada data",
- selectAll: "Pilih semua",
- selectInvert: "Terbalikkan"
- },
- Modal: {
- okText: "OK",
- cancelText: "Batal",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Batal"
- },
- Transfer: {
- notFoundContent: "Tidak dijumpai",
- searchPlaceholder: "Carian di sini",
- itemUnit: "item",
- itemsUnit: "item"
- },
- Icon: {
- icon: "ikon"
- },
- Select: {
- notFoundContent: "Tidak Dijumpai"
- },
- Upload: {
- uploading: "Sedang memuat naik...",
- removeFile: "Buang fail",
- uploadError: "Masalah muat naik",
- previewFile: "Tengok fail",
- downloadFile: "Muat turun fail"
- }
-};
-var nb_NO = {
- locale: "nb",
- Pagination: {
- items_per_page: "/ side",
- jump_to: "Gå til side",
- page: "Side",
- prev_page: "Forrige side",
- next_page: "Neste side",
- prev_5: "5 forrige",
- next_5: "5 neste",
- prev_3: "3 forrige",
- next_3: "3 neste",
- page_size: "sidestørrelse"
- },
- DatePicker: {
- lang: {
- placeholder: "Velg dato",
- yearPlaceholder: "Velg år",
- quarterPlaceholder: "Velg kvartal",
- monthPlaceholder: "Velg måned",
- weekPlaceholder: "Velg uke",
- rangePlaceholder: ["Startdato", "Sluttdato"],
- rangeYearPlaceholder: ["Startår", "Sluttår"],
- rangeMonthPlaceholder: ["Startmåned", "Sluttmåned"],
- rangeWeekPlaceholder: ["Start uke", "Sluttuke"],
- locale: "nb_NO",
- today: "I dag",
- now: "Nå",
- backToToday: "Gå til i dag",
- ok: "Ok",
- clear: "Annuller",
- month: "Måned",
- year: "År",
- timeSelect: "Velg tidspunkt",
- dateSelect: "Velg dato",
- weekSelect: "Velg uke",
- monthSelect: "Velg måned",
- yearSelect: "Velg år",
- decadeSelect: "Velg tiår",
- yearFormat: "YYYY",
- dateFormat: "DD.MM.YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD.MM.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Forrige måned (PageUp)",
- nextMonth: "Neste måned (PageDown)",
- previousYear: "Forrige år (Control + venstre)",
- nextYear: "Neste år (Control + høyre)",
- previousDecade: "Forrige tiår",
- nextDecade: "Neste tiår",
- previousCentury: "Forrige århundre",
- nextCentury: "Neste århundre"
- },
- timePickerLocale: {
- placeholder: "Velg tid",
- rangePlaceholder: ["Starttid", "Sluttid"]
- }
- },
- TimePicker: {
- placeholder: "Velg tid",
- rangePlaceholder: ["Starttid", "Sluttid"]
- },
- Calendar: {
- lang: {
- placeholder: "Velg dato",
- yearPlaceholder: "Velg år",
- quarterPlaceholder: "Velg kvartal",
- monthPlaceholder: "Velg måned",
- weekPlaceholder: "Velg uke",
- rangePlaceholder: ["Startdato", "Sluttdato"],
- rangeYearPlaceholder: ["Startår", "Sluttår"],
- rangeMonthPlaceholder: ["Startmåned", "Sluttmåned"],
- rangeWeekPlaceholder: ["Start uke", "Sluttuke"],
- locale: "nb_NO",
- today: "I dag",
- now: "Nå",
- backToToday: "Gå til i dag",
- ok: "Ok",
- clear: "Annuller",
- month: "Måned",
- year: "År",
- timeSelect: "Velg tidspunkt",
- dateSelect: "Velg dato",
- weekSelect: "Velg uke",
- monthSelect: "Velg måned",
- yearSelect: "Velg år",
- decadeSelect: "Velg tiår",
- yearFormat: "YYYY",
- dateFormat: "DD.MM.YYYY",
- dayFormat: "DD",
- dateTimeFormat: "DD.MM.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Forrige måned (PageUp)",
- nextMonth: "Neste måned (PageDown)",
- previousYear: "Forrige år (Control + venstre)",
- nextYear: "Neste år (Control + høyre)",
- previousDecade: "Forrige tiår",
- nextDecade: "Neste tiår",
- previousCentury: "Forrige århundre",
- nextCentury: "Neste århundre"
- },
- timePickerLocale: {
- placeholder: "Velg tid",
- rangePlaceholder: ["Starttid", "Sluttid"]
- }
- },
- global: {
- placeholder: "Vennligst velg"
- },
- Table: {
- filterTitle: "Filtermeny",
- filterConfirm: "OK",
- filterReset: "Nullstill",
- filterEmptyText: "Ingen filtre",
- selectAll: "Velg alle",
- selectInvert: "Inverter gjeldende side",
- selectionAll: "Velg all data",
- sortTitle: "Sorter",
- expand: "Utvid rad",
- collapse: "Skjul rad",
- triggerDesc: "Sorter data i synkende rekkefølge",
- triggerAsc: "Sorterer data i stigende rekkefølge",
- cancelSort: "Klikk for å avbryte sorteringen"
- },
- Modal: {
- okText: "OK",
- cancelText: "Avbryt",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Avbryt"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Søk her",
- itemUnit: "element",
- itemsUnit: "elementer",
- remove: "Fjern",
- selectCurrent: "Velg gjeldende side",
- removeCurrent: "Fjern gjeldende side",
- selectAll: "Velg all data",
- removeAll: "Fjern all data",
- selectInvert: "Inverter gjeldende side"
- },
- Upload: {
- uploading: "Laster opp...",
- removeFile: "Fjern fil",
- uploadError: "Feil ved opplastning",
- previewFile: "Forhåndsvisning",
- downloadFile: "Last ned fil"
- },
- Empty: {
- description: "Ingen data"
- },
- Icon: {
- icon: "ikon"
- },
- Text: {
- edit: "Rediger",
- copy: "Kopier",
- copied: "Kopiert",
- expand: "Utvid"
- },
- PageHeader: {
- back: "Tilbake"
- }
-};
-var ne_NP = {
- locale: "ne-np",
- Pagination: {
- items_per_page: "/ page",
- jump_to: "Go to",
- jump_to_confirm: "confirm",
- page: "Page",
- prev_page: "Previous Page",
- next_page: "Next Page",
- prev_5: "Previous 5 Pages",
- next_5: "Next 5 Pages",
- prev_3: "Previous 3 Pages",
- next_3: "Next 3 Pages",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Select date",
- yearPlaceholder: "Select year",
- quarterPlaceholder: "Select quarter",
- monthPlaceholder: "Select month",
- weekPlaceholder: "Select week",
- rangePlaceholder: ["Start date", "End date"],
- rangeYearPlaceholder: ["Start year", "End year"],
- rangeMonthPlaceholder: ["Start month", "End month"],
- rangeWeekPlaceholder: ["Start week", "End week"],
- locale: "en_US",
- today: "Today",
- now: "Now",
- backToToday: "Back to today",
- ok: "Ok",
- clear: "Clear",
- month: "Month",
- year: "Year",
- timeSelect: "select time",
- dateSelect: "select date",
- weekSelect: "Choose a week",
- monthSelect: "Choose a month",
- yearSelect: "Choose a year",
- decadeSelect: "Choose a decade",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Previous month (PageUp)",
- nextMonth: "Next month (PageDown)",
- previousYear: "Last year (Control + left)",
- nextYear: "Next year (Control + right)",
- previousDecade: "Last decade",
- nextDecade: "Next decade",
- previousCentury: "Last century",
- nextCentury: "Next century"
- },
- timePickerLocale: {
- placeholder: "Select time",
- rangePlaceholder: ["Start time", "End time"]
- }
- },
- TimePicker: {
- placeholder: "Select time",
- rangePlaceholder: ["Start time", "End time"]
- },
- Calendar: {
- lang: {
- placeholder: "Select date",
- yearPlaceholder: "Select year",
- quarterPlaceholder: "Select quarter",
- monthPlaceholder: "Select month",
- weekPlaceholder: "Select week",
- rangePlaceholder: ["Start date", "End date"],
- rangeYearPlaceholder: ["Start year", "End year"],
- rangeMonthPlaceholder: ["Start month", "End month"],
- rangeWeekPlaceholder: ["Start week", "End week"],
- locale: "en_US",
- today: "Today",
- now: "Now",
- backToToday: "Back to today",
- ok: "Ok",
- clear: "Clear",
- month: "Month",
- year: "Year",
- timeSelect: "select time",
- dateSelect: "select date",
- weekSelect: "Choose a week",
- monthSelect: "Choose a month",
- yearSelect: "Choose a year",
- decadeSelect: "Choose a decade",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Previous month (PageUp)",
- nextMonth: "Next month (PageDown)",
- previousYear: "Last year (Control + left)",
- nextYear: "Next year (Control + right)",
- previousDecade: "Last decade",
- nextDecade: "Next decade",
- previousCentury: "Last century",
- nextCentury: "Next century"
- },
- timePickerLocale: {
- placeholder: "Select time",
- rangePlaceholder: ["Start time", "End time"]
- }
- },
- Table: {
- filterTitle: "फिल्टर मेनु",
- filterConfirm: "हो",
- filterReset: "रीसेट",
- selectAll: "सबै छान्नुुहोस्",
- selectInvert: "छनौट उल्टाउनुहोस"
- },
- Modal: {
- okText: "हो",
- cancelText: "होईन",
- justOkText: "हो"
- },
- Popconfirm: {
- okText: "हो",
- cancelText: "होईन"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "यहाँ खोज्नुहोस्",
- itemUnit: "वस्तु",
- itemsUnit: "वस्तुहरू"
- },
- Upload: {
- uploading: "अपलोड गर्दै...",
- removeFile: "फाइल हटाउनुहोस्",
- uploadError: "अप्लोडमा समस्या भयो",
- previewFile: "फाइल पूर्वावलोकन गर्नुहोस्",
- downloadFile: "डाउनलोड फाइल"
- },
- Empty: {
- description: "डाटा छैन"
- }
-};
-var nl_BE = {
- locale: "nl-be",
- Pagination: {
- items_per_page: "/ pagina",
- jump_to: "Ga naar",
- jump_to_confirm: "bevestigen",
- page: "",
- prev_page: "Vorige pagina",
- next_page: "Volgende pagina",
- prev_5: "Vorige 5 pagina's",
- next_5: "Volgende 5 pagina's",
- prev_3: "Vorige 3 pagina's",
- next_3: "Volgende 3 pagina's",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Selecteer datum",
- rangePlaceholder: ["Begin datum", "Eind datum"],
- locale: "nl_BE",
- today: "Vandaag",
- now: "Nu",
- backToToday: "Terug naar vandaag",
- ok: "Ok",
- clear: "Reset",
- month: "Maand",
- year: "Jaar",
- timeSelect: "Selecteer tijd",
- dateSelect: "Selecteer datum",
- monthSelect: "Kies een maand",
- yearSelect: "Kies een jaar",
- decadeSelect: "Kies een decennium",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Vorige maand (PageUp)",
- nextMonth: "Volgende maand (PageDown)",
- previousYear: "Vorig jaar (Control + left)",
- nextYear: "Volgend jaar (Control + right)",
- previousDecade: "Vorig decennium",
- nextDecade: "Volgend decennium",
- previousCentury: "Vorige eeuw",
- nextCentury: "Volgende eeuw",
- monthPlaceholder: "Selecteer maand",
- quarterPlaceholder: "Selecteer kwartaal",
- rangeMonthPlaceholder: ["Begin maand", "Eind maand"],
- rangeWeekPlaceholder: ["Begin week", "Eind week"],
- rangeYearPlaceholder: ["Begin jaar", "Eind jaar"],
- weekPlaceholder: "Selecteer week",
- yearPlaceholder: "Selecteer jaar"
- },
- timePickerLocale: {
- placeholder: "Selecteer tijd",
- rangePlaceholder: ["Start tijd", "Eind tijd"]
- }
- },
- TimePicker: {
- placeholder: "Selecteer tijd",
- rangePlaceholder: ["Start tijd", "Eind tijd"]
- },
- Calendar: {
- lang: {
- placeholder: "Selecteer datum",
- rangePlaceholder: ["Begin datum", "Eind datum"],
- locale: "nl_BE",
- today: "Vandaag",
- now: "Nu",
- backToToday: "Terug naar vandaag",
- ok: "Ok",
- clear: "Reset",
- month: "Maand",
- year: "Jaar",
- timeSelect: "Selecteer tijd",
- dateSelect: "Selecteer datum",
- monthSelect: "Kies een maand",
- yearSelect: "Kies een jaar",
- decadeSelect: "Kies een decennium",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Vorige maand (PageUp)",
- nextMonth: "Volgende maand (PageDown)",
- previousYear: "Vorig jaar (Control + left)",
- nextYear: "Volgend jaar (Control + right)",
- previousDecade: "Vorig decennium",
- nextDecade: "Volgend decennium",
- previousCentury: "Vorige eeuw",
- nextCentury: "Volgende eeuw",
- monthPlaceholder: "Selecteer maand",
- quarterPlaceholder: "Selecteer kwartaal",
- rangeMonthPlaceholder: ["Begin maand", "Eind maand"],
- rangeWeekPlaceholder: ["Begin week", "Eind week"],
- rangeYearPlaceholder: ["Begin jaar", "Eind jaar"],
- weekPlaceholder: "Selecteer week",
- yearPlaceholder: "Selecteer jaar"
- },
- timePickerLocale: {
- placeholder: "Selecteer tijd",
- rangePlaceholder: ["Start tijd", "Eind tijd"]
- }
- },
- Table: {
- filterTitle: "Filteren",
- filterConfirm: "OK",
- filterReset: "Reset",
- selectAll: "Selecteer huidige pagina",
- selectInvert: "Keer volgorde om",
- cancelSort: "Klik om sortering te annuleren",
- collapse: "Rij inklappen",
- emptyText: "Geen data",
- expand: "Rij uitklappen",
- filterEmptyText: "Geen filters",
- selectNone: "Maak selectie leeg",
- selectionAll: "Selecteer alle data",
- sortTitle: "Sorteren",
- triggerAsc: "Klik om oplopend te sorteren",
- triggerDesc: "Klik om aflopend te sorteren"
- },
- Modal: {
- okText: "OK",
- cancelText: "Annuleer",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Annuleer"
- },
- Transfer: {
- searchPlaceholder: "Zoek hier",
- itemUnit: "item",
- itemsUnit: "items",
- remove: "Verwijder",
- removeAll: "Verwijder alles",
- removeCurrent: "Verwijder huidige pagina",
- selectAll: "Selecteer alles",
- selectCurrent: "Selecteer huidige pagina",
- selectInvert: "Huidige pagina omkeren",
- titles: ["", ""]
- },
- Upload: {
- uploading: "Uploaden...",
- removeFile: "Verwijder bestand",
- uploadError: "Fout tijdens uploaden",
- previewFile: "Preview file",
- downloadFile: "Bestand downloaden"
- },
- Empty: {
- description: "Geen gegevens"
- },
- global: {
- placeholder: "Maak een selectie"
- },
- Icon: {
- icon: "icoon"
- },
- Text: {
- edit: "Bewerken",
- copy: "kopiëren",
- copied: "Gekopieerd",
- expand: "Uitklappen"
- },
- PageHeader: {
- back: "Terug"
- },
- Image: {
- preview: "Voorbeeld"
- }
-};
-var nl_NL = {
- locale: "nl",
- Pagination: {
- items_per_page: "/ pagina",
- jump_to: "Ga naar",
- jump_to_confirm: "bevestigen",
- page: "Pagina",
- prev_page: "Vorige pagina",
- next_page: "Volgende pagina",
- prev_5: "Vorige 5 pagina's",
- next_5: "Volgende 5 pagina's",
- prev_3: "Vorige 3 pagina's",
- next_3: "Volgende 3 pagina's",
- page_size: "pagina grootte"
- },
- DatePicker: {
- lang: {
- placeholder: "Selecteer datum",
- rangePlaceholder: ["Begin datum", "Eind datum"],
- locale: "nl_NL",
- today: "Vandaag",
- now: "Nu",
- backToToday: "Terug naar vandaag",
- ok: "Ok",
- clear: "Reset",
- month: "Maand",
- year: "Jaar",
- timeSelect: "Selecteer tijd",
- dateSelect: "Selecteer datum",
- monthSelect: "Kies een maand",
- yearSelect: "Kies een jaar",
- decadeSelect: "Kies een decennium",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Vorige maand (PageUp)",
- nextMonth: "Volgende maand (PageDown)",
- previousYear: "Vorig jaar (Control + left)",
- nextYear: "Volgend jaar (Control + right)",
- previousDecade: "Vorig decennium",
- nextDecade: "Volgend decennium",
- previousCentury: "Vorige eeuw",
- nextCentury: "Volgende eeuw",
- monthPlaceholder: "Selecteer maand",
- quarterPlaceholder: "Selecteer kwartaal",
- rangeMonthPlaceholder: ["Begin maand", "Eind maand"],
- rangeWeekPlaceholder: ["Begin week", "Eind week"],
- rangeYearPlaceholder: ["Begin jaar", "Eind jaar"],
- weekPlaceholder: "Selecteer week",
- yearPlaceholder: "Selecteer jaar"
- },
- timePickerLocale: {
- placeholder: "Selecteer tijd",
- rangePlaceholder: ["Start tijd", "Eind tijd"]
- }
- },
- TimePicker: {
- placeholder: "Selecteer tijd",
- rangePlaceholder: ["Start tijd", "Eind tijd"]
- },
- Calendar: {
- lang: {
- placeholder: "Selecteer datum",
- rangePlaceholder: ["Begin datum", "Eind datum"],
- locale: "nl_NL",
- today: "Vandaag",
- now: "Nu",
- backToToday: "Terug naar vandaag",
- ok: "Ok",
- clear: "Reset",
- month: "Maand",
- year: "Jaar",
- timeSelect: "Selecteer tijd",
- dateSelect: "Selecteer datum",
- monthSelect: "Kies een maand",
- yearSelect: "Kies een jaar",
- decadeSelect: "Kies een decennium",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Vorige maand (PageUp)",
- nextMonth: "Volgende maand (PageDown)",
- previousYear: "Vorig jaar (Control + left)",
- nextYear: "Volgend jaar (Control + right)",
- previousDecade: "Vorig decennium",
- nextDecade: "Volgend decennium",
- previousCentury: "Vorige eeuw",
- nextCentury: "Volgende eeuw",
- monthPlaceholder: "Selecteer maand",
- quarterPlaceholder: "Selecteer kwartaal",
- rangeMonthPlaceholder: ["Begin maand", "Eind maand"],
- rangeWeekPlaceholder: ["Begin week", "Eind week"],
- rangeYearPlaceholder: ["Begin jaar", "Eind jaar"],
- weekPlaceholder: "Selecteer week",
- yearPlaceholder: "Selecteer jaar"
- },
- timePickerLocale: {
- placeholder: "Selecteer tijd",
- rangePlaceholder: ["Start tijd", "Eind tijd"]
- }
- },
- global: {
- placeholder: "Maak een selectie"
- },
- Table: {
- filterTitle: "Filteren",
- filterConfirm: "OK",
- filterReset: "Reset",
- selectAll: "Selecteer huidige pagina",
- selectInvert: "Keer volgorde om",
- sortTitle: "Sorteren",
- expand: "Rij uitklappen",
- collapse: "Rij inklappen",
- cancelSort: "Klik om sortering te annuleren",
- emptyText: "Geen data",
- filterEmptyText: "Geen filters",
- selectNone: "Maak selectie leeg",
- selectionAll: "Selecteer alle data",
- triggerAsc: "Klik om oplopend te sorteren",
- triggerDesc: "Klik om aflopend te sorteren"
- },
- Modal: {
- okText: "OK",
- cancelText: "Annuleer",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Annuleer"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Zoek hier",
- itemUnit: "item",
- itemsUnit: "items",
- remove: "Verwijder",
- removeAll: "Verwijder alles",
- removeCurrent: "Verwijder huidige pagina",
- selectAll: "Selecteer alles",
- selectCurrent: "Selecteer huidige pagina",
- selectInvert: "Huidige pagina omkeren"
- },
- Upload: {
- uploading: "Uploaden...",
- removeFile: "Verwijder bestand",
- uploadError: "Fout tijdens uploaden",
- previewFile: "Preview file",
- downloadFile: "Bestand downloaden"
- },
- Empty: {
- description: "Geen gegevens"
- },
- Icon: {
- icon: "icoon"
- },
- Text: {
- edit: "Bewerken",
- copy: "kopiëren",
- copied: "Gekopieerd",
- expand: "Uitklappen"
- },
- PageHeader: {
- back: "Terug"
- },
- Image: {
- preview: "Voorbeeld"
- }
-};
-var pl_PL = {
- locale: "pl",
- Pagination: {
- items_per_page: "na stronę",
- jump_to: "Idź do",
- jump_to_confirm: "potwierdź",
- page: "",
- prev_page: "Poprzednia strona",
- next_page: "Następna strona",
- prev_5: "Poprzednie 5 stron",
- next_5: "Następne 5 stron",
- prev_3: "Poprzednie 3 strony",
- next_3: "Następne 3 strony",
- page_size: "rozmiar strony"
- },
- DatePicker: {
- lang: {
- placeholder: "Wybierz datę",
- yearPlaceholder: "Wybierz rok",
- monthPlaceholder: "Wybierz miesiąc",
- weekPlaceholder: "Wybierz tydzień",
- rangePlaceholder: ["Data początkowa", "Data końcowa"],
- rangeYearPlaceholder: ["Początkowy rok", "Końcowy rok"],
- rangeMonthPlaceholder: ["Początkowy miesiąc", "Końcowy miesiąc"],
- rangeWeekPlaceholder: ["Początkowy tydzień", "Końcowy tydzień"],
- locale: "pl_PL",
- today: "Dzisiaj",
- now: "Teraz",
- backToToday: "Ustaw dzisiaj",
- ok: "Ok",
- clear: "Wyczyść",
- month: "Miesiąc",
- year: "Rok",
- timeSelect: "Ustaw czas",
- dateSelect: "Ustaw datę",
- monthSelect: "Wybierz miesiąc",
- yearSelect: "Wybierz rok",
- decadeSelect: "Wybierz dekadę",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Poprzedni miesiąc (PageUp)",
- nextMonth: "Następny miesiąc (PageDown)",
- previousYear: "Ostatni rok (Ctrl + left)",
- nextYear: "Następny rok (Ctrl + right)",
- previousDecade: "Ostatnia dekada",
- nextDecade: "Następna dekada",
- previousCentury: "Ostatni wiek",
- nextCentury: "Następny wiek"
- },
- timePickerLocale: {
- placeholder: "Wybierz godzinę"
- }
- },
- TimePicker: {
- placeholder: "Wybierz godzinę"
- },
- Calendar: {
- lang: {
- placeholder: "Wybierz datę",
- rangePlaceholder: ["Data początkowa", "Data końcowa"],
- locale: "pl_PL",
- today: "Dzisiaj",
- now: "Teraz",
- backToToday: "Ustaw dzisiaj",
- ok: "Ok",
- clear: "Wyczyść",
- month: "Miesiąc",
- year: "Rok",
- timeSelect: "Ustaw czas",
- dateSelect: "Ustaw datę",
- monthSelect: "Wybierz miesiąc",
- yearSelect: "Wybierz rok",
- decadeSelect: "Wybierz dekadę",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Poprzedni miesiąc (PageUp)",
- nextMonth: "Następny miesiąc (PageDown)",
- previousYear: "Ostatni rok (Ctrl + left)",
- nextYear: "Następny rok (Ctrl + right)",
- previousDecade: "Ostatnia dekada",
- nextDecade: "Następna dekada",
- previousCentury: "Ostatni wiek",
- nextCentury: "Następny wiek"
- },
- timePickerLocale: {
- placeholder: "Wybierz godzinę"
- }
- },
- Table: {
- filterTitle: "Menu filtra",
- filterConfirm: "OK",
- filterReset: "Usuń filtry",
- selectAll: "Zaznacz bieżącą stronę",
- selectInvert: "Odwróć zaznaczenie",
- triggerDesc: "Sortuj malejąco",
- triggerAsc: "Sortuj rosnąco",
- cancelSort: "Usuń sortowanie",
- filterEmptyText: "Brak filtrów",
- filterCheckall: "Wybierz wszystkie elementy",
- filterSearchPlaceholder: "Szukaj w filtrach",
- emptyText: "Brak danych",
- selectNone: "Wyczyść",
- selectionAll: "Wybierz wszystkie",
- sortTitle: "Sortowanie",
- expand: "Rozwiń wiersz",
- collapse: "Zwiń wiersz"
- },
- Modal: {
- okText: "OK",
- cancelText: "Anuluj",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Anuluj"
- },
- Transfer: {
- searchPlaceholder: "Szukaj",
- itemUnit: "obiekt",
- itemsUnit: "obiekty",
- titles: ["", ""],
- remove: "Usuń",
- selectCurrent: "Wybierz aktualną stronę",
- removeCurrent: "Usuń aktualną stronę",
- selectAll: "Wybierz wszystkie",
- removeAll: "Usuń wszystkie",
- selectInvert: "Odwróć wybór"
- },
- Upload: {
- uploading: "Wysyłanie...",
- removeFile: "Usuń plik",
- uploadError: "Błąd wysyłania",
- previewFile: "Podejrzyj plik",
- downloadFile: "Pobieranie pliku"
- },
- Empty: {
- description: "Brak danych"
- },
- global: {
- placeholder: "Wybierz"
- },
- Icon: {
- icon: "Ikona"
- },
- Text: {
- edit: "Edytuj",
- copy: "Kopiuj",
- copied: "Skopiowany",
- expand: "Rozwiń"
- },
- PageHeader: {
- back: "Wstecz"
- },
- Image: {
- preview: "Podgląd"
- }
-};
-var pt_BR = {
- locale: "pt-br",
- Pagination: {
- items_per_page: "/ página",
- jump_to: "Vá até",
- jump_to_confirm: "confirme",
- page: "Página",
- prev_page: "Página anterior",
- next_page: "Próxima página",
- prev_5: "5 páginas anteriores",
- next_5: "5 próximas páginas",
- prev_3: "3 páginas anteriores",
- next_3: "3 próximas páginas",
- page_size: "tamanho da página"
- },
- DatePicker: {
- lang: {
- placeholder: "Selecionar data",
- yearPlaceholder: "Selecionar ano",
- quarterPlaceholder: "Selecionar trimestre",
- monthPlaceholder: "Selecionar mês",
- weekPlaceholder: "Selecionar semana",
- rangePlaceholder: ["Data inicial", "Data final"],
- rangeYearPlaceholder: ["Ano inicial", "Ano Final"],
- rangeMonthPlaceholder: ["Mês inicial", "Mês final"],
- rangeWeekPlaceholder: ["Semana inicial", "Semana final"],
- locale: "pt_BR",
- today: "Hoje",
- now: "Agora",
- backToToday: "Voltar para hoje",
- ok: "Ok",
- clear: "Limpar",
- month: "Mês",
- year: "Ano",
- timeSelect: "Selecionar hora",
- dateSelect: "Selecionar data",
- weekSelect: "Escolher semana",
- monthSelect: "Escolher mês",
- yearSelect: "Escolher ano",
- decadeSelect: "Escolher década",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: false,
- previousMonth: "Mês anterior (PageUp)",
- nextMonth: "Próximo mês (PageDown)",
- previousYear: "Ano anterior (Control + esquerda)",
- nextYear: "Próximo ano (Control + direita)",
- previousDecade: "Década anterior",
- nextDecade: "Próxima década",
- previousCentury: "Século anterior",
- nextCentury: "Próximo século",
- shortWeekDays: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
- shortMonths: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"]
- },
- timePickerLocale: {
- placeholder: "Hora",
- rangePlaceholder: ["Hora inicial", "Hora final"]
- }
- },
- TimePicker: {
- placeholder: "Hora",
- rangePlaceholder: ["Hora inicial", "Hora final"]
- },
- Calendar: {
- lang: {
- placeholder: "Selecionar data",
- yearPlaceholder: "Selecionar ano",
- quarterPlaceholder: "Selecionar trimestre",
- monthPlaceholder: "Selecionar mês",
- weekPlaceholder: "Selecionar semana",
- rangePlaceholder: ["Data inicial", "Data final"],
- rangeYearPlaceholder: ["Ano inicial", "Ano Final"],
- rangeMonthPlaceholder: ["Mês inicial", "Mês final"],
- rangeWeekPlaceholder: ["Semana inicial", "Semana final"],
- locale: "pt_BR",
- today: "Hoje",
- now: "Agora",
- backToToday: "Voltar para hoje",
- ok: "Ok",
- clear: "Limpar",
- month: "Mês",
- year: "Ano",
- timeSelect: "Selecionar hora",
- dateSelect: "Selecionar data",
- weekSelect: "Escolher semana",
- monthSelect: "Escolher mês",
- yearSelect: "Escolher ano",
- decadeSelect: "Escolher década",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: false,
- previousMonth: "Mês anterior (PageUp)",
- nextMonth: "Próximo mês (PageDown)",
- previousYear: "Ano anterior (Control + esquerda)",
- nextYear: "Próximo ano (Control + direita)",
- previousDecade: "Década anterior",
- nextDecade: "Próxima década",
- previousCentury: "Século anterior",
- nextCentury: "Próximo século",
- shortWeekDays: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
- shortMonths: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"]
- },
- timePickerLocale: {
- placeholder: "Hora",
- rangePlaceholder: ["Hora inicial", "Hora final"]
- }
- },
- global: {
- placeholder: "Por favor escolha"
- },
- Table: {
- filterTitle: "Menu de Filtro",
- filterConfirm: "OK",
- filterReset: "Resetar",
- filterEmptyText: "Sem filtros",
- emptyText: "Sem conteúdo",
- selectAll: "Selecionar página atual",
- selectInvert: "Inverter seleção",
- selectionAll: "Selecionar todo o conteúdo",
- sortTitle: "Ordenar título",
- expand: "Expandir linha",
- collapse: "Colapsar linha",
- triggerDesc: "Clique organiza por descendente",
- triggerAsc: "Clique organiza por ascendente",
- cancelSort: "Clique para cancelar organização",
- selectNone: "Apagar todo o conteúdo"
- },
- Modal: {
- okText: "OK",
- cancelText: "Cancelar",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Cancelar"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Procurar",
- itemUnit: "item",
- itemsUnit: "items",
- remove: "Remover",
- selectCurrent: "Selecionar página atual",
- removeCurrent: "Remover página atual",
- selectAll: "Selecionar todos",
- removeAll: "Remover todos",
- selectInvert: "Inverter seleção atual"
- },
- Upload: {
- uploading: "Enviando...",
- removeFile: "Remover arquivo",
- uploadError: "Erro no envio",
- previewFile: "Visualizar arquivo",
- downloadFile: "Baixar arquivo"
- },
- Empty: {
- description: "Não há dados"
- },
- Icon: {
- icon: "ícone"
- },
- Text: {
- edit: "editar",
- copy: "copiar",
- copied: "copiado",
- expand: "expandir"
- },
- PageHeader: {
- back: "Retornar"
- },
- Image: {
- preview: "Pré-visualização"
- }
-};
-var pt_PT = {
- locale: "pt",
- Pagination: {
- items_per_page: "/ página",
- jump_to: "Saltar",
- jump_to_confirm: "confirmar",
- page: "Página",
- prev_page: "Página Anterior",
- next_page: "Página Seguinte",
- prev_5: "Recuar 5 Páginas",
- next_5: "Avançar 5 Páginas",
- prev_3: "Recuar 3 Páginas",
- next_3: "Avançar 3 Páginas",
- page_size: "mărimea paginii"
- },
- DatePicker: {
- lang: {
- locale: "pt_PT",
- today: "Hoje",
- now: "Agora",
- backToToday: "Hoje",
- ok: "OK",
- clear: "Limpar",
- month: "Mês",
- year: "Ano",
- timeSelect: "Hora",
- dateSelect: "Selecionar data",
- monthSelect: "Selecionar mês",
- yearSelect: "Selecionar ano",
- decadeSelect: "Selecionar década",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: false,
- previousMonth: "Mês anterior (PageUp)",
- nextMonth: "Mês seguinte (PageDown)",
- previousYear: "Ano anterior (Control + left)",
- nextYear: "Ano seguinte (Control + right)",
- previousDecade: "Última década",
- nextDecade: "Próxima década",
- previousCentury: "Último século",
- nextCentury: "Próximo século",
- placeholder: "Data",
- rangePlaceholder: ["Data inicial", "Data final"],
- monthFormat: "MMMM"
- },
- timePickerLocale: {
- placeholder: "Hora"
- }
- },
- TimePicker: {
- placeholder: "Hora"
- },
- Calendar: {
- lang: {
- locale: "pt_PT",
- today: "Hoje",
- now: "Agora",
- backToToday: "Hoje",
- ok: "OK",
- clear: "Limpar",
- month: "Mês",
- year: "Ano",
- timeSelect: "Hora",
- dateSelect: "Selecionar data",
- monthSelect: "Selecionar mês",
- yearSelect: "Selecionar ano",
- decadeSelect: "Selecionar década",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: false,
- previousMonth: "Mês anterior (PageUp)",
- nextMonth: "Mês seguinte (PageDown)",
- previousYear: "Ano anterior (Control + left)",
- nextYear: "Ano seguinte (Control + right)",
- previousDecade: "Última década",
- nextDecade: "Próxima década",
- previousCentury: "Último século",
- nextCentury: "Próximo século",
- placeholder: "Data",
- rangePlaceholder: ["Data inicial", "Data final"],
- monthFormat: "MMMM"
- },
- timePickerLocale: {
- placeholder: "Hora"
- }
- },
- Table: {
- filterTitle: "Filtro",
- filterConfirm: "Aplicar",
- filterReset: "Reiniciar",
- selectAll: "Selecionar página atual",
- selectInvert: "Inverter seleção",
- sortTitle: "Ordenação"
- },
- Modal: {
- okText: "OK",
- cancelText: "Cancelar",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Cancelar"
- },
- Transfer: {
- searchPlaceholder: "Procurar...",
- itemUnit: "item",
- itemsUnit: "itens"
- },
- Upload: {
- uploading: "A carregar...",
- removeFile: "Remover",
- uploadError: "Erro ao carregar",
- previewFile: "Pré-visualizar",
- downloadFile: "Baixar"
- },
- Empty: {
- description: "Sem resultados"
- }
-};
-var ro_RO = {
- locale: "ro",
- Pagination: {
- items_per_page: "/ pagină",
- jump_to: "Mergi la",
- jump_to_confirm: "confirm",
- page: "",
- prev_page: "Pagina Anterioară",
- next_page: "Pagina Următoare",
- prev_5: "5 Pagini Anterioare",
- next_5: "5 Pagini Următoare",
- prev_3: "3 Pagini Anterioare",
- next_3: "3 Pagini Următoare",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Selectează data",
- rangePlaceholder: ["Data start", "Data sfârșit"],
- locale: "ro_RO",
- today: "Azi",
- now: "Acum",
- backToToday: "Înapoi la azi",
- ok: "Ok",
- clear: "Șterge",
- month: "Lună",
- year: "An",
- timeSelect: "selectează timpul",
- dateSelect: "selectează data",
- weekSelect: "Alege o săptămână",
- monthSelect: "Alege o lună",
- yearSelect: "Alege un an",
- decadeSelect: "Alege un deceniu",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Luna anterioară (PageUp)",
- nextMonth: "Luna următoare (PageDown)",
- previousYear: "Anul anterior (Control + stânga)",
- nextYear: "Anul următor (Control + dreapta)",
- previousDecade: "Deceniul anterior",
- nextDecade: "Deceniul următor",
- previousCentury: "Secolul anterior",
- nextCentury: "Secolul următor"
- },
- timePickerLocale: {
- placeholder: "Selectează ora"
- }
- },
- TimePicker: {
- placeholder: "Selectează ora"
- },
- Calendar: {
- lang: {
- placeholder: "Selectează data",
- rangePlaceholder: ["Data start", "Data sfârșit"],
- locale: "ro_RO",
- today: "Azi",
- now: "Acum",
- backToToday: "Înapoi la azi",
- ok: "Ok",
- clear: "Șterge",
- month: "Lună",
- year: "An",
- timeSelect: "selectează timpul",
- dateSelect: "selectează data",
- weekSelect: "Alege o săptămână",
- monthSelect: "Alege o lună",
- yearSelect: "Alege un an",
- decadeSelect: "Alege un deceniu",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Luna anterioară (PageUp)",
- nextMonth: "Luna următoare (PageDown)",
- previousYear: "Anul anterior (Control + stânga)",
- nextYear: "Anul următor (Control + dreapta)",
- previousDecade: "Deceniul anterior",
- nextDecade: "Deceniul următor",
- previousCentury: "Secolul anterior",
- nextCentury: "Secolul următor"
- },
- timePickerLocale: {
- placeholder: "Selectează ora"
- }
- },
- global: {
- placeholder: "Selectează"
- },
- Table: {
- filterTitle: "Filtrează",
- filterConfirm: "OK",
- filterReset: "Resetează",
- selectAll: "Selectează pagina curentă",
- selectInvert: "Inversează pagina curentă",
- sortTitle: "Ordonează",
- expand: "Extinde rândul",
- collapse: "Micșorează rândul",
- filterEmptyText: "Fără filtre",
- emptyText: "Nu există date",
- selectNone: "Șterge selecția",
- selectionAll: "Selectează toate datele",
- triggerDesc: "Apasă pentru ordonare descrescătoare",
- triggerAsc: "Apasă pentru ordonare crescătoare",
- cancelSort: "Apasă pentru a anula ordonarea"
- },
- Modal: {
- okText: "OK",
- cancelText: "Anulare",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Anulare"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Căutare",
- itemUnit: "element",
- itemsUnit: "elemente",
- remove: "Șterge",
- selectCurrent: "Selectează pagina curentă",
- removeCurrent: "Șterge pagina curentă",
- selectAll: "Selectează toate datele",
- removeAll: "Șterge toate datele",
- selectInvert: "Inversează pagina curentă"
- },
- Upload: {
- uploading: "Se transferă...",
- removeFile: "Înlătură fișierul",
- uploadError: "Eroare la upload",
- previewFile: "Previzualizare fișier",
- downloadFile: "Descărcare fișier"
- },
- Empty: {
- description: "Fără date"
- },
- Icon: {
- icon: "icon"
- },
- Text: {
- edit: "editează",
- copy: "copiază",
- copied: "copiat",
- expand: "extinde"
- },
- PageHeader: {
- back: "înapoi"
- },
- Image: {
- preview: "Preview"
- }
-};
-var ru_RU = {
- locale: "ru",
- Pagination: {
- items_per_page: "/ стр.",
- jump_to: "Перейти",
- jump_to_confirm: "подтвердить",
- page: "Страница",
- prev_page: "Назад",
- next_page: "Вперед",
- prev_5: "Предыдущие 5",
- next_5: "Следующие 5",
- prev_3: "Предыдущие 3",
- next_3: "Следующие 3",
- page_size: "размер страницы"
- },
- DatePicker: {
- lang: {
- placeholder: "Выберите дату",
- yearPlaceholder: "Выберите год",
- quarterPlaceholder: "Выберите квартал",
- monthPlaceholder: "Выберите месяц",
- weekPlaceholder: "Выберите неделю",
- rangePlaceholder: ["Начальная дата", "Конечная дата"],
- rangeYearPlaceholder: ["Начальный год", "Год окончания"],
- rangeMonthPlaceholder: ["Начальный месяц", "Конечный месяц"],
- rangeWeekPlaceholder: ["Начальная неделя", "Конечная неделя"],
- locale: "ru_RU",
- today: "Сегодня",
- now: "Сейчас",
- backToToday: "Текущая дата",
- ok: "ОК",
- clear: "Очистить",
- month: "Месяц",
- year: "Год",
- timeSelect: "Выбрать время",
- dateSelect: "Выбрать дату",
- monthSelect: "Выбрать месяц",
- yearSelect: "Выбрать год",
- decadeSelect: "Выбрать десятилетие",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Предыдущий месяц (PageUp)",
- nextMonth: "Следующий месяц (PageDown)",
- previousYear: "Предыдущий год (Control + left)",
- nextYear: "Следующий год (Control + right)",
- previousDecade: "Предыдущее десятилетие",
- nextDecade: "Следущее десятилетие",
- previousCentury: "Предыдущий век",
- nextCentury: "Следующий век"
- },
- timePickerLocale: {
- placeholder: "Выберите время",
- rangePlaceholder: ["Время начала", "Время окончания"]
- }
- },
- TimePicker: {
- placeholder: "Выберите время",
- rangePlaceholder: ["Время начала", "Время окончания"]
- },
- Calendar: {
- lang: {
- placeholder: "Выберите дату",
- yearPlaceholder: "Выберите год",
- quarterPlaceholder: "Выберите квартал",
- monthPlaceholder: "Выберите месяц",
- weekPlaceholder: "Выберите неделю",
- rangePlaceholder: ["Начальная дата", "Конечная дата"],
- rangeYearPlaceholder: ["Начальный год", "Год окончания"],
- rangeMonthPlaceholder: ["Начальный месяц", "Конечный месяц"],
- rangeWeekPlaceholder: ["Начальная неделя", "Конечная неделя"],
- locale: "ru_RU",
- today: "Сегодня",
- now: "Сейчас",
- backToToday: "Текущая дата",
- ok: "ОК",
- clear: "Очистить",
- month: "Месяц",
- year: "Год",
- timeSelect: "Выбрать время",
- dateSelect: "Выбрать дату",
- monthSelect: "Выбрать месяц",
- yearSelect: "Выбрать год",
- decadeSelect: "Выбрать десятилетие",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Предыдущий месяц (PageUp)",
- nextMonth: "Следующий месяц (PageDown)",
- previousYear: "Предыдущий год (Control + left)",
- nextYear: "Следующий год (Control + right)",
- previousDecade: "Предыдущее десятилетие",
- nextDecade: "Следущее десятилетие",
- previousCentury: "Предыдущий век",
- nextCentury: "Следующий век"
- },
- timePickerLocale: {
- placeholder: "Выберите время",
- rangePlaceholder: ["Время начала", "Время окончания"]
- }
- },
- global: {
- placeholder: "Пожалуйста выберите"
- },
- Table: {
- filterTitle: "Фильтр",
- filterConfirm: "OK",
- filterReset: "Сбросить",
- filterEmptyText: "Без фильтров",
- emptyText: "Нет данных",
- selectAll: "Выбрать всё",
- selectInvert: "Инвертировать выбор",
- selectionAll: "Выбрать все данные",
- sortTitle: "Сортировка",
- expand: "Развернуть строку",
- collapse: "Свернуть строку",
- triggerDesc: "Нажмите для сортировки по убыванию",
- triggerAsc: "Нажмите для сортировки по возрастанию",
- cancelSort: "Нажмите, чтобы отменить сортировку",
- selectNone: "Очистить все данные"
- },
- Modal: {
- okText: "OK",
- cancelText: "Отмена",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Отмена"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Поиск",
- itemUnit: "элем.",
- itemsUnit: "элем.",
- remove: "Удалить",
- selectAll: "Выбрать все данные",
- selectCurrent: "Выбрать текущую страницу",
- selectInvert: "Показать в обратном порядке",
- removeAll: "Удалить все данные",
- removeCurrent: "Удалить текущую страницу"
- },
- Upload: {
- uploading: "Загрузка...",
- removeFile: "Удалить файл",
- uploadError: "При загрузке произошла ошибка",
- previewFile: "Предпросмотр файла",
- downloadFile: "Загрузить файл"
- },
- Empty: {
- description: "Нет данных"
- },
- Icon: {
- icon: "иконка"
- },
- Text: {
- edit: "Редактировать",
- copy: "Копировать",
- copied: "Скопировано",
- expand: "Раскрыть"
- },
- PageHeader: {
- back: "Назад"
- },
- Image: {
- preview: "Предпросмотр"
- }
-};
-var sk_SK = {
- locale: "sk",
- Pagination: {
- items_per_page: "/ strana",
- jump_to: "Choď na",
- jump_to_confirm: "potvrdit",
- page: "",
- prev_page: "Predchádzajúca strana",
- next_page: "Nasledujúca strana",
- prev_5: "Predchádzajúcich 5 strán",
- next_5: "Nasledujúcich 5 strán",
- prev_3: "Predchádzajúce 3 strany",
- next_3: "Nasledujúce 3 strany",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Vybrať dátum",
- rangePlaceholder: ["Od", "Do"],
- locale: "sk_SK",
- today: "Dnes",
- now: "Teraz",
- backToToday: "Späť na dnes",
- ok: "Ok",
- clear: "Vymazať",
- month: "Mesiac",
- year: "Rok",
- timeSelect: "Vybrať čas",
- dateSelect: "Vybrať dátum",
- monthSelect: "Vybrať mesiac",
- yearSelect: "Vybrať rok",
- decadeSelect: "Vybrať dekádu",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Predchádzajúci mesiac (PageUp)",
- nextMonth: "Nasledujúci mesiac (PageDown)",
- previousYear: "Predchádzajúci rok (Control + left)",
- nextYear: "Nasledujúci rok (Control + right)",
- previousDecade: "Predchádzajúca dekáda",
- nextDecade: "Nasledujúca dekáda",
- previousCentury: "Predchádzajúce storočie",
- nextCentury: "Nasledujúce storočie"
- },
- timePickerLocale: {
- placeholder: "Vybrať čas"
- }
- },
- TimePicker: {
- placeholder: "Vybrať čas"
- },
- Calendar: {
- lang: {
- placeholder: "Vybrať dátum",
- rangePlaceholder: ["Od", "Do"],
- locale: "sk_SK",
- today: "Dnes",
- now: "Teraz",
- backToToday: "Späť na dnes",
- ok: "Ok",
- clear: "Vymazať",
- month: "Mesiac",
- year: "Rok",
- timeSelect: "Vybrať čas",
- dateSelect: "Vybrať dátum",
- monthSelect: "Vybrať mesiac",
- yearSelect: "Vybrať rok",
- decadeSelect: "Vybrať dekádu",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Predchádzajúci mesiac (PageUp)",
- nextMonth: "Nasledujúci mesiac (PageDown)",
- previousYear: "Predchádzajúci rok (Control + left)",
- nextYear: "Nasledujúci rok (Control + right)",
- previousDecade: "Predchádzajúca dekáda",
- nextDecade: "Nasledujúca dekáda",
- previousCentury: "Predchádzajúce storočie",
- nextCentury: "Nasledujúce storočie"
- },
- timePickerLocale: {
- placeholder: "Vybrať čas"
- }
- },
- global: {
- placeholder: "Prosím vyberte"
- },
- Table: {
- filterTitle: "Filter",
- filterConfirm: "OK",
- filterReset: "Obnoviť",
- selectAll: "Vybrať všetko",
- selectInvert: "Vybrať opačné",
- sortTitle: "Zoradiť",
- expand: "Rozbaliť riadok",
- collapse: "Zbaliť riadok"
- },
- Modal: {
- okText: "OK",
- cancelText: "Zrušiť",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Zrušiť"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Vyhľadávanie",
- itemUnit: "položka",
- itemsUnit: "položiek"
- },
- Upload: {
- uploading: "Nahrávanie...",
- removeFile: "Odstrániť súbor",
- uploadError: "Chyba pri nahrávaní",
- previewFile: "Zobraziť súbor",
- downloadFile: "Stiahnuť súbor"
- },
- Empty: {
- description: "Žiadne dáta"
- },
- Icon: {
- icon: "ikona"
- },
- Text: {
- edit: "Upraviť",
- copy: "Kopírovať",
- copied: "Skopírované",
- expand: "Zväčšiť"
- },
- PageHeader: {
- back: "Späť"
- }
-};
-var sl_SI = {
- locale: "sl",
- Pagination: {
- items_per_page: "/ strani",
- jump_to: "Pojdi na",
- jump_to_confirm: "potrdi",
- page: "",
- prev_page: "Prejšnja stran",
- next_page: "Naslednja stran",
- prev_5: "Prejšnjih 5 strani",
- next_5: "Naslednjih 5 strani",
- prev_3: "Prejšnje 3 strani",
- next_3: "Naslednje 3 strani",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- locale: "sl",
- placeholder: "Izberite datum",
- rangePlaceholder: ["Začetni datum", "Končni datum"],
- today: "Danes",
- now: "Trenutno",
- backToToday: "Nazaj na trenutni datum",
- ok: "OK",
- clear: "Počisti",
- month: "Mesec",
- year: "Leto",
- timeSelect: "Izberi čas",
- dateSelect: "Izberi datum",
- monthSelect: "Izberite mesec",
- yearSelect: "Izberite leto",
- decadeSelect: "Izberite desetletje",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthFormat: "MMMM",
- monthBeforeYear: true,
- previousMonth: "Prejšnji mesec (PageUp)",
- nextMonth: "Naslednji mesec (PageDown)",
- previousYear: "Lansko leto (Control + left)",
- nextYear: "Naslednje leto (Control + right)",
- previousDecade: "Prejšnje desetletje",
- nextDecade: "Naslednje desetletje",
- previousCentury: "Zadnje stoletje",
- nextCentury: "Naslednje stoletje"
- },
- timePickerLocale: {
- placeholder: "Izberite čas"
- }
- },
- TimePicker: {
- placeholder: "Izberite čas"
- },
- Calendar: {
- lang: {
- locale: "sl",
- placeholder: "Izberite datum",
- rangePlaceholder: ["Začetni datum", "Končni datum"],
- today: "Danes",
- now: "Trenutno",
- backToToday: "Nazaj na trenutni datum",
- ok: "OK",
- clear: "Počisti",
- month: "Mesec",
- year: "Leto",
- timeSelect: "Izberi čas",
- dateSelect: "Izberi datum",
- monthSelect: "Izberite mesec",
- yearSelect: "Izberite leto",
- decadeSelect: "Izberite desetletje",
- yearFormat: "YYYY",
- dateFormat: "D.M.YYYY",
- dayFormat: "D",
- dateTimeFormat: "D.M.YYYY HH:mm:ss",
- monthFormat: "MMMM",
- monthBeforeYear: true,
- previousMonth: "Prejšnji mesec (PageUp)",
- nextMonth: "Naslednji mesec (PageDown)",
- previousYear: "Lansko leto (Control + left)",
- nextYear: "Naslednje leto (Control + right)",
- previousDecade: "Prejšnje desetletje",
- nextDecade: "Naslednje desetletje",
- previousCentury: "Zadnje stoletje",
- nextCentury: "Naslednje stoletje"
- },
- timePickerLocale: {
- placeholder: "Izberite čas"
- }
- },
- Table: {
- filterTitle: "Filter",
- filterConfirm: "Filtriraj",
- filterReset: "Pobriši filter",
- selectAll: "Izberi vse na trenutni strani",
- selectInvert: "Obrni izbor na trenutni strani"
- },
- Modal: {
- okText: "V redu",
- cancelText: "Prekliči",
- justOkText: "V redu"
- },
- Popconfirm: {
- okText: "v redu",
- cancelText: "Prekliči"
- },
- Transfer: {
- searchPlaceholder: "Išči tukaj",
- itemUnit: "Objekt",
- itemsUnit: "Objektov"
- },
- Upload: {
- uploading: "Nalaganje...",
- removeFile: "Odstrani datoteko",
- uploadError: "Napaka pri nalaganju",
- previewFile: "Predogled datoteke",
- downloadFile: "Prenos datoteke"
- },
- Empty: {
- description: "Ni podatkov"
- }
-};
-var sr_RS = {
- locale: "sr",
- Pagination: {
- items_per_page: "/ strani",
- jump_to: "Idi na",
- page: "",
- prev_page: "Prethodna strana",
- next_page: "Sledeća strana",
- prev_5: "Prethodnih 5 Strana",
- next_5: "Sledećih 5 Strana",
- prev_3: "Prethodnih 3 Strane",
- next_3: "Sledećih 3 Strane",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Izaberi datum",
- rangePlaceholder: ["Datum početka", "Datum završetka"],
- locale: "sr_RS",
- today: "Danas",
- now: "Sada",
- backToToday: "Vrati se na danas",
- ok: "U redu",
- clear: "Obriši",
- month: "Mesec",
- year: "Godina",
- timeSelect: "Izaberi vreme",
- dateSelect: "Izaberi datum",
- monthSelect: "Izaberi mesec",
- yearSelect: "Izaberi godinu",
- decadeSelect: "Izaberi deceniju",
- yearFormat: "YYYY",
- dateFormat: "DD.MM.YYYY",
- dayFormat: "D",
- dateTimeFormat: "DD.MM.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Prethodni mesec (PageUp)",
- nextMonth: "Sledeći mesec (PageDown)",
- previousYear: "Prethodna godina (Control + left)",
- nextYear: "Sledeća godina (Control + right)",
- previousDecade: "Prethodna decenija",
- nextDecade: "Sledeća decenija",
- previousCentury: "Prethodni vek",
- nextCentury: "Sledeći vek",
- yearPlaceholder: "Izaberi godinu",
- quarterPlaceholder: "Izaberi tromesečje",
- monthPlaceholder: "Izaberi mesec",
- weekPlaceholder: "Izaberi sedmicu",
- rangeYearPlaceholder: ["Godina početka", "Godina završetka"],
- rangeMonthPlaceholder: ["Mesec početka", "Mesec završetka"],
- rangeWeekPlaceholder: ["Sedmica početka", "Sedmica završetka"]
- },
- timePickerLocale: {
- placeholder: "Izaberi vreme",
- rangePlaceholder: ["Vreme početka", "Vreme završetka"]
- }
- },
- TimePicker: {
- placeholder: "Izaberi vreme",
- rangePlaceholder: ["Vreme početka", "Vreme završetka"]
- },
- Calendar: {
- lang: {
- placeholder: "Izaberi datum",
- rangePlaceholder: ["Datum početka", "Datum završetka"],
- locale: "sr_RS",
- today: "Danas",
- now: "Sada",
- backToToday: "Vrati se na danas",
- ok: "U redu",
- clear: "Obriši",
- month: "Mesec",
- year: "Godina",
- timeSelect: "Izaberi vreme",
- dateSelect: "Izaberi datum",
- monthSelect: "Izaberi mesec",
- yearSelect: "Izaberi godinu",
- decadeSelect: "Izaberi deceniju",
- yearFormat: "YYYY",
- dateFormat: "DD.MM.YYYY",
- dayFormat: "D",
- dateTimeFormat: "DD.MM.YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Prethodni mesec (PageUp)",
- nextMonth: "Sledeći mesec (PageDown)",
- previousYear: "Prethodna godina (Control + left)",
- nextYear: "Sledeća godina (Control + right)",
- previousDecade: "Prethodna decenija",
- nextDecade: "Sledeća decenija",
- previousCentury: "Prethodni vek",
- nextCentury: "Sledeći vek",
- yearPlaceholder: "Izaberi godinu",
- quarterPlaceholder: "Izaberi tromesečje",
- monthPlaceholder: "Izaberi mesec",
- weekPlaceholder: "Izaberi sedmicu",
- rangeYearPlaceholder: ["Godina početka", "Godina završetka"],
- rangeMonthPlaceholder: ["Mesec početka", "Mesec završetka"],
- rangeWeekPlaceholder: ["Sedmica početka", "Sedmica završetka"]
- },
- timePickerLocale: {
- placeholder: "Izaberi vreme",
- rangePlaceholder: ["Vreme početka", "Vreme završetka"]
- }
- },
- Table: {
- filterTitle: "Meni filtera",
- filterConfirm: "U redu",
- filterReset: "Poništi",
- selectAll: "Izaberi trenutnu stranicu",
- selectInvert: "Obrni izbor trenutne stranice",
- filterEmptyText: "Nema filtera",
- emptyText: "Nema podataka",
- selectNone: "Obriši sve podatke",
- selectionAll: "Izaberi sve podatke",
- sortTitle: "Sortiraj",
- expand: "Proširi red",
- collapse: "Skupi red",
- triggerDesc: "Klikni da sortiraš po padajućem redosledu",
- triggerAsc: "Klikni da sortiraš po rastućem redosledu",
- cancelSort: "Klikni da otkažeš sortiranje"
- },
- Modal: {
- okText: "U redu",
- cancelText: "Otkaži",
- justOkText: "U redu"
- },
- Popconfirm: {
- okText: "U redu",
- cancelText: "Otkaži"
- },
- Transfer: {
- searchPlaceholder: "Pretraži ovde",
- itemUnit: "stavka",
- itemsUnit: "stavki",
- titles: ["", ""],
- remove: "Ukloni",
- selectCurrent: "Izaberi trenutnu stranicu",
- removeCurrent: "Ukloni trenutnu stranicu",
- selectAll: "Izaberi sve podatke",
- removeAll: "Ukloni sve podatke",
- selectInvert: "Obrni izbor trenutne stranice"
- },
- Upload: {
- uploading: "Otpremanje...",
- removeFile: "Ukloni datoteku",
- uploadError: "Greška pri otpremanju",
- previewFile: "Pregledaj datoteku",
- downloadFile: "Preuzmi datoteku"
- },
- Empty: {
- description: "Nema podataka"
- },
- global: {
- placeholder: "Izaberi"
- },
- Icon: {
- icon: "ikona"
- },
- Text: {
- edit: "Uredi",
- copy: "Kopiraj",
- copied: "Kopirano",
- expand: "Proširi"
- },
- PageHeader: {
- back: "Nazad"
- },
- Image: {
- preview: "Pregled"
- }
-};
-var sv_SE = {
- locale: "sv",
- Pagination: {
- items_per_page: "/ sida",
- jump_to: "Gå till",
- jump_to_confirm: "bekräfta",
- page: "Sida",
- prev_page: "Föreg sida",
- next_page: "Nästa sida",
- prev_5: "Föreg 5 sidor",
- next_5: "Nästa 5 sidor",
- prev_3: "Föreg 3 sidor",
- next_3: "Nästa 3 sidor",
- page_size: "sidstorlek"
- },
- DatePicker: {
- lang: {
- placeholder: "Välj datum",
- rangePlaceholder: ["Startdatum", "Slutdatum"],
- locale: "sv_SE",
- today: "I dag",
- now: "Nu",
- backToToday: "Till idag",
- ok: "Ok",
- clear: "Avbryt",
- month: "Månad",
- year: "År",
- timeSelect: "Välj tidpunkt",
- dateSelect: "Välj datum",
- monthSelect: "Välj månad",
- yearSelect: "Välj år",
- decadeSelect: "Välj årtionde",
- yearFormat: "YYYY",
- dateFormat: "YYYY-MM-DD",
- dayFormat: "D",
- dateTimeFormat: "YYYY-MM-DD H:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Förra månaden (PageUp)",
- nextMonth: "Nästa månad (PageDown)",
- previousYear: "Föreg år (Control + left)",
- nextYear: "Nästa år (Control + right)",
- previousDecade: "Föreg årtionde",
- nextDecade: "Nästa årtionde",
- previousCentury: "Föreg århundrade",
- nextCentury: "Nästa århundrade",
- yearPlaceholder: "Välj år",
- quarterPlaceholder: "Välj kvartal",
- monthPlaceholder: "Välj månad",
- weekPlaceholder: "Välj vecka",
- rangeYearPlaceholder: ["Startår", "Slutår"],
- rangeMonthPlaceholder: ["Startmånad", "Slutmånad"],
- rangeWeekPlaceholder: ["Startvecka", "Slutvecka"]
- },
- timePickerLocale: {
- placeholder: "Välj tid"
- }
- },
- TimePicker: {
- placeholder: "Välj tid"
- },
- Calendar: {
- lang: {
- placeholder: "Välj datum",
- rangePlaceholder: ["Startdatum", "Slutdatum"],
- locale: "sv_SE",
- today: "I dag",
- now: "Nu",
- backToToday: "Till idag",
- ok: "Ok",
- clear: "Avbryt",
- month: "Månad",
- year: "År",
- timeSelect: "Välj tidpunkt",
- dateSelect: "Välj datum",
- monthSelect: "Välj månad",
- yearSelect: "Välj år",
- decadeSelect: "Välj årtionde",
- yearFormat: "YYYY",
- dateFormat: "YYYY-MM-DD",
- dayFormat: "D",
- dateTimeFormat: "YYYY-MM-DD H:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Förra månaden (PageUp)",
- nextMonth: "Nästa månad (PageDown)",
- previousYear: "Föreg år (Control + left)",
- nextYear: "Nästa år (Control + right)",
- previousDecade: "Föreg årtionde",
- nextDecade: "Nästa årtionde",
- previousCentury: "Föreg århundrade",
- nextCentury: "Nästa århundrade",
- yearPlaceholder: "Välj år",
- quarterPlaceholder: "Välj kvartal",
- monthPlaceholder: "Välj månad",
- weekPlaceholder: "Välj vecka",
- rangeYearPlaceholder: ["Startår", "Slutår"],
- rangeMonthPlaceholder: ["Startmånad", "Slutmånad"],
- rangeWeekPlaceholder: ["Startvecka", "Slutvecka"]
- },
- timePickerLocale: {
- placeholder: "Välj tid"
- }
- },
- Table: {
- filterTitle: "Filtermeny",
- filterConfirm: "OK",
- filterReset: "Återställ",
- filterEmptyText: "Inga filter",
- emptyText: "Ingen data",
- selectAll: "Markera nuvarande sida",
- selectInvert: "Invertera nuvarande sida",
- selectNone: "Avmarkera all data",
- selectionAll: "Markera all data",
- sortTitle: "Sortera",
- expand: "Expandera rad",
- collapse: "Komprimera rad",
- triggerDesc: "Klicka för att sortera i fallande ordning",
- triggerAsc: "Klicka för att sortera i stigande ordning",
- cancelSort: "Klicka för att avbryta sortering"
- },
- Modal: {
- okText: "OK",
- cancelText: "Avbryt",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Avbryt"
- },
- Transfer: {
- searchPlaceholder: "Sök här",
- itemUnit: "objekt",
- itemsUnit: "objekt",
- titles: ["", ""],
- remove: "Ta bort",
- selectCurrent: "Markera nuvarande sida",
- removeCurrent: "Ta bort nuvarande sida",
- selectAll: "Markera all data",
- removeAll: "Ta bort all data",
- selectInvert: "Invertera nuvarande sida"
- },
- Empty: {
- description: "Ingen data"
- },
- Text: {
- edit: "Redigera",
- copy: "Kopiera",
- copied: "Kopierad",
- expand: "Expandera"
- },
- Upload: {
- uploading: "Laddar upp...",
- removeFile: "Ta bort fil",
- uploadError: "Uppladdningsfel",
- previewFile: "Förhandsgranska fil",
- downloadFile: "Ladda ned fil"
- },
- global: {
- placeholder: "Vänligen välj"
- },
- Icon: {
- icon: "ikon"
- },
- PageHeader: {
- back: "Tillbaka"
- },
- Image: {
- preview: "Förhandsgranska"
- }
-};
-var ta_IN = {
- locale: "ta",
- Pagination: {
- items_per_page: "/ பக்கம்",
- jump_to: "அடுத்த",
- jump_to_confirm: "உறுதிப்படுத்தவும்",
- page: "",
- prev_page: "முந்தைய பக்கம்",
- next_page: "அடுத்த பக்கம்",
- prev_5: "முந்தைய 5 பக்கங்கள்",
- next_5: "அடுத்த 5 பக்கங்கள்",
- prev_3: "முந்தைய 3 பக்கங்கள்",
- next_3: "அடுத்த 3 பக்கங்கள்",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "தேதியைத் தேர்ந்தெடுக்கவும்",
- rangePlaceholder: ["தொடக்க தேதி", "கடைசி தேதி"],
- locale: "ta_IN",
- today: "இன்று",
- now: "இப்போது",
- backToToday: "இன்றுக்கு திரும்பு",
- ok: "சரி",
- clear: "அழி",
- month: "மாதம்",
- year: "வருடம்",
- timeSelect: "நேரத்தைத் தேர்ந்தெடு",
- dateSelect: "தேதியைத் தேர்ந்தெடு",
- weekSelect: "வாரத்தைத் தேர்வுசெய்க",
- monthSelect: "மாதத்தைத் தேர்வுசெய்க",
- yearSelect: "வருடத்தைத் தேர்வுசெய்க",
- decadeSelect: "தசாப்தத்தைத் தேர்வுசெய்க",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "முந்தைய மாதம் (PageUp)",
- nextMonth: "அடுத்த மாதம் (PageDown)",
- previousYear: "முந்தைய வருடம் (Control + left)",
- nextYear: "அடுத்த வருடம் (Control + right)",
- previousDecade: "முந்தைய தசாப்தம்",
- nextDecade: "அடுத்த தசாப்தம்",
- previousCentury: "முந்தைய நூற்றாண்டு",
- nextCentury: "அடுத்த நூற்றாண்டு"
- },
- timePickerLocale: {
- placeholder: "நேரத்தைத் தேர்ந்தெடுக்கவும்"
- }
- },
- TimePicker: {
- placeholder: "நேரத்தைத் தேர்ந்தெடுக்கவும்"
- },
- Calendar: {
- lang: {
- placeholder: "தேதியைத் தேர்ந்தெடுக்கவும்",
- rangePlaceholder: ["தொடக்க தேதி", "கடைசி தேதி"],
- locale: "ta_IN",
- today: "இன்று",
- now: "இப்போது",
- backToToday: "இன்றுக்கு திரும்பு",
- ok: "சரி",
- clear: "அழி",
- month: "மாதம்",
- year: "வருடம்",
- timeSelect: "நேரத்தைத் தேர்ந்தெடு",
- dateSelect: "தேதியைத் தேர்ந்தெடு",
- weekSelect: "வாரத்தைத் தேர்வுசெய்க",
- monthSelect: "மாதத்தைத் தேர்வுசெய்க",
- yearSelect: "வருடத்தைத் தேர்வுசெய்க",
- decadeSelect: "தசாப்தத்தைத் தேர்வுசெய்க",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "முந்தைய மாதம் (PageUp)",
- nextMonth: "அடுத்த மாதம் (PageDown)",
- previousYear: "முந்தைய வருடம் (Control + left)",
- nextYear: "அடுத்த வருடம் (Control + right)",
- previousDecade: "முந்தைய தசாப்தம்",
- nextDecade: "அடுத்த தசாப்தம்",
- previousCentury: "முந்தைய நூற்றாண்டு",
- nextCentury: "அடுத்த நூற்றாண்டு"
- },
- timePickerLocale: {
- placeholder: "நேரத்தைத் தேர்ந்தெடுக்கவும்"
- }
- },
- global: {
- placeholder: "தேதியைத் தேர்ந்தெடுக்கவும்"
- },
- Table: {
- filterTitle: "பட்டியலை மூடு",
- filterConfirm: "சரி",
- filterReset: "மீட்டமை",
- emptyText: "தகவல் இல்லை",
- selectAll: "அனைத்தையும் தேர்வுசெய்",
- selectInvert: "தலைகீழாக மாற்று",
- sortTitle: "தலைப்பை வரிசைப்படுத்தவும்"
- },
- Modal: {
- okText: "சரி",
- cancelText: "ரத்து செய்யவும்",
- justOkText: "பரவாயில்லை, சரி"
- },
- Popconfirm: {
- okText: "சரி",
- cancelText: "ரத்து செய்யவும்"
- },
- Transfer: {
- titles: ["", ""],
- notFoundContent: "உள்ளடக்கம் கிடைக்கவில்லை",
- searchPlaceholder: "இங்கு தேடவும்",
- itemUnit: "தகவல்",
- itemsUnit: "தகவல்கள்"
- },
- Upload: {
- uploading: "பதிவேற்றுகிறது...",
- removeFile: "கோப்பை அகற்று",
- uploadError: "பதிவேற்றுவதில் பிழை",
- previewFile: "கோப்பை முன்னோட்டமிடுங்கள்",
- downloadFile: "பதிவிறக்க கோப்பு"
- },
- Empty: {
- description: "தகவல் இல்லை"
- },
- Icon: {
- icon: "உருவம்"
- },
- Text: {
- edit: "திருத்து",
- copy: "நகல் எடு",
- copied: "நகல் எடுக்கப்பட்டது",
- expand: "விரிவாக்கவும்"
- },
- PageHeader: {
- back: "பின் செல்லவும்"
- }
-};
-var th_TH = {
- locale: "th",
- Pagination: {
- items_per_page: "/ หน้า",
- jump_to: "ไปยัง",
- jump_to_confirm: "ยืนยัน",
- page: "หน้า",
- prev_page: "หน้าก่อนหน้า",
- next_page: "หน้าถัดไป",
- prev_5: "ย้อนกลับ 5 หน้า",
- next_5: "ถัดไป 5 หน้า",
- prev_3: "ย้อนกลับ 3 หน้า",
- next_3: "ถัดไป 3 หน้า",
- page_size: "ขนาดหน้า"
- },
- DatePicker: {
- lang: {
- placeholder: "เลือกวันที่",
- yearPlaceholder: "เลือกปี",
- quarterPlaceholder: "เลือกไตรมาส",
- monthPlaceholder: "เลือกเดือน",
- weekPlaceholder: "เลือกสัปดาห์",
- rangePlaceholder: ["วันเริ่มต้น", "วันสิ้นสุด"],
- rangeYearPlaceholder: ["ปีเริ่มต้น", "ปีสิ้นสุด"],
- rangeMonthPlaceholder: ["เดือนเริ่มต้น", "เดือนสิ้นสุด"],
- rangeWeekPlaceholder: ["สัปดาห์เริ่มต้น", "สัปดาห์สิ้นสุด"],
- locale: "th_TH",
- today: "วันนี้",
- now: "ตอนนี้",
- backToToday: "กลับไปยังวันนี้",
- ok: "ตกลง",
- clear: "ลบล้าง",
- month: "เดือน",
- year: "ปี",
- timeSelect: "เลือกเวลา",
- dateSelect: "เลือกวัน",
- monthSelect: "เลือกเดือน",
- yearSelect: "เลือกปี",
- decadeSelect: "เลือกทศวรรษ",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "เดือนก่อนหน้า (PageUp)",
- nextMonth: "เดือนถัดไป (PageDown)",
- previousYear: "ปีก่อนหน้า (Control + left)",
- nextYear: "ปีถัดไป (Control + right)",
- previousDecade: "ทศวรรษก่อนหน้า",
- nextDecade: "ทศวรรษถัดไป",
- previousCentury: "ศตวรรษก่อนหน้า",
- nextCentury: "ศตวรรษถัดไป"
- },
- timePickerLocale: {
- placeholder: "เลือกเวลา"
- }
- },
- TimePicker: {
- placeholder: "เลือกเวลา"
- },
- Calendar: {
- lang: {
- placeholder: "เลือกวันที่",
- yearPlaceholder: "เลือกปี",
- quarterPlaceholder: "เลือกไตรมาส",
- monthPlaceholder: "เลือกเดือน",
- weekPlaceholder: "เลือกสัปดาห์",
- rangePlaceholder: ["วันเริ่มต้น", "วันสิ้นสุด"],
- rangeYearPlaceholder: ["ปีเริ่มต้น", "ปีสิ้นสุด"],
- rangeMonthPlaceholder: ["เดือนเริ่มต้น", "เดือนสิ้นสุด"],
- rangeWeekPlaceholder: ["สัปดาห์เริ่มต้น", "สัปดาห์สิ้นสุด"],
- locale: "th_TH",
- today: "วันนี้",
- now: "ตอนนี้",
- backToToday: "กลับไปยังวันนี้",
- ok: "ตกลง",
- clear: "ลบล้าง",
- month: "เดือน",
- year: "ปี",
- timeSelect: "เลือกเวลา",
- dateSelect: "เลือกวัน",
- monthSelect: "เลือกเดือน",
- yearSelect: "เลือกปี",
- decadeSelect: "เลือกทศวรรษ",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "เดือนก่อนหน้า (PageUp)",
- nextMonth: "เดือนถัดไป (PageDown)",
- previousYear: "ปีก่อนหน้า (Control + left)",
- nextYear: "ปีถัดไป (Control + right)",
- previousDecade: "ทศวรรษก่อนหน้า",
- nextDecade: "ทศวรรษถัดไป",
- previousCentury: "ศตวรรษก่อนหน้า",
- nextCentury: "ศตวรรษถัดไป"
- },
- timePickerLocale: {
- placeholder: "เลือกเวลา"
- }
- },
- global: {
- placeholder: "กรุณาเลือก"
- },
- Table: {
- filterTitle: "ตัวกรอง",
- filterConfirm: "ยืนยัน",
- filterReset: "รีเซ็ต",
- filterEmptyText: "ไม่มีตัวกรอง",
- emptyText: "ไม่มีข้อมูล",
- selectAll: "เลือกทั้งหมดในหน้านี้",
- selectInvert: "กลับสถานะการเลือกในหน้านี้",
- selectionAll: "เลือกข้อมูลทั้งหมด",
- sortTitle: "เรียง",
- expand: "แสดงแถวข้อมูล",
- collapse: "ย่อแถวข้อมูล",
- triggerDesc: "คลิกเรียงจากมากไปน้อย",
- triggerAsc: "คลิกเรียงจากน้อยไปมาก",
- cancelSort: "คลิกเพื่อยกเลิกการเรียง"
- },
- Modal: {
- okText: "ตกลง",
- cancelText: "ยกเลิก",
- justOkText: "ตกลง"
- },
- Popconfirm: {
- okText: "ตกลง",
- cancelText: "ยกเลิก"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "ค้นหา",
- itemUnit: "ชิ้น",
- itemsUnit: "ชิ้น",
- remove: "นำออก",
- selectCurrent: "เลือกทั้งหมดในหน้านี้",
- removeCurrent: "นำออกทั้งหมดในหน้านี้",
- selectAll: "เลือกข้อมูลทั้งหมด",
- removeAll: "นำข้อมูลออกทั้งหมด",
- selectInvert: "กลับสถานะการเลือกในหน้านี้"
- },
- Upload: {
- uploading: "กำลังอัปโหลด...",
- removeFile: "ลบไฟล์",
- uploadError: "เกิดข้อผิดพลาดในการอัปโหลด",
- previewFile: "ดูตัวอย่างไฟล์",
- downloadFile: "ดาวน์โหลดไฟล์"
- },
- Empty: {
- description: "ไม่มีข้อมูล"
- },
- Icon: {
- icon: "ไอคอน"
- },
- Text: {
- edit: "แก้ไข",
- copy: "คัดลอก",
- copied: "คัดลอกแล้ว",
- expand: "ขยาย"
- },
- PageHeader: {
- back: "ย้อนกลับ"
- }
-};
-var tr_TR = {
- locale: "tr",
- Pagination: {
- items_per_page: "/ sayfa",
- jump_to: "Git",
- jump_to_confirm: "onayla",
- page: "Sayfa",
- prev_page: "Önceki Sayfa",
- next_page: "Sonraki Sayfa",
- prev_5: "Önceki 5 Sayfa",
- next_5: "Sonraki 5 Sayfa",
- prev_3: "Önceki 3 Sayfa",
- next_3: "Sonraki 3 Sayfa",
- page_size: "sayfa boyutu"
- },
- DatePicker: {
- lang: {
- placeholder: "Tarih seç",
- yearPlaceholder: "Yıl seç",
- quarterPlaceholder: "Çeyrek seç",
- monthPlaceholder: "Ay seç",
- weekPlaceholder: "Hafta seç",
- rangePlaceholder: ["Başlangıç tarihi", "Bitiş tarihi"],
- rangeYearPlaceholder: ["Başlangıç yılı", "Bitiş yılı"],
- rangeMonthPlaceholder: ["Başlangıç ayı", "Bitiş ayı"],
- rangeWeekPlaceholder: ["Başlangıç haftası", "Bitiş haftası"],
- locale: "tr_TR",
- today: "Bugün",
- now: "Şimdi",
- backToToday: "Bugüne Geri Dön",
- ok: "tamam",
- clear: "Temizle",
- month: "Ay",
- year: "Yıl",
- timeSelect: "Zaman Seç",
- dateSelect: "Tarih Seç",
- monthSelect: "Ay Seç",
- yearSelect: "Yıl Seç",
- decadeSelect: "On Yıl Seç",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Önceki Ay (PageUp)",
- nextMonth: "Sonraki Ay (PageDown)",
- previousYear: "Önceki Yıl (Control + Sol)",
- nextYear: "Sonraki Yıl (Control + Sağ)",
- previousDecade: "Önceki On Yıl",
- nextDecade: "Sonraki On Yıl",
- previousCentury: "Önceki Yüzyıl",
- nextCentury: "Sonraki Yüzyıl"
- },
- timePickerLocale: {
- placeholder: "Zaman seç",
- rangePlaceholder: ["Başlangıç zamanı", "Bitiş zamanı"]
- }
- },
- TimePicker: {
- placeholder: "Zaman seç",
- rangePlaceholder: ["Başlangıç zamanı", "Bitiş zamanı"]
- },
- Calendar: {
- lang: {
- placeholder: "Tarih seç",
- yearPlaceholder: "Yıl seç",
- quarterPlaceholder: "Çeyrek seç",
- monthPlaceholder: "Ay seç",
- weekPlaceholder: "Hafta seç",
- rangePlaceholder: ["Başlangıç tarihi", "Bitiş tarihi"],
- rangeYearPlaceholder: ["Başlangıç yılı", "Bitiş yılı"],
- rangeMonthPlaceholder: ["Başlangıç ayı", "Bitiş ayı"],
- rangeWeekPlaceholder: ["Başlangıç haftası", "Bitiş haftası"],
- locale: "tr_TR",
- today: "Bugün",
- now: "Şimdi",
- backToToday: "Bugüne Geri Dön",
- ok: "tamam",
- clear: "Temizle",
- month: "Ay",
- year: "Yıl",
- timeSelect: "Zaman Seç",
- dateSelect: "Tarih Seç",
- monthSelect: "Ay Seç",
- yearSelect: "Yıl Seç",
- decadeSelect: "On Yıl Seç",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Önceki Ay (PageUp)",
- nextMonth: "Sonraki Ay (PageDown)",
- previousYear: "Önceki Yıl (Control + Sol)",
- nextYear: "Sonraki Yıl (Control + Sağ)",
- previousDecade: "Önceki On Yıl",
- nextDecade: "Sonraki On Yıl",
- previousCentury: "Önceki Yüzyıl",
- nextCentury: "Sonraki Yüzyıl"
- },
- timePickerLocale: {
- placeholder: "Zaman seç",
- rangePlaceholder: ["Başlangıç zamanı", "Bitiş zamanı"]
- }
- },
- global: {
- placeholder: "Lütfen seçiniz"
- },
- Table: {
- filterTitle: "Filtre menüsü",
- filterConfirm: "Tamam",
- filterReset: "Sıfırla",
- filterEmptyText: "Filtre yok",
- selectAll: "Tüm sayfayı seç",
- selectInvert: "Tersini seç",
- selectionAll: "Tümünü seç",
- sortTitle: "Sırala",
- expand: "Satırı genişlet",
- collapse: "Satırı daralt",
- triggerDesc: "Azalan düzende sırala",
- triggerAsc: "Artan düzende sırala",
- cancelSort: "Sıralamayı kaldır"
- },
- Modal: {
- okText: "Tamam",
- cancelText: "İptal",
- justOkText: "Tamam"
- },
- Popconfirm: {
- okText: "Tamam",
- cancelText: "İptal"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "Arama",
- itemUnit: "Öğe",
- itemsUnit: "Öğeler",
- remove: "Kaldır",
- selectCurrent: "Tüm sayfayı seç",
- removeCurrent: "Sayfayı kaldır",
- selectAll: "Tümünü seç",
- removeAll: "Tümünü kaldır",
- selectInvert: "Tersini seç"
- },
- Upload: {
- uploading: "Yükleniyor...",
- removeFile: "Dosyayı kaldır",
- uploadError: "Yükleme hatası",
- previewFile: "Dosyayı önizle",
- downloadFile: "Dosyayı indir"
- },
- Empty: {
- description: "Veri Yok"
- },
- Icon: {
- icon: "ikon"
- },
- Text: {
- edit: "Düzenle",
- copy: "Kopyala",
- copied: "Kopyalandı",
- expand: "Genişlet"
- },
- PageHeader: {
- back: "Geri"
- },
- Image: {
- preview: "Önizleme"
- }
-};
-var uk_UA = {
- locale: "uk",
- Pagination: {
- items_per_page: "/ сторінці",
- jump_to: "Перейти",
- jump_to_confirm: "підтвердити",
- page: "",
- prev_page: "Попередня сторінка",
- next_page: "Наступна сторінка",
- prev_5: "Попередні 5 сторінок",
- next_5: "Наступні 5 сторінок",
- prev_3: "Попередні 3 сторінки",
- next_3: "Наступні 3 сторінки",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "Оберіть дату",
- yearPlaceholder: "Оберіть рік",
- quarterPlaceholder: "Оберіть квартал",
- monthPlaceholder: "Оберіть місяць",
- weekPlaceholder: "Оберіть тиждень",
- rangePlaceholder: ["Початкова дата", "Кінцева дата"],
- rangeYearPlaceholder: ["Початковий рік", "Рік закінчення"],
- rangeMonthPlaceholder: ["Початковий місяць", "Кінцевий місяць"],
- rangeWeekPlaceholder: ["Початковий тиждень", "Кінцевий тиждень"],
- locale: "uk_UA",
- today: "Сьогодні",
- now: "Зараз",
- backToToday: "Поточна дата",
- ok: "Ok",
- clear: "Очистити",
- month: "Місяць",
- year: "Рік",
- timeSelect: "Обрати час",
- dateSelect: "Обрати дату",
- monthSelect: "Обрати місяць",
- yearSelect: "Обрати рік",
- decadeSelect: "Обрати десятиріччя",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Попередній місяць (PageUp)",
- nextMonth: "Наступний місяць (PageDown)",
- previousYear: "Попередній рік (Control + left)",
- nextYear: "Наступний рік (Control + right)",
- previousDecade: "Попереднє десятиріччя",
- nextDecade: "Наступне десятиріччя",
- previousCentury: "Попереднє століття",
- nextCentury: "Наступне століття"
- },
- timePickerLocale: {
- placeholder: "Оберіть час",
- rangePlaceholder: ["Час початку", "Час закінчення"]
- }
- },
- TimePicker: {
- placeholder: "Оберіть час",
- rangePlaceholder: ["Час початку", "Час закінчення"]
- },
- Calendar: {
- lang: {
- placeholder: "Оберіть дату",
- rangePlaceholder: ["Початкова дата", "Кінцева дата"],
- locale: "uk_UA",
- today: "Сьогодні",
- now: "Зараз",
- backToToday: "Поточна дата",
- ok: "Ok",
- clear: "Очистити",
- month: "Місяць",
- year: "Рік",
- timeSelect: "Обрати час",
- dateSelect: "Обрати дату",
- monthSelect: "Обрати місяць",
- yearSelect: "Обрати рік",
- decadeSelect: "Обрати десятиріччя",
- yearFormat: "YYYY",
- dateFormat: "D-M-YYYY",
- dayFormat: "D",
- dateTimeFormat: "D-M-YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Попередній місяць (PageUp)",
- nextMonth: "Наступний місяць (PageDown)",
- previousYear: "Попередній рік (Control + left)",
- nextYear: "Наступний рік (Control + right)",
- previousDecade: "Попереднє десятиріччя",
- nextDecade: "Наступне десятиріччя",
- previousCentury: "Попереднє століття",
- nextCentury: "Наступне століття"
- },
- timePickerLocale: {
- placeholder: "Оберіть час"
- }
- },
- Table: {
- filterTitle: "Фільтрувати",
- filterConfirm: "OK",
- filterReset: "Скинути",
- selectAll: "Обрати всі",
- selectInvert: "Інвертувати вибір"
- },
- Modal: {
- okText: "Гаразд",
- cancelText: "Скасувати",
- justOkText: "Гаразд"
- },
- Popconfirm: {
- okText: "Гаразд",
- cancelText: "Скасувати"
- },
- Transfer: {
- searchPlaceholder: "Введіть текст для пошуку",
- itemUnit: "елем.",
- itemsUnit: "елем."
- },
- Upload: {
- uploading: "Завантаження ...",
- removeFile: "Видалити файл",
- uploadError: "Помилка завантаження",
- previewFile: "Попередній перегляд файлу",
- downloadFile: "Завантажити файл"
- },
- Empty: {
- description: "Даних немає"
- },
- Icon: {
- icon: "іконка"
- },
- Text: {
- edit: "Редагувати",
- copy: "Копіювати",
- copied: "Скопійовано",
- expand: "Розгорнути"
- },
- PageHeader: {
- back: "Назад"
- }
-};
-var ur_PK = {
- locale: "ur",
- Pagination: {
- items_per_page: "/ صفحہ",
- jump_to: "پاس جاؤ",
- jump_to_confirm: "تصدیق کریں",
- page: "",
- prev_page: "پچھلا صفحہ",
- next_page: "اگلا صفحہ",
- prev_5: "پچھلے 5 صفحات",
- next_5: "اگلے 5 صفحات",
- prev_3: "پچھلے 3 صفحات",
- next_3: "اگلے 3 صفحات",
- page_size: "Page Size"
- },
- DatePicker: {
- lang: {
- placeholder: "تاریخ منتخب کریں",
- yearPlaceholder: "سال کو منتخب کریں",
- quarterPlaceholder: "کوارٹر منتخب کریں",
- monthPlaceholder: "ماہ منتخب کریں",
- weekPlaceholder: "ہفتہ منتخب کریں",
- rangePlaceholder: ["شروع کرنے کی تاریخ", "آخری تاریخ"],
- rangeYearPlaceholder: ["آغاز سال", "آخر سال"],
- rangeMonthPlaceholder: ["مہینہ شروع", "اختتامی مہینہ"],
- rangeWeekPlaceholder: ["ہفتے شروع کریں", "اختتام ہفتہ"],
- locale: "ur_PK",
- today: "آج",
- now: "ابھی",
- backToToday: "آج واپس",
- ok: "ٹھیک ہے",
- clear: "صاف",
- month: "مہینہ",
- year: "سال",
- timeSelect: "وقت منتخب کریں",
- dateSelect: "تاریخ منتخب کریں",
- weekSelect: "ایک ہفتہ کا انتخاب کریں",
- monthSelect: "ایک مہینہ کا انتخاب کریں",
- yearSelect: "ایک سال کا انتخاب کریں",
- decadeSelect: "ایک دہائی کا انتخاب کریں",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "پچھلے مہینے (PageUp)",
- nextMonth: "اگلے مہینے (PageDown)",
- previousYear: "گزشتہ سال (Control + left)",
- nextYear: "اگلے سال (Control + right)",
- previousDecade: "پچھلی دہائی",
- nextDecade: "اگلی دہائی",
- previousCentury: "پچھلی صدی",
- nextCentury: "اگلی صدی"
- },
- timePickerLocale: {
- placeholder: "وقت منتخب کریں",
- rangePlaceholder: ["وقت منتخب کریں", "آخر وقت"]
- }
- },
- TimePicker: {
- placeholder: "وقت منتخب کریں",
- rangePlaceholder: ["وقت منتخب کریں", "آخر وقت"]
- },
- Calendar: {
- lang: {
- placeholder: "تاریخ منتخب کریں",
- yearPlaceholder: "سال کو منتخب کریں",
- quarterPlaceholder: "کوارٹر منتخب کریں",
- monthPlaceholder: "ماہ منتخب کریں",
- weekPlaceholder: "ہفتہ منتخب کریں",
- rangePlaceholder: ["شروع کرنے کی تاریخ", "آخری تاریخ"],
- rangeYearPlaceholder: ["آغاز سال", "آخر سال"],
- rangeMonthPlaceholder: ["مہینہ شروع", "اختتامی مہینہ"],
- rangeWeekPlaceholder: ["ہفتے شروع کریں", "اختتام ہفتہ"],
- locale: "ur_PK",
- today: "آج",
- now: "ابھی",
- backToToday: "آج واپس",
- ok: "ٹھیک ہے",
- clear: "صاف",
- month: "مہینہ",
- year: "سال",
- timeSelect: "وقت منتخب کریں",
- dateSelect: "تاریخ منتخب کریں",
- weekSelect: "ایک ہفتہ کا انتخاب کریں",
- monthSelect: "ایک مہینہ کا انتخاب کریں",
- yearSelect: "ایک سال کا انتخاب کریں",
- decadeSelect: "ایک دہائی کا انتخاب کریں",
- yearFormat: "YYYY",
- dateFormat: "M/D/YYYY",
- dayFormat: "D",
- dateTimeFormat: "M/D/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "پچھلے مہینے (PageUp)",
- nextMonth: "اگلے مہینے (PageDown)",
- previousYear: "گزشتہ سال (Control + left)",
- nextYear: "اگلے سال (Control + right)",
- previousDecade: "پچھلی دہائی",
- nextDecade: "اگلی دہائی",
- previousCentury: "پچھلی صدی",
- nextCentury: "اگلی صدی"
- },
- timePickerLocale: {
- placeholder: "وقت منتخب کریں",
- rangePlaceholder: ["وقت منتخب کریں", "آخر وقت"]
- }
- },
- global: {
- placeholder: "منتخب کریں"
- },
- Table: {
- filterTitle: "فلٹر مینو",
- filterConfirm: "ٹھیک ہے",
- filterReset: "ری سیٹ کریں",
- filterEmptyText: "فلٹرز نہیں",
- emptyText: "کوئی ڈیٹا نہیں",
- selectAll: "موجودہ صفحہ منتخب کریں",
- selectInvert: "موجودہ صفحے کو الٹ دیں",
- selectNone: "تمام ڈیٹا صاف کریں",
- selectionAll: "تمام ڈیٹا کو منتخب کریں",
- sortTitle: "ترتیب دیں",
- expand: "پھیلائیں",
- collapse: "سمیٹیں",
- triggerDesc: "نزولی کو ترتیب دینے کیلئے کلک کریں",
- triggerAsc: "چڑھنے کو ترتیب دینے کیلئے کلک کریں",
- cancelSort: "ترتیب کو منسوخ کرنے کیلئے دبائیں"
- },
- Modal: {
- okText: "ٹھیک ہے",
- cancelText: "منسوخ کریں",
- justOkText: "ٹھیک ہے"
- },
- Popconfirm: {
- okText: "ٹھیک ہے",
- cancelText: "منسوخ کریں"
- },
- Transfer: {
- titles: ["", ""],
- searchPlaceholder: "یہاں تلاش کریں",
- itemUnit: "شے",
- itemsUnit: "اشیاء",
- remove: "ہٹائیں",
- selectCurrent: "موجودہ صفحہ منتخب کریں",
- removeCurrent: "موجودہ صفحہ ہٹائیں",
- selectAll: "تمام ڈیٹا کو منتخب کریں",
- removeAll: "تمام ڈیٹا کو ہٹا دیں",
- selectInvert: "موجودہ صفحے کو الٹ دیں"
- },
- Upload: {
- uploading: "اپ لوڈ ہو رہا ہے…",
- removeFile: "فائل کو ہٹا دیں",
- uploadError: "اپ لوڈ کی خرابی",
- previewFile: "پیش نظار فائل",
- downloadFile: "فائل ڈاؤن لوڈ کریں"
- },
- Empty: {
- description: "کوئی ڈیٹا نہیں"
- },
- Icon: {
- icon: "آئیکن"
- },
- Text: {
- edit: "ترمیم",
- copy: "کاپی",
- copied: "کاپی ہوگیا",
- expand: "پھیلائیں"
- },
- PageHeader: {
- back: "پیچھے"
- },
- Image: {
- preview: "پیش نظارہ"
- }
-};
-var vi_VN = {
- locale: "vi",
- Pagination: {
- items_per_page: "/ trang",
- jump_to: "Đến",
- jump_to_confirm: "xác nhận",
- page: "Trang",
- prev_page: "Trang Trước",
- next_page: "Trang Kế",
- prev_5: "Về 5 Trang Trước",
- next_5: "Đến 5 Trang Kế",
- prev_3: "Về 3 Trang Trước",
- next_3: "Đến 3 Trang Kế",
- page_size: "kích thước trang"
- },
- DatePicker: {
- lang: {
- placeholder: "Chọn thời điểm",
- rangePlaceholder: ["Ngày bắt đầu", "Ngày kết thúc"],
- locale: "vi_VN",
- today: "Hôm nay",
- now: "Bây giờ",
- backToToday: "Trở về hôm nay",
- ok: "Ok",
- clear: "Xóa",
- month: "Tháng",
- year: "Năm",
- timeSelect: "Chọn thời gian",
- dateSelect: "Chọn ngày",
- weekSelect: "Chọn tuần",
- monthSelect: "Chọn tháng",
- yearSelect: "Chọn năm",
- decadeSelect: "Chọn thập kỷ",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Tháng trước (PageUp)",
- nextMonth: "Tháng sau (PageDown)",
- previousYear: "Năm trước (Control + left)",
- nextYear: "Năm sau (Control + right)",
- previousDecade: "Thập kỷ trước",
- nextDecade: "Thập kỷ sau",
- previousCentury: "Thế kỷ trước",
- nextCentury: "Thế kỷ sau"
- },
- timePickerLocale: {
- placeholder: "Chọn thời gian"
- }
- },
- TimePicker: {
- placeholder: "Chọn thời gian"
- },
- Calendar: {
- lang: {
- placeholder: "Chọn thời điểm",
- rangePlaceholder: ["Ngày bắt đầu", "Ngày kết thúc"],
- locale: "vi_VN",
- today: "Hôm nay",
- now: "Bây giờ",
- backToToday: "Trở về hôm nay",
- ok: "Ok",
- clear: "Xóa",
- month: "Tháng",
- year: "Năm",
- timeSelect: "Chọn thời gian",
- dateSelect: "Chọn ngày",
- weekSelect: "Chọn tuần",
- monthSelect: "Chọn tháng",
- yearSelect: "Chọn năm",
- decadeSelect: "Chọn thập kỷ",
- yearFormat: "YYYY",
- dateFormat: "D/M/YYYY",
- dayFormat: "D",
- dateTimeFormat: "D/M/YYYY HH:mm:ss",
- monthBeforeYear: true,
- previousMonth: "Tháng trước (PageUp)",
- nextMonth: "Tháng sau (PageDown)",
- previousYear: "Năm trước (Control + left)",
- nextYear: "Năm sau (Control + right)",
- previousDecade: "Thập kỷ trước",
- nextDecade: "Thập kỷ sau",
- previousCentury: "Thế kỷ trước",
- nextCentury: "Thế kỷ sau"
- },
- timePickerLocale: {
- placeholder: "Chọn thời gian"
- }
- },
- Table: {
- filterTitle: "Bộ ",
- filterConfirm: "OK",
- filterReset: "Tạo Lại",
- selectAll: "Chọn Tất Cả",
- selectInvert: "Chọn Ngược Lại"
- },
- Modal: {
- okText: "OK",
- cancelText: "Huỷ",
- justOkText: "OK"
- },
- Popconfirm: {
- okText: "OK",
- cancelText: "Huỷ"
- },
- Transfer: {
- searchPlaceholder: "Tìm ở đây",
- itemUnit: "mục",
- itemsUnit: "mục"
- },
- Upload: {
- uploading: "Đang tải lên...",
- removeFile: "Gỡ bỏ tập tin",
- uploadError: "Lỗi tải lên",
- previewFile: "Xem thử tập tin",
- downloadFile: "Tải tập tin"
- },
- Empty: {
- description: "Trống"
- }
-};
-var zh_HK = {
- locale: "zh-hk",
- Pagination: {
- items_per_page: "條/頁",
- jump_to: "跳至",
- jump_to_confirm: "確定",
- page: "頁",
- prev_page: "上一頁",
- next_page: "下一頁",
- prev_5: "向前 5 頁",
- next_5: "向後 5 頁",
- prev_3: "向前 3 頁",
- next_3: "向後 3 頁",
- page_size: "頁碼"
- },
- DatePicker: {
- lang: {
- placeholder: "請選擇日期",
- rangePlaceholder: ["開始日期", "結束日期"],
- locale: "zh_TW",
- today: "今天",
- now: "此刻",
- backToToday: "返回今天",
- ok: "確定",
- timeSelect: "選擇時間",
- dateSelect: "選擇日期",
- weekSelect: "選擇周",
- clear: "清除",
- month: "月",
- year: "年",
- previousMonth: "上個月 (翻頁上鍵)",
- nextMonth: "下個月 (翻頁下鍵)",
- monthSelect: "選擇月份",
- yearSelect: "選擇年份",
- decadeSelect: "選擇年代",
- yearFormat: "YYYY年",
- dayFormat: "D日",
- dateFormat: "YYYY年M月D日",
- dateTimeFormat: "YYYY年M月D日 HH時mm分ss秒",
- previousYear: "上一年 (Control鍵加左方向鍵)",
- nextYear: "下一年 (Control鍵加右方向鍵)",
- previousDecade: "上一年代",
- nextDecade: "下一年代",
- previousCentury: "上一世紀",
- nextCentury: "下一世紀",
- yearPlaceholder: "請選擇年份",
- quarterPlaceholder: "請選擇季度",
- monthPlaceholder: "請選擇月份",
- weekPlaceholder: "請選擇周",
- rangeYearPlaceholder: ["開始年份", "結束年份"],
- rangeMonthPlaceholder: ["開始月份", "結束月份"],
- rangeWeekPlaceholder: ["開始周", "結束周"]
- },
- timePickerLocale: {
- placeholder: "請選擇時間"
- }
- },
- TimePicker: {
- placeholder: "請選擇時間"
- },
- Calendar: {
- lang: {
- placeholder: "請選擇日期",
- rangePlaceholder: ["開始日期", "結束日期"],
- locale: "zh_TW",
- today: "今天",
- now: "此刻",
- backToToday: "返回今天",
- ok: "確定",
- timeSelect: "選擇時間",
- dateSelect: "選擇日期",
- weekSelect: "選擇周",
- clear: "清除",
- month: "月",
- year: "年",
- previousMonth: "上個月 (翻頁上鍵)",
- nextMonth: "下個月 (翻頁下鍵)",
- monthSelect: "選擇月份",
- yearSelect: "選擇年份",
- decadeSelect: "選擇年代",
- yearFormat: "YYYY年",
- dayFormat: "D日",
- dateFormat: "YYYY年M月D日",
- dateTimeFormat: "YYYY年M月D日 HH時mm分ss秒",
- previousYear: "上一年 (Control鍵加左方向鍵)",
- nextYear: "下一年 (Control鍵加右方向鍵)",
- previousDecade: "上一年代",
- nextDecade: "下一年代",
- previousCentury: "上一世紀",
- nextCentury: "下一世紀",
- yearPlaceholder: "請選擇年份",
- quarterPlaceholder: "請選擇季度",
- monthPlaceholder: "請選擇月份",
- weekPlaceholder: "請選擇周",
- rangeYearPlaceholder: ["開始年份", "結束年份"],
- rangeMonthPlaceholder: ["開始月份", "結束月份"],
- rangeWeekPlaceholder: ["開始周", "結束周"]
- },
- timePickerLocale: {
- placeholder: "請選擇時間"
- }
- },
- global: {
- placeholder: "請選擇"
- },
- Table: {
- filterTitle: "篩選器",
- filterConfirm: "確定",
- filterReset: "重置",
- filterEmptyText: "無篩選項",
- selectAll: "全部選取",
- selectInvert: "反向選取",
- selectionAll: "全選所有",
- sortTitle: "排序",
- expand: "展開行",
- collapse: "關閉行",
- triggerDesc: "點擊降序",
- triggerAsc: "點擊升序",
- cancelSort: "取消排序",
- selectNone: "清空所有"
- },
- Modal: {
- okText: "確定",
- cancelText: "取消",
- justOkText: "知道了"
- },
- Popconfirm: {
- okText: "確定",
- cancelText: "取消"
- },
- Transfer: {
- searchPlaceholder: "搜尋資料",
- itemUnit: "項目",
- itemsUnit: "項目",
- remove: "刪除",
- selectCurrent: "全選當頁",
- removeCurrent: "刪除當頁",
- selectAll: "全選所有",
- removeAll: "刪除全部",
- selectInvert: "反選當頁"
- },
- Upload: {
- uploading: "正在上傳...",
- removeFile: "刪除檔案",
- uploadError: "上傳失敗",
- previewFile: "檔案預覽",
- downloadFile: "下载文件"
- },
- Empty: {
- description: "無此資料"
- },
- Icon: {
- icon: "圖標"
- },
- Text: {
- edit: "編輯",
- copy: "複製",
- copied: "複製成功",
- expand: "展開"
- },
- PageHeader: {
- back: "返回"
- },
- Image: {
- preview: "預覽"
- }
-};
-var zh_TW = {
- locale: "zh-tw",
- Pagination: {
- items_per_page: "條/頁",
- jump_to: "跳至",
- jump_to_confirm: "確定",
- page: "頁",
- prev_page: "上一頁",
- next_page: "下一頁",
- prev_5: "向前 5 頁",
- next_5: "向後 5 頁",
- prev_3: "向前 3 頁",
- next_3: "向後 3 頁",
- page_size: "頁碼"
- },
- DatePicker: {
- lang: {
- placeholder: "請選擇日期",
- rangePlaceholder: ["開始日期", "結束日期"],
- locale: "zh_TW",
- today: "今天",
- now: "此刻",
- backToToday: "返回今天",
- ok: "確定",
- timeSelect: "選擇時間",
- dateSelect: "選擇日期",
- weekSelect: "選擇周",
- clear: "清除",
- month: "月",
- year: "年",
- previousMonth: "上個月 (翻頁上鍵)",
- nextMonth: "下個月 (翻頁下鍵)",
- monthSelect: "選擇月份",
- yearSelect: "選擇年份",
- decadeSelect: "選擇年代",
- yearFormat: "YYYY年",
- dayFormat: "D日",
- dateFormat: "YYYY年M月D日",
- dateTimeFormat: "YYYY年M月D日 HH時mm分ss秒",
- previousYear: "上一年 (Control鍵加左方向鍵)",
- nextYear: "下一年 (Control鍵加右方向鍵)",
- previousDecade: "上一年代",
- nextDecade: "下一年代",
- previousCentury: "上一世紀",
- nextCentury: "下一世紀",
- yearPlaceholder: "請選擇年份",
- quarterPlaceholder: "請選擇季度",
- monthPlaceholder: "請選擇月份",
- weekPlaceholder: "請選擇周",
- rangeYearPlaceholder: ["開始年份", "結束年份"],
- rangeMonthPlaceholder: ["開始月份", "結束月份"],
- rangeWeekPlaceholder: ["開始周", "結束周"]
- },
- timePickerLocale: {
- placeholder: "請選擇時間"
- }
- },
- TimePicker: {
- placeholder: "請選擇時間"
- },
- Calendar: {
- lang: {
- placeholder: "請選擇日期",
- rangePlaceholder: ["開始日期", "結束日期"],
- locale: "zh_TW",
- today: "今天",
- now: "此刻",
- backToToday: "返回今天",
- ok: "確定",
- timeSelect: "選擇時間",
- dateSelect: "選擇日期",
- weekSelect: "選擇周",
- clear: "清除",
- month: "月",
- year: "年",
- previousMonth: "上個月 (翻頁上鍵)",
- nextMonth: "下個月 (翻頁下鍵)",
- monthSelect: "選擇月份",
- yearSelect: "選擇年份",
- decadeSelect: "選擇年代",
- yearFormat: "YYYY年",
- dayFormat: "D日",
- dateFormat: "YYYY年M月D日",
- dateTimeFormat: "YYYY年M月D日 HH時mm分ss秒",
- previousYear: "上一年 (Control鍵加左方向鍵)",
- nextYear: "下一年 (Control鍵加右方向鍵)",
- previousDecade: "上一年代",
- nextDecade: "下一年代",
- previousCentury: "上一世紀",
- nextCentury: "下一世紀",
- yearPlaceholder: "請選擇年份",
- quarterPlaceholder: "請選擇季度",
- monthPlaceholder: "請選擇月份",
- weekPlaceholder: "請選擇周",
- rangeYearPlaceholder: ["開始年份", "結束年份"],
- rangeMonthPlaceholder: ["開始月份", "結束月份"],
- rangeWeekPlaceholder: ["開始周", "結束周"]
- },
- timePickerLocale: {
- placeholder: "請選擇時間"
- }
- },
- global: {
- placeholder: "請選擇"
- },
- Table: {
- filterTitle: "篩選器",
- filterConfirm: "確定",
- filterReset: "重置",
- filterEmptyText: "無篩選項",
- selectAll: "全部選取",
- selectInvert: "反向選取",
- selectionAll: "全選所有",
- sortTitle: "排序",
- expand: "展開行",
- collapse: "關閉行",
- triggerDesc: "點擊降序",
- triggerAsc: "點擊升序",
- cancelSort: "取消排序",
- selectNone: "清空所有"
- },
- Modal: {
- okText: "確定",
- cancelText: "取消",
- justOkText: "知道了"
- },
- Popconfirm: {
- okText: "確定",
- cancelText: "取消"
- },
- Transfer: {
- searchPlaceholder: "搜尋資料",
- itemUnit: "項目",
- itemsUnit: "項目",
- remove: "删除",
- selectCurrent: "全選當頁",
- removeCurrent: "删除當頁",
- selectAll: "全選所有",
- removeAll: "删除全部",
- selectInvert: "反選當頁"
- },
- Upload: {
- uploading: "正在上傳...",
- removeFile: "刪除檔案",
- uploadError: "上傳失敗",
- previewFile: "檔案預覽",
- downloadFile: "下載文件"
- },
- Empty: {
- description: "無此資料"
- },
- Icon: {
- icon: "圖標"
- },
- Text: {
- edit: "編輯",
- copy: "複製",
- copied: "複製成功",
- expand: "展開"
- },
- PageHeader: {
- back: "返回"
- },
- Image: {
- preview: "預覽"
- }
-};
-
-export {
- en_US,
- zh_CN,
- NZ_I18N,
- provideNzI18n,
- NZ_DATE_LOCALE,
- NzI18nService,
- NzI18nPipe,
- NzI18nModule,
- NZ_DATE_CONFIG,
- NZ_DATE_CONFIG_DEFAULT,
- mergeDateConfig,
- DATE_HELPER_SERVICE_FACTORY,
- DateHelperService,
- DateHelperByDateFns,
- DateHelperByDatePipe,
- ar_EG,
- az_AZ,
- bg_BG,
- bn_BD,
- by_BY,
- ca_ES,
- cs_CZ,
- da_DK,
- de_DE,
- el_GR,
- en_GB,
- es_ES,
- et_EE,
- fa_IR,
- fi_FI,
- fr_BE,
- fr_CA,
- fr_FR,
- ga_IE,
- gl_ES,
- he_IL,
- hi_IN,
- hr_HR,
- hu_HU,
- hy_AM,
- id_ID,
- is_IS,
- it_IT,
- ja_JP,
- ka_GE,
- km_KH,
- kk_KZ,
- kmr_IQ,
- kn_IN,
- ko_KR,
- ku_IQ,
- lt_LT,
- lv_LV,
- mk_MK,
- ml_IN,
- mn_MN,
- ms_MY,
- nb_NO,
- ne_NP,
- nl_BE,
- nl_NL,
- pl_PL,
- pt_BR,
- pt_PT,
- ro_RO,
- ru_RU,
- sk_SK,
- sl_SI,
- sr_RS,
- sv_SE,
- ta_IN,
- th_TH,
- tr_TR,
- uk_UA,
- ur_PK,
- vi_VN,
- zh_HK,
- zh_TW
-};
-//# sourceMappingURL=chunk-T745QDCV.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-T745QDCV.js.map b/.angular/cache/17.0.7/vite/deps/chunk-T745QDCV.js.map
deleted file mode 100644
index 82fc126..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-T745QDCV.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/@babel/runtime/helpers/esm/typeof.js", "../../../../../node_modules/date-fns/esm/_lib/toInteger/index.js", "../../../../../node_modules/date-fns/esm/_lib/requiredArgs/index.js", "../../../../../node_modules/date-fns/esm/toDate/index.js", "../../../../../node_modules/date-fns/esm/addMilliseconds/index.js", "../../../../../node_modules/date-fns/esm/_lib/defaultOptions/index.js", "../../../../../node_modules/date-fns/esm/startOfWeek/index.js", "../../../../../node_modules/date-fns/esm/startOfISOWeek/index.js", "../../../../../node_modules/date-fns/esm/getISOWeekYear/index.js", "../../../../../node_modules/date-fns/esm/startOfISOWeekYear/index.js", "../../../../../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js", "../../../../../node_modules/date-fns/esm/constants/index.js", "../../../../../node_modules/date-fns/esm/isDate/index.js", "../../../../../node_modules/date-fns/esm/isValid/index.js", "../../../../../node_modules/date-fns/esm/subMilliseconds/index.js", "../../../../../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js", "../../../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js", "../../../../../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js", "../../../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js", "../../../../../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js", "../../../../../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js", "../../../../../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js", "../../../../../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js", "../../../../../node_modules/date-fns/esm/_lib/getUTCWeek/index.js", "../../../../../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js", "../../../../../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js", "../../../../../node_modules/date-fns/esm/_lib/format/formatters/index.js", "../../../../../node_modules/date-fns/esm/_lib/format/longFormatters/index.js", "../../../../../node_modules/date-fns/esm/_lib/protectedTokens/index.js", "../../../../../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js", "../../../../../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js", "../../../../../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js", "../../../../../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js", "../../../../../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js", "../../../../../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js", "../../../../../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js", "../../../../../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js", "../../../../../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js", "../../../../../node_modules/date-fns/esm/locale/en-US/index.js", "../../../../../node_modules/date-fns/esm/_lib/defaultLocale/index.js", "../../../../../node_modules/date-fns/esm/format/index.js", "../../../../../node_modules/date-fns/esm/_lib/assign/index.js", "../../../../../node_modules/date-fns/esm/formatDistanceStrict/index.js", "../../../../../node_modules/date-fns/esm/getISOWeek/index.js", "../../../../../node_modules/date-fns/esm/getOverlappingDaysInIntervals/index.js", "../../../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", "../../../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js", "../../../../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js", "../../../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js", "../../../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js", "../../../../../node_modules/@babel/runtime/helpers/esm/inherits.js", "../../../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js", "../../../../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js", "../../../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js", "../../../../../node_modules/@babel/runtime/helpers/esm/createSuper.js", "../../../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js", "../../../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js", "../../../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js", "../../../../../node_modules/@babel/runtime/helpers/esm/createClass.js", "../../../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js", "../../../../../node_modules/date-fns/esm/parse/_lib/Setter.js", "../../../../../node_modules/date-fns/esm/parse/_lib/Parser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/constants.js", "../../../../../node_modules/date-fns/esm/parse/_lib/utils.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js", "../../../../../node_modules/date-fns/esm/_lib/setUTCWeek/index.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js", "../../../../../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js", "../../../../../node_modules/date-fns/esm/_lib/setUTCDay/index.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js", "../../../../../node_modules/date-fns/esm/_lib/setUTCISODay/index.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js", "../../../../../node_modules/date-fns/esm/parse/_lib/parsers/index.js", "../../../../../node_modules/date-fns/esm/parse/index.js", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-time.mjs", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-i18n.mjs"],
- "sourcesContent": ["export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}", "export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}", "export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}", "import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}", "import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}", "var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}", "import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}", "import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}", "import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}", "/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}", "/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;", "import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}", "import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}", "import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}", "import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}", "import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}", "import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;", "import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;", "var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;", "var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}", "var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;", "export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}", "import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;", "var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;", "export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}", "import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;", "export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}", "export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}", "import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;", "import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;", "import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;", "import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}", "export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}", "import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate, options) {\n var _ref, _options$locale, _options$roundingMeth;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n var localizeOptions = assign(cloneObject(options), {\n addSuffix: Boolean(options === null || options === void 0 ? void 0 : options.addSuffix),\n comparison: comparison\n });\n var dateLeft;\n var dateRight;\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n var roundingMethod = String((_options$roundingMeth = options === null || options === void 0 ? void 0 : options.roundingMethod) !== null && _options$roundingMeth !== void 0 ? _options$roundingMeth : 'round');\n var roundingMethodFn;\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft);\n\n // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var defaultUnit = options === null || options === void 0 ? void 0 : options.unit;\n var unit;\n if (!defaultUnit) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(defaultUnit);\n }\n\n // 0 up to 60 seconds\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions);\n\n // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions);\n\n // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions);\n\n // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions);\n\n // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && defaultUnit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions);\n\n // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}", "import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}", "import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1000;\n\n/**\n * @name getOverlappingDaysInIntervals\n * @category Interval Helpers\n * @summary Get the number of days that overlap in two time intervals\n *\n * @description\n * Get the number of days that overlap in two time intervals\n *\n * @param {Interval} intervalLeft - the first interval to compare. See [Interval]{@link docs/Interval}\n * @param {Interval} intervalRight - the second interval to compare. See [Interval]{@link docs/Interval}\n * @returns {Number} the number of days that overlap in two time intervals\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For overlapping time intervals adds 1 for each started overlapping day:\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * //=> 3\n *\n * @example\n * // For non-overlapping time intervals returns 0:\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }\n * )\n * //=> 0\n */\n\nexport default function getOverlappingDaysInIntervals(dirtyIntervalLeft, dirtyIntervalRight) {\n requiredArgs(2, arguments);\n var intervalLeft = dirtyIntervalLeft || {};\n var intervalRight = dirtyIntervalRight || {};\n var leftStartTime = toDate(intervalLeft.start).getTime();\n var leftEndTime = toDate(intervalLeft.end).getTime();\n var rightStartTime = toDate(intervalRight.start).getTime();\n var rightEndTime = toDate(intervalRight.end).getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(leftStartTime <= leftEndTime && rightStartTime <= rightEndTime)) {\n throw new RangeError('Invalid interval');\n }\n var isOverlapping = leftStartTime < rightEndTime && rightStartTime < leftEndTime;\n if (!isOverlapping) {\n return 0;\n }\n var overlapStartDate = rightStartTime < leftStartTime ? leftStartTime : rightStartTime;\n var overlapEndDate = rightEndTime > leftEndTime ? leftEndTime : rightEndTime;\n var differenceInMs = overlapEndDate - overlapStartDate;\n return Math.ceil(differenceInMs / MILLISECONDS_IN_DAY);\n}", "export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}", "import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}", "import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}", "export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}", "export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}", "import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}", "export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}", "export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}", "import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}", "import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}", "export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}", "import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}", "import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}", "import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}", "import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}", "import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);", "export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};", "import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);", "import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);", "import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);", "import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);", "import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);", "import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};", "import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}", "import { startOfMonth, startOfWeek, setYear, addYears, setMonth, addMonths, setDay, isSameDay, isSameSecond, isSameMinute, isSameHour, isSameMonth, isSameYear, differenceInCalendarDays, differenceInSeconds, differenceInMinutes, differenceInHours, differenceInCalendarMonths, differenceInCalendarYears, isToday, isValid, isFirstDayOfMonth, isLastDayOfMonth } from 'date-fns';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { FormStyle, TranslationWidth, getLocaleDayPeriods } from '@angular/common';\nimport { isNotNil } from 'ng-zorro-antd/core/util';\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 */\nfunction wrongSortOrder(rangeValue) {\n const [start, end] = rangeValue;\n return !!start && !!end && end.isBeforeDay(start);\n}\nfunction normalizeRangeValue(value, hasTimePicker, type = 'month', activePart = 'left') {\n const [start, end] = value;\n let newStart = start || new CandyDate();\n let newEnd = end || (hasTimePicker ? newStart : newStart.add(1, type));\n if (start && !end) {\n newStart = start;\n newEnd = hasTimePicker ? start : start.add(1, type);\n }\n else if (!start && end) {\n newStart = hasTimePicker ? end : end.add(-1, type);\n newEnd = end;\n }\n else if (start && end && !hasTimePicker) {\n if (start.isSame(end, type)) {\n newEnd = newStart.add(1, type);\n }\n else {\n if (activePart === 'left') {\n newEnd = newStart.add(1, type);\n }\n else {\n newStart = newEnd.add(-1, type);\n }\n }\n }\n return [newStart, newEnd];\n}\nfunction cloneDate(value) {\n if (Array.isArray(value)) {\n return value.map(v => (v instanceof CandyDate ? v.clone() : null));\n }\n else {\n return value instanceof CandyDate ? value.clone() : null;\n }\n}\n/**\n * Wrapping kind APIs for date operating and unify\n * NOTE: every new API return new CandyDate object without side effects to the former Date object\n * NOTE: most APIs are based on local time other than customized locale id (this needs tobe support in future)\n * TODO: support format() against to angular's core API\n */\nclass CandyDate {\n // locale: string; // Custom specified locale ID\n constructor(date) {\n if (date) {\n if (date instanceof Date) {\n this.nativeDate = date;\n }\n else if (typeof date === 'string' || typeof date === 'number') {\n warn('The string type is not recommended for date-picker, use \"Date\" type');\n this.nativeDate = new Date(date);\n }\n else {\n throw new Error('The input date type is not supported (\"Date\" is now recommended)');\n }\n }\n else {\n this.nativeDate = new Date();\n }\n }\n calendarStart(options) {\n return new CandyDate(startOfWeek(startOfMonth(this.nativeDate), options));\n }\n // ---------------------------------------------------------------------\n // | Native shortcuts\n // -----------------------------------------------------------------------------\\\n getYear() {\n return this.nativeDate.getFullYear();\n }\n getMonth() {\n return this.nativeDate.getMonth();\n }\n getDay() {\n return this.nativeDate.getDay();\n }\n getTime() {\n return this.nativeDate.getTime();\n }\n getDate() {\n return this.nativeDate.getDate();\n }\n getHours() {\n return this.nativeDate.getHours();\n }\n getMinutes() {\n return this.nativeDate.getMinutes();\n }\n getSeconds() {\n return this.nativeDate.getSeconds();\n }\n getMilliseconds() {\n return this.nativeDate.getMilliseconds();\n }\n // ---------------------------------------------------------------------\n // | New implementing APIs\n // ---------------------------------------------------------------------\n clone() {\n return new CandyDate(new Date(this.nativeDate));\n }\n setHms(hour, minute, second) {\n const newDate = new Date(this.nativeDate.setHours(hour, minute, second));\n return new CandyDate(newDate);\n }\n setYear(year) {\n return new CandyDate(setYear(this.nativeDate, year));\n }\n addYears(amount) {\n return new CandyDate(addYears(this.nativeDate, amount));\n }\n // NOTE: month starts from 0\n // NOTE: Don't use the native API for month manipulation as it not restrict the date when it overflows, eg. (new Date('2018-7-31')).setMonth(1) will be date of 2018-3-03 instead of 2018-2-28\n setMonth(month) {\n return new CandyDate(setMonth(this.nativeDate, month));\n }\n addMonths(amount) {\n return new CandyDate(addMonths(this.nativeDate, amount));\n }\n setDay(day, options) {\n return new CandyDate(setDay(this.nativeDate, day, options));\n }\n setDate(amount) {\n const date = new Date(this.nativeDate);\n date.setDate(amount);\n return new CandyDate(date);\n }\n addDays(amount) {\n return this.setDate(this.getDate() + amount);\n }\n add(amount, mode) {\n switch (mode) {\n case 'decade':\n return this.addYears(amount * 10);\n case 'year':\n return this.addYears(amount);\n case 'month':\n return this.addMonths(amount);\n default:\n return this.addMonths(amount);\n }\n }\n isSame(date, grain = 'day') {\n let fn;\n switch (grain) {\n case 'decade':\n fn = (pre, next) => Math.abs(pre.getFullYear() - next.getFullYear()) < 11;\n break;\n case 'year':\n fn = isSameYear;\n break;\n case 'month':\n fn = isSameMonth;\n break;\n case 'day':\n fn = isSameDay;\n break;\n case 'hour':\n fn = isSameHour;\n break;\n case 'minute':\n fn = isSameMinute;\n break;\n case 'second':\n fn = isSameSecond;\n break;\n default:\n fn = isSameDay;\n break;\n }\n return fn(this.nativeDate, this.toNativeDate(date));\n }\n isSameYear(date) {\n return this.isSame(date, 'year');\n }\n isSameMonth(date) {\n return this.isSame(date, 'month');\n }\n isSameDay(date) {\n return this.isSame(date, 'day');\n }\n isSameHour(date) {\n return this.isSame(date, 'hour');\n }\n isSameMinute(date) {\n return this.isSame(date, 'minute');\n }\n isSameSecond(date) {\n return this.isSame(date, 'second');\n }\n isBefore(date, grain = 'day') {\n if (date === null) {\n return false;\n }\n let fn;\n switch (grain) {\n case 'year':\n fn = differenceInCalendarYears;\n break;\n case 'month':\n fn = differenceInCalendarMonths;\n break;\n case 'day':\n fn = differenceInCalendarDays;\n break;\n case 'hour':\n fn = differenceInHours;\n break;\n case 'minute':\n fn = differenceInMinutes;\n break;\n case 'second':\n fn = differenceInSeconds;\n break;\n default:\n fn = differenceInCalendarDays;\n break;\n }\n return fn(this.nativeDate, this.toNativeDate(date)) < 0;\n }\n isBeforeYear(date) {\n return this.isBefore(date, 'year');\n }\n isBeforeMonth(date) {\n return this.isBefore(date, 'month');\n }\n isBeforeDay(date) {\n return this.isBefore(date, 'day');\n }\n // Equal to today accurate to \"day\"\n isToday() {\n return isToday(this.nativeDate);\n }\n isValid() {\n return isValid(this.nativeDate);\n }\n isFirstDayOfMonth() {\n return isFirstDayOfMonth(this.nativeDate);\n }\n isLastDayOfMonth() {\n return isLastDayOfMonth(this.nativeDate);\n }\n toNativeDate(date) {\n return date instanceof CandyDate ? date.nativeDate : date;\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 */\nconst timeUnits = [\n ['Y', 1000 * 60 * 60 * 24 * 365],\n ['M', 1000 * 60 * 60 * 24 * 30],\n ['D', 1000 * 60 * 60 * 24],\n ['H', 1000 * 60 * 60],\n ['m', 1000 * 60],\n ['s', 1000],\n ['S', 1] // million seconds\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// from https://github.com/hsuanxyz/ng-time-parser\nclass NgTimeParser {\n constructor(format, localeId) {\n this.format = format;\n this.localeId = localeId;\n this.regex = null;\n this.matchMap = {\n hour: null,\n minute: null,\n second: null,\n periodNarrow: null,\n periodWide: null,\n periodAbbreviated: null\n };\n this.genRegexp();\n }\n toDate(str) {\n const result = this.getTimeResult(str);\n const time = new Date();\n if (isNotNil(result?.hour)) {\n time.setHours(result.hour);\n }\n if (isNotNil(result?.minute)) {\n time.setMinutes(result.minute);\n }\n if (isNotNil(result?.second)) {\n time.setSeconds(result.second);\n }\n if (result?.period === 1 && time.getHours() < 12) {\n time.setHours(time.getHours() + 12);\n }\n return time;\n }\n getTimeResult(str) {\n const match = this.regex.exec(str);\n let period = null;\n if (match) {\n if (isNotNil(this.matchMap.periodNarrow)) {\n period = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Narrow).indexOf(match[this.matchMap.periodNarrow + 1]);\n }\n if (isNotNil(this.matchMap.periodWide)) {\n period = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Wide).indexOf(match[this.matchMap.periodWide + 1]);\n }\n if (isNotNil(this.matchMap.periodAbbreviated)) {\n period = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Abbreviated).indexOf(match[this.matchMap.periodAbbreviated + 1]);\n }\n return {\n hour: isNotNil(this.matchMap.hour) ? Number.parseInt(match[this.matchMap.hour + 1], 10) : null,\n minute: isNotNil(this.matchMap.minute) ? Number.parseInt(match[this.matchMap.minute + 1], 10) : null,\n second: isNotNil(this.matchMap.second) ? Number.parseInt(match[this.matchMap.second + 1], 10) : null,\n period\n };\n }\n else {\n return null;\n }\n }\n genRegexp() {\n let regexStr = this.format.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$&');\n const hourRegex = /h{1,2}/i;\n const minuteRegex = /m{1,2}/;\n const secondRegex = /s{1,2}/;\n const periodNarrow = /aaaaa/;\n const periodWide = /aaaa/;\n const periodAbbreviated = /a{1,3}/;\n const hourMatch = hourRegex.exec(this.format);\n const minuteMatch = minuteRegex.exec(this.format);\n const secondMatch = secondRegex.exec(this.format);\n const periodNarrowMatch = periodNarrow.exec(this.format);\n let periodWideMatch = null;\n let periodAbbreviatedMatch = null;\n if (!periodNarrowMatch) {\n periodWideMatch = periodWide.exec(this.format);\n }\n if (!periodWideMatch && !periodNarrowMatch) {\n periodAbbreviatedMatch = periodAbbreviated.exec(this.format);\n }\n const matchs = [hourMatch, minuteMatch, secondMatch, periodNarrowMatch, periodWideMatch, periodAbbreviatedMatch]\n .filter(m => !!m)\n .sort((a, b) => a.index - b.index);\n matchs.forEach((match, index) => {\n switch (match) {\n case hourMatch:\n this.matchMap.hour = index;\n regexStr = regexStr.replace(hourRegex, '(\\\\d{1,2})');\n break;\n case minuteMatch:\n this.matchMap.minute = index;\n regexStr = regexStr.replace(minuteRegex, '(\\\\d{1,2})');\n break;\n case secondMatch:\n this.matchMap.second = index;\n regexStr = regexStr.replace(secondRegex, '(\\\\d{1,2})');\n break;\n case periodNarrowMatch:\n this.matchMap.periodNarrow = index;\n const periodsNarrow = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Narrow).join('|');\n regexStr = regexStr.replace(periodNarrow, `(${periodsNarrow})`);\n break;\n case periodWideMatch:\n this.matchMap.periodWide = index;\n const periodsWide = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Wide).join('|');\n regexStr = regexStr.replace(periodWide, `(${periodsWide})`);\n break;\n case periodAbbreviatedMatch:\n this.matchMap.periodAbbreviated = index;\n const periodsAbbreviated = getLocaleDayPeriods(this.localeId, FormStyle.Format, TranslationWidth.Abbreviated).join('|');\n regexStr = regexStr.replace(periodAbbreviated, `(${periodsAbbreviated})`);\n break;\n }\n });\n this.regex = new RegExp(regexStr);\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 { CandyDate, cloneDate, normalizeRangeValue, timeUnits, wrongSortOrder, NgTimeParser as ɵNgTimeParser };\n\n", "import * as i0 from '@angular/core';\nimport { InjectionToken, makeEnvironmentProviders, Injectable, Optional, Inject, Pipe, NgModule, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { formatDate } from '@angular/common';\nimport { getISOWeek, format, parse } from 'date-fns';\nimport { ɵNgTimeParser as _NgTimeParser } from 'ng-zorro-antd/core/time';\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 */\nvar en_US = {\n locale: 'en',\n Pagination: {\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week'],\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n },\n timePickerLocale: {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n }\n },\n TimePicker: {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n },\n Calendar: {\n lang: {\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week'],\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n },\n timePickerLocale: {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n }\n },\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n selectNone: 'Clear all data'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Image: {\n preview: 'Preview'\n },\n CronExpression: {\n cronError: 'Invalid cron expression',\n second: 'second',\n minute: 'minute',\n hour: 'hour',\n day: 'day',\n month: 'month',\n week: 'week'\n },\n QRCode: {\n expired: 'QR code expired',\n refresh: 'Refresh'\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 */\nvar zh_CN = {\n locale: 'zh-cn',\n Pagination: {\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页',\n page_size: '页码'\n },\n DatePicker: {\n lang: {\n placeholder: '请选择日期',\n yearPlaceholder: '请选择年份',\n quarterPlaceholder: '请选择季度',\n monthPlaceholder: '请选择月份',\n weekPlaceholder: '请选择周',\n rangePlaceholder: ['开始日期', '结束日期'],\n rangeYearPlaceholder: ['开始年份', '结束年份'],\n rangeMonthPlaceholder: ['开始月份', '结束月份'],\n rangeWeekPlaceholder: ['开始周', '结束周'],\n locale: 'zh_CN',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '确定',\n timeSelect: '选择时间',\n dateSelect: '选择日期',\n weekSelect: '选择周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上个月 (翻页上键)',\n nextMonth: '下个月 (翻页下键)',\n monthSelect: '选择月份',\n yearSelect: '选择年份',\n decadeSelect: '选择年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',\n previousYear: '上一年 (Control键加左方向键)',\n nextYear: '下一年 (Control键加右方向键)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世纪',\n nextCentury: '下一世纪'\n },\n timePickerLocale: {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n }\n },\n TimePicker: {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n },\n Calendar: {\n lang: {\n placeholder: '请选择日期',\n yearPlaceholder: '请选择年份',\n quarterPlaceholder: '请选择季度',\n monthPlaceholder: '请选择月份',\n weekPlaceholder: '请选择周',\n rangePlaceholder: ['开始日期', '结束日期'],\n rangeYearPlaceholder: ['开始年份', '结束年份'],\n rangeMonthPlaceholder: ['开始月份', '结束月份'],\n rangeWeekPlaceholder: ['开始周', '结束周'],\n locale: 'zh_CN',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '确定',\n timeSelect: '选择时间',\n dateSelect: '选择日期',\n weekSelect: '选择周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上个月 (翻页上键)',\n nextMonth: '下个月 (翻页下键)',\n monthSelect: '选择月份',\n yearSelect: '选择年份',\n decadeSelect: '选择年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',\n previousYear: '上一年 (Control键加左方向键)',\n nextYear: '下一年 (Control键加右方向键)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世纪',\n nextCentury: '下一世纪'\n },\n timePickerLocale: {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n }\n },\n global: {\n placeholder: '请选择'\n },\n Table: {\n filterTitle: '筛选',\n filterConfirm: '确定',\n filterReset: '重置',\n filterEmptyText: '无筛选项',\n selectAll: '全选当页',\n selectInvert: '反选当页',\n selectionAll: '全选所有',\n sortTitle: '排序',\n expand: '展开行',\n collapse: '关闭行',\n triggerDesc: '点击降序',\n triggerAsc: '点击升序',\n cancelSort: '取消排序',\n filterCheckall: '全选',\n filterSearchPlaceholder: '在筛选项中搜索',\n selectNone: '清空所有'\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n cancelText: '取消',\n okText: '确定'\n },\n Transfer: {\n searchPlaceholder: '请输入搜索内容',\n itemUnit: '项',\n itemsUnit: '项',\n remove: '删除',\n selectCurrent: '全选当页',\n removeCurrent: '删除当页',\n selectAll: '全选所有',\n removeAll: '删除全部',\n selectInvert: '反选当页'\n },\n Upload: {\n uploading: '文件上传中',\n removeFile: '删除文件',\n uploadError: '上传错误',\n previewFile: '预览文件',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '暂无数据'\n },\n Icon: {\n icon: '图标'\n },\n Text: {\n edit: '编辑',\n copy: '复制',\n copied: '复制成功',\n expand: '展开'\n },\n PageHeader: {\n back: '返回'\n },\n Image: {\n preview: '预览'\n },\n CronExpression: {\n cronError: 'cron 表达式不合法',\n second: '秒',\n minute: '分钟',\n hour: '小时',\n day: '日',\n month: '月',\n week: '周'\n },\n QRCode: {\n expired: '二维码过期',\n refresh: '点击刷新'\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 */\nconst NZ_I18N = new InjectionToken('nz-i18n');\nfunction provideNzI18n(config) {\n return makeEnvironmentProviders([{\n provide: NZ_I18N,\n useValue: config\n }]);\n}\n/** Locale for date operations, should import from date-fns, see example: https://github.com/date-fns/date-fns/blob/v1.30.1/src/locale/zh_cn/index.js */\nconst NZ_DATE_LOCALE = new InjectionToken('nz-date-locale');\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 NzI18nService {\n get localeChange() {\n return this._change.asObservable();\n }\n constructor(locale, dateLocale) {\n this._change = new BehaviorSubject(this._locale);\n this.setLocale(locale || zh_CN);\n this.setDateLocale(dateLocale || null);\n }\n // [NOTE] Performance issue: this method may called by every change detections\n // TODO: cache more deeply paths for performance\n translate(path, data) {\n // this._logger.debug(`[NzI18nService] Translating(${this._locale.locale}): ${path}`);\n let content = this._getObjectPath(this._locale, path);\n if (typeof content === 'string') {\n if (data) {\n Object.keys(data).forEach(key => content = content.replace(new RegExp(`%${key}%`, 'g'), data[key]));\n }\n return content;\n }\n return path;\n }\n /**\n * Set/Change current locale globally throughout the WHOLE application\n * NOTE: If called at runtime, rendered interface may not change along with the locale change,\n * because this do not trigger another render schedule.\n *\n * @param locale The translating letters\n */\n setLocale(locale) {\n if (this._locale && this._locale.locale === locale.locale) {\n return;\n }\n this._locale = locale;\n this._change.next(locale);\n }\n getLocale() {\n return this._locale;\n }\n getLocaleId() {\n return this._locale ? this._locale.locale : '';\n }\n setDateLocale(dateLocale) {\n this.dateLocale = dateLocale;\n }\n getDateLocale() {\n return this.dateLocale;\n }\n /**\n * Get locale data\n *\n * @param path dot paths for finding exist value from locale data, eg. \"a.b.c\"\n * @param defaultValue default value if the result is not \"truthy\"\n */\n getLocaleData(path, defaultValue) {\n const result = path ? this._getObjectPath(this._locale, path) : this._locale;\n if (!result && !defaultValue) {\n warn(`Missing translations for \"${path}\" in language \"${this._locale.locale}\".\nYou can use \"NzI18nService.setLocale\" as a temporary fix.\nWelcome to submit a pull request to help us optimize the translations!\nhttps://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md`);\n }\n return result || defaultValue || this._getObjectPath(en_US, path) || {};\n }\n _getObjectPath(obj, path) {\n let res = obj;\n const paths = path.split('.');\n const depth = paths.length;\n let index = 0;\n while (res && index < depth) {\n res = res[paths[index++]];\n }\n return index === depth ? res : null;\n }\n static {\n this.ɵfac = function NzI18nService_Factory(t) {\n return new (t || NzI18nService)(i0.ɵɵinject(NZ_I18N, 8), i0.ɵɵinject(NZ_DATE_LOCALE, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzI18nService,\n factory: NzI18nService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzI18nService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NZ_I18N]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NZ_DATE_LOCALE]\n }]\n }], null);\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 NzI18nPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n transform(path, keyValue) {\n return this._locale.translate(path, keyValue);\n }\n static {\n this.ɵfac = function NzI18nPipe_Factory(t) {\n return new (t || NzI18nPipe)(i0.ɵɵdirectiveInject(NzI18nService, 16));\n };\n }\n static {\n this.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"nzI18n\",\n type: NzI18nPipe,\n pure: true,\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzI18nPipe, [{\n type: Pipe,\n args: [{\n name: 'nzI18n',\n standalone: true\n }]\n }], () => [{\n type: NzI18nService\n }], null);\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 NzI18nModule {\n static {\n this.ɵfac = function NzI18nModule_Factory(t) {\n return new (t || NzI18nModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzI18nModule,\n imports: [NzI18nPipe],\n exports: [NzI18nPipe]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzI18nModule, [{\n type: NgModule,\n args: [{\n imports: [NzI18nPipe],\n exports: [NzI18nPipe]\n }]\n }], null, null);\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 NZ_DATE_CONFIG = new InjectionToken('date-config');\nconst NZ_DATE_CONFIG_DEFAULT = {\n firstDayOfWeek: undefined\n};\nfunction mergeDateConfig(config) {\n return {\n ...NZ_DATE_CONFIG_DEFAULT,\n ...config\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 * 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 */\nfunction DATE_HELPER_SERVICE_FACTORY() {\n const i18n = inject(NzI18nService);\n const config = inject(NZ_DATE_CONFIG, {\n optional: true\n });\n return i18n.getDateLocale() ? new DateHelperByDateFns(i18n, config) : new DateHelperByDatePipe(i18n, config);\n}\n/**\n * Abstract DateHelperService(Token via Class)\n * Compatibility: compact for original usage by default which using DatePipe\n */\nclass DateHelperService {\n constructor(i18n, config) {\n this.i18n = i18n;\n this.config = mergeDateConfig(config);\n }\n static {\n this.ɵfac = function DateHelperService_Factory(t) {\n return new (t || DateHelperService)(i0.ɵɵinject(NzI18nService), i0.ɵɵinject(NZ_DATE_CONFIG, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DateHelperService,\n factory: () => DATE_HELPER_SERVICE_FACTORY(),\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DateHelperService, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: DATE_HELPER_SERVICE_FACTORY\n }]\n }], () => [{\n type: NzI18nService\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NZ_DATE_CONFIG]\n }]\n }], null);\n})();\n/**\n * DateHelper that handles date formats with date-fns\n */\nclass DateHelperByDateFns extends DateHelperService {\n getISOWeek(date) {\n return getISOWeek(date);\n }\n // Use date-fns's \"weekStartsOn\" to support different locale when \"config.firstDayOfWeek\" is null\n // https://github.com/date-fns/date-fns/blob/v2.0.0-alpha.27/src/locale/en-US/index.js#L23\n getFirstDayOfWeek() {\n let defaultWeekStartsOn;\n try {\n defaultWeekStartsOn = this.i18n.getDateLocale().options.weekStartsOn;\n } catch (e) {\n defaultWeekStartsOn = 1;\n }\n return this.config.firstDayOfWeek == null ? defaultWeekStartsOn : this.config.firstDayOfWeek;\n }\n /**\n * Format a date\n *\n * @see https://date-fns.org/docs/format#description\n * @param date Date\n * @param formatStr format string\n */\n format(date, formatStr) {\n return date ? format(date, formatStr, {\n locale: this.i18n.getDateLocale()\n }) : '';\n }\n parseDate(text, formatStr) {\n return parse(text, formatStr, new Date(), {\n locale: this.i18n.getDateLocale(),\n weekStartsOn: this.getFirstDayOfWeek()\n });\n }\n parseTime(text, formatStr) {\n return this.parseDate(text, formatStr);\n }\n}\n/**\n * DateHelper that handles date formats with angular's date-pipe\n *\n * @see https://github.com/NG-ZORRO/ng-zorro-antd/issues/2406 - DatePipe may cause non-standard week bug, see:\n *\n */\nclass DateHelperByDatePipe extends DateHelperService {\n getISOWeek(date) {\n return +this.format(date, 'w');\n }\n getFirstDayOfWeek() {\n if (this.config.firstDayOfWeek === undefined) {\n const locale = this.i18n.getLocaleId();\n return locale && ['zh-cn', 'zh-tw'].indexOf(locale.toLowerCase()) > -1 ? 1 : 0;\n }\n return this.config.firstDayOfWeek;\n }\n format(date, formatStr) {\n return date ? formatDate(date, formatStr, this.i18n.getLocaleId()) : '';\n }\n parseDate(text) {\n return new Date(text);\n }\n parseTime(text, formatStr) {\n const parser = new _NgTimeParser(formatStr, this.i18n.getLocaleId());\n return parser.toDate(text);\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 */\nvar ar_EG = {\n locale: 'ar',\n Pagination: {\n items_per_page: '/ الصفحة',\n jump_to: 'الذهاب إلى',\n jump_to_confirm: 'تأكيد',\n page: 'الصفحة',\n prev_page: 'الصفحة السابقة',\n next_page: 'الصفحة التالية',\n prev_5: 'خمس صفحات سابقة',\n next_5: 'خمس صفحات تالية',\n prev_3: 'ثلاث صفحات سابقة',\n next_3: 'ثلاث صفحات تالية',\n page_size: 'مقاس الصفحه'\n },\n DatePicker: {\n lang: {\n placeholder: 'اختيار التاريخ',\n yearPlaceholder: 'اختيار السنة',\n quarterPlaceholder: 'اختيار الربع',\n monthPlaceholder: 'اختيار الشهر',\n weekPlaceholder: 'اختيار الأسبوع',\n rangePlaceholder: ['البداية', 'النهاية'],\n rangeYearPlaceholder: ['سنة البداية', 'سنة النهاية'],\n rangeMonthPlaceholder: ['شهر البداية', 'شهر النهاية'],\n rangeWeekPlaceholder: ['أسبوع البداية', 'أسبوع النهاية'],\n locale: 'ar_EG',\n today: 'اليوم',\n now: 'الأن',\n backToToday: 'العودة إلى اليوم',\n ok: 'تأكيد',\n clear: 'مسح',\n month: 'الشهر',\n year: 'السنة',\n timeSelect: 'اختيار الوقت',\n dateSelect: 'اختيار التاريخ',\n weekSelect: 'اختيار الأسبوع',\n monthSelect: 'اختيار الشهر',\n yearSelect: 'اختيار السنة',\n decadeSelect: 'اختيار العقد',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'الشهر السابق (PageUp)',\n nextMonth: 'الشهر التالى(PageDown)',\n previousYear: 'العام السابق (Control + left)',\n nextYear: 'العام التالى (Control + right)',\n previousDecade: 'العقد السابق',\n nextDecade: 'العقد التالى',\n previousCentury: 'القرن السابق',\n nextCentury: 'القرن التالى'\n },\n timePickerLocale: {\n placeholder: 'اختيار الوقت'\n },\n dateFormat: 'DD-MM-YYYY',\n monthFormat: 'MM-YYYY',\n dateTimeFormat: 'DD-MM-YYYY HH:mm:ss',\n weekFormat: 'wo-YYYY'\n },\n TimePicker: {\n placeholder: 'اختيار الوقت'\n },\n Calendar: {\n lang: {\n placeholder: 'اختيار التاريخ',\n yearPlaceholder: 'اختيار السنة',\n quarterPlaceholder: 'اختيار الربع',\n monthPlaceholder: 'اختيار الشهر',\n weekPlaceholder: 'اختيار الأسبوع',\n rangePlaceholder: ['البداية', 'النهاية'],\n rangeYearPlaceholder: ['سنة البداية', 'سنة النهاية'],\n rangeMonthPlaceholder: ['شهر البداية', 'شهر النهاية'],\n rangeWeekPlaceholder: ['أسبوع البداية', 'أسبوع النهاية'],\n locale: 'ar_EG',\n today: 'اليوم',\n now: 'الأن',\n backToToday: 'العودة إلى اليوم',\n ok: 'تأكيد',\n clear: 'مسح',\n month: 'الشهر',\n year: 'السنة',\n timeSelect: 'اختيار الوقت',\n dateSelect: 'اختيار التاريخ',\n weekSelect: 'اختيار الأسبوع',\n monthSelect: 'اختيار الشهر',\n yearSelect: 'اختيار السنة',\n decadeSelect: 'اختيار العقد',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'الشهر السابق (PageUp)',\n nextMonth: 'الشهر التالى(PageDown)',\n previousYear: 'العام السابق (Control + left)',\n nextYear: 'العام التالى (Control + right)',\n previousDecade: 'العقد السابق',\n nextDecade: 'العقد التالى',\n previousCentury: 'القرن السابق',\n nextCentury: 'القرن التالى'\n },\n timePickerLocale: {\n placeholder: 'اختيار الوقت'\n },\n dateFormat: 'DD-MM-YYYY',\n monthFormat: 'MM-YYYY',\n dateTimeFormat: 'DD-MM-YYYY HH:mm:ss',\n weekFormat: 'wo-YYYY'\n },\n global: {\n placeholder: 'يرجى التحديد'\n },\n Table: {\n filterTitle: 'الفلاتر',\n filterConfirm: 'تأكيد',\n filterReset: 'إعادة ضبط',\n selectAll: 'اختيار الكل',\n selectInvert: 'إلغاء الاختيار',\n selectionAll: 'حدد جميع البيانات',\n sortTitle: 'رتب',\n expand: 'توسيع الصف',\n collapse: 'طي الصف',\n triggerDesc: 'ترتيب تنازلي',\n triggerAsc: 'ترتيب تصاعدي',\n cancelSort: 'إلغاء الترتيب'\n },\n Modal: {\n okText: 'تأكيد',\n cancelText: 'إلغاء',\n justOkText: 'تأكيد'\n },\n Popconfirm: {\n okText: 'تأكيد',\n cancelText: 'إلغاء'\n },\n Transfer: {\n searchPlaceholder: 'ابحث هنا',\n itemUnit: 'عنصر',\n itemsUnit: 'عناصر'\n },\n Upload: {\n uploading: 'جاري الرفع...',\n removeFile: 'احذف الملف',\n uploadError: 'مشكلة فى الرفع',\n previewFile: 'استعرض الملف',\n downloadFile: 'تحميل الملف'\n },\n Empty: {\n description: 'لا توجد بيانات'\n },\n Icon: {\n icon: 'أيقونة'\n },\n Text: {\n edit: 'تعديل',\n copy: 'نسخ',\n copied: 'نقل',\n expand: 'وسع'\n },\n PageHeader: {\n back: 'عودة'\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 */\nvar az_AZ = {\n locale: 'az',\n Pagination: {\n items_per_page: '/ səhifə',\n jump_to: 'Get',\n jump_to_confirm: 'təsdiqlə',\n page: '',\n prev_page: 'Əvvəlki Səhifə',\n next_page: 'Növbəti Səhifə',\n prev_5: 'Əvvəlki 5 Səhifə',\n next_5: 'Növbəti 5 Səhifə',\n prev_3: 'Əvvəlki 3 Səhifə',\n next_3: 'Növbəti 3 Səhifə',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Tarix seçin',\n rangePlaceholder: ['Başlama tarixi', 'Bitmə tarixi'],\n locale: 'az_AZ',\n today: 'Bugün',\n now: 'İndi',\n backToToday: 'Bugünə qayıt',\n ok: 'Təsdiq',\n clear: 'Təmizlə',\n month: 'Ay',\n year: 'İl',\n timeSelect: 'vaxtı seç',\n dateSelect: 'tarixi seç',\n weekSelect: 'Həftə seç',\n monthSelect: 'Ay seç',\n yearSelect: 'il seç',\n decadeSelect: 'Onillik seçin',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Əvvəlki ay (PageUp)',\n nextMonth: 'Növbəti ay (PageDown)',\n previousYear: 'Sonuncu il (Control + left)',\n nextYear: 'Növbəti il (Control + right)',\n previousDecade: 'Sonuncu onillik',\n nextDecade: 'Növbəti onillik',\n previousCentury: 'Sonuncu əsr',\n nextCentury: 'Növbəti əsr'\n },\n timePickerLocale: {\n placeholder: 'Vaxtı seç'\n }\n },\n TimePicker: {\n placeholder: 'Vaxtı seç'\n },\n Calendar: {\n lang: {\n placeholder: 'Tarix seçin',\n rangePlaceholder: ['Başlama tarixi', 'Bitmə tarixi'],\n locale: 'az_AZ',\n today: 'Bugün',\n now: 'İndi',\n backToToday: 'Bugünə qayıt',\n ok: 'Təsdiq',\n clear: 'Təmizlə',\n month: 'Ay',\n year: 'İl',\n timeSelect: 'vaxtı seç',\n dateSelect: 'tarixi seç',\n weekSelect: 'Həftə seç',\n monthSelect: 'Ay seç',\n yearSelect: 'il seç',\n decadeSelect: 'Onillik seçin',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Əvvəlki ay (PageUp)',\n nextMonth: 'Növbəti ay (PageDown)',\n previousYear: 'Sonuncu il (Control + left)',\n nextYear: 'Növbəti il (Control + right)',\n previousDecade: 'Sonuncu onillik',\n nextDecade: 'Növbəti onillik',\n previousCentury: 'Sonuncu əsr',\n nextCentury: 'Növbəti əsr'\n },\n timePickerLocale: {\n placeholder: 'Vaxtı seç'\n }\n },\n Table: {\n filterTitle: 'Filter menyu',\n filterConfirm: 'Axtar',\n filterReset: 'Sıfırla',\n emptyText: 'Məlumat yoxdur',\n selectAll: 'Cari səhifəni seç',\n selectInvert: 'Invert current page'\n },\n Modal: {\n okText: 'Bəli',\n cancelText: 'Ləğv et',\n justOkText: 'Bəli'\n },\n Popconfirm: {\n okText: 'Bəli',\n cancelText: 'Ləğv et'\n },\n Transfer: {\n titles: ['', ''],\n notFoundContent: 'Tapılmadı',\n searchPlaceholder: 'Burada axtar',\n itemUnit: 'item',\n itemsUnit: 'items'\n },\n Select: {\n notFoundContent: 'Tapılmadı'\n },\n Upload: {\n uploading: 'Yüklənir...',\n removeFile: 'Faylı sil',\n uploadError: 'Yükləmə xətası',\n previewFile: 'Fayla önbaxış'\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 */\nvar bg_BG = {\n locale: 'bg',\n Pagination: {\n items_per_page: '/ страница',\n jump_to: 'Към',\n jump_to_confirm: 'потвърждавам',\n page: '',\n prev_page: 'Предишна страница',\n next_page: 'Следваща страница',\n prev_5: 'Предишни 5 страници',\n next_5: 'Следващи 5 страници',\n prev_3: 'Предишни 3 страници',\n next_3: 'Следващи 3 страници',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Избор на дата',\n rangePlaceholder: ['Начална', 'Крайна'],\n locale: 'bg_BG',\n today: 'Днес',\n now: 'Сега',\n backToToday: 'Към днес',\n ok: 'Добре',\n clear: 'Изчистване',\n month: 'Месец',\n year: 'Година',\n timeSelect: 'Избор на час',\n dateSelect: 'Избор на дата',\n monthSelect: 'Избор на месец',\n yearSelect: 'Избор на година',\n decadeSelect: 'Десетилетие',\n yearFormat: 'YYYY',\n dateFormat: 'D M YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D M YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Предишен месец (PageUp)',\n nextMonth: 'Следващ месец (PageDown)',\n previousYear: 'Последна година (Control + left)',\n nextYear: 'Следваща година (Control + right)',\n previousDecade: 'Предишно десетилетие',\n nextDecade: 'Следващо десетилетие',\n previousCentury: 'Последен век',\n nextCentury: 'Следващ век'\n },\n timePickerLocale: {\n placeholder: 'Избор на час'\n }\n },\n TimePicker: {\n placeholder: 'Избор на час'\n },\n Calendar: {\n lang: {\n placeholder: 'Избор на дата',\n rangePlaceholder: ['Начална', 'Крайна'],\n locale: 'bg_BG',\n today: 'Днес',\n now: 'Сега',\n backToToday: 'Към днес',\n ok: 'Добре',\n clear: 'Изчистване',\n month: 'Месец',\n year: 'Година',\n timeSelect: 'Избор на час',\n dateSelect: 'Избор на дата',\n monthSelect: 'Избор на месец',\n yearSelect: 'Избор на година',\n decadeSelect: 'Десетилетие',\n yearFormat: 'YYYY',\n dateFormat: 'D M YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D M YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Предишен месец (PageUp)',\n nextMonth: 'Следващ месец (PageDown)',\n previousYear: 'Последна година (Control + left)',\n nextYear: 'Следваща година (Control + right)',\n previousDecade: 'Предишно десетилетие',\n nextDecade: 'Следващо десетилетие',\n previousCentury: 'Последен век',\n nextCentury: 'Следващ век'\n },\n timePickerLocale: {\n placeholder: 'Избор на час'\n }\n },\n Table: {\n filterTitle: 'Филтриране',\n filterConfirm: 'Добре',\n filterReset: 'Нулриане',\n selectAll: 'Избор на текуща страница',\n selectInvert: 'Обръщане'\n },\n Modal: {\n okText: 'Добре',\n cancelText: 'Отказ',\n justOkText: 'Добре'\n },\n Popconfirm: {\n okText: 'Добре',\n cancelText: 'Отказ'\n },\n Transfer: {\n searchPlaceholder: 'Търсене',\n itemUnit: 'избор',\n itemsUnit: 'избори'\n },\n Upload: {\n uploading: 'Качване...',\n removeFile: 'Премахване',\n uploadError: 'Грешка при качването',\n previewFile: 'Преглед',\n downloadFile: 'Свали файл'\n },\n Empty: {\n description: 'Няма данни'\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 */\nvar bn_BD = {\n locale: 'bn-bd',\n Pagination: {\n items_per_page: '/ পৃষ্ঠা',\n jump_to: 'যাও',\n jump_to_confirm: 'নিশ্চিত',\n page: 'পৃষ্ঠা',\n prev_page: 'আগের পৃষ্ঠা',\n next_page: 'পরের পৃষ্ঠা',\n prev_5: 'পূর্ববর্তী ৫ পৃষ্ঠা',\n next_5: 'পরবর্তী ৫ পৃষ্ঠা',\n prev_3: 'পূর্ববর্তী ৩ পৃষ্ঠা',\n next_3: 'পরবর্তী ৩ পৃষ্ঠা',\n page_size: 'পাতার আকার'\n },\n DatePicker: {\n lang: {\n placeholder: 'তারিখ নির্বাচন',\n yearPlaceholder: 'বছর নির্বাচন',\n quarterPlaceholder: 'কোয়ার্টার নির্বাচন',\n monthPlaceholder: 'মাস নির্বাচন',\n weekPlaceholder: 'সপ্তাহ নির্বাচন',\n rangePlaceholder: ['শুরুর তারিখ', 'শেষ তারিখ'],\n rangeYearPlaceholder: ['শুরুর বছর', 'শেষ বছর'],\n rangeMonthPlaceholder: ['শুরুর মাস', 'শেষ মাস'],\n rangeWeekPlaceholder: ['শুরুর সপ্তাহ', 'শেষ সপ্তাহ'],\n locale: 'bn_BD',\n today: 'আজ',\n now: 'এখন',\n backToToday: 'আজকে ফিরে চলুন',\n ok: 'ওকে',\n clear: 'পরিস্কার',\n month: 'মাস',\n year: 'বছর',\n timeSelect: 'সময় নির্বাচন',\n dateSelect: 'তারিখ নির্বাচন',\n weekSelect: 'সপ্তাহ পছন্দ করুন',\n monthSelect: 'মাস পছন্দ করুন',\n yearSelect: 'বছর পছন্দ করুন',\n decadeSelect: 'একটি দশক পছন্দ করুন',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'গত মাস (PageUp)',\n nextMonth: 'আগামী মাস (PageDown)',\n previousYear: 'গত বছর (Control + left)',\n nextYear: 'আগামী বছর (Control + right)',\n previousDecade: 'গত দশক',\n nextDecade: 'পরের দশক',\n previousCentury: 'গত শতাব্দী',\n nextCentury: 'পরের শতাব্দী'\n },\n timePickerLocale: {\n placeholder: 'সময় নির্বাচন',\n rangePlaceholder: ['সময় শুরু', 'শেষ সময়']\n }\n },\n TimePicker: {\n placeholder: 'সময় নির্বাচন',\n rangePlaceholder: ['সময় শুরু', 'শেষ সময়']\n },\n Calendar: {\n lang: {\n placeholder: 'তারিখ নির্বাচন',\n yearPlaceholder: 'বছর নির্বাচন',\n quarterPlaceholder: 'কোয়ার্টার নির্বাচন',\n monthPlaceholder: 'মাস নির্বাচন',\n weekPlaceholder: 'সপ্তাহ নির্বাচন',\n rangePlaceholder: ['শুরুর তারিখ', 'শেষ তারিখ'],\n rangeYearPlaceholder: ['শুরুর বছর', 'শেষ বছর'],\n rangeMonthPlaceholder: ['শুরুর মাস', 'শেষ মাস'],\n rangeWeekPlaceholder: ['শুরুর সপ্তাহ', 'শেষ সপ্তাহ'],\n locale: 'bn_BD',\n today: 'আজ',\n now: 'এখন',\n backToToday: 'আজকে ফিরে চলুন',\n ok: 'ওকে',\n clear: 'পরিস্কার',\n month: 'মাস',\n year: 'বছর',\n timeSelect: 'সময় নির্বাচন',\n dateSelect: 'তারিখ নির্বাচন',\n weekSelect: 'সপ্তাহ পছন্দ করুন',\n monthSelect: 'মাস পছন্দ করুন',\n yearSelect: 'বছর পছন্দ করুন',\n decadeSelect: 'একটি দশক পছন্দ করুন',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'গত মাস (PageUp)',\n nextMonth: 'আগামী মাস (PageDown)',\n previousYear: 'গত বছর (Control + left)',\n nextYear: 'আগামী বছর (Control + right)',\n previousDecade: 'গত দশক',\n nextDecade: 'পরের দশক',\n previousCentury: 'গত শতাব্দী',\n nextCentury: 'পরের শতাব্দী'\n },\n timePickerLocale: {\n placeholder: 'সময় নির্বাচন',\n rangePlaceholder: ['সময় শুরু', 'শেষ সময়']\n }\n },\n global: {\n placeholder: 'অনুগ্রহ করে নির্বাচন করুন'\n },\n Table: {\n filterTitle: 'ফিল্টার মেনু',\n filterConfirm: 'ঠিক',\n filterReset: 'রিসেট',\n filterEmptyText: 'ফিল্টার নেই',\n emptyText: 'কোনও ডেটা নেই',\n selectAll: 'বর্তমান পৃষ্ঠা নির্বাচন করুন',\n selectInvert: 'বর্তমান পৃষ্ঠাটি উল্টে দিন',\n selectNone: 'সমস্ত ডেটা সাফ করুন',\n selectionAll: 'সমস্ত ডেটা নির্বাচন করুন',\n sortTitle: 'সাজান',\n expand: 'সারি প্রসারিত করুন',\n collapse: 'সারি সঙ্কুচিত করুন',\n triggerDesc: 'অবতরণকে সাজানোর জন্য ক্লিক করুন',\n triggerAsc: 'আরোহী বাছাই করতে ক্লিক করুন',\n cancelSort: 'বাছাই বাতিল করতে ক্লিক করুন'\n },\n Modal: {\n okText: 'ঠিক',\n cancelText: 'বাতিল',\n justOkText: 'ঠিক'\n },\n Popconfirm: {\n okText: 'ঠিক',\n cancelText: 'বাতিল'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'এখানে অনুসন্ধান',\n itemUnit: 'আইটেম',\n itemsUnit: 'আইটেমসমূহ',\n remove: 'অপসারণ',\n selectCurrent: 'বর্তমান পৃষ্ঠা নির্বাচন করুন',\n removeCurrent: 'বর্তমান পৃষ্ঠাটি সরান',\n selectAll: 'সমস্ত ডেটা নির্বাচন করুন',\n removeAll: 'সমস্ত ডেটা সরান',\n selectInvert: 'বর্তমান পৃষ্ঠাটি উল্টে দিন'\n },\n Upload: {\n uploading: 'আপলোড হচ্ছে ...',\n removeFile: 'ফাইল সরান',\n uploadError: 'আপলোডে সমস্যা',\n previewFile: 'ফাইলের পূর্বরূপ',\n downloadFile: 'ফাইল ডাউনলোড'\n },\n Empty: {\n description: 'কোনও ডেটা নেই'\n },\n Icon: {\n icon: 'আইকন'\n },\n Text: {\n edit: 'সম্পাদনা',\n copy: 'অনুলিপি',\n copied: 'অনুলিপি হয়েছে',\n expand: 'বিস্তৃত করা'\n },\n PageHeader: {\n back: 'পেছনে'\n },\n Image: {\n preview: 'পূর্বরূপ'\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 */\nvar by_BY = {\n locale: 'by',\n Pagination: {\n items_per_page: '/старонка',\n jump_to: 'Перайсці',\n jump_to_confirm: 'Пацвердзіць',\n page: '',\n prev_page: 'Назад',\n next_page: 'Наперад',\n prev_5: 'Папярэднія 5',\n next_5: 'Наступныя 5',\n prev_3: 'Папярэднія 3',\n next_3: 'Наступныя 3',\n page_size: 'памер старонкі'\n },\n DatePicker: {\n lang: {\n placeholder: 'Выберыце дату',\n yearPlaceholder: 'Выберыце год',\n quarterPlaceholder: 'Выберыце квартал',\n monthPlaceholder: 'Выберыце месяц',\n weekPlaceholder: 'Выберыце тыдзень',\n rangePlaceholder: ['Пачатковая дата', 'Канчатковая дата'],\n rangeYearPlaceholder: ['Пачатковы год', 'Год заканчэння'],\n rangeMonthPlaceholder: ['Пачатковы месяц', 'Канчатковы месяц'],\n rangeWeekPlaceholder: ['Пачатковы тыдзень', 'Канчатковы тыдзень'],\n locale: 'by_BY',\n today: 'Сёння',\n now: 'Зараз',\n backToToday: 'Дадзеная дата',\n ok: 'Ok',\n clear: 'Ачысціць',\n month: 'Месяц',\n year: 'Год',\n timeSelect: 'Выбраць час',\n dateSelect: 'Выбраць дату',\n weekSelect: 'Выбраць тыдзень',\n monthSelect: 'Выбраць месяц',\n yearSelect: 'Выбраць год',\n decadeSelect: 'Выбраць дзесяцігоддзе',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Папярэдні месяц (PageUp)',\n nextMonth: 'Наступны месяц (PageDown)',\n previousYear: 'Папярэдні год (Control + left)',\n nextYear: 'Наступны год (Control + right)',\n previousDecade: 'Папярэдняе дзесяцігоддзе',\n nextDecade: 'Наступнае дзесяцігоддзе',\n previousCentury: 'Папярэдні век',\n nextCentury: 'Наступны век'\n },\n timePickerLocale: {\n placeholder: 'Выберыце час',\n rangePlaceholder: ['Час пачатку', 'Час заканчэння']\n }\n },\n TimePicker: {\n placeholder: 'Выберыце час',\n rangePlaceholder: ['Час пачатку', 'Час заканчэння']\n },\n Calendar: {\n lang: {\n placeholder: 'Выберыце дату',\n yearPlaceholder: 'Выберыце год',\n quarterPlaceholder: 'Выберыце квартал',\n monthPlaceholder: 'Выберыце месяц',\n weekPlaceholder: 'Выберыце тыдзень',\n rangePlaceholder: ['Пачатковая дата', 'Канчатковая дата'],\n rangeYearPlaceholder: ['Пачатковы год', 'Год заканчэння'],\n rangeMonthPlaceholder: ['Пачатковы месяц', 'Канчатковы месяц'],\n rangeWeekPlaceholder: ['Пачатковы тыдзень', 'Канчатковы тыдзень'],\n locale: 'by_BY',\n today: 'Сёння',\n now: 'Зараз',\n backToToday: 'Дадзеная дата',\n ok: 'Ok',\n clear: 'Ачысціць',\n month: 'Месяц',\n year: 'Год',\n timeSelect: 'Выбраць час',\n dateSelect: 'Выбраць дату',\n weekSelect: 'Выбраць тыдзень',\n monthSelect: 'Выбраць месяц',\n yearSelect: 'Выбраць год',\n decadeSelect: 'Выбраць дзесяцігоддзе',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Папярэдні месяц (PageUp)',\n nextMonth: 'Наступны месяц (PageDown)',\n previousYear: 'Папярэдні год (Control + left)',\n nextYear: 'Наступны год (Control + right)',\n previousDecade: 'Папярэдняе дзесяцігоддзе',\n nextDecade: 'Наступнае дзесяцігоддзе',\n previousCentury: 'Папярэдні век',\n nextCentury: 'Наступны век'\n },\n timePickerLocale: {\n placeholder: 'Выберыце час',\n rangePlaceholder: ['Час пачатку', 'Час заканчэння']\n }\n },\n global: {\n placeholder: 'Калі ласка выберыце'\n },\n Table: {\n filterTitle: 'Фільтр',\n filterConfirm: 'OK',\n filterReset: 'Скінуць',\n filterEmptyText: 'Без фільтраў',\n emptyText: 'Няма дадзеных',\n selectAll: 'Выбраць усе',\n selectInvert: 'Інвертаваць выбар',\n selectionAll: 'Выбраць усе дадзеныя',\n sortTitle: 'Сартаванне',\n expand: 'Разгарнуць радок',\n collapse: 'Згарнуць радок',\n triggerDesc: 'Націсніце для сартавання па змяншэнні',\n triggerAsc: 'Націсніце для сартавання па ўзросту',\n cancelSort: 'Націсніце, каб адмяніць сартаванне'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Адмена',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Адмена'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Пошук',\n itemUnit: 'элем.',\n itemsUnit: 'элем.',\n remove: 'Выдаліць',\n selectAll: 'Выбраць усе дадзеныя',\n selectCurrent: 'Вылучыць дадзеную старонку',\n selectInvert: 'Паказаць у зваротным парадку',\n removeAll: 'Выдаліць усе дадзеныя',\n removeCurrent: 'Выдаліць дадзеную старонку'\n },\n Upload: {\n uploading: 'Загрузка...',\n removeFile: 'Выдаліць файл',\n uploadError: 'Адбылася памылка пры загрузцы',\n previewFile: 'Прадпрагляд файла',\n downloadFile: 'Загрузіць файл'\n },\n Empty: {\n description: 'Няма дадзеных'\n },\n Icon: {\n icon: 'Іконка'\n },\n Text: {\n edit: 'Рэдагаваць',\n copy: 'Капіяваць',\n copied: 'Капіяванне завершана',\n expand: 'Разгарнуць'\n },\n PageHeader: {\n back: 'Назад'\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 */\nvar ca_ES = {\n locale: 'ca',\n Pagination: {\n items_per_page: '/ pàgina',\n jump_to: 'Anar a',\n jump_to_confirm: 'Confirma',\n page: '',\n prev_page: 'Pàgina prèvia',\n next_page: 'Pàgina següent',\n prev_5: '5 pàgines prèvies',\n next_5: '5 pàgines següents',\n prev_3: '3 pàgines prèvies',\n next_3: '3 pàgines següents',\n page_size: 'mida de la pàgina'\n },\n DatePicker: {\n lang: {\n placeholder: 'Seleccionar data',\n rangePlaceholder: ['Data inicial', 'Data final'],\n locale: 'ca_ES',\n today: 'Avui',\n now: 'Ara',\n backToToday: 'Tornar a avui',\n ok: 'Acceptar',\n clear: 'Netejar',\n month: 'Mes',\n year: 'Any',\n timeSelect: 'Seleccionar hora',\n dateSelect: 'Seleccionar data',\n monthSelect: 'Escollir un mes',\n yearSelect: 'Escollir un any',\n decadeSelect: 'Escollir una dècada',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mes anterior (PageUp)',\n nextMonth: 'Mes següent (PageDown)',\n previousYear: 'Any anterior (Control + left)',\n nextYear: 'Mes següent (Control + right)',\n previousDecade: 'Dècada anterior',\n nextDecade: 'Dècada següent',\n previousCentury: 'Segle anterior',\n nextCentury: 'Segle següent'\n },\n timePickerLocale: {\n placeholder: 'Seleccionar hora'\n }\n },\n TimePicker: {\n placeholder: 'Seleccionar hora'\n },\n Calendar: {\n lang: {\n placeholder: 'Seleccionar data',\n rangePlaceholder: ['Data inicial', 'Data final'],\n locale: 'ca_ES',\n today: 'Avui',\n now: 'Ara',\n backToToday: 'Tornar a avui',\n ok: 'Acceptar',\n clear: 'Netejar',\n month: 'Mes',\n year: 'Any',\n timeSelect: 'Seleccionar hora',\n dateSelect: 'Seleccionar data',\n monthSelect: 'Escollir un mes',\n yearSelect: 'Escollir un any',\n decadeSelect: 'Escollir una dècada',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mes anterior (PageUp)',\n nextMonth: 'Mes següent (PageDown)',\n previousYear: 'Any anterior (Control + left)',\n nextYear: 'Mes següent (Control + right)',\n previousDecade: 'Dècada anterior',\n nextDecade: 'Dècada següent',\n previousCentury: 'Segle anterior',\n nextCentury: 'Segle següent'\n },\n timePickerLocale: {\n placeholder: 'Seleccionar hora'\n }\n },\n global: {\n placeholder: 'Seleccionar'\n },\n Table: {\n filterTitle: 'Filtrar el menú',\n filterConfirm: 'D’acord',\n filterReset: 'Reiniciar',\n filterEmptyText: 'Sense filtres',\n selectAll: 'Seleccionar la pàgina actual',\n selectInvert: 'Invertir la selecció',\n selectionAll: 'Seleccionar-ho tot',\n sortTitle: 'Ordenar',\n expand: 'Ampliar la fila',\n collapse: 'Plegar la fila',\n triggerDesc: 'Ordre descendent',\n triggerAsc: 'Ordre ascendent',\n cancelSort: 'Desactivar l’ordre'\n },\n Modal: {\n okText: 'D’acord',\n cancelText: 'Cancel·lar',\n justOkText: 'D’acord'\n },\n Popconfirm: {\n okText: 'D’acord',\n cancelText: 'Cancel·lar'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Cercar',\n itemUnit: 'ítem',\n itemsUnit: 'ítems',\n remove: 'Eliminar',\n selectCurrent: 'Seleccionar la pàgina actual',\n removeCurrent: 'Eliminar la selecció',\n selectAll: 'Seleccionar-ho tot',\n removeAll: 'Eliminar-ho tot',\n selectInvert: 'Invertir la selecció'\n },\n Upload: {\n uploading: 'Carregant…',\n removeFile: 'Eliminar el fitxer',\n uploadError: 'Error de càrrega',\n previewFile: 'Vista prèvia del fitxer',\n downloadFile: 'Baixar el fitxer'\n },\n Empty: {\n description: 'Sense dades'\n },\n Icon: {\n icon: 'icona'\n },\n Text: {\n edit: 'Editar',\n copy: 'Copiar',\n copied: 'Copiat',\n expand: 'Ampliar'\n },\n PageHeader: {\n back: 'Enrere'\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 */\nvar cs_CZ = {\n locale: 'cs',\n Pagination: {\n items_per_page: '/ strana',\n jump_to: 'Přejít',\n jump_to_confirm: 'potvrdit',\n page: '',\n prev_page: 'Předchozí strana',\n next_page: 'Následující strana',\n prev_5: 'Předchozích 5 stran',\n next_5: 'Následujících 5 stran',\n prev_3: 'Předchozí 3 strany',\n next_3: 'Následující 3 strany',\n page_size: 'velikost stránky'\n },\n DatePicker: {\n lang: {\n placeholder: 'Vybrat datum',\n rangePlaceholder: ['Od', 'Do'],\n locale: 'cs_CZ',\n today: 'Dnes',\n now: 'Nyní',\n backToToday: 'Zpět na dnešek',\n ok: 'Ok',\n clear: 'Vymazat',\n month: 'Měsíc',\n year: 'Rok',\n timeSelect: 'Vybrat čas',\n dateSelect: 'Vybrat datum',\n monthSelect: 'Vyberte měsíc',\n yearSelect: 'Vyberte rok',\n decadeSelect: 'Vyberte dekádu',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Předchozí měsíc (PageUp)',\n nextMonth: 'Následující (PageDown)',\n previousYear: 'Předchozí rok (Control + left)',\n nextYear: 'Následující rok (Control + right)',\n previousDecade: 'Předchozí dekáda',\n nextDecade: 'Následující dekáda',\n previousCentury: 'Předchozí století',\n nextCentury: 'Následující století'\n },\n timePickerLocale: {\n placeholder: 'Vybrat čas'\n }\n },\n TimePicker: {\n placeholder: 'Vybrat čas'\n },\n Calendar: {\n lang: {\n placeholder: 'Vybrat datum',\n rangePlaceholder: ['Od', 'Do'],\n locale: 'cs_CZ',\n today: 'Dnes',\n now: 'Nyní',\n backToToday: 'Zpět na dnešek',\n ok: 'Ok',\n clear: 'Vymazat',\n month: 'Měsíc',\n year: 'Rok',\n timeSelect: 'Vybrat čas',\n dateSelect: 'Vybrat datum',\n monthSelect: 'Vyberte měsíc',\n yearSelect: 'Vyberte rok',\n decadeSelect: 'Vyberte dekádu',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Předchozí měsíc (PageUp)',\n nextMonth: 'Následující (PageDown)',\n previousYear: 'Předchozí rok (Control + left)',\n nextYear: 'Následující rok (Control + right)',\n previousDecade: 'Předchozí dekáda',\n nextDecade: 'Následující dekáda',\n previousCentury: 'Předchozí století',\n nextCentury: 'Následující století'\n },\n timePickerLocale: {\n placeholder: 'Vybrat čas'\n }\n },\n global: {\n placeholder: 'Prosím vyber'\n },\n Table: {\n filterTitle: 'Filtr',\n filterConfirm: 'Potvrdit',\n filterReset: 'Obnovit',\n filterEmptyText: 'Žádné filtry',\n selectAll: 'Vybrat všechny řádky na současné stránce',\n selectInvert: 'Invertovat výběr na současné stránce',\n selectionAll: 'Vybrat všechny řádky',\n sortTitle: 'Řadit',\n expand: 'Rozbalit řádek',\n collapse: 'Zabalit řádek',\n triggerDesc: 'Klikni pro sestupné řazení',\n triggerAsc: 'Klikni pro vzestupné řazení',\n cancelSort: 'Klikni pro zrušení řazení'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Storno',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Storno'\n },\n Transfer: {\n searchPlaceholder: 'Vyhledávání',\n itemUnit: 'položka',\n itemsUnit: 'položek'\n },\n Upload: {\n uploading: 'Nahrávání...',\n removeFile: 'Odstranit soubor',\n uploadError: 'Chyba při nahrávání',\n previewFile: 'Zobrazit soubor',\n downloadFile: 'Stáhnout soubor'\n },\n Empty: {\n description: 'Žádná data'\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 */\nvar da_DK = {\n locale: 'da',\n DatePicker: {\n lang: {\n placeholder: 'Vælg dato',\n rangePlaceholder: ['Startdato', 'Slutdato'],\n locale: 'da_DK',\n today: 'I dag',\n now: 'Nu',\n backToToday: 'Gå til i dag',\n ok: 'Ok',\n clear: 'Ryd',\n month: 'Måned',\n year: 'År',\n timeSelect: 'Vælg tidspunkt',\n dateSelect: 'Vælg dato',\n monthSelect: 'Vælg måned',\n yearSelect: 'Vælg år',\n decadeSelect: 'Vælg årti',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Forrige måned (Page Up)',\n nextMonth: 'Næste måned (Page Down)',\n previousYear: 'Forrige år (Ctrl-venstre pil)',\n nextYear: 'Næste år (Ctrl-højre pil)',\n previousDecade: 'Forrige årti',\n nextDecade: 'Næste årti',\n previousCentury: 'Forrige århundrede',\n nextCentury: 'Næste århundrede'\n },\n timePickerLocale: {\n placeholder: 'Vælg tid',\n rangePlaceholder: ['Starttidspunkt', 'Sluttidspunkt']\n }\n },\n TimePicker: {\n placeholder: 'Vælg tid',\n rangePlaceholder: ['Starttidspunkt', 'Sluttidspunkt']\n },\n Calendar: {\n lang: {\n placeholder: 'Vælg dato',\n rangePlaceholder: ['Startdato', 'Slutdato'],\n locale: 'da_DK',\n today: 'I dag',\n now: 'Nu',\n backToToday: 'Gå til i dag',\n ok: 'Ok',\n clear: 'Ryd',\n month: 'Måned',\n year: 'År',\n timeSelect: 'Vælg tidspunkt',\n dateSelect: 'Vælg dato',\n monthSelect: 'Vælg måned',\n yearSelect: 'Vælg år',\n decadeSelect: 'Vælg årti',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Forrige måned (Page Up)',\n nextMonth: 'Næste måned (Page Down)',\n previousYear: 'Forrige år (Ctrl-venstre pil)',\n nextYear: 'Næste år (Ctrl-højre pil)',\n previousDecade: 'Forrige årti',\n nextDecade: 'Næste årti',\n previousCentury: 'Forrige århundrede',\n nextCentury: 'Næste århundrede'\n },\n timePickerLocale: {\n placeholder: 'Vælg tid',\n rangePlaceholder: ['Starttidspunkt', 'Sluttidspunkt']\n }\n },\n Pagination: {\n items_per_page: '/ side',\n jump_to: 'Gå til',\n jump_to_confirm: 'bekræft',\n page: 'Side',\n prev_page: 'Forrige Side',\n next_page: 'Næste Side',\n prev_5: 'Forrige 5 Sider',\n next_5: 'Næste 5 Sider',\n prev_3: 'Forrige 3 Sider',\n next_3: 'Næste 3 Sider',\n page_size: 'sidestørrelse'\n },\n Table: {\n filterTitle: 'Filtermenu',\n filterConfirm: 'OK',\n filterReset: 'Nulstil',\n selectAll: 'Vælg alle',\n selectInvert: 'Invertér valg',\n filterEmptyText: 'Ingen filtre',\n emptyText: 'Ingen data',\n selectNone: 'Ryd alt data',\n selectionAll: 'Vælg alt data',\n sortTitle: 'Sortér',\n expand: 'Udvid række',\n collapse: 'Flet række',\n triggerDesc: 'Klik for at sortere faldende',\n triggerAsc: 'Klik for at sortere stigende',\n cancelSort: 'Klik for at annullere sortering'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Afbryd',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Afbryd'\n },\n Transfer: {\n searchPlaceholder: 'Søg her',\n itemUnit: 'element',\n itemsUnit: 'elementer'\n },\n Upload: {\n uploading: 'Uploader...',\n removeFile: 'Fjern fil',\n uploadError: 'Fejl ved upload',\n previewFile: 'Forhåndsvisning',\n downloadFile: 'Download fil'\n },\n Empty: {\n description: 'Ingen data'\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 */\nvar de_DE = {\n locale: 'de',\n Pagination: {\n items_per_page: '/ Seite',\n jump_to: 'Gehe zu',\n jump_to_confirm: 'bestätigen',\n page: 'Seite',\n prev_page: 'Vorherige Seite',\n next_page: 'Nächste Seite',\n prev_5: '5 Seiten zurück',\n next_5: '5 Seiten vor',\n prev_3: '3 Seiten zurück',\n next_3: '3 Seiten vor',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Datum auswählen',\n yearPlaceholder: 'Jahr auswählen',\n quarterPlaceholder: 'Quartal auswählen',\n monthPlaceholder: 'Monat auswählen',\n weekPlaceholder: 'Woche auswählen',\n rangePlaceholder: ['Startdatum', 'Enddatum'],\n rangeYearPlaceholder: ['Startjahr', 'Endjahr'],\n rangeMonthPlaceholder: ['Startmonat', 'Endmonat'],\n rangeWeekPlaceholder: ['Startwoche', 'Endwoche'],\n locale: 'de_DE',\n today: 'Heute',\n now: 'Jetzt',\n backToToday: 'Zurück zu Heute',\n ok: 'OK',\n clear: 'Zurücksetzen',\n month: 'Monat',\n year: 'Jahr',\n timeSelect: 'Zeit wählen',\n dateSelect: 'Datum wählen',\n weekSelect: 'Woche wählen',\n monthSelect: 'Wähle einen Monat',\n yearSelect: 'Wähle ein Jahr',\n decadeSelect: 'Wähle ein Jahrzehnt',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Vorheriger Monat (PageUp)',\n nextMonth: 'Nächster Monat (PageDown)',\n previousYear: 'Vorheriges Jahr (Ctrl + left)',\n nextYear: 'Nächstes Jahr (Ctrl + right)',\n previousDecade: 'Vorheriges Jahrzehnt',\n nextDecade: 'Nächstes Jahrzehnt',\n previousCentury: 'Vorheriges Jahrhundert',\n nextCentury: 'Nächstes Jahrhundert'\n },\n timePickerLocale: {\n placeholder: 'Zeit auswählen',\n rangePlaceholder: ['Startzeit', 'Endzeit']\n }\n },\n TimePicker: {\n placeholder: 'Zeit auswählen'\n },\n Calendar: {\n lang: {\n placeholder: 'Datum auswählen',\n yearPlaceholder: 'Jahr auswählen',\n quarterPlaceholder: 'Quartal auswählen',\n monthPlaceholder: 'Monat auswählen',\n weekPlaceholder: 'Woche auswählen',\n rangePlaceholder: ['Startdatum', 'Enddatum'],\n rangeYearPlaceholder: ['Startjahr', 'Endjahr'],\n rangeMonthPlaceholder: ['Startmonat', 'Endmonat'],\n rangeWeekPlaceholder: ['Startwoche', 'Endwoche'],\n locale: 'de_DE',\n today: 'Heute',\n now: 'Jetzt',\n backToToday: 'Zurück zu Heute',\n ok: 'OK',\n clear: 'Zurücksetzen',\n month: 'Monat',\n year: 'Jahr',\n timeSelect: 'Zeit wählen',\n dateSelect: 'Datum wählen',\n weekSelect: 'Woche wählen',\n monthSelect: 'Wähle einen Monat',\n yearSelect: 'Wähle ein Jahr',\n decadeSelect: 'Wähle ein Jahrzehnt',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Vorheriger Monat (PageUp)',\n nextMonth: 'Nächster Monat (PageDown)',\n previousYear: 'Vorheriges Jahr (Ctrl + left)',\n nextYear: 'Nächstes Jahr (Ctrl + right)',\n previousDecade: 'Vorheriges Jahrzehnt',\n nextDecade: 'Nächstes Jahrzehnt',\n previousCentury: 'Vorheriges Jahrhundert',\n nextCentury: 'Nächstes Jahrhundert'\n },\n timePickerLocale: {\n placeholder: 'Zeit auswählen',\n rangePlaceholder: ['Startzeit', 'Endzeit']\n }\n },\n global: {\n placeholder: 'Bitte auswählen'\n },\n Table: {\n filterTitle: 'Filter-Menü',\n filterConfirm: 'OK',\n filterReset: 'Zurücksetzen',\n filterEmptyText: 'Keine Filter',\n emptyText: 'Keine Daten',\n selectAll: 'Selektiere Alle',\n selectInvert: 'Selektion Invertieren',\n selectionAll: 'Wählen Sie alle Daten aus',\n sortTitle: 'Sortieren',\n expand: 'Zeile erweitern',\n collapse: 'Zeile reduzieren',\n triggerDesc: 'Klicken zur absteigenden Sortierung',\n triggerAsc: 'Klicken zur aufsteigenden Sortierung',\n cancelSort: 'Klicken zum Abbrechen der Sortierung'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Abbrechen',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Abbrechen'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Suchen',\n itemUnit: 'Eintrag',\n itemsUnit: 'Einträge',\n remove: 'Entfernen',\n selectCurrent: 'Alle auf aktueller Seite auswählen',\n removeCurrent: 'Auswahl auf aktueller Seite aufheben',\n selectAll: 'Alle auswählen',\n removeAll: 'Auswahl aufheben',\n selectInvert: 'Auswahl umkehren'\n },\n Upload: {\n uploading: 'Hochladen...',\n removeFile: 'Datei entfernen',\n uploadError: 'Fehler beim Hochladen',\n previewFile: 'Dateivorschau',\n downloadFile: 'Download-Datei'\n },\n Empty: {\n description: 'Keine Daten'\n },\n Text: {\n edit: 'Bearbeiten',\n copy: 'Kopieren',\n copied: 'Kopiert',\n expand: 'Erweitern'\n },\n PageHeader: {\n back: 'Zurück'\n },\n Image: {\n preview: 'Vorschau'\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 */\nvar el_GR = {\n locale: 'el',\n Pagination: {\n items_per_page: '/ σελίδα',\n jump_to: 'Μετάβαση',\n jump_to_confirm: 'επιβεβαιώνω',\n page: '',\n prev_page: 'Προηγούμενη Σελίδα',\n next_page: 'Επόμενη Σελίδα',\n prev_5: 'Προηγούμενες 5 Σελίδες',\n next_5: 'Επόμενες 5 σελίδες',\n prev_3: 'Προηγούμενες 3 Σελίδες',\n next_3: 'Επόμενες 3 Σελίδες',\n page_size: 'Μέγεθος σελίδας'\n },\n DatePicker: {\n lang: {\n placeholder: 'Επιλέξτε ημερομηνία',\n rangePlaceholder: ['Αρχική ημερομηνία', 'Τελική ημερομηνία'],\n locale: 'el_GR',\n today: 'Σήμερα',\n now: 'Τώρα',\n backToToday: 'Πίσω στη σημερινή μέρα',\n ok: 'Ok',\n clear: 'Καθαρισμός',\n month: 'Μήνας',\n year: 'Έτος',\n timeSelect: 'Επιλογή ώρας',\n dateSelect: 'Επιλογή ημερομηνίας',\n monthSelect: 'Επιλογή μήνα',\n yearSelect: 'Επιλογή έτους',\n decadeSelect: 'Επιλογή δεκαετίας',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Προηγούμενος μήνας (PageUp)',\n nextMonth: 'Επόμενος μήνας (PageDown)',\n previousYear: 'Προηγούμενο έτος (Control + αριστερά)',\n nextYear: 'Επόμενο έτος (Control + δεξιά)',\n previousDecade: 'Προηγούμενη δεκαετία',\n nextDecade: 'Επόμενη δεκαετία',\n previousCentury: 'Προηγούμενος αιώνας',\n nextCentury: 'Επόμενος αιώνας'\n },\n timePickerLocale: {\n placeholder: 'Επιλέξτε ώρα'\n }\n },\n TimePicker: {\n placeholder: 'Επιλέξτε ώρα'\n },\n Calendar: {\n lang: {\n placeholder: 'Επιλέξτε ημερομηνία',\n rangePlaceholder: ['Αρχική ημερομηνία', 'Τελική ημερομηνία'],\n locale: 'el_GR',\n today: 'Σήμερα',\n now: 'Τώρα',\n backToToday: 'Πίσω στη σημερινή μέρα',\n ok: 'Ok',\n clear: 'Καθαρισμός',\n month: 'Μήνας',\n year: 'Έτος',\n timeSelect: 'Επιλογή ώρας',\n dateSelect: 'Επιλογή ημερομηνίας',\n monthSelect: 'Επιλογή μήνα',\n yearSelect: 'Επιλογή έτους',\n decadeSelect: 'Επιλογή δεκαετίας',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Προηγούμενος μήνας (PageUp)',\n nextMonth: 'Επόμενος μήνας (PageDown)',\n previousYear: 'Προηγούμενο έτος (Control + αριστερά)',\n nextYear: 'Επόμενο έτος (Control + δεξιά)',\n previousDecade: 'Προηγούμενη δεκαετία',\n nextDecade: 'Επόμενη δεκαετία',\n previousCentury: 'Προηγούμενος αιώνας',\n nextCentury: 'Επόμενος αιώνας'\n },\n timePickerLocale: {\n placeholder: 'Επιλέξτε ώρα'\n }\n },\n Table: {\n filterTitle: 'Μενού φίλτρων',\n filterConfirm: 'ΟΚ',\n filterReset: 'Επαναφορά',\n selectAll: 'Επιλογή τρέχουσας σελίδας',\n selectInvert: 'Αντιστροφή τρέχουσας σελίδας'\n },\n Modal: {\n okText: 'ΟΚ',\n cancelText: 'Άκυρο',\n justOkText: 'ΟΚ'\n },\n Popconfirm: {\n okText: 'ΟΚ',\n cancelText: 'Άκυρο'\n },\n Transfer: {\n searchPlaceholder: 'Αναζήτηση',\n itemUnit: 'αντικείμενο',\n itemsUnit: 'αντικείμενα'\n },\n Upload: {\n uploading: 'Μεταφόρτωση...',\n removeFile: 'Αφαίρεση αρχείου',\n uploadError: 'Σφάλμα μεταφόρτωσης',\n previewFile: 'Προεπισκόπηση αρχείου',\n downloadFile: 'Λήψη αρχείου'\n },\n Empty: {\n description: 'Δεν υπάρχουν δεδομένα'\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 */\nvar en_GB = {\n locale: 'en-gb',\n Pagination: {\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week'],\n locale: 'en_GB',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'Select time',\n dateSelect: 'Select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n },\n timePickerLocale: {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n }\n },\n TimePicker: {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n },\n Calendar: {\n lang: {\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week'],\n locale: 'en_GB',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'Select time',\n dateSelect: 'Select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n },\n timePickerLocale: {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n }\n },\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting',\n selectNone: 'Clear all data'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\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 */\nvar es_ES = {\n locale: 'es',\n Pagination: {\n items_per_page: '/ página',\n jump_to: 'Ir a',\n jump_to_confirm: 'confirmar',\n page: 'Página',\n prev_page: 'Página anterior',\n next_page: 'Página siguiente',\n prev_5: '5 páginas previas',\n next_5: '5 páginas siguientes',\n prev_3: '3 páginas previas',\n next_3: '3 páginas siguientes',\n page_size: 'tamaño de página'\n },\n DatePicker: {\n lang: {\n placeholder: 'Seleccionar fecha',\n yearPlaceholder: 'Seleccionar año',\n quarterPlaceholder: 'Seleccionar trimestre',\n monthPlaceholder: 'Seleccionar mes',\n weekPlaceholder: 'Seleccionar semana',\n rangePlaceholder: ['Fecha inicial', 'Fecha final'],\n rangeYearPlaceholder: ['Año inicial', 'Año final'],\n rangeMonthPlaceholder: ['Mes inicial', 'Mes final'],\n rangeWeekPlaceholder: ['Semana inicial', 'Semana final'],\n locale: 'es_ES',\n today: 'Hoy',\n now: 'Ahora',\n backToToday: 'Volver a hoy',\n ok: 'Aceptar',\n clear: 'Limpiar',\n month: 'Mes',\n year: 'Año',\n timeSelect: 'Seleccionar hora',\n dateSelect: 'Seleccionar fecha',\n weekSelect: 'Elegir una semana',\n monthSelect: 'Elegir un mes',\n yearSelect: 'Elegir un año',\n decadeSelect: 'Elegir una década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mes anterior (PageUp)',\n nextMonth: 'Mes siguiente (PageDown)',\n previousYear: 'Año anterior (Control + left)',\n nextYear: 'Año siguiente (Control + right)',\n previousDecade: 'Década anterior',\n nextDecade: 'Década siguiente',\n previousCentury: 'Siglo anterior',\n nextCentury: 'Siglo siguiente'\n },\n timePickerLocale: {\n placeholder: 'Seleccionar hora',\n rangePlaceholder: ['Hora inicial', 'Hora final']\n }\n },\n TimePicker: {\n placeholder: 'Seleccionar hora',\n rangePlaceholder: ['Hora inicial', 'Hora final']\n },\n Calendar: {\n lang: {\n placeholder: 'Seleccionar fecha',\n yearPlaceholder: 'Seleccionar año',\n quarterPlaceholder: 'Seleccionar trimestre',\n monthPlaceholder: 'Seleccionar mes',\n weekPlaceholder: 'Seleccionar semana',\n rangePlaceholder: ['Fecha inicial', 'Fecha final'],\n rangeYearPlaceholder: ['Año inicial', 'Año final'],\n rangeMonthPlaceholder: ['Mes inicial', 'Mes final'],\n rangeWeekPlaceholder: ['Semana inicial', 'Semana final'],\n locale: 'es_ES',\n today: 'Hoy',\n now: 'Ahora',\n backToToday: 'Volver a hoy',\n ok: 'Aceptar',\n clear: 'Limpiar',\n month: 'Mes',\n year: 'Año',\n timeSelect: 'Seleccionar hora',\n dateSelect: 'Seleccionar fecha',\n weekSelect: 'Elegir una semana',\n monthSelect: 'Elegir un mes',\n yearSelect: 'Elegir un año',\n decadeSelect: 'Elegir una década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mes anterior (AvPág)',\n nextMonth: 'Mes siguiente (RePág)',\n previousYear: 'Año anterior (Control + izquierda)',\n nextYear: 'Año siguiente (Control + derecha)',\n previousDecade: 'Década anterior',\n nextDecade: 'Década siguiente',\n previousCentury: 'Siglo anterior',\n nextCentury: 'Siglo siguiente'\n },\n timePickerLocale: {\n placeholder: 'Seleccionar hora',\n rangePlaceholder: ['Hora inicial', 'Hora final']\n }\n },\n global: {\n placeholder: 'Seleccione'\n },\n Table: {\n filterTitle: 'Filtrar menú',\n filterConfirm: 'Aceptar',\n filterReset: 'Reiniciar',\n filterEmptyText: 'Sin filtros',\n emptyText: 'Sin datos',\n selectAll: 'Seleccionar todo',\n selectInvert: 'Invertir selección',\n selectionAll: 'Seleccionar todos los datos',\n sortTitle: 'Ordenar',\n expand: 'Expandir fila',\n collapse: 'Colapsar fila',\n triggerDesc: 'Click para ordenar descendentemente',\n triggerAsc: 'Click para ordenar ascendentemenre',\n cancelSort: 'Click para cancelar ordenación',\n filterCheckall: 'Seleccionar todos los filtros',\n filterSearchPlaceholder: 'Buscar en filtros',\n selectNone: 'Vaciar todo'\n },\n Modal: {\n okText: 'Aceptar',\n cancelText: 'Cancelar',\n justOkText: 'Aceptar'\n },\n Popconfirm: {\n okText: 'Aceptar',\n cancelText: 'Cancelar'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Buscar aquí',\n itemUnit: 'elemento',\n itemsUnit: 'elementos',\n remove: 'Eliminar',\n selectCurrent: 'Seleccionar página actual',\n removeCurrent: 'Eliminar página actual',\n selectAll: 'Seleccionar todos los datos',\n removeAll: 'Eliminar todos los datos',\n selectInvert: 'Invertir página actual'\n },\n Upload: {\n uploading: 'Subiendo...',\n removeFile: 'Eliminar archivo',\n uploadError: 'Error al subir el archivo',\n previewFile: 'Vista previa',\n downloadFile: 'Descargar archivo'\n },\n Empty: {\n description: 'No hay datos'\n },\n Icon: {\n icon: 'icono'\n },\n Text: {\n edit: 'Editar',\n copy: 'Copiar',\n copied: 'Copiado',\n expand: 'Expandir'\n },\n PageHeader: {\n back: 'Volver'\n },\n Image: {\n preview: 'Previsualización'\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 */\nvar et_EE = {\n locale: 'et',\n Pagination: {\n items_per_page: '/ leheküljel',\n jump_to: 'Hüppa',\n jump_to_confirm: 'Kinnitage',\n page: '',\n prev_page: 'Eelmine leht',\n next_page: 'Järgmine leht',\n prev_5: 'Eelmised 5 lehekülge',\n next_5: 'Järgmised 5 lehekülge',\n prev_3: 'Eelmised 3 lehekülge',\n next_3: 'Järgmised 3 lehekülge',\n page_size: 'lehe suurus'\n },\n DatePicker: {\n lang: {\n placeholder: 'Vali kuupäev',\n rangePlaceholder: ['Algus kuupäev', 'Lõpu kuupäev'],\n locale: 'et_EE',\n today: 'Täna',\n now: 'Praegu',\n backToToday: 'Tagasi tänase juurde',\n ok: 'Ok',\n clear: 'Tühista',\n month: 'Kuu',\n year: 'Aasta',\n timeSelect: 'Vali aeg',\n dateSelect: 'Vali kuupäev',\n monthSelect: 'Vali kuu',\n yearSelect: 'Vali aasta',\n decadeSelect: 'Vali dekaad',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Eelmine kuu (PageUp)',\n nextMonth: 'Järgmine kuu (PageDown)',\n previousYear: 'Eelmine aasta (Control + left)',\n nextYear: 'Järgmine aasta (Control + right)',\n previousDecade: 'Eelmine dekaad',\n nextDecade: 'Järgmine dekaad',\n previousCentury: 'Eelmine sajand',\n nextCentury: 'Järgmine sajand'\n },\n timePickerLocale: {\n placeholder: 'Vali aeg'\n }\n },\n TimePicker: {\n placeholder: 'Vali aeg'\n },\n Calendar: {\n lang: {\n placeholder: 'Vali kuupäev',\n rangePlaceholder: ['Algus kuupäev', 'Lõpu kuupäev'],\n locale: 'et_EE',\n today: 'Täna',\n now: 'Praegu',\n backToToday: 'Tagasi tänase juurde',\n ok: 'Ok',\n clear: 'Tühista',\n month: 'Kuu',\n year: 'Aasta',\n timeSelect: 'Vali aeg',\n dateSelect: 'Vali kuupäev',\n monthSelect: 'Vali kuu',\n yearSelect: 'Vali aasta',\n decadeSelect: 'Vali dekaad',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Eelmine kuu (PageUp)',\n nextMonth: 'Järgmine kuu (PageDown)',\n previousYear: 'Eelmine aasta (Control + left)',\n nextYear: 'Järgmine aasta (Control + right)',\n previousDecade: 'Eelmine dekaad',\n nextDecade: 'Järgmine dekaad',\n previousCentury: 'Eelmine sajand',\n nextCentury: 'Järgmine sajand'\n },\n timePickerLocale: {\n placeholder: 'Vali aeg'\n }\n },\n Table: {\n filterTitle: 'Filtri menüü',\n filterConfirm: 'OK',\n filterReset: 'Nulli',\n selectAll: 'Vali kõik',\n selectInvert: 'Inverteeri valik',\n filterEmptyText: 'Filtreid pole',\n filterCheckall: 'Vali kõik',\n filterSearchPlaceholder: 'Otsi filtritest',\n emptyText: 'Andmed puuduvad',\n selectNone: 'Kustuta kõik andmed',\n selectionAll: 'Vali kõik andmed',\n sortTitle: 'Sorteeri',\n expand: 'Laienda rida',\n collapse: 'Ahenda rida',\n triggerDesc: 'Klõpsa kahanevalt sortimiseks',\n triggerAsc: 'Klõpsa kasvavalt sortimiseks',\n cancelSort: 'Klõpsa sortimise tühistamiseks'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Tühista',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Tühista'\n },\n Transfer: {\n searchPlaceholder: 'Otsi siit',\n itemUnit: 'kogus',\n itemsUnit: 'kogused',\n titles: ['', ''],\n remove: 'Eemalda',\n selectCurrent: 'Vali praegune leht',\n removeCurrent: 'Eemalda praegune leht',\n selectAll: 'Vali kõik',\n removeAll: 'Eemalda kõik andmed',\n selectInvert: 'Inverteeri valik'\n },\n Upload: {\n uploading: 'Üleslaadimine...',\n removeFile: 'Eemalda fail',\n uploadError: 'Üleslaadimise tõrge',\n previewFile: 'Faili eelvaade',\n downloadFile: 'Lae fail alla'\n },\n Empty: {\n description: 'Andmed puuduvad'\n },\n global: {\n placeholder: 'Palun vali'\n },\n Icon: {\n icon: 'ikoon'\n },\n Text: {\n edit: 'Muuda',\n copy: 'Kopeeri',\n copied: 'Kopeeritud',\n expand: 'Laienda'\n },\n PageHeader: {\n back: 'Tagasi'\n },\n Image: {\n preview: 'Eelvaade'\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 */\nvar fa_IR = {\n locale: 'fa',\n Pagination: {\n items_per_page: '/ صفحه',\n jump_to: 'برو به',\n jump_to_confirm: 'تایید',\n page: '',\n prev_page: 'صفحه قبلی',\n next_page: 'صفحه بعدی',\n prev_5: '۵ صفحه قبلی',\n next_5: '۵ صفحه بعدی',\n prev_3: '۳ صفحه قبلی',\n next_3: '۳ صفحه بعدی',\n page_size: 'اندازه صفحه'\n },\n DatePicker: {\n lang: {\n placeholder: 'انتخاب تاریخ',\n yearPlaceholder: 'انتخاب سال',\n quarterPlaceholder: 'انتخاب فصل',\n monthPlaceholder: 'انتخاب ماه',\n weekPlaceholder: 'انتخاب هفته',\n rangePlaceholder: ['تاریخ شروع', 'تاریخ پایان'],\n rangeYearPlaceholder: ['سال شروع', 'سال پایان'],\n rangeMonthPlaceholder: ['ماه شروع', 'ماه پایان'],\n rangeWeekPlaceholder: ['هفته شروع', 'هفته پایان'],\n locale: 'fa_IR',\n today: 'امروز',\n now: 'اکنون',\n backToToday: 'بازگشت به روز',\n ok: 'باشه',\n clear: 'پاک کردن',\n month: 'ماه',\n year: 'سال',\n timeSelect: 'انتخاب زمان',\n dateSelect: 'انتخاب تاریخ',\n weekSelect: 'یک هفته رو انتخاب کنید',\n monthSelect: 'یک ماه را انتخاب کنید',\n yearSelect: 'یک سال را انتخاب کنید',\n decadeSelect: 'یک دهه را انتخاب کنید',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'ماه قبل (PageUp)',\n nextMonth: 'ماه بعد (PageDown)',\n previousYear: 'سال قبل (Control + left)',\n nextYear: 'سال بعد (Control + right)',\n previousDecade: 'دهه قبل',\n nextDecade: 'دهه بعد',\n previousCentury: 'قرن قبل',\n nextCentury: 'قرن بعد'\n },\n timePickerLocale: {\n placeholder: 'انتخاب زمان',\n rangePlaceholder: ['زمان شروع', 'زمان پایان']\n }\n },\n TimePicker: {\n placeholder: 'انتخاب زمان',\n rangePlaceholder: ['زمان شروع', 'زمان پایان']\n },\n Calendar: {\n lang: {\n placeholder: 'انتخاب تاریخ',\n yearPlaceholder: 'انتخاب سال',\n quarterPlaceholder: 'انتخاب فصل',\n monthPlaceholder: 'انتخاب ماه',\n weekPlaceholder: 'انتخاب هفته',\n rangePlaceholder: ['تاریخ شروع', 'تاریخ پایان'],\n rangeYearPlaceholder: ['سال شروع', 'سال پایان'],\n rangeMonthPlaceholder: ['ماه شروع', 'ماه پایان'],\n rangeWeekPlaceholder: ['هفته شروع', 'هفته پایان'],\n locale: 'fa_IR',\n today: 'امروز',\n now: 'اکنون',\n backToToday: 'بازگشت به روز',\n ok: 'باشه',\n clear: 'پاک کردن',\n month: 'ماه',\n year: 'سال',\n timeSelect: 'انتخاب زمان',\n dateSelect: 'انتخاب تاریخ',\n weekSelect: 'انتخاب هفته',\n monthSelect: 'یک ماه را انتخاب کنید',\n yearSelect: 'یک سال را انتخاب کنید',\n decadeSelect: 'یک دهه را انتخاب کنید',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'ماه قبل (PageUp)',\n nextMonth: 'ماه بعد (PageDown)',\n previousYear: 'سال قبل (Control + left)',\n nextYear: 'سال بعد (Control + right)',\n previousDecade: 'دهه قبل',\n nextDecade: 'دهه بعد',\n previousCentury: 'قرن قبل',\n nextCentury: 'قرن بعد'\n },\n timePickerLocale: {\n placeholder: 'انتخاب زمان',\n rangePlaceholder: ['زمان شروع', 'زمان پایان']\n }\n },\n global: {\n placeholder: 'لطفا انتخاب کنید'\n },\n Table: {\n filterTitle: 'منوی فیلتر',\n filterConfirm: 'تایید',\n filterReset: 'پاک کردن',\n filterEmptyText: 'بدون فیلتر',\n emptyText: 'بدون داده',\n selectAll: 'انتخاب صفحهی کنونی',\n selectInvert: 'معکوس کردن انتخابها در صفحه ی کنونی',\n selectionAll: 'انتخاب همه دادهها',\n sortTitle: 'مرتب سازی',\n expand: 'باز شدن ردیف',\n collapse: 'بستن ردیف',\n triggerDesc: 'ترتیب نزولی',\n triggerAsc: 'ترتیب صعودی',\n cancelSort: 'لغوِ ترتیبِ داده شده',\n filterCheckall: 'انتخاب همه موارد',\n filterSearchPlaceholder: 'جستوجو در فیلترها',\n selectNone: 'انتخاب هیچکدام'\n },\n Modal: {\n okText: 'تایید',\n cancelText: 'لغو',\n justOkText: 'تایید'\n },\n Popconfirm: {\n okText: 'تایید',\n cancelText: 'لغو'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'جستجو',\n itemUnit: 'عدد',\n itemsUnit: 'عدد',\n remove: 'حذف',\n selectCurrent: 'انتخاب صفحه فعلی',\n removeCurrent: 'پاک کردن انتخابهای صفحه فعلی',\n selectAll: 'انتخاب همه',\n removeAll: 'پاک کردن همه انتخابها',\n selectInvert: 'معکوس کردن انتخابها در صفحه ی کنونی'\n },\n Upload: {\n uploading: 'در حال آپلود...',\n removeFile: 'حذف فایل',\n uploadError: 'خطا در آپلود',\n previewFile: 'مشاهدهی فایل',\n downloadFile: 'دریافت فایل'\n },\n Empty: {\n description: 'دادهای موجود نیست'\n },\n Icon: {\n icon: 'آیکن'\n },\n Text: {\n edit: 'ویرایش',\n copy: 'کپی',\n copied: 'کپی شد',\n expand: 'توسعه'\n },\n PageHeader: {\n back: 'برگشت'\n },\n Image: {\n preview: 'نمایش'\n },\n CronExpression: {\n cronError: 'Invalid cron expression',\n second: 'ثانیه',\n minute: 'دقیقه',\n hour: 'ساعت',\n day: 'روز',\n month: 'ماه',\n week: 'هفته'\n },\n QRCode: {\n expired: 'کد QR منقضی شده است',\n refresh: 'تازه کردن'\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 */\nvar fi_FI = {\n locale: 'fi',\n Pagination: {\n items_per_page: '/ sivu',\n jump_to: 'Mene',\n jump_to_confirm: 'Potvrdite',\n page: 'Sivu',\n prev_page: 'Edellinen sivu',\n next_page: 'Seuraava sivu',\n prev_5: 'Edelliset 5 sivua',\n next_5: 'Seuraavat 5 sivua',\n prev_3: 'Edelliset 3 sivua',\n next_3: 'Seuraavat 3 sivua',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Valitse päivä',\n rangePlaceholder: ['Alkamispäivä', 'Päättymispäivä'],\n locale: 'fi_FI',\n today: 'Tänään',\n now: 'Nyt',\n backToToday: 'Tämä päivä',\n ok: 'Ok',\n clear: 'Tyhjennä',\n month: 'Kuukausi',\n year: 'Vuosi',\n timeSelect: 'Valise aika',\n dateSelect: 'Valitse päivä',\n monthSelect: 'Valitse kuukausi',\n yearSelect: 'Valitse vuosi',\n decadeSelect: 'Valitse vuosikymmen',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Edellinen kuukausi (PageUp)',\n nextMonth: 'Seuraava kuukausi (PageDown)',\n previousYear: 'Edellinen vuosi (Control + left)',\n nextYear: 'Seuraava vuosi (Control + right)',\n previousDecade: 'Edellinen vuosikymmen',\n nextDecade: 'Seuraava vuosikymmen',\n previousCentury: 'Edellinen vuosisata',\n nextCentury: 'Seuraava vuosisata'\n },\n timePickerLocale: {\n placeholder: 'Valitse aika'\n }\n },\n TimePicker: {\n placeholder: 'Valitse aika'\n },\n Calendar: {\n lang: {\n placeholder: 'Valitse päivä',\n rangePlaceholder: ['Alkamispäivä', 'Päättymispäivä'],\n locale: 'fi_FI',\n today: 'Tänään',\n now: 'Nyt',\n backToToday: 'Tämä päivä',\n ok: 'Ok',\n clear: 'Tyhjennä',\n month: 'Kuukausi',\n year: 'Vuosi',\n timeSelect: 'Valise aika',\n dateSelect: 'Valitse päivä',\n monthSelect: 'Valitse kuukausi',\n yearSelect: 'Valitse vuosi',\n decadeSelect: 'Valitse vuosikymmen',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Edellinen kuukausi (PageUp)',\n nextMonth: 'Seuraava kuukausi (PageDown)',\n previousYear: 'Edellinen vuosi (Control + left)',\n nextYear: 'Seuraava vuosi (Control + right)',\n previousDecade: 'Edellinen vuosikymmen',\n nextDecade: 'Seuraava vuosikymmen',\n previousCentury: 'Edellinen vuosisata',\n nextCentury: 'Seuraava vuosisata'\n },\n timePickerLocale: {\n placeholder: 'Valitse aika'\n }\n },\n Table: {\n filterTitle: 'Suodatus valikko',\n filterConfirm: 'OK',\n filterReset: 'Tyhjennä',\n selectAll: 'Valitse kaikki',\n selectInvert: 'Valitse päinvastoin',\n sortTitle: 'Lajittele',\n triggerDesc: 'Lajittele laskevasti',\n triggerAsc: 'Lajittele nousevasti',\n cancelSort: 'Peruuta lajittelu'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Peruuta',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Peruuta'\n },\n Transfer: {\n searchPlaceholder: 'Etsi täältä',\n itemUnit: 'kohde',\n itemsUnit: 'kohdetta'\n },\n Upload: {\n uploading: 'Lähetetään...',\n removeFile: 'Poista tiedosto',\n uploadError: 'Virhe lähetyksessä',\n previewFile: 'Esikatsele tiedostoa',\n downloadFile: 'Lataa tiedosto'\n },\n Empty: {\n description: 'Ei kohteita'\n },\n Text: {\n edit: 'Muokkaa',\n copy: 'Kopioi',\n copied: 'Kopioitu',\n expand: 'Näytä lisää'\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 */\nvar fr_BE = {\n locale: 'fr',\n Pagination: {\n items_per_page: '/ page',\n jump_to: 'Aller à',\n jump_to_confirm: 'confirmer',\n page: 'Page',\n prev_page: 'Page précédente',\n next_page: 'Page suivante',\n prev_5: '5 Pages précédentes',\n next_5: '5 Pages suivantes',\n prev_3: '3 Pages précédentes',\n next_3: '3 Pages suivantes',\n page_size: 'taille de la page'\n },\n DatePicker: {\n lang: {\n placeholder: 'Sélectionner une date',\n yearPlaceholder: 'Sélectionner une année',\n quarterPlaceholder: 'Sélectionner un trimestre',\n monthPlaceholder: 'Sélectionner un mois',\n weekPlaceholder: 'Sélectionner une semaine',\n rangePlaceholder: ['Date de début', 'Date de fin'],\n rangeYearPlaceholder: ['Année de début', 'Année de fin'],\n rangeMonthPlaceholder: ['Mois de début', 'Mois de fin'],\n rangeWeekPlaceholder: ['Semaine de début', 'Semaine de fin'],\n locale: 'fr_BE',\n today: \"Aujourd'hui\",\n now: 'Maintenant',\n backToToday: \"Aujourd'hui\",\n ok: 'Ok',\n clear: 'Rétablir',\n month: 'Mois',\n year: 'Année',\n timeSelect: \"Sélectionner l'heure\",\n dateSelect: 'Sélectionner la date',\n weekSelect: 'Choisissez une semaine',\n monthSelect: 'Choisissez un mois',\n yearSelect: 'Choisissez une année',\n decadeSelect: 'Choisissez une décennie',\n yearFormat: 'YYYY',\n dateFormat: 'DD/MM/YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD/MM/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mois précédent (PageUp)',\n nextMonth: 'Mois suivant (PageDown)',\n previousYear: 'Année précédente (Ctrl + gauche)',\n nextYear: 'Année prochaine (Ctrl + droite)',\n previousDecade: 'Décennie précédente',\n nextDecade: 'Décennie suivante',\n previousCentury: 'Siècle précédent',\n nextCentury: 'Siècle suivant'\n },\n timePickerLocale: {\n placeholder: \"Sélectionner l'heure\",\n rangePlaceholder: ['Heure de début', 'Heure de fin']\n }\n },\n TimePicker: {\n placeholder: \"Sélectionner l'heure\",\n rangePlaceholder: ['Heure de début', 'Heure de fin']\n },\n Calendar: {\n lang: {\n placeholder: 'Sélectionner une date',\n yearPlaceholder: 'Sélectionner une année',\n quarterPlaceholder: 'Sélectionner un trimestre',\n monthPlaceholder: 'Sélectionner un mois',\n weekPlaceholder: 'Sélectionner une semaine',\n rangePlaceholder: ['Date de début', 'Date de fin'],\n rangeYearPlaceholder: ['Année de début', 'Année de fin'],\n rangeMonthPlaceholder: ['Mois de début', 'Mois de fin'],\n rangeWeekPlaceholder: ['Semaine de début', 'Semaine de fin'],\n locale: 'fr_BE',\n today: \"Aujourd'hui\",\n now: 'Maintenant',\n backToToday: \"Aujourd'hui\",\n ok: 'Ok',\n clear: 'Rétablir',\n month: 'Mois',\n year: 'Année',\n timeSelect: \"Sélectionner l'heure\",\n dateSelect: 'Sélectionner la date',\n monthSelect: 'Choisissez un mois',\n yearSelect: 'Choisissez une année',\n decadeSelect: 'Choisissez une décennie',\n yearFormat: 'YYYY',\n dateFormat: 'DD/MM/YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD/MM/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mois précédent (PageUp)',\n nextMonth: 'Mois suivant (PageDown)',\n previousYear: 'Année précédente (Ctrl + gauche)',\n nextYear: 'Année prochaine (Ctrl + droite)',\n previousDecade: 'Décennie précédente',\n nextDecade: 'Décennie suivante',\n previousCentury: 'Siècle précédent',\n nextCentury: 'Siècle suivant'\n },\n timePickerLocale: {\n placeholder: \"Sélectionner l'heure\",\n rangePlaceholder: ['Heure de début', 'Heure de fin']\n }\n },\n global: {\n placeholder: 'Sélectionner'\n },\n Table: {\n filterTitle: 'Filtrer',\n filterConfirm: 'OK',\n filterReset: 'Réinitialiser',\n selectAll: 'Sélectionner la page actuelle',\n selectInvert: 'Inverser la sélection de la page actuelle',\n selectionAll: 'Sélectionner toutes les données',\n sortTitle: 'Trier',\n expand: 'Développer la ligne',\n collapse: 'Réduire la ligne',\n triggerDesc: 'Trier par ordre décroissant',\n triggerAsc: 'Trier par ordre croissant',\n cancelSort: 'Annuler le tri',\n filterEmptyText: 'Aucun filtre',\n emptyText: 'Aucune donnée',\n selectNone: 'Désélectionner toutes les données'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Annuler',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Annuler'\n },\n Transfer: {\n searchPlaceholder: 'Rechercher',\n itemUnit: 'élément',\n itemsUnit: 'éléments',\n titles: ['', ''],\n remove: 'Désélectionner',\n selectCurrent: 'Sélectionner la page actuelle',\n removeCurrent: 'Désélectionner la page actuelle',\n selectAll: 'Sélectionner toutes les données',\n removeAll: 'Désélectionner toutes les données',\n selectInvert: 'Inverser la sélection de la page actuelle'\n },\n Empty: {\n description: 'Aucune donnée'\n },\n Upload: {\n uploading: 'Téléchargement...',\n removeFile: 'Effacer le fichier',\n uploadError: 'Erreur de téléchargement',\n previewFile: 'Fichier de prévisualisation',\n downloadFile: 'Télécharger un fichier'\n },\n Text: {\n edit: 'Éditer',\n copy: 'Copier',\n copied: 'Copie effectuée',\n expand: 'Développer'\n },\n PageHeader: {\n back: 'Retour'\n },\n Icon: {\n icon: 'icône'\n },\n Image: {\n preview: 'Aperçu'\n },\n CronExpression: {\n cronError: 'Expression CRON invalide',\n second: 'seconde',\n minute: 'minute',\n hour: 'heure',\n day: 'jour',\n month: 'mois',\n week: 'semaine'\n },\n QRCode: {\n expired: 'QR code expiré',\n refresh: 'Rafraîchir'\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 */\nvar fr_CA = {\n locale: 'fr',\n Pagination: {\n items_per_page: '/ page',\n jump_to: 'Aller à',\n jump_to_confirm: 'confirmer',\n page: 'Page',\n prev_page: 'Page précédente',\n next_page: 'Page suivante',\n prev_5: '5 Pages précédentes',\n next_5: '5 Pages suivantes',\n prev_3: '3 Pages précédentes',\n next_3: '3 Pages suivantes',\n page_size: 'taille de la page'\n },\n DatePicker: {\n lang: {\n placeholder: 'Sélectionner une date',\n yearPlaceholder: 'Sélectionner une année',\n quarterPlaceholder: 'Sélectionner un trimestre',\n monthPlaceholder: 'Sélectionner un mois',\n weekPlaceholder: 'Sélectionner une semaine',\n rangePlaceholder: ['Date de début', 'Date de fin'],\n rangeYearPlaceholder: ['Année de début', 'Année de fin'],\n rangeMonthPlaceholder: ['Mois de début', 'Mois de fin'],\n rangeWeekPlaceholder: ['Semaine de début', 'Semaine de fin'],\n locale: 'fr_CA',\n today: \"Aujourd'hui\",\n now: 'Maintenant',\n backToToday: \"Aujourd'hui\",\n ok: 'Ok',\n clear: 'Rétablir',\n month: 'Mois',\n year: 'Année',\n timeSelect: \"Sélectionner l'heure\",\n dateSelect: 'Sélectionner la date',\n weekSelect: 'Choisissez une semaine',\n monthSelect: 'Choisissez un mois',\n yearSelect: 'Choisissez une année',\n decadeSelect: 'Choisissez une décennie',\n yearFormat: 'YYYY',\n dateFormat: 'DD/MM/YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD/MM/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mois précédent (PageUp)',\n nextMonth: 'Mois suivant (PageDown)',\n previousYear: 'Année précédente (Ctrl + gauche)',\n nextYear: 'Année prochaine (Ctrl + droite)',\n previousDecade: 'Décennie précédente',\n nextDecade: 'Décennie suivante',\n previousCentury: 'Siècle précédent',\n nextCentury: 'Siècle suivant'\n },\n timePickerLocale: {\n placeholder: \"Sélectionner l'heure\",\n rangePlaceholder: ['Heure de début', 'Heure de fin']\n }\n },\n TimePicker: {\n placeholder: \"Sélectionner l'heure\",\n rangePlaceholder: ['Heure de début', 'Heure de fin']\n },\n Calendar: {\n lang: {\n placeholder: 'Sélectionner une date',\n yearPlaceholder: 'Sélectionner une année',\n quarterPlaceholder: 'Sélectionner un trimestre',\n monthPlaceholder: 'Sélectionner un mois',\n weekPlaceholder: 'Sélectionner une semaine',\n rangePlaceholder: ['Date de début', 'Date de fin'],\n rangeYearPlaceholder: ['Année de début', 'Année de fin'],\n rangeMonthPlaceholder: ['Mois de début', 'Mois de fin'],\n rangeWeekPlaceholder: ['Semaine de début', 'Semaine de fin'],\n locale: 'fr_CA',\n today: \"Aujourd'hui\",\n now: 'Maintenant',\n backToToday: \"Aujourd'hui\",\n ok: 'Ok',\n clear: 'Rétablir',\n month: 'Mois',\n year: 'Année',\n timeSelect: \"Sélectionner l'heure\",\n dateSelect: 'Sélectionner la date',\n monthSelect: 'Choisissez un mois',\n yearSelect: 'Choisissez une année',\n decadeSelect: 'Choisissez une décennie',\n yearFormat: 'YYYY',\n dateFormat: 'DD/MM/YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD/MM/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mois précédent (PageUp)',\n nextMonth: 'Mois suivant (PageDown)',\n previousYear: 'Année précédente (Ctrl + gauche)',\n nextYear: 'Année prochaine (Ctrl + droite)',\n previousDecade: 'Décennie précédente',\n nextDecade: 'Décennie suivante',\n previousCentury: 'Siècle précédent',\n nextCentury: 'Siècle suivant'\n },\n timePickerLocale: {\n placeholder: \"Sélectionner l'heure\",\n rangePlaceholder: ['Heure de début', 'Heure de fin']\n }\n },\n global: {\n placeholder: 'Sélectionner'\n },\n Table: {\n filterTitle: 'Filtrer',\n filterConfirm: 'OK',\n filterReset: 'Réinitialiser',\n selectAll: 'Sélectionner la page actuelle',\n selectInvert: 'Inverser la sélection de la page actuelle',\n selectionAll: 'Sélectionner toutes les données',\n sortTitle: 'Trier',\n expand: 'Développer la ligne',\n collapse: 'Réduire la ligne',\n triggerDesc: 'Trier par ordre décroissant',\n triggerAsc: 'Trier par ordre croissant',\n cancelSort: 'Annuler le tri',\n filterEmptyText: 'Aucun filtre',\n emptyText: 'Aucune donnée',\n selectNone: 'Désélectionner toutes les données'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Annuler',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Annuler'\n },\n Transfer: {\n searchPlaceholder: 'Rechercher',\n itemUnit: 'élément',\n itemsUnit: 'éléments',\n titles: ['', ''],\n remove: 'Désélectionner',\n selectCurrent: 'Sélectionner la page actuelle',\n removeCurrent: 'Désélectionner la page actuelle',\n selectAll: 'Sélectionner toutes les données',\n removeAll: 'Désélectionner toutes les données',\n selectInvert: 'Inverser la sélection de la page actuelle'\n },\n Empty: {\n description: 'Aucune donnée'\n },\n Upload: {\n uploading: 'Téléchargement...',\n removeFile: 'Effacer le fichier',\n uploadError: 'Erreur de téléchargement',\n previewFile: 'Fichier de prévisualisation',\n downloadFile: 'Télécharger un fichier'\n },\n Text: {\n edit: 'Éditer',\n copy: 'Copier',\n copied: 'Copie effectuée',\n expand: 'Développer'\n },\n PageHeader: {\n back: 'Retour'\n },\n Icon: {\n icon: 'icône'\n },\n Image: {\n preview: 'Aperçu'\n },\n CronExpression: {\n cronError: 'Expression CRON invalide',\n second: 'seconde',\n minute: 'minute',\n hour: 'heure',\n day: 'jour',\n month: 'mois',\n week: 'semaine'\n },\n QRCode: {\n expired: 'QR code expiré',\n refresh: 'Rafraîchir'\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 */\nvar fr_FR = {\n locale: 'fr',\n Pagination: {\n items_per_page: '/ page',\n jump_to: 'Aller à',\n jump_to_confirm: 'confirmer',\n page: 'Page',\n prev_page: 'Page précédente',\n next_page: 'Page suivante',\n prev_5: '5 Pages précédentes',\n next_5: '5 Pages suivantes',\n prev_3: '3 Pages précédentes',\n next_3: '3 Pages suivantes',\n page_size: 'taille de la page'\n },\n DatePicker: {\n lang: {\n placeholder: 'Sélectionner une date',\n yearPlaceholder: 'Sélectionner une année',\n quarterPlaceholder: 'Sélectionner un trimestre',\n monthPlaceholder: 'Sélectionner un mois',\n weekPlaceholder: 'Sélectionner une semaine',\n rangePlaceholder: ['Date de début', 'Date de fin'],\n rangeYearPlaceholder: ['Année de début', 'Année de fin'],\n rangeMonthPlaceholder: ['Mois de début', 'Mois de fin'],\n rangeWeekPlaceholder: ['Semaine de début', 'Semaine de fin'],\n locale: 'fr_FR',\n today: \"Aujourd'hui\",\n now: 'Maintenant',\n backToToday: \"Aujourd'hui\",\n ok: 'Ok',\n clear: 'Rétablir',\n month: 'Mois',\n year: 'Année',\n timeSelect: \"Sélectionner l'heure\",\n dateSelect: 'Sélectionner la date',\n weekSelect: 'Choisissez une semaine',\n monthSelect: 'Choisissez un mois',\n yearSelect: 'Choisissez une année',\n decadeSelect: 'Choisissez une décennie',\n yearFormat: 'YYYY',\n dateFormat: 'DD/MM/YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD/MM/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mois précédent (PageUp)',\n nextMonth: 'Mois suivant (PageDown)',\n previousYear: 'Année précédente (Ctrl + gauche)',\n nextYear: 'Année prochaine (Ctrl + droite)',\n previousDecade: 'Décennie précédente',\n nextDecade: 'Décennie suivante',\n previousCentury: 'Siècle précédent',\n nextCentury: 'Siècle suivant'\n },\n timePickerLocale: {\n placeholder: \"Sélectionner l'heure\",\n rangePlaceholder: ['Heure de début', 'Heure de fin']\n }\n },\n TimePicker: {\n placeholder: \"Sélectionner l'heure\",\n rangePlaceholder: ['Heure de début', 'Heure de fin']\n },\n Calendar: {\n lang: {\n placeholder: 'Sélectionner une date',\n yearPlaceholder: 'Sélectionner une année',\n quarterPlaceholder: 'Sélectionner un trimestre',\n monthPlaceholder: 'Sélectionner un mois',\n weekPlaceholder: 'Sélectionner une semaine',\n rangePlaceholder: ['Date de début', 'Date de fin'],\n rangeYearPlaceholder: ['Année de début', 'Année de fin'],\n rangeMonthPlaceholder: ['Mois de début', 'Mois de fin'],\n rangeWeekPlaceholder: ['Semaine de début', 'Semaine de fin'],\n locale: 'fr_FR',\n today: \"Aujourd'hui\",\n now: 'Maintenant',\n backToToday: \"Aujourd'hui\",\n ok: 'Ok',\n clear: 'Rétablir',\n month: 'Mois',\n year: 'Année',\n timeSelect: \"Sélectionner l'heure\",\n dateSelect: 'Sélectionner la date',\n monthSelect: 'Choisissez un mois',\n yearSelect: 'Choisissez une année',\n decadeSelect: 'Choisissez une décennie',\n yearFormat: 'YYYY',\n dateFormat: 'DD/MM/YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD/MM/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mois précédent (PageUp)',\n nextMonth: 'Mois suivant (PageDown)',\n previousYear: 'Année précédente (Ctrl + gauche)',\n nextYear: 'Année prochaine (Ctrl + droite)',\n previousDecade: 'Décennie précédente',\n nextDecade: 'Décennie suivante',\n previousCentury: 'Siècle précédent',\n nextCentury: 'Siècle suivant'\n },\n timePickerLocale: {\n placeholder: \"Sélectionner l'heure\",\n rangePlaceholder: ['Heure de début', 'Heure de fin']\n }\n },\n global: {\n placeholder: 'Sélectionner'\n },\n Table: {\n filterTitle: 'Filtrer',\n filterConfirm: 'OK',\n filterReset: 'Réinitialiser',\n selectAll: 'Sélectionner la page actuelle',\n selectInvert: 'Inverser la sélection de la page actuelle',\n selectionAll: 'Sélectionner toutes les données',\n sortTitle: 'Trier',\n expand: 'Développer la ligne',\n collapse: 'Réduire la ligne',\n triggerDesc: 'Trier par ordre décroissant',\n triggerAsc: 'Trier par ordre croissant',\n cancelSort: 'Annuler le tri',\n filterEmptyText: 'Aucun filtre',\n emptyText: 'Aucune donnée',\n selectNone: 'Désélectionner toutes les données'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Annuler',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Annuler'\n },\n Transfer: {\n searchPlaceholder: 'Rechercher',\n itemUnit: 'élément',\n itemsUnit: 'éléments',\n titles: ['', ''],\n remove: 'Désélectionner',\n selectCurrent: 'Sélectionner la page actuelle',\n removeCurrent: 'Désélectionner la page actuelle',\n selectAll: 'Sélectionner toutes les données',\n removeAll: 'Désélectionner toutes les données',\n selectInvert: 'Inverser la sélection de la page actuelle'\n },\n Empty: {\n description: 'Aucune donnée'\n },\n Upload: {\n uploading: 'Téléchargement...',\n removeFile: 'Effacer le fichier',\n uploadError: 'Erreur de téléchargement',\n previewFile: 'Fichier de prévisualisation',\n downloadFile: 'Télécharger un fichier'\n },\n Text: {\n edit: 'Éditer',\n copy: 'Copier',\n copied: 'Copie effectuée',\n expand: 'Développer'\n },\n PageHeader: {\n back: 'Retour'\n },\n Icon: {\n icon: 'icône'\n },\n Image: {\n preview: 'Aperçu'\n },\n CronExpression: {\n cronError: 'Expression CRON invalide',\n second: 'seconde',\n minute: 'minute',\n hour: 'heure',\n day: 'jour',\n month: 'mois',\n week: 'semaine'\n },\n QRCode: {\n expired: 'QR code expiré',\n refresh: 'Rafraîchir'\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 */\nvar ga_IE = {\n locale: 'ga',\n Pagination: {\n items_per_page: '/ leathanach',\n jump_to: 'Téigh',\n jump_to_confirm: 'dheimhnigh',\n page: '',\n prev_page: 'Leathanach Roimhe Seo',\n next_page: 'An chéad leathanach eile',\n prev_5: '5 leathanach roimhe seo',\n next_5: 'Ar Aghaidh 5 Leathanaigh',\n prev_3: '3 leathanach roimhe seo',\n next_3: 'Ar Aghaidh 3 Leathanaigh',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Roghnaigh dáta',\n yearPlaceholder: 'Roghnaigh bliain',\n quarterPlaceholder: 'Roghnaigh ráithe',\n monthPlaceholder: 'Roghnaigh mí',\n weekPlaceholder: 'Roghnaigh seachtain',\n rangePlaceholder: ['Dáta tosaigh', 'Dáta deiridh'],\n rangeYearPlaceholder: ['Tús na bliana', 'Deireadh na bliana'],\n rangeMonthPlaceholder: ['Tosaigh mhí', 'Deireadh mhí'],\n rangeWeekPlaceholder: ['Tosaigh an tseachtain', 'Deireadh na seachtaine'],\n locale: 'ga_IE',\n today: 'inniu',\n now: 'anois',\n backToToday: 'Ar ais inniu',\n ok: 'ceart go leor',\n clear: 'soiléir',\n month: 'mhí',\n year: 'bhliain',\n timeSelect: 'roghnaigh am',\n dateSelect: 'roghnaigh dáta',\n weekSelect: 'Roghnaigh seachtain',\n monthSelect: 'Roghnaigh mí',\n yearSelect: 'Roghnaigh bliain',\n decadeSelect: 'Roghnaigh deich mbliana',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'An mhí roimhe seo (PageUp)',\n nextMonth: 'An mhí seo chugainn (PageDown)',\n previousYear: 'Anuraidh (Control + left)',\n nextYear: 'An bhliain seo chugainn (Control + right)',\n previousDecade: 'Le deich mbliana anuas',\n nextDecade: 'Deich mbliana amach romhainn',\n previousCentury: 'An chéid seo caite',\n nextCentury: 'An chéad aois eile'\n },\n timePickerLocale: {\n placeholder: 'Roghnaigh am',\n rangePlaceholder: ['Am tosaigh', 'Am deiridh']\n }\n },\n TimePicker: {\n placeholder: 'Roghnaigh am',\n rangePlaceholder: ['Am tosaigh', 'Am deiridh']\n },\n Calendar: {\n lang: {\n placeholder: 'Roghnaigh dáta',\n yearPlaceholder: 'Roghnaigh bliain',\n quarterPlaceholder: 'Roghnaigh ráithe',\n monthPlaceholder: 'Roghnaigh mí',\n weekPlaceholder: 'Roghnaigh seachtain',\n rangePlaceholder: ['Dáta tosaigh', 'Dáta deiridh'],\n rangeYearPlaceholder: ['Tús na bliana', 'Deireadh na bliana'],\n rangeMonthPlaceholder: ['Tosaigh mhí', 'Deireadh mhí'],\n rangeWeekPlaceholder: ['Tosaigh an tseachtain', 'Deireadh na seachtaine'],\n locale: 'ga_IE',\n today: 'inniu',\n now: 'anois',\n backToToday: 'Ar ais inniu',\n ok: 'ceart go leor',\n clear: 'soiléir',\n month: 'mhí',\n year: 'bhliain',\n timeSelect: 'roghnaigh am',\n dateSelect: 'roghnaigh dáta',\n weekSelect: 'Roghnaigh seachtain',\n monthSelect: 'Roghnaigh mí',\n yearSelect: 'Roghnaigh bliain',\n decadeSelect: 'Roghnaigh deich mbliana',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'An mhí roimhe seo (PageUp)',\n nextMonth: 'An mhí seo chugainn (PageDown)',\n previousYear: 'Anuraidh (Control + left)',\n nextYear: 'An bhliain seo chugainn (Control + right)',\n previousDecade: 'Le deich mbliana anuas',\n nextDecade: 'Deich mbliana amach romhainn',\n previousCentury: 'An chéid seo caite',\n nextCentury: 'An chéad aois eile'\n },\n timePickerLocale: {\n placeholder: 'Roghnaigh am',\n rangePlaceholder: ['Am tosaigh', 'Am deiridh']\n }\n },\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\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 */\nvar gl_ES = {\n locale: 'gl',\n Pagination: {\n items_per_page: '/ páxina',\n jump_to: 'Ir a',\n jump_to_confirm: 'confirmar',\n page: '',\n prev_page: 'Páxina anterior',\n next_page: 'Páxina seguinte',\n prev_5: '5 páxinas previas',\n next_5: '5 páxinas seguintes',\n prev_3: '3 páxinas previas',\n next_3: '3 páxinas seguintes',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Escolla data',\n rangePlaceholder: ['Data inicial', 'Data final'],\n locale: 'gl_ES',\n today: 'Hoxe',\n now: 'Agora',\n backToToday: 'Voltar a hoxe',\n ok: 'Aceptar',\n clear: 'Limpar',\n month: 'Mes',\n year: 'Ano',\n timeSelect: 'Seleccionar hora',\n dateSelect: 'Seleccionar data',\n monthSelect: 'Elexir un mes',\n yearSelect: 'Elexir un año',\n decadeSelect: 'Elexir unha década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mes anterior (PageUp)',\n nextMonth: 'Mes seguinte (PageDown)',\n previousYear: 'Ano anterior (Control + left)',\n nextYear: 'Ano seguinte (Control + right)',\n previousDecade: 'Década anterior',\n nextDecade: 'Década seguinte',\n previousCentury: 'Século anterior',\n nextCentury: 'Século seguinte'\n },\n timePickerLocale: {\n placeholder: 'Escolla hora'\n }\n },\n TimePicker: {\n placeholder: 'Escolla hora'\n },\n Calendar: {\n lang: {\n placeholder: 'Escolla data',\n rangePlaceholder: ['Data inicial', 'Data final'],\n locale: 'gl_ES',\n today: 'Hoxe',\n now: 'Agora',\n backToToday: 'Voltar a hoxe',\n ok: 'Aceptar',\n clear: 'Limpar',\n month: 'Mes',\n year: 'Ano',\n timeSelect: 'Seleccionar hora',\n dateSelect: 'Seleccionar data',\n monthSelect: 'Elexir un mes',\n yearSelect: 'Elexir un año',\n decadeSelect: 'Elexir unha década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mes anterior (PageUp)',\n nextMonth: 'Mes seguinte (PageDown)',\n previousYear: 'Ano anterior (Control + left)',\n nextYear: 'Ano seguinte (Control + right)',\n previousDecade: 'Década anterior',\n nextDecade: 'Década seguinte',\n previousCentury: 'Século anterior',\n nextCentury: 'Século seguinte'\n },\n timePickerLocale: {\n placeholder: 'Escolla hora'\n }\n },\n global: {\n placeholder: 'Escolla'\n },\n Table: {\n filterTitle: 'Filtrar menú',\n filterConfirm: 'Aceptar',\n filterReset: 'Reiniciar',\n selectAll: 'Seleccionar todo',\n selectInvert: 'Invertir selección',\n sortTitle: 'Ordenar'\n },\n Modal: {\n okText: 'Aceptar',\n cancelText: 'Cancelar',\n justOkText: 'Aceptar'\n },\n Popconfirm: {\n okText: 'Aceptar',\n cancelText: 'Cancelar'\n },\n Transfer: {\n searchPlaceholder: 'Buscar aquí',\n itemUnit: 'elemento',\n itemsUnit: 'elementos'\n },\n Upload: {\n uploading: 'Subindo...',\n removeFile: 'Eliminar arquivo',\n uploadError: 'Error ao subir o arquivo',\n previewFile: 'Vista previa',\n downloadFile: 'Descargar arquivo'\n },\n Empty: {\n description: 'Non hai datos'\n },\n Icon: {\n icon: 'icona'\n },\n Text: {\n edit: 'editar',\n copy: 'copiar',\n copied: 'copiado',\n expand: 'expandir'\n },\n PageHeader: {\n back: 'voltar'\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 */\nvar he_IL = {\n locale: 'he',\n Pagination: {\n items_per_page: '/ עמוד',\n jump_to: 'עבור אל',\n jump_to_confirm: 'אישור',\n page: '',\n prev_page: 'העמוד הקודם',\n next_page: 'העמוד הבא',\n prev_5: '5 עמודים קודמים',\n next_5: '5 עמודים הבאים',\n prev_3: '3 עמודים קודמים',\n next_3: '3 עמודים הבאים',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'בחר תאריך',\n rangePlaceholder: ['תאריך התחלה', 'תאריך סיום'],\n locale: 'he_IL',\n today: 'היום',\n now: 'עכשיו',\n backToToday: 'חזור להיום',\n ok: 'אישור',\n clear: 'איפוס',\n month: 'חודש',\n year: 'שנה',\n timeSelect: 'בחר שעה',\n dateSelect: 'בחר תאריך',\n weekSelect: 'בחר שבוע',\n monthSelect: 'בחר חודש',\n yearSelect: 'בחר שנה',\n decadeSelect: 'בחר עשור',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'חודש קודם (PageUp)',\n nextMonth: 'חודש הבא (PageDown)',\n previousYear: 'שנה שעברה (Control + left)',\n nextYear: 'שנה הבאה (Control + right)',\n previousDecade: 'העשור הקודם',\n nextDecade: 'העשור הבא',\n previousCentury: 'המאה הקודמת',\n nextCentury: 'המאה הבאה'\n },\n timePickerLocale: {\n placeholder: 'בחר שעה'\n }\n },\n TimePicker: {\n placeholder: 'בחר שעה'\n },\n Calendar: {\n lang: {\n placeholder: 'בחר תאריך',\n rangePlaceholder: ['תאריך התחלה', 'תאריך סיום'],\n locale: 'he_IL',\n today: 'היום',\n now: 'עכשיו',\n backToToday: 'חזור להיום',\n ok: 'אישור',\n clear: 'איפוס',\n month: 'חודש',\n year: 'שנה',\n timeSelect: 'בחר שעה',\n dateSelect: 'בחר תאריך',\n weekSelect: 'בחר שבוע',\n monthSelect: 'בחר חודש',\n yearSelect: 'בחר שנה',\n decadeSelect: 'בחר עשור',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'חודש קודם (PageUp)',\n nextMonth: 'חודש הבא (PageDown)',\n previousYear: 'שנה שעברה (Control + left)',\n nextYear: 'שנה הבאה (Control + right)',\n previousDecade: 'העשור הקודם',\n nextDecade: 'העשור הבא',\n previousCentury: 'המאה הקודמת',\n nextCentury: 'המאה הבאה'\n },\n timePickerLocale: {\n placeholder: 'בחר שעה'\n }\n },\n global: {\n placeholder: 'אנא בחר'\n },\n Table: {\n filterTitle: 'תפריט סינון',\n filterConfirm: 'אישור',\n filterReset: 'איפוס',\n selectAll: 'בחר הכל',\n selectInvert: 'הפוך בחירה',\n selectionAll: 'בחר את כל הנתונים',\n sortTitle: 'מיון',\n expand: 'הרחב שורה',\n collapse: 'צמצם שורהw',\n triggerDesc: 'לחץ על מיון לפי סדר יורד',\n triggerAsc: 'לחץ על מיון לפי סדר עולה',\n cancelSort: 'לחץ כדי לבטל את המיון'\n },\n Modal: {\n okText: 'אישור',\n cancelText: 'ביטול',\n justOkText: 'אישור'\n },\n Popconfirm: {\n okText: 'אישור',\n cancelText: 'ביטול'\n },\n Transfer: {\n searchPlaceholder: 'חפש כאן',\n itemUnit: 'פריט',\n itemsUnit: 'פריטים'\n },\n Upload: {\n uploading: 'מעלה...',\n removeFile: 'הסר קובץ',\n uploadError: 'שגיאת העלאה',\n previewFile: 'הצג קובץ',\n downloadFile: 'הורד קובץ'\n },\n Empty: {\n description: 'אין מידע'\n },\n Icon: {\n icon: 'סמל'\n },\n Text: {\n edit: 'ערוך',\n copy: 'העתק',\n copied: 'הועתק',\n expand: 'הרחב'\n },\n PageHeader: {\n back: 'חזרה'\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 */\nvar hi_IN = {\n locale: 'hi',\n Pagination: {\n items_per_page: '/ पृष्ठ',\n jump_to: 'इस पर चलें',\n jump_to_confirm: 'पुष्टि करें',\n page: '',\n prev_page: 'पिछला पृष्ठ',\n next_page: 'अगला पृष्ठ',\n prev_5: 'पिछले 5 पृष्ठ',\n next_5: 'अगले 5 पृष्ठ',\n prev_3: 'पिछले 3 पृष्ठ',\n next_3: 'अगले 3 पेज',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'तारीख़ चुनें',\n rangePlaceholder: ['प्रारंभ तिथि', 'समाप्ति तिथि'],\n locale: 'hi_IN',\n today: 'आज',\n now: 'अभी',\n backToToday: 'आज तक',\n ok: 'ठीक',\n clear: 'स्पष्ट',\n month: 'महीना',\n year: 'साल',\n timeSelect: 'समय का चयन करें',\n dateSelect: 'तारीख़ चुनें',\n weekSelect: 'एक सप्ताह चुनें',\n monthSelect: 'एक महीना चुनें',\n yearSelect: 'एक वर्ष चुनें',\n decadeSelect: 'एक दशक चुनें',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'पिछला महीना (पेजअप)',\n nextMonth: 'अगले महीने (पेजडाउन)',\n previousYear: 'पिछले साल (Ctrl + बाएं)',\n nextYear: 'अगले साल (Ctrl + दाहिना)',\n previousDecade: 'पिछला दशक',\n nextDecade: 'अगले दशक',\n previousCentury: 'पीछ्ली शताब्दी',\n nextCentury: 'अगली सदी',\n yearPlaceholder: 'वर्ष चुनें',\n quarterPlaceholder: 'तिमाही चुनें',\n monthPlaceholder: 'महीना चुनिए',\n weekPlaceholder: 'सप्ताह चुनें',\n rangeYearPlaceholder: ['आरंभिक वर्ष', 'अंत वर्ष'],\n rangeMonthPlaceholder: ['आरंभिक महीना', 'अंत महीना'],\n rangeWeekPlaceholder: ['आरंभिक सप्ताह', 'अंत सप्ताह']\n },\n timePickerLocale: {\n placeholder: 'समय का चयन करें',\n rangePlaceholder: ['आरंभिक समय', 'अंत समय']\n }\n },\n TimePicker: {\n placeholder: 'समय का चयन करें',\n rangePlaceholder: ['आरंभिक समय', 'अंत समय']\n },\n Calendar: {\n lang: {\n placeholder: 'तारीख़ चुनें',\n rangePlaceholder: ['प्रारंभ तिथि', 'समाप्ति तिथि'],\n locale: 'hi_IN',\n today: 'आज',\n now: 'अभी',\n backToToday: 'आज तक',\n ok: 'ठीक',\n clear: 'स्पष्ट',\n month: 'महीना',\n year: 'साल',\n timeSelect: 'समय का चयन करें',\n dateSelect: 'तारीख़ चुनें',\n weekSelect: 'एक सप्ताह चुनें',\n monthSelect: 'एक महीना चुनें',\n yearSelect: 'एक वर्ष चुनें',\n decadeSelect: 'एक दशक चुनें',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'पिछला महीना (पेजअप)',\n nextMonth: 'अगले महीने (पेजडाउन)',\n previousYear: 'पिछले साल (Ctrl + बाएं)',\n nextYear: 'अगले साल (Ctrl + दाहिना)',\n previousDecade: 'पिछला दशक',\n nextDecade: 'अगले दशक',\n previousCentury: 'पीछ्ली शताब्दी',\n nextCentury: 'अगली सदी',\n yearPlaceholder: 'वर्ष चुनें',\n quarterPlaceholder: 'तिमाही चुनें',\n monthPlaceholder: 'महीना चुनिए',\n weekPlaceholder: 'सप्ताह चुनें',\n rangeYearPlaceholder: ['आरंभिक वर्ष', 'अंत वर्ष'],\n rangeMonthPlaceholder: ['आरंभिक महीना', 'अंत महीना'],\n rangeWeekPlaceholder: ['आरंभिक सप्ताह', 'अंत सप्ताह']\n },\n timePickerLocale: {\n placeholder: 'समय का चयन करें',\n rangePlaceholder: ['आरंभिक समय', 'अंत समय']\n }\n },\n global: {\n placeholder: 'कृपया चुनें'\n },\n Table: {\n filterTitle: 'सूची बंद करें',\n filterConfirm: 'अच्छी तरह से',\n filterReset: 'रीसेट',\n emptyText: 'कोई जानकारी नहीं',\n selectAll: 'वर्तमान पृष्ठ का चयन करें',\n selectInvert: 'वर्तमान पृष्ठ घुमाएं',\n sortTitle: 'द्वारा क्रमबद्ध करें',\n filterEmptyText: 'कोई फ़िल्टर नहीं',\n selectNone: 'सभी डेटा साफ़ करें',\n selectionAll: 'सभी डेटा का चयन करें',\n expand: 'पंक्ति का विस्तार करें',\n collapse: 'पंक्ति संक्षिप्त करें',\n triggerDesc: 'अवरोही क्रमित करने के लिए क्लिक करें',\n triggerAsc: 'आरोही क्रमित करने के लिए क्लिक करें',\n cancelSort: 'छँटाई रद्द करने के लिए क्लिक करें'\n },\n Modal: {\n okText: 'अच्छी तरह से',\n cancelText: 'रद्द करना',\n justOkText: 'अच्छी तरह से'\n },\n Popconfirm: {\n okText: 'अच्छी तरह से',\n cancelText: 'रद्द करना'\n },\n Transfer: {\n titles: ['', ''],\n notFoundContent: 'नहीं मिला',\n searchPlaceholder: 'यहां खोजें',\n itemUnit: 'तत्त्व',\n itemsUnit: 'विषय-वस्तु',\n remove: 'हटाए',\n selectCurrent: 'वर्तमान पृष्ठ का चयन करें',\n removeCurrent: 'वर्तमान पृष्ठ हटाएं',\n selectAll: 'सभी डेटा का चयन करें',\n removeAll: 'सभी डेटा हटाएं',\n selectInvert: 'वर्तमान पृष्ठ को उल्टा करें'\n },\n Select: {\n notFoundContent: 'नहीं मिला'\n },\n Upload: {\n uploading: 'अपलोड हो रहा...',\n removeFile: 'फ़ाइल निकालें',\n uploadError: 'अपलोड में त्रुटि',\n previewFile: 'फ़ाइल पूर्वावलोकन',\n downloadFile: 'फ़ाइल डाउनलोड करें'\n },\n Empty: {\n description: 'कोई आकड़ा उपलब्ध नहीं है'\n },\n Icon: {\n icon: 'आइकन'\n },\n Text: {\n edit: 'संपादित करें',\n copy: 'प्रतिलिपि',\n copied: 'कॉपी किया गया',\n expand: 'विस्तार'\n },\n PageHeader: {\n back: 'वापस'\n },\n Image: {\n preview: 'पूर्वावलोकन'\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 */\nvar hr_HR = {\n locale: 'hr',\n Pagination: {\n items_per_page: '/ str',\n jump_to: 'Idi na',\n jump_to_confirm: 'potvrdi',\n page: '',\n prev_page: 'Prijašnja stranica',\n next_page: 'Sljedeća stranica',\n prev_5: 'Prijašnjih 5 stranica',\n next_5: 'Sljedećih 5 stranica',\n prev_3: 'Prijašnje 3 stranice',\n next_3: 'Sljedeće 3 stranice',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Odaberite datum',\n rangePlaceholder: ['Početni datum', 'Završni datum'],\n locale: 'hr_HR',\n today: 'Danas',\n now: 'Sad',\n backToToday: 'Natrag na danas',\n ok: 'Ok',\n clear: 'Očisti',\n month: 'Mjesec',\n year: 'Godina',\n timeSelect: 'odaberite vrijeme',\n dateSelect: 'odaberite datum',\n weekSelect: 'Odaberite tjedan',\n monthSelect: 'Odaberite mjesec',\n yearSelect: 'Odaberite godinu',\n decadeSelect: 'Odaberite desetljeće',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Prošli mjesec (PageUp)',\n nextMonth: 'Sljedeći mjesec (PageDown)',\n previousYear: 'Prošla godina (Control + left)',\n nextYear: 'Sljedeća godina (Control + right)',\n previousDecade: 'Prošlo desetljeće',\n nextDecade: 'Sljedeće desetljeće',\n previousCentury: 'Prošlo stoljeće',\n nextCentury: 'Sljedeće stoljeće',\n yearPlaceholder: 'Odaberite godinu',\n quarterPlaceholder: 'Odaberite četvrtinu',\n monthPlaceholder: 'Odaberite mjesec',\n weekPlaceholder: 'Odaberite tjedan',\n rangeYearPlaceholder: ['Početna godina', 'Završna godina'],\n rangeMonthPlaceholder: ['Početni mjesec', 'Završni mjesec'],\n rangeWeekPlaceholder: ['Početni tjedan', 'Završni tjedan']\n },\n timePickerLocale: {\n placeholder: 'Odaberite vrijeme',\n rangePlaceholder: ['Vrijeme početka', 'Vrijeme završetka']\n }\n },\n TimePicker: {\n placeholder: 'Odaberite vrijeme',\n rangePlaceholder: ['Vrijeme početka', 'Vrijeme završetka']\n },\n Calendar: {\n lang: {\n placeholder: 'Odaberite datum',\n rangePlaceholder: ['Početni datum', 'Završni datum'],\n locale: 'hr_HR',\n today: 'Danas',\n now: 'Sad',\n backToToday: 'Natrag na danas',\n ok: 'Ok',\n clear: 'Očisti',\n month: 'Mjesec',\n year: 'Godina',\n timeSelect: 'odaberite vrijeme',\n dateSelect: 'odaberite datum',\n weekSelect: 'Odaberite tjedan',\n monthSelect: 'Odaberite mjesec',\n yearSelect: 'Odaberite godinu',\n decadeSelect: 'Odaberite desetljeće',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Prošli mjesec (PageUp)',\n nextMonth: 'Sljedeći mjesec (PageDown)',\n previousYear: 'Prošla godina (Control + left)',\n nextYear: 'Sljedeća godina (Control + right)',\n previousDecade: 'Prošlo desetljeće',\n nextDecade: 'Sljedeće desetljeće',\n previousCentury: 'Prošlo stoljeće',\n nextCentury: 'Sljedeće stoljeće',\n yearPlaceholder: 'Odaberite godinu',\n quarterPlaceholder: 'Odaberite četvrtinu',\n monthPlaceholder: 'Odaberite mjesec',\n weekPlaceholder: 'Odaberite tjedan',\n rangeYearPlaceholder: ['Početna godina', 'Završna godina'],\n rangeMonthPlaceholder: ['Početni mjesec', 'Završni mjesec'],\n rangeWeekPlaceholder: ['Početni tjedan', 'Završni tjedan']\n },\n timePickerLocale: {\n placeholder: 'Odaberite vrijeme',\n rangePlaceholder: ['Vrijeme početka', 'Vrijeme završetka']\n }\n },\n global: {\n placeholder: 'Molimo označite'\n },\n Table: {\n filterTitle: 'Filter meni',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n selectAll: 'Označi trenutnu stranicu',\n selectInvert: 'Invertiraj trenutnu stranicu',\n sortTitle: 'Sortiraj',\n filterEmptyText: 'Nema filtera',\n emptyText: 'Nema podataka',\n selectionAll: 'Odaberite sve podatke',\n expand: 'Proširi redak',\n collapse: 'Sažmi redak',\n triggerDesc: 'Kliknite za sortiranje silazno',\n triggerAsc: 'Kliknite za sortiranje uzlazno',\n cancelSort: 'Kliknite da biste otkazali sortiranje'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Odustani',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Odustani'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Pretraži ovdje',\n itemUnit: 'stavka',\n itemsUnit: 'stavke',\n remove: 'Ukloniti',\n selectCurrent: 'Odaberite trenutnu stranicu',\n removeCurrent: 'Ukloni trenutnu stranicu',\n selectAll: 'Odaberite sve podatke',\n removeAll: 'Uklonite sve podatke',\n selectInvert: 'Obrni trenutnu stranicu'\n },\n Upload: {\n uploading: 'Upload u tijeku...',\n removeFile: 'Makni datoteku',\n uploadError: 'Greška kod uploada',\n previewFile: 'Pogledaj datoteku',\n downloadFile: 'Preuzmi datoteku'\n },\n Empty: {\n description: 'Nema podataka'\n },\n Icon: {\n icon: 'ikona'\n },\n Text: {\n edit: 'Uredi',\n copy: 'Kopiraj',\n copied: 'Kopiranje uspješno',\n expand: 'Proširi'\n },\n PageHeader: {\n back: 'Natrag'\n },\n Image: {\n preview: 'Pregled'\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 */\nvar hu_HU = {\n locale: 'hu',\n Pagination: {\n items_per_page: '/ oldal',\n jump_to: 'Ugrás',\n jump_to_confirm: 'megerősít',\n page: '',\n prev_page: 'Előző oldal',\n next_page: 'Következő oldal',\n prev_5: 'Előző 5 oldal',\n next_5: 'Következő 5 oldal',\n prev_3: 'Előző 3 oldal',\n next_3: 'Következő 3 oldal',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Válasszon dátumot',\n yearPlaceholder: 'Válasszon évet',\n quarterPlaceholder: 'Válasszon negyedévet',\n monthPlaceholder: 'Válasszon hónapot',\n weekPlaceholder: 'Válasszon hetet',\n rangePlaceholder: ['Kezdő dátum', 'Befejezés dátuma'],\n rangeYearPlaceholder: ['Kezdő év', 'Befejezés éve'],\n rangeMonthPlaceholder: ['Kezdő hónap', 'Befejezés hónapja'],\n rangeWeekPlaceholder: ['Kezdő hét', 'Befejezés hete'],\n locale: 'hu_HU',\n today: 'Ma',\n now: 'Most',\n backToToday: 'Vissza a mai napra',\n ok: 'Ok',\n clear: 'Törlés',\n month: 'Hónap',\n year: 'Év',\n timeSelect: 'Időpont kiválasztása',\n dateSelect: 'Dátum kiválasztása',\n weekSelect: 'Hét kiválasztása',\n monthSelect: 'Hónap kiválasztása',\n yearSelect: 'Év kiválasztása',\n decadeSelect: 'Évtized kiválasztása',\n yearFormat: 'YYYY',\n dateFormat: 'YYYY/MM/DD',\n dayFormat: 'DD',\n dateTimeFormat: 'YYYY/MM/DD HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Előző hónap (PageUp)',\n nextMonth: 'Következő hónap (PageDown)',\n previousYear: 'Múlt év (Control + left)',\n nextYear: 'Jövő év (Control + right)',\n previousDecade: 'Előző évtized',\n nextDecade: 'Következő évtized',\n previousCentury: 'Múlt évszázad',\n nextCentury: 'Jövő évszázad'\n },\n timePickerLocale: {\n placeholder: 'Válasszon időt',\n rangePlaceholder: ['Kezdő idő', 'Befejezés ideje']\n }\n },\n TimePicker: {\n placeholder: 'Válasszon időt',\n rangePlaceholder: ['Kezdő idő', 'Befejezés ideje']\n },\n Calendar: {\n lang: {\n placeholder: 'Válasszon dátumot',\n yearPlaceholder: 'Válasszon évet',\n quarterPlaceholder: 'Válasszon negyedévet',\n monthPlaceholder: 'Válasszon hónapot',\n weekPlaceholder: 'Válasszon hetet',\n rangePlaceholder: ['Kezdő dátum', 'Befejezés dátuma'],\n rangeYearPlaceholder: ['Kezdő év', 'Befejezés éve'],\n rangeMonthPlaceholder: ['Kezdő hónap', 'Befejezés hónapja'],\n rangeWeekPlaceholder: ['Kezdő hét', 'Befejezés hete'],\n locale: 'hu_HU',\n today: 'Ma',\n now: 'Most',\n backToToday: 'Vissza a mai napra',\n ok: 'Ok',\n clear: 'Törlés',\n month: 'Hónap',\n year: 'Év',\n timeSelect: 'Időpont kiválasztása',\n dateSelect: 'Dátum kiválasztása',\n weekSelect: 'Hét kiválasztása',\n monthSelect: 'Hónap kiválasztása',\n yearSelect: 'Év kiválasztása',\n decadeSelect: 'Évtized kiválasztása',\n yearFormat: 'YYYY',\n dateFormat: 'YYYY/MM/DD',\n dayFormat: 'DD',\n dateTimeFormat: 'YYYY/MM/DD HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Előző hónap (PageUp)',\n nextMonth: 'Következő hónap (PageDown)',\n previousYear: 'Múlt év (Control + left)',\n nextYear: 'Jövő év (Control + right)',\n previousDecade: 'Előző évtized',\n nextDecade: 'Következő évtized',\n previousCentury: 'Múlt évszázad',\n nextCentury: 'Jövő évszázad'\n },\n timePickerLocale: {\n placeholder: 'Válasszon időt',\n rangePlaceholder: ['Kezdő idő', 'Befejezés ideje']\n }\n },\n global: {\n placeholder: 'Kérlek, válassz'\n },\n Table: {\n filterTitle: 'Szűrők',\n filterConfirm: 'Alkalmazás',\n filterReset: 'Visszaállítás',\n filterEmptyText: 'No filters',\n emptyText: 'Nincs adat',\n selectAll: 'Jelenlegi oldal kiválasztása',\n selectInvert: 'Jelenlegi oldal inverze',\n selectionAll: 'Összes adat kiválasztása',\n sortTitle: 'Rendezés',\n expand: 'Sor kinyitása',\n collapse: 'Sor becsukása',\n triggerDesc: 'Kattintson a csökkenő sorrendbe rendezéshez',\n triggerAsc: 'Kattintson a növekvő sorrendbe rendezéshez',\n cancelSort: 'Kattintson a rendezés visszavonásához',\n selectNone: 'Összes visszavonása'\n },\n Modal: {\n okText: 'Alkalmazás',\n cancelText: 'Visszavonás',\n justOkText: 'Alkalmazás'\n },\n Popconfirm: {\n okText: 'Alkalmazás',\n cancelText: 'Visszavonás'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Keresés',\n itemUnit: 'elem',\n itemsUnit: 'elemek',\n remove: 'Eltávolít',\n selectCurrent: 'Jelenlegi oldal kiválasztása',\n removeCurrent: 'Jelenlegi oldal eltávolítása',\n selectAll: 'Összes adat kiválasztása',\n removeAll: 'Összes adat eltávolítása',\n selectInvert: 'Jelenlegi oldal inverze'\n },\n Upload: {\n uploading: 'Feltöltés...',\n removeFile: 'Fájl eltávolítása',\n uploadError: 'Feltöltési hiba',\n previewFile: 'Fájl előnézet',\n downloadFile: 'Fájl letöltése'\n },\n Empty: {\n description: 'Nincs adat'\n },\n Icon: {\n icon: 'ikon'\n },\n Text: {\n edit: 'Szerkesztés',\n copy: 'Másolás',\n copied: 'Másolva',\n expand: 'Kiterjesztés'\n },\n PageHeader: {\n back: 'Vissza'\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 */\nvar hy_AM = {\n locale: 'hy-am',\n Pagination: {\n items_per_page: '/ էջ',\n jump_to: 'Գնալ',\n jump_to_confirm: 'հաստատել',\n page: '',\n prev_page: 'Նախորդ Էջ',\n next_page: 'Հաջորդ Էջ',\n prev_5: 'Նախորդ 5 Էջերը',\n next_5: 'Հաջորդ 5 Էջերը',\n prev_3: 'Նախորդ 3 Էջերը',\n next_3: 'Հաջորդ 3 Էջերը'\n },\n DatePicker: {\n lang: {\n locale: 'hy-am',\n placeholder: 'Ընտրեք ամսաթիվը',\n rangePlaceholder: ['Մեկնարկի ամսաթիվ', 'Ավարտի ամսաթիվը'],\n today: 'Այսօր',\n now: 'Հիմա',\n backToToday: 'Վերադառնալ այսօր',\n ok: 'Օկ',\n clear: 'Մաքրել',\n month: 'Ամիս',\n year: 'Տարի',\n timeSelect: 'ընտրեք ժամը',\n dateSelect: 'ընտրեք ամսաթիվը',\n weekSelect: 'Ընտրեք շաբաթը',\n monthSelect: 'Ընտրեք ամիսը',\n yearSelect: 'Ընտրեք տարին',\n decadeSelect: 'Ընտրեք տասնամյակը',\n yearFormat: 'YYYY',\n dateFormat: 'DD/MM//YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD/MM//YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Անցած ամիս (PageUp)',\n nextMonth: 'Մյուս ամիս (PageDown)',\n previousYear: 'Անցած տարի (Control + left)',\n nextYear: 'Մյուս տարի (Control + right)',\n previousDecade: 'Անցած տասնամյակ',\n nextDecade: 'Մյուս տասնամյակ',\n previousCentury: 'Անցած դար',\n nextCentury: 'Մյուս դար'\n },\n timePickerLocale: {\n placeholder: 'Ընտրեք ժամը'\n }\n },\n TimePicker: {\n placeholder: 'Ընտրեք ժամը'\n },\n Calendar: {\n lang: {\n locale: 'hy-am',\n placeholder: 'Ընտրեք ամսաթիվը',\n rangePlaceholder: ['Մեկնարկի ամսաթիվ', 'Ավարտի ամսաթիվը'],\n today: 'Այսօր',\n now: 'Հիմա',\n backToToday: 'Վերադառնալ այսօր',\n ok: 'Օկ',\n clear: 'Մաքրել',\n month: 'Ամիս',\n year: 'Տարի',\n timeSelect: 'ընտրեք ժամը',\n dateSelect: 'ընտրեք ամսաթիվը',\n weekSelect: 'Ընտրեք շաբաթը',\n monthSelect: 'Ընտրեք ամիսը',\n yearSelect: 'Ընտրեք տարին',\n decadeSelect: 'Ընտրեք տասնամյակը',\n yearFormat: 'YYYY',\n dateFormat: 'DD/MM//YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD/MM//YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Անցած ամիս (PageUp)',\n nextMonth: 'Մյուս ամիս (PageDown)',\n previousYear: 'Անցած տարի (Control + left)',\n nextYear: 'Մյուս տարի (Control + right)',\n previousDecade: 'Անցած տասնամյակ',\n nextDecade: 'Մյուս տասնամյակ',\n previousCentury: 'Անցած դար',\n nextCentury: 'Մյուս դար'\n },\n timePickerLocale: {\n placeholder: 'Ընտրեք ժամը'\n }\n },\n global: {\n placeholder: 'Ընտրեք'\n },\n Table: {\n filterTitle: 'ֆիլտրի ընտրացանկ',\n filterConfirm: 'ֆիլտրել',\n filterReset: 'Զրոյացնել',\n selectAll: 'Ընտրեք ընթացիկ էջը',\n selectInvert: 'Փոխարկել ընթացիկ էջը',\n sortTitle: 'Տեսակավորել',\n expand: 'Ընդլայնեք տողը',\n collapse: 'Կրճատել տողը'\n },\n Modal: {\n okText: 'Օկ',\n cancelText: 'Չեղարկել',\n justOkText: 'Օկ'\n },\n Popconfirm: {\n okText: 'Հաստատել',\n cancelText: 'Մերժել'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Որոնեք այստեղ',\n itemUnit: 'պարագան',\n itemsUnit: 'պարագաները'\n },\n Upload: {\n uploading: 'Ներբեռնում...',\n removeFile: 'Հեռացնել ֆայլը',\n uploadError: 'Ներբեռնման սխալ',\n previewFile: 'Դիտել ֆայլը',\n downloadFile: 'Ներբեռնել ֆայլը'\n },\n Empty: {\n description: 'Տվյալներ չկան'\n },\n Icon: {\n icon: 'պատկեր'\n },\n Text: {\n edit: 'Խմբագրել',\n copy: 'Պատճենել',\n copied: 'Պատճենվել է',\n expand: 'Տեսնել ավելին'\n },\n PageHeader: {\n back: 'Հետ'\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 */\nvar id_ID = {\n locale: 'id',\n Pagination: {\n items_per_page: '/ halaman',\n jump_to: 'Menuju',\n jump_to_confirm: 'konfirmasi',\n page: 'Halaman',\n prev_page: 'Halaman Sebelumnya',\n next_page: 'Halaman Berikutnya',\n prev_5: '5 Halaman Sebelumnya',\n next_5: '5 Halaman Berikutnya',\n prev_3: '3 Halaman Sebelumnya',\n next_3: '3 Halaman Berikutnya',\n page_size: 'ukuran halaman'\n },\n DatePicker: {\n lang: {\n placeholder: 'Pilih tanggal',\n rangePlaceholder: ['Mulai tanggal', 'Tanggal akhir'],\n locale: 'id_ID',\n today: 'Hari ini',\n now: 'Sekarang',\n backToToday: 'Kembali ke hari ini',\n ok: 'Baik',\n clear: 'Bersih',\n month: 'Bulan',\n year: 'Tahun',\n timeSelect: 'pilih waktu',\n dateSelect: 'pilih tanggal',\n weekSelect: 'Pilih satu minggu',\n monthSelect: 'Pilih satu bulan',\n yearSelect: 'Pilih satu tahun',\n decadeSelect: 'Pilih satu dekade',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Bulan sebelumnya (PageUp)',\n nextMonth: 'Bulan selanjutnya (PageDown)',\n previousYear: 'Tahun lalu (Control + kiri)',\n nextYear: 'Tahun selanjutnya (Kontrol + kanan)',\n previousDecade: 'Dekade terakhir',\n nextDecade: 'Dekade berikutnya',\n previousCentury: 'Abad terakhir',\n nextCentury: 'Abad berikutnya'\n },\n timePickerLocale: {\n placeholder: 'Pilih waktu'\n }\n },\n TimePicker: {\n placeholder: 'Pilih waktu'\n },\n Calendar: {\n lang: {\n placeholder: 'Pilih tanggal',\n rangePlaceholder: ['Mulai tanggal', 'Tanggal akhir'],\n locale: 'id_ID',\n today: 'Hari ini',\n now: 'Sekarang',\n backToToday: 'Kembali ke hari ini',\n ok: 'Baik',\n clear: 'Bersih',\n month: 'Bulan',\n year: 'Tahun',\n timeSelect: 'pilih waktu',\n dateSelect: 'pilih tanggal',\n weekSelect: 'Pilih satu minggu',\n monthSelect: 'Pilih satu bulan',\n yearSelect: 'Pilih satu tahun',\n decadeSelect: 'Pilih satu dekade',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Bulan sebelumnya (PageUp)',\n nextMonth: 'Bulan selanjutnya (PageDown)',\n previousYear: 'Tahun lalu (Control + kiri)',\n nextYear: 'Tahun selanjutnya (Kontrol + kanan)',\n previousDecade: 'Dekade terakhir',\n nextDecade: 'Dekade berikutnya',\n previousCentury: 'Abad terakhir',\n nextCentury: 'Abad berikutnya'\n },\n timePickerLocale: {\n placeholder: 'Pilih waktu'\n }\n },\n Table: {\n filterTitle: 'Saring',\n filterConfirm: 'OK',\n filterReset: 'Hapus',\n selectAll: 'Pilih semua di halaman ini',\n selectInvert: 'Balikkan pilihan di halaman ini',\n sortTitle: 'Urutkan'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Batal',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Batal'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Cari',\n itemUnit: 'item',\n itemsUnit: 'item'\n },\n Upload: {\n uploading: 'Mengunggah...',\n removeFile: 'Hapus file',\n uploadError: 'Kesalahan pengunggahan',\n previewFile: 'File pratinjau',\n downloadFile: 'Unduh berkas'\n },\n Empty: {\n description: 'Tidak ada data'\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 */\nvar is_IS = {\n locale: 'is',\n Pagination: {\n items_per_page: '/ síðu',\n jump_to: 'Síða',\n jump_to_confirm: 'staðfest',\n page: '',\n prev_page: 'Fyrri síða',\n next_page: 'Næsta síða',\n prev_5: 'Til baka 5 síður',\n next_5: 'Áfram 5 síður',\n prev_3: 'Til baka 3 síður',\n next_3: 'Áfram 3 síður',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Veldu dag',\n rangePlaceholder: ['Upphafsdagur', 'Lokadagur'],\n locale: 'is_IS',\n today: 'Í dag',\n now: 'Núna',\n backToToday: 'Til baka til dagsins í dag',\n ok: 'Í lagi',\n clear: 'Hreinsa',\n month: 'Mánuður',\n year: 'Ár',\n timeSelect: 'Velja tíma',\n dateSelect: 'Velja dag',\n monthSelect: 'Velja mánuð',\n yearSelect: 'Velja ár',\n decadeSelect: 'Velja áratug',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Fyrri mánuður (PageUp)',\n nextMonth: 'Næsti mánuður (PageDown)',\n previousYear: 'Fyrra ár (Control + left)',\n nextYear: 'Næsta ár (Control + right)',\n previousDecade: 'Fyrri áratugur',\n nextDecade: 'Næsti áratugur',\n previousCentury: 'Fyrri öld',\n nextCentury: 'Næsta öld'\n },\n timePickerLocale: {\n placeholder: 'Velja tíma'\n }\n },\n TimePicker: {\n placeholder: 'Velja tíma'\n },\n Calendar: {\n lang: {\n placeholder: 'Veldu dag',\n rangePlaceholder: ['Upphafsdagur', 'Lokadagur'],\n locale: 'is_IS',\n today: 'Í dag',\n now: 'Núna',\n backToToday: 'Til baka til dagsins í dag',\n ok: 'Í lagi',\n clear: 'Hreinsa',\n month: 'Mánuður',\n year: 'Ár',\n timeSelect: 'Velja tíma',\n dateSelect: 'Velja dag',\n monthSelect: 'Velja mánuð',\n yearSelect: 'Velja ár',\n decadeSelect: 'Velja áratug',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Fyrri mánuður (PageUp)',\n nextMonth: 'Næsti mánuður (PageDown)',\n previousYear: 'Fyrra ár (Control + left)',\n nextYear: 'Næsta ár (Control + right)',\n previousDecade: 'Fyrri áratugur',\n nextDecade: 'Næsti áratugur',\n previousCentury: 'Fyrri öld',\n nextCentury: 'Næsta öld'\n },\n timePickerLocale: {\n placeholder: 'Velja tíma'\n }\n },\n Table: {\n filterTitle: 'Afmarkanir',\n filterConfirm: 'Staðfesta',\n filterReset: 'Núllstilla',\n selectAll: 'Velja allt',\n selectInvert: 'Viðsnúa vali'\n },\n Modal: {\n okText: 'Áfram',\n cancelText: 'Hætta við',\n justOkText: 'Í lagi'\n },\n Popconfirm: {\n okText: 'Áfram',\n cancelText: 'Hætta við'\n },\n Transfer: {\n searchPlaceholder: 'Leita hér',\n itemUnit: 'færsla',\n itemsUnit: 'færslur'\n },\n Upload: {\n uploading: 'Hleð upp...',\n removeFile: 'Fjarlægja skrá',\n uploadError: 'Villa við að hlaða upp',\n previewFile: 'Forskoða skrá',\n downloadFile: 'Hlaða niður skrá'\n },\n Empty: {\n description: 'Engin gögn'\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 */\nvar it_IT = {\n locale: 'it',\n Pagination: {\n items_per_page: '/ pagina',\n jump_to: 'vai a',\n jump_to_confirm: 'Conferma',\n page: 'Pagina',\n prev_page: 'Pagina precedente',\n next_page: 'Pagina successiva',\n prev_5: 'Precedente 5 pagine',\n next_5: 'Prossime 5 pagine',\n prev_3: 'Precedente 3 pagine',\n next_3: 'Prossime 3 pagine',\n page_size: 'dimensioni della pagina'\n },\n DatePicker: {\n lang: {\n placeholder: 'Selezionare la data',\n yearPlaceholder: \"Selezionare l'anno\",\n quarterPlaceholder: 'Selezionare il trimestre',\n monthPlaceholder: 'Selezionare il mese',\n weekPlaceholder: 'Selezionare la settimana',\n rangePlaceholder: [\"Data d'inizio\", 'Data di fine'],\n rangeYearPlaceholder: [\"Anno d'inizio\", 'Anno di fine'],\n rangeMonthPlaceholder: [\"Mese d'inizio \", 'Mese di fine'],\n rangeWeekPlaceholder: [\"Settimana d'inizio\", 'Settimana di fine'],\n locale: 'it_IT',\n today: 'Oggi',\n now: 'Adesso',\n backToToday: 'Torna ad oggi',\n ok: 'Ok',\n clear: 'Cancella',\n month: 'Mese',\n year: 'Anno',\n timeSelect: \"Seleziona l'ora\",\n dateSelect: 'Seleziona la data',\n weekSelect: 'Seleziona la settimana',\n monthSelect: 'Seleziona il mese',\n yearSelect: \"Seleziona l'anno\",\n decadeSelect: 'Seleziona il decennio',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Il mese scorso (PageUp)',\n nextMonth: 'Il prossimo mese (PageDown)',\n previousYear: \"L'anno scorso (Control + sinistra)\",\n nextYear: \"L'anno prossimo (Control + destra)\",\n previousDecade: 'Ultimo decennio',\n nextDecade: 'Prossimo decennio',\n previousCentury: 'Secolo precedente',\n nextCentury: 'Prossimo secolo'\n },\n timePickerLocale: {\n placeholder: \"Selezionare l'orario\",\n rangePlaceholder: [\"Ora d'inizio\", 'Ora di fine']\n }\n },\n TimePicker: {\n placeholder: \"Selezionare l'orario\",\n rangePlaceholder: [\"Ora d'inizio\", 'Ora di fine']\n },\n Calendar: {\n lang: {\n placeholder: 'Selezionare la data',\n yearPlaceholder: \"Selezionare l'anno\",\n quarterPlaceholder: 'Selezionare il trimestre',\n monthPlaceholder: 'Selezionare il mese',\n weekPlaceholder: 'Selezionare la settimana',\n rangePlaceholder: [\"Data d'inizio\", 'Data di fine'],\n rangeYearPlaceholder: [\"Anno d'inizio\", 'Anno di fine'],\n rangeMonthPlaceholder: [\"Mese d'inizio \", 'Mese di fine'],\n rangeWeekPlaceholder: [\"Settimana d'inizio\", 'Settimana di fine'],\n locale: 'it_IT',\n today: 'Oggi',\n now: 'Adesso',\n backToToday: 'Torna ad oggi',\n ok: 'Ok',\n clear: 'Cancella',\n month: 'Mese',\n year: 'Anno',\n timeSelect: \"Seleziona l'ora\",\n weekSelect: 'Seleziona la settimana',\n dateSelect: 'Seleziona la data',\n monthSelect: 'Seleziona il mese',\n yearSelect: \"Seleziona l'anno\",\n decadeSelect: 'Seleziona il decennio',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Il mese scorso (PageUp)',\n nextMonth: 'Il prossimo mese (PageDown)',\n previousYear: \"L'anno scorso (Control + sinistra)\",\n nextYear: \"L'anno prossimo (Control + destra)\",\n previousDecade: 'Ultimo decennio',\n nextDecade: 'Prossimo decennio',\n previousCentury: 'Secolo precedente',\n nextCentury: 'Prossimo secolo'\n },\n timePickerLocale: {\n placeholder: \"Selezionare l'orario\",\n rangePlaceholder: [\"Ora d'inizio\", 'Ora di fine']\n }\n },\n global: {\n placeholder: 'Selezionare'\n },\n Table: {\n filterTitle: 'Menù Filtro',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'Nessun filtro',\n emptyText: 'Nessun dato',\n selectAll: 'Seleziona pagina corrente',\n selectInvert: 'Inverti selezione nella pagina corrente',\n selectionAll: 'Seleziona tutti i dati',\n sortTitle: 'Ordina',\n expand: 'Esapandi riga',\n collapse: 'Chiudi riga',\n triggerDesc: 'Clicca per ordinare in modo discendente',\n triggerAsc: 'Clicca per ordinare in modo ascendente',\n cancelSort: 'Clicca per eliminare i filtri',\n filterCheckall: 'Seleziona tutto',\n filterSearchPlaceholder: 'Cerca nei filtri',\n selectNone: 'Pulisci tutti i dati'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Annulla',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Annulla'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Cerca qui',\n itemUnit: 'elemento',\n itemsUnit: 'elementi',\n remove: 'Rimuovi',\n selectCurrent: 'Seleziona pagina corrente',\n removeCurrent: 'Rimuovi pagina corrente',\n selectAll: 'Selezione tutti i dati',\n removeAll: 'Rimuovi tutti i dati',\n selectInvert: 'Inverti selezione nella pagina corrente'\n },\n Upload: {\n uploading: 'Caricamento...',\n removeFile: 'Rimuovi il file',\n uploadError: 'Errore di caricamento',\n previewFile: 'Anteprima file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'Nessun dato'\n },\n Icon: {\n icon: 'icona'\n },\n Text: {\n edit: 'modifica',\n copy: 'copia',\n copied: 'copia effettuata',\n expand: 'espandi'\n },\n PageHeader: {\n back: 'Indietro'\n },\n Image: {\n preview: 'Anteprima'\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 */\nvar ja_JP = {\n locale: 'ja',\n Pagination: {\n items_per_page: '件 / ページ',\n jump_to: '移動',\n jump_to_confirm: '確認する',\n page: 'ページ',\n prev_page: '前のページ',\n next_page: '次のページ',\n prev_5: '前 5ページ',\n next_5: '次 5ページ',\n prev_3: '前 3ページ',\n next_3: '次 3ページ',\n page_size: 'ページサイズ'\n },\n DatePicker: {\n lang: {\n placeholder: '日付を選択',\n rangePlaceholder: ['開始日付', '終了日付'],\n locale: 'ja_JP',\n today: '今日',\n now: '現在時刻',\n backToToday: '今日に戻る',\n ok: '決定',\n timeSelect: '時間を選択',\n dateSelect: '日時を選択',\n weekSelect: '週を選択',\n clear: 'クリア',\n month: '月',\n year: '年',\n previousMonth: '前月 (ページアップキー)',\n nextMonth: '翌月 (ページダウンキー)',\n monthSelect: '月を選択',\n yearSelect: '年を選択',\n decadeSelect: '年代を選択',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',\n previousYear: '前年 (Controlを押しながら左キー)',\n nextYear: '翌年 (Controlを押しながら右キー)',\n previousDecade: '前の年代',\n nextDecade: '次の年代',\n previousCentury: '前の世紀',\n nextCentury: '次の世紀'\n },\n timePickerLocale: {\n placeholder: '時間を選択',\n rangePlaceholder: ['開始時間', '終了時間']\n }\n },\n TimePicker: {\n placeholder: '時間を選択',\n rangePlaceholder: ['開始時間', '終了時間']\n },\n Calendar: {\n lang: {\n placeholder: '日付を選択',\n rangePlaceholder: ['開始日付', '終了日付'],\n locale: 'ja_JP',\n today: '今日',\n now: '現在時刻',\n backToToday: '今日に戻る',\n ok: '決定',\n timeSelect: '時間を選択',\n dateSelect: '日時を選択',\n weekSelect: '週を選択',\n clear: 'クリア',\n month: '月',\n year: '年',\n previousMonth: '前月 (ページアップキー)',\n nextMonth: '翌月 (ページダウンキー)',\n monthSelect: '月を選択',\n yearSelect: '年を選択',\n decadeSelect: '年代を選択',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',\n previousYear: '前年 (Controlを押しながら左キー)',\n nextYear: '翌年 (Controlを押しながら右キー)',\n previousDecade: '前の年代',\n nextDecade: '次の年代',\n previousCentury: '前の世紀',\n nextCentury: '次の世紀'\n },\n timePickerLocale: {\n placeholder: '時間を選択',\n rangePlaceholder: ['開始時間', '終了時間']\n }\n },\n Table: {\n filterTitle: 'フィルター',\n filterConfirm: 'OK',\n filterReset: 'リセット',\n filterEmptyText: 'フィルターなし',\n selectAll: 'ページ単位で選択',\n selectInvert: 'ページ単位で反転',\n selectionAll: 'すべてを選択',\n sortTitle: 'ソート',\n expand: '展開する',\n collapse: '折り畳む',\n triggerDesc: 'クリックで降順にソート',\n triggerAsc: 'クリックで昇順にソート',\n cancelSort: 'ソートをキャンセル'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'キャンセル',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'キャンセル'\n },\n Transfer: {\n searchPlaceholder: 'ここを検索',\n itemUnit: 'アイテム',\n itemsUnit: 'アイテム'\n },\n Upload: {\n uploading: 'アップロード中...',\n removeFile: 'ファイルを削除',\n uploadError: 'アップロードエラー',\n previewFile: 'ファイルをプレビュー',\n downloadFile: 'ダウンロードファイル'\n },\n Empty: {\n description: 'データがありません'\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 */\nvar ka_GE = {\n locale: 'ka',\n Pagination: {\n items_per_page: '/ გვერდი.',\n jump_to: 'გადასვლა',\n jump_to_confirm: 'დადასტურება',\n page: '',\n prev_page: 'წინა გვერდი',\n next_page: 'შემდეგი გვერდი',\n prev_5: 'წინა 5 გვერდი',\n next_5: 'შემდეგი 5 გვერდი',\n prev_3: 'წინა 3 გვერდი',\n next_3: 'შემდეგი 3 გვერდი',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'აირჩიეთ თარიღი',\n yearPlaceholder: 'აირჩიეთ წელი',\n quarterPlaceholder: 'აირჩიეთ მეოთხედი',\n monthPlaceholder: 'აირჩიეთ თვე',\n weekPlaceholder: 'აირჩიეთ კვირა',\n rangePlaceholder: ['საწყისი თარიღი', 'საბოლოო თარიღი'],\n rangeYearPlaceholder: ['საწყისი წელი', 'საბოლოო წელი'],\n rangeMonthPlaceholder: ['საწყისი თვე', 'საბოლოო თვე'],\n rangeWeekPlaceholder: ['საწყისი კვირა', 'საბოლოო კვირა'],\n locale: 'ka_GE',\n today: 'დღეს',\n now: 'ახლა',\n backToToday: 'მიმდინარე თარიღი',\n ok: 'Ok',\n clear: 'გასუფთავება',\n month: 'თვე',\n year: 'წელი',\n timeSelect: 'დროის არჩევა',\n dateSelect: 'თარიღის არჩევა',\n weekSelect: 'კვირის არჩევა',\n monthSelect: 'თვის არჩევა',\n yearSelect: 'წლის არჩევა',\n decadeSelect: 'ათწლეულის არჩევა',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'წინა თვე (PageUp)',\n nextMonth: 'მომდევნო თვე (PageDown)',\n previousYear: 'წინა წელი (Control + left)',\n nextYear: 'მომდევნო წელი (Control + right)',\n previousDecade: 'წინა ათწლეული',\n nextDecade: 'მომდევნო ათწლეული',\n previousCentury: 'გასული საუკუნე',\n nextCentury: 'მომდევნო საუკუნე'\n },\n timePickerLocale: {\n placeholder: 'აირჩიეთ დრო',\n rangePlaceholder: ['საწყისი თარიღი', 'საბოლოო თარიღი']\n }\n },\n TimePicker: {\n placeholder: 'აირჩიეთ დრო',\n rangePlaceholder: ['საწყისი თარიღი', 'საბოლოო თარიღი']\n },\n Calendar: {\n lang: {\n placeholder: 'აირჩიეთ თარიღი',\n yearPlaceholder: 'აირჩიეთ წელი',\n quarterPlaceholder: 'აირჩიეთ მეოთხედი',\n monthPlaceholder: 'აირჩიეთ თვე',\n weekPlaceholder: 'აირჩიეთ კვირა',\n rangePlaceholder: ['საწყისი თარიღი', 'საბოლოო თარიღი'],\n rangeYearPlaceholder: ['საწყისი წელი', 'საბოლოო წელი'],\n rangeMonthPlaceholder: ['საწყისი თვე', 'საბოლოო თვე'],\n rangeWeekPlaceholder: ['საწყისი კვირა', 'საბოლოო კვირა'],\n locale: 'ka_GE',\n today: 'დღეს',\n now: 'ახლა',\n backToToday: 'მიმდინარე თარიღი',\n ok: 'Ok',\n clear: 'გასუფთავება',\n month: 'თვე',\n year: 'წელი',\n timeSelect: 'დროის არჩევა',\n dateSelect: 'თარიღის არჩევა',\n weekSelect: 'კვირის არჩევა',\n monthSelect: 'თვის არჩევა',\n yearSelect: 'წლის არჩევა',\n decadeSelect: 'ათწლეულის არჩევა',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'წინა თვე (PageUp)',\n nextMonth: 'მომდევნო თვე (PageDown)',\n previousYear: 'წინა წელი (Control + left)',\n nextYear: 'მომდევნო წელი (Control + right)',\n previousDecade: 'წინა ათწლეული',\n nextDecade: 'მომდევნო ათწლეული',\n previousCentury: 'გასული საუკუნე',\n nextCentury: 'მომდევნო საუკუნე'\n },\n timePickerLocale: {\n placeholder: 'აირჩიეთ დრო',\n rangePlaceholder: ['საწყისი თარიღი', 'საბოლოო თარიღი']\n }\n },\n global: {\n placeholder: 'გთხოვთ აირჩიოთ'\n },\n Table: {\n filterTitle: 'ფილტრის მენიუ',\n filterConfirm: 'კარგი',\n filterReset: 'გასუფთავება',\n filterEmptyText: 'ფილტრები არაა',\n emptyText: 'ინფორმაცია არაა',\n selectAll: 'აირჩიეთ მიმდინარე გვერდი',\n selectInvert: 'შეაბრუნეთ მიმდინარე გვერდი',\n selectionAll: 'ყველას მონიშვნა',\n sortTitle: 'დალაგება',\n expand: 'სტრიქონის გაშლა',\n collapse: 'სტრიქონის შეკუმშვა',\n triggerDesc: 'დაღმავალი დალაგება',\n triggerAsc: 'აღმავალი დალაგება',\n cancelSort: 'დალაგების გაუქმება',\n selectNone: 'მონაცემების გასუფთავება'\n },\n Modal: {\n okText: 'კარგი',\n cancelText: 'გაუქმება',\n justOkText: 'ოკ'\n },\n Popconfirm: {\n okText: 'კარგი',\n cancelText: 'გაუქმება'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'მოძებნე აქ',\n itemUnit: 'ერთეული',\n itemsUnit: 'ერთეულები',\n remove: 'ამოშლა',\n selectCurrent: 'მიმდინარე გვერდის არჩევა',\n removeCurrent: 'მიმდინარე გვერდის ამოშლა',\n selectAll: 'ყველას მონიშვნა',\n removeAll: 'ყველას წაშლა',\n selectInvert: 'მიმდინარე გვერდის შებრუნება'\n },\n Upload: {\n uploading: 'იტვირთება...',\n removeFile: 'ფაილის ამოშლა',\n uploadError: 'ატვირთვის შეცდომა',\n previewFile: 'ფაილის გადახედვა',\n downloadFile: 'ფაილის ჩამოტვირთვა'\n },\n Empty: {\n description: 'ინფორმაცია არაა'\n },\n Icon: {\n icon: 'ხატულა'\n },\n Text: {\n edit: 'რედაქტირება',\n copy: 'ასლი',\n copied: 'ასლი აღებულია',\n expand: 'გაშლა'\n },\n PageHeader: {\n back: 'უკან'\n },\n Image: {\n preview: 'გადახედვა'\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 */\nvar km_KH = {\n locale: 'km',\n Pagination: {\n items_per_page: '/ ទំព័រ',\n jump_to: 'លោតទៅ',\n jump_to_confirm: 'បញ្ជាក់',\n page: 'ទំព័រ',\n prev_page: 'ទំព័រមុន',\n next_page: 'ទំព័របន្ទាប់',\n prev_5: '៥ ទំព័រថយក្រោយ',\n next_5: '៥ ទំព័រទៅមុខ',\n prev_3: '៣ ទំព័រថយក្រោយ',\n next_3: '៣ ទំព័រទៅមុខ',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'រើសថ្ងៃ',\n yearPlaceholder: 'រើសឆ្នាំ',\n quarterPlaceholder: 'រើសត្រីមាស',\n monthPlaceholder: 'រើសខែ',\n weekPlaceholder: 'រើសសប្តាហ៍',\n rangePlaceholder: ['ថ្ងៃចាប់ផ្ដើម', 'ថ្ងៃបញ្ចប់'],\n rangeYearPlaceholder: ['ឆ្នាំចាប់ផ្ដើម', 'ឆ្នាំបញ្ចប់'],\n rangeMonthPlaceholder: ['ខែចាប់ផ្ដើម', 'ខែបញ្ចប់'],\n rangeWeekPlaceholder: ['សប្ដាហ៍ចាប់ផ្ដើម', 'សប្ដាហ៍បញ្ចប់'],\n locale: 'km',\n today: 'ថ្ងៃនេះ',\n now: 'ឥឡូវនេះ',\n backToToday: 'ត្រលប់ទៅថ្ងៃនេះ',\n ok: 'កំណត់',\n timeSelect: 'រយៈពេលជ្រើសរើស',\n dateSelect: 'ជ្រើសរើសកាលបរិច្ឆេទ',\n weekSelect: 'ជ្រើសរើសសប្តាហ៍',\n clear: 'ច្បាស់',\n month: 'ខែ',\n year: 'ឆ្នាំ',\n previousMonth: 'ខែមុន (ឡើងទំព័រ)',\n nextMonth: 'ខែបន្ទាប់ (ប៊ូតុងចុះទំព័រ)',\n monthSelect: 'ជ្រើសរើសខែ',\n yearSelect: 'ជ្រើសរើសឆ្នាំ',\n decadeSelect: 'ជ្រើសរើសអាយុ',\n yearFormat: 'YYYY',\n dayFormat: 'D',\n dateFormat: 'YYYY-M-D',\n dateTimeFormat: 'YYYY-M-D HH:mm:ss',\n previousYear: 'ឆ្នាំមុន (Controlគ្រាប់ចុចបូកព្រួញខាងឆ្វេង)',\n nextYear: 'ឆ្នាំក្រោយ (Control គ្រាប់ចុចបូកព្រួញស្ដាំ)',\n previousDecade: 'ជំនាន់ចុងក្រោយ',\n nextDecade: 'ជំនាន់ក្រោយ',\n previousCentury: 'សតវត្សចុងក្រោយ',\n nextCentury: 'សតវត្សរ៍បន្ទាប់',\n monthBeforeYear: true\n },\n timePickerLocale: {\n placeholder: 'រើសម៉ោង',\n rangePlaceholder: ['ម៉ោងចប់ផ្ដើម', 'ម៉ោងបញ្ចប់']\n }\n },\n TimePicker: {\n placeholder: 'រើសម៉ោង',\n rangePlaceholder: ['ម៉ោងចប់ផ្ដើម', 'ម៉ោងបញ្ចប់']\n },\n Calendar: {\n lang: {\n placeholder: 'រើសថ្ងៃ',\n yearPlaceholder: 'រើសឆ្នាំ',\n quarterPlaceholder: 'រើសត្រីមាស',\n monthPlaceholder: 'រើសខែ',\n weekPlaceholder: 'រើសសប្តាហ៍',\n rangePlaceholder: ['ថ្ងៃចាប់ផ្ដើម', 'ថ្ងៃបញ្ចប់'],\n rangeYearPlaceholder: ['ឆ្នាំចាប់ផ្ដើម', 'ឆ្នាំបញ្ចប់'],\n rangeMonthPlaceholder: ['ខែចាប់ផ្ដើម', 'ខែបញ្ចប់'],\n rangeWeekPlaceholder: ['សប្ដាហ៍ចាប់ផ្ដើម', 'សប្ដាហ៍បញ្ចប់'],\n locale: 'km',\n today: 'ថ្ងៃនេះ',\n now: 'ឥឡូវនេះ',\n backToToday: 'ត្រលប់ទៅថ្ងៃនេះ',\n ok: 'កំណត់',\n timeSelect: 'រយៈពេលជ្រើសរើស',\n dateSelect: 'ជ្រើសរើសកាលបរិច្ឆេទ',\n weekSelect: 'ជ្រើសរើសសប្តាហ៍',\n clear: 'ច្បាស់',\n month: 'ខែ',\n year: 'ឆ្នាំ',\n previousMonth: 'ខែមុន (ឡើងទំព័រ)',\n nextMonth: 'ខែបន្ទាប់ (ប៊ូតុងចុះទំព័រ)',\n monthSelect: 'ជ្រើសរើសខែ',\n yearSelect: 'ជ្រើសរើសឆ្នាំ',\n decadeSelect: 'ជ្រើសរើសអាយុ',\n yearFormat: 'YYYY',\n dayFormat: 'D',\n dateFormat: 'YYYY-M-D',\n dateTimeFormat: 'YYYY-M-D HH:mm:ss',\n previousYear: 'ឆ្នាំមុន (Controlគ្រាប់ចុចបូកព្រួញខាងឆ្វេង)',\n nextYear: 'ឆ្នាំក្រោយ (Control គ្រាប់ចុចបូកព្រួញស្ដាំ)',\n previousDecade: 'ជំនាន់ចុងក្រោយ',\n nextDecade: 'ជំនាន់ក្រោយ',\n previousCentury: 'សតវត្សចុងក្រោយ',\n nextCentury: 'សតវត្សរ៍បន្ទាប់',\n monthBeforeYear: true\n },\n timePickerLocale: {\n placeholder: 'រើសម៉ោង',\n rangePlaceholder: ['ម៉ោងចប់ផ្ដើម', 'ម៉ោងបញ្ចប់']\n }\n },\n global: {\n placeholder: 'សូមជ្រើសរើស'\n },\n Table: {\n filterTitle: 'បញ្ចីតម្រៀប',\n filterConfirm: 'យល់ព្រម',\n filterReset: 'ត្រឡប់ដើម',\n filterEmptyText: 'គ្មានបញ្ចីតម្រៀប',\n emptyText: 'គ្មានទិន្នន័យ',\n selectAll: 'រើសក្នុងទំព័រនេះ',\n selectInvert: 'បញ្ច្រាសក្នុងទំព័រនេះ',\n selectNone: 'លុបចេញទាំងអស់',\n selectionAll: 'រើសយកទាំងអស់',\n sortTitle: 'តម្រៀប',\n expand: 'ពន្លាត',\n collapse: 'បិតបាំង',\n triggerDesc: 'ចុចដើម្បីរៀបតាមលំដាប់ធំ',\n triggerAsc: 'ចុចដើម្បីរៀបតាមលំដាប់តូច',\n cancelSort: 'ចុចដើម្បីបោះបង់'\n },\n Modal: {\n okText: 'យល់ព្រម',\n cancelText: 'បោះបង់',\n justOkText: 'យល់ព្រម'\n },\n Popconfirm: {\n okText: 'យល់ព្រម',\n cancelText: 'បោះបង់'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'ស្វែងរកនៅទីនេះ',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'លុប',\n selectCurrent: 'រើសទំព័របច្ចុប្បន្ន',\n removeCurrent: 'លុបទំព័របច្ចុប្បន្ន',\n selectAll: 'រើសទិន្នន័យទាំងអស់',\n removeAll: 'លុបទិន្នន័យទាំងអស់',\n selectInvert: 'បញ្ច្រាសទំព័របច្ចុប្បន្ន'\n },\n Upload: {\n uploading: 'កំពុងបញ្ចូលឡើង...',\n removeFile: 'លុបឯកសារ',\n uploadError: 'បញ្ចូលមិនជោកជ័យ',\n previewFile: 'មើលឯកសារ',\n downloadFile: 'ទាញយកឯកសារ'\n },\n Empty: {\n description: 'គ្មានទិន្នន័យ'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'កែ',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'ពង្រីក'\n },\n PageHeader: {\n back: 'Back'\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 */\nvar kk_KZ = {\n locale: 'kk',\n Pagination: {\n items_per_page: '/ бет',\n jump_to: 'Секіру',\n jump_to_confirm: 'Растау',\n page: '',\n prev_page: 'Артқа',\n next_page: 'Алға',\n prev_5: 'Алдыңғы 5',\n next_5: 'Келесі 5',\n prev_3: 'Алдыңғы 3',\n next_3: 'Келесі 3',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Күнді таңдаңыз',\n yearPlaceholder: 'Жылды таңдаңыз',\n quarterPlaceholder: 'Тоқсанды таңдаңыз',\n monthPlaceholder: 'Айды таңдаңыз',\n weekPlaceholder: 'Аптаны таңдаңыз',\n rangePlaceholder: ['Бастау күні', 'Аяқталу күні'],\n rangeYearPlaceholder: ['Бастау жылы', 'Аяқталу жылы'],\n rangeMonthPlaceholder: ['Бастау айы', 'Аяқталу айы'],\n rangeWeekPlaceholder: ['Бастау апта', 'Аяқталу апта'],\n locale: 'kk_KZ',\n today: 'Бүгін',\n now: 'Қазір',\n backToToday: 'Ағымдағы күн',\n ok: 'Таңдау',\n clear: 'Таза',\n month: 'Ай',\n year: 'Жыл',\n timeSelect: 'Уақытты таңдау',\n dateSelect: 'Күнді таңдау',\n monthSelect: 'Айды таңдаңыз',\n yearSelect: 'Жылды таңдаңыз',\n decadeSelect: 'Онжылды таңдаңыз',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Алдыңғы ай (PageUp)',\n nextMonth: 'Келесі ай (PageDown)',\n previousYear: 'Алдыңғы жыл (Control + left)',\n nextYear: 'Келесі жыл (Control + right)',\n previousDecade: 'Алдыңғы онжылдық',\n nextDecade: 'Келесі онжылдық',\n previousCentury: 'Алдыңғы ғасыр',\n nextCentury: 'Келесі ғасыр'\n },\n timePickerLocale: {\n placeholder: 'Уақытты таңдаңыз',\n rangePlaceholder: ['Бастау уақыты', 'Аяқталу уақыты']\n }\n },\n TimePicker: {\n placeholder: 'Уақытты таңдаңыз',\n rangePlaceholder: ['Бастау уақыты', 'Аяқталу уақыты']\n },\n Calendar: {\n lang: {\n placeholder: 'Күнді таңдаңыз',\n yearPlaceholder: 'Жылды таңдаңыз',\n quarterPlaceholder: 'Тоқсанды таңдаңыз',\n monthPlaceholder: 'Айды таңдаңыз',\n weekPlaceholder: 'Аптаны таңдаңыз',\n rangePlaceholder: ['Бастау күні', 'Аяқталу күні'],\n rangeYearPlaceholder: ['Бастау жылы', 'Аяқталу жылы'],\n rangeMonthPlaceholder: ['Бастау айы', 'Аяқталу айы'],\n rangeWeekPlaceholder: ['Бастау апта', 'Аяқталу апта'],\n locale: 'kk_KZ',\n today: 'Бүгін',\n now: 'Қазір',\n backToToday: 'Ағымдағы күн',\n ok: 'Таңдау',\n clear: 'Таза',\n month: 'Ай',\n year: 'Жыл',\n timeSelect: 'Уақытты таңдау',\n dateSelect: 'Күнді таңдау',\n monthSelect: 'Айды таңдаңыз',\n yearSelect: 'Жылды таңдаңыз',\n decadeSelect: 'Онжылды таңдаңыз',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Алдыңғы ай (PageUp)',\n nextMonth: 'Келесі ай (PageDown)',\n previousYear: 'Алдыңғы жыл (Control + left)',\n nextYear: 'Келесі жыл (Control + right)',\n previousDecade: 'Алдыңғы онжылдық',\n nextDecade: 'Келесі онжылдық',\n previousCentury: 'Алдыңғы ғасыр',\n nextCentury: 'Келесі ғасыр'\n },\n timePickerLocale: {\n placeholder: 'Уақытты таңдаңыз',\n rangePlaceholder: ['Бастау уақыты', 'Аяқталу уақыты']\n }\n },\n global: {\n placeholder: 'Таңдаңыз'\n },\n Table: {\n filterTitle: 'Фильтр',\n filterConfirm: 'OK',\n filterReset: 'Тазарту',\n filterEmptyText: 'Фильтр жоқ',\n emptyText: 'Деректер жоқ',\n selectAll: 'Барлығын таңдау',\n selectInvert: 'Таңдауды төңкеру',\n selectionAll: 'Барлық деректерді таңдаңыз',\n sortTitle: 'Сұрыптау',\n expand: 'Жолды жазу',\n collapse: 'Жолды бүктеу',\n triggerDesc: 'Төмендеуді сұрыптау үшін басыңыз',\n triggerAsc: 'Өсу ретімен сұрыптау үшін басыңыз',\n cancelSort: 'Сұрыптаудан бас тарту үшін басыңыз'\n },\n Modal: {\n okText: 'Жарайды',\n cancelText: 'Болдырмау',\n justOkText: 'Жарайды'\n },\n Popconfirm: {\n okText: 'Жарайды',\n cancelText: 'Болдырмау'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Іздеу',\n itemUnit: 'элемент.',\n itemsUnit: 'элемент.',\n remove: 'Жою',\n selectAll: 'Барлық деректерді таңдау',\n selectCurrent: 'Ағымдағы бетті таңдау',\n selectInvert: 'Кері тәртіпте көрсету',\n removeAll: 'Барлық деректерді жою',\n removeCurrent: 'Ағымдағы парақты өшіру'\n },\n Upload: {\n uploading: 'Жүктеу...',\n removeFile: 'Файлды жою',\n uploadError: 'Жүктеу кезінде қате пайда болды',\n previewFile: 'Файлды алдын ала қарау',\n downloadFile: 'Файлды жүктеу'\n },\n Empty: {\n description: 'Деректер жоқ'\n },\n Icon: {\n icon: 'белгішесі'\n },\n Text: {\n edit: 'Өңдеу',\n copy: 'Көшіру',\n copied: 'Көшірілді',\n expand: 'Жазу'\n },\n PageHeader: {\n back: 'Артқа'\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 */\nvar kmr_IQ = {\n locale: 'ku',\n Pagination: {\n items_per_page: '/ rûpel',\n jump_to: 'Biçe',\n jump_to_confirm: 'piştrast bike',\n page: '',\n prev_page: 'Rûpelê Pêş',\n next_page: 'Rûpelê Paş',\n prev_5: '5 Rûpelên Pêş',\n next_5: '5 Rûpelên Paş',\n prev_3: '3 Rûpelên Pêş',\n next_3: '3 Rûpelên Paş',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Dîrok hilbijêre',\n rangePlaceholder: ['Dîroka destpêkê', 'Dîroka dawîn'],\n locale: 'ku',\n today: 'Îro',\n now: 'Niha',\n backToToday: 'Vegere îro',\n ok: 'Temam',\n clear: 'Paqij bike',\n month: 'Meh',\n year: 'Sal',\n timeSelect: 'Demê hilbijêre',\n dateSelect: 'Dîrok hilbijêre',\n monthSelect: 'Meh hilbijêre',\n yearSelect: 'Sal hilbijêre',\n decadeSelect: 'Dehsal hilbijêre',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Meha peş (PageUp))',\n nextMonth: 'Meha paş (PageDown)',\n previousYear: 'Sala peş (Control + şep)',\n nextYear: 'Sala paş (Control + rast)',\n previousDecade: 'Dehsalen peş',\n nextDecade: 'Dehsalen paş',\n previousCentury: 'Sedsalen peş',\n nextCentury: 'Sedsalen paş'\n },\n timePickerLocale: {\n placeholder: 'Demê hilbijêre'\n }\n },\n TimePicker: {\n placeholder: 'Demê hilbijêre'\n },\n Calendar: {\n lang: {\n placeholder: 'Dîrok hilbijêre',\n rangePlaceholder: ['Dîroka destpêkê', 'Dîroka dawîn'],\n locale: 'ku',\n today: 'Îro',\n now: 'Niha',\n backToToday: 'Vegere îro',\n ok: 'Temam',\n clear: 'Paqij bike',\n month: 'Meh',\n year: 'Sal',\n timeSelect: 'Demê hilbijêre',\n dateSelect: 'Dîrok hilbijêre',\n monthSelect: 'Meh hilbijêre',\n yearSelect: 'Sal hilbijêre',\n decadeSelect: 'Dehsal hilbijêre',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Meha peş (PageUp))',\n nextMonth: 'Meha paş (PageDown)',\n previousYear: 'Sala peş (Control + şep)',\n nextYear: 'Sala paş (Control + rast)',\n previousDecade: 'Dehsalen peş',\n nextDecade: 'Dehsalen paş',\n previousCentury: 'Sedsalen peş',\n nextCentury: 'Sedsalen paş'\n },\n timePickerLocale: {\n placeholder: 'Demê hilbijêre'\n }\n },\n Table: {\n filterTitle: 'Menuê peldanka',\n filterConfirm: 'Temam',\n filterReset: 'Jê bibe',\n selectAll: 'Hemî hilbijêre',\n selectInvert: 'Hilbijartinan veguhere'\n },\n Modal: {\n okText: 'Temam',\n cancelText: 'Betal ke',\n justOkText: 'Temam'\n },\n Popconfirm: {\n okText: 'Temam',\n cancelText: 'Betal ke'\n },\n Transfer: {\n searchPlaceholder: 'Lêgerîn',\n itemUnit: 'tişt',\n itemsUnit: 'tişt'\n },\n Upload: {\n uploading: 'Bardike...',\n removeFile: 'Pelê rabike',\n uploadError: 'Xeta barkirine',\n previewFile: 'Pelê pêşbibîne',\n downloadFile: 'Pelê dakêşin'\n },\n Empty: {\n description: 'Agahî tune'\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 */\nvar kn_IN = {\n locale: 'kn',\n Pagination: {\n items_per_page: '/ ಪುಟ',\n jump_to: 'ಜಿಗಿತವನ್ನು',\n jump_to_confirm: 'ಖಚಿತಪಡಿಸಲು ಜಿಗಿತವನ್ನು',\n page: '',\n prev_page: 'ಹಿಂದಿನ ಪುಟ',\n next_page: 'ಮುಂದಿನ ಪುಟ',\n prev_5: 'ಹಿಂದಿನ 5 ಪುಟಗಳು',\n next_5: 'ಮುಂದಿನ 5 ಪುಟಗಳು',\n prev_3: 'ಹಿಂದಿನ 3 ಪುಟಗಳು',\n next_3: 'ಮುಂದಿನ 3 ಪುಟಗಳು',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'ದಿನಾಂಕ ಆಯ್ಕೆಮಾಡಿ',\n rangePlaceholder: ['ಪ್ರಾರಂಭ ದಿನಾಂಕ', 'ಅಂತಿಮ ದಿನಾಂಕ'],\n locale: 'kn_IN',\n today: 'ಇಂದು',\n now: 'ಈಗ',\n backToToday: 'ಇಂದು ಹಿಂದಿರುಗಿ',\n ok: 'ಸರಿ',\n clear: 'ಸ್ಪಷ್ಟ',\n month: 'ತಿಂಗಳು',\n year: 'ವರ್ಷ',\n timeSelect: 'ಸಮಯ ಆಯ್ಕೆಮಾಡಿ',\n dateSelect: 'ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ',\n weekSelect: 'ಒಂದು ವಾರದ ಆರಿಸಿ',\n monthSelect: 'ಒಂದು ತಿಂಗಳು ಆಯ್ಕೆಮಾಡಿ',\n yearSelect: 'ಒಂದು ವರ್ಷ ಆರಿಸಿ',\n decadeSelect: 'ಒಂದು ದಶಕದ ಆಯ್ಕೆಮಾಡಿ',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'ಹಿಂದಿನ ತಿಂಗಳು (ಪೇಜ್ಅಪ್)',\n nextMonth: 'ಮುಂದಿನ ತಿಂಗಳು (ಪೇಜ್ಡೌನ್)',\n previousYear: 'ಕಳೆದ ವರ್ಷ (Ctrl + ಎಡ)',\n nextYear: 'ಮುಂದಿನ ವರ್ಷ (Ctrl + ಬಲ)',\n previousDecade: 'ಕಳೆದ ದಶಕ',\n nextDecade: 'ಮುಂದಿನ ದಶಕ',\n previousCentury: 'ಕಳೆದ ಶತಮಾನ',\n nextCentury: 'ಮುಂದಿನ ಶತಮಾನ'\n },\n timePickerLocale: {\n placeholder: 'ಸಮಯ ಆಯ್ಕೆಮಾಡಿ'\n }\n },\n TimePicker: {\n placeholder: 'ಸಮಯ ಆಯ್ಕೆಮಾಡಿ'\n },\n Calendar: {\n lang: {\n placeholder: 'ದಿನಾಂಕ ಆಯ್ಕೆಮಾಡಿ',\n rangePlaceholder: ['ಪ್ರಾರಂಭ ದಿನಾಂಕ', 'ಅಂತಿಮ ದಿನಾಂಕ'],\n locale: 'kn_IN',\n today: 'ಇಂದು',\n now: 'ಈಗ',\n backToToday: 'ಇಂದು ಹಿಂದಿರುಗಿ',\n ok: 'ಸರಿ',\n clear: 'ಸ್ಪಷ್ಟ',\n month: 'ತಿಂಗಳು',\n year: 'ವರ್ಷ',\n timeSelect: 'ಸಮಯ ಆಯ್ಕೆಮಾಡಿ',\n dateSelect: 'ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ',\n weekSelect: 'ಒಂದು ವಾರದ ಆರಿಸಿ',\n monthSelect: 'ಒಂದು ತಿಂಗಳು ಆಯ್ಕೆಮಾಡಿ',\n yearSelect: 'ಒಂದು ವರ್ಷ ಆರಿಸಿ',\n decadeSelect: 'ಒಂದು ದಶಕದ ಆಯ್ಕೆಮಾಡಿ',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'ಹಿಂದಿನ ತಿಂಗಳು (ಪೇಜ್ಅಪ್)',\n nextMonth: 'ಮುಂದಿನ ತಿಂಗಳು (ಪೇಜ್ಡೌನ್)',\n previousYear: 'ಕಳೆದ ವರ್ಷ (Ctrl + ಎಡ)',\n nextYear: 'ಮುಂದಿನ ವರ್ಷ (Ctrl + ಬಲ)',\n previousDecade: 'ಕಳೆದ ದಶಕ',\n nextDecade: 'ಮುಂದಿನ ದಶಕ',\n previousCentury: 'ಕಳೆದ ಶತಮಾನ',\n nextCentury: 'ಮುಂದಿನ ಶತಮಾನ'\n },\n timePickerLocale: {\n placeholder: 'ಸಮಯ ಆಯ್ಕೆಮಾಡಿ'\n }\n },\n global: {\n placeholder: 'ದಯವಿಟ್ಟು ಆರಿಸಿ'\n },\n Table: {\n filterTitle: 'ಪಟ್ಟಿ ಸೋಸಿ',\n filterConfirm: 'ಸರಿ',\n filterReset: 'ಮರುಹೊಂದಿಸಿ',\n emptyText: 'ಮಾಹಿತಿ ಇಲ್ಲ',\n selectAll: 'ಪ್ರಸ್ತುತ ಪುಟವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n selectInvert: 'ಪ್ರಸ್ತುತ ಪುಟವನ್ನು ತಿರುಗಿಸಿ',\n sortTitle: 'ವಿಂಗಡಿಸಿ'\n },\n Modal: {\n okText: 'ಸರಿ',\n cancelText: 'ರದ್ದು',\n justOkText: 'ಸರಿ'\n },\n Popconfirm: {\n okText: 'ಸರಿ',\n cancelText: 'ರದ್ದು'\n },\n Transfer: {\n titles: ['', ''],\n notFoundContent: 'ದೊರೆತಿಲ್ಲ',\n searchPlaceholder: 'ಇಲ್ಲಿ ಹುಡುಕಿ',\n itemUnit: 'ವಿಷಯ',\n itemsUnit: 'ವಿಷಯಗಳು'\n },\n Select: {\n notFoundContent: 'ದೊರೆತಿಲ್ಲ'\n },\n Upload: {\n uploading: 'ಏರಿಸಿ...',\n removeFile: 'ಫೈಲ್ ತೆಗೆದುಹಾಕಿ',\n uploadError: 'ಏರಿಸುವ ದೋಷ',\n previewFile: 'ಫೈಲ್ ಮುನ್ನೋಟ',\n downloadFile: 'ಫೈಲ್ ಡೌನ್ಲೋಡ್ ಮಾಡಿ'\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 */\nvar ko_KR = {\n locale: 'ko',\n Pagination: {\n items_per_page: '/ 쪽',\n jump_to: '이동하기',\n jump_to_confirm: '확인하다',\n page: '페이지',\n prev_page: '이전 페이지',\n next_page: '다음 페이지',\n prev_5: '이전 5 페이지',\n next_5: '다음 5 페이지',\n prev_3: '이전 3 페이지',\n next_3: '다음 3 페이지',\n page_size: '페이지 크기'\n },\n DatePicker: {\n lang: {\n placeholder: '날짜 선택',\n rangePlaceholder: ['시작일', '종료일'],\n locale: 'ko_KR',\n today: '오늘',\n now: '현재 시각',\n backToToday: '오늘로 돌아가기',\n ok: '확인',\n clear: '지우기',\n month: '월',\n year: '년',\n timeSelect: '시간 선택',\n dateSelect: '날짜 선택',\n monthSelect: '달 선택',\n yearSelect: '연 선택',\n decadeSelect: '연대 선택',\n yearFormat: 'YYYY년',\n dateFormat: 'YYYY-MM-DD',\n dayFormat: 'Do',\n dateTimeFormat: 'YYYY-MM-DD HH:mm:ss',\n monthBeforeYear: false,\n previousMonth: '이전 달 (PageUp)',\n nextMonth: '다음 달 (PageDown)',\n previousYear: '이전 해 (Control + left)',\n nextYear: '다음 해 (Control + right)',\n previousDecade: '이전 연대',\n nextDecade: '다음 연대',\n previousCentury: '이전 세기',\n nextCentury: '다음 세기'\n },\n timePickerLocale: {\n placeholder: '시간 선택',\n rangePlaceholder: ['시작 시간', '종료 시간']\n }\n },\n TimePicker: {\n placeholder: '시간 선택',\n rangePlaceholder: ['시작 시간', '종료 시간']\n },\n Calendar: {\n lang: {\n placeholder: '날짜 선택',\n rangePlaceholder: ['시작일', '종료일'],\n locale: 'ko_KR',\n today: '오늘',\n now: '현재 시각',\n backToToday: '오늘로 돌아가기',\n ok: '확인',\n clear: '지우기',\n month: '월',\n year: '년',\n timeSelect: '시간 선택',\n dateSelect: '날짜 선택',\n monthSelect: '달 선택',\n yearSelect: '연 선택',\n decadeSelect: '연대 선택',\n yearFormat: 'YYYY년',\n dateFormat: 'YYYY-MM-DD',\n dayFormat: 'Do',\n dateTimeFormat: 'YYYY-MM-DD HH:mm:ss',\n monthBeforeYear: false,\n previousMonth: '이전 달 (PageUp)',\n nextMonth: '다음 달 (PageDown)',\n previousYear: '이전 해 (Control + left)',\n nextYear: '다음 해 (Control + right)',\n previousDecade: '이전 연대',\n nextDecade: '다음 연대',\n previousCentury: '이전 세기',\n nextCentury: '다음 세기'\n },\n timePickerLocale: {\n placeholder: '시간 선택',\n rangePlaceholder: ['시작 시간', '종료 시간']\n }\n },\n Table: {\n filterTitle: '필터 메뉴',\n filterConfirm: '확인',\n filterReset: '초기화',\n selectAll: '모두 선택',\n selectInvert: '선택 반전',\n filterEmptyText: '필터 없음',\n emptyText: '데이터 없음'\n },\n Modal: {\n okText: '확인',\n cancelText: '취소',\n justOkText: '확인'\n },\n Popconfirm: {\n okText: '확인',\n cancelText: '취소'\n },\n Transfer: {\n searchPlaceholder: '여기에 검색하세요',\n itemUnit: '개',\n itemsUnit: '개'\n },\n Upload: {\n uploading: '업로드 중...',\n removeFile: '파일 삭제',\n uploadError: '업로드 실패',\n previewFile: '파일 미리보기',\n downloadFile: '파일 다운로드'\n },\n Empty: {\n description: '데이터 없음'\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 */\nvar ku_IQ = {\n locale: 'ku-iq',\n Pagination: {\n items_per_page: '/ rûpel',\n jump_to: 'Biçe',\n jump_to_confirm: 'piştrast bike',\n page: '',\n prev_page: 'Rûpelê Pêş',\n next_page: 'Rûpelê Paş',\n prev_5: '5 Rûpelên Pêş',\n next_5: '5 Rûpelên Paş',\n prev_3: '3 Rûpelên Pêş',\n next_3: '3 Rûpelên Paş',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Dîrok hilbijêre',\n rangePlaceholder: ['Dîroka destpêkê', 'Dîroka dawîn'],\n locale: 'ku',\n today: 'Îro',\n now: 'Niha',\n backToToday: 'Vegere îro',\n ok: 'Temam',\n clear: 'Paqij bike',\n month: 'Meh',\n year: 'Sal',\n timeSelect: 'Demê hilbijêre',\n dateSelect: 'Dîrok hilbijêre',\n monthSelect: 'Meh hilbijêre',\n yearSelect: 'Sal hilbijêre',\n decadeSelect: 'Dehsal hilbijêre',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Meha peş (PageUp))',\n nextMonth: 'Meha paş (PageDown)',\n previousYear: 'Sala peş (Control + şep)',\n nextYear: 'Sala paş (Control + rast)',\n previousDecade: 'Dehsalen peş',\n nextDecade: 'Dehsalen paş',\n previousCentury: 'Sedsalen peş',\n nextCentury: 'Sedsalen paş'\n },\n timePickerLocale: {\n placeholder: 'Demê hilbijêre'\n }\n },\n TimePicker: {\n placeholder: 'Demê hilbijêre'\n },\n Calendar: {\n lang: {\n placeholder: 'Dîrok hilbijêre',\n rangePlaceholder: ['Dîroka destpêkê', 'Dîroka dawîn'],\n locale: 'ku',\n today: 'Îro',\n now: 'Niha',\n backToToday: 'Vegere îro',\n ok: 'Temam',\n clear: 'Paqij bike',\n month: 'Meh',\n year: 'Sal',\n timeSelect: 'Demê hilbijêre',\n dateSelect: 'Dîrok hilbijêre',\n monthSelect: 'Meh hilbijêre',\n yearSelect: 'Sal hilbijêre',\n decadeSelect: 'Dehsal hilbijêre',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Meha peş (PageUp))',\n nextMonth: 'Meha paş (PageDown)',\n previousYear: 'Sala peş (Control + şep)',\n nextYear: 'Sala paş (Control + rast)',\n previousDecade: 'Dehsalen peş',\n nextDecade: 'Dehsalen paş',\n previousCentury: 'Sedsalen peş',\n nextCentury: 'Sedsalen paş'\n },\n timePickerLocale: {\n placeholder: 'Demê hilbijêre'\n }\n },\n Table: {\n filterTitle: 'Menuê peldanka',\n filterConfirm: 'Temam',\n filterReset: 'Jê bibe',\n selectAll: 'Hemî hilbijêre',\n selectInvert: 'Hilbijartinan veguhere'\n },\n Modal: {\n okText: 'Temam',\n cancelText: 'Betal ke',\n justOkText: 'Temam'\n },\n Popconfirm: {\n okText: 'Temam',\n cancelText: 'Betal ke'\n },\n Transfer: {\n searchPlaceholder: 'Lêgerîn',\n itemUnit: 'tişt',\n itemsUnit: 'tişt'\n },\n Upload: {\n uploading: 'Bardike...',\n removeFile: 'Pelê rabike',\n uploadError: 'Xeta barkirine',\n previewFile: 'Pelê pêşbibîne',\n downloadFile: 'Pelê dakêşin'\n },\n Empty: {\n description: 'Agahî tune'\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 */\nvar lt_LT = {\n locale: 'lt',\n Pagination: {\n items_per_page: '/ psl.',\n jump_to: 'Pereiti',\n jump_to_confirm: 'patvirtinti',\n page: '',\n prev_page: 'Atgal',\n next_page: 'Pirmyn',\n prev_5: 'Grįžti 5 pls.',\n next_5: 'Peršokti 5 pls.',\n prev_3: 'Grįžti 3 pls.',\n next_3: 'Peršokti 3 pls.',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Pasirinkite datą',\n yearPlaceholder: 'Pasirinkite metus',\n quarterPlaceholder: 'Pasirinkite ketvirtį',\n monthPlaceholder: 'Pasirinkite mėnesį',\n weekPlaceholder: 'Pasirinkite savaitę',\n rangePlaceholder: ['Pradžios data', 'Pabaigos data'],\n rangeYearPlaceholder: ['Pradžios metai', 'Pabaigos metai'],\n rangeMonthPlaceholder: ['Pradžios mėnesis', 'Pabaigos mėnesis'],\n rangeWeekPlaceholder: ['Pradžios savaitė', 'Pabaigos savaitė'],\n locale: 'lt_LT',\n today: 'Šiandien',\n now: 'Dabar',\n backToToday: 'Rodyti šiandien',\n ok: 'Gerai',\n clear: 'Išvalyti',\n month: 'Mėnesis',\n year: 'Metai',\n timeSelect: 'Pasirinkti laiką',\n dateSelect: 'Pasirinkti datą',\n monthSelect: 'Pasirinkti mėnesį',\n yearSelect: 'Pasirinkti metus',\n decadeSelect: 'Pasirinkti dešimtmetį',\n yearFormat: 'YYYY',\n dateFormat: 'YYYY-MM-DD',\n dayFormat: 'DD',\n dateTimeFormat: 'YYYY-MM-DD HH:MM:SS',\n monthBeforeYear: true,\n previousMonth: 'Buvęs mėnesis (PageUp)',\n nextMonth: 'Sekantis mėnesis (PageDown)',\n previousYear: 'Buvę metai (Control + left)',\n nextYear: 'Sekantis metai (Control + right)',\n previousDecade: 'Buvęs dešimtmetis',\n nextDecade: 'Sekantis dešimtmetis',\n previousCentury: 'Buvęs amžius',\n nextCentury: 'Sekantis amžius'\n },\n timePickerLocale: {\n placeholder: 'Pasirinkite laiką',\n rangePlaceholder: ['Pradžios laikas', 'Pabaigos laikas']\n }\n },\n TimePicker: {\n placeholder: 'Pasirinkite laiką',\n rangePlaceholder: ['Pradžios laikas', 'Pabaigos laikas']\n },\n Calendar: {\n lang: {\n placeholder: 'Pasirinkite datą',\n yearPlaceholder: 'Pasirinkite metus',\n quarterPlaceholder: 'Pasirinkite ketvirtį',\n monthPlaceholder: 'Pasirinkite mėnesį',\n weekPlaceholder: 'Pasirinkite savaitę',\n rangePlaceholder: ['Pradžios data', 'Pabaigos data'],\n rangeYearPlaceholder: ['Pradžios metai', 'Pabaigos metai'],\n rangeMonthPlaceholder: ['Pradžios mėnesis', 'Pabaigos mėnesis'],\n rangeWeekPlaceholder: ['Pradžios savaitė', 'Pabaigos savaitė'],\n locale: 'lt_LT',\n today: 'Šiandien',\n now: 'Dabar',\n backToToday: 'Rodyti šiandien',\n ok: 'Gerai',\n clear: 'Išvalyti',\n month: 'Mėnesis',\n year: 'Metai',\n timeSelect: 'Pasirinkti laiką',\n dateSelect: 'Pasirinkti datą',\n monthSelect: 'Pasirinkti mėnesį',\n yearSelect: 'Pasirinkti metus',\n decadeSelect: 'Pasirinkti dešimtmetį',\n yearFormat: 'YYYY',\n dateFormat: 'YYYY-MM-DD',\n dayFormat: 'DD',\n dateTimeFormat: 'YYYY-MM-DD HH:MM:SS',\n monthBeforeYear: true,\n previousMonth: 'Buvęs mėnesis (PageUp)',\n nextMonth: 'Sekantis mėnesis (PageDown)',\n previousYear: 'Buvę metai (Control + left)',\n nextYear: 'Sekantis metai (Control + right)',\n previousDecade: 'Buvęs dešimtmetis',\n nextDecade: 'Sekantis dešimtmetis',\n previousCentury: 'Buvęs amžius',\n nextCentury: 'Sekantis amžius'\n },\n timePickerLocale: {\n placeholder: 'Pasirinkite laiką',\n rangePlaceholder: ['Pradžios laikas', 'Pabaigos laikas']\n }\n },\n Table: {\n filterTitle: 'Filtras',\n filterConfirm: 'Gerai',\n filterReset: 'Atstatyti',\n filterEmptyText: 'Be filtrų',\n emptyText: 'Nėra duomenų',\n selectAll: 'Pasirinkti viską',\n selectInvert: 'Apversti pasirinkimą',\n selectionAll: 'Rinktis visus',\n sortTitle: 'Rikiavimas',\n expand: 'Išskleisti',\n collapse: 'Suskleisti',\n triggerDesc: 'Spustelėkite norėdami rūšiuoti mažėjančia tvarka',\n triggerAsc: 'Spustelėkite norėdami rūšiuoti didėjančia tvarka',\n cancelSort: 'Spustelėkite, kad atšauktumėte rūšiavimą'\n },\n Modal: {\n okText: 'Taip',\n cancelText: 'Atšaukti',\n justOkText: 'Gerai'\n },\n Popconfirm: {\n okText: 'Taip',\n cancelText: 'Atšaukti'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Paieška',\n itemUnit: 'vnt.',\n itemsUnit: 'vnt.',\n remove: 'Pašalinti',\n selectAll: 'Pasirinkti visus',\n selectCurrent: 'Pasirinkite dabartinį puslapį',\n selectInvert: 'Atkeist pasirinkimą',\n removeAll: 'Ištrinti visus duomenis',\n removeCurrent: 'Ištrinti dabartinį puslapį'\n },\n Upload: {\n uploading: 'Gaunami duomenys...',\n removeFile: 'Ištrinti failą',\n uploadError: 'Įkeliant įvyko klaida',\n previewFile: 'Failo peržiūra',\n downloadFile: 'Įkelti failą'\n },\n Empty: {\n description: 'Nėra duomenų'\n },\n Icon: {\n icon: 'piktograma'\n },\n Text: {\n edit: 'Redaguoti',\n copy: 'Kopijuoti',\n copied: 'Nukopijuota',\n expand: 'Plačiau'\n },\n PageHeader: {\n back: 'Atgal'\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 */\nvar lv_LV = {\n locale: 'lv',\n Pagination: {\n items_per_page: '/ lappuse',\n jump_to: 'iet uz',\n jump_to_confirm: 'apstiprināt',\n page: '',\n prev_page: 'Iepriekšējā lapa',\n next_page: 'Nākamā lapaspuse',\n prev_5: 'Iepriekšējās 5 lapas',\n next_5: 'Nākamās 5 lapas',\n prev_3: 'Iepriekšējās 3 lapas',\n next_3: 'Nākamās 3 lapas',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Izvēlieties datumu',\n rangePlaceholder: ['Sākuma datums', 'Beigu datums'],\n locale: 'lv_LV',\n today: 'Šodien',\n now: 'Tagad',\n backToToday: 'Atpakaļ pie šodienas',\n ok: 'Ok',\n clear: 'Skaidrs',\n month: 'Mēnesis',\n year: 'Gads',\n timeSelect: 'Izvēlieties laiku',\n dateSelect: 'Izvēlieties datumu',\n monthSelect: 'Izvēlieties mēnesi',\n yearSelect: 'Izvēlieties gadu',\n decadeSelect: 'Izvēlieties desmit gadus',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Iepriekšējais mēnesis (PageUp)',\n nextMonth: 'Nākammēnes (PageDown)',\n previousYear: 'Pagājušais gads (Control + left)',\n nextYear: 'Nākamgad (Control + right)',\n previousDecade: 'Pēdējā desmitgadē',\n nextDecade: 'Nākamā desmitgade',\n previousCentury: 'Pagājušajā gadsimtā',\n nextCentury: 'Nākamajā gadsimtā'\n },\n timePickerLocale: {\n placeholder: 'Izvēlieties laiku'\n }\n },\n TimePicker: {\n placeholder: 'Izvēlieties laiku'\n },\n Calendar: {\n lang: {\n placeholder: 'Izvēlieties datumu',\n rangePlaceholder: ['Sākuma datums', 'Beigu datums'],\n locale: 'lv_LV',\n today: 'Šodien',\n now: 'Tagad',\n backToToday: 'Atpakaļ pie šodienas',\n ok: 'Ok',\n clear: 'Skaidrs',\n month: 'Mēnesis',\n year: 'Gads',\n timeSelect: 'Izvēlieties laiku',\n dateSelect: 'Izvēlieties datumu',\n monthSelect: 'Izvēlieties mēnesi',\n yearSelect: 'Izvēlieties gadu',\n decadeSelect: 'Izvēlieties desmit gadus',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Iepriekšējais mēnesis (PageUp)',\n nextMonth: 'Nākammēnes (PageDown)',\n previousYear: 'Pagājušais gads (Control + left)',\n nextYear: 'Nākamgad (Control + right)',\n previousDecade: 'Pēdējā desmitgadē',\n nextDecade: 'Nākamā desmitgade',\n previousCentury: 'Pagājušajā gadsimtā',\n nextCentury: 'Nākamajā gadsimtā'\n },\n timePickerLocale: {\n placeholder: 'Izvēlieties laiku'\n }\n },\n Table: {\n filterTitle: 'Filtrēšanas izvēlne',\n filterConfirm: 'OK',\n filterReset: 'Atiestatīt',\n selectAll: 'Atlasiet pašreizējo lapu',\n selectInvert: 'Pārvērst pašreizējo lapu'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Atcelt',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Atcelt'\n },\n Transfer: {\n searchPlaceholder: 'Meklēt šeit',\n itemUnit: 'vienumu',\n itemsUnit: 'vienumus'\n },\n Upload: {\n uploading: 'Augšupielāde...',\n removeFile: 'Noņemt failu',\n uploadError: 'Augšupielādes kļūda',\n previewFile: 'Priekšskatiet failu',\n downloadFile: 'Lejupielādēt failu'\n },\n Empty: {\n description: 'Nav datu'\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 */\nvar mk_MK = {\n locale: 'mk',\n Pagination: {\n items_per_page: '/ стр',\n jump_to: 'Оди на',\n jump_to_confirm: 'потврди',\n page: '',\n prev_page: 'Претходна страница',\n next_page: 'Наредна страница',\n prev_5: 'Претходни 5 страници',\n next_5: 'Наредни 5 страници',\n prev_3: 'Претходни 3 страници',\n next_3: 'Наредни 3 страници',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Избери датум',\n rangePlaceholder: ['Од датум', 'До датум'],\n locale: 'mk_MK',\n today: 'Денес',\n now: 'Сега',\n backToToday: 'Назад до денес',\n ok: 'ОК',\n clear: 'Избриши',\n month: 'Месец',\n year: 'Година',\n timeSelect: 'Избери време',\n dateSelect: 'Избери датум',\n monthSelect: 'Избери месец',\n yearSelect: 'Избери година',\n decadeSelect: 'Избери деценија',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Претходен месец (PageUp)',\n nextMonth: 'Нареден месец (PageDown)',\n previousYear: 'Претходна година (Control + left)',\n nextYear: 'Наредна година (Control + right)',\n previousDecade: 'Претходна деценија',\n nextDecade: 'Наредна деценија',\n previousCentury: 'Претходен век',\n nextCentury: 'Нареден век'\n },\n timePickerLocale: {\n placeholder: 'Избери време'\n }\n },\n TimePicker: {\n placeholder: 'Избери време'\n },\n Calendar: {\n lang: {\n placeholder: 'Избери датум',\n rangePlaceholder: ['Од датум', 'До датум'],\n locale: 'mk_MK',\n today: 'Денес',\n now: 'Сега',\n backToToday: 'Назад до денес',\n ok: 'ОК',\n clear: 'Избриши',\n month: 'Месец',\n year: 'Година',\n timeSelect: 'Избери време',\n dateSelect: 'Избери датум',\n monthSelect: 'Избери месец',\n yearSelect: 'Избери година',\n decadeSelect: 'Избери деценија',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Претходен месец (PageUp)',\n nextMonth: 'Нареден месец (PageDown)',\n previousYear: 'Претходна година (Control + left)',\n nextYear: 'Наредна година (Control + right)',\n previousDecade: 'Претходна деценија',\n nextDecade: 'Наредна деценија',\n previousCentury: 'Претходен век',\n nextCentury: 'Нареден век'\n },\n timePickerLocale: {\n placeholder: 'Избери време'\n }\n },\n global: {\n placeholder: 'Ве молиме означете'\n },\n Table: {\n filterTitle: 'Мени за филтрирање',\n filterConfirm: 'ОК',\n filterReset: 'Избриши',\n selectAll: 'Одбери страница',\n selectInvert: 'Инвертирај страница'\n },\n Modal: {\n okText: 'ОК',\n cancelText: 'Откажи',\n justOkText: 'ОК'\n },\n Popconfirm: {\n okText: 'ОК',\n cancelText: 'Откажи'\n },\n Transfer: {\n searchPlaceholder: 'Пребарај тука',\n itemUnit: 'предмет',\n itemsUnit: 'предмети'\n },\n Upload: {\n uploading: 'Се прикачува...',\n removeFile: 'Избриши фајл',\n uploadError: 'Грешка при прикачување',\n previewFile: 'Прикажи фајл',\n downloadFile: 'Преземи фајл'\n },\n Empty: {\n description: 'Нема податоци'\n },\n Icon: {\n icon: 'Икона'\n },\n Text: {\n edit: 'Уреди',\n copy: 'Копирај',\n copied: 'Копирано',\n expand: 'Зголеми'\n },\n PageHeader: {\n back: 'Назад'\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 */\nvar ml_IN = {\n locale: 'ml',\n Pagination: {\n items_per_page: '/ പേജ്',\n jump_to: 'അടുത്തത്',\n jump_to_confirm: 'ഉറപ്പാക്കുക',\n page: '',\n prev_page: 'മുൻപുള്ള പേജ്',\n next_page: 'അടുത്ത പേജ്',\n prev_5: 'മുൻപുള്ള 5 പേജുകൾ',\n next_5: 'അടുത്ത 5 പേജുകൾ',\n prev_3: 'മുൻപുള്ള 3 പേജുകൾ',\n next_3: 'അടുത്ത 3 പേജുകൾ',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'തിയതി തിരഞ്ഞെടുക്കുക',\n yearPlaceholder: 'വർഷം തിരഞ്ഞെടുക്കുക',\n quarterPlaceholder: 'ത്രൈമാസം തിരഞ്ഞെടുക്കുക',\n monthPlaceholder: 'മാസം തിരഞ്ഞെടുക്കുക',\n weekPlaceholder: 'വാരം തിരഞ്ഞെടുക്കുക',\n rangePlaceholder: ['ആരംഭ ദിനം', 'അവസാന ദിനം'],\n rangeYearPlaceholder: ['ആരംഭ വർഷം', 'അവസാന വർഷം'],\n rangeMonthPlaceholder: ['ആരംഭ മാസം', 'അവസാന മാസം'],\n rangeWeekPlaceholder: ['ആരംഭ വാരം', 'അവസാന വാരം'],\n locale: 'ml_IN',\n today: 'ഇന്ന്',\n now: 'ഇപ്പോൾ',\n backToToday: 'ഇന്നത്തെ ദിവസത്തിലേക്ക് തിരിച്ചു പോകുക',\n ok: 'ശരിയാണ്',\n clear: 'നീക്കം ചെയ്യുക',\n month: 'മാസം',\n year: 'വർഷം',\n timeSelect: 'സമയം തിരഞ്ഞെടുക്കുക',\n dateSelect: 'ദിവസം തിരഞ്ഞെടുക്കുക',\n weekSelect: 'വാരം തിരഞ്ഞെടുക്കുക',\n monthSelect: 'മാസം തിരഞ്ഞെടുക്കുക',\n yearSelect: 'വർഷം തിരഞ്ഞെടുക്കുക',\n decadeSelect: 'ദശാബ്ദം തിരഞ്ഞെടുക്കുക',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'കഴിഞ്ഞ മാസം (PageUp)',\n nextMonth: 'അടുത്ത മാസം (PageDown)',\n previousYear: 'കഴിഞ്ഞ വർഷം (Control + left)',\n nextYear: 'അടുത്ത വർഷം (Control + right)',\n previousDecade: 'കഴിഞ്ഞ ദശാബ്ദം',\n nextDecade: 'അടുത്ത ദശാബ്ദം',\n previousCentury: 'കഴിഞ്ഞ നൂറ്റാണ്ട്',\n nextCentury: 'അടുത്ത നൂറ്റാണ്ട്'\n },\n timePickerLocale: {\n placeholder: 'സമയം തിരഞ്ഞെടുക്കുക',\n rangePlaceholder: ['ആരംഭ സമയം', 'അവസാന സമയം']\n }\n },\n TimePicker: {\n placeholder: 'സമയം തിരഞ്ഞെടുക്കുക',\n rangePlaceholder: ['ആരംഭ സമയം', 'അവസാന സമയം']\n },\n Calendar: {\n lang: {\n placeholder: 'തിയതി തിരഞ്ഞെടുക്കുക',\n yearPlaceholder: 'വർഷം തിരഞ്ഞെടുക്കുക',\n quarterPlaceholder: 'ത്രൈമാസം തിരഞ്ഞെടുക്കുക',\n monthPlaceholder: 'മാസം തിരഞ്ഞെടുക്കുക',\n weekPlaceholder: 'വാരം തിരഞ്ഞെടുക്കുക',\n rangePlaceholder: ['ആരംഭ ദിനം', 'അവസാന ദിനം'],\n rangeYearPlaceholder: ['ആരംഭ വർഷം', 'അവസാന വർഷം'],\n rangeMonthPlaceholder: ['ആരംഭ മാസം', 'അവസാന മാസം'],\n rangeWeekPlaceholder: ['ആരംഭ വാരം', 'അവസാന വാരം'],\n locale: 'ml_IN',\n today: 'ഇന്ന്',\n now: 'ഇപ്പോൾ',\n backToToday: 'ഇന്നത്തെ ദിവസത്തിലേക്ക് തിരിച്ചു പോകുക',\n ok: 'ശരിയാണ്',\n clear: 'നീക്കം ചെയ്യുക',\n month: 'മാസം',\n year: 'വർഷം',\n timeSelect: 'സമയം തിരഞ്ഞെടുക്കുക',\n dateSelect: 'ദിവസം തിരഞ്ഞെടുക്കുക',\n weekSelect: 'വാരം തിരഞ്ഞെടുക്കുക',\n monthSelect: 'മാസം തിരഞ്ഞെടുക്കുക',\n yearSelect: 'വർഷം തിരഞ്ഞെടുക്കുക',\n decadeSelect: 'ദശാബ്ദം തിരഞ്ഞെടുക്കുക',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'കഴിഞ്ഞ മാസം (PageUp)',\n nextMonth: 'അടുത്ത മാസം (PageDown)',\n previousYear: 'കഴിഞ്ഞ വർഷം (Control + left)',\n nextYear: 'അടുത്ത വർഷം (Control + right)',\n previousDecade: 'കഴിഞ്ഞ ദശാബ്ദം',\n nextDecade: 'അടുത്ത ദശാബ്ദം',\n previousCentury: 'കഴിഞ്ഞ നൂറ്റാണ്ട്',\n nextCentury: 'അടുത്ത നൂറ്റാണ്ട്'\n },\n timePickerLocale: {\n placeholder: 'സമയം തിരഞ്ഞെടുക്കുക',\n rangePlaceholder: ['ആരംഭ സമയം', 'അവസാന സമയം']\n }\n },\n global: {\n placeholder: 'ദയവായി തിരഞ്ഞെടുക്കുക'\n },\n Table: {\n filterTitle: 'ഫിൽറ്റർ',\n filterConfirm: 'ശരിയാണ്',\n filterReset: 'പുനഃക്രമീകരിക്കുക',\n filterEmptyText: 'ഫിൽറ്ററുകളൊന്നുമില്ല',\n emptyText: 'ഡാറ്റയൊന്നുമില്ല',\n selectAll: 'നിലവിലെ പേജ് തിരഞ്ഞെടുക്കുക',\n selectInvert: 'നിലവിലെ പേജിൽ ഇല്ലാത്തത് തിരഞ്ഞെടുക്കുക',\n selectNone: 'എല്ലാ ഡാറ്റയും നീക്കം ചെയ്യുക',\n selectionAll: 'എല്ലാ ഡാറ്റയും തിരഞ്ഞെടുക്കുക',\n sortTitle: 'ക്രമമാക്കുക',\n expand: 'വരി വികസിപ്പിക്കുക',\n collapse: 'വരി ചുരുക്കുക',\n triggerDesc: 'അവരോഹണ ക്രമത്തിനായി ക്ലിക്ക് ചെയ്യുക',\n triggerAsc: 'ആരോഹണ ക്രമത്തിനായി ക്ലിക്ക് ചെയ്യുക',\n cancelSort: 'ക്രമീകരണം ഒഴിവാക്കുന്നതിനായി ക്ലിക്ക് ചെയ്യുക'\n },\n Modal: {\n okText: 'ശരിയാണ്',\n cancelText: 'റദ്ദാക്കുക',\n justOkText: 'ശരിയാണ്'\n },\n Popconfirm: {\n okText: 'ശരിയാണ്',\n cancelText: 'റദ്ദാക്കുക'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'ഇവിടെ തിരയുക',\n itemUnit: 'ഇനം',\n itemsUnit: 'ഇനങ്ങൾ',\n remove: 'നീക്കം ചെയ്യുക',\n selectCurrent: 'നിലവിലെ പേജ് തിരഞ്ഞെടുക്കുക',\n removeCurrent: 'നിലവിലെ പേജ് നീക്കം ചെയ്യുക',\n selectAll: 'എല്ലാ ഡാറ്റയും തിരഞ്ഞെടുക്കുക',\n removeAll: 'എല്ലാ ഡാറ്റയും നീക്കം ചെയ്യുക',\n selectInvert: 'നിലവിലെ പേജിൽ ഇല്ലാത്തത് തിരഞ്ഞെടുക്കുക'\n },\n Upload: {\n uploading: 'അപ്ലോഡ് ചെയ്തു കൊണ്ടിരിക്കുന്നു...',\n removeFile: 'ഫയൽ നീക്കം ചെയ്യുക',\n uploadError: 'അപ്ലോഡിൽ പിശക് സംഭവിച്ചിരിക്കുന്നു',\n previewFile: 'ഫയൽ പ്രിവ്യൂ ചെയ്യുക',\n downloadFile: 'ഫയൽ ഡൗൺലോഡ് ചെയ്യുക'\n },\n Empty: {\n description: 'ഡാറ്റയൊന്നുമില്ല'\n },\n Icon: {\n icon: 'ഐക്കൺ'\n },\n Text: {\n edit: 'തിരുത്തുക',\n copy: 'കോപ്പി ചെയ്യുക',\n copied: 'കോപ്പി ചെയ്തു',\n expand: 'വികസിപ്പിക്കുക'\n },\n PageHeader: {\n back: 'തിരികെ'\n },\n Image: {\n preview: 'പ്രിവ്യൂ'\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 */\nvar mn_MN = {\n locale: 'mn-mn',\n Pagination: {\n items_per_page: '/ хуудас',\n jump_to: 'Шилжих',\n jump_to_confirm: 'сонгох',\n page: '',\n prev_page: 'Өмнөх хуудас',\n next_page: 'Дараагийн хуудас',\n prev_5: 'Дараагийн 5 хуудас',\n next_5: 'Дараагийн 5 хуудас',\n prev_3: 'Дараагийн 3 хуудас',\n next_3: 'Дараагийн 3 хуудас',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Огноо сонгох',\n rangePlaceholder: ['Эхлэх огноо', 'Дуусах огноо'],\n locale: 'mn_MN',\n today: 'Өнөөдөр',\n now: 'Одоо',\n backToToday: 'Өнөөдөрлүү буцах',\n ok: 'Ok',\n clear: 'Цэвэрлэх',\n month: 'Сар',\n year: 'Жил',\n timeSelect: 'Цаг сонгох',\n dateSelect: 'Огноо сонгох',\n weekSelect: '7 хоног сонгох',\n monthSelect: 'Сар сонгох',\n yearSelect: 'Жил сонгох',\n decadeSelect: 'Арван сонгох',\n yearFormat: 'YYYY',\n dateFormat: 'YYYY/MM/DD',\n dayFormat: 'DD',\n dateTimeFormat: 'YYYY/MM/DD HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Өмнөх сар (PageUp)',\n nextMonth: 'Дараа сар (PageDown)',\n previousYear: 'Өмнөх жил (Control + left)',\n nextYear: 'Дараа жил (Control + right)',\n previousDecade: 'Өмнөх арван',\n nextDecade: 'Дараа арван',\n previousCentury: 'Өмнөх зуун',\n nextCentury: 'Дараа зуун'\n },\n timePickerLocale: {\n placeholder: 'Цаг сонгох'\n }\n },\n TimePicker: {\n placeholder: 'Цаг сонгох'\n },\n Calendar: {\n lang: {\n placeholder: 'Огноо сонгох',\n rangePlaceholder: ['Эхлэх огноо', 'Дуусах огноо'],\n locale: 'mn_MN',\n today: 'Өнөөдөр',\n now: 'Одоо',\n backToToday: 'Өнөөдөрлүү буцах',\n ok: 'Ok',\n clear: 'Цэвэрлэх',\n month: 'Сар',\n year: 'Жил',\n timeSelect: 'Цаг сонгох',\n dateSelect: 'Огноо сонгох',\n weekSelect: '7 хоног сонгох',\n monthSelect: 'Сар сонгох',\n yearSelect: 'Жил сонгох',\n decadeSelect: 'Арван сонгох',\n yearFormat: 'YYYY',\n dateFormat: 'YYYY/MM/DD',\n dayFormat: 'DD',\n dateTimeFormat: 'YYYY/MM/DD HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Өмнөх сар (PageUp)',\n nextMonth: 'Дараа сар (PageDown)',\n previousYear: 'Өмнөх жил (Control + left)',\n nextYear: 'Дараа жил (Control + right)',\n previousDecade: 'Өмнөх арван',\n nextDecade: 'Дараа арван',\n previousCentury: 'Өмнөх зуун',\n nextCentury: 'Дараа зуун'\n },\n timePickerLocale: {\n placeholder: 'Цаг сонгох'\n }\n },\n Table: {\n filterTitle: 'Хайх цэс',\n filterConfirm: 'OK',\n filterReset: 'Цэвэрлэх',\n selectAll: 'Бүгдийг сонгох',\n selectInvert: 'Бусдыг сонгох'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Цуцлах',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Цуцлах'\n },\n Transfer: {\n searchPlaceholder: 'Хайх',\n itemUnit: 'Зүйл',\n itemsUnit: 'Зүйлүүд'\n },\n Upload: {\n uploading: 'Хуулж байна...',\n removeFile: 'Файл устгах',\n uploadError: 'Хуулахад алдаа гарлаа',\n previewFile: 'Файлыг түргэн үзэх',\n downloadFile: 'Файлыг татах'\n },\n Empty: {\n description: 'Мэдээлэл байхгүй байна'\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 */\nvar ms_MY = {\n locale: 'ms-my',\n Pagination: {\n items_per_page: '/ halaman',\n jump_to: 'Lompat ke',\n jump_to_confirm: 'Sahkan',\n page: '',\n prev_page: 'Halaman sebelumnya',\n next_page: 'Halam seterusnya',\n prev_5: '5 halaman sebelum',\n next_5: '5 halaman seterusnya',\n prev_3: '3 halaman sebelumnya',\n next_3: '3 halaman seterusnya',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Pilih tarikh',\n rangePlaceholder: ['Tarikh mula', 'Tarikh akhir'],\n locale: 'ms_MY',\n today: 'Hari ini',\n now: 'Sekarang',\n backToToday: 'Kembali ke hari ini',\n ok: 'Ok',\n timeSelect: 'Pilih masa',\n dateSelect: 'Pilih tarikh',\n weekSelect: 'Pilih minggu',\n clear: 'Padam',\n month: 'Bulan',\n year: 'Tahun',\n previousMonth: 'Bulan lepas',\n nextMonth: 'Bulan depan',\n monthSelect: 'Pilih bulan',\n yearSelect: 'Pilih tahun',\n decadeSelect: 'Pilih dekad',\n yearFormat: 'YYYY',\n dayFormat: 'D',\n dateFormat: 'M/D/YYYY',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n previousYear: 'Tahun lepas (Ctrl+left)',\n nextYear: 'Tahun depan (Ctrl+right)',\n previousDecade: 'Dekad lepas',\n nextDecade: 'Dekad depan',\n previousCentury: 'Abad lepas',\n nextCentury: 'Abad depan'\n },\n timePickerLocale: {\n placeholder: 'Sila pilih masa'\n }\n },\n TimePicker: {\n placeholder: 'Sila pilih masa'\n },\n Calendar: {\n lang: {\n placeholder: 'Pilih tarikh',\n rangePlaceholder: ['Tarikh mula', 'Tarikh akhir'],\n locale: 'ms_MY',\n today: 'Hari ini',\n now: 'Sekarang',\n backToToday: 'Kembali ke hari ini',\n ok: 'Ok',\n timeSelect: 'Pilih masa',\n dateSelect: 'Pilih tarikh',\n weekSelect: 'Pilih minggu',\n clear: 'Padam',\n month: 'Bulan',\n year: 'Tahun',\n previousMonth: 'Bulan lepas',\n nextMonth: 'Bulan depan',\n monthSelect: 'Pilih bulan',\n yearSelect: 'Pilih tahun',\n decadeSelect: 'Pilih dekad',\n yearFormat: 'YYYY',\n dayFormat: 'D',\n dateFormat: 'M/D/YYYY',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n previousYear: 'Tahun lepas (Ctrl+left)',\n nextYear: 'Tahun depan (Ctrl+right)',\n previousDecade: 'Dekad lepas',\n nextDecade: 'Dekad depan',\n previousCentury: 'Abad lepas',\n nextCentury: 'Abad depan'\n },\n timePickerLocale: {\n placeholder: 'Sila pilih masa'\n }\n },\n global: {\n placeholder: 'Sila pilih'\n },\n PageHeader: {\n back: 'Kembali'\n },\n Text: {\n edit: 'Sunting',\n copy: 'Salin',\n copied: 'Berjaya menyalin',\n expand: 'Kembang'\n },\n Empty: {\n description: 'Tiada data'\n },\n Table: {\n filterTitle: 'Cari dengan tajuk',\n filterConfirm: 'OK',\n filterReset: 'Menetapkan semula',\n emptyText: 'Tiada data',\n selectAll: 'Pilih semua',\n selectInvert: 'Terbalikkan'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Batal',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Batal'\n },\n Transfer: {\n notFoundContent: 'Tidak dijumpai',\n searchPlaceholder: 'Carian di sini',\n itemUnit: 'item',\n itemsUnit: 'item'\n },\n Icon: {\n icon: 'ikon'\n },\n Select: {\n notFoundContent: 'Tidak Dijumpai'\n },\n Upload: {\n uploading: 'Sedang memuat naik...',\n removeFile: 'Buang fail',\n uploadError: 'Masalah muat naik',\n previewFile: 'Tengok fail',\n downloadFile: 'Muat turun fail'\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 */\nvar nb_NO = {\n locale: 'nb',\n Pagination: {\n items_per_page: '/ side',\n jump_to: 'Gå til side',\n page: 'Side',\n prev_page: 'Forrige side',\n next_page: 'Neste side',\n prev_5: '5 forrige',\n next_5: '5 neste',\n prev_3: '3 forrige',\n next_3: '3 neste',\n page_size: 'sidestørrelse'\n },\n DatePicker: {\n lang: {\n placeholder: 'Velg dato',\n yearPlaceholder: 'Velg år',\n quarterPlaceholder: 'Velg kvartal',\n monthPlaceholder: 'Velg måned',\n weekPlaceholder: 'Velg uke',\n rangePlaceholder: ['Startdato', 'Sluttdato'],\n rangeYearPlaceholder: ['Startår', 'Sluttår'],\n rangeMonthPlaceholder: ['Startmåned', 'Sluttmåned'],\n rangeWeekPlaceholder: ['Start uke', 'Sluttuke'],\n locale: 'nb_NO',\n today: 'I dag',\n now: 'Nå',\n backToToday: 'Gå til i dag',\n ok: 'Ok',\n clear: 'Annuller',\n month: 'Måned',\n year: 'År',\n timeSelect: 'Velg tidspunkt',\n dateSelect: 'Velg dato',\n weekSelect: 'Velg uke',\n monthSelect: 'Velg måned',\n yearSelect: 'Velg år',\n decadeSelect: 'Velg tiår',\n yearFormat: 'YYYY',\n dateFormat: 'DD.MM.YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD.MM.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Forrige måned (PageUp)',\n nextMonth: 'Neste måned (PageDown)',\n previousYear: 'Forrige år (Control + venstre)',\n nextYear: 'Neste år (Control + høyre)',\n previousDecade: 'Forrige tiår',\n nextDecade: 'Neste tiår',\n previousCentury: 'Forrige århundre',\n nextCentury: 'Neste århundre'\n },\n timePickerLocale: {\n placeholder: 'Velg tid',\n rangePlaceholder: ['Starttid', 'Sluttid']\n }\n },\n TimePicker: {\n placeholder: 'Velg tid',\n rangePlaceholder: ['Starttid', 'Sluttid']\n },\n Calendar: {\n lang: {\n placeholder: 'Velg dato',\n yearPlaceholder: 'Velg år',\n quarterPlaceholder: 'Velg kvartal',\n monthPlaceholder: 'Velg måned',\n weekPlaceholder: 'Velg uke',\n rangePlaceholder: ['Startdato', 'Sluttdato'],\n rangeYearPlaceholder: ['Startår', 'Sluttår'],\n rangeMonthPlaceholder: ['Startmåned', 'Sluttmåned'],\n rangeWeekPlaceholder: ['Start uke', 'Sluttuke'],\n locale: 'nb_NO',\n today: 'I dag',\n now: 'Nå',\n backToToday: 'Gå til i dag',\n ok: 'Ok',\n clear: 'Annuller',\n month: 'Måned',\n year: 'År',\n timeSelect: 'Velg tidspunkt',\n dateSelect: 'Velg dato',\n weekSelect: 'Velg uke',\n monthSelect: 'Velg måned',\n yearSelect: 'Velg år',\n decadeSelect: 'Velg tiår',\n yearFormat: 'YYYY',\n dateFormat: 'DD.MM.YYYY',\n dayFormat: 'DD',\n dateTimeFormat: 'DD.MM.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Forrige måned (PageUp)',\n nextMonth: 'Neste måned (PageDown)',\n previousYear: 'Forrige år (Control + venstre)',\n nextYear: 'Neste år (Control + høyre)',\n previousDecade: 'Forrige tiår',\n nextDecade: 'Neste tiår',\n previousCentury: 'Forrige århundre',\n nextCentury: 'Neste århundre'\n },\n timePickerLocale: {\n placeholder: 'Velg tid',\n rangePlaceholder: ['Starttid', 'Sluttid']\n }\n },\n global: {\n placeholder: 'Vennligst velg'\n },\n Table: {\n filterTitle: 'Filtermeny',\n filterConfirm: 'OK',\n filterReset: 'Nullstill',\n filterEmptyText: 'Ingen filtre',\n selectAll: 'Velg alle',\n selectInvert: 'Inverter gjeldende side',\n selectionAll: 'Velg all data',\n sortTitle: 'Sorter',\n expand: 'Utvid rad',\n collapse: 'Skjul rad',\n triggerDesc: 'Sorter data i synkende rekkefølge',\n triggerAsc: 'Sorterer data i stigende rekkefølge',\n cancelSort: 'Klikk for å avbryte sorteringen'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Avbryt',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Avbryt'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Søk her',\n itemUnit: 'element',\n itemsUnit: 'elementer',\n remove: 'Fjern',\n selectCurrent: 'Velg gjeldende side',\n removeCurrent: 'Fjern gjeldende side',\n selectAll: 'Velg all data',\n removeAll: 'Fjern all data',\n selectInvert: 'Inverter gjeldende side'\n },\n Upload: {\n uploading: 'Laster opp...',\n removeFile: 'Fjern fil',\n uploadError: 'Feil ved opplastning',\n previewFile: 'Forhåndsvisning',\n downloadFile: 'Last ned fil'\n },\n Empty: {\n description: 'Ingen data'\n },\n Icon: {\n icon: 'ikon'\n },\n Text: {\n edit: 'Rediger',\n copy: 'Kopier',\n copied: 'Kopiert',\n expand: 'Utvid'\n },\n PageHeader: {\n back: 'Tilbake'\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 */\nvar ne_NP = {\n locale: 'ne-np',\n Pagination: {\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week'],\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n },\n timePickerLocale: {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n }\n },\n TimePicker: {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n },\n Calendar: {\n lang: {\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week'],\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n },\n timePickerLocale: {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n }\n },\n Table: {\n filterTitle: 'फिल्टर मेनु',\n filterConfirm: 'हो',\n filterReset: 'रीसेट',\n selectAll: 'सबै छान्नुुहोस्',\n selectInvert: 'छनौट उल्टाउनुहोस'\n },\n Modal: {\n okText: 'हो',\n cancelText: 'होईन',\n justOkText: 'हो'\n },\n Popconfirm: {\n okText: 'हो',\n cancelText: 'होईन'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'यहाँ खोज्नुहोस्',\n itemUnit: 'वस्तु',\n itemsUnit: 'वस्तुहरू'\n },\n Upload: {\n uploading: 'अपलोड गर्दै...',\n removeFile: 'फाइल हटाउनुहोस्',\n uploadError: 'अप्लोडमा समस्या भयो',\n previewFile: 'फाइल पूर्वावलोकन गर्नुहोस्',\n downloadFile: 'डाउनलोड फाइल'\n },\n Empty: {\n description: 'डाटा छैन'\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 */\nvar nl_BE = {\n locale: 'nl-be',\n Pagination: {\n items_per_page: '/ pagina',\n jump_to: 'Ga naar',\n jump_to_confirm: 'bevestigen',\n page: '',\n prev_page: 'Vorige pagina',\n next_page: 'Volgende pagina',\n prev_5: \"Vorige 5 pagina's\",\n next_5: \"Volgende 5 pagina's\",\n prev_3: \"Vorige 3 pagina's\",\n next_3: \"Volgende 3 pagina's\",\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Selecteer datum',\n rangePlaceholder: ['Begin datum', 'Eind datum'],\n locale: 'nl_BE',\n today: 'Vandaag',\n now: 'Nu',\n backToToday: 'Terug naar vandaag',\n ok: 'Ok',\n clear: 'Reset',\n month: 'Maand',\n year: 'Jaar',\n timeSelect: 'Selecteer tijd',\n dateSelect: 'Selecteer datum',\n monthSelect: 'Kies een maand',\n yearSelect: 'Kies een jaar',\n decadeSelect: 'Kies een decennium',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Vorige maand (PageUp)',\n nextMonth: 'Volgende maand (PageDown)',\n previousYear: 'Vorig jaar (Control + left)',\n nextYear: 'Volgend jaar (Control + right)',\n previousDecade: 'Vorig decennium',\n nextDecade: 'Volgend decennium',\n previousCentury: 'Vorige eeuw',\n nextCentury: 'Volgende eeuw',\n monthPlaceholder: 'Selecteer maand',\n quarterPlaceholder: 'Selecteer kwartaal',\n rangeMonthPlaceholder: ['Begin maand', 'Eind maand'],\n rangeWeekPlaceholder: ['Begin week', 'Eind week'],\n rangeYearPlaceholder: ['Begin jaar', 'Eind jaar'],\n weekPlaceholder: 'Selecteer week',\n yearPlaceholder: 'Selecteer jaar'\n },\n timePickerLocale: {\n placeholder: 'Selecteer tijd',\n rangePlaceholder: ['Start tijd', 'Eind tijd']\n }\n },\n TimePicker: {\n placeholder: 'Selecteer tijd',\n rangePlaceholder: ['Start tijd', 'Eind tijd']\n },\n Calendar: {\n lang: {\n placeholder: 'Selecteer datum',\n rangePlaceholder: ['Begin datum', 'Eind datum'],\n locale: 'nl_BE',\n today: 'Vandaag',\n now: 'Nu',\n backToToday: 'Terug naar vandaag',\n ok: 'Ok',\n clear: 'Reset',\n month: 'Maand',\n year: 'Jaar',\n timeSelect: 'Selecteer tijd',\n dateSelect: 'Selecteer datum',\n monthSelect: 'Kies een maand',\n yearSelect: 'Kies een jaar',\n decadeSelect: 'Kies een decennium',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Vorige maand (PageUp)',\n nextMonth: 'Volgende maand (PageDown)',\n previousYear: 'Vorig jaar (Control + left)',\n nextYear: 'Volgend jaar (Control + right)',\n previousDecade: 'Vorig decennium',\n nextDecade: 'Volgend decennium',\n previousCentury: 'Vorige eeuw',\n nextCentury: 'Volgende eeuw',\n monthPlaceholder: 'Selecteer maand',\n quarterPlaceholder: 'Selecteer kwartaal',\n rangeMonthPlaceholder: ['Begin maand', 'Eind maand'],\n rangeWeekPlaceholder: ['Begin week', 'Eind week'],\n rangeYearPlaceholder: ['Begin jaar', 'Eind jaar'],\n weekPlaceholder: 'Selecteer week',\n yearPlaceholder: 'Selecteer jaar'\n },\n timePickerLocale: {\n placeholder: 'Selecteer tijd',\n rangePlaceholder: ['Start tijd', 'Eind tijd']\n }\n },\n Table: {\n filterTitle: 'Filteren',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n selectAll: 'Selecteer huidige pagina',\n selectInvert: 'Keer volgorde om',\n cancelSort: 'Klik om sortering te annuleren',\n collapse: 'Rij inklappen',\n emptyText: 'Geen data',\n expand: 'Rij uitklappen',\n filterEmptyText: 'Geen filters',\n selectNone: 'Maak selectie leeg',\n selectionAll: 'Selecteer alle data',\n sortTitle: 'Sorteren',\n triggerAsc: 'Klik om oplopend te sorteren',\n triggerDesc: 'Klik om aflopend te sorteren'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Annuleer',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Annuleer'\n },\n Transfer: {\n searchPlaceholder: 'Zoek hier',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Verwijder',\n removeAll: 'Verwijder alles',\n removeCurrent: 'Verwijder huidige pagina',\n selectAll: 'Selecteer alles',\n selectCurrent: 'Selecteer huidige pagina',\n selectInvert: 'Huidige pagina omkeren',\n titles: ['', '']\n },\n Upload: {\n uploading: 'Uploaden...',\n removeFile: 'Verwijder bestand',\n uploadError: 'Fout tijdens uploaden',\n previewFile: 'Preview file',\n downloadFile: 'Bestand downloaden'\n },\n Empty: {\n description: 'Geen gegevens'\n },\n global: {\n placeholder: 'Maak een selectie'\n },\n Icon: {\n icon: 'icoon'\n },\n Text: {\n edit: 'Bewerken',\n copy: 'kopiëren',\n copied: 'Gekopieerd',\n expand: 'Uitklappen'\n },\n PageHeader: {\n back: 'Terug'\n },\n Image: {\n preview: 'Voorbeeld'\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 */\nvar nl_NL = {\n locale: 'nl',\n Pagination: {\n items_per_page: '/ pagina',\n jump_to: 'Ga naar',\n jump_to_confirm: 'bevestigen',\n page: 'Pagina',\n prev_page: 'Vorige pagina',\n next_page: 'Volgende pagina',\n prev_5: \"Vorige 5 pagina's\",\n next_5: \"Volgende 5 pagina's\",\n prev_3: \"Vorige 3 pagina's\",\n next_3: \"Volgende 3 pagina's\",\n page_size: 'pagina grootte'\n },\n DatePicker: {\n lang: {\n placeholder: 'Selecteer datum',\n rangePlaceholder: ['Begin datum', 'Eind datum'],\n locale: 'nl_NL',\n today: 'Vandaag',\n now: 'Nu',\n backToToday: 'Terug naar vandaag',\n ok: 'Ok',\n clear: 'Reset',\n month: 'Maand',\n year: 'Jaar',\n timeSelect: 'Selecteer tijd',\n dateSelect: 'Selecteer datum',\n monthSelect: 'Kies een maand',\n yearSelect: 'Kies een jaar',\n decadeSelect: 'Kies een decennium',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Vorige maand (PageUp)',\n nextMonth: 'Volgende maand (PageDown)',\n previousYear: 'Vorig jaar (Control + left)',\n nextYear: 'Volgend jaar (Control + right)',\n previousDecade: 'Vorig decennium',\n nextDecade: 'Volgend decennium',\n previousCentury: 'Vorige eeuw',\n nextCentury: 'Volgende eeuw',\n monthPlaceholder: 'Selecteer maand',\n quarterPlaceholder: 'Selecteer kwartaal',\n rangeMonthPlaceholder: ['Begin maand', 'Eind maand'],\n rangeWeekPlaceholder: ['Begin week', 'Eind week'],\n rangeYearPlaceholder: ['Begin jaar', 'Eind jaar'],\n weekPlaceholder: 'Selecteer week',\n yearPlaceholder: 'Selecteer jaar'\n },\n timePickerLocale: {\n placeholder: 'Selecteer tijd',\n rangePlaceholder: ['Start tijd', 'Eind tijd']\n }\n },\n TimePicker: {\n placeholder: 'Selecteer tijd',\n rangePlaceholder: ['Start tijd', 'Eind tijd']\n },\n Calendar: {\n lang: {\n placeholder: 'Selecteer datum',\n rangePlaceholder: ['Begin datum', 'Eind datum'],\n locale: 'nl_NL',\n today: 'Vandaag',\n now: 'Nu',\n backToToday: 'Terug naar vandaag',\n ok: 'Ok',\n clear: 'Reset',\n month: 'Maand',\n year: 'Jaar',\n timeSelect: 'Selecteer tijd',\n dateSelect: 'Selecteer datum',\n monthSelect: 'Kies een maand',\n yearSelect: 'Kies een jaar',\n decadeSelect: 'Kies een decennium',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Vorige maand (PageUp)',\n nextMonth: 'Volgende maand (PageDown)',\n previousYear: 'Vorig jaar (Control + left)',\n nextYear: 'Volgend jaar (Control + right)',\n previousDecade: 'Vorig decennium',\n nextDecade: 'Volgend decennium',\n previousCentury: 'Vorige eeuw',\n nextCentury: 'Volgende eeuw',\n monthPlaceholder: 'Selecteer maand',\n quarterPlaceholder: 'Selecteer kwartaal',\n rangeMonthPlaceholder: ['Begin maand', 'Eind maand'],\n rangeWeekPlaceholder: ['Begin week', 'Eind week'],\n rangeYearPlaceholder: ['Begin jaar', 'Eind jaar'],\n weekPlaceholder: 'Selecteer week',\n yearPlaceholder: 'Selecteer jaar'\n },\n timePickerLocale: {\n placeholder: 'Selecteer tijd',\n rangePlaceholder: ['Start tijd', 'Eind tijd']\n }\n },\n global: {\n placeholder: 'Maak een selectie'\n },\n Table: {\n filterTitle: 'Filteren',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n selectAll: 'Selecteer huidige pagina',\n selectInvert: 'Keer volgorde om',\n sortTitle: 'Sorteren',\n expand: 'Rij uitklappen',\n collapse: 'Rij inklappen',\n cancelSort: 'Klik om sortering te annuleren',\n emptyText: 'Geen data',\n filterEmptyText: 'Geen filters',\n selectNone: 'Maak selectie leeg',\n selectionAll: 'Selecteer alle data',\n triggerAsc: 'Klik om oplopend te sorteren',\n triggerDesc: 'Klik om aflopend te sorteren'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Annuleer',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Annuleer'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Zoek hier',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Verwijder',\n removeAll: 'Verwijder alles',\n removeCurrent: 'Verwijder huidige pagina',\n selectAll: 'Selecteer alles',\n selectCurrent: 'Selecteer huidige pagina',\n selectInvert: 'Huidige pagina omkeren'\n },\n Upload: {\n uploading: 'Uploaden...',\n removeFile: 'Verwijder bestand',\n uploadError: 'Fout tijdens uploaden',\n previewFile: 'Preview file',\n downloadFile: 'Bestand downloaden'\n },\n Empty: {\n description: 'Geen gegevens'\n },\n Icon: {\n icon: 'icoon'\n },\n Text: {\n edit: 'Bewerken',\n copy: 'kopiëren',\n copied: 'Gekopieerd',\n expand: 'Uitklappen'\n },\n PageHeader: {\n back: 'Terug'\n },\n Image: {\n preview: 'Voorbeeld'\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 */\nvar pl_PL = {\n locale: 'pl',\n Pagination: {\n items_per_page: 'na stronę',\n jump_to: 'Idź do',\n jump_to_confirm: 'potwierdź',\n page: '',\n prev_page: 'Poprzednia strona',\n next_page: 'Następna strona',\n prev_5: 'Poprzednie 5 stron',\n next_5: 'Następne 5 stron',\n prev_3: 'Poprzednie 3 strony',\n next_3: 'Następne 3 strony',\n page_size: 'rozmiar strony'\n },\n DatePicker: {\n lang: {\n placeholder: 'Wybierz datę',\n yearPlaceholder: 'Wybierz rok',\n monthPlaceholder: 'Wybierz miesiąc',\n weekPlaceholder: 'Wybierz tydzień',\n rangePlaceholder: ['Data początkowa', 'Data końcowa'],\n rangeYearPlaceholder: ['Początkowy rok', 'Końcowy rok'],\n rangeMonthPlaceholder: ['Początkowy miesiąc', 'Końcowy miesiąc'],\n rangeWeekPlaceholder: ['Początkowy tydzień', 'Końcowy tydzień'],\n locale: 'pl_PL',\n today: 'Dzisiaj',\n now: 'Teraz',\n backToToday: 'Ustaw dzisiaj',\n ok: 'Ok',\n clear: 'Wyczyść',\n month: 'Miesiąc',\n year: 'Rok',\n timeSelect: 'Ustaw czas',\n dateSelect: 'Ustaw datę',\n monthSelect: 'Wybierz miesiąc',\n yearSelect: 'Wybierz rok',\n decadeSelect: 'Wybierz dekadę',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Poprzedni miesiąc (PageUp)',\n nextMonth: 'Następny miesiąc (PageDown)',\n previousYear: 'Ostatni rok (Ctrl + left)',\n nextYear: 'Następny rok (Ctrl + right)',\n previousDecade: 'Ostatnia dekada',\n nextDecade: 'Następna dekada',\n previousCentury: 'Ostatni wiek',\n nextCentury: 'Następny wiek'\n },\n timePickerLocale: {\n placeholder: 'Wybierz godzinę'\n }\n },\n TimePicker: {\n placeholder: 'Wybierz godzinę'\n },\n Calendar: {\n lang: {\n placeholder: 'Wybierz datę',\n rangePlaceholder: ['Data początkowa', 'Data końcowa'],\n locale: 'pl_PL',\n today: 'Dzisiaj',\n now: 'Teraz',\n backToToday: 'Ustaw dzisiaj',\n ok: 'Ok',\n clear: 'Wyczyść',\n month: 'Miesiąc',\n year: 'Rok',\n timeSelect: 'Ustaw czas',\n dateSelect: 'Ustaw datę',\n monthSelect: 'Wybierz miesiąc',\n yearSelect: 'Wybierz rok',\n decadeSelect: 'Wybierz dekadę',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Poprzedni miesiąc (PageUp)',\n nextMonth: 'Następny miesiąc (PageDown)',\n previousYear: 'Ostatni rok (Ctrl + left)',\n nextYear: 'Następny rok (Ctrl + right)',\n previousDecade: 'Ostatnia dekada',\n nextDecade: 'Następna dekada',\n previousCentury: 'Ostatni wiek',\n nextCentury: 'Następny wiek'\n },\n timePickerLocale: {\n placeholder: 'Wybierz godzinę'\n }\n },\n Table: {\n filterTitle: 'Menu filtra',\n filterConfirm: 'OK',\n filterReset: 'Usuń filtry',\n selectAll: 'Zaznacz bieżącą stronę',\n selectInvert: 'Odwróć zaznaczenie',\n triggerDesc: 'Sortuj malejąco',\n triggerAsc: 'Sortuj rosnąco',\n cancelSort: 'Usuń sortowanie',\n filterEmptyText: 'Brak filtrów',\n filterCheckall: 'Wybierz wszystkie elementy',\n filterSearchPlaceholder: 'Szukaj w filtrach',\n emptyText: 'Brak danych',\n selectNone: 'Wyczyść',\n selectionAll: 'Wybierz wszystkie',\n sortTitle: 'Sortowanie',\n expand: 'Rozwiń wiersz',\n collapse: 'Zwiń wiersz'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Anuluj',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Anuluj'\n },\n Transfer: {\n searchPlaceholder: 'Szukaj',\n itemUnit: 'obiekt',\n itemsUnit: 'obiekty',\n titles: ['', ''],\n remove: 'Usuń',\n selectCurrent: 'Wybierz aktualną stronę',\n removeCurrent: 'Usuń aktualną stronę',\n selectAll: 'Wybierz wszystkie',\n removeAll: 'Usuń wszystkie',\n selectInvert: 'Odwróć wybór'\n },\n Upload: {\n uploading: 'Wysyłanie...',\n removeFile: 'Usuń plik',\n uploadError: 'Błąd wysyłania',\n previewFile: 'Podejrzyj plik',\n downloadFile: 'Pobieranie pliku'\n },\n Empty: {\n description: 'Brak danych'\n },\n global: {\n placeholder: 'Wybierz'\n },\n Icon: {\n icon: 'Ikona'\n },\n Text: {\n edit: 'Edytuj',\n copy: 'Kopiuj',\n copied: 'Skopiowany',\n expand: 'Rozwiń'\n },\n PageHeader: {\n back: 'Wstecz'\n },\n Image: {\n preview: 'Podgląd'\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 */\nvar pt_BR = {\n locale: 'pt-br',\n Pagination: {\n items_per_page: '/ página',\n jump_to: 'Vá até',\n jump_to_confirm: 'confirme',\n page: 'Página',\n prev_page: 'Página anterior',\n next_page: 'Próxima página',\n prev_5: '5 páginas anteriores',\n next_5: '5 próximas páginas',\n prev_3: '3 páginas anteriores',\n next_3: '3 próximas páginas',\n page_size: 'tamanho da página'\n },\n DatePicker: {\n lang: {\n placeholder: 'Selecionar data',\n yearPlaceholder: 'Selecionar ano',\n quarterPlaceholder: 'Selecionar trimestre',\n monthPlaceholder: 'Selecionar mês',\n weekPlaceholder: 'Selecionar semana',\n rangePlaceholder: ['Data inicial', 'Data final'],\n rangeYearPlaceholder: ['Ano inicial', 'Ano Final'],\n rangeMonthPlaceholder: ['Mês inicial', 'Mês final'],\n rangeWeekPlaceholder: ['Semana inicial', 'Semana final'],\n locale: 'pt_BR',\n today: 'Hoje',\n now: 'Agora',\n backToToday: 'Voltar para hoje',\n ok: 'Ok',\n clear: 'Limpar',\n month: 'Mês',\n year: 'Ano',\n timeSelect: 'Selecionar hora',\n dateSelect: 'Selecionar data',\n weekSelect: 'Escolher semana',\n monthSelect: 'Escolher mês',\n yearSelect: 'Escolher ano',\n decadeSelect: 'Escolher década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: false,\n previousMonth: 'Mês anterior (PageUp)',\n nextMonth: 'Próximo mês (PageDown)',\n previousYear: 'Ano anterior (Control + esquerda)',\n nextYear: 'Próximo ano (Control + direita)',\n previousDecade: 'Década anterior',\n nextDecade: 'Próxima década',\n previousCentury: 'Século anterior',\n nextCentury: 'Próximo século',\n shortWeekDays: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],\n shortMonths: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']\n },\n timePickerLocale: {\n placeholder: 'Hora',\n rangePlaceholder: ['Hora inicial', 'Hora final']\n }\n },\n TimePicker: {\n placeholder: 'Hora',\n rangePlaceholder: ['Hora inicial', 'Hora final']\n },\n Calendar: {\n lang: {\n placeholder: 'Selecionar data',\n yearPlaceholder: 'Selecionar ano',\n quarterPlaceholder: 'Selecionar trimestre',\n monthPlaceholder: 'Selecionar mês',\n weekPlaceholder: 'Selecionar semana',\n rangePlaceholder: ['Data inicial', 'Data final'],\n rangeYearPlaceholder: ['Ano inicial', 'Ano Final'],\n rangeMonthPlaceholder: ['Mês inicial', 'Mês final'],\n rangeWeekPlaceholder: ['Semana inicial', 'Semana final'],\n locale: 'pt_BR',\n today: 'Hoje',\n now: 'Agora',\n backToToday: 'Voltar para hoje',\n ok: 'Ok',\n clear: 'Limpar',\n month: 'Mês',\n year: 'Ano',\n timeSelect: 'Selecionar hora',\n dateSelect: 'Selecionar data',\n weekSelect: 'Escolher semana',\n monthSelect: 'Escolher mês',\n yearSelect: 'Escolher ano',\n decadeSelect: 'Escolher década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: false,\n previousMonth: 'Mês anterior (PageUp)',\n nextMonth: 'Próximo mês (PageDown)',\n previousYear: 'Ano anterior (Control + esquerda)',\n nextYear: 'Próximo ano (Control + direita)',\n previousDecade: 'Década anterior',\n nextDecade: 'Próxima década',\n previousCentury: 'Século anterior',\n nextCentury: 'Próximo século',\n shortWeekDays: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],\n shortMonths: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']\n },\n timePickerLocale: {\n placeholder: 'Hora',\n rangePlaceholder: ['Hora inicial', 'Hora final']\n }\n },\n global: {\n placeholder: 'Por favor escolha'\n },\n Table: {\n filterTitle: 'Menu de Filtro',\n filterConfirm: 'OK',\n filterReset: 'Resetar',\n filterEmptyText: 'Sem filtros',\n emptyText: 'Sem conteúdo',\n selectAll: 'Selecionar página atual',\n selectInvert: 'Inverter seleção',\n selectionAll: 'Selecionar todo o conteúdo',\n sortTitle: 'Ordenar título',\n expand: 'Expandir linha',\n collapse: 'Colapsar linha',\n triggerDesc: 'Clique organiza por descendente',\n triggerAsc: 'Clique organiza por ascendente',\n cancelSort: 'Clique para cancelar organização',\n selectNone: 'Apagar todo o conteúdo'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancelar',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancelar'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Procurar',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remover',\n selectCurrent: 'Selecionar página atual',\n removeCurrent: 'Remover página atual',\n selectAll: 'Selecionar todos',\n removeAll: 'Remover todos',\n selectInvert: 'Inverter seleção atual'\n },\n Upload: {\n uploading: 'Enviando...',\n removeFile: 'Remover arquivo',\n uploadError: 'Erro no envio',\n previewFile: 'Visualizar arquivo',\n downloadFile: 'Baixar arquivo'\n },\n Empty: {\n description: 'Não há dados'\n },\n Icon: {\n icon: 'ícone'\n },\n Text: {\n edit: 'editar',\n copy: 'copiar',\n copied: 'copiado',\n expand: 'expandir'\n },\n PageHeader: {\n back: 'Retornar'\n },\n Image: {\n preview: 'Pré-visualização'\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 */\nvar pt_PT = {\n locale: 'pt',\n Pagination: {\n items_per_page: '/ página',\n jump_to: 'Saltar',\n jump_to_confirm: 'confirmar',\n page: 'Página',\n prev_page: 'Página Anterior',\n next_page: 'Página Seguinte',\n prev_5: 'Recuar 5 Páginas',\n next_5: 'Avançar 5 Páginas',\n prev_3: 'Recuar 3 Páginas',\n next_3: 'Avançar 3 Páginas',\n page_size: 'mărimea paginii'\n },\n DatePicker: {\n lang: {\n locale: 'pt_PT',\n today: 'Hoje',\n now: 'Agora',\n backToToday: 'Hoje',\n ok: 'OK',\n clear: 'Limpar',\n month: 'Mês',\n year: 'Ano',\n timeSelect: 'Hora',\n dateSelect: 'Selecionar data',\n monthSelect: 'Selecionar mês',\n yearSelect: 'Selecionar ano',\n decadeSelect: 'Selecionar década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: false,\n previousMonth: 'Mês anterior (PageUp)',\n nextMonth: 'Mês seguinte (PageDown)',\n previousYear: 'Ano anterior (Control + left)',\n nextYear: 'Ano seguinte (Control + right)',\n previousDecade: 'Última década',\n nextDecade: 'Próxima década',\n previousCentury: 'Último século',\n nextCentury: 'Próximo século',\n placeholder: 'Data',\n rangePlaceholder: ['Data inicial', 'Data final'],\n monthFormat: 'MMMM'\n },\n timePickerLocale: {\n placeholder: 'Hora'\n }\n },\n TimePicker: {\n placeholder: 'Hora'\n },\n Calendar: {\n lang: {\n locale: 'pt_PT',\n today: 'Hoje',\n now: 'Agora',\n backToToday: 'Hoje',\n ok: 'OK',\n clear: 'Limpar',\n month: 'Mês',\n year: 'Ano',\n timeSelect: 'Hora',\n dateSelect: 'Selecionar data',\n monthSelect: 'Selecionar mês',\n yearSelect: 'Selecionar ano',\n decadeSelect: 'Selecionar década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: false,\n previousMonth: 'Mês anterior (PageUp)',\n nextMonth: 'Mês seguinte (PageDown)',\n previousYear: 'Ano anterior (Control + left)',\n nextYear: 'Ano seguinte (Control + right)',\n previousDecade: 'Última década',\n nextDecade: 'Próxima década',\n previousCentury: 'Último século',\n nextCentury: 'Próximo século',\n placeholder: 'Data',\n rangePlaceholder: ['Data inicial', 'Data final'],\n monthFormat: 'MMMM'\n },\n timePickerLocale: {\n placeholder: 'Hora'\n }\n },\n Table: {\n filterTitle: 'Filtro',\n filterConfirm: 'Aplicar',\n filterReset: 'Reiniciar',\n selectAll: 'Selecionar página atual',\n selectInvert: 'Inverter seleção',\n sortTitle: 'Ordenação'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancelar',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancelar'\n },\n Transfer: {\n searchPlaceholder: 'Procurar...',\n itemUnit: 'item',\n itemsUnit: 'itens'\n },\n Upload: {\n uploading: 'A carregar...',\n removeFile: 'Remover',\n uploadError: 'Erro ao carregar',\n previewFile: 'Pré-visualizar',\n downloadFile: 'Baixar'\n },\n Empty: {\n description: 'Sem resultados'\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 */\nvar ro_RO = {\n locale: 'ro',\n Pagination: {\n items_per_page: '/ pagină',\n jump_to: 'Mergi la',\n jump_to_confirm: 'confirm',\n page: '',\n prev_page: 'Pagina Anterioară',\n next_page: 'Pagina Următoare',\n prev_5: '5 Pagini Anterioare',\n next_5: '5 Pagini Următoare',\n prev_3: '3 Pagini Anterioare',\n next_3: '3 Pagini Următoare',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Selectează data',\n rangePlaceholder: ['Data start', 'Data sfârșit'],\n locale: 'ro_RO',\n today: 'Azi',\n now: 'Acum',\n backToToday: 'Înapoi la azi',\n ok: 'Ok',\n clear: 'Șterge',\n month: 'Lună',\n year: 'An',\n timeSelect: 'selectează timpul',\n dateSelect: 'selectează data',\n weekSelect: 'Alege o săptămână',\n monthSelect: 'Alege o lună',\n yearSelect: 'Alege un an',\n decadeSelect: 'Alege un deceniu',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Luna anterioară (PageUp)',\n nextMonth: 'Luna următoare (PageDown)',\n previousYear: 'Anul anterior (Control + stânga)',\n nextYear: 'Anul următor (Control + dreapta)',\n previousDecade: 'Deceniul anterior',\n nextDecade: 'Deceniul următor',\n previousCentury: 'Secolul anterior',\n nextCentury: 'Secolul următor'\n },\n timePickerLocale: {\n placeholder: 'Selectează ora'\n }\n },\n TimePicker: {\n placeholder: 'Selectează ora'\n },\n Calendar: {\n lang: {\n placeholder: 'Selectează data',\n rangePlaceholder: ['Data start', 'Data sfârșit'],\n locale: 'ro_RO',\n today: 'Azi',\n now: 'Acum',\n backToToday: 'Înapoi la azi',\n ok: 'Ok',\n clear: 'Șterge',\n month: 'Lună',\n year: 'An',\n timeSelect: 'selectează timpul',\n dateSelect: 'selectează data',\n weekSelect: 'Alege o săptămână',\n monthSelect: 'Alege o lună',\n yearSelect: 'Alege un an',\n decadeSelect: 'Alege un deceniu',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Luna anterioară (PageUp)',\n nextMonth: 'Luna următoare (PageDown)',\n previousYear: 'Anul anterior (Control + stânga)',\n nextYear: 'Anul următor (Control + dreapta)',\n previousDecade: 'Deceniul anterior',\n nextDecade: 'Deceniul următor',\n previousCentury: 'Secolul anterior',\n nextCentury: 'Secolul următor'\n },\n timePickerLocale: {\n placeholder: 'Selectează ora'\n }\n },\n global: {\n placeholder: 'Selectează'\n },\n Table: {\n filterTitle: 'Filtrează',\n filterConfirm: 'OK',\n filterReset: 'Resetează',\n selectAll: 'Selectează pagina curentă',\n selectInvert: 'Inversează pagina curentă',\n sortTitle: 'Ordonează',\n expand: 'Extinde rândul',\n collapse: 'Micșorează rândul',\n filterEmptyText: 'Fără filtre',\n emptyText: 'Nu există date',\n selectNone: 'Șterge selecția',\n selectionAll: 'Selectează toate datele',\n triggerDesc: 'Apasă pentru ordonare descrescătoare',\n triggerAsc: 'Apasă pentru ordonare crescătoare',\n cancelSort: 'Apasă pentru a anula ordonarea'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Anulare',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Anulare'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Căutare',\n itemUnit: 'element',\n itemsUnit: 'elemente',\n remove: 'Șterge',\n selectCurrent: 'Selectează pagina curentă',\n removeCurrent: 'Șterge pagina curentă',\n selectAll: 'Selectează toate datele',\n removeAll: 'Șterge toate datele',\n selectInvert: 'Inversează pagina curentă'\n },\n Upload: {\n uploading: 'Se transferă...',\n removeFile: 'Înlătură fișierul',\n uploadError: 'Eroare la upload',\n previewFile: 'Previzualizare fișier',\n downloadFile: 'Descărcare fișier'\n },\n Empty: {\n description: 'Fără date'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'editează',\n copy: 'copiază',\n copied: 'copiat',\n expand: 'extinde'\n },\n PageHeader: {\n back: 'înapoi'\n },\n Image: {\n preview: 'Preview'\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 */\nvar ru_RU = {\n locale: 'ru',\n Pagination: {\n items_per_page: '/ стр.',\n jump_to: 'Перейти',\n jump_to_confirm: 'подтвердить',\n page: 'Страница',\n prev_page: 'Назад',\n next_page: 'Вперед',\n prev_5: 'Предыдущие 5',\n next_5: 'Следующие 5',\n prev_3: 'Предыдущие 3',\n next_3: 'Следующие 3',\n page_size: 'размер страницы'\n },\n DatePicker: {\n lang: {\n placeholder: 'Выберите дату',\n yearPlaceholder: 'Выберите год',\n quarterPlaceholder: 'Выберите квартал',\n monthPlaceholder: 'Выберите месяц',\n weekPlaceholder: 'Выберите неделю',\n rangePlaceholder: ['Начальная дата', 'Конечная дата'],\n rangeYearPlaceholder: ['Начальный год', 'Год окончания'],\n rangeMonthPlaceholder: ['Начальный месяц', 'Конечный месяц'],\n rangeWeekPlaceholder: ['Начальная неделя', 'Конечная неделя'],\n locale: 'ru_RU',\n today: 'Сегодня',\n now: 'Сейчас',\n backToToday: 'Текущая дата',\n ok: 'ОК',\n clear: 'Очистить',\n month: 'Месяц',\n year: 'Год',\n timeSelect: 'Выбрать время',\n dateSelect: 'Выбрать дату',\n monthSelect: 'Выбрать месяц',\n yearSelect: 'Выбрать год',\n decadeSelect: 'Выбрать десятилетие',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Предыдущий месяц (PageUp)',\n nextMonth: 'Следующий месяц (PageDown)',\n previousYear: 'Предыдущий год (Control + left)',\n nextYear: 'Следующий год (Control + right)',\n previousDecade: 'Предыдущее десятилетие',\n nextDecade: 'Следущее десятилетие',\n previousCentury: 'Предыдущий век',\n nextCentury: 'Следующий век'\n },\n timePickerLocale: {\n placeholder: 'Выберите время',\n rangePlaceholder: ['Время начала', 'Время окончания']\n }\n },\n TimePicker: {\n placeholder: 'Выберите время',\n rangePlaceholder: ['Время начала', 'Время окончания']\n },\n Calendar: {\n lang: {\n placeholder: 'Выберите дату',\n yearPlaceholder: 'Выберите год',\n quarterPlaceholder: 'Выберите квартал',\n monthPlaceholder: 'Выберите месяц',\n weekPlaceholder: 'Выберите неделю',\n rangePlaceholder: ['Начальная дата', 'Конечная дата'],\n rangeYearPlaceholder: ['Начальный год', 'Год окончания'],\n rangeMonthPlaceholder: ['Начальный месяц', 'Конечный месяц'],\n rangeWeekPlaceholder: ['Начальная неделя', 'Конечная неделя'],\n locale: 'ru_RU',\n today: 'Сегодня',\n now: 'Сейчас',\n backToToday: 'Текущая дата',\n ok: 'ОК',\n clear: 'Очистить',\n month: 'Месяц',\n year: 'Год',\n timeSelect: 'Выбрать время',\n dateSelect: 'Выбрать дату',\n monthSelect: 'Выбрать месяц',\n yearSelect: 'Выбрать год',\n decadeSelect: 'Выбрать десятилетие',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Предыдущий месяц (PageUp)',\n nextMonth: 'Следующий месяц (PageDown)',\n previousYear: 'Предыдущий год (Control + left)',\n nextYear: 'Следующий год (Control + right)',\n previousDecade: 'Предыдущее десятилетие',\n nextDecade: 'Следущее десятилетие',\n previousCentury: 'Предыдущий век',\n nextCentury: 'Следующий век'\n },\n timePickerLocale: {\n placeholder: 'Выберите время',\n rangePlaceholder: ['Время начала', 'Время окончания']\n }\n },\n global: {\n placeholder: 'Пожалуйста выберите'\n },\n Table: {\n filterTitle: 'Фильтр',\n filterConfirm: 'OK',\n filterReset: 'Сбросить',\n filterEmptyText: 'Без фильтров',\n emptyText: 'Нет данных',\n selectAll: 'Выбрать всё',\n selectInvert: 'Инвертировать выбор',\n selectionAll: 'Выбрать все данные',\n sortTitle: 'Сортировка',\n expand: 'Развернуть строку',\n collapse: 'Свернуть строку',\n triggerDesc: 'Нажмите для сортировки по убыванию',\n triggerAsc: 'Нажмите для сортировки по возрастанию',\n cancelSort: 'Нажмите, чтобы отменить сортировку',\n selectNone: 'Очистить все данные'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Отмена',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Отмена'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Поиск',\n itemUnit: 'элем.',\n itemsUnit: 'элем.',\n remove: 'Удалить',\n selectAll: 'Выбрать все данные',\n selectCurrent: 'Выбрать текущую страницу',\n selectInvert: 'Показать в обратном порядке',\n removeAll: 'Удалить все данные',\n removeCurrent: 'Удалить текущую страницу'\n },\n Upload: {\n uploading: 'Загрузка...',\n removeFile: 'Удалить файл',\n uploadError: 'При загрузке произошла ошибка',\n previewFile: 'Предпросмотр файла',\n downloadFile: 'Загрузить файл'\n },\n Empty: {\n description: 'Нет данных'\n },\n Icon: {\n icon: 'иконка'\n },\n Text: {\n edit: 'Редактировать',\n copy: 'Копировать',\n copied: 'Скопировано',\n expand: 'Раскрыть'\n },\n PageHeader: {\n back: 'Назад'\n },\n Image: {\n preview: 'Предпросмотр'\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 */\nvar sk_SK = {\n locale: 'sk',\n Pagination: {\n items_per_page: '/ strana',\n jump_to: 'Choď na',\n jump_to_confirm: 'potvrdit',\n page: '',\n prev_page: 'Predchádzajúca strana',\n next_page: 'Nasledujúca strana',\n prev_5: 'Predchádzajúcich 5 strán',\n next_5: 'Nasledujúcich 5 strán',\n prev_3: 'Predchádzajúce 3 strany',\n next_3: 'Nasledujúce 3 strany',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Vybrať dátum',\n rangePlaceholder: ['Od', 'Do'],\n locale: 'sk_SK',\n today: 'Dnes',\n now: 'Teraz',\n backToToday: 'Späť na dnes',\n ok: 'Ok',\n clear: 'Vymazať',\n month: 'Mesiac',\n year: 'Rok',\n timeSelect: 'Vybrať čas',\n dateSelect: 'Vybrať dátum',\n monthSelect: 'Vybrať mesiac',\n yearSelect: 'Vybrať rok',\n decadeSelect: 'Vybrať dekádu',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Predchádzajúci mesiac (PageUp)',\n nextMonth: 'Nasledujúci mesiac (PageDown)',\n previousYear: 'Predchádzajúci rok (Control + left)',\n nextYear: 'Nasledujúci rok (Control + right)',\n previousDecade: 'Predchádzajúca dekáda',\n nextDecade: 'Nasledujúca dekáda',\n previousCentury: 'Predchádzajúce storočie',\n nextCentury: 'Nasledujúce storočie'\n },\n timePickerLocale: {\n placeholder: 'Vybrať čas'\n }\n },\n TimePicker: {\n placeholder: 'Vybrať čas'\n },\n Calendar: {\n lang: {\n placeholder: 'Vybrať dátum',\n rangePlaceholder: ['Od', 'Do'],\n locale: 'sk_SK',\n today: 'Dnes',\n now: 'Teraz',\n backToToday: 'Späť na dnes',\n ok: 'Ok',\n clear: 'Vymazať',\n month: 'Mesiac',\n year: 'Rok',\n timeSelect: 'Vybrať čas',\n dateSelect: 'Vybrať dátum',\n monthSelect: 'Vybrať mesiac',\n yearSelect: 'Vybrať rok',\n decadeSelect: 'Vybrať dekádu',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Predchádzajúci mesiac (PageUp)',\n nextMonth: 'Nasledujúci mesiac (PageDown)',\n previousYear: 'Predchádzajúci rok (Control + left)',\n nextYear: 'Nasledujúci rok (Control + right)',\n previousDecade: 'Predchádzajúca dekáda',\n nextDecade: 'Nasledujúca dekáda',\n previousCentury: 'Predchádzajúce storočie',\n nextCentury: 'Nasledujúce storočie'\n },\n timePickerLocale: {\n placeholder: 'Vybrať čas'\n }\n },\n global: {\n placeholder: 'Prosím vyberte'\n },\n Table: {\n filterTitle: 'Filter',\n filterConfirm: 'OK',\n filterReset: 'Obnoviť',\n selectAll: 'Vybrať všetko',\n selectInvert: 'Vybrať opačné',\n sortTitle: 'Zoradiť',\n expand: 'Rozbaliť riadok',\n collapse: 'Zbaliť riadok'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Zrušiť',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Zrušiť'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Vyhľadávanie',\n itemUnit: 'položka',\n itemsUnit: 'položiek'\n },\n Upload: {\n uploading: 'Nahrávanie...',\n removeFile: 'Odstrániť súbor',\n uploadError: 'Chyba pri nahrávaní',\n previewFile: 'Zobraziť súbor',\n downloadFile: 'Stiahnuť súbor'\n },\n Empty: {\n description: 'Žiadne dáta'\n },\n Icon: {\n icon: 'ikona'\n },\n Text: {\n edit: 'Upraviť',\n copy: 'Kopírovať',\n copied: 'Skopírované',\n expand: 'Zväčšiť'\n },\n PageHeader: {\n back: 'Späť'\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 */\nvar sl_SI = {\n locale: 'sl',\n Pagination: {\n items_per_page: '/ strani',\n jump_to: 'Pojdi na',\n jump_to_confirm: 'potrdi',\n page: '',\n prev_page: 'Prejšnja stran',\n next_page: 'Naslednja stran',\n prev_5: 'Prejšnjih 5 strani',\n next_5: 'Naslednjih 5 strani',\n prev_3: 'Prejšnje 3 strani',\n next_3: 'Naslednje 3 strani',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n locale: 'sl',\n placeholder: 'Izberite datum',\n rangePlaceholder: ['Začetni datum', 'Končni datum'],\n today: 'Danes',\n now: 'Trenutno',\n backToToday: 'Nazaj na trenutni datum',\n ok: 'OK',\n clear: 'Počisti',\n month: 'Mesec',\n year: 'Leto',\n timeSelect: 'Izberi čas',\n dateSelect: 'Izberi datum',\n monthSelect: 'Izberite mesec',\n yearSelect: 'Izberite leto',\n decadeSelect: 'Izberite desetletje',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthFormat: 'MMMM',\n monthBeforeYear: true,\n previousMonth: 'Prejšnji mesec (PageUp)',\n nextMonth: 'Naslednji mesec (PageDown)',\n previousYear: 'Lansko leto (Control + left)',\n nextYear: 'Naslednje leto (Control + right)',\n previousDecade: 'Prejšnje desetletje',\n nextDecade: 'Naslednje desetletje',\n previousCentury: 'Zadnje stoletje',\n nextCentury: 'Naslednje stoletje'\n },\n timePickerLocale: {\n placeholder: 'Izberite čas'\n }\n },\n TimePicker: {\n placeholder: 'Izberite čas'\n },\n Calendar: {\n lang: {\n locale: 'sl',\n placeholder: 'Izberite datum',\n rangePlaceholder: ['Začetni datum', 'Končni datum'],\n today: 'Danes',\n now: 'Trenutno',\n backToToday: 'Nazaj na trenutni datum',\n ok: 'OK',\n clear: 'Počisti',\n month: 'Mesec',\n year: 'Leto',\n timeSelect: 'Izberi čas',\n dateSelect: 'Izberi datum',\n monthSelect: 'Izberite mesec',\n yearSelect: 'Izberite leto',\n decadeSelect: 'Izberite desetletje',\n yearFormat: 'YYYY',\n dateFormat: 'D.M.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D.M.YYYY HH:mm:ss',\n monthFormat: 'MMMM',\n monthBeforeYear: true,\n previousMonth: 'Prejšnji mesec (PageUp)',\n nextMonth: 'Naslednji mesec (PageDown)',\n previousYear: 'Lansko leto (Control + left)',\n nextYear: 'Naslednje leto (Control + right)',\n previousDecade: 'Prejšnje desetletje',\n nextDecade: 'Naslednje desetletje',\n previousCentury: 'Zadnje stoletje',\n nextCentury: 'Naslednje stoletje'\n },\n timePickerLocale: {\n placeholder: 'Izberite čas'\n }\n },\n Table: {\n filterTitle: 'Filter',\n filterConfirm: 'Filtriraj',\n filterReset: 'Pobriši filter',\n selectAll: 'Izberi vse na trenutni strani',\n selectInvert: 'Obrni izbor na trenutni strani'\n },\n Modal: {\n okText: 'V redu',\n cancelText: 'Prekliči',\n justOkText: 'V redu'\n },\n Popconfirm: {\n okText: 'v redu',\n cancelText: 'Prekliči'\n },\n Transfer: {\n searchPlaceholder: 'Išči tukaj',\n itemUnit: 'Objekt',\n itemsUnit: 'Objektov'\n },\n Upload: {\n uploading: 'Nalaganje...',\n removeFile: 'Odstrani datoteko',\n uploadError: 'Napaka pri nalaganju',\n previewFile: 'Predogled datoteke',\n downloadFile: 'Prenos datoteke'\n },\n Empty: {\n description: 'Ni podatkov'\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 */\nvar sr_RS = {\n locale: 'sr',\n Pagination: {\n items_per_page: '/ strani',\n jump_to: 'Idi na',\n page: '',\n prev_page: 'Prethodna strana',\n next_page: 'Sledeća strana',\n prev_5: 'Prethodnih 5 Strana',\n next_5: 'Sledećih 5 Strana',\n prev_3: 'Prethodnih 3 Strane',\n next_3: 'Sledećih 3 Strane',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Izaberi datum',\n rangePlaceholder: ['Datum početka', 'Datum završetka'],\n locale: 'sr_RS',\n today: 'Danas',\n now: 'Sada',\n backToToday: 'Vrati se na danas',\n ok: 'U redu',\n clear: 'Obriši',\n month: 'Mesec',\n year: 'Godina',\n timeSelect: 'Izaberi vreme',\n dateSelect: 'Izaberi datum',\n monthSelect: 'Izaberi mesec',\n yearSelect: 'Izaberi godinu',\n decadeSelect: 'Izaberi deceniju',\n yearFormat: 'YYYY',\n dateFormat: 'DD.MM.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'DD.MM.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Prethodni mesec (PageUp)',\n nextMonth: 'Sledeći mesec (PageDown)',\n previousYear: 'Prethodna godina (Control + left)',\n nextYear: 'Sledeća godina (Control + right)',\n previousDecade: 'Prethodna decenija',\n nextDecade: 'Sledeća decenija',\n previousCentury: 'Prethodni vek',\n nextCentury: 'Sledeći vek',\n yearPlaceholder: 'Izaberi godinu',\n quarterPlaceholder: 'Izaberi tromesečje',\n monthPlaceholder: 'Izaberi mesec',\n weekPlaceholder: 'Izaberi sedmicu',\n rangeYearPlaceholder: ['Godina početka', 'Godina završetka'],\n rangeMonthPlaceholder: ['Mesec početka', 'Mesec završetka'],\n rangeWeekPlaceholder: ['Sedmica početka', 'Sedmica završetka']\n },\n timePickerLocale: {\n placeholder: 'Izaberi vreme',\n rangePlaceholder: ['Vreme početka', 'Vreme završetka']\n }\n },\n TimePicker: {\n placeholder: 'Izaberi vreme',\n rangePlaceholder: ['Vreme početka', 'Vreme završetka']\n },\n Calendar: {\n lang: {\n placeholder: 'Izaberi datum',\n rangePlaceholder: ['Datum početka', 'Datum završetka'],\n locale: 'sr_RS',\n today: 'Danas',\n now: 'Sada',\n backToToday: 'Vrati se na danas',\n ok: 'U redu',\n clear: 'Obriši',\n month: 'Mesec',\n year: 'Godina',\n timeSelect: 'Izaberi vreme',\n dateSelect: 'Izaberi datum',\n monthSelect: 'Izaberi mesec',\n yearSelect: 'Izaberi godinu',\n decadeSelect: 'Izaberi deceniju',\n yearFormat: 'YYYY',\n dateFormat: 'DD.MM.YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'DD.MM.YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Prethodni mesec (PageUp)',\n nextMonth: 'Sledeći mesec (PageDown)',\n previousYear: 'Prethodna godina (Control + left)',\n nextYear: 'Sledeća godina (Control + right)',\n previousDecade: 'Prethodna decenija',\n nextDecade: 'Sledeća decenija',\n previousCentury: 'Prethodni vek',\n nextCentury: 'Sledeći vek',\n yearPlaceholder: 'Izaberi godinu',\n quarterPlaceholder: 'Izaberi tromesečje',\n monthPlaceholder: 'Izaberi mesec',\n weekPlaceholder: 'Izaberi sedmicu',\n rangeYearPlaceholder: ['Godina početka', 'Godina završetka'],\n rangeMonthPlaceholder: ['Mesec početka', 'Mesec završetka'],\n rangeWeekPlaceholder: ['Sedmica početka', 'Sedmica završetka']\n },\n timePickerLocale: {\n placeholder: 'Izaberi vreme',\n rangePlaceholder: ['Vreme početka', 'Vreme završetka']\n }\n },\n Table: {\n filterTitle: 'Meni filtera',\n filterConfirm: 'U redu',\n filterReset: 'Poništi',\n selectAll: 'Izaberi trenutnu stranicu',\n selectInvert: 'Obrni izbor trenutne stranice',\n filterEmptyText: 'Nema filtera',\n emptyText: 'Nema podataka',\n selectNone: 'Obriši sve podatke',\n selectionAll: 'Izaberi sve podatke',\n sortTitle: 'Sortiraj',\n expand: 'Proširi red',\n collapse: 'Skupi red',\n triggerDesc: 'Klikni da sortiraš po padajućem redosledu',\n triggerAsc: 'Klikni da sortiraš po rastućem redosledu',\n cancelSort: 'Klikni da otkažeš sortiranje'\n },\n Modal: {\n okText: 'U redu',\n cancelText: 'Otkaži',\n justOkText: 'U redu'\n },\n Popconfirm: {\n okText: 'U redu',\n cancelText: 'Otkaži'\n },\n Transfer: {\n searchPlaceholder: 'Pretraži ovde',\n itemUnit: 'stavka',\n itemsUnit: 'stavki',\n titles: ['', ''],\n remove: 'Ukloni',\n selectCurrent: 'Izaberi trenutnu stranicu',\n removeCurrent: 'Ukloni trenutnu stranicu',\n selectAll: 'Izaberi sve podatke',\n removeAll: 'Ukloni sve podatke',\n selectInvert: 'Obrni izbor trenutne stranice'\n },\n Upload: {\n uploading: 'Otpremanje...',\n removeFile: 'Ukloni datoteku',\n uploadError: 'Greška pri otpremanju',\n previewFile: 'Pregledaj datoteku',\n downloadFile: 'Preuzmi datoteku'\n },\n Empty: {\n description: 'Nema podataka'\n },\n global: {\n placeholder: 'Izaberi'\n },\n Icon: {\n icon: 'ikona'\n },\n Text: {\n edit: 'Uredi',\n copy: 'Kopiraj',\n copied: 'Kopirano',\n expand: 'Proširi'\n },\n PageHeader: {\n back: 'Nazad'\n },\n Image: {\n preview: 'Pregled'\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 */\nvar sv_SE = {\n locale: 'sv',\n Pagination: {\n items_per_page: '/ sida',\n jump_to: 'Gå till',\n jump_to_confirm: 'bekräfta',\n page: 'Sida',\n prev_page: 'Föreg sida',\n next_page: 'Nästa sida',\n prev_5: 'Föreg 5 sidor',\n next_5: 'Nästa 5 sidor',\n prev_3: 'Föreg 3 sidor',\n next_3: 'Nästa 3 sidor',\n page_size: 'sidstorlek'\n },\n DatePicker: {\n lang: {\n placeholder: 'Välj datum',\n rangePlaceholder: ['Startdatum', 'Slutdatum'],\n locale: 'sv_SE',\n today: 'I dag',\n now: 'Nu',\n backToToday: 'Till idag',\n ok: 'Ok',\n clear: 'Avbryt',\n month: 'Månad',\n year: 'År',\n timeSelect: 'Välj tidpunkt',\n dateSelect: 'Välj datum',\n monthSelect: 'Välj månad',\n yearSelect: 'Välj år',\n decadeSelect: 'Välj årtionde',\n yearFormat: 'YYYY',\n dateFormat: 'YYYY-MM-DD',\n dayFormat: 'D',\n dateTimeFormat: 'YYYY-MM-DD H:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Förra månaden (PageUp)',\n nextMonth: 'Nästa månad (PageDown)',\n previousYear: 'Föreg år (Control + left)',\n nextYear: 'Nästa år (Control + right)',\n previousDecade: 'Föreg årtionde',\n nextDecade: 'Nästa årtionde',\n previousCentury: 'Föreg århundrade',\n nextCentury: 'Nästa århundrade',\n yearPlaceholder: 'Välj år',\n quarterPlaceholder: 'Välj kvartal',\n monthPlaceholder: 'Välj månad',\n weekPlaceholder: 'Välj vecka',\n rangeYearPlaceholder: ['Startår', 'Slutår'],\n rangeMonthPlaceholder: ['Startmånad', 'Slutmånad'],\n rangeWeekPlaceholder: ['Startvecka', 'Slutvecka']\n },\n timePickerLocale: {\n placeholder: 'Välj tid'\n }\n },\n TimePicker: {\n placeholder: 'Välj tid'\n },\n Calendar: {\n lang: {\n placeholder: 'Välj datum',\n rangePlaceholder: ['Startdatum', 'Slutdatum'],\n locale: 'sv_SE',\n today: 'I dag',\n now: 'Nu',\n backToToday: 'Till idag',\n ok: 'Ok',\n clear: 'Avbryt',\n month: 'Månad',\n year: 'År',\n timeSelect: 'Välj tidpunkt',\n dateSelect: 'Välj datum',\n monthSelect: 'Välj månad',\n yearSelect: 'Välj år',\n decadeSelect: 'Välj årtionde',\n yearFormat: 'YYYY',\n dateFormat: 'YYYY-MM-DD',\n dayFormat: 'D',\n dateTimeFormat: 'YYYY-MM-DD H:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Förra månaden (PageUp)',\n nextMonth: 'Nästa månad (PageDown)',\n previousYear: 'Föreg år (Control + left)',\n nextYear: 'Nästa år (Control + right)',\n previousDecade: 'Föreg årtionde',\n nextDecade: 'Nästa årtionde',\n previousCentury: 'Föreg århundrade',\n nextCentury: 'Nästa århundrade',\n yearPlaceholder: 'Välj år',\n quarterPlaceholder: 'Välj kvartal',\n monthPlaceholder: 'Välj månad',\n weekPlaceholder: 'Välj vecka',\n rangeYearPlaceholder: ['Startår', 'Slutår'],\n rangeMonthPlaceholder: ['Startmånad', 'Slutmånad'],\n rangeWeekPlaceholder: ['Startvecka', 'Slutvecka']\n },\n timePickerLocale: {\n placeholder: 'Välj tid'\n }\n },\n Table: {\n filterTitle: 'Filtermeny',\n filterConfirm: 'OK',\n filterReset: 'Återställ',\n filterEmptyText: 'Inga filter',\n emptyText: 'Ingen data',\n selectAll: 'Markera nuvarande sida',\n selectInvert: 'Invertera nuvarande sida',\n selectNone: 'Avmarkera all data',\n selectionAll: 'Markera all data',\n sortTitle: 'Sortera',\n expand: 'Expandera rad',\n collapse: 'Komprimera rad',\n triggerDesc: 'Klicka för att sortera i fallande ordning',\n triggerAsc: 'Klicka för att sortera i stigande ordning',\n cancelSort: 'Klicka för att avbryta sortering'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Avbryt',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Avbryt'\n },\n Transfer: {\n searchPlaceholder: 'Sök här',\n itemUnit: 'objekt',\n itemsUnit: 'objekt',\n titles: ['', ''],\n remove: 'Ta bort',\n selectCurrent: 'Markera nuvarande sida',\n removeCurrent: 'Ta bort nuvarande sida',\n selectAll: 'Markera all data',\n removeAll: 'Ta bort all data',\n selectInvert: 'Invertera nuvarande sida'\n },\n Empty: {\n description: 'Ingen data'\n },\n Text: {\n edit: 'Redigera',\n copy: 'Kopiera',\n copied: 'Kopierad',\n expand: 'Expandera'\n },\n Upload: {\n uploading: 'Laddar upp...',\n removeFile: 'Ta bort fil',\n uploadError: 'Uppladdningsfel',\n previewFile: 'Förhandsgranska fil',\n downloadFile: 'Ladda ned fil'\n },\n global: {\n placeholder: 'Vänligen välj'\n },\n Icon: {\n icon: 'ikon'\n },\n PageHeader: {\n back: 'Tillbaka'\n },\n Image: {\n preview: 'Förhandsgranska'\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 */\nvar ta_IN = {\n locale: 'ta',\n Pagination: {\n items_per_page: '/ பக்கம்',\n jump_to: 'அடுத்த',\n jump_to_confirm: 'உறுதிப்படுத்தவும்',\n page: '',\n prev_page: 'முந்தைய பக்கம்',\n next_page: 'அடுத்த பக்கம்',\n prev_5: 'முந்தைய 5 பக்கங்கள்',\n next_5: 'அடுத்த 5 பக்கங்கள்',\n prev_3: 'முந்தைய 3 பக்கங்கள்',\n next_3: 'அடுத்த 3 பக்கங்கள்',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'தேதியைத் தேர்ந்தெடுக்கவும்',\n rangePlaceholder: ['தொடக்க தேதி', 'கடைசி தேதி'],\n locale: 'ta_IN',\n today: 'இன்று',\n now: 'இப்போது',\n backToToday: 'இன்றுக்கு திரும்பு',\n ok: 'சரி',\n clear: 'அழி',\n month: 'மாதம்',\n year: 'வருடம்',\n timeSelect: 'நேரத்தைத் தேர்ந்தெடு',\n dateSelect: 'தேதியைத் தேர்ந்தெடு',\n weekSelect: 'வாரத்தைத் தேர்வுசெய்க',\n monthSelect: 'மாதத்தைத் தேர்வுசெய்க',\n yearSelect: 'வருடத்தைத் தேர்வுசெய்க',\n decadeSelect: 'தசாப்தத்தைத் தேர்வுசெய்க',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'முந்தைய மாதம் (PageUp)',\n nextMonth: 'அடுத்த மாதம் (PageDown)',\n previousYear: 'முந்தைய வருடம் (Control + left)',\n nextYear: 'அடுத்த வருடம் (Control + right)',\n previousDecade: 'முந்தைய தசாப்தம்',\n nextDecade: 'அடுத்த தசாப்தம்',\n previousCentury: 'முந்தைய நூற்றாண்டு',\n nextCentury: 'அடுத்த நூற்றாண்டு'\n },\n timePickerLocale: {\n placeholder: 'நேரத்தைத் தேர்ந்தெடுக்கவும்'\n }\n },\n TimePicker: {\n placeholder: 'நேரத்தைத் தேர்ந்தெடுக்கவும்'\n },\n Calendar: {\n lang: {\n placeholder: 'தேதியைத் தேர்ந்தெடுக்கவும்',\n rangePlaceholder: ['தொடக்க தேதி', 'கடைசி தேதி'],\n locale: 'ta_IN',\n today: 'இன்று',\n now: 'இப்போது',\n backToToday: 'இன்றுக்கு திரும்பு',\n ok: 'சரி',\n clear: 'அழி',\n month: 'மாதம்',\n year: 'வருடம்',\n timeSelect: 'நேரத்தைத் தேர்ந்தெடு',\n dateSelect: 'தேதியைத் தேர்ந்தெடு',\n weekSelect: 'வாரத்தைத் தேர்வுசெய்க',\n monthSelect: 'மாதத்தைத் தேர்வுசெய்க',\n yearSelect: 'வருடத்தைத் தேர்வுசெய்க',\n decadeSelect: 'தசாப்தத்தைத் தேர்வுசெய்க',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'முந்தைய மாதம் (PageUp)',\n nextMonth: 'அடுத்த மாதம் (PageDown)',\n previousYear: 'முந்தைய வருடம் (Control + left)',\n nextYear: 'அடுத்த வருடம் (Control + right)',\n previousDecade: 'முந்தைய தசாப்தம்',\n nextDecade: 'அடுத்த தசாப்தம்',\n previousCentury: 'முந்தைய நூற்றாண்டு',\n nextCentury: 'அடுத்த நூற்றாண்டு'\n },\n timePickerLocale: {\n placeholder: 'நேரத்தைத் தேர்ந்தெடுக்கவும்'\n }\n },\n global: {\n placeholder: 'தேதியைத் தேர்ந்தெடுக்கவும்'\n },\n Table: {\n filterTitle: 'பட்டியலை மூடு',\n filterConfirm: 'சரி',\n filterReset: 'மீட்டமை',\n emptyText: 'தகவல் இல்லை',\n selectAll: 'அனைத்தையும் தேர்வுசெய்',\n selectInvert: 'தலைகீழாக மாற்று',\n sortTitle: 'தலைப்பை வரிசைப்படுத்தவும்'\n },\n Modal: {\n okText: 'சரி',\n cancelText: 'ரத்து செய்யவும்',\n justOkText: 'பரவாயில்லை, சரி'\n },\n Popconfirm: {\n okText: 'சரி',\n cancelText: 'ரத்து செய்யவும்'\n },\n Transfer: {\n titles: ['', ''],\n notFoundContent: 'உள்ளடக்கம் கிடைக்கவில்லை',\n searchPlaceholder: 'இங்கு தேடவும்',\n itemUnit: 'தகவல்',\n itemsUnit: 'தகவல்கள்'\n },\n Upload: {\n uploading: 'பதிவேற்றுகிறது...',\n removeFile: 'கோப்பை அகற்று',\n uploadError: 'பதிவேற்றுவதில் பிழை',\n previewFile: 'கோப்பை முன்னோட்டமிடுங்கள்',\n downloadFile: 'பதிவிறக்க கோப்பு'\n },\n Empty: {\n description: 'தகவல் இல்லை'\n },\n Icon: {\n icon: 'உருவம்'\n },\n Text: {\n edit: 'திருத்து',\n copy: 'நகல் எடு',\n copied: 'நகல் எடுக்கப்பட்டது',\n expand: 'விரிவாக்கவும்'\n },\n PageHeader: {\n back: 'பின் செல்லவும்'\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 */\nvar th_TH = {\n locale: 'th',\n Pagination: {\n items_per_page: '/ หน้า',\n jump_to: 'ไปยัง',\n jump_to_confirm: 'ยืนยัน',\n page: 'หน้า',\n prev_page: 'หน้าก่อนหน้า',\n next_page: 'หน้าถัดไป',\n prev_5: 'ย้อนกลับ 5 หน้า',\n next_5: 'ถัดไป 5 หน้า',\n prev_3: 'ย้อนกลับ 3 หน้า',\n next_3: 'ถัดไป 3 หน้า',\n page_size: 'ขนาดหน้า'\n },\n DatePicker: {\n lang: {\n placeholder: 'เลือกวันที่',\n yearPlaceholder: 'เลือกปี',\n quarterPlaceholder: 'เลือกไตรมาส',\n monthPlaceholder: 'เลือกเดือน',\n weekPlaceholder: 'เลือกสัปดาห์',\n rangePlaceholder: ['วันเริ่มต้น', 'วันสิ้นสุด'],\n rangeYearPlaceholder: ['ปีเริ่มต้น', 'ปีสิ้นสุด'],\n rangeMonthPlaceholder: ['เดือนเริ่มต้น', 'เดือนสิ้นสุด'],\n rangeWeekPlaceholder: ['สัปดาห์เริ่มต้น', 'สัปดาห์สิ้นสุด'],\n locale: 'th_TH',\n today: 'วันนี้',\n now: 'ตอนนี้',\n backToToday: 'กลับไปยังวันนี้',\n ok: 'ตกลง',\n clear: 'ลบล้าง',\n month: 'เดือน',\n year: 'ปี',\n timeSelect: 'เลือกเวลา',\n dateSelect: 'เลือกวัน',\n monthSelect: 'เลือกเดือน',\n yearSelect: 'เลือกปี',\n decadeSelect: 'เลือกทศวรรษ',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'เดือนก่อนหน้า (PageUp)',\n nextMonth: 'เดือนถัดไป (PageDown)',\n previousYear: 'ปีก่อนหน้า (Control + left)',\n nextYear: 'ปีถัดไป (Control + right)',\n previousDecade: 'ทศวรรษก่อนหน้า',\n nextDecade: 'ทศวรรษถัดไป',\n previousCentury: 'ศตวรรษก่อนหน้า',\n nextCentury: 'ศตวรรษถัดไป'\n },\n timePickerLocale: {\n placeholder: 'เลือกเวลา'\n }\n },\n TimePicker: {\n placeholder: 'เลือกเวลา'\n },\n Calendar: {\n lang: {\n placeholder: 'เลือกวันที่',\n yearPlaceholder: 'เลือกปี',\n quarterPlaceholder: 'เลือกไตรมาส',\n monthPlaceholder: 'เลือกเดือน',\n weekPlaceholder: 'เลือกสัปดาห์',\n rangePlaceholder: ['วันเริ่มต้น', 'วันสิ้นสุด'],\n rangeYearPlaceholder: ['ปีเริ่มต้น', 'ปีสิ้นสุด'],\n rangeMonthPlaceholder: ['เดือนเริ่มต้น', 'เดือนสิ้นสุด'],\n rangeWeekPlaceholder: ['สัปดาห์เริ่มต้น', 'สัปดาห์สิ้นสุด'],\n locale: 'th_TH',\n today: 'วันนี้',\n now: 'ตอนนี้',\n backToToday: 'กลับไปยังวันนี้',\n ok: 'ตกลง',\n clear: 'ลบล้าง',\n month: 'เดือน',\n year: 'ปี',\n timeSelect: 'เลือกเวลา',\n dateSelect: 'เลือกวัน',\n monthSelect: 'เลือกเดือน',\n yearSelect: 'เลือกปี',\n decadeSelect: 'เลือกทศวรรษ',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'เดือนก่อนหน้า (PageUp)',\n nextMonth: 'เดือนถัดไป (PageDown)',\n previousYear: 'ปีก่อนหน้า (Control + left)',\n nextYear: 'ปีถัดไป (Control + right)',\n previousDecade: 'ทศวรรษก่อนหน้า',\n nextDecade: 'ทศวรรษถัดไป',\n previousCentury: 'ศตวรรษก่อนหน้า',\n nextCentury: 'ศตวรรษถัดไป'\n },\n timePickerLocale: {\n placeholder: 'เลือกเวลา'\n }\n },\n global: {\n placeholder: 'กรุณาเลือก'\n },\n Table: {\n filterTitle: 'ตัวกรอง',\n filterConfirm: 'ยืนยัน',\n filterReset: 'รีเซ็ต',\n filterEmptyText: 'ไม่มีตัวกรอง',\n emptyText: 'ไม่มีข้อมูล',\n selectAll: 'เลือกทั้งหมดในหน้านี้',\n selectInvert: 'กลับสถานะการเลือกในหน้านี้',\n selectionAll: 'เลือกข้อมูลทั้งหมด',\n sortTitle: 'เรียง',\n expand: 'แสดงแถวข้อมูล',\n collapse: 'ย่อแถวข้อมูล',\n triggerDesc: 'คลิกเรียงจากมากไปน้อย',\n triggerAsc: 'คลิกเรียงจากน้อยไปมาก',\n cancelSort: 'คลิกเพื่อยกเลิกการเรียง'\n },\n Modal: {\n okText: 'ตกลง',\n cancelText: 'ยกเลิก',\n justOkText: 'ตกลง'\n },\n Popconfirm: {\n okText: 'ตกลง',\n cancelText: 'ยกเลิก'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'ค้นหา',\n itemUnit: 'ชิ้น',\n itemsUnit: 'ชิ้น',\n remove: 'นำออก',\n selectCurrent: 'เลือกทั้งหมดในหน้านี้',\n removeCurrent: 'นำออกทั้งหมดในหน้านี้',\n selectAll: 'เลือกข้อมูลทั้งหมด',\n removeAll: 'นำข้อมูลออกทั้งหมด',\n selectInvert: 'กลับสถานะการเลือกในหน้านี้'\n },\n Upload: {\n uploading: 'กำลังอัปโหลด...',\n removeFile: 'ลบไฟล์',\n uploadError: 'เกิดข้อผิดพลาดในการอัปโหลด',\n previewFile: 'ดูตัวอย่างไฟล์',\n downloadFile: 'ดาวน์โหลดไฟล์'\n },\n Empty: {\n description: 'ไม่มีข้อมูล'\n },\n Icon: {\n icon: 'ไอคอน'\n },\n Text: {\n edit: 'แก้ไข',\n copy: 'คัดลอก',\n copied: 'คัดลอกแล้ว',\n expand: 'ขยาย'\n },\n PageHeader: {\n back: 'ย้อนกลับ'\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 */\nvar tr_TR = {\n locale: 'tr',\n Pagination: {\n items_per_page: '/ sayfa',\n jump_to: 'Git',\n jump_to_confirm: 'onayla',\n page: 'Sayfa',\n prev_page: 'Önceki Sayfa',\n next_page: 'Sonraki Sayfa',\n prev_5: 'Önceki 5 Sayfa',\n next_5: 'Sonraki 5 Sayfa',\n prev_3: 'Önceki 3 Sayfa',\n next_3: 'Sonraki 3 Sayfa',\n page_size: 'sayfa boyutu'\n },\n DatePicker: {\n lang: {\n placeholder: 'Tarih seç',\n yearPlaceholder: 'Yıl seç',\n quarterPlaceholder: 'Çeyrek seç',\n monthPlaceholder: 'Ay seç',\n weekPlaceholder: 'Hafta seç',\n rangePlaceholder: ['Başlangıç tarihi', 'Bitiş tarihi'],\n rangeYearPlaceholder: ['Başlangıç yılı', 'Bitiş yılı'],\n rangeMonthPlaceholder: ['Başlangıç ayı', 'Bitiş ayı'],\n rangeWeekPlaceholder: ['Başlangıç haftası', 'Bitiş haftası'],\n locale: 'tr_TR',\n today: 'Bugün',\n now: 'Şimdi',\n backToToday: 'Bugüne Geri Dön',\n ok: 'tamam',\n clear: 'Temizle',\n month: 'Ay',\n year: 'Yıl',\n timeSelect: 'Zaman Seç',\n dateSelect: 'Tarih Seç',\n monthSelect: 'Ay Seç',\n yearSelect: 'Yıl Seç',\n decadeSelect: 'On Yıl Seç',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Önceki Ay (PageUp)',\n nextMonth: 'Sonraki Ay (PageDown)',\n previousYear: 'Önceki Yıl (Control + Sol)',\n nextYear: 'Sonraki Yıl (Control + Sağ)',\n previousDecade: 'Önceki On Yıl',\n nextDecade: 'Sonraki On Yıl',\n previousCentury: 'Önceki Yüzyıl',\n nextCentury: 'Sonraki Yüzyıl'\n },\n timePickerLocale: {\n placeholder: 'Zaman seç',\n rangePlaceholder: ['Başlangıç zamanı', 'Bitiş zamanı']\n }\n },\n TimePicker: {\n placeholder: 'Zaman seç',\n rangePlaceholder: ['Başlangıç zamanı', 'Bitiş zamanı']\n },\n Calendar: {\n lang: {\n placeholder: 'Tarih seç',\n yearPlaceholder: 'Yıl seç',\n quarterPlaceholder: 'Çeyrek seç',\n monthPlaceholder: 'Ay seç',\n weekPlaceholder: 'Hafta seç',\n rangePlaceholder: ['Başlangıç tarihi', 'Bitiş tarihi'],\n rangeYearPlaceholder: ['Başlangıç yılı', 'Bitiş yılı'],\n rangeMonthPlaceholder: ['Başlangıç ayı', 'Bitiş ayı'],\n rangeWeekPlaceholder: ['Başlangıç haftası', 'Bitiş haftası'],\n locale: 'tr_TR',\n today: 'Bugün',\n now: 'Şimdi',\n backToToday: 'Bugüne Geri Dön',\n ok: 'tamam',\n clear: 'Temizle',\n month: 'Ay',\n year: 'Yıl',\n timeSelect: 'Zaman Seç',\n dateSelect: 'Tarih Seç',\n monthSelect: 'Ay Seç',\n yearSelect: 'Yıl Seç',\n decadeSelect: 'On Yıl Seç',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Önceki Ay (PageUp)',\n nextMonth: 'Sonraki Ay (PageDown)',\n previousYear: 'Önceki Yıl (Control + Sol)',\n nextYear: 'Sonraki Yıl (Control + Sağ)',\n previousDecade: 'Önceki On Yıl',\n nextDecade: 'Sonraki On Yıl',\n previousCentury: 'Önceki Yüzyıl',\n nextCentury: 'Sonraki Yüzyıl'\n },\n timePickerLocale: {\n placeholder: 'Zaman seç',\n rangePlaceholder: ['Başlangıç zamanı', 'Bitiş zamanı']\n }\n },\n global: {\n placeholder: 'Lütfen seçiniz'\n },\n Table: {\n filterTitle: 'Filtre menüsü',\n filterConfirm: 'Tamam',\n filterReset: 'Sıfırla',\n filterEmptyText: 'Filtre yok',\n selectAll: 'Tüm sayfayı seç',\n selectInvert: 'Tersini seç',\n selectionAll: 'Tümünü seç',\n sortTitle: 'Sırala',\n expand: 'Satırı genişlet',\n collapse: 'Satırı daralt',\n triggerDesc: 'Azalan düzende sırala',\n triggerAsc: 'Artan düzende sırala',\n cancelSort: 'Sıralamayı kaldır'\n },\n Modal: {\n okText: 'Tamam',\n cancelText: 'İptal',\n justOkText: 'Tamam'\n },\n Popconfirm: {\n okText: 'Tamam',\n cancelText: 'İptal'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Arama',\n itemUnit: 'Öğe',\n itemsUnit: 'Öğeler',\n remove: 'Kaldır',\n selectCurrent: 'Tüm sayfayı seç',\n removeCurrent: 'Sayfayı kaldır',\n selectAll: 'Tümünü seç',\n removeAll: 'Tümünü kaldır',\n selectInvert: 'Tersini seç'\n },\n Upload: {\n uploading: 'Yükleniyor...',\n removeFile: 'Dosyayı kaldır',\n uploadError: 'Yükleme hatası',\n previewFile: 'Dosyayı önizle',\n downloadFile: 'Dosyayı indir'\n },\n Empty: {\n description: 'Veri Yok'\n },\n Icon: {\n icon: 'ikon'\n },\n Text: {\n edit: 'Düzenle',\n copy: 'Kopyala',\n copied: 'Kopyalandı',\n expand: 'Genişlet'\n },\n PageHeader: {\n back: 'Geri'\n },\n Image: {\n preview: 'Önizleme'\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 */\nvar uk_UA = {\n locale: 'uk',\n Pagination: {\n items_per_page: '/ сторінці',\n jump_to: 'Перейти',\n jump_to_confirm: 'підтвердити',\n page: '',\n prev_page: 'Попередня сторінка',\n next_page: 'Наступна сторінка',\n prev_5: 'Попередні 5 сторінок',\n next_5: 'Наступні 5 сторінок',\n prev_3: 'Попередні 3 сторінки',\n next_3: 'Наступні 3 сторінки',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'Оберіть дату',\n yearPlaceholder: 'Оберіть рік',\n quarterPlaceholder: 'Оберіть квартал',\n monthPlaceholder: 'Оберіть місяць',\n weekPlaceholder: 'Оберіть тиждень',\n rangePlaceholder: ['Початкова дата', 'Кінцева дата'],\n rangeYearPlaceholder: ['Початковий рік', 'Рік закінчення'],\n rangeMonthPlaceholder: ['Початковий місяць', 'Кінцевий місяць'],\n rangeWeekPlaceholder: ['Початковий тиждень', 'Кінцевий тиждень'],\n locale: 'uk_UA',\n today: 'Сьогодні',\n now: 'Зараз',\n backToToday: 'Поточна дата',\n ok: 'Ok',\n clear: 'Очистити',\n month: 'Місяць',\n year: 'Рік',\n timeSelect: 'Обрати час',\n dateSelect: 'Обрати дату',\n monthSelect: 'Обрати місяць',\n yearSelect: 'Обрати рік',\n decadeSelect: 'Обрати десятиріччя',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Попередній місяць (PageUp)',\n nextMonth: 'Наступний місяць (PageDown)',\n previousYear: 'Попередній рік (Control + left)',\n nextYear: 'Наступний рік (Control + right)',\n previousDecade: 'Попереднє десятиріччя',\n nextDecade: 'Наступне десятиріччя',\n previousCentury: 'Попереднє століття',\n nextCentury: 'Наступне століття'\n },\n timePickerLocale: {\n placeholder: 'Оберіть час',\n rangePlaceholder: ['Час початку', 'Час закінчення']\n }\n },\n TimePicker: {\n placeholder: 'Оберіть час',\n rangePlaceholder: ['Час початку', 'Час закінчення']\n },\n Calendar: {\n lang: {\n placeholder: 'Оберіть дату',\n rangePlaceholder: ['Початкова дата', 'Кінцева дата'],\n locale: 'uk_UA',\n today: 'Сьогодні',\n now: 'Зараз',\n backToToday: 'Поточна дата',\n ok: 'Ok',\n clear: 'Очистити',\n month: 'Місяць',\n year: 'Рік',\n timeSelect: 'Обрати час',\n dateSelect: 'Обрати дату',\n monthSelect: 'Обрати місяць',\n yearSelect: 'Обрати рік',\n decadeSelect: 'Обрати десятиріччя',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Попередній місяць (PageUp)',\n nextMonth: 'Наступний місяць (PageDown)',\n previousYear: 'Попередній рік (Control + left)',\n nextYear: 'Наступний рік (Control + right)',\n previousDecade: 'Попереднє десятиріччя',\n nextDecade: 'Наступне десятиріччя',\n previousCentury: 'Попереднє століття',\n nextCentury: 'Наступне століття'\n },\n timePickerLocale: {\n placeholder: 'Оберіть час'\n }\n },\n Table: {\n filterTitle: 'Фільтрувати',\n filterConfirm: 'OK',\n filterReset: 'Скинути',\n selectAll: 'Обрати всі',\n selectInvert: 'Інвертувати вибір'\n },\n Modal: {\n okText: 'Гаразд',\n cancelText: 'Скасувати',\n justOkText: 'Гаразд'\n },\n Popconfirm: {\n okText: 'Гаразд',\n cancelText: 'Скасувати'\n },\n Transfer: {\n searchPlaceholder: 'Введіть текст для пошуку',\n itemUnit: 'елем.',\n itemsUnit: 'елем.'\n },\n Upload: {\n uploading: 'Завантаження ...',\n removeFile: 'Видалити файл',\n uploadError: 'Помилка завантаження',\n previewFile: 'Попередній перегляд файлу',\n downloadFile: 'Завантажити файл'\n },\n Empty: {\n description: 'Даних немає'\n },\n Icon: {\n icon: 'іконка'\n },\n Text: {\n edit: 'Редагувати',\n copy: 'Копіювати',\n copied: 'Скопійовано',\n expand: 'Розгорнути'\n },\n PageHeader: {\n back: 'Назад'\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 */\nvar ur_PK = {\n locale: 'ur',\n Pagination: {\n items_per_page: '/ صفحہ',\n jump_to: 'پاس جاؤ',\n jump_to_confirm: 'تصدیق کریں',\n page: '',\n prev_page: 'پچھلا صفحہ',\n next_page: 'اگلا صفحہ',\n prev_5: 'پچھلے 5 صفحات',\n next_5: 'اگلے 5 صفحات',\n prev_3: 'پچھلے 3 صفحات',\n next_3: 'اگلے 3 صفحات',\n page_size: 'Page Size'\n },\n DatePicker: {\n lang: {\n placeholder: 'تاریخ منتخب کریں',\n yearPlaceholder: 'سال کو منتخب کریں',\n quarterPlaceholder: 'کوارٹر منتخب کریں',\n monthPlaceholder: 'ماہ منتخب کریں',\n weekPlaceholder: 'ہفتہ منتخب کریں',\n rangePlaceholder: ['شروع کرنے کی تاریخ', 'آخری تاریخ'],\n rangeYearPlaceholder: ['آغاز سال', 'آخر سال'],\n rangeMonthPlaceholder: ['مہینہ شروع', 'اختتامی مہینہ'],\n rangeWeekPlaceholder: ['ہفتے شروع کریں', 'اختتام ہفتہ'],\n locale: 'ur_PK',\n today: 'آج',\n now: 'ابھی',\n backToToday: 'آج واپس',\n ok: 'ٹھیک ہے',\n clear: 'صاف',\n month: 'مہینہ',\n year: 'سال',\n timeSelect: 'وقت منتخب کریں',\n dateSelect: 'تاریخ منتخب کریں',\n weekSelect: 'ایک ہفتہ کا انتخاب کریں',\n monthSelect: 'ایک مہینہ کا انتخاب کریں',\n yearSelect: 'ایک سال کا انتخاب کریں',\n decadeSelect: 'ایک دہائی کا انتخاب کریں',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'پچھلے مہینے (PageUp)',\n nextMonth: 'اگلے مہینے (PageDown)',\n previousYear: 'گزشتہ سال (Control + left)',\n nextYear: 'اگلے سال (Control + right)',\n previousDecade: 'پچھلی دہائی',\n nextDecade: 'اگلی دہائی',\n previousCentury: 'پچھلی صدی',\n nextCentury: 'اگلی صدی'\n },\n timePickerLocale: {\n placeholder: 'وقت منتخب کریں',\n rangePlaceholder: ['وقت منتخب کریں', 'آخر وقت']\n }\n },\n TimePicker: {\n placeholder: 'وقت منتخب کریں',\n rangePlaceholder: ['وقت منتخب کریں', 'آخر وقت']\n },\n Calendar: {\n lang: {\n placeholder: 'تاریخ منتخب کریں',\n yearPlaceholder: 'سال کو منتخب کریں',\n quarterPlaceholder: 'کوارٹر منتخب کریں',\n monthPlaceholder: 'ماہ منتخب کریں',\n weekPlaceholder: 'ہفتہ منتخب کریں',\n rangePlaceholder: ['شروع کرنے کی تاریخ', 'آخری تاریخ'],\n rangeYearPlaceholder: ['آغاز سال', 'آخر سال'],\n rangeMonthPlaceholder: ['مہینہ شروع', 'اختتامی مہینہ'],\n rangeWeekPlaceholder: ['ہفتے شروع کریں', 'اختتام ہفتہ'],\n locale: 'ur_PK',\n today: 'آج',\n now: 'ابھی',\n backToToday: 'آج واپس',\n ok: 'ٹھیک ہے',\n clear: 'صاف',\n month: 'مہینہ',\n year: 'سال',\n timeSelect: 'وقت منتخب کریں',\n dateSelect: 'تاریخ منتخب کریں',\n weekSelect: 'ایک ہفتہ کا انتخاب کریں',\n monthSelect: 'ایک مہینہ کا انتخاب کریں',\n yearSelect: 'ایک سال کا انتخاب کریں',\n decadeSelect: 'ایک دہائی کا انتخاب کریں',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'پچھلے مہینے (PageUp)',\n nextMonth: 'اگلے مہینے (PageDown)',\n previousYear: 'گزشتہ سال (Control + left)',\n nextYear: 'اگلے سال (Control + right)',\n previousDecade: 'پچھلی دہائی',\n nextDecade: 'اگلی دہائی',\n previousCentury: 'پچھلی صدی',\n nextCentury: 'اگلی صدی'\n },\n timePickerLocale: {\n placeholder: 'وقت منتخب کریں',\n rangePlaceholder: ['وقت منتخب کریں', 'آخر وقت']\n }\n },\n global: {\n placeholder: 'منتخب کریں'\n },\n Table: {\n filterTitle: 'فلٹر مینو',\n filterConfirm: 'ٹھیک ہے',\n filterReset: 'ری سیٹ کریں',\n filterEmptyText: 'فلٹرز نہیں',\n emptyText: 'کوئی ڈیٹا نہیں',\n selectAll: 'موجودہ صفحہ منتخب کریں',\n selectInvert: 'موجودہ صفحے کو الٹ دیں',\n selectNone: 'تمام ڈیٹا صاف کریں',\n selectionAll: 'تمام ڈیٹا کو منتخب کریں',\n sortTitle: 'ترتیب دیں',\n expand: 'پھیلائیں',\n collapse: 'سمیٹیں',\n triggerDesc: 'نزولی کو ترتیب دینے کیلئے کلک کریں',\n triggerAsc: 'چڑھنے کو ترتیب دینے کیلئے کلک کریں',\n cancelSort: 'ترتیب کو منسوخ کرنے کیلئے دبائیں'\n },\n Modal: {\n okText: 'ٹھیک ہے',\n cancelText: 'منسوخ کریں',\n justOkText: 'ٹھیک ہے'\n },\n Popconfirm: {\n okText: 'ٹھیک ہے',\n cancelText: 'منسوخ کریں'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'یہاں تلاش کریں',\n itemUnit: 'شے',\n itemsUnit: 'اشیاء',\n remove: 'ہٹائیں',\n selectCurrent: 'موجودہ صفحہ منتخب کریں',\n removeCurrent: 'موجودہ صفحہ ہٹائیں',\n selectAll: 'تمام ڈیٹا کو منتخب کریں',\n removeAll: 'تمام ڈیٹا کو ہٹا دیں',\n selectInvert: 'موجودہ صفحے کو الٹ دیں'\n },\n Upload: {\n uploading: 'اپ لوڈ ہو رہا ہے…',\n removeFile: 'فائل کو ہٹا دیں',\n uploadError: 'اپ لوڈ کی خرابی',\n previewFile: 'پیش نظار فائل',\n downloadFile: 'فائل ڈاؤن لوڈ کریں'\n },\n Empty: {\n description: 'کوئی ڈیٹا نہیں'\n },\n Icon: {\n icon: 'آئیکن'\n },\n Text: {\n edit: 'ترمیم',\n copy: 'کاپی',\n copied: 'کاپی ہوگیا',\n expand: 'پھیلائیں'\n },\n PageHeader: {\n back: 'پیچھے'\n },\n Image: {\n preview: 'پیش نظارہ'\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 */\nvar vi_VN = {\n locale: 'vi',\n Pagination: {\n items_per_page: '/ trang',\n jump_to: 'Đến',\n jump_to_confirm: 'xác nhận',\n page: 'Trang',\n prev_page: 'Trang Trước',\n next_page: 'Trang Kế',\n prev_5: 'Về 5 Trang Trước',\n next_5: 'Đến 5 Trang Kế',\n prev_3: 'Về 3 Trang Trước',\n next_3: 'Đến 3 Trang Kế',\n page_size: 'kích thước trang'\n },\n DatePicker: {\n lang: {\n placeholder: 'Chọn thời điểm',\n rangePlaceholder: ['Ngày bắt đầu', 'Ngày kết thúc'],\n locale: 'vi_VN',\n today: 'Hôm nay',\n now: 'Bây giờ',\n backToToday: 'Trở về hôm nay',\n ok: 'Ok',\n clear: 'Xóa',\n month: 'Tháng',\n year: 'Năm',\n timeSelect: 'Chọn thời gian',\n dateSelect: 'Chọn ngày',\n weekSelect: 'Chọn tuần',\n monthSelect: 'Chọn tháng',\n yearSelect: 'Chọn năm',\n decadeSelect: 'Chọn thập kỷ',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Tháng trước (PageUp)',\n nextMonth: 'Tháng sau (PageDown)',\n previousYear: 'Năm trước (Control + left)',\n nextYear: 'Năm sau (Control + right)',\n previousDecade: 'Thập kỷ trước',\n nextDecade: 'Thập kỷ sau',\n previousCentury: 'Thế kỷ trước',\n nextCentury: 'Thế kỷ sau'\n },\n timePickerLocale: {\n placeholder: 'Chọn thời gian'\n }\n },\n TimePicker: {\n placeholder: 'Chọn thời gian'\n },\n Calendar: {\n lang: {\n placeholder: 'Chọn thời điểm',\n rangePlaceholder: ['Ngày bắt đầu', 'Ngày kết thúc'],\n locale: 'vi_VN',\n today: 'Hôm nay',\n now: 'Bây giờ',\n backToToday: 'Trở về hôm nay',\n ok: 'Ok',\n clear: 'Xóa',\n month: 'Tháng',\n year: 'Năm',\n timeSelect: 'Chọn thời gian',\n dateSelect: 'Chọn ngày',\n weekSelect: 'Chọn tuần',\n monthSelect: 'Chọn tháng',\n yearSelect: 'Chọn năm',\n decadeSelect: 'Chọn thập kỷ',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Tháng trước (PageUp)',\n nextMonth: 'Tháng sau (PageDown)',\n previousYear: 'Năm trước (Control + left)',\n nextYear: 'Năm sau (Control + right)',\n previousDecade: 'Thập kỷ trước',\n nextDecade: 'Thập kỷ sau',\n previousCentury: 'Thế kỷ trước',\n nextCentury: 'Thế kỷ sau'\n },\n timePickerLocale: {\n placeholder: 'Chọn thời gian'\n }\n },\n Table: {\n filterTitle: 'Bộ ',\n filterConfirm: 'OK',\n filterReset: 'Tạo Lại',\n selectAll: 'Chọn Tất Cả',\n selectInvert: 'Chọn Ngược Lại'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Huỷ',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Huỷ'\n },\n Transfer: {\n searchPlaceholder: 'Tìm ở đây',\n itemUnit: 'mục',\n itemsUnit: 'mục'\n },\n Upload: {\n uploading: 'Đang tải lên...',\n removeFile: 'Gỡ bỏ tập tin',\n uploadError: 'Lỗi tải lên',\n previewFile: 'Xem thử tập tin',\n downloadFile: 'Tải tập tin'\n },\n Empty: {\n description: 'Trống'\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 */\nvar zh_HK = {\n locale: 'zh-hk',\n Pagination: {\n items_per_page: '條/頁',\n jump_to: '跳至',\n jump_to_confirm: '確定',\n page: '頁',\n prev_page: '上一頁',\n next_page: '下一頁',\n prev_5: '向前 5 頁',\n next_5: '向後 5 頁',\n prev_3: '向前 3 頁',\n next_3: '向後 3 頁',\n page_size: '頁碼'\n },\n DatePicker: {\n lang: {\n placeholder: '請選擇日期',\n rangePlaceholder: ['開始日期', '結束日期'],\n locale: 'zh_TW',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '確定',\n timeSelect: '選擇時間',\n dateSelect: '選擇日期',\n weekSelect: '選擇周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上個月 (翻頁上鍵)',\n nextMonth: '下個月 (翻頁下鍵)',\n monthSelect: '選擇月份',\n yearSelect: '選擇年份',\n decadeSelect: '選擇年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',\n previousYear: '上一年 (Control鍵加左方向鍵)',\n nextYear: '下一年 (Control鍵加右方向鍵)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世紀',\n nextCentury: '下一世紀',\n yearPlaceholder: '請選擇年份',\n quarterPlaceholder: '請選擇季度',\n monthPlaceholder: '請選擇月份',\n weekPlaceholder: '請選擇周',\n rangeYearPlaceholder: ['開始年份', '結束年份'],\n rangeMonthPlaceholder: ['開始月份', '結束月份'],\n rangeWeekPlaceholder: ['開始周', '結束周']\n },\n timePickerLocale: {\n placeholder: '請選擇時間'\n }\n },\n TimePicker: {\n placeholder: '請選擇時間'\n },\n Calendar: {\n lang: {\n placeholder: '請選擇日期',\n rangePlaceholder: ['開始日期', '結束日期'],\n locale: 'zh_TW',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '確定',\n timeSelect: '選擇時間',\n dateSelect: '選擇日期',\n weekSelect: '選擇周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上個月 (翻頁上鍵)',\n nextMonth: '下個月 (翻頁下鍵)',\n monthSelect: '選擇月份',\n yearSelect: '選擇年份',\n decadeSelect: '選擇年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',\n previousYear: '上一年 (Control鍵加左方向鍵)',\n nextYear: '下一年 (Control鍵加右方向鍵)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世紀',\n nextCentury: '下一世紀',\n yearPlaceholder: '請選擇年份',\n quarterPlaceholder: '請選擇季度',\n monthPlaceholder: '請選擇月份',\n weekPlaceholder: '請選擇周',\n rangeYearPlaceholder: ['開始年份', '結束年份'],\n rangeMonthPlaceholder: ['開始月份', '結束月份'],\n rangeWeekPlaceholder: ['開始周', '結束周']\n },\n timePickerLocale: {\n placeholder: '請選擇時間'\n }\n },\n global: {\n placeholder: '請選擇'\n },\n Table: {\n filterTitle: '篩選器',\n filterConfirm: '確定',\n filterReset: '重置',\n filterEmptyText: '無篩選項',\n selectAll: '全部選取',\n selectInvert: '反向選取',\n selectionAll: '全選所有',\n sortTitle: '排序',\n expand: '展開行',\n collapse: '關閉行',\n triggerDesc: '點擊降序',\n triggerAsc: '點擊升序',\n cancelSort: '取消排序',\n selectNone: '清空所有'\n },\n Modal: {\n okText: '確定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n okText: '確定',\n cancelText: '取消'\n },\n Transfer: {\n searchPlaceholder: '搜尋資料',\n itemUnit: '項目',\n itemsUnit: '項目',\n remove: '刪除',\n selectCurrent: '全選當頁',\n removeCurrent: '刪除當頁',\n selectAll: '全選所有',\n removeAll: '刪除全部',\n selectInvert: '反選當頁'\n },\n Upload: {\n uploading: '正在上傳...',\n removeFile: '刪除檔案',\n uploadError: '上傳失敗',\n previewFile: '檔案預覽',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '無此資料'\n },\n Icon: {\n icon: '圖標'\n },\n Text: {\n edit: '編輯',\n copy: '複製',\n copied: '複製成功',\n expand: '展開'\n },\n PageHeader: {\n back: '返回'\n },\n Image: {\n preview: '預覽'\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 */\nvar zh_TW = {\n locale: 'zh-tw',\n Pagination: {\n items_per_page: '條/頁',\n jump_to: '跳至',\n jump_to_confirm: '確定',\n page: '頁',\n prev_page: '上一頁',\n next_page: '下一頁',\n prev_5: '向前 5 頁',\n next_5: '向後 5 頁',\n prev_3: '向前 3 頁',\n next_3: '向後 3 頁',\n page_size: '頁碼'\n },\n DatePicker: {\n lang: {\n placeholder: '請選擇日期',\n rangePlaceholder: ['開始日期', '結束日期'],\n locale: 'zh_TW',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '確定',\n timeSelect: '選擇時間',\n dateSelect: '選擇日期',\n weekSelect: '選擇周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上個月 (翻頁上鍵)',\n nextMonth: '下個月 (翻頁下鍵)',\n monthSelect: '選擇月份',\n yearSelect: '選擇年份',\n decadeSelect: '選擇年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',\n previousYear: '上一年 (Control鍵加左方向鍵)',\n nextYear: '下一年 (Control鍵加右方向鍵)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世紀',\n nextCentury: '下一世紀',\n yearPlaceholder: '請選擇年份',\n quarterPlaceholder: '請選擇季度',\n monthPlaceholder: '請選擇月份',\n weekPlaceholder: '請選擇周',\n rangeYearPlaceholder: ['開始年份', '結束年份'],\n rangeMonthPlaceholder: ['開始月份', '結束月份'],\n rangeWeekPlaceholder: ['開始周', '結束周']\n },\n timePickerLocale: {\n placeholder: '請選擇時間'\n }\n },\n TimePicker: {\n placeholder: '請選擇時間'\n },\n Calendar: {\n lang: {\n placeholder: '請選擇日期',\n rangePlaceholder: ['開始日期', '結束日期'],\n locale: 'zh_TW',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '確定',\n timeSelect: '選擇時間',\n dateSelect: '選擇日期',\n weekSelect: '選擇周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上個月 (翻頁上鍵)',\n nextMonth: '下個月 (翻頁下鍵)',\n monthSelect: '選擇月份',\n yearSelect: '選擇年份',\n decadeSelect: '選擇年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',\n previousYear: '上一年 (Control鍵加左方向鍵)',\n nextYear: '下一年 (Control鍵加右方向鍵)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世紀',\n nextCentury: '下一世紀',\n yearPlaceholder: '請選擇年份',\n quarterPlaceholder: '請選擇季度',\n monthPlaceholder: '請選擇月份',\n weekPlaceholder: '請選擇周',\n rangeYearPlaceholder: ['開始年份', '結束年份'],\n rangeMonthPlaceholder: ['開始月份', '結束月份'],\n rangeWeekPlaceholder: ['開始周', '結束周']\n },\n timePickerLocale: {\n placeholder: '請選擇時間'\n }\n },\n global: {\n placeholder: '請選擇'\n },\n Table: {\n filterTitle: '篩選器',\n filterConfirm: '確定',\n filterReset: '重置',\n filterEmptyText: '無篩選項',\n selectAll: '全部選取',\n selectInvert: '反向選取',\n selectionAll: '全選所有',\n sortTitle: '排序',\n expand: '展開行',\n collapse: '關閉行',\n triggerDesc: '點擊降序',\n triggerAsc: '點擊升序',\n cancelSort: '取消排序',\n selectNone: '清空所有'\n },\n Modal: {\n okText: '確定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n okText: '確定',\n cancelText: '取消'\n },\n Transfer: {\n searchPlaceholder: '搜尋資料',\n itemUnit: '項目',\n itemsUnit: '項目',\n remove: '删除',\n selectCurrent: '全選當頁',\n removeCurrent: '删除當頁',\n selectAll: '全選所有',\n removeAll: '删除全部',\n selectInvert: '反選當頁'\n },\n Upload: {\n uploading: '正在上傳...',\n removeFile: '刪除檔案',\n uploadError: '上傳失敗',\n previewFile: '檔案預覽',\n downloadFile: '下載文件'\n },\n Empty: {\n description: '無此資料'\n },\n Icon: {\n icon: '圖標'\n },\n Text: {\n edit: '編輯',\n copy: '複製',\n copied: '複製成功',\n expand: '展開'\n },\n PageHeader: {\n back: '返回'\n },\n Image: {\n preview: '預覽'\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 { DATE_HELPER_SERVICE_FACTORY, DateHelperByDateFns, DateHelperByDatePipe, DateHelperService, NZ_DATE_CONFIG, NZ_DATE_CONFIG_DEFAULT, NZ_DATE_LOCALE, NZ_I18N, NzI18nModule, NzI18nPipe, NzI18nService, ar_EG, az_AZ, bg_BG, bn_BD, by_BY, ca_ES, cs_CZ, da_DK, de_DE, el_GR, en_GB, en_US, es_ES, et_EE, fa_IR, fi_FI, fr_BE, fr_CA, fr_FR, ga_IE, gl_ES, he_IL, hi_IN, hr_HR, hu_HU, hy_AM, id_ID, is_IS, it_IT, ja_JP, ka_GE, kk_KZ, km_KH, kmr_IQ, kn_IN, ko_KR, ku_IQ, lt_LT, lv_LV, mergeDateConfig, mk_MK, ml_IN, mn_MN, ms_MY, nb_NO, ne_NP, nl_BE, nl_NL, pl_PL, provideNzI18n, pt_BR, pt_PT, ro_RO, ru_RU, sk_SK, sl_SI, sr_RS, sv_SE, ta_IN, th_TH, tr_TR, uk_UA, ur_PK, vi_VN, zh_CN, zh_HK, zh_TW };\n"],
- "mappings": "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",
- "names": ["o", "defaultOptions", "defaultOptions", "defaultOptions", "defaultOptions", "MILLISECONDS_IN_WEEK", "milliseconds", "formatters", "localize", "y", "M", "d", "a", "h", "H", "m", "s", "S", "dateLongFormatter", "formatLong", "timeLongFormatter", "dateTimeLongFormatter", "format", "formatDistance", "format", "formatRelative", "ordinalNumber", "valueCallback", "defaultOptions", "locale", "MILLISECONDS_IN_WEEK", "MILLISECONDS_IN_DAY", "i", "i", "F", "e", "s", "_setPrototypeOf", "o", "p", "_getPrototypeOf", "o", "e", "i", "Setter", "ValueSetter", "set", "DateToSystemTimezoneSetter", "Parser", "match", "EraParser", "parse", "match", "set", "YearParser", "parse", "match", "valueCallback", "set", "LocalWeekYearParser", "parse", "match", "valueCallback", "set", "ISOWeekYearParser", "parse", "set", "ExtendedYearParser", "parse", "set", "QuarterParser", "parse", "match", "set", "StandAloneQuarterParser", "parse", "match", "set", "MonthParser", "parse", "match", "valueCallback", "set", "StandAloneMonthParser", "parse", "match", "valueCallback", "set", "LocalWeekParser", "parse", "match", "set", "ISOWeekParser", "parse", "match", "set", "DateParser", "parse", "match", "isLeapYear", "set", "DayOfYearParser", "parse", "match", "isLeapYear", "set", "defaultOptions", "DayParser", "parse", "match", "set", "LocalDayParser", "parse", "match", "valueCallback", "set", "StandAloneLocalDayParser", "parse", "match", "valueCallback", "set", "ISODayParser", "parse", "match", "valueCallback", "set", "AMPMParser", "parse", "match", "set", "AMPMMidnightParser", "parse", "match", "set", "DayPeriodParser", "parse", "match", "set", "Hour1to12Parser", "parse", "match", "set", "Hour0to23Parser", "parse", "match", "set", "Hour0To11Parser", "parse", "match", "set", "Hour1To24Parser", "parse", "match", "set", "MinuteParser", "parse", "match", "set", "SecondParser", "parse", "match", "set", "FractionOfSecondParser", "parse", "valueCallback", "set", "ISOTimezoneWithZParser", "parse", "set", "ISOTimezoneParser", "parse", "set", "TimestampSecondsParser", "parse", "set", "TimestampMillisecondsParser", "parse", "set", "formattingTokensRegExp", "longFormattingTokensRegExp", "escapedStringRegExp", "doubleQuoteRegExp", "unescapedLatinCharacterRegExp", "defaultOptions", "locale", "_loop", "cleanEscapedString", "setter", "a", "b", "format", "match", "m", "a", "b", "locale", "t", "e"]
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-VWMHIMW7.js b/.angular/cache/17.0.7/vite/deps/chunk-VWMHIMW7.js
deleted file mode 100644
index a026016..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-VWMHIMW7.js
+++ /dev/null
@@ -1,1376 +0,0 @@
-import {
- NzConfigService,
- inputToRGB,
- rgbToHex,
- rgbToHsv
-} from "./chunk-ZHMJ6SNN.js";
-import {
- Platform
-} from "./chunk-IAC53GOD.js";
-import {
- InputBoolean,
- warn
-} from "./chunk-M5GY4FCO.js";
-import {
- DomSanitizer
-} from "./chunk-Y4CEYMY2.js";
-import {
- HttpBackend,
- HttpClient
-} from "./chunk-X7WBA24Z.js";
-import {
- DOCUMENT
-} from "./chunk-OSQBUYO6.js";
-import {
- ChangeDetectorRef,
- Directive,
- ElementRef,
- Inject,
- Injectable,
- InjectionToken,
- Input,
- NgModule,
- NgZone,
- Observable,
- Optional,
- Renderer2,
- RendererFactory2,
- SecurityContext,
- Self,
- Subject,
- __decorate,
- catchError,
- filter,
- finalize,
- from,
- isDevMode,
- map,
- of,
- setClassMetadata,
- share,
- take,
- takeUntil,
- tap,
- ɵɵInheritDefinitionFeature,
- ɵɵNgOnChangesFeature,
- ɵɵclassProp,
- ɵɵdefineDirective,
- ɵɵdefineInjectable,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵinject
-} from "./chunk-FGESKT7O.js";
-import {
- __spreadProps,
- __spreadValues
-} from "./chunk-HSNDBVJ3.js";
-
-// node_modules/@ant-design/colors/es/generate.js
-var hueStep = 2;
-var saturationStep = 0.16;
-var saturationStep2 = 0.05;
-var brightnessStep1 = 0.05;
-var brightnessStep2 = 0.15;
-var lightColorCount = 5;
-var darkColorCount = 4;
-var darkColorMap = [{
- index: 7,
- opacity: 0.15
-}, {
- index: 6,
- opacity: 0.25
-}, {
- index: 5,
- opacity: 0.3
-}, {
- index: 5,
- opacity: 0.45
-}, {
- index: 5,
- opacity: 0.65
-}, {
- index: 5,
- opacity: 0.85
-}, {
- index: 4,
- opacity: 0.9
-}, {
- index: 3,
- opacity: 0.95
-}, {
- index: 2,
- opacity: 0.97
-}, {
- index: 1,
- opacity: 0.98
-}];
-function toHsv(_ref) {
- var r = _ref.r, g = _ref.g, b = _ref.b;
- var hsv = rgbToHsv(r, g, b);
- return {
- h: hsv.h * 360,
- s: hsv.s,
- v: hsv.v
- };
-}
-function toHex(_ref2) {
- var r = _ref2.r, g = _ref2.g, b = _ref2.b;
- return "#".concat(rgbToHex(r, g, b, false));
-}
-function mix(rgb1, rgb2, amount) {
- var p = amount / 100;
- var rgb = {
- r: (rgb2.r - rgb1.r) * p + rgb1.r,
- g: (rgb2.g - rgb1.g) * p + rgb1.g,
- b: (rgb2.b - rgb1.b) * p + rgb1.b
- };
- return rgb;
-}
-function getHue(hsv, i, light) {
- var hue;
- if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {
- hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;
- } else {
- hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;
- }
- if (hue < 0) {
- hue += 360;
- } else if (hue >= 360) {
- hue -= 360;
- }
- return hue;
-}
-function getSaturation(hsv, i, light) {
- if (hsv.h === 0 && hsv.s === 0) {
- return hsv.s;
- }
- var saturation;
- if (light) {
- saturation = hsv.s - saturationStep * i;
- } else if (i === darkColorCount) {
- saturation = hsv.s + saturationStep;
- } else {
- saturation = hsv.s + saturationStep2 * i;
- }
- if (saturation > 1) {
- saturation = 1;
- }
- if (light && i === lightColorCount && saturation > 0.1) {
- saturation = 0.1;
- }
- if (saturation < 0.06) {
- saturation = 0.06;
- }
- return Number(saturation.toFixed(2));
-}
-function getValue(hsv, i, light) {
- var value;
- if (light) {
- value = hsv.v + brightnessStep1 * i;
- } else {
- value = hsv.v - brightnessStep2 * i;
- }
- if (value > 1) {
- value = 1;
- }
- return Number(value.toFixed(2));
-}
-function generate(color) {
- var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- var patterns = [];
- var pColor = inputToRGB(color);
- for (var i = lightColorCount; i > 0; i -= 1) {
- var hsv = toHsv(pColor);
- var colorString = toHex(inputToRGB({
- h: getHue(hsv, i, true),
- s: getSaturation(hsv, i, true),
- v: getValue(hsv, i, true)
- }));
- patterns.push(colorString);
- }
- patterns.push(toHex(pColor));
- for (var _i = 1; _i <= darkColorCount; _i += 1) {
- var _hsv = toHsv(pColor);
- var _colorString = toHex(inputToRGB({
- h: getHue(_hsv, _i),
- s: getSaturation(_hsv, _i),
- v: getValue(_hsv, _i)
- }));
- patterns.push(_colorString);
- }
- if (opts.theme === "dark") {
- return darkColorMap.map(function(_ref3) {
- var index = _ref3.index, opacity = _ref3.opacity;
- var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || "#141414"), inputToRGB(patterns[index]), opacity * 100));
- return darkColorString;
- });
- }
- return patterns;
-}
-
-// node_modules/@ant-design/colors/es/index.js
-var presetPrimaryColors = {
- red: "#F5222D",
- volcano: "#FA541C",
- orange: "#FA8C16",
- gold: "#FAAD14",
- yellow: "#FADB14",
- lime: "#A0D911",
- green: "#52C41A",
- cyan: "#13C2C2",
- blue: "#1677FF",
- geekblue: "#2F54EB",
- purple: "#722ED1",
- magenta: "#EB2F96",
- grey: "#666666"
-};
-var presetPalettes = {};
-var presetDarkPalettes = {};
-Object.keys(presetPrimaryColors).forEach(function(key) {
- presetPalettes[key] = generate(presetPrimaryColors[key]);
- presetPalettes[key].primary = presetPalettes[key][5];
- presetDarkPalettes[key] = generate(presetPrimaryColors[key], {
- theme: "dark",
- backgroundColor: "#141414"
- });
- presetDarkPalettes[key].primary = presetDarkPalettes[key][5];
-});
-var red = presetPalettes.red;
-var volcano = presetPalettes.volcano;
-var gold = presetPalettes.gold;
-var orange = presetPalettes.orange;
-var yellow = presetPalettes.yellow;
-var lime = presetPalettes.lime;
-var green = presetPalettes.green;
-var cyan = presetPalettes.cyan;
-var blue = presetPalettes.blue;
-var geekblue = presetPalettes.geekblue;
-var purple = presetPalettes.purple;
-var magenta = presetPalettes.magenta;
-var grey = presetPalettes.grey;
-var gray = presetPalettes.grey;
-
-// node_modules/@ant-design/icons-angular/fesm2022/ant-design-icons-angular.mjs
-var ANT_ICON_ANGULAR_CONSOLE_PREFIX = "[@ant-design/icons-angular]:";
-function error(message) {
- console.error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX} ${message}.`);
-}
-function warn2(message) {
- if (isDevMode()) {
- console.warn(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX} ${message}.`);
- }
-}
-function getSecondaryColor(primaryColor) {
- return generate(primaryColor)[0];
-}
-function withSuffix(name2, theme) {
- switch (theme) {
- case "fill":
- return `${name2}-fill`;
- case "outline":
- return `${name2}-o`;
- case "twotone":
- return `${name2}-twotone`;
- case void 0:
- return name2;
- default:
- throw new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}Theme "${theme}" is not a recognized theme!`);
- }
-}
-function withSuffixAndColor(name2, theme, pri, sec) {
- return `${withSuffix(name2, theme)}-${pri}-${sec}`;
-}
-function mapAbbrToTheme(abbr) {
- return abbr === "o" ? "outline" : abbr;
-}
-function alreadyHasAThemeSuffix(name2) {
- return name2.endsWith("-fill") || name2.endsWith("-o") || name2.endsWith("-twotone");
-}
-function isIconDefinition(target) {
- return typeof target === "object" && typeof target.name === "string" && (typeof target.theme === "string" || target.theme === void 0) && typeof target.icon === "string";
-}
-function getIconDefinitionFromAbbr(str) {
- const arr = str.split("-");
- const theme = mapAbbrToTheme(arr.splice(arr.length - 1, 1)[0]);
- const name2 = arr.join("-");
- return {
- name: name2,
- theme,
- icon: ""
- };
-}
-function cloneSVG(svg) {
- return svg.cloneNode(true);
-}
-function replaceFillColor(raw) {
- return raw.replace(/['"]#333['"]/g, '"primaryColor"').replace(/['"]#E6E6E6['"]/g, '"secondaryColor"').replace(/['"]#D9D9D9['"]/g, '"secondaryColor"').replace(/['"]#D8D8D8['"]/g, '"secondaryColor"');
-}
-function getNameAndNamespace(type) {
- const split = type.split(":");
- switch (split.length) {
- case 1:
- return [type, ""];
- case 2:
- return [split[1], split[0]];
- default:
- throw new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}The icon type ${type} is not valid!`);
- }
-}
-function hasNamespace(type) {
- return getNameAndNamespace(type)[1] !== "";
-}
-function NameSpaceIsNotSpecifyError() {
- return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}Type should have a namespace. Try "namespace:${name}".`);
-}
-function IconNotFoundError(icon) {
- return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}the icon ${icon} does not exist or is not registered.`);
-}
-function HttpModuleNotImport() {
- error(`you need to import "HttpClientModule" to use dynamic importing.`);
- return null;
-}
-function UrlNotSafeError(url) {
- return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}The url "${url}" is unsafe.`);
-}
-function SVGTagNotFoundError() {
- return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX} tag not found.`);
-}
-function DynamicLoadingTimeoutError() {
- return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}Importing timeout error.`);
-}
-var JSONP_HANDLER_NAME = "__ant_icon_load";
-var ANT_ICONS = new InjectionToken("ant_icons");
-var _IconService = class _IconService {
- set twoToneColor({
- primaryColor,
- secondaryColor
- }) {
- this._twoToneColorPalette.primaryColor = primaryColor;
- this._twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);
- }
- get twoToneColor() {
- return __spreadValues({}, this._twoToneColorPalette);
- }
- /**
- * Disable dynamic loading (support static loading only).
- */
- get _disableDynamicLoading() {
- return false;
- }
- constructor(_rendererFactory, _handler, _document, sanitizer, _antIcons) {
- this._rendererFactory = _rendererFactory;
- this._handler = _handler;
- this._document = _document;
- this.sanitizer = sanitizer;
- this._antIcons = _antIcons;
- this.defaultTheme = "outline";
- this._svgDefinitions = /* @__PURE__ */ new Map();
- this._svgRenderedDefinitions = /* @__PURE__ */ new Map();
- this._inProgressFetches = /* @__PURE__ */ new Map();
- this._assetsUrlRoot = "";
- this._twoToneColorPalette = {
- primaryColor: "#333333",
- secondaryColor: "#E6E6E6"
- };
- this._enableJsonpLoading = false;
- this._jsonpIconLoad$ = new Subject();
- this._renderer = this._rendererFactory.createRenderer(null, null);
- if (this._handler) {
- this._http = new HttpClient(this._handler);
- }
- if (this._antIcons) {
- this.addIcon(...this._antIcons);
- }
- }
- /**
- * Call this method to switch to jsonp like loading.
- */
- useJsonpLoading() {
- if (!this._enableJsonpLoading) {
- this._enableJsonpLoading = true;
- window[JSONP_HANDLER_NAME] = (icon) => {
- this._jsonpIconLoad$.next(icon);
- };
- } else {
- warn2("You are already using jsonp loading.");
- }
- }
- /**
- * Change the prefix of the inline svg resources, so they could be deployed elsewhere, like CDN.
- * @param prefix
- */
- changeAssetsSource(prefix) {
- this._assetsUrlRoot = prefix.endsWith("/") ? prefix : prefix + "/";
- }
- /**
- * Add icons provided by ant design.
- * @param icons
- */
- addIcon(...icons) {
- icons.forEach((icon) => {
- this._svgDefinitions.set(withSuffix(icon.name, icon.theme), icon);
- });
- }
- /**
- * Register an icon. Namespace is required.
- * @param type
- * @param literal
- */
- addIconLiteral(type, literal) {
- const [_, namespace] = getNameAndNamespace(type);
- if (!namespace) {
- throw NameSpaceIsNotSpecifyError();
- }
- this.addIcon({
- name: type,
- icon: literal
- });
- }
- /**
- * Remove all cache.
- */
- clear() {
- this._svgDefinitions.clear();
- this._svgRenderedDefinitions.clear();
- }
- /**
- * Get a rendered `SVGElement`.
- * @param icon
- * @param twoToneColor
- */
- getRenderedContent(icon, twoToneColor) {
- const definition = isIconDefinition(icon) ? icon : this._svgDefinitions.get(icon) || null;
- if (!definition && this._disableDynamicLoading) {
- throw IconNotFoundError(icon);
- }
- const $iconDefinition = definition ? of(definition) : this._loadIconDynamically(icon);
- return $iconDefinition.pipe(map((i) => {
- if (!i) {
- throw IconNotFoundError(icon);
- }
- return this._loadSVGFromCacheOrCreateNew(i, twoToneColor);
- }));
- }
- getCachedIcons() {
- return this._svgDefinitions;
- }
- /**
- * Get raw svg and assemble a `IconDefinition` object.
- * @param type
- */
- _loadIconDynamically(type) {
- if (!this._http && !this._enableJsonpLoading) {
- return of(HttpModuleNotImport());
- }
- let inProgress = this._inProgressFetches.get(type);
- if (!inProgress) {
- const [name2, namespace] = getNameAndNamespace(type);
- const icon = namespace ? {
- name: type,
- icon: ""
- } : getIconDefinitionFromAbbr(name2);
- const suffix = this._enableJsonpLoading ? ".js" : ".svg";
- const url = (namespace ? `${this._assetsUrlRoot}assets/${namespace}/${name2}` : `${this._assetsUrlRoot}assets/${icon.theme}/${icon.name}`) + suffix;
- const safeUrl = this.sanitizer.sanitize(SecurityContext.URL, url);
- if (!safeUrl) {
- throw UrlNotSafeError(url);
- }
- const source = !this._enableJsonpLoading ? this._http.get(safeUrl, {
- responseType: "text"
- }).pipe(map((literal) => __spreadProps(__spreadValues({}, icon), {
- icon: literal
- }))) : this._loadIconDynamicallyWithJsonp(icon, safeUrl);
- inProgress = source.pipe(tap((definition) => this.addIcon(definition)), finalize(() => this._inProgressFetches.delete(type)), catchError(() => of(null)), share());
- this._inProgressFetches.set(type, inProgress);
- }
- return inProgress;
- }
- _loadIconDynamicallyWithJsonp(icon, url) {
- return new Observable((subscriber) => {
- const loader = this._document.createElement("script");
- const timer = setTimeout(() => {
- clean();
- subscriber.error(DynamicLoadingTimeoutError());
- }, 6e3);
- loader.src = url;
- function clean() {
- loader.parentNode.removeChild(loader);
- clearTimeout(timer);
- }
- this._document.body.appendChild(loader);
- this._jsonpIconLoad$.pipe(filter((i) => i.name === icon.name && i.theme === icon.theme), take(1)).subscribe((i) => {
- subscriber.next(i);
- clean();
- });
- });
- }
- /**
- * Render a new `SVGElement` for a given `IconDefinition`, or make a copy from cache.
- * @param icon
- * @param twoToneColor
- */
- _loadSVGFromCacheOrCreateNew(icon, twoToneColor) {
- let svg;
- const pri = twoToneColor || this._twoToneColorPalette.primaryColor;
- const sec = getSecondaryColor(pri) || this._twoToneColorPalette.secondaryColor;
- const key = icon.theme === "twotone" ? withSuffixAndColor(icon.name, icon.theme, pri, sec) : icon.theme === void 0 ? icon.name : withSuffix(icon.name, icon.theme);
- const cached = this._svgRenderedDefinitions.get(key);
- if (cached) {
- svg = cached.icon;
- } else {
- svg = this._setSVGAttribute(this._colorizeSVGIcon(
- // Icons provided by ant design should be refined to remove preset colors.
- this._createSVGElementFromString(hasNamespace(icon.name) ? icon.icon : replaceFillColor(icon.icon)),
- icon.theme === "twotone",
- pri,
- sec
- ));
- this._svgRenderedDefinitions.set(key, __spreadProps(__spreadValues({}, icon), {
- icon: svg
- }));
- }
- return cloneSVG(svg);
- }
- _createSVGElementFromString(str) {
- const div = this._document.createElement("div");
- div.innerHTML = str;
- const svg = div.querySelector("svg");
- if (!svg) {
- throw SVGTagNotFoundError;
- }
- return svg;
- }
- _setSVGAttribute(svg) {
- this._renderer.setAttribute(svg, "width", "1em");
- this._renderer.setAttribute(svg, "height", "1em");
- return svg;
- }
- _colorizeSVGIcon(svg, twotone, pri, sec) {
- if (twotone) {
- const children = svg.childNodes;
- const length = children.length;
- for (let i = 0; i < length; i++) {
- const child = children[i];
- if (child.getAttribute("fill") === "secondaryColor") {
- this._renderer.setAttribute(child, "fill", sec);
- } else {
- this._renderer.setAttribute(child, "fill", pri);
- }
- }
- }
- this._renderer.setAttribute(svg, "fill", "currentColor");
- return svg;
- }
-};
-_IconService.ɵfac = function IconService_Factory(t) {
- return new (t || _IconService)(ɵɵinject(RendererFactory2), ɵɵinject(HttpBackend, 8), ɵɵinject(DOCUMENT, 8), ɵɵinject(DomSanitizer), ɵɵinject(ANT_ICONS, 8));
-};
-_IconService.ɵprov = ɵɵdefineInjectable({
- token: _IconService,
- factory: _IconService.ɵfac
-});
-var IconService = _IconService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IconService, [{
- type: Injectable
- }], () => [{
- type: RendererFactory2
- }, {
- type: HttpBackend,
- decorators: [{
- type: Optional
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: DomSanitizer
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [ANT_ICONS]
- }]
- }], null);
-})();
-function checkMeta(prev, after) {
- return prev.type === after.type && prev.theme === after.theme && prev.twoToneColor === after.twoToneColor;
-}
-var _IconDirective = class _IconDirective {
- constructor(_iconService, _elementRef, _renderer) {
- this._iconService = _iconService;
- this._elementRef = _elementRef;
- this._renderer = _renderer;
- }
- ngOnChanges(changes) {
- if (changes.type || changes.theme || changes.twoToneColor) {
- this._changeIcon();
- }
- }
- /**
- * Render a new icon in the current element. Remove the icon when `type` is falsy.
- */
- _changeIcon() {
- return new Promise((resolve) => {
- if (!this.type) {
- this._clearSVGElement();
- resolve(null);
- return;
- }
- const beforeMeta = this._getSelfRenderMeta();
- this._iconService.getRenderedContent(this._parseIconType(this.type, this.theme), this.twoToneColor).subscribe((svg) => {
- const afterMeta = this._getSelfRenderMeta();
- if (checkMeta(beforeMeta, afterMeta)) {
- this._setSVGElement(svg);
- resolve(svg);
- } else {
- resolve(null);
- }
- });
- });
- }
- _getSelfRenderMeta() {
- return {
- type: this.type,
- theme: this.theme,
- twoToneColor: this.twoToneColor
- };
- }
- /**
- * Parse a icon to the standard form, an `IconDefinition` or a string like 'account-book-fill` (with a theme suffixed).
- * If namespace is specified, ignore theme because it meaningless for users' icons.
- *
- * @param type
- * @param theme
- */
- _parseIconType(type, theme) {
- if (isIconDefinition(type)) {
- return type;
- } else {
- const [name2, namespace] = getNameAndNamespace(type);
- if (namespace) {
- return type;
- }
- if (alreadyHasAThemeSuffix(name2)) {
- if (!!theme) {
- warn2(`'type' ${name2} already gets a theme inside so 'theme' ${theme} would be ignored`);
- }
- return name2;
- } else {
- return withSuffix(name2, theme || this._iconService.defaultTheme);
- }
- }
- }
- _setSVGElement(svg) {
- this._clearSVGElement();
- this._renderer.appendChild(this._elementRef.nativeElement, svg);
- }
- _clearSVGElement() {
- const el = this._elementRef.nativeElement;
- const children = el.childNodes;
- const length = children.length;
- for (let i = length - 1; i >= 0; i--) {
- const child = children[i];
- if (child.tagName?.toLowerCase() === "svg") {
- this._renderer.removeChild(el, child);
- }
- }
- }
-};
-_IconDirective.ɵfac = function IconDirective_Factory(t) {
- return new (t || _IconDirective)(ɵɵdirectiveInject(IconService), ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(Renderer2));
-};
-_IconDirective.ɵdir = ɵɵdefineDirective({
- type: _IconDirective,
- selectors: [["", "antIcon", ""]],
- inputs: {
- type: "type",
- theme: "theme",
- twoToneColor: "twoToneColor"
- },
- features: [ɵɵNgOnChangesFeature]
-});
-var IconDirective = _IconDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IconDirective, [{
- type: Directive,
- args: [{
- selector: "[antIcon]"
- }]
- }], () => [{
- type: IconService
- }, {
- type: ElementRef
- }, {
- type: Renderer2
- }], {
- type: [{
- type: Input
- }],
- theme: [{
- type: Input
- }],
- twoToneColor: [{
- type: Input
- }]
- });
-})();
-var _IconModule = class _IconModule {
-};
-_IconModule.ɵfac = function IconModule_Factory(t) {
- return new (t || _IconModule)();
-};
-_IconModule.ɵmod = ɵɵdefineNgModule({
- type: _IconModule,
- declarations: [IconDirective],
- exports: [IconDirective]
-});
-_IconModule.ɵinj = ɵɵdefineInjector({
- providers: [IconService]
-});
-var IconModule = _IconModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IconModule, [{
- type: NgModule,
- args: [{
- exports: [IconDirective],
- declarations: [IconDirective],
- providers: [IconService]
- }]
- }], null, null);
-})();
-
-// node_modules/@ant-design/icons-angular/fesm2022/ant-design-icons-angular-icons.mjs
-var BarsOutline = {
- name: "bars",
- theme: "outline",
- icon: ' '
-};
-var CalendarOutline = {
- name: "calendar",
- theme: "outline",
- icon: ' '
-};
-var CaretDownFill = {
- name: "caret-down",
- theme: "fill",
- icon: ' '
-};
-var CaretUpFill = {
- name: "caret-up",
- theme: "fill",
- icon: ' '
-};
-var CheckCircleFill = {
- name: "check-circle",
- theme: "fill",
- icon: ' '
-};
-var CheckCircleOutline = {
- name: "check-circle",
- theme: "outline",
- icon: ' '
-};
-var CheckOutline = {
- name: "check",
- theme: "outline",
- icon: ' '
-};
-var CaretDownOutline = {
- name: "caret-down",
- theme: "outline",
- icon: ' '
-};
-var CloseCircleFill = {
- name: "close-circle",
- theme: "fill",
- icon: ' '
-};
-var CloseCircleOutline = {
- name: "close-circle",
- theme: "outline",
- icon: ' '
-};
-var ClockCircleOutline = {
- name: "clock-circle",
- theme: "outline",
- icon: ' '
-};
-var CloseOutline = {
- name: "close",
- theme: "outline",
- icon: ' '
-};
-var CaretUpOutline = {
- name: "caret-up",
- theme: "outline",
- icon: ' '
-};
-var CopyOutline = {
- name: "copy",
- theme: "outline",
- icon: ' '
-};
-var DeleteOutline = {
- name: "delete",
- theme: "outline",
- icon: ' '
-};
-var DoubleLeftOutline = {
- name: "double-left",
- theme: "outline",
- icon: ' '
-};
-var DoubleRightOutline = {
- name: "double-right",
- theme: "outline",
- icon: ' '
-};
-var DownOutline = {
- name: "down",
- theme: "outline",
- icon: ' '
-};
-var EditOutline = {
- name: "edit",
- theme: "outline",
- icon: ' '
-};
-var EllipsisOutline = {
- name: "ellipsis",
- theme: "outline",
- icon: ' '
-};
-var ExclamationCircleOutline = {
- name: "exclamation-circle",
- theme: "outline",
- icon: ' '
-};
-var ExclamationCircleFill = {
- name: "exclamation-circle",
- theme: "fill",
- icon: ' '
-};
-var FileFill = {
- name: "file",
- theme: "fill",
- icon: ' '
-};
-var FilterFill = {
- name: "filter",
- theme: "fill",
- icon: ' '
-};
-var InfoCircleOutline = {
- name: "info-circle",
- theme: "outline",
- icon: ' '
-};
-var InfoCircleFill = {
- name: "info-circle",
- theme: "fill",
- icon: ' '
-};
-var FileOutline = {
- name: "file",
- theme: "outline",
- icon: ' '
-};
-var LeftOutline = {
- name: "left",
- theme: "outline",
- icon: ' '
-};
-var LoadingOutline = {
- name: "loading",
- theme: "outline",
- icon: ' '
-};
-var EyeOutline = {
- name: "eye",
- theme: "outline",
- icon: ' '
-};
-var PaperClipOutline = {
- name: "paper-clip",
- theme: "outline",
- icon: ' '
-};
-var QuestionCircleOutline = {
- name: "question-circle",
- theme: "outline",
- icon: ' '
-};
-var RightOutline = {
- name: "right",
- theme: "outline",
- icon: ' '
-};
-var RotateLeftOutline = {
- name: "rotate-left",
- theme: "outline",
- icon: ' '
-};
-var RotateRightOutline = {
- name: "rotate-right",
- theme: "outline",
- icon: ' '
-};
-var SearchOutline = {
- name: "search",
- theme: "outline",
- icon: ' '
-};
-var StarFill = {
- name: "star",
- theme: "fill",
- icon: ' '
-};
-var SwapRightOutline = {
- name: "swap-right",
- theme: "outline",
- icon: ' '
-};
-var UploadOutline = {
- name: "upload",
- theme: "outline",
- icon: ' '
-};
-var UpOutline = {
- name: "up",
- theme: "outline",
- icon: ' '
-};
-var VerticalAlignTopOutline = {
- name: "vertical-align-top",
- theme: "outline",
- icon: ' '
-};
-var ZoomInOutline = {
- name: "zoom-in",
- theme: "outline",
- icon: ' '
-};
-var ZoomOutOutline = {
- name: "zoom-out",
- theme: "outline",
- icon: ' '
-};
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-icon.mjs
-var NZ_ICONS_USED_BY_ZORRO = [BarsOutline, CalendarOutline, CaretUpFill, CaretUpOutline, CaretDownFill, CaretDownOutline, CheckCircleFill, CheckCircleOutline, CheckOutline, ClockCircleOutline, CloseCircleOutline, CloseCircleFill, CloseOutline, CopyOutline, DeleteOutline, DoubleLeftOutline, DoubleRightOutline, DownOutline, EditOutline, EllipsisOutline, ExclamationCircleFill, ExclamationCircleOutline, EyeOutline, FileFill, FileOutline, FilterFill, InfoCircleFill, InfoCircleOutline, LeftOutline, LoadingOutline, PaperClipOutline, QuestionCircleOutline, RightOutline, RotateRightOutline, RotateLeftOutline, StarFill, SearchOutline, StarFill, UploadOutline, VerticalAlignTopOutline, UpOutline, SwapRightOutline, ZoomInOutline, ZoomOutOutline];
-var NZ_ICONS = new InjectionToken("nz_icons");
-var NZ_ICON_DEFAULT_TWOTONE_COLOR = new InjectionToken("nz_icon_default_twotone_color");
-var DEFAULT_TWOTONE_COLOR = "#1890ff";
-var _NzIconService = class _NzIconService extends IconService {
- get _disableDynamicLoading() {
- return !this.platform.isBrowser;
- }
- ngOnDestroy() {
- if (this.subscription) {
- this.subscription.unsubscribe();
- this.subscription = null;
- }
- }
- normalizeSvgElement(svg) {
- if (!svg.getAttribute("viewBox")) {
- this._renderer.setAttribute(svg, "viewBox", "0 0 1024 1024");
- }
- if (!svg.getAttribute("width") || !svg.getAttribute("height")) {
- this._renderer.setAttribute(svg, "width", "1em");
- this._renderer.setAttribute(svg, "height", "1em");
- }
- if (!svg.getAttribute("fill")) {
- this._renderer.setAttribute(svg, "fill", "currentColor");
- }
- }
- fetchFromIconfont(opt) {
- const {
- scriptUrl
- } = opt;
- if (this._document && !this.iconfontCache.has(scriptUrl)) {
- const script = this._renderer.createElement("script");
- this._renderer.setAttribute(script, "src", scriptUrl);
- this._renderer.setAttribute(script, "data-namespace", scriptUrl.replace(/^(https?|http):/g, ""));
- this._renderer.appendChild(this._document.body, script);
- this.iconfontCache.add(scriptUrl);
- }
- }
- createIconfontIcon(type) {
- return this._createSVGElementFromString(` `);
- }
- constructor(rendererFactory, sanitizer, nzConfigService, platform, handler, _document, icons) {
- super(rendererFactory, handler, _document, sanitizer, [...NZ_ICONS_USED_BY_ZORRO, ...icons || []]);
- this.nzConfigService = nzConfigService;
- this.platform = platform;
- this.configUpdated$ = new Subject();
- this.iconfontCache = /* @__PURE__ */ new Set();
- this.subscription = null;
- this.onConfigChange();
- this.configDefaultTwotoneColor();
- this.configDefaultTheme();
- }
- onConfigChange() {
- this.subscription = this.nzConfigService.getConfigChangeEventForComponent("icon").subscribe(() => {
- this.configDefaultTwotoneColor();
- this.configDefaultTheme();
- this.configUpdated$.next();
- });
- }
- configDefaultTheme() {
- const iconConfig = this.getConfig();
- this.defaultTheme = iconConfig.nzTheme || "outline";
- }
- configDefaultTwotoneColor() {
- const iconConfig = this.getConfig();
- const defaultTwotoneColor = iconConfig.nzTwotoneColor || DEFAULT_TWOTONE_COLOR;
- let primaryColor = DEFAULT_TWOTONE_COLOR;
- if (defaultTwotoneColor) {
- if (defaultTwotoneColor.startsWith("#")) {
- primaryColor = defaultTwotoneColor;
- } else {
- warn("Twotone color must be a hex color!");
- }
- }
- this.twoToneColor = {
- primaryColor
- };
- }
- getConfig() {
- return this.nzConfigService.getConfigForComponent("icon") || {};
- }
-};
-_NzIconService.ɵfac = function NzIconService_Factory(t) {
- return new (t || _NzIconService)(ɵɵinject(RendererFactory2), ɵɵinject(DomSanitizer), ɵɵinject(NzConfigService), ɵɵinject(Platform), ɵɵinject(HttpBackend, 8), ɵɵinject(DOCUMENT, 8), ɵɵinject(NZ_ICONS, 8));
-};
-_NzIconService.ɵprov = ɵɵdefineInjectable({
- token: _NzIconService,
- factory: _NzIconService.ɵfac,
- providedIn: "root"
-});
-var NzIconService = _NzIconService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzIconService, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: RendererFactory2
- }, {
- type: DomSanitizer
- }, {
- type: NzConfigService
- }, {
- type: Platform
- }, {
- type: HttpBackend,
- decorators: [{
- type: Optional
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [NZ_ICONS]
- }]
- }], null);
-})();
-var NZ_ICONS_PATCH = new InjectionToken("nz_icons_patch");
-var _NzIconPatchService = class _NzIconPatchService {
- constructor(extraIcons, rootIconService) {
- this.extraIcons = extraIcons;
- this.rootIconService = rootIconService;
- this.patched = false;
- }
- doPatch() {
- if (this.patched) {
- return;
- }
- this.extraIcons.forEach((iconDefinition) => this.rootIconService.addIcon(iconDefinition));
- this.patched = true;
- }
-};
-_NzIconPatchService.ɵfac = function NzIconPatchService_Factory(t) {
- return new (t || _NzIconPatchService)(ɵɵinject(NZ_ICONS_PATCH, 2), ɵɵinject(NzIconService));
-};
-_NzIconPatchService.ɵprov = ɵɵdefineInjectable({
- token: _NzIconPatchService,
- factory: _NzIconPatchService.ɵfac
-});
-var NzIconPatchService = _NzIconPatchService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzIconPatchService, [{
- type: Injectable
- }], () => [{
- type: void 0,
- decorators: [{
- type: Self
- }, {
- type: Inject,
- args: [NZ_ICONS_PATCH]
- }]
- }, {
- type: NzIconService
- }], null);
-})();
-var _NzIconDirective = class _NzIconDirective extends IconDirective {
- set nzSpin(value) {
- this.spin = value;
- }
- set nzType(value) {
- this.type = value;
- }
- set nzTheme(value) {
- this.theme = value;
- }
- set nzTwotoneColor(value) {
- this.twoToneColor = value;
- }
- set nzIconfont(value) {
- this.iconfont = value;
- }
- constructor(ngZone, changeDetectorRef, elementRef, iconService, renderer, iconPatch) {
- super(iconService, elementRef, renderer);
- this.ngZone = ngZone;
- this.changeDetectorRef = changeDetectorRef;
- this.iconService = iconService;
- this.renderer = renderer;
- this.cacheClassName = null;
- this.nzRotate = 0;
- this.spin = false;
- this.destroy$ = new Subject();
- if (iconPatch) {
- iconPatch.doPatch();
- }
- this.el = elementRef.nativeElement;
- }
- ngOnChanges(changes) {
- const {
- nzType,
- nzTwotoneColor,
- nzSpin,
- nzTheme,
- nzRotate
- } = changes;
- if (nzType || nzTwotoneColor || nzSpin || nzTheme) {
- this.changeIcon2();
- } else if (nzRotate) {
- this.handleRotate(this.el.firstChild);
- } else {
- this._setSVGElement(this.iconService.createIconfontIcon(`#${this.iconfont}`));
- }
- }
- ngOnInit() {
- this.renderer.setAttribute(this.el, "class", `anticon ${this.el.className}`.trim());
- }
- /**
- * If custom content is provided, try to normalize SVG elements.
- */
- ngAfterContentChecked() {
- if (!this.type) {
- const children = this.el.children;
- let length = children.length;
- if (!this.type && children.length) {
- while (length--) {
- const child = children[length];
- if (child.tagName.toLowerCase() === "svg") {
- this.iconService.normalizeSvgElement(child);
- }
- }
- }
- }
- }
- ngOnDestroy() {
- this.destroy$.next();
- }
- /**
- * Replacement of `changeIcon` for more modifications.
- */
- changeIcon2() {
- this.setClassName();
- this.ngZone.runOutsideAngular(() => {
- from(this._changeIcon()).pipe(takeUntil(this.destroy$)).subscribe({
- next: (svgOrRemove) => {
- this.ngZone.run(() => {
- this.changeDetectorRef.detectChanges();
- if (svgOrRemove) {
- this.setSVGData(svgOrRemove);
- this.handleSpin(svgOrRemove);
- this.handleRotate(svgOrRemove);
- }
- });
- },
- error: warn
- });
- });
- }
- handleSpin(svg) {
- if (this.spin || this.type === "loading") {
- this.renderer.addClass(svg, "anticon-spin");
- } else {
- this.renderer.removeClass(svg, "anticon-spin");
- }
- }
- handleRotate(svg) {
- if (this.nzRotate) {
- this.renderer.setAttribute(svg, "style", `transform: rotate(${this.nzRotate}deg)`);
- } else {
- this.renderer.removeAttribute(svg, "style");
- }
- }
- setClassName() {
- if (this.cacheClassName) {
- this.renderer.removeClass(this.el, this.cacheClassName);
- }
- this.cacheClassName = `anticon-${this.type}`;
- this.renderer.addClass(this.el, this.cacheClassName);
- }
- setSVGData(svg) {
- this.renderer.setAttribute(svg, "data-icon", this.type);
- this.renderer.setAttribute(svg, "aria-hidden", "true");
- }
-};
-_NzIconDirective.ɵfac = function NzIconDirective_Factory(t) {
- return new (t || _NzIconDirective)(ɵɵdirectiveInject(NgZone), ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(NzIconService), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(NzIconPatchService, 8));
-};
-_NzIconDirective.ɵdir = ɵɵdefineDirective({
- type: _NzIconDirective,
- selectors: [["", "nz-icon", ""]],
- hostVars: 2,
- hostBindings: function NzIconDirective_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵclassProp("anticon", true);
- }
- },
- inputs: {
- nzSpin: "nzSpin",
- nzRotate: "nzRotate",
- nzType: "nzType",
- nzTheme: "nzTheme",
- nzTwotoneColor: "nzTwotoneColor",
- nzIconfont: "nzIconfont"
- },
- exportAs: ["nzIcon"],
- standalone: true,
- features: [ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature]
-});
-var NzIconDirective = _NzIconDirective;
-__decorate([InputBoolean()], NzIconDirective.prototype, "nzSpin", null);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzIconDirective, [{
- type: Directive,
- args: [{
- selector: "[nz-icon]",
- exportAs: "nzIcon",
- host: {
- "[class.anticon]": "true"
- },
- standalone: true
- }]
- }], () => [{
- type: NgZone
- }, {
- type: ChangeDetectorRef
- }, {
- type: ElementRef
- }, {
- type: NzIconService
- }, {
- type: Renderer2
- }, {
- type: NzIconPatchService,
- decorators: [{
- type: Optional
- }]
- }], {
- nzSpin: [{
- type: Input
- }],
- nzRotate: [{
- type: Input
- }],
- nzType: [{
- type: Input
- }],
- nzTheme: [{
- type: Input
- }],
- nzTwotoneColor: [{
- type: Input
- }],
- nzIconfont: [{
- type: Input
- }]
- });
-})();
-var _NzIconModule = class _NzIconModule {
- static forRoot(icons) {
- return {
- ngModule: _NzIconModule,
- providers: [{
- provide: NZ_ICONS,
- useValue: icons
- }]
- };
- }
- static forChild(icons) {
- return {
- ngModule: _NzIconModule,
- providers: [NzIconPatchService, {
- provide: NZ_ICONS_PATCH,
- useValue: icons
- }]
- };
- }
-};
-_NzIconModule.ɵfac = function NzIconModule_Factory(t) {
- return new (t || _NzIconModule)();
-};
-_NzIconModule.ɵmod = ɵɵdefineNgModule({
- type: _NzIconModule,
- imports: [NzIconDirective],
- exports: [NzIconDirective]
-});
-_NzIconModule.ɵinj = ɵɵdefineInjector({});
-var NzIconModule = _NzIconModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzIconModule, [{
- type: NgModule,
- args: [{
- imports: [NzIconDirective],
- exports: [NzIconDirective]
- }]
- }], null, null);
-})();
-
-export {
- NZ_ICONS_USED_BY_ZORRO,
- NZ_ICONS,
- NZ_ICON_DEFAULT_TWOTONE_COLOR,
- DEFAULT_TWOTONE_COLOR,
- NzIconService,
- NZ_ICONS_PATCH,
- NzIconPatchService,
- NzIconDirective,
- NzIconModule
-};
-//# sourceMappingURL=chunk-VWMHIMW7.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-VWMHIMW7.js.map b/.angular/cache/17.0.7/vite/deps/chunk-VWMHIMW7.js.map
deleted file mode 100644
index 9724d2d..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-VWMHIMW7.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/@ant-design/colors/es/generate.js", "../../../../../node_modules/@ant-design/colors/es/index.js", "../../../../../node_modules/@ant-design/icons-angular/fesm2022/ant-design-icons-angular.mjs", "../../../../../node_modules/@ant-design/icons-angular/fesm2022/ant-design-icons-angular-icons.mjs", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-icon.mjs"],
- "sourcesContent": ["import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}];\n\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}", "import generate from \"./generate\";\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\nexport { generate, presetPalettes, presetDarkPalettes, presetPrimaryColors, red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta, grey, gray };", "import * as i0 from '@angular/core';\nimport { isDevMode, InjectionToken, SecurityContext, Injectable, Optional, Inject, Directive, Input, NgModule } from '@angular/core';\nimport { generate } from '@ant-design/colors';\nimport { DOCUMENT } from '@angular/common';\nimport * as i1 from '@angular/common/http';\nimport { HttpClient } from '@angular/common/http';\nimport { Subject, of, Observable } from 'rxjs';\nimport { map, tap, finalize, catchError, share, filter, take } from 'rxjs/operators';\nimport * as i2 from '@angular/platform-browser';\nconst ANT_ICON_ANGULAR_CONSOLE_PREFIX = '[@ant-design/icons-angular]:';\nfunction error(message) {\n console.error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX} ${message}.`);\n}\nfunction warn(message) {\n if (isDevMode()) {\n console.warn(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX} ${message}.`);\n }\n}\nfunction getSecondaryColor(primaryColor) {\n return generate(primaryColor)[0];\n}\nfunction withSuffix(name, theme) {\n switch (theme) {\n case 'fill':\n return `${name}-fill`;\n case 'outline':\n return `${name}-o`;\n case 'twotone':\n return `${name}-twotone`;\n case undefined:\n return name;\n default:\n throw new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}Theme \"${theme}\" is not a recognized theme!`);\n }\n}\nfunction withSuffixAndColor(name, theme, pri, sec) {\n return `${withSuffix(name, theme)}-${pri}-${sec}`;\n}\nfunction mapAbbrToTheme(abbr) {\n return abbr === 'o' ? 'outline' : abbr;\n}\nfunction alreadyHasAThemeSuffix(name) {\n return name.endsWith('-fill') || name.endsWith('-o') || name.endsWith('-twotone');\n}\nfunction isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && (typeof target.theme === 'string' || target.theme === undefined) && typeof target.icon === 'string';\n}\n/**\n * Get an `IconDefinition` object from abbreviation type, like `account-book-fill`.\n * @param str\n */\nfunction getIconDefinitionFromAbbr(str) {\n const arr = str.split('-');\n const theme = mapAbbrToTheme(arr.splice(arr.length - 1, 1)[0]);\n const name = arr.join('-');\n return {\n name,\n theme,\n icon: ''\n };\n}\nfunction cloneSVG(svg) {\n return svg.cloneNode(true);\n}\n/**\n * Parse inline SVG string and replace colors with placeholders. For twotone icons only.\n */\nfunction replaceFillColor(raw) {\n return raw.replace(/['\"]#333['\"]/g, '\"primaryColor\"').replace(/['\"]#E6E6E6['\"]/g, '\"secondaryColor\"').replace(/['\"]#D9D9D9['\"]/g, '\"secondaryColor\"').replace(/['\"]#D8D8D8['\"]/g, '\"secondaryColor\"');\n}\n/**\n * Split a name with namespace in it into a tuple like [ name, namespace ].\n */\nfunction getNameAndNamespace(type) {\n const split = type.split(':');\n switch (split.length) {\n case 1:\n return [type, ''];\n case 2:\n return [split[1], split[0]];\n default:\n throw new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}The icon type ${type} is not valid!`);\n }\n}\nfunction hasNamespace(type) {\n return getNameAndNamespace(type)[1] !== '';\n}\nfunction NameSpaceIsNotSpecifyError() {\n return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}Type should have a namespace. Try \"namespace:${name}\".`);\n}\nfunction IconNotFoundError(icon) {\n return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}the icon ${icon} does not exist or is not registered.`);\n}\nfunction HttpModuleNotImport() {\n error(`you need to import \"HttpClientModule\" to use dynamic importing.`);\n return null;\n}\nfunction UrlNotSafeError(url) {\n return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}The url \"${url}\" is unsafe.`);\n}\nfunction SVGTagNotFoundError() {\n return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX} tag not found.`);\n}\nfunction DynamicLoadingTimeoutError() {\n return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}Importing timeout error.`);\n}\nconst JSONP_HANDLER_NAME = '__ant_icon_load';\nconst ANT_ICONS = new InjectionToken('ant_icons');\nclass IconService {\n set twoToneColor({\n primaryColor,\n secondaryColor\n }) {\n this._twoToneColorPalette.primaryColor = primaryColor;\n this._twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n }\n get twoToneColor() {\n // Make a copy to avoid unexpected changes.\n return {\n ...this._twoToneColorPalette\n };\n }\n /**\n * Disable dynamic loading (support static loading only).\n */\n get _disableDynamicLoading() {\n return false;\n }\n constructor(_rendererFactory, _handler, _document, sanitizer, _antIcons) {\n this._rendererFactory = _rendererFactory;\n this._handler = _handler;\n this._document = _document;\n this.sanitizer = sanitizer;\n this._antIcons = _antIcons;\n this.defaultTheme = 'outline';\n /**\n * All icon definitions would be registered here.\n */\n this._svgDefinitions = new Map();\n /**\n * Cache all rendered icons. Icons are identified by name, theme,\n * and for twotone icons, primary color and secondary color.\n */\n this._svgRenderedDefinitions = new Map();\n this._inProgressFetches = new Map();\n /**\n * Url prefix for fetching inline SVG by dynamic importing.\n */\n this._assetsUrlRoot = '';\n this._twoToneColorPalette = {\n primaryColor: '#333333',\n secondaryColor: '#E6E6E6'\n };\n /** A flag indicates whether jsonp loading is enabled. */\n this._enableJsonpLoading = false;\n this._jsonpIconLoad$ = new Subject();\n this._renderer = this._rendererFactory.createRenderer(null, null);\n if (this._handler) {\n this._http = new HttpClient(this._handler);\n }\n if (this._antIcons) {\n this.addIcon(...this._antIcons);\n }\n }\n /**\n * Call this method to switch to jsonp like loading.\n */\n useJsonpLoading() {\n if (!this._enableJsonpLoading) {\n this._enableJsonpLoading = true;\n window[JSONP_HANDLER_NAME] = icon => {\n this._jsonpIconLoad$.next(icon);\n };\n } else {\n warn('You are already using jsonp loading.');\n }\n }\n /**\n * Change the prefix of the inline svg resources, so they could be deployed elsewhere, like CDN.\n * @param prefix\n */\n changeAssetsSource(prefix) {\n this._assetsUrlRoot = prefix.endsWith('/') ? prefix : prefix + '/';\n }\n /**\n * Add icons provided by ant design.\n * @param icons\n */\n addIcon(...icons) {\n icons.forEach(icon => {\n this._svgDefinitions.set(withSuffix(icon.name, icon.theme), icon);\n });\n }\n /**\n * Register an icon. Namespace is required.\n * @param type\n * @param literal\n */\n addIconLiteral(type, literal) {\n const [_, namespace] = getNameAndNamespace(type);\n if (!namespace) {\n throw NameSpaceIsNotSpecifyError();\n }\n this.addIcon({\n name: type,\n icon: literal\n });\n }\n /**\n * Remove all cache.\n */\n clear() {\n this._svgDefinitions.clear();\n this._svgRenderedDefinitions.clear();\n }\n /**\n * Get a rendered `SVGElement`.\n * @param icon\n * @param twoToneColor\n */\n getRenderedContent(icon, twoToneColor) {\n // If `icon` is a `IconDefinition`, go to the next step. If not, try to fetch it from cache.\n const definition = isIconDefinition(icon) ? icon : this._svgDefinitions.get(icon) || null;\n if (!definition && this._disableDynamicLoading) {\n throw IconNotFoundError(icon);\n }\n // If `icon` is a `IconDefinition` of successfully fetch, wrap it in an `Observable`.\n // Otherwise try to fetch it from remote.\n const $iconDefinition = definition ? of(definition) : this._loadIconDynamically(icon);\n // If finally get an `IconDefinition`, render and return it. Otherwise throw an error.\n return $iconDefinition.pipe(map(i => {\n if (!i) {\n throw IconNotFoundError(icon);\n }\n return this._loadSVGFromCacheOrCreateNew(i, twoToneColor);\n }));\n }\n getCachedIcons() {\n return this._svgDefinitions;\n }\n /**\n * Get raw svg and assemble a `IconDefinition` object.\n * @param type\n */\n _loadIconDynamically(type) {\n // If developer doesn't provide HTTP module nor enable jsonp loading, just throw an error.\n if (!this._http && !this._enableJsonpLoading) {\n return of(HttpModuleNotImport());\n }\n // If multi directive ask for the same icon at the same time,\n // request should only be fired once.\n let inProgress = this._inProgressFetches.get(type);\n if (!inProgress) {\n const [name, namespace] = getNameAndNamespace(type);\n // If the string has a namespace within, create a simple `IconDefinition`.\n const icon = namespace ? {\n name: type,\n icon: ''\n } : getIconDefinitionFromAbbr(name);\n const suffix = this._enableJsonpLoading ? '.js' : '.svg';\n const url = (namespace ? `${this._assetsUrlRoot}assets/${namespace}/${name}` : `${this._assetsUrlRoot}assets/${icon.theme}/${icon.name}`) + suffix;\n const safeUrl = this.sanitizer.sanitize(SecurityContext.URL, url);\n if (!safeUrl) {\n throw UrlNotSafeError(url);\n }\n const source = !this._enableJsonpLoading ? this._http.get(safeUrl, {\n responseType: 'text'\n }).pipe(map(literal => ({\n ...icon,\n icon: literal\n }))) : this._loadIconDynamicallyWithJsonp(icon, safeUrl);\n inProgress = source.pipe(tap(definition => this.addIcon(definition)), finalize(() => this._inProgressFetches.delete(type)), catchError(() => of(null)), share());\n this._inProgressFetches.set(type, inProgress);\n }\n return inProgress;\n }\n _loadIconDynamicallyWithJsonp(icon, url) {\n return new Observable(subscriber => {\n const loader = this._document.createElement('script');\n const timer = setTimeout(() => {\n clean();\n subscriber.error(DynamicLoadingTimeoutError());\n }, 6000);\n loader.src = url;\n function clean() {\n loader.parentNode.removeChild(loader);\n clearTimeout(timer);\n }\n this._document.body.appendChild(loader);\n this._jsonpIconLoad$.pipe(filter(i => i.name === icon.name && i.theme === icon.theme), take(1)).subscribe(i => {\n subscriber.next(i);\n clean();\n });\n });\n }\n /**\n * Render a new `SVGElement` for a given `IconDefinition`, or make a copy from cache.\n * @param icon\n * @param twoToneColor\n */\n _loadSVGFromCacheOrCreateNew(icon, twoToneColor) {\n let svg;\n const pri = twoToneColor || this._twoToneColorPalette.primaryColor;\n const sec = getSecondaryColor(pri) || this._twoToneColorPalette.secondaryColor;\n const key = icon.theme === 'twotone' ? withSuffixAndColor(icon.name, icon.theme, pri, sec) : icon.theme === undefined ? icon.name : withSuffix(icon.name, icon.theme);\n // Try to make a copy from cache.\n const cached = this._svgRenderedDefinitions.get(key);\n if (cached) {\n svg = cached.icon;\n } else {\n svg = this._setSVGAttribute(this._colorizeSVGIcon(\n // Icons provided by ant design should be refined to remove preset colors.\n this._createSVGElementFromString(hasNamespace(icon.name) ? icon.icon : replaceFillColor(icon.icon)), icon.theme === 'twotone', pri, sec));\n // Cache it.\n this._svgRenderedDefinitions.set(key, {\n ...icon,\n icon: svg\n });\n }\n return cloneSVG(svg);\n }\n _createSVGElementFromString(str) {\n const div = this._document.createElement('div');\n div.innerHTML = str;\n const svg = div.querySelector('svg');\n if (!svg) {\n throw SVGTagNotFoundError;\n }\n return svg;\n }\n _setSVGAttribute(svg) {\n this._renderer.setAttribute(svg, 'width', '1em');\n this._renderer.setAttribute(svg, 'height', '1em');\n return svg;\n }\n _colorizeSVGIcon(svg, twotone, pri, sec) {\n if (twotone) {\n const children = svg.childNodes;\n const length = children.length;\n for (let i = 0; i < length; i++) {\n const child = children[i];\n if (child.getAttribute('fill') === 'secondaryColor') {\n this._renderer.setAttribute(child, 'fill', sec);\n } else {\n this._renderer.setAttribute(child, 'fill', pri);\n }\n }\n }\n this._renderer.setAttribute(svg, 'fill', 'currentColor');\n return svg;\n }\n static {\n this.ɵfac = function IconService_Factory(t) {\n return new (t || IconService)(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.HttpBackend, 8), i0.ɵɵinject(DOCUMENT, 8), i0.ɵɵinject(i2.DomSanitizer), i0.ɵɵinject(ANT_ICONS, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: IconService,\n factory: IconService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IconService, [{\n type: Injectable\n }], () => [{\n type: i0.RendererFactory2\n }, {\n type: i1.HttpBackend,\n decorators: [{\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i2.DomSanitizer\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANT_ICONS]\n }]\n }], null);\n})();\nfunction checkMeta(prev, after) {\n return prev.type === after.type && prev.theme === after.theme && prev.twoToneColor === after.twoToneColor;\n}\nclass IconDirective {\n constructor(_iconService, _elementRef, _renderer) {\n this._iconService = _iconService;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n }\n ngOnChanges(changes) {\n if (changes.type || changes.theme || changes.twoToneColor) {\n this._changeIcon();\n }\n }\n /**\n * Render a new icon in the current element. Remove the icon when `type` is falsy.\n */\n _changeIcon() {\n return new Promise(resolve => {\n if (!this.type) {\n this._clearSVGElement();\n resolve(null);\n return;\n }\n const beforeMeta = this._getSelfRenderMeta();\n this._iconService.getRenderedContent(this._parseIconType(this.type, this.theme), this.twoToneColor).subscribe(svg => {\n // avoid race condition\n // see https://github.com/ant-design/ant-design-icons/issues/315\n const afterMeta = this._getSelfRenderMeta();\n if (checkMeta(beforeMeta, afterMeta)) {\n this._setSVGElement(svg);\n resolve(svg);\n } else {\n resolve(null);\n }\n });\n });\n }\n _getSelfRenderMeta() {\n return {\n type: this.type,\n theme: this.theme,\n twoToneColor: this.twoToneColor\n };\n }\n /**\n * Parse a icon to the standard form, an `IconDefinition` or a string like 'account-book-fill` (with a theme suffixed).\n * If namespace is specified, ignore theme because it meaningless for users' icons.\n *\n * @param type\n * @param theme\n */\n _parseIconType(type, theme) {\n if (isIconDefinition(type)) {\n return type;\n } else {\n const [name, namespace] = getNameAndNamespace(type);\n if (namespace) {\n return type;\n }\n if (alreadyHasAThemeSuffix(name)) {\n if (!!theme) {\n warn(`'type' ${name} already gets a theme inside so 'theme' ${theme} would be ignored`);\n }\n return name;\n } else {\n return withSuffix(name, theme || this._iconService.defaultTheme);\n }\n }\n }\n _setSVGElement(svg) {\n this._clearSVGElement();\n this._renderer.appendChild(this._elementRef.nativeElement, svg);\n }\n _clearSVGElement() {\n const el = this._elementRef.nativeElement;\n const children = el.childNodes;\n const length = children.length;\n for (let i = length - 1; i >= 0; i--) {\n const child = children[i];\n if (child.tagName?.toLowerCase() === 'svg') {\n this._renderer.removeChild(el, child);\n }\n }\n }\n static {\n this.ɵfac = function IconDirective_Factory(t) {\n return new (t || IconDirective)(i0.ɵɵdirectiveInject(IconService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: IconDirective,\n selectors: [[\"\", \"antIcon\", \"\"]],\n inputs: {\n type: \"type\",\n theme: \"theme\",\n twoToneColor: \"twoToneColor\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IconDirective, [{\n type: Directive,\n args: [{\n selector: '[antIcon]'\n }]\n }], () => [{\n type: IconService\n }, {\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }], {\n type: [{\n type: Input\n }],\n theme: [{\n type: Input\n }],\n twoToneColor: [{\n type: Input\n }]\n });\n})();\nclass IconModule {\n static {\n this.ɵfac = function IconModule_Factory(t) {\n return new (t || IconModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: IconModule,\n declarations: [IconDirective],\n exports: [IconDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [IconService]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IconModule, [{\n type: NgModule,\n args: [{\n exports: [IconDirective],\n declarations: [IconDirective],\n providers: [IconService]\n }]\n }], null, null);\n})();\nconst manifest = {\n fill: ['account-book', 'alert', 'alipay-circle', 'alipay-square', 'amazon-square', 'android', 'apple', 'amazon-circle', 'appstore', 'bank', 'backward', 'audio', 'behance-circle', 'behance-square', 'aliwangwang', 'box-plot', 'book', 'build', 'bulb', 'calculator', 'bug', 'calendar', 'caret-down', 'car', 'camera', 'caret-up', 'carry-out', 'caret-left', 'check-circle', 'check-square', 'clock-circle', 'chrome', 'close-circle', 'close-square', 'caret-right', 'cloud', 'code', 'codepen-circle', 'code-sandbox-square', 'codepen-square', 'ci-circle', 'bell', 'contacts', 'container', 'copyright-circle', 'copy', 'control', 'compass', 'credit-card', 'crown', 'database', 'delete', 'dashboard', 'diff', 'dislike', 'dingtalk-circle', 'dingtalk-square', 'dollar-circle', 'down-circle', 'down-square', 'dribbble-square', 'dribbble-circle', 'dropbox-circle', 'edit', 'dropbox-square', 'environment', 'euro-circle', 'code-sandbox-circle', 'eye', 'experiment', 'exclamation-circle', 'facebook', 'fast-backward', 'eye-invisible', 'file-add', 'fast-forward', 'file-excel', 'file-exclamation', 'file', 'file-image', 'api', 'file-pdf', 'file-ppt', 'file-text', 'file-markdown', 'file-unknown', 'file-word', 'file-zip', 'fire', 'filter', 'flag', 'folder-add', 'folder-open', 'forward', 'frown', 'funnel-plot', 'fund', 'format-painter', 'gift', 'customer-service', 'github', 'gitlab', 'golden', 'google-circle', 'gold', 'google-square', 'google-plus-circle', 'highlight', 'heart', 'hourglass', 'home', 'html5', 'folder', 'idcard', 'ie-circle', 'info-circle', 'instagram', 'insurance', 'hdd', 'like', 'layout', 'left-square', 'left-circle', 'linkedin', 'lock', 'mac-command', 'mail', 'medium-circle', 'interaction', 'medium-square', 'meh', 'ie-square', 'message', 'minus-circle', 'minus-square', 'mobile', 'money-collect', 'notification', 'pause-circle', 'pay-circle', 'picture', 'phone', 'pie-chart', 'play-square', 'play-circle', 'plus-circle', 'pound-circle', 'plus-square', 'profile', 'printer', 'project', 'pushpin', 'qq-circle', 'property-safety', 'question-circle', 'qq-square', 'read', 'reconciliation', 'red-envelope', 'reddit-circle', 'google-plus-square', 'reddit-square', 'rest', 'right-circle', 'right-square', 'robot', 'rocket', 'safety-certificate', 'medicine-box', 'schedule', 'save', 'security-scan', 'setting', 'shop', 'shopping', 'signal', 'sketch-circle', 'sketch-square', 'slack-square', 'skype', 'sliders', 'snippets', 'smile', 'sound', 'star', 'step-forward', 'stop', 'switcher', 'tag', 'tablet', 'taobao-circle', 'tags', 'taobao-square', 'thunderbolt', 'tool', 'step-backward', 'trademark-circle', 'trophy', 'twitter-circle', 'unlock', 'slack-circle', 'up-circle', 'twitter-square', 'usb', 'up-square', 'video-camera', 'wallet', 'weibo-circle', 'weibo-square', 'yahoo', 'zhihu-circle', 'warning', 'youtube', 'windows', 'wechat', 'zhihu-square', 'yuque', 'skin'],\n outline: ['account-book', 'alert', 'aim', 'alibaba', 'align-center', 'alipay-circle', 'align-right', 'alipay', 'api', 'aliwangwang', 'amazon', 'ant-cloud', 'appstore', 'appstore-add', 'apple', 'area-chart', 'arrow-right', 'audio-muted', 'arrows-alt', 'backward', 'audit', 'bar-chart', 'audio', 'bank', 'bars', 'arrow-left', 'arrow-up', 'bell', 'bold', 'behance', 'aliyun', 'arrow-down', 'behance-square', 'apartment', 'block', 'border-outer', 'barcode', 'border-horizontal', 'border-verticle', 'borderless-table', 'border', 'border-inner', 'border-top', 'bg-colors', 'border-left', 'branches', 'box-plot', 'bug', 'build', 'bulb', 'calculator', 'border-right', 'car', 'camera', 'calendar', 'caret-left', 'check-circle', 'ant-design', 'check', 'align-left', 'book', 'carry-out', 'caret-down', 'clear', 'chrome', 'close-circle', 'clock-circle', 'ci-circle', 'cloud-download', 'close', 'cloud-server', 'ci', 'cloud-sync', 'cloud', 'code-sandbox', 'check-square', 'cluster', 'cloud-upload', 'close-square', 'column-height', 'codepen', 'coffee', 'codepen-circle', 'code', 'compress', 'contacts', 'caret-up', 'compass', 'comment', 'border-bottom', 'container', 'caret-right', 'copy', 'column-width', 'control', 'database', 'crown', 'delete-column', 'delete', 'dashboard', 'dash', 'deployment-unit', 'desktop', 'diff', 'delivered-procedure', 'dingtalk', 'dingding', 'delete-row', 'credit-card', 'dollar-circle', 'dislike', 'double-left', 'dot-chart', 'dollar', 'copyright', 'double-right', 'down-circle', 'down', 'download', 'down-square', 'drag', 'dropbox', 'dribbble-square', 'edit', 'ellipsis', 'dribbble', 'enter', 'environment', 'euro-circle', 'expand-alt', 'expand', 'customer-service', 'exception', 'exclamation-circle', 'exclamation', 'euro', 'eye-invisible', 'export', 'facebook', 'fast-backward', 'fast-forward', 'field-number', 'field-string', 'field-time', 'file-add', 'fall', 'file-done', 'file-excel', 'file-exclamation', 'field-binary', 'file-gif', 'file-jpg', 'file-markdown', 'file-image', 'file-pdf', 'file-search', 'file-ppt', 'file-protect', 'file-unknown', 'file-text', 'file-sync', 'filter', 'file-word', 'file-zip', 'flag', 'fire', 'folder-add', 'folder', 'font-colors', 'fork', 'folder-view', 'form', 'folder-open', 'font-size', 'forward', 'experiment', 'fullscreen', 'function', 'fullscreen-exit', 'gateway', 'fund-view', 'format-painter', 'gift', 'gif', 'fund-projection-screen', 'funnel-plot', 'fund', 'global', 'frown', 'gold', 'github', 'google', 'google-plus', 'hdd', 'heart', 'android', 'heat-map', 'group', 'holder', 'home', 'highlight', 'html5', 'idcard', 'hourglass', 'copyright-circle', 'info-circle', 'info', 'insert-row-above', 'inbox', 'insert-row-left', 'import', 'instagram', 'key', 'insert-row-below', 'insurance', 'interaction', 'insert-row-right', 'left-circle', 'laptop', 'issues-close', 'italic', 'file', 'layout', 'left', 'left-square', 'line-height', 'like', 'link', 'linkedin', 'line-chart', 'loading-3-quarters', 'line', 'logout', 'lock', 'login', 'mail', 'mac-command', 'loading', 'console-sql', 'man', 'medicine-box', 'eye', 'meh', 'menu-unfold', 'medium', 'message', 'merge-cells', 'menu-fold', 'minus-circle', 'ie', 'disconnect', 'money-collect', 'monitor', 'minus', 'node-collapse', 'menu', 'node-expand', 'notification', 'number', 'gitlab', 'paper-clip', 'pause', 'phone', 'partition', 'one-to-one', 'pause-circle', 'ordered-list', 'pic-center', 'pay-circle', 'percentage', 'picture', 'minus-square', 'pie-chart', 'pic-left', 'pic-right', 'plus-circle', 'plus', 'plus-square', 'pound-circle', 'play-square', 'poweroff', 'pound', 'project', 'printer', 'property-safety', 'mobile', 'qq', 'pushpin', 'pull-request', 'profile', 'radius-bottomleft', 'question-circle', 'qrcode', 'radar-chart', 'reconciliation', 'radius-upright', 'question', 'read', 'red-envelope', 'radius-bottomright', 'radius-setting', 'reddit', 'redo', 'more', 'node-index', 'right-circle', 'right', 'reload', 'right-square', 'rocket', 'rotate-left', 'robot', 'safety', 'save', 'rotate-right', 'rollback', 'scan', 'schedule', 'safety-certificate', 'scissor', 'send', 'shake', 'share-alt', 'search', 'security-scan', 'radius-upleft', 'history', 'rest', 'shopping', 'medium-workmark', 'shrink', 'sketch', 'skype', 'retweet', 'slack', 'slack-square', 'sisternode', 'sliders', 'shop', 'small-dash', 'smile', 'snippets', 'shopping-cart', 'solution', 'sort-ascending', 'split-cells', 'play-circle', 'star', 'step-backward', 'strikethrough', 'step-forward', 'rise', 'stock', 'stop', 'swap-left', 'switcher', 'swap', 'subnode', 'swap-right', 'sync', 'table', 'skin', 'tag', 'taobao', 'tags', 'team', 'thunderbolt', 'taobao-circle', 'tool', 'trademark-circle', 'to-top', 'trademark', 'transaction', 'trophy', 'sound', 'underline', 'twitter', 'unlock', 'undo', 'setting', 'ungroup', 'select', 'up-circle', 'up-square', 'unordered-list', 'upload', 'up', 'tablet', 'user-delete', 'user', 'usergroup-delete', 'user-switch', 'verified', 'vertical-align-middle', 'vertical-align-top', 'video-camera-add', 'vertical-align-bottom', 'vertical-right', 'vertical-left', 'usb', 'wallet', 'video-camera', 'weibo-square', 'weibo', 'wechat', 'weibo-circle', 'usergroup-add', 'whats-app', 'woman', 'translation', 'windows', 'wifi', 'yahoo', 'yuque', 'warning', 'zoom-in', 'sort-descending', 'youtube', 'zoom-out', 'zhihu', 'user-add'],\n twotone: ['alert', 'appstore', 'audio', 'bank', 'account-book', 'book', 'box-plot', 'bug', 'build', 'calculator', 'calendar', 'bulb', 'camera', 'car', 'carry-out', 'check-circle', 'check-square', 'ci', 'clock-circle', 'close-circle', 'ci-circle', 'bell', 'cloud', 'close-square', 'code', 'contacts', 'container', 'copyright-circle', 'control', 'credit-card', 'crown', 'compass', 'copyright', 'customer-service', 'delete', 'dashboard', 'database', 'api', 'copy', 'diff', 'dislike', 'dollar-circle', 'dollar', 'down-square', 'edit', 'environment', 'euro', 'exclamation-circle', 'down-circle', 'eye', 'experiment', 'file-excel', 'file-exclamation', 'file-add', 'file-image', 'file-markdown', 'file-pdf', 'file-ppt', 'file-text', 'file-zip', 'file', 'file-word', 'file-unknown', 'fire', 'filter', 'eye-invisible', 'flag', 'folder-add', 'folder', 'folder-open', 'fund', 'frown', 'funnel-plot', 'gift', 'gold', 'hdd', 'heart', 'euro-circle', 'highlight', 'idcard', 'hourglass', 'html5', 'home', 'info-circle', 'interaction', 'layout', 'left-square', 'left-circle', 'like', 'lock', 'mail', 'medicine-box', 'message', 'meh', 'minus-circle', 'mobile', 'minus-square', 'money-collect', 'pause-circle', 'notification', 'phone', 'pie-chart', 'play-circle', 'plus-circle', 'picture', 'play-square', 'plus-square', 'pound-circle', 'project', 'profile', 'printer', 'pushpin', 'reconciliation', 'property-safety', 'right-circle', 'red-envelope', 'right-square', 'rocket', 'insurance', 'question-circle', 'save', 'schedule', 'safety-certificate', 'security-scan', 'setting', 'shop', 'rest', 'skin', 'sliders', 'sound', 'smile', 'shopping', 'star', 'stop', 'switcher', 'tag', 'tags', 'tablet', 'thunderbolt', 'tool', 'trademark-circle', 'trophy', 'unlock', 'up-circle', 'usb', 'video-camera', 'warning', 'wallet', 'up-square', 'snippets']\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ANT_ICONS, ANT_ICON_ANGULAR_CONSOLE_PREFIX, DynamicLoadingTimeoutError, HttpModuleNotImport, IconDirective, IconModule, IconNotFoundError, IconService, NameSpaceIsNotSpecifyError, SVGTagNotFoundError, UrlNotSafeError, alreadyHasAThemeSuffix, cloneSVG, error, getIconDefinitionFromAbbr, getNameAndNamespace, getSecondaryColor, hasNamespace, isIconDefinition, manifest, mapAbbrToTheme, replaceFillColor, warn, withSuffix, withSuffixAndColor };\n", "const AccountBookOutline = {\n name: 'account-book',\n theme: 'outline',\n icon: ' '\n};\n\nconst AccountBookFill = {\n name: 'account-book',\n theme: 'fill',\n icon: ' '\n};\n\nconst AlertOutline = {\n name: 'alert',\n theme: 'outline',\n icon: ' '\n};\n\nconst AimOutline = {\n name: 'aim',\n theme: 'outline',\n icon: ' '\n};\n\nconst AlibabaOutline = {\n name: 'alibaba',\n theme: 'outline',\n icon: ' '\n};\n\nconst AlertFill = {\n name: 'alert',\n theme: 'fill',\n icon: ' '\n};\n\nconst AlignCenterOutline = {\n name: 'align-center',\n theme: 'outline',\n icon: ' '\n};\n\nconst AlertTwoTone = {\n name: 'alert',\n theme: 'twotone',\n icon: ' '\n};\n\nconst AlipayCircleFill = {\n name: 'alipay-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst AlipaySquareFill = {\n name: 'alipay-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst AlipayCircleOutline = {\n name: 'alipay-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst AlignRightOutline = {\n name: 'align-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst AmazonSquareFill = {\n name: 'amazon-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst AlipayOutline = {\n name: 'alipay',\n theme: 'outline',\n icon: ' '\n};\n\nconst ApiOutline = {\n name: 'api',\n theme: 'outline',\n icon: ' '\n};\n\nconst AliwangwangOutline = {\n name: 'aliwangwang',\n theme: 'outline',\n icon: ' '\n};\n\nconst AmazonOutline = {\n name: 'amazon',\n theme: 'outline',\n icon: ' '\n};\n\nconst AndroidFill = {\n name: 'android',\n theme: 'fill',\n icon: ' '\n};\n\nconst AntCloudOutline = {\n name: 'ant-cloud',\n theme: 'outline',\n icon: ' '\n};\n\nconst AppleFill = {\n name: 'apple',\n theme: 'fill',\n icon: ' '\n};\n\nconst AmazonCircleFill = {\n name: 'amazon-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst AppstoreOutline = {\n name: 'appstore',\n theme: 'outline',\n icon: ' '\n};\n\nconst AppstoreAddOutline = {\n name: 'appstore-add',\n theme: 'outline',\n icon: ' '\n};\n\nconst AppleOutline = {\n name: 'apple',\n theme: 'outline',\n icon: ' '\n};\n\nconst AreaChartOutline = {\n name: 'area-chart',\n theme: 'outline',\n icon: ' '\n};\n\nconst AppstoreTwoTone = {\n name: 'appstore',\n theme: 'twotone',\n icon: ' '\n};\n\nconst AppstoreFill = {\n name: 'appstore',\n theme: 'fill',\n icon: ' '\n};\n\nconst ArrowRightOutline = {\n name: 'arrow-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst AudioMutedOutline = {\n name: 'audio-muted',\n theme: 'outline',\n icon: ' '\n};\n\nconst ArrowsAltOutline = {\n name: 'arrows-alt',\n theme: 'outline',\n icon: ' '\n};\n\nconst BackwardOutline = {\n name: 'backward',\n theme: 'outline',\n icon: ' '\n};\n\nconst AuditOutline = {\n name: 'audit',\n theme: 'outline',\n icon: ' '\n};\n\nconst BarChartOutline = {\n name: 'bar-chart',\n theme: 'outline',\n icon: ' '\n};\n\nconst BankFill = {\n name: 'bank',\n theme: 'fill',\n icon: ' '\n};\n\nconst AudioOutline = {\n name: 'audio',\n theme: 'outline',\n icon: ' '\n};\n\nconst AudioTwoTone = {\n name: 'audio',\n theme: 'twotone',\n icon: ' '\n};\n\nconst BankOutline = {\n name: 'bank',\n theme: 'outline',\n icon: ' '\n};\n\nconst BackwardFill = {\n name: 'backward',\n theme: 'fill',\n icon: ' '\n};\n\nconst BarsOutline = {\n name: 'bars',\n theme: 'outline',\n icon: ' '\n};\n\nconst ArrowLeftOutline = {\n name: 'arrow-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst ArrowUpOutline = {\n name: 'arrow-up',\n theme: 'outline',\n icon: ' '\n};\n\nconst BankTwoTone = {\n name: 'bank',\n theme: 'twotone',\n icon: ' '\n};\n\nconst BellOutline = {\n name: 'bell',\n theme: 'outline',\n icon: ' '\n};\n\nconst AudioFill = {\n name: 'audio',\n theme: 'fill',\n icon: ' '\n};\n\nconst BoldOutline = {\n name: 'bold',\n theme: 'outline',\n icon: ' '\n};\n\nconst BehanceOutline = {\n name: 'behance',\n theme: 'outline',\n icon: ' '\n};\n\nconst BehanceCircleFill = {\n name: 'behance-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst AliyunOutline = {\n name: 'aliyun',\n theme: 'outline',\n icon: ' '\n};\n\nconst BehanceSquareFill = {\n name: 'behance-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst AccountBookTwoTone = {\n name: 'account-book',\n theme: 'twotone',\n icon: ' '\n};\n\nconst AliwangwangFill = {\n name: 'aliwangwang',\n theme: 'fill',\n icon: ' '\n};\n\nconst ArrowDownOutline = {\n name: 'arrow-down',\n theme: 'outline',\n icon: ' '\n};\n\nconst BehanceSquareOutline = {\n name: 'behance-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst ApartmentOutline = {\n name: 'apartment',\n theme: 'outline',\n icon: ' '\n};\n\nconst BlockOutline = {\n name: 'block',\n theme: 'outline',\n icon: ' '\n};\n\nconst BorderOuterOutline = {\n name: 'border-outer',\n theme: 'outline',\n icon: ' '\n};\n\nconst BarcodeOutline = {\n name: 'barcode',\n theme: 'outline',\n icon: ' '\n};\n\nconst BookTwoTone = {\n name: 'book',\n theme: 'twotone',\n icon: ' '\n};\n\nconst BorderHorizontalOutline = {\n name: 'border-horizontal',\n theme: 'outline',\n icon: ' '\n};\n\nconst BorderVerticleOutline = {\n name: 'border-verticle',\n theme: 'outline',\n icon: ' '\n};\n\nconst BorderlessTableOutline = {\n name: 'borderless-table',\n theme: 'outline',\n icon: ' '\n};\n\nconst BorderOutline = {\n name: 'border',\n theme: 'outline',\n icon: ' '\n};\n\nconst BorderInnerOutline = {\n name: 'border-inner',\n theme: 'outline',\n icon: ' '\n};\n\nconst BorderTopOutline = {\n name: 'border-top',\n theme: 'outline',\n icon: ' '\n};\n\nconst BgColorsOutline = {\n name: 'bg-colors',\n theme: 'outline',\n icon: ' '\n};\n\nconst BoxPlotFill = {\n name: 'box-plot',\n theme: 'fill',\n icon: ' '\n};\n\nconst BorderLeftOutline = {\n name: 'border-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst BranchesOutline = {\n name: 'branches',\n theme: 'outline',\n icon: ' '\n};\n\nconst BoxPlotTwoTone = {\n name: 'box-plot',\n theme: 'twotone',\n icon: ' '\n};\n\nconst BoxPlotOutline = {\n name: 'box-plot',\n theme: 'outline',\n icon: ' '\n};\n\nconst BookFill = {\n name: 'book',\n theme: 'fill',\n icon: ' '\n};\n\nconst BuildFill = {\n name: 'build',\n theme: 'fill',\n icon: ' '\n};\n\nconst BulbFill = {\n name: 'bulb',\n theme: 'fill',\n icon: ' '\n};\n\nconst BugOutline = {\n name: 'bug',\n theme: 'outline',\n icon: ' '\n};\n\nconst BuildOutline = {\n name: 'build',\n theme: 'outline',\n icon: ' '\n};\n\nconst BugTwoTone = {\n name: 'bug',\n theme: 'twotone',\n icon: ' '\n};\n\nconst BulbOutline = {\n name: 'bulb',\n theme: 'outline',\n icon: ' '\n};\n\nconst CalculatorFill = {\n name: 'calculator',\n theme: 'fill',\n icon: ' '\n};\n\nconst BuildTwoTone = {\n name: 'build',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CalculatorTwoTone = {\n name: 'calculator',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CalendarTwoTone = {\n name: 'calendar',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CalculatorOutline = {\n name: 'calculator',\n theme: 'outline',\n icon: ' '\n};\n\nconst BulbTwoTone = {\n name: 'bulb',\n theme: 'twotone',\n icon: ' '\n};\n\nconst BugFill = {\n name: 'bug',\n theme: 'fill',\n icon: ' '\n};\n\nconst BorderRightOutline = {\n name: 'border-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst CarOutline = {\n name: 'car',\n theme: 'outline',\n icon: ' '\n};\n\nconst CalendarFill = {\n name: 'calendar',\n theme: 'fill',\n icon: ' '\n};\n\nconst CameraOutline = {\n name: 'camera',\n theme: 'outline',\n icon: ' '\n};\n\nconst CalendarOutline = {\n name: 'calendar',\n theme: 'outline',\n icon: ' '\n};\n\nconst CaretDownFill = {\n name: 'caret-down',\n theme: 'fill',\n icon: ' '\n};\n\nconst CarFill = {\n name: 'car',\n theme: 'fill',\n icon: ' '\n};\n\nconst CameraTwoTone = {\n name: 'camera',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CameraFill = {\n name: 'camera',\n theme: 'fill',\n icon: ' '\n};\n\nconst CarTwoTone = {\n name: 'car',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CaretUpFill = {\n name: 'caret-up',\n theme: 'fill',\n icon: ' '\n};\n\nconst CarryOutFill = {\n name: 'carry-out',\n theme: 'fill',\n icon: ' '\n};\n\nconst CaretLeftFill = {\n name: 'caret-left',\n theme: 'fill',\n icon: ' '\n};\n\nconst CaretLeftOutline = {\n name: 'caret-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst CarryOutTwoTone = {\n name: 'carry-out',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CheckCircleFill = {\n name: 'check-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst CheckCircleOutline = {\n name: 'check-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst CheckCircleTwoTone = {\n name: 'check-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst AntDesignOutline = {\n name: 'ant-design',\n theme: 'outline',\n icon: ' '\n};\n\nconst CheckOutline = {\n name: 'check',\n theme: 'outline',\n icon: ' '\n};\n\nconst AlignLeftOutline = {\n name: 'align-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst CheckSquareTwoTone = {\n name: 'check-square',\n theme: 'twotone',\n icon: ' '\n};\n\nconst BookOutline = {\n name: 'book',\n theme: 'outline',\n icon: ' '\n};\n\nconst CheckSquareFill = {\n name: 'check-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst CarryOutOutline = {\n name: 'carry-out',\n theme: 'outline',\n icon: ' '\n};\n\nconst CaretDownOutline = {\n name: 'caret-down',\n theme: 'outline',\n icon: ' '\n};\n\nconst CiTwoTone = {\n name: 'ci',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ClockCircleFill = {\n name: 'clock-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst ChromeFill = {\n name: 'chrome',\n theme: 'fill',\n icon: ' '\n};\n\nconst ClockCircleTwoTone = {\n name: 'clock-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ClearOutline = {\n name: 'clear',\n theme: 'outline',\n icon: ' '\n};\n\nconst CloseCircleFill = {\n name: 'close-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst ChromeOutline = {\n name: 'chrome',\n theme: 'outline',\n icon: ' '\n};\n\nconst CloseCircleOutline = {\n name: 'close-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst ClockCircleOutline = {\n name: 'clock-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst CloseSquareFill = {\n name: 'close-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst CiCircleOutline = {\n name: 'ci-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst CloseCircleTwoTone = {\n name: 'close-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CiCircleTwoTone = {\n name: 'ci-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst BellTwoTone = {\n name: 'bell',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CaretRightFill = {\n name: 'caret-right',\n theme: 'fill',\n icon: ' '\n};\n\nconst CloudDownloadOutline = {\n name: 'cloud-download',\n theme: 'outline',\n icon: ' '\n};\n\nconst CloseOutline = {\n name: 'close',\n theme: 'outline',\n icon: ' '\n};\n\nconst CloudTwoTone = {\n name: 'cloud',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CloudServerOutline = {\n name: 'cloud-server',\n theme: 'outline',\n icon: ' '\n};\n\nconst CiOutline = {\n name: 'ci',\n theme: 'outline',\n icon: ' '\n};\n\nconst CloudFill = {\n name: 'cloud',\n theme: 'fill',\n icon: ' '\n};\n\nconst CloseSquareTwoTone = {\n name: 'close-square',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CloudSyncOutline = {\n name: 'cloud-sync',\n theme: 'outline',\n icon: ' '\n};\n\nconst CloudOutline = {\n name: 'cloud',\n theme: 'outline',\n icon: ' '\n};\n\nconst CodeFill = {\n name: 'code',\n theme: 'fill',\n icon: ' '\n};\n\nconst CodepenCircleFill = {\n name: 'codepen-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst CodeSandboxOutline = {\n name: 'code-sandbox',\n theme: 'outline',\n icon: ' '\n};\n\nconst CheckSquareOutline = {\n name: 'check-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst ClusterOutline = {\n name: 'cluster',\n theme: 'outline',\n icon: ' '\n};\n\nconst CodeSandboxSquareFill = {\n name: 'code-sandbox-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst CloudUploadOutline = {\n name: 'cloud-upload',\n theme: 'outline',\n icon: ' '\n};\n\nconst CloseSquareOutline = {\n name: 'close-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst CodepenSquareFill = {\n name: 'codepen-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst ColumnHeightOutline = {\n name: 'column-height',\n theme: 'outline',\n icon: ' '\n};\n\nconst CodepenOutline = {\n name: 'codepen',\n theme: 'outline',\n icon: ' '\n};\n\nconst CoffeeOutline = {\n name: 'coffee',\n theme: 'outline',\n icon: ' '\n};\n\nconst CodepenCircleOutline = {\n name: 'codepen-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst CodeTwoTone = {\n name: 'code',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CiCircleFill = {\n name: 'ci-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst CodeOutline = {\n name: 'code',\n theme: 'outline',\n icon: ' '\n};\n\nconst CompressOutline = {\n name: 'compress',\n theme: 'outline',\n icon: ' '\n};\n\nconst ContactsTwoTone = {\n name: 'contacts',\n theme: 'twotone',\n icon: ' '\n};\n\nconst BellFill = {\n name: 'bell',\n theme: 'fill',\n icon: ' '\n};\n\nconst ContactsOutline = {\n name: 'contacts',\n theme: 'outline',\n icon: ' '\n};\n\nconst ContactsFill = {\n name: 'contacts',\n theme: 'fill',\n icon: ' '\n};\n\nconst CaretUpOutline = {\n name: 'caret-up',\n theme: 'outline',\n icon: ' '\n};\n\nconst CompassOutline = {\n name: 'compass',\n theme: 'outline',\n icon: ' '\n};\n\nconst ContainerFill = {\n name: 'container',\n theme: 'fill',\n icon: ' '\n};\n\nconst CommentOutline = {\n name: 'comment',\n theme: 'outline',\n icon: ' '\n};\n\nconst BorderBottomOutline = {\n name: 'border-bottom',\n theme: 'outline',\n icon: ' '\n};\n\nconst ContainerTwoTone = {\n name: 'container',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ContainerOutline = {\n name: 'container',\n theme: 'outline',\n icon: ' '\n};\n\nconst CaretRightOutline = {\n name: 'caret-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst CopyrightCircleFill = {\n name: 'copyright-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst CopyFill = {\n name: 'copy',\n theme: 'fill',\n icon: ' '\n};\n\nconst ControlFill = {\n name: 'control',\n theme: 'fill',\n icon: ' '\n};\n\nconst CompassFill = {\n name: 'compass',\n theme: 'fill',\n icon: ' '\n};\n\nconst CopyrightCircleTwoTone = {\n name: 'copyright-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ControlTwoTone = {\n name: 'control',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CreditCardTwoTone = {\n name: 'credit-card',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CopyOutline = {\n name: 'copy',\n theme: 'outline',\n icon: ' '\n};\n\nconst ColumnWidthOutline = {\n name: 'column-width',\n theme: 'outline',\n icon: ' '\n};\n\nconst CrownTwoTone = {\n name: 'crown',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CreditCardFill = {\n name: 'credit-card',\n theme: 'fill',\n icon: ' '\n};\n\nconst ControlOutline = {\n name: 'control',\n theme: 'outline',\n icon: ' '\n};\n\nconst CrownFill = {\n name: 'crown',\n theme: 'fill',\n icon: ' '\n};\n\nconst DatabaseFill = {\n name: 'database',\n theme: 'fill',\n icon: ' '\n};\n\nconst DatabaseOutline = {\n name: 'database',\n theme: 'outline',\n icon: ' '\n};\n\nconst CrownOutline = {\n name: 'crown',\n theme: 'outline',\n icon: ' '\n};\n\nconst DeleteColumnOutline = {\n name: 'delete-column',\n theme: 'outline',\n icon: ' '\n};\n\nconst CompassTwoTone = {\n name: 'compass',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CopyrightTwoTone = {\n name: 'copyright',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DeleteOutline = {\n name: 'delete',\n theme: 'outline',\n icon: ' '\n};\n\nconst DeleteFill = {\n name: 'delete',\n theme: 'fill',\n icon: ' '\n};\n\nconst DashboardOutline = {\n name: 'dashboard',\n theme: 'outline',\n icon: ' '\n};\n\nconst DashboardFill = {\n name: 'dashboard',\n theme: 'fill',\n icon: ' '\n};\n\nconst CustomerServiceTwoTone = {\n name: 'customer-service',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DeleteTwoTone = {\n name: 'delete',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DashboardTwoTone = {\n name: 'dashboard',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DashOutline = {\n name: 'dash',\n theme: 'outline',\n icon: ' '\n};\n\nconst DiffFill = {\n name: 'diff',\n theme: 'fill',\n icon: ' '\n};\n\nconst DatabaseTwoTone = {\n name: 'database',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ApiTwoTone = {\n name: 'api',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DeploymentUnitOutline = {\n name: 'deployment-unit',\n theme: 'outline',\n icon: ' '\n};\n\nconst DesktopOutline = {\n name: 'desktop',\n theme: 'outline',\n icon: ' '\n};\n\nconst DiffOutline = {\n name: 'diff',\n theme: 'outline',\n icon: ' '\n};\n\nconst CopyTwoTone = {\n name: 'copy',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DiffTwoTone = {\n name: 'diff',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DeliveredProcedureOutline = {\n name: 'delivered-procedure',\n theme: 'outline',\n icon: ' '\n};\n\nconst DislikeFill = {\n name: 'dislike',\n theme: 'fill',\n icon: ' '\n};\n\nconst DingtalkOutline = {\n name: 'dingtalk',\n theme: 'outline',\n icon: ' '\n};\n\nconst DingdingOutline = {\n name: 'dingding',\n theme: 'outline',\n icon: ' '\n};\n\nconst DeleteRowOutline = {\n name: 'delete-row',\n theme: 'outline',\n icon: ' '\n};\n\nconst DingtalkCircleFill = {\n name: 'dingtalk-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst CreditCardOutline = {\n name: 'credit-card',\n theme: 'outline',\n icon: ' '\n};\n\nconst DingtalkSquareFill = {\n name: 'dingtalk-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst DislikeTwoTone = {\n name: 'dislike',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DollarCircleOutline = {\n name: 'dollar-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst DollarCircleFill = {\n name: 'dollar-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst DislikeOutline = {\n name: 'dislike',\n theme: 'outline',\n icon: ' '\n};\n\nconst DoubleLeftOutline = {\n name: 'double-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst DotChartOutline = {\n name: 'dot-chart',\n theme: 'outline',\n icon: ' '\n};\n\nconst DollarCircleTwoTone = {\n name: 'dollar-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DollarOutline = {\n name: 'dollar',\n theme: 'outline',\n icon: ' '\n};\n\nconst DollarTwoTone = {\n name: 'dollar',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DownCircleFill = {\n name: 'down-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst DownSquareFill = {\n name: 'down-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst CopyrightOutline = {\n name: 'copyright',\n theme: 'outline',\n icon: ' '\n};\n\nconst DoubleRightOutline = {\n name: 'double-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst DownCircleOutline = {\n name: 'down-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst DownOutline = {\n name: 'down',\n theme: 'outline',\n icon: ' '\n};\n\nconst DownloadOutline = {\n name: 'download',\n theme: 'outline',\n icon: ' '\n};\n\nconst DownSquareOutline = {\n name: 'down-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst DragOutline = {\n name: 'drag',\n theme: 'outline',\n icon: ' '\n};\n\nconst DribbbleSquareFill = {\n name: 'dribbble-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst DownSquareTwoTone = {\n name: 'down-square',\n theme: 'twotone',\n icon: ' '\n};\n\nconst DribbbleCircleFill = {\n name: 'dribbble-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst DropboxCircleFill = {\n name: 'dropbox-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst DropboxOutline = {\n name: 'dropbox',\n theme: 'outline',\n icon: ' '\n};\n\nconst EditFill = {\n name: 'edit',\n theme: 'fill',\n icon: ' '\n};\n\nconst DropboxSquareFill = {\n name: 'dropbox-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst DribbbleSquareOutline = {\n name: 'dribbble-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst EditOutline = {\n name: 'edit',\n theme: 'outline',\n icon: ' '\n};\n\nconst EllipsisOutline = {\n name: 'ellipsis',\n theme: 'outline',\n icon: ' '\n};\n\nconst EditTwoTone = {\n name: 'edit',\n theme: 'twotone',\n icon: ' '\n};\n\nconst EnvironmentFill = {\n name: 'environment',\n theme: 'fill',\n icon: ' '\n};\n\nconst DribbbleOutline = {\n name: 'dribbble',\n theme: 'outline',\n icon: ' '\n};\n\nconst EnterOutline = {\n name: 'enter',\n theme: 'outline',\n icon: ' '\n};\n\nconst EnvironmentOutline = {\n name: 'environment',\n theme: 'outline',\n icon: ' '\n};\n\nconst EuroCircleFill = {\n name: 'euro-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst EnvironmentTwoTone = {\n name: 'environment',\n theme: 'twotone',\n icon: ' '\n};\n\nconst EuroTwoTone = {\n name: 'euro',\n theme: 'twotone',\n icon: ' '\n};\n\nconst EuroCircleOutline = {\n name: 'euro-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst ExpandAltOutline = {\n name: 'expand-alt',\n theme: 'outline',\n icon: ' '\n};\n\nconst ExpandOutline = {\n name: 'expand',\n theme: 'outline',\n icon: ' '\n};\n\nconst CodeSandboxCircleFill = {\n name: 'code-sandbox-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst CustomerServiceOutline = {\n name: 'customer-service',\n theme: 'outline',\n icon: ' '\n};\n\nconst ExceptionOutline = {\n name: 'exception',\n theme: 'outline',\n icon: ' '\n};\n\nconst ExclamationCircleTwoTone = {\n name: 'exclamation-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ExclamationCircleOutline = {\n name: 'exclamation-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst ExclamationOutline = {\n name: 'exclamation',\n theme: 'outline',\n icon: ' '\n};\n\nconst EyeFill = {\n name: 'eye',\n theme: 'fill',\n icon: ' '\n};\n\nconst ExperimentFill = {\n name: 'experiment',\n theme: 'fill',\n icon: ' '\n};\n\nconst EuroOutline = {\n name: 'euro',\n theme: 'outline',\n icon: ' '\n};\n\nconst ExclamationCircleFill = {\n name: 'exclamation-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst DownCircleTwoTone = {\n name: 'down-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst EyeInvisibleOutline = {\n name: 'eye-invisible',\n theme: 'outline',\n icon: ' '\n};\n\nconst ExportOutline = {\n name: 'export',\n theme: 'outline',\n icon: ' '\n};\n\nconst EyeTwoTone = {\n name: 'eye',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FacebookOutline = {\n name: 'facebook',\n theme: 'outline',\n icon: ' '\n};\n\nconst FacebookFill = {\n name: 'facebook',\n theme: 'fill',\n icon: ' '\n};\n\nconst ExperimentTwoTone = {\n name: 'experiment',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FastBackwardOutline = {\n name: 'fast-backward',\n theme: 'outline',\n icon: ' '\n};\n\nconst FastForwardOutline = {\n name: 'fast-forward',\n theme: 'outline',\n icon: ' '\n};\n\nconst FastBackwardFill = {\n name: 'fast-backward',\n theme: 'fill',\n icon: ' '\n};\n\nconst EyeInvisibleFill = {\n name: 'eye-invisible',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileAddFill = {\n name: 'file-add',\n theme: 'fill',\n icon: ' '\n};\n\nconst FieldNumberOutline = {\n name: 'field-number',\n theme: 'outline',\n icon: ' '\n};\n\nconst FieldStringOutline = {\n name: 'field-string',\n theme: 'outline',\n icon: ' '\n};\n\nconst FastForwardFill = {\n name: 'fast-forward',\n theme: 'fill',\n icon: ' '\n};\n\nconst FieldTimeOutline = {\n name: 'field-time',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileAddOutline = {\n name: 'file-add',\n theme: 'outline',\n icon: ' '\n};\n\nconst FallOutline = {\n name: 'fall',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileExcelFill = {\n name: 'file-excel',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileExcelTwoTone = {\n name: 'file-excel',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileDoneOutline = {\n name: 'file-done',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileExclamationTwoTone = {\n name: 'file-exclamation',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileExclamationFill = {\n name: 'file-exclamation',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileExcelOutline = {\n name: 'file-excel',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileFill = {\n name: 'file',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileExclamationOutline = {\n name: 'file-exclamation',\n theme: 'outline',\n icon: ' '\n};\n\nconst FieldBinaryOutline = {\n name: 'field-binary',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileAddTwoTone = {\n name: 'file-add',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileImageTwoTone = {\n name: 'file-image',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileGifOutline = {\n name: 'file-gif',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileJpgOutline = {\n name: 'file-jpg',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileMarkdownOutline = {\n name: 'file-markdown',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileImageFill = {\n name: 'file-image',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileMarkdownTwoTone = {\n name: 'file-markdown',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileImageOutline = {\n name: 'file-image',\n theme: 'outline',\n icon: ' '\n};\n\nconst FilePdfOutline = {\n name: 'file-pdf',\n theme: 'outline',\n icon: ' '\n};\n\nconst ApiFill = {\n name: 'api',\n theme: 'fill',\n icon: ' '\n};\n\nconst FilePdfTwoTone = {\n name: 'file-pdf',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FilePdfFill = {\n name: 'file-pdf',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileSearchOutline = {\n name: 'file-search',\n theme: 'outline',\n icon: ' '\n};\n\nconst FilePptFill = {\n name: 'file-ppt',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileTextFill = {\n name: 'file-text',\n theme: 'fill',\n icon: ' '\n};\n\nconst FilePptOutline = {\n name: 'file-ppt',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileMarkdownFill = {\n name: 'file-markdown',\n theme: 'fill',\n icon: ' '\n};\n\nconst FilePptTwoTone = {\n name: 'file-ppt',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileProtectOutline = {\n name: 'file-protect',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileTextTwoTone = {\n name: 'file-text',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileUnknownOutline = {\n name: 'file-unknown',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileUnknownFill = {\n name: 'file-unknown',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileTextOutline = {\n name: 'file-text',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileWordFill = {\n name: 'file-word',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileZipTwoTone = {\n name: 'file-zip',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileTwoTone = {\n name: 'file',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileZipFill = {\n name: 'file-zip',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileWordTwoTone = {\n name: 'file-word',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FileUnknownTwoTone = {\n name: 'file-unknown',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FireFill = {\n name: 'fire',\n theme: 'fill',\n icon: ' '\n};\n\nconst FilterFill = {\n name: 'filter',\n theme: 'fill',\n icon: ' '\n};\n\nconst FileSyncOutline = {\n name: 'file-sync',\n theme: 'outline',\n icon: ' '\n};\n\nconst FilterOutline = {\n name: 'filter',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileWordOutline = {\n name: 'file-word',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileZipOutline = {\n name: 'file-zip',\n theme: 'outline',\n icon: ' '\n};\n\nconst FlagOutline = {\n name: 'flag',\n theme: 'outline',\n icon: ' '\n};\n\nconst FireOutline = {\n name: 'fire',\n theme: 'outline',\n icon: ' '\n};\n\nconst FlagFill = {\n name: 'flag',\n theme: 'fill',\n icon: ' '\n};\n\nconst FireTwoTone = {\n name: 'fire',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FilterTwoTone = {\n name: 'filter',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FolderAddFill = {\n name: 'folder-add',\n theme: 'fill',\n icon: ' '\n};\n\nconst FolderOpenFill = {\n name: 'folder-open',\n theme: 'fill',\n icon: ' '\n};\n\nconst EyeInvisibleTwoTone = {\n name: 'eye-invisible',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FlagTwoTone = {\n name: 'flag',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FolderAddOutline = {\n name: 'folder-add',\n theme: 'outline',\n icon: ' '\n};\n\nconst FolderAddTwoTone = {\n name: 'folder-add',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FolderTwoTone = {\n name: 'folder',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FolderOutline = {\n name: 'folder',\n theme: 'outline',\n icon: ' '\n};\n\nconst FolderOpenTwoTone = {\n name: 'folder-open',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FontColorsOutline = {\n name: 'font-colors',\n theme: 'outline',\n icon: ' '\n};\n\nconst ForkOutline = {\n name: 'fork',\n theme: 'outline',\n icon: ' '\n};\n\nconst FolderViewOutline = {\n name: 'folder-view',\n theme: 'outline',\n icon: ' '\n};\n\nconst FormOutline = {\n name: 'form',\n theme: 'outline',\n icon: ' '\n};\n\nconst FolderOpenOutline = {\n name: 'folder-open',\n theme: 'outline',\n icon: ' '\n};\n\nconst ForwardFill = {\n name: 'forward',\n theme: 'fill',\n icon: ' '\n};\n\nconst FontSizeOutline = {\n name: 'font-size',\n theme: 'outline',\n icon: ' '\n};\n\nconst ForwardOutline = {\n name: 'forward',\n theme: 'outline',\n icon: ' '\n};\n\nconst ExperimentOutline = {\n name: 'experiment',\n theme: 'outline',\n icon: ' '\n};\n\nconst FrownFill = {\n name: 'frown',\n theme: 'fill',\n icon: ' '\n};\n\nconst FullscreenOutline = {\n name: 'fullscreen',\n theme: 'outline',\n icon: ' '\n};\n\nconst FundTwoTone = {\n name: 'fund',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FunctionOutline = {\n name: 'function',\n theme: 'outline',\n icon: ' '\n};\n\nconst FrownTwoTone = {\n name: 'frown',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FullscreenExitOutline = {\n name: 'fullscreen-exit',\n theme: 'outline',\n icon: ' '\n};\n\nconst GatewayOutline = {\n name: 'gateway',\n theme: 'outline',\n icon: ' '\n};\n\nconst FundViewOutline = {\n name: 'fund-view',\n theme: 'outline',\n icon: ' '\n};\n\nconst FormatPainterOutline = {\n name: 'format-painter',\n theme: 'outline',\n icon: ' '\n};\n\nconst FunnelPlotFill = {\n name: 'funnel-plot',\n theme: 'fill',\n icon: ' '\n};\n\nconst FundFill = {\n name: 'fund',\n theme: 'fill',\n icon: ' '\n};\n\nconst FunnelPlotTwoTone = {\n name: 'funnel-plot',\n theme: 'twotone',\n icon: ' '\n};\n\nconst FormatPainterFill = {\n name: 'format-painter',\n theme: 'fill',\n icon: ' '\n};\n\nconst GiftTwoTone = {\n name: 'gift',\n theme: 'twotone',\n icon: ' '\n};\n\nconst GiftOutline = {\n name: 'gift',\n theme: 'outline',\n icon: ' '\n};\n\nconst GifOutline = {\n name: 'gif',\n theme: 'outline',\n icon: ' '\n};\n\nconst FundProjectionScreenOutline = {\n name: 'fund-projection-screen',\n theme: 'outline',\n icon: ' '\n};\n\nconst FunnelPlotOutline = {\n name: 'funnel-plot',\n theme: 'outline',\n icon: ' '\n};\n\nconst FundOutline = {\n name: 'fund',\n theme: 'outline',\n icon: ' '\n};\n\nconst GlobalOutline = {\n name: 'global',\n theme: 'outline',\n icon: ' '\n};\n\nconst GiftFill = {\n name: 'gift',\n theme: 'fill',\n icon: ' '\n};\n\nconst FrownOutline = {\n name: 'frown',\n theme: 'outline',\n icon: ' '\n};\n\nconst CustomerServiceFill = {\n name: 'customer-service',\n theme: 'fill',\n icon: ' '\n};\n\nconst GoldOutline = {\n name: 'gold',\n theme: 'outline',\n icon: ' '\n};\n\nconst GithubOutline = {\n name: 'github',\n theme: 'outline',\n icon: ' '\n};\n\nconst GithubFill = {\n name: 'github',\n theme: 'fill',\n icon: ' '\n};\n\nconst GitlabFill = {\n name: 'gitlab',\n theme: 'fill',\n icon: ' '\n};\n\nconst GoldenFill = {\n name: 'golden',\n theme: 'fill',\n icon: ' '\n};\n\nconst GoogleOutline = {\n name: 'google',\n theme: 'outline',\n icon: ' '\n};\n\nconst GoldTwoTone = {\n name: 'gold',\n theme: 'twotone',\n icon: ' '\n};\n\nconst GooglePlusOutline = {\n name: 'google-plus',\n theme: 'outline',\n icon: ' '\n};\n\nconst GoogleCircleFill = {\n name: 'google-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst HddOutline = {\n name: 'hdd',\n theme: 'outline',\n icon: ' '\n};\n\nconst GoldFill = {\n name: 'gold',\n theme: 'fill',\n icon: ' '\n};\n\nconst GoogleSquareFill = {\n name: 'google-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst GooglePlusCircleFill = {\n name: 'google-plus-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst HddTwoTone = {\n name: 'hdd',\n theme: 'twotone',\n icon: ' '\n};\n\nconst HeartOutline = {\n name: 'heart',\n theme: 'outline',\n icon: ' '\n};\n\nconst AndroidOutline = {\n name: 'android',\n theme: 'outline',\n icon: ' '\n};\n\nconst HeatMapOutline = {\n name: 'heat-map',\n theme: 'outline',\n icon: ' '\n};\n\nconst GroupOutline = {\n name: 'group',\n theme: 'outline',\n icon: ' '\n};\n\nconst HeartTwoTone = {\n name: 'heart',\n theme: 'twotone',\n icon: ' '\n};\n\nconst HolderOutline = {\n name: 'holder',\n theme: 'outline',\n icon: ' '\n};\n\nconst EuroCircleTwoTone = {\n name: 'euro-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst HighlightFill = {\n name: 'highlight',\n theme: 'fill',\n icon: ' '\n};\n\nconst HeartFill = {\n name: 'heart',\n theme: 'fill',\n icon: ' '\n};\n\nconst HomeOutline = {\n name: 'home',\n theme: 'outline',\n icon: ' '\n};\n\nconst HighlightOutline = {\n name: 'highlight',\n theme: 'outline',\n icon: ' '\n};\n\nconst HourglassFill = {\n name: 'hourglass',\n theme: 'fill',\n icon: ' '\n};\n\nconst HomeFill = {\n name: 'home',\n theme: 'fill',\n icon: ' '\n};\n\nconst HighlightTwoTone = {\n name: 'highlight',\n theme: 'twotone',\n icon: ' '\n};\n\nconst Html5Outline = {\n name: 'html5',\n theme: 'outline',\n icon: ' '\n};\n\nconst Html5Fill = {\n name: 'html5',\n theme: 'fill',\n icon: ' '\n};\n\nconst IdcardOutline = {\n name: 'idcard',\n theme: 'outline',\n icon: ' '\n};\n\nconst FolderFill = {\n name: 'folder',\n theme: 'fill',\n icon: ' '\n};\n\nconst HourglassOutline = {\n name: 'hourglass',\n theme: 'outline',\n icon: ' '\n};\n\nconst IdcardTwoTone = {\n name: 'idcard',\n theme: 'twotone',\n icon: ' '\n};\n\nconst HourglassTwoTone = {\n name: 'hourglass',\n theme: 'twotone',\n icon: ' '\n};\n\nconst Html5TwoTone = {\n name: 'html5',\n theme: 'twotone',\n icon: ' '\n};\n\nconst CopyrightCircleOutline = {\n name: 'copyright-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst IdcardFill = {\n name: 'idcard',\n theme: 'fill',\n icon: ' '\n};\n\nconst HomeTwoTone = {\n name: 'home',\n theme: 'twotone',\n icon: ' '\n};\n\nconst InfoCircleOutline = {\n name: 'info-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst IeCircleFill = {\n name: 'ie-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst InfoOutline = {\n name: 'info',\n theme: 'outline',\n icon: ' '\n};\n\nconst InsertRowAboveOutline = {\n name: 'insert-row-above',\n theme: 'outline',\n icon: ' '\n};\n\nconst InfoCircleTwoTone = {\n name: 'info-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst InboxOutline = {\n name: 'inbox',\n theme: 'outline',\n icon: ' '\n};\n\nconst InsertRowLeftOutline = {\n name: 'insert-row-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst InfoCircleFill = {\n name: 'info-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst InstagramFill = {\n name: 'instagram',\n theme: 'fill',\n icon: ' '\n};\n\nconst ImportOutline = {\n name: 'import',\n theme: 'outline',\n icon: ' '\n};\n\nconst InsuranceFill = {\n name: 'insurance',\n theme: 'fill',\n icon: ' '\n};\n\nconst InstagramOutline = {\n name: 'instagram',\n theme: 'outline',\n icon: ' '\n};\n\nconst KeyOutline = {\n name: 'key',\n theme: 'outline',\n icon: ' '\n};\n\nconst InsertRowBelowOutline = {\n name: 'insert-row-below',\n theme: 'outline',\n icon: ' '\n};\n\nconst InsuranceOutline = {\n name: 'insurance',\n theme: 'outline',\n icon: ' '\n};\n\nconst InteractionOutline = {\n name: 'interaction',\n theme: 'outline',\n icon: ' '\n};\n\nconst HddFill = {\n name: 'hdd',\n theme: 'fill',\n icon: ' '\n};\n\nconst InsertRowRightOutline = {\n name: 'insert-row-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst InteractionTwoTone = {\n name: 'interaction',\n theme: 'twotone',\n icon: ' '\n};\n\nconst LeftCircleOutline = {\n name: 'left-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst LaptopOutline = {\n name: 'laptop',\n theme: 'outline',\n icon: ' '\n};\n\nconst IssuesCloseOutline = {\n name: 'issues-close',\n theme: 'outline',\n icon: ' '\n};\n\nconst ItalicOutline = {\n name: 'italic',\n theme: 'outline',\n icon: ' '\n};\n\nconst FileOutline = {\n name: 'file',\n theme: 'outline',\n icon: ' '\n};\n\nconst LayoutOutline = {\n name: 'layout',\n theme: 'outline',\n icon: ' '\n};\n\nconst LayoutTwoTone = {\n name: 'layout',\n theme: 'twotone',\n icon: ' '\n};\n\nconst LeftSquareTwoTone = {\n name: 'left-square',\n theme: 'twotone',\n icon: ' '\n};\n\nconst LeftCircleTwoTone = {\n name: 'left-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst LikeFill = {\n name: 'like',\n theme: 'fill',\n icon: ' '\n};\n\nconst LayoutFill = {\n name: 'layout',\n theme: 'fill',\n icon: ' '\n};\n\nconst LeftSquareFill = {\n name: 'left-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst LeftOutline = {\n name: 'left',\n theme: 'outline',\n icon: ' '\n};\n\nconst LeftSquareOutline = {\n name: 'left-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst LineHeightOutline = {\n name: 'line-height',\n theme: 'outline',\n icon: ' '\n};\n\nconst LeftCircleFill = {\n name: 'left-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst LikeOutline = {\n name: 'like',\n theme: 'outline',\n icon: ' '\n};\n\nconst LikeTwoTone = {\n name: 'like',\n theme: 'twotone',\n icon: ' '\n};\n\nconst LinkOutline = {\n name: 'link',\n theme: 'outline',\n icon: ' '\n};\n\nconst LinkedinOutline = {\n name: 'linkedin',\n theme: 'outline',\n icon: ' '\n};\n\nconst LineChartOutline = {\n name: 'line-chart',\n theme: 'outline',\n icon: ' '\n};\n\nconst Loading3QuartersOutline = {\n name: 'loading-3-quarters',\n theme: 'outline',\n icon: ' '\n};\n\nconst LineOutline = {\n name: 'line',\n theme: 'outline',\n icon: ' '\n};\n\nconst LockTwoTone = {\n name: 'lock',\n theme: 'twotone',\n icon: ' '\n};\n\nconst LogoutOutline = {\n name: 'logout',\n theme: 'outline',\n icon: ' '\n};\n\nconst LinkedinFill = {\n name: 'linkedin',\n theme: 'fill',\n icon: ' '\n};\n\nconst LockOutline = {\n name: 'lock',\n theme: 'outline',\n icon: ' '\n};\n\nconst LoginOutline = {\n name: 'login',\n theme: 'outline',\n icon: ' '\n};\n\nconst LockFill = {\n name: 'lock',\n theme: 'fill',\n icon: ' '\n};\n\nconst MailOutline = {\n name: 'mail',\n theme: 'outline',\n icon: ' '\n};\n\nconst MacCommandFill = {\n name: 'mac-command',\n theme: 'fill',\n icon: ' '\n};\n\nconst MacCommandOutline = {\n name: 'mac-command',\n theme: 'outline',\n icon: ' '\n};\n\nconst LoadingOutline = {\n name: 'loading',\n theme: 'outline',\n icon: ' '\n};\n\nconst MailFill = {\n name: 'mail',\n theme: 'fill',\n icon: ' '\n};\n\nconst ConsoleSqlOutline = {\n name: 'console-sql',\n theme: 'outline',\n icon: ' '\n};\n\nconst MediumCircleFill = {\n name: 'medium-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst MailTwoTone = {\n name: 'mail',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ManOutline = {\n name: 'man',\n theme: 'outline',\n icon: ' '\n};\n\nconst MedicineBoxTwoTone = {\n name: 'medicine-box',\n theme: 'twotone',\n icon: ' '\n};\n\nconst InteractionFill = {\n name: 'interaction',\n theme: 'fill',\n icon: ' '\n};\n\nconst MedicineBoxOutline = {\n name: 'medicine-box',\n theme: 'outline',\n icon: ' '\n};\n\nconst EyeOutline = {\n name: 'eye',\n theme: 'outline',\n icon: ' '\n};\n\nconst MediumSquareFill = {\n name: 'medium-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst MehFill = {\n name: 'meh',\n theme: 'fill',\n icon: ' '\n};\n\nconst IeSquareFill = {\n name: 'ie-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst MehOutline = {\n name: 'meh',\n theme: 'outline',\n icon: ' '\n};\n\nconst MenuUnfoldOutline = {\n name: 'menu-unfold',\n theme: 'outline',\n icon: ' '\n};\n\nconst MediumOutline = {\n name: 'medium',\n theme: 'outline',\n icon: ' '\n};\n\nconst MessageOutline = {\n name: 'message',\n theme: 'outline',\n icon: ' '\n};\n\nconst MergeCellsOutline = {\n name: 'merge-cells',\n theme: 'outline',\n icon: ' '\n};\n\nconst MessageFill = {\n name: 'message',\n theme: 'fill',\n icon: ' '\n};\n\nconst MinusCircleFill = {\n name: 'minus-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst MessageTwoTone = {\n name: 'message',\n theme: 'twotone',\n icon: ' '\n};\n\nconst MenuFoldOutline = {\n name: 'menu-fold',\n theme: 'outline',\n icon: ' '\n};\n\nconst MinusCircleOutline = {\n name: 'minus-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst MehTwoTone = {\n name: 'meh',\n theme: 'twotone',\n icon: ' '\n};\n\nconst MinusCircleTwoTone = {\n name: 'minus-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst MinusSquareFill = {\n name: 'minus-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst IeOutline = {\n name: 'ie',\n theme: 'outline',\n icon: ' '\n};\n\nconst DisconnectOutline = {\n name: 'disconnect',\n theme: 'outline',\n icon: ' '\n};\n\nconst MobileFill = {\n name: 'mobile',\n theme: 'fill',\n icon: ' '\n};\n\nconst MoneyCollectOutline = {\n name: 'money-collect',\n theme: 'outline',\n icon: ' '\n};\n\nconst MobileTwoTone = {\n name: 'mobile',\n theme: 'twotone',\n icon: ' '\n};\n\nconst MonitorOutline = {\n name: 'monitor',\n theme: 'outline',\n icon: ' '\n};\n\nconst MinusOutline = {\n name: 'minus',\n theme: 'outline',\n icon: ' '\n};\n\nconst MinusSquareTwoTone = {\n name: 'minus-square',\n theme: 'twotone',\n icon: ' '\n};\n\nconst MoneyCollectFill = {\n name: 'money-collect',\n theme: 'fill',\n icon: ' '\n};\n\nconst NodeCollapseOutline = {\n name: 'node-collapse',\n theme: 'outline',\n icon: ' '\n};\n\nconst MoneyCollectTwoTone = {\n name: 'money-collect',\n theme: 'twotone',\n icon: ' '\n};\n\nconst MenuOutline = {\n name: 'menu',\n theme: 'outline',\n icon: ' '\n};\n\nconst NodeExpandOutline = {\n name: 'node-expand',\n theme: 'outline',\n icon: ' '\n};\n\nconst NotificationOutline = {\n name: 'notification',\n theme: 'outline',\n icon: ' '\n};\n\nconst NotificationFill = {\n name: 'notification',\n theme: 'fill',\n icon: ' '\n};\n\nconst NumberOutline = {\n name: 'number',\n theme: 'outline',\n icon: ' '\n};\n\nconst GitlabOutline = {\n name: 'gitlab',\n theme: 'outline',\n icon: ' '\n};\n\nconst PaperClipOutline = {\n name: 'paper-clip',\n theme: 'outline',\n icon: ' '\n};\n\nconst PauseCircleFill = {\n name: 'pause-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst PauseCircleTwoTone = {\n name: 'pause-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst NotificationTwoTone = {\n name: 'notification',\n theme: 'twotone',\n icon: ' '\n};\n\nconst PauseOutline = {\n name: 'pause',\n theme: 'outline',\n icon: ' '\n};\n\nconst PhoneOutline = {\n name: 'phone',\n theme: 'outline',\n icon: ' '\n};\n\nconst PartitionOutline = {\n name: 'partition',\n theme: 'outline',\n icon: ' '\n};\n\nconst OneToOneOutline = {\n name: 'one-to-one',\n theme: 'outline',\n icon: ' '\n};\n\nconst PauseCircleOutline = {\n name: 'pause-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst PayCircleFill = {\n name: 'pay-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst OrderedListOutline = {\n name: 'ordered-list',\n theme: 'outline',\n icon: ' '\n};\n\nconst PicCenterOutline = {\n name: 'pic-center',\n theme: 'outline',\n icon: ' '\n};\n\nconst PayCircleOutline = {\n name: 'pay-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst PercentageOutline = {\n name: 'percentage',\n theme: 'outline',\n icon: ' '\n};\n\nconst PhoneTwoTone = {\n name: 'phone',\n theme: 'twotone',\n icon: ' '\n};\n\nconst PictureFill = {\n name: 'picture',\n theme: 'fill',\n icon: ' '\n};\n\nconst PictureOutline = {\n name: 'picture',\n theme: 'outline',\n icon: ' '\n};\n\nconst MinusSquareOutline = {\n name: 'minus-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst PhoneFill = {\n name: 'phone',\n theme: 'fill',\n icon: ' '\n};\n\nconst PieChartOutline = {\n name: 'pie-chart',\n theme: 'outline',\n icon: ' '\n};\n\nconst PicLeftOutline = {\n name: 'pic-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst PieChartTwoTone = {\n name: 'pie-chart',\n theme: 'twotone',\n icon: ' '\n};\n\nconst PieChartFill = {\n name: 'pie-chart',\n theme: 'fill',\n icon: ' '\n};\n\nconst PlayCircleTwoTone = {\n name: 'play-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst PlaySquareFill = {\n name: 'play-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst PlusCircleTwoTone = {\n name: 'plus-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst PictureTwoTone = {\n name: 'picture',\n theme: 'twotone',\n icon: ' '\n};\n\nconst PlayCircleFill = {\n name: 'play-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst PicRightOutline = {\n name: 'pic-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst PlusCircleOutline = {\n name: 'plus-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst PlusCircleFill = {\n name: 'plus-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst PlaySquareTwoTone = {\n name: 'play-square',\n theme: 'twotone',\n icon: ' '\n};\n\nconst PlusOutline = {\n name: 'plus',\n theme: 'outline',\n icon: ' '\n};\n\nconst PlusSquareOutline = {\n name: 'plus-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst PoundCircleFill = {\n name: 'pound-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst PlusSquareFill = {\n name: 'plus-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst PoundCircleOutline = {\n name: 'pound-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst PlusSquareTwoTone = {\n name: 'plus-square',\n theme: 'twotone',\n icon: ' '\n};\n\nconst PlaySquareOutline = {\n name: 'play-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst PoweroffOutline = {\n name: 'poweroff',\n theme: 'outline',\n icon: ' '\n};\n\nconst PoundOutline = {\n name: 'pound',\n theme: 'outline',\n icon: ' '\n};\n\nconst ProfileFill = {\n name: 'profile',\n theme: 'fill',\n icon: ' '\n};\n\nconst PrinterFill = {\n name: 'printer',\n theme: 'fill',\n icon: ' '\n};\n\nconst PoundCircleTwoTone = {\n name: 'pound-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ProjectTwoTone = {\n name: 'project',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ProjectFill = {\n name: 'project',\n theme: 'fill',\n icon: ' '\n};\n\nconst ProjectOutline = {\n name: 'project',\n theme: 'outline',\n icon: ' '\n};\n\nconst PrinterOutline = {\n name: 'printer',\n theme: 'outline',\n icon: ' '\n};\n\nconst ProfileTwoTone = {\n name: 'profile',\n theme: 'twotone',\n icon: ' '\n};\n\nconst PropertySafetyOutline = {\n name: 'property-safety',\n theme: 'outline',\n icon: ' '\n};\n\nconst PrinterTwoTone = {\n name: 'printer',\n theme: 'twotone',\n icon: ' '\n};\n\nconst MobileOutline = {\n name: 'mobile',\n theme: 'outline',\n icon: ' '\n};\n\nconst PushpinTwoTone = {\n name: 'pushpin',\n theme: 'twotone',\n icon: ' '\n};\n\nconst QqOutline = {\n name: 'qq',\n theme: 'outline',\n icon: ' '\n};\n\nconst PushpinFill = {\n name: 'pushpin',\n theme: 'fill',\n icon: ' '\n};\n\nconst PushpinOutline = {\n name: 'pushpin',\n theme: 'outline',\n icon: ' '\n};\n\nconst PullRequestOutline = {\n name: 'pull-request',\n theme: 'outline',\n icon: ' '\n};\n\nconst QqCircleFill = {\n name: 'qq-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst ProfileOutline = {\n name: 'profile',\n theme: 'outline',\n icon: ' '\n};\n\nconst RadiusBottomleftOutline = {\n name: 'radius-bottomleft',\n theme: 'outline',\n icon: ' '\n};\n\nconst QuestionCircleOutline = {\n name: 'question-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst PropertySafetyFill = {\n name: 'property-safety',\n theme: 'fill',\n icon: ' '\n};\n\nconst QuestionCircleFill = {\n name: 'question-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst QrcodeOutline = {\n name: 'qrcode',\n theme: 'outline',\n icon: ' '\n};\n\nconst QqSquareFill = {\n name: 'qq-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst ReadFill = {\n name: 'read',\n theme: 'fill',\n icon: ' '\n};\n\nconst RadarChartOutline = {\n name: 'radar-chart',\n theme: 'outline',\n icon: ' '\n};\n\nconst ReconciliationOutline = {\n name: 'reconciliation',\n theme: 'outline',\n icon: ' '\n};\n\nconst RadiusUprightOutline = {\n name: 'radius-upright',\n theme: 'outline',\n icon: ' '\n};\n\nconst QuestionOutline = {\n name: 'question',\n theme: 'outline',\n icon: ' '\n};\n\nconst ReadOutline = {\n name: 'read',\n theme: 'outline',\n icon: ' '\n};\n\nconst RedEnvelopeOutline = {\n name: 'red-envelope',\n theme: 'outline',\n icon: ' '\n};\n\nconst ReconciliationTwoTone = {\n name: 'reconciliation',\n theme: 'twotone',\n icon: ' '\n};\n\nconst RadiusBottomrightOutline = {\n name: 'radius-bottomright',\n theme: 'outline',\n icon: ' '\n};\n\nconst ReconciliationFill = {\n name: 'reconciliation',\n theme: 'fill',\n icon: ' '\n};\n\nconst RedEnvelopeFill = {\n name: 'red-envelope',\n theme: 'fill',\n icon: ' '\n};\n\nconst RadiusSettingOutline = {\n name: 'radius-setting',\n theme: 'outline',\n icon: ' '\n};\n\nconst RedditCircleFill = {\n name: 'reddit-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst RedditOutline = {\n name: 'reddit',\n theme: 'outline',\n icon: ' '\n};\n\nconst GooglePlusSquareFill = {\n name: 'google-plus-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst RedoOutline = {\n name: 'redo',\n theme: 'outline',\n icon: ' '\n};\n\nconst MoreOutline = {\n name: 'more',\n theme: 'outline',\n icon: ' '\n};\n\nconst PropertySafetyTwoTone = {\n name: 'property-safety',\n theme: 'twotone',\n icon: ' '\n};\n\nconst RedditSquareFill = {\n name: 'reddit-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst RestFill = {\n name: 'rest',\n theme: 'fill',\n icon: ' '\n};\n\nconst NodeIndexOutline = {\n name: 'node-index',\n theme: 'outline',\n icon: ' '\n};\n\nconst RightCircleOutline = {\n name: 'right-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst RightOutline = {\n name: 'right',\n theme: 'outline',\n icon: ' '\n};\n\nconst RightCircleTwoTone = {\n name: 'right-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst RedEnvelopeTwoTone = {\n name: 'red-envelope',\n theme: 'twotone',\n icon: ' '\n};\n\nconst RightCircleFill = {\n name: 'right-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst ReloadOutline = {\n name: 'reload',\n theme: 'outline',\n icon: ' '\n};\n\nconst RightSquareTwoTone = {\n name: 'right-square',\n theme: 'twotone',\n icon: ' '\n};\n\nconst RightSquareOutline = {\n name: 'right-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst RocketOutline = {\n name: 'rocket',\n theme: 'outline',\n icon: ' '\n};\n\nconst RightSquareFill = {\n name: 'right-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst RobotFill = {\n name: 'robot',\n theme: 'fill',\n icon: ' '\n};\n\nconst RocketTwoTone = {\n name: 'rocket',\n theme: 'twotone',\n icon: ' '\n};\n\nconst RocketFill = {\n name: 'rocket',\n theme: 'fill',\n icon: ' '\n};\n\nconst RotateLeftOutline = {\n name: 'rotate-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst RobotOutline = {\n name: 'robot',\n theme: 'outline',\n icon: ' '\n};\n\nconst InsuranceTwoTone = {\n name: 'insurance',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SafetyOutline = {\n name: 'safety',\n theme: 'outline',\n icon: ' '\n};\n\nconst SafetyCertificateFill = {\n name: 'safety-certificate',\n theme: 'fill',\n icon: ' '\n};\n\nconst MedicineBoxFill = {\n name: 'medicine-box',\n theme: 'fill',\n icon: ' '\n};\n\nconst SaveOutline = {\n name: 'save',\n theme: 'outline',\n icon: ' '\n};\n\nconst RotateRightOutline = {\n name: 'rotate-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst QuestionCircleTwoTone = {\n name: 'question-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst RollbackOutline = {\n name: 'rollback',\n theme: 'outline',\n icon: ' '\n};\n\nconst ScanOutline = {\n name: 'scan',\n theme: 'outline',\n icon: ' '\n};\n\nconst ScheduleOutline = {\n name: 'schedule',\n theme: 'outline',\n icon: ' '\n};\n\nconst SafetyCertificateOutline = {\n name: 'safety-certificate',\n theme: 'outline',\n icon: ' '\n};\n\nconst SaveTwoTone = {\n name: 'save',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ScheduleFill = {\n name: 'schedule',\n theme: 'fill',\n icon: ' '\n};\n\nconst ScheduleTwoTone = {\n name: 'schedule',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SaveFill = {\n name: 'save',\n theme: 'fill',\n icon: ' '\n};\n\nconst ScissorOutline = {\n name: 'scissor',\n theme: 'outline',\n icon: ' '\n};\n\nconst SecurityScanFill = {\n name: 'security-scan',\n theme: 'fill',\n icon: ' '\n};\n\nconst SafetyCertificateTwoTone = {\n name: 'safety-certificate',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SecurityScanTwoTone = {\n name: 'security-scan',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SendOutline = {\n name: 'send',\n theme: 'outline',\n icon: ' '\n};\n\nconst ShakeOutline = {\n name: 'shake',\n theme: 'outline',\n icon: ' '\n};\n\nconst SettingTwoTone = {\n name: 'setting',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SettingFill = {\n name: 'setting',\n theme: 'fill',\n icon: ' '\n};\n\nconst ShareAltOutline = {\n name: 'share-alt',\n theme: 'outline',\n icon: ' '\n};\n\nconst SearchOutline = {\n name: 'search',\n theme: 'outline',\n icon: ' '\n};\n\nconst SecurityScanOutline = {\n name: 'security-scan',\n theme: 'outline',\n icon: ' '\n};\n\nconst RadiusUpleftOutline = {\n name: 'radius-upleft',\n theme: 'outline',\n icon: ' '\n};\n\nconst HistoryOutline = {\n name: 'history',\n theme: 'outline',\n icon: ' '\n};\n\nconst RestOutline = {\n name: 'rest',\n theme: 'outline',\n icon: ' '\n};\n\nconst ShopTwoTone = {\n name: 'shop',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ShopFill = {\n name: 'shop',\n theme: 'fill',\n icon: ' '\n};\n\nconst ShoppingOutline = {\n name: 'shopping',\n theme: 'outline',\n icon: ' '\n};\n\nconst ShoppingFill = {\n name: 'shopping',\n theme: 'fill',\n icon: ' '\n};\n\nconst SignalFill = {\n name: 'signal',\n theme: 'fill',\n icon: ' '\n};\n\nconst MediumWorkmarkOutline = {\n name: 'medium-workmark',\n theme: 'outline',\n icon: ' '\n};\n\nconst SketchCircleFill = {\n name: 'sketch-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst SketchSquareFill = {\n name: 'sketch-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst ShrinkOutline = {\n name: 'shrink',\n theme: 'outline',\n icon: ' '\n};\n\nconst SketchOutline = {\n name: 'sketch',\n theme: 'outline',\n icon: ' '\n};\n\nconst RestTwoTone = {\n name: 'rest',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SkypeOutline = {\n name: 'skype',\n theme: 'outline',\n icon: ' '\n};\n\nconst RetweetOutline = {\n name: 'retweet',\n theme: 'outline',\n icon: ' '\n};\n\nconst SlackSquareFill = {\n name: 'slack-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst SlackOutline = {\n name: 'slack',\n theme: 'outline',\n icon: ' '\n};\n\nconst SlackSquareOutline = {\n name: 'slack-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst SisternodeOutline = {\n name: 'sisternode',\n theme: 'outline',\n icon: ' '\n};\n\nconst SkypeFill = {\n name: 'skype',\n theme: 'fill',\n icon: ' '\n};\n\nconst SkinTwoTone = {\n name: 'skin',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SlidersOutline = {\n name: 'sliders',\n theme: 'outline',\n icon: ' '\n};\n\nconst ShopOutline = {\n name: 'shop',\n theme: 'outline',\n icon: ' '\n};\n\nconst SmallDashOutline = {\n name: 'small-dash',\n theme: 'outline',\n icon: ' '\n};\n\nconst SlidersTwoTone = {\n name: 'sliders',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SlidersFill = {\n name: 'sliders',\n theme: 'fill',\n icon: ' '\n};\n\nconst SnippetsFill = {\n name: 'snippets',\n theme: 'fill',\n icon: ' '\n};\n\nconst SmileOutline = {\n name: 'smile',\n theme: 'outline',\n icon: ' '\n};\n\nconst SnippetsOutline = {\n name: 'snippets',\n theme: 'outline',\n icon: ' '\n};\n\nconst ShoppingCartOutline = {\n name: 'shopping-cart',\n theme: 'outline',\n icon: ' '\n};\n\nconst SmileFill = {\n name: 'smile',\n theme: 'fill',\n icon: ' '\n};\n\nconst SolutionOutline = {\n name: 'solution',\n theme: 'outline',\n icon: ' '\n};\n\nconst SortAscendingOutline = {\n name: 'sort-ascending',\n theme: 'outline',\n icon: ' '\n};\n\nconst SoundTwoTone = {\n name: 'sound',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SmileTwoTone = {\n name: 'smile',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SplitCellsOutline = {\n name: 'split-cells',\n theme: 'outline',\n icon: ' '\n};\n\nconst PlayCircleOutline = {\n name: 'play-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst SoundFill = {\n name: 'sound',\n theme: 'fill',\n icon: ' '\n};\n\nconst StarFill = {\n name: 'star',\n theme: 'fill',\n icon: ' '\n};\n\nconst ShoppingTwoTone = {\n name: 'shopping',\n theme: 'twotone',\n icon: ' '\n};\n\nconst StarTwoTone = {\n name: 'star',\n theme: 'twotone',\n icon: ' '\n};\n\nconst StarOutline = {\n name: 'star',\n theme: 'outline',\n icon: ' '\n};\n\nconst StepBackwardOutline = {\n name: 'step-backward',\n theme: 'outline',\n icon: ' '\n};\n\nconst StepForwardFill = {\n name: 'step-forward',\n theme: 'fill',\n icon: ' '\n};\n\nconst StrikethroughOutline = {\n name: 'strikethrough',\n theme: 'outline',\n icon: ' '\n};\n\nconst StepForwardOutline = {\n name: 'step-forward',\n theme: 'outline',\n icon: ' '\n};\n\nconst RiseOutline = {\n name: 'rise',\n theme: 'outline',\n icon: ' '\n};\n\nconst StockOutline = {\n name: 'stock',\n theme: 'outline',\n icon: ' '\n};\n\nconst StopOutline = {\n name: 'stop',\n theme: 'outline',\n icon: ' '\n};\n\nconst StopTwoTone = {\n name: 'stop',\n theme: 'twotone',\n icon: ' '\n};\n\nconst StopFill = {\n name: 'stop',\n theme: 'fill',\n icon: ' '\n};\n\nconst SwitcherFill = {\n name: 'switcher',\n theme: 'fill',\n icon: ' '\n};\n\nconst SwapLeftOutline = {\n name: 'swap-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst SwitcherOutline = {\n name: 'switcher',\n theme: 'outline',\n icon: ' '\n};\n\nconst SwitcherTwoTone = {\n name: 'switcher',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SwapOutline = {\n name: 'swap',\n theme: 'outline',\n icon: ' '\n};\n\nconst SubnodeOutline = {\n name: 'subnode',\n theme: 'outline',\n icon: ' '\n};\n\nconst SwapRightOutline = {\n name: 'swap-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst SyncOutline = {\n name: 'sync',\n theme: 'outline',\n icon: ' '\n};\n\nconst TableOutline = {\n name: 'table',\n theme: 'outline',\n icon: ' '\n};\n\nconst SkinOutline = {\n name: 'skin',\n theme: 'outline',\n icon: ' '\n};\n\nconst TagFill = {\n name: 'tag',\n theme: 'fill',\n icon: ' '\n};\n\nconst TabletFill = {\n name: 'tablet',\n theme: 'fill',\n icon: ' '\n};\n\nconst TagTwoTone = {\n name: 'tag',\n theme: 'twotone',\n icon: ' '\n};\n\nconst TagOutline = {\n name: 'tag',\n theme: 'outline',\n icon: ' '\n};\n\nconst TaobaoOutline = {\n name: 'taobao',\n theme: 'outline',\n icon: ' '\n};\n\nconst TagsTwoTone = {\n name: 'tags',\n theme: 'twotone',\n icon: ' '\n};\n\nconst TagsOutline = {\n name: 'tags',\n theme: 'outline',\n icon: ' '\n};\n\nconst TabletTwoTone = {\n name: 'tablet',\n theme: 'twotone',\n icon: ' '\n};\n\nconst TeamOutline = {\n name: 'team',\n theme: 'outline',\n icon: ' '\n};\n\nconst TaobaoCircleFill = {\n name: 'taobao-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst TagsFill = {\n name: 'tags',\n theme: 'fill',\n icon: ' '\n};\n\nconst ThunderboltOutline = {\n name: 'thunderbolt',\n theme: 'outline',\n icon: ' '\n};\n\nconst TaobaoCircleOutline = {\n name: 'taobao-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst TaobaoSquareFill = {\n name: 'taobao-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst ThunderboltTwoTone = {\n name: 'thunderbolt',\n theme: 'twotone',\n icon: ' '\n};\n\nconst ThunderboltFill = {\n name: 'thunderbolt',\n theme: 'fill',\n icon: ' '\n};\n\nconst ToolFill = {\n name: 'tool',\n theme: 'fill',\n icon: ' '\n};\n\nconst ToolTwoTone = {\n name: 'tool',\n theme: 'twotone',\n icon: ' '\n};\n\nconst StepBackwardFill = {\n name: 'step-backward',\n theme: 'fill',\n icon: ' '\n};\n\nconst ToolOutline = {\n name: 'tool',\n theme: 'outline',\n icon: ' '\n};\n\nconst TrademarkCircleTwoTone = {\n name: 'trademark-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst TrademarkCircleOutline = {\n name: 'trademark-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst TrademarkCircleFill = {\n name: 'trademark-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst ToTopOutline = {\n name: 'to-top',\n theme: 'outline',\n icon: ' '\n};\n\nconst TrademarkOutline = {\n name: 'trademark',\n theme: 'outline',\n icon: ' '\n};\n\nconst TrophyFill = {\n name: 'trophy',\n theme: 'fill',\n icon: ' '\n};\n\nconst TransactionOutline = {\n name: 'transaction',\n theme: 'outline',\n icon: ' '\n};\n\nconst TrophyOutline = {\n name: 'trophy',\n theme: 'outline',\n icon: ' '\n};\n\nconst SoundOutline = {\n name: 'sound',\n theme: 'outline',\n icon: ' '\n};\n\nconst TwitterCircleFill = {\n name: 'twitter-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst TrophyTwoTone = {\n name: 'trophy',\n theme: 'twotone',\n icon: ' '\n};\n\nconst UnderlineOutline = {\n name: 'underline',\n theme: 'outline',\n icon: ' '\n};\n\nconst UnlockFill = {\n name: 'unlock',\n theme: 'fill',\n icon: ' '\n};\n\nconst TwitterOutline = {\n name: 'twitter',\n theme: 'outline',\n icon: ' '\n};\n\nconst UnlockOutline = {\n name: 'unlock',\n theme: 'outline',\n icon: ' '\n};\n\nconst UndoOutline = {\n name: 'undo',\n theme: 'outline',\n icon: ' '\n};\n\nconst UnlockTwoTone = {\n name: 'unlock',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SettingOutline = {\n name: 'setting',\n theme: 'outline',\n icon: ' '\n};\n\nconst UngroupOutline = {\n name: 'ungroup',\n theme: 'outline',\n icon: ' '\n};\n\nconst SelectOutline = {\n name: 'select',\n theme: 'outline',\n icon: ' '\n};\n\nconst UpCircleTwoTone = {\n name: 'up-circle',\n theme: 'twotone',\n icon: ' '\n};\n\nconst SlackCircleFill = {\n name: 'slack-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst UpCircleOutline = {\n name: 'up-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst UpSquareOutline = {\n name: 'up-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst UpCircleFill = {\n name: 'up-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst TwitterSquareFill = {\n name: 'twitter-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst UnorderedListOutline = {\n name: 'unordered-list',\n theme: 'outline',\n icon: ' '\n};\n\nconst UploadOutline = {\n name: 'upload',\n theme: 'outline',\n icon: ' '\n};\n\nconst UpOutline = {\n name: 'up',\n theme: 'outline',\n icon: ' '\n};\n\nconst TabletOutline = {\n name: 'tablet',\n theme: 'outline',\n icon: ' '\n};\n\nconst UsbTwoTone = {\n name: 'usb',\n theme: 'twotone',\n icon: ' '\n};\n\nconst UserDeleteOutline = {\n name: 'user-delete',\n theme: 'outline',\n icon: ' '\n};\n\nconst UsbFill = {\n name: 'usb',\n theme: 'fill',\n icon: ' '\n};\n\nconst UserOutline = {\n name: 'user',\n theme: 'outline',\n icon: ' '\n};\n\nconst UsergroupDeleteOutline = {\n name: 'usergroup-delete',\n theme: 'outline',\n icon: ' '\n};\n\nconst UserSwitchOutline = {\n name: 'user-switch',\n theme: 'outline',\n icon: ' '\n};\n\nconst VerifiedOutline = {\n name: 'verified',\n theme: 'outline',\n icon: ' '\n};\n\nconst VerticalAlignMiddleOutline = {\n name: 'vertical-align-middle',\n theme: 'outline',\n icon: ' '\n};\n\nconst VerticalAlignTopOutline = {\n name: 'vertical-align-top',\n theme: 'outline',\n icon: ' '\n};\n\nconst VideoCameraAddOutline = {\n name: 'video-camera-add',\n theme: 'outline',\n icon: ' '\n};\n\nconst VerticalAlignBottomOutline = {\n name: 'vertical-align-bottom',\n theme: 'outline',\n icon: ' '\n};\n\nconst UpSquareFill = {\n name: 'up-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst VideoCameraTwoTone = {\n name: 'video-camera',\n theme: 'twotone',\n icon: ' '\n};\n\nconst VerticalRightOutline = {\n name: 'vertical-right',\n theme: 'outline',\n icon: ' '\n};\n\nconst VerticalLeftOutline = {\n name: 'vertical-left',\n theme: 'outline',\n icon: ' '\n};\n\nconst UsbOutline = {\n name: 'usb',\n theme: 'outline',\n icon: ' '\n};\n\nconst VideoCameraFill = {\n name: 'video-camera',\n theme: 'fill',\n icon: ' '\n};\n\nconst WarningTwoTone = {\n name: 'warning',\n theme: 'twotone',\n icon: ' '\n};\n\nconst WalletOutline = {\n name: 'wallet',\n theme: 'outline',\n icon: ' '\n};\n\nconst WalletTwoTone = {\n name: 'wallet',\n theme: 'twotone',\n icon: ' '\n};\n\nconst VideoCameraOutline = {\n name: 'video-camera',\n theme: 'outline',\n icon: ' '\n};\n\nconst WeiboSquareOutline = {\n name: 'weibo-square',\n theme: 'outline',\n icon: ' '\n};\n\nconst WalletFill = {\n name: 'wallet',\n theme: 'fill',\n icon: ' '\n};\n\nconst WeiboOutline = {\n name: 'weibo',\n theme: 'outline',\n icon: ' '\n};\n\nconst WechatOutline = {\n name: 'wechat',\n theme: 'outline',\n icon: ' '\n};\n\nconst WeiboCircleFill = {\n name: 'weibo-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst WeiboCircleOutline = {\n name: 'weibo-circle',\n theme: 'outline',\n icon: ' '\n};\n\nconst UsergroupAddOutline = {\n name: 'usergroup-add',\n theme: 'outline',\n icon: ' '\n};\n\nconst WeiboSquareFill = {\n name: 'weibo-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst WhatsAppOutline = {\n name: 'whats-app',\n theme: 'outline',\n icon: ' '\n};\n\nconst WomanOutline = {\n name: 'woman',\n theme: 'outline',\n icon: ' '\n};\n\nconst YahooFill = {\n name: 'yahoo',\n theme: 'fill',\n icon: ' '\n};\n\nconst ZhihuCircleFill = {\n name: 'zhihu-circle',\n theme: 'fill',\n icon: ' '\n};\n\nconst WarningFill = {\n name: 'warning',\n theme: 'fill',\n icon: ' '\n};\n\nconst YoutubeFill = {\n name: 'youtube',\n theme: 'fill',\n icon: ' '\n};\n\nconst TranslationOutline = {\n name: 'translation',\n theme: 'outline',\n icon: ' '\n};\n\nconst WindowsOutline = {\n name: 'windows',\n theme: 'outline',\n icon: ' '\n};\n\nconst WindowsFill = {\n name: 'windows',\n theme: 'fill',\n icon: ' '\n};\n\nconst WifiOutline = {\n name: 'wifi',\n theme: 'outline',\n icon: ' '\n};\n\nconst YahooOutline = {\n name: 'yahoo',\n theme: 'outline',\n icon: ' '\n};\n\nconst WechatFill = {\n name: 'wechat',\n theme: 'fill',\n icon: ' '\n};\n\nconst UpSquareTwoTone = {\n name: 'up-square',\n theme: 'twotone',\n icon: ' '\n};\n\nconst YuqueOutline = {\n name: 'yuque',\n theme: 'outline',\n icon: ' '\n};\n\nconst ZhihuSquareFill = {\n name: 'zhihu-square',\n theme: 'fill',\n icon: ' '\n};\n\nconst YuqueFill = {\n name: 'yuque',\n theme: 'fill',\n icon: ' '\n};\n\nconst WarningOutline = {\n name: 'warning',\n theme: 'outline',\n icon: ' '\n};\n\nconst ZoomInOutline = {\n name: 'zoom-in',\n theme: 'outline',\n icon: ' '\n};\n\nconst SortDescendingOutline = {\n name: 'sort-descending',\n theme: 'outline',\n icon: ' '\n};\n\nconst YoutubeOutline = {\n name: 'youtube',\n theme: 'outline',\n icon: ' '\n};\n\nconst SkinFill = {\n name: 'skin',\n theme: 'fill',\n icon: ' '\n};\n\nconst ZoomOutOutline = {\n name: 'zoom-out',\n theme: 'outline',\n icon: ' '\n};\n\nconst ZhihuOutline = {\n name: 'zhihu',\n theme: 'outline',\n icon: ' '\n};\n\nconst SnippetsTwoTone = {\n name: 'snippets',\n theme: 'twotone',\n icon: ' '\n};\n\nconst UserAddOutline = {\n name: 'user-add',\n theme: 'outline',\n icon: ' '\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AccountBookFill, AccountBookOutline, AccountBookTwoTone, AimOutline, AlertFill, AlertOutline, AlertTwoTone, AlibabaOutline, AlignCenterOutline, AlignLeftOutline, AlignRightOutline, AlipayCircleFill, AlipayCircleOutline, AlipayOutline, AlipaySquareFill, AliwangwangFill, AliwangwangOutline, AliyunOutline, AmazonCircleFill, AmazonOutline, AmazonSquareFill, AndroidFill, AndroidOutline, AntCloudOutline, AntDesignOutline, ApartmentOutline, ApiFill, ApiOutline, ApiTwoTone, AppleFill, AppleOutline, AppstoreAddOutline, AppstoreFill, AppstoreOutline, AppstoreTwoTone, AreaChartOutline, ArrowDownOutline, ArrowLeftOutline, ArrowRightOutline, ArrowUpOutline, ArrowsAltOutline, AudioFill, AudioMutedOutline, AudioOutline, AudioTwoTone, AuditOutline, BackwardFill, BackwardOutline, BankFill, BankOutline, BankTwoTone, BarChartOutline, BarcodeOutline, BarsOutline, BehanceCircleFill, BehanceOutline, BehanceSquareFill, BehanceSquareOutline, BellFill, BellOutline, BellTwoTone, BgColorsOutline, BlockOutline, BoldOutline, BookFill, BookOutline, BookTwoTone, BorderBottomOutline, BorderHorizontalOutline, BorderInnerOutline, BorderLeftOutline, BorderOuterOutline, BorderOutline, BorderRightOutline, BorderTopOutline, BorderVerticleOutline, BorderlessTableOutline, BoxPlotFill, BoxPlotOutline, BoxPlotTwoTone, BranchesOutline, BugFill, BugOutline, BugTwoTone, BuildFill, BuildOutline, BuildTwoTone, BulbFill, BulbOutline, BulbTwoTone, CalculatorFill, CalculatorOutline, CalculatorTwoTone, CalendarFill, CalendarOutline, CalendarTwoTone, CameraFill, CameraOutline, CameraTwoTone, CarFill, CarOutline, CarTwoTone, CaretDownFill, CaretDownOutline, CaretLeftFill, CaretLeftOutline, CaretRightFill, CaretRightOutline, CaretUpFill, CaretUpOutline, CarryOutFill, CarryOutOutline, CarryOutTwoTone, CheckCircleFill, CheckCircleOutline, CheckCircleTwoTone, CheckOutline, CheckSquareFill, CheckSquareOutline, CheckSquareTwoTone, ChromeFill, ChromeOutline, CiCircleFill, CiCircleOutline, CiCircleTwoTone, CiOutline, CiTwoTone, ClearOutline, ClockCircleFill, ClockCircleOutline, ClockCircleTwoTone, CloseCircleFill, CloseCircleOutline, CloseCircleTwoTone, CloseOutline, CloseSquareFill, CloseSquareOutline, CloseSquareTwoTone, CloudDownloadOutline, CloudFill, CloudOutline, CloudServerOutline, CloudSyncOutline, CloudTwoTone, CloudUploadOutline, ClusterOutline, CodeFill, CodeOutline, CodeSandboxCircleFill, CodeSandboxOutline, CodeSandboxSquareFill, CodeTwoTone, CodepenCircleFill, CodepenCircleOutline, CodepenOutline, CodepenSquareFill, CoffeeOutline, ColumnHeightOutline, ColumnWidthOutline, CommentOutline, CompassFill, CompassOutline, CompassTwoTone, CompressOutline, ConsoleSqlOutline, ContactsFill, ContactsOutline, ContactsTwoTone, ContainerFill, ContainerOutline, ContainerTwoTone, ControlFill, ControlOutline, ControlTwoTone, CopyFill, CopyOutline, CopyTwoTone, CopyrightCircleFill, CopyrightCircleOutline, CopyrightCircleTwoTone, CopyrightOutline, CopyrightTwoTone, CreditCardFill, CreditCardOutline, CreditCardTwoTone, CrownFill, CrownOutline, CrownTwoTone, CustomerServiceFill, CustomerServiceOutline, CustomerServiceTwoTone, DashOutline, DashboardFill, DashboardOutline, DashboardTwoTone, DatabaseFill, DatabaseOutline, DatabaseTwoTone, DeleteColumnOutline, DeleteFill, DeleteOutline, DeleteRowOutline, DeleteTwoTone, DeliveredProcedureOutline, DeploymentUnitOutline, DesktopOutline, DiffFill, DiffOutline, DiffTwoTone, DingdingOutline, DingtalkCircleFill, DingtalkOutline, DingtalkSquareFill, DisconnectOutline, DislikeFill, DislikeOutline, DislikeTwoTone, DollarCircleFill, DollarCircleOutline, DollarCircleTwoTone, DollarOutline, DollarTwoTone, DotChartOutline, DoubleLeftOutline, DoubleRightOutline, DownCircleFill, DownCircleOutline, DownCircleTwoTone, DownOutline, DownSquareFill, DownSquareOutline, DownSquareTwoTone, DownloadOutline, DragOutline, DribbbleCircleFill, DribbbleOutline, DribbbleSquareFill, DribbbleSquareOutline, DropboxCircleFill, DropboxOutline, DropboxSquareFill, EditFill, EditOutline, EditTwoTone, EllipsisOutline, EnterOutline, EnvironmentFill, EnvironmentOutline, EnvironmentTwoTone, EuroCircleFill, EuroCircleOutline, EuroCircleTwoTone, EuroOutline, EuroTwoTone, ExceptionOutline, ExclamationCircleFill, ExclamationCircleOutline, ExclamationCircleTwoTone, ExclamationOutline, ExpandAltOutline, ExpandOutline, ExperimentFill, ExperimentOutline, ExperimentTwoTone, ExportOutline, EyeFill, EyeInvisibleFill, EyeInvisibleOutline, EyeInvisibleTwoTone, EyeOutline, EyeTwoTone, FacebookFill, FacebookOutline, FallOutline, FastBackwardFill, FastBackwardOutline, FastForwardFill, FastForwardOutline, FieldBinaryOutline, FieldNumberOutline, FieldStringOutline, FieldTimeOutline, FileAddFill, FileAddOutline, FileAddTwoTone, FileDoneOutline, FileExcelFill, FileExcelOutline, FileExcelTwoTone, FileExclamationFill, FileExclamationOutline, FileExclamationTwoTone, FileFill, FileGifOutline, FileImageFill, FileImageOutline, FileImageTwoTone, FileJpgOutline, FileMarkdownFill, FileMarkdownOutline, FileMarkdownTwoTone, FileOutline, FilePdfFill, FilePdfOutline, FilePdfTwoTone, FilePptFill, FilePptOutline, FilePptTwoTone, FileProtectOutline, FileSearchOutline, FileSyncOutline, FileTextFill, FileTextOutline, FileTextTwoTone, FileTwoTone, FileUnknownFill, FileUnknownOutline, FileUnknownTwoTone, FileWordFill, FileWordOutline, FileWordTwoTone, FileZipFill, FileZipOutline, FileZipTwoTone, FilterFill, FilterOutline, FilterTwoTone, FireFill, FireOutline, FireTwoTone, FlagFill, FlagOutline, FlagTwoTone, FolderAddFill, FolderAddOutline, FolderAddTwoTone, FolderFill, FolderOpenFill, FolderOpenOutline, FolderOpenTwoTone, FolderOutline, FolderTwoTone, FolderViewOutline, FontColorsOutline, FontSizeOutline, ForkOutline, FormOutline, FormatPainterFill, FormatPainterOutline, ForwardFill, ForwardOutline, FrownFill, FrownOutline, FrownTwoTone, FullscreenExitOutline, FullscreenOutline, FunctionOutline, FundFill, FundOutline, FundProjectionScreenOutline, FundTwoTone, FundViewOutline, FunnelPlotFill, FunnelPlotOutline, FunnelPlotTwoTone, GatewayOutline, GifOutline, GiftFill, GiftOutline, GiftTwoTone, GithubFill, GithubOutline, GitlabFill, GitlabOutline, GlobalOutline, GoldFill, GoldOutline, GoldTwoTone, GoldenFill, GoogleCircleFill, GoogleOutline, GooglePlusCircleFill, GooglePlusOutline, GooglePlusSquareFill, GoogleSquareFill, GroupOutline, HddFill, HddOutline, HddTwoTone, HeartFill, HeartOutline, HeartTwoTone, HeatMapOutline, HighlightFill, HighlightOutline, HighlightTwoTone, HistoryOutline, HolderOutline, HomeFill, HomeOutline, HomeTwoTone, HourglassFill, HourglassOutline, HourglassTwoTone, Html5Fill, Html5Outline, Html5TwoTone, IdcardFill, IdcardOutline, IdcardTwoTone, IeCircleFill, IeOutline, IeSquareFill, ImportOutline, InboxOutline, InfoCircleFill, InfoCircleOutline, InfoCircleTwoTone, InfoOutline, InsertRowAboveOutline, InsertRowBelowOutline, InsertRowLeftOutline, InsertRowRightOutline, InstagramFill, InstagramOutline, InsuranceFill, InsuranceOutline, InsuranceTwoTone, InteractionFill, InteractionOutline, InteractionTwoTone, IssuesCloseOutline, ItalicOutline, KeyOutline, LaptopOutline, LayoutFill, LayoutOutline, LayoutTwoTone, LeftCircleFill, LeftCircleOutline, LeftCircleTwoTone, LeftOutline, LeftSquareFill, LeftSquareOutline, LeftSquareTwoTone, LikeFill, LikeOutline, LikeTwoTone, LineChartOutline, LineHeightOutline, LineOutline, LinkOutline, LinkedinFill, LinkedinOutline, Loading3QuartersOutline, LoadingOutline, LockFill, LockOutline, LockTwoTone, LoginOutline, LogoutOutline, MacCommandFill, MacCommandOutline, MailFill, MailOutline, MailTwoTone, ManOutline, MedicineBoxFill, MedicineBoxOutline, MedicineBoxTwoTone, MediumCircleFill, MediumOutline, MediumSquareFill, MediumWorkmarkOutline, MehFill, MehOutline, MehTwoTone, MenuFoldOutline, MenuOutline, MenuUnfoldOutline, MergeCellsOutline, MessageFill, MessageOutline, MessageTwoTone, MinusCircleFill, MinusCircleOutline, MinusCircleTwoTone, MinusOutline, MinusSquareFill, MinusSquareOutline, MinusSquareTwoTone, MobileFill, MobileOutline, MobileTwoTone, MoneyCollectFill, MoneyCollectOutline, MoneyCollectTwoTone, MonitorOutline, MoreOutline, NodeCollapseOutline, NodeExpandOutline, NodeIndexOutline, NotificationFill, NotificationOutline, NotificationTwoTone, NumberOutline, OneToOneOutline, OrderedListOutline, PaperClipOutline, PartitionOutline, PauseCircleFill, PauseCircleOutline, PauseCircleTwoTone, PauseOutline, PayCircleFill, PayCircleOutline, PercentageOutline, PhoneFill, PhoneOutline, PhoneTwoTone, PicCenterOutline, PicLeftOutline, PicRightOutline, PictureFill, PictureOutline, PictureTwoTone, PieChartFill, PieChartOutline, PieChartTwoTone, PlayCircleFill, PlayCircleOutline, PlayCircleTwoTone, PlaySquareFill, PlaySquareOutline, PlaySquareTwoTone, PlusCircleFill, PlusCircleOutline, PlusCircleTwoTone, PlusOutline, PlusSquareFill, PlusSquareOutline, PlusSquareTwoTone, PoundCircleFill, PoundCircleOutline, PoundCircleTwoTone, PoundOutline, PoweroffOutline, PrinterFill, PrinterOutline, PrinterTwoTone, ProfileFill, ProfileOutline, ProfileTwoTone, ProjectFill, ProjectOutline, ProjectTwoTone, PropertySafetyFill, PropertySafetyOutline, PropertySafetyTwoTone, PullRequestOutline, PushpinFill, PushpinOutline, PushpinTwoTone, QqCircleFill, QqOutline, QqSquareFill, QrcodeOutline, QuestionCircleFill, QuestionCircleOutline, QuestionCircleTwoTone, QuestionOutline, RadarChartOutline, RadiusBottomleftOutline, RadiusBottomrightOutline, RadiusSettingOutline, RadiusUpleftOutline, RadiusUprightOutline, ReadFill, ReadOutline, ReconciliationFill, ReconciliationOutline, ReconciliationTwoTone, RedEnvelopeFill, RedEnvelopeOutline, RedEnvelopeTwoTone, RedditCircleFill, RedditOutline, RedditSquareFill, RedoOutline, ReloadOutline, RestFill, RestOutline, RestTwoTone, RetweetOutline, RightCircleFill, RightCircleOutline, RightCircleTwoTone, RightOutline, RightSquareFill, RightSquareOutline, RightSquareTwoTone, RiseOutline, RobotFill, RobotOutline, RocketFill, RocketOutline, RocketTwoTone, RollbackOutline, RotateLeftOutline, RotateRightOutline, SafetyCertificateFill, SafetyCertificateOutline, SafetyCertificateTwoTone, SafetyOutline, SaveFill, SaveOutline, SaveTwoTone, ScanOutline, ScheduleFill, ScheduleOutline, ScheduleTwoTone, ScissorOutline, SearchOutline, SecurityScanFill, SecurityScanOutline, SecurityScanTwoTone, SelectOutline, SendOutline, SettingFill, SettingOutline, SettingTwoTone, ShakeOutline, ShareAltOutline, ShopFill, ShopOutline, ShopTwoTone, ShoppingCartOutline, ShoppingFill, ShoppingOutline, ShoppingTwoTone, ShrinkOutline, SignalFill, SisternodeOutline, SketchCircleFill, SketchOutline, SketchSquareFill, SkinFill, SkinOutline, SkinTwoTone, SkypeFill, SkypeOutline, SlackCircleFill, SlackOutline, SlackSquareFill, SlackSquareOutline, SlidersFill, SlidersOutline, SlidersTwoTone, SmallDashOutline, SmileFill, SmileOutline, SmileTwoTone, SnippetsFill, SnippetsOutline, SnippetsTwoTone, SolutionOutline, SortAscendingOutline, SortDescendingOutline, SoundFill, SoundOutline, SoundTwoTone, SplitCellsOutline, StarFill, StarOutline, StarTwoTone, StepBackwardFill, StepBackwardOutline, StepForwardFill, StepForwardOutline, StockOutline, StopFill, StopOutline, StopTwoTone, StrikethroughOutline, SubnodeOutline, SwapLeftOutline, SwapOutline, SwapRightOutline, SwitcherFill, SwitcherOutline, SwitcherTwoTone, SyncOutline, TableOutline, TabletFill, TabletOutline, TabletTwoTone, TagFill, TagOutline, TagTwoTone, TagsFill, TagsOutline, TagsTwoTone, TaobaoCircleFill, TaobaoCircleOutline, TaobaoOutline, TaobaoSquareFill, TeamOutline, ThunderboltFill, ThunderboltOutline, ThunderboltTwoTone, ToTopOutline, ToolFill, ToolOutline, ToolTwoTone, TrademarkCircleFill, TrademarkCircleOutline, TrademarkCircleTwoTone, TrademarkOutline, TransactionOutline, TranslationOutline, TrophyFill, TrophyOutline, TrophyTwoTone, TwitterCircleFill, TwitterOutline, TwitterSquareFill, UnderlineOutline, UndoOutline, UngroupOutline, UnlockFill, UnlockOutline, UnlockTwoTone, UnorderedListOutline, UpCircleFill, UpCircleOutline, UpCircleTwoTone, UpOutline, UpSquareFill, UpSquareOutline, UpSquareTwoTone, UploadOutline, UsbFill, UsbOutline, UsbTwoTone, UserAddOutline, UserDeleteOutline, UserOutline, UserSwitchOutline, UsergroupAddOutline, UsergroupDeleteOutline, VerifiedOutline, VerticalAlignBottomOutline, VerticalAlignMiddleOutline, VerticalAlignTopOutline, VerticalLeftOutline, VerticalRightOutline, VideoCameraAddOutline, VideoCameraFill, VideoCameraOutline, VideoCameraTwoTone, WalletFill, WalletOutline, WalletTwoTone, WarningFill, WarningOutline, WarningTwoTone, WechatFill, WechatOutline, WeiboCircleFill, WeiboCircleOutline, WeiboOutline, WeiboSquareFill, WeiboSquareOutline, WhatsAppOutline, WifiOutline, WindowsFill, WindowsOutline, WomanOutline, YahooFill, YahooOutline, YoutubeFill, YoutubeOutline, YuqueFill, YuqueOutline, ZhihuCircleFill, ZhihuOutline, ZhihuSquareFill, ZoomInOutline, ZoomOutOutline };\n\n", "import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Optional, Inject, Self, Directive, Input, NgModule } from '@angular/core';\nimport { __decorate } from 'tslib';\nimport { Subject, from } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { IconService, IconDirective } from '@ant-design/icons-angular';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\nimport { DOCUMENT } from '@angular/common';\nimport { BarsOutline, CalendarOutline, CaretUpFill, CaretUpOutline, CaretDownFill, CaretDownOutline, CheckCircleFill, CheckCircleOutline, CheckOutline, ClockCircleOutline, CloseCircleOutline, CloseCircleFill, CloseOutline, CopyOutline, DeleteOutline, DoubleLeftOutline, DoubleRightOutline, DownOutline, EditOutline, EllipsisOutline, ExclamationCircleFill, ExclamationCircleOutline, EyeOutline, FileFill, FileOutline, FilterFill, InfoCircleFill, InfoCircleOutline, LeftOutline, LoadingOutline, PaperClipOutline, QuestionCircleOutline, RightOutline, RotateRightOutline, RotateLeftOutline, StarFill, SearchOutline, UploadOutline, VerticalAlignTopOutline, UpOutline, SwapRightOutline, ZoomInOutline, ZoomOutOutline } from '@ant-design/icons-angular/icons';\nimport * as i1 from '@angular/platform-browser';\nimport * as i2 from 'ng-zorro-antd/core/config';\nimport * as i3 from '@angular/cdk/platform';\nimport * as i4 from '@angular/common/http';\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 NZ_ICONS_USED_BY_ZORRO = [BarsOutline, CalendarOutline, CaretUpFill, CaretUpOutline, CaretDownFill, CaretDownOutline, CheckCircleFill, CheckCircleOutline, CheckOutline, ClockCircleOutline, CloseCircleOutline, CloseCircleFill, CloseOutline, CopyOutline, DeleteOutline, DoubleLeftOutline, DoubleRightOutline, DownOutline, EditOutline, EllipsisOutline, ExclamationCircleFill, ExclamationCircleOutline, EyeOutline, FileFill, FileOutline, FilterFill, InfoCircleFill, InfoCircleOutline, LeftOutline, LoadingOutline, PaperClipOutline, QuestionCircleOutline, RightOutline, RotateRightOutline, RotateLeftOutline, StarFill, SearchOutline, StarFill, UploadOutline, VerticalAlignTopOutline, UpOutline, SwapRightOutline, ZoomInOutline, ZoomOutOutline];\nconst NZ_ICONS = new InjectionToken('nz_icons');\nconst NZ_ICON_DEFAULT_TWOTONE_COLOR = new InjectionToken('nz_icon_default_twotone_color');\nconst DEFAULT_TWOTONE_COLOR = '#1890ff';\n/**\n * It should be a global singleton, otherwise registered icons could not be found.\n */\nclass NzIconService extends IconService {\n get _disableDynamicLoading() {\n return !this.platform.isBrowser;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\n }\n normalizeSvgElement(svg) {\n if (!svg.getAttribute('viewBox')) {\n this._renderer.setAttribute(svg, 'viewBox', '0 0 1024 1024');\n }\n if (!svg.getAttribute('width') || !svg.getAttribute('height')) {\n this._renderer.setAttribute(svg, 'width', '1em');\n this._renderer.setAttribute(svg, 'height', '1em');\n }\n if (!svg.getAttribute('fill')) {\n this._renderer.setAttribute(svg, 'fill', 'currentColor');\n }\n }\n fetchFromIconfont(opt) {\n const {\n scriptUrl\n } = opt;\n if (this._document && !this.iconfontCache.has(scriptUrl)) {\n const script = this._renderer.createElement('script');\n this._renderer.setAttribute(script, 'src', scriptUrl);\n this._renderer.setAttribute(script, 'data-namespace', scriptUrl.replace(/^(https?|http):/g, ''));\n this._renderer.appendChild(this._document.body, script);\n this.iconfontCache.add(scriptUrl);\n }\n }\n createIconfontIcon(type) {\n return this._createSVGElementFromString(` `);\n }\n constructor(rendererFactory, sanitizer, nzConfigService, platform, handler, _document, icons) {\n super(rendererFactory, handler, _document, sanitizer, [...NZ_ICONS_USED_BY_ZORRO, ...(icons || [])]);\n this.nzConfigService = nzConfigService;\n this.platform = platform;\n this.configUpdated$ = new Subject();\n this.iconfontCache = new Set();\n this.subscription = null;\n this.onConfigChange();\n this.configDefaultTwotoneColor();\n this.configDefaultTheme();\n }\n onConfigChange() {\n this.subscription = this.nzConfigService.getConfigChangeEventForComponent('icon').subscribe(() => {\n this.configDefaultTwotoneColor();\n this.configDefaultTheme();\n this.configUpdated$.next();\n });\n }\n configDefaultTheme() {\n const iconConfig = this.getConfig();\n this.defaultTheme = iconConfig.nzTheme || 'outline';\n }\n configDefaultTwotoneColor() {\n const iconConfig = this.getConfig();\n const defaultTwotoneColor = iconConfig.nzTwotoneColor || DEFAULT_TWOTONE_COLOR;\n let primaryColor = DEFAULT_TWOTONE_COLOR;\n if (defaultTwotoneColor) {\n if (defaultTwotoneColor.startsWith('#')) {\n primaryColor = defaultTwotoneColor;\n } else {\n warn('Twotone color must be a hex color!');\n }\n }\n this.twoToneColor = {\n primaryColor\n };\n }\n getConfig() {\n return this.nzConfigService.getConfigForComponent('icon') || {};\n }\n static {\n this.ɵfac = function NzIconService_Factory(t) {\n return new (t || NzIconService)(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.DomSanitizer), i0.ɵɵinject(i2.NzConfigService), i0.ɵɵinject(i3.Platform), i0.ɵɵinject(i4.HttpBackend, 8), i0.ɵɵinject(DOCUMENT, 8), i0.ɵɵinject(NZ_ICONS, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzIconService,\n factory: NzIconService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzIconService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i0.RendererFactory2\n }, {\n type: i1.DomSanitizer\n }, {\n type: i2.NzConfigService\n }, {\n type: i3.Platform\n }, {\n type: i4.HttpBackend,\n decorators: [{\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NZ_ICONS]\n }]\n }], null);\n})();\nconst NZ_ICONS_PATCH = new InjectionToken('nz_icons_patch');\nclass NzIconPatchService {\n constructor(extraIcons, rootIconService) {\n this.extraIcons = extraIcons;\n this.rootIconService = rootIconService;\n this.patched = false;\n }\n doPatch() {\n if (this.patched) {\n return;\n }\n this.extraIcons.forEach(iconDefinition => this.rootIconService.addIcon(iconDefinition));\n this.patched = true;\n }\n static {\n this.ɵfac = function NzIconPatchService_Factory(t) {\n return new (t || NzIconPatchService)(i0.ɵɵinject(NZ_ICONS_PATCH, 2), i0.ɵɵinject(NzIconService));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzIconPatchService,\n factory: NzIconPatchService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzIconPatchService, [{\n type: Injectable\n }], () => [{\n type: undefined,\n decorators: [{\n type: Self\n }, {\n type: Inject,\n args: [NZ_ICONS_PATCH]\n }]\n }, {\n type: NzIconService\n }], null);\n})();\nclass NzIconDirective extends IconDirective {\n set nzSpin(value) {\n this.spin = value;\n }\n set nzType(value) {\n this.type = value;\n }\n set nzTheme(value) {\n this.theme = value;\n }\n set nzTwotoneColor(value) {\n this.twoToneColor = value;\n }\n set nzIconfont(value) {\n this.iconfont = value;\n }\n constructor(ngZone, changeDetectorRef, elementRef, iconService, renderer, iconPatch) {\n super(iconService, elementRef, renderer);\n this.ngZone = ngZone;\n this.changeDetectorRef = changeDetectorRef;\n this.iconService = iconService;\n this.renderer = renderer;\n this.cacheClassName = null;\n this.nzRotate = 0;\n this.spin = false;\n this.destroy$ = new Subject();\n if (iconPatch) {\n iconPatch.doPatch();\n }\n this.el = elementRef.nativeElement;\n }\n ngOnChanges(changes) {\n const {\n nzType,\n nzTwotoneColor,\n nzSpin,\n nzTheme,\n nzRotate\n } = changes;\n if (nzType || nzTwotoneColor || nzSpin || nzTheme) {\n this.changeIcon2();\n } else if (nzRotate) {\n this.handleRotate(this.el.firstChild);\n } else {\n this._setSVGElement(this.iconService.createIconfontIcon(`#${this.iconfont}`));\n }\n }\n ngOnInit() {\n this.renderer.setAttribute(this.el, 'class', `anticon ${this.el.className}`.trim());\n }\n /**\n * If custom content is provided, try to normalize SVG elements.\n */\n ngAfterContentChecked() {\n if (!this.type) {\n const children = this.el.children;\n let length = children.length;\n if (!this.type && children.length) {\n while (length--) {\n const child = children[length];\n if (child.tagName.toLowerCase() === 'svg') {\n this.iconService.normalizeSvgElement(child);\n }\n }\n }\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n }\n /**\n * Replacement of `changeIcon` for more modifications.\n */\n changeIcon2() {\n this.setClassName();\n // The Angular zone is left deliberately before the SVG is set\n // since `_changeIcon` spawns asynchronous tasks as promise and\n // HTTP calls. This is used to reduce the number of change detections\n // while the icon is being loaded dynamically.\n this.ngZone.runOutsideAngular(() => {\n from(this._changeIcon()).pipe(takeUntil(this.destroy$)).subscribe({\n next: svgOrRemove => {\n // Get back into the Angular zone after completing all the tasks.\n // Since we manually run change detection locally, we have to re-enter\n // the zone because the change detection might also be run on other local\n // components, leading them to handle template functions outside of the Angular zone.\n this.ngZone.run(() => {\n // The _changeIcon method would call Renderer to remove the element of the old icon,\n // which would call `markElementAsRemoved` eventually,\n // so we should call `detectChanges` to tell Angular remove the DOM node.\n // #7186\n this.changeDetectorRef.detectChanges();\n if (svgOrRemove) {\n this.setSVGData(svgOrRemove);\n this.handleSpin(svgOrRemove);\n this.handleRotate(svgOrRemove);\n }\n });\n },\n error: warn\n });\n });\n }\n handleSpin(svg) {\n if (this.spin || this.type === 'loading') {\n this.renderer.addClass(svg, 'anticon-spin');\n } else {\n this.renderer.removeClass(svg, 'anticon-spin');\n }\n }\n handleRotate(svg) {\n if (this.nzRotate) {\n this.renderer.setAttribute(svg, 'style', `transform: rotate(${this.nzRotate}deg)`);\n } else {\n this.renderer.removeAttribute(svg, 'style');\n }\n }\n setClassName() {\n if (this.cacheClassName) {\n this.renderer.removeClass(this.el, this.cacheClassName);\n }\n this.cacheClassName = `anticon-${this.type}`;\n this.renderer.addClass(this.el, this.cacheClassName);\n }\n setSVGData(svg) {\n this.renderer.setAttribute(svg, 'data-icon', this.type);\n this.renderer.setAttribute(svg, 'aria-hidden', 'true');\n }\n static {\n this.ɵfac = function NzIconDirective_Factory(t) {\n return new (t || NzIconDirective)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(NzIconService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(NzIconPatchService, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzIconDirective,\n selectors: [[\"\", \"nz-icon\", \"\"]],\n hostVars: 2,\n hostBindings: function NzIconDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"anticon\", true);\n }\n },\n inputs: {\n nzSpin: \"nzSpin\",\n nzRotate: \"nzRotate\",\n nzType: \"nzType\",\n nzTheme: \"nzTheme\",\n nzTwotoneColor: \"nzTwotoneColor\",\n nzIconfont: \"nzIconfont\"\n },\n exportAs: [\"nzIcon\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n__decorate([InputBoolean()], NzIconDirective.prototype, \"nzSpin\", null);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzIconDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-icon]',\n exportAs: 'nzIcon',\n host: {\n '[class.anticon]': 'true'\n },\n standalone: true\n }]\n }], () => [{\n type: i0.NgZone\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: NzIconService\n }, {\n type: i0.Renderer2\n }, {\n type: NzIconPatchService,\n decorators: [{\n type: Optional\n }]\n }], {\n nzSpin: [{\n type: Input\n }],\n nzRotate: [{\n type: Input\n }],\n nzType: [{\n type: Input\n }],\n nzTheme: [{\n type: Input\n }],\n nzTwotoneColor: [{\n type: Input\n }],\n nzIconfont: [{\n type: Input\n }]\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 NzIconModule {\n static forRoot(icons) {\n return {\n ngModule: NzIconModule,\n providers: [{\n provide: NZ_ICONS,\n useValue: icons\n }]\n };\n }\n static forChild(icons) {\n return {\n ngModule: NzIconModule,\n providers: [NzIconPatchService, {\n provide: NZ_ICONS_PATCH,\n useValue: icons\n }]\n };\n }\n static {\n this.ɵfac = function NzIconModule_Factory(t) {\n return new (t || NzIconModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzIconModule,\n imports: [NzIconDirective],\n exports: [NzIconDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzIconModule, [{\n type: NgModule,\n args: [{\n imports: [NzIconDirective],\n exports: [NzIconDirective]\n }]\n }], null, null);\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 { DEFAULT_TWOTONE_COLOR, NZ_ICONS, NZ_ICONS_PATCH, NZ_ICONS_USED_BY_ZORRO, NZ_ICON_DEFAULT_TWOTONE_COLOR, NzIconDirective, NzIconModule, NzIconPatchService, NzIconService };\n"],
- "mappings": "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",
- "names": ["warn", "name"]
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-WB57DPWD.js b/.angular/cache/17.0.7/vite/deps/chunk-WB57DPWD.js
deleted file mode 100644
index 4ca736a..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-WB57DPWD.js
+++ /dev/null
@@ -1,233 +0,0 @@
-import {
- Platform
-} from "./chunk-IAC53GOD.js";
-import {
- coerceArray
-} from "./chunk-M5GY4FCO.js";
-import {
- CSP_NONCE,
- Inject,
- Injectable,
- NgModule,
- NgZone,
- Observable,
- Optional,
- Subject,
- combineLatest,
- concat,
- debounceTime,
- map,
- setClassMetadata,
- skip,
- startWith,
- take,
- takeUntil,
- ɵɵdefineInjectable,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵinject
-} from "./chunk-FGESKT7O.js";
-
-// node_modules/@angular/cdk/fesm2022/layout.mjs
-var _LayoutModule = class _LayoutModule {
-};
-_LayoutModule.ɵfac = function LayoutModule_Factory(t) {
- return new (t || _LayoutModule)();
-};
-_LayoutModule.ɵmod = ɵɵdefineNgModule({
- type: _LayoutModule
-});
-_LayoutModule.ɵinj = ɵɵdefineInjector({});
-var LayoutModule = _LayoutModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(LayoutModule, [{
- type: NgModule,
- args: [{}]
- }], null, null);
-})();
-var mediaQueriesForWebkitCompatibility = /* @__PURE__ */ new Set();
-var mediaQueryStyleNode;
-var _MediaMatcher = class _MediaMatcher {
- constructor(_platform, _nonce) {
- this._platform = _platform;
- this._nonce = _nonce;
- this._matchMedia = this._platform.isBrowser && window.matchMedia ? (
- // matchMedia is bound to the window scope intentionally as it is an illegal invocation to
- // call it from a different scope.
- window.matchMedia.bind(window)
- ) : noopMatchMedia;
- }
- /**
- * Evaluates the given media query and returns the native MediaQueryList from which results
- * can be retrieved.
- * Confirms the layout engine will trigger for the selector query provided and returns the
- * MediaQueryList for the query provided.
- */
- matchMedia(query) {
- if (this._platform.WEBKIT || this._platform.BLINK) {
- createEmptyStyleRule(query, this._nonce);
- }
- return this._matchMedia(query);
- }
-};
-_MediaMatcher.ɵfac = function MediaMatcher_Factory(t) {
- return new (t || _MediaMatcher)(ɵɵinject(Platform), ɵɵinject(CSP_NONCE, 8));
-};
-_MediaMatcher.ɵprov = ɵɵdefineInjectable({
- token: _MediaMatcher,
- factory: _MediaMatcher.ɵfac,
- providedIn: "root"
-});
-var MediaMatcher = _MediaMatcher;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MediaMatcher, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: Platform
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [CSP_NONCE]
- }]
- }], null);
-})();
-function createEmptyStyleRule(query, nonce) {
- if (mediaQueriesForWebkitCompatibility.has(query)) {
- return;
- }
- try {
- if (!mediaQueryStyleNode) {
- mediaQueryStyleNode = document.createElement("style");
- if (nonce) {
- mediaQueryStyleNode.nonce = nonce;
- }
- mediaQueryStyleNode.setAttribute("type", "text/css");
- document.head.appendChild(mediaQueryStyleNode);
- }
- if (mediaQueryStyleNode.sheet) {
- mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);
- mediaQueriesForWebkitCompatibility.add(query);
- }
- } catch (e) {
- console.error(e);
- }
-}
-function noopMatchMedia(query) {
- return {
- matches: query === "all" || query === "",
- media: query,
- addListener: () => {
- },
- removeListener: () => {
- }
- };
-}
-var _BreakpointObserver = class _BreakpointObserver {
- constructor(_mediaMatcher, _zone) {
- this._mediaMatcher = _mediaMatcher;
- this._zone = _zone;
- this._queries = /* @__PURE__ */ new Map();
- this._destroySubject = new Subject();
- }
- /** Completes the active subject, signalling to all other observables to complete. */
- ngOnDestroy() {
- this._destroySubject.next();
- this._destroySubject.complete();
- }
- /**
- * Whether one or more media queries match the current viewport size.
- * @param value One or more media queries to check.
- * @returns Whether any of the media queries match.
- */
- isMatched(value) {
- const queries = splitQueries(coerceArray(value));
- return queries.some((mediaQuery) => this._registerQuery(mediaQuery).mql.matches);
- }
- /**
- * Gets an observable of results for the given queries that will emit new results for any changes
- * in matching of the given queries.
- * @param value One or more media queries to check.
- * @returns A stream of matches for the given queries.
- */
- observe(value) {
- const queries = splitQueries(coerceArray(value));
- const observables = queries.map((query) => this._registerQuery(query).observable);
- let stateObservable = combineLatest(observables);
- stateObservable = concat(stateObservable.pipe(take(1)), stateObservable.pipe(skip(1), debounceTime(0)));
- return stateObservable.pipe(map((breakpointStates) => {
- const response = {
- matches: false,
- breakpoints: {}
- };
- breakpointStates.forEach(({
- matches,
- query
- }) => {
- response.matches = response.matches || matches;
- response.breakpoints[query] = matches;
- });
- return response;
- }));
- }
- /** Registers a specific query to be listened for. */
- _registerQuery(query) {
- if (this._queries.has(query)) {
- return this._queries.get(query);
- }
- const mql = this._mediaMatcher.matchMedia(query);
- const queryObservable = new Observable((observer) => {
- const handler = (e) => this._zone.run(() => observer.next(e));
- mql.addListener(handler);
- return () => {
- mql.removeListener(handler);
- };
- }).pipe(startWith(mql), map(({
- matches
- }) => ({
- query,
- matches
- })), takeUntil(this._destroySubject));
- const output = {
- observable: queryObservable,
- mql
- };
- this._queries.set(query, output);
- return output;
- }
-};
-_BreakpointObserver.ɵfac = function BreakpointObserver_Factory(t) {
- return new (t || _BreakpointObserver)(ɵɵinject(MediaMatcher), ɵɵinject(NgZone));
-};
-_BreakpointObserver.ɵprov = ɵɵdefineInjectable({
- token: _BreakpointObserver,
- factory: _BreakpointObserver.ɵfac,
- providedIn: "root"
-});
-var BreakpointObserver = _BreakpointObserver;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BreakpointObserver, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: MediaMatcher
- }, {
- type: NgZone
- }], null);
-})();
-function splitQueries(queries) {
- return queries.map((query) => query.split(",")).reduce((a1, a2) => a1.concat(a2)).map((query) => query.trim());
-}
-
-export {
- MediaMatcher,
- BreakpointObserver
-};
-//# sourceMappingURL=chunk-WB57DPWD.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-WB57DPWD.js.map b/.angular/cache/17.0.7/vite/deps/chunk-WB57DPWD.js.map
deleted file mode 100644
index d4c4e95..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-WB57DPWD.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/@angular/cdk/fesm2022/layout.mjs"],
- "sourcesContent": ["import * as i0 from '@angular/core';\nimport { NgModule, CSP_NONCE, Injectable, Optional, Inject } from '@angular/core';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { Subject, combineLatest, concat, Observable } from 'rxjs';\nimport { take, skip, debounceTime, map, startWith, takeUntil } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\nclass LayoutModule {\n static {\n this.ɵfac = function LayoutModule_Factory(t) {\n return new (t || LayoutModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: LayoutModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(LayoutModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\n\n/** Global registry for all dynamically-created, injected media queries. */\nconst mediaQueriesForWebkitCompatibility = new Set();\n/** Style tag that holds all of the dynamically-created media queries. */\nlet mediaQueryStyleNode;\n/** A utility for calling matchMedia queries. */\nclass MediaMatcher {\n constructor(_platform, _nonce) {\n this._platform = _platform;\n this._nonce = _nonce;\n this._matchMedia = this._platform.isBrowser && window.matchMedia ?\n // matchMedia is bound to the window scope intentionally as it is an illegal invocation to\n // call it from a different scope.\n window.matchMedia.bind(window) : noopMatchMedia;\n }\n /**\n * Evaluates the given media query and returns the native MediaQueryList from which results\n * can be retrieved.\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n */\n matchMedia(query) {\n if (this._platform.WEBKIT || this._platform.BLINK) {\n createEmptyStyleRule(query, this._nonce);\n }\n return this._matchMedia(query);\n }\n static {\n this.ɵfac = function MediaMatcher_Factory(t) {\n return new (t || MediaMatcher)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(CSP_NONCE, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MediaMatcher,\n factory: MediaMatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MediaMatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CSP_NONCE]\n }]\n }], null);\n})();\n/**\n * Creates an empty stylesheet that is used to work around browser inconsistencies related to\n * `matchMedia`. At the time of writing, it handles the following cases:\n * 1. On WebKit browsers, a media query has to have at least one rule in order for `matchMedia`\n * to fire. We work around it by declaring a dummy stylesheet with a `@media` declaration.\n * 2. In some cases Blink browsers will stop firing the `matchMedia` listener if none of the rules\n * inside the `@media` match existing elements on the page. We work around it by having one rule\n * targeting the `body`. See https://github.com/angular/components/issues/23546.\n */\nfunction createEmptyStyleRule(query, nonce) {\n if (mediaQueriesForWebkitCompatibility.has(query)) {\n return;\n }\n try {\n if (!mediaQueryStyleNode) {\n mediaQueryStyleNode = document.createElement('style');\n if (nonce) {\n mediaQueryStyleNode.nonce = nonce;\n }\n mediaQueryStyleNode.setAttribute('type', 'text/css');\n document.head.appendChild(mediaQueryStyleNode);\n }\n if (mediaQueryStyleNode.sheet) {\n mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);\n mediaQueriesForWebkitCompatibility.add(query);\n }\n } catch (e) {\n console.error(e);\n }\n}\n/** No-op matchMedia replacement for non-browser platforms. */\nfunction noopMatchMedia(query) {\n // Use `as any` here to avoid adding additional necessary properties for\n // the noop matcher.\n return {\n matches: query === 'all' || query === '',\n media: query,\n addListener: () => {},\n removeListener: () => {}\n };\n}\n\n/** Utility for checking the matching state of @media queries. */\nclass BreakpointObserver {\n constructor(_mediaMatcher, _zone) {\n this._mediaMatcher = _mediaMatcher;\n this._zone = _zone;\n /** A map of all media queries currently being listened for. */\n this._queries = new Map();\n /** A subject for all other observables to takeUntil based on. */\n this._destroySubject = new Subject();\n }\n /** Completes the active subject, signalling to all other observables to complete. */\n ngOnDestroy() {\n this._destroySubject.next();\n this._destroySubject.complete();\n }\n /**\n * Whether one or more media queries match the current viewport size.\n * @param value One or more media queries to check.\n * @returns Whether any of the media queries match.\n */\n isMatched(value) {\n const queries = splitQueries(coerceArray(value));\n return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);\n }\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes\n * in matching of the given queries.\n * @param value One or more media queries to check.\n * @returns A stream of matches for the given queries.\n */\n observe(value) {\n const queries = splitQueries(coerceArray(value));\n const observables = queries.map(query => this._registerQuery(query).observable);\n let stateObservable = combineLatest(observables);\n // Emit the first state immediately, and then debounce the subsequent emissions.\n stateObservable = concat(stateObservable.pipe(take(1)), stateObservable.pipe(skip(1), debounceTime(0)));\n return stateObservable.pipe(map(breakpointStates => {\n const response = {\n matches: false,\n breakpoints: {}\n };\n breakpointStates.forEach(({\n matches,\n query\n }) => {\n response.matches = response.matches || matches;\n response.breakpoints[query] = matches;\n });\n return response;\n }));\n }\n /** Registers a specific query to be listened for. */\n _registerQuery(query) {\n // Only set up a new MediaQueryList if it is not already being listened for.\n if (this._queries.has(query)) {\n return this._queries.get(query);\n }\n const mql = this._mediaMatcher.matchMedia(query);\n // Create callback for match changes and add it is as a listener.\n const queryObservable = new Observable(observer => {\n // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed\n // back into the zone because matchMedia is only included in Zone.js by loading the\n // webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not\n // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js\n // patches it.\n const handler = e => this._zone.run(() => observer.next(e));\n mql.addListener(handler);\n return () => {\n mql.removeListener(handler);\n };\n }).pipe(startWith(mql), map(({\n matches\n }) => ({\n query,\n matches\n })), takeUntil(this._destroySubject));\n // Add the MediaQueryList to the set of queries.\n const output = {\n observable: queryObservable,\n mql\n };\n this._queries.set(query, output);\n return output;\n }\n static {\n this.ɵfac = function BreakpointObserver_Factory(t) {\n return new (t || BreakpointObserver)(i0.ɵɵinject(MediaMatcher), i0.ɵɵinject(i0.NgZone));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BreakpointObserver,\n factory: BreakpointObserver.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BreakpointObserver, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: MediaMatcher\n }, {\n type: i0.NgZone\n }], null);\n})();\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n */\nfunction splitQueries(queries) {\n return queries.map(query => query.split(',')).reduce((a1, a2) => a1.concat(a2)).map(query => query.trim());\n}\n\n// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nconst Breakpoints = {\n XSmall: '(max-width: 599.98px)',\n Small: '(min-width: 600px) and (max-width: 959.98px)',\n Medium: '(min-width: 960px) and (max-width: 1279.98px)',\n Large: '(min-width: 1280px) and (max-width: 1919.98px)',\n XLarge: '(min-width: 1920px)',\n Handset: '(max-width: 599.98px) and (orientation: portrait), ' + '(max-width: 959.98px) and (orientation: landscape)',\n Tablet: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), ' + '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n Web: '(min-width: 840px) and (orientation: portrait), ' + '(min-width: 1280px) and (orientation: landscape)',\n HandsetPortrait: '(max-width: 599.98px) and (orientation: portrait)',\n TabletPortrait: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)',\n WebPortrait: '(min-width: 840px) and (orientation: portrait)',\n HandsetLandscape: '(max-width: 959.98px) and (orientation: landscape)',\n TabletLandscape: '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n WebLandscape: '(min-width: 1280px) and (orientation: landscape)'\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BreakpointObserver, Breakpoints, LayoutModule, MediaMatcher };\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-WKTPWT5U.js b/.angular/cache/17.0.7/vite/deps/chunk-WKTPWT5U.js
deleted file mode 100644
index 3e7ac27..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-WKTPWT5U.js
+++ /dev/null
@@ -1,1928 +0,0 @@
-import {
- NavigationEnd,
- Router,
- RouterLink
-} from "./chunk-CZEXXPIB.js";
-import {
- POSITION_MAP,
- getPlacementName
-} from "./chunk-6RXUTAFR.js";
-import {
- collapseMotion,
- slideMotion,
- zoomBigMotion
-} from "./chunk-XAGDQPFO.js";
-import {
- NzNoAnimationDirective
-} from "./chunk-55A2ZGND.js";
-import {
- CdkConnectedOverlay,
- CdkOverlayOrigin,
- OverlayModule
-} from "./chunk-6U656R5M.js";
-import {
- NzOutletModule,
- NzStringTemplateOutletDirective
-} from "./chunk-VOD2PKZN.js";
-import {
- NzIconDirective,
- NzIconModule
-} from "./chunk-VWMHIMW7.js";
-import {
- Directionality
-} from "./chunk-6NZ2BEBG.js";
-import {
- Platform
-} from "./chunk-IAC53GOD.js";
-import {
- InputBoolean
-} from "./chunk-M5GY4FCO.js";
-import {
- NgClass,
- NgIf,
- NgSwitch,
- NgSwitchCase,
- NgSwitchDefault,
- NgTemplateOutlet
-} from "./chunk-OSQBUYO6.js";
-import {
- BehaviorSubject,
- ChangeDetectionStrategy,
- ChangeDetectorRef,
- Component,
- ContentChildren,
- Directive,
- ElementRef,
- EventEmitter,
- Host,
- Inject,
- Injectable,
- InjectionToken,
- Input,
- NgModule,
- Optional,
- Output,
- Renderer2,
- SkipSelf,
- Subject,
- ViewChild,
- ViewEncapsulation$1,
- __decorate,
- auditTime,
- combineLatest,
- distinctUntilChanged,
- filter,
- forwardRef,
- inject,
- map,
- mapTo,
- merge,
- mergeMap,
- setClassMetadata,
- startWith,
- switchMap,
- takeUntil,
- ɵɵNgOnChangesFeature,
- ɵɵProvidersFeature,
- ɵɵStandaloneFeature,
- ɵɵadvance,
- ɵɵclassProp,
- ɵɵcontentQuery,
- ɵɵdefineComponent,
- ɵɵdefineDirective,
- ɵɵdefineInjectable,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵelement,
- ɵɵelementContainerEnd,
- ɵɵelementContainerStart,
- ɵɵelementEnd,
- ɵɵelementStart,
- ɵɵgetCurrentView,
- ɵɵinject,
- ɵɵlistener,
- ɵɵloadQuery,
- ɵɵnextContext,
- ɵɵprojection,
- ɵɵprojectionDef,
- ɵɵproperty,
- ɵɵqueryRefresh,
- ɵɵreference,
- ɵɵresetView,
- ɵɵrestoreView,
- ɵɵstyleProp,
- ɵɵsyntheticHostProperty,
- ɵɵtemplate,
- ɵɵtemplateRefExtractor,
- ɵɵtext,
- ɵɵtextInterpolate,
- ɵɵviewQuery
-} from "./chunk-FGESKT7O.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-menu.mjs
-var _c0 = ["nz-menu-item", ""];
-var _c1 = ["*"];
-var _c2 = ["nz-submenu-inline-child", ""];
-function NzSubmenuInlineChildComponent_ng_template_0_Template(rf, ctx) {
-}
-var _c3 = ["nz-submenu-none-inline-child", ""];
-function NzSubmenuNoneInlineChildComponent_ng_template_1_Template(rf, ctx) {
-}
-var _c4 = ["nz-submenu-title", ""];
-function NzSubMenuTitleComponent_span_0_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelement(0, "span", 4);
- }
- if (rf & 2) {
- const ctx_r0 = ɵɵnextContext();
- ɵɵproperty("nzType", ctx_r0.nzIcon);
- }
-}
-function NzSubMenuTitleComponent_ng_container_1_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵelementStart(1, "span", 5);
- ɵɵtext(2);
- ɵɵelementEnd();
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const ctx_r1 = ɵɵnextContext();
- ɵɵadvance(2);
- ɵɵtextInterpolate(ctx_r1.nzTitle);
- }
-}
-function NzSubMenuTitleComponent_span_3_span_1_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelement(0, "span", 9);
- }
-}
-function NzSubMenuTitleComponent_span_3_span_2_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelement(0, "span", 10);
- }
-}
-function NzSubMenuTitleComponent_span_3_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementStart(0, "span", 6);
- ɵɵtemplate(1, NzSubMenuTitleComponent_span_3_span_1_Template, 1, 0, "span", 7)(2, NzSubMenuTitleComponent_span_3_span_2_Template, 1, 0, "span", 8);
- ɵɵelementEnd();
- }
- if (rf & 2) {
- const ctx_r2 = ɵɵnextContext();
- ɵɵproperty("ngSwitch", ctx_r2.dir);
- ɵɵadvance(1);
- ɵɵproperty("ngSwitchCase", "rtl");
- }
-}
-function NzSubMenuTitleComponent_ng_template_4_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelement(0, "span", 11);
- }
-}
-var _c5 = ["nz-submenu", ""];
-function NzSubMenuComponent_ng_content_2_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojection(0, 0, ["*ngIf", "!nzTitle"]);
- }
-}
-function NzSubMenuComponent_div_3_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelement(0, "div", 6);
- }
- if (rf & 2) {
- const ctx_r2 = ɵɵnextContext();
- const _r6 = ɵɵreference(7);
- ɵɵproperty("mode", ctx_r2.mode)("nzOpen", ctx_r2.nzOpen)("@.disabled", !!(ctx_r2.noAnimation == null ? null : ctx_r2.noAnimation.nzNoAnimation))("nzNoAnimation", ctx_r2.noAnimation == null ? null : ctx_r2.noAnimation.nzNoAnimation)("menuClass", ctx_r2.nzMenuClassName)("templateOutlet", _r6);
- }
-}
-function NzSubMenuComponent_ng_template_4_ng_template_0_Template(rf, ctx) {
- if (rf & 1) {
- const _r9 = ɵɵgetCurrentView();
- ɵɵelementStart(0, "div", 8);
- ɵɵlistener("subMenuMouseState", function NzSubMenuComponent_ng_template_4_ng_template_0_Template_div_subMenuMouseState_0_listener($event) {
- ɵɵrestoreView(_r9);
- const ctx_r8 = ɵɵnextContext(2);
- return ɵɵresetView(ctx_r8.setMouseEnterState($event));
- });
- ɵɵelementEnd();
- }
- if (rf & 2) {
- const ctx_r7 = ɵɵnextContext(2);
- const _r6 = ɵɵreference(7);
- ɵɵproperty("theme", ctx_r7.theme)("mode", ctx_r7.mode)("nzOpen", ctx_r7.nzOpen)("position", ctx_r7.position)("nzDisabled", ctx_r7.nzDisabled)("isMenuInsideDropDown", ctx_r7.isMenuInsideDropDown)("templateOutlet", _r6)("menuClass", ctx_r7.nzMenuClassName)("@.disabled", !!(ctx_r7.noAnimation == null ? null : ctx_r7.noAnimation.nzNoAnimation))("nzNoAnimation", ctx_r7.noAnimation == null ? null : ctx_r7.noAnimation.nzNoAnimation);
- }
-}
-function NzSubMenuComponent_ng_template_4_Template(rf, ctx) {
- if (rf & 1) {
- const _r11 = ɵɵgetCurrentView();
- ɵɵtemplate(0, NzSubMenuComponent_ng_template_4_ng_template_0_Template, 1, 10, "ng-template", 7);
- ɵɵlistener("positionChange", function NzSubMenuComponent_ng_template_4_Template_ng_template_positionChange_0_listener($event) {
- ɵɵrestoreView(_r11);
- const ctx_r10 = ɵɵnextContext();
- return ɵɵresetView(ctx_r10.onPositionChange($event));
- });
- }
- if (rf & 2) {
- const ctx_r3 = ɵɵnextContext();
- const _r0 = ɵɵreference(1);
- ɵɵproperty("cdkConnectedOverlayPositions", ctx_r3.overlayPositions)("cdkConnectedOverlayOrigin", _r0)("cdkConnectedOverlayWidth", ctx_r3.triggerWidth)("cdkConnectedOverlayOpen", ctx_r3.nzOpen)("cdkConnectedOverlayTransformOriginOn", ".ant-menu-submenu");
- }
-}
-function NzSubMenuComponent_ng_template_6_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojection(0, 1);
- }
-}
-var _c6 = [[["", "title", ""]], "*"];
-var _c7 = ["[title]", "*"];
-var _c8 = ["titleElement"];
-var _c9 = ["nz-menu-group", ""];
-function NzMenuGroupComponent_ng_container_2_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵtext(1);
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const ctx_r1 = ɵɵnextContext();
- ɵɵadvance(1);
- ɵɵtextInterpolate(ctx_r1.nzTitle);
- }
-}
-function NzMenuGroupComponent_ng_content_3_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojection(0, 1, ["*ngIf", "!nzTitle"]);
- }
-}
-var _c10 = ["*", [["", "title", ""]]];
-var _c11 = ["*", "[title]"];
-var NzIsMenuInsideDropDownToken = new InjectionToken("NzIsInDropDownMenuToken");
-var NzMenuServiceLocalToken = new InjectionToken("NzMenuServiceLocalToken");
-var _MenuService = class _MenuService {
- constructor() {
- this.descendantMenuItemClick$ = new Subject();
- this.childMenuItemClick$ = new Subject();
- this.theme$ = new BehaviorSubject("light");
- this.mode$ = new BehaviorSubject("vertical");
- this.inlineIndent$ = new BehaviorSubject(24);
- this.isChildSubMenuOpen$ = new BehaviorSubject(false);
- }
- onDescendantMenuItemClick(menu) {
- this.descendantMenuItemClick$.next(menu);
- }
- onChildMenuItemClick(menu) {
- this.childMenuItemClick$.next(menu);
- }
- setMode(mode) {
- this.mode$.next(mode);
- }
- setTheme(theme) {
- this.theme$.next(theme);
- }
- setInlineIndent(indent) {
- this.inlineIndent$.next(indent);
- }
-};
-_MenuService.ɵfac = function MenuService_Factory(t) {
- return new (t || _MenuService)();
-};
-_MenuService.ɵprov = ɵɵdefineInjectable({
- token: _MenuService,
- factory: _MenuService.ɵfac
-});
-var MenuService = _MenuService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MenuService, [{
- type: Injectable
- }], null, null);
-})();
-var _NzSubmenuService = class _NzSubmenuService {
- /**
- * menu item inside submenu clicked
- *
- * @param menu
- */
- onChildMenuItemClick(menu) {
- this.childMenuItemClick$.next(menu);
- }
- setOpenStateWithoutDebounce(value) {
- this.isCurrentSubMenuOpen$.next(value);
- }
- setMouseEnterTitleOrOverlayState(value) {
- this.isMouseEnterTitleOrOverlay$.next(value);
- }
- constructor(nzHostSubmenuService, nzMenuService, isMenuInsideDropDown) {
- this.nzHostSubmenuService = nzHostSubmenuService;
- this.nzMenuService = nzMenuService;
- this.isMenuInsideDropDown = isMenuInsideDropDown;
- this.mode$ = this.nzMenuService.mode$.pipe(map((mode) => {
- if (mode === "inline") {
- return "inline";
- } else if (mode === "vertical" || this.nzHostSubmenuService) {
- return "vertical";
- } else {
- return "horizontal";
- }
- }));
- this.level = 1;
- this.isCurrentSubMenuOpen$ = new BehaviorSubject(false);
- this.isChildSubMenuOpen$ = new BehaviorSubject(false);
- this.isMouseEnterTitleOrOverlay$ = new Subject();
- this.childMenuItemClick$ = new Subject();
- this.destroy$ = new Subject();
- if (this.nzHostSubmenuService) {
- this.level = this.nzHostSubmenuService.level + 1;
- }
- const isClosedByMenuItemClick = this.childMenuItemClick$.pipe(mergeMap(() => this.mode$), filter((mode) => mode !== "inline" || this.isMenuInsideDropDown), mapTo(false));
- const isCurrentSubmenuOpen$ = merge(this.isMouseEnterTitleOrOverlay$, isClosedByMenuItemClick);
- const isSubMenuOpenWithDebounce$ = combineLatest([this.isChildSubMenuOpen$, isCurrentSubmenuOpen$]).pipe(map(([isChildSubMenuOpen, isCurrentSubmenuOpen]) => isChildSubMenuOpen || isCurrentSubmenuOpen), auditTime(150), distinctUntilChanged(), takeUntil(this.destroy$));
- isSubMenuOpenWithDebounce$.pipe(distinctUntilChanged()).subscribe((data) => {
- this.setOpenStateWithoutDebounce(data);
- if (this.nzHostSubmenuService) {
- this.nzHostSubmenuService.isChildSubMenuOpen$.next(data);
- } else {
- this.nzMenuService.isChildSubMenuOpen$.next(data);
- }
- });
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- }
-};
-_NzSubmenuService.ɵfac = function NzSubmenuService_Factory(t) {
- return new (t || _NzSubmenuService)(ɵɵinject(_NzSubmenuService, 12), ɵɵinject(MenuService), ɵɵinject(NzIsMenuInsideDropDownToken));
-};
-_NzSubmenuService.ɵprov = ɵɵdefineInjectable({
- token: _NzSubmenuService,
- factory: _NzSubmenuService.ɵfac
-});
-var NzSubmenuService = _NzSubmenuService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzSubmenuService, [{
- type: Injectable
- }], () => [{
- type: NzSubmenuService,
- decorators: [{
- type: SkipSelf
- }, {
- type: Optional
- }]
- }, {
- type: MenuService
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [NzIsMenuInsideDropDownToken]
- }]
- }], null);
-})();
-var _NzMenuItemComponent = class _NzMenuItemComponent {
- /** clear all item selected status except this */
- clickMenuItem(e) {
- if (this.nzDisabled) {
- e.preventDefault();
- e.stopPropagation();
- } else {
- this.nzMenuService.onDescendantMenuItemClick(this);
- if (this.nzSubmenuService) {
- this.nzSubmenuService.onChildMenuItemClick(this);
- } else {
- this.nzMenuService.onChildMenuItemClick(this);
- }
- }
- }
- setSelectedState(value) {
- this.nzSelected = value;
- this.selected$.next(value);
- }
- updateRouterActive() {
- if (!this.listOfRouterLink || !this.router || !this.router.navigated || !this.nzMatchRouter) {
- return;
- }
- Promise.resolve().then(() => {
- const hasActiveLinks = this.hasActiveLinks();
- if (this.nzSelected !== hasActiveLinks) {
- this.nzSelected = hasActiveLinks;
- this.setSelectedState(this.nzSelected);
- this.cdr.markForCheck();
- }
- });
- }
- hasActiveLinks() {
- const isActiveCheckFn = this.isLinkActive(this.router);
- return this.routerLink && isActiveCheckFn(this.routerLink) || this.listOfRouterLink.some(isActiveCheckFn);
- }
- isLinkActive(router) {
- return (link) => router.isActive(link.urlTree || "", {
- paths: this.nzMatchRouterExact ? "exact" : "subset",
- queryParams: this.nzMatchRouterExact ? "exact" : "subset",
- fragment: "ignored",
- matrixParams: "ignored"
- });
- }
- constructor(nzMenuService, cdr, nzSubmenuService, isMenuInsideDropDown, directionality, routerLink, router) {
- this.nzMenuService = nzMenuService;
- this.cdr = cdr;
- this.nzSubmenuService = nzSubmenuService;
- this.isMenuInsideDropDown = isMenuInsideDropDown;
- this.directionality = directionality;
- this.routerLink = routerLink;
- this.router = router;
- this.destroy$ = new Subject();
- this.level = this.nzSubmenuService ? this.nzSubmenuService.level + 1 : 1;
- this.selected$ = new Subject();
- this.inlinePaddingLeft = null;
- this.dir = "ltr";
- this.nzDisabled = false;
- this.nzSelected = false;
- this.nzDanger = false;
- this.nzMatchRouterExact = false;
- this.nzMatchRouter = false;
- if (router) {
- this.router.events.pipe(takeUntil(this.destroy$), filter((e) => e instanceof NavigationEnd)).subscribe(() => {
- this.updateRouterActive();
- });
- }
- }
- ngOnInit() {
- combineLatest([this.nzMenuService.mode$, this.nzMenuService.inlineIndent$]).pipe(takeUntil(this.destroy$)).subscribe(([mode, inlineIndent]) => {
- this.inlinePaddingLeft = mode === "inline" ? this.level * inlineIndent : null;
- });
- this.dir = this.directionality.value;
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- });
- }
- ngAfterContentInit() {
- this.listOfRouterLink.changes.pipe(takeUntil(this.destroy$)).subscribe(() => this.updateRouterActive());
- this.updateRouterActive();
- }
- ngOnChanges(changes) {
- if (changes.nzSelected) {
- this.setSelectedState(this.nzSelected);
- }
- }
- ngOnDestroy() {
- this.destroy$.next(true);
- this.destroy$.complete();
- }
-};
-_NzMenuItemComponent.ɵfac = function NzMenuItemComponent_Factory(t) {
- return new (t || _NzMenuItemComponent)(ɵɵdirectiveInject(MenuService), ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(NzSubmenuService, 8), ɵɵdirectiveInject(NzIsMenuInsideDropDownToken), ɵɵdirectiveInject(Directionality, 8), ɵɵdirectiveInject(RouterLink, 8), ɵɵdirectiveInject(Router, 8));
-};
-_NzMenuItemComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzMenuItemComponent,
- selectors: [["", "nz-menu-item", ""]],
- contentQueries: function NzMenuItemComponent_ContentQueries(rf, ctx, dirIndex) {
- if (rf & 1) {
- ɵɵcontentQuery(dirIndex, RouterLink, 5);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.listOfRouterLink = _t);
- }
- },
- hostVars: 20,
- hostBindings: function NzMenuItemComponent_HostBindings(rf, ctx) {
- if (rf & 1) {
- ɵɵlistener("click", function NzMenuItemComponent_click_HostBindingHandler($event) {
- return ctx.clickMenuItem($event);
- });
- }
- if (rf & 2) {
- ɵɵstyleProp("padding-left", ctx.dir === "rtl" ? null : ctx.nzPaddingLeft || ctx.inlinePaddingLeft, "px")("padding-right", ctx.dir === "rtl" ? ctx.nzPaddingLeft || ctx.inlinePaddingLeft : null, "px");
- ɵɵclassProp("ant-dropdown-menu-item", ctx.isMenuInsideDropDown)("ant-dropdown-menu-item-selected", ctx.isMenuInsideDropDown && ctx.nzSelected)("ant-dropdown-menu-item-danger", ctx.isMenuInsideDropDown && ctx.nzDanger)("ant-dropdown-menu-item-disabled", ctx.isMenuInsideDropDown && ctx.nzDisabled)("ant-menu-item", !ctx.isMenuInsideDropDown)("ant-menu-item-selected", !ctx.isMenuInsideDropDown && ctx.nzSelected)("ant-menu-item-danger", !ctx.isMenuInsideDropDown && ctx.nzDanger)("ant-menu-item-disabled", !ctx.isMenuInsideDropDown && ctx.nzDisabled);
- }
- },
- inputs: {
- nzPaddingLeft: "nzPaddingLeft",
- nzDisabled: "nzDisabled",
- nzSelected: "nzSelected",
- nzDanger: "nzDanger",
- nzMatchRouterExact: "nzMatchRouterExact",
- nzMatchRouter: "nzMatchRouter"
- },
- exportAs: ["nzMenuItem"],
- standalone: true,
- features: [ɵɵNgOnChangesFeature, ɵɵStandaloneFeature],
- attrs: _c0,
- ngContentSelectors: _c1,
- decls: 2,
- vars: 0,
- consts: [[1, "ant-menu-title-content"]],
- template: function NzMenuItemComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojectionDef();
- ɵɵelementStart(0, "span", 0);
- ɵɵprojection(1);
- ɵɵelementEnd();
- }
- },
- encapsulation: 2,
- changeDetection: 0
-});
-var NzMenuItemComponent = _NzMenuItemComponent;
-__decorate([InputBoolean()], NzMenuItemComponent.prototype, "nzDisabled", void 0);
-__decorate([InputBoolean()], NzMenuItemComponent.prototype, "nzSelected", void 0);
-__decorate([InputBoolean()], NzMenuItemComponent.prototype, "nzDanger", void 0);
-__decorate([InputBoolean()], NzMenuItemComponent.prototype, "nzMatchRouterExact", void 0);
-__decorate([InputBoolean()], NzMenuItemComponent.prototype, "nzMatchRouter", void 0);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzMenuItemComponent, [{
- type: Component,
- args: [{
- selector: "[nz-menu-item]",
- exportAs: "nzMenuItem",
- changeDetection: ChangeDetectionStrategy.OnPush,
- encapsulation: ViewEncapsulation$1.None,
- preserveWhitespaces: false,
- template: `
-
- `,
- host: {
- "[class.ant-dropdown-menu-item]": `isMenuInsideDropDown`,
- "[class.ant-dropdown-menu-item-selected]": `isMenuInsideDropDown && nzSelected`,
- "[class.ant-dropdown-menu-item-danger]": `isMenuInsideDropDown && nzDanger`,
- "[class.ant-dropdown-menu-item-disabled]": `isMenuInsideDropDown && nzDisabled`,
- "[class.ant-menu-item]": `!isMenuInsideDropDown`,
- "[class.ant-menu-item-selected]": `!isMenuInsideDropDown && nzSelected`,
- "[class.ant-menu-item-danger]": `!isMenuInsideDropDown && nzDanger`,
- "[class.ant-menu-item-disabled]": `!isMenuInsideDropDown && nzDisabled`,
- "[style.paddingLeft.px]": `dir === 'rtl' ? null : nzPaddingLeft || inlinePaddingLeft`,
- "[style.paddingRight.px]": `dir === 'rtl' ? nzPaddingLeft || inlinePaddingLeft : null`,
- "(click)": "clickMenuItem($event)"
- },
- standalone: true
- }]
- }], () => [{
- type: MenuService
- }, {
- type: ChangeDetectorRef
- }, {
- type: NzSubmenuService,
- decorators: [{
- type: Optional
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [NzIsMenuInsideDropDownToken]
- }]
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }, {
- type: RouterLink,
- decorators: [{
- type: Optional
- }]
- }, {
- type: Router,
- decorators: [{
- type: Optional
- }]
- }], {
- nzPaddingLeft: [{
- type: Input
- }],
- nzDisabled: [{
- type: Input
- }],
- nzSelected: [{
- type: Input
- }],
- nzDanger: [{
- type: Input
- }],
- nzMatchRouterExact: [{
- type: Input
- }],
- nzMatchRouter: [{
- type: Input
- }],
- listOfRouterLink: [{
- type: ContentChildren,
- args: [RouterLink, {
- descendants: true
- }]
- }]
- });
-})();
-var _NzSubmenuInlineChildComponent = class _NzSubmenuInlineChildComponent {
- constructor(elementRef, renderer, directionality) {
- this.elementRef = elementRef;
- this.renderer = renderer;
- this.directionality = directionality;
- this.templateOutlet = null;
- this.menuClass = "";
- this.mode = "vertical";
- this.nzOpen = false;
- this.listOfCacheClassName = [];
- this.expandState = "collapsed";
- this.dir = "ltr";
- this.destroy$ = new Subject();
- }
- calcMotionState() {
- if (this.nzOpen) {
- this.expandState = "expanded";
- } else {
- this.expandState = "collapsed";
- }
- }
- ngOnInit() {
- this.calcMotionState();
- this.dir = this.directionality.value;
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- });
- }
- ngOnChanges(changes) {
- const {
- mode,
- nzOpen,
- menuClass
- } = changes;
- if (mode || nzOpen) {
- this.calcMotionState();
- }
- if (menuClass) {
- if (this.listOfCacheClassName.length) {
- this.listOfCacheClassName.filter((item) => !!item).forEach((className) => {
- this.renderer.removeClass(this.elementRef.nativeElement, className);
- });
- }
- if (this.menuClass) {
- this.listOfCacheClassName = this.menuClass.split(" ");
- this.listOfCacheClassName.filter((item) => !!item).forEach((className) => {
- this.renderer.addClass(this.elementRef.nativeElement, className);
- });
- }
- }
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- }
-};
-_NzSubmenuInlineChildComponent.ɵfac = function NzSubmenuInlineChildComponent_Factory(t) {
- return new (t || _NzSubmenuInlineChildComponent)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(Directionality, 8));
-};
-_NzSubmenuInlineChildComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzSubmenuInlineChildComponent,
- selectors: [["", "nz-submenu-inline-child", ""]],
- hostAttrs: [1, "ant-menu", "ant-menu-inline", "ant-menu-sub"],
- hostVars: 3,
- hostBindings: function NzSubmenuInlineChildComponent_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵsyntheticHostProperty("@collapseMotion", ctx.expandState);
- ɵɵclassProp("ant-menu-rtl", ctx.dir === "rtl");
- }
- },
- inputs: {
- templateOutlet: "templateOutlet",
- menuClass: "menuClass",
- mode: "mode",
- nzOpen: "nzOpen"
- },
- exportAs: ["nzSubmenuInlineChild"],
- standalone: true,
- features: [ɵɵNgOnChangesFeature, ɵɵStandaloneFeature],
- attrs: _c2,
- decls: 1,
- vars: 1,
- consts: [[3, "ngTemplateOutlet"]],
- template: function NzSubmenuInlineChildComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵtemplate(0, NzSubmenuInlineChildComponent_ng_template_0_Template, 0, 0, "ng-template", 0);
- }
- if (rf & 2) {
- ɵɵproperty("ngTemplateOutlet", ctx.templateOutlet);
- }
- },
- dependencies: [NgTemplateOutlet],
- encapsulation: 2,
- data: {
- animation: [collapseMotion]
- },
- changeDetection: 0
-});
-var NzSubmenuInlineChildComponent = _NzSubmenuInlineChildComponent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzSubmenuInlineChildComponent, [{
- type: Component,
- args: [{
- selector: "[nz-submenu-inline-child]",
- animations: [collapseMotion],
- exportAs: "nzSubmenuInlineChild",
- encapsulation: ViewEncapsulation$1.None,
- changeDetection: ChangeDetectionStrategy.OnPush,
- template: ` `,
- host: {
- class: "ant-menu ant-menu-inline ant-menu-sub",
- "[class.ant-menu-rtl]": `dir === 'rtl'`,
- "[@collapseMotion]": "expandState"
- },
- imports: [NgTemplateOutlet],
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: Renderer2
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- templateOutlet: [{
- type: Input
- }],
- menuClass: [{
- type: Input
- }],
- mode: [{
- type: Input
- }],
- nzOpen: [{
- type: Input
- }]
- });
-})();
-var _NzSubmenuNoneInlineChildComponent = class _NzSubmenuNoneInlineChildComponent {
- constructor(directionality) {
- this.directionality = directionality;
- this.menuClass = "";
- this.theme = "light";
- this.templateOutlet = null;
- this.isMenuInsideDropDown = false;
- this.mode = "vertical";
- this.position = "right";
- this.nzDisabled = false;
- this.nzOpen = false;
- this.subMenuMouseState = new EventEmitter();
- this.expandState = "collapsed";
- this.dir = "ltr";
- this.destroy$ = new Subject();
- }
- setMouseState(state) {
- if (!this.nzDisabled) {
- this.subMenuMouseState.next(state);
- }
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- }
- calcMotionState() {
- if (this.nzOpen) {
- if (this.mode === "horizontal") {
- this.expandState = "bottom";
- } else if (this.mode === "vertical") {
- this.expandState = "active";
- }
- } else {
- this.expandState = "collapsed";
- }
- }
- ngOnInit() {
- this.calcMotionState();
- this.dir = this.directionality.value;
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- });
- }
- ngOnChanges(changes) {
- const {
- mode,
- nzOpen
- } = changes;
- if (mode || nzOpen) {
- this.calcMotionState();
- }
- }
-};
-_NzSubmenuNoneInlineChildComponent.ɵfac = function NzSubmenuNoneInlineChildComponent_Factory(t) {
- return new (t || _NzSubmenuNoneInlineChildComponent)(ɵɵdirectiveInject(Directionality, 8));
-};
-_NzSubmenuNoneInlineChildComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzSubmenuNoneInlineChildComponent,
- selectors: [["", "nz-submenu-none-inline-child", ""]],
- hostAttrs: [1, "ant-menu-submenu", "ant-menu-submenu-popup"],
- hostVars: 14,
- hostBindings: function NzSubmenuNoneInlineChildComponent_HostBindings(rf, ctx) {
- if (rf & 1) {
- ɵɵlistener("mouseenter", function NzSubmenuNoneInlineChildComponent_mouseenter_HostBindingHandler() {
- return ctx.setMouseState(true);
- })("mouseleave", function NzSubmenuNoneInlineChildComponent_mouseleave_HostBindingHandler() {
- return ctx.setMouseState(false);
- });
- }
- if (rf & 2) {
- ɵɵsyntheticHostProperty("@slideMotion", ctx.expandState)("@zoomBigMotion", ctx.expandState);
- ɵɵclassProp("ant-menu-light", ctx.theme === "light")("ant-menu-dark", ctx.theme === "dark")("ant-menu-submenu-placement-bottom", ctx.mode === "horizontal")("ant-menu-submenu-placement-right", ctx.mode === "vertical" && ctx.position === "right")("ant-menu-submenu-placement-left", ctx.mode === "vertical" && ctx.position === "left")("ant-menu-submenu-rtl", ctx.dir === "rtl");
- }
- },
- inputs: {
- menuClass: "menuClass",
- theme: "theme",
- templateOutlet: "templateOutlet",
- isMenuInsideDropDown: "isMenuInsideDropDown",
- mode: "mode",
- position: "position",
- nzDisabled: "nzDisabled",
- nzOpen: "nzOpen"
- },
- outputs: {
- subMenuMouseState: "subMenuMouseState"
- },
- exportAs: ["nzSubmenuNoneInlineChild"],
- standalone: true,
- features: [ɵɵNgOnChangesFeature, ɵɵStandaloneFeature],
- attrs: _c3,
- decls: 2,
- vars: 16,
- consts: [[3, "ngClass"], [3, "ngTemplateOutlet"]],
- template: function NzSubmenuNoneInlineChildComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementStart(0, "div", 0);
- ɵɵtemplate(1, NzSubmenuNoneInlineChildComponent_ng_template_1_Template, 0, 0, "ng-template", 1);
- ɵɵelementEnd();
- }
- if (rf & 2) {
- ɵɵclassProp("ant-dropdown-menu", ctx.isMenuInsideDropDown)("ant-menu", !ctx.isMenuInsideDropDown)("ant-dropdown-menu-vertical", ctx.isMenuInsideDropDown)("ant-menu-vertical", !ctx.isMenuInsideDropDown)("ant-dropdown-menu-sub", ctx.isMenuInsideDropDown)("ant-menu-sub", !ctx.isMenuInsideDropDown)("ant-menu-rtl", ctx.dir === "rtl");
- ɵɵproperty("ngClass", ctx.menuClass);
- ɵɵadvance(1);
- ɵɵproperty("ngTemplateOutlet", ctx.templateOutlet);
- }
- },
- dependencies: [NgClass, NgTemplateOutlet],
- encapsulation: 2,
- data: {
- animation: [zoomBigMotion, slideMotion]
- },
- changeDetection: 0
-});
-var NzSubmenuNoneInlineChildComponent = _NzSubmenuNoneInlineChildComponent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzSubmenuNoneInlineChildComponent, [{
- type: Component,
- args: [{
- selector: "[nz-submenu-none-inline-child]",
- exportAs: "nzSubmenuNoneInlineChild",
- encapsulation: ViewEncapsulation$1.None,
- animations: [zoomBigMotion, slideMotion],
- changeDetection: ChangeDetectionStrategy.OnPush,
- template: `
-
-
-
- `,
- host: {
- class: "ant-menu-submenu ant-menu-submenu-popup",
- "[class.ant-menu-light]": "theme === 'light'",
- "[class.ant-menu-dark]": "theme === 'dark'",
- "[class.ant-menu-submenu-placement-bottom]": "mode === 'horizontal'",
- "[class.ant-menu-submenu-placement-right]": "mode === 'vertical' && position === 'right'",
- "[class.ant-menu-submenu-placement-left]": "mode === 'vertical' && position === 'left'",
- "[class.ant-menu-submenu-rtl]": 'dir ==="rtl"',
- "[@slideMotion]": "expandState",
- "[@zoomBigMotion]": "expandState",
- "(mouseenter)": "setMouseState(true)",
- "(mouseleave)": "setMouseState(false)"
- },
- imports: [NgClass, NgTemplateOutlet],
- standalone: true
- }]
- }], () => [{
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- menuClass: [{
- type: Input
- }],
- theme: [{
- type: Input
- }],
- templateOutlet: [{
- type: Input
- }],
- isMenuInsideDropDown: [{
- type: Input
- }],
- mode: [{
- type: Input
- }],
- position: [{
- type: Input
- }],
- nzDisabled: [{
- type: Input
- }],
- nzOpen: [{
- type: Input
- }],
- subMenuMouseState: [{
- type: Output
- }]
- });
-})();
-var _NzSubMenuTitleComponent = class _NzSubMenuTitleComponent {
- constructor(cdr, directionality) {
- this.cdr = cdr;
- this.directionality = directionality;
- this.nzIcon = null;
- this.nzTitle = null;
- this.isMenuInsideDropDown = false;
- this.nzDisabled = false;
- this.paddingLeft = null;
- this.mode = "vertical";
- this.toggleSubMenu = new EventEmitter();
- this.subMenuMouseState = new EventEmitter();
- this.dir = "ltr";
- this.destroy$ = new Subject();
- }
- ngOnInit() {
- this.dir = this.directionality.value;
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- this.cdr.detectChanges();
- });
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- }
- setMouseState(state) {
- if (!this.nzDisabled) {
- this.subMenuMouseState.next(state);
- }
- }
- clickTitle() {
- if (this.mode === "inline" && !this.nzDisabled) {
- this.toggleSubMenu.emit();
- }
- }
-};
-_NzSubMenuTitleComponent.ɵfac = function NzSubMenuTitleComponent_Factory(t) {
- return new (t || _NzSubMenuTitleComponent)(ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(Directionality, 8));
-};
-_NzSubMenuTitleComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzSubMenuTitleComponent,
- selectors: [["", "nz-submenu-title", ""]],
- hostVars: 8,
- hostBindings: function NzSubMenuTitleComponent_HostBindings(rf, ctx) {
- if (rf & 1) {
- ɵɵlistener("click", function NzSubMenuTitleComponent_click_HostBindingHandler() {
- return ctx.clickTitle();
- })("mouseenter", function NzSubMenuTitleComponent_mouseenter_HostBindingHandler() {
- return ctx.setMouseState(true);
- })("mouseleave", function NzSubMenuTitleComponent_mouseleave_HostBindingHandler() {
- return ctx.setMouseState(false);
- });
- }
- if (rf & 2) {
- ɵɵstyleProp("padding-left", ctx.dir === "rtl" ? null : ctx.paddingLeft, "px")("padding-right", ctx.dir === "rtl" ? ctx.paddingLeft : null, "px");
- ɵɵclassProp("ant-dropdown-menu-submenu-title", ctx.isMenuInsideDropDown)("ant-menu-submenu-title", !ctx.isMenuInsideDropDown);
- }
- },
- inputs: {
- nzIcon: "nzIcon",
- nzTitle: "nzTitle",
- isMenuInsideDropDown: "isMenuInsideDropDown",
- nzDisabled: "nzDisabled",
- paddingLeft: "paddingLeft",
- mode: "mode"
- },
- outputs: {
- toggleSubMenu: "toggleSubMenu",
- subMenuMouseState: "subMenuMouseState"
- },
- exportAs: ["nzSubmenuTitle"],
- standalone: true,
- features: [ɵɵStandaloneFeature],
- attrs: _c4,
- ngContentSelectors: _c1,
- decls: 6,
- vars: 4,
- consts: [["nz-icon", "", 3, "nzType", 4, "ngIf"], [4, "nzStringTemplateOutlet"], ["class", "ant-dropdown-menu-submenu-expand-icon", 3, "ngSwitch", 4, "ngIf", "ngIfElse"], ["notDropdownTpl", ""], ["nz-icon", "", 3, "nzType"], [1, "ant-menu-title-content"], [1, "ant-dropdown-menu-submenu-expand-icon", 3, "ngSwitch"], ["nz-icon", "", "nzType", "left", "class", "ant-dropdown-menu-submenu-arrow-icon", 4, "ngSwitchCase"], ["nz-icon", "", "nzType", "right", "class", "ant-dropdown-menu-submenu-arrow-icon", 4, "ngSwitchDefault"], ["nz-icon", "", "nzType", "left", 1, "ant-dropdown-menu-submenu-arrow-icon"], ["nz-icon", "", "nzType", "right", 1, "ant-dropdown-menu-submenu-arrow-icon"], [1, "ant-menu-submenu-arrow"]],
- template: function NzSubMenuTitleComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojectionDef();
- ɵɵtemplate(0, NzSubMenuTitleComponent_span_0_Template, 1, 1, "span", 0)(1, NzSubMenuTitleComponent_ng_container_1_Template, 3, 1, "ng-container", 1);
- ɵɵprojection(2);
- ɵɵtemplate(3, NzSubMenuTitleComponent_span_3_Template, 3, 2, "span", 2)(4, NzSubMenuTitleComponent_ng_template_4_Template, 1, 0, "ng-template", null, 3, ɵɵtemplateRefExtractor);
- }
- if (rf & 2) {
- const _r4 = ɵɵreference(5);
- ɵɵproperty("ngIf", ctx.nzIcon);
- ɵɵadvance(1);
- ɵɵproperty("nzStringTemplateOutlet", ctx.nzTitle);
- ɵɵadvance(2);
- ɵɵproperty("ngIf", ctx.isMenuInsideDropDown)("ngIfElse", _r4);
- }
- },
- dependencies: [NzIconModule, NzIconDirective, NgIf, NzOutletModule, NzStringTemplateOutletDirective, NgSwitch, NgSwitchCase, NgSwitchDefault],
- encapsulation: 2,
- changeDetection: 0
-});
-var NzSubMenuTitleComponent = _NzSubMenuTitleComponent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzSubMenuTitleComponent, [{
- type: Component,
- args: [{
- selector: "[nz-submenu-title]",
- exportAs: "nzSubmenuTitle",
- encapsulation: ViewEncapsulation$1.None,
- changeDetection: ChangeDetectionStrategy.OnPush,
- template: `
-
-
-
-
-
-
-
-
-
-
-
-
- `,
- host: {
- "[class.ant-dropdown-menu-submenu-title]": "isMenuInsideDropDown",
- "[class.ant-menu-submenu-title]": "!isMenuInsideDropDown",
- "[style.paddingLeft.px]": `dir === 'rtl' ? null : paddingLeft `,
- "[style.paddingRight.px]": `dir === 'rtl' ? paddingLeft : null`,
- "(click)": "clickTitle()",
- "(mouseenter)": "setMouseState(true)",
- "(mouseleave)": "setMouseState(false)"
- },
- imports: [NzIconModule, NgIf, NzOutletModule, NgSwitch, NgSwitchCase, NgSwitchDefault],
- standalone: true
- }]
- }], () => [{
- type: ChangeDetectorRef
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- nzIcon: [{
- type: Input
- }],
- nzTitle: [{
- type: Input
- }],
- isMenuInsideDropDown: [{
- type: Input
- }],
- nzDisabled: [{
- type: Input
- }],
- paddingLeft: [{
- type: Input
- }],
- mode: [{
- type: Input
- }],
- toggleSubMenu: [{
- type: Output
- }],
- subMenuMouseState: [{
- type: Output
- }]
- });
-})();
-var listOfVerticalPositions = [POSITION_MAP.rightTop, POSITION_MAP.right, POSITION_MAP.rightBottom, POSITION_MAP.leftTop, POSITION_MAP.left, POSITION_MAP.leftBottom];
-var listOfHorizontalPositions = [POSITION_MAP.bottomLeft, POSITION_MAP.bottomRight, POSITION_MAP.topRight, POSITION_MAP.topLeft];
-var _NzSubMenuComponent = class _NzSubMenuComponent {
- /** set the submenu host open status directly **/
- setOpenStateWithoutDebounce(open) {
- this.nzSubmenuService.setOpenStateWithoutDebounce(open);
- }
- toggleSubMenu() {
- this.setOpenStateWithoutDebounce(!this.nzOpen);
- }
- setMouseEnterState(value) {
- this.isActive = value;
- if (this.mode !== "inline") {
- this.nzSubmenuService.setMouseEnterTitleOrOverlayState(value);
- }
- }
- setTriggerWidth() {
- if (this.mode === "horizontal" && this.platform.isBrowser && this.cdkOverlayOrigin && this.nzPlacement === "bottomLeft") {
- this.triggerWidth = this.cdkOverlayOrigin.nativeElement.getBoundingClientRect().width;
- }
- }
- onPositionChange(position) {
- const placement = getPlacementName(position);
- if (placement === "rightTop" || placement === "rightBottom" || placement === "right") {
- this.position = "right";
- } else if (placement === "leftTop" || placement === "leftBottom" || placement === "left") {
- this.position = "left";
- }
- }
- constructor(nzMenuService, cdr, nzSubmenuService, platform, isMenuInsideDropDown, directionality, noAnimation) {
- this.nzMenuService = nzMenuService;
- this.cdr = cdr;
- this.nzSubmenuService = nzSubmenuService;
- this.platform = platform;
- this.isMenuInsideDropDown = isMenuInsideDropDown;
- this.directionality = directionality;
- this.noAnimation = noAnimation;
- this.nzMenuClassName = "";
- this.nzPaddingLeft = null;
- this.nzTitle = null;
- this.nzIcon = null;
- this.nzOpen = false;
- this.nzDisabled = false;
- this.nzPlacement = "bottomLeft";
- this.nzOpenChange = new EventEmitter();
- this.cdkOverlayOrigin = null;
- this.listOfNzSubMenuComponent = null;
- this.listOfNzMenuItemDirective = null;
- this.level = this.nzSubmenuService.level;
- this.destroy$ = new Subject();
- this.position = "right";
- this.triggerWidth = null;
- this.theme = "light";
- this.mode = "vertical";
- this.inlinePaddingLeft = null;
- this.overlayPositions = listOfVerticalPositions;
- this.isSelected = false;
- this.isActive = false;
- this.dir = "ltr";
- }
- ngOnInit() {
- this.nzMenuService.theme$.pipe(takeUntil(this.destroy$)).subscribe((theme) => {
- this.theme = theme;
- this.cdr.markForCheck();
- });
- this.nzSubmenuService.mode$.pipe(takeUntil(this.destroy$)).subscribe((mode) => {
- this.mode = mode;
- if (mode === "horizontal") {
- this.overlayPositions = [POSITION_MAP[this.nzPlacement], ...listOfHorizontalPositions];
- } else if (mode === "vertical") {
- this.overlayPositions = listOfVerticalPositions;
- }
- this.cdr.markForCheck();
- });
- combineLatest([this.nzSubmenuService.mode$, this.nzMenuService.inlineIndent$]).pipe(takeUntil(this.destroy$)).subscribe(([mode, inlineIndent]) => {
- this.inlinePaddingLeft = mode === "inline" ? this.level * inlineIndent : null;
- this.cdr.markForCheck();
- });
- this.nzSubmenuService.isCurrentSubMenuOpen$.pipe(takeUntil(this.destroy$)).subscribe((open) => {
- this.isActive = open;
- if (open !== this.nzOpen) {
- this.setTriggerWidth();
- this.nzOpen = open;
- this.nzOpenChange.emit(this.nzOpen);
- this.cdr.markForCheck();
- }
- });
- this.dir = this.directionality.value;
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- this.cdr.markForCheck();
- });
- }
- ngAfterContentInit() {
- this.setTriggerWidth();
- const listOfNzMenuItemDirective = this.listOfNzMenuItemDirective;
- const changes = listOfNzMenuItemDirective.changes;
- const mergedObservable = merge(...[changes, ...listOfNzMenuItemDirective.map((menu) => menu.selected$)]);
- changes.pipe(startWith(listOfNzMenuItemDirective), switchMap(() => mergedObservable), startWith(true), map(() => listOfNzMenuItemDirective.some((e) => e.nzSelected)), takeUntil(this.destroy$)).subscribe((selected) => {
- this.isSelected = selected;
- this.cdr.markForCheck();
- });
- }
- ngOnChanges(changes) {
- const {
- nzOpen
- } = changes;
- if (nzOpen) {
- this.nzSubmenuService.setOpenStateWithoutDebounce(this.nzOpen);
- this.setTriggerWidth();
- }
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- }
-};
-_NzSubMenuComponent.ɵfac = function NzSubMenuComponent_Factory(t) {
- return new (t || _NzSubMenuComponent)(ɵɵdirectiveInject(MenuService), ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(NzSubmenuService), ɵɵdirectiveInject(Platform), ɵɵdirectiveInject(NzIsMenuInsideDropDownToken), ɵɵdirectiveInject(Directionality, 8), ɵɵdirectiveInject(NzNoAnimationDirective, 9));
-};
-_NzSubMenuComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzSubMenuComponent,
- selectors: [["", "nz-submenu", ""]],
- contentQueries: function NzSubMenuComponent_ContentQueries(rf, ctx, dirIndex) {
- if (rf & 1) {
- ɵɵcontentQuery(dirIndex, _NzSubMenuComponent, 5);
- ɵɵcontentQuery(dirIndex, NzMenuItemComponent, 5);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.listOfNzSubMenuComponent = _t);
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.listOfNzMenuItemDirective = _t);
- }
- },
- viewQuery: function NzSubMenuComponent_Query(rf, ctx) {
- if (rf & 1) {
- ɵɵviewQuery(CdkOverlayOrigin, 7, ElementRef);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.cdkOverlayOrigin = _t.first);
- }
- },
- hostVars: 34,
- hostBindings: function NzSubMenuComponent_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵclassProp("ant-dropdown-menu-submenu", ctx.isMenuInsideDropDown)("ant-dropdown-menu-submenu-disabled", ctx.isMenuInsideDropDown && ctx.nzDisabled)("ant-dropdown-menu-submenu-open", ctx.isMenuInsideDropDown && ctx.nzOpen)("ant-dropdown-menu-submenu-selected", ctx.isMenuInsideDropDown && ctx.isSelected)("ant-dropdown-menu-submenu-vertical", ctx.isMenuInsideDropDown && ctx.mode === "vertical")("ant-dropdown-menu-submenu-horizontal", ctx.isMenuInsideDropDown && ctx.mode === "horizontal")("ant-dropdown-menu-submenu-inline", ctx.isMenuInsideDropDown && ctx.mode === "inline")("ant-dropdown-menu-submenu-active", ctx.isMenuInsideDropDown && ctx.isActive)("ant-menu-submenu", !ctx.isMenuInsideDropDown)("ant-menu-submenu-disabled", !ctx.isMenuInsideDropDown && ctx.nzDisabled)("ant-menu-submenu-open", !ctx.isMenuInsideDropDown && ctx.nzOpen)("ant-menu-submenu-selected", !ctx.isMenuInsideDropDown && ctx.isSelected)("ant-menu-submenu-vertical", !ctx.isMenuInsideDropDown && ctx.mode === "vertical")("ant-menu-submenu-horizontal", !ctx.isMenuInsideDropDown && ctx.mode === "horizontal")("ant-menu-submenu-inline", !ctx.isMenuInsideDropDown && ctx.mode === "inline")("ant-menu-submenu-active", !ctx.isMenuInsideDropDown && ctx.isActive)("ant-menu-submenu-rtl", ctx.dir === "rtl");
- }
- },
- inputs: {
- nzMenuClassName: "nzMenuClassName",
- nzPaddingLeft: "nzPaddingLeft",
- nzTitle: "nzTitle",
- nzIcon: "nzIcon",
- nzOpen: "nzOpen",
- nzDisabled: "nzDisabled",
- nzPlacement: "nzPlacement"
- },
- outputs: {
- nzOpenChange: "nzOpenChange"
- },
- exportAs: ["nzSubmenu"],
- standalone: true,
- features: [ɵɵProvidersFeature([NzSubmenuService]), ɵɵNgOnChangesFeature, ɵɵStandaloneFeature],
- attrs: _c5,
- ngContentSelectors: _c7,
- decls: 8,
- vars: 9,
- consts: [["nz-submenu-title", "", "cdkOverlayOrigin", "", 3, "nzIcon", "nzTitle", "mode", "nzDisabled", "isMenuInsideDropDown", "paddingLeft", "subMenuMouseState", "toggleSubMenu"], ["origin", "cdkOverlayOrigin"], [4, "ngIf"], ["nz-submenu-inline-child", "", 3, "mode", "nzOpen", "nzNoAnimation", "menuClass", "templateOutlet", 4, "ngIf", "ngIfElse"], ["nonInlineTemplate", ""], ["subMenuTemplate", ""], ["nz-submenu-inline-child", "", 3, "mode", "nzOpen", "nzNoAnimation", "menuClass", "templateOutlet"], ["cdkConnectedOverlay", "", 3, "cdkConnectedOverlayPositions", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayWidth", "cdkConnectedOverlayOpen", "cdkConnectedOverlayTransformOriginOn", "positionChange"], ["nz-submenu-none-inline-child", "", 3, "theme", "mode", "nzOpen", "position", "nzDisabled", "isMenuInsideDropDown", "templateOutlet", "menuClass", "nzNoAnimation", "subMenuMouseState"]],
- template: function NzSubMenuComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojectionDef(_c6);
- ɵɵelementStart(0, "div", 0, 1);
- ɵɵlistener("subMenuMouseState", function NzSubMenuComponent_Template_div_subMenuMouseState_0_listener($event) {
- return ctx.setMouseEnterState($event);
- })("toggleSubMenu", function NzSubMenuComponent_Template_div_toggleSubMenu_0_listener() {
- return ctx.toggleSubMenu();
- });
- ɵɵtemplate(2, NzSubMenuComponent_ng_content_2_Template, 1, 0, "ng-content", 2);
- ɵɵelementEnd();
- ɵɵtemplate(3, NzSubMenuComponent_div_3_Template, 1, 6, "div", 3)(4, NzSubMenuComponent_ng_template_4_Template, 1, 5, "ng-template", null, 4, ɵɵtemplateRefExtractor)(6, NzSubMenuComponent_ng_template_6_Template, 1, 0, "ng-template", null, 5, ɵɵtemplateRefExtractor);
- }
- if (rf & 2) {
- const _r4 = ɵɵreference(5);
- ɵɵproperty("nzIcon", ctx.nzIcon)("nzTitle", ctx.nzTitle)("mode", ctx.mode)("nzDisabled", ctx.nzDisabled)("isMenuInsideDropDown", ctx.isMenuInsideDropDown)("paddingLeft", ctx.nzPaddingLeft || ctx.inlinePaddingLeft);
- ɵɵadvance(2);
- ɵɵproperty("ngIf", !ctx.nzTitle);
- ɵɵadvance(1);
- ɵɵproperty("ngIf", ctx.mode === "inline")("ngIfElse", _r4);
- }
- },
- dependencies: [NzSubMenuTitleComponent, NzSubmenuInlineChildComponent, NgIf, NzNoAnimationDirective, NzSubmenuNoneInlineChildComponent, OverlayModule, CdkConnectedOverlay, CdkOverlayOrigin],
- encapsulation: 2,
- changeDetection: 0
-});
-var NzSubMenuComponent = _NzSubMenuComponent;
-__decorate([InputBoolean()], NzSubMenuComponent.prototype, "nzOpen", void 0);
-__decorate([InputBoolean()], NzSubMenuComponent.prototype, "nzDisabled", void 0);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzSubMenuComponent, [{
- type: Component,
- args: [{
- selector: "[nz-submenu]",
- exportAs: "nzSubmenu",
- providers: [NzSubmenuService],
- encapsulation: ViewEncapsulation$1.None,
- changeDetection: ChangeDetectionStrategy.OnPush,
- preserveWhitespaces: false,
- template: `
-
-
-
-
-
-
-
-
-
-
-
-
-
- `,
- host: {
- "[class.ant-dropdown-menu-submenu]": `isMenuInsideDropDown`,
- "[class.ant-dropdown-menu-submenu-disabled]": `isMenuInsideDropDown && nzDisabled`,
- "[class.ant-dropdown-menu-submenu-open]": `isMenuInsideDropDown && nzOpen`,
- "[class.ant-dropdown-menu-submenu-selected]": `isMenuInsideDropDown && isSelected`,
- "[class.ant-dropdown-menu-submenu-vertical]": `isMenuInsideDropDown && mode === 'vertical'`,
- "[class.ant-dropdown-menu-submenu-horizontal]": `isMenuInsideDropDown && mode === 'horizontal'`,
- "[class.ant-dropdown-menu-submenu-inline]": `isMenuInsideDropDown && mode === 'inline'`,
- "[class.ant-dropdown-menu-submenu-active]": `isMenuInsideDropDown && isActive`,
- "[class.ant-menu-submenu]": `!isMenuInsideDropDown`,
- "[class.ant-menu-submenu-disabled]": `!isMenuInsideDropDown && nzDisabled`,
- "[class.ant-menu-submenu-open]": `!isMenuInsideDropDown && nzOpen`,
- "[class.ant-menu-submenu-selected]": `!isMenuInsideDropDown && isSelected`,
- "[class.ant-menu-submenu-vertical]": `!isMenuInsideDropDown && mode === 'vertical'`,
- "[class.ant-menu-submenu-horizontal]": `!isMenuInsideDropDown && mode === 'horizontal'`,
- "[class.ant-menu-submenu-inline]": `!isMenuInsideDropDown && mode === 'inline'`,
- "[class.ant-menu-submenu-active]": `!isMenuInsideDropDown && isActive`,
- "[class.ant-menu-submenu-rtl]": `dir === 'rtl'`
- },
- imports: [NzSubMenuTitleComponent, NzSubmenuInlineChildComponent, NgIf, NzNoAnimationDirective, NzSubmenuNoneInlineChildComponent, OverlayModule],
- standalone: true
- }]
- }], () => [{
- type: MenuService
- }, {
- type: ChangeDetectorRef
- }, {
- type: NzSubmenuService
- }, {
- type: Platform
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [NzIsMenuInsideDropDownToken]
- }]
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }, {
- type: NzNoAnimationDirective,
- decorators: [{
- type: Host
- }, {
- type: Optional
- }]
- }], {
- nzMenuClassName: [{
- type: Input
- }],
- nzPaddingLeft: [{
- type: Input
- }],
- nzTitle: [{
- type: Input
- }],
- nzIcon: [{
- type: Input
- }],
- nzOpen: [{
- type: Input
- }],
- nzDisabled: [{
- type: Input
- }],
- nzPlacement: [{
- type: Input
- }],
- nzOpenChange: [{
- type: Output
- }],
- cdkOverlayOrigin: [{
- type: ViewChild,
- args: [CdkOverlayOrigin, {
- static: true,
- read: ElementRef
- }]
- }],
- listOfNzSubMenuComponent: [{
- type: ContentChildren,
- args: [forwardRef(() => NzSubMenuComponent), {
- descendants: true
- }]
- }],
- listOfNzMenuItemDirective: [{
- type: ContentChildren,
- args: [NzMenuItemComponent, {
- descendants: true
- }]
- }]
- });
-})();
-function MenuServiceFactory() {
- const serviceInsideDropDown = inject(MenuService, {
- skipSelf: true,
- optional: true
- });
- const serviceOutsideDropDown = inject(NzMenuServiceLocalToken);
- return serviceInsideDropDown ?? serviceOutsideDropDown;
-}
-function MenuDropDownTokenFactory() {
- const isMenuInsideDropDownToken = inject(NzIsMenuInsideDropDownToken, {
- skipSelf: true,
- optional: true
- });
- return isMenuInsideDropDownToken ?? false;
-}
-var _NzMenuDirective = class _NzMenuDirective {
- setInlineCollapsed(inlineCollapsed) {
- this.nzInlineCollapsed = inlineCollapsed;
- this.inlineCollapsed$.next(inlineCollapsed);
- }
- updateInlineCollapse() {
- if (this.listOfNzMenuItemDirective) {
- if (this.nzInlineCollapsed) {
- this.listOfOpenedNzSubMenuComponent = this.listOfNzSubMenuComponent.filter((submenu) => submenu.nzOpen);
- this.listOfNzSubMenuComponent.forEach((submenu) => submenu.setOpenStateWithoutDebounce(false));
- } else {
- this.listOfOpenedNzSubMenuComponent.forEach((submenu) => submenu.setOpenStateWithoutDebounce(true));
- this.listOfOpenedNzSubMenuComponent = [];
- }
- }
- }
- constructor(nzMenuService, isMenuInsideDropDown, cdr, directionality) {
- this.nzMenuService = nzMenuService;
- this.isMenuInsideDropDown = isMenuInsideDropDown;
- this.cdr = cdr;
- this.directionality = directionality;
- this.nzInlineIndent = 24;
- this.nzTheme = "light";
- this.nzMode = "vertical";
- this.nzInlineCollapsed = false;
- this.nzSelectable = !this.isMenuInsideDropDown;
- this.nzClick = new EventEmitter();
- this.actualMode = "vertical";
- this.dir = "ltr";
- this.inlineCollapsed$ = new BehaviorSubject(this.nzInlineCollapsed);
- this.mode$ = new BehaviorSubject(this.nzMode);
- this.destroy$ = new Subject();
- this.listOfOpenedNzSubMenuComponent = [];
- }
- ngOnInit() {
- combineLatest([this.inlineCollapsed$, this.mode$]).pipe(takeUntil(this.destroy$)).subscribe(([inlineCollapsed, mode]) => {
- this.actualMode = inlineCollapsed ? "vertical" : mode;
- this.nzMenuService.setMode(this.actualMode);
- this.cdr.markForCheck();
- });
- this.nzMenuService.descendantMenuItemClick$.pipe(takeUntil(this.destroy$)).subscribe((menu) => {
- this.nzClick.emit(menu);
- if (this.nzSelectable && !menu.nzMatchRouter) {
- this.listOfNzMenuItemDirective.forEach((item) => item.setSelectedState(item === menu));
- }
- });
- this.dir = this.directionality.value;
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- this.nzMenuService.setMode(this.actualMode);
- this.cdr.markForCheck();
- });
- }
- ngAfterContentInit() {
- this.inlineCollapsed$.pipe(takeUntil(this.destroy$)).subscribe(() => {
- this.updateInlineCollapse();
- this.cdr.markForCheck();
- });
- }
- ngOnChanges(changes) {
- const {
- nzInlineCollapsed,
- nzInlineIndent,
- nzTheme,
- nzMode
- } = changes;
- if (nzInlineCollapsed) {
- this.inlineCollapsed$.next(this.nzInlineCollapsed);
- }
- if (nzInlineIndent) {
- this.nzMenuService.setInlineIndent(this.nzInlineIndent);
- }
- if (nzTheme) {
- this.nzMenuService.setTheme(this.nzTheme);
- }
- if (nzMode) {
- this.mode$.next(this.nzMode);
- if (!changes.nzMode.isFirstChange() && this.listOfNzSubMenuComponent) {
- this.listOfNzSubMenuComponent.forEach((submenu) => submenu.setOpenStateWithoutDebounce(false));
- }
- }
- }
- ngOnDestroy() {
- this.destroy$.next(true);
- this.destroy$.complete();
- }
-};
-_NzMenuDirective.ɵfac = function NzMenuDirective_Factory(t) {
- return new (t || _NzMenuDirective)(ɵɵdirectiveInject(MenuService), ɵɵdirectiveInject(NzIsMenuInsideDropDownToken), ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(Directionality, 8));
-};
-_NzMenuDirective.ɵdir = ɵɵdefineDirective({
- type: _NzMenuDirective,
- selectors: [["", "nz-menu", ""]],
- contentQueries: function NzMenuDirective_ContentQueries(rf, ctx, dirIndex) {
- if (rf & 1) {
- ɵɵcontentQuery(dirIndex, NzMenuItemComponent, 5);
- ɵɵcontentQuery(dirIndex, NzSubMenuComponent, 5);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.listOfNzMenuItemDirective = _t);
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.listOfNzSubMenuComponent = _t);
- }
- },
- hostVars: 34,
- hostBindings: function NzMenuDirective_HostBindings(rf, ctx) {
- if (rf & 2) {
- ɵɵclassProp("ant-dropdown-menu", ctx.isMenuInsideDropDown)("ant-dropdown-menu-root", ctx.isMenuInsideDropDown)("ant-dropdown-menu-light", ctx.isMenuInsideDropDown && ctx.nzTheme === "light")("ant-dropdown-menu-dark", ctx.isMenuInsideDropDown && ctx.nzTheme === "dark")("ant-dropdown-menu-vertical", ctx.isMenuInsideDropDown && ctx.actualMode === "vertical")("ant-dropdown-menu-horizontal", ctx.isMenuInsideDropDown && ctx.actualMode === "horizontal")("ant-dropdown-menu-inline", ctx.isMenuInsideDropDown && ctx.actualMode === "inline")("ant-dropdown-menu-inline-collapsed", ctx.isMenuInsideDropDown && ctx.nzInlineCollapsed)("ant-menu", !ctx.isMenuInsideDropDown)("ant-menu-root", !ctx.isMenuInsideDropDown)("ant-menu-light", !ctx.isMenuInsideDropDown && ctx.nzTheme === "light")("ant-menu-dark", !ctx.isMenuInsideDropDown && ctx.nzTheme === "dark")("ant-menu-vertical", !ctx.isMenuInsideDropDown && ctx.actualMode === "vertical")("ant-menu-horizontal", !ctx.isMenuInsideDropDown && ctx.actualMode === "horizontal")("ant-menu-inline", !ctx.isMenuInsideDropDown && ctx.actualMode === "inline")("ant-menu-inline-collapsed", !ctx.isMenuInsideDropDown && ctx.nzInlineCollapsed)("ant-menu-rtl", ctx.dir === "rtl");
- }
- },
- inputs: {
- nzInlineIndent: "nzInlineIndent",
- nzTheme: "nzTheme",
- nzMode: "nzMode",
- nzInlineCollapsed: "nzInlineCollapsed",
- nzSelectable: "nzSelectable"
- },
- outputs: {
- nzClick: "nzClick"
- },
- exportAs: ["nzMenu"],
- standalone: true,
- features: [ɵɵProvidersFeature([
- {
- provide: NzMenuServiceLocalToken,
- useClass: MenuService
- },
- /** use the top level service **/
- {
- provide: MenuService,
- useFactory: MenuServiceFactory
- },
- /** check if menu inside dropdown-menu component **/
- {
- provide: NzIsMenuInsideDropDownToken,
- useFactory: MenuDropDownTokenFactory
- }
- ]), ɵɵNgOnChangesFeature]
-});
-var NzMenuDirective = _NzMenuDirective;
-__decorate([InputBoolean()], NzMenuDirective.prototype, "nzInlineCollapsed", void 0);
-__decorate([InputBoolean()], NzMenuDirective.prototype, "nzSelectable", void 0);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzMenuDirective, [{
- type: Directive,
- args: [{
- selector: "[nz-menu]",
- exportAs: "nzMenu",
- providers: [
- {
- provide: NzMenuServiceLocalToken,
- useClass: MenuService
- },
- /** use the top level service **/
- {
- provide: MenuService,
- useFactory: MenuServiceFactory
- },
- /** check if menu inside dropdown-menu component **/
- {
- provide: NzIsMenuInsideDropDownToken,
- useFactory: MenuDropDownTokenFactory
- }
- ],
- host: {
- "[class.ant-dropdown-menu]": `isMenuInsideDropDown`,
- "[class.ant-dropdown-menu-root]": `isMenuInsideDropDown`,
- "[class.ant-dropdown-menu-light]": `isMenuInsideDropDown && nzTheme === 'light'`,
- "[class.ant-dropdown-menu-dark]": `isMenuInsideDropDown && nzTheme === 'dark'`,
- "[class.ant-dropdown-menu-vertical]": `isMenuInsideDropDown && actualMode === 'vertical'`,
- "[class.ant-dropdown-menu-horizontal]": `isMenuInsideDropDown && actualMode === 'horizontal'`,
- "[class.ant-dropdown-menu-inline]": `isMenuInsideDropDown && actualMode === 'inline'`,
- "[class.ant-dropdown-menu-inline-collapsed]": `isMenuInsideDropDown && nzInlineCollapsed`,
- "[class.ant-menu]": `!isMenuInsideDropDown`,
- "[class.ant-menu-root]": `!isMenuInsideDropDown`,
- "[class.ant-menu-light]": `!isMenuInsideDropDown && nzTheme === 'light'`,
- "[class.ant-menu-dark]": `!isMenuInsideDropDown && nzTheme === 'dark'`,
- "[class.ant-menu-vertical]": `!isMenuInsideDropDown && actualMode === 'vertical'`,
- "[class.ant-menu-horizontal]": `!isMenuInsideDropDown && actualMode === 'horizontal'`,
- "[class.ant-menu-inline]": `!isMenuInsideDropDown && actualMode === 'inline'`,
- "[class.ant-menu-inline-collapsed]": `!isMenuInsideDropDown && nzInlineCollapsed`,
- "[class.ant-menu-rtl]": `dir === 'rtl'`
- },
- standalone: true
- }]
- }], () => [{
- type: MenuService
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [NzIsMenuInsideDropDownToken]
- }]
- }, {
- type: ChangeDetectorRef
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- listOfNzMenuItemDirective: [{
- type: ContentChildren,
- args: [NzMenuItemComponent, {
- descendants: true
- }]
- }],
- listOfNzSubMenuComponent: [{
- type: ContentChildren,
- args: [NzSubMenuComponent, {
- descendants: true
- }]
- }],
- nzInlineIndent: [{
- type: Input
- }],
- nzTheme: [{
- type: Input
- }],
- nzMode: [{
- type: Input
- }],
- nzInlineCollapsed: [{
- type: Input
- }],
- nzSelectable: [{
- type: Input
- }],
- nzClick: [{
- type: Output
- }]
- });
-})();
-function MenuGroupFactory() {
- const isMenuInsideDropDownToken = inject(NzIsMenuInsideDropDownToken, {
- optional: true,
- skipSelf: true
- });
- return isMenuInsideDropDownToken ?? false;
-}
-var _NzMenuGroupComponent = class _NzMenuGroupComponent {
- constructor(elementRef, renderer, isMenuInsideDropDown) {
- this.elementRef = elementRef;
- this.renderer = renderer;
- this.isMenuInsideDropDown = isMenuInsideDropDown;
- const className = this.isMenuInsideDropDown ? "ant-dropdown-menu-item-group" : "ant-menu-item-group";
- this.renderer.addClass(elementRef.nativeElement, className);
- }
- ngAfterViewInit() {
- const ulElement = this.titleElement.nativeElement.nextElementSibling;
- if (ulElement) {
- const className = this.isMenuInsideDropDown ? "ant-dropdown-menu-item-group-list" : "ant-menu-item-group-list";
- this.renderer.addClass(ulElement, className);
- }
- }
-};
-_NzMenuGroupComponent.ɵfac = function NzMenuGroupComponent_Factory(t) {
- return new (t || _NzMenuGroupComponent)(ɵɵdirectiveInject(ElementRef), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(NzIsMenuInsideDropDownToken));
-};
-_NzMenuGroupComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzMenuGroupComponent,
- selectors: [["", "nz-menu-group", ""]],
- viewQuery: function NzMenuGroupComponent_Query(rf, ctx) {
- if (rf & 1) {
- ɵɵviewQuery(_c8, 5);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.titleElement = _t.first);
- }
- },
- inputs: {
- nzTitle: "nzTitle"
- },
- exportAs: ["nzMenuGroup"],
- standalone: true,
- features: [ɵɵProvidersFeature([
- /** check if menu inside dropdown-menu component **/
- {
- provide: NzIsMenuInsideDropDownToken,
- useFactory: MenuGroupFactory
- }
- ]), ɵɵStandaloneFeature],
- attrs: _c9,
- ngContentSelectors: _c11,
- decls: 5,
- vars: 6,
- consts: [["titleElement", ""], [4, "nzStringTemplateOutlet"], [4, "ngIf"]],
- template: function NzMenuGroupComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵprojectionDef(_c10);
- ɵɵelementStart(0, "div", null, 0);
- ɵɵtemplate(2, NzMenuGroupComponent_ng_container_2_Template, 2, 1, "ng-container", 1)(3, NzMenuGroupComponent_ng_content_3_Template, 1, 0, "ng-content", 2);
- ɵɵelementEnd();
- ɵɵprojection(4);
- }
- if (rf & 2) {
- ɵɵclassProp("ant-menu-item-group-title", !ctx.isMenuInsideDropDown)("ant-dropdown-menu-item-group-title", ctx.isMenuInsideDropDown);
- ɵɵadvance(2);
- ɵɵproperty("nzStringTemplateOutlet", ctx.nzTitle);
- ɵɵadvance(1);
- ɵɵproperty("ngIf", !ctx.nzTitle);
- }
- },
- dependencies: [NzOutletModule, NzStringTemplateOutletDirective, NgIf],
- encapsulation: 2,
- changeDetection: 0
-});
-var NzMenuGroupComponent = _NzMenuGroupComponent;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzMenuGroupComponent, [{
- type: Component,
- args: [{
- selector: "[nz-menu-group]",
- exportAs: "nzMenuGroup",
- changeDetection: ChangeDetectionStrategy.OnPush,
- providers: [
- /** check if menu inside dropdown-menu component **/
- {
- provide: NzIsMenuInsideDropDownToken,
- useFactory: MenuGroupFactory
- }
- ],
- encapsulation: ViewEncapsulation$1.None,
- template: `
-
- {{ nzTitle }}
-
-
-
- `,
- preserveWhitespaces: false,
- imports: [NzOutletModule, NgIf],
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }, {
- type: Renderer2
- }, {
- type: void 0,
- decorators: [{
- type: Inject,
- args: [NzIsMenuInsideDropDownToken]
- }]
- }], {
- nzTitle: [{
- type: Input
- }],
- titleElement: [{
- type: ViewChild,
- args: ["titleElement"]
- }]
- });
-})();
-var _NzMenuDividerDirective = class _NzMenuDividerDirective {
- constructor(elementRef) {
- this.elementRef = elementRef;
- }
-};
-_NzMenuDividerDirective.ɵfac = function NzMenuDividerDirective_Factory(t) {
- return new (t || _NzMenuDividerDirective)(ɵɵdirectiveInject(ElementRef));
-};
-_NzMenuDividerDirective.ɵdir = ɵɵdefineDirective({
- type: _NzMenuDividerDirective,
- selectors: [["", "nz-menu-divider", ""]],
- hostAttrs: [1, "ant-dropdown-menu-item-divider"],
- exportAs: ["nzMenuDivider"],
- standalone: true
-});
-var NzMenuDividerDirective = _NzMenuDividerDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzMenuDividerDirective, [{
- type: Directive,
- args: [{
- selector: "[nz-menu-divider]",
- exportAs: "nzMenuDivider",
- host: {
- class: "ant-dropdown-menu-item-divider"
- },
- standalone: true
- }]
- }], () => [{
- type: ElementRef
- }], null);
-})();
-var _NzMenuModule = class _NzMenuModule {
-};
-_NzMenuModule.ɵfac = function NzMenuModule_Factory(t) {
- return new (t || _NzMenuModule)();
-};
-_NzMenuModule.ɵmod = ɵɵdefineNgModule({
- type: _NzMenuModule,
- imports: [NzMenuDirective, NzMenuItemComponent, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent, NzSubMenuTitleComponent, NzSubmenuInlineChildComponent, NzSubmenuNoneInlineChildComponent],
- exports: [NzMenuDirective, NzMenuItemComponent, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent]
-});
-_NzMenuModule.ɵinj = ɵɵdefineInjector({
- imports: [NzSubMenuComponent, NzMenuGroupComponent, NzSubMenuTitleComponent]
-});
-var NzMenuModule = _NzMenuModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzMenuModule, [{
- type: NgModule,
- args: [{
- imports: [NzMenuDirective, NzMenuItemComponent, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent, NzSubMenuTitleComponent, NzSubmenuInlineChildComponent, NzSubmenuNoneInlineChildComponent],
- exports: [NzMenuDirective, NzMenuItemComponent, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent]
- }]
- }], null, null);
-})();
-
-export {
- NzIsMenuInsideDropDownToken,
- NzMenuServiceLocalToken,
- MenuService,
- NzSubmenuService,
- NzMenuItemComponent,
- NzSubmenuInlineChildComponent,
- NzSubmenuNoneInlineChildComponent,
- NzSubMenuTitleComponent,
- NzSubMenuComponent,
- MenuServiceFactory,
- MenuDropDownTokenFactory,
- NzMenuDirective,
- MenuGroupFactory,
- NzMenuGroupComponent,
- NzMenuDividerDirective,
- NzMenuModule
-};
-//# sourceMappingURL=chunk-WKTPWT5U.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-WKTPWT5U.js.map b/.angular/cache/17.0.7/vite/deps/chunk-WKTPWT5U.js.map
deleted file mode 100644
index d396f7c..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-WKTPWT5U.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-menu.mjs"],
- "sourcesContent": ["import { __decorate } from 'tslib';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, SkipSelf, Optional, Inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ContentChildren, EventEmitter, Output, ElementRef, Host, ViewChild, forwardRef, inject, Directive, NgModule } from '@angular/core';\nimport { Subject, BehaviorSubject, merge, combineLatest } from 'rxjs';\nimport { map, mergeMap, filter, mapTo, auditTime, distinctUntilChanged, takeUntil, startWith, switchMap } from 'rxjs/operators';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\nimport * as i4 from '@angular/router';\nimport { NavigationEnd, RouterLink } from '@angular/router';\nimport * as i1 from '@angular/cdk/bidi';\nimport * as i6 from '@angular/cdk/overlay';\nimport { CdkOverlayOrigin, OverlayModule } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet, NgClass, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common';\nimport * as i5 from 'ng-zorro-antd/core/no-animation';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { POSITION_MAP, getPlacementName } from 'ng-zorro-antd/core/overlay';\nimport { collapseMotion, zoomBigMotion, slideMotion } from 'ng-zorro-antd/core/animation';\nimport * as i3 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 * as i3$1 from '@angular/cdk/platform';\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 _c0 = [\"nz-menu-item\", \"\"];\nconst _c1 = [\"*\"];\nconst _c2 = [\"nz-submenu-inline-child\", \"\"];\nfunction NzSubmenuInlineChildComponent_ng_template_0_Template(rf, ctx) {}\nconst _c3 = [\"nz-submenu-none-inline-child\", \"\"];\nfunction NzSubmenuNoneInlineChildComponent_ng_template_1_Template(rf, ctx) {}\nconst _c4 = [\"nz-submenu-title\", \"\"];\nfunction NzSubMenuTitleComponent_span_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"nzType\", ctx_r0.nzIcon);\n }\n}\nfunction NzSubMenuTitleComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"span\", 5);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.nzTitle);\n }\n}\nfunction NzSubMenuTitleComponent_span_3_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 9);\n }\n}\nfunction NzSubMenuTitleComponent_span_3_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 10);\n }\n}\nfunction NzSubMenuTitleComponent_span_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 6);\n i0.ɵɵtemplate(1, NzSubMenuTitleComponent_span_3_span_1_Template, 1, 0, \"span\", 7)(2, NzSubMenuTitleComponent_span_3_span_2_Template, 1, 0, \"span\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngSwitch\", ctx_r2.dir);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngSwitchCase\", \"rtl\");\n }\n}\nfunction NzSubMenuTitleComponent_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 11);\n }\n}\nconst _c5 = [\"nz-submenu\", \"\"];\nfunction NzSubMenuComponent_ng_content_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 0, [\"*ngIf\", \"!nzTitle\"]);\n }\n}\nfunction NzSubMenuComponent_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 6);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n const _r6 = i0.ɵɵreference(7);\n i0.ɵɵproperty(\"mode\", ctx_r2.mode)(\"nzOpen\", ctx_r2.nzOpen)(\"@.disabled\", !!(ctx_r2.noAnimation == null ? null : ctx_r2.noAnimation.nzNoAnimation))(\"nzNoAnimation\", ctx_r2.noAnimation == null ? null : ctx_r2.noAnimation.nzNoAnimation)(\"menuClass\", ctx_r2.nzMenuClassName)(\"templateOutlet\", _r6);\n }\n}\nfunction NzSubMenuComponent_ng_template_4_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 8);\n i0.ɵɵlistener(\"subMenuMouseState\", function NzSubMenuComponent_ng_template_4_ng_template_0_Template_div_subMenuMouseState_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r8 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r8.setMouseEnterState($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext(2);\n const _r6 = i0.ɵɵreference(7);\n i0.ɵɵproperty(\"theme\", ctx_r7.theme)(\"mode\", ctx_r7.mode)(\"nzOpen\", ctx_r7.nzOpen)(\"position\", ctx_r7.position)(\"nzDisabled\", ctx_r7.nzDisabled)(\"isMenuInsideDropDown\", ctx_r7.isMenuInsideDropDown)(\"templateOutlet\", _r6)(\"menuClass\", ctx_r7.nzMenuClassName)(\"@.disabled\", !!(ctx_r7.noAnimation == null ? null : ctx_r7.noAnimation.nzNoAnimation))(\"nzNoAnimation\", ctx_r7.noAnimation == null ? null : ctx_r7.noAnimation.nzNoAnimation);\n }\n}\nfunction NzSubMenuComponent_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵtemplate(0, NzSubMenuComponent_ng_template_4_ng_template_0_Template, 1, 10, \"ng-template\", 7);\n i0.ɵɵlistener(\"positionChange\", function NzSubMenuComponent_ng_template_4_Template_ng_template_positionChange_0_listener($event) {\n i0.ɵɵrestoreView(_r11);\n const ctx_r10 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r10.onPositionChange($event));\n });\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n const _r0 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"cdkConnectedOverlayPositions\", ctx_r3.overlayPositions)(\"cdkConnectedOverlayOrigin\", _r0)(\"cdkConnectedOverlayWidth\", ctx_r3.triggerWidth)(\"cdkConnectedOverlayOpen\", ctx_r3.nzOpen)(\"cdkConnectedOverlayTransformOriginOn\", \".ant-menu-submenu\");\n }\n}\nfunction NzSubMenuComponent_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 1);\n }\n}\nconst _c6 = [[[\"\", \"title\", \"\"]], \"*\"];\nconst _c7 = [\"[title]\", \"*\"];\nconst _c8 = [\"titleElement\"];\nconst _c9 = [\"nz-menu-group\", \"\"];\nfunction NzMenuGroupComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r1.nzTitle);\n }\n}\nfunction NzMenuGroupComponent_ng_content_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 1, [\"*ngIf\", \"!nzTitle\"]);\n }\n}\nconst _c10 = [\"*\", [[\"\", \"title\", \"\"]]];\nconst _c11 = [\"*\", \"[title]\"];\nconst NzIsMenuInsideDropDownToken = new InjectionToken('NzIsInDropDownMenuToken');\nconst NzMenuServiceLocalToken = new InjectionToken('NzMenuServiceLocalToken');\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 MenuService {\n constructor() {\n /** all descendant menu click **/\n this.descendantMenuItemClick$ = new Subject();\n /** child menu item click **/\n this.childMenuItemClick$ = new Subject();\n this.theme$ = new BehaviorSubject('light');\n this.mode$ = new BehaviorSubject('vertical');\n this.inlineIndent$ = new BehaviorSubject(24);\n this.isChildSubMenuOpen$ = new BehaviorSubject(false);\n }\n onDescendantMenuItemClick(menu) {\n this.descendantMenuItemClick$.next(menu);\n }\n onChildMenuItemClick(menu) {\n this.childMenuItemClick$.next(menu);\n }\n setMode(mode) {\n this.mode$.next(mode);\n }\n setTheme(theme) {\n this.theme$.next(theme);\n }\n setInlineIndent(indent) {\n this.inlineIndent$.next(indent);\n }\n static {\n this.ɵfac = function MenuService_Factory(t) {\n return new (t || MenuService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MenuService,\n factory: MenuService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MenuService, [{\n type: Injectable\n }], null, null);\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 NzSubmenuService {\n /**\n * menu item inside submenu clicked\n *\n * @param menu\n */\n onChildMenuItemClick(menu) {\n this.childMenuItemClick$.next(menu);\n }\n setOpenStateWithoutDebounce(value) {\n this.isCurrentSubMenuOpen$.next(value);\n }\n setMouseEnterTitleOrOverlayState(value) {\n this.isMouseEnterTitleOrOverlay$.next(value);\n }\n constructor(nzHostSubmenuService, nzMenuService, isMenuInsideDropDown) {\n this.nzHostSubmenuService = nzHostSubmenuService;\n this.nzMenuService = nzMenuService;\n this.isMenuInsideDropDown = isMenuInsideDropDown;\n this.mode$ = this.nzMenuService.mode$.pipe(map(mode => {\n if (mode === 'inline') {\n return 'inline';\n /** if inside another submenu, set the mode to vertical **/\n } else if (mode === 'vertical' || this.nzHostSubmenuService) {\n return 'vertical';\n } else {\n return 'horizontal';\n }\n }));\n this.level = 1;\n this.isCurrentSubMenuOpen$ = new BehaviorSubject(false);\n this.isChildSubMenuOpen$ = new BehaviorSubject(false);\n /** submenu title & overlay mouse enter status **/\n this.isMouseEnterTitleOrOverlay$ = new Subject();\n this.childMenuItemClick$ = new Subject();\n this.destroy$ = new Subject();\n if (this.nzHostSubmenuService) {\n this.level = this.nzHostSubmenuService.level + 1;\n }\n /** close if menu item clicked **/\n const isClosedByMenuItemClick = this.childMenuItemClick$.pipe(mergeMap(() => this.mode$), filter(mode => mode !== 'inline' || this.isMenuInsideDropDown), mapTo(false));\n const isCurrentSubmenuOpen$ = merge(this.isMouseEnterTitleOrOverlay$, isClosedByMenuItemClick);\n /** combine the child submenu status with current submenu status to calculate host submenu open **/\n const isSubMenuOpenWithDebounce$ = combineLatest([this.isChildSubMenuOpen$, isCurrentSubmenuOpen$]).pipe(map(([isChildSubMenuOpen, isCurrentSubmenuOpen]) => isChildSubMenuOpen || isCurrentSubmenuOpen), auditTime(150), distinctUntilChanged(), takeUntil(this.destroy$));\n isSubMenuOpenWithDebounce$.pipe(distinctUntilChanged()).subscribe(data => {\n this.setOpenStateWithoutDebounce(data);\n if (this.nzHostSubmenuService) {\n /** set parent submenu's child submenu open status **/\n this.nzHostSubmenuService.isChildSubMenuOpen$.next(data);\n } else {\n this.nzMenuService.isChildSubMenuOpen$.next(data);\n }\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzSubmenuService_Factory(t) {\n return new (t || NzSubmenuService)(i0.ɵɵinject(NzSubmenuService, 12), i0.ɵɵinject(MenuService), i0.ɵɵinject(NzIsMenuInsideDropDownToken));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzSubmenuService,\n factory: NzSubmenuService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzSubmenuService, [{\n type: Injectable\n }], () => [{\n type: NzSubmenuService,\n decorators: [{\n type: SkipSelf\n }, {\n type: Optional\n }]\n }, {\n type: MenuService\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [NzIsMenuInsideDropDownToken]\n }]\n }], null);\n})();\nclass NzMenuItemComponent {\n /** clear all item selected status except this */\n clickMenuItem(e) {\n if (this.nzDisabled) {\n e.preventDefault();\n e.stopPropagation();\n } else {\n this.nzMenuService.onDescendantMenuItemClick(this);\n if (this.nzSubmenuService) {\n /** menu item inside the submenu **/\n this.nzSubmenuService.onChildMenuItemClick(this);\n } else {\n /** menu item inside the root menu **/\n this.nzMenuService.onChildMenuItemClick(this);\n }\n }\n }\n setSelectedState(value) {\n this.nzSelected = value;\n this.selected$.next(value);\n }\n updateRouterActive() {\n if (!this.listOfRouterLink || !this.router || !this.router.navigated || !this.nzMatchRouter) {\n return;\n }\n Promise.resolve().then(() => {\n const hasActiveLinks = this.hasActiveLinks();\n if (this.nzSelected !== hasActiveLinks) {\n this.nzSelected = hasActiveLinks;\n this.setSelectedState(this.nzSelected);\n this.cdr.markForCheck();\n }\n });\n }\n hasActiveLinks() {\n const isActiveCheckFn = this.isLinkActive(this.router);\n return this.routerLink && isActiveCheckFn(this.routerLink) || this.listOfRouterLink.some(isActiveCheckFn);\n }\n isLinkActive(router) {\n return link => router.isActive(link.urlTree || '', {\n paths: this.nzMatchRouterExact ? 'exact' : 'subset',\n queryParams: this.nzMatchRouterExact ? 'exact' : 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored'\n });\n }\n constructor(nzMenuService, cdr, nzSubmenuService, isMenuInsideDropDown, directionality, routerLink, router) {\n this.nzMenuService = nzMenuService;\n this.cdr = cdr;\n this.nzSubmenuService = nzSubmenuService;\n this.isMenuInsideDropDown = isMenuInsideDropDown;\n this.directionality = directionality;\n this.routerLink = routerLink;\n this.router = router;\n this.destroy$ = new Subject();\n this.level = this.nzSubmenuService ? this.nzSubmenuService.level + 1 : 1;\n this.selected$ = new Subject();\n this.inlinePaddingLeft = null;\n this.dir = 'ltr';\n this.nzDisabled = false;\n this.nzSelected = false;\n this.nzDanger = false;\n this.nzMatchRouterExact = false;\n this.nzMatchRouter = false;\n if (router) {\n this.router.events.pipe(takeUntil(this.destroy$), filter(e => e instanceof NavigationEnd)).subscribe(() => {\n this.updateRouterActive();\n });\n }\n }\n ngOnInit() {\n /** store origin padding in padding */\n combineLatest([this.nzMenuService.mode$, this.nzMenuService.inlineIndent$]).pipe(takeUntil(this.destroy$)).subscribe(([mode, inlineIndent]) => {\n this.inlinePaddingLeft = mode === 'inline' ? this.level * inlineIndent : null;\n });\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n });\n }\n ngAfterContentInit() {\n this.listOfRouterLink.changes.pipe(takeUntil(this.destroy$)).subscribe(() => this.updateRouterActive());\n this.updateRouterActive();\n }\n ngOnChanges(changes) {\n if (changes.nzSelected) {\n this.setSelectedState(this.nzSelected);\n }\n }\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzMenuItemComponent_Factory(t) {\n return new (t || NzMenuItemComponent)(i0.ɵɵdirectiveInject(MenuService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NzSubmenuService, 8), i0.ɵɵdirectiveInject(NzIsMenuInsideDropDownToken), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i4.RouterLink, 8), i0.ɵɵdirectiveInject(i4.Router, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzMenuItemComponent,\n selectors: [[\"\", \"nz-menu-item\", \"\"]],\n contentQueries: function NzMenuItemComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, RouterLink, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listOfRouterLink = _t);\n }\n },\n hostVars: 20,\n hostBindings: function NzMenuItemComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NzMenuItemComponent_click_HostBindingHandler($event) {\n return ctx.clickMenuItem($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"padding-left\", ctx.dir === \"rtl\" ? null : ctx.nzPaddingLeft || ctx.inlinePaddingLeft, \"px\")(\"padding-right\", ctx.dir === \"rtl\" ? ctx.nzPaddingLeft || ctx.inlinePaddingLeft : null, \"px\");\n i0.ɵɵclassProp(\"ant-dropdown-menu-item\", ctx.isMenuInsideDropDown)(\"ant-dropdown-menu-item-selected\", ctx.isMenuInsideDropDown && ctx.nzSelected)(\"ant-dropdown-menu-item-danger\", ctx.isMenuInsideDropDown && ctx.nzDanger)(\"ant-dropdown-menu-item-disabled\", ctx.isMenuInsideDropDown && ctx.nzDisabled)(\"ant-menu-item\", !ctx.isMenuInsideDropDown)(\"ant-menu-item-selected\", !ctx.isMenuInsideDropDown && ctx.nzSelected)(\"ant-menu-item-danger\", !ctx.isMenuInsideDropDown && ctx.nzDanger)(\"ant-menu-item-disabled\", !ctx.isMenuInsideDropDown && ctx.nzDisabled);\n }\n },\n inputs: {\n nzPaddingLeft: \"nzPaddingLeft\",\n nzDisabled: \"nzDisabled\",\n nzSelected: \"nzSelected\",\n nzDanger: \"nzDanger\",\n nzMatchRouterExact: \"nzMatchRouterExact\",\n nzMatchRouter: \"nzMatchRouter\"\n },\n exportAs: [\"nzMenuItem\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n attrs: _c0,\n ngContentSelectors: _c1,\n decls: 2,\n vars: 0,\n consts: [[1, \"ant-menu-title-content\"]],\n template: function NzMenuItemComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n__decorate([InputBoolean()], NzMenuItemComponent.prototype, \"nzDisabled\", void 0);\n__decorate([InputBoolean()], NzMenuItemComponent.prototype, \"nzSelected\", void 0);\n__decorate([InputBoolean()], NzMenuItemComponent.prototype, \"nzDanger\", void 0);\n__decorate([InputBoolean()], NzMenuItemComponent.prototype, \"nzMatchRouterExact\", void 0);\n__decorate([InputBoolean()], NzMenuItemComponent.prototype, \"nzMatchRouter\", void 0);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzMenuItemComponent, [{\n type: Component,\n args: [{\n selector: '[nz-menu-item]',\n exportAs: 'nzMenuItem',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n template: `\n \n `,\n host: {\n '[class.ant-dropdown-menu-item]': `isMenuInsideDropDown`,\n '[class.ant-dropdown-menu-item-selected]': `isMenuInsideDropDown && nzSelected`,\n '[class.ant-dropdown-menu-item-danger]': `isMenuInsideDropDown && nzDanger`,\n '[class.ant-dropdown-menu-item-disabled]': `isMenuInsideDropDown && nzDisabled`,\n '[class.ant-menu-item]': `!isMenuInsideDropDown`,\n '[class.ant-menu-item-selected]': `!isMenuInsideDropDown && nzSelected`,\n '[class.ant-menu-item-danger]': `!isMenuInsideDropDown && nzDanger`,\n '[class.ant-menu-item-disabled]': `!isMenuInsideDropDown && nzDisabled`,\n '[style.paddingLeft.px]': `dir === 'rtl' ? null : nzPaddingLeft || inlinePaddingLeft`,\n '[style.paddingRight.px]': `dir === 'rtl' ? nzPaddingLeft || inlinePaddingLeft : null`,\n '(click)': 'clickMenuItem($event)'\n },\n standalone: true\n }]\n }], () => [{\n type: MenuService\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: NzSubmenuService,\n decorators: [{\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [NzIsMenuInsideDropDownToken]\n }]\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i4.RouterLink,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i4.Router,\n decorators: [{\n type: Optional\n }]\n }], {\n nzPaddingLeft: [{\n type: Input\n }],\n nzDisabled: [{\n type: Input\n }],\n nzSelected: [{\n type: Input\n }],\n nzDanger: [{\n type: Input\n }],\n nzMatchRouterExact: [{\n type: Input\n }],\n nzMatchRouter: [{\n type: Input\n }],\n listOfRouterLink: [{\n type: ContentChildren,\n args: [RouterLink, {\n descendants: true\n }]\n }]\n });\n})();\nclass NzSubmenuInlineChildComponent {\n constructor(elementRef, renderer, directionality) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.directionality = directionality;\n this.templateOutlet = null;\n this.menuClass = '';\n this.mode = 'vertical';\n this.nzOpen = false;\n this.listOfCacheClassName = [];\n this.expandState = 'collapsed';\n this.dir = 'ltr';\n this.destroy$ = new Subject();\n }\n calcMotionState() {\n if (this.nzOpen) {\n this.expandState = 'expanded';\n } else {\n this.expandState = 'collapsed';\n }\n }\n ngOnInit() {\n this.calcMotionState();\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n });\n }\n ngOnChanges(changes) {\n const {\n mode,\n nzOpen,\n menuClass\n } = changes;\n if (mode || nzOpen) {\n this.calcMotionState();\n }\n if (menuClass) {\n if (this.listOfCacheClassName.length) {\n this.listOfCacheClassName.filter(item => !!item).forEach(className => {\n this.renderer.removeClass(this.elementRef.nativeElement, className);\n });\n }\n if (this.menuClass) {\n this.listOfCacheClassName = this.menuClass.split(' ');\n this.listOfCacheClassName.filter(item => !!item).forEach(className => {\n this.renderer.addClass(this.elementRef.nativeElement, className);\n });\n }\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzSubmenuInlineChildComponent_Factory(t) {\n return new (t || NzSubmenuInlineChildComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzSubmenuInlineChildComponent,\n selectors: [[\"\", \"nz-submenu-inline-child\", \"\"]],\n hostAttrs: [1, \"ant-menu\", \"ant-menu-inline\", \"ant-menu-sub\"],\n hostVars: 3,\n hostBindings: function NzSubmenuInlineChildComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@collapseMotion\", ctx.expandState);\n i0.ɵɵclassProp(\"ant-menu-rtl\", ctx.dir === \"rtl\");\n }\n },\n inputs: {\n templateOutlet: \"templateOutlet\",\n menuClass: \"menuClass\",\n mode: \"mode\",\n nzOpen: \"nzOpen\"\n },\n exportAs: [\"nzSubmenuInlineChild\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n attrs: _c2,\n decls: 1,\n vars: 1,\n consts: [[3, \"ngTemplateOutlet\"]],\n template: function NzSubmenuInlineChildComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NzSubmenuInlineChildComponent_ng_template_0_Template, 0, 0, \"ng-template\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.templateOutlet);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n data: {\n animation: [collapseMotion]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzSubmenuInlineChildComponent, [{\n type: Component,\n args: [{\n selector: '[nz-submenu-inline-child]',\n animations: [collapseMotion],\n exportAs: 'nzSubmenuInlineChild',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ` `,\n host: {\n class: 'ant-menu ant-menu-inline ant-menu-sub',\n '[class.ant-menu-rtl]': `dir === 'rtl'`,\n '[@collapseMotion]': 'expandState'\n },\n imports: [NgTemplateOutlet],\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n templateOutlet: [{\n type: Input\n }],\n menuClass: [{\n type: Input\n }],\n mode: [{\n type: Input\n }],\n nzOpen: [{\n type: Input\n }]\n });\n})();\nclass NzSubmenuNoneInlineChildComponent {\n constructor(directionality) {\n this.directionality = directionality;\n this.menuClass = '';\n this.theme = 'light';\n this.templateOutlet = null;\n this.isMenuInsideDropDown = false;\n this.mode = 'vertical';\n this.position = 'right';\n this.nzDisabled = false;\n this.nzOpen = false;\n this.subMenuMouseState = new EventEmitter();\n this.expandState = 'collapsed';\n this.dir = 'ltr';\n this.destroy$ = new Subject();\n }\n setMouseState(state) {\n if (!this.nzDisabled) {\n this.subMenuMouseState.next(state);\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n calcMotionState() {\n if (this.nzOpen) {\n if (this.mode === 'horizontal') {\n this.expandState = 'bottom';\n } else if (this.mode === 'vertical') {\n this.expandState = 'active';\n }\n } else {\n this.expandState = 'collapsed';\n }\n }\n ngOnInit() {\n this.calcMotionState();\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n });\n }\n ngOnChanges(changes) {\n const {\n mode,\n nzOpen\n } = changes;\n if (mode || nzOpen) {\n this.calcMotionState();\n }\n }\n static {\n this.ɵfac = function NzSubmenuNoneInlineChildComponent_Factory(t) {\n return new (t || NzSubmenuNoneInlineChildComponent)(i0.ɵɵdirectiveInject(i1.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzSubmenuNoneInlineChildComponent,\n selectors: [[\"\", \"nz-submenu-none-inline-child\", \"\"]],\n hostAttrs: [1, \"ant-menu-submenu\", \"ant-menu-submenu-popup\"],\n hostVars: 14,\n hostBindings: function NzSubmenuNoneInlineChildComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseenter\", function NzSubmenuNoneInlineChildComponent_mouseenter_HostBindingHandler() {\n return ctx.setMouseState(true);\n })(\"mouseleave\", function NzSubmenuNoneInlineChildComponent_mouseleave_HostBindingHandler() {\n return ctx.setMouseState(false);\n });\n }\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@slideMotion\", ctx.expandState)(\"@zoomBigMotion\", ctx.expandState);\n i0.ɵɵclassProp(\"ant-menu-light\", ctx.theme === \"light\")(\"ant-menu-dark\", ctx.theme === \"dark\")(\"ant-menu-submenu-placement-bottom\", ctx.mode === \"horizontal\")(\"ant-menu-submenu-placement-right\", ctx.mode === \"vertical\" && ctx.position === \"right\")(\"ant-menu-submenu-placement-left\", ctx.mode === \"vertical\" && ctx.position === \"left\")(\"ant-menu-submenu-rtl\", ctx.dir === \"rtl\");\n }\n },\n inputs: {\n menuClass: \"menuClass\",\n theme: \"theme\",\n templateOutlet: \"templateOutlet\",\n isMenuInsideDropDown: \"isMenuInsideDropDown\",\n mode: \"mode\",\n position: \"position\",\n nzDisabled: \"nzDisabled\",\n nzOpen: \"nzOpen\"\n },\n outputs: {\n subMenuMouseState: \"subMenuMouseState\"\n },\n exportAs: [\"nzSubmenuNoneInlineChild\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n attrs: _c3,\n decls: 2,\n vars: 16,\n consts: [[3, \"ngClass\"], [3, \"ngTemplateOutlet\"]],\n template: function NzSubmenuNoneInlineChildComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, NzSubmenuNoneInlineChildComponent_ng_template_1_Template, 0, 0, \"ng-template\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"ant-dropdown-menu\", ctx.isMenuInsideDropDown)(\"ant-menu\", !ctx.isMenuInsideDropDown)(\"ant-dropdown-menu-vertical\", ctx.isMenuInsideDropDown)(\"ant-menu-vertical\", !ctx.isMenuInsideDropDown)(\"ant-dropdown-menu-sub\", ctx.isMenuInsideDropDown)(\"ant-menu-sub\", !ctx.isMenuInsideDropDown)(\"ant-menu-rtl\", ctx.dir === \"rtl\");\n i0.ɵɵproperty(\"ngClass\", ctx.menuClass);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.templateOutlet);\n }\n },\n dependencies: [NgClass, NgTemplateOutlet],\n encapsulation: 2,\n data: {\n animation: [zoomBigMotion, slideMotion]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzSubmenuNoneInlineChildComponent, [{\n type: Component,\n args: [{\n selector: '[nz-submenu-none-inline-child]',\n exportAs: 'nzSubmenuNoneInlineChild',\n encapsulation: ViewEncapsulation.None,\n animations: [zoomBigMotion, slideMotion],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n \n \n
\n `,\n host: {\n class: 'ant-menu-submenu ant-menu-submenu-popup',\n '[class.ant-menu-light]': \"theme === 'light'\",\n '[class.ant-menu-dark]': \"theme === 'dark'\",\n '[class.ant-menu-submenu-placement-bottom]': \"mode === 'horizontal'\",\n '[class.ant-menu-submenu-placement-right]': \"mode === 'vertical' && position === 'right'\",\n '[class.ant-menu-submenu-placement-left]': \"mode === 'vertical' && position === 'left'\",\n '[class.ant-menu-submenu-rtl]': 'dir ===\"rtl\"',\n '[@slideMotion]': 'expandState',\n '[@zoomBigMotion]': 'expandState',\n '(mouseenter)': 'setMouseState(true)',\n '(mouseleave)': 'setMouseState(false)'\n },\n imports: [NgClass, NgTemplateOutlet],\n standalone: true\n }]\n }], () => [{\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n menuClass: [{\n type: Input\n }],\n theme: [{\n type: Input\n }],\n templateOutlet: [{\n type: Input\n }],\n isMenuInsideDropDown: [{\n type: Input\n }],\n mode: [{\n type: Input\n }],\n position: [{\n type: Input\n }],\n nzDisabled: [{\n type: Input\n }],\n nzOpen: [{\n type: Input\n }],\n subMenuMouseState: [{\n type: Output\n }]\n });\n})();\nclass NzSubMenuTitleComponent {\n constructor(cdr, directionality) {\n this.cdr = cdr;\n this.directionality = directionality;\n this.nzIcon = null;\n this.nzTitle = null;\n this.isMenuInsideDropDown = false;\n this.nzDisabled = false;\n this.paddingLeft = null;\n this.mode = 'vertical';\n this.toggleSubMenu = new EventEmitter();\n this.subMenuMouseState = new EventEmitter();\n this.dir = 'ltr';\n this.destroy$ = new Subject();\n }\n ngOnInit() {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n setMouseState(state) {\n if (!this.nzDisabled) {\n this.subMenuMouseState.next(state);\n }\n }\n clickTitle() {\n if (this.mode === 'inline' && !this.nzDisabled) {\n this.toggleSubMenu.emit();\n }\n }\n static {\n this.ɵfac = function NzSubMenuTitleComponent_Factory(t) {\n return new (t || NzSubMenuTitleComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzSubMenuTitleComponent,\n selectors: [[\"\", \"nz-submenu-title\", \"\"]],\n hostVars: 8,\n hostBindings: function NzSubMenuTitleComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NzSubMenuTitleComponent_click_HostBindingHandler() {\n return ctx.clickTitle();\n })(\"mouseenter\", function NzSubMenuTitleComponent_mouseenter_HostBindingHandler() {\n return ctx.setMouseState(true);\n })(\"mouseleave\", function NzSubMenuTitleComponent_mouseleave_HostBindingHandler() {\n return ctx.setMouseState(false);\n });\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"padding-left\", ctx.dir === \"rtl\" ? null : ctx.paddingLeft, \"px\")(\"padding-right\", ctx.dir === \"rtl\" ? ctx.paddingLeft : null, \"px\");\n i0.ɵɵclassProp(\"ant-dropdown-menu-submenu-title\", ctx.isMenuInsideDropDown)(\"ant-menu-submenu-title\", !ctx.isMenuInsideDropDown);\n }\n },\n inputs: {\n nzIcon: \"nzIcon\",\n nzTitle: \"nzTitle\",\n isMenuInsideDropDown: \"isMenuInsideDropDown\",\n nzDisabled: \"nzDisabled\",\n paddingLeft: \"paddingLeft\",\n mode: \"mode\"\n },\n outputs: {\n toggleSubMenu: \"toggleSubMenu\",\n subMenuMouseState: \"subMenuMouseState\"\n },\n exportAs: [\"nzSubmenuTitle\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c4,\n ngContentSelectors: _c1,\n decls: 6,\n vars: 4,\n consts: [[\"nz-icon\", \"\", 3, \"nzType\", 4, \"ngIf\"], [4, \"nzStringTemplateOutlet\"], [\"class\", \"ant-dropdown-menu-submenu-expand-icon\", 3, \"ngSwitch\", 4, \"ngIf\", \"ngIfElse\"], [\"notDropdownTpl\", \"\"], [\"nz-icon\", \"\", 3, \"nzType\"], [1, \"ant-menu-title-content\"], [1, \"ant-dropdown-menu-submenu-expand-icon\", 3, \"ngSwitch\"], [\"nz-icon\", \"\", \"nzType\", \"left\", \"class\", \"ant-dropdown-menu-submenu-arrow-icon\", 4, \"ngSwitchCase\"], [\"nz-icon\", \"\", \"nzType\", \"right\", \"class\", \"ant-dropdown-menu-submenu-arrow-icon\", 4, \"ngSwitchDefault\"], [\"nz-icon\", \"\", \"nzType\", \"left\", 1, \"ant-dropdown-menu-submenu-arrow-icon\"], [\"nz-icon\", \"\", \"nzType\", \"right\", 1, \"ant-dropdown-menu-submenu-arrow-icon\"], [1, \"ant-menu-submenu-arrow\"]],\n template: function NzSubMenuTitleComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, NzSubMenuTitleComponent_span_0_Template, 1, 1, \"span\", 0)(1, NzSubMenuTitleComponent_ng_container_1_Template, 3, 1, \"ng-container\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵtemplate(3, NzSubMenuTitleComponent_span_3_Template, 3, 2, \"span\", 2)(4, NzSubMenuTitleComponent_ng_template_4_Template, 1, 0, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const _r4 = i0.ɵɵreference(5);\n i0.ɵɵproperty(\"ngIf\", ctx.nzIcon);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"nzStringTemplateOutlet\", ctx.nzTitle);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.isMenuInsideDropDown)(\"ngIfElse\", _r4);\n }\n },\n dependencies: [NzIconModule, i2.NzIconDirective, NgIf, NzOutletModule, i3.NzStringTemplateOutletDirective, NgSwitch, NgSwitchCase, NgSwitchDefault],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzSubMenuTitleComponent, [{\n type: Component,\n args: [{\n selector: '[nz-submenu-title]',\n exportAs: 'nzSubmenuTitle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n `,\n host: {\n '[class.ant-dropdown-menu-submenu-title]': 'isMenuInsideDropDown',\n '[class.ant-menu-submenu-title]': '!isMenuInsideDropDown',\n '[style.paddingLeft.px]': `dir === 'rtl' ? null : paddingLeft `,\n '[style.paddingRight.px]': `dir === 'rtl' ? paddingLeft : null`,\n '(click)': 'clickTitle()',\n '(mouseenter)': 'setMouseState(true)',\n '(mouseleave)': 'setMouseState(false)'\n },\n imports: [NzIconModule, NgIf, NzOutletModule, NgSwitch, NgSwitchCase, NgSwitchDefault],\n standalone: true\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n nzIcon: [{\n type: Input\n }],\n nzTitle: [{\n type: Input\n }],\n isMenuInsideDropDown: [{\n type: Input\n }],\n nzDisabled: [{\n type: Input\n }],\n paddingLeft: [{\n type: Input\n }],\n mode: [{\n type: Input\n }],\n toggleSubMenu: [{\n type: Output\n }],\n subMenuMouseState: [{\n type: Output\n }]\n });\n})();\nconst listOfVerticalPositions = [POSITION_MAP.rightTop, POSITION_MAP.right, POSITION_MAP.rightBottom, POSITION_MAP.leftTop, POSITION_MAP.left, POSITION_MAP.leftBottom];\nconst listOfHorizontalPositions = [POSITION_MAP.bottomLeft, POSITION_MAP.bottomRight, POSITION_MAP.topRight, POSITION_MAP.topLeft];\nclass NzSubMenuComponent {\n /** set the submenu host open status directly **/\n setOpenStateWithoutDebounce(open) {\n this.nzSubmenuService.setOpenStateWithoutDebounce(open);\n }\n toggleSubMenu() {\n this.setOpenStateWithoutDebounce(!this.nzOpen);\n }\n setMouseEnterState(value) {\n this.isActive = value;\n if (this.mode !== 'inline') {\n this.nzSubmenuService.setMouseEnterTitleOrOverlayState(value);\n }\n }\n setTriggerWidth() {\n if (this.mode === 'horizontal' && this.platform.isBrowser && this.cdkOverlayOrigin && this.nzPlacement === 'bottomLeft') {\n /** TODO: fast dom **/\n this.triggerWidth = this.cdkOverlayOrigin.nativeElement.getBoundingClientRect().width;\n }\n }\n onPositionChange(position) {\n const placement = getPlacementName(position);\n if (placement === 'rightTop' || placement === 'rightBottom' || placement === 'right') {\n this.position = 'right';\n } else if (placement === 'leftTop' || placement === 'leftBottom' || placement === 'left') {\n this.position = 'left';\n }\n }\n constructor(nzMenuService, cdr, nzSubmenuService, platform, isMenuInsideDropDown, directionality, noAnimation) {\n this.nzMenuService = nzMenuService;\n this.cdr = cdr;\n this.nzSubmenuService = nzSubmenuService;\n this.platform = platform;\n this.isMenuInsideDropDown = isMenuInsideDropDown;\n this.directionality = directionality;\n this.noAnimation = noAnimation;\n this.nzMenuClassName = '';\n this.nzPaddingLeft = null;\n this.nzTitle = null;\n this.nzIcon = null;\n this.nzOpen = false;\n this.nzDisabled = false;\n this.nzPlacement = 'bottomLeft';\n this.nzOpenChange = new EventEmitter();\n this.cdkOverlayOrigin = null;\n // fix errors about circular dependency\n // Can't construct a query for the property ... since the query selector wasn't defined\"\n this.listOfNzSubMenuComponent = null;\n this.listOfNzMenuItemDirective = null;\n this.level = this.nzSubmenuService.level;\n this.destroy$ = new Subject();\n this.position = 'right';\n this.triggerWidth = null;\n this.theme = 'light';\n this.mode = 'vertical';\n this.inlinePaddingLeft = null;\n this.overlayPositions = listOfVerticalPositions;\n this.isSelected = false;\n this.isActive = false;\n this.dir = 'ltr';\n }\n ngOnInit() {\n /** submenu theme update **/\n this.nzMenuService.theme$.pipe(takeUntil(this.destroy$)).subscribe(theme => {\n this.theme = theme;\n this.cdr.markForCheck();\n });\n /** submenu mode update **/\n this.nzSubmenuService.mode$.pipe(takeUntil(this.destroy$)).subscribe(mode => {\n this.mode = mode;\n if (mode === 'horizontal') {\n this.overlayPositions = [POSITION_MAP[this.nzPlacement], ...listOfHorizontalPositions];\n } else if (mode === 'vertical') {\n this.overlayPositions = listOfVerticalPositions;\n }\n this.cdr.markForCheck();\n });\n /** inlineIndent update **/\n combineLatest([this.nzSubmenuService.mode$, this.nzMenuService.inlineIndent$]).pipe(takeUntil(this.destroy$)).subscribe(([mode, inlineIndent]) => {\n this.inlinePaddingLeft = mode === 'inline' ? this.level * inlineIndent : null;\n this.cdr.markForCheck();\n });\n /** current submenu open status **/\n this.nzSubmenuService.isCurrentSubMenuOpen$.pipe(takeUntil(this.destroy$)).subscribe(open => {\n this.isActive = open;\n if (open !== this.nzOpen) {\n this.setTriggerWidth();\n this.nzOpen = open;\n this.nzOpenChange.emit(this.nzOpen);\n this.cdr.markForCheck();\n }\n });\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.cdr.markForCheck();\n });\n }\n ngAfterContentInit() {\n this.setTriggerWidth();\n const listOfNzMenuItemDirective = this.listOfNzMenuItemDirective;\n const changes = listOfNzMenuItemDirective.changes;\n const mergedObservable = merge(...[changes, ...listOfNzMenuItemDirective.map(menu => menu.selected$)]);\n changes.pipe(startWith(listOfNzMenuItemDirective), switchMap(() => mergedObservable), startWith(true), map(() => listOfNzMenuItemDirective.some(e => e.nzSelected)), takeUntil(this.destroy$)).subscribe(selected => {\n this.isSelected = selected;\n this.cdr.markForCheck();\n });\n }\n ngOnChanges(changes) {\n const {\n nzOpen\n } = changes;\n if (nzOpen) {\n this.nzSubmenuService.setOpenStateWithoutDebounce(this.nzOpen);\n this.setTriggerWidth();\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzSubMenuComponent_Factory(t) {\n return new (t || NzSubMenuComponent)(i0.ɵɵdirectiveInject(MenuService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NzSubmenuService), i0.ɵɵdirectiveInject(i3$1.Platform), i0.ɵɵdirectiveInject(NzIsMenuInsideDropDownToken), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i5.NzNoAnimationDirective, 9));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzSubMenuComponent,\n selectors: [[\"\", \"nz-submenu\", \"\"]],\n contentQueries: function NzSubMenuComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NzSubMenuComponent, 5);\n i0.ɵɵcontentQuery(dirIndex, NzMenuItemComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listOfNzSubMenuComponent = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listOfNzMenuItemDirective = _t);\n }\n },\n viewQuery: function NzSubMenuComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(CdkOverlayOrigin, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cdkOverlayOrigin = _t.first);\n }\n },\n hostVars: 34,\n hostBindings: function NzSubMenuComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"ant-dropdown-menu-submenu\", ctx.isMenuInsideDropDown)(\"ant-dropdown-menu-submenu-disabled\", ctx.isMenuInsideDropDown && ctx.nzDisabled)(\"ant-dropdown-menu-submenu-open\", ctx.isMenuInsideDropDown && ctx.nzOpen)(\"ant-dropdown-menu-submenu-selected\", ctx.isMenuInsideDropDown && ctx.isSelected)(\"ant-dropdown-menu-submenu-vertical\", ctx.isMenuInsideDropDown && ctx.mode === \"vertical\")(\"ant-dropdown-menu-submenu-horizontal\", ctx.isMenuInsideDropDown && ctx.mode === \"horizontal\")(\"ant-dropdown-menu-submenu-inline\", ctx.isMenuInsideDropDown && ctx.mode === \"inline\")(\"ant-dropdown-menu-submenu-active\", ctx.isMenuInsideDropDown && ctx.isActive)(\"ant-menu-submenu\", !ctx.isMenuInsideDropDown)(\"ant-menu-submenu-disabled\", !ctx.isMenuInsideDropDown && ctx.nzDisabled)(\"ant-menu-submenu-open\", !ctx.isMenuInsideDropDown && ctx.nzOpen)(\"ant-menu-submenu-selected\", !ctx.isMenuInsideDropDown && ctx.isSelected)(\"ant-menu-submenu-vertical\", !ctx.isMenuInsideDropDown && ctx.mode === \"vertical\")(\"ant-menu-submenu-horizontal\", !ctx.isMenuInsideDropDown && ctx.mode === \"horizontal\")(\"ant-menu-submenu-inline\", !ctx.isMenuInsideDropDown && ctx.mode === \"inline\")(\"ant-menu-submenu-active\", !ctx.isMenuInsideDropDown && ctx.isActive)(\"ant-menu-submenu-rtl\", ctx.dir === \"rtl\");\n }\n },\n inputs: {\n nzMenuClassName: \"nzMenuClassName\",\n nzPaddingLeft: \"nzPaddingLeft\",\n nzTitle: \"nzTitle\",\n nzIcon: \"nzIcon\",\n nzOpen: \"nzOpen\",\n nzDisabled: \"nzDisabled\",\n nzPlacement: \"nzPlacement\"\n },\n outputs: {\n nzOpenChange: \"nzOpenChange\"\n },\n exportAs: [\"nzSubmenu\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([NzSubmenuService]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n attrs: _c5,\n ngContentSelectors: _c7,\n decls: 8,\n vars: 9,\n consts: [[\"nz-submenu-title\", \"\", \"cdkOverlayOrigin\", \"\", 3, \"nzIcon\", \"nzTitle\", \"mode\", \"nzDisabled\", \"isMenuInsideDropDown\", \"paddingLeft\", \"subMenuMouseState\", \"toggleSubMenu\"], [\"origin\", \"cdkOverlayOrigin\"], [4, \"ngIf\"], [\"nz-submenu-inline-child\", \"\", 3, \"mode\", \"nzOpen\", \"nzNoAnimation\", \"menuClass\", \"templateOutlet\", 4, \"ngIf\", \"ngIfElse\"], [\"nonInlineTemplate\", \"\"], [\"subMenuTemplate\", \"\"], [\"nz-submenu-inline-child\", \"\", 3, \"mode\", \"nzOpen\", \"nzNoAnimation\", \"menuClass\", \"templateOutlet\"], [\"cdkConnectedOverlay\", \"\", 3, \"cdkConnectedOverlayPositions\", \"cdkConnectedOverlayOrigin\", \"cdkConnectedOverlayWidth\", \"cdkConnectedOverlayOpen\", \"cdkConnectedOverlayTransformOriginOn\", \"positionChange\"], [\"nz-submenu-none-inline-child\", \"\", 3, \"theme\", \"mode\", \"nzOpen\", \"position\", \"nzDisabled\", \"isMenuInsideDropDown\", \"templateOutlet\", \"menuClass\", \"nzNoAnimation\", \"subMenuMouseState\"]],\n template: function NzSubMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c6);\n i0.ɵɵelementStart(0, \"div\", 0, 1);\n i0.ɵɵlistener(\"subMenuMouseState\", function NzSubMenuComponent_Template_div_subMenuMouseState_0_listener($event) {\n return ctx.setMouseEnterState($event);\n })(\"toggleSubMenu\", function NzSubMenuComponent_Template_div_toggleSubMenu_0_listener() {\n return ctx.toggleSubMenu();\n });\n i0.ɵɵtemplate(2, NzSubMenuComponent_ng_content_2_Template, 1, 0, \"ng-content\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, NzSubMenuComponent_div_3_Template, 1, 6, \"div\", 3)(4, NzSubMenuComponent_ng_template_4_Template, 1, 5, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor)(6, NzSubMenuComponent_ng_template_6_Template, 1, 0, \"ng-template\", null, 5, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const _r4 = i0.ɵɵreference(5);\n i0.ɵɵproperty(\"nzIcon\", ctx.nzIcon)(\"nzTitle\", ctx.nzTitle)(\"mode\", ctx.mode)(\"nzDisabled\", ctx.nzDisabled)(\"isMenuInsideDropDown\", ctx.isMenuInsideDropDown)(\"paddingLeft\", ctx.nzPaddingLeft || ctx.inlinePaddingLeft);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.nzTitle);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.mode === \"inline\")(\"ngIfElse\", _r4);\n }\n },\n dependencies: [NzSubMenuTitleComponent, NzSubmenuInlineChildComponent, NgIf, NzNoAnimationDirective, NzSubmenuNoneInlineChildComponent, OverlayModule, i6.CdkConnectedOverlay, i6.CdkOverlayOrigin],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n__decorate([InputBoolean()], NzSubMenuComponent.prototype, \"nzOpen\", void 0);\n__decorate([InputBoolean()], NzSubMenuComponent.prototype, \"nzDisabled\", void 0);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzSubMenuComponent, [{\n type: Component,\n args: [{\n selector: '[nz-submenu]',\n exportAs: 'nzSubmenu',\n providers: [NzSubmenuService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n template: `\n \n \n
\n
\n \n \n
\n \n \n\n \n \n \n `,\n host: {\n '[class.ant-dropdown-menu-submenu]': `isMenuInsideDropDown`,\n '[class.ant-dropdown-menu-submenu-disabled]': `isMenuInsideDropDown && nzDisabled`,\n '[class.ant-dropdown-menu-submenu-open]': `isMenuInsideDropDown && nzOpen`,\n '[class.ant-dropdown-menu-submenu-selected]': `isMenuInsideDropDown && isSelected`,\n '[class.ant-dropdown-menu-submenu-vertical]': `isMenuInsideDropDown && mode === 'vertical'`,\n '[class.ant-dropdown-menu-submenu-horizontal]': `isMenuInsideDropDown && mode === 'horizontal'`,\n '[class.ant-dropdown-menu-submenu-inline]': `isMenuInsideDropDown && mode === 'inline'`,\n '[class.ant-dropdown-menu-submenu-active]': `isMenuInsideDropDown && isActive`,\n '[class.ant-menu-submenu]': `!isMenuInsideDropDown`,\n '[class.ant-menu-submenu-disabled]': `!isMenuInsideDropDown && nzDisabled`,\n '[class.ant-menu-submenu-open]': `!isMenuInsideDropDown && nzOpen`,\n '[class.ant-menu-submenu-selected]': `!isMenuInsideDropDown && isSelected`,\n '[class.ant-menu-submenu-vertical]': `!isMenuInsideDropDown && mode === 'vertical'`,\n '[class.ant-menu-submenu-horizontal]': `!isMenuInsideDropDown && mode === 'horizontal'`,\n '[class.ant-menu-submenu-inline]': `!isMenuInsideDropDown && mode === 'inline'`,\n '[class.ant-menu-submenu-active]': `!isMenuInsideDropDown && isActive`,\n '[class.ant-menu-submenu-rtl]': `dir === 'rtl'`\n },\n imports: [NzSubMenuTitleComponent, NzSubmenuInlineChildComponent, NgIf, NzNoAnimationDirective, NzSubmenuNoneInlineChildComponent, OverlayModule],\n standalone: true\n }]\n }], () => [{\n type: MenuService\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: NzSubmenuService\n }, {\n type: i3$1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [NzIsMenuInsideDropDownToken]\n }]\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i5.NzNoAnimationDirective,\n decorators: [{\n type: Host\n }, {\n type: Optional\n }]\n }], {\n nzMenuClassName: [{\n type: Input\n }],\n nzPaddingLeft: [{\n type: Input\n }],\n nzTitle: [{\n type: Input\n }],\n nzIcon: [{\n type: Input\n }],\n nzOpen: [{\n type: Input\n }],\n nzDisabled: [{\n type: Input\n }],\n nzPlacement: [{\n type: Input\n }],\n nzOpenChange: [{\n type: Output\n }],\n cdkOverlayOrigin: [{\n type: ViewChild,\n args: [CdkOverlayOrigin, {\n static: true,\n read: ElementRef\n }]\n }],\n listOfNzSubMenuComponent: [{\n type: ContentChildren,\n args: [forwardRef(() => NzSubMenuComponent), {\n descendants: true\n }]\n }],\n listOfNzMenuItemDirective: [{\n type: ContentChildren,\n args: [NzMenuItemComponent, {\n descendants: true\n }]\n }]\n });\n})();\nfunction MenuServiceFactory() {\n const serviceInsideDropDown = inject(MenuService, {\n skipSelf: true,\n optional: true\n });\n const serviceOutsideDropDown = inject(NzMenuServiceLocalToken);\n return serviceInsideDropDown ?? serviceOutsideDropDown;\n}\nfunction MenuDropDownTokenFactory() {\n const isMenuInsideDropDownToken = inject(NzIsMenuInsideDropDownToken, {\n skipSelf: true,\n optional: true\n });\n return isMenuInsideDropDownToken ?? false;\n}\nclass NzMenuDirective {\n setInlineCollapsed(inlineCollapsed) {\n this.nzInlineCollapsed = inlineCollapsed;\n this.inlineCollapsed$.next(inlineCollapsed);\n }\n updateInlineCollapse() {\n if (this.listOfNzMenuItemDirective) {\n if (this.nzInlineCollapsed) {\n this.listOfOpenedNzSubMenuComponent = this.listOfNzSubMenuComponent.filter(submenu => submenu.nzOpen);\n this.listOfNzSubMenuComponent.forEach(submenu => submenu.setOpenStateWithoutDebounce(false));\n } else {\n this.listOfOpenedNzSubMenuComponent.forEach(submenu => submenu.setOpenStateWithoutDebounce(true));\n this.listOfOpenedNzSubMenuComponent = [];\n }\n }\n }\n constructor(nzMenuService, isMenuInsideDropDown, cdr, directionality) {\n this.nzMenuService = nzMenuService;\n this.isMenuInsideDropDown = isMenuInsideDropDown;\n this.cdr = cdr;\n this.directionality = directionality;\n this.nzInlineIndent = 24;\n this.nzTheme = 'light';\n this.nzMode = 'vertical';\n this.nzInlineCollapsed = false;\n this.nzSelectable = !this.isMenuInsideDropDown;\n this.nzClick = new EventEmitter();\n this.actualMode = 'vertical';\n this.dir = 'ltr';\n this.inlineCollapsed$ = new BehaviorSubject(this.nzInlineCollapsed);\n this.mode$ = new BehaviorSubject(this.nzMode);\n this.destroy$ = new Subject();\n this.listOfOpenedNzSubMenuComponent = [];\n }\n ngOnInit() {\n combineLatest([this.inlineCollapsed$, this.mode$]).pipe(takeUntil(this.destroy$)).subscribe(([inlineCollapsed, mode]) => {\n this.actualMode = inlineCollapsed ? 'vertical' : mode;\n this.nzMenuService.setMode(this.actualMode);\n this.cdr.markForCheck();\n });\n this.nzMenuService.descendantMenuItemClick$.pipe(takeUntil(this.destroy$)).subscribe(menu => {\n this.nzClick.emit(menu);\n if (this.nzSelectable && !menu.nzMatchRouter) {\n this.listOfNzMenuItemDirective.forEach(item => item.setSelectedState(item === menu));\n }\n });\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.nzMenuService.setMode(this.actualMode);\n this.cdr.markForCheck();\n });\n }\n ngAfterContentInit() {\n this.inlineCollapsed$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateInlineCollapse();\n this.cdr.markForCheck();\n });\n }\n ngOnChanges(changes) {\n const {\n nzInlineCollapsed,\n nzInlineIndent,\n nzTheme,\n nzMode\n } = changes;\n if (nzInlineCollapsed) {\n this.inlineCollapsed$.next(this.nzInlineCollapsed);\n }\n if (nzInlineIndent) {\n this.nzMenuService.setInlineIndent(this.nzInlineIndent);\n }\n if (nzTheme) {\n this.nzMenuService.setTheme(this.nzTheme);\n }\n if (nzMode) {\n this.mode$.next(this.nzMode);\n if (!changes.nzMode.isFirstChange() && this.listOfNzSubMenuComponent) {\n this.listOfNzSubMenuComponent.forEach(submenu => submenu.setOpenStateWithoutDebounce(false));\n }\n }\n }\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n static {\n this.ɵfac = function NzMenuDirective_Factory(t) {\n return new (t || NzMenuDirective)(i0.ɵɵdirectiveInject(MenuService), i0.ɵɵdirectiveInject(NzIsMenuInsideDropDownToken), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzMenuDirective,\n selectors: [[\"\", \"nz-menu\", \"\"]],\n contentQueries: function NzMenuDirective_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NzMenuItemComponent, 5);\n i0.ɵɵcontentQuery(dirIndex, NzSubMenuComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listOfNzMenuItemDirective = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listOfNzSubMenuComponent = _t);\n }\n },\n hostVars: 34,\n hostBindings: function NzMenuDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"ant-dropdown-menu\", ctx.isMenuInsideDropDown)(\"ant-dropdown-menu-root\", ctx.isMenuInsideDropDown)(\"ant-dropdown-menu-light\", ctx.isMenuInsideDropDown && ctx.nzTheme === \"light\")(\"ant-dropdown-menu-dark\", ctx.isMenuInsideDropDown && ctx.nzTheme === \"dark\")(\"ant-dropdown-menu-vertical\", ctx.isMenuInsideDropDown && ctx.actualMode === \"vertical\")(\"ant-dropdown-menu-horizontal\", ctx.isMenuInsideDropDown && ctx.actualMode === \"horizontal\")(\"ant-dropdown-menu-inline\", ctx.isMenuInsideDropDown && ctx.actualMode === \"inline\")(\"ant-dropdown-menu-inline-collapsed\", ctx.isMenuInsideDropDown && ctx.nzInlineCollapsed)(\"ant-menu\", !ctx.isMenuInsideDropDown)(\"ant-menu-root\", !ctx.isMenuInsideDropDown)(\"ant-menu-light\", !ctx.isMenuInsideDropDown && ctx.nzTheme === \"light\")(\"ant-menu-dark\", !ctx.isMenuInsideDropDown && ctx.nzTheme === \"dark\")(\"ant-menu-vertical\", !ctx.isMenuInsideDropDown && ctx.actualMode === \"vertical\")(\"ant-menu-horizontal\", !ctx.isMenuInsideDropDown && ctx.actualMode === \"horizontal\")(\"ant-menu-inline\", !ctx.isMenuInsideDropDown && ctx.actualMode === \"inline\")(\"ant-menu-inline-collapsed\", !ctx.isMenuInsideDropDown && ctx.nzInlineCollapsed)(\"ant-menu-rtl\", ctx.dir === \"rtl\");\n }\n },\n inputs: {\n nzInlineIndent: \"nzInlineIndent\",\n nzTheme: \"nzTheme\",\n nzMode: \"nzMode\",\n nzInlineCollapsed: \"nzInlineCollapsed\",\n nzSelectable: \"nzSelectable\"\n },\n outputs: {\n nzClick: \"nzClick\"\n },\n exportAs: [\"nzMenu\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NzMenuServiceLocalToken,\n useClass: MenuService\n }, /** use the top level service **/\n {\n provide: MenuService,\n useFactory: MenuServiceFactory\n }, /** check if menu inside dropdown-menu component **/\n {\n provide: NzIsMenuInsideDropDownToken,\n useFactory: MenuDropDownTokenFactory\n }]), i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n__decorate([InputBoolean()], NzMenuDirective.prototype, \"nzInlineCollapsed\", void 0);\n__decorate([InputBoolean()], NzMenuDirective.prototype, \"nzSelectable\", void 0);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzMenuDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-menu]',\n exportAs: 'nzMenu',\n providers: [{\n provide: NzMenuServiceLocalToken,\n useClass: MenuService\n }, /** use the top level service **/\n {\n provide: MenuService,\n useFactory: MenuServiceFactory\n }, /** check if menu inside dropdown-menu component **/\n {\n provide: NzIsMenuInsideDropDownToken,\n useFactory: MenuDropDownTokenFactory\n }],\n host: {\n '[class.ant-dropdown-menu]': `isMenuInsideDropDown`,\n '[class.ant-dropdown-menu-root]': `isMenuInsideDropDown`,\n '[class.ant-dropdown-menu-light]': `isMenuInsideDropDown && nzTheme === 'light'`,\n '[class.ant-dropdown-menu-dark]': `isMenuInsideDropDown && nzTheme === 'dark'`,\n '[class.ant-dropdown-menu-vertical]': `isMenuInsideDropDown && actualMode === 'vertical'`,\n '[class.ant-dropdown-menu-horizontal]': `isMenuInsideDropDown && actualMode === 'horizontal'`,\n '[class.ant-dropdown-menu-inline]': `isMenuInsideDropDown && actualMode === 'inline'`,\n '[class.ant-dropdown-menu-inline-collapsed]': `isMenuInsideDropDown && nzInlineCollapsed`,\n '[class.ant-menu]': `!isMenuInsideDropDown`,\n '[class.ant-menu-root]': `!isMenuInsideDropDown`,\n '[class.ant-menu-light]': `!isMenuInsideDropDown && nzTheme === 'light'`,\n '[class.ant-menu-dark]': `!isMenuInsideDropDown && nzTheme === 'dark'`,\n '[class.ant-menu-vertical]': `!isMenuInsideDropDown && actualMode === 'vertical'`,\n '[class.ant-menu-horizontal]': `!isMenuInsideDropDown && actualMode === 'horizontal'`,\n '[class.ant-menu-inline]': `!isMenuInsideDropDown && actualMode === 'inline'`,\n '[class.ant-menu-inline-collapsed]': `!isMenuInsideDropDown && nzInlineCollapsed`,\n '[class.ant-menu-rtl]': `dir === 'rtl'`\n },\n standalone: true\n }]\n }], () => [{\n type: MenuService\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [NzIsMenuInsideDropDownToken]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n listOfNzMenuItemDirective: [{\n type: ContentChildren,\n args: [NzMenuItemComponent, {\n descendants: true\n }]\n }],\n listOfNzSubMenuComponent: [{\n type: ContentChildren,\n args: [NzSubMenuComponent, {\n descendants: true\n }]\n }],\n nzInlineIndent: [{\n type: Input\n }],\n nzTheme: [{\n type: Input\n }],\n nzMode: [{\n type: Input\n }],\n nzInlineCollapsed: [{\n type: Input\n }],\n nzSelectable: [{\n type: Input\n }],\n nzClick: [{\n type: Output\n }]\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 */\nfunction MenuGroupFactory() {\n const isMenuInsideDropDownToken = inject(NzIsMenuInsideDropDownToken, {\n optional: true,\n skipSelf: true\n });\n return isMenuInsideDropDownToken ?? false;\n}\nclass NzMenuGroupComponent {\n constructor(elementRef, renderer, isMenuInsideDropDown) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.isMenuInsideDropDown = isMenuInsideDropDown;\n const className = this.isMenuInsideDropDown ? 'ant-dropdown-menu-item-group' : 'ant-menu-item-group';\n this.renderer.addClass(elementRef.nativeElement, className);\n }\n ngAfterViewInit() {\n const ulElement = this.titleElement.nativeElement.nextElementSibling;\n if (ulElement) {\n /** add classname to ul **/\n const className = this.isMenuInsideDropDown ? 'ant-dropdown-menu-item-group-list' : 'ant-menu-item-group-list';\n this.renderer.addClass(ulElement, className);\n }\n }\n static {\n this.ɵfac = function NzMenuGroupComponent_Factory(t) {\n return new (t || NzMenuGroupComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(NzIsMenuInsideDropDownToken));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzMenuGroupComponent,\n selectors: [[\"\", \"nz-menu-group\", \"\"]],\n viewQuery: function NzMenuGroupComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c8, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.titleElement = _t.first);\n }\n },\n inputs: {\n nzTitle: \"nzTitle\"\n },\n exportAs: [\"nzMenuGroup\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([/** check if menu inside dropdown-menu component **/\n {\n provide: NzIsMenuInsideDropDownToken,\n useFactory: MenuGroupFactory\n }]), i0.ɵɵStandaloneFeature],\n attrs: _c9,\n ngContentSelectors: _c11,\n decls: 5,\n vars: 6,\n consts: [[\"titleElement\", \"\"], [4, \"nzStringTemplateOutlet\"], [4, \"ngIf\"]],\n template: function NzMenuGroupComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c10);\n i0.ɵɵelementStart(0, \"div\", null, 0);\n i0.ɵɵtemplate(2, NzMenuGroupComponent_ng_container_2_Template, 2, 1, \"ng-container\", 1)(3, NzMenuGroupComponent_ng_content_3_Template, 1, 0, \"ng-content\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"ant-menu-item-group-title\", !ctx.isMenuInsideDropDown)(\"ant-dropdown-menu-item-group-title\", ctx.isMenuInsideDropDown);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzStringTemplateOutlet\", ctx.nzTitle);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", !ctx.nzTitle);\n }\n },\n dependencies: [NzOutletModule, i3.NzStringTemplateOutletDirective, NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzMenuGroupComponent, [{\n type: Component,\n args: [{\n selector: '[nz-menu-group]',\n exportAs: 'nzMenuGroup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [/** check if menu inside dropdown-menu component **/\n {\n provide: NzIsMenuInsideDropDownToken,\n useFactory: MenuGroupFactory\n }],\n encapsulation: ViewEncapsulation.None,\n template: `\n \n {{ nzTitle }} \n \n
\n \n `,\n preserveWhitespaces: false,\n imports: [NzOutletModule, NgIf],\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [NzIsMenuInsideDropDownToken]\n }]\n }], {\n nzTitle: [{\n type: Input\n }],\n titleElement: [{\n type: ViewChild,\n args: ['titleElement']\n }]\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 NzMenuDividerDirective {\n constructor(elementRef) {\n this.elementRef = elementRef;\n }\n static {\n this.ɵfac = function NzMenuDividerDirective_Factory(t) {\n return new (t || NzMenuDividerDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzMenuDividerDirective,\n selectors: [[\"\", \"nz-menu-divider\", \"\"]],\n hostAttrs: [1, \"ant-dropdown-menu-item-divider\"],\n exportAs: [\"nzMenuDivider\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzMenuDividerDirective, [{\n type: Directive,\n args: [{\n selector: '[nz-menu-divider]',\n exportAs: 'nzMenuDivider',\n host: {\n class: 'ant-dropdown-menu-item-divider'\n },\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }], null);\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 NzMenuModule {\n static {\n this.ɵfac = function NzMenuModule_Factory(t) {\n return new (t || NzMenuModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzMenuModule,\n imports: [NzMenuDirective, NzMenuItemComponent, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent, NzSubMenuTitleComponent, NzSubmenuInlineChildComponent, NzSubmenuNoneInlineChildComponent],\n exports: [NzMenuDirective, NzMenuItemComponent, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [NzSubMenuComponent, NzMenuGroupComponent, NzSubMenuTitleComponent]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzMenuModule, [{\n type: NgModule,\n args: [{\n imports: [NzMenuDirective, NzMenuItemComponent, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent, NzSubMenuTitleComponent, NzSubmenuInlineChildComponent, NzSubmenuNoneInlineChildComponent],\n exports: [NzMenuDirective, NzMenuItemComponent, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent]\n }]\n }], null, null);\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 * 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 { MenuDropDownTokenFactory, MenuGroupFactory, MenuService, MenuServiceFactory, NzIsMenuInsideDropDownToken, NzMenuDirective, NzMenuDividerDirective, NzMenuGroupComponent, NzMenuItemComponent, NzMenuModule, NzMenuServiceLocalToken, NzSubMenuComponent, NzSubMenuTitleComponent, NzSubmenuInlineChildComponent, NzSubmenuNoneInlineChildComponent, NzSubmenuService };\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-XAGDQPFO.js b/.angular/cache/17.0.7/vite/deps/chunk-XAGDQPFO.js
deleted file mode 100644
index 3aaa506..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-XAGDQPFO.js
+++ /dev/null
@@ -1,213 +0,0 @@
-import {
- animate,
- query,
- stagger,
- state,
- style,
- transition,
- trigger
-} from "./chunk-KI2JSLP6.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-animation.mjs
-var _AnimationDuration = class _AnimationDuration {
- // Tooltip
-};
-_AnimationDuration.SLOW = "0.3s";
-_AnimationDuration.BASE = "0.2s";
-_AnimationDuration.FAST = "0.1s";
-var AnimationDuration = _AnimationDuration;
-var _AnimationCurves = class _AnimationCurves {
-};
-_AnimationCurves.EASE_BASE_OUT = "cubic-bezier(0.7, 0.3, 0.1, 1)";
-_AnimationCurves.EASE_BASE_IN = "cubic-bezier(0.9, 0, 0.3, 0.7)";
-_AnimationCurves.EASE_OUT = "cubic-bezier(0.215, 0.61, 0.355, 1)";
-_AnimationCurves.EASE_IN = "cubic-bezier(0.55, 0.055, 0.675, 0.19)";
-_AnimationCurves.EASE_IN_OUT = "cubic-bezier(0.645, 0.045, 0.355, 1)";
-_AnimationCurves.EASE_OUT_BACK = "cubic-bezier(0.12, 0.4, 0.29, 1.46)";
-_AnimationCurves.EASE_IN_BACK = "cubic-bezier(0.71, -0.46, 0.88, 0.6)";
-_AnimationCurves.EASE_IN_OUT_BACK = "cubic-bezier(0.71, -0.46, 0.29, 1.46)";
-_AnimationCurves.EASE_OUT_CIRC = "cubic-bezier(0.08, 0.82, 0.17, 1)";
-_AnimationCurves.EASE_IN_CIRC = "cubic-bezier(0.6, 0.04, 0.98, 0.34)";
-_AnimationCurves.EASE_IN_OUT_CIRC = "cubic-bezier(0.78, 0.14, 0.15, 0.86)";
-_AnimationCurves.EASE_OUT_QUINT = "cubic-bezier(0.23, 1, 0.32, 1)";
-_AnimationCurves.EASE_IN_QUINT = "cubic-bezier(0.755, 0.05, 0.855, 0.06)";
-_AnimationCurves.EASE_IN_OUT_QUINT = "cubic-bezier(0.86, 0, 0.07, 1)";
-var AnimationCurves = _AnimationCurves;
-var collapseMotion = trigger("collapseMotion", [
- state("expanded", style({ height: "*" })),
- state("collapsed", style({ height: 0, overflow: "hidden" })),
- state("hidden", style({ height: 0, overflow: "hidden", borderTopWidth: "0" })),
- transition("expanded => collapsed", animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),
- transition("expanded => hidden", animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),
- transition("collapsed => expanded", animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),
- transition("hidden => expanded", animate(`150ms ${AnimationCurves.EASE_IN_OUT}`))
-]);
-var treeCollapseMotion = trigger("treeCollapseMotion", [
- transition("* => *", [
- query("nz-tree-node:leave,nz-tree-builtin-node:leave", [
- style({ overflow: "hidden" }),
- stagger(0, [
- animate(`150ms ${AnimationCurves.EASE_IN_OUT}`, style({ height: 0, opacity: 0, "padding-bottom": 0 }))
- ])
- ], {
- optional: true
- }),
- query("nz-tree-node:enter,nz-tree-builtin-node:enter", [
- style({ overflow: "hidden", height: 0, opacity: 0, "padding-bottom": 0 }),
- stagger(0, [
- animate(`150ms ${AnimationCurves.EASE_IN_OUT}`, style({ overflow: "hidden", height: "*", opacity: "*", "padding-bottom": "*" }))
- ])
- ], {
- optional: true
- })
- ])
-]);
-var fadeMotion = trigger("fadeMotion", [
- transition(":enter", [style({ opacity: 0 }), animate(`${AnimationDuration.BASE}`, style({ opacity: 1 }))]),
- transition(":leave", [style({ opacity: 1 }), animate(`${AnimationDuration.BASE}`, style({ opacity: 0 }))])
-]);
-var helpMotion = trigger("helpMotion", [
- transition(":enter", [
- style({
- opacity: 0,
- transform: "translateY(-5px)"
- }),
- animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_IN_OUT}`, style({
- opacity: 1,
- transform: "translateY(0)"
- }))
- ]),
- transition(":leave", [
- style({
- opacity: 1,
- transform: "translateY(0)"
- }),
- animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_IN_OUT}`, style({
- opacity: 0,
- transform: "translateY(-5px)"
- }))
- ])
-]);
-var moveUpMotion = trigger("moveUpMotion", [
- transition("* => enter", [
- style({
- transformOrigin: "0 0",
- transform: "translateY(-100%)",
- opacity: 0
- }),
- animate(`${AnimationDuration.BASE}`, style({
- transformOrigin: "0 0",
- transform: "translateY(0%)",
- opacity: 1
- }))
- ]),
- transition("* => leave", [
- style({
- transformOrigin: "0 0",
- transform: "translateY(0%)",
- opacity: 1
- }),
- animate(`${AnimationDuration.BASE}`, style({
- transformOrigin: "0 0",
- transform: "translateY(-100%)",
- opacity: 0
- }))
- ])
-]);
-var notificationMotion = trigger("notificationMotion", [
- state("enterRight", style({ opacity: 1, transform: "translateX(0)" })),
- transition("* => enterRight", [style({ opacity: 0, transform: "translateX(5%)" }), animate("100ms linear")]),
- state("enterLeft", style({ opacity: 1, transform: "translateX(0)" })),
- transition("* => enterLeft", [style({ opacity: 0, transform: "translateX(-5%)" }), animate("100ms linear")]),
- state("enterTop", style({ opacity: 1, transform: "translateY(0)" })),
- transition("* => enterTop", [style({ opacity: 0, transform: "translateY(-5%)" }), animate("100ms linear")]),
- state("enterBottom", style({ opacity: 1, transform: "translateY(0)" })),
- transition("* => enterBottom", [style({ opacity: 0, transform: "translateY(5%)" }), animate("100ms linear")]),
- state("leave", style({
- opacity: 0,
- transform: "scaleY(0.8)",
- transformOrigin: "0% 0%"
- })),
- transition("* => leave", [
- style({
- opacity: 1,
- transform: "scaleY(1)",
- transformOrigin: "0% 0%"
- }),
- animate("100ms linear")
- ])
-]);
-var ANIMATION_TRANSITION_IN = `${AnimationDuration.BASE} ${AnimationCurves.EASE_OUT_QUINT}`;
-var ANIMATION_TRANSITION_OUT = `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_QUINT}`;
-var slideMotion = trigger("slideMotion", [
- state("void", style({
- opacity: 0,
- transform: "scaleY(0.8)"
- })),
- state("enter", style({
- opacity: 1,
- transform: "scaleY(1)"
- })),
- transition("void => *", [animate(ANIMATION_TRANSITION_IN)]),
- transition("* => void", [animate(ANIMATION_TRANSITION_OUT)])
-]);
-var slideAlertMotion = trigger("slideAlertMotion", [
- transition(":leave", [
- style({ opacity: 1, transform: "scaleY(1)", transformOrigin: "0% 0%" }),
- animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_IN_OUT_CIRC}`, style({
- opacity: 0,
- transform: "scaleY(0)",
- transformOrigin: "0% 0%"
- }))
- ])
-]);
-var zoomBigMotion = trigger("zoomBigMotion", [
- transition("void => active", [
- style({ opacity: 0, transform: "scale(0.8)" }),
- animate(`${AnimationDuration.BASE} ${AnimationCurves.EASE_OUT_CIRC}`, style({
- opacity: 1,
- transform: "scale(1)"
- }))
- ]),
- transition("active => void", [
- style({ opacity: 1, transform: "scale(1)" }),
- animate(`${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_CIRC}`, style({
- opacity: 0,
- transform: "scale(0.8)"
- }))
- ])
-]);
-var zoomBadgeMotion = trigger("zoomBadgeMotion", [
- transition(":enter", [
- style({ opacity: 0, transform: "scale(0) translate(50%, -50%)" }),
- animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_OUT_BACK}`, style({
- opacity: 1,
- transform: "scale(1) translate(50%, -50%)"
- }))
- ]),
- transition(":leave", [
- style({ opacity: 1, transform: "scale(1) translate(50%, -50%)" }),
- animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_IN_BACK}`, style({
- opacity: 0,
- transform: "scale(0) translate(50%, -50%)"
- }))
- ])
-]);
-var thumbMotion = trigger("thumbMotion", [
- state("from", style({ transform: "translateX({{ transform }}px)", width: "{{ width }}px" }), {
- params: { transform: 0, width: 0 }
- }),
- state("to", style({ transform: "translateX({{ transform }}px)", width: "{{ width }}px" }), {
- params: { transform: 100, width: 0 }
- }),
- transition("from => to", animate(`300ms ${AnimationCurves.EASE_IN_OUT}`))
-]);
-
-export {
- collapseMotion,
- helpMotion,
- moveUpMotion,
- slideMotion,
- zoomBigMotion
-};
-//# sourceMappingURL=chunk-XAGDQPFO.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-XAGDQPFO.js.map b/.angular/cache/17.0.7/vite/deps/chunk-XAGDQPFO.js.map
deleted file mode 100644
index 106a878..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-XAGDQPFO.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-animation.mjs"],
- "sourcesContent": ["import { style, state, animate, transition, trigger, stagger, query } from '@angular/animations';\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 AnimationDuration {\n static { this.SLOW = '0.3s'; } // Modal\n static { this.BASE = '0.2s'; }\n static { this.FAST = '0.1s'; } // Tooltip\n}\nclass AnimationCurves {\n static { this.EASE_BASE_OUT = 'cubic-bezier(0.7, 0.3, 0.1, 1)'; }\n static { this.EASE_BASE_IN = 'cubic-bezier(0.9, 0, 0.3, 0.7)'; }\n static { this.EASE_OUT = 'cubic-bezier(0.215, 0.61, 0.355, 1)'; }\n static { this.EASE_IN = 'cubic-bezier(0.55, 0.055, 0.675, 0.19)'; }\n static { this.EASE_IN_OUT = 'cubic-bezier(0.645, 0.045, 0.355, 1)'; }\n static { this.EASE_OUT_BACK = 'cubic-bezier(0.12, 0.4, 0.29, 1.46)'; }\n static { this.EASE_IN_BACK = 'cubic-bezier(0.71, -0.46, 0.88, 0.6)'; }\n static { this.EASE_IN_OUT_BACK = 'cubic-bezier(0.71, -0.46, 0.29, 1.46)'; }\n static { this.EASE_OUT_CIRC = 'cubic-bezier(0.08, 0.82, 0.17, 1)'; }\n static { this.EASE_IN_CIRC = 'cubic-bezier(0.6, 0.04, 0.98, 0.34)'; }\n static { this.EASE_IN_OUT_CIRC = 'cubic-bezier(0.78, 0.14, 0.15, 0.86)'; }\n static { this.EASE_OUT_QUINT = 'cubic-bezier(0.23, 1, 0.32, 1)'; }\n static { this.EASE_IN_QUINT = 'cubic-bezier(0.755, 0.05, 0.855, 0.06)'; }\n static { this.EASE_IN_OUT_QUINT = 'cubic-bezier(0.86, 0, 0.07, 1)'; }\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 collapseMotion = trigger('collapseMotion', [\n state('expanded', style({ height: '*' })),\n state('collapsed', style({ height: 0, overflow: 'hidden' })),\n state('hidden', style({ height: 0, overflow: 'hidden', borderTopWidth: '0' })),\n transition('expanded => collapsed', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n transition('expanded => hidden', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n transition('collapsed => expanded', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n transition('hidden => expanded', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`))\n]);\nconst treeCollapseMotion = trigger('treeCollapseMotion', [\n transition('* => *', [\n query('nz-tree-node:leave,nz-tree-builtin-node:leave', [\n style({ overflow: 'hidden' }),\n stagger(0, [\n animate(`150ms ${AnimationCurves.EASE_IN_OUT}`, style({ height: 0, opacity: 0, 'padding-bottom': 0 }))\n ])\n ], {\n optional: true\n }),\n query('nz-tree-node:enter,nz-tree-builtin-node:enter', [\n style({ overflow: 'hidden', height: 0, opacity: 0, 'padding-bottom': 0 }),\n stagger(0, [\n animate(`150ms ${AnimationCurves.EASE_IN_OUT}`, style({ overflow: 'hidden', height: '*', opacity: '*', 'padding-bottom': '*' }))\n ])\n ], {\n optional: true\n })\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 */\nconst fadeMotion = trigger('fadeMotion', [\n transition(':enter', [style({ opacity: 0 }), animate(`${AnimationDuration.BASE}`, style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate(`${AnimationDuration.BASE}`, style({ opacity: 0 }))])\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 helpMotion = trigger('helpMotion', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'translateY(-5px)'\n }),\n animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_IN_OUT}`, style({\n opacity: 1,\n transform: 'translateY(0)'\n }))\n ]),\n transition(':leave', [\n style({\n opacity: 1,\n transform: 'translateY(0)'\n }),\n animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_IN_OUT}`, style({\n opacity: 0,\n transform: 'translateY(-5px)'\n }))\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 */\nconst moveUpMotion = trigger('moveUpMotion', [\n transition('* => enter', [\n style({\n transformOrigin: '0 0',\n transform: 'translateY(-100%)',\n opacity: 0\n }),\n animate(`${AnimationDuration.BASE}`, style({\n transformOrigin: '0 0',\n transform: 'translateY(0%)',\n opacity: 1\n }))\n ]),\n transition('* => leave', [\n style({\n transformOrigin: '0 0',\n transform: 'translateY(0%)',\n opacity: 1\n }),\n animate(`${AnimationDuration.BASE}`, style({\n transformOrigin: '0 0',\n transform: 'translateY(-100%)',\n opacity: 0\n }))\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 */\nconst notificationMotion = trigger('notificationMotion', [\n state('enterRight', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('* => enterRight', [style({ opacity: 0, transform: 'translateX(5%)' }), animate('100ms linear')]),\n state('enterLeft', style({ opacity: 1, transform: 'translateX(0)' })),\n transition('* => enterLeft', [style({ opacity: 0, transform: 'translateX(-5%)' }), animate('100ms linear')]),\n state('enterTop', style({ opacity: 1, transform: 'translateY(0)' })),\n transition('* => enterTop', [style({ opacity: 0, transform: 'translateY(-5%)' }), animate('100ms linear')]),\n state('enterBottom', style({ opacity: 1, transform: 'translateY(0)' })),\n transition('* => enterBottom', [style({ opacity: 0, transform: 'translateY(5%)' }), animate('100ms linear')]),\n state('leave', style({\n opacity: 0,\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%'\n })),\n transition('* => leave', [\n style({\n opacity: 1,\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%'\n }),\n animate('100ms linear')\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 */\nconst ANIMATION_TRANSITION_IN = `${AnimationDuration.BASE} ${AnimationCurves.EASE_OUT_QUINT}`;\nconst ANIMATION_TRANSITION_OUT = `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_QUINT}`;\nconst slideMotion = trigger('slideMotion', [\n state('void', style({\n opacity: 0,\n transform: 'scaleY(0.8)'\n })),\n state('enter', style({\n opacity: 1,\n transform: 'scaleY(1)'\n })),\n transition('void => *', [animate(ANIMATION_TRANSITION_IN)]),\n transition('* => void', [animate(ANIMATION_TRANSITION_OUT)])\n]);\nconst slideAlertMotion = trigger('slideAlertMotion', [\n transition(':leave', [\n style({ opacity: 1, transform: 'scaleY(1)', transformOrigin: '0% 0%' }),\n animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_IN_OUT_CIRC}`, style({\n opacity: 0,\n transform: 'scaleY(0)',\n transformOrigin: '0% 0%'\n }))\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 */\nconst zoomBigMotion = trigger('zoomBigMotion', [\n transition('void => active', [\n style({ opacity: 0, transform: 'scale(0.8)' }),\n animate(`${AnimationDuration.BASE} ${AnimationCurves.EASE_OUT_CIRC}`, style({\n opacity: 1,\n transform: 'scale(1)'\n }))\n ]),\n transition('active => void', [\n style({ opacity: 1, transform: 'scale(1)' }),\n animate(`${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_CIRC}`, style({\n opacity: 0,\n transform: 'scale(0.8)'\n }))\n ])\n]);\nconst zoomBadgeMotion = trigger('zoomBadgeMotion', [\n transition(':enter', [\n style({ opacity: 0, transform: 'scale(0) translate(50%, -50%)' }),\n animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_OUT_BACK}`, style({\n opacity: 1,\n transform: 'scale(1) translate(50%, -50%)'\n }))\n ]),\n transition(':leave', [\n style({ opacity: 1, transform: 'scale(1) translate(50%, -50%)' }),\n animate(`${AnimationDuration.SLOW} ${AnimationCurves.EASE_IN_BACK}`, style({\n opacity: 0,\n transform: 'scale(0) translate(50%, -50%)'\n }))\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 */\nconst thumbMotion = trigger('thumbMotion', [\n state('from', style({ transform: 'translateX({{ transform }}px)', width: '{{ width }}px' }), {\n params: { transform: 0, width: 0 }\n }),\n state('to', style({ transform: 'translateX({{ transform }}px)', width: '{{ width }}px' }), {\n params: { transform: 100, width: 0 }\n }),\n transition('from => to', animate(`300ms ${AnimationCurves.EASE_IN_OUT}`))\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 { AnimationCurves, AnimationDuration, collapseMotion, fadeMotion, helpMotion, moveUpMotion, notificationMotion, slideAlertMotion, slideMotion, thumbMotion, treeCollapseMotion, zoomBadgeMotion, zoomBigMotion };\n\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-ZHMJ6SNN.js b/.angular/cache/17.0.7/vite/deps/chunk-ZHMJ6SNN.js
deleted file mode 100644
index f472c50..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-ZHMJ6SNN.js
+++ /dev/null
@@ -1,1225 +0,0 @@
-import {
- canUseDom,
- updateCSS,
- warn
-} from "./chunk-M5GY4FCO.js";
-import {
- CSP_NONCE,
- Inject,
- Injectable,
- InjectionToken,
- Optional,
- Subject,
- filter,
- mapTo,
- setClassMetadata,
- ɵɵdefineInjectable,
- ɵɵinject
-} from "./chunk-FGESKT7O.js";
-import {
- __spreadValues
-} from "./chunk-HSNDBVJ3.js";
-
-// node_modules/@ctrl/tinycolor/dist/module/util.js
-function bound01(n, max) {
- if (isOnePointZero(n)) {
- n = "100%";
- }
- var isPercent = isPercentage(n);
- n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));
- if (isPercent) {
- n = parseInt(String(n * max), 10) / 100;
- }
- if (Math.abs(n - max) < 1e-6) {
- return 1;
- }
- if (max === 360) {
- n = (n < 0 ? n % max + max : n % max) / parseFloat(String(max));
- } else {
- n = n % max / parseFloat(String(max));
- }
- return n;
-}
-function clamp01(val) {
- return Math.min(1, Math.max(0, val));
-}
-function isOnePointZero(n) {
- return typeof n === "string" && n.indexOf(".") !== -1 && parseFloat(n) === 1;
-}
-function isPercentage(n) {
- return typeof n === "string" && n.indexOf("%") !== -1;
-}
-function boundAlpha(a) {
- a = parseFloat(a);
- if (isNaN(a) || a < 0 || a > 1) {
- a = 1;
- }
- return a;
-}
-function convertToPercentage(n) {
- if (n <= 1) {
- return "".concat(Number(n) * 100, "%");
- }
- return n;
-}
-function pad2(c) {
- return c.length === 1 ? "0" + c : String(c);
-}
-
-// node_modules/@ctrl/tinycolor/dist/module/conversion.js
-function rgbToRgb(r, g, b) {
- return {
- r: bound01(r, 255) * 255,
- g: bound01(g, 255) * 255,
- b: bound01(b, 255) * 255
- };
-}
-function rgbToHsl(r, g, b) {
- r = bound01(r, 255);
- g = bound01(g, 255);
- b = bound01(b, 255);
- var max = Math.max(r, g, b);
- var min = Math.min(r, g, b);
- var h = 0;
- var s = 0;
- var l = (max + min) / 2;
- if (max === min) {
- s = 0;
- h = 0;
- } else {
- var d = max - min;
- s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
- switch (max) {
- case r:
- h = (g - b) / d + (g < b ? 6 : 0);
- break;
- case g:
- h = (b - r) / d + 2;
- break;
- case b:
- h = (r - g) / d + 4;
- break;
- default:
- break;
- }
- h /= 6;
- }
- return { h, s, l };
-}
-function hue2rgb(p, q, t) {
- if (t < 0) {
- t += 1;
- }
- if (t > 1) {
- t -= 1;
- }
- if (t < 1 / 6) {
- return p + (q - p) * (6 * t);
- }
- if (t < 1 / 2) {
- return q;
- }
- if (t < 2 / 3) {
- return p + (q - p) * (2 / 3 - t) * 6;
- }
- return p;
-}
-function hslToRgb(h, s, l) {
- var r;
- var g;
- var b;
- h = bound01(h, 360);
- s = bound01(s, 100);
- l = bound01(l, 100);
- if (s === 0) {
- g = l;
- b = l;
- r = l;
- } else {
- var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
- var p = 2 * l - q;
- r = hue2rgb(p, q, h + 1 / 3);
- g = hue2rgb(p, q, h);
- b = hue2rgb(p, q, h - 1 / 3);
- }
- return { r: r * 255, g: g * 255, b: b * 255 };
-}
-function rgbToHsv(r, g, b) {
- r = bound01(r, 255);
- g = bound01(g, 255);
- b = bound01(b, 255);
- var max = Math.max(r, g, b);
- var min = Math.min(r, g, b);
- var h = 0;
- var v = max;
- var d = max - min;
- var s = max === 0 ? 0 : d / max;
- if (max === min) {
- h = 0;
- } else {
- switch (max) {
- case r:
- h = (g - b) / d + (g < b ? 6 : 0);
- break;
- case g:
- h = (b - r) / d + 2;
- break;
- case b:
- h = (r - g) / d + 4;
- break;
- default:
- break;
- }
- h /= 6;
- }
- return { h, s, v };
-}
-function hsvToRgb(h, s, v) {
- h = bound01(h, 360) * 6;
- s = bound01(s, 100);
- v = bound01(v, 100);
- var i = Math.floor(h);
- var f = h - i;
- var p = v * (1 - s);
- var q = v * (1 - f * s);
- var t = v * (1 - (1 - f) * s);
- var mod = i % 6;
- var r = [v, q, p, p, t, v][mod];
- var g = [t, v, v, q, p, p][mod];
- var b = [p, p, t, v, v, q][mod];
- return { r: r * 255, g: g * 255, b: b * 255 };
-}
-function rgbToHex(r, g, b, allow3Char) {
- var hex = [
- pad2(Math.round(r).toString(16)),
- pad2(Math.round(g).toString(16)),
- pad2(Math.round(b).toString(16))
- ];
- if (allow3Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1))) {
- return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
- }
- return hex.join("");
-}
-function rgbaToHex(r, g, b, a, allow4Char) {
- var hex = [
- pad2(Math.round(r).toString(16)),
- pad2(Math.round(g).toString(16)),
- pad2(Math.round(b).toString(16)),
- pad2(convertDecimalToHex(a))
- ];
- if (allow4Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1)) && hex[3].startsWith(hex[3].charAt(1))) {
- return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
- }
- return hex.join("");
-}
-function convertDecimalToHex(d) {
- return Math.round(parseFloat(d) * 255).toString(16);
-}
-function convertHexToDecimal(h) {
- return parseIntFromHex(h) / 255;
-}
-function parseIntFromHex(val) {
- return parseInt(val, 16);
-}
-function numberInputToObject(color) {
- return {
- r: color >> 16,
- g: (color & 65280) >> 8,
- b: color & 255
- };
-}
-
-// node_modules/@ctrl/tinycolor/dist/module/css-color-names.js
-var names = {
- aliceblue: "#f0f8ff",
- antiquewhite: "#faebd7",
- aqua: "#00ffff",
- aquamarine: "#7fffd4",
- azure: "#f0ffff",
- beige: "#f5f5dc",
- bisque: "#ffe4c4",
- black: "#000000",
- blanchedalmond: "#ffebcd",
- blue: "#0000ff",
- blueviolet: "#8a2be2",
- brown: "#a52a2a",
- burlywood: "#deb887",
- cadetblue: "#5f9ea0",
- chartreuse: "#7fff00",
- chocolate: "#d2691e",
- coral: "#ff7f50",
- cornflowerblue: "#6495ed",
- cornsilk: "#fff8dc",
- crimson: "#dc143c",
- cyan: "#00ffff",
- darkblue: "#00008b",
- darkcyan: "#008b8b",
- darkgoldenrod: "#b8860b",
- darkgray: "#a9a9a9",
- darkgreen: "#006400",
- darkgrey: "#a9a9a9",
- darkkhaki: "#bdb76b",
- darkmagenta: "#8b008b",
- darkolivegreen: "#556b2f",
- darkorange: "#ff8c00",
- darkorchid: "#9932cc",
- darkred: "#8b0000",
- darksalmon: "#e9967a",
- darkseagreen: "#8fbc8f",
- darkslateblue: "#483d8b",
- darkslategray: "#2f4f4f",
- darkslategrey: "#2f4f4f",
- darkturquoise: "#00ced1",
- darkviolet: "#9400d3",
- deeppink: "#ff1493",
- deepskyblue: "#00bfff",
- dimgray: "#696969",
- dimgrey: "#696969",
- dodgerblue: "#1e90ff",
- firebrick: "#b22222",
- floralwhite: "#fffaf0",
- forestgreen: "#228b22",
- fuchsia: "#ff00ff",
- gainsboro: "#dcdcdc",
- ghostwhite: "#f8f8ff",
- goldenrod: "#daa520",
- gold: "#ffd700",
- gray: "#808080",
- green: "#008000",
- greenyellow: "#adff2f",
- grey: "#808080",
- honeydew: "#f0fff0",
- hotpink: "#ff69b4",
- indianred: "#cd5c5c",
- indigo: "#4b0082",
- ivory: "#fffff0",
- khaki: "#f0e68c",
- lavenderblush: "#fff0f5",
- lavender: "#e6e6fa",
- lawngreen: "#7cfc00",
- lemonchiffon: "#fffacd",
- lightblue: "#add8e6",
- lightcoral: "#f08080",
- lightcyan: "#e0ffff",
- lightgoldenrodyellow: "#fafad2",
- lightgray: "#d3d3d3",
- lightgreen: "#90ee90",
- lightgrey: "#d3d3d3",
- lightpink: "#ffb6c1",
- lightsalmon: "#ffa07a",
- lightseagreen: "#20b2aa",
- lightskyblue: "#87cefa",
- lightslategray: "#778899",
- lightslategrey: "#778899",
- lightsteelblue: "#b0c4de",
- lightyellow: "#ffffe0",
- lime: "#00ff00",
- limegreen: "#32cd32",
- linen: "#faf0e6",
- magenta: "#ff00ff",
- maroon: "#800000",
- mediumaquamarine: "#66cdaa",
- mediumblue: "#0000cd",
- mediumorchid: "#ba55d3",
- mediumpurple: "#9370db",
- mediumseagreen: "#3cb371",
- mediumslateblue: "#7b68ee",
- mediumspringgreen: "#00fa9a",
- mediumturquoise: "#48d1cc",
- mediumvioletred: "#c71585",
- midnightblue: "#191970",
- mintcream: "#f5fffa",
- mistyrose: "#ffe4e1",
- moccasin: "#ffe4b5",
- navajowhite: "#ffdead",
- navy: "#000080",
- oldlace: "#fdf5e6",
- olive: "#808000",
- olivedrab: "#6b8e23",
- orange: "#ffa500",
- orangered: "#ff4500",
- orchid: "#da70d6",
- palegoldenrod: "#eee8aa",
- palegreen: "#98fb98",
- paleturquoise: "#afeeee",
- palevioletred: "#db7093",
- papayawhip: "#ffefd5",
- peachpuff: "#ffdab9",
- peru: "#cd853f",
- pink: "#ffc0cb",
- plum: "#dda0dd",
- powderblue: "#b0e0e6",
- purple: "#800080",
- rebeccapurple: "#663399",
- red: "#ff0000",
- rosybrown: "#bc8f8f",
- royalblue: "#4169e1",
- saddlebrown: "#8b4513",
- salmon: "#fa8072",
- sandybrown: "#f4a460",
- seagreen: "#2e8b57",
- seashell: "#fff5ee",
- sienna: "#a0522d",
- silver: "#c0c0c0",
- skyblue: "#87ceeb",
- slateblue: "#6a5acd",
- slategray: "#708090",
- slategrey: "#708090",
- snow: "#fffafa",
- springgreen: "#00ff7f",
- steelblue: "#4682b4",
- tan: "#d2b48c",
- teal: "#008080",
- thistle: "#d8bfd8",
- tomato: "#ff6347",
- turquoise: "#40e0d0",
- violet: "#ee82ee",
- wheat: "#f5deb3",
- white: "#ffffff",
- whitesmoke: "#f5f5f5",
- yellow: "#ffff00",
- yellowgreen: "#9acd32"
-};
-
-// node_modules/@ctrl/tinycolor/dist/module/format-input.js
-function inputToRGB(color) {
- var rgb = { r: 0, g: 0, b: 0 };
- var a = 1;
- var s = null;
- var v = null;
- var l = null;
- var ok = false;
- var format = false;
- if (typeof color === "string") {
- color = stringInputToObject(color);
- }
- if (typeof color === "object") {
- if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
- rgb = rgbToRgb(color.r, color.g, color.b);
- ok = true;
- format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
- } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
- s = convertToPercentage(color.s);
- v = convertToPercentage(color.v);
- rgb = hsvToRgb(color.h, s, v);
- ok = true;
- format = "hsv";
- } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
- s = convertToPercentage(color.s);
- l = convertToPercentage(color.l);
- rgb = hslToRgb(color.h, s, l);
- ok = true;
- format = "hsl";
- }
- if (Object.prototype.hasOwnProperty.call(color, "a")) {
- a = color.a;
- }
- }
- a = boundAlpha(a);
- return {
- ok,
- format: color.format || format,
- r: Math.min(255, Math.max(rgb.r, 0)),
- g: Math.min(255, Math.max(rgb.g, 0)),
- b: Math.min(255, Math.max(rgb.b, 0)),
- a
- };
-}
-var CSS_INTEGER = "[-\\+]?\\d+%?";
-var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
-var CSS_UNIT = "(?:".concat(CSS_NUMBER, ")|(?:").concat(CSS_INTEGER, ")");
-var PERMISSIVE_MATCH3 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
-var PERMISSIVE_MATCH4 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
-var matchers = {
- CSS_UNIT: new RegExp(CSS_UNIT),
- rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
- rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
- hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
- hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
- hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
- hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
- hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
- hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
- hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
- hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
-};
-function stringInputToObject(color) {
- color = color.trim().toLowerCase();
- if (color.length === 0) {
- return false;
- }
- var named = false;
- if (names[color]) {
- color = names[color];
- named = true;
- } else if (color === "transparent") {
- return { r: 0, g: 0, b: 0, a: 0, format: "name" };
- }
- var match = matchers.rgb.exec(color);
- if (match) {
- return { r: match[1], g: match[2], b: match[3] };
- }
- match = matchers.rgba.exec(color);
- if (match) {
- return { r: match[1], g: match[2], b: match[3], a: match[4] };
- }
- match = matchers.hsl.exec(color);
- if (match) {
- return { h: match[1], s: match[2], l: match[3] };
- }
- match = matchers.hsla.exec(color);
- if (match) {
- return { h: match[1], s: match[2], l: match[3], a: match[4] };
- }
- match = matchers.hsv.exec(color);
- if (match) {
- return { h: match[1], s: match[2], v: match[3] };
- }
- match = matchers.hsva.exec(color);
- if (match) {
- return { h: match[1], s: match[2], v: match[3], a: match[4] };
- }
- match = matchers.hex8.exec(color);
- if (match) {
- return {
- r: parseIntFromHex(match[1]),
- g: parseIntFromHex(match[2]),
- b: parseIntFromHex(match[3]),
- a: convertHexToDecimal(match[4]),
- format: named ? "name" : "hex8"
- };
- }
- match = matchers.hex6.exec(color);
- if (match) {
- return {
- r: parseIntFromHex(match[1]),
- g: parseIntFromHex(match[2]),
- b: parseIntFromHex(match[3]),
- format: named ? "name" : "hex"
- };
- }
- match = matchers.hex4.exec(color);
- if (match) {
- return {
- r: parseIntFromHex(match[1] + match[1]),
- g: parseIntFromHex(match[2] + match[2]),
- b: parseIntFromHex(match[3] + match[3]),
- a: convertHexToDecimal(match[4] + match[4]),
- format: named ? "name" : "hex8"
- };
- }
- match = matchers.hex3.exec(color);
- if (match) {
- return {
- r: parseIntFromHex(match[1] + match[1]),
- g: parseIntFromHex(match[2] + match[2]),
- b: parseIntFromHex(match[3] + match[3]),
- format: named ? "name" : "hex"
- };
- }
- return false;
-}
-function isValidCSSUnit(color) {
- return Boolean(matchers.CSS_UNIT.exec(String(color)));
-}
-
-// node_modules/@ctrl/tinycolor/dist/module/index.js
-var TinyColor = (
- /** @class */
- function() {
- function TinyColor2(color, opts) {
- if (color === void 0) {
- color = "";
- }
- if (opts === void 0) {
- opts = {};
- }
- var _a;
- if (color instanceof TinyColor2) {
- return color;
- }
- if (typeof color === "number") {
- color = numberInputToObject(color);
- }
- this.originalInput = color;
- var rgb = inputToRGB(color);
- this.originalInput = color;
- this.r = rgb.r;
- this.g = rgb.g;
- this.b = rgb.b;
- this.a = rgb.a;
- this.roundA = Math.round(100 * this.a) / 100;
- this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;
- this.gradientType = opts.gradientType;
- if (this.r < 1) {
- this.r = Math.round(this.r);
- }
- if (this.g < 1) {
- this.g = Math.round(this.g);
- }
- if (this.b < 1) {
- this.b = Math.round(this.b);
- }
- this.isValid = rgb.ok;
- }
- TinyColor2.prototype.isDark = function() {
- return this.getBrightness() < 128;
- };
- TinyColor2.prototype.isLight = function() {
- return !this.isDark();
- };
- TinyColor2.prototype.getBrightness = function() {
- var rgb = this.toRgb();
- return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1e3;
- };
- TinyColor2.prototype.getLuminance = function() {
- var rgb = this.toRgb();
- var R;
- var G;
- var B;
- var RsRGB = rgb.r / 255;
- var GsRGB = rgb.g / 255;
- var BsRGB = rgb.b / 255;
- if (RsRGB <= 0.03928) {
- R = RsRGB / 12.92;
- } else {
- R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);
- }
- if (GsRGB <= 0.03928) {
- G = GsRGB / 12.92;
- } else {
- G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);
- }
- if (BsRGB <= 0.03928) {
- B = BsRGB / 12.92;
- } else {
- B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);
- }
- return 0.2126 * R + 0.7152 * G + 0.0722 * B;
- };
- TinyColor2.prototype.getAlpha = function() {
- return this.a;
- };
- TinyColor2.prototype.setAlpha = function(alpha) {
- this.a = boundAlpha(alpha);
- this.roundA = Math.round(100 * this.a) / 100;
- return this;
- };
- TinyColor2.prototype.isMonochrome = function() {
- var s = this.toHsl().s;
- return s === 0;
- };
- TinyColor2.prototype.toHsv = function() {
- var hsv = rgbToHsv(this.r, this.g, this.b);
- return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };
- };
- TinyColor2.prototype.toHsvString = function() {
- var hsv = rgbToHsv(this.r, this.g, this.b);
- var h = Math.round(hsv.h * 360);
- var s = Math.round(hsv.s * 100);
- var v = Math.round(hsv.v * 100);
- return this.a === 1 ? "hsv(".concat(h, ", ").concat(s, "%, ").concat(v, "%)") : "hsva(".concat(h, ", ").concat(s, "%, ").concat(v, "%, ").concat(this.roundA, ")");
- };
- TinyColor2.prototype.toHsl = function() {
- var hsl = rgbToHsl(this.r, this.g, this.b);
- return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };
- };
- TinyColor2.prototype.toHslString = function() {
- var hsl = rgbToHsl(this.r, this.g, this.b);
- var h = Math.round(hsl.h * 360);
- var s = Math.round(hsl.s * 100);
- var l = Math.round(hsl.l * 100);
- return this.a === 1 ? "hsl(".concat(h, ", ").concat(s, "%, ").concat(l, "%)") : "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(this.roundA, ")");
- };
- TinyColor2.prototype.toHex = function(allow3Char) {
- if (allow3Char === void 0) {
- allow3Char = false;
- }
- return rgbToHex(this.r, this.g, this.b, allow3Char);
- };
- TinyColor2.prototype.toHexString = function(allow3Char) {
- if (allow3Char === void 0) {
- allow3Char = false;
- }
- return "#" + this.toHex(allow3Char);
- };
- TinyColor2.prototype.toHex8 = function(allow4Char) {
- if (allow4Char === void 0) {
- allow4Char = false;
- }
- return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);
- };
- TinyColor2.prototype.toHex8String = function(allow4Char) {
- if (allow4Char === void 0) {
- allow4Char = false;
- }
- return "#" + this.toHex8(allow4Char);
- };
- TinyColor2.prototype.toHexShortString = function(allowShortChar) {
- if (allowShortChar === void 0) {
- allowShortChar = false;
- }
- return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);
- };
- TinyColor2.prototype.toRgb = function() {
- return {
- r: Math.round(this.r),
- g: Math.round(this.g),
- b: Math.round(this.b),
- a: this.a
- };
- };
- TinyColor2.prototype.toRgbString = function() {
- var r = Math.round(this.r);
- var g = Math.round(this.g);
- var b = Math.round(this.b);
- return this.a === 1 ? "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")") : "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(this.roundA, ")");
- };
- TinyColor2.prototype.toPercentageRgb = function() {
- var fmt = function(x) {
- return "".concat(Math.round(bound01(x, 255) * 100), "%");
- };
- return {
- r: fmt(this.r),
- g: fmt(this.g),
- b: fmt(this.b),
- a: this.a
- };
- };
- TinyColor2.prototype.toPercentageRgbString = function() {
- var rnd = function(x) {
- return Math.round(bound01(x, 255) * 100);
- };
- return this.a === 1 ? "rgb(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%)") : "rgba(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%, ").concat(this.roundA, ")");
- };
- TinyColor2.prototype.toName = function() {
- if (this.a === 0) {
- return "transparent";
- }
- if (this.a < 1) {
- return false;
- }
- var hex = "#" + rgbToHex(this.r, this.g, this.b, false);
- for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {
- var _b = _a[_i], key = _b[0], value = _b[1];
- if (hex === value) {
- return key;
- }
- }
- return false;
- };
- TinyColor2.prototype.toString = function(format) {
- var formatSet = Boolean(format);
- format = format !== null && format !== void 0 ? format : this.format;
- var formattedString = false;
- var hasAlpha = this.a < 1 && this.a >= 0;
- var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith("hex") || format === "name");
- if (needsAlphaFormat) {
- if (format === "name" && this.a === 0) {
- return this.toName();
- }
- return this.toRgbString();
- }
- if (format === "rgb") {
- formattedString = this.toRgbString();
- }
- if (format === "prgb") {
- formattedString = this.toPercentageRgbString();
- }
- if (format === "hex" || format === "hex6") {
- formattedString = this.toHexString();
- }
- if (format === "hex3") {
- formattedString = this.toHexString(true);
- }
- if (format === "hex4") {
- formattedString = this.toHex8String(true);
- }
- if (format === "hex8") {
- formattedString = this.toHex8String();
- }
- if (format === "name") {
- formattedString = this.toName();
- }
- if (format === "hsl") {
- formattedString = this.toHslString();
- }
- if (format === "hsv") {
- formattedString = this.toHsvString();
- }
- return formattedString || this.toHexString();
- };
- TinyColor2.prototype.toNumber = function() {
- return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);
- };
- TinyColor2.prototype.clone = function() {
- return new TinyColor2(this.toString());
- };
- TinyColor2.prototype.lighten = function(amount) {
- if (amount === void 0) {
- amount = 10;
- }
- var hsl = this.toHsl();
- hsl.l += amount / 100;
- hsl.l = clamp01(hsl.l);
- return new TinyColor2(hsl);
- };
- TinyColor2.prototype.brighten = function(amount) {
- if (amount === void 0) {
- amount = 10;
- }
- var rgb = this.toRgb();
- rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));
- rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));
- rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));
- return new TinyColor2(rgb);
- };
- TinyColor2.prototype.darken = function(amount) {
- if (amount === void 0) {
- amount = 10;
- }
- var hsl = this.toHsl();
- hsl.l -= amount / 100;
- hsl.l = clamp01(hsl.l);
- return new TinyColor2(hsl);
- };
- TinyColor2.prototype.tint = function(amount) {
- if (amount === void 0) {
- amount = 10;
- }
- return this.mix("white", amount);
- };
- TinyColor2.prototype.shade = function(amount) {
- if (amount === void 0) {
- amount = 10;
- }
- return this.mix("black", amount);
- };
- TinyColor2.prototype.desaturate = function(amount) {
- if (amount === void 0) {
- amount = 10;
- }
- var hsl = this.toHsl();
- hsl.s -= amount / 100;
- hsl.s = clamp01(hsl.s);
- return new TinyColor2(hsl);
- };
- TinyColor2.prototype.saturate = function(amount) {
- if (amount === void 0) {
- amount = 10;
- }
- var hsl = this.toHsl();
- hsl.s += amount / 100;
- hsl.s = clamp01(hsl.s);
- return new TinyColor2(hsl);
- };
- TinyColor2.prototype.greyscale = function() {
- return this.desaturate(100);
- };
- TinyColor2.prototype.spin = function(amount) {
- var hsl = this.toHsl();
- var hue = (hsl.h + amount) % 360;
- hsl.h = hue < 0 ? 360 + hue : hue;
- return new TinyColor2(hsl);
- };
- TinyColor2.prototype.mix = function(color, amount) {
- if (amount === void 0) {
- amount = 50;
- }
- var rgb1 = this.toRgb();
- var rgb2 = new TinyColor2(color).toRgb();
- var p = amount / 100;
- var rgba = {
- r: (rgb2.r - rgb1.r) * p + rgb1.r,
- g: (rgb2.g - rgb1.g) * p + rgb1.g,
- b: (rgb2.b - rgb1.b) * p + rgb1.b,
- a: (rgb2.a - rgb1.a) * p + rgb1.a
- };
- return new TinyColor2(rgba);
- };
- TinyColor2.prototype.analogous = function(results, slices) {
- if (results === void 0) {
- results = 6;
- }
- if (slices === void 0) {
- slices = 30;
- }
- var hsl = this.toHsl();
- var part = 360 / slices;
- var ret = [this];
- for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results; ) {
- hsl.h = (hsl.h + part) % 360;
- ret.push(new TinyColor2(hsl));
- }
- return ret;
- };
- TinyColor2.prototype.complement = function() {
- var hsl = this.toHsl();
- hsl.h = (hsl.h + 180) % 360;
- return new TinyColor2(hsl);
- };
- TinyColor2.prototype.monochromatic = function(results) {
- if (results === void 0) {
- results = 6;
- }
- var hsv = this.toHsv();
- var h = hsv.h;
- var s = hsv.s;
- var v = hsv.v;
- var res = [];
- var modification = 1 / results;
- while (results--) {
- res.push(new TinyColor2({ h, s, v }));
- v = (v + modification) % 1;
- }
- return res;
- };
- TinyColor2.prototype.splitcomplement = function() {
- var hsl = this.toHsl();
- var h = hsl.h;
- return [
- this,
- new TinyColor2({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),
- new TinyColor2({ h: (h + 216) % 360, s: hsl.s, l: hsl.l })
- ];
- };
- TinyColor2.prototype.onBackground = function(background) {
- var fg = this.toRgb();
- var bg = new TinyColor2(background).toRgb();
- var alpha = fg.a + bg.a * (1 - fg.a);
- return new TinyColor2({
- r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,
- g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,
- b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,
- a: alpha
- });
- };
- TinyColor2.prototype.triad = function() {
- return this.polyad(3);
- };
- TinyColor2.prototype.tetrad = function() {
- return this.polyad(4);
- };
- TinyColor2.prototype.polyad = function(n) {
- var hsl = this.toHsl();
- var h = hsl.h;
- var result = [this];
- var increment = 360 / n;
- for (var i = 1; i < n; i++) {
- result.push(new TinyColor2({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));
- }
- return result;
- };
- TinyColor2.prototype.equals = function(color) {
- return this.toRgbString() === new TinyColor2(color).toRgbString();
- };
- return TinyColor2;
- }()
-);
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-color.mjs
-var presetColors = [
- "pink",
- "red",
- "yellow",
- "orange",
- "cyan",
- "green",
- "blue",
- "purple",
- "geekblue",
- "magenta",
- "volcano",
- "gold",
- "lime"
-];
-function isPresetColor(color) {
- return presetColors.indexOf(color) !== -1;
-}
-var hueStep = 2;
-var saturationStep = 0.16;
-var saturationStep2 = 0.05;
-var brightnessStep1 = 0.05;
-var brightnessStep2 = 0.15;
-var lightColorCount = 5;
-var darkColorCount = 4;
-var darkColorMap = [
- { index: 7, opacity: 0.15 },
- { index: 6, opacity: 0.25 },
- { index: 5, opacity: 0.3 },
- { index: 5, opacity: 0.45 },
- { index: 5, opacity: 0.65 },
- { index: 5, opacity: 0.85 },
- { index: 4, opacity: 0.9 },
- { index: 3, opacity: 0.95 },
- { index: 2, opacity: 0.97 },
- { index: 1, opacity: 0.98 }
-];
-function toHsv({ r, g, b }) {
- const hsv = rgbToHsv(r, g, b);
- return { h: hsv.h * 360, s: hsv.s, v: hsv.v };
-}
-function toHex({ r, g, b }) {
- return `#${rgbToHex(r, g, b, false)}`;
-}
-function mix(rgb1, rgb2, amount) {
- const p = amount / 100;
- const rgb = {
- r: (rgb2.r - rgb1.r) * p + rgb1.r,
- g: (rgb2.g - rgb1.g) * p + rgb1.g,
- b: (rgb2.b - rgb1.b) * p + rgb1.b
- };
- return rgb;
-}
-function getHue(hsv, i, light) {
- let hue;
- if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {
- hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;
- } else {
- hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;
- }
- if (hue < 0) {
- hue += 360;
- } else if (hue >= 360) {
- hue -= 360;
- }
- return hue;
-}
-function getSaturation(hsv, i, light) {
- if (hsv.h === 0 && hsv.s === 0) {
- return hsv.s;
- }
- let saturation;
- if (light) {
- saturation = hsv.s - saturationStep * i;
- } else if (i === darkColorCount) {
- saturation = hsv.s + saturationStep;
- } else {
- saturation = hsv.s + saturationStep2 * i;
- }
- if (saturation > 1) {
- saturation = 1;
- }
- if (light && i === lightColorCount && saturation > 0.1) {
- saturation = 0.1;
- }
- if (saturation < 0.06) {
- saturation = 0.06;
- }
- return Number(saturation.toFixed(2));
-}
-function getValue(hsv, i, light) {
- let value;
- if (light) {
- value = hsv.v + brightnessStep1 * i;
- } else {
- value = hsv.v - brightnessStep2 * i;
- }
- if (value > 1) {
- value = 1;
- }
- return Number(value.toFixed(2));
-}
-function generate(color, opts = {}) {
- const patterns = [];
- const pColor = inputToRGB(color);
- for (let i = lightColorCount; i > 0; i -= 1) {
- const hsv = toHsv(pColor);
- const colorString = toHex(inputToRGB({
- h: getHue(hsv, i, true),
- s: getSaturation(hsv, i, true),
- v: getValue(hsv, i, true)
- }));
- patterns.push(colorString);
- }
- patterns.push(toHex(pColor));
- for (let i = 1; i <= darkColorCount; i += 1) {
- const hsv = toHsv(pColor);
- const colorString = toHex(inputToRGB({
- h: getHue(hsv, i),
- s: getSaturation(hsv, i),
- v: getValue(hsv, i)
- }));
- patterns.push(colorString);
- }
- if (opts.theme === "dark") {
- return darkColorMap.map(({ index, opacity }) => {
- const darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || "#141414"), inputToRGB(patterns[index]), opacity * 100));
- return darkColorString;
- });
- }
- return patterns;
-}
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-config.mjs
-var NZ_CONFIG = new InjectionToken("nz-config");
-var dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;
-function getStyle(globalPrefixCls, theme) {
- const variables = {};
- const formatColor = (color, updater) => {
- let clone = color.clone();
- clone = updater?.(clone) || clone;
- return clone.toRgbString();
- };
- const fillColor = (colorVal, type) => {
- const baseColor = new TinyColor(colorVal);
- const colorPalettes = generate(baseColor.toRgbString());
- variables[`${type}-color`] = formatColor(baseColor);
- variables[`${type}-color-disabled`] = colorPalettes[1];
- variables[`${type}-color-hover`] = colorPalettes[4];
- variables[`${type}-color-active`] = colorPalettes[7];
- variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();
- variables[`${type}-color-deprecated-bg`] = colorPalettes[1];
- variables[`${type}-color-deprecated-border`] = colorPalettes[3];
- };
- if (theme.primaryColor) {
- fillColor(theme.primaryColor, "primary");
- const primaryColor = new TinyColor(theme.primaryColor);
- const primaryColors = generate(primaryColor.toRgbString());
- primaryColors.forEach((color, index) => {
- variables[`primary-${index + 1}`] = color;
- });
- variables["primary-color-deprecated-l-35"] = formatColor(primaryColor, (c) => c.lighten(35));
- variables["primary-color-deprecated-l-20"] = formatColor(primaryColor, (c) => c.lighten(20));
- variables["primary-color-deprecated-t-20"] = formatColor(primaryColor, (c) => c.tint(20));
- variables["primary-color-deprecated-t-50"] = formatColor(primaryColor, (c) => c.tint(50));
- variables["primary-color-deprecated-f-12"] = formatColor(primaryColor, (c) => c.setAlpha(c.getAlpha() * 0.12));
- const primaryActiveColor = new TinyColor(primaryColors[0]);
- variables["primary-color-active-deprecated-f-30"] = formatColor(primaryActiveColor, (c) => c.setAlpha(c.getAlpha() * 0.3));
- variables["primary-color-active-deprecated-d-02"] = formatColor(primaryActiveColor, (c) => c.darken(2));
- }
- if (theme.successColor) {
- fillColor(theme.successColor, "success");
- }
- if (theme.warningColor) {
- fillColor(theme.warningColor, "warning");
- }
- if (theme.errorColor) {
- fillColor(theme.errorColor, "error");
- }
- if (theme.infoColor) {
- fillColor(theme.infoColor, "info");
- }
- const cssList = Object.keys(variables).map((key) => `--${globalPrefixCls}-${key}: ${variables[key]};`);
- return `
- :root {
- ${cssList.join("\n")}
- }
- `.trim();
-}
-function registerTheme(globalPrefixCls, theme, cspNonce) {
- const style = getStyle(globalPrefixCls, theme);
- if (canUseDom()) {
- updateCSS(style, `${dynamicStyleMark}-dynamic-theme`, {
- cspNonce
- });
- } else {
- warn(`NzConfigService: SSR do not support dynamic theme with css variables.`);
- }
-}
-var isDefined = function(value) {
- return value !== void 0;
-};
-var defaultPrefixCls = "ant";
-var _NzConfigService = class _NzConfigService {
- constructor(defaultConfig, cspNonce) {
- this.configUpdated$ = new Subject();
- this.config = defaultConfig || {};
- this.cspNonce = cspNonce;
- if (this.config.theme) {
- registerTheme(this.getConfig().prefixCls?.prefixCls || defaultPrefixCls, this.config.theme, cspNonce);
- }
- }
- getConfig() {
- return this.config;
- }
- getConfigForComponent(componentName) {
- return this.config[componentName];
- }
- getConfigChangeEventForComponent(componentName) {
- return this.configUpdated$.pipe(filter((n) => n === componentName), mapTo(void 0));
- }
- set(componentName, value) {
- this.config[componentName] = __spreadValues(__spreadValues({}, this.config[componentName]), value);
- if (componentName === "theme" && this.config.theme) {
- registerTheme(this.getConfig().prefixCls?.prefixCls || defaultPrefixCls, this.config.theme, this.cspNonce);
- }
- this.configUpdated$.next(componentName);
- }
-};
-_NzConfigService.ɵfac = function NzConfigService_Factory(t) {
- return new (t || _NzConfigService)(ɵɵinject(NZ_CONFIG, 8), ɵɵinject(CSP_NONCE, 8));
-};
-_NzConfigService.ɵprov = ɵɵdefineInjectable({
- token: _NzConfigService,
- factory: _NzConfigService.ɵfac,
- providedIn: "root"
-});
-var NzConfigService = _NzConfigService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzConfigService, [{
- type: Injectable,
- args: [{
- providedIn: "root"
- }]
- }], () => [{
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [NZ_CONFIG]
- }]
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [CSP_NONCE]
- }]
- }], null);
-})();
-function WithConfig() {
- return function ConfigDecorator(target, propName, originalDescriptor) {
- const privatePropName = `$$__zorroConfigDecorator__${propName}`;
- Object.defineProperty(target, privatePropName, {
- configurable: true,
- writable: true,
- enumerable: false
- });
- return {
- get() {
- const originalValue = originalDescriptor?.get ? originalDescriptor.get.bind(this)() : this[privatePropName];
- const assignedByUser = (this.propertyAssignCounter?.[propName] || 0) > 1;
- const configValue = this.nzConfigService.getConfigForComponent(this._nzModuleName)?.[propName];
- if (assignedByUser && isDefined(originalValue)) {
- return originalValue;
- } else {
- return isDefined(configValue) ? configValue : originalValue;
- }
- },
- set(value) {
- this.propertyAssignCounter = this.propertyAssignCounter || {};
- this.propertyAssignCounter[propName] = (this.propertyAssignCounter[propName] || 0) + 1;
- if (originalDescriptor?.set) {
- originalDescriptor.set.bind(this)(value);
- } else {
- this[privatePropName] = value;
- }
- },
- configurable: true,
- enumerable: true
- };
- };
-}
-
-export {
- rgbToHsv,
- rgbToHex,
- inputToRGB,
- isPresetColor,
- NzConfigService,
- WithConfig
-};
-//# sourceMappingURL=chunk-ZHMJ6SNN.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/chunk-ZHMJ6SNN.js.map b/.angular/cache/17.0.7/vite/deps/chunk-ZHMJ6SNN.js.map
deleted file mode 100644
index 72b4df1..0000000
--- a/.angular/cache/17.0.7/vite/deps/chunk-ZHMJ6SNN.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/@ctrl/tinycolor/dist/module/util.js", "../../../../../node_modules/@ctrl/tinycolor/dist/module/conversion.js", "../../../../../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js", "../../../../../node_modules/@ctrl/tinycolor/dist/module/format-input.js", "../../../../../node_modules/@ctrl/tinycolor/dist/module/index.js", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-color.mjs", "../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-config.mjs"],
- "sourcesContent": ["/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n", "import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n", "// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n", "/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n", "import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n", "import { rgbToHsv, rgbToHex, inputToRGB } from '@ctrl/tinycolor';\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 statusColors = ['success', 'processing', 'error', 'default', 'warning'];\nconst presetColors = [\n 'pink',\n 'red',\n 'yellow',\n 'orange',\n 'cyan',\n 'green',\n 'blue',\n 'purple',\n 'geekblue',\n 'magenta',\n 'volcano',\n 'gold',\n 'lime'\n];\nfunction isPresetColor(color) {\n return presetColors.indexOf(color) !== -1;\n}\nfunction isStatusColor(color) {\n return statusColors.indexOf(color) !== -1;\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 * Sync from @ant-design/colors(https://github.com/ant-design/ant-design-colors)\n */\nconst hueStep = 2; // 色相阶梯\nconst saturationStep = 0.16; // 饱和度阶梯,浅色部分\nconst saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nconst brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nconst brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nconst lightColorCount = 5; // 浅色数量,主色上\nconst darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\nconst darkColorMap = [\n { index: 7, opacity: 0.15 },\n { index: 6, opacity: 0.25 },\n { index: 5, opacity: 0.3 },\n { index: 5, opacity: 0.45 },\n { index: 5, opacity: 0.65 },\n { index: 5, opacity: 0.85 },\n { index: 4, opacity: 0.9 },\n { index: 3, opacity: 0.95 },\n { index: 2, opacity: 0.97 },\n { index: 1, opacity: 0.98 }\n];\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv({ r, g, b }) {\n const hsv = rgbToHsv(r, g, b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v };\n}\n// Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\nfunction toHex({ r, g, b }) {\n return `#${rgbToHex(r, g, b, false)}`;\n}\n// Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\nfunction mix(rgb1, rgb2, amount) {\n const p = amount / 100;\n const rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\nfunction getHue(hsv, i, light) {\n let hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n }\n else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n }\n else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n let saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n }\n else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n }\n else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Number(saturation.toFixed(2));\n}\nfunction getValue(hsv, i, light) {\n let value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n }\n else {\n value = hsv.v - brightnessStep2 * i;\n }\n if (value > 1) {\n value = 1;\n }\n return Number(value.toFixed(2));\n}\nfunction generate(color, opts = {}) {\n const patterns = [];\n const pColor = inputToRGB(color);\n for (let i = lightColorCount; i > 0; i -= 1) {\n const hsv = toHsv(pColor);\n const colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n patterns.push(toHex(pColor));\n for (let i = 1; i <= darkColorCount; i += 1) {\n const hsv = toHsv(pColor);\n const colorString = toHex(inputToRGB({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i)\n }));\n patterns.push(colorString);\n }\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(({ index, opacity }) => {\n const darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n return patterns;\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 { generate, isPresetColor, isStatusColor, presetColors, statusColors };\n\n", "import * as i0 from '@angular/core';\nimport { InjectionToken, makeEnvironmentProviders, CSP_NONCE, Injectable, Optional, Inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, mapTo } from 'rxjs/operators';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { generate } from 'ng-zorro-antd/core/color';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { canUseDom, updateCSS } from 'ng-zorro-antd/core/util';\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 * User should provide an object implements this interface to set global configurations.\n */\nconst NZ_CONFIG = new InjectionToken('nz-config');\nfunction provideNzConfig(config) {\n return makeEnvironmentProviders([{\n provide: NZ_CONFIG,\n useValue: config\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 * Sync from @ant-design/colors(https://github.com/ant-design/ant-design-colors)\n */\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nfunction getStyle(globalPrefixCls, theme) {\n const variables = {};\n const formatColor = (color, updater) => {\n let clone = color.clone();\n clone = updater?.(clone) || clone;\n return clone.toRgbString();\n };\n const fillColor = (colorVal, type) => {\n const baseColor = new TinyColor(colorVal);\n const colorPalettes = generate(baseColor.toRgbString());\n variables[`${type}-color`] = formatColor(baseColor);\n variables[`${type}-color-disabled`] = colorPalettes[1];\n variables[`${type}-color-hover`] = colorPalettes[4];\n variables[`${type}-color-active`] = colorPalettes[7];\n variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[`${type}-color-deprecated-bg`] = colorPalettes[1];\n variables[`${type}-color-deprecated-border`] = colorPalettes[3];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n const primaryColor = new TinyColor(theme.primaryColor);\n const primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach((color, index) => {\n variables[`primary-${index + 1}`] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n const primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n return `\n :root {\n ${cssList.join('\\n')}\n }\n `.trim();\n}\nfunction registerTheme(globalPrefixCls, theme, cspNonce) {\n const style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, `${dynamicStyleMark}-dynamic-theme`, {\n cspNonce\n });\n } else {\n warn(`NzConfigService: SSR do not support dynamic theme with css variables.`);\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 */\nconst isDefined = function (value) {\n return value !== undefined;\n};\nconst defaultPrefixCls = 'ant';\nclass NzConfigService {\n constructor(defaultConfig, cspNonce) {\n this.configUpdated$ = new Subject();\n this.config = defaultConfig || {};\n this.cspNonce = cspNonce;\n if (this.config.theme) {\n // If theme is set with NZ_CONFIG, register theme to make sure css variables work\n registerTheme(this.getConfig().prefixCls?.prefixCls || defaultPrefixCls, this.config.theme, cspNonce);\n }\n }\n getConfig() {\n return this.config;\n }\n getConfigForComponent(componentName) {\n return this.config[componentName];\n }\n getConfigChangeEventForComponent(componentName) {\n return this.configUpdated$.pipe(filter(n => n === componentName), mapTo(undefined));\n }\n set(componentName, value) {\n this.config[componentName] = {\n ...this.config[componentName],\n ...value\n };\n if (componentName === 'theme' && this.config.theme) {\n registerTheme(this.getConfig().prefixCls?.prefixCls || defaultPrefixCls, this.config.theme, this.cspNonce);\n }\n this.configUpdated$.next(componentName);\n }\n static {\n this.ɵfac = function NzConfigService_Factory(t) {\n return new (t || NzConfigService)(i0.ɵɵinject(NZ_CONFIG, 8), i0.ɵɵinject(CSP_NONCE, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzConfigService,\n factory: NzConfigService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzConfigService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NZ_CONFIG]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CSP_NONCE]\n }]\n }], null);\n})();\n/* eslint-disable no-invalid-this */\n/**\n * This decorator is used to decorate properties. If a property is decorated, it would try to load default value from\n * config.\n */\n// eslint-disable-next-line\nfunction WithConfig() {\n return function ConfigDecorator(target, propName, originalDescriptor) {\n const privatePropName = `$$__zorroConfigDecorator__${propName}`;\n Object.defineProperty(target, privatePropName, {\n configurable: true,\n writable: true,\n enumerable: false\n });\n return {\n get() {\n const originalValue = originalDescriptor?.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\n const assignedByUser = (this.propertyAssignCounter?.[propName] || 0) > 1;\n const configValue = this.nzConfigService.getConfigForComponent(this._nzModuleName)?.[propName];\n if (assignedByUser && isDefined(originalValue)) {\n return originalValue;\n } else {\n return isDefined(configValue) ? configValue : originalValue;\n }\n },\n set(value) {\n // If the value is assigned, we consider the newly assigned value as 'assigned by user'.\n this.propertyAssignCounter = this.propertyAssignCounter || {};\n this.propertyAssignCounter[propName] = (this.propertyAssignCounter[propName] || 0) + 1;\n if (originalDescriptor?.set) {\n originalDescriptor.set.bind(this)(value);\n } else {\n this[privatePropName] = value;\n }\n },\n configurable: true,\n enumerable: true\n };\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_CONFIG, NzConfigService, WithConfig, getStyle, provideNzConfig, registerTheme };\n"],
- "mappings": "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",
- "names": ["TinyColor"]
-}
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_breadcrumb.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_breadcrumb.js
index 09c444b..b22e49f 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_breadcrumb.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_breadcrumb.js
@@ -1,39 +1,39 @@
import {
NzDropDownDirective,
NzDropDownModule
-} from "./chunk-2CQTWQUI.js";
-import "./chunk-WKTPWT5U.js";
+} from "./chunk-KUR2ZJJB.js";
+import "./chunk-YGBKDI43.js";
+import "./chunk-RSMXCRFI.js";
import {
ActivatedRoute,
NavigationEnd,
PRIMARY_OUTLET,
Router
} from "./chunk-CZEXXPIB.js";
-import "./chunk-6RXUTAFR.js";
-import "./chunk-XAGDQPFO.js";
-import "./chunk-D5ODNR6D.js";
-import "./chunk-55A2ZGND.js";
-import "./chunk-6U656R5M.js";
+import "./chunk-K4MSLGWI.js";
+import "./chunk-NOHVXVKW.js";
+import "./chunk-XDMUMVNQ.js";
+import "./chunk-RJWK6JFA.js";
import {
NzOutletModule,
NzStringTemplateOutletDirective
} from "./chunk-VOD2PKZN.js";
import "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
-import "./chunk-KMGBCF4T.js";
-import {
- NzIconDirective,
- NzIconModule
-} from "./chunk-VWMHIMW7.js";
-import "./chunk-ZHMJ6SNN.js";
+import "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
import {
Directionality
} from "./chunk-6NZ2BEBG.js";
+import {
+ NzIconDirective,
+ NzIconModule
+} from "./chunk-G327EOBL.js";
+import "./chunk-DASIIA63.js";
import "./chunk-IAC53GOD.js";
import {
InputBoolean,
PREFIX
-} from "./chunk-M5GY4FCO.js";
+} from "./chunk-SATQCK6M.js";
import "./chunk-ECVKT3ZH.js";
import "./chunk-KI2JSLP6.js";
import "./chunk-Y4CEYMY2.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_button.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_button.js
index 1cdb358..bea4431 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_button.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_button.js
@@ -2,12 +2,12 @@ import {
NzButtonComponent,
NzButtonGroupComponent,
NzButtonModule
-} from "./chunk-KMGBCF4T.js";
-import "./chunk-VWMHIMW7.js";
-import "./chunk-ZHMJ6SNN.js";
+} from "./chunk-RSMXCRFI.js";
import "./chunk-6NZ2BEBG.js";
+import "./chunk-G327EOBL.js";
+import "./chunk-DASIIA63.js";
import "./chunk-IAC53GOD.js";
-import "./chunk-M5GY4FCO.js";
+import "./chunk-SATQCK6M.js";
import "./chunk-ECVKT3ZH.js";
import "./chunk-KI2JSLP6.js";
import "./chunk-Y4CEYMY2.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_carousel.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_carousel.js
index b2b962f..025c56a 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_carousel.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_carousel.js
@@ -1,26 +1,26 @@
-import {
- NzDragService,
- NzResizeService
-} from "./chunk-D5ODNR6D.js";
import {
LEFT_ARROW,
RIGHT_ARROW
} from "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
import {
- NzConfigService,
- WithConfig
-} from "./chunk-ZHMJ6SNN.js";
+ NzDragService,
+ NzResizeService
+} from "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
import {
Directionality
} from "./chunk-6NZ2BEBG.js";
+import {
+ NzConfigService,
+ WithConfig
+} from "./chunk-DASIIA63.js";
import {
Platform
} from "./chunk-IAC53GOD.js";
import {
InputBoolean,
InputNumber
-} from "./chunk-M5GY4FCO.js";
+} from "./chunk-SATQCK6M.js";
import {
NgForOf,
NgIf,
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_checkbox.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_checkbox.js
index fa7a26a..a2a457e 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_checkbox.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_checkbox.js
@@ -1,11 +1,9 @@
-import {
- NzFormStatusService
-} from "./chunk-FGZVIKKA.js";
import {
FocusMonitor
-} from "./chunk-E6XJDY45.js";
-import "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
+} from "./chunk-EISFVYMQ.js";
+import {
+ NzFormStatusService
+} from "./chunk-5AGOG3VI.js";
import {
CheckboxControlValueAccessor,
FormsModule,
@@ -13,15 +11,17 @@ import {
NgControlStatus,
NgModel
} from "./chunk-D4IIJHV7.js";
-import "./chunk-VWMHIMW7.js";
-import "./chunk-ZHMJ6SNN.js";
+import "./chunk-JGP5BR6B.js";
+import "./chunk-Q646SFZH.js";
import {
Directionality
} from "./chunk-6NZ2BEBG.js";
+import "./chunk-G327EOBL.js";
+import "./chunk-DASIIA63.js";
import "./chunk-IAC53GOD.js";
import {
InputBoolean
-} from "./chunk-M5GY4FCO.js";
+} from "./chunk-SATQCK6M.js";
import "./chunk-Y4CEYMY2.js";
import "./chunk-X7WBA24Z.js";
import {
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_drawer.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_drawer.js
deleted file mode 100644
index 3e46537..0000000
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_drawer.js
+++ /dev/null
@@ -1,1073 +0,0 @@
-import {
- NzNoAnimationDirective
-} from "./chunk-55A2ZGND.js";
-import {
- FocusTrapFactory
-} from "./chunk-E6XJDY45.js";
-import {
- CdkPortalOutlet,
- ComponentPortal,
- Overlay,
- OverlayConfig,
- OverlayKeyboardDispatcher,
- PortalModule,
- TemplatePortal
-} from "./chunk-6U656R5M.js";
-import {
- NzOutletModule,
- NzStringTemplateOutletDirective
-} from "./chunk-VOD2PKZN.js";
-import {
- ESCAPE
-} from "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
-import {
- NzIconDirective,
- NzIconModule
-} from "./chunk-VWMHIMW7.js";
-import {
- NzConfigService,
- WithConfig
-} from "./chunk-ZHMJ6SNN.js";
-import {
- Directionality
-} from "./chunk-6NZ2BEBG.js";
-import "./chunk-IAC53GOD.js";
-import {
- InputBoolean,
- toCssPixel
-} from "./chunk-M5GY4FCO.js";
-import "./chunk-ECVKT3ZH.js";
-import "./chunk-KI2JSLP6.js";
-import "./chunk-Y4CEYMY2.js";
-import "./chunk-X7WBA24Z.js";
-import {
- DOCUMENT,
- NgIf,
- NgStyle,
- NgTemplateOutlet
-} from "./chunk-OSQBUYO6.js";
-import {
- ChangeDetectionStrategy,
- ChangeDetectorRef,
- Component,
- ContentChild,
- Directive,
- EventEmitter,
- Inject,
- Injectable,
- InjectionToken,
- Injector,
- Input,
- NgModule,
- Optional,
- Output,
- Renderer2,
- Subject,
- TemplateRef,
- Type,
- ViewChild,
- ViewContainerRef,
- __decorate,
- setClassMetadata,
- takeUntil,
- ɵɵInheritDefinitionFeature,
- ɵɵNgOnChangesFeature,
- ɵɵStandaloneFeature,
- ɵɵadvance,
- ɵɵclassMapInterpolate1,
- ɵɵclassProp,
- ɵɵcontentQuery,
- ɵɵdefineComponent,
- ɵɵdefineDirective,
- ɵɵdefineInjectable,
- ɵɵdefineInjector,
- ɵɵdefineNgModule,
- ɵɵdirectiveInject,
- ɵɵelement,
- ɵɵelementContainer,
- ɵɵelementContainerEnd,
- ɵɵelementContainerStart,
- ɵɵelementEnd,
- ɵɵelementStart,
- ɵɵgetCurrentView,
- ɵɵinject,
- ɵɵlistener,
- ɵɵloadQuery,
- ɵɵnextContext,
- ɵɵproperty,
- ɵɵqueryRefresh,
- ɵɵreference,
- ɵɵresetView,
- ɵɵrestoreView,
- ɵɵsanitizeHtml,
- ɵɵstyleProp,
- ɵɵtemplate,
- ɵɵtemplateRefExtractor,
- ɵɵviewQuery
-} from "./chunk-FGESKT7O.js";
-import {
- __objRest
-} from "./chunk-HSNDBVJ3.js";
-
-// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-drawer.mjs
-var _c0 = ["drawerTemplate"];
-function NzDrawerComponent_ng_template_0_div_1_Template(rf, ctx) {
- if (rf & 1) {
- const _r10 = ɵɵgetCurrentView();
- ɵɵelementStart(0, "div", 11);
- ɵɵlistener("click", function NzDrawerComponent_ng_template_0_div_1_Template_div_click_0_listener() {
- ɵɵrestoreView(_r10);
- const ctx_r9 = ɵɵnextContext(2);
- return ɵɵresetView(ctx_r9.maskClick());
- });
- ɵɵelementEnd();
- }
- if (rf & 2) {
- const ctx_r2 = ɵɵnextContext(2);
- ɵɵproperty("ngStyle", ctx_r2.nzMaskStyle);
- }
-}
-function NzDrawerComponent_ng_template_0_div_5_button_2_ng_container_1_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵelement(1, "span", 19);
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const closeIcon_r15 = ctx.$implicit;
- ɵɵadvance(1);
- ɵɵproperty("nzType", closeIcon_r15);
- }
-}
-function NzDrawerComponent_ng_template_0_div_5_button_2_Template(rf, ctx) {
- if (rf & 1) {
- const _r17 = ɵɵgetCurrentView();
- ɵɵelementStart(0, "button", 17);
- ɵɵlistener("click", function NzDrawerComponent_ng_template_0_div_5_button_2_Template_button_click_0_listener() {
- ɵɵrestoreView(_r17);
- const ctx_r16 = ɵɵnextContext(3);
- return ɵɵresetView(ctx_r16.closeClick());
- });
- ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_5_button_2_ng_container_1_Template, 2, 1, "ng-container", 18);
- ɵɵelementEnd();
- }
- if (rf & 2) {
- const ctx_r11 = ɵɵnextContext(3);
- ɵɵadvance(1);
- ɵɵproperty("nzStringTemplateOutlet", ctx_r11.nzCloseIcon);
- }
-}
-function NzDrawerComponent_ng_template_0_div_5_div_3_ng_container_1_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵelement(1, "div", 21);
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const ctx_r18 = ɵɵnextContext(4);
- ɵɵadvance(1);
- ɵɵproperty("innerHTML", ctx_r18.nzTitle, ɵɵsanitizeHtml);
- }
-}
-function NzDrawerComponent_ng_template_0_div_5_div_3_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementStart(0, "div", 20);
- ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_5_div_3_ng_container_1_Template, 2, 1, "ng-container", 18);
- ɵɵelementEnd();
- }
- if (rf & 2) {
- const ctx_r12 = ɵɵnextContext(3);
- ɵɵadvance(1);
- ɵɵproperty("nzStringTemplateOutlet", ctx_r12.nzTitle);
- }
-}
-function NzDrawerComponent_ng_template_0_div_5_div_4_ng_container_1_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵelement(1, "div", 21);
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const ctx_r19 = ɵɵnextContext(4);
- ɵɵadvance(1);
- ɵɵproperty("innerHTML", ctx_r19.nzExtra, ɵɵsanitizeHtml);
- }
-}
-function NzDrawerComponent_ng_template_0_div_5_div_4_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementStart(0, "div", 22);
- ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_5_div_4_ng_container_1_Template, 2, 1, "ng-container", 18);
- ɵɵelementEnd();
- }
- if (rf & 2) {
- const ctx_r13 = ɵɵnextContext(3);
- ɵɵadvance(1);
- ɵɵproperty("nzStringTemplateOutlet", ctx_r13.nzExtra);
- }
-}
-function NzDrawerComponent_ng_template_0_div_5_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementStart(0, "div", 12)(1, "div", 13);
- ɵɵtemplate(2, NzDrawerComponent_ng_template_0_div_5_button_2_Template, 2, 1, "button", 14)(3, NzDrawerComponent_ng_template_0_div_5_div_3_Template, 2, 1, "div", 15);
- ɵɵelementEnd();
- ɵɵtemplate(4, NzDrawerComponent_ng_template_0_div_5_div_4_Template, 2, 1, "div", 16);
- ɵɵelementEnd();
- }
- if (rf & 2) {
- const ctx_r3 = ɵɵnextContext(2);
- ɵɵclassProp("ant-drawer-header-close-only", !ctx_r3.nzTitle);
- ɵɵadvance(2);
- ɵɵproperty("ngIf", ctx_r3.nzClosable);
- ɵɵadvance(1);
- ɵɵproperty("ngIf", ctx_r3.nzTitle);
- ɵɵadvance(1);
- ɵɵproperty("ngIf", ctx_r3.nzExtra);
- }
-}
-function NzDrawerComponent_ng_template_0_ng_template_7_Template(rf, ctx) {
-}
-function NzDrawerComponent_ng_template_0_ng_container_8_ng_container_1_ng_container_1_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainer(0);
- }
-}
-function NzDrawerComponent_ng_template_0_ng_container_8_ng_container_1_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵtemplate(1, NzDrawerComponent_ng_template_0_ng_container_8_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 24);
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const ctx_r20 = ɵɵnextContext(3);
- ɵɵadvance(1);
- ɵɵproperty("ngTemplateOutlet", ctx_r20.nzContent)("ngTemplateOutletContext", ctx_r20.templateContext);
- }
-}
-function NzDrawerComponent_ng_template_0_ng_container_8_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵtemplate(1, NzDrawerComponent_ng_template_0_ng_container_8_ng_container_1_Template, 2, 2, "ng-container", 23);
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const ctx_r5 = ɵɵnextContext(2);
- ɵɵadvance(1);
- ɵɵproperty("ngIf", ctx_r5.isTemplateRef(ctx_r5.nzContent));
- }
-}
-function NzDrawerComponent_ng_template_0_ng_template_9_ng_container_0_ng_template_1_Template(rf, ctx) {
-}
-function NzDrawerComponent_ng_template_0_ng_template_9_ng_container_0_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵtemplate(1, NzDrawerComponent_ng_template_0_ng_template_9_ng_container_0_ng_template_1_Template, 0, 0, "ng-template", 25);
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const ctx_r22 = ɵɵnextContext(3);
- ɵɵadvance(1);
- ɵɵproperty("ngTemplateOutlet", ctx_r22.contentFromContentChild);
- }
-}
-function NzDrawerComponent_ng_template_0_ng_template_9_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵtemplate(0, NzDrawerComponent_ng_template_0_ng_template_9_ng_container_0_Template, 2, 1, "ng-container", 23);
- }
- if (rf & 2) {
- const ctx_r6 = ɵɵnextContext(2);
- ɵɵproperty("ngIf", ctx_r6.contentFromContentChild && (ctx_r6.isOpen || ctx_r6.inAnimation));
- }
-}
-function NzDrawerComponent_ng_template_0_div_11_ng_container_1_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementContainerStart(0);
- ɵɵelement(1, "div", 21);
- ɵɵelementContainerEnd();
- }
- if (rf & 2) {
- const ctx_r24 = ɵɵnextContext(3);
- ɵɵadvance(1);
- ɵɵproperty("innerHTML", ctx_r24.nzFooter, ɵɵsanitizeHtml);
- }
-}
-function NzDrawerComponent_ng_template_0_div_11_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementStart(0, "div", 26);
- ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_11_ng_container_1_Template, 2, 1, "ng-container", 18);
- ɵɵelementEnd();
- }
- if (rf & 2) {
- const ctx_r8 = ɵɵnextContext(2);
- ɵɵadvance(1);
- ɵɵproperty("nzStringTemplateOutlet", ctx_r8.nzFooter);
- }
-}
-function NzDrawerComponent_ng_template_0_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵelementStart(0, "div", 1);
- ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_1_Template, 1, 1, "div", 2);
- ɵɵelementStart(2, "div")(3, "div", 3)(4, "div", 4);
- ɵɵtemplate(5, NzDrawerComponent_ng_template_0_div_5_Template, 5, 5, "div", 5);
- ɵɵelementStart(6, "div", 6);
- ɵɵtemplate(7, NzDrawerComponent_ng_template_0_ng_template_7_Template, 0, 0, "ng-template", 7)(8, NzDrawerComponent_ng_template_0_ng_container_8_Template, 2, 1, "ng-container", 8)(9, NzDrawerComponent_ng_template_0_ng_template_9_Template, 1, 1, "ng-template", null, 9, ɵɵtemplateRefExtractor);
- ɵɵelementEnd();
- ɵɵtemplate(11, NzDrawerComponent_ng_template_0_div_11_Template, 2, 1, "div", 10);
- ɵɵelementEnd()()()();
- }
- if (rf & 2) {
- const _r7 = ɵɵreference(10);
- const ctx_r0 = ɵɵnextContext();
- ɵɵstyleProp("transform", ctx_r0.offsetTransform)("transition", ctx_r0.placementChanging ? "none" : null)("z-index", ctx_r0.nzZIndex);
- ɵɵclassProp("ant-drawer-rtl", ctx_r0.dir === "rtl")("ant-drawer-open", ctx_r0.isOpen)("no-mask", !ctx_r0.nzMask)("ant-drawer-top", ctx_r0.nzPlacement === "top")("ant-drawer-bottom", ctx_r0.nzPlacement === "bottom")("ant-drawer-right", ctx_r0.nzPlacement === "right")("ant-drawer-left", ctx_r0.nzPlacement === "left");
- ɵɵproperty("nzNoAnimation", ctx_r0.nzNoAnimation);
- ɵɵadvance(1);
- ɵɵproperty("ngIf", ctx_r0.nzMask);
- ɵɵadvance(1);
- ɵɵclassMapInterpolate1("ant-drawer-content-wrapper ", ctx_r0.nzWrapClassName, "");
- ɵɵstyleProp("width", ctx_r0.width)("height", ctx_r0.height)("transform", ctx_r0.transform)("transition", ctx_r0.placementChanging ? "none" : null);
- ɵɵadvance(2);
- ɵɵstyleProp("height", ctx_r0.isLeftOrRight ? "100%" : null);
- ɵɵadvance(1);
- ɵɵproperty("ngIf", ctx_r0.nzTitle || ctx_r0.nzClosable);
- ɵɵadvance(1);
- ɵɵproperty("ngStyle", ctx_r0.nzBodyStyle);
- ɵɵadvance(2);
- ɵɵproperty("ngIf", ctx_r0.nzContent)("ngIfElse", _r7);
- ɵɵadvance(3);
- ɵɵproperty("ngIf", ctx_r0.nzFooter);
- }
-}
-var _NzDrawerContentDirective = class _NzDrawerContentDirective {
- constructor(templateRef) {
- this.templateRef = templateRef;
- }
-};
-_NzDrawerContentDirective.ɵfac = function NzDrawerContentDirective_Factory(t) {
- return new (t || _NzDrawerContentDirective)(ɵɵdirectiveInject(TemplateRef));
-};
-_NzDrawerContentDirective.ɵdir = ɵɵdefineDirective({
- type: _NzDrawerContentDirective,
- selectors: [["", "nzDrawerContent", ""]],
- exportAs: ["nzDrawerContent"],
- standalone: true
-});
-var NzDrawerContentDirective = _NzDrawerContentDirective;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDrawerContentDirective, [{
- type: Directive,
- args: [{
- selector: "[nzDrawerContent]",
- exportAs: "nzDrawerContent",
- standalone: true
- }]
- }], () => [{
- type: TemplateRef
- }], null);
-})();
-var DRAWER_DEFAULT_SIZE = 378;
-var DRAWER_LARGE_SIZE = 736;
-var NZ_DRAWER_DATA = new InjectionToken("NZ_DRAWER_DATA");
-var NzDrawerRef = class {
-};
-var DRAWER_ANIMATE_DURATION = 300;
-var NZ_CONFIG_MODULE_NAME = "drawer";
-var _NzDrawerComponent = class _NzDrawerComponent extends NzDrawerRef {
- set nzVisible(value) {
- this.isOpen = value;
- }
- get nzVisible() {
- return this.isOpen;
- }
- get offsetTransform() {
- if (!this.isOpen || this.nzOffsetX + this.nzOffsetY === 0) {
- return null;
- }
- switch (this.nzPlacement) {
- case "left":
- return `translateX(${this.nzOffsetX}px)`;
- case "right":
- return `translateX(-${this.nzOffsetX}px)`;
- case "top":
- return `translateY(${this.nzOffsetY}px)`;
- case "bottom":
- return `translateY(-${this.nzOffsetY}px)`;
- }
- }
- get transform() {
- if (this.isOpen) {
- return null;
- }
- switch (this.nzPlacement) {
- case "left":
- return `translateX(-100%)`;
- case "right":
- return `translateX(100%)`;
- case "top":
- return `translateY(-100%)`;
- case "bottom":
- return `translateY(100%)`;
- }
- }
- get width() {
- if (this.isLeftOrRight) {
- const defaultWidth = this.nzSize === "large" ? DRAWER_LARGE_SIZE : DRAWER_DEFAULT_SIZE;
- return this.nzWidth === void 0 ? toCssPixel(defaultWidth) : toCssPixel(this.nzWidth);
- }
- return null;
- }
- get height() {
- if (!this.isLeftOrRight) {
- const defaultHeight = this.nzSize === "large" ? DRAWER_LARGE_SIZE : DRAWER_DEFAULT_SIZE;
- return this.nzHeight === void 0 ? toCssPixel(defaultHeight) : toCssPixel(this.nzHeight);
- }
- return null;
- }
- get isLeftOrRight() {
- return this.nzPlacement === "left" || this.nzPlacement === "right";
- }
- get afterOpen() {
- return this.nzAfterOpen.asObservable();
- }
- get afterClose() {
- return this.nzAfterClose.asObservable();
- }
- isTemplateRef(value) {
- return value instanceof TemplateRef;
- }
- constructor(cdr, document, nzConfigService, renderer, overlay, injector, changeDetectorRef, focusTrapFactory, viewContainerRef, overlayKeyboardDispatcher, directionality) {
- super();
- this.cdr = cdr;
- this.document = document;
- this.nzConfigService = nzConfigService;
- this.renderer = renderer;
- this.overlay = overlay;
- this.injector = injector;
- this.changeDetectorRef = changeDetectorRef;
- this.focusTrapFactory = focusTrapFactory;
- this.viewContainerRef = viewContainerRef;
- this.overlayKeyboardDispatcher = overlayKeyboardDispatcher;
- this.directionality = directionality;
- this._nzModuleName = NZ_CONFIG_MODULE_NAME;
- this.nzCloseIcon = "close";
- this.nzClosable = true;
- this.nzMaskClosable = true;
- this.nzMask = true;
- this.nzCloseOnNavigation = true;
- this.nzNoAnimation = false;
- this.nzKeyboard = true;
- this.nzPlacement = "right";
- this.nzSize = "default";
- this.nzMaskStyle = {};
- this.nzBodyStyle = {};
- this.nzZIndex = 1e3;
- this.nzOffsetX = 0;
- this.nzOffsetY = 0;
- this.componentInstance = null;
- this.nzOnViewInit = new EventEmitter();
- this.nzOnClose = new EventEmitter();
- this.nzVisibleChange = new EventEmitter();
- this.destroy$ = new Subject();
- this.placementChanging = false;
- this.placementChangeTimeoutId = -1;
- this.isOpen = false;
- this.inAnimation = false;
- this.templateContext = {
- $implicit: void 0,
- drawerRef: this
- };
- this.nzAfterOpen = new Subject();
- this.nzAfterClose = new Subject();
- this.nzDirection = void 0;
- this.dir = "ltr";
- }
- ngOnInit() {
- this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
- this.dir = direction;
- this.cdr.detectChanges();
- });
- this.dir = this.nzDirection || this.directionality.value;
- this.attachOverlay();
- this.updateOverlayStyle();
- this.updateBodyOverflow();
- this.templateContext = {
- $implicit: this.nzData || this.nzContentParams,
- drawerRef: this
- };
- this.changeDetectorRef.detectChanges();
- }
- ngAfterViewInit() {
- this.attachBodyContent();
- if (this.nzOnViewInit.observers.length) {
- setTimeout(() => {
- this.nzOnViewInit.emit();
- });
- }
- }
- ngOnChanges(changes) {
- const {
- nzPlacement,
- nzVisible
- } = changes;
- if (nzVisible) {
- const value = changes.nzVisible.currentValue;
- if (value) {
- this.open();
- } else {
- this.close();
- }
- }
- if (nzPlacement && !nzPlacement.isFirstChange()) {
- this.triggerPlacementChangeCycleOnce();
- }
- }
- ngOnDestroy() {
- this.destroy$.next();
- this.destroy$.complete();
- clearTimeout(this.placementChangeTimeoutId);
- this.disposeOverlay();
- }
- getAnimationDuration() {
- return this.nzNoAnimation ? 0 : DRAWER_ANIMATE_DURATION;
- }
- // Disable the transition animation temporarily when the placement changing
- triggerPlacementChangeCycleOnce() {
- if (!this.nzNoAnimation) {
- this.placementChanging = true;
- this.changeDetectorRef.markForCheck();
- clearTimeout(this.placementChangeTimeoutId);
- this.placementChangeTimeoutId = setTimeout(() => {
- this.placementChanging = false;
- this.changeDetectorRef.markForCheck();
- }, this.getAnimationDuration());
- }
- }
- close(result) {
- this.isOpen = false;
- this.inAnimation = true;
- this.nzVisibleChange.emit(false);
- this.updateOverlayStyle();
- this.overlayKeyboardDispatcher.remove(this.overlayRef);
- this.changeDetectorRef.detectChanges();
- setTimeout(() => {
- this.updateBodyOverflow();
- this.restoreFocus();
- this.inAnimation = false;
- this.nzAfterClose.next(result);
- this.nzAfterClose.complete();
- this.componentInstance = null;
- }, this.getAnimationDuration());
- }
- open() {
- this.attachOverlay();
- this.isOpen = true;
- this.inAnimation = true;
- this.nzVisibleChange.emit(true);
- this.overlayKeyboardDispatcher.add(this.overlayRef);
- this.updateOverlayStyle();
- this.updateBodyOverflow();
- this.savePreviouslyFocusedElement();
- this.trapFocus();
- this.changeDetectorRef.detectChanges();
- setTimeout(() => {
- this.inAnimation = false;
- this.changeDetectorRef.detectChanges();
- this.nzAfterOpen.next();
- }, this.getAnimationDuration());
- }
- getContentComponent() {
- return this.componentInstance;
- }
- closeClick() {
- this.nzOnClose.emit();
- }
- maskClick() {
- if (this.nzMaskClosable && this.nzMask) {
- this.nzOnClose.emit();
- }
- }
- attachBodyContent() {
- this.bodyPortalOutlet.dispose();
- if (this.nzContent instanceof Type) {
- const childInjector = Injector.create({
- parent: this.injector,
- providers: [{
- provide: NzDrawerRef,
- useValue: this
- }, {
- provide: NZ_DRAWER_DATA,
- useValue: this.nzData
- }]
- });
- const componentPortal = new ComponentPortal(this.nzContent, null, childInjector);
- const componentRef = this.bodyPortalOutlet.attachComponentPortal(componentPortal);
- this.componentInstance = componentRef.instance;
- Object.assign(componentRef.instance, this.nzData || this.nzContentParams);
- componentRef.changeDetectorRef.detectChanges();
- }
- }
- attachOverlay() {
- if (!this.overlayRef) {
- this.portal = new TemplatePortal(this.drawerTemplate, this.viewContainerRef);
- this.overlayRef = this.overlay.create(this.getOverlayConfig());
- }
- if (this.overlayRef && !this.overlayRef.hasAttached()) {
- this.overlayRef.attach(this.portal);
- this.overlayRef.keydownEvents().pipe(takeUntil(this.destroy$)).subscribe((event) => {
- if (event.keyCode === ESCAPE && this.isOpen && this.nzKeyboard) {
- this.nzOnClose.emit();
- }
- });
- this.overlayRef.detachments().pipe(takeUntil(this.destroy$)).subscribe(() => {
- this.disposeOverlay();
- });
- }
- }
- disposeOverlay() {
- this.overlayRef?.dispose();
- this.overlayRef = null;
- }
- getOverlayConfig() {
- return new OverlayConfig({
- disposeOnNavigation: this.nzCloseOnNavigation,
- positionStrategy: this.overlay.position().global(),
- scrollStrategy: this.overlay.scrollStrategies.block()
- });
- }
- updateOverlayStyle() {
- if (this.overlayRef && this.overlayRef.overlayElement) {
- this.renderer.setStyle(this.overlayRef.overlayElement, "pointer-events", this.isOpen ? "auto" : "none");
- }
- }
- updateBodyOverflow() {
- if (this.overlayRef) {
- if (this.isOpen) {
- this.overlayRef.getConfig().scrollStrategy.enable();
- } else {
- this.overlayRef.getConfig().scrollStrategy.disable();
- }
- }
- }
- savePreviouslyFocusedElement() {
- if (this.document && !this.previouslyFocusedElement) {
- this.previouslyFocusedElement = this.document.activeElement;
- if (this.previouslyFocusedElement && typeof this.previouslyFocusedElement.blur === "function") {
- this.previouslyFocusedElement.blur();
- }
- }
- }
- trapFocus() {
- if (!this.focusTrap && this.overlayRef && this.overlayRef.overlayElement) {
- this.focusTrap = this.focusTrapFactory.create(this.overlayRef.overlayElement);
- this.focusTrap.focusInitialElement();
- }
- }
- restoreFocus() {
- if (this.previouslyFocusedElement && typeof this.previouslyFocusedElement.focus === "function") {
- this.previouslyFocusedElement.focus();
- }
- if (this.focusTrap) {
- this.focusTrap.destroy();
- }
- }
-};
-_NzDrawerComponent.ɵfac = function NzDrawerComponent_Factory(t) {
- return new (t || _NzDrawerComponent)(ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(DOCUMENT, 8), ɵɵdirectiveInject(NzConfigService), ɵɵdirectiveInject(Renderer2), ɵɵdirectiveInject(Overlay), ɵɵdirectiveInject(Injector), ɵɵdirectiveInject(ChangeDetectorRef), ɵɵdirectiveInject(FocusTrapFactory), ɵɵdirectiveInject(ViewContainerRef), ɵɵdirectiveInject(OverlayKeyboardDispatcher), ɵɵdirectiveInject(Directionality, 8));
-};
-_NzDrawerComponent.ɵcmp = ɵɵdefineComponent({
- type: _NzDrawerComponent,
- selectors: [["nz-drawer"]],
- contentQueries: function NzDrawerComponent_ContentQueries(rf, ctx, dirIndex) {
- if (rf & 1) {
- ɵɵcontentQuery(dirIndex, NzDrawerContentDirective, 7, TemplateRef);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.contentFromContentChild = _t.first);
- }
- },
- viewQuery: function NzDrawerComponent_Query(rf, ctx) {
- if (rf & 1) {
- ɵɵviewQuery(_c0, 7);
- ɵɵviewQuery(CdkPortalOutlet, 5);
- }
- if (rf & 2) {
- let _t;
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.drawerTemplate = _t.first);
- ɵɵqueryRefresh(_t = ɵɵloadQuery()) && (ctx.bodyPortalOutlet = _t.first);
- }
- },
- inputs: {
- nzContent: "nzContent",
- nzCloseIcon: "nzCloseIcon",
- nzClosable: "nzClosable",
- nzMaskClosable: "nzMaskClosable",
- nzMask: "nzMask",
- nzCloseOnNavigation: "nzCloseOnNavigation",
- nzNoAnimation: "nzNoAnimation",
- nzKeyboard: "nzKeyboard",
- nzTitle: "nzTitle",
- nzExtra: "nzExtra",
- nzFooter: "nzFooter",
- nzPlacement: "nzPlacement",
- nzSize: "nzSize",
- nzMaskStyle: "nzMaskStyle",
- nzBodyStyle: "nzBodyStyle",
- nzWrapClassName: "nzWrapClassName",
- nzWidth: "nzWidth",
- nzHeight: "nzHeight",
- nzZIndex: "nzZIndex",
- nzOffsetX: "nzOffsetX",
- nzOffsetY: "nzOffsetY",
- nzVisible: "nzVisible"
- },
- outputs: {
- nzOnViewInit: "nzOnViewInit",
- nzOnClose: "nzOnClose",
- nzVisibleChange: "nzVisibleChange"
- },
- exportAs: ["nzDrawer"],
- standalone: true,
- features: [ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵStandaloneFeature],
- decls: 2,
- vars: 0,
- consts: [["drawerTemplate", ""], [1, "ant-drawer", 3, "nzNoAnimation"], ["class", "ant-drawer-mask", 3, "ngStyle", "click", 4, "ngIf"], [1, "ant-drawer-content"], [1, "ant-drawer-wrapper-body"], ["class", "ant-drawer-header", 3, "ant-drawer-header-close-only", 4, "ngIf"], [1, "ant-drawer-body", 3, "ngStyle"], ["cdkPortalOutlet", ""], [4, "ngIf", "ngIfElse"], ["contentElseTemp", ""], ["class", "ant-drawer-footer", 4, "ngIf"], [1, "ant-drawer-mask", 3, "ngStyle", "click"], [1, "ant-drawer-header"], [1, "ant-drawer-header-title"], ["aria-label", "Close", "class", "ant-drawer-close", "style", "--scroll-bar: 0px;", 3, "click", 4, "ngIf"], ["class", "ant-drawer-title", 4, "ngIf"], ["class", "ant-drawer-extra", 4, "ngIf"], ["aria-label", "Close", 1, "ant-drawer-close", 2, "--scroll-bar", "0px", 3, "click"], [4, "nzStringTemplateOutlet"], ["nz-icon", "", 3, "nzType"], [1, "ant-drawer-title"], [3, "innerHTML"], [1, "ant-drawer-extra"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "ngTemplateOutlet"], [1, "ant-drawer-footer"]],
- template: function NzDrawerComponent_Template(rf, ctx) {
- if (rf & 1) {
- ɵɵtemplate(0, NzDrawerComponent_ng_template_0_Template, 12, 40, "ng-template", null, 0, ɵɵtemplateRefExtractor);
- }
- },
- dependencies: [NzNoAnimationDirective, NgIf, NgStyle, NzOutletModule, NzStringTemplateOutletDirective, NzIconModule, NzIconDirective, PortalModule, CdkPortalOutlet, NgTemplateOutlet],
- encapsulation: 2,
- changeDetection: 0
-});
-var NzDrawerComponent = _NzDrawerComponent;
-__decorate([InputBoolean()], NzDrawerComponent.prototype, "nzClosable", void 0);
-__decorate([WithConfig(), InputBoolean()], NzDrawerComponent.prototype, "nzMaskClosable", void 0);
-__decorate([WithConfig(), InputBoolean()], NzDrawerComponent.prototype, "nzMask", void 0);
-__decorate([WithConfig(), InputBoolean()], NzDrawerComponent.prototype, "nzCloseOnNavigation", void 0);
-__decorate([InputBoolean()], NzDrawerComponent.prototype, "nzNoAnimation", void 0);
-__decorate([InputBoolean()], NzDrawerComponent.prototype, "nzKeyboard", void 0);
-__decorate([WithConfig()], NzDrawerComponent.prototype, "nzDirection", void 0);
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDrawerComponent, [{
- type: Component,
- args: [{
- selector: "nz-drawer",
- exportAs: "nzDrawer",
- template: `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- `,
- preserveWhitespaces: false,
- changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [NzNoAnimationDirective, NgIf, NgStyle, NzOutletModule, NzIconModule, PortalModule, NgTemplateOutlet],
- standalone: true
- }]
- }], () => [{
- type: ChangeDetectorRef
- }, {
- type: void 0,
- decorators: [{
- type: Optional
- }, {
- type: Inject,
- args: [DOCUMENT]
- }]
- }, {
- type: NzConfigService
- }, {
- type: Renderer2
- }, {
- type: Overlay
- }, {
- type: Injector
- }, {
- type: ChangeDetectorRef
- }, {
- type: FocusTrapFactory
- }, {
- type: ViewContainerRef
- }, {
- type: OverlayKeyboardDispatcher
- }, {
- type: Directionality,
- decorators: [{
- type: Optional
- }]
- }], {
- nzContent: [{
- type: Input
- }],
- nzCloseIcon: [{
- type: Input
- }],
- nzClosable: [{
- type: Input
- }],
- nzMaskClosable: [{
- type: Input
- }],
- nzMask: [{
- type: Input
- }],
- nzCloseOnNavigation: [{
- type: Input
- }],
- nzNoAnimation: [{
- type: Input
- }],
- nzKeyboard: [{
- type: Input
- }],
- nzTitle: [{
- type: Input
- }],
- nzExtra: [{
- type: Input
- }],
- nzFooter: [{
- type: Input
- }],
- nzPlacement: [{
- type: Input
- }],
- nzSize: [{
- type: Input
- }],
- nzMaskStyle: [{
- type: Input
- }],
- nzBodyStyle: [{
- type: Input
- }],
- nzWrapClassName: [{
- type: Input
- }],
- nzWidth: [{
- type: Input
- }],
- nzHeight: [{
- type: Input
- }],
- nzZIndex: [{
- type: Input
- }],
- nzOffsetX: [{
- type: Input
- }],
- nzOffsetY: [{
- type: Input
- }],
- nzVisible: [{
- type: Input
- }],
- nzOnViewInit: [{
- type: Output
- }],
- nzOnClose: [{
- type: Output
- }],
- nzVisibleChange: [{
- type: Output
- }],
- drawerTemplate: [{
- type: ViewChild,
- args: ["drawerTemplate", {
- static: true
- }]
- }],
- bodyPortalOutlet: [{
- type: ViewChild,
- args: [CdkPortalOutlet, {
- static: false
- }]
- }],
- contentFromContentChild: [{
- type: ContentChild,
- args: [NzDrawerContentDirective, {
- static: true,
- read: TemplateRef
- }]
- }],
- nzDirection: []
- });
-})();
-var DrawerBuilderForService = class {
- constructor(overlay, options) {
- this.overlay = overlay;
- this.options = options;
- this.unsubscribe$ = new Subject();
- const _a = this.options, {
- nzOnCancel
- } = _a, componentOption = __objRest(_a, [
- "nzOnCancel"
- ]);
- this.overlayRef = this.overlay.create();
- this.drawerRef = this.overlayRef.attach(new ComponentPortal(NzDrawerComponent)).instance;
- this.updateOptions(componentOption);
- this.drawerRef.savePreviouslyFocusedElement();
- this.drawerRef.nzOnViewInit.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
- this.drawerRef.open();
- });
- this.drawerRef.nzOnClose.subscribe(() => {
- if (nzOnCancel) {
- nzOnCancel().then((canClose) => {
- if (canClose !== false) {
- this.drawerRef.close();
- }
- });
- } else {
- this.drawerRef.close();
- }
- });
- this.drawerRef.afterClose.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
- this.overlayRef.dispose();
- this.drawerRef = null;
- this.unsubscribe$.next();
- this.unsubscribe$.complete();
- });
- }
- getInstance() {
- return this.drawerRef;
- }
- updateOptions(options) {
- Object.assign(this.drawerRef, options);
- }
-};
-var _NzDrawerService = class _NzDrawerService {
- constructor(overlay) {
- this.overlay = overlay;
- }
- create(options) {
- return new DrawerBuilderForService(this.overlay, options).getInstance();
- }
-};
-_NzDrawerService.ɵfac = function NzDrawerService_Factory(t) {
- return new (t || _NzDrawerService)(ɵɵinject(Overlay));
-};
-_NzDrawerService.ɵprov = ɵɵdefineInjectable({
- token: _NzDrawerService,
- factory: _NzDrawerService.ɵfac
-});
-var NzDrawerService = _NzDrawerService;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDrawerService, [{
- type: Injectable
- }], () => [{
- type: Overlay
- }], null);
-})();
-var _NzDrawerModule = class _NzDrawerModule {
-};
-_NzDrawerModule.ɵfac = function NzDrawerModule_Factory(t) {
- return new (t || _NzDrawerModule)();
-};
-_NzDrawerModule.ɵmod = ɵɵdefineNgModule({
- type: _NzDrawerModule,
- imports: [NzDrawerComponent, NzDrawerContentDirective],
- exports: [NzDrawerComponent, NzDrawerContentDirective]
-});
-_NzDrawerModule.ɵinj = ɵɵdefineInjector({
- providers: [NzDrawerService],
- imports: [NzDrawerComponent]
-});
-var NzDrawerModule = _NzDrawerModule;
-(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzDrawerModule, [{
- type: NgModule,
- args: [{
- imports: [NzDrawerComponent, NzDrawerContentDirective],
- providers: [NzDrawerService],
- exports: [NzDrawerComponent, NzDrawerContentDirective]
- }]
- }], null, null);
-})();
-export {
- DRAWER_ANIMATE_DURATION,
- DRAWER_DEFAULT_SIZE,
- DRAWER_LARGE_SIZE,
- DrawerBuilderForService,
- NZ_DRAWER_DATA,
- NzDrawerComponent,
- NzDrawerContentDirective,
- NzDrawerModule,
- NzDrawerRef,
- NzDrawerService
-};
-//# sourceMappingURL=ng-zorro-antd_drawer.js.map
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_drawer.js.map b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_drawer.js.map
deleted file mode 100644
index 43c37f7..0000000
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_drawer.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../../../../../node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-drawer.mjs"],
- "sourcesContent": ["import * as i0 from '@angular/core';\nimport { Directive, InjectionToken, TemplateRef, EventEmitter, Type, Injector, Component, ChangeDetectionStrategy, Optional, Inject, Input, Output, ViewChild, ContentChild, Injectable, NgModule } from '@angular/core';\nimport { __decorate } from 'tslib';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport * as i2 from '@angular/cdk/overlay';\nimport { OverlayConfig } from '@angular/cdk/overlay';\nimport * as i7 from '@angular/cdk/portal';\nimport { ComponentPortal, TemplatePortal, CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i1 from 'ng-zorro-antd/core/config';\nimport { WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport * as i5 from 'ng-zorro-antd/core/outlet';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { toCssPixel, InputBoolean } from 'ng-zorro-antd/core/util';\nimport * as i6 from 'ng-zorro-antd/icon';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport * as i3 from '@angular/cdk/a11y';\nimport * as i4 from '@angular/cdk/bidi';\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 _c0 = [\"drawerTemplate\"];\nfunction NzDrawerComponent_ng_template_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 11);\n i0.ɵɵlistener(\"click\", function NzDrawerComponent_ng_template_0_div_1_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r9 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r9.maskClick());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngStyle\", ctx_r2.nzMaskStyle);\n }\n}\nfunction NzDrawerComponent_ng_template_0_div_5_button_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"span\", 19);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const closeIcon_r15 = ctx.$implicit;\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"nzType\", closeIcon_r15);\n }\n}\nfunction NzDrawerComponent_ng_template_0_div_5_button_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r17 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 17);\n i0.ɵɵlistener(\"click\", function NzDrawerComponent_ng_template_0_div_5_button_2_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r17);\n const ctx_r16 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r16.closeClick());\n });\n i0.ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_5_button_2_ng_container_1_Template, 2, 1, \"ng-container\", 18);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r11 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"nzStringTemplateOutlet\", ctx_r11.nzCloseIcon);\n }\n}\nfunction NzDrawerComponent_ng_template_0_div_5_div_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"div\", 21);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r18 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"innerHTML\", ctx_r18.nzTitle, i0.ɵɵsanitizeHtml);\n }\n}\nfunction NzDrawerComponent_ng_template_0_div_5_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 20);\n i0.ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_5_div_3_ng_container_1_Template, 2, 1, \"ng-container\", 18);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r12 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"nzStringTemplateOutlet\", ctx_r12.nzTitle);\n }\n}\nfunction NzDrawerComponent_ng_template_0_div_5_div_4_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"div\", 21);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r19 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"innerHTML\", ctx_r19.nzExtra, i0.ɵɵsanitizeHtml);\n }\n}\nfunction NzDrawerComponent_ng_template_0_div_5_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 22);\n i0.ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_5_div_4_ng_container_1_Template, 2, 1, \"ng-container\", 18);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r13 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"nzStringTemplateOutlet\", ctx_r13.nzExtra);\n }\n}\nfunction NzDrawerComponent_ng_template_0_div_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 12)(1, \"div\", 13);\n i0.ɵɵtemplate(2, NzDrawerComponent_ng_template_0_div_5_button_2_Template, 2, 1, \"button\", 14)(3, NzDrawerComponent_ng_template_0_div_5_div_3_Template, 2, 1, \"div\", 15);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, NzDrawerComponent_ng_template_0_div_5_div_4_Template, 2, 1, \"div\", 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"ant-drawer-header-close-only\", !ctx_r3.nzTitle);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r3.nzClosable);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r3.nzTitle);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r3.nzExtra);\n }\n}\nfunction NzDrawerComponent_ng_template_0_ng_template_7_Template(rf, ctx) {}\nfunction NzDrawerComponent_ng_template_0_ng_container_8_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction NzDrawerComponent_ng_template_0_ng_container_8_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, NzDrawerComponent_ng_template_0_ng_container_8_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 24);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r20 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r20.nzContent)(\"ngTemplateOutletContext\", ctx_r20.templateContext);\n }\n}\nfunction NzDrawerComponent_ng_template_0_ng_container_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, NzDrawerComponent_ng_template_0_ng_container_8_ng_container_1_Template, 2, 2, \"ng-container\", 23);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r5.isTemplateRef(ctx_r5.nzContent));\n }\n}\nfunction NzDrawerComponent_ng_template_0_ng_template_9_ng_container_0_ng_template_1_Template(rf, ctx) {}\nfunction NzDrawerComponent_ng_template_0_ng_template_9_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, NzDrawerComponent_ng_template_0_ng_template_9_ng_container_0_ng_template_1_Template, 0, 0, \"ng-template\", 25);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r22 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r22.contentFromContentChild);\n }\n}\nfunction NzDrawerComponent_ng_template_0_ng_template_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NzDrawerComponent_ng_template_0_ng_template_9_ng_container_0_Template, 2, 1, \"ng-container\", 23);\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r6.contentFromContentChild && (ctx_r6.isOpen || ctx_r6.inAnimation));\n }\n}\nfunction NzDrawerComponent_ng_template_0_div_11_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"div\", 21);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r24 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"innerHTML\", ctx_r24.nzFooter, i0.ɵɵsanitizeHtml);\n }\n}\nfunction NzDrawerComponent_ng_template_0_div_11_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 26);\n i0.ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_11_ng_container_1_Template, 2, 1, \"ng-container\", 18);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r8 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"nzStringTemplateOutlet\", ctx_r8.nzFooter);\n }\n}\nfunction NzDrawerComponent_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtemplate(1, NzDrawerComponent_ng_template_0_div_1_Template, 1, 1, \"div\", 2);\n i0.ɵɵelementStart(2, \"div\")(3, \"div\", 3)(4, \"div\", 4);\n i0.ɵɵtemplate(5, NzDrawerComponent_ng_template_0_div_5_Template, 5, 5, \"div\", 5);\n i0.ɵɵelementStart(6, \"div\", 6);\n i0.ɵɵtemplate(7, NzDrawerComponent_ng_template_0_ng_template_7_Template, 0, 0, \"ng-template\", 7)(8, NzDrawerComponent_ng_template_0_ng_container_8_Template, 2, 1, \"ng-container\", 8)(9, NzDrawerComponent_ng_template_0_ng_template_9_Template, 1, 1, \"ng-template\", null, 9, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(11, NzDrawerComponent_ng_template_0_div_11_Template, 2, 1, \"div\", 10);\n i0.ɵɵelementEnd()()()();\n }\n if (rf & 2) {\n const _r7 = i0.ɵɵreference(10);\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"transform\", ctx_r0.offsetTransform)(\"transition\", ctx_r0.placementChanging ? \"none\" : null)(\"z-index\", ctx_r0.nzZIndex);\n i0.ɵɵclassProp(\"ant-drawer-rtl\", ctx_r0.dir === \"rtl\")(\"ant-drawer-open\", ctx_r0.isOpen)(\"no-mask\", !ctx_r0.nzMask)(\"ant-drawer-top\", ctx_r0.nzPlacement === \"top\")(\"ant-drawer-bottom\", ctx_r0.nzPlacement === \"bottom\")(\"ant-drawer-right\", ctx_r0.nzPlacement === \"right\")(\"ant-drawer-left\", ctx_r0.nzPlacement === \"left\");\n i0.ɵɵproperty(\"nzNoAnimation\", ctx_r0.nzNoAnimation);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.nzMask);\n i0.ɵɵadvance(1);\n i0.ɵɵclassMapInterpolate1(\"ant-drawer-content-wrapper \", ctx_r0.nzWrapClassName, \"\");\n i0.ɵɵstyleProp(\"width\", ctx_r0.width)(\"height\", ctx_r0.height)(\"transform\", ctx_r0.transform)(\"transition\", ctx_r0.placementChanging ? \"none\" : null);\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"height\", ctx_r0.isLeftOrRight ? \"100%\" : null);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.nzTitle || ctx_r0.nzClosable);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngStyle\", ctx_r0.nzBodyStyle);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.nzContent)(\"ngIfElse\", _r7);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.nzFooter);\n }\n}\nclass NzDrawerContentDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n static {\n this.ɵfac = function NzDrawerContentDirective_Factory(t) {\n return new (t || NzDrawerContentDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NzDrawerContentDirective,\n selectors: [[\"\", \"nzDrawerContent\", \"\"]],\n exportAs: [\"nzDrawerContent\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDrawerContentDirective, [{\n type: Directive,\n args: [{\n selector: '[nzDrawerContent]',\n exportAs: 'nzDrawerContent',\n standalone: true\n }]\n }], () => [{\n type: i0.TemplateRef\n }], null);\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 DRAWER_DEFAULT_SIZE = 378;\nconst DRAWER_LARGE_SIZE = 736;\nconst NZ_DRAWER_DATA = new InjectionToken('NZ_DRAWER_DATA');\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 NzDrawerRef {}\nconst DRAWER_ANIMATE_DURATION = 300;\nconst NZ_CONFIG_MODULE_NAME = 'drawer';\nclass NzDrawerComponent extends NzDrawerRef {\n set nzVisible(value) {\n this.isOpen = value;\n }\n get nzVisible() {\n return this.isOpen;\n }\n get offsetTransform() {\n if (!this.isOpen || this.nzOffsetX + this.nzOffsetY === 0) {\n return null;\n }\n switch (this.nzPlacement) {\n case 'left':\n return `translateX(${this.nzOffsetX}px)`;\n case 'right':\n return `translateX(-${this.nzOffsetX}px)`;\n case 'top':\n return `translateY(${this.nzOffsetY}px)`;\n case 'bottom':\n return `translateY(-${this.nzOffsetY}px)`;\n }\n }\n get transform() {\n if (this.isOpen) {\n return null;\n }\n switch (this.nzPlacement) {\n case 'left':\n return `translateX(-100%)`;\n case 'right':\n return `translateX(100%)`;\n case 'top':\n return `translateY(-100%)`;\n case 'bottom':\n return `translateY(100%)`;\n }\n }\n get width() {\n if (this.isLeftOrRight) {\n const defaultWidth = this.nzSize === 'large' ? DRAWER_LARGE_SIZE : DRAWER_DEFAULT_SIZE;\n return this.nzWidth === undefined ? toCssPixel(defaultWidth) : toCssPixel(this.nzWidth);\n }\n return null;\n }\n get height() {\n if (!this.isLeftOrRight) {\n const defaultHeight = this.nzSize === 'large' ? DRAWER_LARGE_SIZE : DRAWER_DEFAULT_SIZE;\n return this.nzHeight === undefined ? toCssPixel(defaultHeight) : toCssPixel(this.nzHeight);\n }\n return null;\n }\n get isLeftOrRight() {\n return this.nzPlacement === 'left' || this.nzPlacement === 'right';\n }\n get afterOpen() {\n return this.nzAfterOpen.asObservable();\n }\n get afterClose() {\n return this.nzAfterClose.asObservable();\n }\n isTemplateRef(value) {\n return value instanceof TemplateRef;\n }\n constructor(cdr,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n document, nzConfigService, renderer, overlay, injector, changeDetectorRef, focusTrapFactory, viewContainerRef, overlayKeyboardDispatcher, directionality) {\n super();\n this.cdr = cdr;\n this.document = document;\n this.nzConfigService = nzConfigService;\n this.renderer = renderer;\n this.overlay = overlay;\n this.injector = injector;\n this.changeDetectorRef = changeDetectorRef;\n this.focusTrapFactory = focusTrapFactory;\n this.viewContainerRef = viewContainerRef;\n this.overlayKeyboardDispatcher = overlayKeyboardDispatcher;\n this.directionality = directionality;\n this._nzModuleName = NZ_CONFIG_MODULE_NAME;\n this.nzCloseIcon = 'close';\n this.nzClosable = true;\n this.nzMaskClosable = true;\n this.nzMask = true;\n this.nzCloseOnNavigation = true;\n this.nzNoAnimation = false;\n this.nzKeyboard = true;\n this.nzPlacement = 'right';\n this.nzSize = 'default';\n this.nzMaskStyle = {};\n this.nzBodyStyle = {};\n this.nzZIndex = 1000;\n this.nzOffsetX = 0;\n this.nzOffsetY = 0;\n this.componentInstance = null;\n this.nzOnViewInit = new EventEmitter();\n this.nzOnClose = new EventEmitter();\n this.nzVisibleChange = new EventEmitter();\n this.destroy$ = new Subject();\n this.placementChanging = false;\n this.placementChangeTimeoutId = -1;\n this.isOpen = false;\n this.inAnimation = false;\n this.templateContext = {\n $implicit: undefined,\n drawerRef: this\n };\n this.nzAfterOpen = new Subject();\n this.nzAfterClose = new Subject();\n // from service config\n this.nzDirection = undefined;\n this.dir = 'ltr';\n }\n ngOnInit() {\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n this.dir = this.nzDirection || this.directionality.value;\n this.attachOverlay();\n this.updateOverlayStyle();\n this.updateBodyOverflow();\n this.templateContext = {\n $implicit: this.nzData || this.nzContentParams,\n drawerRef: this\n };\n this.changeDetectorRef.detectChanges();\n }\n ngAfterViewInit() {\n this.attachBodyContent();\n // The `setTimeout` triggers change detection. There's no sense to schedule the DOM timer if anyone is\n // listening to the `nzOnViewInit` event inside the template, for instance ``.\n if (this.nzOnViewInit.observers.length) {\n setTimeout(() => {\n this.nzOnViewInit.emit();\n });\n }\n }\n ngOnChanges(changes) {\n const {\n nzPlacement,\n nzVisible\n } = changes;\n if (nzVisible) {\n const value = changes.nzVisible.currentValue;\n if (value) {\n this.open();\n } else {\n this.close();\n }\n }\n if (nzPlacement && !nzPlacement.isFirstChange()) {\n this.triggerPlacementChangeCycleOnce();\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n clearTimeout(this.placementChangeTimeoutId);\n this.disposeOverlay();\n }\n getAnimationDuration() {\n return this.nzNoAnimation ? 0 : DRAWER_ANIMATE_DURATION;\n }\n // Disable the transition animation temporarily when the placement changing\n triggerPlacementChangeCycleOnce() {\n if (!this.nzNoAnimation) {\n this.placementChanging = true;\n this.changeDetectorRef.markForCheck();\n clearTimeout(this.placementChangeTimeoutId);\n this.placementChangeTimeoutId = setTimeout(() => {\n this.placementChanging = false;\n this.changeDetectorRef.markForCheck();\n }, this.getAnimationDuration());\n }\n }\n close(result) {\n this.isOpen = false;\n this.inAnimation = true;\n this.nzVisibleChange.emit(false);\n this.updateOverlayStyle();\n this.overlayKeyboardDispatcher.remove(this.overlayRef);\n this.changeDetectorRef.detectChanges();\n setTimeout(() => {\n this.updateBodyOverflow();\n this.restoreFocus();\n this.inAnimation = false;\n this.nzAfterClose.next(result);\n this.nzAfterClose.complete();\n this.componentInstance = null;\n }, this.getAnimationDuration());\n }\n open() {\n this.attachOverlay();\n this.isOpen = true;\n this.inAnimation = true;\n this.nzVisibleChange.emit(true);\n this.overlayKeyboardDispatcher.add(this.overlayRef);\n this.updateOverlayStyle();\n this.updateBodyOverflow();\n this.savePreviouslyFocusedElement();\n this.trapFocus();\n this.changeDetectorRef.detectChanges();\n setTimeout(() => {\n this.inAnimation = false;\n this.changeDetectorRef.detectChanges();\n this.nzAfterOpen.next();\n }, this.getAnimationDuration());\n }\n getContentComponent() {\n return this.componentInstance;\n }\n closeClick() {\n this.nzOnClose.emit();\n }\n maskClick() {\n if (this.nzMaskClosable && this.nzMask) {\n this.nzOnClose.emit();\n }\n }\n attachBodyContent() {\n this.bodyPortalOutlet.dispose();\n if (this.nzContent instanceof Type) {\n const childInjector = Injector.create({\n parent: this.injector,\n providers: [{\n provide: NzDrawerRef,\n useValue: this\n }, {\n provide: NZ_DRAWER_DATA,\n useValue: this.nzData\n }]\n });\n const componentPortal = new ComponentPortal(this.nzContent, null, childInjector);\n const componentRef = this.bodyPortalOutlet.attachComponentPortal(componentPortal);\n this.componentInstance = componentRef.instance;\n /**TODO\n * When nzContentParam will be remove in the next major version, we have to remove the following line\n * **/\n Object.assign(componentRef.instance, this.nzData || this.nzContentParams);\n componentRef.changeDetectorRef.detectChanges();\n }\n }\n attachOverlay() {\n if (!this.overlayRef) {\n this.portal = new TemplatePortal(this.drawerTemplate, this.viewContainerRef);\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n }\n if (this.overlayRef && !this.overlayRef.hasAttached()) {\n this.overlayRef.attach(this.portal);\n this.overlayRef.keydownEvents().pipe(takeUntil(this.destroy$)).subscribe(event => {\n if (event.keyCode === ESCAPE && this.isOpen && this.nzKeyboard) {\n this.nzOnClose.emit();\n }\n });\n this.overlayRef.detachments().pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.disposeOverlay();\n });\n }\n }\n disposeOverlay() {\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n getOverlayConfig() {\n return new OverlayConfig({\n disposeOnNavigation: this.nzCloseOnNavigation,\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n }\n updateOverlayStyle() {\n if (this.overlayRef && this.overlayRef.overlayElement) {\n this.renderer.setStyle(this.overlayRef.overlayElement, 'pointer-events', this.isOpen ? 'auto' : 'none');\n }\n }\n updateBodyOverflow() {\n if (this.overlayRef) {\n if (this.isOpen) {\n this.overlayRef.getConfig().scrollStrategy.enable();\n } else {\n this.overlayRef.getConfig().scrollStrategy.disable();\n }\n }\n }\n savePreviouslyFocusedElement() {\n if (this.document && !this.previouslyFocusedElement) {\n this.previouslyFocusedElement = this.document.activeElement;\n // We need the extra check, because IE's svg element has no blur method.\n if (this.previouslyFocusedElement && typeof this.previouslyFocusedElement.blur === 'function') {\n this.previouslyFocusedElement.blur();\n }\n }\n }\n trapFocus() {\n if (!this.focusTrap && this.overlayRef && this.overlayRef.overlayElement) {\n this.focusTrap = this.focusTrapFactory.create(this.overlayRef.overlayElement);\n this.focusTrap.focusInitialElement();\n }\n }\n restoreFocus() {\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this.previouslyFocusedElement && typeof this.previouslyFocusedElement.focus === 'function') {\n this.previouslyFocusedElement.focus();\n }\n if (this.focusTrap) {\n this.focusTrap.destroy();\n }\n }\n static {\n this.ɵfac = function NzDrawerComponent_Factory(t) {\n return new (t || NzDrawerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(i1.NzConfigService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i2.Overlay), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.FocusTrapFactory), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.OverlayKeyboardDispatcher), i0.ɵɵdirectiveInject(i4.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzDrawerComponent,\n selectors: [[\"nz-drawer\"]],\n contentQueries: function NzDrawerComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NzDrawerContentDirective, 7, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentFromContentChild = _t.first);\n }\n },\n viewQuery: function NzDrawerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n i0.ɵɵviewQuery(CdkPortalOutlet, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.drawerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.bodyPortalOutlet = _t.first);\n }\n },\n inputs: {\n nzContent: \"nzContent\",\n nzCloseIcon: \"nzCloseIcon\",\n nzClosable: \"nzClosable\",\n nzMaskClosable: \"nzMaskClosable\",\n nzMask: \"nzMask\",\n nzCloseOnNavigation: \"nzCloseOnNavigation\",\n nzNoAnimation: \"nzNoAnimation\",\n nzKeyboard: \"nzKeyboard\",\n nzTitle: \"nzTitle\",\n nzExtra: \"nzExtra\",\n nzFooter: \"nzFooter\",\n nzPlacement: \"nzPlacement\",\n nzSize: \"nzSize\",\n nzMaskStyle: \"nzMaskStyle\",\n nzBodyStyle: \"nzBodyStyle\",\n nzWrapClassName: \"nzWrapClassName\",\n nzWidth: \"nzWidth\",\n nzHeight: \"nzHeight\",\n nzZIndex: \"nzZIndex\",\n nzOffsetX: \"nzOffsetX\",\n nzOffsetY: \"nzOffsetY\",\n nzVisible: \"nzVisible\"\n },\n outputs: {\n nzOnViewInit: \"nzOnViewInit\",\n nzOnClose: \"nzOnClose\",\n nzVisibleChange: \"nzVisibleChange\"\n },\n exportAs: [\"nzDrawer\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 0,\n consts: [[\"drawerTemplate\", \"\"], [1, \"ant-drawer\", 3, \"nzNoAnimation\"], [\"class\", \"ant-drawer-mask\", 3, \"ngStyle\", \"click\", 4, \"ngIf\"], [1, \"ant-drawer-content\"], [1, \"ant-drawer-wrapper-body\"], [\"class\", \"ant-drawer-header\", 3, \"ant-drawer-header-close-only\", 4, \"ngIf\"], [1, \"ant-drawer-body\", 3, \"ngStyle\"], [\"cdkPortalOutlet\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [\"contentElseTemp\", \"\"], [\"class\", \"ant-drawer-footer\", 4, \"ngIf\"], [1, \"ant-drawer-mask\", 3, \"ngStyle\", \"click\"], [1, \"ant-drawer-header\"], [1, \"ant-drawer-header-title\"], [\"aria-label\", \"Close\", \"class\", \"ant-drawer-close\", \"style\", \"--scroll-bar: 0px;\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"ant-drawer-title\", 4, \"ngIf\"], [\"class\", \"ant-drawer-extra\", 4, \"ngIf\"], [\"aria-label\", \"Close\", 1, \"ant-drawer-close\", 2, \"--scroll-bar\", \"0px\", 3, \"click\"], [4, \"nzStringTemplateOutlet\"], [\"nz-icon\", \"\", 3, \"nzType\"], [1, \"ant-drawer-title\"], [3, \"innerHTML\"], [1, \"ant-drawer-extra\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"ngTemplateOutlet\"], [1, \"ant-drawer-footer\"]],\n template: function NzDrawerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NzDrawerComponent_ng_template_0_Template, 12, 40, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [NzNoAnimationDirective, NgIf, NgStyle, NzOutletModule, i5.NzStringTemplateOutletDirective, NzIconModule, i6.NzIconDirective, PortalModule, i7.CdkPortalOutlet, NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n__decorate([InputBoolean()], NzDrawerComponent.prototype, \"nzClosable\", void 0);\n__decorate([WithConfig(), InputBoolean()], NzDrawerComponent.prototype, \"nzMaskClosable\", void 0);\n__decorate([WithConfig(), InputBoolean()], NzDrawerComponent.prototype, \"nzMask\", void 0);\n__decorate([WithConfig(), InputBoolean()], NzDrawerComponent.prototype, \"nzCloseOnNavigation\", void 0);\n__decorate([InputBoolean()], NzDrawerComponent.prototype, \"nzNoAnimation\", void 0);\n__decorate([InputBoolean()], NzDrawerComponent.prototype, \"nzKeyboard\", void 0);\n__decorate([WithConfig()], NzDrawerComponent.prototype, \"nzDirection\", void 0);\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDrawerComponent, [{\n type: Component,\n args: [{\n selector: 'nz-drawer',\n exportAs: 'nzDrawer',\n template: `\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n \n `,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NzNoAnimationDirective, NgIf, NgStyle, NzOutletModule, NzIconModule, PortalModule, NgTemplateOutlet],\n standalone: true\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1.NzConfigService\n }, {\n type: i0.Renderer2\n }, {\n type: i2.Overlay\n }, {\n type: i0.Injector\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i3.FocusTrapFactory\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i2.OverlayKeyboardDispatcher\n }, {\n type: i4.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n nzContent: [{\n type: Input\n }],\n nzCloseIcon: [{\n type: Input\n }],\n nzClosable: [{\n type: Input\n }],\n nzMaskClosable: [{\n type: Input\n }],\n nzMask: [{\n type: Input\n }],\n nzCloseOnNavigation: [{\n type: Input\n }],\n nzNoAnimation: [{\n type: Input\n }],\n nzKeyboard: [{\n type: Input\n }],\n nzTitle: [{\n type: Input\n }],\n nzExtra: [{\n type: Input\n }],\n nzFooter: [{\n type: Input\n }],\n nzPlacement: [{\n type: Input\n }],\n nzSize: [{\n type: Input\n }],\n nzMaskStyle: [{\n type: Input\n }],\n nzBodyStyle: [{\n type: Input\n }],\n nzWrapClassName: [{\n type: Input\n }],\n nzWidth: [{\n type: Input\n }],\n nzHeight: [{\n type: Input\n }],\n nzZIndex: [{\n type: Input\n }],\n nzOffsetX: [{\n type: Input\n }],\n nzOffsetY: [{\n type: Input\n }],\n nzVisible: [{\n type: Input\n }],\n nzOnViewInit: [{\n type: Output\n }],\n nzOnClose: [{\n type: Output\n }],\n nzVisibleChange: [{\n type: Output\n }],\n drawerTemplate: [{\n type: ViewChild,\n args: ['drawerTemplate', {\n static: true\n }]\n }],\n bodyPortalOutlet: [{\n type: ViewChild,\n args: [CdkPortalOutlet, {\n static: false\n }]\n }],\n contentFromContentChild: [{\n type: ContentChild,\n args: [NzDrawerContentDirective, {\n static: true,\n read: TemplateRef\n }]\n }],\n nzDirection: []\n });\n})();\nclass DrawerBuilderForService {\n constructor(overlay, options) {\n this.overlay = overlay;\n this.options = options;\n this.unsubscribe$ = new Subject();\n /** pick {@link NzDrawerOptions.nzOnCancel} and omit this option */\n const {\n nzOnCancel,\n ...componentOption\n } = this.options;\n this.overlayRef = this.overlay.create();\n this.drawerRef = this.overlayRef.attach(new ComponentPortal(NzDrawerComponent)).instance;\n this.updateOptions(componentOption);\n // Prevent repeatedly open drawer when tap focus element.\n this.drawerRef.savePreviouslyFocusedElement();\n this.drawerRef.nzOnViewInit.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n this.drawerRef.open();\n });\n this.drawerRef.nzOnClose.subscribe(() => {\n if (nzOnCancel) {\n nzOnCancel().then(canClose => {\n if (canClose !== false) {\n this.drawerRef.close();\n }\n });\n } else {\n this.drawerRef.close();\n }\n });\n this.drawerRef.afterClose.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n this.overlayRef.dispose();\n this.drawerRef = null;\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n });\n }\n getInstance() {\n return this.drawerRef;\n }\n updateOptions(options) {\n Object.assign(this.drawerRef, options);\n }\n}\nclass NzDrawerService {\n constructor(overlay) {\n this.overlay = overlay;\n }\n create(options) {\n return new DrawerBuilderForService(this.overlay, options).getInstance();\n }\n static {\n this.ɵfac = function NzDrawerService_Factory(t) {\n return new (t || NzDrawerService)(i0.ɵɵinject(i2.Overlay));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NzDrawerService,\n factory: NzDrawerService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDrawerService, [{\n type: Injectable\n }], () => [{\n type: i2.Overlay\n }], null);\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 NzDrawerModule {\n static {\n this.ɵfac = function NzDrawerModule_Factory(t) {\n return new (t || NzDrawerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzDrawerModule,\n imports: [NzDrawerComponent, NzDrawerContentDirective],\n exports: [NzDrawerComponent, NzDrawerContentDirective]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [NzDrawerService],\n imports: [NzDrawerComponent]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NzDrawerModule, [{\n type: NgModule,\n args: [{\n imports: [NzDrawerComponent, NzDrawerContentDirective],\n providers: [NzDrawerService],\n exports: [NzDrawerComponent, NzDrawerContentDirective]\n }]\n }], null, null);\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 { DRAWER_ANIMATE_DURATION, DRAWER_DEFAULT_SIZE, DRAWER_LARGE_SIZE, DrawerBuilderForService, NZ_DRAWER_DATA, NzDrawerComponent, NzDrawerContentDirective, NzDrawerModule, NzDrawerRef, NzDrawerService };\n"],
- "mappings": "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",
- "names": []
-}
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_form.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_form.js
index 84d084f..8fc8bc3 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_form.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_form.js
@@ -1,51 +1,51 @@
import {
- NzTooltipDirective
-} from "./chunk-5MZJ5XYV.js";
-import "./chunk-6RXUTAFR.js";
+ NzI18nService
+} from "./chunk-VMSZ6GWB.js";
import {
- NzGridModule
-} from "./chunk-QP2OUFNR.js";
+ NzTooltipDirective
+} from "./chunk-C33RY4ER.js";
import {
NzFormStatusService
-} from "./chunk-FGZVIKKA.js";
+} from "./chunk-5AGOG3VI.js";
import {
- NzI18nService
-} from "./chunk-T745QDCV.js";
+ NzGridModule
+} from "./chunk-4OID6NLN.js";
+import {
+ AbstractControl,
+ FormControlDirective,
+ FormControlName,
+ NgControl,
+ NgModel
+} from "./chunk-D4IIJHV7.js";
+import "./chunk-K4MSLGWI.js";
+import "./chunk-NOHVXVKW.js";
+import "./chunk-XDMUMVNQ.js";
import {
helpMotion
-} from "./chunk-XAGDQPFO.js";
-import "./chunk-D5ODNR6D.js";
-import "./chunk-55A2ZGND.js";
-import "./chunk-6U656R5M.js";
+} from "./chunk-RJWK6JFA.js";
import {
NzOutletModule,
NzStringTemplateOutletDirective
} from "./chunk-VOD2PKZN.js";
import "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
+import "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
import {
- AbstractControl,
- FormControlDirective,
- FormControlName,
- NgControl,
- NgModel
-} from "./chunk-D4IIJHV7.js";
+ Directionality
+} from "./chunk-6NZ2BEBG.js";
import {
NzIconDirective,
NzIconModule
-} from "./chunk-VWMHIMW7.js";
+} from "./chunk-G327EOBL.js";
import {
NzConfigService,
WithConfig
-} from "./chunk-ZHMJ6SNN.js";
-import {
- Directionality
-} from "./chunk-6NZ2BEBG.js";
+} from "./chunk-DASIIA63.js";
import "./chunk-IAC53GOD.js";
import {
InputBoolean,
toBoolean
-} from "./chunk-M5GY4FCO.js";
+} from "./chunk-SATQCK6M.js";
import "./chunk-ECVKT3ZH.js";
import "./chunk-KI2JSLP6.js";
import "./chunk-Y4CEYMY2.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_grid.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_grid.js
index 80d0ded..bfc7ba9 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_grid.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_grid.js
@@ -2,12 +2,12 @@ import {
NzColDirective,
NzGridModule,
NzRowDirective
-} from "./chunk-QP2OUFNR.js";
-import "./chunk-D5ODNR6D.js";
-import "./chunk-WB57DPWD.js";
+} from "./chunk-4OID6NLN.js";
+import "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
import "./chunk-6NZ2BEBG.js";
import "./chunk-IAC53GOD.js";
-import "./chunk-M5GY4FCO.js";
+import "./chunk-SATQCK6M.js";
import "./chunk-OSQBUYO6.js";
import "./chunk-FGESKT7O.js";
import "./chunk-HSNDBVJ3.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_i18n.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_i18n.js
index aae6636..4301bb0 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_i18n.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_i18n.js
@@ -77,8 +77,8 @@ import {
zh_CN,
zh_HK,
zh_TW
-} from "./chunk-T745QDCV.js";
-import "./chunk-M5GY4FCO.js";
+} from "./chunk-VMSZ6GWB.js";
+import "./chunk-SATQCK6M.js";
import "./chunk-OSQBUYO6.js";
import "./chunk-FGESKT7O.js";
import "./chunk-HSNDBVJ3.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_icon.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_icon.js
index e45b622..fd0c78f 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_icon.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_icon.js
@@ -8,10 +8,10 @@ import {
NzIconModule,
NzIconPatchService,
NzIconService
-} from "./chunk-VWMHIMW7.js";
-import "./chunk-ZHMJ6SNN.js";
+} from "./chunk-G327EOBL.js";
+import "./chunk-DASIIA63.js";
import "./chunk-IAC53GOD.js";
-import "./chunk-M5GY4FCO.js";
+import "./chunk-SATQCK6M.js";
import "./chunk-Y4CEYMY2.js";
import "./chunk-X7WBA24Z.js";
import "./chunk-OSQBUYO6.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_input.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_input.js
index 3bb0b08..2329cc5 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_input.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_input.js
@@ -1,32 +1,32 @@
+import {
+ FocusMonitor
+} from "./chunk-EISFVYMQ.js";
import {
NzFormItemFeedbackIconComponent,
NzFormNoStatusService,
NzFormPatchModule,
NzFormStatusService
-} from "./chunk-FGZVIKKA.js";
-import {
- NzResizeService
-} from "./chunk-D5ODNR6D.js";
+} from "./chunk-5AGOG3VI.js";
import {
- FocusMonitor
-} from "./chunk-E6XJDY45.js";
+ NgControl
+} from "./chunk-D4IIJHV7.js";
import {
NzOutletModule,
NzStringTemplateOutletDirective
} from "./chunk-VOD2PKZN.js";
import "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
-import {
- NgControl
-} from "./chunk-D4IIJHV7.js";
import {
- NzIconDirective,
- NzIconModule
-} from "./chunk-VWMHIMW7.js";
-import "./chunk-ZHMJ6SNN.js";
+ NzResizeService
+} from "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
import {
Directionality
} from "./chunk-6NZ2BEBG.js";
+import {
+ NzIconDirective,
+ NzIconModule
+} from "./chunk-G327EOBL.js";
+import "./chunk-DASIIA63.js";
import {
Platform
} from "./chunk-IAC53GOD.js";
@@ -34,7 +34,7 @@ import {
InputBoolean,
getStatusClassNames,
isNotNil
-} from "./chunk-M5GY4FCO.js";
+} from "./chunk-SATQCK6M.js";
import "./chunk-Y4CEYMY2.js";
import "./chunk-X7WBA24Z.js";
import {
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_layout.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_layout.js
index e530e70..7ca5c57 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_layout.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_layout.js
@@ -1,26 +1,26 @@
import {
NzMenuDirective
-} from "./chunk-WKTPWT5U.js";
+} from "./chunk-YGBKDI43.js";
import "./chunk-CZEXXPIB.js";
-import "./chunk-6RXUTAFR.js";
-import "./chunk-XAGDQPFO.js";
-import {
- NzBreakpointService,
- siderResponsiveMap
-} from "./chunk-D5ODNR6D.js";
-import "./chunk-55A2ZGND.js";
-import "./chunk-6U656R5M.js";
+import "./chunk-K4MSLGWI.js";
+import "./chunk-NOHVXVKW.js";
+import "./chunk-XDMUMVNQ.js";
+import "./chunk-RJWK6JFA.js";
import "./chunk-VOD2PKZN.js";
import "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
import {
- NzIconDirective,
- NzIconModule
-} from "./chunk-VWMHIMW7.js";
-import "./chunk-ZHMJ6SNN.js";
+ NzBreakpointService,
+ siderResponsiveMap
+} from "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
import {
Directionality
} from "./chunk-6NZ2BEBG.js";
+import {
+ NzIconDirective,
+ NzIconModule
+} from "./chunk-G327EOBL.js";
+import "./chunk-DASIIA63.js";
import {
Platform
} from "./chunk-IAC53GOD.js";
@@ -28,7 +28,7 @@ import {
InputBoolean,
inNextTick,
toCssPixel
-} from "./chunk-M5GY4FCO.js";
+} from "./chunk-SATQCK6M.js";
import "./chunk-ECVKT3ZH.js";
import "./chunk-KI2JSLP6.js";
import "./chunk-Y4CEYMY2.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_menu.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_menu.js
index 32ae177..a13df18 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_menu.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_menu.js
@@ -15,21 +15,21 @@ import {
NzSubmenuInlineChildComponent,
NzSubmenuNoneInlineChildComponent,
NzSubmenuService
-} from "./chunk-WKTPWT5U.js";
+} from "./chunk-YGBKDI43.js";
import "./chunk-CZEXXPIB.js";
-import "./chunk-6RXUTAFR.js";
-import "./chunk-XAGDQPFO.js";
-import "./chunk-D5ODNR6D.js";
-import "./chunk-55A2ZGND.js";
-import "./chunk-6U656R5M.js";
+import "./chunk-K4MSLGWI.js";
+import "./chunk-NOHVXVKW.js";
+import "./chunk-XDMUMVNQ.js";
+import "./chunk-RJWK6JFA.js";
import "./chunk-VOD2PKZN.js";
import "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
-import "./chunk-VWMHIMW7.js";
-import "./chunk-ZHMJ6SNN.js";
+import "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
import "./chunk-6NZ2BEBG.js";
+import "./chunk-G327EOBL.js";
+import "./chunk-DASIIA63.js";
import "./chunk-IAC53GOD.js";
-import "./chunk-M5GY4FCO.js";
+import "./chunk-SATQCK6M.js";
import "./chunk-ECVKT3ZH.js";
import "./chunk-KI2JSLP6.js";
import "./chunk-Y4CEYMY2.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_message.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_message.js
index 7565067..1098118 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_message.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_message.js
@@ -1,31 +1,31 @@
-import {
- moveUpMotion
-} from "./chunk-XAGDQPFO.js";
-import {
- NzSingletonService
-} from "./chunk-D5ODNR6D.js";
import {
ComponentPortal,
Overlay
-} from "./chunk-6U656R5M.js";
+} from "./chunk-NOHVXVKW.js";
+import {
+ moveUpMotion
+} from "./chunk-RJWK6JFA.js";
import {
NzOutletModule,
NzStringTemplateOutletDirective
} from "./chunk-VOD2PKZN.js";
import "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
+import {
+ NzSingletonService
+} from "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
+import "./chunk-6NZ2BEBG.js";
import {
NzIconDirective,
NzIconModule
-} from "./chunk-VWMHIMW7.js";
+} from "./chunk-G327EOBL.js";
import {
NzConfigService
-} from "./chunk-ZHMJ6SNN.js";
-import "./chunk-6NZ2BEBG.js";
+} from "./chunk-DASIIA63.js";
import "./chunk-IAC53GOD.js";
import {
toCssPixel
-} from "./chunk-M5GY4FCO.js";
+} from "./chunk-SATQCK6M.js";
import "./chunk-KI2JSLP6.js";
import "./chunk-Y4CEYMY2.js";
import "./chunk-X7WBA24Z.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_slider.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_slider.js
index 506b6b8..71a54b0 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_slider.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_slider.js
@@ -1,12 +1,14 @@
import {
NzToolTipModule,
NzTooltipDirective
-} from "./chunk-5MZJ5XYV.js";
-import "./chunk-6RXUTAFR.js";
-import "./chunk-XAGDQPFO.js";
-import "./chunk-D5ODNR6D.js";
-import "./chunk-55A2ZGND.js";
-import "./chunk-6U656R5M.js";
+} from "./chunk-C33RY4ER.js";
+import {
+ NG_VALUE_ACCESSOR
+} from "./chunk-D4IIJHV7.js";
+import "./chunk-K4MSLGWI.js";
+import "./chunk-NOHVXVKW.js";
+import "./chunk-XDMUMVNQ.js";
+import "./chunk-RJWK6JFA.js";
import "./chunk-VOD2PKZN.js";
import {
DOWN_ARROW,
@@ -14,14 +16,12 @@ import {
RIGHT_ARROW,
UP_ARROW
} from "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
-import {
- NG_VALUE_ACCESSOR
-} from "./chunk-D4IIJHV7.js";
-import "./chunk-ZHMJ6SNN.js";
+import "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
import {
Directionality
} from "./chunk-6NZ2BEBG.js";
+import "./chunk-DASIIA63.js";
import {
Platform
} from "./chunk-IAC53GOD.js";
@@ -35,7 +35,7 @@ import {
getPrecision,
isNil,
silentEvent
-} from "./chunk-M5GY4FCO.js";
+} from "./chunk-SATQCK6M.js";
import "./chunk-ECVKT3ZH.js";
import "./chunk-KI2JSLP6.js";
import "./chunk-Y4CEYMY2.js";
diff --git a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_tabs.js b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_tabs.js
index e05a5fe..27d5069 100644
--- a/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_tabs.js
+++ b/.angular/cache/17.0.7/vite/deps/ng-zorro-antd_tabs.js
@@ -1,31 +1,29 @@
+import {
+ A11yModule,
+ CdkMonitorFocus,
+ FocusKeyManager
+} from "./chunk-EISFVYMQ.js";
import {
NzDropDownDirective,
NzDropdownMenuComponent
-} from "./chunk-2CQTWQUI.js";
+} from "./chunk-KUR2ZJJB.js";
import {
NzMenuDirective,
NzMenuItemComponent,
NzMenuModule
-} from "./chunk-WKTPWT5U.js";
+} from "./chunk-YGBKDI43.js";
+import "./chunk-RSMXCRFI.js";
import {
NavigationEnd,
Router,
RouterLink
} from "./chunk-CZEXXPIB.js";
-import "./chunk-6RXUTAFR.js";
-import "./chunk-XAGDQPFO.js";
-import {
- reqAnimFrame
-} from "./chunk-D5ODNR6D.js";
-import "./chunk-55A2ZGND.js";
-import {
- A11yModule,
- CdkMonitorFocus,
- FocusKeyManager
-} from "./chunk-E6XJDY45.js";
+import "./chunk-K4MSLGWI.js";
+import "./chunk-NOHVXVKW.js";
+import "./chunk-XDMUMVNQ.js";
import {
ViewportRuler
-} from "./chunk-6U656R5M.js";
+} from "./chunk-RJWK6JFA.js";
import {
NzOutletModule,
NzStringTemplateOutletDirective
@@ -39,19 +37,21 @@ import {
UP_ARROW,
hasModifierKey
} from "./chunk-JGP5BR6B.js";
-import "./chunk-WB57DPWD.js";
-import "./chunk-KMGBCF4T.js";
+import {
+ reqAnimFrame
+} from "./chunk-A7MWZ3GO.js";
+import "./chunk-Q646SFZH.js";
+import {
+ Directionality
+} from "./chunk-6NZ2BEBG.js";
import {
NzIconDirective,
NzIconModule
-} from "./chunk-VWMHIMW7.js";
+} from "./chunk-G327EOBL.js";
import {
NzConfigService,
WithConfig
-} from "./chunk-ZHMJ6SNN.js";
-import {
- Directionality
-} from "./chunk-6NZ2BEBG.js";
+} from "./chunk-DASIIA63.js";
import "./chunk-IAC53GOD.js";
import {
InputBoolean,
@@ -59,7 +59,7 @@ import {
coerceElement,
coerceNumberProperty,
wrapIntoObservable
-} from "./chunk-M5GY4FCO.js";
+} from "./chunk-SATQCK6M.js";
import "./chunk-ECVKT3ZH.js";
import "./chunk-KI2JSLP6.js";
import "./chunk-Y4CEYMY2.js";
diff --git a/.gitignore b/.gitignore
index 121a30d..e9aeeaf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,7 @@
.idea/
node_modules/
dist/
-
+.angular/
diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts
index 3899be3..72c50e4 100644
--- a/src/app/app.routes.ts
+++ b/src/app/app.routes.ts
@@ -16,6 +16,11 @@ export const routes: Routes = [
loadChildren: () => import('./pages/index/index.routes').then(m => m.INDEX_ROUTES),
canActivate: [InitGuardService]
},
+ {
+ path: 'system',
+ loadChildren: () => import('./pages/system/system.routes').then(m => m.SYSTEM_ROUTES),
+ canActivate: [InitGuardService]
+ },
]
}
];
diff --git a/src/app/pages/body/index/index.component.html b/src/app/pages/body/index/index.component.html
index 8dbb30a..fcf871f 100644
--- a/src/app/pages/body/index/index.component.html
+++ b/src/app/pages/body/index/index.component.html
@@ -1,22 +1,25 @@
-
-
+
普惠GO管理平台
-
+
+
+
-
col-8
+
+
-
+
+
-
+
+
+
diff --git a/src/app/pages/body/index/index.component.ts b/src/app/pages/body/index/index.component.ts
index 761e4a1..2b1627a 100644
--- a/src/app/pages/body/index/index.component.ts
+++ b/src/app/pages/body/index/index.component.ts
@@ -10,6 +10,8 @@ import {animate, state, style, transition, trigger} from "@angular/animations";
import {NzIconDirective} from "ng-zorro-antd/icon";
import {NzTabComponent, NzTabSetComponent} from "ng-zorro-antd/tabs";
import {TabComponent} from "../tab/tab.component";
+import {BrowserStorageService} from "../../../utils/localStorage.service";
+import {DATA} from "../../../data/login/localStorage.namespace";
@Component({
@@ -59,20 +61,34 @@ import {TabComponent} from "../tab/tab.component";
]
})
export class IndexComponent {
+ // 菜单数据
+ menuData: any = [{
+ 'menuName' : '首页',
+ 'selected' : true,
+ }];
+
+ // 左侧菜单栏数据
+ leftMenuData: any = [];
+
- // 首次导航数据
- firstMenuData = menuData;
// 侧边菜单展示开关
isCollapse = false;
- tabs = ['首页' , '商户管理'];
- constructor(
- ) {}
+ constructor(private storage: BrowserStorageService) {
+ this.menuData = this.menuData.concat(this.storage.get(DATA)['menuTree']);
+ console.log(this.menuData);
+ }
// 选择操作
isSelected(item: any) {
- this.isCollapse = true;
- this.firstMenuData.map(data => {
- data.selected = data.title === item.title;
+ this.menuData.map((data: any) => {
+ data.selected = data.menuName === item.menuName;
+ this.leftMenuData = data['childMenuList'];
+ console.log(this.leftMenuData);
});
+ if (item['menuName'] === '首页') {
+ this.isCollapse = false;
+ } else {
+ this.isCollapse = true;
+ }
}
}
diff --git a/src/app/pages/body/menu/menu.module.ts b/src/app/pages/body/menu/menu.module.ts
new file mode 100644
index 0000000..ff80347
--- /dev/null
+++ b/src/app/pages/body/menu/menu.module.ts
@@ -0,0 +1,12 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+
+@NgModule({
+ declarations: [],
+ imports: [
+ CommonModule
+ ]
+})
+export class MenuModule { }
diff --git a/src/app/pages/body/tab/tab.component.html b/src/app/pages/body/tab/tab.component.html
index 933dc96..1ba0c7f 100644
--- a/src/app/pages/body/tab/tab.component.html
+++ b/src/app/pages/body/tab/tab.component.html
@@ -1,7 +1,9 @@
+
-
+
+
diff --git a/src/app/pages/body/tab/tab.component.ts b/src/app/pages/body/tab/tab.component.ts
index 9fbaf58..0ac6177 100644
--- a/src/app/pages/body/tab/tab.component.ts
+++ b/src/app/pages/body/tab/tab.component.ts
@@ -16,5 +16,12 @@ import {RouterOutlet} from "@angular/router";
styleUrl: './tab.component.less'
})
export class TabComponent {
- tabs = ['首页' , '商户管理'];
+
+ menuTabs = ['首页'];
+
+ constructor() {
+ }
+
+
+
}
diff --git a/src/app/pages/index/index/index.component.html b/src/app/pages/index/index/index.component.html
index 0c002a1..470de32 100644
--- a/src/app/pages/index/index/index.component.html
+++ b/src/app/pages/index/index/index.component.html
@@ -1 +1 @@
-
+
diff --git a/src/app/pages/menu/menu.component.html b/src/app/pages/menu/menu.component.html
deleted file mode 100644
index 136889f..0000000
--- a/src/app/pages/menu/menu.component.html
+++ /dev/null
@@ -1 +0,0 @@
-menu works!
diff --git a/src/app/pages/menu/menu.component.spec.ts b/src/app/pages/menu/menu.component.spec.ts
deleted file mode 100644
index d475a1a..0000000
--- a/src/app/pages/menu/menu.component.spec.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { MenuComponent } from './menu.component';
-
-describe('MenuComponent', () => {
- let component: MenuComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- imports: [MenuComponent]
- })
- .compileComponents();
-
- fixture = TestBed.createComponent(MenuComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/src/app/pages/menu/menu.component.ts b/src/app/pages/menu/menu.component.ts
deleted file mode 100644
index c0308d6..0000000
--- a/src/app/pages/menu/menu.component.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Component } from '@angular/core';
-
-@Component({
- selector: 'app-menu',
- standalone: true,
- imports: [],
- templateUrl: './menu.component.html',
- styleUrl: './menu.component.less'
-})
-export class MenuComponent {
-
-}
diff --git a/src/app/pages/system/menu/menu.component.html b/src/app/pages/system/menu/menu.component.html
new file mode 100644
index 0000000..f63467b
--- /dev/null
+++ b/src/app/pages/system/menu/menu.component.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/src/app/pages/menu/menu.component.less b/src/app/pages/system/menu/menu.component.less
similarity index 100%
rename from src/app/pages/menu/menu.component.less
rename to src/app/pages/system/menu/menu.component.less
diff --git a/src/app/pages/system/menu/menu.component.ts b/src/app/pages/system/menu/menu.component.ts
new file mode 100644
index 0000000..71440ac
--- /dev/null
+++ b/src/app/pages/system/menu/menu.component.ts
@@ -0,0 +1,37 @@
+import { Component } from '@angular/core';
+import {NzTreeComponent} from "ng-zorro-antd/tree";
+import {NgIf} from "@angular/common";
+import {NzIconDirective} from "ng-zorro-antd/icon";
+import {NzDropdownMenuComponent} from "ng-zorro-antd/dropdown";
+import {MenuService} from "../../../servies/menu/menu.service";
+import {menuData} from "../../../data/menu/menu.namespace";
+
+@Component({
+ selector: 'app-menu',
+ standalone: true,
+ imports: [
+ NzTreeComponent,
+ NgIf,
+ NzIconDirective,
+ NzDropdownMenuComponent
+ ],
+ templateUrl: './menu.component.html',
+ styleUrl: './menu.component.less'
+})
+export class MenuComponent {
+
+ menuData = [];
+
+ constructor(private menuService: MenuService) {
+
+ }
+
+ queryMenu() {
+ this.menuService.queryRoleMenuTree('', (data: any) => {
+ this.menuData = data['return_data'];
+ console.log(data)
+ });
+ }
+
+
+}
diff --git a/src/app/pages/system/system.module.ts b/src/app/pages/system/system.module.ts
new file mode 100644
index 0000000..822a3bf
--- /dev/null
+++ b/src/app/pages/system/system.module.ts
@@ -0,0 +1,12 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+
+@NgModule({
+ declarations: [],
+ imports: [
+ CommonModule,
+ ]
+})
+export class SystemModule { }
diff --git a/src/app/pages/system/system.routes.ts b/src/app/pages/system/system.routes.ts
new file mode 100644
index 0000000..814413d
--- /dev/null
+++ b/src/app/pages/system/system.routes.ts
@@ -0,0 +1,6 @@
+import { Routes } from '@angular/router';
+import {MenuComponent} from "./menu/menu.component";
+
+export const SYSTEM_ROUTES: Routes = [
+ { path: 'menu', component: MenuComponent}
+];
diff --git a/src/app/servies/menu/menu.service.ts b/src/app/servies/menu/menu.service.ts
new file mode 100644
index 0000000..07d0a64
--- /dev/null
+++ b/src/app/servies/menu/menu.service.ts
@@ -0,0 +1,49 @@
+import { Injectable } from '@angular/core';
+import {HttpClient} from "@angular/common/http";
+import {environment} from "../../../environments/environment";
+import {ObjectData} from "../../utils/objectData.service";
+
+@Injectable({
+ providedIn: 'root'
+})
+export class MenuService {
+
+ constructor(private http: HttpClient) { }
+
+ /**
+ * 分盘菜单
+ * @param params
+ * @param callBack
+ */
+ public assignMenu(params: object, callBack:any) {
+ this.http.post(environment.userUrl + 'secMenu/assignMenu', params).subscribe(data => {
+ callBack(data);
+ });
+ }
+
+ /**
+ * 分盘菜单
+ * @param roleId
+ * @param callBack
+ */
+ public queryRoleMenuTree(roleId: string, callBack:any) {
+ const param = {
+ roleId: roleId
+ }
+ this.http.get(environment.userUrl + 'secMenu/queryRoleMenuTree?' + ObjectData.objectByString(param)).subscribe(data => {
+ callBack(data);
+ });
+ }
+
+ /**
+ * 编辑菜单
+ * @param params
+ * @param callBack
+ */
+ public editMenu(params: object, callBack:any) {
+ this.http.post(environment.userUrl + 'secMenu/editMenu', params).subscribe(data => {
+ callBack(data);
+ });
+ }
+
+}