@dignite-ng/expand.cms 0.0.32 → 0.0.33
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/config/ng-package.json +7 -0
- package/config/src/cms-config.module.ts +12 -0
- package/config/{enums/index.d.ts → src/enums/index.ts} +1 -1
- package/config/src/enums/route-names.ts +8 -0
- package/config/{providers/index.d.ts → src/providers/index.ts} +1 -1
- package/config/src/providers/route.provider.ts +82 -0
- package/config/{public-api.d.ts → src/public-api.ts} +3 -3
- package/ng-package.json +7 -0
- package/package.json +6 -21
- package/src/lib/cms-routing.module.ts +108 -0
- package/src/lib/cms.module.ts +108 -0
- package/src/lib/components/admin/domains/domains.component.html +19 -0
- package/src/lib/components/admin/domains/domains.component.scss +0 -0
- package/src/lib/components/admin/domains/domains.component.spec.ts +21 -0
- package/src/lib/components/admin/domains/domains.component.ts +99 -0
- package/src/lib/components/admin/domains/index.ts +1 -0
- package/src/lib/components/admin/entries/create-or-edit-entries.component.html +113 -0
- package/src/lib/components/admin/entries/create-or-edit-entries.component.scss +1 -0
- package/src/lib/components/admin/entries/create-or-edit-entries.component.spec.ts +21 -0
- package/src/lib/components/admin/entries/create-or-edit-entries.component.ts +284 -0
- package/src/lib/components/admin/entries/create-or-update-entry-input-base.ts +33 -0
- package/src/lib/components/admin/entries/create.component.html +13 -0
- package/src/lib/components/admin/entries/create.component.scss +1 -0
- package/src/lib/components/admin/entries/create.component.spec.ts +21 -0
- package/src/lib/components/admin/entries/create.component.ts +104 -0
- package/src/lib/components/admin/entries/edit.component.html +9 -0
- package/src/lib/components/admin/entries/edit.component.scss +1 -0
- package/src/lib/components/admin/entries/edit.component.spec.ts +21 -0
- package/src/lib/components/admin/entries/edit.component.ts +98 -0
- package/src/lib/components/admin/entries/entries.component.html +112 -0
- package/src/lib/components/admin/entries/entries.component.scss +1 -0
- package/src/lib/components/admin/entries/entries.component.spec.ts +21 -0
- package/src/lib/components/admin/entries/entries.component.ts +219 -0
- package/src/lib/components/admin/entries/index.ts +4 -0
- package/src/lib/components/admin/fields/create-field.component.html +12 -0
- package/src/lib/components/admin/fields/create-field.component.scss +1 -0
- package/src/lib/components/admin/fields/create-field.component.spec.ts +21 -0
- package/src/lib/components/admin/fields/create-field.component.ts +68 -0
- package/src/lib/components/admin/fields/create-or-edit-field.component.html +39 -0
- package/src/lib/components/admin/fields/create-or-edit-field.component.scss +0 -0
- package/src/lib/components/admin/fields/create-or-edit-field.component.spec.ts +21 -0
- package/src/lib/components/admin/fields/create-or-edit-field.component.ts +116 -0
- package/src/lib/components/admin/fields/create-or-update-field-input-base.ts +33 -0
- package/src/lib/components/admin/fields/edit-field.component.html +13 -0
- package/src/lib/components/admin/fields/edit-field.component.scss +0 -0
- package/src/lib/components/admin/fields/edit-field.component.spec.ts +21 -0
- package/src/lib/components/admin/fields/edit-field.component.ts +100 -0
- package/src/lib/components/admin/fields/field-group.component.html +69 -0
- package/src/lib/components/admin/fields/field-group.component.scss +0 -0
- package/src/lib/components/admin/fields/field-group.component.spec.ts +21 -0
- package/src/lib/components/admin/fields/field-group.component.ts +132 -0
- package/src/lib/components/admin/fields/fields.component.html +74 -0
- package/src/lib/components/admin/fields/fields.component.scss +1 -0
- package/src/lib/components/admin/fields/fields.component.spec.ts +21 -0
- package/src/lib/components/admin/fields/fields.component.ts +111 -0
- package/src/lib/components/admin/fields/index.ts +6 -0
- package/src/lib/components/admin/index.ts +5 -0
- package/src/lib/components/admin/sections/create-or-update-sections-input-base.ts +36 -0
- package/src/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.ts +79 -0
- package/src/lib/components/admin/sections/entry-types/create-or-edit.component.html +191 -0
- package/src/lib/components/admin/sections/entry-types/create-or-edit.component.scss +1 -0
- package/src/lib/components/admin/sections/entry-types/create-or-edit.component.spec.ts +21 -0
- package/src/lib/components/admin/sections/entry-types/create-or-edit.component.ts +408 -0
- package/src/lib/components/admin/sections/entry-types/index.ts +2 -0
- package/src/lib/components/admin/sections/index.ts +3 -0
- package/src/lib/components/admin/sections/sections.component.html +190 -0
- package/src/lib/components/admin/sections/sections.component.scss +1 -0
- package/src/lib/components/admin/sections/sections.component.spec.ts +21 -0
- package/src/lib/components/admin/sections/sections.component.ts +370 -0
- package/src/lib/components/admin/sites/create-or-update-sites-input-base.ts +18 -0
- package/src/lib/components/admin/sites/index.ts +2 -0
- package/src/lib/components/admin/sites/sites.component.html +136 -0
- package/src/lib/components/admin/sites/sites.component.scss +1 -0
- package/src/lib/components/admin/sites/sites.component.spec.ts +21 -0
- package/src/lib/components/admin/sites/sites.component.ts +250 -0
- package/src/lib/components/dynamic-form/entry/entry-config.component.html +36 -0
- package/src/lib/components/dynamic-form/entry/entry-config.component.scss +0 -0
- package/src/lib/components/dynamic-form/entry/entry-config.component.spec.ts +21 -0
- package/src/lib/components/dynamic-form/entry/entry-config.component.ts +115 -0
- package/src/lib/components/dynamic-form/entry/entry-config.ts +24 -0
- package/src/lib/components/dynamic-form/entry/entry-control.component.html +26 -0
- package/src/lib/components/dynamic-form/entry/entry-control.component.scss +1 -0
- package/src/lib/components/dynamic-form/entry/entry-control.component.spec.ts +21 -0
- package/src/lib/components/dynamic-form/entry/entry-control.component.ts +109 -0
- package/src/lib/components/dynamic-form/entry/index.ts +3 -0
- package/src/lib/components/dynamic-form/form-control-group.ts +27 -0
- package/src/lib/components/dynamic-form/index.ts +4 -0
- package/src/lib/components/dynamic-form/matrix/index.ts +3 -0
- package/src/lib/components/dynamic-form/matrix/matrix-config.component.html +147 -0
- package/src/lib/components/dynamic-form/matrix/matrix-config.component.scss +0 -0
- package/src/lib/components/dynamic-form/matrix/matrix-config.component.spec.ts +21 -0
- package/src/lib/components/dynamic-form/matrix/matrix-config.component.ts +236 -0
- package/src/lib/components/dynamic-form/matrix/matrix-config.ts +63 -0
- package/src/lib/components/dynamic-form/matrix/matrix-control.component.html +42 -0
- package/src/lib/components/dynamic-form/matrix/matrix-control.component.scss +0 -0
- package/src/lib/components/dynamic-form/matrix/matrix-control.component.spec.ts +21 -0
- package/src/lib/components/dynamic-form/matrix/matrix-control.component.ts +104 -0
- package/src/lib/components/dynamic-form/table/index.ts +3 -0
- package/src/lib/components/dynamic-form/table/table-config.component.html +85 -0
- package/src/lib/components/dynamic-form/table/table-config.component.scss +10 -0
- package/src/lib/components/dynamic-form/table/table-config.component.spec.ts +21 -0
- package/src/lib/components/dynamic-form/table/table-config.component.ts +170 -0
- package/src/lib/components/dynamic-form/table/table-config.ts +45 -0
- package/src/lib/components/dynamic-form/table/table-control.component.html +54 -0
- package/src/lib/components/dynamic-form/table/table-control.component.scss +1 -0
- package/src/lib/components/dynamic-form/table/table-control.component.spec.ts +21 -0
- package/src/lib/components/dynamic-form/table/table-control.component.ts +115 -0
- package/src/lib/components/index.ts +2 -0
- package/src/lib/constants/index.ts +1 -0
- package/src/lib/constants/styles.ts +13 -0
- package/src/lib/enums/ecms-component.ts +11 -0
- package/src/lib/enums/index.ts +1 -0
- package/src/lib/proxy/README.md +17 -0
- package/src/lib/proxy/admin/domains/domain-admin.service.ts +38 -0
- package/{lib/proxy/admin/domains/models.d.ts → src/lib/proxy/admin/domains/models.ts} +9 -7
- package/src/lib/proxy/admin/dynamic-forms/form-admin.service.ts +21 -0
- package/src/lib/proxy/admin/dynamic-forms/models.ts +5 -0
- package/src/lib/proxy/admin/entries/entry-admin.service.ts +109 -0
- package/src/lib/proxy/admin/entries/models.ts +68 -0
- package/src/lib/proxy/admin/fields/field-admin.service.ts +64 -0
- package/src/lib/proxy/admin/fields/field-group-admin.service.ts +56 -0
- package/{lib/proxy/admin/fields/models.d.ts → src/lib/proxy/admin/fields/models.ts} +42 -34
- package/src/lib/proxy/admin/index.ts +7 -0
- package/src/lib/proxy/admin/sections/entry-type-admin.service.ts +55 -0
- package/{lib/proxy/admin/sections/models.d.ts → src/lib/proxy/admin/sections/models.ts} +81 -67
- package/src/lib/proxy/admin/sections/section-admin.service.ts +74 -0
- package/src/lib/proxy/admin/settings/site-settings-admin.service.ts +37 -0
- package/src/lib/proxy/dignite/abp/data/index.ts +1 -0
- package/src/lib/proxy/dignite/abp/data/models.ts +4 -0
- package/src/lib/proxy/dignite/abp/index.ts +2 -0
- package/src/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +65 -0
- package/src/lib/proxy/dignite/file-explorer/directories/index.ts +2 -0
- package/src/lib/proxy/dignite/file-explorer/directories/models.ts +35 -0
- package/src/lib/proxy/dignite/file-explorer/files/file-descriptor.service.ts +86 -0
- package/src/lib/proxy/dignite/file-explorer/files/index.ts +2 -0
- package/src/lib/proxy/dignite/file-explorer/files/models.ts +58 -0
- package/src/lib/proxy/dignite/file-explorer/index.ts +3 -0
- package/src/lib/proxy/dignite/index.ts +3 -0
- package/src/lib/proxy/entries/entry-status.enum.ts +8 -0
- package/src/lib/proxy/fields/index.ts +1 -0
- package/src/lib/proxy/fields/models.ts +9 -0
- package/src/lib/proxy/generate-proxy.json +11425 -0
- package/src/lib/proxy/index.ts +9 -0
- package/src/lib/proxy/microsoft/asp-net-core/index.ts +2 -0
- package/src/lib/proxy/microsoft/asp-net-core/mvc/index.ts +1 -0
- package/src/lib/proxy/microsoft/asp-net-core/mvc/models.ts +12 -0
- package/src/lib/proxy/microsoft/extensions/index.ts +2 -0
- package/src/lib/proxy/microsoft/extensions/primitives/index.ts +1 -0
- package/src/lib/proxy/microsoft/extensions/primitives/models.ts +9 -0
- package/src/lib/proxy/microsoft/index.ts +4 -0
- package/src/lib/proxy/microsoft/net/http/headers/index.ts +1 -0
- package/src/lib/proxy/microsoft/net/http/headers/models.ts +7 -0
- package/src/lib/proxy/microsoft/net/http/index.ts +2 -0
- package/src/lib/proxy/microsoft/net/index.ts +2 -0
- package/src/lib/proxy/sections/models.ts +14 -0
- package/src/lib/proxy/sections/section-type.enum.ts +9 -0
- package/src/lib/proxy/settings/index.ts +1 -0
- package/src/lib/proxy/settings/models.ts +6 -0
- package/src/lib/proxy/volo/abp/content/index.ts +1 -0
- package/src/lib/proxy/volo/abp/content/models.ts +6 -0
- package/src/lib/proxy/volo/abp/index.ts +2 -0
- package/src/lib/proxy/volo/cms-kit/index.ts +2 -0
- package/src/lib/proxy/volo/cms-kit/users/index.ts +1 -0
- package/{lib/proxy/volo/cms-kit/users/models.d.ts → src/lib/proxy/volo/cms-kit/users/models.ts} +8 -7
- package/src/lib/proxy/volo/index.ts +3 -0
- package/src/lib/proxy.zip +0 -0
- package/src/lib/services/appent-content.ts +13 -0
- package/src/lib/services/cms-api.service.ts +71 -0
- package/src/lib/services/cms.service.ts +18 -0
- package/src/lib/services/field-abstracts.service.ts +40 -0
- package/src/lib/services/index.ts +4 -0
- package/src/lib/services/simple-reuse-strategy.ts +49 -0
- package/src/lib/services/update-list.service.ts +15 -0
- package/src/lib/toolbar/index.ts +2 -0
- package/src/lib/toolbar/toolbar-btn-default-action.ts +171 -0
- package/src/lib/toolbar/toolbar-config.ts +93 -0
- package/{public-api.d.ts → src/public-api.ts} +10 -4
- package/src/test.ts +26 -0
- package/tsconfig.lib.json +34 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/config/cms-config.module.d.ts +0 -8
- package/config/enums/route-names.d.ts +0 -7
- package/config/index.d.ts +0 -5
- package/config/providers/route.provider.d.ts +0 -9
- package/esm2022/config/cms-config.module.mjs +0 -19
- package/esm2022/config/dignite-ng-expand.cms-config.mjs +0 -5
- package/esm2022/config/enums/index.mjs +0 -2
- package/esm2022/config/enums/route-names.mjs +0 -2
- package/esm2022/config/providers/index.mjs +0 -2
- package/esm2022/config/providers/route.provider.mjs +0 -78
- package/esm2022/config/public-api.mjs +0 -4
- package/esm2022/dignite-ng-expand.cms.mjs +0 -5
- package/esm2022/lib/cms-routing.module.mjs +0 -100
- package/esm2022/lib/cms.module.mjs +0 -132
- package/esm2022/lib/components/admin/domains/domains.component.mjs +0 -90
- package/esm2022/lib/components/admin/domains/index.mjs +0 -2
- package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +0 -286
- package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +0 -32
- package/esm2022/lib/components/admin/entries/create.component.mjs +0 -108
- package/esm2022/lib/components/admin/entries/edit.component.mjs +0 -107
- package/esm2022/lib/components/admin/entries/entries.component.mjs +0 -211
- package/esm2022/lib/components/admin/entries/index.mjs +0 -5
- package/esm2022/lib/components/admin/fields/create-field.component.mjs +0 -82
- package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +0 -119
- package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +0 -25
- package/esm2022/lib/components/admin/fields/edit-field.component.mjs +0 -110
- package/esm2022/lib/components/admin/fields/field-group.component.mjs +0 -124
- package/esm2022/lib/components/admin/fields/fields.component.mjs +0 -119
- package/esm2022/lib/components/admin/fields/index.mjs +0 -7
- package/esm2022/lib/components/admin/index.mjs +0 -6
- package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +0 -27
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +0 -71
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +0 -416
- package/esm2022/lib/components/admin/sections/entry-types/index.mjs +0 -3
- package/esm2022/lib/components/admin/sections/index.mjs +0 -4
- package/esm2022/lib/components/admin/sections/sections.component.mjs +0 -344
- package/esm2022/lib/components/admin/sites/create-or-update-sites-input-base.mjs +0 -18
- package/esm2022/lib/components/admin/sites/index.mjs +0 -3
- package/esm2022/lib/components/admin/sites/sites.component.mjs +0 -29
- package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +0 -124
- package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +0 -18
- package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +0 -115
- package/esm2022/lib/components/dynamic-form/entry/index.mjs +0 -4
- package/esm2022/lib/components/dynamic-form/form-control-group.mjs +0 -28
- package/esm2022/lib/components/dynamic-form/index.mjs +0 -5
- package/esm2022/lib/components/dynamic-form/matrix/index.mjs +0 -4
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +0 -227
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.mjs +0 -50
- package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +0 -111
- package/esm2022/lib/components/dynamic-form/table/index.mjs +0 -4
- package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +0 -173
- package/esm2022/lib/components/dynamic-form/table/table-config.mjs +0 -38
- package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +0 -121
- package/esm2022/lib/components/index.mjs +0 -3
- package/esm2022/lib/constants/styles.mjs +0 -14
- package/esm2022/lib/enums/ecms-component.mjs +0 -13
- package/esm2022/lib/enums/index.mjs +0 -2
- package/esm2022/lib/proxy/admin/domains/domain-admin.service.mjs +0 -34
- package/esm2022/lib/proxy/admin/domains/index.mjs +0 -3
- package/esm2022/lib/proxy/admin/domains/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +0 -24
- package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +0 -3
- package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +0 -72
- package/esm2022/lib/proxy/admin/entries/index.mjs +0 -3
- package/esm2022/lib/proxy/admin/entries/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +0 -47
- package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +0 -43
- package/esm2022/lib/proxy/admin/fields/index.mjs +0 -4
- package/esm2022/lib/proxy/admin/fields/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +0 -43
- package/esm2022/lib/proxy/admin/sections/index.mjs +0 -4
- package/esm2022/lib/proxy/admin/sections/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +0 -53
- package/esm2022/lib/proxy/admin/settings/index.mjs +0 -2
- package/esm2022/lib/proxy/admin/settings/site-settings-admin.service.mjs +0 -33
- package/esm2022/lib/proxy/dignite/abp/data/models.mjs +0 -2
- package/esm2022/lib/proxy/entries/entry-status.enum.mjs +0 -8
- package/esm2022/lib/proxy/entries/index.mjs +0 -2
- package/esm2022/lib/proxy/fields/models.mjs +0 -2
- package/esm2022/lib/proxy/sections/index.mjs +0 -3
- package/esm2022/lib/proxy/sections/models.mjs +0 -2
- package/esm2022/lib/proxy/sections/section-type.enum.mjs +0 -9
- package/esm2022/lib/proxy/settings/models.mjs +0 -2
- package/esm2022/lib/proxy/volo/cms-kit/users/models.mjs +0 -2
- package/esm2022/lib/services/appent-content.mjs +0 -15
- package/esm2022/lib/services/cms-api.service.mjs +0 -80
- package/esm2022/lib/services/cms.service.mjs +0 -23
- package/esm2022/lib/services/field-abstracts.service.mjs +0 -45
- package/esm2022/lib/services/index.mjs +0 -5
- package/esm2022/lib/services/simple-reuse-strategy.mjs +0 -43
- package/esm2022/lib/services/update-list.service.mjs +0 -19
- package/esm2022/lib/toolbar/index.mjs +0 -3
- package/esm2022/lib/toolbar/toolbar-btn-default-action.mjs +0 -160
- package/esm2022/lib/toolbar/toolbar-config.mjs +0 -79
- package/esm2022/public-api.mjs +0 -10
- package/fesm2022/dignite-ng-expand.cms-config.mjs +0 -101
- package/fesm2022/dignite-ng-expand.cms-config.mjs.map +0 -1
- package/fesm2022/dignite-ng-expand.cms.mjs +0 -4079
- package/fesm2022/dignite-ng-expand.cms.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/cms-routing.module.d.ts +0 -7
- package/lib/cms.module.d.ts +0 -35
- package/lib/components/admin/domains/domains.component.d.ts +0 -21
- package/lib/components/admin/domains/index.d.ts +0 -1
- package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +0 -92
- package/lib/components/admin/entries/create-or-update-entry-input-base.d.ts +0 -23
- package/lib/components/admin/entries/create.component.d.ts +0 -40
- package/lib/components/admin/entries/edit.component.d.ts +0 -40
- package/lib/components/admin/entries/entries.component.d.ts +0 -66
- package/lib/components/admin/entries/index.d.ts +0 -4
- package/lib/components/admin/fields/create-field.component.d.ts +0 -31
- package/lib/components/admin/fields/create-or-edit-field.component.d.ts +0 -36
- package/lib/components/admin/fields/create-or-update-field-input-base.d.ts +0 -16
- package/lib/components/admin/fields/edit-field.component.d.ts +0 -40
- package/lib/components/admin/fields/field-group.component.d.ts +0 -51
- package/lib/components/admin/fields/fields.component.d.ts +0 -37
- package/lib/components/admin/fields/index.d.ts +0 -6
- package/lib/components/admin/index.d.ts +0 -5
- package/lib/components/admin/sections/create-or-update-sections-input-base.d.ts +0 -17
- package/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.d.ts +0 -38
- package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +0 -132
- package/lib/components/admin/sections/entry-types/index.d.ts +0 -2
- package/lib/components/admin/sections/index.d.ts +0 -3
- package/lib/components/admin/sections/sections.component.d.ts +0 -90
- package/lib/components/admin/sites/create-or-update-sites-input-base.d.ts +0 -8
- package/lib/components/admin/sites/index.d.ts +0 -2
- package/lib/components/admin/sites/sites.component.d.ts +0 -5
- package/lib/components/dynamic-form/entry/entry-config.component.d.ts +0 -39
- package/lib/components/dynamic-form/entry/entry-config.d.ts +0 -9
- package/lib/components/dynamic-form/entry/entry-control.component.d.ts +0 -35
- package/lib/components/dynamic-form/entry/index.d.ts +0 -3
- package/lib/components/dynamic-form/form-control-group.d.ts +0 -4
- package/lib/components/dynamic-form/index.d.ts +0 -4
- package/lib/components/dynamic-form/matrix/index.d.ts +0 -3
- package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +0 -73
- package/lib/components/dynamic-form/matrix/matrix-config.d.ts +0 -24
- package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +0 -39
- package/lib/components/dynamic-form/table/index.d.ts +0 -3
- package/lib/components/dynamic-form/table/table-config.component.d.ts +0 -58
- package/lib/components/dynamic-form/table/table-config.d.ts +0 -18
- package/lib/components/dynamic-form/table/table-control.component.d.ts +0 -39
- package/lib/components/index.d.ts +0 -2
- package/lib/constants/styles.d.ts +0 -2
- package/lib/enums/ecms-component.d.ts +0 -11
- package/lib/enums/index.d.ts +0 -1
- package/lib/proxy/admin/domains/domain-admin.service.d.ts +0 -13
- package/lib/proxy/admin/dynamic-forms/form-admin.service.d.ts +0 -12
- package/lib/proxy/admin/dynamic-forms/models.d.ts +0 -4
- package/lib/proxy/admin/entries/entry-admin.service.d.ts +0 -22
- package/lib/proxy/admin/entries/models.d.ts +0 -60
- package/lib/proxy/admin/fields/field-admin.service.d.ts +0 -17
- package/lib/proxy/admin/fields/field-group-admin.service.d.ts +0 -16
- package/lib/proxy/admin/sections/entry-type-admin.service.d.ts +0 -15
- package/lib/proxy/admin/sections/section-admin.service.d.ts +0 -18
- package/lib/proxy/admin/settings/site-settings-admin.service.d.ts +0 -13
- package/lib/proxy/dignite/abp/data/models.d.ts +0 -3
- package/lib/proxy/entries/entry-status.enum.d.ts +0 -5
- package/lib/proxy/fields/models.d.ts +0 -8
- package/lib/proxy/sections/models.d.ts +0 -12
- package/lib/proxy/sections/section-type.enum.d.ts +0 -6
- package/lib/proxy/settings/models.d.ts +0 -5
- package/lib/services/appent-content.d.ts +0 -1
- package/lib/services/cms-api.service.d.ts +0 -20
- package/lib/services/cms.service.d.ts +0 -10
- package/lib/services/field-abstracts.service.d.ts +0 -20
- package/lib/services/index.d.ts +0 -4
- package/lib/services/simple-reuse-strategy.d.ts +0 -11
- package/lib/services/update-list.service.d.ts +0 -9
- package/lib/toolbar/index.d.ts +0 -2
- package/lib/toolbar/toolbar-btn-default-action.d.ts +0 -18
- package/lib/toolbar/toolbar-config.d.ts +0 -56
- /package/{lib/proxy/admin/domains/index.d.ts → src/lib/proxy/admin/domains/index.ts} +0 -0
- /package/{lib/proxy/admin/dynamic-forms/index.d.ts → src/lib/proxy/admin/dynamic-forms/index.ts} +0 -0
- /package/{lib/proxy/admin/entries/index.d.ts → src/lib/proxy/admin/entries/index.ts} +0 -0
- /package/{lib/proxy/admin/fields/index.d.ts → src/lib/proxy/admin/fields/index.ts} +0 -0
- /package/{lib/proxy/admin/sections/index.d.ts → src/lib/proxy/admin/sections/index.ts} +0 -0
- /package/{lib/proxy/admin/settings/index.d.ts → src/lib/proxy/admin/settings/index.ts} +0 -0
- /package/{lib/proxy/entries/index.d.ts → src/lib/proxy/entries/index.ts} +0 -0
- /package/{lib/proxy/sections/index.d.ts → src/lib/proxy/sections/index.ts} +0 -0
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
import { LIST_QUERY_DEBOUNCE_TIME, ListService, } from '@abp/ng.core';
|
|
2
|
-
import { Component, ViewChild, inject } from '@angular/core';
|
|
3
|
-
import { FormControl, Validators, } from '@angular/forms';
|
|
4
|
-
import { ColumnMode } from '@swimlane/ngx-datatable';
|
|
5
|
-
import { finalize } from 'rxjs/operators';
|
|
6
|
-
import { CreateOrUpdateSectionsInputBase } from './create-or-update-sections-input-base';
|
|
7
|
-
import { SectionType, sectionTypeOptions } from '../../../proxy/sections';
|
|
8
|
-
import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
|
|
9
|
-
import { ECmsComponent } from '../../../enums';
|
|
10
|
-
import { UpdateListService } from '../../../services/update-list.service';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@abp/ng.core";
|
|
13
|
-
import * as i2 from "../../../proxy/admin/sections";
|
|
14
|
-
import * as i3 from "@abp/ng.theme.shared";
|
|
15
|
-
import * as i4 from "@angular/forms";
|
|
16
|
-
import * as i5 from "../../../services/cms-api.service";
|
|
17
|
-
import * as i6 from "@angular/router";
|
|
18
|
-
import * as i7 from "@angular/common";
|
|
19
|
-
import * as i8 from "@swimlane/ngx-datatable";
|
|
20
|
-
import * as i9 from "@ngx-validate/core";
|
|
21
|
-
import * as i10 from "@ng-bootstrap/ng-bootstrap";
|
|
22
|
-
import * as i11 from "@abp/ng.components/page";
|
|
23
|
-
class SectionsComponent {
|
|
24
|
-
list;
|
|
25
|
-
_SectionAdminService;
|
|
26
|
-
toaster;
|
|
27
|
-
confirmation;
|
|
28
|
-
fb;
|
|
29
|
-
_EntryTypeAdminService;
|
|
30
|
-
_LocalizationService;
|
|
31
|
-
_CmsApiService;
|
|
32
|
-
router;
|
|
33
|
-
constructor(list, _SectionAdminService,
|
|
34
|
-
// private _SiteAdminService: SiteAdminService,
|
|
35
|
-
toaster, confirmation, fb, _EntryTypeAdminService, _LocalizationService, _CmsApiService, router) {
|
|
36
|
-
this.list = list;
|
|
37
|
-
this._SectionAdminService = _SectionAdminService;
|
|
38
|
-
this.toaster = toaster;
|
|
39
|
-
this.confirmation = confirmation;
|
|
40
|
-
this.fb = fb;
|
|
41
|
-
this._EntryTypeAdminService = _EntryTypeAdminService;
|
|
42
|
-
this._LocalizationService = _LocalizationService;
|
|
43
|
-
this._CmsApiService = _CmsApiService;
|
|
44
|
-
this.router = router;
|
|
45
|
-
}
|
|
46
|
-
_UpdateListService = inject(UpdateListService);
|
|
47
|
-
/**跳转编辑 */
|
|
48
|
-
jumpSectionsEdit(row, item) {
|
|
49
|
-
this.router.navigate([`/cms/admin/sections/${row.id}/entry-types/${item.id}/edit`], {});
|
|
50
|
-
}
|
|
51
|
-
/**跳转新建 */
|
|
52
|
-
jumpSectionsCreate(row) {
|
|
53
|
-
this.router.navigate([`/cms/admin/sections/${row.id}/entry-types/create`], {});
|
|
54
|
-
}
|
|
55
|
-
/**版块列表 */
|
|
56
|
-
siteList = [];
|
|
57
|
-
/*** */
|
|
58
|
-
ColumnMode = ColumnMode;
|
|
59
|
-
data = {
|
|
60
|
-
items: [],
|
|
61
|
-
totalCount: 0,
|
|
62
|
-
};
|
|
63
|
-
/** */
|
|
64
|
-
filters = {};
|
|
65
|
-
/**获取页面列表 */
|
|
66
|
-
hookToQuery() {
|
|
67
|
-
const getData = (query) => this._SectionAdminService.getList({
|
|
68
|
-
...query,
|
|
69
|
-
...this.filters,
|
|
70
|
-
});
|
|
71
|
-
const setData = (list) => (this.data = list);
|
|
72
|
-
this.list.hookToQuery(getData).subscribe(setData);
|
|
73
|
-
}
|
|
74
|
-
async ngOnInit() {
|
|
75
|
-
this.hookToQuery();
|
|
76
|
-
this._UpdateListService.updateListEvent.subscribe(() => {
|
|
77
|
-
this.list.get();
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
/**站点切换 */
|
|
81
|
-
siteIdChange() {
|
|
82
|
-
this.list.page = 0;
|
|
83
|
-
this.list.get();
|
|
84
|
-
}
|
|
85
|
-
/**创建版块模态框状态 */
|
|
86
|
-
visibleOpen = false;
|
|
87
|
-
/**用于确定模态的繁忙状态是否为真 */
|
|
88
|
-
modalBusy = false;
|
|
89
|
-
/**创建版块表单 */
|
|
90
|
-
createOrEditForm;
|
|
91
|
-
/**版块给定的表单值 */
|
|
92
|
-
selected;
|
|
93
|
-
_SectionType = SectionType;
|
|
94
|
-
_sectionTypeOptions = sectionTypeOptions;
|
|
95
|
-
/**表单控件模板-动态赋值表单控件 */
|
|
96
|
-
createOrEditModalSubmitBtn;
|
|
97
|
-
/**创建版块模态框状态改变 */
|
|
98
|
-
VisibleChange(event) {
|
|
99
|
-
if (!event) {
|
|
100
|
-
this.selected = '';
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**创建版块,打开模态框 */
|
|
105
|
-
createSectionBtn() {
|
|
106
|
-
this.visibleOpen = true;
|
|
107
|
-
this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());
|
|
108
|
-
this.setAsyncValidatorsFn();
|
|
109
|
-
}
|
|
110
|
-
/**编辑版块,打开模态框 */
|
|
111
|
-
editSectionBtn(row) {
|
|
112
|
-
this.visibleOpen = true;
|
|
113
|
-
this.createOrEditForm = this.fb.group(new CreateOrUpdateSectionsInputBase());
|
|
114
|
-
this.setAsyncValidatorsFn();
|
|
115
|
-
this._SectionAdminService.get(row.id).subscribe(res => {
|
|
116
|
-
this.createOrEditForm.patchValue(res);
|
|
117
|
-
this.selected = res;
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
/**删除某个条目类型 */
|
|
121
|
-
deleteEntryType(row) {
|
|
122
|
-
this.confirmation
|
|
123
|
-
.warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))
|
|
124
|
-
.subscribe((status) => {
|
|
125
|
-
if (status == 'confirm') {
|
|
126
|
-
this._EntryTypeAdminService
|
|
127
|
-
.delete(row.id)
|
|
128
|
-
.pipe(finalize(() => { }))
|
|
129
|
-
.subscribe(res => {
|
|
130
|
-
this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
|
|
131
|
-
this.list.get();
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
/**表单保存提交 */
|
|
137
|
-
createOrEditSave() {
|
|
138
|
-
if (this.selected) {
|
|
139
|
-
return this.EditSave();
|
|
140
|
-
}
|
|
141
|
-
this.createSave();
|
|
142
|
-
}
|
|
143
|
-
/** */
|
|
144
|
-
createSave() {
|
|
145
|
-
let input = this.createOrEditForm.value;
|
|
146
|
-
// input.siteId = this.filters.siteId;
|
|
147
|
-
if (!this.createOrEditForm.valid)
|
|
148
|
-
return;
|
|
149
|
-
this.modalBusy = true;
|
|
150
|
-
this._SectionAdminService
|
|
151
|
-
.create(input)
|
|
152
|
-
.pipe(finalize(() => {
|
|
153
|
-
this.modalBusy = false;
|
|
154
|
-
this.visibleOpen = false;
|
|
155
|
-
}))
|
|
156
|
-
.subscribe(res => {
|
|
157
|
-
this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
|
|
158
|
-
this.list.get();
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
/**创建版块保存 */
|
|
162
|
-
EditSave() {
|
|
163
|
-
let input = this.createOrEditForm.value;
|
|
164
|
-
// input.siteId = this.filters.siteId;
|
|
165
|
-
input.concurrencyStamp = this.selected.concurrencyStamp;
|
|
166
|
-
if (!this.createOrEditForm.valid)
|
|
167
|
-
return;
|
|
168
|
-
this.modalBusy = true;
|
|
169
|
-
this._SectionAdminService
|
|
170
|
-
.update(this.selected.id, input)
|
|
171
|
-
.pipe(finalize(() => {
|
|
172
|
-
this.modalBusy = false;
|
|
173
|
-
this.visibleOpen = false;
|
|
174
|
-
}))
|
|
175
|
-
.subscribe(res => {
|
|
176
|
-
this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
|
|
177
|
-
this.list.get();
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
/**删除版块 */
|
|
181
|
-
deletefield(row) {
|
|
182
|
-
this.confirmation
|
|
183
|
-
.warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`))
|
|
184
|
-
.subscribe((status) => {
|
|
185
|
-
if (status == 'confirm') {
|
|
186
|
-
this._SectionAdminService
|
|
187
|
-
.delete(row.id)
|
|
188
|
-
.pipe(finalize(() => { }))
|
|
189
|
-
.subscribe(res => {
|
|
190
|
-
this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
|
|
191
|
-
this.list.get();
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
/**name表单控件 */
|
|
197
|
-
get displayNameInput() {
|
|
198
|
-
return this.createOrEditForm.get('displayName');
|
|
199
|
-
}
|
|
200
|
-
/**name表单控件 */
|
|
201
|
-
get nameInput() {
|
|
202
|
-
return this.createOrEditForm.get('name');
|
|
203
|
-
}
|
|
204
|
-
/**route表单控件 */
|
|
205
|
-
get routeInput() {
|
|
206
|
-
return this.createOrEditForm.get('route');
|
|
207
|
-
}
|
|
208
|
-
/**route表单控件 */
|
|
209
|
-
get templateInput() {
|
|
210
|
-
return this.createOrEditForm.get('template');
|
|
211
|
-
}
|
|
212
|
-
/**route表单控件 */
|
|
213
|
-
get typeInput() {
|
|
214
|
-
return this.createOrEditForm.get('type');
|
|
215
|
-
}
|
|
216
|
-
radiochange() {
|
|
217
|
-
this.routeInput.patchValue(this.routeInput.value);
|
|
218
|
-
}
|
|
219
|
-
/**字段标签input失去标点生成字段名字 */
|
|
220
|
-
disPlayNameInputBlur(event) {
|
|
221
|
-
let value = event.target.value;
|
|
222
|
-
let pinyin = this._CmsApiService.chineseToPinyin(value);
|
|
223
|
-
let nameInput = this.nameInput;
|
|
224
|
-
let routeInput = this.routeInput;
|
|
225
|
-
let templateInput = this.templateInput;
|
|
226
|
-
if (nameInput.value)
|
|
227
|
-
return;
|
|
228
|
-
nameInput.patchValue(pinyin);
|
|
229
|
-
if (routeInput.value)
|
|
230
|
-
return;
|
|
231
|
-
routeInput.patchValue(pinyin + (this.typeInput.value === 0 ? '' : '/{slug}'));
|
|
232
|
-
if (templateInput.value)
|
|
233
|
-
return;
|
|
234
|
-
templateInput.patchValue(pinyin + '/index');
|
|
235
|
-
}
|
|
236
|
-
/**设置字段控件异步验证 */
|
|
237
|
-
setAsyncValidatorsFn() {
|
|
238
|
-
this.createOrEditForm.setControl('name', new FormControl(this.nameInput.value || '', {
|
|
239
|
-
validators: Validators.required,
|
|
240
|
-
asyncValidators: this.nameRepetitionAsyncValidator(),
|
|
241
|
-
}));
|
|
242
|
-
this.createOrEditForm.setControl('route', new FormControl(this.routeInput.value || '', {
|
|
243
|
-
validators: [Validators.required, this.forbiddenNameValidator()],
|
|
244
|
-
asyncValidators: [this.routeRepetitionAsyncValidator()],
|
|
245
|
-
}));
|
|
246
|
-
}
|
|
247
|
-
forbiddenNameValidator() {
|
|
248
|
-
return (control) => {
|
|
249
|
-
let inputValue = control.value.toLocaleLowerCase();
|
|
250
|
-
let forbidden = this.typeInput.value == 0 ? false : inputValue.includes('{slug}') ? false : true;
|
|
251
|
-
return forbidden
|
|
252
|
-
? {
|
|
253
|
-
repetition: this._LocalizationService.instant(`Cms::RouteVerificationTips`, this._LocalizationService.instant(`Cms::Enum:SectionType:` + SectionType[this.typeInput.value]), '{slug}'),
|
|
254
|
-
}
|
|
255
|
-
: null;
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
/**定义异步验证方法 */
|
|
259
|
-
nameRepetitionAsyncValidator() {
|
|
260
|
-
return (ctrl) => {
|
|
261
|
-
return new Promise(resolve => {
|
|
262
|
-
let subslug = this.createOrEditForm?.get('name');
|
|
263
|
-
if (subslug.value == this.selected?.name) {
|
|
264
|
-
resolve(null);
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
this._SectionAdminService
|
|
268
|
-
.nameExists({
|
|
269
|
-
name: subslug.value,
|
|
270
|
-
})
|
|
271
|
-
.subscribe(res => {
|
|
272
|
-
if (res) {
|
|
273
|
-
resolve({
|
|
274
|
-
repetition: this._LocalizationService.instant(`Cms::SectionName{0}AlreadyExist`, ctrl.value),
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
else {
|
|
278
|
-
resolve(null);
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
});
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
/**定义异步验证方法 */
|
|
285
|
-
routeRepetitionAsyncValidator() {
|
|
286
|
-
return (ctrl) => {
|
|
287
|
-
return new Promise(resolve => {
|
|
288
|
-
let subslug = this.createOrEditForm?.get('route').value;
|
|
289
|
-
if (subslug == this.selected?.route) {
|
|
290
|
-
resolve(null);
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
293
|
-
this._SectionAdminService
|
|
294
|
-
.routeExists({
|
|
295
|
-
// siteId: this.filters.siteId,
|
|
296
|
-
route: subslug,
|
|
297
|
-
})
|
|
298
|
-
.subscribe(res => {
|
|
299
|
-
if (res) {
|
|
300
|
-
resolve({
|
|
301
|
-
repetition: this._LocalizationService.instant(`Cms::SectionRoute{0}AlreadyExist`, ctrl.value),
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
resolve(null);
|
|
306
|
-
}
|
|
307
|
-
});
|
|
308
|
-
});
|
|
309
|
-
};
|
|
310
|
-
}
|
|
311
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SectionsComponent, deps: [{ token: i1.ListService }, { token: i2.SectionAdminService }, { token: i3.ToasterService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }, { token: i2.EntryTypeAdminService }, { token: i1.LocalizationService }, { token: i5.CmsApiService }, { token: i6.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
312
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SectionsComponent, selector: "cms-sections", providers: [
|
|
313
|
-
// [Required]
|
|
314
|
-
ListService,
|
|
315
|
-
// [Optional]
|
|
316
|
-
// Provide this token if you want a different debounce time.
|
|
317
|
-
// Default is 300. Cannot be 0. Any value below 100 is not recommended.
|
|
318
|
-
{ provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
|
|
319
|
-
{
|
|
320
|
-
provide: EXTENSIONS_IDENTIFIER,
|
|
321
|
-
useValue: ECmsComponent.Sections,
|
|
322
|
-
},
|
|
323
|
-
], viewQueries: [{ propertyName: "createOrEditModalSubmitBtn", first: true, predicate: ["createOrEditModalSubmitBtn"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">\u662F</option>\n <option [value]=\"false\">\u5426</option>\n </select>\n </div>\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-2 col-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\"\n (click.stop)=\"jumpSectionsEdit(row,item)\">{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem (click.stop)=\"jumpSectionsCreate(row)\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy/MM/dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [frozenRight]=\"true\" [name]=\"'AbpUi::Actions' | abpLocalization\" cellClass=\"cellClassRight\" [width]=\"100\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<abp-modal [(visible)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"createOrEditForm\" (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n blog<br>\n {{'blog/{slug}'}}<br>\n {{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <div class=\"form-text\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .sections-page .dignite_page{background:transparent}::ng-deep .sections-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sections-page .card-header input{flex:2 1 auto}::ng-deep .sections-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: i8.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i8.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i8.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i11.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "pipe", type: i7.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] });
|
|
324
|
-
}
|
|
325
|
-
export { SectionsComponent };
|
|
326
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SectionsComponent, decorators: [{
|
|
327
|
-
type: Component,
|
|
328
|
-
args: [{ selector: 'cms-sections', providers: [
|
|
329
|
-
// [Required]
|
|
330
|
-
ListService,
|
|
331
|
-
// [Optional]
|
|
332
|
-
// Provide this token if you want a different debounce time.
|
|
333
|
-
// Default is 300. Cannot be 0. Any value below 100 is not recommended.
|
|
334
|
-
{ provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
|
|
335
|
-
{
|
|
336
|
-
provide: EXTENSIONS_IDENTIFIER,
|
|
337
|
-
useValue: ECmsComponent.Sections,
|
|
338
|
-
},
|
|
339
|
-
], template: "<abp-page [title]=\"'Cms::Sections' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sections-page\">\n <div class=\"card \" >\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"row align-items-end\">\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'Cms::IsActive' | abpLocalization}}\uFF1A</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.isActive\" (change)=\"siteIdChange()\">\n <option [value]=\"\"></option>\n <option [value]=\"true\">\u662F</option>\n <option [value]=\"false\">\u5426</option>\n </select>\n </div>\n <div class=\"mb-2 col-3\">\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n </div>\n <div class=\"mb-2 col-4\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div> \n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::SectionType' | abpLocalization\" prop=\"type\" [width]=\"80\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{('Cms::Enum:SectionType:'+_SectionType[value]) | abpLocalization}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsDefault' | abpLocalization\" prop=\"isDefault\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\" [width]=\"60\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"SiteId\" [width]=\"100\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-link\" ngbDropdownToggle id=\"dropdownBasic1\">\n {{'Cms::EntryType' | abpLocalization}}\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <ng-container *ngFor=\"let item of row.entryTypes;let i =index\">\n <li ngbDropdownItem\n class=\"d-flex align-items-center justify-content-between\"\n (click.stop)=\"jumpSectionsEdit(row,item)\">{{item.displayName}}\n <button class=\"btn btn-light btn-sm p-0\"\n (click.stop)=\"deleteEntryType(item)\"><i class=\"fas fa-trash p-sm-1\"\n style=\"font-size: 12px;\" role=\"button\"></i></button>\n </li>\n </ng-container>\n <li ngbDropdownItem (click.stop)=\"jumpSectionsCreate(row)\"><i\n class=\"fas fa-plus-circle me-2\"></i>{{'Cms::New' |\n abpLocalization}}</li>\n </div>\n </div>\n\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [minWidth]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy/MM/dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [frozenRight]=\"true\" [name]=\"'AbpUi::Actions' | abpLocalization\" cellClass=\"cellClassRight\" [width]=\"100\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"editSectionBtn(row)\">{{'AbpUi::Edit' |\n abpLocalization}}</button>\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\n abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<abp-modal [(visible)]=\"visibleOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"createOrEditForm\" (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #createOrEditModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::EntryType' | abpLocalization}}</label>\n <div>\n <ng-container *ngFor=\"let item of _sectionTypeOptions;let i =index\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"item.value\"\n (change)=\"radiochange()\" formControlName=\"type\" id=\"flexRadioDefault{{i}}\">\n <label class=\"form-check-label\" for=\"flexRadioDefault{{i}}\">\n {{ 'Cms::Enum:SectionType:'+item.key | abpLocalization }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Route' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"route\" placeholder=\"\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"routeInput.errors?.repetition\">\n {{routeInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\n {{'Cms::RouteTips' | abpLocalization}}<br>\n blog<br>\n {{'blog/{slug}'}}<br>\n {{'blog/{publishTime:yyyy}/{publishTime:MM}/{slug}'}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Template' | abpLocalization}} </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"template\" placeholder=\"\" />\n <div class=\"form-text\">\n {{\"Cms::TemplateTips\" | abpLocalization}}\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isDefault\"\n id=\"isDefault\" />\n <label class=\"form-check-label\" for=\"isDefault\"> {{'Cms::Default' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\"> {{'Cms::IsActive' | abpLocalization}}</label>\n </div>\n </div>\n\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"createOrEditModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' |\n abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .sections-page .dignite_page{background:transparent}::ng-deep .sections-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sections-page .card-header input{flex:2 1 auto}::ng-deep .sections-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
|
|
340
|
-
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.SectionAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }, { type: i2.EntryTypeAdminService }, { type: i1.LocalizationService }, { type: i5.CmsApiService }, { type: i6.Router }]; }, propDecorators: { createOrEditModalSubmitBtn: [{
|
|
341
|
-
type: ViewChild,
|
|
342
|
-
args: ['createOrEditModalSubmitBtn', { static: false }]
|
|
343
|
-
}] } });
|
|
344
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9zZWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL3NlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsV0FBVyxHQUdaLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUdMLFdBQVcsRUFJWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQU94QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFMUUsTUFpQmEsaUJBQWlCO0lBRVY7SUFDUjtJQUVBO0lBQ0E7SUFDQTtJQUNEO0lBQ0E7SUFDQTtJQUNDO0lBVlYsWUFDa0IsSUFBaUIsRUFDekIsb0JBQXlDO0lBQ2pELCtDQUErQztJQUN2QyxPQUF1QixF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LElBQUksQ0FBQyxLQUFLLENBQ1g7eUJBQ0YsQ0FBQyxDQUFDO3FCQUNKO3lCQUFNO3dCQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZjtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt3R0E1VFUsaUJBQWlCOzRGQUFqQixpQkFBaUIsdUNBYmpCO1lBQ1QsYUFBYTtZQUNiLFdBQVc7WUFDWCxhQUFhO1lBQ2IsNERBQTREO1lBQzVELHVFQUF1RTtZQUN2RSxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQ3BEO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUTthQUNqQztTQUNGLG9LQ2xESCxza1pBNkxZOztTRHpJQyxpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFqQjdCLFNBQVM7K0JBQ0UsY0FBYyxhQUdiO3dCQUNULGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLDREQUE0RDt3QkFDNUQsdUVBQXVFO3dCQUN2RSxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO3dCQUNwRDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVE7eUJBQ2pDO3FCQUNGO29WQTRFRCwwQkFBMEI7c0JBRHpCLFNBQVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQUJQLFxuICBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsXG4gIExpc3RTZXJ2aWNlLFxuICBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICBQYWdlZFJlc3VsdER0byxcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBDb25maXJtYXRpb24gfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBFbnRyeVR5cGVBZG1pblNlcnZpY2UsXG4gIEdldFNlY3Rpb25zSW5wdXQsXG4gIFNlY3Rpb25BZG1pblNlcnZpY2UsXG4gIFNlY3Rpb25EdG8sXG59IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL3NlY3Rpb25zJztcbmltcG9ydCB7IENvbHVtbk1vZGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlU2VjdGlvbnNJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtc2VjdGlvbnMtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBTZWN0aW9uVHlwZSwgc2VjdGlvblR5cGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvc2VjdGlvbnMnO1xuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Ntcy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyAgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFVwZGF0ZUxpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXBkYXRlLWxpc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1zZWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlY3Rpb25zLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIC8vIFtSZXF1aXJlZF1cbiAgICBMaXN0U2VydmljZSxcbiAgICAvLyBbT3B0aW9uYWxdXG4gICAgLy8gUHJvdmlkZSB0aGlzIHRva2VuIGlmIHlvdSB3YW50IGEgZGlmZmVyZW50IGRlYm91bmNlIHRpbWUuXG4gICAgLy8gRGVmYXVsdCBpcyAzMDAuIENhbm5vdCBiZSAwLiBBbnkgdmFsdWUgYmVsb3cgMTAwIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICB7IHByb3ZpZGU6IExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgdXNlVmFsdWU6IDUwMCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LlNlY3Rpb25zLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgX1NlY3Rpb25BZG1pblNlcnZpY2U6IFNlY3Rpb25BZG1pblNlcnZpY2UsXG4gICAgLy8gcHJpdmF0ZSBfU2l0ZUFkbWluU2VydmljZTogU2l0ZUFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHB1YmxpYyBfRW50cnlUeXBlQWRtaW5TZXJ2aWNlOiBFbnRyeVR5cGVBZG1pblNlcnZpY2UsXG4gICAgcHVibGljIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkgeyB9XG4gIHByaXZhdGUgX1VwZGF0ZUxpc3RTZXJ2aWNlID0gaW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKTtcblxuICAvKirot7PovaznvJbovpEgKi9cbiAganVtcFNlY3Rpb25zRWRpdChyb3csIGl0ZW0pIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jbXMvYWRtaW4vc2VjdGlvbnMvJHtyb3cuaWR9L2VudHJ5LXR5cGVzLyR7aXRlbS5pZH0vZWRpdGBdLCB7fSk7XG4gIH1cbiAgLyoq6Lez6L2s5paw5bu6ICovXG4gIGp1bXBTZWN0aW9uc0NyZWF0ZShyb3cpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jbXMvYWRtaW4vc2VjdGlvbnMvJHtyb3cuaWR9L2VudHJ5LXR5cGVzL2NyZWF0ZWBdLCB7fSk7XG4gIH1cblxuICAvKirniYjlnZfliJfooaggKi9cbiAgc2l0ZUxpc3Q6IGFueVtdID0gW107XG4gIC8qKiogKi9cbiAgQ29sdW1uTW9kZSA9IENvbHVtbk1vZGU7XG4gIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPFNlY3Rpb25EdG8+ID0ge1xuICAgIGl0ZW1zOiBbXSxcbiAgICB0b3RhbENvdW50OiAwLFxuICB9O1xuICAvKiogKi9cbiAgZmlsdGVycyA9IHt9IGFzIEdldFNlY3Rpb25zSW5wdXQ7XG4gIC8qKuiOt+WPlumhtemdouWIl+ihqCAqL1xuICBob29rVG9RdWVyeSgpIHtcbiAgICBjb25zdCBnZXREYXRhID0gKHF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSA9PiB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgLi4ucXVlcnksXG4gICAgICAuLi50aGlzLmZpbHRlcnMsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RGF0YSA9IChsaXN0OiBQYWdlZFJlc3VsdER0bzxTZWN0aW9uRHRvPikgPT4gKHRoaXMuZGF0YSA9IGxpc3QpO1xuICAgIHRoaXMubGlzdC5ob29rVG9RdWVyeShnZXREYXRhKS5zdWJzY3JpYmUoc2V0RGF0YSk7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KCk7XG4gICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3QuZ2V0KCk7XG4gICAgfSk7XG4gIH1cblxuICAvKirnq5nngrnliIfmjaIgKi9cbiAgc2l0ZUlkQ2hhbmdlKCkge1xuICAgIHRoaXMubGlzdC5wYWdlID0gMDtcbiAgICB0aGlzLmxpc3QuZ2V0KCk7XG4gIH1cblxuXG4gIC8qKuWIm+W7uueJiOWdl+aooeaAgeahhueKtuaAgSAqL1xuICB2aXNpYmxlT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKueUqOS6juehruWumuaooeaAgeeahOe5geW/meeKtuaAgeaYr+WQpuS4uuecnyAqL1xuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoq5Yib5bu654mI5Z2X6KGo5Y2VICovXG4gIGNyZWF0ZU9yRWRpdEZvcm06IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcblxuICAvKirniYjlnZfnu5nlrprnmoTooajljZXlgLwgKi9cbiAgc2VsZWN0ZWQ6IGFueTtcblxuICBfU2VjdGlvblR5cGUgPSBTZWN0aW9uVHlwZTtcbiAgX3NlY3Rpb25UeXBlT3B0aW9ucyA9IHNlY3Rpb25UeXBlT3B0aW9ucztcblxuICAvKirooajljZXmjqfku7bmqKHmnb8t5Yqo5oCB6LWL5YC86KGo5Y2V5o6n5Lu2ICovXG4gIEBWaWV3Q2hpbGQoJ2NyZWF0ZU9yRWRpdE1vZGFsU3VibWl0QnRuJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGNyZWF0ZU9yRWRpdE1vZGFsU3VibWl0QnRuOiBFbGVtZW50UmVmO1xuXG4gIC8qKuWIm+W7uueJiOWdl+aooeaAgeahhueKtuaAgeaUueWPmCAqL1xuICBWaXNpYmxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICAvKirliJvlu7rniYjlnZfvvIzmiZPlvIDmqKHmgIHmoYYgKi9cbiAgY3JlYXRlU2VjdGlvbkJ0bigpIHtcbiAgICB0aGlzLnZpc2libGVPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0gPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZVNlY3Rpb25zSW5wdXRCYXNlKCkpO1xuICAgIHRoaXMuc2V0QXN5bmNWYWxpZGF0b3JzRm4oKTtcbiAgfVxuICAvKirnvJbovpHniYjlnZfvvIzmiZPlvIDmqKHmgIHmoYYgKi9cbiAgZWRpdFNlY3Rpb25CdG4ocm93KSB7XG4gICAgdGhpcy52aXNpYmxlT3BlbiA9IHRydWU7XG4gICAgdGhpcy5jcmVhdGVPckVkaXRGb3JtID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JVcGRhdGVTZWN0aW9uc0lucHV0QmFzZSgpKTtcbiAgICB0aGlzLnNldEFzeW5jVmFsaWRhdG9yc0ZuKCk7XG4gICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZS5nZXQocm93LmlkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS5wYXRjaFZhbHVlKHJlcyk7XG4gICAgICB0aGlzLnNlbGVjdGVkID0gcmVzO1xuICAgIH0pO1xuICB9XG4gIC8qKuWIoOmZpOafkOS4quadoeebruexu+WeiyAqL1xuICBkZWxldGVFbnRyeVR5cGUocm93KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25cbiAgICAgIC53YXJuKHJvdy5kaXNwbGF5TmFtZSwgdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6SXRlbVdpbGxCZURlbGV0ZWRNZXNzYWdlYCkpXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpID0+IHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PSAnY29uZmlybScpIHtcbiAgICAgICAgICB0aGlzLl9FbnRyeVR5cGVBZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5kZWxldGUocm93LmlkKVxuICAgICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4geyB9KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U3VjY2Vzc2Z1bGx5RGVsZXRlZGApKTtcbiAgICAgICAgICAgICAgdGhpcy5saXN0LmdldCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoq6KGo5Y2V5L+d5a2Y5o+Q5LqkICovXG4gIGNyZWF0ZU9yRWRpdFNhdmUoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLkVkaXRTYXZlKCk7XG4gICAgfVxuICAgIHRoaXMuY3JlYXRlU2F2ZSgpO1xuICB9XG5cbiAgLyoqICovXG4gIGNyZWF0ZVNhdmUoKSB7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5jcmVhdGVPckVkaXRGb3JtLnZhbHVlO1xuICAgIC8vIGlucHV0LnNpdGVJZCA9IHRoaXMuZmlsdGVycy5zaXRlSWQ7XG4gICAgaWYgKCF0aGlzLmNyZWF0ZU9yRWRpdEZvcm0udmFsaWQpIHJldHVybjtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG4gICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZVxuICAgICAgLmNyZWF0ZShpbnB1dClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnZpc2libGVPcGVuID0gZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0OjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgICAgdGhpcy5saXN0LmdldCgpO1xuICAgICAgfSk7XG4gIH1cbiAgLyoq5Yib5bu654mI5Z2X5L+d5a2YICovXG4gIEVkaXRTYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS52YWx1ZTtcbiAgICAvLyBpbnB1dC5zaXRlSWQgPSB0aGlzLmZpbHRlcnMuc2l0ZUlkO1xuICAgIGlucHV0LmNvbmN1cnJlbmN5U3RhbXAgPSB0aGlzLnNlbGVjdGVkLmNvbmN1cnJlbmN5U3RhbXA7XG4gICAgaWYgKCF0aGlzLmNyZWF0ZU9yRWRpdEZvcm0udmFsaWQpIHJldHVybjtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG4gICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZVxuICAgICAgLnVwZGF0ZSh0aGlzLnNlbGVjdGVkLmlkLCBpbnB1dClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnZpc2libGVPcGVuID0gZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0OjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgICAgdGhpcy5saXN0LmdldCgpO1xuICAgICAgfSk7XG4gIH1cbiAgLyoq5Yig6Zmk54mI5Z2XICovXG4gIGRlbGV0ZWZpZWxkKHJvdykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uXG4gICAgICAud2Fybihyb3cuZGlzcGxheU5hbWUsIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6Okl0ZW1XaWxsQmVEZWxldGVkTWVzc2FnZWApKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZVxuICAgICAgICAgICAgLmRlbGV0ZShyb3cuaWQpXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB7IH0pKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkYCkpO1xuICAgICAgICAgICAgICB0aGlzLmxpc3QuZ2V0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipuYW1l6KGo5Y2V5o6n5Lu2ICovXG4gIGdldCBkaXNwbGF5TmFtZUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0uZ2V0KCdkaXNwbGF5TmFtZScpO1xuICB9XG4gIC8qKm5hbWXooajljZXmjqfku7YgKi9cbiAgZ2V0IG5hbWVJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPckVkaXRGb3JtLmdldCgnbmFtZScpO1xuICB9XG4gIC8qKnJvdXRl6KGo5Y2V5o6n5Lu2ICovXG4gIGdldCByb3V0ZUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0uZ2V0KCdyb3V0ZScpO1xuICB9XG4gIC8qKnJvdXRl6KGo5Y2V5o6n5Lu2ICovXG4gIGdldCB0ZW1wbGF0ZUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0uZ2V0KCd0ZW1wbGF0ZScpO1xuICB9XG4gIC8qKnJvdXRl6KGo5Y2V5o6n5Lu2ICovXG4gIGdldCB0eXBlSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS5nZXQoJ3R5cGUnKTtcbiAgfVxuXG4gIHJhZGlvY2hhbmdlKCkge1xuICAgIHRoaXMucm91dGVJbnB1dC5wYXRjaFZhbHVlKHRoaXMucm91dGVJbnB1dC52YWx1ZSk7XG4gIH1cblxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBsZXQgcGlueWluID0gdGhpcy5fQ21zQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsdWUpO1xuICAgIGxldCBuYW1lSW5wdXQgPSB0aGlzLm5hbWVJbnB1dDtcbiAgICBsZXQgcm91dGVJbnB1dCA9IHRoaXMucm91dGVJbnB1dDtcbiAgICBsZXQgdGVtcGxhdGVJbnB1dCA9IHRoaXMudGVtcGxhdGVJbnB1dDtcbiAgICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm47XG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKTtcbiAgICBpZiAocm91dGVJbnB1dC52YWx1ZSkgcmV0dXJuO1xuICAgIHJvdXRlSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4gKyAodGhpcy50eXBlSW5wdXQudmFsdWUgPT09IDAgPyAnJyA6ICcve3NsdWd9JykpO1xuICAgIGlmICh0ZW1wbGF0ZUlucHV0LnZhbHVlKSByZXR1cm47XG4gICAgdGVtcGxhdGVJbnB1dC5wYXRjaFZhbHVlKHBpbnlpbiArICcvaW5kZXgnKTtcbiAgfVxuXG4gIC8qKuiuvue9ruWtl+auteaOp+S7tuW8guatpemqjOivgSAqL1xuICBzZXRBc3luY1ZhbGlkYXRvcnNGbigpIHtcbiAgICB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0uc2V0Q29udHJvbChcbiAgICAgICduYW1lJyxcbiAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLm5hbWVJbnB1dC52YWx1ZSB8fCAnJywge1xuICAgICAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IHRoaXMubmFtZVJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpLFxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS5zZXRDb250cm9sKFxuICAgICAgJ3JvdXRlJyxcbiAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLnJvdXRlSW5wdXQudmFsdWUgfHwgJycsIHtcbiAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuZm9yYmlkZGVuTmFtZVZhbGlkYXRvcigpXSxcbiAgICAgICAgYXN5bmNWYWxpZGF0b3JzOiBbdGhpcy5yb3V0ZVJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpXSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICBmb3JiaWRkZW5OYW1lVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGxldCBpbnB1dFZhbHVlID0gY29udHJvbC52YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgbGV0IGZvcmJpZGRlbiA9XG4gICAgICAgIHRoaXMudHlwZUlucHV0LnZhbHVlID09IDAgPyBmYWxzZSA6IGlucHV0VmFsdWUuaW5jbHVkZXMoJ3tzbHVnfScpID8gZmFsc2UgOiB0cnVlO1xuICAgICAgcmV0dXJuIGZvcmJpZGRlblxuICAgICAgICA/IHtcbiAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICBgQ21zOjpSb3V0ZVZlcmlmaWNhdGlvblRpcHNgLFxuICAgICAgICAgICAgdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICBgQ21zOjpFbnVtOlNlY3Rpb25UeXBlOmAgKyBTZWN0aW9uVHlwZVt0aGlzLnR5cGVJbnB1dC52YWx1ZV1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAne3NsdWd9J1xuICAgICAgICAgICksXG4gICAgICAgIH1cbiAgICAgICAgOiBudWxsO1xuICAgIH07XG4gIH1cblxuICAvKirlrprkuYnlvILmraXpqozor4Hmlrnms5UgKi9cbiAgbmFtZVJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgY3RybDogQWJzdHJhY3RDb250cm9sXG4gICAgKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5jcmVhdGVPckVkaXRGb3JtPy5nZXQoJ25hbWUnKTtcbiAgICAgICAgaWYgKHN1YnNsdWcudmFsdWUgPT0gdGhpcy5zZWxlY3RlZD8ubmFtZSkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX1NlY3Rpb25BZG1pblNlcnZpY2VcbiAgICAgICAgICAubmFtZUV4aXN0cyh7XG4gICAgICAgICAgICBuYW1lOiBzdWJzbHVnLnZhbHVlLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICBgQ21zOjpTZWN0aW9uTmFtZXswfUFscmVhZHlFeGlzdGAsXG4gICAgICAgICAgICAgICAgICBjdHJsLnZhbHVlXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfVxuICAvKirlrprkuYnlvILmraXpqozor4Hmlrnms5UgKi9cbiAgcm91dGVSZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGN0cmw6IEFic3RyYWN0Q29udHJvbFxuICAgICk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBsZXQgc3Vic2x1ZyA9IHRoaXMuY3JlYXRlT3JFZGl0Rm9ybT8uZ2V0KCdyb3V0ZScpLnZhbHVlO1xuICAgICAgICBpZiAoc3Vic2x1ZyA9PSB0aGlzLnNlbGVjdGVkPy5yb3V0ZSkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX1NlY3Rpb25BZG1pblNlcnZpY2VcbiAgICAgICAgICAucm91dGVFeGlzdHMoe1xuICAgICAgICAgICAgLy8gc2l0ZUlkOiB0aGlzLmZpbHRlcnMuc2l0ZUlkLFxuICAgICAgICAgICAgcm91dGU6IHN1YnNsdWcsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgIHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICAgIGBDbXM6OlNlY3Rpb25Sb3V0ZXswfUFscmVhZHlFeGlzdGAsXG4gICAgICAgICAgICAgICAgICBjdHJsLnZhbHVlXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfVxufVxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpTZWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb25zLXBhZ2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgXCIgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweC0yIHB5LXNtLTIgYm9yZGVyLWJvdHRvbVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNvbC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb259fe+8mjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY29sLWF1dG9cIiBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNBY3RpdmVcIiAoY2hhbmdlKT1cInNpdGVJZENoYW5nZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiXCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidHJ1ZVwiPuaYrzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImZhbHNlXCI+5ZCmPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNvbC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQWJwVWk6OlNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb259fe+8mjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVycy5maWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjb2wtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC0zXCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiYnV0dG9uLWFkZG9uMlwiIChjbGljayk9XCJsaXN0LmdldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+IFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0wXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlIHRhYmxlLWZpeGVkLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZSBjbGFzcz1cIm1hdGVyaWFsIFwiIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbbGlzdF09XCJsaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5Nb2RlXT1cIkNvbHVtbk1vZGUuZm9yY2VcIiBbaGVhZGVySGVpZ2h0XT1cIjUwXCIgW2Zvb3RlckhlaWdodF09XCI1MFwiIHJvd0hlaWdodD1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZpcnR1YWxpemF0aW9uXT1cImZhbHNlXCIgW2V4dGVybmFsUGFnaW5nXT1cInRydWVcIiBbY291bnRdPVwiZGF0YS50b3RhbENvdW50XCIgW3Njcm9sbGJhckhdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJkaXNwbGF5TmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6TmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6U2VjdGlvblR5cGUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInR5cGVcIiBbd2lkdGhdPVwiODBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eygnQ21zOjpFbnVtOlNlY3Rpb25UeXBlOicrX1NlY3Rpb25UeXBlW3ZhbHVlXSkgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OklzRGVmYXVsdCcgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiaXNEZWZhdWx0XCIgW3dpZHRoXT1cIjYwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2sgdGV4dC1zdWNjZXNzXCIgKm5nSWY9XCJ2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXMgdGV4dC1kYW5nZXJcIiAqbmdJZj1cIiF2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiaXNBY3RpdmVcIiBbd2lkdGhdPVwiNjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGVjayB0ZXh0LXN1Y2Nlc3NcIiAqbmdJZj1cInZhbHVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lcyB0ZXh0LWRhbmdlclwiICpuZ0lmPVwiIXZhbHVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OkVudHJ5VHlwZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiU2l0ZUlkXCIgW3dpZHRoXT1cIjEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpbmtcIiBuZ2JEcm9wZG93blRvZ2dsZSBpZD1cImRyb3Bkb3duQmFzaWMxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snQ21zOjpFbnRyeVR5cGUnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvdy5lbnRyeVR5cGVzO2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgbmdiRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwianVtcFNlY3Rpb25zRWRpdChyb3csaXRlbSlcIj57e2l0ZW0uZGlzcGxheU5hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIHAtMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiZGVsZXRlRW50cnlUeXBlKGl0ZW0pXCI+PGkgY2xhc3M9XCJmYXMgZmEtdHJhc2ggcC1zbS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgcm9sZT1cImJ1dHRvblwiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgbmdiRHJvcGRvd25JdGVtIChjbGljay5zdG9wKT1cImp1bXBTZWN0aW9uc0NyZWF0ZShyb3cpXCI+PGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLXBsdXMtY2lyY2xlIG1lLTJcIj48L2k+e3snQ21zOjpOZXcnIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6Q3JlYXRpb25UaW1lJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJjcmVhdGlvblRpbWVcIiBbbWluV2lkdGhdPVwiMTkwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfCBkYXRlIDogJ3l5eXkvTU0vZGQgaGg6bW06c3MnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW3NvcnRhYmxlXT1cImZhbHNlXCIgW2Zyb3plblJpZ2h0XT1cInRydWVcIiBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCIgIGNlbGxDbGFzcz1cImNlbGxDbGFzc1JpZ2h0XCIgW3dpZHRoXT1cIjEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgbmdiRHJvcGRvd25Ub2dnbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtZS0xIGZhIGZhLWNvZ1wiPjwvaT4ge3snQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImVkaXRTZWN0aW9uQnRuKHJvdylcIj57eydBYnBVaTo6RWRpdCcgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2FicC1wYWdlPlxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cInZpc2libGVPcGVuXCIgW2J1c3ldPVwibW9kYWxCdXN5XCIgKHZpc2libGVDaGFuZ2UpPVwiVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgICAgIDxoMz57e3NlbGVjdGVkPygnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3JlYXRlT3JFZGl0Rm9ybTsgZWxzZSBsb2FkZXJSZWZcIj5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwic2l0ZXMtbW9kYWwtZm9ybVwiIFtmb3JtR3JvdXBdPVwiY3JlYXRlT3JFZGl0Rm9ybVwiIChuZ1N1Ym1pdCk9XCJjcmVhdGVPckVkaXRTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjY3JlYXRlT3JFZGl0TW9kYWxTdWJtaXRCdG4gc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6RW50cnlUeXBlJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX3NlY3Rpb25UeXBlT3B0aW9ucztsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJyYWRpb2NoYW5nZSgpXCIgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVwiIGlkPVwiZmxleFJhZGlvRGVmYXVsdHt7aX19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJmbGV4UmFkaW9EZWZhdWx0e3tpfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdDbXM6OkVudW06U2VjdGlvblR5cGU6JytpdGVtLmtleSB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJkaXNQbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpSb3V0ZScgfCBhYnBMb2NhbGl6YXRpb259fSA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInJvdXRlXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwicm91dGVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cm91dGVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3snQ21zOjpSb3V0ZVRpcHMnIHwgYWJwTG9jYWxpemF0aW9ufX08YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtibG9nPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7e3snYmxvZy97c2x1Z30nfX08YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDt7eydibG9nL3twdWJsaXNoVGltZTp5eXl5fS97cHVibGlzaFRpbWU6TU19L3tzbHVnfSd9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpUZW1wbGF0ZScgfCBhYnBMb2NhbGl6YXRpb259fSA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRlbXBsYXRlXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1wiQ21zOjpUZW1wbGF0ZVRpcHNcIiB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiaXNEZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzRGVmYXVsdFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiaXNEZWZhdWx0XCI+IHt7J0Ntczo6RGVmYXVsdCcgfCBhYnBMb2NhbGl6YXRpb259fSA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cImlzQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzQWN0aXZlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJpc0FjdGl2ZVwiPiB7eydDbXM6OklzQWN0aXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPnt7J0FicFVpOjpDbG9zZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIChjbGljayk9XCJjcmVhdGVPckVkaXRNb2RhbFN1Ym1pdEJ0bi5uYXRpdmVFbGVtZW50LmNsaWNrKClcIj57eydBYnBVaTo6U2F2ZScgfFxuICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Validators } from "@angular/forms";
|
|
2
|
-
export class CreateOrUpdateSitesInputBase {
|
|
3
|
-
displayName = ['', [Validators.required]];
|
|
4
|
-
name = ['', [Validators.required]];
|
|
5
|
-
host = ['https://', [Validators.required]];
|
|
6
|
-
isActive = [true, []];
|
|
7
|
-
languages = [[], [Validators.required]];
|
|
8
|
-
constructor(data) {
|
|
9
|
-
if (data) {
|
|
10
|
-
for (const key in data) {
|
|
11
|
-
if (data.hasOwnProperty(key)) {
|
|
12
|
-
this[key] = data[key];
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1zaXRlcy1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zaXRlcy9jcmVhdGUtb3ItdXBkYXRlLXNpdGVzLWlucHV0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFHLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsV0FBVyxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDeEMsSUFBSSxHQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEQsUUFBUSxHQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLFNBQVMsR0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQzNDLFlBQVksSUFBbUM7UUFDM0MsSUFBSSxJQUFJLEVBQUU7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QjthQUNKO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JVcGRhdGVTaXRlc0lucHV0QmFzZSB7XHJcbiAgICBkaXNwbGF5TmFtZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dO1xyXG4gICAgbmFtZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dO1xyXG4gICAgaG9zdDogYW55ID0gWydodHRwczovLycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV07XHJcbiAgICBpc0FjdGl2ZTogYW55ID0gW3RydWUsIFtdXTtcclxuICAgIGxhbmd1YWdlczphbnkgPSBbW10sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBDcmVhdGVPclVwZGF0ZVNpdGVzSW5wdXRCYXNlKSB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './sites.component';
|
|
2
|
-
export * from './create-or-update-sites-input-base';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NpdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxxQ0FBcUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2l0ZXMuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtc2l0ZXMtaW5wdXQtYmFzZSciXX0=
|