taon 18.0.20 → 18.0.21
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 +114 -118
- package/assets/shared/logo-header-admin-mode.png +0 -0
- package/assets/shared/shared_folder_info.txt +1 -1
- package/bin/start.js +279 -279
- package/bin/taon +6 -6
- package/bin/taon-debug +5 -5
- package/bin/taon-debug-brk +5 -5
- package/browser/README.md +24 -24
- package/browser/esm2022/lib/base-classes/base-class.mjs +2 -2
- package/browser/esm2022/lib/base-classes/base-controller.mjs +3 -2
- package/browser/esm2022/lib/base-classes/base-migration.mjs +23 -0
- package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +20 -20
- package/browser/esm2022/lib/base-classes/base.mjs +3 -1
- package/browser/esm2022/lib/context-db-migrations.mjs +410 -0
- package/browser/esm2022/lib/create-context.mjs +17 -4
- package/browser/esm2022/lib/decorators/classes/controller-decorator.mjs +4 -1
- package/browser/esm2022/lib/decorators/classes/entity-decorator.mjs +4 -1
- package/browser/esm2022/lib/decorators/classes/migration-decorator.mjs +18 -0
- package/browser/esm2022/lib/decorators/classes/provider-decorator.mjs +4 -1
- package/browser/esm2022/lib/decorators/classes/repository-decorator.mjs +4 -1
- package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +5 -2
- package/browser/esm2022/lib/endpoint-context.mjs +83 -49
- package/browser/esm2022/lib/index.mjs +4 -1
- package/browser/esm2022/lib/inject.mjs +1 -1
- package/browser/esm2022/lib/models.mjs +30 -1
- package/browser/esm2022/lib/symbols.mjs +2 -1
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +1 -3
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +55 -37
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +17 -21
- package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +1 -1
- package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +1 -1
- package/browser/esm2022/lib/ui/taon-table/taon-table.component.mjs +1 -2
- package/browser/fesm2022/taon.mjs +673 -420
- package/browser/fesm2022/taon.mjs.map +1 -1
- package/browser/lib/base-classes/base-class.d.ts +1 -1
- package/browser/lib/base-classes/base-context.d.ts +3 -0
- package/browser/lib/base-classes/base-controller.d.ts +2 -1
- package/browser/lib/base-classes/base-migration.d.ts +12 -0
- package/browser/lib/base-classes/base.d.ts +5 -0
- package/browser/lib/context-db-migrations.d.ts +17 -0
- package/browser/lib/create-context.d.ts +4 -1
- package/browser/lib/decorators/classes/controller-decorator.d.ts +3 -0
- package/browser/lib/decorators/classes/entity-decorator.d.ts +3 -0
- package/browser/lib/decorators/classes/migration-decorator.d.ts +8 -0
- package/browser/lib/decorators/classes/provider-decorator.d.ts +3 -0
- package/browser/lib/decorators/classes/repository-decorator.d.ts +3 -0
- package/browser/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
- package/browser/lib/endpoint-context.d.ts +12 -5
- package/browser/lib/index.d.ts +14 -1
- package/browser/lib/models.d.ts +44 -19
- package/browser/lib/symbols.d.ts +1 -0
- package/browser/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +5 -8
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +8 -8
- package/client/README.md +24 -24
- package/client/esm2022/lib/base-classes/base-class.mjs +2 -2
- package/client/esm2022/lib/base-classes/base-controller.mjs +3 -2
- package/client/esm2022/lib/base-classes/base-migration.mjs +23 -0
- package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +20 -20
- package/client/esm2022/lib/base-classes/base.mjs +3 -1
- package/client/esm2022/lib/context-db-migrations.mjs +410 -0
- package/client/esm2022/lib/create-context.mjs +17 -4
- package/client/esm2022/lib/decorators/classes/controller-decorator.mjs +4 -1
- package/client/esm2022/lib/decorators/classes/entity-decorator.mjs +4 -1
- package/client/esm2022/lib/decorators/classes/migration-decorator.mjs +18 -0
- package/client/esm2022/lib/decorators/classes/provider-decorator.mjs +4 -1
- package/client/esm2022/lib/decorators/classes/repository-decorator.mjs +4 -1
- package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +5 -2
- package/client/esm2022/lib/endpoint-context.mjs +83 -49
- package/client/esm2022/lib/index.mjs +4 -1
- package/client/esm2022/lib/inject.mjs +1 -1
- package/client/esm2022/lib/models.mjs +30 -1
- package/client/esm2022/lib/symbols.mjs +2 -1
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +1 -3
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +55 -37
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +17 -21
- package/client/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +1 -1
- package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +1 -1
- package/client/esm2022/lib/ui/taon-table/taon-table.component.mjs +1 -2
- package/client/fesm2022/taon.mjs +673 -420
- package/client/fesm2022/taon.mjs.map +1 -1
- package/client/lib/base-classes/base-class.d.ts +1 -1
- package/client/lib/base-classes/base-context.d.ts +3 -0
- package/client/lib/base-classes/base-controller.d.ts +2 -1
- package/client/lib/base-classes/base-migration.d.ts +12 -0
- package/client/lib/base-classes/base.d.ts +5 -0
- package/client/lib/context-db-migrations.d.ts +17 -0
- package/client/lib/create-context.d.ts +4 -1
- package/client/lib/decorators/classes/controller-decorator.d.ts +3 -0
- package/client/lib/decorators/classes/entity-decorator.d.ts +3 -0
- package/client/lib/decorators/classes/migration-decorator.d.ts +8 -0
- package/client/lib/decorators/classes/provider-decorator.d.ts +3 -0
- package/client/lib/decorators/classes/repository-decorator.d.ts +3 -0
- package/client/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
- package/client/lib/endpoint-context.d.ts +12 -5
- package/client/lib/index.d.ts +14 -1
- package/client/lib/models.d.ts +44 -19
- package/client/lib/symbols.d.ts +1 -0
- package/client/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +5 -8
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +8 -8
- package/lib/base-classes/base-class.d.ts +1 -1
- package/lib/base-classes/base-class.js +1 -1
- package/lib/base-classes/base-context.d.ts +3 -0
- package/lib/base-classes/base-controller.d.ts +2 -1
- package/lib/base-classes/base-controller.js +2 -1
- package/lib/base-classes/base-controller.js.map +1 -1
- package/lib/base-classes/base-migration.d.ts +11 -0
- package/lib/base-classes/base-migration.js +41 -0
- package/lib/base-classes/base-migration.js.map +1 -0
- package/lib/base-classes/base-repository.js +4 -4
- package/lib/base-classes/base-repository.js.map +1 -1
- package/lib/base-classes/base-subscriber-for-entity.js +19 -19
- package/lib/base-classes/base-subscriber-for-entity.js.map +1 -1
- package/lib/base-classes/base.d.ts +5 -0
- package/lib/base-classes/base.js +2 -0
- package/lib/base-classes/base.js.map +1 -1
- package/lib/context-db-migrations.d.ts +16 -0
- package/lib/context-db-migrations.js +585 -0
- package/lib/context-db-migrations.js.map +1 -0
- package/lib/create-context.d.ts +4 -1
- package/lib/create-context.js +30 -21
- package/lib/create-context.js.map +1 -1
- package/lib/decorators/classes/controller-decorator.d.ts +3 -0
- package/lib/decorators/classes/controller-decorator.js +3 -0
- package/lib/decorators/classes/controller-decorator.js.map +1 -1
- package/lib/decorators/classes/entity-decorator.d.ts +3 -0
- package/lib/decorators/classes/entity-decorator.js +3 -0
- package/lib/decorators/classes/entity-decorator.js.map +1 -1
- package/lib/decorators/classes/migration-decorator.d.ts +7 -0
- package/lib/decorators/classes/migration-decorator.js +27 -0
- package/lib/decorators/classes/migration-decorator.js.map +1 -0
- package/lib/decorators/classes/provider-decorator.d.ts +3 -0
- package/lib/decorators/classes/provider-decorator.js +3 -0
- package/lib/decorators/classes/provider-decorator.js.map +1 -1
- package/lib/decorators/classes/repository-decorator.d.ts +3 -0
- package/lib/decorators/classes/repository-decorator.js +3 -0
- package/lib/decorators/classes/repository-decorator.js.map +1 -1
- package/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
- package/lib/decorators/classes/subscriber-decorator.js +4 -1
- package/lib/decorators/classes/subscriber-decorator.js.map +1 -1
- package/lib/endpoint-context.d.ts +12 -5
- package/lib/endpoint-context.js +234 -189
- package/lib/endpoint-context.js.map +1 -1
- package/lib/index.d.ts +14 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/inject.js +0 -2
- package/lib/inject.js.map +1 -1
- package/lib/models.d.ts +44 -19
- package/lib/models.js +45 -0
- package/lib/models.js.map +1 -1
- package/lib/symbols.d.ts +1 -0
- package/lib/symbols.js +1 -0
- package/lib/symbols.js.map +1 -1
- package/lib/ui/directives/index.js +2 -2
- package/lib/ui/index.js +2 -2
- package/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
- package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +4 -7
- package/lib/ui/taon-admin-mode-configuration/{models/taon-admin-mode-tabs.js → taon-admin.models.js} +1 -1
- package/lib/ui/taon-admin-mode-configuration/taon-admin.models.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +6 -6
- package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
- package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
- package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
- package/lib/ui/taon-progress-bar/index.js +2 -2
- package/lib/ui/taon-session-passcode/index.js +2 -2
- package/lib/ui/taon-table/index.js +2 -2
- package/migrations/index.d.ts +1 -0
- package/migrations/index.js +6 -0
- package/migrations/index.js.map +1 -0
- package/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/migrations/migrations_index._auto-generated_.js +4 -0
- package/migrations/migrations_index._auto-generated_.js.map +1 -0
- package/package.json +7 -7
- package/taon.jsonc +47 -47
- package/tmp-environment.json +32 -29
- package/websql/README.md +24 -24
- package/websql/esm2022/lib/base-classes/base-class.mjs +2 -2
- package/websql/esm2022/lib/base-classes/base-controller.mjs +3 -2
- package/websql/esm2022/lib/base-classes/base-migration.mjs +23 -0
- package/websql/esm2022/lib/base-classes/base-repository.mjs +5 -5
- package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +20 -20
- package/websql/esm2022/lib/base-classes/base.mjs +3 -1
- package/websql/esm2022/lib/context-db-migrations.mjs +269 -0
- package/websql/esm2022/lib/create-context.mjs +17 -4
- package/websql/esm2022/lib/decorators/classes/controller-decorator.mjs +4 -1
- package/websql/esm2022/lib/decorators/classes/entity-decorator.mjs +4 -1
- package/websql/esm2022/lib/decorators/classes/migration-decorator.mjs +18 -0
- package/websql/esm2022/lib/decorators/classes/provider-decorator.mjs +4 -1
- package/websql/esm2022/lib/decorators/classes/repository-decorator.mjs +4 -1
- package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +5 -2
- package/websql/esm2022/lib/endpoint-context.mjs +117 -85
- package/websql/esm2022/lib/index.mjs +4 -1
- package/websql/esm2022/lib/inject.mjs +1 -1
- package/websql/esm2022/lib/models.mjs +28 -1
- package/websql/esm2022/lib/symbols.mjs +2 -1
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +1 -3
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +55 -37
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +17 -21
- package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +1 -1
- package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +1 -1
- package/websql/esm2022/lib/ui/taon-table/taon-table.component.mjs +1 -2
- package/websql/fesm2022/taon.mjs +564 -460
- package/websql/fesm2022/taon.mjs.map +1 -1
- package/websql/lib/base-classes/base-class.d.ts +1 -1
- package/websql/lib/base-classes/base-context.d.ts +3 -0
- package/websql/lib/base-classes/base-controller.d.ts +2 -1
- package/websql/lib/base-classes/base-migration.d.ts +12 -0
- package/websql/lib/base-classes/base.d.ts +5 -0
- package/websql/lib/context-db-migrations.d.ts +17 -0
- package/websql/lib/create-context.d.ts +4 -1
- package/websql/lib/decorators/classes/controller-decorator.d.ts +3 -0
- package/websql/lib/decorators/classes/entity-decorator.d.ts +3 -0
- package/websql/lib/decorators/classes/migration-decorator.d.ts +8 -0
- package/websql/lib/decorators/classes/provider-decorator.d.ts +3 -0
- package/websql/lib/decorators/classes/repository-decorator.d.ts +3 -0
- package/websql/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
- package/websql/lib/endpoint-context.d.ts +12 -5
- package/websql/lib/index.d.ts +14 -1
- package/websql/lib/models.d.ts +44 -19
- package/websql/lib/symbols.d.ts +1 -0
- package/websql/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +5 -8
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +8 -8
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +0 -5
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +0 -115
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +0 -50
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +0 -5
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +0 -61
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +0 -21
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +0 -4
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +0 -32
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +0 -54
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -3
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -33
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -16
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -3
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -17
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -10
- package/browser/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +0 -6
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -18
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -17
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +0 -5
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +0 -115
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +0 -50
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +0 -5
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +0 -61
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +0 -21
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +0 -4
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +0 -32
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +0 -54
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -3
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -33
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -16
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -3
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -17
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -10
- package/client/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +0 -6
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -18
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -17
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -2
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +0 -5
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js.map +0 -1
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -29
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -2
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.d.ts +0 -1
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +0 -5
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js.map +0 -1
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +0 -8
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -2
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +0 -5
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js.map +0 -1
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -13
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -2
- package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js.map +0 -1
- package/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -14
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -2
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +0 -5
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +0 -115
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +0 -50
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +0 -5
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +0 -61
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +0 -21
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +0 -4
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +0 -32
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +0 -54
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -3
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -33
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -16
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -3
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -17
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -10
- package/websql/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +0 -6
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -18
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -17
- /package/lib/ui/taon-admin-mode-configuration/{models/taon-admin-mode-tabs.d.ts → taon-admin.models.d.ts} +0 -0
|
@@ -2,22 +2,21 @@ import 'reflect-metadata';
|
|
|
2
2
|
import * as coreHelpers from 'tnp-core/browser';
|
|
3
3
|
import { _ as _$1, Helpers } from 'tnp-core/browser';
|
|
4
4
|
import { Models as Models$1, RestHeaders, Resource, Mapping } from 'ng2-rest/browser';
|
|
5
|
-
import { OrignalClassKey } from 'taon-typeorm/browser';
|
|
5
|
+
import { OrignalClassKey, Table } from 'taon-typeorm/browser';
|
|
6
6
|
import { SYMBOL, CLASS } from 'typescript-class-helpers/browser';
|
|
7
7
|
import * as JSON5 from 'json5';
|
|
8
8
|
import { __decorate, __param, __metadata } from 'tslib';
|
|
9
9
|
import { JSON10 } from 'json10/browser';
|
|
10
|
-
import { Observable, from, Subject, interval, tap, defer, fromEvent, map, debounceTime, distinctUntilChanged, share, Subscription, takeUntil
|
|
10
|
+
import { Observable, from, Subject, interval, tap, defer, fromEvent, map, debounceTime, distinctUntilChanged, share, Subscription, takeUntil } from 'rxjs';
|
|
11
11
|
import axios from 'axios';
|
|
12
12
|
import { io } from 'socket.io-client';
|
|
13
13
|
import { Stor } from 'taon-storage/browser';
|
|
14
|
-
import { config } from 'tnp-config/browser';
|
|
15
14
|
import * as i0 from '@angular/core';
|
|
16
15
|
import { Injectable, inject as inject$1, EventEmitter, Directive, Input, Output, HostBinding, HostListener, Pipe, NgModule, Component, DestroyRef, Self, ViewChild, ChangeDetectorRef } from '@angular/core';
|
|
17
16
|
import { Log, Level } from 'ng2-logger/browser';
|
|
18
17
|
import * as i1 from '@angular/platform-browser';
|
|
19
18
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
20
|
-
import * as
|
|
19
|
+
import * as i6$1 from '@angular/cdk/drag-drop';
|
|
21
20
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
22
21
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
23
22
|
import { CdkStepperModule } from '@angular/cdk/stepper';
|
|
@@ -26,11 +25,11 @@ import { CdkTreeModule } from '@angular/cdk/tree';
|
|
|
26
25
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
27
26
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
28
27
|
import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
|
|
29
|
-
import * as
|
|
28
|
+
import * as i7 from '@angular/material/button';
|
|
30
29
|
import { MatButtonModule } from '@angular/material/button';
|
|
31
|
-
import * as
|
|
30
|
+
import * as i8 from '@angular/material/card';
|
|
32
31
|
import { MatCardModule } from '@angular/material/card';
|
|
33
|
-
import * as
|
|
32
|
+
import * as i9 from '@angular/material/checkbox';
|
|
34
33
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
35
34
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
36
35
|
import { MatStepperModule } from '@angular/material/stepper';
|
|
@@ -39,7 +38,6 @@ import { MatExpansionModule } from '@angular/material/expansion';
|
|
|
39
38
|
import { MatGridListModule } from '@angular/material/grid-list';
|
|
40
39
|
import * as i6 from '@angular/material/icon';
|
|
41
40
|
import { MatIconModule } from '@angular/material/icon';
|
|
42
|
-
import * as i11$1 from '@angular/material/list';
|
|
43
41
|
import { MatListModule } from '@angular/material/list';
|
|
44
42
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
45
43
|
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
@@ -53,19 +51,19 @@ import { MatNativeDateModule, MatRippleModule } from '@angular/material/core';
|
|
|
53
51
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
54
52
|
import { MatRadioModule } from '@angular/material/radio';
|
|
55
53
|
import { MatSelectModule } from '@angular/material/select';
|
|
56
|
-
import * as
|
|
54
|
+
import * as i11 from '@angular/material/sidenav';
|
|
57
55
|
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
58
56
|
import { MatSliderModule } from '@angular/material/slider';
|
|
59
57
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
60
58
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
61
59
|
import { MatSortModule } from '@angular/material/sort';
|
|
62
60
|
import { MatTableModule } from '@angular/material/table';
|
|
63
|
-
import * as
|
|
61
|
+
import * as i12 from '@angular/material/tabs';
|
|
64
62
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
65
63
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
66
64
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
67
65
|
import { MatTreeModule } from '@angular/material/tree';
|
|
68
|
-
import * as
|
|
66
|
+
import * as i3 from '@angular/common';
|
|
69
67
|
import { CommonModule } from '@angular/common';
|
|
70
68
|
import * as i1$1 from '@ngneat/hot-toast';
|
|
71
69
|
import * as i2 from '@angular/forms';
|
|
@@ -75,21 +73,14 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
75
73
|
import * as i1$2 from 'ngx-progressbar';
|
|
76
74
|
import { NgProgressModule } from 'ngx-progressbar';
|
|
77
75
|
import * as _ from 'lodash';
|
|
78
|
-
import * as i2$
|
|
76
|
+
import * as i2$1 from '@angular/material/form-field';
|
|
79
77
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
80
|
-
import * as i3 from '@ng-matero/extensions/grid';
|
|
78
|
+
import * as i3$1 from '@ng-matero/extensions/grid';
|
|
81
79
|
import { MtxGridModule } from '@ng-matero/extensions/grid';
|
|
82
80
|
import * as i1$3 from 'static-columns/browser';
|
|
83
81
|
import { StaticColumnsModule } from 'static-columns/browser';
|
|
84
|
-
import * as
|
|
82
|
+
import * as i5 from 'ngx-scrollbar';
|
|
85
83
|
import { NgScrollbarModule } from 'ngx-scrollbar';
|
|
86
|
-
import * as i1$4 from '@angular/router';
|
|
87
|
-
import 'brace';
|
|
88
|
-
import 'brace/mode/css';
|
|
89
|
-
import 'brace/mode/typescript';
|
|
90
|
-
import 'brace/theme/github';
|
|
91
|
-
import * as i13 from 'ngx-pipes';
|
|
92
|
-
import { NgArrayPipesModule } from 'ngx-pipes';
|
|
93
84
|
|
|
94
85
|
var Symbols;
|
|
95
86
|
(function (Symbols) {
|
|
@@ -155,6 +146,7 @@ var Symbols;
|
|
|
155
146
|
repository: `repository:options`,
|
|
156
147
|
provider: `provider:options`,
|
|
157
148
|
subscriber: `subscriber:options`,
|
|
149
|
+
migration: `migration:options`,
|
|
158
150
|
},
|
|
159
151
|
};
|
|
160
152
|
Symbols.old = {
|
|
@@ -564,6 +556,7 @@ var Models;
|
|
|
564
556
|
ClassType["REPOSITORY"] = "REPOSITORY";
|
|
565
557
|
ClassType["PROVIDER"] = "PROVIDER";
|
|
566
558
|
ClassType["SUBSCRIBER"] = "SUBSCRIBER";
|
|
559
|
+
ClassType["MIGRATION"] = "MIGRATION";
|
|
567
560
|
})(ClassType = Models.ClassType || (Models.ClassType = {}));
|
|
568
561
|
Models.ClassTypeKey = {
|
|
569
562
|
[ClassType.ENTITY]: 'entities',
|
|
@@ -571,7 +564,34 @@ var Models;
|
|
|
571
564
|
[ClassType.REPOSITORY]: 'repositories',
|
|
572
565
|
[ClassType.PROVIDER]: 'providers',
|
|
573
566
|
[ClassType.SUBSCRIBER]: 'subscribers',
|
|
567
|
+
[ClassType.MIGRATION]: 'migrations',
|
|
574
568
|
};
|
|
569
|
+
class DatabaseConfigTypeOrm {
|
|
570
|
+
}
|
|
571
|
+
Models.DatabaseConfigTypeOrm = DatabaseConfigTypeOrm;
|
|
572
|
+
class DatabaseConfig extends DatabaseConfigTypeOrm {
|
|
573
|
+
static from(databasePartialConfig) {
|
|
574
|
+
return _$1.merge(new DatabaseConfig(), databasePartialConfig);
|
|
575
|
+
}
|
|
576
|
+
get databaseConfigTypeORM() {
|
|
577
|
+
/* */
|
|
578
|
+
/* */
|
|
579
|
+
/* */
|
|
580
|
+
/* */
|
|
581
|
+
/* */
|
|
582
|
+
/* */
|
|
583
|
+
/* */
|
|
584
|
+
/* */
|
|
585
|
+
/* */
|
|
586
|
+
/* */
|
|
587
|
+
/* */
|
|
588
|
+
/* */
|
|
589
|
+
/* */
|
|
590
|
+
/* */
|
|
591
|
+
return (void 0);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
Models.DatabaseConfig = DatabaseConfig;
|
|
575
595
|
class DecoratorAbstractOpt {
|
|
576
596
|
}
|
|
577
597
|
Models.DecoratorAbstractOpt = DecoratorAbstractOpt;
|
|
@@ -769,6 +789,9 @@ var Http;
|
|
|
769
789
|
;
|
|
770
790
|
({}); // @--end-of-file-for-module=taon lib/decorators/http/http-decorators.ts
|
|
771
791
|
|
|
792
|
+
/**
|
|
793
|
+
* Controller decorator
|
|
794
|
+
*/
|
|
772
795
|
function TaonController(options) {
|
|
773
796
|
return function (constructor) {
|
|
774
797
|
ClassHelpers.setName(constructor, options?.className);
|
|
@@ -947,7 +970,8 @@ class BaseInjector {
|
|
|
947
970
|
|
|
948
971
|
let BaseController = class BaseController extends BaseInjector {
|
|
949
972
|
/**
|
|
950
|
-
*
|
|
973
|
+
* THIS ONLY WORKS IF NO MIGRATIONS PROVIDED IN CONFIG
|
|
974
|
+
* Purpose: init example data for db.
|
|
951
975
|
*/
|
|
952
976
|
initExampleDbData() {
|
|
953
977
|
return void 0;
|
|
@@ -1223,7 +1247,7 @@ BaseCrudController = __decorate([
|
|
|
1223
1247
|
class BaseClass {
|
|
1224
1248
|
/**
|
|
1225
1249
|
* class initialization hook
|
|
1226
|
-
* taon after class
|
|
1250
|
+
* taon after class instance creation
|
|
1227
1251
|
*/
|
|
1228
1252
|
async _() { }
|
|
1229
1253
|
clone(override) {
|
|
@@ -1265,6 +1289,9 @@ BaseAbstractEntity = __decorate([
|
|
|
1265
1289
|
;
|
|
1266
1290
|
({}); // @--end-of-file-for-module=taon lib/base-classes/base-abstract-entity.ts
|
|
1267
1291
|
|
|
1292
|
+
/**
|
|
1293
|
+
* Repository decorator
|
|
1294
|
+
*/
|
|
1268
1295
|
function TaonRepository(options) {
|
|
1269
1296
|
return function (constructor) {
|
|
1270
1297
|
Reflect.defineMetadata(Symbols.metadata.options.repository, options, constructor);
|
|
@@ -2898,11 +2925,423 @@ class RealtimeCore {
|
|
|
2898
2925
|
;
|
|
2899
2926
|
({}); // @--end-of-file-for-module=taon lib/realtime/realtime-core.ts
|
|
2900
2927
|
|
|
2928
|
+
class ContextDbMigrations {
|
|
2929
|
+
constructor(ctx) {
|
|
2930
|
+
this.ctx = ctx;
|
|
2931
|
+
this.DEFAULT_MIGRATION_TABLE_NAME = 'TAON_MIGRATION_META';
|
|
2932
|
+
this.MIGRATION_STATUS_COMPLETED = 'completed';
|
|
2933
|
+
this.MIGRATION_STATUS_PENDING = 'pending';
|
|
2934
|
+
this.table = new Table({
|
|
2935
|
+
name: this.DEFAULT_MIGRATION_TABLE_NAME,
|
|
2936
|
+
columns: [
|
|
2937
|
+
{
|
|
2938
|
+
name: 'id',
|
|
2939
|
+
type: 'integer',
|
|
2940
|
+
isPrimary: true, // Mark it as the primary key
|
|
2941
|
+
isGenerated: true, // Enable auto-generation
|
|
2942
|
+
generationStrategy: 'increment', // Use auto-increment strategy
|
|
2943
|
+
},
|
|
2944
|
+
{
|
|
2945
|
+
name: 'name',
|
|
2946
|
+
type: 'varchar',
|
|
2947
|
+
length: '255',
|
|
2948
|
+
isUnique: true, // Ensure the name is unique
|
|
2949
|
+
isNullable: false, // Ensure this field is required
|
|
2950
|
+
},
|
|
2951
|
+
{
|
|
2952
|
+
name: 'context',
|
|
2953
|
+
type: 'varchar',
|
|
2954
|
+
length: '255',
|
|
2955
|
+
isNullable: false, // Optional context for migrations (e.g., tenant or module name)
|
|
2956
|
+
},
|
|
2957
|
+
{
|
|
2958
|
+
name: 'applied_at',
|
|
2959
|
+
type: 'timestamp',
|
|
2960
|
+
default: 'CURRENT_TIMESTAMP', // Automatically set the timestamp
|
|
2961
|
+
isNullable: true,
|
|
2962
|
+
},
|
|
2963
|
+
{
|
|
2964
|
+
name: 'status',
|
|
2965
|
+
type: 'varchar',
|
|
2966
|
+
length: '50',
|
|
2967
|
+
default: `'${this.MIGRATION_STATUS_COMPLETED}'`,
|
|
2968
|
+
isNullable: false,
|
|
2969
|
+
},
|
|
2970
|
+
],
|
|
2971
|
+
});
|
|
2972
|
+
}
|
|
2973
|
+
async ensureMigrationTableExists() {
|
|
2974
|
+
/* */
|
|
2975
|
+
/* */
|
|
2976
|
+
/* */
|
|
2977
|
+
/* */
|
|
2978
|
+
/* */
|
|
2979
|
+
/* */
|
|
2980
|
+
/* */
|
|
2981
|
+
/* */
|
|
2982
|
+
/* */
|
|
2983
|
+
/* */
|
|
2984
|
+
/* */
|
|
2985
|
+
/* */
|
|
2986
|
+
/* */
|
|
2987
|
+
/* */
|
|
2988
|
+
/* */
|
|
2989
|
+
/* */
|
|
2990
|
+
/* */
|
|
2991
|
+
/* */
|
|
2992
|
+
/* */
|
|
2993
|
+
/* */
|
|
2994
|
+
/* */
|
|
2995
|
+
/* */
|
|
2996
|
+
/* */
|
|
2997
|
+
/* */
|
|
2998
|
+
/* */
|
|
2999
|
+
/* */
|
|
3000
|
+
/* */
|
|
3001
|
+
/* */
|
|
3002
|
+
/* */
|
|
3003
|
+
/* */
|
|
3004
|
+
/* */
|
|
3005
|
+
/* */
|
|
3006
|
+
/* */
|
|
3007
|
+
/* */
|
|
3008
|
+
/* */
|
|
3009
|
+
/* */
|
|
3010
|
+
/* */
|
|
3011
|
+
/* */
|
|
3012
|
+
/* */
|
|
3013
|
+
/* */
|
|
3014
|
+
/* */
|
|
3015
|
+
/* */
|
|
3016
|
+
/* */
|
|
3017
|
+
return (void 0);
|
|
3018
|
+
}
|
|
3019
|
+
async revertMigrationToTimestamp(timestamp) {
|
|
3020
|
+
/* */
|
|
3021
|
+
/* */
|
|
3022
|
+
/* */
|
|
3023
|
+
/* */
|
|
3024
|
+
/* */
|
|
3025
|
+
/* */
|
|
3026
|
+
/* */
|
|
3027
|
+
/* */
|
|
3028
|
+
/* */
|
|
3029
|
+
/* */
|
|
3030
|
+
/* */
|
|
3031
|
+
/* */
|
|
3032
|
+
/* */
|
|
3033
|
+
/* */
|
|
3034
|
+
/* */
|
|
3035
|
+
/* */
|
|
3036
|
+
/* */
|
|
3037
|
+
/* */
|
|
3038
|
+
/* */
|
|
3039
|
+
/* */
|
|
3040
|
+
/* */
|
|
3041
|
+
/* */
|
|
3042
|
+
/* */
|
|
3043
|
+
/* */
|
|
3044
|
+
/* */
|
|
3045
|
+
/* */
|
|
3046
|
+
/* */
|
|
3047
|
+
/* */
|
|
3048
|
+
/* */
|
|
3049
|
+
/* */
|
|
3050
|
+
/* */
|
|
3051
|
+
/* */
|
|
3052
|
+
/* */
|
|
3053
|
+
/* */
|
|
3054
|
+
/* */
|
|
3055
|
+
/* */
|
|
3056
|
+
/* */
|
|
3057
|
+
/* */
|
|
3058
|
+
/* */
|
|
3059
|
+
/* */
|
|
3060
|
+
/* */
|
|
3061
|
+
/* */
|
|
3062
|
+
/* */
|
|
3063
|
+
/* */
|
|
3064
|
+
/* */
|
|
3065
|
+
/* */
|
|
3066
|
+
/* */
|
|
3067
|
+
/* */
|
|
3068
|
+
/* */
|
|
3069
|
+
/* */
|
|
3070
|
+
/* */
|
|
3071
|
+
/* */
|
|
3072
|
+
/* */
|
|
3073
|
+
/* */
|
|
3074
|
+
/* */
|
|
3075
|
+
/* */
|
|
3076
|
+
/* */
|
|
3077
|
+
/* */
|
|
3078
|
+
/* */
|
|
3079
|
+
/* */
|
|
3080
|
+
/* */
|
|
3081
|
+
/* */
|
|
3082
|
+
/* */
|
|
3083
|
+
/* */
|
|
3084
|
+
/* */
|
|
3085
|
+
/* */
|
|
3086
|
+
/* */
|
|
3087
|
+
/* */
|
|
3088
|
+
/* */
|
|
3089
|
+
/* */
|
|
3090
|
+
/* */
|
|
3091
|
+
/* */
|
|
3092
|
+
/* */
|
|
3093
|
+
/* */
|
|
3094
|
+
/* */
|
|
3095
|
+
/* */
|
|
3096
|
+
/* */
|
|
3097
|
+
/* */
|
|
3098
|
+
/* */
|
|
3099
|
+
/* */
|
|
3100
|
+
/* */
|
|
3101
|
+
/* */
|
|
3102
|
+
/* */
|
|
3103
|
+
/* */
|
|
3104
|
+
/* */
|
|
3105
|
+
/* */
|
|
3106
|
+
/* */
|
|
3107
|
+
/* */
|
|
3108
|
+
/* */
|
|
3109
|
+
/* */
|
|
3110
|
+
/* */
|
|
3111
|
+
/* */
|
|
3112
|
+
/* */
|
|
3113
|
+
/* */
|
|
3114
|
+
return (void 0);
|
|
3115
|
+
}
|
|
3116
|
+
async clearMigrationTable() {
|
|
3117
|
+
/* */
|
|
3118
|
+
/* */
|
|
3119
|
+
/* */
|
|
3120
|
+
/* */
|
|
3121
|
+
/* */
|
|
3122
|
+
/* */
|
|
3123
|
+
/* */
|
|
3124
|
+
/* */
|
|
3125
|
+
/* */
|
|
3126
|
+
/* */
|
|
3127
|
+
/* */
|
|
3128
|
+
/* */
|
|
3129
|
+
/* */
|
|
3130
|
+
/* */
|
|
3131
|
+
/* */
|
|
3132
|
+
/* */
|
|
3133
|
+
/* */
|
|
3134
|
+
/* */
|
|
3135
|
+
return (void 0);
|
|
3136
|
+
}
|
|
3137
|
+
async markAllMigrationsAsApplied() {
|
|
3138
|
+
/* */
|
|
3139
|
+
/* */
|
|
3140
|
+
/* */
|
|
3141
|
+
/* */
|
|
3142
|
+
/* */
|
|
3143
|
+
/* */
|
|
3144
|
+
/* */
|
|
3145
|
+
/* */
|
|
3146
|
+
/* */
|
|
3147
|
+
/* */
|
|
3148
|
+
/* */
|
|
3149
|
+
/* */
|
|
3150
|
+
/* */
|
|
3151
|
+
/* */
|
|
3152
|
+
/* */
|
|
3153
|
+
/* */
|
|
3154
|
+
/* */
|
|
3155
|
+
/* */
|
|
3156
|
+
/* */
|
|
3157
|
+
/* */
|
|
3158
|
+
/* */
|
|
3159
|
+
/* */
|
|
3160
|
+
/* */
|
|
3161
|
+
/* */
|
|
3162
|
+
/* */
|
|
3163
|
+
/* */
|
|
3164
|
+
/* */
|
|
3165
|
+
/* */
|
|
3166
|
+
/* */
|
|
3167
|
+
/* */
|
|
3168
|
+
/* */
|
|
3169
|
+
/* */
|
|
3170
|
+
/* */
|
|
3171
|
+
/* */
|
|
3172
|
+
/* */
|
|
3173
|
+
/* */
|
|
3174
|
+
/* */
|
|
3175
|
+
/* */
|
|
3176
|
+
/* */
|
|
3177
|
+
/* */
|
|
3178
|
+
/* */
|
|
3179
|
+
/* */
|
|
3180
|
+
/* */
|
|
3181
|
+
/* */
|
|
3182
|
+
/* */
|
|
3183
|
+
/* */
|
|
3184
|
+
/* */
|
|
3185
|
+
/* */
|
|
3186
|
+
/* */
|
|
3187
|
+
/* */
|
|
3188
|
+
/* */
|
|
3189
|
+
/* */
|
|
3190
|
+
/* */
|
|
3191
|
+
/* */
|
|
3192
|
+
/* */
|
|
3193
|
+
/* */
|
|
3194
|
+
/* */
|
|
3195
|
+
/* */
|
|
3196
|
+
/* */
|
|
3197
|
+
/* */
|
|
3198
|
+
/* */
|
|
3199
|
+
/* */
|
|
3200
|
+
/* */
|
|
3201
|
+
/* */
|
|
3202
|
+
/* */
|
|
3203
|
+
/* */
|
|
3204
|
+
/* */
|
|
3205
|
+
/* */
|
|
3206
|
+
/* */
|
|
3207
|
+
/* */
|
|
3208
|
+
/* */
|
|
3209
|
+
return (void 0);
|
|
3210
|
+
}
|
|
3211
|
+
async runAllNotCompletedMigrations() {
|
|
3212
|
+
/* */
|
|
3213
|
+
/* */
|
|
3214
|
+
/* */
|
|
3215
|
+
/* */
|
|
3216
|
+
/* */
|
|
3217
|
+
/* */
|
|
3218
|
+
/* */
|
|
3219
|
+
/* */
|
|
3220
|
+
/* */
|
|
3221
|
+
/* */
|
|
3222
|
+
/* */
|
|
3223
|
+
/* */
|
|
3224
|
+
/* */
|
|
3225
|
+
/* */
|
|
3226
|
+
/* */
|
|
3227
|
+
/* */
|
|
3228
|
+
/* */
|
|
3229
|
+
/* */
|
|
3230
|
+
/* */
|
|
3231
|
+
/* */
|
|
3232
|
+
/* */
|
|
3233
|
+
/* */
|
|
3234
|
+
/* */
|
|
3235
|
+
/* */
|
|
3236
|
+
/* */
|
|
3237
|
+
/* */
|
|
3238
|
+
/* */
|
|
3239
|
+
/* */
|
|
3240
|
+
/* */
|
|
3241
|
+
/* */
|
|
3242
|
+
/* */
|
|
3243
|
+
/* */
|
|
3244
|
+
/* */
|
|
3245
|
+
/* */
|
|
3246
|
+
/* */
|
|
3247
|
+
/* */
|
|
3248
|
+
/* */
|
|
3249
|
+
/* */
|
|
3250
|
+
/* */
|
|
3251
|
+
/* */
|
|
3252
|
+
/* */
|
|
3253
|
+
/* */
|
|
3254
|
+
/* */
|
|
3255
|
+
/* */
|
|
3256
|
+
/* */
|
|
3257
|
+
/* */
|
|
3258
|
+
/* */
|
|
3259
|
+
/* */
|
|
3260
|
+
/* */
|
|
3261
|
+
/* */
|
|
3262
|
+
/* */
|
|
3263
|
+
/* */
|
|
3264
|
+
/* */
|
|
3265
|
+
/* */
|
|
3266
|
+
/* */
|
|
3267
|
+
/* */
|
|
3268
|
+
/* */
|
|
3269
|
+
/* */
|
|
3270
|
+
/* */
|
|
3271
|
+
/* */
|
|
3272
|
+
/* */
|
|
3273
|
+
/* */
|
|
3274
|
+
/* */
|
|
3275
|
+
/* */
|
|
3276
|
+
/* */
|
|
3277
|
+
/* */
|
|
3278
|
+
/* */
|
|
3279
|
+
/* */
|
|
3280
|
+
/* */
|
|
3281
|
+
/* */
|
|
3282
|
+
/* */
|
|
3283
|
+
/* */
|
|
3284
|
+
/* */
|
|
3285
|
+
/* */
|
|
3286
|
+
/* */
|
|
3287
|
+
/* */
|
|
3288
|
+
/* */
|
|
3289
|
+
/* */
|
|
3290
|
+
/* */
|
|
3291
|
+
/* */
|
|
3292
|
+
/* */
|
|
3293
|
+
/* */
|
|
3294
|
+
/* */
|
|
3295
|
+
/* */
|
|
3296
|
+
/* */
|
|
3297
|
+
/* */
|
|
3298
|
+
/* */
|
|
3299
|
+
/* */
|
|
3300
|
+
/* */
|
|
3301
|
+
/* */
|
|
3302
|
+
/* */
|
|
3303
|
+
/* */
|
|
3304
|
+
/* */
|
|
3305
|
+
/* */
|
|
3306
|
+
/* */
|
|
3307
|
+
/* */
|
|
3308
|
+
/* */
|
|
3309
|
+
/* */
|
|
3310
|
+
/* */
|
|
3311
|
+
/* */
|
|
3312
|
+
/* */
|
|
3313
|
+
/* */
|
|
3314
|
+
/* */
|
|
3315
|
+
/* */
|
|
3316
|
+
/* */
|
|
3317
|
+
/* */
|
|
3318
|
+
/* */
|
|
3319
|
+
/* */
|
|
3320
|
+
/* */
|
|
3321
|
+
/* */
|
|
3322
|
+
/* */
|
|
3323
|
+
/* */
|
|
3324
|
+
/* */
|
|
3325
|
+
/* */
|
|
3326
|
+
/* */
|
|
3327
|
+
/* */
|
|
3328
|
+
/* */
|
|
3329
|
+
/* */
|
|
3330
|
+
/* */
|
|
3331
|
+
return (void 0);
|
|
3332
|
+
}
|
|
3333
|
+
}
|
|
3334
|
+
;
|
|
3335
|
+
({}); // @--end-of-file-for-module=taon lib/context-db-migrations.ts
|
|
3336
|
+
|
|
2901
3337
|
/* eslint-disable @typescript-eslint/typedef */
|
|
2902
3338
|
class EndpointContext {
|
|
2903
3339
|
static initNgZone(ngZone) {
|
|
2904
3340
|
this.ngZone = ngZone;
|
|
2905
3341
|
}
|
|
3342
|
+
get isRunOrRevertOnlyMigrationAppStart() {
|
|
3343
|
+
return !!(this.onlyMigrationRun || this.onlyMigrationRevertToTimestamp);
|
|
3344
|
+
}
|
|
2906
3345
|
get realtimeClient() {
|
|
2907
3346
|
return this.realtime.client;
|
|
2908
3347
|
}
|
|
@@ -2933,6 +3372,12 @@ class EndpointContext {
|
|
|
2933
3372
|
}
|
|
2934
3373
|
return this.config?.logs === true;
|
|
2935
3374
|
}
|
|
3375
|
+
get logMigrations() {
|
|
3376
|
+
if (_$1.isObject(this.config?.logs)) {
|
|
3377
|
+
return !!this.config.logs.migrations;
|
|
3378
|
+
}
|
|
3379
|
+
return this.config?.logs === true;
|
|
3380
|
+
}
|
|
2936
3381
|
constructor(originalConfig, configFn) {
|
|
2937
3382
|
this.originalConfig = originalConfig;
|
|
2938
3383
|
this.configFn = configFn;
|
|
@@ -2942,6 +3387,7 @@ class EndpointContext {
|
|
|
2942
3387
|
* (with init() function )
|
|
2943
3388
|
*/
|
|
2944
3389
|
this.inited = false;
|
|
3390
|
+
this.dbMigrations = new ContextDbMigrations(this);
|
|
2945
3391
|
this.localInstaceObjSymbol = Symbol('localInstaceObjSymbol');
|
|
2946
3392
|
/**
|
|
2947
3393
|
* all instances of classes from context
|
|
@@ -2956,12 +3402,15 @@ class EndpointContext {
|
|
|
2956
3402
|
Models.ClassType.PROVIDER,
|
|
2957
3403
|
Models.ClassType.REPOSITORY,
|
|
2958
3404
|
Models.ClassType.SUBSCRIBER,
|
|
3405
|
+
Models.ClassType.MIGRATION,
|
|
2959
3406
|
];
|
|
2960
3407
|
this.allTypesfromContexts = [
|
|
2961
3408
|
...this.injectableTypesfromContexts,
|
|
2962
3409
|
Models.ClassType.ENTITY,
|
|
2963
3410
|
];
|
|
2964
3411
|
this.expressApp = {};
|
|
3412
|
+
this.onlyMigrationRun = false;
|
|
3413
|
+
this.onlyMigrationRevertToTimestamp = undefined;
|
|
2965
3414
|
this.entitiesTriggers = {};
|
|
2966
3415
|
this.cloneClassWithNewMetadata = ({ BaseClass, className, config, ctx, classType, }) => {
|
|
2967
3416
|
const cloneClass = () => {
|
|
@@ -3029,9 +3478,16 @@ class EndpointContext {
|
|
|
3029
3478
|
};
|
|
3030
3479
|
}
|
|
3031
3480
|
async init(options) {
|
|
3032
|
-
const { initFromRecrusiveContextResovle, overrideHost, overrideRemoteHost, } = options || {}; // TODO use it ?
|
|
3481
|
+
const { initFromRecrusiveContextResovle, overrideHost, overrideRemoteHost, onlyMigrationRun, onlyMigrationRevertToTimestamp, } = options || {}; // TODO use it ?
|
|
3033
3482
|
this.inited = true;
|
|
3483
|
+
// @ts-ignore
|
|
3484
|
+
this.onlyMigrationRun = onlyMigrationRun;
|
|
3485
|
+
// @ts-ignore
|
|
3486
|
+
this.onlyMigrationRevertToTimestamp = onlyMigrationRevertToTimestamp;
|
|
3034
3487
|
this.config = this.configFn(ENV$2);
|
|
3488
|
+
if (_$1.isObject(this.config.database)) {
|
|
3489
|
+
this.config.database = Models.DatabaseConfig.from(this.config.database).databaseConfigTypeORM;
|
|
3490
|
+
}
|
|
3035
3491
|
if (overrideHost && overrideRemoteHost) {
|
|
3036
3492
|
Helpers.throw(`[taon-config] You can't have overrideHost and overrideRemoteHost at the same time`);
|
|
3037
3493
|
}
|
|
@@ -3098,6 +3554,7 @@ class EndpointContext {
|
|
|
3098
3554
|
this.config.repositories = this.config.repositories || {};
|
|
3099
3555
|
this.config.providers = this.config.providers || {};
|
|
3100
3556
|
this.config.subscribers = this.config.subscribers || {};
|
|
3557
|
+
this.config.migrations = this.config.migrations || {};
|
|
3101
3558
|
this.config.entities = {
|
|
3102
3559
|
...(await this.getRecrusiveClassesfromContextsObj(Models.ClassType.ENTITY)),
|
|
3103
3560
|
...this.config.entities,
|
|
@@ -3118,6 +3575,10 @@ class EndpointContext {
|
|
|
3118
3575
|
...(await this.getRecrusiveClassesfromContextsObj(Models.ClassType.REPOSITORY)),
|
|
3119
3576
|
...this.config.repositories,
|
|
3120
3577
|
};
|
|
3578
|
+
this.config.migrations = {
|
|
3579
|
+
...(await this.getRecrusiveClassesfromContextsObj(Models.ClassType.MIGRATION)),
|
|
3580
|
+
...this.config.migrations,
|
|
3581
|
+
};
|
|
3121
3582
|
this.config.controllers = this.cloneClassesObjWithNewMetadata({
|
|
3122
3583
|
classesInput: this.config.controllers,
|
|
3123
3584
|
config: this.config,
|
|
@@ -3142,6 +3603,12 @@ class EndpointContext {
|
|
|
3142
3603
|
ctx: this,
|
|
3143
3604
|
classType: Models.ClassType.SUBSCRIBER,
|
|
3144
3605
|
});
|
|
3606
|
+
this.config.migrations = this.cloneClassesObjWithNewMetadata({
|
|
3607
|
+
classesInput: this.config.migrations,
|
|
3608
|
+
config: this.config,
|
|
3609
|
+
ctx: this,
|
|
3610
|
+
classType: Models.ClassType.MIGRATION,
|
|
3611
|
+
});
|
|
3145
3612
|
for (const classTypeName of this.injectableTypesfromContexts) {
|
|
3146
3613
|
this.classInstancesByNameObj[classTypeName] = {};
|
|
3147
3614
|
this.objWithClassesInstancesArr[classTypeName] = [];
|
|
@@ -3149,35 +3616,37 @@ class EndpointContext {
|
|
|
3149
3616
|
for (const classTypeName of this.injectableTypesfromContexts) {
|
|
3150
3617
|
await this.createInstances(this.config[Models.ClassTypeKey[classTypeName]], classTypeName);
|
|
3151
3618
|
}
|
|
3152
|
-
if (
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3619
|
+
if (!this.isRunOrRevertOnlyMigrationAppStart) {
|
|
3620
|
+
if (this.mode === 'backend-frontend(tcp+udp)' && !this.config.abstract) {
|
|
3621
|
+
/* */
|
|
3622
|
+
/* */
|
|
3623
|
+
/* */
|
|
3624
|
+
/* */
|
|
3625
|
+
/* */
|
|
3626
|
+
/* */
|
|
3627
|
+
/* */
|
|
3628
|
+
/* */
|
|
3629
|
+
/* */
|
|
3630
|
+
/* */
|
|
3631
|
+
/* */
|
|
3632
|
+
/* */
|
|
3633
|
+
/* */
|
|
3634
|
+
/* */
|
|
3635
|
+
/* */
|
|
3636
|
+
/* */
|
|
3637
|
+
/* */
|
|
3638
|
+
/* */
|
|
3639
|
+
/* */
|
|
3640
|
+
}
|
|
3641
|
+
if (!this.config.abstract) {
|
|
3642
|
+
this.disabledRealtime = !!this.config.disabledRealtime;
|
|
3643
|
+
/* */
|
|
3644
|
+
/* */
|
|
3645
|
+
/* */
|
|
3646
|
+
/* */
|
|
3647
|
+
/* */
|
|
3648
|
+
this.realtime = new RealtimeCore(this);
|
|
3649
|
+
}
|
|
3181
3650
|
}
|
|
3182
3651
|
if (this.config.abstract) {
|
|
3183
3652
|
this.logFramework &&
|
|
@@ -3265,21 +3734,6 @@ class EndpointContext {
|
|
|
3265
3734
|
/* */
|
|
3266
3735
|
/* */
|
|
3267
3736
|
/* */
|
|
3268
|
-
/* */
|
|
3269
|
-
/* */
|
|
3270
|
-
/* */
|
|
3271
|
-
/* */
|
|
3272
|
-
/* */
|
|
3273
|
-
/* */
|
|
3274
|
-
/* */
|
|
3275
|
-
/* */
|
|
3276
|
-
/* */
|
|
3277
|
-
/* */
|
|
3278
|
-
/* */
|
|
3279
|
-
/* */
|
|
3280
|
-
/* */
|
|
3281
|
-
/* */
|
|
3282
|
-
/* */
|
|
3283
3737
|
return (void 0);
|
|
3284
3738
|
}
|
|
3285
3739
|
get ngZone() {
|
|
@@ -3440,6 +3894,8 @@ class EndpointContext {
|
|
|
3440
3894
|
return this.config.repositories;
|
|
3441
3895
|
case Models.ClassType.SUBSCRIBER:
|
|
3442
3896
|
return this.config.subscribers;
|
|
3897
|
+
case Models.ClassType.MIGRATION:
|
|
3898
|
+
return this.config.migrations;
|
|
3443
3899
|
}
|
|
3444
3900
|
}
|
|
3445
3901
|
isCLassType(classType, classFn) {
|
|
@@ -3478,7 +3934,7 @@ class EndpointContext {
|
|
|
3478
3934
|
}
|
|
3479
3935
|
}
|
|
3480
3936
|
async reinitControllers() {
|
|
3481
|
-
if (this.remoteHost) {
|
|
3937
|
+
if (this.remoteHost || Object.keys(this.config.migrations).length > 0) {
|
|
3482
3938
|
return;
|
|
3483
3939
|
}
|
|
3484
3940
|
const controllers = this.getClassesInstancesArrBy(Models.ClassType.CONTROLLER);
|
|
@@ -3500,6 +3956,7 @@ class EndpointContext {
|
|
|
3500
3956
|
Models.ClassType.REPOSITORY,
|
|
3501
3957
|
Models.ClassType.CONTROLLER,
|
|
3502
3958
|
Models.ClassType.ENTITY,
|
|
3959
|
+
Models.ClassType.MIGRATION,
|
|
3503
3960
|
]) {
|
|
3504
3961
|
for (const classFun of this.getClassFunByArr(classTypeName)) {
|
|
3505
3962
|
if (_$1.isFunction(classFun._)) {
|
|
@@ -3514,6 +3971,7 @@ class EndpointContext {
|
|
|
3514
3971
|
Models.ClassType.PROVIDER,
|
|
3515
3972
|
Models.ClassType.REPOSITORY,
|
|
3516
3973
|
Models.ClassType.CONTROLLER,
|
|
3974
|
+
Models.ClassType.MIGRATION,
|
|
3517
3975
|
]) {
|
|
3518
3976
|
for (const ctrl of this.getClassesInstancesArrBy(classTypeName)) {
|
|
3519
3977
|
if (_$1.isFunction(ctrl._)) {
|
|
@@ -3699,9 +4157,20 @@ class EndpointContext {
|
|
|
3699
4157
|
/* */
|
|
3700
4158
|
/* */
|
|
3701
4159
|
/* */
|
|
4160
|
+
/* */
|
|
4161
|
+
/* */
|
|
4162
|
+
/* */
|
|
4163
|
+
/* */
|
|
4164
|
+
/* */
|
|
4165
|
+
/* */
|
|
4166
|
+
/* */
|
|
4167
|
+
/* */
|
|
3702
4168
|
return (void 0);
|
|
3703
4169
|
}
|
|
3704
|
-
|
|
4170
|
+
initControllers() {
|
|
4171
|
+
if (this.isRunOrRevertOnlyMigrationAppStart) {
|
|
4172
|
+
return;
|
|
4173
|
+
}
|
|
3705
4174
|
const allControllers = this.getClassFunByArr(Models.ClassType.CONTROLLER);
|
|
3706
4175
|
for (const controllerClassFn of allControllers) {
|
|
3707
4176
|
controllerClassFn[Symbols.classMethodsNames] =
|
|
@@ -3781,7 +4250,7 @@ class EndpointContext {
|
|
|
3781
4250
|
}
|
|
3782
4251
|
}
|
|
3783
4252
|
writeActiveRoutes() {
|
|
3784
|
-
if (this.remoteHost) {
|
|
4253
|
+
if (this.remoteHost || this.isRunOrRevertOnlyMigrationAppStart) {
|
|
3785
4254
|
return;
|
|
3786
4255
|
}
|
|
3787
4256
|
const contexts = [this];
|
|
@@ -4539,25 +5008,19 @@ instead
|
|
|
4539
5008
|
;
|
|
4540
5009
|
({}); // @--end-of-file-for-module=taon lib/endpoint-context.ts
|
|
4541
5010
|
|
|
4542
|
-
const globalPublicStorage = Helpers.isBrowser ? window : global;
|
|
4543
|
-
;
|
|
4544
|
-
({}); // @--end-of-file-for-module=taon lib/storage.ts
|
|
4545
|
-
|
|
4546
5011
|
const ENV$1 = Helpers.isBrowser ? window['ENV'] : global['ENV'];
|
|
4547
|
-
class
|
|
5012
|
+
class TaonAdminService {
|
|
5013
|
+
static get Instance() {
|
|
5014
|
+
return this._instance;
|
|
5015
|
+
}
|
|
4548
5016
|
constructor() {
|
|
4549
5017
|
this.scrollableEnabled = false; // TOOD false by default
|
|
4550
5018
|
this.onEditMode = new Subject();
|
|
4551
5019
|
this.onEditMode$ = this.onEditMode.asObservable();
|
|
4552
5020
|
this.enabledTabs = [];
|
|
5021
|
+
TaonAdminService._instance = this;
|
|
4553
5022
|
this.scrollableEnabled = !!ENV$1?.useGlobalNgxScrollbar;
|
|
4554
5023
|
}
|
|
4555
|
-
static get Instance() {
|
|
4556
|
-
if (!globalPublicStorage[config.frameworkNames.productionFrameworkName]) {
|
|
4557
|
-
globalPublicStorage[config.frameworkNames.productionFrameworkName] = new TaonAdmin();
|
|
4558
|
-
}
|
|
4559
|
-
return globalPublicStorage[config.frameworkNames.productionFrameworkName];
|
|
4560
|
-
}
|
|
4561
5024
|
setEditMode(value) {
|
|
4562
5025
|
this.onEditMode.next(value);
|
|
4563
5026
|
}
|
|
@@ -4573,26 +5036,26 @@ class TaonAdmin {
|
|
|
4573
5036
|
this.adminPanelIsOpen = true;
|
|
4574
5037
|
}
|
|
4575
5038
|
logout() { }
|
|
4576
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type:
|
|
4577
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type:
|
|
5039
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5040
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminService, providedIn: 'root' }); }
|
|
4578
5041
|
}
|
|
4579
5042
|
__decorate([
|
|
4580
|
-
Stor.property.in.localstorage.for(
|
|
5043
|
+
(Stor.property.in.localstorage.for(TaonAdminService).withDefaultValue(false)),
|
|
4581
5044
|
__metadata("design:type", Boolean)
|
|
4582
|
-
],
|
|
5045
|
+
], TaonAdminService.prototype, "adminPanelIsOpen", void 0);
|
|
4583
5046
|
__decorate([
|
|
4584
|
-
Stor.property.in.localstorage.for(
|
|
5047
|
+
(Stor.property.in.localstorage.for(TaonAdminService).withDefaultValue(false)),
|
|
4585
5048
|
__metadata("design:type", Boolean)
|
|
4586
|
-
],
|
|
5049
|
+
], TaonAdminService.prototype, "draggablePopupMode", void 0);
|
|
4587
5050
|
__decorate([
|
|
4588
|
-
Stor.property.in.localstorage.for(
|
|
5051
|
+
(Stor.property.in.localstorage.for(TaonAdminService).withDefaultValue(false)),
|
|
4589
5052
|
__metadata("design:type", Boolean)
|
|
4590
|
-
],
|
|
5053
|
+
], TaonAdminService.prototype, "draggablePopupModeFullScreen", void 0);
|
|
4591
5054
|
__decorate([
|
|
4592
|
-
Stor.property.in.localstorage.for(
|
|
5055
|
+
(Stor.property.in.localstorage.for(TaonAdminService).withDefaultValue(false)),
|
|
4593
5056
|
__metadata("design:type", Boolean)
|
|
4594
|
-
],
|
|
4595
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type:
|
|
5057
|
+
], TaonAdminService.prototype, "keepWebsqlDbDataAfterReload", void 0);
|
|
5058
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminService, decorators: [{
|
|
4596
5059
|
type: Injectable,
|
|
4597
5060
|
args: [{ providedIn: 'root' }]
|
|
4598
5061
|
}], ctorParameters: () => [] });
|
|
@@ -4616,6 +5079,9 @@ const createContext = (configFn) => {
|
|
|
4616
5079
|
get subscribers() {
|
|
4617
5080
|
return config.subscribers;
|
|
4618
5081
|
},
|
|
5082
|
+
get migrations() {
|
|
5083
|
+
return config.migrations;
|
|
5084
|
+
},
|
|
4619
5085
|
},
|
|
4620
5086
|
get contexts() {
|
|
4621
5087
|
return config.contexts;
|
|
@@ -4665,14 +5131,15 @@ const createContext = (configFn) => {
|
|
|
4665
5131
|
await endpointContextRef.initEntities();
|
|
4666
5132
|
await endpointContextRef.initSubscribers();
|
|
4667
5133
|
await endpointContextRef.initDatabaseConnection();
|
|
4668
|
-
endpointContextRef.
|
|
5134
|
+
await endpointContextRef.dbMigrations.ensureMigrationTableExists();
|
|
5135
|
+
endpointContextRef.initControllers();
|
|
4669
5136
|
endpointContextRef.startServer();
|
|
4670
5137
|
/* */
|
|
4671
5138
|
/* */
|
|
4672
5139
|
await endpointContextRef.initClasses();
|
|
4673
5140
|
let keepWebsqlDbDataAfterReload = false;
|
|
4674
5141
|
keepWebsqlDbDataAfterReload =
|
|
4675
|
-
|
|
5142
|
+
TaonAdminService.Instance?.keepWebsqlDbDataAfterReload;
|
|
4676
5143
|
if (!Helpers.isNode && keepWebsqlDbDataAfterReload) {
|
|
4677
5144
|
Helpers.info(`[taon] Keep websql data after reload`);
|
|
4678
5145
|
}
|
|
@@ -4680,6 +5147,15 @@ const createContext = (configFn) => {
|
|
|
4680
5147
|
await endpointContextRef.reinitControllers();
|
|
4681
5148
|
}
|
|
4682
5149
|
///#region TODO this may be usefull but for now
|
|
5150
|
+
if (endpointContextRef.onlyMigrationRun) {
|
|
5151
|
+
await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
|
|
5152
|
+
}
|
|
5153
|
+
else if (endpointContextRef.onlyMigrationRevertToTimestamp) {
|
|
5154
|
+
await endpointContextRef.dbMigrations.revertMigrationToTimestamp(endpointContextRef.onlyMigrationRevertToTimestamp);
|
|
5155
|
+
}
|
|
5156
|
+
else {
|
|
5157
|
+
await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
|
|
5158
|
+
}
|
|
4683
5159
|
resolve(endpointContextRef);
|
|
4684
5160
|
});
|
|
4685
5161
|
});
|
|
@@ -4720,9 +5196,12 @@ var baseContext = /*#__PURE__*/Object.freeze({
|
|
|
4720
5196
|
BaseContext: BaseContext
|
|
4721
5197
|
});
|
|
4722
5198
|
|
|
5199
|
+
/**
|
|
5200
|
+
* Subscriber decorator
|
|
5201
|
+
*/
|
|
4723
5202
|
function TaonSubscriber(options) {
|
|
4724
5203
|
return function (constructor) {
|
|
4725
|
-
Reflect.defineMetadata(Symbols.metadata.options.
|
|
5204
|
+
Reflect.defineMetadata(Symbols.metadata.options.subscriber, options, constructor);
|
|
4726
5205
|
Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
|
|
4727
5206
|
ClassHelpers.setName(constructor, options?.className);
|
|
4728
5207
|
};
|
|
@@ -4737,133 +5216,133 @@ let BaseSubscriberForEntity = class BaseSubscriberForEntity extends BaseInjector
|
|
|
4737
5216
|
* Called after entity is loaded.
|
|
4738
5217
|
*/
|
|
4739
5218
|
afterLoad(entity) {
|
|
4740
|
-
this.
|
|
5219
|
+
this.ctx.logDb &&
|
|
4741
5220
|
console.log(`AFTER ENTITY LOADED: `, entity);
|
|
4742
5221
|
}
|
|
4743
5222
|
/**
|
|
4744
5223
|
* Called before query execution.
|
|
4745
5224
|
*/
|
|
4746
5225
|
beforeQuery(event) {
|
|
4747
|
-
this.
|
|
5226
|
+
this.ctx.logDb &&
|
|
4748
5227
|
console.log(`BEFORE QUERY: `, event.query);
|
|
4749
5228
|
}
|
|
4750
5229
|
/**
|
|
4751
5230
|
* Called after query execution.
|
|
4752
5231
|
*/
|
|
4753
5232
|
afterQuery(event) {
|
|
4754
|
-
this.
|
|
5233
|
+
this.ctx.logDb &&
|
|
4755
5234
|
console.log(`AFTER QUERY: `, event.query);
|
|
4756
5235
|
}
|
|
4757
5236
|
/**
|
|
4758
5237
|
* Called before entity insertion.
|
|
4759
5238
|
*/
|
|
4760
5239
|
beforeInsert(event) {
|
|
4761
|
-
this.
|
|
5240
|
+
this.ctx.logDb &&
|
|
4762
5241
|
console.log(`BEFORE ENTITY INSERTED: `, event.entity);
|
|
4763
5242
|
}
|
|
4764
5243
|
/**
|
|
4765
5244
|
* Called after entity insertion.
|
|
4766
5245
|
*/
|
|
4767
5246
|
afterInsert(event) {
|
|
4768
|
-
this.
|
|
5247
|
+
this.ctx.logDb &&
|
|
4769
5248
|
console.log(`AFTER ENTITY INSERTED: `, event.entity);
|
|
4770
5249
|
}
|
|
4771
5250
|
/**
|
|
4772
5251
|
* Called before entity update.
|
|
4773
5252
|
*/
|
|
4774
5253
|
beforeUpdate(event) {
|
|
4775
|
-
this.
|
|
5254
|
+
this.ctx.logDb &&
|
|
4776
5255
|
console.log(`BEFORE ENTITY UPDATED: `, event.entity);
|
|
4777
5256
|
}
|
|
4778
5257
|
/**
|
|
4779
5258
|
* Called after entity update.
|
|
4780
5259
|
*/
|
|
4781
5260
|
afterUpdate(event) {
|
|
4782
|
-
this.
|
|
5261
|
+
this.ctx.logDb &&
|
|
4783
5262
|
console.log(`AFTER ENTITY UPDATED: `, event.entity);
|
|
4784
5263
|
}
|
|
4785
5264
|
/**
|
|
4786
5265
|
* Called before entity removal.
|
|
4787
5266
|
*/
|
|
4788
5267
|
beforeRemove(event) {
|
|
4789
|
-
this.
|
|
5268
|
+
this.ctx.logDb &&
|
|
4790
5269
|
console.log(`BEFORE ENTITY WITH ID ${event.entityId} REMOVED: `, event.entity);
|
|
4791
5270
|
}
|
|
4792
5271
|
/**
|
|
4793
5272
|
* Called after entity removal.
|
|
4794
5273
|
*/
|
|
4795
5274
|
afterRemove(event) {
|
|
4796
|
-
this.
|
|
5275
|
+
this.ctx.logDb &&
|
|
4797
5276
|
console.log(`AFTER ENTITY WITH ID ${event.entityId} REMOVED: `, event.entity);
|
|
4798
5277
|
}
|
|
4799
5278
|
/**
|
|
4800
5279
|
* Called before entity removal.
|
|
4801
5280
|
*/
|
|
4802
5281
|
beforeSoftRemove(event) {
|
|
4803
|
-
this.
|
|
5282
|
+
this.ctx.logDb &&
|
|
4804
5283
|
console.log(`BEFORE ENTITY WITH ID ${event.entityId} SOFT REMOVED: `, event.entity);
|
|
4805
5284
|
}
|
|
4806
5285
|
/**
|
|
4807
5286
|
* Called after entity removal.
|
|
4808
5287
|
*/
|
|
4809
5288
|
afterSoftRemove(event) {
|
|
4810
|
-
this.
|
|
5289
|
+
this.ctx.logDb &&
|
|
4811
5290
|
console.log(`AFTER ENTITY WITH ID ${event.entityId} SOFT REMOVED: `, event.entity);
|
|
4812
5291
|
}
|
|
4813
5292
|
/**
|
|
4814
5293
|
* Called before entity recovery.
|
|
4815
5294
|
*/
|
|
4816
5295
|
beforeRecover(event) {
|
|
4817
|
-
this.
|
|
5296
|
+
this.ctx.logDb &&
|
|
4818
5297
|
console.log(`BEFORE ENTITY WITH ID ${event.entityId} RECOVERED: `, event.entity);
|
|
4819
5298
|
}
|
|
4820
5299
|
/**
|
|
4821
5300
|
* Called after entity recovery.
|
|
4822
5301
|
*/
|
|
4823
5302
|
afterRecover(event) {
|
|
4824
|
-
this.
|
|
5303
|
+
this.ctx.logDb &&
|
|
4825
5304
|
console.log(`AFTER ENTITY WITH ID ${event.entityId} RECOVERED: `, event.entity);
|
|
4826
5305
|
}
|
|
4827
5306
|
/**
|
|
4828
5307
|
* Called before transaction start.
|
|
4829
5308
|
*/
|
|
4830
5309
|
beforeTransactionStart(event) {
|
|
4831
|
-
this.
|
|
5310
|
+
this.ctx.logDb &&
|
|
4832
5311
|
console.log(`BEFORE TRANSACTION STARTED: `, event);
|
|
4833
5312
|
}
|
|
4834
5313
|
/**
|
|
4835
5314
|
* Called after transaction start.
|
|
4836
5315
|
*/
|
|
4837
5316
|
afterTransactionStart(event) {
|
|
4838
|
-
this.
|
|
5317
|
+
this.ctx.logDb &&
|
|
4839
5318
|
console.log(`AFTER TRANSACTION STARTED: `, event);
|
|
4840
5319
|
}
|
|
4841
5320
|
/**
|
|
4842
5321
|
* Called before transaction commit.
|
|
4843
5322
|
*/
|
|
4844
5323
|
beforeTransactionCommit(event) {
|
|
4845
|
-
this.
|
|
5324
|
+
this.ctx.logDb &&
|
|
4846
5325
|
console.log(`BEFORE TRANSACTION COMMITTED: `, event);
|
|
4847
5326
|
}
|
|
4848
5327
|
/**
|
|
4849
5328
|
* Called after transaction commit.
|
|
4850
5329
|
*/
|
|
4851
5330
|
afterTransactionCommit(event) {
|
|
4852
|
-
this.
|
|
5331
|
+
this.ctx.logDb &&
|
|
4853
5332
|
console.log(`AFTER TRANSACTION COMMITTED: `, event);
|
|
4854
5333
|
}
|
|
4855
5334
|
/**
|
|
4856
5335
|
* Called before transaction rollback.
|
|
4857
5336
|
*/
|
|
4858
5337
|
beforeTransactionRollback(event) {
|
|
4859
|
-
this.
|
|
5338
|
+
this.ctx.logDb &&
|
|
4860
5339
|
console.log(`BEFORE TRANSACTION ROLLBACK: `, event);
|
|
4861
5340
|
}
|
|
4862
5341
|
/**
|
|
4863
5342
|
* Called after transaction rollback.
|
|
4864
5343
|
*/
|
|
4865
5344
|
afterTransactionRollback(event) {
|
|
4866
|
-
this.
|
|
5345
|
+
this.ctx.logDb &&
|
|
4867
5346
|
console.log(`AFTER TRANSACTION ROLLBACK: `, event);
|
|
4868
5347
|
}
|
|
4869
5348
|
};
|
|
@@ -4875,6 +5354,26 @@ BaseSubscriberForEntity = __decorate([
|
|
|
4875
5354
|
;
|
|
4876
5355
|
({}); // @--end-of-file-for-module=taon lib/base-classes/base-subscriber-for-entity.ts
|
|
4877
5356
|
|
|
5357
|
+
class BaseMigration extends BaseInjector {
|
|
5358
|
+
/**
|
|
5359
|
+
* by default is READY to run
|
|
5360
|
+
*/
|
|
5361
|
+
isReadyToRun() {
|
|
5362
|
+
return true;
|
|
5363
|
+
}
|
|
5364
|
+
getDescription() {
|
|
5365
|
+
return _$1.startCase(ClassHelpers.getName(this));
|
|
5366
|
+
}
|
|
5367
|
+
async up(queryRunner) {
|
|
5368
|
+
console.log(`Running migration UP "${ClassHelpers.getName(this)}"`);
|
|
5369
|
+
}
|
|
5370
|
+
async down(queryRunner) {
|
|
5371
|
+
console.log(`Running migration DOWN "${ClassHelpers.getName(this)}"`);
|
|
5372
|
+
}
|
|
5373
|
+
}
|
|
5374
|
+
;
|
|
5375
|
+
({}); // @--end-of-file-for-module=taon lib/base-classes/base-migration.ts
|
|
5376
|
+
|
|
4878
5377
|
var Base;
|
|
4879
5378
|
(function (Base) {
|
|
4880
5379
|
Base.Controller = BaseController;
|
|
@@ -4885,6 +5384,7 @@ var Base;
|
|
|
4885
5384
|
Base.Class = BaseClass;
|
|
4886
5385
|
Base.Repository = BaseRepository;
|
|
4887
5386
|
Base.SubscriberForEntity = BaseSubscriberForEntity;
|
|
5387
|
+
Base.Migration = BaseMigration;
|
|
4888
5388
|
Base.Context = BaseContext;
|
|
4889
5389
|
})(Base || (Base = {}));
|
|
4890
5390
|
;
|
|
@@ -4892,6 +5392,9 @@ var Base;
|
|
|
4892
5392
|
|
|
4893
5393
|
/* */
|
|
4894
5394
|
/* */
|
|
5395
|
+
/**
|
|
5396
|
+
* Entity decorator
|
|
5397
|
+
*/
|
|
4895
5398
|
function TaonEntity(options) {
|
|
4896
5399
|
return function (constructor) {
|
|
4897
5400
|
options = options || {};
|
|
@@ -4911,6 +5414,9 @@ class TaonEntityOptions extends Models.DecoratorAbstractOpt {
|
|
|
4911
5414
|
;
|
|
4912
5415
|
({}); // @--end-of-file-for-module=taon lib/decorators/classes/entity-decorator.ts
|
|
4913
5416
|
|
|
5417
|
+
/**
|
|
5418
|
+
* Provider decorator
|
|
5419
|
+
*/
|
|
4914
5420
|
function TaonProvider(options) {
|
|
4915
5421
|
return function (constructor) {
|
|
4916
5422
|
Reflect.defineMetadata(Symbols.metadata.options.provider, options, constructor);
|
|
@@ -4923,6 +5429,21 @@ class TaonProviderOptions extends Models.DecoratorAbstractOpt {
|
|
|
4923
5429
|
;
|
|
4924
5430
|
({}); // @--end-of-file-for-module=taon lib/decorators/classes/provider-decorator.ts
|
|
4925
5431
|
|
|
5432
|
+
/**
|
|
5433
|
+
* Migration decorator
|
|
5434
|
+
*/
|
|
5435
|
+
function TaonMigration(options) {
|
|
5436
|
+
return function (constructor) {
|
|
5437
|
+
Reflect.defineMetadata(Symbols.metadata.options.migration, options, constructor);
|
|
5438
|
+
Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
|
|
5439
|
+
ClassHelpers.setName(constructor, options?.className);
|
|
5440
|
+
};
|
|
5441
|
+
}
|
|
5442
|
+
class TaonMigrationOptions extends Models.DecoratorAbstractOpt {
|
|
5443
|
+
}
|
|
5444
|
+
;
|
|
5445
|
+
({}); // @--end-of-file-for-module=taon lib/decorators/classes/migration-decorator.ts
|
|
5446
|
+
|
|
4926
5447
|
const inject = (entity) => {
|
|
4927
5448
|
return new Proxy({}, {
|
|
4928
5449
|
get: (_, propName) => {
|
|
@@ -5699,7 +6220,6 @@ class TaonTableComponent {
|
|
|
5699
6220
|
await this.retriveData();
|
|
5700
6221
|
}
|
|
5701
6222
|
async retriveData() {
|
|
5702
|
-
// @ts-ignore
|
|
5703
6223
|
}
|
|
5704
6224
|
expansionRow(e) {
|
|
5705
6225
|
this.expansionChange.next(e);
|
|
@@ -5708,7 +6228,7 @@ class TaonTableComponent {
|
|
|
5708
6228
|
log.i('context menu event', e);
|
|
5709
6229
|
}
|
|
5710
6230
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5711
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonTableComponent, selector: "taon-table", inputs: { pageNumber: "pageNumber", pageSize: "pageSize", allowedColumns: "allowedColumns", entity: "entity", expansionTemplate: "expansionTemplate", rows: "rows", columns: "columns", pageSizeOptions: "pageSizeOptions" }, outputs: { expansionChange: "expansionChange", addingItem: "addingItem" }, viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true, static: true }], ngImport: i0, template: "<br />\n<columns-container>\n <column grow>\n <mat-form-field class=\"search-input\">\n <input matInput placeholder=\"Type to search table...\" #search />\n </mat-form-field>\n </column>\n <column [width]=\"80\">\n <button\n mat-fab\n [ngClass]=\"{ 'half-opacity': !search.value }\"\n class=\"undo-button\"\n color=\"secondary\"\n (click)=\"search.value = ''\">\n <mat-icon>close </mat-icon>\n </button>\n </column>\n\n <column [width]=\"80\">\n <button\n mat-fab\n (click)=\"addingItem.next()\"\n class=\"undo-button\"\n color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n </column>\n</columns-container>\n\n<mtx-grid\n *ngIf=\"rows && columns\"\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"expansionTemplate\"\n (expansionChange)=\"expansionRow($event)\"\n [length]=\"totalElements\"\n [loading]=\"isLoading\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (page)=\"getNextPage($event)\">\n</mtx-grid>\n", styles: [":host{min-height:250px}.search-input{width:100%}.undo-button{margin-left:10px}.half-opacity{opacity:.2}\n"], dependencies: [{ kind: "directive", type:
|
|
6231
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonTableComponent, selector: "taon-table", inputs: { pageNumber: "pageNumber", pageSize: "pageSize", allowedColumns: "allowedColumns", entity: "entity", expansionTemplate: "expansionTemplate", rows: "rows", columns: "columns", pageSizeOptions: "pageSizeOptions" }, outputs: { expansionChange: "expansionChange", addingItem: "addingItem" }, viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true, static: true }], ngImport: i0, template: "<br />\n<columns-container>\n <column grow>\n <mat-form-field class=\"search-input\">\n <input matInput placeholder=\"Type to search table...\" #search />\n </mat-form-field>\n </column>\n <column [width]=\"80\">\n <button\n mat-fab\n [ngClass]=\"{ 'half-opacity': !search.value }\"\n class=\"undo-button\"\n color=\"secondary\"\n (click)=\"search.value = ''\">\n <mat-icon>close </mat-icon>\n </button>\n </column>\n\n <column [width]=\"80\">\n <button\n mat-fab\n (click)=\"addingItem.next()\"\n class=\"undo-button\"\n color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n </column>\n</columns-container>\n\n<mtx-grid\n *ngIf=\"rows && columns\"\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"expansionTemplate\"\n (expansionChange)=\"expansionRow($event)\"\n [length]=\"totalElements\"\n [loading]=\"isLoading\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (page)=\"getNextPage($event)\">\n</mtx-grid>\n", styles: [":host{min-height:250px}.search-input{width:100%}.undo-button{margin-left:10px}.half-opacity{opacity:.2}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i3$1.MtxGrid, selector: "mtx-grid", inputs: ["displayedColumns", "columns", "data", "length", "loading", "trackBy", "columnResizable", "emptyValuePlaceholder", "pageOnFront", "showPaginator", "pageDisabled", "showFirstLastButtons", "pageIndex", "pageSize", "pageSizeOptions", "hidePageSize", "paginationTemplate", "sortOnFront", "sortActive", "sortDirection", "sortDisableClear", "sortDisabled", "sortStart", "rowHover", "rowStriped", "expandable", "expansionTemplate", "multiSelectable", "multiSelectionWithClick", "rowSelectable", "hideRowSelectionCheckbox", "disableRowClickSelection", "rowSelectionFormatter", "rowClassFormatter", "rowSelected", "cellSelectable", "showToolbar", "toolbarTitle", "toolbarTemplate", "columnHideable", "columnHideableChecked", "columnSortable", "columnPinnable", "columnPinOptions", "showColumnMenuButton", "columnMenuButtonText", "columnMenuButtonType", "columnMenuButtonColor", "columnMenuButtonClass", "columnMenuButtonIcon", "showColumnMenuHeader", "columnMenuHeaderText", "columnMenuHeaderTemplate", "showColumnMenuFooter", "columnMenuFooterText", "columnMenuFooterTemplate", "noResultText", "noResultTemplate", "headerTemplate", "headerExtraTemplate", "cellTemplate", "useContentRowTemplate", "useContentHeaderRowTemplate", "useContentFooterRowTemplate", "showSummary", "summaryTemplate", "showSidebar", "sidebarTemplate", "showStatusbar", "statusbarTemplate"], outputs: ["page", "sortChange", "rowClick", "rowContextMenu", "expansionChange", "rowSelectedChange", "cellSelectedChange", "columnChange"], exportAs: ["mtxGrid"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i1$3.ColumnsComponent, selector: "columns-container" }, { kind: "component", type: i1$3.ColumnComponent, selector: "column", inputs: ["width"] }, { kind: "directive", type: i1$3.DirectiveGrow, selector: "[grow]" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }] }); }
|
|
5712
6232
|
}
|
|
5713
6233
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonTableComponent, decorators: [{
|
|
5714
6234
|
type: Component,
|
|
@@ -5788,36 +6308,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
5788
6308
|
;
|
|
5789
6309
|
({}); // @--end-of-file-for-module=taon lib/ui/taon-table/index.ts
|
|
5790
6310
|
|
|
5791
|
-
class TaonAdminService {
|
|
5792
|
-
/**
|
|
5793
|
-
* @deprecated
|
|
5794
|
-
*/
|
|
5795
|
-
disableScroll() {
|
|
5796
|
-
}
|
|
5797
|
-
constructor(cdr) {
|
|
5798
|
-
this.cdr = cdr;
|
|
5799
|
-
this.admin = window['taon'];
|
|
5800
|
-
}
|
|
5801
|
-
addTab(name, template) {
|
|
5802
|
-
this.admin.cmp.tabs.push({
|
|
5803
|
-
name,
|
|
5804
|
-
template,
|
|
5805
|
-
});
|
|
5806
|
-
}
|
|
5807
|
-
init(taonAdminModeConfigurationComponent) {
|
|
5808
|
-
this.taonAdminModeConfigurationComponent =
|
|
5809
|
-
taonAdminModeConfigurationComponent;
|
|
5810
|
-
}
|
|
5811
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminService, deps: [{ token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5812
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminService, providedIn: 'root' }); }
|
|
5813
|
-
}
|
|
5814
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminService, decorators: [{
|
|
5815
|
-
type: Injectable,
|
|
5816
|
-
args: [{ providedIn: 'root' }]
|
|
5817
|
-
}], ctorParameters: () => [{ type: i0.ApplicationRef }] });
|
|
5818
|
-
;
|
|
5819
|
-
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-control.service.ts
|
|
5820
|
-
|
|
5821
6311
|
class TaonAdminModeConfigurationComponent {
|
|
5822
6312
|
get opened() {
|
|
5823
6313
|
return !this.isIframe && this.admin.adminPanelIsOpen;
|
|
@@ -5832,13 +6322,12 @@ class TaonAdminModeConfigurationComponent {
|
|
|
5832
6322
|
}
|
|
5833
6323
|
this.admin.adminPanelIsOpen = v;
|
|
5834
6324
|
}
|
|
5835
|
-
constructor(breakpointsService) {
|
|
6325
|
+
constructor(breakpointsService, admin) {
|
|
5836
6326
|
this.breakpointsService = breakpointsService;
|
|
6327
|
+
this.admin = admin;
|
|
5837
6328
|
this.$destroy = new Subject();
|
|
5838
6329
|
this.cdr = inject$1(ChangeDetectorRef);
|
|
5839
6330
|
this.taonAdminService = inject$1(TaonAdminService);
|
|
5840
|
-
this.tabs = [];
|
|
5841
|
-
this.admin = window['taon'];
|
|
5842
6331
|
this.isWebSQLMode = Helpers.isWebSQL;
|
|
5843
6332
|
this.hideTaonToolsInProduction = ENV.hideTaonToolsInProduction && ENV.angularProd;
|
|
5844
6333
|
this.isIframe = window.location !== window.parent.location;
|
|
@@ -5857,7 +6346,6 @@ class TaonAdminModeConfigurationComponent {
|
|
|
5857
6346
|
this.dragPositionZero = { x: 0, y: 0 };
|
|
5858
6347
|
this.taonAdminModeConfigurationDataChanged = new EventEmitter();
|
|
5859
6348
|
this.taonAdminModeConfigurationData = {};
|
|
5860
|
-
this.admin.cmp = this;
|
|
5861
6349
|
this.breakpointsService
|
|
5862
6350
|
.listenTo()
|
|
5863
6351
|
.pipe(takeUntil(this.$destroy))
|
|
@@ -5865,14 +6353,6 @@ class TaonAdminModeConfigurationComponent {
|
|
|
5865
6353
|
// @ts-ignore
|
|
5866
6354
|
this.isDesktop = breakpoint === 'desktop';
|
|
5867
6355
|
});
|
|
5868
|
-
this.taonAdminService.init(this);
|
|
5869
|
-
}
|
|
5870
|
-
reloadTabs() {
|
|
5871
|
-
this.reloading = true;
|
|
5872
|
-
setTimeout(() => {
|
|
5873
|
-
this.reloading = false;
|
|
5874
|
-
console.log('reloading done');
|
|
5875
|
-
});
|
|
5876
6356
|
}
|
|
5877
6357
|
async ngOnInit() {
|
|
5878
6358
|
await Stor.awaitPendingOperatios();
|
|
@@ -5896,6 +6376,16 @@ class TaonAdminModeConfigurationComponent {
|
|
|
5896
6376
|
onResize(event) {
|
|
5897
6377
|
this.height = window.innerHeight;
|
|
5898
6378
|
}
|
|
6379
|
+
async reloadTabs() {
|
|
6380
|
+
return new Promise(resolve => {
|
|
6381
|
+
this.reloading = true;
|
|
6382
|
+
setTimeout(() => {
|
|
6383
|
+
this.reloading = false;
|
|
6384
|
+
console.log('reloading done');
|
|
6385
|
+
resolve();
|
|
6386
|
+
});
|
|
6387
|
+
});
|
|
6388
|
+
}
|
|
5899
6389
|
async toogle() {
|
|
5900
6390
|
this.opened = !this.opened;
|
|
5901
6391
|
}
|
|
@@ -5917,37 +6407,47 @@ class TaonAdminModeConfigurationComponent {
|
|
|
5917
6407
|
scrollTabs(event) {
|
|
5918
6408
|
return;
|
|
5919
6409
|
}
|
|
5920
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, deps: [{ token: i1$3.BreakpointsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5921
|
-
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"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$3.ColumnsComponent, selector: "columns-container" }, { kind: "component", type: i1$3.ColumnComponent, selector: "column", inputs: ["width"] }, { kind: "directive", type: i1$3.DirectiveGrow, selector: "[grow]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$1.NgScrollbar, selector: "ng-scrollbar:not([externalViewport])", exportAs: ["ngScrollbar"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i6$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i7.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i10.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i10.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i11.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i11.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: TaonSessionPasscodeComponent, selector: "taon-session-passcode", inputs: ["passcode", "message"] }] }); }
|
|
6410
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, deps: [{ token: i1$3.BreakpointsService }, { token: TaonAdminService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6411
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonAdminModeConfigurationComponent, isStandalone: true, selector: "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 <!-- #region admin tabs / header -->\n <div class=\"taon-header-admin-wrapper\">\n <columns-container\n class=\"taon-header-admin\"\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column\n width=\"200\"\n 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\n width=\"40\"\n *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 <!-- #endregion -->\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 </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\n #drawer\n style=\"width: 580px\"\n [opened]=\"opened\"\n [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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: StaticColumnsModule }, { kind: "component", type: i1$3.ColumnsComponent, selector: "columns-container" }, { kind: "component", type: i1$3.ColumnComponent, selector: "column", inputs: ["width"] }, { kind: "directive", type: i1$3.DirectiveGrow, selector: "[grow]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgScrollbarModule }, { kind: "component", type: i5.NgScrollbar, selector: "ng-scrollbar:not([externalViewport])", exportAs: ["ngScrollbar"] }, { kind: "ngmodule", type: TaonProgressBarModule }, { kind: "ngmodule", type: TaonNotificationsModule }, { kind: "ngmodule", type: TaonFullMaterialModule }, { kind: "directive", type: i6$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i8.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i8.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i11.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i11.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i12.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i12.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: // TODO import only partial things
|
|
6412
|
+
TaonSessionPasscodeComponent, selector: "taon-session-passcode", inputs: ["passcode", "message"] }] }); }
|
|
5922
6413
|
}
|
|
5923
6414
|
__decorate([
|
|
5924
|
-
Stor.property.in.localstorage
|
|
6415
|
+
(Stor.property.in.localstorage
|
|
5925
6416
|
.for(TaonAdminModeConfigurationComponent)
|
|
5926
|
-
.withDefaultValue(0),
|
|
6417
|
+
.withDefaultValue(0)),
|
|
5927
6418
|
__metadata("design:type", Number)
|
|
5928
6419
|
], TaonAdminModeConfigurationComponent.prototype, "dragPositionX", void 0);
|
|
5929
6420
|
__decorate([
|
|
5930
|
-
Stor.property.in.localstorage
|
|
6421
|
+
(Stor.property.in.localstorage
|
|
5931
6422
|
.for(TaonAdminModeConfigurationComponent)
|
|
5932
|
-
.withDefaultValue(0),
|
|
6423
|
+
.withDefaultValue(0)),
|
|
5933
6424
|
__metadata("design:type", Number)
|
|
5934
6425
|
], TaonAdminModeConfigurationComponent.prototype, "dragPositionY", void 0);
|
|
5935
6426
|
__decorate([
|
|
5936
|
-
Stor.property.in.localstorage
|
|
6427
|
+
(Stor.property.in.localstorage
|
|
5937
6428
|
.for(TaonAdminModeConfigurationComponent)
|
|
5938
|
-
.withDefaultValue(0),
|
|
6429
|
+
.withDefaultValue(0)),
|
|
5939
6430
|
__metadata("design:type", Number)
|
|
5940
6431
|
], TaonAdminModeConfigurationComponent.prototype, "selectedIndex", void 0);
|
|
5941
6432
|
__decorate([
|
|
5942
|
-
Stor.property.in.localstorage
|
|
6433
|
+
(Stor.property.in.localstorage
|
|
5943
6434
|
.for(TaonAdminModeConfigurationComponent)
|
|
5944
|
-
.withDefaultValue(false),
|
|
6435
|
+
.withDefaultValue(false)),
|
|
5945
6436
|
__metadata("design:type", Boolean)
|
|
5946
6437
|
], TaonAdminModeConfigurationComponent.prototype, "wasOpenDraggablePopup", void 0);
|
|
5947
6438
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationComponent, decorators: [{
|
|
5948
6439
|
type: Component,
|
|
5949
|
-
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"] }]
|
|
5950
|
-
|
|
6440
|
+
args: [{ selector: 'taon-admin-mode-configuration', standalone: true, imports: [
|
|
6441
|
+
CommonModule,
|
|
6442
|
+
StaticColumnsModule,
|
|
6443
|
+
FormsModule,
|
|
6444
|
+
NgScrollbarModule,
|
|
6445
|
+
TaonProgressBarModule,
|
|
6446
|
+
TaonNotificationsModule,
|
|
6447
|
+
TaonFullMaterialModule, // TODO import only partial things
|
|
6448
|
+
TaonSessionPasscodeComponent,
|
|
6449
|
+
], 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 <!-- #region admin tabs / header -->\n <div class=\"taon-header-admin-wrapper\">\n <columns-container\n class=\"taon-header-admin\"\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column\n width=\"200\"\n 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\n width=\"40\"\n *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 <!-- #endregion -->\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 </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\n #drawer\n style=\"width: 580px\"\n [opened]=\"opened\"\n [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"] }]
|
|
6450
|
+
}], ctorParameters: () => [{ type: i1$3.BreakpointsService }, { type: TaonAdminService }], propDecorators: { tabGroup: [{
|
|
5951
6451
|
type: ViewChild,
|
|
5952
6452
|
args: ['tabGroup']
|
|
5953
6453
|
}], taonAdminModeConfigurationDataChanged: [{
|
|
@@ -5961,254 +6461,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
5961
6461
|
;
|
|
5962
6462
|
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.ts
|
|
5963
6463
|
|
|
5964
|
-
class TaonAdminEditModeComponent {
|
|
5965
|
-
constructor(router) {
|
|
5966
|
-
this.router = router;
|
|
5967
|
-
this.inited$ = of(true);
|
|
5968
|
-
this.destroyed$ = new Subject();
|
|
5969
|
-
this.handlers = [];
|
|
5970
|
-
this.columns = [
|
|
5971
|
-
{
|
|
5972
|
-
header: 'ID',
|
|
5973
|
-
field: 'id',
|
|
5974
|
-
maxWidth: 100,
|
|
5975
|
-
showExpand: true,
|
|
5976
|
-
},
|
|
5977
|
-
{
|
|
5978
|
-
header: 'src',
|
|
5979
|
-
field: 'src',
|
|
5980
|
-
maxWidth: 250,
|
|
5981
|
-
},
|
|
5982
|
-
{
|
|
5983
|
-
header: 'Content Type',
|
|
5984
|
-
field: 'contentType',
|
|
5985
|
-
maxWidth: 120,
|
|
5986
|
-
},
|
|
5987
|
-
];
|
|
5988
|
-
this.taonAdminEditModeDataChanged = new EventEmitter();
|
|
5989
|
-
this.taonAdminEditModeData = {};
|
|
5990
|
-
}
|
|
5991
|
-
ngOnInit() {
|
|
5992
|
-
this.files = this.admin.currentFiles;
|
|
5993
|
-
this.handlers.push(this.admin.onEditMode$.subscribe(() => {
|
|
5994
|
-
this.refresFilesList();
|
|
5995
|
-
}));
|
|
5996
|
-
this.admin.onRegisterFile().pipe(takeUntil(this.destroyed$), tap(() => {
|
|
5997
|
-
this.refresFilesList();
|
|
5998
|
-
}));
|
|
5999
|
-
}
|
|
6000
|
-
ngOnDestroy() {
|
|
6001
|
-
this.handlers.forEach(h => h.unsubscribe());
|
|
6002
|
-
this.destroyed$.next(void 0);
|
|
6003
|
-
this.destroyed$.unsubscribe();
|
|
6004
|
-
}
|
|
6005
|
-
ngAfterViewInit() {
|
|
6006
|
-
//Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.
|
|
6007
|
-
//Add 'implements AfterViewInit' to the class.
|
|
6008
|
-
setTimeout(() => {
|
|
6009
|
-
this.refresFilesList();
|
|
6010
|
-
}, 500);
|
|
6011
|
-
}
|
|
6012
|
-
expansionRow(e) {
|
|
6013
|
-
console.log(e);
|
|
6014
|
-
}
|
|
6015
|
-
refresFilesList() {
|
|
6016
|
-
this.files = this.admin.currentFiles;
|
|
6017
|
-
}
|
|
6018
|
-
searchFind(file) {
|
|
6019
|
-
if (!!this?.fileToSearch) {
|
|
6020
|
-
return file?.src?.search(this?.fileToSearch) !== -1;
|
|
6021
|
-
}
|
|
6022
|
-
return true;
|
|
6023
|
-
}
|
|
6024
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeComponent, deps: [{ token: i1$4.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6025
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonAdminEditModeComponent, selector: "taon-admin-edit-mode", inputs: { taonAdminEditModeData: "taonAdminEditModeData" }, outputs: { taonAdminEditModeDataChanged: "taonAdminEditModeDataChanged" }, ngImport: i0, template: "<ng-template #expansionTpl let-row>\n hello from expansion {{ row.src }}\n</ng-template>\n\n<mat-card *ngIf=\"inited$ | async\">\n <div *ngIf=\"!admin.selectedFile\">Please select file from portal to edit</div>\n <taon-file\n *ngIf=\"admin.selectedFile\"\n class=\"file-inside-admin\"\n [insideAdmin]=\"true\"\n [file]=\"admin.selectedFile\"></taon-file>\n\n <hr />\n\n <mat-tab-group\n dynamicHeight\n [selectedIndex]=\"selectedTabIndex\"\n (selectedIndexChange)=\"selectedTabIndex = $event; refresFilesList()\">\n <mat-tab label=\"General\">\n <!-- <taon-file-general-opt\n [file]=\"admin.selectedFile\"></taon-file-general-opt> -->\n </mat-tab>\n <!-- <mat-tab label=\"CSS Editing\">\n <ace [mode]=\"'css'\"\n *ngIf=\"admin.selectedFile\"\n [(value)]=\"admin.selectedFile.css\"\n [theme]=\"'github'\"\n style=\"width: 100%; height: 300px;\"></ace>\n </mat-tab> -->\n\n <mat-tab label=\"Files Picker\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"File Version History\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"Current File\">\n <columns-container *ngIf=\"files.length > 0\">\n <column grow>\n <mat-form-field style=\"width: 100%\">\n <input\n matInput\n [(ngModel)]=\"fileToSearch\"\n (focus)=\"refresFilesList()\"\n placeholder=\"Search by name\" />\n </mat-form-field>\n </column>\n <column [width]=\"40\">\n <button\n mat-icon-button\n (click)=\"fileToSearch = ''; refresFilesList()\"\n *ngIf=\"fileToSearch && fileToSearch?.trim() !== ''\">\n <mat-icon>backspace</mat-icon>\n </button>\n </column>\n <!-- <column [width]=\"40\">\n <button mat-icon-button (click)=\"refresFilesList();\" >\n <mat-icon >refresh</mat-icon>\n </button>\n </column> -->\n </columns-container>\n <columns-container *ngIf=\"files.length == 0\">\n <section>\n <code\n >No <taon-file/> - s components detected on this page</code\n >\n </section>\n </columns-container>\n\n <div class=\"scrollable-files-list\" *ngIf=\"files.length > 0\">\n <ng-scrollbar>\n <!-- selected: \"{{ selectedFile?.src }}\" -->\n <!-- {{ filesSelection.selectedOptions | json }} -->\n <mat-selection-list\n [multiple]=\"false\"\n #filesToSelect\n (selectionChange)=\"\n admin.selectedFile = filesToSelect.selectedOptions.hasValue()\n ? filesToSelect.selectedOptions.selected[0].value\n : null\n \">\n <mat-list-option\n *ngFor=\"let file of files | filterBy: ['src'] : fileToSearch\"\n [value]=\"file\">\n <strong *ngIf=\"file?.src === admin.selectedFile?.src\">\n {{ file.src }}\n </strong>\n <span *ngIf=\"file?.src !== admin.selectedFile?.src\">\n {{ file.src }}\n </span>\n </mat-list-option>\n </mat-selection-list>\n </ng-scrollbar>\n </div>\n </mat-tab>\n </mat-tab-group>\n</mat-card>\n", styles: [":host{display:block}.scrollable-files-list{height:150px;background:#8080801c;display:block}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$3.ColumnsComponent, selector: "columns-container" }, { kind: "component", type: i1$3.ColumnComponent, selector: "column", inputs: ["width"] }, { kind: "directive", type: i1$3.DirectiveGrow, selector: "[grow]" }, { kind: "component", type: i4$1.NgScrollbar, selector: "ng-scrollbar:not([externalViewport])", exportAs: ["ngScrollbar"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i11$1.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i11$1.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i11.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i11.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.FilterByPipe, name: "filterBy" }] }); }
|
|
6026
|
-
}
|
|
6027
|
-
__decorate([
|
|
6028
|
-
(Stor.property.in.localstorage
|
|
6029
|
-
.for(TaonAdminEditModeComponent)
|
|
6030
|
-
.withDefaultValue(0)),
|
|
6031
|
-
__metadata("design:type", Number)
|
|
6032
|
-
], TaonAdminEditModeComponent.prototype, "selectedTabIndex", void 0);
|
|
6033
|
-
__decorate([
|
|
6034
|
-
(Stor.property.in.localstorage
|
|
6035
|
-
.for(TaonAdminEditModeComponent)
|
|
6036
|
-
.withDefaultValue('')),
|
|
6037
|
-
__metadata("design:type", String)
|
|
6038
|
-
], TaonAdminEditModeComponent.prototype, "fileToSearch", void 0);
|
|
6039
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeComponent, decorators: [{
|
|
6040
|
-
type: Component,
|
|
6041
|
-
args: [{ selector: 'taon-admin-edit-mode', template: "<ng-template #expansionTpl let-row>\n hello from expansion {{ row.src }}\n</ng-template>\n\n<mat-card *ngIf=\"inited$ | async\">\n <div *ngIf=\"!admin.selectedFile\">Please select file from portal to edit</div>\n <taon-file\n *ngIf=\"admin.selectedFile\"\n class=\"file-inside-admin\"\n [insideAdmin]=\"true\"\n [file]=\"admin.selectedFile\"></taon-file>\n\n <hr />\n\n <mat-tab-group\n dynamicHeight\n [selectedIndex]=\"selectedTabIndex\"\n (selectedIndexChange)=\"selectedTabIndex = $event; refresFilesList()\">\n <mat-tab label=\"General\">\n <!-- <taon-file-general-opt\n [file]=\"admin.selectedFile\"></taon-file-general-opt> -->\n </mat-tab>\n <!-- <mat-tab label=\"CSS Editing\">\n <ace [mode]=\"'css'\"\n *ngIf=\"admin.selectedFile\"\n [(value)]=\"admin.selectedFile.css\"\n [theme]=\"'github'\"\n style=\"width: 100%; height: 300px;\"></ace>\n </mat-tab> -->\n\n <mat-tab label=\"Files Picker\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"File Version History\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"Current File\">\n <columns-container *ngIf=\"files.length > 0\">\n <column grow>\n <mat-form-field style=\"width: 100%\">\n <input\n matInput\n [(ngModel)]=\"fileToSearch\"\n (focus)=\"refresFilesList()\"\n placeholder=\"Search by name\" />\n </mat-form-field>\n </column>\n <column [width]=\"40\">\n <button\n mat-icon-button\n (click)=\"fileToSearch = ''; refresFilesList()\"\n *ngIf=\"fileToSearch && fileToSearch?.trim() !== ''\">\n <mat-icon>backspace</mat-icon>\n </button>\n </column>\n <!-- <column [width]=\"40\">\n <button mat-icon-button (click)=\"refresFilesList();\" >\n <mat-icon >refresh</mat-icon>\n </button>\n </column> -->\n </columns-container>\n <columns-container *ngIf=\"files.length == 0\">\n <section>\n <code\n >No <taon-file/> - s components detected on this page</code\n >\n </section>\n </columns-container>\n\n <div class=\"scrollable-files-list\" *ngIf=\"files.length > 0\">\n <ng-scrollbar>\n <!-- selected: \"{{ selectedFile?.src }}\" -->\n <!-- {{ filesSelection.selectedOptions | json }} -->\n <mat-selection-list\n [multiple]=\"false\"\n #filesToSelect\n (selectionChange)=\"\n admin.selectedFile = filesToSelect.selectedOptions.hasValue()\n ? filesToSelect.selectedOptions.selected[0].value\n : null\n \">\n <mat-list-option\n *ngFor=\"let file of files | filterBy: ['src'] : fileToSearch\"\n [value]=\"file\">\n <strong *ngIf=\"file?.src === admin.selectedFile?.src\">\n {{ file.src }}\n </strong>\n <span *ngIf=\"file?.src !== admin.selectedFile?.src\">\n {{ file.src }}\n </span>\n </mat-list-option>\n </mat-selection-list>\n </ng-scrollbar>\n </div>\n </mat-tab>\n </mat-tab-group>\n</mat-card>\n", styles: [":host{display:block}.scrollable-files-list{height:150px;background:#8080801c;display:block}\n"] }]
|
|
6042
|
-
}], ctorParameters: () => [{ type: i1$4.Router }], propDecorators: { taonAdminEditModeDataChanged: [{
|
|
6043
|
-
type: Output
|
|
6044
|
-
}], taonAdminEditModeData: [{
|
|
6045
|
-
type: Input
|
|
6046
|
-
}] } });
|
|
6047
|
-
;
|
|
6048
|
-
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.ts
|
|
6049
|
-
|
|
6050
|
-
class TaonFileGeneralOptComponent {
|
|
6051
|
-
constructor() {
|
|
6052
|
-
this.height = 100;
|
|
6053
|
-
this.handlers = [];
|
|
6054
|
-
this.fieldsOrder = [];
|
|
6055
|
-
this.fields = [
|
|
6056
|
-
{
|
|
6057
|
-
key: 'width',
|
|
6058
|
-
},
|
|
6059
|
-
{
|
|
6060
|
-
key: 'height',
|
|
6061
|
-
},
|
|
6062
|
-
{
|
|
6063
|
-
key: 'display',
|
|
6064
|
-
},
|
|
6065
|
-
{
|
|
6066
|
-
key: 'widthUnit',
|
|
6067
|
-
},
|
|
6068
|
-
{
|
|
6069
|
-
key: 'heightUnit', // @ts-ignore
|
|
6070
|
-
},
|
|
6071
|
-
{
|
|
6072
|
-
key: 'action',
|
|
6073
|
-
type: 'action',
|
|
6074
|
-
templateOptions: {
|
|
6075
|
-
label: 'Reset',
|
|
6076
|
-
icon: 'cancel',
|
|
6077
|
-
raised: true,
|
|
6078
|
-
action: () => {
|
|
6079
|
-
console.log('reset');
|
|
6080
|
-
},
|
|
6081
|
-
},
|
|
6082
|
-
},
|
|
6083
|
-
].map(f => {
|
|
6084
|
-
f.className = 'formly-field-half-size';
|
|
6085
|
-
return f;
|
|
6086
|
-
});
|
|
6087
|
-
}
|
|
6088
|
-
ngOnInit() { }
|
|
6089
|
-
ngOnDestroy() {
|
|
6090
|
-
this.handlers.forEach(h => h.unsubscribe());
|
|
6091
|
-
}
|
|
6092
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6093
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TaonFileGeneralOptComponent, selector: "taon-file-general-opt", inputs: { height: "height", file: "file" }, host: { properties: { "style.minHeight.px": "this.height" } }, ngImport: i0, template: "<!-- <taon-formly-form\n *ngIf=\"file\"\n [fields]=\"fields\"\n [fieldsOrder]=\"fieldsOrder\"\n [exclude]=\"['id']\"\n [(model)]=\"file.css\">\n</taon-formly-form> -->\n", styles: [":host{display:block}\n"] }); }
|
|
6094
|
-
}
|
|
6095
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptComponent, decorators: [{
|
|
6096
|
-
type: Component,
|
|
6097
|
-
args: [{ selector: 'taon-file-general-opt', template: "<!-- <taon-formly-form\n *ngIf=\"file\"\n [fields]=\"fields\"\n [fieldsOrder]=\"fieldsOrder\"\n [exclude]=\"['id']\"\n [(model)]=\"file.css\">\n</taon-formly-form> -->\n", styles: [":host{display:block}\n"] }]
|
|
6098
|
-
}], ctorParameters: () => [], propDecorators: { height: [{
|
|
6099
|
-
type: HostBinding,
|
|
6100
|
-
args: ['style.minHeight.px']
|
|
6101
|
-
}, {
|
|
6102
|
-
type: Input
|
|
6103
|
-
}], file: [{
|
|
6104
|
-
type: Input
|
|
6105
|
-
}] } });
|
|
6106
|
-
;
|
|
6107
|
-
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.ts
|
|
6108
|
-
|
|
6109
|
-
class TaonFileGeneralOptModule {
|
|
6110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6111
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptModule, declarations: [TaonFileGeneralOptComponent], imports: [CommonModule, TaonFullMaterialModule], exports: [TaonFileGeneralOptComponent] }); }
|
|
6112
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptModule, imports: [CommonModule, TaonFullMaterialModule] }); }
|
|
6113
|
-
}
|
|
6114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonFileGeneralOptModule, decorators: [{
|
|
6115
|
-
type: NgModule,
|
|
6116
|
-
args: [{
|
|
6117
|
-
imports: [CommonModule, TaonFullMaterialModule],
|
|
6118
|
-
declarations: [TaonFileGeneralOptComponent],
|
|
6119
|
-
exports: [TaonFileGeneralOptComponent],
|
|
6120
|
-
}]
|
|
6121
|
-
}] });
|
|
6122
|
-
;
|
|
6123
|
-
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.ts
|
|
6124
|
-
|
|
6125
|
-
;
|
|
6126
|
-
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.ts
|
|
6127
|
-
|
|
6128
|
-
class TaonAdminEditModeModule {
|
|
6129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6130
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeModule, declarations: [TaonAdminEditModeComponent], imports: [CommonModule,
|
|
6131
|
-
StaticColumnsModule,
|
|
6132
|
-
NgScrollbarModule,
|
|
6133
|
-
TaonFileGeneralOptModule,
|
|
6134
|
-
FormsModule,
|
|
6135
|
-
NgArrayPipesModule,
|
|
6136
|
-
TaonTableModule,
|
|
6137
|
-
TaonFullMaterialModule], exports: [TaonAdminEditModeComponent] }); }
|
|
6138
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeModule, imports: [CommonModule,
|
|
6139
|
-
StaticColumnsModule,
|
|
6140
|
-
NgScrollbarModule,
|
|
6141
|
-
TaonFileGeneralOptModule,
|
|
6142
|
-
FormsModule,
|
|
6143
|
-
NgArrayPipesModule,
|
|
6144
|
-
TaonTableModule,
|
|
6145
|
-
TaonFullMaterialModule] }); }
|
|
6146
|
-
}
|
|
6147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminEditModeModule, decorators: [{
|
|
6148
|
-
type: NgModule,
|
|
6149
|
-
args: [{
|
|
6150
|
-
imports: [
|
|
6151
|
-
CommonModule,
|
|
6152
|
-
StaticColumnsModule,
|
|
6153
|
-
NgScrollbarModule,
|
|
6154
|
-
TaonFileGeneralOptModule,
|
|
6155
|
-
FormsModule,
|
|
6156
|
-
NgArrayPipesModule,
|
|
6157
|
-
TaonTableModule,
|
|
6158
|
-
TaonFullMaterialModule, // TODO import only partial things
|
|
6159
|
-
],
|
|
6160
|
-
declarations: [TaonAdminEditModeComponent],
|
|
6161
|
-
exports: [TaonAdminEditModeComponent],
|
|
6162
|
-
}]
|
|
6163
|
-
}] });
|
|
6164
|
-
;
|
|
6165
|
-
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.ts
|
|
6166
|
-
|
|
6167
|
-
;
|
|
6168
|
-
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.ts
|
|
6169
|
-
|
|
6170
|
-
class TaonAdminModeConfigurationModule {
|
|
6171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6172
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, declarations: [TaonAdminModeConfigurationComponent], imports: [CommonModule,
|
|
6173
|
-
StaticColumnsModule,
|
|
6174
|
-
FormsModule,
|
|
6175
|
-
NgScrollbarModule,
|
|
6176
|
-
TaonAdminEditModeModule,
|
|
6177
|
-
TaonProgressBarModule,
|
|
6178
|
-
TaonNotificationsModule,
|
|
6179
|
-
TaonFullMaterialModule, // TODO import only partial things
|
|
6180
|
-
TaonSessionPasscodeComponent], exports: [TaonAdminModeConfigurationComponent] }); }
|
|
6181
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, imports: [CommonModule,
|
|
6182
|
-
StaticColumnsModule,
|
|
6183
|
-
FormsModule,
|
|
6184
|
-
NgScrollbarModule,
|
|
6185
|
-
TaonAdminEditModeModule,
|
|
6186
|
-
TaonProgressBarModule,
|
|
6187
|
-
TaonNotificationsModule,
|
|
6188
|
-
TaonFullMaterialModule, // TODO import only partial things
|
|
6189
|
-
TaonSessionPasscodeComponent] }); }
|
|
6190
|
-
}
|
|
6191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TaonAdminModeConfigurationModule, decorators: [{
|
|
6192
|
-
type: NgModule,
|
|
6193
|
-
args: [{
|
|
6194
|
-
imports: [
|
|
6195
|
-
CommonModule,
|
|
6196
|
-
StaticColumnsModule,
|
|
6197
|
-
FormsModule,
|
|
6198
|
-
NgScrollbarModule,
|
|
6199
|
-
TaonAdminEditModeModule,
|
|
6200
|
-
TaonProgressBarModule,
|
|
6201
|
-
TaonNotificationsModule,
|
|
6202
|
-
TaonFullMaterialModule, // TODO import only partial things
|
|
6203
|
-
TaonSessionPasscodeComponent,
|
|
6204
|
-
],
|
|
6205
|
-
declarations: [TaonAdminModeConfigurationComponent],
|
|
6206
|
-
exports: [TaonAdminModeConfigurationComponent],
|
|
6207
|
-
}]
|
|
6208
|
-
}] });
|
|
6209
|
-
;
|
|
6210
|
-
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.ts
|
|
6211
|
-
|
|
6212
6464
|
;
|
|
6213
6465
|
({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/index.ts
|
|
6214
6466
|
|
|
@@ -6228,6 +6480,7 @@ var Taon;
|
|
|
6228
6480
|
Taon.Provider = TaonProvider;
|
|
6229
6481
|
Taon.Repository = TaonRepository;
|
|
6230
6482
|
Taon.Subscriber = TaonSubscriber;
|
|
6483
|
+
Taon.Migration = TaonMigration;
|
|
6231
6484
|
Taon.isBrowser = coreHelpers.Helpers.isBrowser;
|
|
6232
6485
|
Taon.isNode = coreHelpers.Helpers.isNode;
|
|
6233
6486
|
Taon.isWebSQL = coreHelpers.Helpers.isWebSQL;
|
|
@@ -6264,5 +6517,5 @@ var Taon;
|
|
|
6264
6517
|
* Generated bundle index. Do not edit.
|
|
6265
6518
|
*/
|
|
6266
6519
|
|
|
6267
|
-
export { BaseContext, BaseController, BaseEntity, BaseProvider, BaseRepository, ClassHelpers, Models, SafePipe, Taon, TaonAdminModeConfigurationComponent,
|
|
6520
|
+
export { BaseContext, BaseController, BaseEntity, BaseMigration, BaseProvider, BaseRepository, ClassHelpers, Models, SafePipe, Taon, TaonAdminModeConfigurationComponent, TaonFullMaterialModule, TaonGithubForkMeCornerComponent, TaonGithubForkMeCornerModule, TaonInjectHTMLDirective, TaonLongPress, TaonNotificationOptions, TaonNotificationsComponent, TaonNotificationsModule, TaonNotificationsService, TaonProgressBarComponent, TaonProgressBarModule, TaonSessionPasscodeComponent, TaonTableComponent, TaonTableModule, createContext, inject };
|
|
6268
6521
|
//# sourceMappingURL=taon.mjs.map
|