@taon-dev/cms 21.0.4 → 21.0.6
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/VERIFIED-BUILD-DATA.jsonc +3 -3
- package/browser/fesm2022/cms-browser.mjs +2864 -433
- package/browser/fesm2022/cms-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/cms-browser.d.ts +439 -70
- package/browser-prod/fesm2022/cms-browser-prod.mjs +2866 -432
- package/browser-prod/fesm2022/cms-browser-prod.mjs.map +1 -1
- package/browser-prod/package.json +1 -1
- package/browser-prod/types/cms-browser-prod.d.ts +437 -70
- package/html/app/baseline-backoffice/taon-baseline-backoffice.component.html +23 -0
- package/html/app/cms-example/cms-example.component.html +2 -0
- package/html/app/session-example/session-example.component.html +2 -0
- package/html/assets/generated/pwa/html-pwa.html +53 -53
- package/html/lib/taon-cms-backoffice/taon-cms-backoffice.component.html +9 -4
- package/html/lib/taon-posts/taon-cms-post/taon-cms-post.component.html +183 -0
- package/html/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.html +12 -0
- package/html/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html +14 -0
- package/html/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html +35 -0
- package/html/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +27 -0
- package/i18n/app.ts.en-US.i18n.data.d.ts +0 -8
- package/i18n/app.ts.pl-PL.i18n.data.d.ts +0 -8
- package/lib/app.data.d.ts +22 -0
- package/lib/app.data.js +23 -0
- package/lib/app.data.js.map +1 -0
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/env/env.angular-node-app.d.ts +3 -0
- package/lib/env/env.angular-node-app.js +10 -2
- package/lib/env/env.angular-node-app.js.map +1 -1
- package/lib/env/env.docs-webapp.d.ts +3 -0
- package/lib/env/env.docs-webapp.js +10 -2
- package/lib/env/env.docs-webapp.js.map +1 -1
- package/lib/env/env.electron-app.d.ts +3 -0
- package/lib/env/env.electron-app.js +10 -2
- package/lib/env/env.electron-app.js.map +1 -1
- package/lib/env/env.mobile-app.d.ts +3 -0
- package/lib/env/env.mobile-app.js +10 -2
- package/lib/env/env.mobile-app.js.map +1 -1
- package/lib/env/env.npm-lib-and-cli-tool.d.ts +3 -0
- package/lib/env/env.npm-lib-and-cli-tool.js +10 -2
- package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
- package/lib/env/env.vscode-plugin.d.ts +3 -0
- package/lib/env/env.vscode-plugin.js +10 -2
- package/lib/env/env.vscode-plugin.js.map +1 -1
- package/lib/index._auto-generated_.d.ts +18 -1
- package/lib/index._auto-generated_.js +17 -0
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/migrations/1791132517216_initial.d.ts +7 -0
- package/lib/migrations/1791132517216_initial.js +74 -0
- package/lib/migrations/1791132517216_initial.js.map +1 -0
- package/lib/migrations/migrations_index._auto-generated_.d.ts +4 -0
- package/lib/migrations/migrations_index._auto-generated_.js +7 -0
- package/lib/migrations/migrations_index._auto-generated_.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.d.ts +10 -0
- package/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.d.ts +2 -0
- package/lib/taon-cms-backoffice/index.js +2 -2
- package/lib/taon-cms-backoffice/taon-cms-backoffice.component.d.ts +3 -0
- package/lib/taon-cms-category/taon-cms-category-api.service.d.ts +0 -1
- package/lib/taon-cms-category/taon-cms-category.controller.d.ts +1 -5
- package/lib/taon-cms-category/taon-cms-category.controller.js +3 -33
- package/lib/taon-cms-category/taon-cms-category.controller.js.map +1 -1
- package/lib/taon-cms-category/taon-cms-category.repository.d.ts +2 -4
- package/lib/taon-cms-category/taon-cms-category.repository.js +8 -11
- package/lib/taon-cms-category/taon-cms-category.repository.js.map +1 -1
- package/lib/taon-cms-content/index.d.ts +1 -0
- package/lib/taon-cms-content/index.js +1 -0
- package/lib/taon-cms-content/index.js.map +1 -1
- package/lib/taon-cms-content/taon-cms-content-api.service.d.ts +18 -3
- package/lib/taon-cms-content/taon-cms-content-storage.controller.d.ts +7 -0
- package/lib/taon-cms-content/taon-cms-content-storage.controller.js +41 -0
- package/lib/taon-cms-content/taon-cms-content-storage.controller.js.map +1 -0
- package/lib/taon-cms-content/taon-cms-content.abstract.context.js +16 -5
- package/lib/taon-cms-content/taon-cms-content.abstract.context.js.map +1 -1
- package/lib/taon-cms-content/taon-cms-content.config.service.d.ts +5 -0
- package/lib/taon-cms-content/taon-cms-content.constants.js +5 -0
- package/lib/taon-cms-content/taon-cms-content.constants.js.map +1 -1
- package/lib/taon-cms-content/taon-cms-content.controller.d.ts +12 -4
- package/lib/taon-cms-content/taon-cms-content.controller.js +125 -21
- package/lib/taon-cms-content/taon-cms-content.controller.js.map +1 -1
- package/lib/taon-cms-content/taon-cms-content.entity.d.ts +8 -1
- package/lib/taon-cms-content/taon-cms-content.entity.js +59 -3
- package/lib/taon-cms-content/taon-cms-content.entity.js.map +1 -1
- package/lib/taon-cms-content/taon-cms-content.models.d.ts +40 -0
- package/lib/taon-cms-content/taon-cms-content.models.js +8 -1
- package/lib/taon-cms-content/taon-cms-content.models.js.map +1 -1
- package/lib/taon-cms-content/taon-cms-content.provider.js.map +1 -1
- package/lib/taon-cms-content/taon-cms-content.repository.d.ts +27 -0
- package/lib/taon-cms-content/taon-cms-content.repository.js +326 -0
- package/lib/taon-cms-content/taon-cms-content.repository.js.map +1 -1
- package/lib/taon-cms-content/taon-cms-content.validation.d.ts +9 -0
- package/lib/taon-cms-content/taon-cms-content.validation.js +79 -0
- package/lib/taon-cms-content/taon-cms-content.validation.js.map +1 -0
- package/lib/taon-cms-content-revision/taon-cms-content-revision-api.service.d.ts +5 -1
- package/lib/taon-cms-content-revision/taon-cms-content-revision.controller.d.ts +1 -5
- package/lib/taon-cms-content-revision/taon-cms-content-revision.controller.js +3 -33
- package/lib/taon-cms-content-revision/taon-cms-content-revision.controller.js.map +1 -1
- package/lib/taon-cms-content-revision/taon-cms-content-revision.entity.d.ts +2 -0
- package/lib/taon-cms-content-revision/taon-cms-content-revision.entity.js +9 -0
- package/lib/taon-cms-content-revision/taon-cms-content-revision.entity.js.map +1 -1
- package/lib/taon-cms-content-revision/taon-cms-content-revision.repository.d.ts +6 -4
- package/lib/taon-cms-content-revision/taon-cms-content-revision.repository.js +33 -10
- package/lib/taon-cms-content-revision/taon-cms-content-revision.repository.js.map +1 -1
- package/lib/taon-cms-content-tag/taon-cms-content-tag-api.service.d.ts +0 -1
- package/lib/taon-cms-content-tag/taon-cms-content-tag.controller.d.ts +1 -5
- package/lib/taon-cms-content-tag/taon-cms-content-tag.controller.js +3 -33
- package/lib/taon-cms-content-tag/taon-cms-content-tag.controller.js.map +1 -1
- package/lib/taon-cms-content-tag/taon-cms-content-tag.repository.d.ts +3 -4
- package/lib/taon-cms-content-tag/taon-cms-content-tag.repository.js +15 -11
- package/lib/taon-cms-content-tag/taon-cms-content-tag.repository.js.map +1 -1
- package/lib/taon-cms-tag/taon-cms-tag.repository.d.ts +2 -0
- package/lib/taon-cms-tag/taon-cms-tag.repository.js +13 -0
- package/lib/taon-cms-tag/taon-cms-tag.repository.js.map +1 -1
- package/lib/taon-cms.abstract.context.js +4 -2
- package/lib/taon-cms.abstract.context.js.map +1 -1
- package/lib/taon-posts/taon-cms-post/index.d.ts +1 -0
- package/lib/taon-posts/taon-cms-post/index.js +5 -0
- package/lib/taon-posts/taon-cms-post/index.js.map +1 -0
- package/lib/taon-posts/taon-cms-post/taon-cms-editable.directive.d.ts +19 -0
- package/lib/taon-posts/taon-cms-post/taon-cms-post.component.d.ts +84 -0
- package/lib/taon-posts/taon-cms-post/taon-cms-post.models.d.ts +8 -0
- package/lib/taon-posts/taon-cms-post/taon-cms-post.models.js +3 -0
- package/lib/taon-posts/taon-cms-post/taon-cms-post.models.js.map +1 -0
- package/lib/taon-posts/taon-cms-post/taon-cms-post.routes.d.ts +7 -0
- package/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.d.ts +4 -0
- package/lib/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -0
- package/lib/taon-posts/taon-cms-post-edit-dialog/index.js +5 -0
- package/lib/taon-posts/taon-cms-post-edit-dialog/index.js.map +1 -0
- package/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.d.ts +15 -0
- package/lib/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -0
- package/lib/taon-posts/taon-cms-posts-backoffice/index.js +5 -0
- package/lib/taon-posts/taon-cms-posts-backoffice/index.js.map +1 -0
- package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.d.ts +26 -0
- package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.d.ts +1 -0
- package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js +3 -0
- package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js.map +1 -0
- package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.d.ts +7 -0
- package/lib/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -0
- package/lib/taon-posts/taon-cms-revision-chooser/index.js +5 -0
- package/lib/taon-posts/taon-cms-revision-chooser/index.js.map +1 -0
- package/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.d.ts +17 -0
- package/lib/taon-posts/taon-related-post-chooser/index.d.ts +1 -0
- package/lib/taon-posts/taon-related-post-chooser/index.js +5 -0
- package/lib/taon-posts/taon-related-post-chooser/index.js.map +1 -0
- package/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.d.ts +22 -0
- package/lib-esm/app/baseline-backoffice/index.d.ts +0 -0
- package/lib-esm/app/baseline-backoffice/index.js +2 -0
- package/lib-esm/app/baseline-backoffice/index.js.map +1 -0
- package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.component.d.ts +0 -0
- package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.component.js +2 -0
- package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.component.js.map +1 -0
- package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.models.d.ts +0 -0
- package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.models.js +2 -0
- package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.models.js.map +1 -0
- package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.routes.d.ts +0 -0
- package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.routes.js +2 -0
- package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.routes.js.map +1 -0
- package/lib-esm/app/cms-example/cms-example.component.d.ts +0 -0
- package/lib-esm/app/cms-example/cms-example.component.js +2 -0
- package/lib-esm/app/cms-example/cms-example.component.js.map +1 -0
- package/lib-esm/app/cms-example/cms-example.models.d.ts +0 -0
- package/lib-esm/app/cms-example/cms-example.models.js +2 -0
- package/lib-esm/app/cms-example/cms-example.models.js.map +1 -0
- package/lib-esm/app/cms-example/cms-example.routes.d.ts +0 -0
- package/lib-esm/app/cms-example/cms-example.routes.js +2 -0
- package/lib-esm/app/cms-example/cms-example.routes.js.map +1 -0
- package/lib-esm/app/cms-example/index.d.ts +0 -0
- package/lib-esm/app/cms-example/index.js +2 -0
- package/lib-esm/app/cms-example/index.js.map +1 -0
- package/lib-esm/app/session-example/index.d.ts +0 -0
- package/lib-esm/app/session-example/index.js +2 -0
- package/lib-esm/app/session-example/index.js.map +1 -0
- package/lib-esm/app/session-example/session-example.component.d.ts +0 -0
- package/lib-esm/app/session-example/session-example.component.js +2 -0
- package/lib-esm/app/session-example/session-example.component.js.map +1 -0
- package/lib-esm/app/session-example/session-example.models.d.ts +0 -0
- package/lib-esm/app/session-example/session-example.models.js +2 -0
- package/lib-esm/app/session-example/session-example.models.js.map +1 -0
- package/lib-esm/app/session-example/session-example.routes.d.ts +0 -0
- package/lib-esm/app/session-example/session-example.routes.js +2 -0
- package/lib-esm/app/session-example/session-example.routes.js.map +1 -0
- package/lib-esm/lib/app.data.d.ts +22 -0
- package/lib-esm/lib/app.data.js +20 -0
- package/lib-esm/lib/app.data.js.map +1 -0
- package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib-esm/lib/build-info._auto-generated_.js +1 -1
- package/lib-esm/lib/env/env.angular-node-app.d.ts +3 -0
- package/lib-esm/lib/env/env.angular-node-app.js +6 -0
- package/lib-esm/lib/env/env.angular-node-app.js.map +1 -1
- package/lib-esm/lib/env/env.docs-webapp.d.ts +3 -0
- package/lib-esm/lib/env/env.docs-webapp.js +6 -0
- package/lib-esm/lib/env/env.docs-webapp.js.map +1 -1
- package/lib-esm/lib/env/env.electron-app.d.ts +3 -0
- package/lib-esm/lib/env/env.electron-app.js +6 -0
- package/lib-esm/lib/env/env.electron-app.js.map +1 -1
- package/lib-esm/lib/env/env.mobile-app.d.ts +3 -0
- package/lib-esm/lib/env/env.mobile-app.js +6 -0
- package/lib-esm/lib/env/env.mobile-app.js.map +1 -1
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +3 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +6 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
- package/lib-esm/lib/env/env.vscode-plugin.d.ts +3 -0
- package/lib-esm/lib/env/env.vscode-plugin.js +6 -0
- package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -1
- package/lib-esm/lib/index._auto-generated_.d.ts +5 -0
- package/lib-esm/lib/index._auto-generated_.js +17 -0
- package/lib-esm/lib/index._auto-generated_.js.map +1 -1
- package/lib-esm/lib/index.d.ts +1 -0
- package/lib-esm/lib/index.js +2 -0
- package/lib-esm/lib/index.js.map +1 -1
- package/lib-esm/lib/migrations/1791132517216_initial.d.ts +7 -0
- package/lib-esm/lib/migrations/1791132517216_initial.js +65 -0
- package/lib-esm/lib/migrations/1791132517216_initial.js.map +1 -0
- package/lib-esm/lib/migrations/migrations_index._auto-generated_.d.ts +4 -0
- package/lib-esm/lib/migrations/migrations_index._auto-generated_.js +4 -0
- package/lib-esm/lib/migrations/migrations_index._auto-generated_.js.map +1 -1
- package/lib-esm/lib/taon-cms-backoffice/index.d.ts +1 -1
- package/lib-esm/lib/taon-cms-backoffice/index.js +1 -1
- package/lib-esm/lib/taon-cms-category/taon-cms-category.controller.d.ts +1 -5
- package/lib-esm/lib/taon-cms-category/taon-cms-category.controller.js +4 -28
- package/lib-esm/lib/taon-cms-category/taon-cms-category.controller.js.map +1 -1
- package/lib-esm/lib/taon-cms-category/taon-cms-category.repository.d.ts +2 -4
- package/lib-esm/lib/taon-cms-category/taon-cms-category.repository.js +8 -11
- package/lib-esm/lib/taon-cms-category/taon-cms-category.repository.js.map +1 -1
- package/lib-esm/lib/taon-cms-content/index.d.ts +1 -0
- package/lib-esm/lib/taon-cms-content/index.js +1 -0
- package/lib-esm/lib/taon-cms-content/index.js.map +1 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content-storage.controller.d.ts +7 -0
- package/lib-esm/lib/taon-cms-content/taon-cms-content-storage.controller.js +32 -0
- package/lib-esm/lib/taon-cms-content/taon-cms-content-storage.controller.js.map +1 -0
- package/lib-esm/lib/taon-cms-content/taon-cms-content.abstract.context.js +16 -5
- package/lib-esm/lib/taon-cms-content/taon-cms-content.abstract.context.js.map +1 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content.constants.js +5 -0
- package/lib-esm/lib/taon-cms-content/taon-cms-content.constants.js.map +1 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.d.ts +12 -4
- package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.js +126 -22
- package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.js.map +1 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.d.ts +8 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.js +60 -4
- package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.js.map +1 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content.models.d.ts +40 -0
- package/lib-esm/lib/taon-cms-content/taon-cms-content.models.js +7 -0
- package/lib-esm/lib/taon-cms-content/taon-cms-content.models.js.map +1 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content.provider.js.map +1 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.d.ts +27 -0
- package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.js +327 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.js.map +1 -1
- package/lib-esm/lib/taon-cms-content/taon-cms-content.validation.d.ts +9 -0
- package/lib-esm/lib/taon-cms-content/taon-cms-content.validation.js +73 -0
- package/lib-esm/lib/taon-cms-content/taon-cms-content.validation.js.map +1 -0
- package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.controller.d.ts +1 -5
- package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.controller.js +4 -28
- package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.controller.js.map +1 -1
- package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.entity.d.ts +2 -0
- package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.entity.js +9 -0
- package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.entity.js.map +1 -1
- package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.repository.d.ts +6 -4
- package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.repository.js +33 -10
- package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.repository.js.map +1 -1
- package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.controller.d.ts +1 -5
- package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.controller.js +4 -28
- package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.controller.js.map +1 -1
- package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.repository.d.ts +3 -4
- package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.repository.js +15 -11
- package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.repository.js.map +1 -1
- package/lib-esm/lib/taon-cms-tag/taon-cms-tag.repository.d.ts +2 -0
- package/lib-esm/lib/taon-cms-tag/taon-cms-tag.repository.js +13 -0
- package/lib-esm/lib/taon-cms-tag/taon-cms-tag.repository.js.map +1 -1
- package/lib-esm/lib/taon-cms.abstract.context.js +2 -0
- package/lib-esm/lib/taon-cms.abstract.context.js.map +1 -1
- package/lib-esm/lib/taon-posts/taon-cms-post/index.d.ts +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-post/index.js +2 -0
- package/lib-esm/lib/taon-posts/taon-cms-post/index.js.map +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-post/taon-cms-post.models.d.ts +8 -0
- package/lib-esm/lib/taon-posts/taon-cms-post/taon-cms-post.models.js +2 -0
- package/lib-esm/lib/taon-posts/taon-cms-post/taon-cms-post.models.js.map +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-post-edit-dialog/index.js +2 -0
- package/lib-esm/lib/taon-posts/taon-cms-post-edit-dialog/index.js.map +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.js +2 -0
- package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.js.map +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.d.ts +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js +2 -0
- package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js.map +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -0
- package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.js +2 -0
- package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.js.map +1 -0
- package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.d.ts +1 -0
- package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.js +2 -0
- package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.js.map +1 -0
- package/lib-prod/app.data.d.ts +22 -0
- package/lib-prod/app.data.js +20 -0
- package/lib-prod/app.data.js.map +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +1 -1
- package/lib-prod/build-info._auto-generated_.js +1 -1
- package/lib-prod/env/env.angular-node-app.d.ts +3 -0
- package/lib-prod/env/env.angular-node-app.js +6 -0
- package/lib-prod/env/env.angular-node-app.js.map +1 -1
- package/lib-prod/env/env.docs-webapp.d.ts +3 -0
- package/lib-prod/env/env.docs-webapp.js +6 -0
- package/lib-prod/env/env.docs-webapp.js.map +1 -1
- package/lib-prod/env/env.electron-app.d.ts +3 -0
- package/lib-prod/env/env.electron-app.js +6 -0
- package/lib-prod/env/env.electron-app.js.map +1 -1
- package/lib-prod/env/env.mobile-app.d.ts +3 -0
- package/lib-prod/env/env.mobile-app.js +6 -0
- package/lib-prod/env/env.mobile-app.js.map +1 -1
- package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +3 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +6 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -1
- package/lib-prod/env/env.vscode-plugin.d.ts +3 -0
- package/lib-prod/env/env.vscode-plugin.js +6 -0
- package/lib-prod/env/env.vscode-plugin.js.map +1 -1
- package/lib-prod/index._auto-generated_.d.ts +5 -0
- package/lib-prod/index._auto-generated_.js +17 -0
- package/lib-prod/index._auto-generated_.js.map +1 -1
- package/lib-prod/index.d.ts +1 -0
- package/lib-prod/index.js +2 -0
- package/lib-prod/index.js.map +1 -1
- package/lib-prod/migrations/1791132517216_initial.d.ts +7 -0
- package/lib-prod/migrations/1791132517216_initial.js +65 -0
- package/lib-prod/migrations/1791132517216_initial.js.map +1 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.d.ts +4 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.js +4 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.js.map +1 -1
- package/lib-prod/package.json +1 -1
- package/lib-prod/taon-cms-backoffice/index.d.ts +1 -1
- package/lib-prod/taon-cms-backoffice/index.js +1 -1
- package/lib-prod/taon-cms-category/taon-cms-category.controller.d.ts +1 -5
- package/lib-prod/taon-cms-category/taon-cms-category.controller.js +4 -28
- package/lib-prod/taon-cms-category/taon-cms-category.controller.js.map +1 -1
- package/lib-prod/taon-cms-category/taon-cms-category.repository.d.ts +2 -4
- package/lib-prod/taon-cms-category/taon-cms-category.repository.js +8 -11
- package/lib-prod/taon-cms-category/taon-cms-category.repository.js.map +1 -1
- package/lib-prod/taon-cms-content/index.d.ts +1 -0
- package/lib-prod/taon-cms-content/index.js +1 -0
- package/lib-prod/taon-cms-content/index.js.map +1 -1
- package/lib-prod/taon-cms-content/taon-cms-content-storage.controller.d.ts +7 -0
- package/lib-prod/taon-cms-content/taon-cms-content-storage.controller.js +32 -0
- package/lib-prod/taon-cms-content/taon-cms-content-storage.controller.js.map +1 -0
- package/lib-prod/taon-cms-content/taon-cms-content.abstract.context.js +16 -5
- package/lib-prod/taon-cms-content/taon-cms-content.abstract.context.js.map +1 -1
- package/lib-prod/taon-cms-content/taon-cms-content.constants.js +5 -0
- package/lib-prod/taon-cms-content/taon-cms-content.constants.js.map +1 -1
- package/lib-prod/taon-cms-content/taon-cms-content.controller.d.ts +12 -4
- package/lib-prod/taon-cms-content/taon-cms-content.controller.js +126 -22
- package/lib-prod/taon-cms-content/taon-cms-content.controller.js.map +1 -1
- package/lib-prod/taon-cms-content/taon-cms-content.entity.d.ts +8 -1
- package/lib-prod/taon-cms-content/taon-cms-content.entity.js +60 -4
- package/lib-prod/taon-cms-content/taon-cms-content.entity.js.map +1 -1
- package/lib-prod/taon-cms-content/taon-cms-content.models.d.ts +40 -0
- package/lib-prod/taon-cms-content/taon-cms-content.models.js +7 -0
- package/lib-prod/taon-cms-content/taon-cms-content.models.js.map +1 -1
- package/lib-prod/taon-cms-content/taon-cms-content.provider.js.map +1 -1
- package/lib-prod/taon-cms-content/taon-cms-content.repository.d.ts +27 -0
- package/lib-prod/taon-cms-content/taon-cms-content.repository.js +327 -1
- package/lib-prod/taon-cms-content/taon-cms-content.repository.js.map +1 -1
- package/lib-prod/taon-cms-content/taon-cms-content.validation.d.ts +9 -0
- package/lib-prod/taon-cms-content/taon-cms-content.validation.js +73 -0
- package/lib-prod/taon-cms-content/taon-cms-content.validation.js.map +1 -0
- package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.controller.d.ts +1 -5
- package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.controller.js +4 -28
- package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.controller.js.map +1 -1
- package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.entity.d.ts +2 -0
- package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.entity.js +9 -0
- package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.entity.js.map +1 -1
- package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.repository.d.ts +6 -4
- package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.repository.js +33 -10
- package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.repository.js.map +1 -1
- package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.controller.d.ts +1 -5
- package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.controller.js +4 -28
- package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.controller.js.map +1 -1
- package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.repository.d.ts +3 -4
- package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.repository.js +15 -11
- package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.repository.js.map +1 -1
- package/lib-prod/taon-cms-tag/taon-cms-tag.repository.d.ts +2 -0
- package/lib-prod/taon-cms-tag/taon-cms-tag.repository.js +13 -0
- package/lib-prod/taon-cms-tag/taon-cms-tag.repository.js.map +1 -1
- package/lib-prod/taon-cms.abstract.context.js +2 -0
- package/lib-prod/taon-cms.abstract.context.js.map +1 -1
- package/lib-prod/taon-posts/taon-cms-post/index.d.ts +1 -0
- package/lib-prod/taon-posts/taon-cms-post/index.js +2 -0
- package/lib-prod/taon-posts/taon-cms-post/index.js.map +1 -0
- package/lib-prod/taon-posts/taon-cms-post/taon-cms-post.models.d.ts +8 -0
- package/lib-prod/taon-posts/taon-cms-post/taon-cms-post.models.js +2 -0
- package/lib-prod/taon-posts/taon-cms-post/taon-cms-post.models.js.map +1 -0
- package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -0
- package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.js +2 -0
- package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.js.map +1 -0
- package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -0
- package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.js +2 -0
- package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.js.map +1 -0
- package/lib-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.d.ts +0 -0
- package/lib-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js +3 -0
- package/lib-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js.map +1 -0
- package/lib-prod/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -0
- package/lib-prod/taon-posts/taon-cms-revision-chooser/index.js +2 -0
- package/lib-prod/taon-posts/taon-cms-revision-chooser/index.js.map +1 -0
- package/lib-prod/taon-posts/taon-related-post-chooser/index.d.ts +1 -0
- package/lib-prod/taon-posts/taon-related-post-chooser/index.js +2 -0
- package/lib-prod/taon-posts/taon-related-post-chooser/index.js.map +1 -0
- package/package.json +1 -1
- package/scss/app/baseline-backoffice/taon-baseline-backoffice.component.scss +3 -0
- package/scss/app/cms-example/cms-example.component.scss +3 -0
- package/scss/app/session-example/session-example.component.scss +3 -0
- package/scss/global.scss +4 -1
- package/scss/lib/taon-posts/taon-cms-post/taon-cms-post.component.scss +132 -0
- package/scss/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.scss +19 -0
- package/scss/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.scss +3 -0
- package/scss/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.scss +15 -0
- package/scss/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.scss +25 -0
- package/websql/fesm2022/cms-websql.mjs +2992 -600
- package/websql/fesm2022/cms-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/cms-websql.d.ts +439 -70
- package/websql-prod/fesm2022/cms-websql-prod.mjs +2995 -600
- package/websql-prod/fesm2022/cms-websql-prod.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
- package/websql-prod/types/cms-websql-prod.d.ts +437 -70
|
@@ -1,22 +1,114 @@
|
|
|
1
|
+
import { __decorate, __metadata, __param } from 'tslib';
|
|
2
|
+
import { TaonAuthContextRepository, TaonPermissionEntity, TaonSessionAbstractContext, TaonPermissionApiService } from '@taon-dev/session/websql';
|
|
3
|
+
import { TaonBaseMigration, TaonMigration, TaonBaseAbstractEntity, Column, TaonEntity, Taon, TaonBaseRepository, TaonRepository, TaonBaseCrudController, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, TaonBaseEntity, PrimaryGeneratedColumn, ClassHelpers, GET, Query, ManyToMany, JoinTable, POST, Body, PUT, DELETE, TaonBaseStorageController, TaonBaseAngularService } from 'taon/websql';
|
|
1
4
|
import { decodeEnv, UtilsJson } from 'tnp-core/websql';
|
|
2
5
|
import { Translation } from '@taon-dev/i18n/websql';
|
|
3
6
|
import { BaseCommandLineFeature } from 'tnp-helpers/websql';
|
|
4
|
-
import { TaonBaseAbstractEntity, Column, TaonEntity, TaonBaseRepository, TaonRepository, TaonBaseCrudController, ClassHelpers, GET, Query, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, TaonBaseEntity, PrimaryGeneratedColumn, TaonBaseAngularService } from 'taon/websql';
|
|
5
|
-
import { __decorate, __metadata, __param } from 'tslib';
|
|
6
|
-
import { Raw } from 'taon-typeorm/websql';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
|
-
import { Injectable, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
8
|
+
import { Injectable, ChangeDetectionStrategy, Component, inject, ElementRef, EventEmitter, SecurityContext, HostListener, Input, Output, Directive, signal, DestroyRef, computed, input, model, output, effect, untracked, viewChild, ViewChild } from '@angular/core';
|
|
9
|
+
import { Raw, In } from 'taon-typeorm/websql';
|
|
10
|
+
import { MtxGrid } from '@ng-matero/extensions/grid';
|
|
11
|
+
import { AsyncPipe, DatePipe } from '@angular/common';
|
|
12
|
+
import { RouterOutlet, ActivatedRoute, RouterLink, Router } from '@angular/router';
|
|
13
|
+
import { adminLazyRoute, TaonConfirmDialogComponent, TaonDatatableComponent } from '@taon-dev/ui/websql';
|
|
11
14
|
import { map } from 'rxjs/operators';
|
|
15
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
16
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
17
|
+
import * as i1 from '@angular/material/button';
|
|
18
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
19
|
+
import * as i2 from '@angular/material/dialog';
|
|
20
|
+
import { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule, MatDialog } from '@angular/material/dialog';
|
|
21
|
+
import * as i2$1 from '@angular/material/form-field';
|
|
22
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
23
|
+
import * as i3$1 from '@angular/material/icon';
|
|
24
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
25
|
+
import * as i3 from '@angular/material/radio';
|
|
26
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
27
|
+
import * as i5 from '@angular/material/select';
|
|
28
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
29
|
+
import { finalize, map as map$1, Subject, takeUntil } from 'rxjs';
|
|
30
|
+
|
|
31
|
+
//#region Migration class for context "CmsContext"
|
|
32
|
+
let CmsContext_1791132517216_initial = class CmsContext_1791132517216_initial extends TaonBaseMigration {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments);
|
|
35
|
+
this.taonAuthContextRepository = this.injectCustomRepo((TaonAuthContextRepository));
|
|
36
|
+
//#endregion
|
|
37
|
+
}
|
|
38
|
+
//#region up
|
|
39
|
+
async up(queryRunner) {
|
|
40
|
+
await queryRunner.startTransaction();
|
|
41
|
+
try {
|
|
42
|
+
await this.taonAuthContextRepository.persistTree({
|
|
43
|
+
enums: {
|
|
44
|
+
groups: MyAppGroup,
|
|
45
|
+
roles: MyAppRole,
|
|
46
|
+
permissions: MyAppPermission,
|
|
47
|
+
},
|
|
48
|
+
tree: {
|
|
49
|
+
groupAndRoles: {
|
|
50
|
+
[MyAppGroup.Administrator]: '*',
|
|
51
|
+
[MyAppGroup.Customers]: [MyAppRole.BlogReader],
|
|
52
|
+
},
|
|
53
|
+
rolesAndPermissions: {
|
|
54
|
+
[MyAppRole.Customer]: [
|
|
55
|
+
MyAppPermission.AccessCourseP2,
|
|
56
|
+
MyAppPermission.AccessCourseP2,
|
|
57
|
+
],
|
|
58
|
+
[MyAppRole.CustomerPremium]: '*',
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
await queryRunner.commitTransaction();
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.error('Error in migration:', error);
|
|
66
|
+
await queryRunner.rollbackTransaction();
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
await queryRunner.release();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region down
|
|
74
|
+
async down(queryRunner) {
|
|
75
|
+
await queryRunner.startTransaction();
|
|
76
|
+
try {
|
|
77
|
+
await this.taonAuthContextRepository.clearRolesGroupPermissions();
|
|
78
|
+
await queryRunner.commitTransaction();
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.error('Error in migration:', error);
|
|
82
|
+
await queryRunner.rollbackTransaction();
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
await queryRunner.release();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
CmsContext_1791132517216_initial = __decorate([
|
|
90
|
+
TaonMigration({
|
|
91
|
+
className: 'CmsContext_1791132517216_initial',
|
|
92
|
+
})
|
|
93
|
+
], CmsContext_1791132517216_initial);
|
|
94
|
+
//#endregion
|
|
12
95
|
|
|
13
96
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
14
97
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
98
|
+
const MIGRATIONS_CLASSES_FOR_CmsContext = {
|
|
99
|
+
/* 04-10-2026 18:48:37 */ CmsContext_1791132517216_initial,
|
|
100
|
+
};
|
|
15
101
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
16
102
|
|
|
17
103
|
//@ts-nocheck
|
|
18
104
|
|
|
19
105
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
106
|
+
// config.superUsers
|
|
107
|
+
const ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
|
|
108
|
+
// config.googleSecret
|
|
109
|
+
const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
|
|
110
|
+
// config.googleClientId
|
|
111
|
+
const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
|
|
20
112
|
// loading.preAngularBootstrap.background
|
|
21
113
|
const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
|
|
22
114
|
// loading.preAngularBootstrap.loader.name
|
|
@@ -156,6 +248,12 @@ const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;
|
|
|
156
248
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
157
249
|
|
|
158
250
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
251
|
+
// config.superUsers
|
|
252
|
+
const ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
|
|
253
|
+
// config.googleSecret
|
|
254
|
+
const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
|
|
255
|
+
// config.googleClientId
|
|
256
|
+
const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
|
|
159
257
|
// loading.preAngularBootstrap.background
|
|
160
258
|
const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
|
|
161
259
|
// loading.preAngularBootstrap.loader.name
|
|
@@ -295,6 +393,12 @@ const ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB = undefined;
|
|
|
295
393
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
296
394
|
|
|
297
395
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
396
|
+
// config.superUsers
|
|
397
|
+
const ENV_ELECTRON_APP_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
|
|
398
|
+
// config.googleSecret
|
|
399
|
+
const ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
|
|
400
|
+
// config.googleClientId
|
|
401
|
+
const ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
|
|
298
402
|
// build.ssr
|
|
299
403
|
const ENV_ELECTRON_APP_BUILD_SSR = false;
|
|
300
404
|
// loading.preAngularBootstrap.background
|
|
@@ -434,6 +538,12 @@ const ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;
|
|
|
434
538
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
435
539
|
|
|
436
540
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
541
|
+
// config.superUsers
|
|
542
|
+
const ENV_MOBILE_APP_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
|
|
543
|
+
// config.googleSecret
|
|
544
|
+
const ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
|
|
545
|
+
// config.googleClientId
|
|
546
|
+
const ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
|
|
437
547
|
// loading.preAngularBootstrap.background
|
|
438
548
|
const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
|
|
439
549
|
// loading.preAngularBootstrap.loader.name
|
|
@@ -573,6 +683,12 @@ const ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;
|
|
|
573
683
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
574
684
|
|
|
575
685
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
686
|
+
// config.superUsers
|
|
687
|
+
const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
|
|
688
|
+
// config.googleSecret
|
|
689
|
+
const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
|
|
690
|
+
// config.googleClientId
|
|
691
|
+
const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
|
|
576
692
|
// loading.preAngularBootstrap.background
|
|
577
693
|
const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
|
|
578
694
|
// loading.preAngularBootstrap.loader.name
|
|
@@ -712,6 +828,12 @@ const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB = undefined;
|
|
|
712
828
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
713
829
|
|
|
714
830
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
831
|
+
// config.superUsers
|
|
832
|
+
const ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
|
|
833
|
+
// config.googleSecret
|
|
834
|
+
const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
|
|
835
|
+
// config.googleClientId
|
|
836
|
+
const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
|
|
715
837
|
// loading.preAngularBootstrap.background
|
|
716
838
|
const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
|
|
717
839
|
// loading.preAngularBootstrap.loader.name
|
|
@@ -850,6 +972,26 @@ const ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER = undefined;
|
|
|
850
972
|
const ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB = undefined;
|
|
851
973
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
852
974
|
|
|
975
|
+
var MyAppGroup;
|
|
976
|
+
(function (MyAppGroup) {
|
|
977
|
+
MyAppGroup["Administrator"] = "administrator";
|
|
978
|
+
MyAppGroup["Customers"] = "customers";
|
|
979
|
+
})(MyAppGroup || (MyAppGroup = {}));
|
|
980
|
+
var MyAppRole;
|
|
981
|
+
(function (MyAppRole) {
|
|
982
|
+
MyAppRole["MangePosts"] = "manage-posts";
|
|
983
|
+
MyAppRole["Customer"] = "Customer";
|
|
984
|
+
MyAppRole["CustomerPremium"] = "CustomerPremium";
|
|
985
|
+
MyAppRole["BlogReader"] = "BlogReader";
|
|
986
|
+
})(MyAppRole || (MyAppRole = {}));
|
|
987
|
+
var MyAppPermission;
|
|
988
|
+
(function (MyAppPermission) {
|
|
989
|
+
MyAppPermission["AccessToAllEmails"] = "AccessToAllEmails";
|
|
990
|
+
MyAppPermission["AccessCourseP1"] = "AccessCourseP1";
|
|
991
|
+
MyAppPermission["AccessCourseP2"] = "AccessCourseP2";
|
|
992
|
+
MyAppPermission["AccessCoursePremium"] = "AccessCoursePremium";
|
|
993
|
+
})(MyAppPermission || (MyAppPermission = {}));
|
|
994
|
+
|
|
853
995
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
854
996
|
/**
|
|
855
997
|
* Autogenerated by current cli tool
|
|
@@ -874,7 +1016,7 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
|
|
|
874
1016
|
/**
|
|
875
1017
|
* Autogenerated by current cli tool. Use *tnp release* to bump version.
|
|
876
1018
|
*/
|
|
877
|
-
const CURRENT_PACKAGE_VERSION = '21.0.
|
|
1019
|
+
const CURRENT_PACKAGE_VERSION = '21.0.6';
|
|
878
1020
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
879
1021
|
|
|
880
1022
|
const t = Translation.for('src/lib/my-organization-proj.ts', { "src/lib/my-organization-proj.ts": { "en-US": async () => (await import('./cms-websql-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs')).default, "pl-PL": async () => (await import('./cms-websql-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs')).default } });
|
|
@@ -1011,23 +1153,104 @@ TaonCmsCategoryEntity = __decorate([
|
|
|
1011
1153
|
})
|
|
1012
1154
|
], TaonCmsCategoryEntity);
|
|
1013
1155
|
|
|
1156
|
+
var TaonCmsContentType;
|
|
1157
|
+
(function (TaonCmsContentType) {
|
|
1158
|
+
TaonCmsContentType["Normal"] = "normal";
|
|
1159
|
+
TaonCmsContentType["Video"] = "video";
|
|
1160
|
+
TaonCmsContentType["Audio"] = "audio";
|
|
1161
|
+
TaonCmsContentType["Attachment"] = "attachment";
|
|
1162
|
+
})(TaonCmsContentType || (TaonCmsContentType = {}));
|
|
1163
|
+
var TaonCmsContentState;
|
|
1164
|
+
(function (TaonCmsContentState) {
|
|
1165
|
+
TaonCmsContentState["Active"] = "active";
|
|
1166
|
+
TaonCmsContentState["Inactive"] = "inactive";
|
|
1167
|
+
})(TaonCmsContentState || (TaonCmsContentState = {}));
|
|
1168
|
+
|
|
1169
|
+
function contentError(message, status = 400) {
|
|
1170
|
+
Taon.error({ message, status });
|
|
1171
|
+
throw new Error(message);
|
|
1172
|
+
}
|
|
1173
|
+
function requireContentId(value, name = 'contentId') {
|
|
1174
|
+
if (!Number.isSafeInteger(value) || value <= 0) {
|
|
1175
|
+
contentError(`${name} must be a positive integer.`);
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
function requireContentVersion(value, name = 'expectedVersion') {
|
|
1179
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
1180
|
+
contentError(`${name} must be a non-negative integer.`);
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1183
|
+
function validateContentInput(input, creating = false) {
|
|
1184
|
+
if (!input || typeof input !== 'object' || Array.isArray(input)) {
|
|
1185
|
+
contentError('Content must be an object.');
|
|
1186
|
+
}
|
|
1187
|
+
if (input.type !== undefined &&
|
|
1188
|
+
!Object.values(TaonCmsContentType).includes(input.type)) {
|
|
1189
|
+
contentError('type must be normal, video, audio, or attachment.');
|
|
1190
|
+
}
|
|
1191
|
+
for (const field of ['title', 'slug']) {
|
|
1192
|
+
if (creating || input[field] !== undefined) {
|
|
1193
|
+
if (typeof input[field] !== 'string' || !input[field].trim()) {
|
|
1194
|
+
contentError(`${field} must be a non-empty string.`);
|
|
1195
|
+
}
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
for (const field of [
|
|
1199
|
+
'body', 'excerpt', 'videoKey', 'audioKey', 'attachmentKey',
|
|
1200
|
+
]) {
|
|
1201
|
+
if (input[field] !== undefined &&
|
|
1202
|
+
input[field] !== null &&
|
|
1203
|
+
typeof input[field] !== 'string') {
|
|
1204
|
+
contentError(`${field} must be a string or null.`);
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
for (const field of ['categoryId', 'authorUserId']) {
|
|
1208
|
+
if (input[field] !== undefined && input[field] !== null) {
|
|
1209
|
+
requireContentId(input[field], field);
|
|
1210
|
+
}
|
|
1211
|
+
}
|
|
1212
|
+
if (input.status !== undefined &&
|
|
1213
|
+
!['draft', 'published', 'archived'].includes(input.status)) {
|
|
1214
|
+
contentError('status must be draft, published, or archived.');
|
|
1215
|
+
}
|
|
1216
|
+
if (input.publishedAt !== undefined && input.publishedAt !== null) {
|
|
1217
|
+
if (!(input.publishedAt instanceof Date ||
|
|
1218
|
+
typeof input.publishedAt === 'string') ||
|
|
1219
|
+
Number.isNaN(new Date(input.publishedAt).getTime())) {
|
|
1220
|
+
contentError('publishedAt must be a valid date or null.');
|
|
1221
|
+
}
|
|
1222
|
+
}
|
|
1223
|
+
for (const field of ['tagIds', 'relatedPostIds', 'permissionIds']) {
|
|
1224
|
+
const ids = input[field];
|
|
1225
|
+
if (ids !== undefined) {
|
|
1226
|
+
if (!Array.isArray(ids)) {
|
|
1227
|
+
contentError(`${field} must be an array.`);
|
|
1228
|
+
}
|
|
1229
|
+
for (const id of ids) {
|
|
1230
|
+
requireContentId(id, field === 'tagIds'
|
|
1231
|
+
? 'tagId'
|
|
1232
|
+
: field === 'relatedPostIds'
|
|
1233
|
+
? 'relatedPostId'
|
|
1234
|
+
: 'permissionId');
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1014
1240
|
//#endregion
|
|
1015
1241
|
let TaonCmsCategoryRepository = class TaonCmsCategoryRepository extends TaonBaseRepository {
|
|
1016
1242
|
constructor() {
|
|
1017
1243
|
super(...arguments);
|
|
1018
1244
|
this.entityClassResolveFn = () => TaonCmsCategoryEntity;
|
|
1019
1245
|
}
|
|
1020
|
-
|
|
1021
|
-
* TODO remove this demo example method
|
|
1022
|
-
*/
|
|
1023
|
-
async countEntitesWithEvenId() {
|
|
1246
|
+
async requireCategory(id, manager) {
|
|
1024
1247
|
//#region @websqlFunc
|
|
1025
|
-
const
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1248
|
+
const category = await manager
|
|
1249
|
+
.getRepository(this.target)
|
|
1250
|
+
.findOneBy({ id });
|
|
1251
|
+
if (!category) {
|
|
1252
|
+
contentError(`Category ${id} does not exist.`, 404);
|
|
1253
|
+
}
|
|
1031
1254
|
//#endregion
|
|
1032
1255
|
}
|
|
1033
1256
|
};
|
|
@@ -1037,43 +1260,18 @@ TaonCmsCategoryRepository = __decorate([
|
|
|
1037
1260
|
})
|
|
1038
1261
|
], TaonCmsCategoryRepository);
|
|
1039
1262
|
|
|
1040
|
-
var TaonCmsCategoryController_1;
|
|
1041
1263
|
//#endregion
|
|
1042
|
-
let TaonCmsCategoryController =
|
|
1264
|
+
let TaonCmsCategoryController = class TaonCmsCategoryController extends TaonBaseCrudController {
|
|
1043
1265
|
constructor() {
|
|
1044
1266
|
super(...arguments);
|
|
1045
1267
|
this.entityClassResolveFn = () => TaonCmsCategoryEntity;
|
|
1046
1268
|
this.taonCmsCategoryRepository = this.injectCustomRepo(TaonCmsCategoryRepository);
|
|
1047
|
-
//#endregion
|
|
1048
|
-
}
|
|
1049
|
-
//#region methods & getters / hello world
|
|
1050
|
-
/**
|
|
1051
|
-
* TODO remove this demo example method
|
|
1052
|
-
*/
|
|
1053
|
-
helloWord(yourName) {
|
|
1054
|
-
//#region @websqlFunc
|
|
1055
|
-
return async (req, res) => {
|
|
1056
|
-
const numOfEntities = await this.db.count();
|
|
1057
|
-
const numberOfEvenEntities = await this.taonCmsCategoryRepository.countEntitesWithEvenId();
|
|
1058
|
-
return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsCategoryController_1)}
|
|
1059
|
-
controller.. ${numOfEntities} entites in db..
|
|
1060
|
-
${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)
|
|
1061
|
-
`;
|
|
1062
|
-
};
|
|
1063
|
-
//#endregion
|
|
1064
1269
|
}
|
|
1065
1270
|
};
|
|
1066
|
-
__decorate([
|
|
1067
|
-
GET(),
|
|
1068
|
-
__param(0, Query('yourName')),
|
|
1069
|
-
__metadata("design:type", Function),
|
|
1070
|
-
__metadata("design:paramtypes", [String]),
|
|
1071
|
-
__metadata("design:returntype", Object)
|
|
1072
|
-
], TaonCmsCategoryController.prototype, "helloWord", null);
|
|
1073
|
-
TaonCmsCategoryController = TaonCmsCategoryController_1 = __decorate([
|
|
1271
|
+
TaonCmsCategoryController = __decorate([
|
|
1074
1272
|
TaonController({
|
|
1075
1273
|
className: 'TaonCmsCategoryController',
|
|
1076
|
-
allowedMethods: []
|
|
1274
|
+
allowedMethods: [],
|
|
1077
1275
|
})
|
|
1078
1276
|
], TaonCmsCategoryController);
|
|
1079
1277
|
|
|
@@ -1318,478 +1516,356 @@ const TaonCmsCommentAbstractContext = createContext(() => ({
|
|
|
1318
1516
|
}));
|
|
1319
1517
|
|
|
1320
1518
|
//#endregion
|
|
1321
|
-
let
|
|
1519
|
+
let TaonCmsContentRevisionEntity = class TaonCmsContentRevisionEntity extends TaonBaseEntity {
|
|
1322
1520
|
};
|
|
1323
1521
|
__decorate([
|
|
1324
1522
|
PrimaryGeneratedColumn()
|
|
1325
1523
|
//#endregion
|
|
1326
1524
|
,
|
|
1327
1525
|
__metadata("design:type", Number)
|
|
1328
|
-
],
|
|
1526
|
+
], TaonCmsContentRevisionEntity.prototype, "id", void 0);
|
|
1329
1527
|
__decorate([
|
|
1330
1528
|
Column({ type: 'integer', default: 0 })
|
|
1331
1529
|
//#endregion
|
|
1332
1530
|
,
|
|
1333
1531
|
__metadata("design:type", Number)
|
|
1334
|
-
],
|
|
1335
|
-
__decorate([
|
|
1336
|
-
Column({ type: 'varchar' })
|
|
1337
|
-
//#endregion
|
|
1338
|
-
,
|
|
1339
|
-
__metadata("design:type", String)
|
|
1340
|
-
], TaonCmsContentEntity.prototype, "type", void 0);
|
|
1532
|
+
], TaonCmsContentRevisionEntity.prototype, "version", void 0);
|
|
1341
1533
|
__decorate([
|
|
1342
|
-
Column({ type: '
|
|
1534
|
+
Column({ type: 'integer' })
|
|
1343
1535
|
//#endregion
|
|
1344
1536
|
,
|
|
1345
|
-
__metadata("design:type",
|
|
1346
|
-
],
|
|
1537
|
+
__metadata("design:type", Number)
|
|
1538
|
+
], TaonCmsContentRevisionEntity.prototype, "contentId", void 0);
|
|
1347
1539
|
__decorate([
|
|
1348
|
-
Column({ type: '
|
|
1540
|
+
Column({ type: 'integer' })
|
|
1349
1541
|
//#endregion
|
|
1350
1542
|
,
|
|
1351
|
-
__metadata("design:type",
|
|
1352
|
-
],
|
|
1543
|
+
__metadata("design:type", Number)
|
|
1544
|
+
], TaonCmsContentRevisionEntity.prototype, "revisionNumber", void 0);
|
|
1353
1545
|
__decorate([
|
|
1354
|
-
Column({ type: '
|
|
1546
|
+
Column({ type: 'varchar' })
|
|
1355
1547
|
//#endregion
|
|
1356
1548
|
,
|
|
1357
1549
|
__metadata("design:type", String)
|
|
1358
|
-
],
|
|
1550
|
+
], TaonCmsContentRevisionEntity.prototype, "title", void 0);
|
|
1359
1551
|
__decorate([
|
|
1360
1552
|
Column({ type: 'text', nullable: true })
|
|
1361
1553
|
//#endregion
|
|
1362
1554
|
,
|
|
1363
1555
|
__metadata("design:type", String)
|
|
1364
|
-
],
|
|
1556
|
+
], TaonCmsContentRevisionEntity.prototype, "body", void 0);
|
|
1365
1557
|
__decorate([
|
|
1366
|
-
Column({ type: '
|
|
1558
|
+
Column({ type: 'simple-json', nullable: true })
|
|
1367
1559
|
//#endregion
|
|
1368
1560
|
,
|
|
1369
|
-
__metadata("design:type",
|
|
1370
|
-
],
|
|
1561
|
+
__metadata("design:type", Object)
|
|
1562
|
+
], TaonCmsContentRevisionEntity.prototype, "snapshot", void 0);
|
|
1371
1563
|
__decorate([
|
|
1372
1564
|
Column({ type: 'integer', nullable: true })
|
|
1373
1565
|
//#endregion
|
|
1374
1566
|
,
|
|
1375
1567
|
__metadata("design:type", Number)
|
|
1376
|
-
],
|
|
1377
|
-
__decorate([
|
|
1378
|
-
Column({ type: 'varchar', default: 'draft' })
|
|
1379
|
-
//#endregion
|
|
1380
|
-
,
|
|
1381
|
-
__metadata("design:type", String)
|
|
1382
|
-
], TaonCmsContentEntity.prototype, "status", void 0);
|
|
1383
|
-
__decorate([
|
|
1384
|
-
Column({ type: 'datetime', nullable: true })
|
|
1385
|
-
//#endregion
|
|
1386
|
-
,
|
|
1387
|
-
__metadata("design:type", Date)
|
|
1388
|
-
], TaonCmsContentEntity.prototype, "publishedAt", void 0);
|
|
1389
|
-
__decorate([
|
|
1390
|
-
Column({ type: 'datetime' })
|
|
1391
|
-
//#endregion
|
|
1392
|
-
,
|
|
1393
|
-
__metadata("design:type", Date)
|
|
1394
|
-
], TaonCmsContentEntity.prototype, "createdAt", void 0);
|
|
1568
|
+
], TaonCmsContentRevisionEntity.prototype, "createdByUserId", void 0);
|
|
1395
1569
|
__decorate([
|
|
1396
1570
|
Column({ type: 'datetime' })
|
|
1397
1571
|
//#endregion
|
|
1398
1572
|
,
|
|
1399
1573
|
__metadata("design:type", Date)
|
|
1400
|
-
],
|
|
1401
|
-
|
|
1574
|
+
], TaonCmsContentRevisionEntity.prototype, "createdAt", void 0);
|
|
1575
|
+
TaonCmsContentRevisionEntity = __decorate([
|
|
1402
1576
|
TaonEntity({
|
|
1403
|
-
className: '
|
|
1577
|
+
className: 'TaonCmsContentRevisionEntity',
|
|
1404
1578
|
createTable: true,
|
|
1405
1579
|
})
|
|
1406
|
-
],
|
|
1580
|
+
], TaonCmsContentRevisionEntity);
|
|
1407
1581
|
|
|
1408
1582
|
//#endregion
|
|
1409
|
-
let
|
|
1583
|
+
let TaonCmsContentRevisionRepository = class TaonCmsContentRevisionRepository extends TaonBaseRepository {
|
|
1410
1584
|
constructor() {
|
|
1411
1585
|
super(...arguments);
|
|
1412
|
-
this.entityClassResolveFn = () =>
|
|
1586
|
+
this.entityClassResolveFn = () => TaonCmsContentRevisionEntity;
|
|
1413
1587
|
}
|
|
1414
|
-
|
|
1415
|
-
* TODO remove this demo example method
|
|
1416
|
-
*/
|
|
1417
|
-
async countEntitesWithEvenId() {
|
|
1588
|
+
async listForContent(contentId, manager) {
|
|
1418
1589
|
//#region @websqlFunc
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
},
|
|
1590
|
+
return manager
|
|
1591
|
+
.getRepository(this.target)
|
|
1592
|
+
.find({
|
|
1593
|
+
where: { contentId },
|
|
1594
|
+
order: { revisionNumber: 'DESC' },
|
|
1423
1595
|
});
|
|
1424
|
-
|
|
1596
|
+
//#endregion
|
|
1597
|
+
}
|
|
1598
|
+
async requireRevision(contentId, revisionNumber, manager) {
|
|
1599
|
+
//#region @websqlFunc
|
|
1600
|
+
const revision = await manager
|
|
1601
|
+
.getRepository(this.target)
|
|
1602
|
+
.findOneBy({ contentId, revisionNumber });
|
|
1603
|
+
if (!revision) {
|
|
1604
|
+
contentError(`Revision ${revisionNumber} of content ${contentId} does not exist.`, 404);
|
|
1605
|
+
}
|
|
1606
|
+
return revision;
|
|
1607
|
+
//#endregion
|
|
1608
|
+
}
|
|
1609
|
+
async recordContent(content, snapshot, manager) {
|
|
1610
|
+
//#region @websqlFunc
|
|
1611
|
+
const repository = manager.getRepository(this.target);
|
|
1612
|
+
return repository.save(repository.create({
|
|
1613
|
+
contentId: content.id,
|
|
1614
|
+
revisionNumber: content.version,
|
|
1615
|
+
version: 1,
|
|
1616
|
+
title: content.title,
|
|
1617
|
+
body: content.body,
|
|
1618
|
+
snapshot,
|
|
1619
|
+
createdByUserId: content.authorUserId,
|
|
1620
|
+
createdAt: new Date(),
|
|
1621
|
+
}));
|
|
1425
1622
|
//#endregion
|
|
1426
1623
|
}
|
|
1427
1624
|
};
|
|
1428
|
-
|
|
1625
|
+
TaonCmsContentRevisionRepository = __decorate([
|
|
1429
1626
|
TaonRepository({
|
|
1430
|
-
className: '
|
|
1627
|
+
className: 'TaonCmsContentRevisionRepository',
|
|
1431
1628
|
})
|
|
1432
|
-
],
|
|
1629
|
+
], TaonCmsContentRevisionRepository);
|
|
1433
1630
|
|
|
1434
|
-
var TaonCmsContentController_1;
|
|
1435
1631
|
//#endregion
|
|
1436
|
-
let
|
|
1632
|
+
let TaonCmsContentRevisionController = class TaonCmsContentRevisionController extends TaonBaseCrudController {
|
|
1437
1633
|
constructor() {
|
|
1438
1634
|
super(...arguments);
|
|
1439
|
-
this.entityClassResolveFn = () =>
|
|
1440
|
-
this.
|
|
1441
|
-
//#endregion
|
|
1442
|
-
}
|
|
1443
|
-
//#region methods & getters / hello world
|
|
1444
|
-
/**
|
|
1445
|
-
* TODO remove this demo example method
|
|
1446
|
-
*/
|
|
1447
|
-
helloWord(yourName) {
|
|
1448
|
-
//#region @websqlFunc
|
|
1449
|
-
return async (req, res) => {
|
|
1450
|
-
const numOfEntities = await this.db.count();
|
|
1451
|
-
const numberOfEvenEntities = await this.taonCmsContentRepository.countEntitesWithEvenId();
|
|
1452
|
-
return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsContentController_1)}
|
|
1453
|
-
controller.. ${numOfEntities} entites in db..
|
|
1454
|
-
${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)
|
|
1455
|
-
`;
|
|
1456
|
-
};
|
|
1457
|
-
//#endregion
|
|
1635
|
+
this.entityClassResolveFn = () => TaonCmsContentRevisionEntity;
|
|
1636
|
+
this.taonCmsContentRevisionRepository = this.injectCustomRepo(TaonCmsContentRevisionRepository);
|
|
1458
1637
|
}
|
|
1459
1638
|
};
|
|
1460
|
-
__decorate([
|
|
1461
|
-
GET(),
|
|
1462
|
-
__param(0, Query('yourName')),
|
|
1463
|
-
__metadata("design:type", Function),
|
|
1464
|
-
__metadata("design:paramtypes", [String]),
|
|
1465
|
-
__metadata("design:returntype", Object)
|
|
1466
|
-
], TaonCmsContentController.prototype, "helloWord", null);
|
|
1467
|
-
TaonCmsContentController = TaonCmsContentController_1 = __decorate([
|
|
1639
|
+
TaonCmsContentRevisionController = __decorate([
|
|
1468
1640
|
TaonController({
|
|
1469
|
-
className: '
|
|
1641
|
+
className: 'TaonCmsContentRevisionController',
|
|
1470
1642
|
allowedMethods: [],
|
|
1471
1643
|
})
|
|
1472
|
-
],
|
|
1644
|
+
], TaonCmsContentRevisionController);
|
|
1473
1645
|
|
|
1474
1646
|
//#endregion
|
|
1475
|
-
let
|
|
1476
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
1477
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
1647
|
+
let TaonCmsContentRevisionProvider = class TaonCmsContentRevisionProvider extends TaonBaseProvider {
|
|
1648
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1649
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider }); }
|
|
1478
1650
|
};
|
|
1479
|
-
|
|
1651
|
+
TaonCmsContentRevisionProvider = __decorate([
|
|
1480
1652
|
TaonProvider({
|
|
1481
|
-
className: '
|
|
1653
|
+
className: 'TaonCmsContentRevisionProvider',
|
|
1482
1654
|
})
|
|
1483
1655
|
//#region @browser
|
|
1484
|
-
],
|
|
1485
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
1656
|
+
], TaonCmsContentRevisionProvider);
|
|
1657
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider, decorators: [{
|
|
1486
1658
|
type: Injectable
|
|
1487
1659
|
}] });
|
|
1488
1660
|
|
|
1489
1661
|
//#endregion
|
|
1490
|
-
let
|
|
1662
|
+
let TaonCmsContentRevisionMiddleware = class TaonCmsContentRevisionMiddleware extends TaonBaseMiddleware {
|
|
1491
1663
|
};
|
|
1492
|
-
|
|
1664
|
+
TaonCmsContentRevisionMiddleware = __decorate([
|
|
1493
1665
|
TaonMiddleware({
|
|
1494
|
-
className: '
|
|
1666
|
+
className: 'TaonCmsContentRevisionMiddleware',
|
|
1495
1667
|
})
|
|
1496
|
-
],
|
|
1668
|
+
], TaonCmsContentRevisionMiddleware);
|
|
1497
1669
|
|
|
1498
1670
|
//#endregion
|
|
1499
|
-
let
|
|
1671
|
+
let TaonCmsContentRevisionSubscriber = class TaonCmsContentRevisionSubscriber extends TaonBaseSubscriberForEntity {
|
|
1500
1672
|
constructor() {
|
|
1501
1673
|
super(...arguments);
|
|
1502
|
-
this.
|
|
1674
|
+
this.taonCmsContentRevisionProvider = this.injectProvider(TaonCmsContentRevisionProvider);
|
|
1503
1675
|
}
|
|
1504
1676
|
listenTo() {
|
|
1505
|
-
return
|
|
1677
|
+
return TaonCmsContentRevisionEntity;
|
|
1506
1678
|
}
|
|
1507
1679
|
};
|
|
1508
|
-
|
|
1680
|
+
TaonCmsContentRevisionSubscriber = __decorate([
|
|
1509
1681
|
TaonSubscriber({
|
|
1510
|
-
className: '
|
|
1682
|
+
className: 'TaonCmsContentRevisionSubscriber',
|
|
1511
1683
|
// allowedEvents: ['afterUpdate'],
|
|
1512
1684
|
})
|
|
1513
|
-
],
|
|
1685
|
+
], TaonCmsContentRevisionSubscriber);
|
|
1514
1686
|
|
|
1515
1687
|
//#region imports
|
|
1516
1688
|
//#endregion
|
|
1517
|
-
const
|
|
1518
|
-
contextName: '
|
|
1689
|
+
const TaonCmsContentRevisionAbstractContext = createContext(() => ({
|
|
1690
|
+
contextName: 'TaonCmsContentRevisionAbstractContext',
|
|
1519
1691
|
abstract: true,
|
|
1520
1692
|
contexts: { TaonBaseContext },
|
|
1521
|
-
entities: {
|
|
1522
|
-
controllers: {
|
|
1523
|
-
repositories: {
|
|
1524
|
-
providers: {
|
|
1525
|
-
middlewares: {
|
|
1526
|
-
subscribers: {
|
|
1693
|
+
entities: { TaonCmsContentRevisionEntity },
|
|
1694
|
+
controllers: { TaonCmsContentRevisionController },
|
|
1695
|
+
repositories: { TaonCmsContentRevisionRepository },
|
|
1696
|
+
providers: { TaonCmsContentRevisionProvider },
|
|
1697
|
+
middlewares: { TaonCmsContentRevisionMiddleware },
|
|
1698
|
+
subscribers: { TaonCmsContentRevisionSubscriber },
|
|
1527
1699
|
}));
|
|
1528
1700
|
|
|
1529
1701
|
//#endregion
|
|
1530
|
-
let
|
|
1702
|
+
let TaonCmsContentTagEntity = class TaonCmsContentTagEntity extends TaonBaseAbstractEntity {
|
|
1531
1703
|
};
|
|
1532
1704
|
__decorate([
|
|
1533
|
-
|
|
1534
|
-
//#endregion
|
|
1535
|
-
,
|
|
1536
|
-
__metadata("design:type", Number)
|
|
1537
|
-
], TaonCmsContentAssetEntity.prototype, "id", void 0);
|
|
1538
|
-
__decorate([
|
|
1539
|
-
Column({ type: 'integer', default: 0 })
|
|
1705
|
+
Column({ type: 'integer' })
|
|
1540
1706
|
//#endregion
|
|
1541
1707
|
,
|
|
1542
1708
|
__metadata("design:type", Number)
|
|
1543
|
-
],
|
|
1709
|
+
], TaonCmsContentTagEntity.prototype, "contentId", void 0);
|
|
1544
1710
|
__decorate([
|
|
1545
|
-
Column({ type: 'integer'
|
|
1711
|
+
Column({ type: 'integer' })
|
|
1546
1712
|
//#endregion
|
|
1547
1713
|
,
|
|
1548
1714
|
__metadata("design:type", Number)
|
|
1549
|
-
],
|
|
1550
|
-
__decorate([
|
|
1551
|
-
Column({ type: 'varchar' })
|
|
1552
|
-
//#endregion
|
|
1553
|
-
,
|
|
1554
|
-
__metadata("design:type", String)
|
|
1555
|
-
], TaonCmsContentAssetEntity.prototype, "type", void 0);
|
|
1556
|
-
__decorate([
|
|
1557
|
-
Column({ type: 'varchar' })
|
|
1558
|
-
//#endregion
|
|
1559
|
-
,
|
|
1560
|
-
__metadata("design:type", String)
|
|
1561
|
-
], TaonCmsContentAssetEntity.prototype, "storageProvider", void 0);
|
|
1562
|
-
__decorate([
|
|
1563
|
-
Column({ type: 'varchar', nullable: true })
|
|
1564
|
-
//#endregion
|
|
1565
|
-
,
|
|
1566
|
-
__metadata("design:type", String)
|
|
1567
|
-
], TaonCmsContentAssetEntity.prototype, "bucket", void 0);
|
|
1568
|
-
__decorate([
|
|
1569
|
-
Column({ type: 'varchar' })
|
|
1570
|
-
//#endregion
|
|
1571
|
-
,
|
|
1572
|
-
__metadata("design:type", String)
|
|
1573
|
-
], TaonCmsContentAssetEntity.prototype, "key", void 0);
|
|
1574
|
-
__decorate([
|
|
1575
|
-
Column({ type: 'varchar', nullable: true })
|
|
1576
|
-
//#endregion
|
|
1577
|
-
,
|
|
1578
|
-
__metadata("design:type", String)
|
|
1579
|
-
], TaonCmsContentAssetEntity.prototype, "originalFilename", void 0);
|
|
1580
|
-
__decorate([
|
|
1581
|
-
Column({ type: 'varchar', nullable: true })
|
|
1582
|
-
//#endregion
|
|
1583
|
-
,
|
|
1584
|
-
__metadata("design:type", String)
|
|
1585
|
-
], TaonCmsContentAssetEntity.prototype, "mimeType", void 0);
|
|
1586
|
-
__decorate([
|
|
1587
|
-
Column({ type: 'integer', nullable: true })
|
|
1588
|
-
//#endregion
|
|
1589
|
-
,
|
|
1590
|
-
__metadata("design:type", Number)
|
|
1591
|
-
], TaonCmsContentAssetEntity.prototype, "size", void 0);
|
|
1592
|
-
__decorate([
|
|
1593
|
-
Column({ type: 'integer', nullable: true })
|
|
1594
|
-
//#endregion
|
|
1595
|
-
,
|
|
1596
|
-
__metadata("design:type", Number)
|
|
1597
|
-
], TaonCmsContentAssetEntity.prototype, "durationSeconds", void 0);
|
|
1598
|
-
__decorate([
|
|
1599
|
-
Column({ type: 'simple-json', nullable: true })
|
|
1600
|
-
//#endregion
|
|
1601
|
-
,
|
|
1602
|
-
__metadata("design:type", Object)
|
|
1603
|
-
], TaonCmsContentAssetEntity.prototype, "metadata", void 0);
|
|
1604
|
-
__decorate([
|
|
1605
|
-
Column({ type: 'datetime' })
|
|
1606
|
-
//#endregion
|
|
1607
|
-
,
|
|
1608
|
-
__metadata("design:type", Date)
|
|
1609
|
-
], TaonCmsContentAssetEntity.prototype, "createdAt", void 0);
|
|
1610
|
-
TaonCmsContentAssetEntity = __decorate([
|
|
1715
|
+
], TaonCmsContentTagEntity.prototype, "tagId", void 0);
|
|
1716
|
+
TaonCmsContentTagEntity = __decorate([
|
|
1611
1717
|
TaonEntity({
|
|
1612
|
-
className: '
|
|
1718
|
+
className: 'TaonCmsContentTagEntity',
|
|
1613
1719
|
createTable: true,
|
|
1614
1720
|
})
|
|
1615
|
-
],
|
|
1721
|
+
], TaonCmsContentTagEntity);
|
|
1616
1722
|
|
|
1617
1723
|
//#endregion
|
|
1618
|
-
let
|
|
1724
|
+
let TaonCmsContentTagRepository = class TaonCmsContentTagRepository extends TaonBaseRepository {
|
|
1619
1725
|
constructor() {
|
|
1620
1726
|
super(...arguments);
|
|
1621
|
-
this.entityClassResolveFn = () =>
|
|
1727
|
+
this.entityClassResolveFn = () => TaonCmsContentTagEntity;
|
|
1622
1728
|
}
|
|
1623
|
-
|
|
1624
|
-
* TODO remove this demo example method
|
|
1625
|
-
*/
|
|
1626
|
-
async countEntitesWithEvenId() {
|
|
1729
|
+
async findTagIds(contentId, manager) {
|
|
1627
1730
|
//#region @websqlFunc
|
|
1628
|
-
const
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1731
|
+
const links = await manager
|
|
1732
|
+
.getRepository(this.target)
|
|
1733
|
+
.find({ where: { contentId }, order: { tagId: 'ASC' } });
|
|
1734
|
+
return links.map(link => link.tagId);
|
|
1735
|
+
//#endregion
|
|
1736
|
+
}
|
|
1737
|
+
async replaceTags(contentId, tagIds, manager) {
|
|
1738
|
+
//#region @websqlFunc
|
|
1739
|
+
const repository = manager.getRepository(this.target);
|
|
1740
|
+
await repository.delete({ contentId });
|
|
1741
|
+
const links = [...new Set(tagIds)].map(tagId => repository.create({ contentId, tagId }));
|
|
1742
|
+
if (links.length) {
|
|
1743
|
+
await repository.save(links);
|
|
1744
|
+
}
|
|
1634
1745
|
//#endregion
|
|
1635
1746
|
}
|
|
1636
1747
|
};
|
|
1637
|
-
|
|
1748
|
+
TaonCmsContentTagRepository = __decorate([
|
|
1638
1749
|
TaonRepository({
|
|
1639
|
-
className: '
|
|
1750
|
+
className: 'TaonCmsContentTagRepository',
|
|
1640
1751
|
})
|
|
1641
|
-
],
|
|
1752
|
+
], TaonCmsContentTagRepository);
|
|
1642
1753
|
|
|
1643
|
-
var TaonCmsContentAssetController_1;
|
|
1644
1754
|
//#endregion
|
|
1645
|
-
let
|
|
1755
|
+
let TaonCmsContentTagController = class TaonCmsContentTagController extends TaonBaseCrudController {
|
|
1646
1756
|
constructor() {
|
|
1647
1757
|
super(...arguments);
|
|
1648
|
-
this.entityClassResolveFn = () =>
|
|
1649
|
-
this.
|
|
1650
|
-
//#endregion
|
|
1651
|
-
}
|
|
1652
|
-
//#region methods & getters / hello world
|
|
1653
|
-
/**
|
|
1654
|
-
* TODO remove this demo example method
|
|
1655
|
-
*/
|
|
1656
|
-
helloWord(yourName) {
|
|
1657
|
-
//#region @websqlFunc
|
|
1658
|
-
return async (req, res) => {
|
|
1659
|
-
const numOfEntities = await this.db.count();
|
|
1660
|
-
const numberOfEvenEntities = await this.taonCmsContentAssetRepository.countEntitesWithEvenId();
|
|
1661
|
-
return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsContentAssetController_1)}
|
|
1662
|
-
controller.. ${numOfEntities} entites in db..
|
|
1663
|
-
${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)
|
|
1664
|
-
`;
|
|
1665
|
-
};
|
|
1666
|
-
//#endregion
|
|
1758
|
+
this.entityClassResolveFn = () => TaonCmsContentTagEntity;
|
|
1759
|
+
this.taonCmsContentTagRepository = this.injectCustomRepo(TaonCmsContentTagRepository);
|
|
1667
1760
|
}
|
|
1668
1761
|
};
|
|
1669
|
-
__decorate([
|
|
1670
|
-
GET(),
|
|
1671
|
-
__param(0, Query('yourName')),
|
|
1672
|
-
__metadata("design:type", Function),
|
|
1673
|
-
__metadata("design:paramtypes", [String]),
|
|
1674
|
-
__metadata("design:returntype", Object)
|
|
1675
|
-
], TaonCmsContentAssetController.prototype, "helloWord", null);
|
|
1676
|
-
TaonCmsContentAssetController = TaonCmsContentAssetController_1 = __decorate([
|
|
1762
|
+
TaonCmsContentTagController = __decorate([
|
|
1677
1763
|
TaonController({
|
|
1678
|
-
className: '
|
|
1679
|
-
allowedMethods: []
|
|
1764
|
+
className: 'TaonCmsContentTagController',
|
|
1765
|
+
allowedMethods: [],
|
|
1680
1766
|
})
|
|
1681
|
-
],
|
|
1767
|
+
], TaonCmsContentTagController);
|
|
1682
1768
|
|
|
1683
1769
|
//#endregion
|
|
1684
|
-
let
|
|
1685
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
1686
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
1770
|
+
let TaonCmsContentTagProvider = class TaonCmsContentTagProvider extends TaonBaseProvider {
|
|
1771
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1772
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagProvider }); }
|
|
1687
1773
|
};
|
|
1688
|
-
|
|
1774
|
+
TaonCmsContentTagProvider = __decorate([
|
|
1689
1775
|
TaonProvider({
|
|
1690
|
-
className: '
|
|
1776
|
+
className: 'TaonCmsContentTagProvider',
|
|
1691
1777
|
})
|
|
1692
1778
|
//#region @browser
|
|
1693
|
-
],
|
|
1694
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
1779
|
+
], TaonCmsContentTagProvider);
|
|
1780
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagProvider, decorators: [{
|
|
1695
1781
|
type: Injectable
|
|
1696
1782
|
}] });
|
|
1697
1783
|
|
|
1698
1784
|
//#endregion
|
|
1699
|
-
let
|
|
1785
|
+
let TaonCmsContentTagMiddleware = class TaonCmsContentTagMiddleware extends TaonBaseMiddleware {
|
|
1700
1786
|
};
|
|
1701
|
-
|
|
1787
|
+
TaonCmsContentTagMiddleware = __decorate([
|
|
1702
1788
|
TaonMiddleware({
|
|
1703
|
-
className: '
|
|
1789
|
+
className: 'TaonCmsContentTagMiddleware',
|
|
1704
1790
|
})
|
|
1705
|
-
],
|
|
1791
|
+
], TaonCmsContentTagMiddleware);
|
|
1706
1792
|
|
|
1707
1793
|
//#endregion
|
|
1708
|
-
let
|
|
1794
|
+
let TaonCmsContentTagSubscriber = class TaonCmsContentTagSubscriber extends TaonBaseSubscriberForEntity {
|
|
1709
1795
|
constructor() {
|
|
1710
1796
|
super(...arguments);
|
|
1711
|
-
this.
|
|
1797
|
+
this.taonCmsContentTagProvider = this.injectProvider(TaonCmsContentTagProvider);
|
|
1712
1798
|
}
|
|
1713
1799
|
listenTo() {
|
|
1714
|
-
return
|
|
1800
|
+
return TaonCmsContentTagEntity;
|
|
1715
1801
|
}
|
|
1716
1802
|
};
|
|
1717
|
-
|
|
1803
|
+
TaonCmsContentTagSubscriber = __decorate([
|
|
1718
1804
|
TaonSubscriber({
|
|
1719
|
-
className: '
|
|
1805
|
+
className: 'TaonCmsContentTagSubscriber',
|
|
1720
1806
|
// allowedEvents: ['afterUpdate'],
|
|
1721
1807
|
})
|
|
1722
|
-
],
|
|
1808
|
+
], TaonCmsContentTagSubscriber);
|
|
1723
1809
|
|
|
1724
1810
|
//#region imports
|
|
1725
1811
|
//#endregion
|
|
1726
|
-
const
|
|
1727
|
-
contextName: '
|
|
1812
|
+
const TaonCmsContentTagAbstractContext = createContext(() => ({
|
|
1813
|
+
contextName: 'TaonCmsContentTagAbstractContext',
|
|
1728
1814
|
abstract: true,
|
|
1729
1815
|
contexts: { TaonBaseContext },
|
|
1730
|
-
entities: {
|
|
1731
|
-
controllers: {
|
|
1732
|
-
repositories: {
|
|
1733
|
-
providers: {
|
|
1734
|
-
middlewares: {
|
|
1735
|
-
subscribers: {
|
|
1816
|
+
entities: { TaonCmsContentTagEntity },
|
|
1817
|
+
controllers: { TaonCmsContentTagController },
|
|
1818
|
+
repositories: { TaonCmsContentTagRepository },
|
|
1819
|
+
providers: { TaonCmsContentTagProvider },
|
|
1820
|
+
middlewares: { TaonCmsContentTagMiddleware },
|
|
1821
|
+
subscribers: { TaonCmsContentTagSubscriber },
|
|
1736
1822
|
}));
|
|
1737
1823
|
|
|
1738
1824
|
//#endregion
|
|
1739
|
-
let
|
|
1825
|
+
let TaonCmsTagEntity = class TaonCmsTagEntity extends TaonBaseAbstractEntity {
|
|
1740
1826
|
};
|
|
1741
1827
|
__decorate([
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
__decorate([
|
|
1746
|
-
Column({ type: 'integer', default: 0 }),
|
|
1747
|
-
__metadata("design:type", Number)
|
|
1748
|
-
], TaonCmsContentPermissionEntity.prototype, "version", void 0);
|
|
1749
|
-
__decorate([
|
|
1750
|
-
Column({ type: 'integer' }),
|
|
1751
|
-
__metadata("design:type", Number)
|
|
1752
|
-
], TaonCmsContentPermissionEntity.prototype, "contentId", void 0);
|
|
1753
|
-
__decorate([
|
|
1754
|
-
Column({ type: 'varchar' }),
|
|
1828
|
+
Column({ type: 'varchar', unique: true })
|
|
1829
|
+
//#endregion
|
|
1830
|
+
,
|
|
1755
1831
|
__metadata("design:type", String)
|
|
1756
|
-
],
|
|
1757
|
-
__decorate([
|
|
1758
|
-
Column({ type: 'integer', nullable: true }),
|
|
1759
|
-
__metadata("design:type", Number)
|
|
1760
|
-
], TaonCmsContentPermissionEntity.prototype, "permissionId", void 0);
|
|
1761
|
-
__decorate([
|
|
1762
|
-
Column({ type: 'integer', nullable: true }),
|
|
1763
|
-
__metadata("design:type", Number)
|
|
1764
|
-
], TaonCmsContentPermissionEntity.prototype, "roleId", void 0);
|
|
1765
|
-
__decorate([
|
|
1766
|
-
Column({ type: 'integer', nullable: true }),
|
|
1767
|
-
__metadata("design:type", Number)
|
|
1768
|
-
], TaonCmsContentPermissionEntity.prototype, "productId", void 0);
|
|
1832
|
+
], TaonCmsTagEntity.prototype, "name", void 0);
|
|
1769
1833
|
__decorate([
|
|
1770
|
-
Column({ type: 'varchar',
|
|
1834
|
+
Column({ type: 'varchar', unique: true })
|
|
1835
|
+
//#endregion
|
|
1836
|
+
,
|
|
1771
1837
|
__metadata("design:type", String)
|
|
1772
|
-
],
|
|
1773
|
-
__decorate([
|
|
1774
|
-
Column({ type: 'simple-json', nullable: true }),
|
|
1775
|
-
__metadata("design:type", Object)
|
|
1776
|
-
], TaonCmsContentPermissionEntity.prototype, "config", void 0);
|
|
1838
|
+
], TaonCmsTagEntity.prototype, "slug", void 0);
|
|
1777
1839
|
__decorate([
|
|
1778
|
-
Column({ type: '
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1840
|
+
Column({ type: 'varchar', nullable: true })
|
|
1841
|
+
//#endregion
|
|
1842
|
+
,
|
|
1843
|
+
__metadata("design:type", String)
|
|
1844
|
+
], TaonCmsTagEntity.prototype, "description", void 0);
|
|
1845
|
+
TaonCmsTagEntity = __decorate([
|
|
1782
1846
|
TaonEntity({
|
|
1783
|
-
className: '
|
|
1847
|
+
className: 'TaonCmsTagEntity',
|
|
1784
1848
|
createTable: true,
|
|
1785
1849
|
})
|
|
1786
|
-
],
|
|
1850
|
+
], TaonCmsTagEntity);
|
|
1787
1851
|
|
|
1788
1852
|
//#endregion
|
|
1789
|
-
let
|
|
1853
|
+
let TaonCmsTagRepository = class TaonCmsTagRepository extends TaonBaseRepository {
|
|
1790
1854
|
constructor() {
|
|
1791
1855
|
super(...arguments);
|
|
1792
|
-
this.entityClassResolveFn = () =>
|
|
1856
|
+
this.entityClassResolveFn = () => TaonCmsTagEntity;
|
|
1857
|
+
}
|
|
1858
|
+
async requireTags(ids, manager) {
|
|
1859
|
+
//#region @websqlFunc
|
|
1860
|
+
for (const id of new Set(ids)) {
|
|
1861
|
+
const tag = await manager
|
|
1862
|
+
.getRepository(this.target)
|
|
1863
|
+
.findOneBy({ id });
|
|
1864
|
+
if (!tag) {
|
|
1865
|
+
contentError(`Tag ${id} does not exist.`, 404);
|
|
1866
|
+
}
|
|
1867
|
+
}
|
|
1868
|
+
//#endregion
|
|
1793
1869
|
}
|
|
1794
1870
|
/**
|
|
1795
1871
|
* TODO remove this demo example method
|
|
@@ -1805,19 +1881,19 @@ let TaonCmsContentPermissionRepository = class TaonCmsContentPermissionRepositor
|
|
|
1805
1881
|
//#endregion
|
|
1806
1882
|
}
|
|
1807
1883
|
};
|
|
1808
|
-
|
|
1884
|
+
TaonCmsTagRepository = __decorate([
|
|
1809
1885
|
TaonRepository({
|
|
1810
|
-
className: '
|
|
1886
|
+
className: 'TaonCmsTagRepository',
|
|
1811
1887
|
})
|
|
1812
|
-
],
|
|
1888
|
+
], TaonCmsTagRepository);
|
|
1813
1889
|
|
|
1814
|
-
var
|
|
1890
|
+
var TaonCmsTagController_1;
|
|
1815
1891
|
//#endregion
|
|
1816
|
-
let
|
|
1892
|
+
let TaonCmsTagController = TaonCmsTagController_1 = class TaonCmsTagController extends TaonBaseCrudController {
|
|
1817
1893
|
constructor() {
|
|
1818
1894
|
super(...arguments);
|
|
1819
|
-
this.entityClassResolveFn = () =>
|
|
1820
|
-
this.
|
|
1895
|
+
this.entityClassResolveFn = () => TaonCmsTagEntity;
|
|
1896
|
+
this.taonCmsTagRepository = this.injectCustomRepo(TaonCmsTagRepository);
|
|
1821
1897
|
//#endregion
|
|
1822
1898
|
}
|
|
1823
1899
|
//#region methods & getters / hello world
|
|
@@ -1828,8 +1904,8 @@ let TaonCmsContentPermissionController = TaonCmsContentPermissionController_1 =
|
|
|
1828
1904
|
//#region @websqlFunc
|
|
1829
1905
|
return async (req, res) => {
|
|
1830
1906
|
const numOfEntities = await this.db.count();
|
|
1831
|
-
const numberOfEvenEntities = await this.
|
|
1832
|
-
return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(
|
|
1907
|
+
const numberOfEvenEntities = await this.taonCmsTagRepository.countEntitesWithEvenId();
|
|
1908
|
+
return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsTagController_1)}
|
|
1833
1909
|
controller.. ${numOfEntities} entites in db..
|
|
1834
1910
|
${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)
|
|
1835
1911
|
`;
|
|
@@ -1843,132 +1919,532 @@ __decorate([
|
|
|
1843
1919
|
__metadata("design:type", Function),
|
|
1844
1920
|
__metadata("design:paramtypes", [String]),
|
|
1845
1921
|
__metadata("design:returntype", Object)
|
|
1846
|
-
],
|
|
1847
|
-
|
|
1922
|
+
], TaonCmsTagController.prototype, "helloWord", null);
|
|
1923
|
+
TaonCmsTagController = TaonCmsTagController_1 = __decorate([
|
|
1848
1924
|
TaonController({
|
|
1849
|
-
className: '
|
|
1925
|
+
className: 'TaonCmsTagController',
|
|
1850
1926
|
allowedMethods: []
|
|
1851
1927
|
})
|
|
1852
|
-
],
|
|
1928
|
+
], TaonCmsTagController);
|
|
1853
1929
|
|
|
1854
1930
|
//#endregion
|
|
1855
|
-
let
|
|
1856
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
1857
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
1931
|
+
let TaonCmsTagProvider = class TaonCmsTagProvider extends TaonBaseProvider {
|
|
1932
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1933
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagProvider }); }
|
|
1858
1934
|
};
|
|
1859
|
-
|
|
1935
|
+
TaonCmsTagProvider = __decorate([
|
|
1860
1936
|
TaonProvider({
|
|
1861
|
-
className: '
|
|
1937
|
+
className: 'TaonCmsTagProvider',
|
|
1862
1938
|
})
|
|
1863
1939
|
//#region @browser
|
|
1864
|
-
],
|
|
1865
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
1940
|
+
], TaonCmsTagProvider);
|
|
1941
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagProvider, decorators: [{
|
|
1866
1942
|
type: Injectable
|
|
1867
1943
|
}] });
|
|
1868
1944
|
|
|
1869
1945
|
//#endregion
|
|
1870
|
-
let
|
|
1946
|
+
let TaonCmsTagMiddleware = class TaonCmsTagMiddleware extends TaonBaseMiddleware {
|
|
1871
1947
|
};
|
|
1872
|
-
|
|
1948
|
+
TaonCmsTagMiddleware = __decorate([
|
|
1873
1949
|
TaonMiddleware({
|
|
1874
|
-
className: '
|
|
1950
|
+
className: 'TaonCmsTagMiddleware',
|
|
1875
1951
|
})
|
|
1876
|
-
],
|
|
1952
|
+
], TaonCmsTagMiddleware);
|
|
1877
1953
|
|
|
1878
1954
|
//#endregion
|
|
1879
|
-
let
|
|
1955
|
+
let TaonCmsTagSubscriber = class TaonCmsTagSubscriber extends TaonBaseSubscriberForEntity {
|
|
1880
1956
|
constructor() {
|
|
1881
1957
|
super(...arguments);
|
|
1882
|
-
this.
|
|
1958
|
+
this.taonCmsTagProvider = this.injectProvider(TaonCmsTagProvider);
|
|
1883
1959
|
}
|
|
1884
1960
|
listenTo() {
|
|
1885
|
-
return
|
|
1961
|
+
return TaonCmsTagEntity;
|
|
1886
1962
|
}
|
|
1887
1963
|
};
|
|
1888
|
-
|
|
1964
|
+
TaonCmsTagSubscriber = __decorate([
|
|
1889
1965
|
TaonSubscriber({
|
|
1890
|
-
className: '
|
|
1966
|
+
className: 'TaonCmsTagSubscriber',
|
|
1891
1967
|
// allowedEvents: ['afterUpdate'],
|
|
1892
1968
|
})
|
|
1893
|
-
],
|
|
1969
|
+
], TaonCmsTagSubscriber);
|
|
1894
1970
|
|
|
1895
1971
|
//#region imports
|
|
1896
1972
|
//#endregion
|
|
1897
|
-
const
|
|
1898
|
-
contextName: '
|
|
1973
|
+
const TaonCmsTagAbstractContext = createContext(() => ({
|
|
1974
|
+
contextName: 'TaonCmsTagAbstractContext',
|
|
1899
1975
|
abstract: true,
|
|
1900
1976
|
contexts: { TaonBaseContext },
|
|
1901
|
-
entities: {
|
|
1902
|
-
controllers: {
|
|
1903
|
-
repositories: {
|
|
1904
|
-
providers: {
|
|
1905
|
-
middlewares: {
|
|
1906
|
-
subscribers: {
|
|
1977
|
+
entities: { TaonCmsTagEntity },
|
|
1978
|
+
controllers: { TaonCmsTagController },
|
|
1979
|
+
repositories: { TaonCmsTagRepository },
|
|
1980
|
+
providers: { TaonCmsTagProvider },
|
|
1981
|
+
middlewares: { TaonCmsTagMiddleware },
|
|
1982
|
+
subscribers: { TaonCmsTagSubscriber },
|
|
1907
1983
|
}));
|
|
1908
1984
|
|
|
1909
1985
|
//#endregion
|
|
1910
|
-
let
|
|
1986
|
+
let TaonCmsContentEntity = class TaonCmsContentEntity extends TaonBaseEntity {
|
|
1987
|
+
constructor() {
|
|
1988
|
+
super(...arguments);
|
|
1989
|
+
//#region @websql
|
|
1990
|
+
this.type = TaonCmsContentType.Normal;
|
|
1991
|
+
//#region @websql
|
|
1992
|
+
this.videoKey = null;
|
|
1993
|
+
//#region @websql
|
|
1994
|
+
this.audioKey = null;
|
|
1995
|
+
//#region @websql
|
|
1996
|
+
this.attachmentKey = null;
|
|
1997
|
+
}
|
|
1911
1998
|
};
|
|
1912
1999
|
__decorate([
|
|
1913
2000
|
PrimaryGeneratedColumn()
|
|
1914
2001
|
//#endregion
|
|
1915
2002
|
,
|
|
1916
2003
|
__metadata("design:type", Number)
|
|
1917
|
-
],
|
|
2004
|
+
], TaonCmsContentEntity.prototype, "id", void 0);
|
|
1918
2005
|
__decorate([
|
|
1919
2006
|
Column({ type: 'integer', default: 0 })
|
|
1920
2007
|
//#endregion
|
|
1921
2008
|
,
|
|
1922
2009
|
__metadata("design:type", Number)
|
|
1923
|
-
],
|
|
2010
|
+
], TaonCmsContentEntity.prototype, "version", void 0);
|
|
1924
2011
|
__decorate([
|
|
1925
|
-
Column({ type: '
|
|
2012
|
+
Column({ type: 'varchar', default: TaonCmsContentType.Normal })
|
|
1926
2013
|
//#endregion
|
|
1927
2014
|
,
|
|
1928
|
-
__metadata("design:type",
|
|
1929
|
-
],
|
|
2015
|
+
__metadata("design:type", String)
|
|
2016
|
+
], TaonCmsContentEntity.prototype, "type", void 0);
|
|
1930
2017
|
__decorate([
|
|
1931
|
-
Column({ type: '
|
|
2018
|
+
Column({ type: 'varchar' })
|
|
1932
2019
|
//#endregion
|
|
1933
2020
|
,
|
|
1934
|
-
__metadata("design:type",
|
|
1935
|
-
],
|
|
2021
|
+
__metadata("design:type", String)
|
|
2022
|
+
], TaonCmsContentEntity.prototype, "title", void 0);
|
|
1936
2023
|
__decorate([
|
|
1937
|
-
Column({ type: 'varchar' })
|
|
2024
|
+
Column({ type: 'varchar', unique: true })
|
|
1938
2025
|
//#endregion
|
|
1939
2026
|
,
|
|
1940
2027
|
__metadata("design:type", String)
|
|
1941
|
-
],
|
|
2028
|
+
], TaonCmsContentEntity.prototype, "slug", void 0);
|
|
2029
|
+
__decorate([
|
|
2030
|
+
ManyToMany(() => TaonCmsContentEntity),
|
|
2031
|
+
JoinTable({
|
|
2032
|
+
name: 'taon_cms_related_posts',
|
|
2033
|
+
joinColumn: { name: 'contentId', referencedColumnName: 'id' },
|
|
2034
|
+
inverseJoinColumn: { name: 'relatedPostId', referencedColumnName: 'id' },
|
|
2035
|
+
})
|
|
2036
|
+
//#endregion
|
|
2037
|
+
,
|
|
2038
|
+
__metadata("design:type", Array)
|
|
2039
|
+
], TaonCmsContentEntity.prototype, "relatedPosts", void 0);
|
|
2040
|
+
__decorate([
|
|
2041
|
+
ManyToMany(() => TaonPermissionEntity),
|
|
2042
|
+
JoinTable({
|
|
2043
|
+
name: 'taon_cms_content_permissions',
|
|
2044
|
+
joinColumn: { name: 'contentId', referencedColumnName: 'id' },
|
|
2045
|
+
inverseJoinColumn: { name: 'permissionId', referencedColumnName: 'id' },
|
|
2046
|
+
})
|
|
2047
|
+
//#endregion
|
|
2048
|
+
,
|
|
2049
|
+
__metadata("design:type", Array)
|
|
2050
|
+
], TaonCmsContentEntity.prototype, "permissions", void 0);
|
|
1942
2051
|
__decorate([
|
|
1943
2052
|
Column({ type: 'text', nullable: true })
|
|
1944
2053
|
//#endregion
|
|
1945
2054
|
,
|
|
1946
2055
|
__metadata("design:type", String)
|
|
1947
|
-
],
|
|
2056
|
+
], TaonCmsContentEntity.prototype, "excerpt", void 0);
|
|
2057
|
+
__decorate([
|
|
2058
|
+
Column({ type: 'text', nullable: true })
|
|
2059
|
+
//#endregion
|
|
2060
|
+
,
|
|
2061
|
+
__metadata("design:type", String)
|
|
2062
|
+
], TaonCmsContentEntity.prototype, "body", void 0);
|
|
2063
|
+
__decorate([
|
|
2064
|
+
Column({ type: 'varchar', nullable: true })
|
|
2065
|
+
//#endregion
|
|
2066
|
+
,
|
|
2067
|
+
__metadata("design:type", String)
|
|
2068
|
+
], TaonCmsContentEntity.prototype, "videoKey", void 0);
|
|
2069
|
+
__decorate([
|
|
2070
|
+
Column({ type: 'varchar', nullable: true })
|
|
2071
|
+
//#endregion
|
|
2072
|
+
,
|
|
2073
|
+
__metadata("design:type", String)
|
|
2074
|
+
], TaonCmsContentEntity.prototype, "audioKey", void 0);
|
|
2075
|
+
__decorate([
|
|
2076
|
+
Column({ type: 'varchar', nullable: true })
|
|
2077
|
+
//#endregion
|
|
2078
|
+
,
|
|
2079
|
+
__metadata("design:type", String)
|
|
2080
|
+
], TaonCmsContentEntity.prototype, "attachmentKey", void 0);
|
|
1948
2081
|
__decorate([
|
|
1949
2082
|
Column({ type: 'integer', nullable: true })
|
|
1950
2083
|
//#endregion
|
|
1951
2084
|
,
|
|
1952
2085
|
__metadata("design:type", Number)
|
|
1953
|
-
],
|
|
2086
|
+
], TaonCmsContentEntity.prototype, "categoryId", void 0);
|
|
2087
|
+
__decorate([
|
|
2088
|
+
Column({ type: 'integer', nullable: true })
|
|
2089
|
+
//#endregion
|
|
2090
|
+
,
|
|
2091
|
+
__metadata("design:type", Number)
|
|
2092
|
+
], TaonCmsContentEntity.prototype, "authorUserId", void 0);
|
|
2093
|
+
__decorate([
|
|
2094
|
+
Column({ type: 'varchar', default: 'draft' })
|
|
2095
|
+
//#endregion
|
|
2096
|
+
,
|
|
2097
|
+
__metadata("design:type", String)
|
|
2098
|
+
], TaonCmsContentEntity.prototype, "status", void 0);
|
|
2099
|
+
__decorate([
|
|
2100
|
+
Column({ type: 'datetime', nullable: true })
|
|
2101
|
+
//#endregion
|
|
2102
|
+
,
|
|
2103
|
+
__metadata("design:type", Date)
|
|
2104
|
+
], TaonCmsContentEntity.prototype, "publishedAt", void 0);
|
|
1954
2105
|
__decorate([
|
|
1955
2106
|
Column({ type: 'datetime' })
|
|
1956
2107
|
//#endregion
|
|
1957
2108
|
,
|
|
1958
2109
|
__metadata("design:type", Date)
|
|
1959
|
-
],
|
|
1960
|
-
|
|
2110
|
+
], TaonCmsContentEntity.prototype, "createdAt", void 0);
|
|
2111
|
+
__decorate([
|
|
2112
|
+
Column({ type: 'datetime' })
|
|
2113
|
+
//#endregion
|
|
2114
|
+
,
|
|
2115
|
+
__metadata("design:type", Date)
|
|
2116
|
+
], TaonCmsContentEntity.prototype, "updatedAt", void 0);
|
|
2117
|
+
TaonCmsContentEntity = __decorate([
|
|
1961
2118
|
TaonEntity({
|
|
1962
|
-
className: '
|
|
2119
|
+
className: 'TaonCmsContentEntity',
|
|
1963
2120
|
createTable: true,
|
|
1964
2121
|
})
|
|
1965
|
-
],
|
|
2122
|
+
], TaonCmsContentEntity);
|
|
1966
2123
|
|
|
1967
2124
|
//#endregion
|
|
1968
|
-
let
|
|
2125
|
+
let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRepository {
|
|
1969
2126
|
constructor() {
|
|
1970
2127
|
super(...arguments);
|
|
1971
|
-
this.entityClassResolveFn = () =>
|
|
2128
|
+
this.entityClassResolveFn = () => TaonCmsContentEntity;
|
|
2129
|
+
this.taonCmsContentRevisionRepository = this.injectCustomRepo(TaonCmsContentRevisionRepository);
|
|
2130
|
+
this.taonCmsContentTagRepository = this.injectCustomRepo(TaonCmsContentTagRepository);
|
|
2131
|
+
this.taonCmsCategoryRepository = this.injectCustomRepo(TaonCmsCategoryRepository);
|
|
2132
|
+
this.tags = this.injectCustomRepo(TaonCmsTagRepository);
|
|
2133
|
+
}
|
|
2134
|
+
async createContent(input) {
|
|
2135
|
+
//#region @websqlFunc
|
|
2136
|
+
validateContentInput(input, true);
|
|
2137
|
+
return this.connection.transaction(async (manager) => {
|
|
2138
|
+
const fields = this.contentFields(input);
|
|
2139
|
+
const tagIds = [...new Set(input.tagIds ?? [])];
|
|
2140
|
+
const relatedPostIds = [...new Set(input.relatedPostIds ?? [])];
|
|
2141
|
+
const permissionIds = [...new Set(input.permissionIds ?? [])];
|
|
2142
|
+
await this.validateReferences(fields, tagIds, permissionIds, manager);
|
|
2143
|
+
await this.requireAvailableSlug(fields.slug, manager);
|
|
2144
|
+
const repository = manager.getRepository(this.target);
|
|
2145
|
+
const now = new Date();
|
|
2146
|
+
const content = await repository.save(repository.create({
|
|
2147
|
+
...fields,
|
|
2148
|
+
version: 1,
|
|
2149
|
+
createdAt: now,
|
|
2150
|
+
updatedAt: now,
|
|
2151
|
+
}));
|
|
2152
|
+
await this.taonCmsContentTagRepository.replaceTags(content.id, tagIds, manager);
|
|
2153
|
+
await this.replaceRelatedPosts(content.id, relatedPostIds, [], manager);
|
|
2154
|
+
await this.replacePermissions(content.id, permissionIds, [], manager);
|
|
2155
|
+
await this.taonCmsContentRevisionRepository.recordContent(content, { ...fields, tagIds, relatedPostIds, permissionIds }, manager);
|
|
2156
|
+
return this.requireContent(content.id, manager);
|
|
2157
|
+
});
|
|
2158
|
+
//#endregion
|
|
2159
|
+
}
|
|
2160
|
+
async updateContent(id, input) {
|
|
2161
|
+
//#region @websqlFunc
|
|
2162
|
+
requireContentId(id);
|
|
2163
|
+
validateContentInput(input);
|
|
2164
|
+
requireContentVersion(input.expectedVersion);
|
|
2165
|
+
return this.connection.transaction(async (manager) => {
|
|
2166
|
+
const current = await this.requireContent(id, manager);
|
|
2167
|
+
const snapshot = await this.snapshotOf(current, manager);
|
|
2168
|
+
const fields = this.contentFields(input, snapshot);
|
|
2169
|
+
const tagIds = input.tagIds === undefined
|
|
2170
|
+
? snapshot.tagIds
|
|
2171
|
+
: [...new Set(input.tagIds)];
|
|
2172
|
+
const relatedPostIds = input.relatedPostIds === undefined
|
|
2173
|
+
? snapshot.relatedPostIds
|
|
2174
|
+
: [...new Set(input.relatedPostIds)];
|
|
2175
|
+
const permissionIds = input.permissionIds === undefined
|
|
2176
|
+
? snapshot.permissionIds
|
|
2177
|
+
: [...new Set(input.permissionIds)];
|
|
2178
|
+
return this.commitUpdate(current, input.expectedVersion, { ...fields, tagIds, relatedPostIds, permissionIds }, manager);
|
|
2179
|
+
});
|
|
2180
|
+
//#endregion
|
|
2181
|
+
}
|
|
2182
|
+
async archiveContent(id, expectedVersion) {
|
|
2183
|
+
//#region @websqlFunc
|
|
2184
|
+
return this.updateContent(id, { status: 'archived', expectedVersion });
|
|
2185
|
+
//#endregion
|
|
2186
|
+
}
|
|
2187
|
+
async restoreContent(id, input) {
|
|
2188
|
+
//#region @websqlFunc
|
|
2189
|
+
requireContentId(id);
|
|
2190
|
+
if (!input || typeof input !== 'object') {
|
|
2191
|
+
contentError('Restore input must be an object.');
|
|
2192
|
+
}
|
|
2193
|
+
requireContentVersion(input.revisionNumber, 'revisionNumber');
|
|
2194
|
+
requireContentVersion(input.expectedVersion);
|
|
2195
|
+
return this.connection.transaction(async (manager) => {
|
|
2196
|
+
const current = await this.requireContent(id, manager);
|
|
2197
|
+
const revision = await this.taonCmsContentRevisionRepository.requireRevision(id, input.revisionNumber, manager);
|
|
2198
|
+
if (!revision.snapshot) {
|
|
2199
|
+
contentError('This legacy revision has no complete snapshot and cannot be restored.', 409);
|
|
2200
|
+
}
|
|
2201
|
+
const storedSnapshot = revision.snapshot;
|
|
2202
|
+
const snapshotFields = [
|
|
2203
|
+
'type',
|
|
2204
|
+
'title',
|
|
2205
|
+
'slug',
|
|
2206
|
+
'body',
|
|
2207
|
+
'excerpt',
|
|
2208
|
+
'categoryId',
|
|
2209
|
+
'authorUserId',
|
|
2210
|
+
'status',
|
|
2211
|
+
'publishedAt',
|
|
2212
|
+
'tagIds',
|
|
2213
|
+
];
|
|
2214
|
+
if (snapshotFields.some(field => storedSnapshot[field] === undefined)) {
|
|
2215
|
+
contentError('This revision has an incomplete snapshot and cannot be restored.', 409);
|
|
2216
|
+
}
|
|
2217
|
+
validateContentInput(revision.snapshot, true);
|
|
2218
|
+
const snapshot = {
|
|
2219
|
+
// Older complete snapshots predate primary media; preserve those keys.
|
|
2220
|
+
...this.contentFields(revision.snapshot, await this.snapshotOf(current, manager)),
|
|
2221
|
+
tagIds: revision.snapshot.tagIds,
|
|
2222
|
+
relatedPostIds: revision.snapshot.relatedPostIds ?? [],
|
|
2223
|
+
permissionIds: revision.snapshot.permissionIds ?? [],
|
|
2224
|
+
};
|
|
2225
|
+
return this.commitUpdate(current, input.expectedVersion, snapshot, manager);
|
|
2226
|
+
});
|
|
2227
|
+
//#endregion
|
|
2228
|
+
}
|
|
2229
|
+
async listRevisions(id) {
|
|
2230
|
+
//#region @websqlFunc
|
|
2231
|
+
requireContentId(id);
|
|
2232
|
+
return this.connection.transaction(async (manager) => {
|
|
2233
|
+
await this.requireContent(id, manager);
|
|
2234
|
+
return this.taonCmsContentRevisionRepository.listForContent(id, manager);
|
|
2235
|
+
});
|
|
2236
|
+
//#endregion
|
|
2237
|
+
}
|
|
2238
|
+
async listRelatedPosts(id) {
|
|
2239
|
+
//#region @websqlFunc
|
|
2240
|
+
requireContentId(id);
|
|
2241
|
+
return this.connection.transaction(async (manager) => (await this.requireContent(id, manager)).relatedPosts);
|
|
2242
|
+
//#endregion
|
|
2243
|
+
}
|
|
2244
|
+
async listPermissions(id) {
|
|
2245
|
+
//#region @websqlFunc
|
|
2246
|
+
requireContentId(id);
|
|
2247
|
+
return this.connection.transaction(async (manager) => (await this.requireContent(id, manager)).permissions);
|
|
2248
|
+
//#endregion
|
|
2249
|
+
}
|
|
2250
|
+
async addRelatedPost(id, relatedPostId, expectedVersion) {
|
|
2251
|
+
//#region @websqlFunc
|
|
2252
|
+
return this.changeRelatedPost(id, relatedPostId, expectedVersion, true);
|
|
2253
|
+
//#endregion
|
|
2254
|
+
}
|
|
2255
|
+
async deleteRelatedPost(id, relatedPostId, expectedVersion) {
|
|
2256
|
+
//#region @websqlFunc
|
|
2257
|
+
return this.changeRelatedPost(id, relatedPostId, expectedVersion, false);
|
|
2258
|
+
//#endregion
|
|
2259
|
+
}
|
|
2260
|
+
async changeRelatedPost(id, relatedPostId, expectedVersion, adding) {
|
|
2261
|
+
//#region @websqlFunc
|
|
2262
|
+
requireContentId(id);
|
|
2263
|
+
requireContentId(relatedPostId, 'relatedPostId');
|
|
2264
|
+
requireContentVersion(expectedVersion);
|
|
2265
|
+
if (id === relatedPostId) {
|
|
2266
|
+
contentError('A post cannot relate to itself.');
|
|
2267
|
+
}
|
|
2268
|
+
return this.connection.transaction(async (manager) => {
|
|
2269
|
+
const current = await this.requireContent(id, manager);
|
|
2270
|
+
await this.requireContent(relatedPostId, manager);
|
|
2271
|
+
const snapshot = await this.snapshotOf(current, manager);
|
|
2272
|
+
const ids = snapshot.relatedPostIds ?? [];
|
|
2273
|
+
snapshot.relatedPostIds = adding
|
|
2274
|
+
? [...new Set([...ids, relatedPostId])]
|
|
2275
|
+
: ids.filter(postId => postId !== relatedPostId);
|
|
2276
|
+
return this.commitUpdate(current, expectedVersion, snapshot, manager);
|
|
2277
|
+
});
|
|
2278
|
+
//#endregion
|
|
2279
|
+
}
|
|
2280
|
+
async requireContent(id, manager) {
|
|
2281
|
+
//#region @websqlFunc
|
|
2282
|
+
const content = await manager
|
|
2283
|
+
.getRepository(this.target)
|
|
2284
|
+
.findOne({
|
|
2285
|
+
where: { id },
|
|
2286
|
+
relations: { relatedPosts: true, permissions: true },
|
|
2287
|
+
});
|
|
2288
|
+
if (!content) {
|
|
2289
|
+
contentError(`Content ${id} does not exist.`, 404);
|
|
2290
|
+
}
|
|
2291
|
+
return content;
|
|
2292
|
+
//#endregion
|
|
2293
|
+
}
|
|
2294
|
+
contentFields(input, current) {
|
|
2295
|
+
const type = input.type ?? current?.type ?? TaonCmsContentType.Normal;
|
|
2296
|
+
const title = input.title ?? current?.title;
|
|
2297
|
+
const slug = input.slug ?? current?.slug;
|
|
2298
|
+
if (title === undefined || slug === undefined) {
|
|
2299
|
+
contentError('title and slug are required.');
|
|
2300
|
+
}
|
|
2301
|
+
const publishedAt = input.publishedAt === undefined
|
|
2302
|
+
? (current?.publishedAt ?? null)
|
|
2303
|
+
: input.publishedAt;
|
|
2304
|
+
return {
|
|
2305
|
+
type,
|
|
2306
|
+
title,
|
|
2307
|
+
slug,
|
|
2308
|
+
body: input.body === undefined ? (current?.body ?? null) : input.body,
|
|
2309
|
+
videoKey: input.videoKey === undefined ? (current?.videoKey ?? null) : input.videoKey,
|
|
2310
|
+
audioKey: input.audioKey === undefined ? (current?.audioKey ?? null) : input.audioKey,
|
|
2311
|
+
attachmentKey: input.attachmentKey === undefined
|
|
2312
|
+
? (current?.attachmentKey ?? null)
|
|
2313
|
+
: input.attachmentKey,
|
|
2314
|
+
excerpt: input.excerpt === undefined
|
|
2315
|
+
? (current?.excerpt ?? null)
|
|
2316
|
+
: input.excerpt,
|
|
2317
|
+
categoryId: input.categoryId === undefined
|
|
2318
|
+
? (current?.categoryId ?? null)
|
|
2319
|
+
: input.categoryId,
|
|
2320
|
+
authorUserId: input.authorUserId === undefined
|
|
2321
|
+
? (current?.authorUserId ?? null)
|
|
2322
|
+
: input.authorUserId,
|
|
2323
|
+
status: input.status ?? current?.status ?? 'draft',
|
|
2324
|
+
publishedAt: publishedAt === null ? null : new Date(publishedAt),
|
|
2325
|
+
};
|
|
2326
|
+
}
|
|
2327
|
+
async snapshotOf(content, manager) {
|
|
2328
|
+
//#region @websqlFunc
|
|
2329
|
+
return {
|
|
2330
|
+
...this.contentFields({
|
|
2331
|
+
...content,
|
|
2332
|
+
status: this.contentStatus(content.status),
|
|
2333
|
+
}),
|
|
2334
|
+
tagIds: await this.taonCmsContentTagRepository.findTagIds(content.id, manager),
|
|
2335
|
+
relatedPostIds: content.relatedPosts.map(post => post.id),
|
|
2336
|
+
permissionIds: content.permissions.map(permission => permission.id),
|
|
2337
|
+
};
|
|
2338
|
+
//#endregion
|
|
2339
|
+
}
|
|
2340
|
+
contentStatus(status) {
|
|
2341
|
+
if (status !== 'draft' && status !== 'published' && status !== 'archived') {
|
|
2342
|
+
contentError(`Unsupported stored content status: ${status}.`, 409);
|
|
2343
|
+
}
|
|
2344
|
+
return status;
|
|
2345
|
+
}
|
|
2346
|
+
async validateReferences(fields, tagIds, permissionIds, manager) {
|
|
2347
|
+
//#region @websqlFunc
|
|
2348
|
+
if (fields.categoryId !== null) {
|
|
2349
|
+
await this.taonCmsCategoryRepository.requireCategory(fields.categoryId, manager);
|
|
2350
|
+
}
|
|
2351
|
+
await this.tags.requireTags(tagIds, manager);
|
|
2352
|
+
await this.requirePermissions(permissionIds, manager);
|
|
2353
|
+
//#endregion
|
|
2354
|
+
}
|
|
2355
|
+
async requirePermissions(permissionIds, manager) {
|
|
2356
|
+
//#region @websqlFunc
|
|
2357
|
+
if (!permissionIds.length) {
|
|
2358
|
+
return;
|
|
2359
|
+
}
|
|
2360
|
+
const permissions = await manager
|
|
2361
|
+
.getRepository(TaonPermissionEntity)
|
|
2362
|
+
.findBy({ id: In(permissionIds) });
|
|
2363
|
+
const foundIds = new Set(permissions.map(permission => permission.id));
|
|
2364
|
+
const missingId = permissionIds.find(id => !foundIds.has(id));
|
|
2365
|
+
if (missingId !== undefined) {
|
|
2366
|
+
contentError(`Permission ${missingId} does not exist.`, 404);
|
|
2367
|
+
}
|
|
2368
|
+
//#endregion
|
|
2369
|
+
}
|
|
2370
|
+
async requireAvailableSlug(slug, manager, contentId) {
|
|
2371
|
+
//#region @websqlFunc
|
|
2372
|
+
const existing = await manager
|
|
2373
|
+
.getRepository(this.target)
|
|
2374
|
+
.findOneBy({ slug });
|
|
2375
|
+
if (existing && existing.id !== contentId) {
|
|
2376
|
+
contentError(`Slug "${slug}" is already in use.`, 409);
|
|
2377
|
+
}
|
|
2378
|
+
//#endregion
|
|
2379
|
+
}
|
|
2380
|
+
async replaceRelatedPosts(id, relatedPostIds, previousIds, manager) {
|
|
2381
|
+
//#region @websqlFunc
|
|
2382
|
+
if (relatedPostIds.includes(id)) {
|
|
2383
|
+
contentError('A post cannot relate to itself.');
|
|
2384
|
+
}
|
|
2385
|
+
const repository = manager.getRepository(this.target);
|
|
2386
|
+
if (relatedPostIds.length) {
|
|
2387
|
+
const posts = await repository.findBy({ id: In(relatedPostIds) });
|
|
2388
|
+
const foundIds = new Set(posts.map(post => post.id));
|
|
2389
|
+
const missingId = relatedPostIds.find(postId => !foundIds.has(postId));
|
|
2390
|
+
if (missingId !== undefined) {
|
|
2391
|
+
contentError(`Content ${missingId} does not exist.`, 404);
|
|
2392
|
+
}
|
|
2393
|
+
}
|
|
2394
|
+
const added = relatedPostIds.filter(postId => !previousIds.includes(postId));
|
|
2395
|
+
const removed = previousIds.filter(postId => !relatedPostIds.includes(postId));
|
|
2396
|
+
if (added.length || removed.length) {
|
|
2397
|
+
await repository.createQueryBuilder()
|
|
2398
|
+
.relation('relatedPosts')
|
|
2399
|
+
.of(id)
|
|
2400
|
+
.addAndRemove(added, removed);
|
|
2401
|
+
}
|
|
2402
|
+
//#endregion
|
|
2403
|
+
}
|
|
2404
|
+
async replacePermissions(id, permissionIds, previousIds, manager) {
|
|
2405
|
+
//#region @websqlFunc
|
|
2406
|
+
const added = permissionIds.filter(permissionId => !previousIds.includes(permissionId));
|
|
2407
|
+
const removed = previousIds.filter(permissionId => !permissionIds.includes(permissionId));
|
|
2408
|
+
if (added.length || removed.length) {
|
|
2409
|
+
await manager
|
|
2410
|
+
.getRepository(this.target)
|
|
2411
|
+
.createQueryBuilder()
|
|
2412
|
+
.relation('permissions')
|
|
2413
|
+
.of(id)
|
|
2414
|
+
.addAndRemove(added, removed);
|
|
2415
|
+
}
|
|
2416
|
+
//#endregion
|
|
2417
|
+
}
|
|
2418
|
+
async commitUpdate(current, expectedVersion, snapshot, manager) {
|
|
2419
|
+
//#region @websqlFunc
|
|
2420
|
+
if (current.version !== expectedVersion) {
|
|
2421
|
+
contentError('Content has changed. Reload it before editing.', 409);
|
|
2422
|
+
}
|
|
2423
|
+
await this.validateReferences(snapshot, snapshot.tagIds, snapshot.permissionIds, manager);
|
|
2424
|
+
await this.requireAvailableSlug(snapshot.slug, manager, current.id);
|
|
2425
|
+
// Preserve the first pre-API version before replacing it.
|
|
2426
|
+
const history = await this.taonCmsContentRevisionRepository.listForContent(current.id, manager);
|
|
2427
|
+
if (!history.some(revision => revision.revisionNumber === current.version)) {
|
|
2428
|
+
await this.taonCmsContentRevisionRepository.recordContent(current, await this.snapshotOf(current, manager), manager);
|
|
2429
|
+
}
|
|
2430
|
+
const fields = this.contentFields(snapshot);
|
|
2431
|
+
const repository = manager.getRepository(this.target);
|
|
2432
|
+
const result = await repository.update({ id: current.id, version: expectedVersion }, { ...fields, version: expectedVersion + 1, updatedAt: new Date() });
|
|
2433
|
+
if (result.affected !== 1) {
|
|
2434
|
+
contentError('Content has changed. Reload it before editing.', 409);
|
|
2435
|
+
}
|
|
2436
|
+
await this.taonCmsContentTagRepository.replaceTags(current.id, snapshot.tagIds, manager);
|
|
2437
|
+
await this.replaceRelatedPosts(current.id, [...new Set(snapshot.relatedPostIds ?? [])], current.relatedPosts.map(post => post.id), manager);
|
|
2438
|
+
await this.replacePermissions(current.id, [...new Set(snapshot.permissionIds ?? [])], current.permissions.map(permission => permission.id), manager);
|
|
2439
|
+
const updated = await this.requireContent(current.id, manager);
|
|
2440
|
+
await this.taonCmsContentRevisionRepository.recordContent(updated, {
|
|
2441
|
+
...fields,
|
|
2442
|
+
tagIds: snapshot.tagIds,
|
|
2443
|
+
relatedPostIds: updated.relatedPosts.map(post => post.id),
|
|
2444
|
+
permissionIds: updated.permissions.map(permission => permission.id),
|
|
2445
|
+
}, manager);
|
|
2446
|
+
return updated;
|
|
2447
|
+
//#endregion
|
|
1972
2448
|
}
|
|
1973
2449
|
/**
|
|
1974
2450
|
* TODO remove this demo example method
|
|
@@ -1984,134 +2460,337 @@ let TaonCmsContentRevisionRepository = class TaonCmsContentRevisionRepository ex
|
|
|
1984
2460
|
//#endregion
|
|
1985
2461
|
}
|
|
1986
2462
|
};
|
|
1987
|
-
|
|
2463
|
+
TaonCmsContentRepository = __decorate([
|
|
1988
2464
|
TaonRepository({
|
|
1989
|
-
className: '
|
|
2465
|
+
className: 'TaonCmsContentRepository',
|
|
1990
2466
|
})
|
|
1991
|
-
],
|
|
2467
|
+
], TaonCmsContentRepository);
|
|
1992
2468
|
|
|
1993
|
-
var TaonCmsContentRevisionController_1;
|
|
1994
2469
|
//#endregion
|
|
1995
|
-
let
|
|
2470
|
+
let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCrudController {
|
|
1996
2471
|
constructor() {
|
|
1997
2472
|
super(...arguments);
|
|
1998
|
-
this.entityClassResolveFn = () =>
|
|
1999
|
-
this.
|
|
2473
|
+
this.entityClassResolveFn = () => TaonCmsContentEntity;
|
|
2474
|
+
this.taonCmsContentRepository = this.injectCustomRepo(TaonCmsContentRepository);
|
|
2475
|
+
}
|
|
2476
|
+
createContent(input) {
|
|
2477
|
+
//#region @websqlFunc
|
|
2478
|
+
return async () => this.taonCmsContentRepository.createContent(input);
|
|
2000
2479
|
//#endregion
|
|
2001
2480
|
}
|
|
2002
|
-
|
|
2003
|
-
/**
|
|
2004
|
-
* TODO remove this demo example method
|
|
2005
|
-
*/
|
|
2006
|
-
helloWord(yourName) {
|
|
2481
|
+
updateContent(id, input) {
|
|
2007
2482
|
//#region @websqlFunc
|
|
2008
|
-
return async (
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2483
|
+
return async () => this.taonCmsContentRepository.updateContent(id, input);
|
|
2484
|
+
//#endregion
|
|
2485
|
+
}
|
|
2486
|
+
deleteContent(id, expectedVersion) {
|
|
2487
|
+
//#region @websqlFunc
|
|
2488
|
+
return async () => this.taonCmsContentRepository.archiveContent(id, expectedVersion);
|
|
2489
|
+
//#endregion
|
|
2490
|
+
}
|
|
2491
|
+
restoreContent(id, input) {
|
|
2492
|
+
//#region @websqlFunc
|
|
2493
|
+
return async () => this.taonCmsContentRepository.restoreContent(id, input);
|
|
2494
|
+
//#endregion
|
|
2495
|
+
}
|
|
2496
|
+
listRelatedPosts(id) {
|
|
2497
|
+
//#region @websqlFunc
|
|
2498
|
+
return async () => this.taonCmsContentRepository.listRelatedPosts(id);
|
|
2499
|
+
//#endregion
|
|
2500
|
+
}
|
|
2501
|
+
listPermissions(id) {
|
|
2502
|
+
//#region @websqlFunc
|
|
2503
|
+
return async () => this.taonCmsContentRepository.listPermissions(id);
|
|
2504
|
+
//#endregion
|
|
2505
|
+
}
|
|
2506
|
+
addRelatedPost(id, relatedPostId, expectedVersion) {
|
|
2507
|
+
//#region @websqlFunc
|
|
2508
|
+
return async () => this.taonCmsContentRepository.addRelatedPost(id, relatedPostId, expectedVersion);
|
|
2509
|
+
//#endregion
|
|
2510
|
+
}
|
|
2511
|
+
deleteRelatedPost(id, relatedPostId, expectedVersion) {
|
|
2512
|
+
//#region @websqlFunc
|
|
2513
|
+
return async () => this.taonCmsContentRepository.deleteRelatedPost(id, relatedPostId, expectedVersion);
|
|
2514
|
+
//#endregion
|
|
2515
|
+
}
|
|
2516
|
+
listRevisions(id) {
|
|
2517
|
+
//#region @websqlFunc
|
|
2518
|
+
return async () => this.taonCmsContentRepository.listRevisions(id);
|
|
2016
2519
|
//#endregion
|
|
2017
2520
|
}
|
|
2018
2521
|
};
|
|
2522
|
+
__decorate([
|
|
2523
|
+
POST(),
|
|
2524
|
+
__param(0, Body()),
|
|
2525
|
+
__metadata("design:type", Function),
|
|
2526
|
+
__metadata("design:paramtypes", [Object]),
|
|
2527
|
+
__metadata("design:returntype", Object)
|
|
2528
|
+
], TaonCmsContentController.prototype, "createContent", null);
|
|
2529
|
+
__decorate([
|
|
2530
|
+
PUT(),
|
|
2531
|
+
__param(0, Query('id')),
|
|
2532
|
+
__param(1, Body()),
|
|
2533
|
+
__metadata("design:type", Function),
|
|
2534
|
+
__metadata("design:paramtypes", [Number, Object]),
|
|
2535
|
+
__metadata("design:returntype", Object)
|
|
2536
|
+
], TaonCmsContentController.prototype, "updateContent", null);
|
|
2537
|
+
__decorate([
|
|
2538
|
+
DELETE(),
|
|
2539
|
+
__param(0, Query('id')),
|
|
2540
|
+
__param(1, Query('expectedVersion')),
|
|
2541
|
+
__metadata("design:type", Function),
|
|
2542
|
+
__metadata("design:paramtypes", [Number, Number]),
|
|
2543
|
+
__metadata("design:returntype", Object)
|
|
2544
|
+
], TaonCmsContentController.prototype, "deleteContent", null);
|
|
2545
|
+
__decorate([
|
|
2546
|
+
POST(),
|
|
2547
|
+
__param(0, Query('id')),
|
|
2548
|
+
__param(1, Body()),
|
|
2549
|
+
__metadata("design:type", Function),
|
|
2550
|
+
__metadata("design:paramtypes", [Number, Object]),
|
|
2551
|
+
__metadata("design:returntype", Object)
|
|
2552
|
+
], TaonCmsContentController.prototype, "restoreContent", null);
|
|
2019
2553
|
__decorate([
|
|
2020
2554
|
GET(),
|
|
2021
|
-
__param(0, Query('
|
|
2555
|
+
__param(0, Query('id')),
|
|
2022
2556
|
__metadata("design:type", Function),
|
|
2023
|
-
__metadata("design:paramtypes", [
|
|
2557
|
+
__metadata("design:paramtypes", [Number]),
|
|
2558
|
+
__metadata("design:returntype", Object)
|
|
2559
|
+
], TaonCmsContentController.prototype, "listRelatedPosts", null);
|
|
2560
|
+
__decorate([
|
|
2561
|
+
GET(),
|
|
2562
|
+
__param(0, Query('id')),
|
|
2563
|
+
__metadata("design:type", Function),
|
|
2564
|
+
__metadata("design:paramtypes", [Number]),
|
|
2565
|
+
__metadata("design:returntype", Object)
|
|
2566
|
+
], TaonCmsContentController.prototype, "listPermissions", null);
|
|
2567
|
+
__decorate([
|
|
2568
|
+
POST(),
|
|
2569
|
+
__param(0, Query('id')),
|
|
2570
|
+
__param(1, Query('relatedPostId')),
|
|
2571
|
+
__param(2, Query('expectedVersion')),
|
|
2572
|
+
__metadata("design:type", Function),
|
|
2573
|
+
__metadata("design:paramtypes", [Number, Number, Number]),
|
|
2574
|
+
__metadata("design:returntype", Object)
|
|
2575
|
+
], TaonCmsContentController.prototype, "addRelatedPost", null);
|
|
2576
|
+
__decorate([
|
|
2577
|
+
DELETE(),
|
|
2578
|
+
__param(0, Query('id')),
|
|
2579
|
+
__param(1, Query('relatedPostId')),
|
|
2580
|
+
__param(2, Query('expectedVersion')),
|
|
2581
|
+
__metadata("design:type", Function),
|
|
2582
|
+
__metadata("design:paramtypes", [Number, Number, Number]),
|
|
2583
|
+
__metadata("design:returntype", Object)
|
|
2584
|
+
], TaonCmsContentController.prototype, "deleteRelatedPost", null);
|
|
2585
|
+
__decorate([
|
|
2586
|
+
GET(),
|
|
2587
|
+
__param(0, Query('id')),
|
|
2588
|
+
__metadata("design:type", Function),
|
|
2589
|
+
__metadata("design:paramtypes", [Number]),
|
|
2024
2590
|
__metadata("design:returntype", Object)
|
|
2025
|
-
],
|
|
2026
|
-
|
|
2591
|
+
], TaonCmsContentController.prototype, "listRevisions", null);
|
|
2592
|
+
TaonCmsContentController = __decorate([
|
|
2027
2593
|
TaonController({
|
|
2028
|
-
className: '
|
|
2029
|
-
allowedMethods: [
|
|
2594
|
+
className: 'TaonCmsContentController',
|
|
2595
|
+
allowedMethods: [
|
|
2596
|
+
'getAll',
|
|
2597
|
+
'getBy',
|
|
2598
|
+
'createContent',
|
|
2599
|
+
'updateContent',
|
|
2600
|
+
'deleteContent',
|
|
2601
|
+
'restoreContent',
|
|
2602
|
+
'listRevisions',
|
|
2603
|
+
'listRelatedPosts',
|
|
2604
|
+
'listPermissions',
|
|
2605
|
+
'addRelatedPost',
|
|
2606
|
+
'deleteRelatedPost',
|
|
2607
|
+
'paginationQuery'
|
|
2608
|
+
],
|
|
2030
2609
|
})
|
|
2031
|
-
],
|
|
2610
|
+
], TaonCmsContentController);
|
|
2032
2611
|
|
|
2033
2612
|
//#endregion
|
|
2034
|
-
let
|
|
2035
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2036
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider }); }
|
|
2613
|
+
let TaonCmsContentMiddleware = class TaonCmsContentMiddleware extends TaonBaseMiddleware {
|
|
2037
2614
|
};
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
className: '
|
|
2615
|
+
TaonCmsContentMiddleware = __decorate([
|
|
2616
|
+
TaonMiddleware({
|
|
2617
|
+
className: 'TaonCmsContentMiddleware',
|
|
2041
2618
|
})
|
|
2042
|
-
|
|
2043
|
-
], TaonCmsContentRevisionProvider);
|
|
2044
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider, decorators: [{
|
|
2045
|
-
type: Injectable
|
|
2046
|
-
}] });
|
|
2619
|
+
], TaonCmsContentMiddleware);
|
|
2047
2620
|
|
|
2048
2621
|
//#endregion
|
|
2049
|
-
let
|
|
2622
|
+
let TaonCmsContentProvider = class TaonCmsContentProvider extends TaonBaseProvider {
|
|
2623
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2624
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentProvider }); }
|
|
2050
2625
|
};
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
className: '
|
|
2626
|
+
TaonCmsContentProvider = __decorate([
|
|
2627
|
+
TaonProvider({
|
|
2628
|
+
className: 'TaonCmsContentProvider',
|
|
2054
2629
|
})
|
|
2055
|
-
|
|
2630
|
+
//#region @browser
|
|
2631
|
+
], TaonCmsContentProvider);
|
|
2632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentProvider, decorators: [{
|
|
2633
|
+
type: Injectable
|
|
2634
|
+
}] });
|
|
2056
2635
|
|
|
2057
2636
|
//#endregion
|
|
2058
|
-
let
|
|
2637
|
+
let TaonCmsContentSubscriber = class TaonCmsContentSubscriber extends TaonBaseSubscriberForEntity {
|
|
2059
2638
|
constructor() {
|
|
2060
2639
|
super(...arguments);
|
|
2061
|
-
this.
|
|
2640
|
+
this.taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);
|
|
2062
2641
|
}
|
|
2063
2642
|
listenTo() {
|
|
2064
|
-
return
|
|
2643
|
+
return TaonCmsContentEntity;
|
|
2065
2644
|
}
|
|
2066
2645
|
};
|
|
2067
|
-
|
|
2646
|
+
TaonCmsContentSubscriber = __decorate([
|
|
2068
2647
|
TaonSubscriber({
|
|
2069
|
-
className: '
|
|
2648
|
+
className: 'TaonCmsContentSubscriber',
|
|
2070
2649
|
// allowedEvents: ['afterUpdate'],
|
|
2071
2650
|
})
|
|
2072
|
-
],
|
|
2651
|
+
], TaonCmsContentSubscriber);
|
|
2652
|
+
|
|
2653
|
+
//#endregion
|
|
2654
|
+
let TaonCmsContentStorageController = class TaonCmsContentStorageController extends TaonBaseStorageController {
|
|
2655
|
+
async handleUploadFiles(files, queryParams, req, res) {
|
|
2656
|
+
/* */
|
|
2657
|
+
/* */
|
|
2658
|
+
/* */
|
|
2659
|
+
/* */
|
|
2660
|
+
/* */
|
|
2661
|
+
/* */
|
|
2662
|
+
/* */
|
|
2663
|
+
/* */
|
|
2664
|
+
return (void 0);
|
|
2665
|
+
}
|
|
2666
|
+
afterFileUploadHook() { }
|
|
2667
|
+
buildStorageDownloadUrl() {
|
|
2668
|
+
throw new Error('Use the download endpoint for CMS media.');
|
|
2669
|
+
}
|
|
2670
|
+
async createStorageDownloadToken() {
|
|
2671
|
+
throw new Error('CMS media download tokens are not enabled.');
|
|
2672
|
+
}
|
|
2673
|
+
};
|
|
2674
|
+
TaonCmsContentStorageController = __decorate([
|
|
2675
|
+
TaonController({
|
|
2676
|
+
className: 'TaonCmsContentStorageController',
|
|
2677
|
+
allowedMethods: ['exists', 'download', 'getMetadata', 'uploadFormDataToServer'],
|
|
2678
|
+
})
|
|
2679
|
+
], TaonCmsContentStorageController);
|
|
2073
2680
|
|
|
2074
2681
|
//#region imports
|
|
2075
2682
|
//#endregion
|
|
2076
|
-
const
|
|
2077
|
-
contextName: '
|
|
2683
|
+
const TaonCmsContentAbstractContext = createContext(() => ({
|
|
2684
|
+
contextName: 'TaonCmsContentAbstractContext',
|
|
2078
2685
|
abstract: true,
|
|
2079
|
-
contexts: {
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2686
|
+
contexts: {
|
|
2687
|
+
TaonBaseContext,
|
|
2688
|
+
TaonCmsCategoryAbstractContext,
|
|
2689
|
+
TaonCmsTagAbstractContext,
|
|
2690
|
+
TaonCmsContentTagAbstractContext,
|
|
2691
|
+
TaonCmsContentRevisionAbstractContext,
|
|
2692
|
+
},
|
|
2693
|
+
entities: { TaonCmsContentEntity },
|
|
2694
|
+
controllers: { TaonCmsContentController, TaonCmsContentStorageController },
|
|
2695
|
+
repositories: { TaonCmsContentRepository },
|
|
2696
|
+
providers: { TaonCmsContentProvider },
|
|
2697
|
+
middlewares: { TaonCmsContentMiddleware },
|
|
2698
|
+
subscribers: { TaonCmsContentSubscriber },
|
|
2086
2699
|
}));
|
|
2087
2700
|
|
|
2088
2701
|
//#endregion
|
|
2089
|
-
let
|
|
2702
|
+
let TaonCmsContentAssetEntity = class TaonCmsContentAssetEntity extends TaonBaseEntity {
|
|
2090
2703
|
};
|
|
2091
2704
|
__decorate([
|
|
2092
|
-
|
|
2705
|
+
PrimaryGeneratedColumn()
|
|
2706
|
+
//#endregion
|
|
2707
|
+
,
|
|
2708
|
+
__metadata("design:type", Number)
|
|
2709
|
+
], TaonCmsContentAssetEntity.prototype, "id", void 0);
|
|
2710
|
+
__decorate([
|
|
2711
|
+
Column({ type: 'integer', default: 0 })
|
|
2712
|
+
//#endregion
|
|
2713
|
+
,
|
|
2714
|
+
__metadata("design:type", Number)
|
|
2715
|
+
], TaonCmsContentAssetEntity.prototype, "version", void 0);
|
|
2716
|
+
__decorate([
|
|
2717
|
+
Column({ type: 'integer', nullable: true })
|
|
2718
|
+
//#endregion
|
|
2719
|
+
,
|
|
2720
|
+
__metadata("design:type", Number)
|
|
2721
|
+
], TaonCmsContentAssetEntity.prototype, "contentId", void 0);
|
|
2722
|
+
__decorate([
|
|
2723
|
+
Column({ type: 'varchar' })
|
|
2724
|
+
//#endregion
|
|
2725
|
+
,
|
|
2726
|
+
__metadata("design:type", String)
|
|
2727
|
+
], TaonCmsContentAssetEntity.prototype, "type", void 0);
|
|
2728
|
+
__decorate([
|
|
2729
|
+
Column({ type: 'varchar' })
|
|
2730
|
+
//#endregion
|
|
2731
|
+
,
|
|
2732
|
+
__metadata("design:type", String)
|
|
2733
|
+
], TaonCmsContentAssetEntity.prototype, "storageProvider", void 0);
|
|
2734
|
+
__decorate([
|
|
2735
|
+
Column({ type: 'varchar', nullable: true })
|
|
2736
|
+
//#endregion
|
|
2737
|
+
,
|
|
2738
|
+
__metadata("design:type", String)
|
|
2739
|
+
], TaonCmsContentAssetEntity.prototype, "bucket", void 0);
|
|
2740
|
+
__decorate([
|
|
2741
|
+
Column({ type: 'varchar' })
|
|
2742
|
+
//#endregion
|
|
2743
|
+
,
|
|
2744
|
+
__metadata("design:type", String)
|
|
2745
|
+
], TaonCmsContentAssetEntity.prototype, "key", void 0);
|
|
2746
|
+
__decorate([
|
|
2747
|
+
Column({ type: 'varchar', nullable: true })
|
|
2748
|
+
//#endregion
|
|
2749
|
+
,
|
|
2750
|
+
__metadata("design:type", String)
|
|
2751
|
+
], TaonCmsContentAssetEntity.prototype, "originalFilename", void 0);
|
|
2752
|
+
__decorate([
|
|
2753
|
+
Column({ type: 'varchar', nullable: true })
|
|
2754
|
+
//#endregion
|
|
2755
|
+
,
|
|
2756
|
+
__metadata("design:type", String)
|
|
2757
|
+
], TaonCmsContentAssetEntity.prototype, "mimeType", void 0);
|
|
2758
|
+
__decorate([
|
|
2759
|
+
Column({ type: 'integer', nullable: true })
|
|
2093
2760
|
//#endregion
|
|
2094
2761
|
,
|
|
2095
2762
|
__metadata("design:type", Number)
|
|
2096
|
-
],
|
|
2763
|
+
], TaonCmsContentAssetEntity.prototype, "size", void 0);
|
|
2097
2764
|
__decorate([
|
|
2098
|
-
Column({ type: 'integer' })
|
|
2765
|
+
Column({ type: 'integer', nullable: true })
|
|
2099
2766
|
//#endregion
|
|
2100
2767
|
,
|
|
2101
2768
|
__metadata("design:type", Number)
|
|
2102
|
-
],
|
|
2103
|
-
|
|
2769
|
+
], TaonCmsContentAssetEntity.prototype, "durationSeconds", void 0);
|
|
2770
|
+
__decorate([
|
|
2771
|
+
Column({ type: 'simple-json', nullable: true })
|
|
2772
|
+
//#endregion
|
|
2773
|
+
,
|
|
2774
|
+
__metadata("design:type", Object)
|
|
2775
|
+
], TaonCmsContentAssetEntity.prototype, "metadata", void 0);
|
|
2776
|
+
__decorate([
|
|
2777
|
+
Column({ type: 'datetime' })
|
|
2778
|
+
//#endregion
|
|
2779
|
+
,
|
|
2780
|
+
__metadata("design:type", Date)
|
|
2781
|
+
], TaonCmsContentAssetEntity.prototype, "createdAt", void 0);
|
|
2782
|
+
TaonCmsContentAssetEntity = __decorate([
|
|
2104
2783
|
TaonEntity({
|
|
2105
|
-
className: '
|
|
2784
|
+
className: 'TaonCmsContentAssetEntity',
|
|
2106
2785
|
createTable: true,
|
|
2107
2786
|
})
|
|
2108
|
-
],
|
|
2787
|
+
], TaonCmsContentAssetEntity);
|
|
2109
2788
|
|
|
2110
2789
|
//#endregion
|
|
2111
|
-
let
|
|
2790
|
+
let TaonCmsContentAssetRepository = class TaonCmsContentAssetRepository extends TaonBaseRepository {
|
|
2112
2791
|
constructor() {
|
|
2113
2792
|
super(...arguments);
|
|
2114
|
-
this.entityClassResolveFn = () =>
|
|
2793
|
+
this.entityClassResolveFn = () => TaonCmsContentAssetEntity;
|
|
2115
2794
|
}
|
|
2116
2795
|
/**
|
|
2117
2796
|
* TODO remove this demo example method
|
|
@@ -2127,19 +2806,19 @@ let TaonCmsContentTagRepository = class TaonCmsContentTagRepository extends Taon
|
|
|
2127
2806
|
//#endregion
|
|
2128
2807
|
}
|
|
2129
2808
|
};
|
|
2130
|
-
|
|
2809
|
+
TaonCmsContentAssetRepository = __decorate([
|
|
2131
2810
|
TaonRepository({
|
|
2132
|
-
className: '
|
|
2811
|
+
className: 'TaonCmsContentAssetRepository',
|
|
2133
2812
|
})
|
|
2134
|
-
],
|
|
2813
|
+
], TaonCmsContentAssetRepository);
|
|
2135
2814
|
|
|
2136
|
-
var
|
|
2815
|
+
var TaonCmsContentAssetController_1;
|
|
2137
2816
|
//#endregion
|
|
2138
|
-
let
|
|
2817
|
+
let TaonCmsContentAssetController = TaonCmsContentAssetController_1 = class TaonCmsContentAssetController extends TaonBaseCrudController {
|
|
2139
2818
|
constructor() {
|
|
2140
2819
|
super(...arguments);
|
|
2141
|
-
this.entityClassResolveFn = () =>
|
|
2142
|
-
this.
|
|
2820
|
+
this.entityClassResolveFn = () => TaonCmsContentAssetEntity;
|
|
2821
|
+
this.taonCmsContentAssetRepository = this.injectCustomRepo(TaonCmsContentAssetRepository);
|
|
2143
2822
|
//#endregion
|
|
2144
2823
|
}
|
|
2145
2824
|
//#region methods & getters / hello world
|
|
@@ -2150,8 +2829,8 @@ let TaonCmsContentTagController = TaonCmsContentTagController_1 = class TaonCmsC
|
|
|
2150
2829
|
//#region @websqlFunc
|
|
2151
2830
|
return async (req, res) => {
|
|
2152
2831
|
const numOfEntities = await this.db.count();
|
|
2153
|
-
const numberOfEvenEntities = await this.
|
|
2154
|
-
return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(
|
|
2832
|
+
const numberOfEvenEntities = await this.taonCmsContentAssetRepository.countEntitesWithEvenId();
|
|
2833
|
+
return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsContentAssetController_1)}
|
|
2155
2834
|
controller.. ${numOfEntities} entites in db..
|
|
2156
2835
|
${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)
|
|
2157
2836
|
`;
|
|
@@ -2165,102 +2844,124 @@ __decorate([
|
|
|
2165
2844
|
__metadata("design:type", Function),
|
|
2166
2845
|
__metadata("design:paramtypes", [String]),
|
|
2167
2846
|
__metadata("design:returntype", Object)
|
|
2168
|
-
],
|
|
2169
|
-
|
|
2847
|
+
], TaonCmsContentAssetController.prototype, "helloWord", null);
|
|
2848
|
+
TaonCmsContentAssetController = TaonCmsContentAssetController_1 = __decorate([
|
|
2170
2849
|
TaonController({
|
|
2171
|
-
className: '
|
|
2850
|
+
className: 'TaonCmsContentAssetController',
|
|
2172
2851
|
allowedMethods: []
|
|
2173
2852
|
})
|
|
2174
|
-
],
|
|
2853
|
+
], TaonCmsContentAssetController);
|
|
2175
2854
|
|
|
2176
2855
|
//#endregion
|
|
2177
|
-
let
|
|
2178
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
2179
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
2856
|
+
let TaonCmsContentAssetProvider = class TaonCmsContentAssetProvider extends TaonBaseProvider {
|
|
2857
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2858
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetProvider }); }
|
|
2180
2859
|
};
|
|
2181
|
-
|
|
2860
|
+
TaonCmsContentAssetProvider = __decorate([
|
|
2182
2861
|
TaonProvider({
|
|
2183
|
-
className: '
|
|
2862
|
+
className: 'TaonCmsContentAssetProvider',
|
|
2184
2863
|
})
|
|
2185
2864
|
//#region @browser
|
|
2186
|
-
],
|
|
2187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
2865
|
+
], TaonCmsContentAssetProvider);
|
|
2866
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetProvider, decorators: [{
|
|
2188
2867
|
type: Injectable
|
|
2189
2868
|
}] });
|
|
2190
2869
|
|
|
2191
2870
|
//#endregion
|
|
2192
|
-
let
|
|
2871
|
+
let TaonCmsContentAssetMiddleware = class TaonCmsContentAssetMiddleware extends TaonBaseMiddleware {
|
|
2193
2872
|
};
|
|
2194
|
-
|
|
2873
|
+
TaonCmsContentAssetMiddleware = __decorate([
|
|
2195
2874
|
TaonMiddleware({
|
|
2196
|
-
className: '
|
|
2875
|
+
className: 'TaonCmsContentAssetMiddleware',
|
|
2197
2876
|
})
|
|
2198
|
-
],
|
|
2877
|
+
], TaonCmsContentAssetMiddleware);
|
|
2199
2878
|
|
|
2200
2879
|
//#endregion
|
|
2201
|
-
let
|
|
2880
|
+
let TaonCmsContentAssetSubscriber = class TaonCmsContentAssetSubscriber extends TaonBaseSubscriberForEntity {
|
|
2202
2881
|
constructor() {
|
|
2203
2882
|
super(...arguments);
|
|
2204
|
-
this.
|
|
2883
|
+
this.taonCmsContentAssetProvider = this.injectProvider(TaonCmsContentAssetProvider);
|
|
2205
2884
|
}
|
|
2206
2885
|
listenTo() {
|
|
2207
|
-
return
|
|
2886
|
+
return TaonCmsContentAssetEntity;
|
|
2208
2887
|
}
|
|
2209
2888
|
};
|
|
2210
|
-
|
|
2889
|
+
TaonCmsContentAssetSubscriber = __decorate([
|
|
2211
2890
|
TaonSubscriber({
|
|
2212
|
-
className: '
|
|
2891
|
+
className: 'TaonCmsContentAssetSubscriber',
|
|
2213
2892
|
// allowedEvents: ['afterUpdate'],
|
|
2214
2893
|
})
|
|
2215
|
-
],
|
|
2894
|
+
], TaonCmsContentAssetSubscriber);
|
|
2216
2895
|
|
|
2217
2896
|
//#region imports
|
|
2218
2897
|
//#endregion
|
|
2219
|
-
const
|
|
2220
|
-
contextName: '
|
|
2898
|
+
const TaonCmsContentAssetAbstractContext = createContext(() => ({
|
|
2899
|
+
contextName: 'TaonCmsContentAssetAbstractContext',
|
|
2221
2900
|
abstract: true,
|
|
2222
2901
|
contexts: { TaonBaseContext },
|
|
2223
|
-
entities: {
|
|
2224
|
-
controllers: {
|
|
2225
|
-
repositories: {
|
|
2226
|
-
providers: {
|
|
2227
|
-
middlewares: {
|
|
2228
|
-
subscribers: {
|
|
2902
|
+
entities: { TaonCmsContentAssetEntity },
|
|
2903
|
+
controllers: { TaonCmsContentAssetController },
|
|
2904
|
+
repositories: { TaonCmsContentAssetRepository },
|
|
2905
|
+
providers: { TaonCmsContentAssetProvider },
|
|
2906
|
+
middlewares: { TaonCmsContentAssetMiddleware },
|
|
2907
|
+
subscribers: { TaonCmsContentAssetSubscriber },
|
|
2229
2908
|
}));
|
|
2230
2909
|
|
|
2231
2910
|
//#endregion
|
|
2232
|
-
let
|
|
2911
|
+
let TaonCmsContentPermissionEntity = class TaonCmsContentPermissionEntity extends TaonBaseEntity {
|
|
2233
2912
|
};
|
|
2234
2913
|
__decorate([
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
__metadata("design:type", String)
|
|
2239
|
-
], TaonCmsTagEntity.prototype, "name", void 0);
|
|
2914
|
+
PrimaryGeneratedColumn(),
|
|
2915
|
+
__metadata("design:type", Number)
|
|
2916
|
+
], TaonCmsContentPermissionEntity.prototype, "id", void 0);
|
|
2240
2917
|
__decorate([
|
|
2241
|
-
Column({ type: '
|
|
2242
|
-
|
|
2243
|
-
|
|
2918
|
+
Column({ type: 'integer', default: 0 }),
|
|
2919
|
+
__metadata("design:type", Number)
|
|
2920
|
+
], TaonCmsContentPermissionEntity.prototype, "version", void 0);
|
|
2921
|
+
__decorate([
|
|
2922
|
+
Column({ type: 'integer' }),
|
|
2923
|
+
__metadata("design:type", Number)
|
|
2924
|
+
], TaonCmsContentPermissionEntity.prototype, "contentId", void 0);
|
|
2925
|
+
__decorate([
|
|
2926
|
+
Column({ type: 'varchar' }),
|
|
2244
2927
|
__metadata("design:type", String)
|
|
2245
|
-
],
|
|
2928
|
+
], TaonCmsContentPermissionEntity.prototype, "type", void 0);
|
|
2246
2929
|
__decorate([
|
|
2247
|
-
Column({ type: '
|
|
2248
|
-
|
|
2249
|
-
|
|
2930
|
+
Column({ type: 'integer', nullable: true }),
|
|
2931
|
+
__metadata("design:type", Number)
|
|
2932
|
+
], TaonCmsContentPermissionEntity.prototype, "permissionId", void 0);
|
|
2933
|
+
__decorate([
|
|
2934
|
+
Column({ type: 'integer', nullable: true }),
|
|
2935
|
+
__metadata("design:type", Number)
|
|
2936
|
+
], TaonCmsContentPermissionEntity.prototype, "roleId", void 0);
|
|
2937
|
+
__decorate([
|
|
2938
|
+
Column({ type: 'integer', nullable: true }),
|
|
2939
|
+
__metadata("design:type", Number)
|
|
2940
|
+
], TaonCmsContentPermissionEntity.prototype, "productId", void 0);
|
|
2941
|
+
__decorate([
|
|
2942
|
+
Column({ type: 'varchar', nullable: true }),
|
|
2250
2943
|
__metadata("design:type", String)
|
|
2251
|
-
],
|
|
2252
|
-
|
|
2944
|
+
], TaonCmsContentPermissionEntity.prototype, "stripePriceId", void 0);
|
|
2945
|
+
__decorate([
|
|
2946
|
+
Column({ type: 'simple-json', nullable: true }),
|
|
2947
|
+
__metadata("design:type", Object)
|
|
2948
|
+
], TaonCmsContentPermissionEntity.prototype, "config", void 0);
|
|
2949
|
+
__decorate([
|
|
2950
|
+
Column({ type: 'datetime' }),
|
|
2951
|
+
__metadata("design:type", Date)
|
|
2952
|
+
], TaonCmsContentPermissionEntity.prototype, "createdAt", void 0);
|
|
2953
|
+
TaonCmsContentPermissionEntity = __decorate([
|
|
2253
2954
|
TaonEntity({
|
|
2254
|
-
className: '
|
|
2955
|
+
className: 'TaonCmsContentPermissionEntity',
|
|
2255
2956
|
createTable: true,
|
|
2256
2957
|
})
|
|
2257
|
-
],
|
|
2958
|
+
], TaonCmsContentPermissionEntity);
|
|
2258
2959
|
|
|
2259
2960
|
//#endregion
|
|
2260
|
-
let
|
|
2961
|
+
let TaonCmsContentPermissionRepository = class TaonCmsContentPermissionRepository extends TaonBaseRepository {
|
|
2261
2962
|
constructor() {
|
|
2262
2963
|
super(...arguments);
|
|
2263
|
-
this.entityClassResolveFn = () =>
|
|
2964
|
+
this.entityClassResolveFn = () => TaonCmsContentPermissionEntity;
|
|
2264
2965
|
}
|
|
2265
2966
|
/**
|
|
2266
2967
|
* TODO remove this demo example method
|
|
@@ -2276,19 +2977,19 @@ let TaonCmsTagRepository = class TaonCmsTagRepository extends TaonBaseRepository
|
|
|
2276
2977
|
//#endregion
|
|
2277
2978
|
}
|
|
2278
2979
|
};
|
|
2279
|
-
|
|
2980
|
+
TaonCmsContentPermissionRepository = __decorate([
|
|
2280
2981
|
TaonRepository({
|
|
2281
|
-
className: '
|
|
2982
|
+
className: 'TaonCmsContentPermissionRepository',
|
|
2282
2983
|
})
|
|
2283
|
-
],
|
|
2984
|
+
], TaonCmsContentPermissionRepository);
|
|
2284
2985
|
|
|
2285
|
-
var
|
|
2986
|
+
var TaonCmsContentPermissionController_1;
|
|
2286
2987
|
//#endregion
|
|
2287
|
-
let
|
|
2988
|
+
let TaonCmsContentPermissionController = TaonCmsContentPermissionController_1 = class TaonCmsContentPermissionController extends TaonBaseCrudController {
|
|
2288
2989
|
constructor() {
|
|
2289
2990
|
super(...arguments);
|
|
2290
|
-
this.entityClassResolveFn = () =>
|
|
2291
|
-
this.
|
|
2991
|
+
this.entityClassResolveFn = () => TaonCmsContentPermissionEntity;
|
|
2992
|
+
this.taonCmsContentPermissionRepository = this.injectCustomRepo(TaonCmsContentPermissionRepository);
|
|
2292
2993
|
//#endregion
|
|
2293
2994
|
}
|
|
2294
2995
|
//#region methods & getters / hello world
|
|
@@ -2299,8 +3000,8 @@ let TaonCmsTagController = TaonCmsTagController_1 = class TaonCmsTagController e
|
|
|
2299
3000
|
//#region @websqlFunc
|
|
2300
3001
|
return async (req, res) => {
|
|
2301
3002
|
const numOfEntities = await this.db.count();
|
|
2302
|
-
const numberOfEvenEntities = await this.
|
|
2303
|
-
return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(
|
|
3003
|
+
const numberOfEvenEntities = await this.taonCmsContentPermissionRepository.countEntitesWithEvenId();
|
|
3004
|
+
return `Hello ${yourName || 'world'} from ${ClassHelpers.getName(TaonCmsContentPermissionController_1)}
|
|
2304
3005
|
controller.. ${numOfEntities} entites in db..
|
|
2305
3006
|
${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)
|
|
2306
3007
|
`;
|
|
@@ -2314,67 +3015,67 @@ __decorate([
|
|
|
2314
3015
|
__metadata("design:type", Function),
|
|
2315
3016
|
__metadata("design:paramtypes", [String]),
|
|
2316
3017
|
__metadata("design:returntype", Object)
|
|
2317
|
-
],
|
|
2318
|
-
|
|
3018
|
+
], TaonCmsContentPermissionController.prototype, "helloWord", null);
|
|
3019
|
+
TaonCmsContentPermissionController = TaonCmsContentPermissionController_1 = __decorate([
|
|
2319
3020
|
TaonController({
|
|
2320
|
-
className: '
|
|
3021
|
+
className: 'TaonCmsContentPermissionController',
|
|
2321
3022
|
allowedMethods: []
|
|
2322
3023
|
})
|
|
2323
|
-
],
|
|
3024
|
+
], TaonCmsContentPermissionController);
|
|
2324
3025
|
|
|
2325
3026
|
//#endregion
|
|
2326
|
-
let
|
|
2327
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
2328
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
3027
|
+
let TaonCmsContentPermissionProvider = class TaonCmsContentPermissionProvider extends TaonBaseProvider {
|
|
3028
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3029
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionProvider }); }
|
|
2329
3030
|
};
|
|
2330
|
-
|
|
3031
|
+
TaonCmsContentPermissionProvider = __decorate([
|
|
2331
3032
|
TaonProvider({
|
|
2332
|
-
className: '
|
|
3033
|
+
className: 'TaonCmsContentPermissionProvider',
|
|
2333
3034
|
})
|
|
2334
3035
|
//#region @browser
|
|
2335
|
-
],
|
|
2336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type:
|
|
3036
|
+
], TaonCmsContentPermissionProvider);
|
|
3037
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionProvider, decorators: [{
|
|
2337
3038
|
type: Injectable
|
|
2338
3039
|
}] });
|
|
2339
3040
|
|
|
2340
3041
|
//#endregion
|
|
2341
|
-
let
|
|
3042
|
+
let TaonCmsContentPermissionMiddleware = class TaonCmsContentPermissionMiddleware extends TaonBaseMiddleware {
|
|
2342
3043
|
};
|
|
2343
|
-
|
|
3044
|
+
TaonCmsContentPermissionMiddleware = __decorate([
|
|
2344
3045
|
TaonMiddleware({
|
|
2345
|
-
className: '
|
|
3046
|
+
className: 'TaonCmsContentPermissionMiddleware',
|
|
2346
3047
|
})
|
|
2347
|
-
],
|
|
3048
|
+
], TaonCmsContentPermissionMiddleware);
|
|
2348
3049
|
|
|
2349
3050
|
//#endregion
|
|
2350
|
-
let
|
|
3051
|
+
let TaonCmsContentPermissionSubscriber = class TaonCmsContentPermissionSubscriber extends TaonBaseSubscriberForEntity {
|
|
2351
3052
|
constructor() {
|
|
2352
3053
|
super(...arguments);
|
|
2353
|
-
this.
|
|
3054
|
+
this.taonCmsContentPermissionProvider = this.injectProvider(TaonCmsContentPermissionProvider);
|
|
2354
3055
|
}
|
|
2355
3056
|
listenTo() {
|
|
2356
|
-
return
|
|
3057
|
+
return TaonCmsContentPermissionEntity;
|
|
2357
3058
|
}
|
|
2358
3059
|
};
|
|
2359
|
-
|
|
3060
|
+
TaonCmsContentPermissionSubscriber = __decorate([
|
|
2360
3061
|
TaonSubscriber({
|
|
2361
|
-
className: '
|
|
3062
|
+
className: 'TaonCmsContentPermissionSubscriber',
|
|
2362
3063
|
// allowedEvents: ['afterUpdate'],
|
|
2363
3064
|
})
|
|
2364
|
-
],
|
|
3065
|
+
], TaonCmsContentPermissionSubscriber);
|
|
2365
3066
|
|
|
2366
3067
|
//#region imports
|
|
2367
3068
|
//#endregion
|
|
2368
|
-
const
|
|
2369
|
-
contextName: '
|
|
3069
|
+
const TaonCmsContentPermissionAbstractContext = createContext(() => ({
|
|
3070
|
+
contextName: 'TaonCmsContentPermissionAbstractContext',
|
|
2370
3071
|
abstract: true,
|
|
2371
3072
|
contexts: { TaonBaseContext },
|
|
2372
|
-
entities: {
|
|
2373
|
-
controllers: {
|
|
2374
|
-
repositories: {
|
|
2375
|
-
providers: {
|
|
2376
|
-
middlewares: {
|
|
2377
|
-
subscribers: {
|
|
3073
|
+
entities: { TaonCmsContentPermissionEntity },
|
|
3074
|
+
controllers: { TaonCmsContentPermissionController },
|
|
3075
|
+
repositories: { TaonCmsContentPermissionRepository },
|
|
3076
|
+
providers: { TaonCmsContentPermissionProvider },
|
|
3077
|
+
middlewares: { TaonCmsContentPermissionMiddleware },
|
|
3078
|
+
subscribers: { TaonCmsContentPermissionSubscriber },
|
|
2378
3079
|
}));
|
|
2379
3080
|
|
|
2380
3081
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
@@ -2390,22 +3091,79 @@ const TaonCmsAbstractContext = createContext(() => ({
|
|
|
2390
3091
|
TaonCmsContentRevisionAbstractContext,
|
|
2391
3092
|
TaonCmsContentTagAbstractContext,
|
|
2392
3093
|
TaonCmsTagAbstractContext,
|
|
3094
|
+
TaonSessionAbstractContext,
|
|
3095
|
+
},
|
|
3096
|
+
}));
|
|
3097
|
+
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
3098
|
+
|
|
3099
|
+
;
|
|
3100
|
+
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
3101
|
+
|
|
3102
|
+
class TaonCmsAssetsBackofficeComponent {
|
|
3103
|
+
constructor() {
|
|
3104
|
+
this.assets = [
|
|
3105
|
+
{ id: 1, name: 'Sample image.jpg' },
|
|
3106
|
+
{ id: 2, name: 'Sample document.pdf' },
|
|
3107
|
+
];
|
|
3108
|
+
this.columns = [
|
|
3109
|
+
{ header: 'ID', field: 'id', sortable: true },
|
|
3110
|
+
{ header: 'Asset Name', field: 'name', sortable: true },
|
|
3111
|
+
];
|
|
3112
|
+
}
|
|
3113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsAssetsBackofficeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonCmsAssetsBackofficeComponent, isStandalone: true, selector: "taon-cms-assets-backoffice", ngImport: i0, template: `
|
|
3115
|
+
<h1>CMS assets</h1>
|
|
3116
|
+
<mtx-grid [data]="assets" [columns]="columns"></mtx-grid>
|
|
3117
|
+
`, isInline: true, dependencies: [{ kind: "component", type: 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", "columnMenuButtonFontIcon", "columnMenuButtonSvgIcon", "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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3118
|
+
}
|
|
3119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsAssetsBackofficeComponent, decorators: [{
|
|
3120
|
+
type: Component,
|
|
3121
|
+
args: [{
|
|
3122
|
+
selector: 'taon-cms-assets-backoffice',
|
|
3123
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3124
|
+
imports: [MtxGrid],
|
|
3125
|
+
template: `
|
|
3126
|
+
<h1>CMS assets</h1>
|
|
3127
|
+
<mtx-grid [data]="assets" [columns]="columns"></mtx-grid>
|
|
3128
|
+
`,
|
|
3129
|
+
}]
|
|
3130
|
+
}] });
|
|
3131
|
+
|
|
3132
|
+
var taonCmsAssetsBackoffice_component = /*#__PURE__*/Object.freeze({
|
|
3133
|
+
__proto__: null,
|
|
3134
|
+
TaonCmsAssetsBackofficeComponent: TaonCmsAssetsBackofficeComponent
|
|
3135
|
+
});
|
|
3136
|
+
|
|
3137
|
+
const TaonCmsAssetsBackofficeRoutes = [
|
|
3138
|
+
{
|
|
3139
|
+
path: '',
|
|
3140
|
+
loadComponent: () => Promise.resolve().then(function () { return taonCmsAssetsBackoffice_component; }).then(m => m.TaonCmsAssetsBackofficeComponent),
|
|
2393
3141
|
},
|
|
2394
|
-
|
|
2395
|
-
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
3142
|
+
];
|
|
2396
3143
|
|
|
2397
|
-
|
|
2398
|
-
|
|
3144
|
+
var taonCmsAssetsBackoffice_routes = /*#__PURE__*/Object.freeze({
|
|
3145
|
+
__proto__: null,
|
|
3146
|
+
TaonCmsAssetsBackofficeRoutes: TaonCmsAssetsBackofficeRoutes
|
|
3147
|
+
});
|
|
2399
3148
|
|
|
2400
3149
|
//#region imports
|
|
2401
3150
|
//#endregion
|
|
2402
3151
|
class TaonCmsBackofficeComponent {
|
|
3152
|
+
constructor() {
|
|
3153
|
+
this.componentLoaded = false;
|
|
3154
|
+
}
|
|
3155
|
+
onRouteActivate(component) {
|
|
3156
|
+
this.componentLoaded = !!component;
|
|
3157
|
+
}
|
|
3158
|
+
onRouteDeactivate(component) {
|
|
3159
|
+
this.componentLoaded = false;
|
|
3160
|
+
}
|
|
2403
3161
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsBackofficeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2404
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsBackofficeComponent, isStandalone: true, selector: "app-taon-cms-backoffice", ngImport: i0, template: "@if (!componentLoaded) {\n <code>\n In CMS you can manage content and settings for your website.\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2405
3163
|
}
|
|
2406
3164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsBackofficeComponent, decorators: [{
|
|
2407
3165
|
type: Component,
|
|
2408
|
-
args: [{ selector: 'app-taon-cms-backoffice', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, RouterOutlet], template: "<router-outlet></router-outlet>\n
|
|
3166
|
+
args: [{ selector: 'app-taon-cms-backoffice', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, RouterOutlet], template: "@if (!componentLoaded) {\n <code>\n In CMS you can manage content and settings for your website.\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n", styles: [":host{display:block}\n"] }]
|
|
2409
3167
|
}] });
|
|
2410
3168
|
|
|
2411
3169
|
var taonCmsBackoffice_component = /*#__PURE__*/Object.freeze({
|
|
@@ -2419,14 +3177,28 @@ const TaonCmsBackofficeRoutes = [
|
|
|
2419
3177
|
path: '',
|
|
2420
3178
|
loadComponent: () => Promise.resolve().then(function () { return taonCmsBackoffice_component; }).then(m => m.TaonCmsBackofficeComponent),
|
|
2421
3179
|
children: [
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
3180
|
+
adminLazyRoute({
|
|
3181
|
+
path: 'posts',
|
|
3182
|
+
menuItem: 'Posts',
|
|
3183
|
+
expandable: true,
|
|
3184
|
+
icon: 'edit',
|
|
3185
|
+
loader: () => Promise.resolve().then(function () { return index$1; }).then(m => m.TaonCmsPostsBackofficeRoutes),
|
|
3186
|
+
}),
|
|
3187
|
+
adminLazyRoute({
|
|
3188
|
+
path: 'assets',
|
|
3189
|
+
menuItem: 'Assets',
|
|
3190
|
+
expandable: false,
|
|
3191
|
+
icon: 'perm_media',
|
|
3192
|
+
loader: () => Promise.resolve().then(function () { return taonCmsAssetsBackoffice_routes; }).then(m => m.TaonCmsAssetsBackofficeRoutes),
|
|
3193
|
+
}),
|
|
3194
|
+
// adminLazyRoute({
|
|
3195
|
+
// path: 'dashboard',
|
|
3196
|
+
// menuItem: 'Dashboard',
|
|
3197
|
+
// icon: 'dashboard',
|
|
3198
|
+
// expandable: false,
|
|
3199
|
+
// loader: () =>
|
|
3200
|
+
// import('./anothermodule.routes').then(m => m.DashboardRoutes),
|
|
3201
|
+
// }),
|
|
2430
3202
|
],
|
|
2431
3203
|
},
|
|
2432
3204
|
];
|
|
@@ -2445,9 +3217,6 @@ class TaonCmsCategoryApiService extends TaonBaseAngularService {
|
|
|
2445
3217
|
get allMyEntities$() {
|
|
2446
3218
|
return this.taonCmsCategoryController.getAll().request().observable.pipe(map(res => res.body?.json));
|
|
2447
3219
|
}
|
|
2448
|
-
helloWorld(user) {
|
|
2449
|
-
return this.taonCmsCategoryController.helloWord(user).request().observable.pipe(map(res => res.responseText));
|
|
2450
|
-
}
|
|
2451
3220
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsCategoryApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2452
3221
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsCategoryApiService }); }
|
|
2453
3222
|
}
|
|
@@ -2513,17 +3282,63 @@ var TaonCmsCommentUtils;
|
|
|
2513
3282
|
TaonCmsCommentUtils.isActive = isActive;
|
|
2514
3283
|
})(TaonCmsCommentUtils || (TaonCmsCommentUtils = {}));
|
|
2515
3284
|
|
|
3285
|
+
//#region imports
|
|
3286
|
+
//#endregion
|
|
2516
3287
|
class TaonCmsContentApiService extends TaonBaseAngularService {
|
|
2517
3288
|
constructor() {
|
|
2518
3289
|
super(...arguments);
|
|
2519
3290
|
this.taonCmsContentController = this.injectController(TaonCmsContentController);
|
|
3291
|
+
this.taonCmsContentStorageController = this.injectController(TaonCmsContentStorageController);
|
|
3292
|
+
}
|
|
3293
|
+
async uploadMedia(file) {
|
|
3294
|
+
const formData = new FormData();
|
|
3295
|
+
formData.append('file', file);
|
|
3296
|
+
const response = await this.taonCmsContentStorageController
|
|
3297
|
+
.uploadFormDataToServer(formData)
|
|
3298
|
+
.request();
|
|
3299
|
+
const objects = response.body.json;
|
|
3300
|
+
if (objects.length !== 1 || !objects[0].key) {
|
|
3301
|
+
throw new Error('The upload did not return a media key.');
|
|
3302
|
+
}
|
|
3303
|
+
return objects[0];
|
|
3304
|
+
}
|
|
3305
|
+
createContent(input) {
|
|
3306
|
+
return this.taonCmsContentController.createContent(input)
|
|
3307
|
+
.request().observable.pipe(map(res => res.body.json));
|
|
3308
|
+
}
|
|
3309
|
+
updateContent(id, input) {
|
|
3310
|
+
return this.taonCmsContentController.updateContent(id, input)
|
|
3311
|
+
.request().observable.pipe(map(res => res.body.json));
|
|
3312
|
+
}
|
|
3313
|
+
deleteContent(id, expectedVersion) {
|
|
3314
|
+
return this.taonCmsContentController.deleteContent(id, expectedVersion)
|
|
3315
|
+
.request().observable.pipe(map(res => res.body.json));
|
|
3316
|
+
}
|
|
3317
|
+
restoreContent(id, input) {
|
|
3318
|
+
return this.taonCmsContentController.restoreContent(id, input)
|
|
3319
|
+
.request().observable.pipe(map(res => res.body.json));
|
|
3320
|
+
}
|
|
3321
|
+
listRevisions(id) {
|
|
3322
|
+
return this.taonCmsContentController.listRevisions(id)
|
|
3323
|
+
.request().observable.pipe(map(res => res.body.json));
|
|
3324
|
+
}
|
|
3325
|
+
listRelatedPosts(id) {
|
|
3326
|
+
return this.taonCmsContentController.listRelatedPosts(id)
|
|
3327
|
+
.request().observable.pipe(map(res => res.body.json));
|
|
3328
|
+
}
|
|
3329
|
+
listPermissions(id) {
|
|
3330
|
+
return this.taonCmsContentController.listPermissions(id)
|
|
3331
|
+
.request().observable.pipe(map(res => res.body.json));
|
|
3332
|
+
}
|
|
3333
|
+
addRelatedPost(id, relatedPostId, expectedVersion) {
|
|
3334
|
+
return this.taonCmsContentController.addRelatedPost(id, relatedPostId, expectedVersion).request().observable.pipe(map(res => res.body.json));
|
|
3335
|
+
}
|
|
3336
|
+
deleteRelatedPost(id, relatedPostId, expectedVersion) {
|
|
3337
|
+
return this.taonCmsContentController.deleteRelatedPost(id, relatedPostId, expectedVersion).request().observable.pipe(map(res => res.body.json));
|
|
2520
3338
|
}
|
|
2521
3339
|
get allMyEntities$() {
|
|
2522
3340
|
return this.taonCmsContentController.getAll().request().observable.pipe(map(res => res.body?.json));
|
|
2523
3341
|
}
|
|
2524
|
-
helloWorld(user) {
|
|
2525
|
-
return this.taonCmsContentController.helloWord(user).request().observable.pipe(map(res => res.responseText));
|
|
2526
|
-
}
|
|
2527
3342
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2528
3343
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentApiService }); }
|
|
2529
3344
|
}
|
|
@@ -2531,18 +3346,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
2531
3346
|
type: Injectable
|
|
2532
3347
|
}] });
|
|
2533
3348
|
|
|
3349
|
+
class TaonCmsContentConfigService extends TaonBaseAngularService {
|
|
3350
|
+
constructor() {
|
|
3351
|
+
super(...arguments);
|
|
3352
|
+
this.taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);
|
|
3353
|
+
}
|
|
3354
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3355
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentConfigService }); }
|
|
3356
|
+
}
|
|
3357
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentConfigService, decorators: [{
|
|
3358
|
+
type: Injectable
|
|
3359
|
+
}] });
|
|
3360
|
+
|
|
2534
3361
|
const TaonCmsContentDefaultsValues = {
|
|
2535
3362
|
description: '',
|
|
2536
3363
|
version: 0,
|
|
2537
3364
|
id: void 0,
|
|
3365
|
+
type: TaonCmsContentType.Normal,
|
|
3366
|
+
videoKey: null,
|
|
3367
|
+
audioKey: null,
|
|
3368
|
+
attachmentKey: null,
|
|
2538
3369
|
};
|
|
2539
3370
|
|
|
2540
|
-
var TaonCmsContentState;
|
|
2541
|
-
(function (TaonCmsContentState) {
|
|
2542
|
-
TaonCmsContentState["Active"] = "active";
|
|
2543
|
-
TaonCmsContentState["Inactive"] = "inactive";
|
|
2544
|
-
})(TaonCmsContentState || (TaonCmsContentState = {}));
|
|
2545
|
-
|
|
2546
3371
|
var TaonCmsContentUtils;
|
|
2547
3372
|
(function (TaonCmsContentUtils) {
|
|
2548
3373
|
function isActive(state) {
|
|
@@ -2630,13 +3455,20 @@ var TaonCmsContentPermissionUtils;
|
|
|
2630
3455
|
class TaonCmsContentRevisionApiService extends TaonBaseAngularService {
|
|
2631
3456
|
constructor() {
|
|
2632
3457
|
super(...arguments);
|
|
3458
|
+
this.contentController = this.injectController(TaonCmsContentController);
|
|
2633
3459
|
this.taonCmsContentRevisionController = this.injectController(TaonCmsContentRevisionController);
|
|
2634
3460
|
}
|
|
2635
|
-
|
|
2636
|
-
return this.
|
|
3461
|
+
listRevisions(id) {
|
|
3462
|
+
return this.contentController.listRevisions(id)
|
|
3463
|
+
.request().observable.pipe(map(res => res.body.json));
|
|
2637
3464
|
}
|
|
2638
|
-
|
|
2639
|
-
return this.
|
|
3465
|
+
restoreContent(id, input) {
|
|
3466
|
+
return this.contentController.restoreContent(id, input)
|
|
3467
|
+
.request().observable.pipe(map(res => res.body.json));
|
|
3468
|
+
}
|
|
3469
|
+
get allMyEntities$() {
|
|
3470
|
+
return this.taonCmsContentRevisionController.getAll()
|
|
3471
|
+
.request().observable.pipe(map(res => res.body?.json));
|
|
2640
3472
|
}
|
|
2641
3473
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2642
3474
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionApiService }); }
|
|
@@ -2673,9 +3505,6 @@ class TaonCmsContentTagApiService extends TaonBaseAngularService {
|
|
|
2673
3505
|
get allMyEntities$() {
|
|
2674
3506
|
return this.taonCmsContentTagController.getAll().request().observable.pipe(map(res => res.body?.json));
|
|
2675
3507
|
}
|
|
2676
|
-
helloWorld(user) {
|
|
2677
|
-
return this.taonCmsContentTagController.helloWord(user).request().observable.pipe(map(res => res.responseText));
|
|
2678
|
-
}
|
|
2679
3508
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2680
3509
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagApiService }); }
|
|
2681
3510
|
}
|
|
@@ -2741,6 +3570,1017 @@ var TaonCmsTagUtils;
|
|
|
2741
3570
|
TaonCmsTagUtils.isActive = isActive;
|
|
2742
3571
|
})(TaonCmsTagUtils || (TaonCmsTagUtils = {}));
|
|
2743
3572
|
|
|
3573
|
+
class TaonCmsEditableDirective {
|
|
3574
|
+
constructor() {
|
|
3575
|
+
this.element = inject(ElementRef)
|
|
3576
|
+
.nativeElement;
|
|
3577
|
+
this.sanitizer = inject(DomSanitizer);
|
|
3578
|
+
this.value = '';
|
|
3579
|
+
this.composing = false;
|
|
3580
|
+
this.taonCmsEditableFormat = 'text';
|
|
3581
|
+
this.taonCmsEditableSingleLine = false;
|
|
3582
|
+
this.taonCmsEditableChange = new EventEmitter();
|
|
3583
|
+
}
|
|
3584
|
+
set taonCmsEditable(value) {
|
|
3585
|
+
if (value === this.value) {
|
|
3586
|
+
return;
|
|
3587
|
+
}
|
|
3588
|
+
this.value = value;
|
|
3589
|
+
this.render();
|
|
3590
|
+
}
|
|
3591
|
+
compositionStart() {
|
|
3592
|
+
this.composing = true;
|
|
3593
|
+
}
|
|
3594
|
+
compositionEnd() {
|
|
3595
|
+
this.composing = false;
|
|
3596
|
+
this.onInput();
|
|
3597
|
+
}
|
|
3598
|
+
onInput() {
|
|
3599
|
+
if (this.composing) {
|
|
3600
|
+
return;
|
|
3601
|
+
}
|
|
3602
|
+
const text = this.element.innerText;
|
|
3603
|
+
this.value =
|
|
3604
|
+
this.taonCmsEditableFormat === 'html'
|
|
3605
|
+
? this.sanitize(this.element.innerHTML)
|
|
3606
|
+
: this.taonCmsEditableSingleLine
|
|
3607
|
+
? text.replace(/\s*\n\s*/g, ' ')
|
|
3608
|
+
: text;
|
|
3609
|
+
// Remember emitted values so Angular does not rewrite the DOM/caret on input.
|
|
3610
|
+
this.taonCmsEditableChange.emit(this.value);
|
|
3611
|
+
}
|
|
3612
|
+
onBlur() {
|
|
3613
|
+
this.onInput();
|
|
3614
|
+
this.render();
|
|
3615
|
+
}
|
|
3616
|
+
onKeydown(event) {
|
|
3617
|
+
if (this.taonCmsEditableSingleLine && event.key === 'Enter') {
|
|
3618
|
+
event.preventDefault();
|
|
3619
|
+
}
|
|
3620
|
+
}
|
|
3621
|
+
onPaste(event) {
|
|
3622
|
+
event.preventDefault();
|
|
3623
|
+
const selection = this.element.ownerDocument.getSelection();
|
|
3624
|
+
if (!selection?.rangeCount || !event.clipboardData) {
|
|
3625
|
+
return;
|
|
3626
|
+
}
|
|
3627
|
+
const range = selection.getRangeAt(0);
|
|
3628
|
+
if (!this.element.contains(range.commonAncestorContainer)) {
|
|
3629
|
+
return;
|
|
3630
|
+
}
|
|
3631
|
+
const pasted = event.clipboardData.getData('text/plain');
|
|
3632
|
+
const text = this.taonCmsEditableSingleLine
|
|
3633
|
+
? pasted.replace(/\s*\n\s*/g, ' ')
|
|
3634
|
+
: pasted;
|
|
3635
|
+
range.deleteContents();
|
|
3636
|
+
const node = this.element.ownerDocument.createTextNode(text);
|
|
3637
|
+
range.insertNode(node);
|
|
3638
|
+
range.setStartAfter(node);
|
|
3639
|
+
range.collapse(true);
|
|
3640
|
+
selection.removeAllRanges();
|
|
3641
|
+
selection.addRange(range);
|
|
3642
|
+
this.onInput();
|
|
3643
|
+
}
|
|
3644
|
+
sanitize(value) {
|
|
3645
|
+
return this.sanitizer.sanitize(SecurityContext.HTML, value) ?? '';
|
|
3646
|
+
}
|
|
3647
|
+
render() {
|
|
3648
|
+
if (this.taonCmsEditableFormat === 'html') {
|
|
3649
|
+
this.element.innerHTML = this.sanitize(this.value);
|
|
3650
|
+
}
|
|
3651
|
+
else {
|
|
3652
|
+
this.element.textContent = this.value;
|
|
3653
|
+
}
|
|
3654
|
+
}
|
|
3655
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsEditableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3656
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TaonCmsEditableDirective, isStandalone: true, selector: "[taonCmsEditable]", inputs: { taonCmsEditableFormat: "taonCmsEditableFormat", taonCmsEditableSingleLine: "taonCmsEditableSingleLine", taonCmsEditable: "taonCmsEditable" }, outputs: { taonCmsEditableChange: "taonCmsEditableChange" }, host: { listeners: { "compositionstart": "compositionStart()", "compositionend": "compositionEnd()", "input": "onInput()", "blur": "onBlur()", "keydown": "onKeydown($event)", "paste": "onPaste($event)" } }, ngImport: i0 }); }
|
|
3657
|
+
}
|
|
3658
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsEditableDirective, decorators: [{
|
|
3659
|
+
type: Directive,
|
|
3660
|
+
args: [{
|
|
3661
|
+
selector: '[taonCmsEditable]',
|
|
3662
|
+
}]
|
|
3663
|
+
}], propDecorators: { taonCmsEditableFormat: [{
|
|
3664
|
+
type: Input
|
|
3665
|
+
}], taonCmsEditableSingleLine: [{
|
|
3666
|
+
type: Input
|
|
3667
|
+
}], taonCmsEditableChange: [{
|
|
3668
|
+
type: Output
|
|
3669
|
+
}], taonCmsEditable: [{
|
|
3670
|
+
type: Input
|
|
3671
|
+
}], compositionStart: [{
|
|
3672
|
+
type: HostListener,
|
|
3673
|
+
args: ['compositionstart']
|
|
3674
|
+
}], compositionEnd: [{
|
|
3675
|
+
type: HostListener,
|
|
3676
|
+
args: ['compositionend']
|
|
3677
|
+
}], onInput: [{
|
|
3678
|
+
type: HostListener,
|
|
3679
|
+
args: ['input']
|
|
3680
|
+
}], onBlur: [{
|
|
3681
|
+
type: HostListener,
|
|
3682
|
+
args: ['blur']
|
|
3683
|
+
}], onKeydown: [{
|
|
3684
|
+
type: HostListener,
|
|
3685
|
+
args: ['keydown', ['$event']]
|
|
3686
|
+
}], onPaste: [{
|
|
3687
|
+
type: HostListener,
|
|
3688
|
+
args: ['paste', ['$event']]
|
|
3689
|
+
}] } });
|
|
3690
|
+
|
|
3691
|
+
class TaonCmsRevisionChooserComponent {
|
|
3692
|
+
constructor() {
|
|
3693
|
+
this.post = inject(MAT_DIALOG_DATA);
|
|
3694
|
+
this.revisions = signal([], ...(ngDevMode ? [{ debugName: "revisions" }] : []));
|
|
3695
|
+
this.selected = signal(null, ...(ngDevMode ? [{ debugName: "selected" }] : []));
|
|
3696
|
+
this.loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
|
|
3697
|
+
this.applying = signal(false, ...(ngDevMode ? [{ debugName: "applying" }] : []));
|
|
3698
|
+
this.error = signal('', ...(ngDevMode ? [{ debugName: "error" }] : []));
|
|
3699
|
+
this.api = inject(TaonCmsContentRevisionApiService);
|
|
3700
|
+
this.ref = inject((MatDialogRef));
|
|
3701
|
+
this.destroyRef = inject(DestroyRef);
|
|
3702
|
+
this.load();
|
|
3703
|
+
}
|
|
3704
|
+
load() {
|
|
3705
|
+
if (this.loading() || this.applying()) {
|
|
3706
|
+
return;
|
|
3707
|
+
}
|
|
3708
|
+
this.selected.set(null);
|
|
3709
|
+
this.loading.set(true);
|
|
3710
|
+
this.error.set('');
|
|
3711
|
+
this.api.listRevisions(this.post.id).pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.loading.set(false))).subscribe({
|
|
3712
|
+
next: revisions => this.revisions.set([...revisions].sort((a, b) => b.revisionNumber - a.revisionNumber)),
|
|
3713
|
+
error: (error) => {
|
|
3714
|
+
console.error('[taon-cms-revision-chooser] Unable to load revisions', error);
|
|
3715
|
+
this.error.set('Revisions could not be loaded. Please try again.');
|
|
3716
|
+
},
|
|
3717
|
+
});
|
|
3718
|
+
}
|
|
3719
|
+
apply() {
|
|
3720
|
+
const revisionNumber = this.selected();
|
|
3721
|
+
if (this.loading() || this.applying()) {
|
|
3722
|
+
return;
|
|
3723
|
+
}
|
|
3724
|
+
if (revisionNumber === null) {
|
|
3725
|
+
this.error.set('Select a revision to restore.');
|
|
3726
|
+
return;
|
|
3727
|
+
}
|
|
3728
|
+
this.applying.set(true);
|
|
3729
|
+
this.error.set('');
|
|
3730
|
+
this.api.restoreContent(this.post.id, {
|
|
3731
|
+
revisionNumber,
|
|
3732
|
+
expectedVersion: this.post.version,
|
|
3733
|
+
}).pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.applying.set(false))).subscribe({
|
|
3734
|
+
next: post => this.ref.close(post),
|
|
3735
|
+
error: (error) => {
|
|
3736
|
+
console.error('[taon-cms-revision-chooser] Unable to restore revision', error);
|
|
3737
|
+
this.error.set('The revision could not be restored. If the post changed, close and ' +
|
|
3738
|
+
'reopen it to load its latest version.');
|
|
3739
|
+
},
|
|
3740
|
+
});
|
|
3741
|
+
}
|
|
3742
|
+
cancel() {
|
|
3743
|
+
if (!this.applying()) {
|
|
3744
|
+
this.ref.close();
|
|
3745
|
+
}
|
|
3746
|
+
}
|
|
3747
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsRevisionChooserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3748
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsRevisionChooserComponent, isStandalone: true, selector: "taon-cms-revision-chooser", providers: [TaonCmsContentRevisionApiService], ngImport: i0, template: "<h2 mat-dialog-title>Restore a revision</h2>\n<mat-dialog-content>\n <p>Restoring replaces the post, including its status, with the selected revision.</p>\n @if (loading()) {\n <p role=\"status\">Loading revisions...</p>\n } @else {\n <mat-radio-group aria-label=\"Post revisions\" [value]=\"selected()\" (change)=\"selected.set($event.value)\" [disabled]=\"applying()\">\n @for (revision of revisions(); track revision.id) {\n <mat-radio-button [value]=\"revision.revisionNumber\" [disabled]=\"!revision.snapshot\">\n <strong>Revision {{ revision.revisionNumber }}</strong>\n <span>{{ revision.createdAt | date: 'medium' }}</span>\n @if (revision.createdByUserId !== null && revision.createdByUserId !== undefined) {\n <span>User {{ revision.createdByUserId }}</span>\n }\n @if (!revision.snapshot) {\n <span>Legacy revision - cannot be restored</span>\n }\n </mat-radio-button>\n } @empty {\n <p>No revisions are available.</p>\n }\n </mat-radio-group>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" [disabled]=\"loading() || applying()\" (click)=\"load()\">Reload revisions</button>\n }\n @if (applying()) {\n <p role=\"status\">Restoring...</p>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" [disabled]=\"applying()\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || applying() || selected() === null\" (click)=\"apply()\">Apply</button>\n</mat-dialog-actions>\n", styles: ["mat-radio-group{display:flex;flex-direction:column;gap:1rem}mat-radio-button span{display:block;font-size:.875rem;opacity:.7}[role=alert]{color:#b3261e}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3749
|
+
}
|
|
3750
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsRevisionChooserComponent, decorators: [{
|
|
3751
|
+
type: Component,
|
|
3752
|
+
args: [{ selector: 'taon-cms-revision-chooser', changeDetection: ChangeDetectionStrategy.OnPush, imports: [DatePipe, MatButtonModule, MatDialogModule, MatRadioModule], providers: [TaonCmsContentRevisionApiService], template: "<h2 mat-dialog-title>Restore a revision</h2>\n<mat-dialog-content>\n <p>Restoring replaces the post, including its status, with the selected revision.</p>\n @if (loading()) {\n <p role=\"status\">Loading revisions...</p>\n } @else {\n <mat-radio-group aria-label=\"Post revisions\" [value]=\"selected()\" (change)=\"selected.set($event.value)\" [disabled]=\"applying()\">\n @for (revision of revisions(); track revision.id) {\n <mat-radio-button [value]=\"revision.revisionNumber\" [disabled]=\"!revision.snapshot\">\n <strong>Revision {{ revision.revisionNumber }}</strong>\n <span>{{ revision.createdAt | date: 'medium' }}</span>\n @if (revision.createdByUserId !== null && revision.createdByUserId !== undefined) {\n <span>User {{ revision.createdByUserId }}</span>\n }\n @if (!revision.snapshot) {\n <span>Legacy revision - cannot be restored</span>\n }\n </mat-radio-button>\n } @empty {\n <p>No revisions are available.</p>\n }\n </mat-radio-group>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" [disabled]=\"loading() || applying()\" (click)=\"load()\">Reload revisions</button>\n }\n @if (applying()) {\n <p role=\"status\">Restoring...</p>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" [disabled]=\"applying()\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || applying() || selected() === null\" (click)=\"apply()\">Apply</button>\n</mat-dialog-actions>\n", styles: ["mat-radio-group{display:flex;flex-direction:column;gap:1rem}mat-radio-button span{display:block;font-size:.875rem;opacity:.7}[role=alert]{color:#b3261e}\n"] }]
|
|
3753
|
+
}], ctorParameters: () => [] });
|
|
3754
|
+
|
|
3755
|
+
class TaonRelatedPostChooserComponent {
|
|
3756
|
+
constructor() {
|
|
3757
|
+
this.data = inject(MAT_DIALOG_DATA);
|
|
3758
|
+
this.posts = signal([], ...(ngDevMode ? [{ debugName: "posts" }] : []));
|
|
3759
|
+
this.selected = signal(null, ...(ngDevMode ? [{ debugName: "selected" }] : []));
|
|
3760
|
+
this.query = signal('', ...(ngDevMode ? [{ debugName: "query" }] : []));
|
|
3761
|
+
this.loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
|
|
3762
|
+
this.error = signal('', ...(ngDevMode ? [{ debugName: "error" }] : []));
|
|
3763
|
+
this.filteredPosts = computed(() => {
|
|
3764
|
+
const query = this.query().trim().toLowerCase();
|
|
3765
|
+
return this.posts().filter(post => post.id !== this.data.postId &&
|
|
3766
|
+
!this.data.excludedIds.includes(post.id) &&
|
|
3767
|
+
`${post.id} ${post.title} ${post.slug}`.toLowerCase().includes(query));
|
|
3768
|
+
}, ...(ngDevMode ? [{ debugName: "filteredPosts" }] : []));
|
|
3769
|
+
this.api = inject(TaonCmsContentApiService);
|
|
3770
|
+
this.ref = inject((MatDialogRef));
|
|
3771
|
+
this.destroyRef = inject(DestroyRef);
|
|
3772
|
+
this.load();
|
|
3773
|
+
}
|
|
3774
|
+
load() {
|
|
3775
|
+
if (this.loading()) {
|
|
3776
|
+
return;
|
|
3777
|
+
}
|
|
3778
|
+
this.loading.set(true);
|
|
3779
|
+
this.selected.set(null);
|
|
3780
|
+
this.error.set('');
|
|
3781
|
+
this.api.allMyEntities$
|
|
3782
|
+
.pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.loading.set(false)))
|
|
3783
|
+
.subscribe({
|
|
3784
|
+
next: posts => this.posts.set(posts),
|
|
3785
|
+
error: (error) => {
|
|
3786
|
+
console.error('[taon-related-post-chooser] Unable to load posts', error);
|
|
3787
|
+
this.error.set('Posts could not be loaded. Please try again.');
|
|
3788
|
+
},
|
|
3789
|
+
});
|
|
3790
|
+
}
|
|
3791
|
+
search(event) {
|
|
3792
|
+
if (event.target instanceof HTMLInputElement) {
|
|
3793
|
+
this.query.set(event.target.value);
|
|
3794
|
+
this.selected.set(null);
|
|
3795
|
+
}
|
|
3796
|
+
}
|
|
3797
|
+
choose() {
|
|
3798
|
+
if (this.loading() || this.error()) {
|
|
3799
|
+
return;
|
|
3800
|
+
}
|
|
3801
|
+
const post = this.filteredPosts().find(post => post.id === this.selected());
|
|
3802
|
+
if (!post) {
|
|
3803
|
+
this.error.set('Select a related post.');
|
|
3804
|
+
return;
|
|
3805
|
+
}
|
|
3806
|
+
this.ref.close(post);
|
|
3807
|
+
}
|
|
3808
|
+
cancel() {
|
|
3809
|
+
this.ref.close();
|
|
3810
|
+
}
|
|
3811
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonRelatedPostChooserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3812
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonRelatedPostChooserComponent, isStandalone: true, selector: "taon-related-post-chooser", providers: [TaonCmsContentApiService], ngImport: i0, template: "<h2 mat-dialog-title>Add related post</h2>\n<mat-dialog-content>\n <label class=\"search-field\">\n <span>Search posts</span>\n <input type=\"search\" aria-label=\"Search posts by ID, title or slug\" [value]=\"query()\" [disabled]=\"loading()\" (input)=\"search($event)\" />\n </label>\n @if (loading()) {\n <p role=\"status\">Loading posts...</p>\n } @else if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" (click)=\"load()\">Try again</button>\n } @else {\n <mat-radio-group aria-label=\"Related post\" [value]=\"selected()\" (change)=\"selected.set($event.value)\">\n @for (post of filteredPosts(); track post.id) {\n <mat-radio-button [value]=\"post.id\">\n #{{ post.id }} - {{ post.title }} <span class=\"slug\">{{ post.slug }}</span>\n </mat-radio-button>\n } @empty {\n <p>No matching posts available.</p>\n }\n </mat-radio-group>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || !!error() || selected() === null\" (click)=\"choose()\">Add related post</button>\n</mat-dialog-actions>\n", styles: [".search-field,mat-radio-group{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.search-field input{padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.slug{display:block;opacity:.7;overflow-wrap:anywhere}.error{color:#b3261e}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3813
|
+
}
|
|
3814
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonRelatedPostChooserComponent, decorators: [{
|
|
3815
|
+
type: Component,
|
|
3816
|
+
args: [{ selector: 'taon-related-post-chooser', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatButtonModule, MatDialogModule, MatRadioModule], providers: [TaonCmsContentApiService], template: "<h2 mat-dialog-title>Add related post</h2>\n<mat-dialog-content>\n <label class=\"search-field\">\n <span>Search posts</span>\n <input type=\"search\" aria-label=\"Search posts by ID, title or slug\" [value]=\"query()\" [disabled]=\"loading()\" (input)=\"search($event)\" />\n </label>\n @if (loading()) {\n <p role=\"status\">Loading posts...</p>\n } @else if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" (click)=\"load()\">Try again</button>\n } @else {\n <mat-radio-group aria-label=\"Related post\" [value]=\"selected()\" (change)=\"selected.set($event.value)\">\n @for (post of filteredPosts(); track post.id) {\n <mat-radio-button [value]=\"post.id\">\n #{{ post.id }} - {{ post.title }} <span class=\"slug\">{{ post.slug }}</span>\n </mat-radio-button>\n } @empty {\n <p>No matching posts available.</p>\n }\n </mat-radio-group>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || !!error() || selected() === null\" (click)=\"choose()\">Add related post</button>\n</mat-dialog-actions>\n", styles: [".search-field,mat-radio-group{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.search-field input{padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.slug{display:block;opacity:.7;overflow-wrap:anywhere}.error{color:#b3261e}\n"] }]
|
|
3817
|
+
}], ctorParameters: () => [] });
|
|
3818
|
+
|
|
3819
|
+
//#region imports
|
|
3820
|
+
//#endregion
|
|
3821
|
+
class TaonCmsPostComponent {
|
|
3822
|
+
//#endregion
|
|
3823
|
+
//#region constructor
|
|
3824
|
+
constructor() {
|
|
3825
|
+
//#region fields and getters
|
|
3826
|
+
this.post = input(null, ...(ngDevMode ? [{ debugName: "post" }] : []));
|
|
3827
|
+
this.mode = model('view', ...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
3828
|
+
this.changed = output();
|
|
3829
|
+
this.deleted = output();
|
|
3830
|
+
this.cancelled = output();
|
|
3831
|
+
this.currentPost = signal(null, ...(ngDevMode ? [{ debugName: "currentPost" }] : []));
|
|
3832
|
+
this.draft = signal({
|
|
3833
|
+
type: TaonCmsContentType.Normal,
|
|
3834
|
+
title: '',
|
|
3835
|
+
slug: '',
|
|
3836
|
+
excerpt: '',
|
|
3837
|
+
body: '',
|
|
3838
|
+
videoKey: null,
|
|
3839
|
+
audioKey: null,
|
|
3840
|
+
attachmentKey: null,
|
|
3841
|
+
}, ...(ngDevMode ? [{ debugName: "draft" }] : []));
|
|
3842
|
+
this.postTypes = [
|
|
3843
|
+
{ value: TaonCmsContentType.Normal, label: 'Normal post' },
|
|
3844
|
+
{ value: TaonCmsContentType.Video, label: 'Video post' },
|
|
3845
|
+
{ value: TaonCmsContentType.Audio, label: 'Audio post' },
|
|
3846
|
+
{ value: TaonCmsContentType.Attachment, label: 'Attachment post' },
|
|
3847
|
+
];
|
|
3848
|
+
this.mediaAttachments = [
|
|
3849
|
+
{
|
|
3850
|
+
type: TaonCmsContentType.Video,
|
|
3851
|
+
key: 'videoKey',
|
|
3852
|
+
heading: 'Video Attachment',
|
|
3853
|
+
uploadLabel: 'Upload video',
|
|
3854
|
+
accept: 'video/*',
|
|
3855
|
+
},
|
|
3856
|
+
{
|
|
3857
|
+
type: TaonCmsContentType.Audio,
|
|
3858
|
+
key: 'audioKey',
|
|
3859
|
+
heading: 'Audio Attachment',
|
|
3860
|
+
uploadLabel: 'Upload audio',
|
|
3861
|
+
accept: 'audio/*',
|
|
3862
|
+
},
|
|
3863
|
+
{
|
|
3864
|
+
type: TaonCmsContentType.Attachment,
|
|
3865
|
+
key: 'attachmentKey',
|
|
3866
|
+
heading: 'File Attachment',
|
|
3867
|
+
uploadLabel: 'Upload file',
|
|
3868
|
+
accept: '',
|
|
3869
|
+
},
|
|
3870
|
+
];
|
|
3871
|
+
this.mediaAttachment = computed(() => this.mediaAttachments.find(media => media.type === this.draft().type), ...(ngDevMode ? [{ debugName: "mediaAttachment" }] : []));
|
|
3872
|
+
this.busy = signal(false, ...(ngDevMode ? [{ debugName: "busy" }] : []));
|
|
3873
|
+
this.uploading = signal(false, ...(ngDevMode ? [{ debugName: "uploading" }] : []));
|
|
3874
|
+
this.dialogOpen = signal(false, ...(ngDevMode ? [{ debugName: "dialogOpen" }] : []));
|
|
3875
|
+
this.error = signal('', ...(ngDevMode ? [{ debugName: "error" }] : []));
|
|
3876
|
+
this.relatedPosts = signal([], ...(ngDevMode ? [{ debugName: "relatedPosts" }] : []));
|
|
3877
|
+
this.relatedPostsLoading = signal(false, ...(ngDevMode ? [{ debugName: "relatedPostsLoading" }] : []));
|
|
3878
|
+
this.relatedPostsError = signal('', ...(ngDevMode ? [{ debugName: "relatedPostsError" }] : []));
|
|
3879
|
+
this.permissions = signal([], ...(ngDevMode ? [{ debugName: "permissions" }] : []));
|
|
3880
|
+
this.permissionsLoading = signal(false, ...(ngDevMode ? [{ debugName: "permissionsLoading" }] : []));
|
|
3881
|
+
this.permissionsError = signal('', ...(ngDevMode ? [{ debugName: "permissionsError" }] : []));
|
|
3882
|
+
this.permissionOptions = signal([], ...(ngDevMode ? [{ debugName: "permissionOptions" }] : []));
|
|
3883
|
+
this.permissionOptionsLoading = signal(false, ...(ngDevMode ? [{ debugName: "permissionOptionsLoading" }] : []));
|
|
3884
|
+
this.permissionOptionsError = signal('', ...(ngDevMode ? [{ debugName: "permissionOptionsError" }] : []));
|
|
3885
|
+
this.selectedPermissionId = signal(null, ...(ngDevMode ? [{ debugName: "selectedPermissionId" }] : []));
|
|
3886
|
+
this.availablePermissions = computed(() => {
|
|
3887
|
+
const assignedIds = new Set(this.permissions().map(permission => permission.id));
|
|
3888
|
+
return this.permissionOptions().filter(permission => !assignedIds.has(permission.id));
|
|
3889
|
+
}, ...(ngDevMode ? [{ debugName: "availablePermissions" }] : []));
|
|
3890
|
+
this.editing = computed(() => this.mode() === 'edit' || this.mode() === 'add', ...(ngDevMode ? [{ debugName: "editing" }] : []));
|
|
3891
|
+
this.canSave = computed(() => !!this.draft().title.trim() &&
|
|
3892
|
+
!!this.draft().slug.trim() &&
|
|
3893
|
+
!this.relatedPostsLoading() &&
|
|
3894
|
+
!this.relatedPostsError() &&
|
|
3895
|
+
!this.permissionsLoading() &&
|
|
3896
|
+
!this.permissionsError(), ...(ngDevMode ? [{ debugName: "canSave" }] : []));
|
|
3897
|
+
this.canPublish = computed(() => {
|
|
3898
|
+
const post = this.currentPost();
|
|
3899
|
+
return !!post && post.status !== 'published';
|
|
3900
|
+
}, ...(ngDevMode ? [{ debugName: "canPublish" }] : []));
|
|
3901
|
+
this.api = inject(TaonCmsContentApiService);
|
|
3902
|
+
this.permissionApi = inject(TaonPermissionApiService);
|
|
3903
|
+
this.dialog = inject(MatDialog);
|
|
3904
|
+
this.destroyRef = inject(DestroyRef);
|
|
3905
|
+
effect(() => {
|
|
3906
|
+
const post = this.post();
|
|
3907
|
+
untracked(() => this.setPost(post));
|
|
3908
|
+
});
|
|
3909
|
+
effect(() => {
|
|
3910
|
+
if (this.editing()) {
|
|
3911
|
+
untracked(() => this.loadPermissionOptions());
|
|
3912
|
+
}
|
|
3913
|
+
});
|
|
3914
|
+
}
|
|
3915
|
+
//#endregion
|
|
3916
|
+
//#region methods / load related posts
|
|
3917
|
+
loadRelatedPosts() {
|
|
3918
|
+
if (this.busy() || this.relatedPostsLoading()) {
|
|
3919
|
+
return;
|
|
3920
|
+
}
|
|
3921
|
+
const post = this.requirePost();
|
|
3922
|
+
if (!post) {
|
|
3923
|
+
return;
|
|
3924
|
+
}
|
|
3925
|
+
this.relatedPostsLoading.set(true);
|
|
3926
|
+
this.relatedPostsError.set('');
|
|
3927
|
+
this.relatedPostsLoad = this.api
|
|
3928
|
+
.listRelatedPosts(post.id)
|
|
3929
|
+
.pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.relatedPostsLoading.set(false)))
|
|
3930
|
+
.subscribe({
|
|
3931
|
+
next: posts => this.relatedPosts.set(posts),
|
|
3932
|
+
error: (error) => {
|
|
3933
|
+
console.error('[taon-cms-post] Unable to load related posts', error);
|
|
3934
|
+
this.relatedPostsError.set('Related posts could not be loaded. Please try again.');
|
|
3935
|
+
},
|
|
3936
|
+
});
|
|
3937
|
+
}
|
|
3938
|
+
//#endregion
|
|
3939
|
+
//#region methods / add related post
|
|
3940
|
+
addRelatedPost() {
|
|
3941
|
+
if (!this.editing() ||
|
|
3942
|
+
this.busy() ||
|
|
3943
|
+
this.dialogOpen() ||
|
|
3944
|
+
this.relatedPostsLoading() ||
|
|
3945
|
+
this.relatedPostsError()) {
|
|
3946
|
+
return;
|
|
3947
|
+
}
|
|
3948
|
+
this.dialogOpen.set(true);
|
|
3949
|
+
const ref = this.dialog.open(TaonRelatedPostChooserComponent, {
|
|
3950
|
+
data: {
|
|
3951
|
+
postId: this.currentPost()?.id,
|
|
3952
|
+
excludedIds: this.relatedPosts().map(post => post.id),
|
|
3953
|
+
},
|
|
3954
|
+
width: '560px',
|
|
3955
|
+
maxWidth: '95vw',
|
|
3956
|
+
disableClose: true,
|
|
3957
|
+
});
|
|
3958
|
+
ref
|
|
3959
|
+
.afterClosed()
|
|
3960
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
3961
|
+
.subscribe(post => {
|
|
3962
|
+
this.dialogOpen.set(false);
|
|
3963
|
+
if (post &&
|
|
3964
|
+
post.id !== this.currentPost()?.id &&
|
|
3965
|
+
!this.relatedPosts().some(related => related.id === post.id)) {
|
|
3966
|
+
this.relatedPosts.update(posts => [...posts, post]);
|
|
3967
|
+
}
|
|
3968
|
+
});
|
|
3969
|
+
}
|
|
3970
|
+
//#endregion
|
|
3971
|
+
//#region methods / remove related post
|
|
3972
|
+
removeRelatedPost(id) {
|
|
3973
|
+
if (!this.editing() ||
|
|
3974
|
+
this.busy() ||
|
|
3975
|
+
this.dialogOpen() ||
|
|
3976
|
+
this.relatedPostsLoading() ||
|
|
3977
|
+
this.relatedPostsError()) {
|
|
3978
|
+
return;
|
|
3979
|
+
}
|
|
3980
|
+
this.relatedPosts.update(posts => posts.filter(post => post.id !== id));
|
|
3981
|
+
}
|
|
3982
|
+
//#endregion
|
|
3983
|
+
//#region methods / load permissions
|
|
3984
|
+
loadPermissions() {
|
|
3985
|
+
if (this.busy() || this.permissionsLoading()) {
|
|
3986
|
+
return;
|
|
3987
|
+
}
|
|
3988
|
+
const post = this.requirePost();
|
|
3989
|
+
if (!post) {
|
|
3990
|
+
return;
|
|
3991
|
+
}
|
|
3992
|
+
this.permissionsLoading.set(true);
|
|
3993
|
+
this.permissionsError.set('');
|
|
3994
|
+
this.permissionsLoad = this.api
|
|
3995
|
+
.listPermissions(post.id)
|
|
3996
|
+
.pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.permissionsLoading.set(false)))
|
|
3997
|
+
.subscribe({
|
|
3998
|
+
next: permissions => this.permissions.set(permissions),
|
|
3999
|
+
error: (error) => {
|
|
4000
|
+
console.error('[taon-cms-post] Unable to load permissions', error);
|
|
4001
|
+
this.permissionsError.set('Permissions could not be loaded. Please try again.');
|
|
4002
|
+
},
|
|
4003
|
+
});
|
|
4004
|
+
}
|
|
4005
|
+
//#endregion
|
|
4006
|
+
//#region methods / add permission
|
|
4007
|
+
addPermission() {
|
|
4008
|
+
if (!this.editing() || this.busy() || this.dialogOpen()) {
|
|
4009
|
+
return;
|
|
4010
|
+
}
|
|
4011
|
+
const permissionId = this.selectedPermissionId();
|
|
4012
|
+
const permission = this.availablePermissions().find(item => item.id === permissionId);
|
|
4013
|
+
if (permission) {
|
|
4014
|
+
this.permissions.update(permissions => [...permissions, permission]);
|
|
4015
|
+
this.selectedPermissionId.set(null);
|
|
4016
|
+
}
|
|
4017
|
+
}
|
|
4018
|
+
//#endregion
|
|
4019
|
+
//#region methods / remove permission
|
|
4020
|
+
removePermission(id) {
|
|
4021
|
+
if (!this.editing() || this.busy() || this.dialogOpen()) {
|
|
4022
|
+
return;
|
|
4023
|
+
}
|
|
4024
|
+
this.permissions.update(items => items.filter(permission => permission.id !== id));
|
|
4025
|
+
}
|
|
4026
|
+
//#endregion
|
|
4027
|
+
//#region methods / load permission options
|
|
4028
|
+
loadPermissionOptions() {
|
|
4029
|
+
if (this.permissionOptionsLoading() ||
|
|
4030
|
+
this.permissionOptions().length > 0) {
|
|
4031
|
+
return;
|
|
4032
|
+
}
|
|
4033
|
+
this.permissionOptionsLoading.set(true);
|
|
4034
|
+
this.permissionOptionsError.set('');
|
|
4035
|
+
this.permissionApi.allMyEntities$
|
|
4036
|
+
.pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.permissionOptionsLoading.set(false)))
|
|
4037
|
+
.subscribe({
|
|
4038
|
+
next: permissions => this.permissionOptions.set(permissions),
|
|
4039
|
+
error: (error) => {
|
|
4040
|
+
console.error('[taon-cms-post] Unable to load permission options', error);
|
|
4041
|
+
this.permissionOptionsError.set('Available permissions could not be loaded. Please try again.');
|
|
4042
|
+
},
|
|
4043
|
+
});
|
|
4044
|
+
}
|
|
4045
|
+
//#endregion
|
|
4046
|
+
//#region methods / update draft
|
|
4047
|
+
updateDraft(field, value) {
|
|
4048
|
+
this.draft.update(draft => ({ ...draft, [field]: value }));
|
|
4049
|
+
}
|
|
4050
|
+
//#endregion
|
|
4051
|
+
//#region methods / file selected
|
|
4052
|
+
async fileSelected(event) {
|
|
4053
|
+
if (!(event.target instanceof HTMLInputElement)) {
|
|
4054
|
+
this.error.set('Unable to read the selected media file.');
|
|
4055
|
+
return;
|
|
4056
|
+
}
|
|
4057
|
+
const input = event.target;
|
|
4058
|
+
const file = input.files?.[0];
|
|
4059
|
+
if (!file) {
|
|
4060
|
+
return;
|
|
4061
|
+
}
|
|
4062
|
+
const media = this.mediaAttachment();
|
|
4063
|
+
if (!media || !this.editing() || this.busy() || this.dialogOpen()) {
|
|
4064
|
+
input.value = '';
|
|
4065
|
+
return;
|
|
4066
|
+
}
|
|
4067
|
+
const draft = this.draft();
|
|
4068
|
+
this.busy.set(true);
|
|
4069
|
+
this.uploading.set(true);
|
|
4070
|
+
this.error.set('');
|
|
4071
|
+
try {
|
|
4072
|
+
const object = await this.api.uploadMedia(file);
|
|
4073
|
+
if (!this.destroyRef.destroyed && this.draft() === draft) {
|
|
4074
|
+
this.updateDraft(media.key, object.key);
|
|
4075
|
+
}
|
|
4076
|
+
}
|
|
4077
|
+
catch (error) {
|
|
4078
|
+
console.error('[taon-cms-post] Unable to upload media', error);
|
|
4079
|
+
this.error.set('The media could not be uploaded. Please try again.');
|
|
4080
|
+
}
|
|
4081
|
+
finally {
|
|
4082
|
+
this.busy.set(false);
|
|
4083
|
+
this.uploading.set(false);
|
|
4084
|
+
input.value = '';
|
|
4085
|
+
}
|
|
4086
|
+
}
|
|
4087
|
+
//#endregion
|
|
4088
|
+
//#region methods / remove media
|
|
4089
|
+
removeMedia() {
|
|
4090
|
+
const media = this.mediaAttachment();
|
|
4091
|
+
if (!media || !this.editing() || this.busy() || this.dialogOpen()) {
|
|
4092
|
+
return;
|
|
4093
|
+
}
|
|
4094
|
+
this.updateDraft(media.key, null);
|
|
4095
|
+
}
|
|
4096
|
+
//#endregion
|
|
4097
|
+
//#region methods / update slug
|
|
4098
|
+
updateSlug(event) {
|
|
4099
|
+
if (event.target instanceof HTMLInputElement) {
|
|
4100
|
+
this.updateDraft('slug', event.target.value);
|
|
4101
|
+
}
|
|
4102
|
+
}
|
|
4103
|
+
//#endregion
|
|
4104
|
+
//#region methods / edit
|
|
4105
|
+
edit() {
|
|
4106
|
+
if (this.mode() !== 'view' || this.busy() || this.dialogOpen()) {
|
|
4107
|
+
return;
|
|
4108
|
+
}
|
|
4109
|
+
if (!this.requirePost()) {
|
|
4110
|
+
return;
|
|
4111
|
+
}
|
|
4112
|
+
this.error.set('');
|
|
4113
|
+
this.mode.set('edit');
|
|
4114
|
+
}
|
|
4115
|
+
//#endregion
|
|
4116
|
+
//#region methods / cancel
|
|
4117
|
+
cancel() {
|
|
4118
|
+
if (this.busy() || this.dialogOpen()) {
|
|
4119
|
+
return;
|
|
4120
|
+
}
|
|
4121
|
+
this.setPost(this.currentPost());
|
|
4122
|
+
this.error.set('');
|
|
4123
|
+
if (this.editing()) {
|
|
4124
|
+
this.mode.set('view');
|
|
4125
|
+
}
|
|
4126
|
+
this.cancelled.emit();
|
|
4127
|
+
}
|
|
4128
|
+
//#endregion
|
|
4129
|
+
//#region methods / save
|
|
4130
|
+
save() {
|
|
4131
|
+
if (this.busy() || this.dialogOpen() || !this.editing()) {
|
|
4132
|
+
return;
|
|
4133
|
+
}
|
|
4134
|
+
if (!this.canSave()) {
|
|
4135
|
+
this.error.set('A title and slug are required.');
|
|
4136
|
+
return;
|
|
4137
|
+
}
|
|
4138
|
+
if (this.mode() === 'add') {
|
|
4139
|
+
this.persist(this.api.createContent({
|
|
4140
|
+
...this.draft(),
|
|
4141
|
+
relatedPostIds: this.relatedPosts().map(post => post.id),
|
|
4142
|
+
permissionIds: this.permissions().map(permission => permission.id),
|
|
4143
|
+
}));
|
|
4144
|
+
}
|
|
4145
|
+
else {
|
|
4146
|
+
const post = this.requirePost();
|
|
4147
|
+
if (post) {
|
|
4148
|
+
this.persist(this.api.updateContent(post.id, this.updateInput(post)));
|
|
4149
|
+
}
|
|
4150
|
+
}
|
|
4151
|
+
}
|
|
4152
|
+
//#endregion
|
|
4153
|
+
//#region methods / publish
|
|
4154
|
+
publish() {
|
|
4155
|
+
if (this.busy() ||
|
|
4156
|
+
this.dialogOpen() ||
|
|
4157
|
+
!this.canPublish() ||
|
|
4158
|
+
this.mode() === 'view-clean' ||
|
|
4159
|
+
this.mode() === 'add') {
|
|
4160
|
+
return;
|
|
4161
|
+
}
|
|
4162
|
+
if (this.editing() && !this.canSave()) {
|
|
4163
|
+
this.error.set('A title and slug are required.');
|
|
4164
|
+
return;
|
|
4165
|
+
}
|
|
4166
|
+
const post = this.requirePost();
|
|
4167
|
+
if (post) {
|
|
4168
|
+
this.persist(this.api.updateContent(post.id, {
|
|
4169
|
+
...(this.editing()
|
|
4170
|
+
? this.updateInput(post)
|
|
4171
|
+
: { expectedVersion: post.version }),
|
|
4172
|
+
status: 'published',
|
|
4173
|
+
publishedAt: new Date(),
|
|
4174
|
+
}));
|
|
4175
|
+
}
|
|
4176
|
+
}
|
|
4177
|
+
//#endregion
|
|
4178
|
+
//#region methods / revert
|
|
4179
|
+
revert() {
|
|
4180
|
+
const post = this.requirePost();
|
|
4181
|
+
if (!post ||
|
|
4182
|
+
this.busy() ||
|
|
4183
|
+
this.dialogOpen() ||
|
|
4184
|
+
this.mode() === 'view-clean') {
|
|
4185
|
+
return;
|
|
4186
|
+
}
|
|
4187
|
+
this.dialogOpen.set(true);
|
|
4188
|
+
const ref = this.dialog.open(TaonCmsRevisionChooserComponent, {
|
|
4189
|
+
data: post,
|
|
4190
|
+
width: '560px',
|
|
4191
|
+
maxWidth: '95vw',
|
|
4192
|
+
disableClose: true,
|
|
4193
|
+
});
|
|
4194
|
+
ref
|
|
4195
|
+
.afterClosed()
|
|
4196
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
4197
|
+
.subscribe(restored => {
|
|
4198
|
+
this.dialogOpen.set(false);
|
|
4199
|
+
if (restored) {
|
|
4200
|
+
this.acceptPost(restored);
|
|
4201
|
+
}
|
|
4202
|
+
});
|
|
4203
|
+
}
|
|
4204
|
+
//#endregion
|
|
4205
|
+
//#region methods / delete
|
|
4206
|
+
delete() {
|
|
4207
|
+
const post = this.requirePost();
|
|
4208
|
+
if (!post ||
|
|
4209
|
+
this.busy() ||
|
|
4210
|
+
this.dialogOpen() ||
|
|
4211
|
+
this.mode() === 'view-clean') {
|
|
4212
|
+
return;
|
|
4213
|
+
}
|
|
4214
|
+
this.dialogOpen.set(true);
|
|
4215
|
+
const ref = this.dialog.open(TaonConfirmDialogComponent, {
|
|
4216
|
+
data: {
|
|
4217
|
+
title: 'Delete post?',
|
|
4218
|
+
message: 'This archives the post. It can be restored from its revisions.',
|
|
4219
|
+
confirmText: 'Delete',
|
|
4220
|
+
},
|
|
4221
|
+
});
|
|
4222
|
+
ref
|
|
4223
|
+
.afterClosed()
|
|
4224
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
4225
|
+
.subscribe(confirmed => {
|
|
4226
|
+
this.dialogOpen.set(false);
|
|
4227
|
+
if (confirmed) {
|
|
4228
|
+
this.persist(this.api.deleteContent(post.id, post.version), true);
|
|
4229
|
+
}
|
|
4230
|
+
});
|
|
4231
|
+
}
|
|
4232
|
+
//#endregion
|
|
4233
|
+
//#region methods / update input
|
|
4234
|
+
updateInput(post) {
|
|
4235
|
+
return {
|
|
4236
|
+
...this.draft(),
|
|
4237
|
+
relatedPostIds: this.relatedPosts().map(related => related.id),
|
|
4238
|
+
permissionIds: this.permissions().map(permission => permission.id),
|
|
4239
|
+
expectedVersion: post.version,
|
|
4240
|
+
};
|
|
4241
|
+
}
|
|
4242
|
+
//#endregion
|
|
4243
|
+
//#region methods / require post
|
|
4244
|
+
requirePost() {
|
|
4245
|
+
const post = this.currentPost();
|
|
4246
|
+
if (!post) {
|
|
4247
|
+
this.error.set('No post is loaded.');
|
|
4248
|
+
}
|
|
4249
|
+
return post;
|
|
4250
|
+
}
|
|
4251
|
+
//#endregion
|
|
4252
|
+
//#region methods / set post
|
|
4253
|
+
setPost(post) {
|
|
4254
|
+
this.relatedPostsLoad?.unsubscribe();
|
|
4255
|
+
this.permissionsLoad?.unsubscribe();
|
|
4256
|
+
this.relatedPostsLoading.set(false);
|
|
4257
|
+
this.relatedPostsError.set('');
|
|
4258
|
+
this.permissionsLoading.set(false);
|
|
4259
|
+
this.permissionsError.set('');
|
|
4260
|
+
this.currentPost.set(post);
|
|
4261
|
+
this.relatedPosts.set(post?.relatedPosts ?? []);
|
|
4262
|
+
this.permissions.set(post?.permissions ?? []);
|
|
4263
|
+
this.selectedPermissionId.set(null);
|
|
4264
|
+
this.draft.set({
|
|
4265
|
+
type: post?.type ?? TaonCmsContentType.Normal,
|
|
4266
|
+
title: post?.title ?? '',
|
|
4267
|
+
slug: post?.slug ?? '',
|
|
4268
|
+
excerpt: post?.excerpt ?? '',
|
|
4269
|
+
body: post?.body ?? '',
|
|
4270
|
+
videoKey: post?.videoKey ?? null,
|
|
4271
|
+
audioKey: post?.audioKey ?? null,
|
|
4272
|
+
attachmentKey: post?.attachmentKey ?? null,
|
|
4273
|
+
});
|
|
4274
|
+
if (post &&
|
|
4275
|
+
post.relatedPosts === undefined &&
|
|
4276
|
+
this.mode() !== 'view-clean') {
|
|
4277
|
+
this.loadRelatedPosts();
|
|
4278
|
+
}
|
|
4279
|
+
if (post &&
|
|
4280
|
+
post.permissions === undefined &&
|
|
4281
|
+
this.mode() !== 'view-clean') {
|
|
4282
|
+
this.loadPermissions();
|
|
4283
|
+
}
|
|
4284
|
+
}
|
|
4285
|
+
//#endregion
|
|
4286
|
+
//#region methods / accept post
|
|
4287
|
+
acceptPost(post) {
|
|
4288
|
+
this.setPost(post);
|
|
4289
|
+
this.error.set('');
|
|
4290
|
+
this.mode.set('view');
|
|
4291
|
+
this.changed.emit(post);
|
|
4292
|
+
}
|
|
4293
|
+
//#endregion
|
|
4294
|
+
//#region methods / persist
|
|
4295
|
+
persist(request, deleting = false) {
|
|
4296
|
+
if (this.busy() || this.dialogOpen() || this.mode() === 'view-clean') {
|
|
4297
|
+
return;
|
|
4298
|
+
}
|
|
4299
|
+
this.busy.set(true);
|
|
4300
|
+
this.error.set('');
|
|
4301
|
+
request
|
|
4302
|
+
.pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.busy.set(false)))
|
|
4303
|
+
.subscribe({
|
|
4304
|
+
next: post => {
|
|
4305
|
+
this.acceptPost(post);
|
|
4306
|
+
if (deleting) {
|
|
4307
|
+
this.deleted.emit(post);
|
|
4308
|
+
}
|
|
4309
|
+
},
|
|
4310
|
+
error: (error) => {
|
|
4311
|
+
console.error('[taon-cms-post] Unable to save post', error);
|
|
4312
|
+
this.error.set('The post could not be saved. Check the slug and your connection. ' +
|
|
4313
|
+
'If another user changed it, close and reopen the post before retrying.');
|
|
4314
|
+
},
|
|
4315
|
+
});
|
|
4316
|
+
}
|
|
4317
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4318
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsPostComponent, isStandalone: true, selector: "taon-cms-post", inputs: { post: { classPropertyName: "post", publicName: "post", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mode: "modeChange", changed: "changed", deleted: "deleted", cancelled: "cancelled" }, providers: [TaonCmsContentApiService, TaonPermissionApiService], ngImport: i0, template: "@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"Post type\"\n [value]=\"draft().type\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"updateDraft('type', $event.value)\">\n @for (type of postTypes; track type.value) {\n <mat-radio-button [value]=\"type.value\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditableSingleLine]=\"true\"\n [taonCmsEditable]=\"draft().title\"\n (taonCmsEditableChange)=\"updateDraft('title', $event)\"></div>\n <div\n class=\"post-excerpt editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</button>\n } @else {\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>", styles: [":host{display:block}.post-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem;border-bottom:1px solid rgba(136,136,136,.2)}.post-status{margin-right:auto;text-transform:capitalize;opacity:.7}.buttons{display:flex;flex-wrap:wrap;gap:.5rem}.post-article{max-width:760px;margin:0 auto;padding:clamp(1.5rem,5vw,4rem) 1.5rem;overflow-wrap:anywhere}.post-title{margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.15;letter-spacing:-.03em}.post-excerpt{margin:0 0 2rem;font-size:1.35rem;line-height:1.6;opacity:.7;white-space:pre-wrap}.post-body{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;line-height:1.8;white-space:pre-wrap}.editable{min-height:1.2em;outline:none}.editable:focus{box-shadow:-3px 0 #8885}.editable:empty:before{content:attr(data-placeholder);opacity:.4;pointer-events:none}.post-body.editable{min-height:12rem}.slug-field{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:3rem;padding-top:1rem;border-top:1px solid rgba(136,136,136,.2);font-size:.875rem}.slug-field input{flex:1;min-width:160px;padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.error{padding:1rem;color:#b3261e}.post-type-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.media-attachment,.related-posts,.post-permissions{margin-top:1.5rem;font-size:.875rem}.media-attachment h2,.related-posts h2,.post-permissions h2{font-size:1rem}.related-posts ul,.post-permissions ul{padding:0;list-style:none}.related-posts li,.post-permissions li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: TaonCmsEditableDirective, selector: "[taonCmsEditable]", inputs: ["taonCmsEditableFormat", "taonCmsEditableSingleLine", "taonCmsEditable"], outputs: ["taonCmsEditableChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4319
|
+
}
|
|
4320
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, decorators: [{
|
|
4321
|
+
type: Component,
|
|
4322
|
+
args: [{ selector: 'taon-cms-post', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
4323
|
+
MatButtonModule,
|
|
4324
|
+
MatFormFieldModule,
|
|
4325
|
+
MatIconModule,
|
|
4326
|
+
MatRadioModule,
|
|
4327
|
+
MatSelectModule,
|
|
4328
|
+
TaonCmsEditableDirective,
|
|
4329
|
+
], providers: [TaonCmsContentApiService, TaonPermissionApiService], template: "@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"Post type\"\n [value]=\"draft().type\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"updateDraft('type', $event.value)\">\n @for (type of postTypes; track type.value) {\n <mat-radio-button [value]=\"type.value\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditableSingleLine]=\"true\"\n [taonCmsEditable]=\"draft().title\"\n (taonCmsEditableChange)=\"updateDraft('title', $event)\"></div>\n <div\n class=\"post-excerpt editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</button>\n } @else {\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>", styles: [":host{display:block}.post-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem;border-bottom:1px solid rgba(136,136,136,.2)}.post-status{margin-right:auto;text-transform:capitalize;opacity:.7}.buttons{display:flex;flex-wrap:wrap;gap:.5rem}.post-article{max-width:760px;margin:0 auto;padding:clamp(1.5rem,5vw,4rem) 1.5rem;overflow-wrap:anywhere}.post-title{margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.15;letter-spacing:-.03em}.post-excerpt{margin:0 0 2rem;font-size:1.35rem;line-height:1.6;opacity:.7;white-space:pre-wrap}.post-body{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;line-height:1.8;white-space:pre-wrap}.editable{min-height:1.2em;outline:none}.editable:focus{box-shadow:-3px 0 #8885}.editable:empty:before{content:attr(data-placeholder);opacity:.4;pointer-events:none}.post-body.editable{min-height:12rem}.slug-field{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:3rem;padding-top:1rem;border-top:1px solid rgba(136,136,136,.2);font-size:.875rem}.slug-field input{flex:1;min-width:160px;padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.error{padding:1rem;color:#b3261e}.post-type-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.media-attachment,.related-posts,.post-permissions{margin-top:1.5rem;font-size:.875rem}.media-attachment h2,.related-posts h2,.post-permissions h2{font-size:1rem}.related-posts ul,.post-permissions ul{padding:0;list-style:none}.related-posts li,.post-permissions li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}\n"] }]
|
|
4330
|
+
}], ctorParameters: () => [], propDecorators: { post: [{ type: i0.Input, args: [{ isSignal: true, alias: "post", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }, { type: i0.Output, args: ["modeChange"] }], changed: [{ type: i0.Output, args: ["changed"] }], deleted: [{ type: i0.Output, args: ["deleted"] }], cancelled: [{ type: i0.Output, args: ["cancelled"] }] } });
|
|
4331
|
+
|
|
4332
|
+
var taonCmsPost_component = /*#__PURE__*/Object.freeze({
|
|
4333
|
+
__proto__: null,
|
|
4334
|
+
TaonCmsPostComponent: TaonCmsPostComponent
|
|
4335
|
+
});
|
|
4336
|
+
|
|
4337
|
+
//#endregion
|
|
4338
|
+
const TaonCmsPostRoutes = [
|
|
4339
|
+
{
|
|
4340
|
+
path: '',
|
|
4341
|
+
loadComponent: () => Promise.resolve().then(function () { return taonCmsPost_component; }).then(m => m.TaonCmsPostComponent),
|
|
4342
|
+
children: [
|
|
4343
|
+
// adminLazyRoute({
|
|
4344
|
+
// path: 'dashboard',
|
|
4345
|
+
// menuItem: 'Dashboard',
|
|
4346
|
+
// icon: 'dashboard',
|
|
4347
|
+
// expandable: false,
|
|
4348
|
+
// loader: () =>
|
|
4349
|
+
// import('./anothermodule.routes').then(m => m.DashboardRoutes),
|
|
4350
|
+
// }),
|
|
4351
|
+
],
|
|
4352
|
+
},
|
|
4353
|
+
];
|
|
4354
|
+
/**
|
|
4355
|
+
* By default exporting TaonCmsPostRoutes,
|
|
4356
|
+
* the command `taon generate:app:routes`
|
|
4357
|
+
* will automatically add them to the root routes in ./src/app.ts.
|
|
4358
|
+
*/
|
|
4359
|
+
// export default TaonCmsPostRoutes;
|
|
4360
|
+
|
|
4361
|
+
class TaonCmsPostDetailsPageComponent {
|
|
4362
|
+
constructor() {
|
|
4363
|
+
this.post$ = inject(ActivatedRoute).data.pipe(map$1(data => data['post']));
|
|
4364
|
+
}
|
|
4365
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostDetailsPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4366
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsPostDetailsPageComponent, isStandalone: true, selector: "taon-cms-post-details-page", ngImport: i0, template: `
|
|
4367
|
+
@if (post$ | async; as post) {
|
|
4368
|
+
<a mat-button routerLink="../">Back to Posts</a>
|
|
4369
|
+
<taon-cms-post [post]="post"></taon-cms-post>
|
|
4370
|
+
}
|
|
4371
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: TaonCmsPostComponent, selector: "taon-cms-post", inputs: ["post", "mode"], outputs: ["modeChange", "changed", "deleted", "cancelled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4372
|
+
}
|
|
4373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostDetailsPageComponent, decorators: [{
|
|
4374
|
+
type: Component,
|
|
4375
|
+
args: [{
|
|
4376
|
+
selector: 'taon-cms-post-details-page',
|
|
4377
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4378
|
+
imports: [AsyncPipe, MatButtonModule, RouterLink, TaonCmsPostComponent],
|
|
4379
|
+
template: `
|
|
4380
|
+
@if (post$ | async; as post) {
|
|
4381
|
+
<a mat-button routerLink="../">Back to Posts</a>
|
|
4382
|
+
<taon-cms-post [post]="post"></taon-cms-post>
|
|
4383
|
+
}
|
|
4384
|
+
`,
|
|
4385
|
+
}]
|
|
4386
|
+
}] });
|
|
4387
|
+
|
|
4388
|
+
var taonCmsPostDetailsPage_component = /*#__PURE__*/Object.freeze({
|
|
4389
|
+
__proto__: null,
|
|
4390
|
+
TaonCmsPostDetailsPageComponent: TaonCmsPostDetailsPageComponent
|
|
4391
|
+
});
|
|
4392
|
+
|
|
4393
|
+
class TaonCmsPostEditDialogComponent {
|
|
4394
|
+
constructor() {
|
|
4395
|
+
this.data = inject(MAT_DIALOG_DATA);
|
|
4396
|
+
this.editor = viewChild(TaonCmsPostComponent, ...(ngDevMode ? [{ debugName: "editor" }] : []));
|
|
4397
|
+
this.changed = new EventEmitter();
|
|
4398
|
+
this.ref = inject((MatDialogRef));
|
|
4399
|
+
}
|
|
4400
|
+
close() {
|
|
4401
|
+
if (!this.editor()?.busy() && !this.editor()?.dialogOpen()) {
|
|
4402
|
+
this.ref.close();
|
|
4403
|
+
}
|
|
4404
|
+
}
|
|
4405
|
+
deleted(post) {
|
|
4406
|
+
this.ref.close(post);
|
|
4407
|
+
}
|
|
4408
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4409
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.9", type: TaonCmsPostEditDialogComponent, isStandalone: true, selector: "taon-cms-post-edit-dialog", viewQueries: [{ propertyName: "editor", first: true, predicate: TaonCmsPostComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<header class=\"dialog-header\">\n <h2>{{ data.mode === 'add' ? 'Add post' : 'Manage post' }}</h2>\n <button mat-icon-button type=\"button\" aria-label=\"Close post editor\" [disabled]=\"editor()?.busy() || editor()?.dialogOpen()\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</header>\n<taon-cms-post\n [post]=\"data.post ?? null\"\n [mode]=\"data.mode\"\n (changed)=\"changed.emit($event)\"\n (deleted)=\"deleted($event)\"\n (cancelled)=\"close()\" />\n", styles: [":host{display:block;height:100%;overflow-y:auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(136,136,136,.2)}.dialog-header h2{margin:0;font-size:1rem;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: TaonCmsPostComponent, selector: "taon-cms-post", inputs: ["post", "mode"], outputs: ["modeChange", "changed", "deleted", "cancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4410
|
+
}
|
|
4411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, decorators: [{
|
|
4412
|
+
type: Component,
|
|
4413
|
+
args: [{ selector: 'taon-cms-post-edit-dialog', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatButtonModule, MatDialogModule, MatIconModule, TaonCmsPostComponent], template: "<header class=\"dialog-header\">\n <h2>{{ data.mode === 'add' ? 'Add post' : 'Manage post' }}</h2>\n <button mat-icon-button type=\"button\" aria-label=\"Close post editor\" [disabled]=\"editor()?.busy() || editor()?.dialogOpen()\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</header>\n<taon-cms-post\n [post]=\"data.post ?? null\"\n [mode]=\"data.mode\"\n (changed)=\"changed.emit($event)\"\n (deleted)=\"deleted($event)\"\n (cancelled)=\"close()\" />\n", styles: [":host{display:block;height:100%;overflow-y:auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(136,136,136,.2)}.dialog-header h2{margin:0;font-size:1rem;font-weight:500}\n"] }]
|
|
4414
|
+
}], propDecorators: { editor: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TaonCmsPostComponent), { isSignal: true }] }] } });
|
|
4415
|
+
|
|
4416
|
+
//#region imports
|
|
4417
|
+
//#endregion
|
|
4418
|
+
class TaonCmsPostsBackofficeComponent {
|
|
4419
|
+
constructor() {
|
|
4420
|
+
this.taonCmsContentApiService = inject(TaonCmsContentApiService);
|
|
4421
|
+
this.posts = signal([], ...(ngDevMode ? [{ debugName: "posts" }] : []));
|
|
4422
|
+
this.loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
|
|
4423
|
+
this.deleting = signal(null, ...(ngDevMode ? [{ debugName: "deleting" }] : []));
|
|
4424
|
+
this.error = signal('', ...(ngDevMode ? [{ debugName: "error" }] : []));
|
|
4425
|
+
this.dialog = inject(MatDialog);
|
|
4426
|
+
this.route = inject(ActivatedRoute);
|
|
4427
|
+
this.router = inject(Router);
|
|
4428
|
+
this.destroyRef = inject(DestroyRef);
|
|
4429
|
+
this.cancelLoad$ = new Subject();
|
|
4430
|
+
this.columns = [
|
|
4431
|
+
{ header: 'ID', field: 'id', sortable: true },
|
|
4432
|
+
{ header: 'Title', field: 'title', sortable: true },
|
|
4433
|
+
{ header: 'Status', field: 'status', sortable: true },
|
|
4434
|
+
{
|
|
4435
|
+
header: 'Actions',
|
|
4436
|
+
field: 'actions',
|
|
4437
|
+
type: 'button',
|
|
4438
|
+
buttons: [
|
|
4439
|
+
{
|
|
4440
|
+
type: 'icon',
|
|
4441
|
+
icon: 'edit',
|
|
4442
|
+
tooltip: 'Edit post',
|
|
4443
|
+
click: (post) => this.edit(post),
|
|
4444
|
+
},
|
|
4445
|
+
{
|
|
4446
|
+
type: 'icon',
|
|
4447
|
+
icon: 'open_in_new',
|
|
4448
|
+
tooltip: 'Post details',
|
|
4449
|
+
click: (post) => this.openDetails(post),
|
|
4450
|
+
},
|
|
4451
|
+
{
|
|
4452
|
+
type: 'icon',
|
|
4453
|
+
icon: 'delete',
|
|
4454
|
+
tooltip: 'Delete (archive) post',
|
|
4455
|
+
disabled: (post) => post.status === 'archived' || this.deleting() !== null,
|
|
4456
|
+
click: (post) => this.delete(post),
|
|
4457
|
+
},
|
|
4458
|
+
],
|
|
4459
|
+
},
|
|
4460
|
+
];
|
|
4461
|
+
}
|
|
4462
|
+
get crud() {
|
|
4463
|
+
return this.taonCmsContentApiService.taonCmsContentController;
|
|
4464
|
+
}
|
|
4465
|
+
reload() {
|
|
4466
|
+
this.datatable.reload();
|
|
4467
|
+
}
|
|
4468
|
+
ngAfterViewInit() {
|
|
4469
|
+
this.reload();
|
|
4470
|
+
}
|
|
4471
|
+
add() {
|
|
4472
|
+
this.openEditor({ mode: 'add' });
|
|
4473
|
+
}
|
|
4474
|
+
edit(post) {
|
|
4475
|
+
this.openEditor({ mode: 'edit', post });
|
|
4476
|
+
}
|
|
4477
|
+
openDetails(post) {
|
|
4478
|
+
const postsRoute = this.route.parent;
|
|
4479
|
+
if (!postsRoute) {
|
|
4480
|
+
this.error.set('The Post details route is unavailable.');
|
|
4481
|
+
return;
|
|
4482
|
+
}
|
|
4483
|
+
void this.router.navigate([post.id], { relativeTo: postsRoute });
|
|
4484
|
+
}
|
|
4485
|
+
delete(post) {
|
|
4486
|
+
if (this.deleting() !== null || post.status === 'archived') {
|
|
4487
|
+
return;
|
|
4488
|
+
}
|
|
4489
|
+
this.deleting.set(post.id);
|
|
4490
|
+
const ref = this.dialog.open(TaonConfirmDialogComponent, {
|
|
4491
|
+
data: {
|
|
4492
|
+
title: 'Delete post?',
|
|
4493
|
+
message: 'This archives the post. It can be restored from its revisions.',
|
|
4494
|
+
confirmText: 'Delete',
|
|
4495
|
+
},
|
|
4496
|
+
});
|
|
4497
|
+
ref
|
|
4498
|
+
.afterClosed()
|
|
4499
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
4500
|
+
.subscribe(confirmed => {
|
|
4501
|
+
if (!confirmed) {
|
|
4502
|
+
this.deleting.set(null);
|
|
4503
|
+
return;
|
|
4504
|
+
}
|
|
4505
|
+
this.error.set('');
|
|
4506
|
+
this.taonCmsContentApiService
|
|
4507
|
+
.deleteContent(post.id, post.version)
|
|
4508
|
+
.pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.deleting.set(null)))
|
|
4509
|
+
.subscribe({
|
|
4510
|
+
next: () => this.reload(),
|
|
4511
|
+
error: (error) => {
|
|
4512
|
+
console.error('[taon-cms-posts-backoffice] Unable to delete post', error);
|
|
4513
|
+
this.error.set('The post could not be deleted. Refresh the table before retrying.');
|
|
4514
|
+
},
|
|
4515
|
+
});
|
|
4516
|
+
});
|
|
4517
|
+
}
|
|
4518
|
+
openEditor(data) {
|
|
4519
|
+
const ref = this.dialog.open(TaonCmsPostEditDialogComponent, {
|
|
4520
|
+
data,
|
|
4521
|
+
width: '100vw',
|
|
4522
|
+
height: '100dvh',
|
|
4523
|
+
maxWidth: '100vw',
|
|
4524
|
+
maxHeight: '100dvh',
|
|
4525
|
+
disableClose: true,
|
|
4526
|
+
autoFocus: 'first-tabbable',
|
|
4527
|
+
});
|
|
4528
|
+
ref.componentInstance.changed
|
|
4529
|
+
.pipe(takeUntil(ref.afterClosed()), takeUntilDestroyed(this.destroyRef))
|
|
4530
|
+
.subscribe(() => this.reload());
|
|
4531
|
+
}
|
|
4532
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostsBackofficeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4533
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsPostsBackofficeComponent, isStandalone: true, selector: "app-taon-cms-posts-backoffice", providers: [TaonCmsContentApiService], viewQueries: [{ propertyName: "datatable", first: true, predicate: TaonDatatableComponent, descendants: true }], ngImport: i0, template: "<h1>CMS posts</h1>\n@if (loading()) {\n <p role=\"status\">Loading posts...</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'status']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\">\n</taon-datatable>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: TaonDatatableComponent, selector: "taon-datatable", inputs: ["pageNumber", "pageSize", "pageSizeOptions", "allowedColumns", "expansionTemplate", "entityCrudController", "columns", "hideSearch", "hideAddButton", "safe", "searchMode", "callQueryMethod", "data", "showPaginator"], outputs: ["expansionChange", "addingItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4534
|
+
}
|
|
4535
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostsBackofficeComponent, decorators: [{
|
|
4536
|
+
type: Component,
|
|
4537
|
+
args: [{ selector: 'app-taon-cms-posts-backoffice', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatButtonModule, TaonDatatableComponent], providers: [TaonCmsContentApiService], template: "<h1>CMS posts</h1>\n@if (loading()) {\n <p role=\"status\">Loading posts...</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'status']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\">\n</taon-datatable>\n", styles: [":host{display:block}\n"] }]
|
|
4538
|
+
}], propDecorators: { datatable: [{
|
|
4539
|
+
type: ViewChild,
|
|
4540
|
+
args: [TaonDatatableComponent]
|
|
4541
|
+
}] } });
|
|
4542
|
+
|
|
4543
|
+
var taonCmsPostsBackoffice_component = /*#__PURE__*/Object.freeze({
|
|
4544
|
+
__proto__: null,
|
|
4545
|
+
TaonCmsPostsBackofficeComponent: TaonCmsPostsBackofficeComponent
|
|
4546
|
+
});
|
|
4547
|
+
|
|
4548
|
+
//#region imports
|
|
4549
|
+
//#endregion
|
|
4550
|
+
const resolvePost = async (route) => {
|
|
4551
|
+
const id = Number(route.paramMap.get('id'));
|
|
4552
|
+
if (!Number.isSafeInteger(id) || id <= 0) {
|
|
4553
|
+
throw new Error('Invalid Post ID');
|
|
4554
|
+
}
|
|
4555
|
+
const apiService = inject(TaonCmsContentApiService);
|
|
4556
|
+
const post = (await apiService.taonCmsContentController.getBy(id).request())
|
|
4557
|
+
.body.json;
|
|
4558
|
+
if (!post) {
|
|
4559
|
+
throw new Error('Post not found');
|
|
4560
|
+
}
|
|
4561
|
+
return post;
|
|
4562
|
+
};
|
|
4563
|
+
const TaonCmsPostsBackofficeRoutes = [
|
|
4564
|
+
{
|
|
4565
|
+
path: '',
|
|
4566
|
+
pathMatch: 'full',
|
|
4567
|
+
loadComponent: () => Promise.resolve().then(function () { return taonCmsPostsBackoffice_component; }).then(m => m.TaonCmsPostsBackofficeComponent),
|
|
4568
|
+
},
|
|
4569
|
+
{
|
|
4570
|
+
path: ':id',
|
|
4571
|
+
data: { hideInNavigation: true },
|
|
4572
|
+
providers: [TaonCmsContentApiService],
|
|
4573
|
+
resolve: { post: resolvePost },
|
|
4574
|
+
loadComponent: () => Promise.resolve().then(function () { return taonCmsPostDetailsPage_component; }).then(m => m.TaonCmsPostDetailsPageComponent),
|
|
4575
|
+
},
|
|
4576
|
+
];
|
|
4577
|
+
/**
|
|
4578
|
+
* By default exporting TaonCmsPostsBackofficeRoutes,
|
|
4579
|
+
* the command `taon generate:app:routes`
|
|
4580
|
+
* will automatically add them to the root routes in ./src/app.ts.
|
|
4581
|
+
*/
|
|
4582
|
+
// export default TaonCmsPostsBackofficeRoutes;
|
|
4583
|
+
|
|
2744
4584
|
// @ts-nocheck
|
|
2745
4585
|
// This file is auto-generated during init process. Do not modify.
|
|
2746
4586
|
// This disable this auto generate file.
|
|
@@ -2750,9 +4590,561 @@ var TaonCmsTagUtils;
|
|
|
2750
4590
|
/* */
|
|
2751
4591
|
var index = {};
|
|
2752
4592
|
|
|
4593
|
+
var index$1 = /*#__PURE__*/Object.freeze({
|
|
4594
|
+
__proto__: null,
|
|
4595
|
+
APP_ID: APP_ID,
|
|
4596
|
+
BUILD_BASE_HREF: BUILD_BASE_HREF,
|
|
4597
|
+
BUILD_FRAMEWORK_CLI_NAME: BUILD_FRAMEWORK_CLI_NAME,
|
|
4598
|
+
CURRENT_PACKAGE_TAON_VERSION: CURRENT_PACKAGE_TAON_VERSION,
|
|
4599
|
+
CURRENT_PACKAGE_VERSION: CURRENT_PACKAGE_VERSION,
|
|
4600
|
+
ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF: ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF,
|
|
4601
|
+
ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS,
|
|
4602
|
+
ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE: ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE,
|
|
4603
|
+
ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH: ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH,
|
|
4604
|
+
ENV_ANGULAR_NODE_APP_BUILD_PROD: ENV_ANGULAR_NODE_APP_BUILD_PROD,
|
|
4605
|
+
ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER,
|
|
4606
|
+
ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME: ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME,
|
|
4607
|
+
ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME: ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME,
|
|
4608
|
+
ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL: ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL,
|
|
4609
|
+
ENV_ANGULAR_NODE_APP_BUILD_SSR: ENV_ANGULAR_NODE_APP_BUILD_SSR,
|
|
4610
|
+
ENV_ANGULAR_NODE_APP_BUILD_WATCH: ENV_ANGULAR_NODE_APP_BUILD_WATCH,
|
|
4611
|
+
ENV_ANGULAR_NODE_APP_BUILD_WEBSQL: ENV_ANGULAR_NODE_APP_BUILD_WEBSQL,
|
|
4612
|
+
ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID: ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID,
|
|
4613
|
+
ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET: ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET,
|
|
4614
|
+
ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS: ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS,
|
|
4615
|
+
ENV_ANGULAR_NODE_APP_CONTAINER_END: ENV_ANGULAR_NODE_APP_CONTAINER_END,
|
|
4616
|
+
ENV_ANGULAR_NODE_APP_CONTAINER_ONLY: ENV_ANGULAR_NODE_APP_CONTAINER_ONLY,
|
|
4617
|
+
ENV_ANGULAR_NODE_APP_CONTAINER_SKIP: ENV_ANGULAR_NODE_APP_CONTAINER_SKIP,
|
|
4618
|
+
ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED: ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED,
|
|
4619
|
+
ENV_ANGULAR_NODE_APP_CONTAINER_START: ENV_ANGULAR_NODE_APP_CONTAINER_START,
|
|
4620
|
+
ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
|
|
4621
|
+
ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
|
|
4622
|
+
ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS,
|
|
4623
|
+
ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP: ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP,
|
|
4624
|
+
ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER: ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER,
|
|
4625
|
+
ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER: ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER,
|
|
4626
|
+
ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB: ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB,
|
|
4627
|
+
ENV_ANGULAR_NODE_APP_FINISH_CALLBACK: ENV_ANGULAR_NODE_APP_FINISH_CALLBACK,
|
|
4628
|
+
ENV_ANGULAR_NODE_APP_INIT_BRANDING: ENV_ANGULAR_NODE_APP_INIT_BRANDING,
|
|
4629
|
+
ENV_ANGULAR_NODE_APP_INIT_STRUCT: ENV_ANGULAR_NODE_APP_INIT_STRUCT,
|
|
4630
|
+
ENV_ANGULAR_NODE_APP_IS_CI_PROCESS: ENV_ANGULAR_NODE_APP_IS_CI_PROCESS,
|
|
4631
|
+
ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
|
|
4632
|
+
ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
|
|
4633
|
+
ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
|
|
4634
|
+
ENV_ANGULAR_NODE_APP_PURPOSE: ENV_ANGULAR_NODE_APP_PURPOSE,
|
|
4635
|
+
ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION: ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION,
|
|
4636
|
+
ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME,
|
|
4637
|
+
ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG,
|
|
4638
|
+
ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS: ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS,
|
|
4639
|
+
ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES,
|
|
4640
|
+
ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY: ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY,
|
|
4641
|
+
ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE: ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE,
|
|
4642
|
+
ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY: ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY,
|
|
4643
|
+
ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME: ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME,
|
|
4644
|
+
ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER: ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER,
|
|
4645
|
+
ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY: ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY,
|
|
4646
|
+
ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS: ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS,
|
|
4647
|
+
ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
|
|
4648
|
+
ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
|
|
4649
|
+
ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
|
|
4650
|
+
ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS: ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS,
|
|
4651
|
+
ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
|
|
4652
|
+
ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY,
|
|
4653
|
+
ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
|
|
4654
|
+
ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE: ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE,
|
|
4655
|
+
ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE,
|
|
4656
|
+
ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
|
|
4657
|
+
ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION: ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION,
|
|
4658
|
+
ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS,
|
|
4659
|
+
ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING,
|
|
4660
|
+
ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY,
|
|
4661
|
+
ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH,
|
|
4662
|
+
ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION,
|
|
4663
|
+
ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
|
|
4664
|
+
ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH,
|
|
4665
|
+
ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP: ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP,
|
|
4666
|
+
ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT: ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT,
|
|
4667
|
+
ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH,
|
|
4668
|
+
ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN: ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN,
|
|
4669
|
+
ENV_ANGULAR_NODE_APP_WEBSITE_TITLE: ENV_ANGULAR_NODE_APP_WEBSITE_TITLE,
|
|
4670
|
+
ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN: ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN,
|
|
4671
|
+
ENV_DOCS_WEBAPP_BUILD_BASE_HREF: ENV_DOCS_WEBAPP_BUILD_BASE_HREF,
|
|
4672
|
+
ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS,
|
|
4673
|
+
ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE: ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE,
|
|
4674
|
+
ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH: ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH,
|
|
4675
|
+
ENV_DOCS_WEBAPP_BUILD_PROD: ENV_DOCS_WEBAPP_BUILD_PROD,
|
|
4676
|
+
ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER,
|
|
4677
|
+
ENV_DOCS_WEBAPP_BUILD_PWA_NAME: ENV_DOCS_WEBAPP_BUILD_PWA_NAME,
|
|
4678
|
+
ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME: ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME,
|
|
4679
|
+
ENV_DOCS_WEBAPP_BUILD_PWA_START_URL: ENV_DOCS_WEBAPP_BUILD_PWA_START_URL,
|
|
4680
|
+
ENV_DOCS_WEBAPP_BUILD_SSR: ENV_DOCS_WEBAPP_BUILD_SSR,
|
|
4681
|
+
ENV_DOCS_WEBAPP_BUILD_WATCH: ENV_DOCS_WEBAPP_BUILD_WATCH,
|
|
4682
|
+
ENV_DOCS_WEBAPP_BUILD_WEBSQL: ENV_DOCS_WEBAPP_BUILD_WEBSQL,
|
|
4683
|
+
ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID: ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID,
|
|
4684
|
+
ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET: ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET,
|
|
4685
|
+
ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS: ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS,
|
|
4686
|
+
ENV_DOCS_WEBAPP_CONTAINER_END: ENV_DOCS_WEBAPP_CONTAINER_END,
|
|
4687
|
+
ENV_DOCS_WEBAPP_CONTAINER_ONLY: ENV_DOCS_WEBAPP_CONTAINER_ONLY,
|
|
4688
|
+
ENV_DOCS_WEBAPP_CONTAINER_SKIP: ENV_DOCS_WEBAPP_CONTAINER_SKIP,
|
|
4689
|
+
ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED: ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED,
|
|
4690
|
+
ENV_DOCS_WEBAPP_CONTAINER_START: ENV_DOCS_WEBAPP_CONTAINER_START,
|
|
4691
|
+
ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
|
|
4692
|
+
ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
|
|
4693
|
+
ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS,
|
|
4694
|
+
ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP: ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP,
|
|
4695
|
+
ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER: ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER,
|
|
4696
|
+
ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER: ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER,
|
|
4697
|
+
ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB: ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB,
|
|
4698
|
+
ENV_DOCS_WEBAPP_FINISH_CALLBACK: ENV_DOCS_WEBAPP_FINISH_CALLBACK,
|
|
4699
|
+
ENV_DOCS_WEBAPP_INIT_BRANDING: ENV_DOCS_WEBAPP_INIT_BRANDING,
|
|
4700
|
+
ENV_DOCS_WEBAPP_INIT_STRUCT: ENV_DOCS_WEBAPP_INIT_STRUCT,
|
|
4701
|
+
ENV_DOCS_WEBAPP_IS_CI_PROCESS: ENV_DOCS_WEBAPP_IS_CI_PROCESS,
|
|
4702
|
+
ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
|
|
4703
|
+
ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
|
|
4704
|
+
ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
|
|
4705
|
+
ENV_DOCS_WEBAPP_PURPOSE: ENV_DOCS_WEBAPP_PURPOSE,
|
|
4706
|
+
ENV_DOCS_WEBAPP_RECURSIVE_ACTION: ENV_DOCS_WEBAPP_RECURSIVE_ACTION,
|
|
4707
|
+
ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME,
|
|
4708
|
+
ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG,
|
|
4709
|
+
ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS: ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS,
|
|
4710
|
+
ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES,
|
|
4711
|
+
ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY: ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY,
|
|
4712
|
+
ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE: ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE,
|
|
4713
|
+
ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY: ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY,
|
|
4714
|
+
ENV_DOCS_WEBAPP_RELEASE_ENV_NAME: ENV_DOCS_WEBAPP_RELEASE_ENV_NAME,
|
|
4715
|
+
ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER: ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER,
|
|
4716
|
+
ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY: ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY,
|
|
4717
|
+
ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS: ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS,
|
|
4718
|
+
ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
|
|
4719
|
+
ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
|
|
4720
|
+
ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
|
|
4721
|
+
ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS: ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS,
|
|
4722
|
+
ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
|
|
4723
|
+
ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY,
|
|
4724
|
+
ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
|
|
4725
|
+
ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE: ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE,
|
|
4726
|
+
ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE,
|
|
4727
|
+
ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
|
|
4728
|
+
ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION: ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION,
|
|
4729
|
+
ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS,
|
|
4730
|
+
ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING: ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING,
|
|
4731
|
+
ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY: ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY,
|
|
4732
|
+
ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH: ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH,
|
|
4733
|
+
ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION: ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION,
|
|
4734
|
+
ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
|
|
4735
|
+
ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH: ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH,
|
|
4736
|
+
ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP: ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP,
|
|
4737
|
+
ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT: ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT,
|
|
4738
|
+
ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH,
|
|
4739
|
+
ENV_DOCS_WEBAPP_WEBSITE_DOMAIN: ENV_DOCS_WEBAPP_WEBSITE_DOMAIN,
|
|
4740
|
+
ENV_DOCS_WEBAPP_WEBSITE_TITLE: ENV_DOCS_WEBAPP_WEBSITE_TITLE,
|
|
4741
|
+
ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN: ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN,
|
|
4742
|
+
ENV_ELECTRON_APP_BUILD_BASE_HREF: ENV_ELECTRON_APP_BUILD_BASE_HREF,
|
|
4743
|
+
ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS,
|
|
4744
|
+
ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE: ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE,
|
|
4745
|
+
ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH: ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH,
|
|
4746
|
+
ENV_ELECTRON_APP_BUILD_PROD: ENV_ELECTRON_APP_BUILD_PROD,
|
|
4747
|
+
ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER,
|
|
4748
|
+
ENV_ELECTRON_APP_BUILD_PWA_NAME: ENV_ELECTRON_APP_BUILD_PWA_NAME,
|
|
4749
|
+
ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME: ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME,
|
|
4750
|
+
ENV_ELECTRON_APP_BUILD_PWA_START_URL: ENV_ELECTRON_APP_BUILD_PWA_START_URL,
|
|
4751
|
+
ENV_ELECTRON_APP_BUILD_SSR: ENV_ELECTRON_APP_BUILD_SSR,
|
|
4752
|
+
ENV_ELECTRON_APP_BUILD_WATCH: ENV_ELECTRON_APP_BUILD_WATCH,
|
|
4753
|
+
ENV_ELECTRON_APP_BUILD_WEBSQL: ENV_ELECTRON_APP_BUILD_WEBSQL,
|
|
4754
|
+
ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID: ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID,
|
|
4755
|
+
ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET: ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET,
|
|
4756
|
+
ENV_ELECTRON_APP_CONFIG_SUPER_USERS: ENV_ELECTRON_APP_CONFIG_SUPER_USERS,
|
|
4757
|
+
ENV_ELECTRON_APP_CONTAINER_END: ENV_ELECTRON_APP_CONTAINER_END,
|
|
4758
|
+
ENV_ELECTRON_APP_CONTAINER_ONLY: ENV_ELECTRON_APP_CONTAINER_ONLY,
|
|
4759
|
+
ENV_ELECTRON_APP_CONTAINER_SKIP: ENV_ELECTRON_APP_CONTAINER_SKIP,
|
|
4760
|
+
ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED: ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED,
|
|
4761
|
+
ENV_ELECTRON_APP_CONTAINER_START: ENV_ELECTRON_APP_CONTAINER_START,
|
|
4762
|
+
ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
|
|
4763
|
+
ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
|
|
4764
|
+
ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS,
|
|
4765
|
+
ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP: ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP,
|
|
4766
|
+
ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER: ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER,
|
|
4767
|
+
ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER: ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER,
|
|
4768
|
+
ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB: ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB,
|
|
4769
|
+
ENV_ELECTRON_APP_FINISH_CALLBACK: ENV_ELECTRON_APP_FINISH_CALLBACK,
|
|
4770
|
+
ENV_ELECTRON_APP_INIT_BRANDING: ENV_ELECTRON_APP_INIT_BRANDING,
|
|
4771
|
+
ENV_ELECTRON_APP_INIT_STRUCT: ENV_ELECTRON_APP_INIT_STRUCT,
|
|
4772
|
+
ENV_ELECTRON_APP_IS_CI_PROCESS: ENV_ELECTRON_APP_IS_CI_PROCESS,
|
|
4773
|
+
ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
|
|
4774
|
+
ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
|
|
4775
|
+
ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
|
|
4776
|
+
ENV_ELECTRON_APP_PURPOSE: ENV_ELECTRON_APP_PURPOSE,
|
|
4777
|
+
ENV_ELECTRON_APP_RECURSIVE_ACTION: ENV_ELECTRON_APP_RECURSIVE_ACTION,
|
|
4778
|
+
ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME,
|
|
4779
|
+
ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG,
|
|
4780
|
+
ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS: ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS,
|
|
4781
|
+
ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES,
|
|
4782
|
+
ENV_ELECTRON_APP_RELEASE_CLI_MINIFY: ENV_ELECTRON_APP_RELEASE_CLI_MINIFY,
|
|
4783
|
+
ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE: ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE,
|
|
4784
|
+
ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY: ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY,
|
|
4785
|
+
ENV_ELECTRON_APP_RELEASE_ENV_NAME: ENV_ELECTRON_APP_RELEASE_ENV_NAME,
|
|
4786
|
+
ENV_ELECTRON_APP_RELEASE_ENV_NUMBER: ENV_ELECTRON_APP_RELEASE_ENV_NUMBER,
|
|
4787
|
+
ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY: ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY,
|
|
4788
|
+
ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS: ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS,
|
|
4789
|
+
ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
|
|
4790
|
+
ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
|
|
4791
|
+
ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
|
|
4792
|
+
ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS: ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS,
|
|
4793
|
+
ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
|
|
4794
|
+
ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY,
|
|
4795
|
+
ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
|
|
4796
|
+
ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE: ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE,
|
|
4797
|
+
ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE,
|
|
4798
|
+
ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
|
|
4799
|
+
ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION: ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION,
|
|
4800
|
+
ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS,
|
|
4801
|
+
ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING: ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING,
|
|
4802
|
+
ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY: ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY,
|
|
4803
|
+
ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH: ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH,
|
|
4804
|
+
ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION: ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION,
|
|
4805
|
+
ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
|
|
4806
|
+
ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH: ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH,
|
|
4807
|
+
ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP: ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP,
|
|
4808
|
+
ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT: ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT,
|
|
4809
|
+
ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH,
|
|
4810
|
+
ENV_ELECTRON_APP_WEBSITE_DOMAIN: ENV_ELECTRON_APP_WEBSITE_DOMAIN,
|
|
4811
|
+
ENV_ELECTRON_APP_WEBSITE_TITLE: ENV_ELECTRON_APP_WEBSITE_TITLE,
|
|
4812
|
+
ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN: ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN,
|
|
4813
|
+
ENV_MOBILE_APP_BUILD_BASE_HREF: ENV_MOBILE_APP_BUILD_BASE_HREF,
|
|
4814
|
+
ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS,
|
|
4815
|
+
ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE: ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE,
|
|
4816
|
+
ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH: ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH,
|
|
4817
|
+
ENV_MOBILE_APP_BUILD_PROD: ENV_MOBILE_APP_BUILD_PROD,
|
|
4818
|
+
ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER,
|
|
4819
|
+
ENV_MOBILE_APP_BUILD_PWA_NAME: ENV_MOBILE_APP_BUILD_PWA_NAME,
|
|
4820
|
+
ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME: ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME,
|
|
4821
|
+
ENV_MOBILE_APP_BUILD_PWA_START_URL: ENV_MOBILE_APP_BUILD_PWA_START_URL,
|
|
4822
|
+
ENV_MOBILE_APP_BUILD_SSR: ENV_MOBILE_APP_BUILD_SSR,
|
|
4823
|
+
ENV_MOBILE_APP_BUILD_WATCH: ENV_MOBILE_APP_BUILD_WATCH,
|
|
4824
|
+
ENV_MOBILE_APP_BUILD_WEBSQL: ENV_MOBILE_APP_BUILD_WEBSQL,
|
|
4825
|
+
ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID: ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID,
|
|
4826
|
+
ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET: ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET,
|
|
4827
|
+
ENV_MOBILE_APP_CONFIG_SUPER_USERS: ENV_MOBILE_APP_CONFIG_SUPER_USERS,
|
|
4828
|
+
ENV_MOBILE_APP_CONTAINER_END: ENV_MOBILE_APP_CONTAINER_END,
|
|
4829
|
+
ENV_MOBILE_APP_CONTAINER_ONLY: ENV_MOBILE_APP_CONTAINER_ONLY,
|
|
4830
|
+
ENV_MOBILE_APP_CONTAINER_SKIP: ENV_MOBILE_APP_CONTAINER_SKIP,
|
|
4831
|
+
ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED: ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED,
|
|
4832
|
+
ENV_MOBILE_APP_CONTAINER_START: ENV_MOBILE_APP_CONTAINER_START,
|
|
4833
|
+
ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
|
|
4834
|
+
ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
|
|
4835
|
+
ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS,
|
|
4836
|
+
ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP: ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP,
|
|
4837
|
+
ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER: ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER,
|
|
4838
|
+
ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER: ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER,
|
|
4839
|
+
ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB: ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB,
|
|
4840
|
+
ENV_MOBILE_APP_FINISH_CALLBACK: ENV_MOBILE_APP_FINISH_CALLBACK,
|
|
4841
|
+
ENV_MOBILE_APP_INIT_BRANDING: ENV_MOBILE_APP_INIT_BRANDING,
|
|
4842
|
+
ENV_MOBILE_APP_INIT_STRUCT: ENV_MOBILE_APP_INIT_STRUCT,
|
|
4843
|
+
ENV_MOBILE_APP_IS_CI_PROCESS: ENV_MOBILE_APP_IS_CI_PROCESS,
|
|
4844
|
+
ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
|
|
4845
|
+
ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
|
|
4846
|
+
ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
|
|
4847
|
+
ENV_MOBILE_APP_PURPOSE: ENV_MOBILE_APP_PURPOSE,
|
|
4848
|
+
ENV_MOBILE_APP_RECURSIVE_ACTION: ENV_MOBILE_APP_RECURSIVE_ACTION,
|
|
4849
|
+
ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME,
|
|
4850
|
+
ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG,
|
|
4851
|
+
ENV_MOBILE_APP_RELEASE_CLI_COMPRESS: ENV_MOBILE_APP_RELEASE_CLI_COMPRESS,
|
|
4852
|
+
ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES,
|
|
4853
|
+
ENV_MOBILE_APP_RELEASE_CLI_MINIFY: ENV_MOBILE_APP_RELEASE_CLI_MINIFY,
|
|
4854
|
+
ENV_MOBILE_APP_RELEASE_CLI_OBSCURE: ENV_MOBILE_APP_RELEASE_CLI_OBSCURE,
|
|
4855
|
+
ENV_MOBILE_APP_RELEASE_CLI_UGLIFY: ENV_MOBILE_APP_RELEASE_CLI_UGLIFY,
|
|
4856
|
+
ENV_MOBILE_APP_RELEASE_ENV_NAME: ENV_MOBILE_APP_RELEASE_ENV_NAME,
|
|
4857
|
+
ENV_MOBILE_APP_RELEASE_ENV_NUMBER: ENV_MOBILE_APP_RELEASE_ENV_NUMBER,
|
|
4858
|
+
ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY: ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY,
|
|
4859
|
+
ENV_MOBILE_APP_RELEASE_LIB_COMPRESS: ENV_MOBILE_APP_RELEASE_LIB_COMPRESS,
|
|
4860
|
+
ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
|
|
4861
|
+
ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
|
|
4862
|
+
ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
|
|
4863
|
+
ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS: ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS,
|
|
4864
|
+
ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
|
|
4865
|
+
ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY,
|
|
4866
|
+
ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
|
|
4867
|
+
ENV_MOBILE_APP_RELEASE_RELEASE_TYPE: ENV_MOBILE_APP_RELEASE_RELEASE_TYPE,
|
|
4868
|
+
ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE,
|
|
4869
|
+
ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
|
|
4870
|
+
ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION: ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION,
|
|
4871
|
+
ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS,
|
|
4872
|
+
ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING: ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING,
|
|
4873
|
+
ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY: ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY,
|
|
4874
|
+
ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH: ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH,
|
|
4875
|
+
ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION: ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION,
|
|
4876
|
+
ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
|
|
4877
|
+
ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH: ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH,
|
|
4878
|
+
ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP: ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP,
|
|
4879
|
+
ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT: ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT,
|
|
4880
|
+
ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH,
|
|
4881
|
+
ENV_MOBILE_APP_WEBSITE_DOMAIN: ENV_MOBILE_APP_WEBSITE_DOMAIN,
|
|
4882
|
+
ENV_MOBILE_APP_WEBSITE_TITLE: ENV_MOBILE_APP_WEBSITE_TITLE,
|
|
4883
|
+
ENV_MOBILE_APP_WEBSITE_USE_DOMAIN: ENV_MOBILE_APP_WEBSITE_USE_DOMAIN,
|
|
4884
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF,
|
|
4885
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS,
|
|
4886
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE,
|
|
4887
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH,
|
|
4888
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD,
|
|
4889
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER,
|
|
4890
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME,
|
|
4891
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME,
|
|
4892
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL,
|
|
4893
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR,
|
|
4894
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH,
|
|
4895
|
+
ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL,
|
|
4896
|
+
ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID: ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID,
|
|
4897
|
+
ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET: ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET,
|
|
4898
|
+
ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS: ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS,
|
|
4899
|
+
ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END,
|
|
4900
|
+
ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY,
|
|
4901
|
+
ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP,
|
|
4902
|
+
ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED,
|
|
4903
|
+
ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START,
|
|
4904
|
+
ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
|
|
4905
|
+
ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
|
|
4906
|
+
ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS,
|
|
4907
|
+
ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP: ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP,
|
|
4908
|
+
ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER: ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER,
|
|
4909
|
+
ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER: ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER,
|
|
4910
|
+
ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB: ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB,
|
|
4911
|
+
ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK: ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK,
|
|
4912
|
+
ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING: ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING,
|
|
4913
|
+
ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT: ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT,
|
|
4914
|
+
ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS: ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS,
|
|
4915
|
+
ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
|
|
4916
|
+
ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
|
|
4917
|
+
ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
|
|
4918
|
+
ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE: ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE,
|
|
4919
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION: ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION,
|
|
4920
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME,
|
|
4921
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG,
|
|
4922
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS,
|
|
4923
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES,
|
|
4924
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY,
|
|
4925
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE,
|
|
4926
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY,
|
|
4927
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME,
|
|
4928
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER,
|
|
4929
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY,
|
|
4930
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS,
|
|
4931
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
|
|
4932
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
|
|
4933
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
|
|
4934
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS,
|
|
4935
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
|
|
4936
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY,
|
|
4937
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
|
|
4938
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE,
|
|
4939
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE,
|
|
4940
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
|
|
4941
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION,
|
|
4942
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS,
|
|
4943
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING,
|
|
4944
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY,
|
|
4945
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH,
|
|
4946
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION,
|
|
4947
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
|
|
4948
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH,
|
|
4949
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP,
|
|
4950
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT,
|
|
4951
|
+
ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH,
|
|
4952
|
+
ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN: ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN,
|
|
4953
|
+
ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE: ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE,
|
|
4954
|
+
ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN: ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN,
|
|
4955
|
+
ENV_VSCODE_PLUGIN_BUILD_BASE_HREF: ENV_VSCODE_PLUGIN_BUILD_BASE_HREF,
|
|
4956
|
+
ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS,
|
|
4957
|
+
ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE: ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE,
|
|
4958
|
+
ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH: ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH,
|
|
4959
|
+
ENV_VSCODE_PLUGIN_BUILD_PROD: ENV_VSCODE_PLUGIN_BUILD_PROD,
|
|
4960
|
+
ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER,
|
|
4961
|
+
ENV_VSCODE_PLUGIN_BUILD_PWA_NAME: ENV_VSCODE_PLUGIN_BUILD_PWA_NAME,
|
|
4962
|
+
ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME: ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME,
|
|
4963
|
+
ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL: ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL,
|
|
4964
|
+
ENV_VSCODE_PLUGIN_BUILD_SSR: ENV_VSCODE_PLUGIN_BUILD_SSR,
|
|
4965
|
+
ENV_VSCODE_PLUGIN_BUILD_WATCH: ENV_VSCODE_PLUGIN_BUILD_WATCH,
|
|
4966
|
+
ENV_VSCODE_PLUGIN_BUILD_WEBSQL: ENV_VSCODE_PLUGIN_BUILD_WEBSQL,
|
|
4967
|
+
ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID: ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID,
|
|
4968
|
+
ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET: ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET,
|
|
4969
|
+
ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS: ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS,
|
|
4970
|
+
ENV_VSCODE_PLUGIN_CONTAINER_END: ENV_VSCODE_PLUGIN_CONTAINER_END,
|
|
4971
|
+
ENV_VSCODE_PLUGIN_CONTAINER_ONLY: ENV_VSCODE_PLUGIN_CONTAINER_ONLY,
|
|
4972
|
+
ENV_VSCODE_PLUGIN_CONTAINER_SKIP: ENV_VSCODE_PLUGIN_CONTAINER_SKIP,
|
|
4973
|
+
ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED: ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED,
|
|
4974
|
+
ENV_VSCODE_PLUGIN_CONTAINER_START: ENV_VSCODE_PLUGIN_CONTAINER_START,
|
|
4975
|
+
ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
|
|
4976
|
+
ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
|
|
4977
|
+
ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS,
|
|
4978
|
+
ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP: ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP,
|
|
4979
|
+
ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER: ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER,
|
|
4980
|
+
ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER: ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER,
|
|
4981
|
+
ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB: ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB,
|
|
4982
|
+
ENV_VSCODE_PLUGIN_FINISH_CALLBACK: ENV_VSCODE_PLUGIN_FINISH_CALLBACK,
|
|
4983
|
+
ENV_VSCODE_PLUGIN_INIT_BRANDING: ENV_VSCODE_PLUGIN_INIT_BRANDING,
|
|
4984
|
+
ENV_VSCODE_PLUGIN_INIT_STRUCT: ENV_VSCODE_PLUGIN_INIT_STRUCT,
|
|
4985
|
+
ENV_VSCODE_PLUGIN_IS_CI_PROCESS: ENV_VSCODE_PLUGIN_IS_CI_PROCESS,
|
|
4986
|
+
ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
|
|
4987
|
+
ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
|
|
4988
|
+
ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
|
|
4989
|
+
ENV_VSCODE_PLUGIN_PURPOSE: ENV_VSCODE_PLUGIN_PURPOSE,
|
|
4990
|
+
ENV_VSCODE_PLUGIN_RECURSIVE_ACTION: ENV_VSCODE_PLUGIN_RECURSIVE_ACTION,
|
|
4991
|
+
ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME,
|
|
4992
|
+
ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG,
|
|
4993
|
+
ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS: ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS,
|
|
4994
|
+
ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES,
|
|
4995
|
+
ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY: ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY,
|
|
4996
|
+
ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE: ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE,
|
|
4997
|
+
ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY: ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY,
|
|
4998
|
+
ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME: ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME,
|
|
4999
|
+
ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER: ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER,
|
|
5000
|
+
ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY: ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY,
|
|
5001
|
+
ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS: ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS,
|
|
5002
|
+
ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
|
|
5003
|
+
ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
|
|
5004
|
+
ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
|
|
5005
|
+
ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS: ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS,
|
|
5006
|
+
ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
|
|
5007
|
+
ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY,
|
|
5008
|
+
ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
|
|
5009
|
+
ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE: ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE,
|
|
5010
|
+
ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE,
|
|
5011
|
+
ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
|
|
5012
|
+
ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION: ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION,
|
|
5013
|
+
ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS,
|
|
5014
|
+
ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING: ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING,
|
|
5015
|
+
ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY: ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY,
|
|
5016
|
+
ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH: ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH,
|
|
5017
|
+
ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION: ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION,
|
|
5018
|
+
ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
|
|
5019
|
+
ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH: ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH,
|
|
5020
|
+
ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP: ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP,
|
|
5021
|
+
ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT: ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT,
|
|
5022
|
+
ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH,
|
|
5023
|
+
ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN: ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN,
|
|
5024
|
+
ENV_VSCODE_PLUGIN_WEBSITE_TITLE: ENV_VSCODE_PLUGIN_WEBSITE_TITLE,
|
|
5025
|
+
ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN: ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN,
|
|
5026
|
+
MIGRATIONS_CLASSES_FOR_CmsContext: MIGRATIONS_CLASSES_FOR_CmsContext,
|
|
5027
|
+
get MyAppGroup () { return MyAppGroup; },
|
|
5028
|
+
get MyAppPermission () { return MyAppPermission; },
|
|
5029
|
+
get MyAppRole () { return MyAppRole; },
|
|
5030
|
+
PROJECT_NPM_NAME: PROJECT_NPM_NAME,
|
|
5031
|
+
TaonCmsAbstractContext: TaonCmsAbstractContext,
|
|
5032
|
+
TaonCmsAssetsBackofficeComponent: TaonCmsAssetsBackofficeComponent,
|
|
5033
|
+
TaonCmsAssetsBackofficeRoutes: TaonCmsAssetsBackofficeRoutes,
|
|
5034
|
+
TaonCmsBackofficeComponent: TaonCmsBackofficeComponent,
|
|
5035
|
+
TaonCmsBackofficeRoutes: TaonCmsBackofficeRoutes,
|
|
5036
|
+
TaonCmsCategoryAbstractContext: TaonCmsCategoryAbstractContext,
|
|
5037
|
+
TaonCmsCategoryApiService: TaonCmsCategoryApiService,
|
|
5038
|
+
get TaonCmsCategoryController () { return TaonCmsCategoryController; },
|
|
5039
|
+
TaonCmsCategoryDefaultsValues: TaonCmsCategoryDefaultsValues,
|
|
5040
|
+
get TaonCmsCategoryEntity () { return TaonCmsCategoryEntity; },
|
|
5041
|
+
get TaonCmsCategoryMiddleware () { return TaonCmsCategoryMiddleware; },
|
|
5042
|
+
get TaonCmsCategoryProvider () { return TaonCmsCategoryProvider; },
|
|
5043
|
+
get TaonCmsCategoryRepository () { return TaonCmsCategoryRepository; },
|
|
5044
|
+
get TaonCmsCategoryState () { return TaonCmsCategoryState; },
|
|
5045
|
+
get TaonCmsCategorySubscriber () { return TaonCmsCategorySubscriber; },
|
|
5046
|
+
get TaonCmsCategoryUtils () { return TaonCmsCategoryUtils; },
|
|
5047
|
+
TaonCmsCommentAbstractContext: TaonCmsCommentAbstractContext,
|
|
5048
|
+
TaonCmsCommentApiService: TaonCmsCommentApiService,
|
|
5049
|
+
get TaonCmsCommentController () { return TaonCmsCommentController; },
|
|
5050
|
+
TaonCmsCommentDefaultsValues: TaonCmsCommentDefaultsValues,
|
|
5051
|
+
get TaonCmsCommentEntity () { return TaonCmsCommentEntity; },
|
|
5052
|
+
get TaonCmsCommentMiddleware () { return TaonCmsCommentMiddleware; },
|
|
5053
|
+
get TaonCmsCommentProvider () { return TaonCmsCommentProvider; },
|
|
5054
|
+
get TaonCmsCommentRepository () { return TaonCmsCommentRepository; },
|
|
5055
|
+
get TaonCmsCommentState () { return TaonCmsCommentState; },
|
|
5056
|
+
get TaonCmsCommentSubscriber () { return TaonCmsCommentSubscriber; },
|
|
5057
|
+
get TaonCmsCommentUtils () { return TaonCmsCommentUtils; },
|
|
5058
|
+
TaonCmsContentAbstractContext: TaonCmsContentAbstractContext,
|
|
5059
|
+
TaonCmsContentApiService: TaonCmsContentApiService,
|
|
5060
|
+
TaonCmsContentAssetAbstractContext: TaonCmsContentAssetAbstractContext,
|
|
5061
|
+
TaonCmsContentAssetApiService: TaonCmsContentAssetApiService,
|
|
5062
|
+
get TaonCmsContentAssetController () { return TaonCmsContentAssetController; },
|
|
5063
|
+
TaonCmsContentAssetDefaultsValues: TaonCmsContentAssetDefaultsValues,
|
|
5064
|
+
get TaonCmsContentAssetEntity () { return TaonCmsContentAssetEntity; },
|
|
5065
|
+
get TaonCmsContentAssetMiddleware () { return TaonCmsContentAssetMiddleware; },
|
|
5066
|
+
get TaonCmsContentAssetProvider () { return TaonCmsContentAssetProvider; },
|
|
5067
|
+
get TaonCmsContentAssetRepository () { return TaonCmsContentAssetRepository; },
|
|
5068
|
+
get TaonCmsContentAssetState () { return TaonCmsContentAssetState; },
|
|
5069
|
+
get TaonCmsContentAssetSubscriber () { return TaonCmsContentAssetSubscriber; },
|
|
5070
|
+
get TaonCmsContentAssetUtils () { return TaonCmsContentAssetUtils; },
|
|
5071
|
+
TaonCmsContentConfigService: TaonCmsContentConfigService,
|
|
5072
|
+
get TaonCmsContentController () { return TaonCmsContentController; },
|
|
5073
|
+
TaonCmsContentDefaultsValues: TaonCmsContentDefaultsValues,
|
|
5074
|
+
get TaonCmsContentEntity () { return TaonCmsContentEntity; },
|
|
5075
|
+
get TaonCmsContentMiddleware () { return TaonCmsContentMiddleware; },
|
|
5076
|
+
TaonCmsContentPermissionAbstractContext: TaonCmsContentPermissionAbstractContext,
|
|
5077
|
+
TaonCmsContentPermissionApiService: TaonCmsContentPermissionApiService,
|
|
5078
|
+
get TaonCmsContentPermissionController () { return TaonCmsContentPermissionController; },
|
|
5079
|
+
TaonCmsContentPermissionDefaultsValues: TaonCmsContentPermissionDefaultsValues,
|
|
5080
|
+
get TaonCmsContentPermissionEntity () { return TaonCmsContentPermissionEntity; },
|
|
5081
|
+
get TaonCmsContentPermissionMiddleware () { return TaonCmsContentPermissionMiddleware; },
|
|
5082
|
+
get TaonCmsContentPermissionProvider () { return TaonCmsContentPermissionProvider; },
|
|
5083
|
+
get TaonCmsContentPermissionRepository () { return TaonCmsContentPermissionRepository; },
|
|
5084
|
+
get TaonCmsContentPermissionState () { return TaonCmsContentPermissionState; },
|
|
5085
|
+
get TaonCmsContentPermissionSubscriber () { return TaonCmsContentPermissionSubscriber; },
|
|
5086
|
+
get TaonCmsContentPermissionUtils () { return TaonCmsContentPermissionUtils; },
|
|
5087
|
+
get TaonCmsContentProvider () { return TaonCmsContentProvider; },
|
|
5088
|
+
get TaonCmsContentRepository () { return TaonCmsContentRepository; },
|
|
5089
|
+
TaonCmsContentRevisionAbstractContext: TaonCmsContentRevisionAbstractContext,
|
|
5090
|
+
TaonCmsContentRevisionApiService: TaonCmsContentRevisionApiService,
|
|
5091
|
+
get TaonCmsContentRevisionController () { return TaonCmsContentRevisionController; },
|
|
5092
|
+
TaonCmsContentRevisionDefaultsValues: TaonCmsContentRevisionDefaultsValues,
|
|
5093
|
+
get TaonCmsContentRevisionEntity () { return TaonCmsContentRevisionEntity; },
|
|
5094
|
+
get TaonCmsContentRevisionMiddleware () { return TaonCmsContentRevisionMiddleware; },
|
|
5095
|
+
get TaonCmsContentRevisionProvider () { return TaonCmsContentRevisionProvider; },
|
|
5096
|
+
get TaonCmsContentRevisionRepository () { return TaonCmsContentRevisionRepository; },
|
|
5097
|
+
get TaonCmsContentRevisionState () { return TaonCmsContentRevisionState; },
|
|
5098
|
+
get TaonCmsContentRevisionSubscriber () { return TaonCmsContentRevisionSubscriber; },
|
|
5099
|
+
get TaonCmsContentRevisionUtils () { return TaonCmsContentRevisionUtils; },
|
|
5100
|
+
get TaonCmsContentState () { return TaonCmsContentState; },
|
|
5101
|
+
get TaonCmsContentStorageController () { return TaonCmsContentStorageController; },
|
|
5102
|
+
get TaonCmsContentSubscriber () { return TaonCmsContentSubscriber; },
|
|
5103
|
+
TaonCmsContentTagAbstractContext: TaonCmsContentTagAbstractContext,
|
|
5104
|
+
TaonCmsContentTagApiService: TaonCmsContentTagApiService,
|
|
5105
|
+
get TaonCmsContentTagController () { return TaonCmsContentTagController; },
|
|
5106
|
+
TaonCmsContentTagDefaultsValues: TaonCmsContentTagDefaultsValues,
|
|
5107
|
+
get TaonCmsContentTagEntity () { return TaonCmsContentTagEntity; },
|
|
5108
|
+
get TaonCmsContentTagMiddleware () { return TaonCmsContentTagMiddleware; },
|
|
5109
|
+
get TaonCmsContentTagProvider () { return TaonCmsContentTagProvider; },
|
|
5110
|
+
get TaonCmsContentTagRepository () { return TaonCmsContentTagRepository; },
|
|
5111
|
+
get TaonCmsContentTagState () { return TaonCmsContentTagState; },
|
|
5112
|
+
get TaonCmsContentTagSubscriber () { return TaonCmsContentTagSubscriber; },
|
|
5113
|
+
get TaonCmsContentTagUtils () { return TaonCmsContentTagUtils; },
|
|
5114
|
+
get TaonCmsContentType () { return TaonCmsContentType; },
|
|
5115
|
+
get TaonCmsContentUtils () { return TaonCmsContentUtils; },
|
|
5116
|
+
TaonCmsEditableDirective: TaonCmsEditableDirective,
|
|
5117
|
+
TaonCmsPostComponent: TaonCmsPostComponent,
|
|
5118
|
+
TaonCmsPostDetailsPageComponent: TaonCmsPostDetailsPageComponent,
|
|
5119
|
+
TaonCmsPostEditDialogComponent: TaonCmsPostEditDialogComponent,
|
|
5120
|
+
TaonCmsPostRoutes: TaonCmsPostRoutes,
|
|
5121
|
+
TaonCmsPostsBackofficeComponent: TaonCmsPostsBackofficeComponent,
|
|
5122
|
+
TaonCmsPostsBackofficeRoutes: TaonCmsPostsBackofficeRoutes,
|
|
5123
|
+
TaonCmsRevisionChooserComponent: TaonCmsRevisionChooserComponent,
|
|
5124
|
+
TaonCmsTagAbstractContext: TaonCmsTagAbstractContext,
|
|
5125
|
+
TaonCmsTagApiService: TaonCmsTagApiService,
|
|
5126
|
+
get TaonCmsTagController () { return TaonCmsTagController; },
|
|
5127
|
+
TaonCmsTagDefaultsValues: TaonCmsTagDefaultsValues,
|
|
5128
|
+
get TaonCmsTagEntity () { return TaonCmsTagEntity; },
|
|
5129
|
+
get TaonCmsTagMiddleware () { return TaonCmsTagMiddleware; },
|
|
5130
|
+
get TaonCmsTagProvider () { return TaonCmsTagProvider; },
|
|
5131
|
+
get TaonCmsTagRepository () { return TaonCmsTagRepository; },
|
|
5132
|
+
get TaonCmsTagState () { return TaonCmsTagState; },
|
|
5133
|
+
get TaonCmsTagSubscriber () { return TaonCmsTagSubscriber; },
|
|
5134
|
+
get TaonCmsTagUtils () { return TaonCmsTagUtils; },
|
|
5135
|
+
TaonRelatedPostChooserComponent: TaonRelatedPostChooserComponent,
|
|
5136
|
+
contentError: contentError,
|
|
5137
|
+
default: index,
|
|
5138
|
+
myOrgProj: myOrgProj,
|
|
5139
|
+
requireContentId: requireContentId,
|
|
5140
|
+
requireContentVersion: requireContentVersion,
|
|
5141
|
+
startCli: startCli,
|
|
5142
|
+
validateContentInput: validateContentInput
|
|
5143
|
+
});
|
|
5144
|
+
|
|
2753
5145
|
/**
|
|
2754
5146
|
* Generated bundle index. Do not edit.
|
|
2755
5147
|
*/
|
|
2756
5148
|
|
|
2757
|
-
export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF, ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_ANGULAR_NODE_APP_BUILD_PROD, ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME, ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME, ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL, ENV_ANGULAR_NODE_APP_BUILD_SSR, ENV_ANGULAR_NODE_APP_BUILD_WATCH, ENV_ANGULAR_NODE_APP_BUILD_WEBSQL, ENV_ANGULAR_NODE_APP_CONTAINER_END, ENV_ANGULAR_NODE_APP_CONTAINER_ONLY, ENV_ANGULAR_NODE_APP_CONTAINER_SKIP, ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED, ENV_ANGULAR_NODE_APP_CONTAINER_START, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP, ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER, ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_ANGULAR_NODE_APP_FINISH_CALLBACK, ENV_ANGULAR_NODE_APP_INIT_BRANDING, ENV_ANGULAR_NODE_APP_INIT_STRUCT, ENV_ANGULAR_NODE_APP_IS_CI_PROCESS, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_ANGULAR_NODE_APP_PURPOSE, ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION, ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS, ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY, ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE, ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY, ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME, ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER, ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY, ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE, ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP, ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT, ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN, ENV_ANGULAR_NODE_APP_WEBSITE_TITLE, ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN, ENV_DOCS_WEBAPP_BUILD_BASE_HREF, ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_DOCS_WEBAPP_BUILD_PROD, ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_DOCS_WEBAPP_BUILD_PWA_NAME, ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME, ENV_DOCS_WEBAPP_BUILD_PWA_START_URL, ENV_DOCS_WEBAPP_BUILD_SSR, ENV_DOCS_WEBAPP_BUILD_WATCH, ENV_DOCS_WEBAPP_BUILD_WEBSQL, ENV_DOCS_WEBAPP_CONTAINER_END, ENV_DOCS_WEBAPP_CONTAINER_ONLY, ENV_DOCS_WEBAPP_CONTAINER_SKIP, ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED, ENV_DOCS_WEBAPP_CONTAINER_START, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP, ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER, ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER, ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB, ENV_DOCS_WEBAPP_FINISH_CALLBACK, ENV_DOCS_WEBAPP_INIT_BRANDING, ENV_DOCS_WEBAPP_INIT_STRUCT, ENV_DOCS_WEBAPP_IS_CI_PROCESS, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_DOCS_WEBAPP_PURPOSE, ENV_DOCS_WEBAPP_RECURSIVE_ACTION, ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS, ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY, ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE, ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY, ENV_DOCS_WEBAPP_RELEASE_ENV_NAME, ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER, ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY, ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS, ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS, ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE, ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION, ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING, ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY, ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH, ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION, ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP, ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT, ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_DOCS_WEBAPP_WEBSITE_DOMAIN, ENV_DOCS_WEBAPP_WEBSITE_TITLE, ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN, ENV_ELECTRON_APP_BUILD_BASE_HREF, ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_ELECTRON_APP_BUILD_PROD, ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_ELECTRON_APP_BUILD_PWA_NAME, ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME, ENV_ELECTRON_APP_BUILD_PWA_START_URL, ENV_ELECTRON_APP_BUILD_SSR, ENV_ELECTRON_APP_BUILD_WATCH, ENV_ELECTRON_APP_BUILD_WEBSQL, ENV_ELECTRON_APP_CONTAINER_END, ENV_ELECTRON_APP_CONTAINER_ONLY, ENV_ELECTRON_APP_CONTAINER_SKIP, ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED, ENV_ELECTRON_APP_CONTAINER_START, ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP, ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER, ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_ELECTRON_APP_FINISH_CALLBACK, ENV_ELECTRON_APP_INIT_BRANDING, ENV_ELECTRON_APP_INIT_STRUCT, ENV_ELECTRON_APP_IS_CI_PROCESS, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_ELECTRON_APP_PURPOSE, ENV_ELECTRON_APP_RECURSIVE_ACTION, ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS, ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_ELECTRON_APP_RELEASE_CLI_MINIFY, ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE, ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY, ENV_ELECTRON_APP_RELEASE_ENV_NAME, ENV_ELECTRON_APP_RELEASE_ENV_NUMBER, ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY, ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS, ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS, ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE, ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING, ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY, ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP, ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT, ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_ELECTRON_APP_WEBSITE_DOMAIN, ENV_ELECTRON_APP_WEBSITE_TITLE, ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN, ENV_MOBILE_APP_BUILD_BASE_HREF, ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_MOBILE_APP_BUILD_PROD, ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_MOBILE_APP_BUILD_PWA_NAME, ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME, ENV_MOBILE_APP_BUILD_PWA_START_URL, ENV_MOBILE_APP_BUILD_SSR, ENV_MOBILE_APP_BUILD_WATCH, ENV_MOBILE_APP_BUILD_WEBSQL, ENV_MOBILE_APP_CONTAINER_END, ENV_MOBILE_APP_CONTAINER_ONLY, ENV_MOBILE_APP_CONTAINER_SKIP, ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED, ENV_MOBILE_APP_CONTAINER_START, ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP, ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER, ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_MOBILE_APP_FINISH_CALLBACK, ENV_MOBILE_APP_INIT_BRANDING, ENV_MOBILE_APP_INIT_STRUCT, ENV_MOBILE_APP_IS_CI_PROCESS, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_MOBILE_APP_PURPOSE, ENV_MOBILE_APP_RECURSIVE_ACTION, ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_MOBILE_APP_RELEASE_CLI_COMPRESS, ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_MOBILE_APP_RELEASE_CLI_MINIFY, ENV_MOBILE_APP_RELEASE_CLI_OBSCURE, ENV_MOBILE_APP_RELEASE_CLI_UGLIFY, ENV_MOBILE_APP_RELEASE_ENV_NAME, ENV_MOBILE_APP_RELEASE_ENV_NUMBER, ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY, ENV_MOBILE_APP_RELEASE_LIB_COMPRESS, ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS, ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_MOBILE_APP_RELEASE_RELEASE_TYPE, ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING, ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY, ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP, ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT, ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_MOBILE_APP_WEBSITE_DOMAIN, ENV_MOBILE_APP_WEBSITE_TITLE, ENV_MOBILE_APP_WEBSITE_USE_DOMAIN, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB, ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK, ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING, ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT, ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE, ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN, ENV_VSCODE_PLUGIN_BUILD_BASE_HREF, ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE, ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH, ENV_VSCODE_PLUGIN_BUILD_PROD, ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_VSCODE_PLUGIN_BUILD_PWA_NAME, ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME, ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL, ENV_VSCODE_PLUGIN_BUILD_SSR, ENV_VSCODE_PLUGIN_BUILD_WATCH, ENV_VSCODE_PLUGIN_BUILD_WEBSQL, ENV_VSCODE_PLUGIN_CONTAINER_END, ENV_VSCODE_PLUGIN_CONTAINER_ONLY, ENV_VSCODE_PLUGIN_CONTAINER_SKIP, ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED, ENV_VSCODE_PLUGIN_CONTAINER_START, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP, ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER, ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER, ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB, ENV_VSCODE_PLUGIN_FINISH_CALLBACK, ENV_VSCODE_PLUGIN_INIT_BRANDING, ENV_VSCODE_PLUGIN_INIT_STRUCT, ENV_VSCODE_PLUGIN_IS_CI_PROCESS, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_VSCODE_PLUGIN_PURPOSE, ENV_VSCODE_PLUGIN_RECURSIVE_ACTION, ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS, ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY, ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE, ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY, ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME, ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER, ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY, ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS, ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS, ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE, ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION, ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING, ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY, ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH, ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION, ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH, ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP, ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT, ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN, ENV_VSCODE_PLUGIN_WEBSITE_TITLE, ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN, PROJECT_NPM_NAME, TaonCmsAbstractContext, TaonCmsBackofficeComponent, TaonCmsBackofficeRoutes, TaonCmsCategoryAbstractContext, TaonCmsCategoryApiService, TaonCmsCategoryController, TaonCmsCategoryDefaultsValues, TaonCmsCategoryEntity, TaonCmsCategoryMiddleware, TaonCmsCategoryProvider, TaonCmsCategoryRepository, TaonCmsCategoryState, TaonCmsCategorySubscriber, TaonCmsCategoryUtils, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils, TaonCmsContentState, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils, TaonCmsContentUtils, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils, myOrgProj, startCli };
|
|
5149
|
+
export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF, ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_ANGULAR_NODE_APP_BUILD_PROD, ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME, ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME, ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL, ENV_ANGULAR_NODE_APP_BUILD_SSR, ENV_ANGULAR_NODE_APP_BUILD_WATCH, ENV_ANGULAR_NODE_APP_BUILD_WEBSQL, ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID, ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET, ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS, ENV_ANGULAR_NODE_APP_CONTAINER_END, ENV_ANGULAR_NODE_APP_CONTAINER_ONLY, ENV_ANGULAR_NODE_APP_CONTAINER_SKIP, ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED, ENV_ANGULAR_NODE_APP_CONTAINER_START, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP, ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER, ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_ANGULAR_NODE_APP_FINISH_CALLBACK, ENV_ANGULAR_NODE_APP_INIT_BRANDING, ENV_ANGULAR_NODE_APP_INIT_STRUCT, ENV_ANGULAR_NODE_APP_IS_CI_PROCESS, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_ANGULAR_NODE_APP_PURPOSE, ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION, ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS, ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY, ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE, ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY, ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME, ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER, ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY, ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE, ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP, ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT, ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN, ENV_ANGULAR_NODE_APP_WEBSITE_TITLE, ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN, ENV_DOCS_WEBAPP_BUILD_BASE_HREF, ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_DOCS_WEBAPP_BUILD_PROD, ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_DOCS_WEBAPP_BUILD_PWA_NAME, ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME, ENV_DOCS_WEBAPP_BUILD_PWA_START_URL, ENV_DOCS_WEBAPP_BUILD_SSR, ENV_DOCS_WEBAPP_BUILD_WATCH, ENV_DOCS_WEBAPP_BUILD_WEBSQL, ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID, ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET, ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS, ENV_DOCS_WEBAPP_CONTAINER_END, ENV_DOCS_WEBAPP_CONTAINER_ONLY, ENV_DOCS_WEBAPP_CONTAINER_SKIP, ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED, ENV_DOCS_WEBAPP_CONTAINER_START, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP, ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER, ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER, ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB, ENV_DOCS_WEBAPP_FINISH_CALLBACK, ENV_DOCS_WEBAPP_INIT_BRANDING, ENV_DOCS_WEBAPP_INIT_STRUCT, ENV_DOCS_WEBAPP_IS_CI_PROCESS, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_DOCS_WEBAPP_PURPOSE, ENV_DOCS_WEBAPP_RECURSIVE_ACTION, ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS, ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY, ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE, ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY, ENV_DOCS_WEBAPP_RELEASE_ENV_NAME, ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER, ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY, ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS, ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS, ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE, ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION, ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING, ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY, ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH, ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION, ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP, ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT, ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_DOCS_WEBAPP_WEBSITE_DOMAIN, ENV_DOCS_WEBAPP_WEBSITE_TITLE, ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN, ENV_ELECTRON_APP_BUILD_BASE_HREF, ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_ELECTRON_APP_BUILD_PROD, ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_ELECTRON_APP_BUILD_PWA_NAME, ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME, ENV_ELECTRON_APP_BUILD_PWA_START_URL, ENV_ELECTRON_APP_BUILD_SSR, ENV_ELECTRON_APP_BUILD_WATCH, ENV_ELECTRON_APP_BUILD_WEBSQL, ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID, ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET, ENV_ELECTRON_APP_CONFIG_SUPER_USERS, ENV_ELECTRON_APP_CONTAINER_END, ENV_ELECTRON_APP_CONTAINER_ONLY, ENV_ELECTRON_APP_CONTAINER_SKIP, ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED, ENV_ELECTRON_APP_CONTAINER_START, ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP, ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER, ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_ELECTRON_APP_FINISH_CALLBACK, ENV_ELECTRON_APP_INIT_BRANDING, ENV_ELECTRON_APP_INIT_STRUCT, ENV_ELECTRON_APP_IS_CI_PROCESS, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_ELECTRON_APP_PURPOSE, ENV_ELECTRON_APP_RECURSIVE_ACTION, ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS, ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_ELECTRON_APP_RELEASE_CLI_MINIFY, ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE, ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY, ENV_ELECTRON_APP_RELEASE_ENV_NAME, ENV_ELECTRON_APP_RELEASE_ENV_NUMBER, ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY, ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS, ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS, ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE, ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING, ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY, ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP, ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT, ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_ELECTRON_APP_WEBSITE_DOMAIN, ENV_ELECTRON_APP_WEBSITE_TITLE, ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN, ENV_MOBILE_APP_BUILD_BASE_HREF, ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_MOBILE_APP_BUILD_PROD, ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_MOBILE_APP_BUILD_PWA_NAME, ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME, ENV_MOBILE_APP_BUILD_PWA_START_URL, ENV_MOBILE_APP_BUILD_SSR, ENV_MOBILE_APP_BUILD_WATCH, ENV_MOBILE_APP_BUILD_WEBSQL, ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID, ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET, ENV_MOBILE_APP_CONFIG_SUPER_USERS, ENV_MOBILE_APP_CONTAINER_END, ENV_MOBILE_APP_CONTAINER_ONLY, ENV_MOBILE_APP_CONTAINER_SKIP, ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED, ENV_MOBILE_APP_CONTAINER_START, ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP, ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER, ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_MOBILE_APP_FINISH_CALLBACK, ENV_MOBILE_APP_INIT_BRANDING, ENV_MOBILE_APP_INIT_STRUCT, ENV_MOBILE_APP_IS_CI_PROCESS, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_MOBILE_APP_PURPOSE, ENV_MOBILE_APP_RECURSIVE_ACTION, ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_MOBILE_APP_RELEASE_CLI_COMPRESS, ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_MOBILE_APP_RELEASE_CLI_MINIFY, ENV_MOBILE_APP_RELEASE_CLI_OBSCURE, ENV_MOBILE_APP_RELEASE_CLI_UGLIFY, ENV_MOBILE_APP_RELEASE_ENV_NAME, ENV_MOBILE_APP_RELEASE_ENV_NUMBER, ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY, ENV_MOBILE_APP_RELEASE_LIB_COMPRESS, ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS, ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_MOBILE_APP_RELEASE_RELEASE_TYPE, ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING, ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY, ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP, ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT, ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_MOBILE_APP_WEBSITE_DOMAIN, ENV_MOBILE_APP_WEBSITE_TITLE, ENV_MOBILE_APP_WEBSITE_USE_DOMAIN, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL, ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID, ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET, ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB, ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK, ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING, ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT, ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE, ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN, ENV_VSCODE_PLUGIN_BUILD_BASE_HREF, ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE, ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH, ENV_VSCODE_PLUGIN_BUILD_PROD, ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_VSCODE_PLUGIN_BUILD_PWA_NAME, ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME, ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL, ENV_VSCODE_PLUGIN_BUILD_SSR, ENV_VSCODE_PLUGIN_BUILD_WATCH, ENV_VSCODE_PLUGIN_BUILD_WEBSQL, ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID, ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET, ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS, ENV_VSCODE_PLUGIN_CONTAINER_END, ENV_VSCODE_PLUGIN_CONTAINER_ONLY, ENV_VSCODE_PLUGIN_CONTAINER_SKIP, ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED, ENV_VSCODE_PLUGIN_CONTAINER_START, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP, ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER, ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER, ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB, ENV_VSCODE_PLUGIN_FINISH_CALLBACK, ENV_VSCODE_PLUGIN_INIT_BRANDING, ENV_VSCODE_PLUGIN_INIT_STRUCT, ENV_VSCODE_PLUGIN_IS_CI_PROCESS, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_VSCODE_PLUGIN_PURPOSE, ENV_VSCODE_PLUGIN_RECURSIVE_ACTION, ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS, ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY, ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE, ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY, ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME, ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER, ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY, ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS, ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS, ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE, ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION, ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING, ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY, ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH, ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION, ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH, ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP, ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT, ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN, ENV_VSCODE_PLUGIN_WEBSITE_TITLE, ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN, MIGRATIONS_CLASSES_FOR_CmsContext, MyAppGroup, MyAppPermission, MyAppRole, PROJECT_NPM_NAME, TaonCmsAbstractContext, TaonCmsAssetsBackofficeComponent, TaonCmsAssetsBackofficeRoutes, TaonCmsBackofficeComponent, TaonCmsBackofficeRoutes, TaonCmsCategoryAbstractContext, TaonCmsCategoryApiService, TaonCmsCategoryController, TaonCmsCategoryDefaultsValues, TaonCmsCategoryEntity, TaonCmsCategoryMiddleware, TaonCmsCategoryProvider, TaonCmsCategoryRepository, TaonCmsCategoryState, TaonCmsCategorySubscriber, TaonCmsCategoryUtils, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils, TaonCmsContentConfigService, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils, TaonCmsContentState, TaonCmsContentStorageController, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils, TaonCmsContentType, TaonCmsContentUtils, TaonCmsEditableDirective, TaonCmsPostComponent, TaonCmsPostDetailsPageComponent, TaonCmsPostEditDialogComponent, TaonCmsPostRoutes, TaonCmsPostsBackofficeComponent, TaonCmsPostsBackofficeRoutes, TaonCmsRevisionChooserComponent, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils, TaonRelatedPostChooserComponent, contentError, myOrgProj, requireContentId, requireContentVersion, startCli, validateContentInput };
|
|
2758
5150
|
//# sourceMappingURL=cms-websql.mjs.map
|