taon 0.0.0 → 18.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +115 -0
- package/assets/shared/shared_folder_info.txt +7 -0
- package/bin/start.js +279 -0
- package/bin/taon +6 -5
- package/bin/taon-debug +5 -5
- package/bin/taon-debug-brk +5 -4
- package/browser/README.md +24 -0
- package/browser/esm2022/lib/base-classes/base-abstract-entity.mjs +18 -0
- package/browser/esm2022/lib/base-classes/base-class.mjs +17 -0
- package/browser/esm2022/lib/base-classes/base-context.mjs +14 -0
- package/browser/esm2022/lib/base-classes/base-controller.mjs +18 -0
- package/browser/esm2022/lib/base-classes/base-crud-controller.mjs +279 -0
- package/browser/esm2022/lib/base-classes/base-entity.mjs +18 -0
- package/browser/esm2022/lib/base-classes/base-injector.mjs +160 -0
- package/browser/esm2022/lib/base-classes/base-provider.mjs +6 -0
- package/browser/esm2022/lib/base-classes/base-repository.mjs +514 -0
- package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +137 -0
- package/browser/esm2022/lib/base-classes/base-subscriber.mjs +27 -0
- package/browser/esm2022/lib/base-classes/base.mjs +26 -0
- package/browser/esm2022/lib/constants.mjs +4 -0
- package/browser/esm2022/lib/create-context.mjs +87 -0
- package/browser/esm2022/lib/decorators/classes/controller-decorator.mjs +15 -0
- package/browser/esm2022/lib/decorators/classes/entity-decorator.mjs +27 -0
- package/browser/esm2022/lib/decorators/classes/provider-decorator.mjs +15 -0
- package/browser/esm2022/lib/decorators/classes/repository-decorator.mjs +15 -0
- package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +41 -0
- package/browser/esm2022/lib/decorators/http/http-decorators.mjs +22 -0
- package/browser/esm2022/lib/decorators/http/http-methods-decorators.mjs +78 -0
- package/browser/esm2022/lib/decorators/http/http-params-decorators.mjs +47 -0
- package/browser/esm2022/lib/dependency-injection/di-container.mjs +32 -0
- package/browser/esm2022/lib/endpoint-context.mjs +1746 -0
- package/browser/esm2022/lib/entity-process.mjs +207 -0
- package/browser/esm2022/lib/env.mjs +6 -0
- package/browser/esm2022/lib/get-response-value.mjs +41 -0
- package/browser/esm2022/lib/helpers/class-helpers.mjs +183 -0
- package/browser/esm2022/lib/helpers/taon-helpers.mjs +120 -0
- package/browser/esm2022/lib/index.mjs +79 -0
- package/browser/esm2022/lib/inject.mjs +70 -0
- package/browser/esm2022/lib/models.mjs +77 -0
- package/browser/esm2022/lib/orm.mjs +6 -0
- package/browser/esm2022/lib/realtime/realtime-client.mjs +129 -0
- package/browser/esm2022/lib/realtime/realtime-core.mjs +54 -0
- package/browser/esm2022/lib/realtime/realtime-server.mjs +274 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/index.mjs +7 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +98 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +45 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +40 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +25 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +4 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +49 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +5 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +50 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +48 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +35 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +43 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +4 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +28 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +33 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +10 -0
- package/browser/esm2022/lib/realtime/realtime-subs-manager.mjs +79 -0
- package/browser/esm2022/lib/realtime/realtime.models.mjs +4 -0
- package/browser/esm2022/lib/storage.mjs +5 -0
- package/browser/esm2022/lib/symbols.mjs +89 -0
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +4 -0
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +32 -0
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +167 -0
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +64 -0
- package/browser/esm2022/lib/validators.mjs +76 -0
- package/browser/esm2022/public-api.mjs +2 -0
- package/browser/esm2022/taon.mjs +5 -0
- package/browser/fesm2022/taon.mjs +4901 -0
- package/browser/fesm2022/taon.mjs.map +1 -0
- package/browser/index.d.ts +6 -0
- package/browser/lib/base-classes/base-abstract-entity.d.ts +7 -0
- package/browser/lib/base-classes/base-class.d.ts +9 -0
- package/browser/lib/base-classes/base-context.d.ts +17 -0
- package/browser/lib/base-classes/base-controller.d.ts +8 -0
- package/browser/lib/base-classes/base-crud-controller.d.ts +28 -0
- package/browser/lib/base-classes/base-entity.d.ts +8 -0
- package/browser/lib/base-classes/base-injector.d.ts +60 -0
- package/browser/lib/base-classes/base-provider.d.ts +4 -0
- package/browser/lib/base-classes/base-repository.d.ts +249 -0
- package/browser/lib/base-classes/base-subscriber-for-entity.d.ts +82 -0
- package/browser/lib/base-classes/base-subscriber.d.ts +5 -0
- package/browser/lib/base-classes/base.d.ts +36 -0
- package/browser/lib/constants.d.ts +2 -0
- package/browser/lib/create-context.d.ts +25 -0
- package/browser/lib/decorators/classes/controller-decorator.d.ts +13 -0
- package/browser/lib/decorators/classes/entity-decorator.d.ts +17 -0
- package/browser/lib/decorators/classes/provider-decorator.d.ts +5 -0
- package/browser/lib/decorators/classes/repository-decorator.d.ts +5 -0
- package/browser/lib/decorators/classes/subscriber-decorator.d.ts +6 -0
- package/browser/lib/decorators/http/http-decorators.d.ts +18 -0
- package/browser/lib/decorators/http/http-methods-decorators.d.ts +15 -0
- package/browser/lib/decorators/http/http-params-decorators.d.ts +6 -0
- package/browser/lib/dependency-injection/di-container.d.ts +6 -0
- package/browser/lib/endpoint-context.d.ts +117 -0
- package/browser/lib/entity-process.d.ts +40 -0
- package/browser/lib/env.d.ts +3 -0
- package/browser/lib/get-response-value.d.ts +7 -0
- package/browser/lib/helpers/class-helpers.d.ts +19 -0
- package/browser/lib/helpers/taon-helpers.d.ts +17 -0
- package/browser/lib/index.d.ts +113 -0
- package/browser/lib/inject.d.ts +9 -0
- package/browser/lib/models.d.ts +175 -0
- package/browser/lib/orm.d.ts +3 -0
- package/browser/lib/realtime/realtime-client.d.ts +32 -0
- package/browser/lib/realtime/realtime-core.d.ts +41 -0
- package/browser/lib/realtime/realtime-server.d.ts +14 -0
- package/browser/lib/realtime/realtime-strategy/index.d.ts +5 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +17 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +11 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +11 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +14 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +23 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +3 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +17 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +18 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +12 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +14 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +12 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +15 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy.d.ts +13 -0
- package/browser/lib/realtime/realtime-subs-manager.d.ts +15 -0
- package/browser/lib/realtime/realtime.models.d.ts +14 -0
- package/browser/lib/storage.d.ts +2 -0
- package/browser/lib/symbols.d.ts +73 -0
- package/browser/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +6 -0
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +18 -0
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +51 -0
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +25 -0
- package/browser/lib/validators.d.ts +8 -0
- package/browser/package.json +25 -0
- package/browser/public-api.d.ts +2 -0
- package/cli.d.ts +1 -0
- package/cli.js +24 -0
- package/cli.js.map +1 -0
- package/client/README.md +24 -0
- package/client/esm2022/lib/base-classes/base-abstract-entity.mjs +18 -0
- package/client/esm2022/lib/base-classes/base-class.mjs +17 -0
- package/client/esm2022/lib/base-classes/base-context.mjs +14 -0
- package/client/esm2022/lib/base-classes/base-controller.mjs +18 -0
- package/client/esm2022/lib/base-classes/base-crud-controller.mjs +279 -0
- package/client/esm2022/lib/base-classes/base-entity.mjs +18 -0
- package/client/esm2022/lib/base-classes/base-injector.mjs +160 -0
- package/client/esm2022/lib/base-classes/base-provider.mjs +6 -0
- package/client/esm2022/lib/base-classes/base-repository.mjs +514 -0
- package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +137 -0
- package/client/esm2022/lib/base-classes/base-subscriber.mjs +27 -0
- package/client/esm2022/lib/base-classes/base.mjs +26 -0
- package/client/esm2022/lib/constants.mjs +4 -0
- package/client/esm2022/lib/create-context.mjs +87 -0
- package/client/esm2022/lib/decorators/classes/controller-decorator.mjs +15 -0
- package/client/esm2022/lib/decorators/classes/entity-decorator.mjs +27 -0
- package/client/esm2022/lib/decorators/classes/provider-decorator.mjs +15 -0
- package/client/esm2022/lib/decorators/classes/repository-decorator.mjs +15 -0
- package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +41 -0
- package/client/esm2022/lib/decorators/http/http-decorators.mjs +22 -0
- package/client/esm2022/lib/decorators/http/http-methods-decorators.mjs +78 -0
- package/client/esm2022/lib/decorators/http/http-params-decorators.mjs +47 -0
- package/client/esm2022/lib/dependency-injection/di-container.mjs +32 -0
- package/client/esm2022/lib/endpoint-context.mjs +1746 -0
- package/client/esm2022/lib/entity-process.mjs +207 -0
- package/client/esm2022/lib/env.mjs +6 -0
- package/client/esm2022/lib/get-response-value.mjs +41 -0
- package/client/esm2022/lib/helpers/class-helpers.mjs +183 -0
- package/client/esm2022/lib/helpers/taon-helpers.mjs +120 -0
- package/client/esm2022/lib/index.mjs +79 -0
- package/client/esm2022/lib/inject.mjs +70 -0
- package/client/esm2022/lib/models.mjs +77 -0
- package/client/esm2022/lib/orm.mjs +6 -0
- package/client/esm2022/lib/realtime/realtime-client.mjs +129 -0
- package/client/esm2022/lib/realtime/realtime-core.mjs +54 -0
- package/client/esm2022/lib/realtime/realtime-server.mjs +274 -0
- package/client/esm2022/lib/realtime/realtime-strategy/index.mjs +7 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +98 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +45 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +40 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +25 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +4 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +49 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +5 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +50 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +48 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +35 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +43 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +4 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +28 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +33 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +10 -0
- package/client/esm2022/lib/realtime/realtime-subs-manager.mjs +79 -0
- package/client/esm2022/lib/realtime/realtime.models.mjs +4 -0
- package/client/esm2022/lib/storage.mjs +5 -0
- package/client/esm2022/lib/symbols.mjs +89 -0
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +4 -0
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +32 -0
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +167 -0
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +64 -0
- package/client/esm2022/lib/validators.mjs +76 -0
- package/client/esm2022/public-api.mjs +2 -0
- package/client/esm2022/taon.mjs +5 -0
- package/client/fesm2022/taon.mjs +4901 -0
- package/client/fesm2022/taon.mjs.map +1 -0
- package/client/index.d.ts +6 -0
- package/client/lib/base-classes/base-abstract-entity.d.ts +7 -0
- package/client/lib/base-classes/base-class.d.ts +9 -0
- package/client/lib/base-classes/base-context.d.ts +17 -0
- package/client/lib/base-classes/base-controller.d.ts +8 -0
- package/client/lib/base-classes/base-crud-controller.d.ts +28 -0
- package/client/lib/base-classes/base-entity.d.ts +8 -0
- package/client/lib/base-classes/base-injector.d.ts +60 -0
- package/client/lib/base-classes/base-provider.d.ts +4 -0
- package/client/lib/base-classes/base-repository.d.ts +249 -0
- package/client/lib/base-classes/base-subscriber-for-entity.d.ts +82 -0
- package/client/lib/base-classes/base-subscriber.d.ts +5 -0
- package/client/lib/base-classes/base.d.ts +36 -0
- package/client/lib/constants.d.ts +2 -0
- package/client/lib/create-context.d.ts +25 -0
- package/client/lib/decorators/classes/controller-decorator.d.ts +13 -0
- package/client/lib/decorators/classes/entity-decorator.d.ts +17 -0
- package/client/lib/decorators/classes/provider-decorator.d.ts +5 -0
- package/client/lib/decorators/classes/repository-decorator.d.ts +5 -0
- package/client/lib/decorators/classes/subscriber-decorator.d.ts +6 -0
- package/client/lib/decorators/http/http-decorators.d.ts +18 -0
- package/client/lib/decorators/http/http-methods-decorators.d.ts +15 -0
- package/client/lib/decorators/http/http-params-decorators.d.ts +6 -0
- package/client/lib/dependency-injection/di-container.d.ts +6 -0
- package/client/lib/endpoint-context.d.ts +117 -0
- package/client/lib/entity-process.d.ts +40 -0
- package/client/lib/env.d.ts +3 -0
- package/client/lib/get-response-value.d.ts +7 -0
- package/client/lib/helpers/class-helpers.d.ts +19 -0
- package/client/lib/helpers/taon-helpers.d.ts +17 -0
- package/client/lib/index.d.ts +113 -0
- package/client/lib/inject.d.ts +9 -0
- package/client/lib/models.d.ts +175 -0
- package/client/lib/orm.d.ts +3 -0
- package/client/lib/realtime/realtime-client.d.ts +32 -0
- package/client/lib/realtime/realtime-core.d.ts +41 -0
- package/client/lib/realtime/realtime-server.d.ts +14 -0
- package/client/lib/realtime/realtime-strategy/index.d.ts +5 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +17 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +11 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +11 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +14 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +23 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +3 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +17 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +18 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +12 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +14 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +12 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +15 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy.d.ts +13 -0
- package/client/lib/realtime/realtime-subs-manager.d.ts +15 -0
- package/client/lib/realtime/realtime.models.d.ts +14 -0
- package/client/lib/storage.d.ts +2 -0
- package/client/lib/symbols.d.ts +73 -0
- package/client/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +6 -0
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +18 -0
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +51 -0
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +25 -0
- package/client/lib/validators.d.ts +8 -0
- package/client/public-api.d.ts +2 -0
- package/index.d.ts +1 -0
- package/index.js +5 -1
- package/index.js.map +1 -0
- package/lib/base-classes/base-abstract-entity.d.ts +6 -0
- package/lib/base-classes/base-abstract-entity.js +40 -0
- package/lib/base-classes/base-abstract-entity.js.map +1 -0
- package/lib/base-classes/base-class.d.ts +8 -0
- package/lib/base-classes/base-class.js +35 -0
- package/lib/base-classes/base-class.js.map +1 -0
- package/lib/base-classes/base-context.d.ts +16 -0
- package/lib/base-classes/base-context.js +15 -0
- package/lib/base-classes/base-context.js.map +1 -0
- package/lib/base-classes/base-controller.d.ts +7 -0
- package/lib/base-classes/base-controller.js +24 -0
- package/lib/base-classes/base-controller.js.map +1 -0
- package/lib/base-classes/base-crud-controller.d.ts +27 -0
- package/lib/base-classes/base-crud-controller.js +385 -0
- package/lib/base-classes/base-crud-controller.js.map +1 -0
- package/lib/base-classes/base-entity.d.ts +7 -0
- package/lib/base-classes/base-entity.js +25 -0
- package/lib/base-classes/base-entity.js.map +1 -0
- package/lib/base-classes/base-injector.d.ts +59 -0
- package/lib/base-classes/base-injector.js +220 -0
- package/lib/base-classes/base-injector.js.map +1 -0
- package/lib/base-classes/base-provider.d.ts +3 -0
- package/lib/base-classes/base-provider.js +14 -0
- package/lib/base-classes/base-provider.js.map +1 -0
- package/lib/base-classes/base-repository.d.ts +254 -0
- package/lib/base-classes/base-repository.js +780 -0
- package/lib/base-classes/base-repository.js.map +1 -0
- package/lib/base-classes/base-subscriber-for-entity.d.ts +81 -0
- package/lib/base-classes/base-subscriber-for-entity.js +136 -0
- package/lib/base-classes/base-subscriber-for-entity.js.map +1 -0
- package/lib/base-classes/base-subscriber.d.ts +4 -0
- package/lib/base-classes/base-subscriber.js +25 -0
- package/lib/base-classes/base-subscriber.js.map +1 -0
- package/lib/base-classes/base.d.ts +35 -0
- package/lib/base-classes/base.js +27 -0
- package/lib/base-classes/base.js.map +1 -0
- package/lib/build-info._auto-generated_.d.ts +1 -0
- package/lib/build-info._auto-generated_.js +5 -0
- package/lib/build-info._auto-generated_.js.map +1 -0
- package/lib/constants.d.ts +1 -0
- package/lib/constants.js +3 -0
- package/lib/constants.js.map +1 -0
- package/lib/create-context.d.ts +24 -0
- package/lib/create-context.js +183 -0
- package/lib/create-context.js.map +1 -0
- package/lib/decorators/classes/controller-decorator.d.ts +12 -0
- package/lib/decorators/classes/controller-decorator.js +24 -0
- package/lib/decorators/classes/controller-decorator.js.map +1 -0
- package/lib/decorators/classes/entity-decorator.d.ts +16 -0
- package/lib/decorators/classes/entity-decorator.js +39 -0
- package/lib/decorators/classes/entity-decorator.js.map +1 -0
- package/lib/decorators/classes/provider-decorator.d.ts +4 -0
- package/lib/decorators/classes/provider-decorator.js +24 -0
- package/lib/decorators/classes/provider-decorator.js.map +1 -0
- package/lib/decorators/classes/repository-decorator.d.ts +4 -0
- package/lib/decorators/classes/repository-decorator.js +24 -0
- package/lib/decorators/classes/repository-decorator.js.map +1 -0
- package/lib/decorators/classes/subscriber-decorator.d.ts +5 -0
- package/lib/decorators/classes/subscriber-decorator.js +75 -0
- package/lib/decorators/classes/subscriber-decorator.js.map +1 -0
- package/lib/decorators/http/http-decorators.d.ts +17 -0
- package/lib/decorators/http/http-decorators.js +23 -0
- package/lib/decorators/http/http-decorators.js.map +1 -0
- package/lib/decorators/http/http-methods-decorators.d.ts +14 -0
- package/lib/decorators/http/http-methods-decorators.js +91 -0
- package/lib/decorators/http/http-methods-decorators.js.map +1 -0
- package/lib/decorators/http/http-params-decorators.d.ts +5 -0
- package/lib/decorators/http/http-params-decorators.js +55 -0
- package/lib/decorators/http/http-params-decorators.js.map +1 -0
- package/lib/dependency-injection/di-container.d.ts +5 -0
- package/lib/dependency-injection/di-container.js +40 -0
- package/lib/dependency-injection/di-container.js.map +1 -0
- package/lib/endpoint-context.d.ts +117 -0
- package/lib/endpoint-context.js +2128 -0
- package/lib/endpoint-context.js.map +1 -0
- package/lib/entity-process.d.ts +39 -0
- package/lib/entity-process.js +261 -0
- package/lib/entity-process.js.map +1 -0
- package/lib/env.d.ts +2 -0
- package/lib/env.js +7 -0
- package/lib/env.js.map +1 -0
- package/lib/formly/formly-group-wrapper-component.d.ts +5 -0
- package/lib/formly/formly-group-wrapper-component.js +28 -0
- package/lib/formly/formly-group-wrapper-component.js.map +1 -0
- package/lib/formly/formly-repeat-component.d.ts +5 -0
- package/lib/formly/formly-repeat-component.js +47 -0
- package/lib/formly/formly-repeat-component.js.map +1 -0
- package/lib/formly/formly.models.d.ts +1 -0
- package/lib/formly/formly.models.js +3 -0
- package/lib/formly/formly.models.js.map +1 -0
- package/lib/formly/fromly.d.ts +16 -0
- package/lib/formly/fromly.js +213 -0
- package/lib/formly/fromly.js.map +1 -0
- package/lib/formly/type-from-entity.d.ts +20 -0
- package/lib/formly/type-from-entity.js +65 -0
- package/lib/formly/type-from-entity.js.map +1 -0
- package/lib/get-response-value.d.ts +6 -0
- package/lib/get-response-value.js +65 -0
- package/lib/get-response-value.js.map +1 -0
- package/lib/helpers/class-helpers.d.ts +18 -0
- package/lib/helpers/class-helpers.js +227 -0
- package/lib/helpers/class-helpers.js.map +1 -0
- package/lib/helpers/taon-helpers.d.ts +16 -0
- package/lib/helpers/taon-helpers.js +144 -0
- package/lib/helpers/taon-helpers.js.map +1 -0
- package/lib/index.d.ts +112 -0
- package/lib/index.js +113 -0
- package/lib/index.js.map +1 -0
- package/lib/inject.d.ts +8 -0
- package/lib/inject.js +84 -0
- package/lib/inject.js.map +1 -0
- package/lib/models.d.ts +180 -0
- package/lib/models.js +107 -0
- package/lib/models.js.map +1 -0
- package/lib/orm.d.ts +51 -0
- package/lib/orm.js +79 -0
- package/lib/orm.js.map +1 -0
- package/lib/realtime/realtime-client.d.ts +31 -0
- package/lib/realtime/realtime-client.js +158 -0
- package/lib/realtime/realtime-client.js.map +1 -0
- package/lib/realtime/realtime-core.d.ts +40 -0
- package/lib/realtime/realtime-core.js +72 -0
- package/lib/realtime/realtime-core.js.map +1 -0
- package/lib/realtime/realtime-server.d.ts +13 -0
- package/lib/realtime/realtime-server.js +193 -0
- package/lib/realtime/realtime-server.js.map +1 -0
- package/lib/realtime/realtime-strategy/index.d.ts +4 -0
- package/lib/realtime/realtime-strategy/index.js +8 -0
- package/lib/realtime/realtime-strategy/index.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.d.ts +0 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js +5 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js +139 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +16 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js +68 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +10 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js +56 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +10 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js +50 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +13 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js +3 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +22 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js +68 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +2 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js +6 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +16 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js +54 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +17 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js +52 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +11 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js +39 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +13 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js +46 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +11 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js +3 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +14 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock.js +42 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js +48 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy.d.ts +12 -0
- package/lib/realtime/realtime-strategy/realtime-strategy.js +14 -0
- package/lib/realtime/realtime-strategy/realtime-strategy.js.map +1 -0
- package/lib/realtime/realtime-subs-manager.d.ts +14 -0
- package/lib/realtime/realtime-subs-manager.js +102 -0
- package/lib/realtime/realtime-subs-manager.js.map +1 -0
- package/lib/realtime/realtime.models.d.ts +13 -0
- package/lib/realtime/realtime.models.js +3 -0
- package/lib/realtime/realtime.models.js.map +1 -0
- package/lib/storage.d.ts +1 -0
- package/lib/storage.js +6 -0
- package/lib/storage.js.map +1 -0
- package/lib/symbols.d.ts +72 -0
- package/lib/symbols.js +91 -0
- package/lib/symbols.js.map +1 -0
- package/lib/ui/directives/firedev-inject-html.directive.d.ts +6 -0
- package/lib/ui/directives/firedev-long-press.directive.d.ts +22 -0
- package/lib/ui/directives/index.d.ts +4 -0
- package/lib/ui/directives/index.js +5 -0
- package/lib/ui/directives/index.js.map +1 -0
- package/lib/ui/directives/safe.pipe.d.ts +7 -0
- package/lib/ui/directives/view-mode.d.ts +5 -0
- package/lib/ui/directives/view-mode.js +10 -0
- package/lib/ui/directives/view-mode.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +5 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +31 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.d.ts +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +5 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +9 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +5 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +14 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/index.d.ts +4 -0
- package/lib/ui/taon-admin-mode-configuration/index.js +5 -0
- package/lib/ui/taon-admin-mode-configuration/index.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +5 -0
- package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js +3 -0
- package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +14 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +47 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +21 -0
- package/lib/ui/taon-github-fork-me-corner/index.d.ts +2 -0
- package/lib/ui/taon-github-fork-me-corner/index.js +5 -0
- package/lib/ui/taon-github-fork-me-corner/index.js.map +1 -0
- package/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.d.ts +3 -0
- package/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.d.ts +2 -0
- package/lib/ui/taon-github-fork-me-ribbon/index.d.ts +2 -0
- package/lib/ui/taon-github-fork-me-ribbon/index.js +5 -0
- package/lib/ui/taon-github-fork-me-ribbon/index.js.map +1 -0
- package/lib/ui/taon-github-fork-me-ribbon/taon-github-fork-me-ribbon.component.d.ts +3 -0
- package/lib/ui/taon-github-fork-me-ribbon/taon-github-fork-me-ribbon.module.d.ts +2 -0
- package/lib/ui/taon-notifications/index.d.ts +4 -0
- package/lib/ui/taon-notifications/index.js +11 -0
- package/lib/ui/taon-notifications/index.js.map +1 -0
- package/lib/ui/taon-notifications/taon-notifications.component.d.ts +9 -0
- package/lib/ui/taon-notifications/taon-notifications.models.d.ts +6 -0
- package/lib/ui/taon-notifications/taon-notifications.models.js +5 -0
- package/lib/ui/taon-notifications/taon-notifications.models.js.map +1 -0
- package/lib/ui/taon-notifications/taon-notifications.module.d.ts +2 -0
- package/lib/ui/taon-notifications/taon-notifications.service.d.ts +11 -0
- package/lib/ui/taon-progress-bar/index.d.ts +2 -0
- package/lib/ui/taon-progress-bar/index.js +5 -0
- package/lib/ui/taon-progress-bar/index.js.map +1 -0
- package/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +14 -0
- package/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +2 -0
- package/lib/ui/taon-session-passcode/index.d.ts +1 -0
- package/lib/ui/taon-session-passcode/index.js +5 -0
- package/lib/ui/taon-session-passcode/index.js.map +1 -0
- package/lib/ui/taon-session-passcode/taon-session-passcode.component.d.ts +35 -0
- package/lib/ui/taon.models.d.ts +11 -0
- package/lib/ui/taon.models.js +3 -0
- package/lib/ui/taon.models.js.map +1 -0
- package/lib/ui/toan-full-material.module.d.ts +2 -0
- package/lib/validators.d.ts +7 -0
- package/lib/validators.js +53 -0
- package/lib/validators.js.map +1 -0
- package/old-app .d.ts +0 -0
- package/old-app .js +115 -0
- package/old-app .js.map +1 -0
- package/package.json +74 -11
- package/playground.d.ts +0 -0
- package/playground.js +172 -0
- package/playground.js.map +1 -0
- package/src.d.ts +6 -0
- package/taon.jsonc +48 -0
- package/tmp-environment.json +392 -0
- package/websql/README.md +24 -0
- package/websql/esm2022/lib/base-classes/base-abstract-entity.mjs +25 -0
- package/websql/esm2022/lib/base-classes/base-class.mjs +17 -0
- package/websql/esm2022/lib/base-classes/base-context.mjs +14 -0
- package/websql/esm2022/lib/base-classes/base-controller.mjs +18 -0
- package/websql/esm2022/lib/base-classes/base-crud-controller.mjs +238 -0
- package/websql/esm2022/lib/base-classes/base-entity.mjs +16 -0
- package/websql/esm2022/lib/base-classes/base-injector.mjs +160 -0
- package/websql/esm2022/lib/base-classes/base-provider.mjs +6 -0
- package/websql/esm2022/lib/base-classes/base-repository.mjs +431 -0
- package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +137 -0
- package/websql/esm2022/lib/base-classes/base-subscriber.mjs +27 -0
- package/websql/esm2022/lib/base-classes/base.mjs +26 -0
- package/websql/esm2022/lib/constants.mjs +4 -0
- package/websql/esm2022/lib/create-context.mjs +86 -0
- package/websql/esm2022/lib/decorators/classes/controller-decorator.mjs +15 -0
- package/websql/esm2022/lib/decorators/classes/entity-decorator.mjs +25 -0
- package/websql/esm2022/lib/decorators/classes/provider-decorator.mjs +15 -0
- package/websql/esm2022/lib/decorators/classes/repository-decorator.mjs +15 -0
- package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +41 -0
- package/websql/esm2022/lib/decorators/http/http-decorators.mjs +22 -0
- package/websql/esm2022/lib/decorators/http/http-methods-decorators.mjs +78 -0
- package/websql/esm2022/lib/decorators/http/http-params-decorators.mjs +47 -0
- package/websql/esm2022/lib/dependency-injection/di-container.mjs +32 -0
- package/websql/esm2022/lib/endpoint-context.mjs +1506 -0
- package/websql/esm2022/lib/entity-process.mjs +207 -0
- package/websql/esm2022/lib/env.mjs +6 -0
- package/websql/esm2022/lib/get-response-value.mjs +45 -0
- package/websql/esm2022/lib/helpers/class-helpers.mjs +183 -0
- package/websql/esm2022/lib/helpers/taon-helpers.mjs +120 -0
- package/websql/esm2022/lib/index.mjs +81 -0
- package/websql/esm2022/lib/inject.mjs +70 -0
- package/websql/esm2022/lib/models.mjs +70 -0
- package/websql/esm2022/lib/orm.mjs +60 -0
- package/websql/esm2022/lib/realtime/realtime-client.mjs +129 -0
- package/websql/esm2022/lib/realtime/realtime-core.mjs +54 -0
- package/websql/esm2022/lib/realtime/realtime-server.mjs +158 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/index.mjs +7 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +98 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +45 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +40 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +25 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +4 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +48 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +5 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +50 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +48 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +35 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +43 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +4 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +28 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +33 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +10 -0
- package/websql/esm2022/lib/realtime/realtime-subs-manager.mjs +79 -0
- package/websql/esm2022/lib/realtime/realtime.models.mjs +4 -0
- package/websql/esm2022/lib/storage.mjs +5 -0
- package/websql/esm2022/lib/symbols.mjs +89 -0
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +4 -0
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +32 -0
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +167 -0
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +64 -0
- package/websql/esm2022/lib/validators.mjs +76 -0
- package/websql/esm2022/public-api.mjs +2 -0
- package/websql/esm2022/taon.mjs +5 -0
- package/websql/fesm2022/taon.mjs +4595 -0
- package/websql/fesm2022/taon.mjs.map +1 -0
- package/websql/index.d.ts +6 -0
- package/websql/lib/base-classes/base-abstract-entity.d.ts +7 -0
- package/websql/lib/base-classes/base-class.d.ts +9 -0
- package/websql/lib/base-classes/base-context.d.ts +17 -0
- package/websql/lib/base-classes/base-controller.d.ts +8 -0
- package/websql/lib/base-classes/base-crud-controller.d.ts +28 -0
- package/websql/lib/base-classes/base-entity.d.ts +8 -0
- package/websql/lib/base-classes/base-injector.d.ts +60 -0
- package/websql/lib/base-classes/base-provider.d.ts +4 -0
- package/websql/lib/base-classes/base-repository.d.ts +255 -0
- package/websql/lib/base-classes/base-subscriber-for-entity.d.ts +82 -0
- package/websql/lib/base-classes/base-subscriber.d.ts +5 -0
- package/websql/lib/base-classes/base.d.ts +36 -0
- package/websql/lib/constants.d.ts +2 -0
- package/websql/lib/create-context.d.ts +25 -0
- package/websql/lib/decorators/classes/controller-decorator.d.ts +13 -0
- package/websql/lib/decorators/classes/entity-decorator.d.ts +17 -0
- package/websql/lib/decorators/classes/provider-decorator.d.ts +5 -0
- package/websql/lib/decorators/classes/repository-decorator.d.ts +5 -0
- package/websql/lib/decorators/classes/subscriber-decorator.d.ts +6 -0
- package/websql/lib/decorators/http/http-decorators.d.ts +18 -0
- package/websql/lib/decorators/http/http-methods-decorators.d.ts +15 -0
- package/websql/lib/decorators/http/http-params-decorators.d.ts +6 -0
- package/websql/lib/dependency-injection/di-container.d.ts +6 -0
- package/websql/lib/endpoint-context.d.ts +117 -0
- package/websql/lib/entity-process.d.ts +40 -0
- package/websql/lib/env.d.ts +3 -0
- package/websql/lib/get-response-value.d.ts +7 -0
- package/websql/lib/helpers/class-helpers.d.ts +19 -0
- package/websql/lib/helpers/taon-helpers.d.ts +17 -0
- package/websql/lib/index.d.ts +113 -0
- package/websql/lib/inject.d.ts +9 -0
- package/websql/lib/models.d.ts +181 -0
- package/websql/lib/orm.d.ts +52 -0
- package/websql/lib/realtime/realtime-client.d.ts +32 -0
- package/websql/lib/realtime/realtime-core.d.ts +41 -0
- package/websql/lib/realtime/realtime-server.d.ts +14 -0
- package/websql/lib/realtime/realtime-strategy/index.d.ts +5 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +17 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +11 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +11 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +14 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +23 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +3 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +17 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +18 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +12 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +14 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +12 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +15 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy.d.ts +13 -0
- package/websql/lib/realtime/realtime-subs-manager.d.ts +15 -0
- package/websql/lib/realtime/realtime.models.d.ts +14 -0
- package/websql/lib/storage.d.ts +2 -0
- package/websql/lib/symbols.d.ts +73 -0
- package/websql/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +6 -0
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +18 -0
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +51 -0
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +25 -0
- package/websql/lib/validators.d.ts +8 -0
- package/websql/package.json +25 -0
- package/websql/public-api.d.ts +2 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, Output, ViewChild, inject, } from '@angular/core'; /* */
|
|
3
|
+
/* */
|
|
4
|
+
/* */
|
|
5
|
+
/* */
|
|
6
|
+
/* */
|
|
7
|
+
/* */
|
|
8
|
+
/* */
|
|
9
|
+
/* */
|
|
10
|
+
/* */
|
|
11
|
+
/* */
|
|
12
|
+
/* */
|
|
13
|
+
import { Helpers, _ } from 'tnp-core/browser';
|
|
14
|
+
import { Stor } from 'taon-storage/browser';
|
|
15
|
+
/* */
|
|
16
|
+
/* */
|
|
17
|
+
/* */
|
|
18
|
+
/* */
|
|
19
|
+
/* */
|
|
20
|
+
import { BreakpointsService } from 'static-columns/browser';
|
|
21
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
22
|
+
import { TaonAdminService } from './taon-admin-control.service';
|
|
23
|
+
import * as i0 from "@angular/core";
|
|
24
|
+
import * as i1 from "static-columns/browser";
|
|
25
|
+
export class TaonAdminModeConfigurationComponent {
|
|
26
|
+
get opened() {
|
|
27
|
+
return !this.isIframe && this.admin.adminPanelIsOpen;
|
|
28
|
+
}
|
|
29
|
+
set opened(v) {
|
|
30
|
+
if (v && !this.openedOnce) {
|
|
31
|
+
this.openedOnce = true;
|
|
32
|
+
}
|
|
33
|
+
if (this.wasOpenDraggablePopup) {
|
|
34
|
+
this.wasOpenDraggablePopup = false;
|
|
35
|
+
this.admin.draggablePopupMode = true;
|
|
36
|
+
}
|
|
37
|
+
this.admin.adminPanelIsOpen = v;
|
|
38
|
+
}
|
|
39
|
+
constructor(breakpointsService) {
|
|
40
|
+
this.breakpointsService = breakpointsService;
|
|
41
|
+
this.$destroy = new Subject();
|
|
42
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
43
|
+
this.taonAdminService = inject(TaonAdminService);
|
|
44
|
+
this.tabs = [];
|
|
45
|
+
this.admin = window['taon'];
|
|
46
|
+
this.isWebSQLMode = Helpers.isWebSQL;
|
|
47
|
+
this.hideTaonToolsInProduction = ENV.hideTaonToolsInProduction && ENV.angularProd;
|
|
48
|
+
this.isIframe = window.location !== window.parent.location;
|
|
49
|
+
this.height = 100;
|
|
50
|
+
this.openedOnce = false;
|
|
51
|
+
this.reloading = false;
|
|
52
|
+
this.showPasscode = _.isString(ENV.passcode) || _.isObject(ENV.passcode);
|
|
53
|
+
this.passcode = _.isString(ENV.passcode)
|
|
54
|
+
? ENV.passcode
|
|
55
|
+
: _.isObject(ENV.passcode)
|
|
56
|
+
? ENV.passcode.code
|
|
57
|
+
: '';
|
|
58
|
+
this.message = _.isObject(ENV.passcode)
|
|
59
|
+
? ENV.passcode.message
|
|
60
|
+
: void 0;
|
|
61
|
+
this.dragPositionZero = { x: 0, y: 0 };
|
|
62
|
+
this.taonAdminModeConfigurationDataChanged = new EventEmitter();
|
|
63
|
+
this.taonAdminModeConfigurationData = {};
|
|
64
|
+
this.admin.cmp = this;
|
|
65
|
+
this.breakpointsService
|
|
66
|
+
.listenTo()
|
|
67
|
+
.pipe(takeUntil(this.$destroy))
|
|
68
|
+
.subscribe(breakpoint => {
|
|
69
|
+
// @ts-ignore
|
|
70
|
+
this.isDesktop = breakpoint === 'desktop';
|
|
71
|
+
});
|
|
72
|
+
this.taonAdminService.init(this);
|
|
73
|
+
}
|
|
74
|
+
reloadTabs() {
|
|
75
|
+
this.reloading = true;
|
|
76
|
+
setTimeout(() => {
|
|
77
|
+
this.reloading = false;
|
|
78
|
+
console.log('reloading done');
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
async ngOnInit() {
|
|
82
|
+
await Stor.awaitPendingOperatios();
|
|
83
|
+
this.dragPosition = { x: this.dragPositionX, y: this.dragPositionY };
|
|
84
|
+
this.openedOnce = this.opened;
|
|
85
|
+
}
|
|
86
|
+
ngAfterViewInit() {
|
|
87
|
+
//Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.
|
|
88
|
+
//Add 'implements AfterViewInit' to the class.
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
this.height = window.innerHeight;
|
|
91
|
+
if (this.admin.draggablePopupMode) {
|
|
92
|
+
this.reloadTabs();
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
ngOnDestroy() {
|
|
97
|
+
this.$destroy.next(void 0);
|
|
98
|
+
this.$destroy.complete();
|
|
99
|
+
}
|
|
100
|
+
onResize(event) {
|
|
101
|
+
this.height = window.innerHeight;
|
|
102
|
+
}
|
|
103
|
+
async toogle() {
|
|
104
|
+
this.opened = !this.opened;
|
|
105
|
+
}
|
|
106
|
+
async toogleFullScreen() {
|
|
107
|
+
this.admin.draggablePopupMode = true;
|
|
108
|
+
this.admin.draggablePopupModeFullScreen =
|
|
109
|
+
!this.admin.draggablePopupModeFullScreen;
|
|
110
|
+
this.resetDrag();
|
|
111
|
+
}
|
|
112
|
+
resetDrag() {
|
|
113
|
+
this.dragPositionX = 0;
|
|
114
|
+
this.dragPositionY = 0;
|
|
115
|
+
this.dragPosition = { x: this.dragPositionX, y: this.dragPositionY };
|
|
116
|
+
}
|
|
117
|
+
moved(c) {
|
|
118
|
+
this.dragPositionX += c.distance.x;
|
|
119
|
+
this.dragPositionY += c.distance.y;
|
|
120
|
+
}
|
|
121
|
+
scrollTabs(event) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, deps: [{ token: i1.BreakpointsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonAdminModeConfigurationComponent, selector: "app-taon-admin-mode-configuration", inputs: { taonAdminModeConfigurationData: "taonAdminModeConfigurationData" }, outputs: { taonAdminModeConfigurationDataChanged: "taonAdminModeConfigurationDataChanged" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: ["tabGroup"], descendants: true }], ngImport: i0, template: "<!-- #region basic global components -->\n<taon-session-passcode\n *ngIf=\"showPasscode\"\n [passcode]=\"passcode\"\n [message]=\"message\" />\n<!-- <taon-progress-bar [isDesktop]=\"isDesktop\"></taon-progress-bar> -->\n<!-- <taon-notifications></taon-notifications> -->\n<button\n mat-fab\n class=\"fab-button\"\n color=\"accent\"\n aria-label=\"Taon Admin Mode\"\n *ngIf=\"\n !admin.draggablePopupMode &&\n isDesktop &&\n !isIframe &&\n !hideTaonToolsInProduction\n \"\n (click)=\"toogle()\">\n <mat-icon>build</mat-icon>\n</button>\n<!-- #endregion -->\n\n<!-- #region small hidden button -->\n<!-- <button class=\"admin-show-button\"\n *ngIf=\"!admin.draggablePopupMode && isDesktop\"\n (click)=\"toogle()\"> Admin </button> -->\n<!-- #endregion -->\n\n<ng-template #contentNoScroll>\n <ng-content> </ng-content>\n</ng-template>\n\n<ng-template #content>\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"contentNoScroll\"></ng-container>\n </ng-scrollbar>\n</ng-template>\n\n<!-- #region admin tabs -->\n<ng-template #adminTabs>\n <div class=\"taon-header-admin-wrapper\">\n <columns-container\n class=\"taon-header-admin\"\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column width=\"200\" class=\"logo-header\">\n <img\n *ngIf=\"openedOnce\"\n src=\"assets/assets-for/taon/shared/logo-header-admin-mode.png\" />\n </column>\n\n <column grow>\n <!-- <span>Super Admin Mode</span> -->\n </column>\n\n <column\n width=\"40\"\n *ngIf=\"\n !admin.draggablePopupModeFullScreen && !admin.draggablePopupMode\n \">\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"\n admin.draggablePopupMode = false;\n opened = false;\n wasOpenDraggablePopup = true\n \"\n class=\"admin-close-button\">\n <mat-icon>close </mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"toogle()\"\n class=\"admin-close-button\">\n <mat-icon>close</mat-icon>\n </button>\n </column>\n\n <column width=\"40\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>fullscreen</mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>close_fullscreen</mat-icon>\n </button>\n </column>\n\n <column width=\"40\" *ngIf=\"!admin.draggablePopupModeFullScreen\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = true\"\n class=\"admin-close-button\">\n <mat-icon>launch</mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = false; resetDrag()\"\n class=\"admin-close-button\">\n <mat-icon style=\"transform: rotate(180deg)\">login</mat-icon>\n </button>\n </column>\n </columns-container>\n </div>\n\n <columns-container\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column grow>\n <mat-tab-group\n dynamicHeight\n (wheel)=\"scrollTabs($event)\"\n #tabGroup\n [selectedIndex]=\"selectedIndex\"\n (selectedIndexChange)=\"selectedIndex = $event\">\n <mat-tab label=\"DB/Cache\">\n <section>\n <mat-card>\n <mat-card-header>\n <mat-card-subtitle>WEBSQL MODE</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <mat-checkbox\n [disabled]=\"!isWebSQLMode\"\n [ngModel]=\"admin.keepWebsqlDbDataAfterReload\"\n (change)=\"\n admin.setKeepWebsqlDbDataAfterReload($event.checked)\n \">\n Don't remove data when reloading\n </mat-checkbox>\n </mat-card-content>\n </mat-card>\n </section>\n <br />\n <taon-db-admin />\n </mat-tab>\n\n <mat-tab label=\"Files\" *ngIf=\"admin.enabledTabs.includes('files')\">\n <section>\n <mat-checkbox\n [ngModel]=\"admin.filesEditMode\"\n (change)=\"admin.setEditMode($event.checked)\"\n >Edit mode</mat-checkbox\n >\n </section>\n <!-- admin.filesEditMode: {{ admin.filesEditMode }} -->\n <taon-admin-edit-mode *ngIf=\"admin.filesEditMode\">\n </taon-admin-edit-mode>\n <br />\n <hr *ngIf=\"admin.filesEditMode\" />\n <!-- <section>\n <button mat-raised-button>[TODO] Clear Files from browser cache </button> <br>\n <button mat-raised-button>[TODO] Start files export (as zip) </button> <br>\n <button mat-raised-button>[TODO] Import whole database (from zip) </button><br>\n </section> -->\n </mat-tab>\n <mat-tab *ngFor=\"let tab of tabs\" label=\"{{ tab.name }}\">\n <div\n class=\"full-tabs\"\n [style.height.px]=\"height - 150\"\n *ngIf=\"!isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </div>\n <ng-container *ngIf=\"isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </ng-container>\n </mat-tab>\n\n <!-- <mat-tab label=\"Portal\">\n <section>\n <mat-checkbox>[TODO] Maintenance Mode for whole portal</mat-checkbox>\n\n <mat-expansion-panel>\n\n <mat-expansion-panel-header>\n [TODO] Active User: 80432\n </mat-expansion-panel-header>\n <section>\n <button mat-raised-button>[TODO] Send notification to users </button><br>\n <button mat-raised-button>[TODO] Send email to users </button><br>\n </section>\n </mat-expansion-panel>\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n [TODO] Enable features\n </mat-expansion-panel-header>\n <mat-checkbox>[TODO] AB testing</mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Newsletter email question popup\n </mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Promotion popup\n </mat-checkbox> <br>\n </mat-expansion-panel>\n </section>\n </mat-tab>\n <mat-tab label=\"User\">\n Welcome in user managements\n </mat-tab>\n <mat-tab label=\"Translations\">\n Welcome in user managements\n </mat-tab> -->\n </mat-tab-group>\n </column>\n </columns-container>\n</ng-template>\n<!-- #endregion -->\n\n<!-- #region small/mobile draggable popup windows -->\n<div\n class=\"draggable-popup-mode-window\"\n *ngIf=\"\n admin.draggablePopupMode && !admin.draggablePopupModeFullScreen && !isIframe\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPosition\"\n (cdkDragEnded)=\"moved($event)\">\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </ng-scrollbar>\n</div>\n<!-- #endregion -->\n\n<!-- #region fullscreen draggable popup window -->\n<div\n class=\"draggable-popup-mode-window-full\"\n *ngIf=\"\n admin.draggablePopupMode &&\n admin.draggablePopupModeFullScreen &&\n !isIframe &&\n !reloading\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPositionZero\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region content when not in draggable (or fullscreen draggable) popup -->\n<div\n [style.height.px]=\"height\"\n *ngIf=\"\n (isIframe ||\n !isDesktop ||\n admin.draggablePopupMode ||\n admin.draggablePopupModeFullScreen) &&\n !reloading\n \"\n style=\"width: 100%; display: block\"\n class=\"content\">\n <ng-container\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region draggable popup window -->\n<mat-drawer-container\n *ngIf=\"!admin.draggablePopupMode && isDesktop && !isIframe\"\n class=\"example-container\"\n [style.height.px]=\"height\"\n style=\"background-color: transparent\"\n (backdropClick)=\"opened = false\"\n [hasBackdrop]=\"false\">\n <mat-drawer #drawer style=\"width: 580px\" [opened]=\"opened\" [mode]=\"'side'\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </mat-drawer>\n <mat-drawer-content style=\"overflow: hidden\">\n <ng-container\n *ngIf=\"!admin.draggablePopupMode && !reloading\"\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n </mat-drawer-content>\n</mat-drawer-container>\n<!-- #endregion -->\n", styles: ["section{display:block;padding:10px}section>*{margin-top:0!important;margin-bottom:10px!important}section>*:last-child{margin-bottom:0!important}:host{display:block}.draggable-column{display:block!important;width:100%!important}.admin-show-button{position:fixed;bottom:100px;left:-15px;z-index:2147483647;transform:rotate(90deg);border:0px;color:#fff;background:gray;opacity:.1;cursor:pointer}.admin-show-button:hover{opacity:1}.taon-ui-super-admin-mode{font-family:JosefinSans-Bold;text-align:right;margin-right:10px}mat-drawer{margin:0;background-color:#dcdcdc!important}.taon-header-admin-wrapper{overflow:hidden;width:100%;display:block}.taon-header-admin{background:#fff;box-shadow:0 -9px 6px 6px #000;height:47px}.taon-header-admin .logo-header img{height:18px;padding:8px;position:relative;float:left;top:7px;box-sizing:content-box;transform:scale(1.5);left:49px}.draggable-popup-mode-window{width:600px;height:500px;border:solid 1px #ccc;color:#000000de;cursor:move;justify-content:center;align-items:center;background:#fff;border-radius:4px;position:fixed;z-index:105;background-color:#dcdcdc!important;transition:box-shadow .2s cubic-bezier(0,0,.2,1);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.draggable-popup-mode-window:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.draggable-popup-mode-window-full{width:100%;height:100%;overflow:scroll;color:#000000de;justify-content:center;align-items:center;background:#fff;border-radius:4px;position:fixed;z-index:105;background-color:#dcdcdc!important}.admin-close-button{float:right}.fab-button{position:fixed;right:110px;bottom:100px;z-index:10;background-color:#dcdcdc;color:#8f8f8f}.full-tabs{padding:10px}.mat-drawer-container-full-screen{background-color:red}\n"] }); }
|
|
126
|
+
}
|
|
127
|
+
__decorate([
|
|
128
|
+
Stor.property.in.localstorage
|
|
129
|
+
.for(TaonAdminModeConfigurationComponent)
|
|
130
|
+
.withDefaultValue(0),
|
|
131
|
+
__metadata("design:type", Number)
|
|
132
|
+
], TaonAdminModeConfigurationComponent.prototype, "dragPositionX", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
Stor.property.in.localstorage
|
|
135
|
+
.for(TaonAdminModeConfigurationComponent)
|
|
136
|
+
.withDefaultValue(0),
|
|
137
|
+
__metadata("design:type", Number)
|
|
138
|
+
], TaonAdminModeConfigurationComponent.prototype, "dragPositionY", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
Stor.property.in.localstorage
|
|
141
|
+
.for(TaonAdminModeConfigurationComponent)
|
|
142
|
+
.withDefaultValue(0),
|
|
143
|
+
__metadata("design:type", Number)
|
|
144
|
+
], TaonAdminModeConfigurationComponent.prototype, "selectedIndex", void 0);
|
|
145
|
+
__decorate([
|
|
146
|
+
Stor.property.in.localstorage
|
|
147
|
+
.for(TaonAdminModeConfigurationComponent)
|
|
148
|
+
.withDefaultValue(false),
|
|
149
|
+
__metadata("design:type", Boolean)
|
|
150
|
+
], TaonAdminModeConfigurationComponent.prototype, "wasOpenDraggablePopup", void 0);
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, decorators: [{
|
|
152
|
+
type: Component,
|
|
153
|
+
args: [{ selector: 'app-taon-admin-mode-configuration', template: "<!-- #region basic global components -->\n<taon-session-passcode\n *ngIf=\"showPasscode\"\n [passcode]=\"passcode\"\n [message]=\"message\" />\n<!-- <taon-progress-bar [isDesktop]=\"isDesktop\"></taon-progress-bar> -->\n<!-- <taon-notifications></taon-notifications> -->\n<button\n mat-fab\n class=\"fab-button\"\n color=\"accent\"\n aria-label=\"Taon Admin Mode\"\n *ngIf=\"\n !admin.draggablePopupMode &&\n isDesktop &&\n !isIframe &&\n !hideTaonToolsInProduction\n \"\n (click)=\"toogle()\">\n <mat-icon>build</mat-icon>\n</button>\n<!-- #endregion -->\n\n<!-- #region small hidden button -->\n<!-- <button class=\"admin-show-button\"\n *ngIf=\"!admin.draggablePopupMode && isDesktop\"\n (click)=\"toogle()\"> Admin </button> -->\n<!-- #endregion -->\n\n<ng-template #contentNoScroll>\n <ng-content> </ng-content>\n</ng-template>\n\n<ng-template #content>\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"contentNoScroll\"></ng-container>\n </ng-scrollbar>\n</ng-template>\n\n<!-- #region admin tabs -->\n<ng-template #adminTabs>\n <div class=\"taon-header-admin-wrapper\">\n <columns-container\n class=\"taon-header-admin\"\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column width=\"200\" class=\"logo-header\">\n <img\n *ngIf=\"openedOnce\"\n src=\"assets/assets-for/taon/shared/logo-header-admin-mode.png\" />\n </column>\n\n <column grow>\n <!-- <span>Super Admin Mode</span> -->\n </column>\n\n <column\n width=\"40\"\n *ngIf=\"\n !admin.draggablePopupModeFullScreen && !admin.draggablePopupMode\n \">\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"\n admin.draggablePopupMode = false;\n opened = false;\n wasOpenDraggablePopup = true\n \"\n class=\"admin-close-button\">\n <mat-icon>close </mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"toogle()\"\n class=\"admin-close-button\">\n <mat-icon>close</mat-icon>\n </button>\n </column>\n\n <column width=\"40\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>fullscreen</mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>close_fullscreen</mat-icon>\n </button>\n </column>\n\n <column width=\"40\" *ngIf=\"!admin.draggablePopupModeFullScreen\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = true\"\n class=\"admin-close-button\">\n <mat-icon>launch</mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = false; resetDrag()\"\n class=\"admin-close-button\">\n <mat-icon style=\"transform: rotate(180deg)\">login</mat-icon>\n </button>\n </column>\n </columns-container>\n </div>\n\n <columns-container\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column grow>\n <mat-tab-group\n dynamicHeight\n (wheel)=\"scrollTabs($event)\"\n #tabGroup\n [selectedIndex]=\"selectedIndex\"\n (selectedIndexChange)=\"selectedIndex = $event\">\n <mat-tab label=\"DB/Cache\">\n <section>\n <mat-card>\n <mat-card-header>\n <mat-card-subtitle>WEBSQL MODE</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <mat-checkbox\n [disabled]=\"!isWebSQLMode\"\n [ngModel]=\"admin.keepWebsqlDbDataAfterReload\"\n (change)=\"\n admin.setKeepWebsqlDbDataAfterReload($event.checked)\n \">\n Don't remove data when reloading\n </mat-checkbox>\n </mat-card-content>\n </mat-card>\n </section>\n <br />\n <taon-db-admin />\n </mat-tab>\n\n <mat-tab label=\"Files\" *ngIf=\"admin.enabledTabs.includes('files')\">\n <section>\n <mat-checkbox\n [ngModel]=\"admin.filesEditMode\"\n (change)=\"admin.setEditMode($event.checked)\"\n >Edit mode</mat-checkbox\n >\n </section>\n <!-- admin.filesEditMode: {{ admin.filesEditMode }} -->\n <taon-admin-edit-mode *ngIf=\"admin.filesEditMode\">\n </taon-admin-edit-mode>\n <br />\n <hr *ngIf=\"admin.filesEditMode\" />\n <!-- <section>\n <button mat-raised-button>[TODO] Clear Files from browser cache </button> <br>\n <button mat-raised-button>[TODO] Start files export (as zip) </button> <br>\n <button mat-raised-button>[TODO] Import whole database (from zip) </button><br>\n </section> -->\n </mat-tab>\n <mat-tab *ngFor=\"let tab of tabs\" label=\"{{ tab.name }}\">\n <div\n class=\"full-tabs\"\n [style.height.px]=\"height - 150\"\n *ngIf=\"!isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </div>\n <ng-container *ngIf=\"isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </ng-container>\n </mat-tab>\n\n <!-- <mat-tab label=\"Portal\">\n <section>\n <mat-checkbox>[TODO] Maintenance Mode for whole portal</mat-checkbox>\n\n <mat-expansion-panel>\n\n <mat-expansion-panel-header>\n [TODO] Active User: 80432\n </mat-expansion-panel-header>\n <section>\n <button mat-raised-button>[TODO] Send notification to users </button><br>\n <button mat-raised-button>[TODO] Send email to users </button><br>\n </section>\n </mat-expansion-panel>\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n [TODO] Enable features\n </mat-expansion-panel-header>\n <mat-checkbox>[TODO] AB testing</mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Newsletter email question popup\n </mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Promotion popup\n </mat-checkbox> <br>\n </mat-expansion-panel>\n </section>\n </mat-tab>\n <mat-tab label=\"User\">\n Welcome in user managements\n </mat-tab>\n <mat-tab label=\"Translations\">\n Welcome in user managements\n </mat-tab> -->\n </mat-tab-group>\n </column>\n </columns-container>\n</ng-template>\n<!-- #endregion -->\n\n<!-- #region small/mobile draggable popup windows -->\n<div\n class=\"draggable-popup-mode-window\"\n *ngIf=\"\n admin.draggablePopupMode && !admin.draggablePopupModeFullScreen && !isIframe\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPosition\"\n (cdkDragEnded)=\"moved($event)\">\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </ng-scrollbar>\n</div>\n<!-- #endregion -->\n\n<!-- #region fullscreen draggable popup window -->\n<div\n class=\"draggable-popup-mode-window-full\"\n *ngIf=\"\n admin.draggablePopupMode &&\n admin.draggablePopupModeFullScreen &&\n !isIframe &&\n !reloading\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPositionZero\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region content when not in draggable (or fullscreen draggable) popup -->\n<div\n [style.height.px]=\"height\"\n *ngIf=\"\n (isIframe ||\n !isDesktop ||\n admin.draggablePopupMode ||\n admin.draggablePopupModeFullScreen) &&\n !reloading\n \"\n style=\"width: 100%; display: block\"\n class=\"content\">\n <ng-container\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region draggable popup window -->\n<mat-drawer-container\n *ngIf=\"!admin.draggablePopupMode && isDesktop && !isIframe\"\n class=\"example-container\"\n [style.height.px]=\"height\"\n style=\"background-color: transparent\"\n (backdropClick)=\"opened = false\"\n [hasBackdrop]=\"false\">\n <mat-drawer #drawer style=\"width: 580px\" [opened]=\"opened\" [mode]=\"'side'\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </mat-drawer>\n <mat-drawer-content style=\"overflow: hidden\">\n <ng-container\n *ngIf=\"!admin.draggablePopupMode && !reloading\"\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n </mat-drawer-content>\n</mat-drawer-container>\n<!-- #endregion -->\n", styles: ["section{display:block;padding:10px}section>*{margin-top:0!important;margin-bottom:10px!important}section>*:last-child{margin-bottom:0!important}:host{display:block}.draggable-column{display:block!important;width:100%!important}.admin-show-button{position:fixed;bottom:100px;left:-15px;z-index:2147483647;transform:rotate(90deg);border:0px;color:#fff;background:gray;opacity:.1;cursor:pointer}.admin-show-button:hover{opacity:1}.taon-ui-super-admin-mode{font-family:JosefinSans-Bold;text-align:right;margin-right:10px}mat-drawer{margin:0;background-color:#dcdcdc!important}.taon-header-admin-wrapper{overflow:hidden;width:100%;display:block}.taon-header-admin{background:#fff;box-shadow:0 -9px 6px 6px #000;height:47px}.taon-header-admin .logo-header img{height:18px;padding:8px;position:relative;float:left;top:7px;box-sizing:content-box;transform:scale(1.5);left:49px}.draggable-popup-mode-window{width:600px;height:500px;border:solid 1px #ccc;color:#000000de;cursor:move;justify-content:center;align-items:center;background:#fff;border-radius:4px;position:fixed;z-index:105;background-color:#dcdcdc!important;transition:box-shadow .2s cubic-bezier(0,0,.2,1);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.draggable-popup-mode-window:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.draggable-popup-mode-window-full{width:100%;height:100%;overflow:scroll;color:#000000de;justify-content:center;align-items:center;background:#fff;border-radius:4px;position:fixed;z-index:105;background-color:#dcdcdc!important}.admin-close-button{float:right}.fab-button{position:fixed;right:110px;bottom:100px;z-index:10;background-color:#dcdcdc;color:#8f8f8f}.full-tabs{padding:10px}.mat-drawer-container-full-screen{background-color:red}\n"] }]
|
|
154
|
+
}], ctorParameters: () => [{ type: i1.BreakpointsService }], propDecorators: { tabGroup: [{
|
|
155
|
+
type: ViewChild,
|
|
156
|
+
args: ['tabGroup']
|
|
157
|
+
}], taonAdminModeConfigurationDataChanged: [{
|
|
158
|
+
type: Output
|
|
159
|
+
}], taonAdminModeConfigurationData: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], onResize: [{
|
|
162
|
+
type: HostListener,
|
|
163
|
+
args: ['window:resize', ['$event']]
|
|
164
|
+
}] } });
|
|
165
|
+
;
|
|
166
|
+
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.ts
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUtBLE9BQU8sRUFBSSxpQkFBaUIsRUFBSSxTQUFTLEVBQUksWUFBWSxFQUFJLFlBQVksRUFBZ0IsS0FBSyxFQUFjLE1BQU0sRUFBSSxTQUFTLEVBQUksTUFBTSxHQUFHLE1BQU0sZUFBZSxDQUFDLENBQUEsS0FBSztBQUN2SyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFNUMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBTyxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4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Q0FBQztTQUN4QyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7OzBFQUNBO0FBUXRCO0lBSEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWTtTQUMzQixHQUFHLENBQUMsbUNBQW1DLENBQUM7U0FDeEMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDOztrRkFDSzsyRkFyRHBCLG1DQUFtQztrQkFQL0MsU0FBUzsrQkFFRSxtQ0FBbUM7dUZBb0R0QixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBUVgscUNBQXFDO3NCQUE5QyxNQUFNO2dCQUNFLDhCQUE4QjtzQkFBdEMsS0FBSztnQkE2RU4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFrRDFDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUhBQWlIIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuXG5cbmltcG9ydCB7ICAgQ2hhbmdlRGV0ZWN0b3JSZWYsICAgQ29tcG9uZW50LCAgIEV2ZW50RW1pdHRlciwgICBIb3N0TGlzdGVuZXIsICAgSW5qZWN0b3IsICAgSW5wdXQsICAgT25Jbml0LCAgIE91dHB1dCwgICBWaWV3Q2hpbGQsICAgaW5qZWN0LCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBIZWxwZXJzLCBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBUYW9uQWRtaW4gfSBmcm9tICcuL3Rhb24tYWRtaW4uc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yIH0gZnJvbSAndGFvbi1zdG9yYWdlL2Jyb3dzZXInO1xuaW1wb3J0IHsgICBDZGtEcmFnLCAgIENka0RyYWdFbmQsICAgQ2RrRHJhZ01vdmUsICAgQ2RrRHJhZ1JlbGVhc2UsICAgUG9pbnQsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBCcmVha3BvaW50c1NlcnZpY2UgfSBmcm9tICdzdGF0aWMtY29sdW1ucy9icm93c2VyJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUYW9uQWRtaW5Nb2RlVGFiIH0gZnJvbSAnLi9tb2RlbHMvdGFvbi1hZG1pbi1tb2RlLXRhYnMnO1xuaW1wb3J0IHsgVGFvbkFkbWluU2VydmljZSB9IGZyb20gJy4vdGFvbi1hZG1pbi1jb250cm9sLnNlcnZpY2UnO1xuXG5kZWNsYXJlIGNvbnN0IEVOVjogYW55O1xuXG5cbkBDb21wb25lbnQoe1xuXG4gIHNlbGVjdG9yOiAnYXBwLXRhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcblxufSlcbmV4cG9ydCBjbGFzcyBUYW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgJGRlc3Ryb3kgPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHVibGljIHJlYWRvbmx5IHRhb25BZG1pblNlcnZpY2UgPSBpbmplY3QoVGFvbkFkbWluU2VydmljZSk7XG4gIHB1YmxpYyByZWFkb25seSBpc0Rlc2t0b3A6IGJvb2xlYW47XG4gIHB1YmxpYyB0YWJzOiBUYW9uQWRtaW5Nb2RlVGFiW10gPSBbXTtcbiAgcHVibGljIGFkbWluOiBUYW9uQWRtaW4gPSB3aW5kb3dbJ3Rhb24nXSBhcyBUYW9uQWRtaW47XG4gIHB1YmxpYyBpc1dlYlNRTE1vZGU6IGJvb2xlYW4gPSBIZWxwZXJzLmlzV2ViU1FMO1xuICBwdWJsaWMgaGlkZVRhb25Ub29sc0luUHJvZHVjdGlvbjogYm9vbGVhbiA9XG4gICAgRU5WLmhpZGVUYW9uVG9vbHNJblByb2R1Y3Rpb24gJiYgRU5WLmFuZ3VsYXJQcm9kO1xuICBwdWJsaWMgaXNJZnJhbWU6IGJvb2xlYW4gPSB3aW5kb3cubG9jYXRpb24gIT09IHdpbmRvdy5wYXJlbnQubG9jYXRpb247XG4gIHB1YmxpYyBoZWlnaHQ6IG51bWJlciA9IDEwMDtcbiAgcHVibGljIG9wZW5lZE9uY2UgPSBmYWxzZTtcbiAgcHVibGljIHJlbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd1Bhc3Njb2RlOiBib29sZWFuID1cbiAgICBfLmlzU3RyaW5nKEVOVi5wYXNzY29kZSkgfHwgXy5pc09iamVjdChFTlYucGFzc2NvZGUpO1xuICBwdWJsaWMgcGFzc2NvZGU6IHN0cmluZyA9IF8uaXNTdHJpbmcoRU5WLnBhc3Njb2RlKVxuICAgID8gRU5WLnBhc3Njb2RlXG4gICAgOiBfLmlzT2JqZWN0KEVOVi5wYXNzY29kZSlcbiAgICAgID8gRU5WLnBhc3Njb2RlLmNvZGVcbiAgICAgIDogJyc7XG4gIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcgPSBfLmlzT2JqZWN0KEVOVi5wYXNzY29kZSlcbiAgICA/IEVOVi5wYXNzY29kZS5tZXNzYWdlXG4gICAgOiB2b2lkIDA7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBAU3Rvci5wcm9wZXJ0eS5pbi5sb2NhbHN0b3JhZ2VcbiAgICAuZm9yKFRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50KVxuICAgIC53aXRoRGVmYXVsdFZhbHVlKDApXG4gIGRyYWdQb3NpdGlvblg6IG51bWJlcjtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBTdG9yLnByb3BlcnR5LmluLmxvY2Fsc3RvcmFnZVxuICAgIC5mb3IoVGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25Db21wb25lbnQpXG4gICAgLndpdGhEZWZhdWx0VmFsdWUoMClcbiAgZHJhZ1Bvc2l0aW9uWTogbnVtYmVyO1xuXG4gIGRyYWdQb3NpdGlvblplcm8gPSB7IHg6IDAsIHk6IDAgfSBhcyBQb2ludDtcbiAgZHJhZ1Bvc2l0aW9uOiBQb2ludDtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBTdG9yLnByb3BlcnR5LmluLmxvY2Fsc3RvcmFnZVxuICAgIC5mb3IoVGFvbkFkbWluTW9kZUNvbmZpZ3VyYXRpb25Db21wb25lbnQpXG4gICAgLndpdGhEZWZhdWx0VmFsdWUoMClcbiAgc2VsZWN0ZWRJbmRleDogbnVtYmVyO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkdyb3VwJykgdGFiR3JvdXA7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBAU3Rvci5wcm9wZXJ0eS5pbi5sb2NhbHN0b3JhZ2VcbiAgICAuZm9yKFRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50KVxuICAgIC53aXRoRGVmYXVsdFZhbHVlKGZhbHNlKVxuICB3YXNPcGVuRHJhZ2dhYmxlUG9wdXA6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIHRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uRGF0YUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIHRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uRGF0YTogYW55ID0ge307XG4gIHB1YmxpYyBnZXQgb3BlbmVkKCkge1xuICAgIHJldHVybiAhdGhpcy5pc0lmcmFtZSAmJiB0aGlzLmFkbWluLmFkbWluUGFuZWxJc09wZW47XG4gIH1cbiAgcHVibGljIHNldCBvcGVuZWQodikge1xuICAgIGlmICh2ICYmICF0aGlzLm9wZW5lZE9uY2UpIHtcbiAgICAgIHRoaXMub3BlbmVkT25jZSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLndhc09wZW5EcmFnZ2FibGVQb3B1cCkge1xuICAgICAgdGhpcy53YXNPcGVuRHJhZ2dhYmxlUG9wdXAgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5hZG1pbi5hZG1pblBhbmVsSXNPcGVuID0gdjtcbiAgfVxuXG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJyZWFrcG9pbnRzU2VydmljZTogQnJlYWtwb2ludHNTZXJ2aWNlKSB7XG4gICAgdGhpcy5hZG1pbi5jbXAgPSB0aGlzO1xuICAgIHRoaXMuYnJlYWtwb2ludHNTZXJ2aWNlXG4gICAgICAubGlzdGVuVG8oKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuJGRlc3Ryb3kpKVxuICAgICAgLnN1YnNjcmliZShicmVha3BvaW50ID0+IHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0aGlzLmlzRGVza3RvcCA9IGJyZWFrcG9pbnQgPT09ICdkZXNrdG9wJztcbiAgICAgIH0pO1xuICAgIHRoaXMudGFvbkFkbWluU2VydmljZS5pbml0KHRoaXMpO1xuICB9XG5cblxuICByZWxvYWRUYWJzKCkge1xuICAgIHRoaXMucmVsb2FkaW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVsb2FkaW5nID0gZmFsc2U7XG4gICAgICBjb25zb2xlLmxvZygncmVsb2FkaW5nIGRvbmUnKTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgYXdhaXQgU3Rvci5hd2FpdFBlbmRpbmdPcGVyYXRpb3MoKTtcblxuXG5cbiAgICB0aGlzLmRyYWdQb3NpdGlvbiA9IHsgeDogdGhpcy5kcmFnUG9zaXRpb25YLCB5OiB0aGlzLmRyYWdQb3NpdGlvblkgfTtcbiAgICB0aGlzLm9wZW5lZE9uY2UgPSB0aGlzLm9wZW5lZDtcblxuXG5cblxuXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgYWZ0ZXIgbmdBZnRlckNvbnRlbnRJbml0IHdoZW4gdGhlIGNvbXBvbmVudCdzIHZpZXcgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuIEFwcGxpZXMgdG8gY29tcG9uZW50cyBvbmx5LlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQnIHRvIHRoZSBjbGFzcy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG5cbiAgICAgIGlmICh0aGlzLmFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSkge1xuICAgICAgICB0aGlzLnJlbG9hZFRhYnMoKTtcbiAgICAgIH1cblxuXG5cblxuXG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiRkZXN0cm95Lm5leHQodm9pZCAwKTtcbiAgICB0aGlzLiRkZXN0cm95LmNvbXBsZXRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgb25SZXNpemUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gIH1cblxuXG5cblxuICBhc3luYyB0b29nbGUoKSB7XG5cbiAgICB0aGlzLm9wZW5lZCA9ICF0aGlzLm9wZW5lZDtcbiAgfVxuXG4gIGFzeW5jIHRvb2dsZUZ1bGxTY3JlZW4oKSB7XG4gICAgdGhpcy5hZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgPSB0cnVlO1xuICAgIHRoaXMuYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlRnVsbFNjcmVlbiA9XG4gICAgICAhdGhpcy5hZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuO1xuICAgIHRoaXMucmVzZXREcmFnKCk7XG4gIH1cblxuICByZXNldERyYWcoKSB7XG4gICAgdGhpcy5kcmFnUG9zaXRpb25YID0gMDtcbiAgICB0aGlzLmRyYWdQb3NpdGlvblkgPSAwO1xuICAgIHRoaXMuZHJhZ1Bvc2l0aW9uID0geyB4OiB0aGlzLmRyYWdQb3NpdGlvblgsIHk6IHRoaXMuZHJhZ1Bvc2l0aW9uWSB9O1xuICB9XG5cbiAgbW92ZWQoYzogQ2RrRHJhZ0VuZCkge1xuICAgIHRoaXMuZHJhZ1Bvc2l0aW9uWCArPSBjLmRpc3RhbmNlLng7XG4gICAgdGhpcy5kcmFnUG9zaXRpb25ZICs9IGMuZGlzdGFuY2UueTtcbiAgfVxuXG4gIHNjcm9sbFRhYnMoZXZlbnQpIHtcbiAgICByZXR1cm47XG5cblxuXG5cblxuXG5cblxuXG5cbiAgfVxuXG5cbn1cblxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi91aS90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCI8IS0tICNyZWdpb24gYmFzaWMgZ2xvYmFsIGNvbXBvbmVudHMgIC0tPlxuPHRhb24tc2Vzc2lvbi1wYXNzY29kZVxuICAqbmdJZj1cInNob3dQYXNzY29kZVwiXG4gIFtwYXNzY29kZV09XCJwYXNzY29kZVwiXG4gIFttZXNzYWdlXT1cIm1lc3NhZ2VcIiAvPlxuPCEtLSA8dGFvbi1wcm9ncmVzcy1iYXIgW2lzRGVza3RvcF09XCJpc0Rlc2t0b3BcIj48L3Rhb24tcHJvZ3Jlc3MtYmFyPiAtLT5cbjwhLS0gPHRhb24tbm90aWZpY2F0aW9ucz48L3Rhb24tbm90aWZpY2F0aW9ucz4gLS0+XG48YnV0dG9uXG4gIG1hdC1mYWJcbiAgY2xhc3M9XCJmYWItYnV0dG9uXCJcbiAgY29sb3I9XCJhY2NlbnRcIlxuICBhcmlhLWxhYmVsPVwiVGFvbiBBZG1pbiBNb2RlXCJcbiAgKm5nSWY9XCJcbiAgICAhYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlICYmXG4gICAgaXNEZXNrdG9wICYmXG4gICAgIWlzSWZyYW1lICYmXG4gICAgIWhpZGVUYW9uVG9vbHNJblByb2R1Y3Rpb25cbiAgXCJcbiAgKGNsaWNrKT1cInRvb2dsZSgpXCI+XG4gIDxtYXQtaWNvbj5idWlsZDwvbWF0LWljb24+XG48L2J1dHRvbj5cbjwhLS0gI2VuZHJlZ2lvbiAtLT5cblxuPCEtLSAjcmVnaW9uIHNtYWxsIGhpZGRlbiBidXR0b24gLS0+XG48IS0tIDxidXR0b24gY2xhc3M9XCJhZG1pbi1zaG93LWJ1dHRvblwiXG4gICAgICAgICpuZ0lmPVwiIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSAmJiBpc0Rlc2t0b3BcIlxuICAgICAgICAoY2xpY2spPVwidG9vZ2xlKClcIj4gQWRtaW4gPC9idXR0b24+IC0tPlxuPCEtLSAjZW5kcmVnaW9uIC0tPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnROb1Njcm9sbD5cbiAgPG5nLWNvbnRlbnQ+IDwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPG5nLXNjcm9sbGJhcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnROb1Njcm9sbFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLXNjcm9sbGJhcj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gI3JlZ2lvbiBhZG1pbiB0YWJzIC0tPlxuPG5nLXRlbXBsYXRlICNhZG1pblRhYnM+XG4gIDxkaXYgY2xhc3M9XCJ0YW9uLWhlYWRlci1hZG1pbi13cmFwcGVyXCI+XG4gICAgPGNvbHVtbnMtY29udGFpbmVyXG4gICAgICBjbGFzcz1cInRhb24taGVhZGVyLWFkbWluXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2RyYWdnYWJsZS1jb2x1bW4nOiBhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgfVwiPlxuICAgICAgPGNvbHVtbiB3aWR0aD1cIjIwMFwiIGNsYXNzPVwibG9nby1oZWFkZXJcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgICpuZ0lmPVwib3BlbmVkT25jZVwiXG4gICAgICAgICAgc3JjPVwiYXNzZXRzL2Fzc2V0cy1mb3IvdGFvbi9zaGFyZWQvbG9nby1oZWFkZXItYWRtaW4tbW9kZS5wbmdcIiAvPlxuICAgICAgPC9jb2x1bW4+XG5cbiAgICAgIDxjb2x1bW4gZ3Jvdz5cbiAgICAgICAgPCEtLSA8c3Bhbj5TdXBlciBBZG1pbiBNb2RlPC9zcGFuPiAtLT5cbiAgICAgIDwvY29sdW1uPlxuXG4gICAgICA8Y29sdW1uXG4gICAgICAgIHdpZHRoPVwiNDBcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICFhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuICYmICFhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVcbiAgICAgICAgXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAqbmdJZj1cImFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlID0gZmFsc2U7XG4gICAgICAgICAgICBvcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHdhc09wZW5EcmFnZ2FibGVQb3B1cCA9IHRydWVcbiAgICAgICAgICBcIlxuICAgICAgICAgIGNsYXNzPVwiYWRtaW4tY2xvc2UtYnV0dG9uXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlIDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAqbmdJZj1cIiFhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVcIlxuICAgICAgICAgIChjbGljayk9XCJ0b29nbGUoKVwiXG4gICAgICAgICAgY2xhc3M9XCJhZG1pbi1jbG9zZS1idXR0b25cIj5cbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvY29sdW1uPlxuXG4gICAgICA8Y29sdW1uIHdpZHRoPVwiNDBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZUZ1bGxTY3JlZW5cIlxuICAgICAgICAgIGNsYXNzPVwiYWRtaW4tY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9vZ2xlRnVsbFNjcmVlbigpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmZ1bGxzY3JlZW48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlRnVsbFNjcmVlblwiXG4gICAgICAgICAgY2xhc3M9XCJhZG1pbi1jbG9zZS1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJ0b29nbGVGdWxsU2NyZWVuKClcIj5cbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2VfZnVsbHNjcmVlbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9jb2x1bW4+XG5cbiAgICAgIDxjb2x1bW4gd2lkdGg9XCI0MFwiICpuZ0lmPVwiIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZUZ1bGxTY3JlZW5cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSA9IHRydWVcIlxuICAgICAgICAgIGNsYXNzPVwiYWRtaW4tY2xvc2UtYnV0dG9uXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmxhdW5jaDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAqbmdJZj1cImFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSA9IGZhbHNlOyByZXNldERyYWcoKVwiXG4gICAgICAgICAgY2xhc3M9XCJhZG1pbi1jbG9zZS1idXR0b25cIj5cbiAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpXCI+bG9naW48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvY29sdW1uPlxuICAgIDwvY29sdW1ucy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxjb2x1bW5zLWNvbnRhaW5lclxuICAgIFtuZ0NsYXNzXT1cInsgJ2RyYWdnYWJsZS1jb2x1bW4nOiBhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgfVwiPlxuICAgIDxjb2x1bW4gZ3Jvdz5cbiAgICAgIDxtYXQtdGFiLWdyb3VwXG4gICAgICAgIGR5bmFtaWNIZWlnaHRcbiAgICAgICAgKHdoZWVsKT1cInNjcm9sbFRhYnMoJGV2ZW50KVwiXG4gICAgICAgICN0YWJHcm91cFxuICAgICAgICBbc2VsZWN0ZWRJbmRleF09XCJzZWxlY3RlZEluZGV4XCJcbiAgICAgICAgKHNlbGVjdGVkSW5kZXhDaGFuZ2UpPVwic2VsZWN0ZWRJbmRleCA9ICRldmVudFwiPlxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkRCL0NhY2hlXCI+XG4gICAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgICA8bWF0LWNhcmQ+XG4gICAgICAgICAgICAgIDxtYXQtY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlPldFQlNRTCBNT0RFPC9tYXQtY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNXZWJTUUxNb2RlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFkbWluLmtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZFwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICBhZG1pbi5zZXRLZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQoJGV2ZW50LmNoZWNrZWQpXG4gICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgIERvbid0IHJlbW92ZSBkYXRhIHdoZW4gcmVsb2FkaW5nXG4gICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDxiciAvPlxuICAgICAgICAgIDx0YW9uLWRiLWFkbWluIC8+XG4gICAgICAgIDwvbWF0LXRhYj5cblxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkZpbGVzXCIgKm5nSWY9XCJhZG1pbi5lbmFibGVkVGFicy5pbmNsdWRlcygnZmlsZXMnKVwiPlxuICAgICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhZG1pbi5maWxlc0VkaXRNb2RlXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJhZG1pbi5zZXRFZGl0TW9kZSgkZXZlbnQuY2hlY2tlZClcIlxuICAgICAgICAgICAgICA+RWRpdCBtb2RlPC9tYXQtY2hlY2tib3hcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgPCEtLSBhZG1pbi5maWxlc0VkaXRNb2RlOiB7eyBhZG1pbi5maWxlc0VkaXRNb2RlIH19IC0tPlxuICAgICAgICAgIDx0YW9uLWFkbWluLWVkaXQtbW9kZSAqbmdJZj1cImFkbWluLmZpbGVzRWRpdE1vZGVcIj5cbiAgICAgICAgICA8L3Rhb24tYWRtaW4tZWRpdC1tb2RlPlxuICAgICAgICAgIDxiciAvPlxuICAgICAgICAgIDxociAqbmdJZj1cImFkbWluLmZpbGVzRWRpdE1vZGVcIiAvPlxuICAgICAgICAgIDwhLS0gPHNlY3Rpb24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uPltUT0RPXSBDbGVhciBGaWxlcyBmcm9tIGJyb3dzZXIgY2FjaGUgPC9idXR0b24+IDxicj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24+W1RPRE9dIFN0YXJ0IGZpbGVzIGV4cG9ydCAoYXMgemlwKSA8L2J1dHRvbj4gPGJyPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbj5bVE9ET10gSW1wb3J0IHdob2xlIGRhdGFiYXNlIChmcm9tIHppcCkgPC9idXR0b24+PGJyPlxuICAgICAgICAgIDwvc2VjdGlvbj4gLS0+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCIgbGFiZWw9XCJ7eyB0YWIubmFtZSB9fVwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZnVsbC10YWJzXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0IC0gMTUwXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzSWZyYW1lXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSWZyYW1lXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbWF0LXRhYj5cblxuICAgICAgICA8IS0tIDxtYXQtdGFiIGxhYmVsPVwiUG9ydGFsXCI+XG4gICAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94PltUT0RPXSBNYWludGVuYW5jZSBNb2RlIGZvciB3aG9sZSBwb3J0YWw8L21hdC1jaGVja2JveD5cblxuICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWw+XG5cbiAgICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICAgIFtUT0RPXSBBY3RpdmUgVXNlcjogODA0MzJcbiAgICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbj5bVE9ET10gU2VuZCBub3RpZmljYXRpb24gdG8gdXNlcnMgPC9idXR0b24+PGJyPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24+W1RPRE9dIFNlbmQgZW1haWwgdG8gdXNlcnMgPC9idXR0b24+PGJyPlxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICAgIFtUT0RPXSBFbmFibGUgZmVhdHVyZXNcbiAgICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveD5bVE9ET10gQUIgdGVzdGluZzwvbWF0LWNoZWNrYm94PiA8YnI+XG4gICAgICAgICAgICAgIDxtYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgW1RPRE9dIE5ld3NsZXR0ZXIgZW1haWwgcXVlc3Rpb24gcG9wdXBcbiAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+IDxicj5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICBbVE9ET10gUHJvbW90aW9uIHBvcHVwXG4gICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PiA8YnI+XG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVXNlclwiPlxuICAgICAgICAgIFdlbGNvbWUgaW4gdXNlciBtYW5hZ2VtZW50c1xuICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVHJhbnNsYXRpb25zXCI+XG4gICAgICAgICAgV2VsY29tZSBpbiB1c2VyIG1hbmFnZW1lbnRzXG4gICAgICAgIDwvbWF0LXRhYj4gLS0+XG4gICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgPC9jb2x1bW4+XG4gIDwvY29sdW1ucy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPCEtLSAjZW5kcmVnaW9uIC0tPlxuXG48IS0tICNyZWdpb24gc21hbGwvbW9iaWxlIGRyYWdnYWJsZSBwb3B1cCB3aW5kb3dzIC0tPlxuPGRpdlxuICBjbGFzcz1cImRyYWdnYWJsZS1wb3B1cC1tb2RlLXdpbmRvd1wiXG4gICpuZ0lmPVwiXG4gICAgYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlICYmICFhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuICYmICFpc0lmcmFtZVxuICBcIlxuICBjZGtEcmFnXG4gIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJkcmFnUG9zaXRpb25cIlxuICAoY2RrRHJhZ0VuZGVkKT1cIm1vdmVkKCRldmVudClcIj5cbiAgPG5nLXNjcm9sbGJhcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkbWluVGFic1wiPjwvbmctY29udGFpbmVyPlxuICA8L25nLXNjcm9sbGJhcj5cbjwvZGl2PlxuPCEtLSAjZW5kcmVnaW9uIC0tPlxuXG48IS0tICNyZWdpb24gZnVsbHNjcmVlbiBkcmFnZ2FibGUgcG9wdXAgd2luZG93IC0tPlxuPGRpdlxuICBjbGFzcz1cImRyYWdnYWJsZS1wb3B1cC1tb2RlLXdpbmRvdy1mdWxsXCJcbiAgKm5nSWY9XCJcbiAgICBhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgJiZcbiAgICBhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuICYmXG4gICAgIWlzSWZyYW1lICYmXG4gICAgIXJlbG9hZGluZ1xuICBcIlxuICBjZGtEcmFnXG4gIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJkcmFnUG9zaXRpb25aZXJvXCI+XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRtaW5UYWJzXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjwhLS0gI2VuZHJlZ2lvbiAtLT5cblxuPCEtLSAjcmVnaW9uIGNvbnRlbnQgd2hlbiBub3QgaW4gZHJhZ2dhYmxlIChvciBmdWxsc2NyZWVuIGRyYWdnYWJsZSkgcG9wdXAgLS0+XG48ZGl2XG4gIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCJcbiAgKm5nSWY9XCJcbiAgICAoaXNJZnJhbWUgfHxcbiAgICAgICFpc0Rlc2t0b3AgfHxcbiAgICAgIGFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSB8fFxuICAgICAgYWRtaW4uZHJhZ2dhYmxlUG9wdXBNb2RlRnVsbFNjcmVlbikgJiZcbiAgICAhcmVsb2FkaW5nXG4gIFwiXG4gIHN0eWxlPVwid2lkdGg6IDEwMCU7IGRpc3BsYXk6IGJsb2NrXCJcbiAgY2xhc3M9XCJjb250ZW50XCI+XG4gIDxuZy1jb250YWluZXJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJcbiAgICAgIGFkbWluLnNjcm9sbGFibGVFbmFibGVkID8gY29udGVudCA6IGNvbnRlbnROb1Njcm9sbFxuICAgIFwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48IS0tICNlbmRyZWdpb24gLS0+XG5cbjwhLS0gI3JlZ2lvbiBkcmFnZ2FibGUgcG9wdXAgd2luZG93IC0tPlxuPG1hdC1kcmF3ZXItY29udGFpbmVyXG4gICpuZ0lmPVwiIWFkbWluLmRyYWdnYWJsZVBvcHVwTW9kZSAmJiBpc0Rlc2t0b3AgJiYgIWlzSWZyYW1lXCJcbiAgY2xhc3M9XCJleGFtcGxlLWNvbnRhaW5lclwiXG4gIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCJcbiAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm9wZW5lZCA9IGZhbHNlXCJcbiAgW2hhc0JhY2tkcm9wXT1cImZhbHNlXCI+XG4gIDxtYXQtZHJhd2VyICNkcmF3ZXIgc3R5bGU9XCJ3aWR0aDogNTgwcHhcIiBbb3BlbmVkXT1cIm9wZW5lZFwiIFttb2RlXT1cIidzaWRlJ1wiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRtaW5UYWJzXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbWF0LWRyYXdlcj5cbiAgPG1hdC1kcmF3ZXItY29udGVudCBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW5cIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIiFhZG1pbi5kcmFnZ2FibGVQb3B1cE1vZGUgJiYgIXJlbG9hZGluZ1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJcbiAgICAgICAgYWRtaW4uc2Nyb2xsYWJsZUVuYWJsZWQgPyBjb250ZW50IDogY29udGVudE5vU2Nyb2xsXG4gICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XG48L21hdC1kcmF3ZXItY29udGFpbmVyPlxuPCEtLSAjZW5kcmVnaW9uIC0tPlxuIl19
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Stor } from 'taon-storage/browser';
|
|
3
|
+
import { Helpers } from 'tnp-core/browser';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { globalPublicStorage } from '../../storage';
|
|
6
|
+
import { config } from 'tnp-config/browser';
|
|
7
|
+
import { Injectable } from '@angular/core';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
const ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];
|
|
10
|
+
export class TaonAdmin {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.scrollableEnabled = false; // TOOD false by default
|
|
13
|
+
this.onEditMode = new Subject();
|
|
14
|
+
this.onEditMode$ = this.onEditMode.asObservable();
|
|
15
|
+
this.enabledTabs = [];
|
|
16
|
+
this.scrollableEnabled = !!ENV?.useGlobalNgxScrollbar;
|
|
17
|
+
}
|
|
18
|
+
static get Instance() {
|
|
19
|
+
if (!globalPublicStorage[config.frameworkNames.productionFrameworkName]) {
|
|
20
|
+
globalPublicStorage[config.frameworkNames.productionFrameworkName] = new TaonAdmin();
|
|
21
|
+
}
|
|
22
|
+
return globalPublicStorage[config.frameworkNames.productionFrameworkName];
|
|
23
|
+
}
|
|
24
|
+
setEditMode(value) {
|
|
25
|
+
this.onEditMode.next(value);
|
|
26
|
+
}
|
|
27
|
+
setKeepWebsqlDbDataAfterReload(value) {
|
|
28
|
+
this.keepWebsqlDbDataAfterReload = value;
|
|
29
|
+
}
|
|
30
|
+
hide() {
|
|
31
|
+
this.draggablePopupMode = false;
|
|
32
|
+
this.adminPanelIsOpen = false;
|
|
33
|
+
}
|
|
34
|
+
show() {
|
|
35
|
+
this.draggablePopupMode = false;
|
|
36
|
+
this.adminPanelIsOpen = true;
|
|
37
|
+
}
|
|
38
|
+
logout() { }
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdmin, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
40
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdmin, providedIn: 'root' }); }
|
|
41
|
+
}
|
|
42
|
+
__decorate([
|
|
43
|
+
Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false),
|
|
44
|
+
__metadata("design:type", Boolean)
|
|
45
|
+
], TaonAdmin.prototype, "adminPanelIsOpen", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false),
|
|
48
|
+
__metadata("design:type", Boolean)
|
|
49
|
+
], TaonAdmin.prototype, "draggablePopupMode", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false),
|
|
52
|
+
__metadata("design:type", Boolean)
|
|
53
|
+
], TaonAdmin.prototype, "draggablePopupModeFullScreen", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false),
|
|
56
|
+
__metadata("design:type", Boolean)
|
|
57
|
+
], TaonAdmin.prototype, "keepWebsqlDbDataAfterReload", void 0);
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdmin, decorators: [{
|
|
59
|
+
type: Injectable,
|
|
60
|
+
args: [{ providedIn: 'root' }]
|
|
61
|
+
}], ctorParameters: () => [] });
|
|
62
|
+
;
|
|
63
|
+
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin.service.ts
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1hZG1pbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFJQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBSyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQXdCLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFHOUQsTUFBTSxPQUFPLFNBQVM7SUFJcEI7UUFITyxzQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FBQyx3QkFBd0I7UUFpQmxELGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQXlDN0MsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUF0RGYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7SUFDeEQsQ0FBQztJQUNNLE1BQU0sS0FBSyxRQUFRO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQztZQUN4RSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN2RixDQUFDO1FBQ0QsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDNUUsQ0FBQztJQW9DRCxXQUFXLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsOEJBQThCLENBQUMsS0FBYztRQUkzQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFJRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLEtBQUksQ0FBQzs4R0F4RUEsU0FBUztrSEFBVCxTQUFTLGNBREksTUFBTTs7QUEwQnZCO0lBRE4sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7O21EQUNwQztBQU0xQjtJQUROLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDOztxREFDbEM7QUFNNUI7SUFETixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQzs7K0RBQ3hCO0FBUXRDO0lBRE4sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7OzhEQUN6QjsyRkE3Q2pDLFNBQVM7a0JBRHJCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQTZFakMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0RkFBNEYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5cbmltcG9ydCB7IFN0b3IgfSBmcm9tICd0YW9uLXN0b3JhZ2UvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzLCBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBUYW9uQWRtaW5Nb2RlQ29uZmlndXJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IGdsb2JhbFB1YmxpY1N0b3JhZ2UgfSBmcm9tICcuLi8uLi9zdG9yYWdlJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuY29uc3QgRU5WID0gSGVscGVycy5pc0Jyb3dzZXIgPyB3aW5kb3dbJ0VOViddIDogZ2xvYmFsWydFTlYnXTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUYW9uQWRtaW4ge1xuICBwdWJsaWMgc2Nyb2xsYWJsZUVuYWJsZWQgPSBmYWxzZTsgLy8gVE9PRCBmYWxzZSBieSBkZWZhdWx0XG5cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgdGhpcy5zY3JvbGxhYmxlRW5hYmxlZCA9ICEhRU5WPy51c2VHbG9iYWxOZ3hTY3JvbGxiYXI7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBnZXQgSW5zdGFuY2UoKTogVGFvbkFkbWluIHtcbiAgICBpZiAoIWdsb2JhbFB1YmxpY1N0b3JhZ2VbY29uZmlnLmZyYW1ld29ya05hbWVzLnByb2R1Y3Rpb25GcmFtZXdvcmtOYW1lXSkge1xuICAgICAgZ2xvYmFsUHVibGljU3RvcmFnZVtjb25maWcuZnJhbWV3b3JrTmFtZXMucHJvZHVjdGlvbkZyYW1ld29ya05hbWVdID0gbmV3IFRhb25BZG1pbigpO1xuICAgIH1cbiAgICByZXR1cm4gZ2xvYmFsUHVibGljU3RvcmFnZVtjb25maWcuZnJhbWV3b3JrTmFtZXMucHJvZHVjdGlvbkZyYW1ld29ya05hbWVdO1xuICB9XG5cblxuXG4gIHB1YmxpYyBjbXA6IFRhb25BZG1pbk1vZGVDb25maWd1cmF0aW9uQ29tcG9uZW50O1xuICBwcml2YXRlIG9uRWRpdE1vZGUgPSBuZXcgU3ViamVjdCgpO1xuICBvbkVkaXRNb2RlJCA9IHRoaXMub25FZGl0TW9kZS5hc09ic2VydmFibGUoKTtcblxuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBAU3Rvci5wcm9wZXJ0eS5pbi5sb2NhbHN0b3JhZ2UuZm9yKFRhb25BZG1pbikud2l0aERlZmF1bHRWYWx1ZShmYWxzZSlcbiAgcHVibGljIGFkbWluUGFuZWxJc09wZW46IGJvb2xlYW47XG5cblxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQFN0b3IucHJvcGVydHkuaW4ubG9jYWxzdG9yYWdlLmZvcihUYW9uQWRtaW4pLndpdGhEZWZhdWx0VmFsdWUoZmFsc2UpXG4gIHB1YmxpYyBkcmFnZ2FibGVQb3B1cE1vZGU6IGJvb2xlYW47XG5cblxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQFN0b3IucHJvcGVydHkuaW4ubG9jYWxzdG9yYWdlLmZvcihUYW9uQWRtaW4pLndpdGhEZWZhdWx0VmFsdWUoZmFsc2UpXG4gIHB1YmxpYyBkcmFnZ2FibGVQb3B1cE1vZGVGdWxsU2NyZWVuOiBib29sZWFuO1xuXG5cblxuICAvKipcbiAgICogUHJvcGVydHkgdXNlZCBpbiB0YW9uXG4gICAqLyAvLyBAdHMtaWdub3JlXG4gIEBTdG9yLnByb3BlcnR5LmluLmxvY2Fsc3RvcmFnZS5mb3IoVGFvbkFkbWluKS53aXRoRGVmYXVsdFZhbHVlKGZhbHNlKVxuICBwdWJsaWMga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkOiBib29sZWFuO1xuXG5cblxuICBzZXRFZGl0TW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub25FZGl0TW9kZS5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHNldEtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCh2YWx1ZTogYm9vbGVhbikge1xuXG5cblxuICAgIHRoaXMua2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkID0gdmFsdWU7XG4gIH1cblxuICBlbmFibGVkVGFicyA9IFtdO1xuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5kcmFnZ2FibGVQb3B1cE1vZGUgPSBmYWxzZTtcbiAgICB0aGlzLmFkbWluUGFuZWxJc09wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIHNob3coKSB7XG4gICAgdGhpcy5kcmFnZ2FibGVQb3B1cE1vZGUgPSBmYWxzZTtcbiAgICB0aGlzLmFkbWluUGFuZWxJc09wZW4gPSB0cnVlO1xuICB9XG5cbiAgbG9nb3V0KCkge31cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi5zZXJ2aWNlLnRzIl19
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { _ } from 'tnp-core/browser';
|
|
2
|
+
export var Validators;
|
|
3
|
+
(function (Validators) {
|
|
4
|
+
Validators.classNameVlidation = (className, target) => {
|
|
5
|
+
setTimeout(() => {
|
|
6
|
+
if (_.isUndefined(className)) {
|
|
7
|
+
throw `[Taon]
|
|
8
|
+
Please provide "className" property for each Controller and Entity:
|
|
9
|
+
|
|
10
|
+
@Taon.Controller({ className: 'MyExampleCtrl' })
|
|
11
|
+
class MyExampleCtrl {
|
|
12
|
+
...
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@Taon.Entity({ className: 'MyExampleEntity' })
|
|
16
|
+
class MyExampleEntity {
|
|
17
|
+
...
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
Notice that minified javascript code does not preserve
|
|
21
|
+
Functions/Classes names -this is only solution to preserve classes names.
|
|
22
|
+
|
|
23
|
+
`;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return _.isUndefined(className) ? target.name : className;
|
|
27
|
+
};
|
|
28
|
+
Validators.checkIfMethodsWithReponseTYpeAlowed = (methods, current) => {
|
|
29
|
+
const defaultResponseType = 'text or JSON';
|
|
30
|
+
if (!current.responseType) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
for (let index = 0; index < methods.length; index++) {
|
|
34
|
+
const m = methods[index];
|
|
35
|
+
if (m.path === current.path && m.responseType !== current.responseType) {
|
|
36
|
+
throw new Error(`
|
|
37
|
+
[taon] you can have 2 methods with same path but differetn reponseType-s
|
|
38
|
+
|
|
39
|
+
${m.methodName}( ... path: ${m.path} ) -> responseType: ${m.responseType || defaultResponseType}
|
|
40
|
+
${current.methodName}( ... path: ${current.path} ) -> responseType: ${current.responseType}
|
|
41
|
+
|
|
42
|
+
Please change path name on of the methods.
|
|
43
|
+
|
|
44
|
+
`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
Validators.validateClassFunctions = (controllers, entities, proviers, repositories) => {
|
|
49
|
+
if (_.isArray(controllers) &&
|
|
50
|
+
controllers.filter(f => !_.isFunction(f)).length > 0) {
|
|
51
|
+
console.error('controllers', controllers);
|
|
52
|
+
throw `
|
|
53
|
+
|
|
54
|
+
Incorect value for property "controllers" inside Taon.Init(...)
|
|
55
|
+
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
if (_.isArray(entities) &&
|
|
59
|
+
entities.filter(f => !_.isFunction(f)).length > 0) {
|
|
60
|
+
console.error('entites', entities);
|
|
61
|
+
throw `
|
|
62
|
+
|
|
63
|
+
Incorect value for property "entities" inside Taon.Init(...)
|
|
64
|
+
|
|
65
|
+
`;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
Validators.preventUndefinedModel = (model, id) => {
|
|
69
|
+
if (_.isUndefined(model)) {
|
|
70
|
+
throw `Bad update by id, config, id: ${id}`;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
})(Validators || (Validators = {}));
|
|
74
|
+
;
|
|
75
|
+
({}); // @--end-of-file-for-module=taon lib/validators.ts
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3JDLE1BQU0sS0FBVyxVQUFVLENBK0YxQjtBQS9GRCxXQUFpQixVQUFVO0lBRVosNkJBQWtCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO1FBQ2hFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFFZCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsTUFBTTs7Ozs7Ozs7Ozs7Ozs7OztTQWdCTCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBSVcsOENBQW1DLEdBQUcsQ0FDakQsT0FBOEIsRUFDOUIsT0FBNEIsRUFDNUIsRUFBRTtRQUNGLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFDRCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQzs7O1lBR1osQ0FBQyxDQUFDLFVBQVUsZUFBZSxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxDQUFDLFlBQVksSUFBSSxtQkFBbUI7WUFDOUYsT0FBTyxDQUFDLFVBQVUsZUFBZSxPQUFPLENBQUMsSUFBSSx1QkFBdUIsT0FBTyxDQUFDLFlBQVk7Ozs7U0FJM0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7SUFLVyxpQ0FBc0IsR0FBRyxDQUNwQyxXQUFrQixFQUNsQixRQUFlLEVBQ2YsUUFBZSxFQUNmLFlBQW1CLEVBQ25CLEVBQUU7UUFDRixJQUNFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ3RCLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUNwRCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDMUMsTUFBTTs7OztHQUlULENBQUM7UUFDQSxDQUFDO1FBRUQsSUFDRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNuQixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDakQsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLE1BQU07Ozs7R0FJVCxDQUFDO1FBQ0EsQ0FBQztJQUNILENBQUMsQ0FBQztJQUdXLGdDQUFxQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ2pELElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0saUNBQWlDLEVBQUUsRUFBRSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDLEVBL0ZnQixVQUFVLEtBQVYsVUFBVSxRQStGMUI7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1EQUFtRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgVmFsaWRhdG9ycyB7XG5cbiAgZXhwb3J0IGNvbnN0IGNsYXNzTmFtZVZsaWRhdGlvbiA9IChjbGFzc05hbWUsIHRhcmdldDogRnVuY3Rpb24pID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcblxuICAgICAgaWYgKF8uaXNVbmRlZmluZWQoY2xhc3NOYW1lKSkge1xuICAgICAgICB0aHJvdyBgW1Rhb25dXG4gICAgICBQbGVhc2UgcHJvdmlkZSBcImNsYXNzTmFtZVwiIHByb3BlcnR5IGZvciBlYWNoIENvbnRyb2xsZXIgYW5kIEVudGl0eTpcblxuICAgICAgICAgIEBUYW9uLkNvbnRyb2xsZXIoeyBjbGFzc05hbWU6ICdNeUV4YW1wbGVDdHJsJyAgfSlcbiAgICAgICAgICBjbGFzcyBNeUV4YW1wbGVDdHJsIHtcbiAgICAgICAgICAgIC4uLlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBUYW9uLkVudGl0eSh7IGNsYXNzTmFtZTogJ015RXhhbXBsZUVudGl0eScgIH0pXG4gICAgICAgICAgY2xhc3MgTXlFeGFtcGxlRW50aXR5IHtcbiAgICAgICAgICAgIC4uLlxuICAgICAgICAgIH1cblxuICAgIE5vdGljZSB0aGF0IG1pbmlmaWVkIGphdmFzY3JpcHQgY29kZSBkb2VzIG5vdCBwcmVzZXJ2ZVxuICAgIEZ1bmN0aW9ucy9DbGFzc2VzIG5hbWVzIC10aGlzIGlzIG9ubHkgc29sdXRpb24gdG8gcHJlc2VydmUgY2xhc3NlcyBuYW1lcy5cblxuICAgICAgICBgO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIF8uaXNVbmRlZmluZWQoY2xhc3NOYW1lKSA/IHRhcmdldC5uYW1lIDogY2xhc3NOYW1lO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgY2hlY2tJZk1ldGhvZHNXaXRoUmVwb25zZVRZcGVBbG93ZWQgPSAoXG4gICAgbWV0aG9kczogTW9kZWxzLk1ldGhvZENvbmZpZ1tdLFxuICAgIGN1cnJlbnQ6IE1vZGVscy5NZXRob2RDb25maWcsXG4gICkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRSZXNwb25zZVR5cGUgPSAndGV4dCBvciBKU09OJztcbiAgICBpZiAoIWN1cnJlbnQucmVzcG9uc2VUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtZXRob2RzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgbSA9IG1ldGhvZHNbaW5kZXhdO1xuICAgICAgaWYgKG0ucGF0aCA9PT0gY3VycmVudC5wYXRoICYmIG0ucmVzcG9uc2VUeXBlICE9PSBjdXJyZW50LnJlc3BvbnNlVHlwZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICBbdGFvbl0geW91IGNhbiBoYXZlIDIgbWV0aG9kcyB3aXRoIHNhbWUgcGF0aCBidXQgZGlmZmVyZXRuIHJlcG9uc2VUeXBlLXNcblxuICAgICAgICAgICR7bS5tZXRob2ROYW1lfSggLi4uIHBhdGg6ICR7bS5wYXRofSApICAtPiByZXNwb25zZVR5cGU6ICR7bS5yZXNwb25zZVR5cGUgfHwgZGVmYXVsdFJlc3BvbnNlVHlwZX1cbiAgICAgICAgICAke2N1cnJlbnQubWV0aG9kTmFtZX0oIC4uLiBwYXRoOiAke2N1cnJlbnQucGF0aH0gKSAtPiByZXNwb25zZVR5cGU6ICR7Y3VycmVudC5yZXNwb25zZVR5cGV9XG5cbiAgICBQbGVhc2UgY2hhbmdlIHBhdGggbmFtZSBvbiBvZiB0aGUgbWV0aG9kcy5cblxuICAgICAgICBgKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cblxuXG5cbiAgZXhwb3J0IGNvbnN0IHZhbGlkYXRlQ2xhc3NGdW5jdGlvbnMgPSAoXG4gICAgY29udHJvbGxlcnM6IGFueVtdLFxuICAgIGVudGl0aWVzOiBhbnlbXSxcbiAgICBwcm92aWVyczogYW55W10sXG4gICAgcmVwb3NpdG9yaWVzOiBhbnlbXSxcbiAgKSA9PiB7XG4gICAgaWYgKFxuICAgICAgXy5pc0FycmF5KGNvbnRyb2xsZXJzKSAmJlxuICAgICAgY29udHJvbGxlcnMuZmlsdGVyKGYgPT4gIV8uaXNGdW5jdGlvbihmKSkubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcignY29udHJvbGxlcnMnLCBjb250cm9sbGVycyk7XG4gICAgICB0aHJvdyBgXG5cbiAgSW5jb3JlY3QgdmFsdWUgZm9yIHByb3BlcnR5IFwiY29udHJvbGxlcnNcIiBpbnNpZGUgVGFvbi5Jbml0KC4uLilcblxuICBgO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIF8uaXNBcnJheShlbnRpdGllcykgJiZcbiAgICAgIGVudGl0aWVzLmZpbHRlcihmID0+ICFfLmlzRnVuY3Rpb24oZikpLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2VudGl0ZXMnLCBlbnRpdGllcyk7XG4gICAgICB0aHJvdyBgXG5cbiAgSW5jb3JlY3QgdmFsdWUgZm9yIHByb3BlcnR5IFwiZW50aXRpZXNcIiBpbnNpZGUgVGFvbi5Jbml0KC4uLilcblxuICBgO1xuICAgIH1cbiAgfTtcblxuXG4gIGV4cG9ydCBjb25zdCBwcmV2ZW50VW5kZWZpbmVkTW9kZWwgPSAobW9kZWwsIGlkKSA9PiB7XG4gICAgaWYgKF8uaXNVbmRlZmluZWQobW9kZWwpKSB7XG4gICAgICB0aHJvdyBgQmFkIHVwZGF0ZSBieSBpZCwgY29uZmlnLCBpZDogJHtpZH1gO1xuICAgIH1cbiAgfTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3ZhbGlkYXRvcnMudHMiXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './lib';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvdGFvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|