@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,416 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, inject } from '@angular/core';
|
|
2
|
-
import { FormBuilder } from '@angular/forms';
|
|
3
|
-
import { CreateOrEditEntryTypeInputBase, fieldTabsBase, fieldsBase } from './create-or-edit.-entry-type-input-base';
|
|
4
|
-
import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
|
|
5
|
-
import { ECmsComponent } from '../../../../enums';
|
|
6
|
-
import { UpdateListService } from '../../../../services/update-list.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@abp/ng.theme.shared";
|
|
9
|
-
import * as i2 from "@angular/common";
|
|
10
|
-
import * as i3 from "@angular/router";
|
|
11
|
-
import * as i4 from "../../../../proxy/admin/fields";
|
|
12
|
-
import * as i5 from "../../../../proxy/admin/sections";
|
|
13
|
-
import * as i6 from "@abp/ng.core";
|
|
14
|
-
import * as i7 from "../../../../services/cms-api.service";
|
|
15
|
-
import * as i8 from "@angular/forms";
|
|
16
|
-
import * as i9 from "@ngx-validate/core";
|
|
17
|
-
import * as i10 from "@ng-bootstrap/ng-bootstrap";
|
|
18
|
-
import * as i11 from "@abp/ng.components/page";
|
|
19
|
-
class CreateOrEditComponent {
|
|
20
|
-
toaster;
|
|
21
|
-
_location;
|
|
22
|
-
route;
|
|
23
|
-
_FieldGroupAdminService;
|
|
24
|
-
_FieldAdminService;
|
|
25
|
-
_EntryTypeAdminService;
|
|
26
|
-
_LocalizationService;
|
|
27
|
-
_CmsApiService;
|
|
28
|
-
router;
|
|
29
|
-
constructor(
|
|
30
|
-
// private fb: FormBuilder,
|
|
31
|
-
toaster, _location, route, _FieldGroupAdminService, _FieldAdminService, _EntryTypeAdminService, _LocalizationService, _CmsApiService, router) {
|
|
32
|
-
this.toaster = toaster;
|
|
33
|
-
this._location = _location;
|
|
34
|
-
this.route = route;
|
|
35
|
-
this._FieldGroupAdminService = _FieldGroupAdminService;
|
|
36
|
-
this._FieldAdminService = _FieldAdminService;
|
|
37
|
-
this._EntryTypeAdminService = _EntryTypeAdminService;
|
|
38
|
-
this._LocalizationService = _LocalizationService;
|
|
39
|
-
this._CmsApiService = _CmsApiService;
|
|
40
|
-
this.router = router;
|
|
41
|
-
}
|
|
42
|
-
fb = inject(FormBuilder);
|
|
43
|
-
_UpdateListService = inject(UpdateListService);
|
|
44
|
-
/**表单实体 */
|
|
45
|
-
newEntity = this.fb.group(new CreateOrEditEntryTypeInputBase());
|
|
46
|
-
/**版块id */
|
|
47
|
-
sectionId = '';
|
|
48
|
-
/**条目类型id */
|
|
49
|
-
entryTypesId = '';
|
|
50
|
-
/**条目类型详情 */
|
|
51
|
-
entryTypesSelect;
|
|
52
|
-
get fieldTabs() {
|
|
53
|
-
return this.newEntity.get('fieldTabs');
|
|
54
|
-
}
|
|
55
|
-
/**获取提交按钮替身,用于真实触发表单提交 */
|
|
56
|
-
submitclick;
|
|
57
|
-
/**触发提交按钮 */
|
|
58
|
-
submitclickBtn() {
|
|
59
|
-
this.submitclick.nativeElement.click();
|
|
60
|
-
}
|
|
61
|
-
ngOnInit() {
|
|
62
|
-
let sectionId = this.route.snapshot.params.sectionsId;
|
|
63
|
-
this.entryTypesId = this.route.snapshot.params.entryTypesId || '';
|
|
64
|
-
if (sectionId) {
|
|
65
|
-
this.sectionId = sectionId;
|
|
66
|
-
this.addControlToFieldTabs();
|
|
67
|
-
this.getFieldGroup();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**给fieldTabs添加新控件 */
|
|
71
|
-
addControlToFieldTabs(nameValue = '') {
|
|
72
|
-
const newFormGroup = this.fb.group(new fieldTabsBase({
|
|
73
|
-
name: this.fieldTabs.length === 0 ? this._LocalizationService.instant(`Cms::FieldTab`) : nameValue,
|
|
74
|
-
}));
|
|
75
|
-
this.fieldTabs.push(newFormGroup);
|
|
76
|
-
this.resultSource.push(newFormGroup.value);
|
|
77
|
-
this.navActive = this.resultSource.length - 1;
|
|
78
|
-
}
|
|
79
|
-
/**获取字段分组 */
|
|
80
|
-
getFieldGroup() {
|
|
81
|
-
this._FieldGroupAdminService.getList({}).subscribe(async (res) => {
|
|
82
|
-
let fieldList = await this.getFieldList();
|
|
83
|
-
let fieldGroupList = res.items;
|
|
84
|
-
fieldGroupList.unshift({
|
|
85
|
-
id: null,
|
|
86
|
-
name: 'UngroupedFields'
|
|
87
|
-
});
|
|
88
|
-
fieldGroupList.forEach((el, index) => {
|
|
89
|
-
el.fields = fieldList.filter(els => els.groupId === el.id);
|
|
90
|
-
});
|
|
91
|
-
this.fieldGroupList = fieldGroupList;
|
|
92
|
-
this.fieldList = this.deepClone(fieldList);
|
|
93
|
-
let entryTypesId = this.entryTypesId;
|
|
94
|
-
if (entryTypesId) {
|
|
95
|
-
this.entryTypesId = entryTypesId;
|
|
96
|
-
this.getEntryTypes();
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
/**获取条目类型详情 */
|
|
101
|
-
getEntryTypes() {
|
|
102
|
-
let fieldList = this.deepClone(this.fieldList);
|
|
103
|
-
this._EntryTypeAdminService.get(this.entryTypesId).subscribe(res => {
|
|
104
|
-
res.fieldTabs.forEach(el => {
|
|
105
|
-
el.fields.forEach((eld) => {
|
|
106
|
-
eld.id = eld.fieldId;
|
|
107
|
-
eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId;
|
|
108
|
-
this.formRightGroup.push(eld);
|
|
109
|
-
let fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId);
|
|
110
|
-
fieldList.splice(fieldindex, 1);
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
this.fieldGroupList.forEach((el, index) => {
|
|
114
|
-
el.fields = fieldList.filter(els => els.groupId === el.id);
|
|
115
|
-
});
|
|
116
|
-
this.newEntity.patchValue(res);
|
|
117
|
-
this.entryTypesSelect = res;
|
|
118
|
-
this.resultSource = res.fieldTabs;
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* 深拷贝--方法
|
|
123
|
-
* $api.deepClone() */
|
|
124
|
-
deepClone(obj) {
|
|
125
|
-
if (typeof obj !== 'object' || obj === null)
|
|
126
|
-
return obj;
|
|
127
|
-
const result = Array.isArray(obj) ? [] : {};
|
|
128
|
-
for (let key in obj) {
|
|
129
|
-
if (obj.hasOwnProperty(key)) {
|
|
130
|
-
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
|
131
|
-
if (obj[key] instanceof Date) {
|
|
132
|
-
result[key] = new Date(obj[key].getTime());
|
|
133
|
-
}
|
|
134
|
-
else if (obj[key] instanceof RegExp) {
|
|
135
|
-
result[key] = new RegExp(obj[key]);
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
result[key] = this.deepClone(obj[key]);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
result[key] = obj[key];
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return result;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
*
|
|
150
|
-
* @param nameValue 获取所有字段
|
|
151
|
-
*/
|
|
152
|
-
getFieldList() {
|
|
153
|
-
return new Promise((resolve, rejects) => {
|
|
154
|
-
this._FieldAdminService.getList({
|
|
155
|
-
maxResultCount: 1000
|
|
156
|
-
}).subscribe((res) => {
|
|
157
|
-
res.items.forEach(el => {
|
|
158
|
-
el.required = false;
|
|
159
|
-
el.showOnList = false;
|
|
160
|
-
});
|
|
161
|
-
resolve(res.items);
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* 拖拽 功能*/
|
|
167
|
-
/**数据源 */
|
|
168
|
-
/**数据源-字段分组数据-包含字段数据 fields */
|
|
169
|
-
fieldGroupList = [];
|
|
170
|
-
/**数据源-所有字段列表 */
|
|
171
|
-
fieldList = [];
|
|
172
|
-
/**数据源拖拽的分组下标 */
|
|
173
|
-
DataSourceGroupIndex;
|
|
174
|
-
/**数据源拖拽的字段下标 */
|
|
175
|
-
DataSourceFieldIndex;
|
|
176
|
-
/**目标源 结果*/
|
|
177
|
-
resultSource = [];
|
|
178
|
-
/**从数据源拖拽的元素 */
|
|
179
|
-
fromDataSourceDragEl;
|
|
180
|
-
/**从目标源拖拽的元素 */
|
|
181
|
-
fromResultSourceDragEl;
|
|
182
|
-
/**来自数据源的集合,用于从目标源拖回数据源时的判断,与取值 */
|
|
183
|
-
formRightGroup = [];
|
|
184
|
-
/**从数据源开始拖拽 */
|
|
185
|
-
fromDataSourceDragStart(element, fieldIndex, groupIndex) {
|
|
186
|
-
this.fromDataSourceDragEl = element;
|
|
187
|
-
this.DataSourceFieldIndex = fieldIndex;
|
|
188
|
-
this.DataSourceGroupIndex = groupIndex;
|
|
189
|
-
this.fromResultSourceDragEl = undefined;
|
|
190
|
-
}
|
|
191
|
-
/**从目标源开始拖拽 */
|
|
192
|
-
fromResultSourceDragStart(element) {
|
|
193
|
-
this.fromResultSourceDragEl = element;
|
|
194
|
-
this.fromDataSourceDragEl = undefined;
|
|
195
|
-
this.DataSourceFieldIndex = undefined;
|
|
196
|
-
this.DataSourceGroupIndex = undefined;
|
|
197
|
-
}
|
|
198
|
-
/**拖拽到数据源时触发 */
|
|
199
|
-
dragToDataSourceDropped() {
|
|
200
|
-
//从数据源拖拽到数据源-排序
|
|
201
|
-
if (this.fromDataSourceDragEl) {
|
|
202
|
-
}
|
|
203
|
-
let _fromResultSourceDragEl = this.fromResultSourceDragEl;
|
|
204
|
-
let formRightGroup = this.deepClone(this.formRightGroup);
|
|
205
|
-
let fieldList = this.deepClone(this.fieldList);
|
|
206
|
-
if (_fromResultSourceDragEl) { //移动
|
|
207
|
-
//从目标源拖拽到数据源
|
|
208
|
-
// 拖拽目标源的下标
|
|
209
|
-
let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id);
|
|
210
|
-
//删除目标源中的数据
|
|
211
|
-
this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);
|
|
212
|
-
formRightGroup.splice(formRightGroup.findIndex(el => el.id == _fromResultSourceDragEl.id), 1);
|
|
213
|
-
this.fieldGroupList.forEach(el => {
|
|
214
|
-
if (el.id == _fromResultSourceDragEl.groupId) {
|
|
215
|
-
const elFieldsAll = fieldList.filter(els => els.groupId === el.id);
|
|
216
|
-
el.fields = elFieldsAll.filter(item => !formRightGroup.some(itemB => item.id === itemB.id));
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
this.formRightGroup = formRightGroup;
|
|
220
|
-
}
|
|
221
|
-
this.setfieldTabsFrom();
|
|
222
|
-
}
|
|
223
|
-
/**拖拽到目标源时触发
|
|
224
|
-
*
|
|
225
|
-
*/
|
|
226
|
-
dragToResultSourceDropped(fieldTabstem, fieldTabsIndex) {
|
|
227
|
-
const _fromDataSourceDragEl = this.fromDataSourceDragEl;
|
|
228
|
-
//从数据源拖拽到目标源
|
|
229
|
-
if (_fromDataSourceDragEl) {
|
|
230
|
-
this.fieldGroupList[this.DataSourceGroupIndex].fields.splice(this.DataSourceFieldIndex, 1);
|
|
231
|
-
this.resultSource[fieldTabsIndex].fields.push(_fromDataSourceDragEl);
|
|
232
|
-
this.formRightGroup.push(_fromDataSourceDragEl);
|
|
233
|
-
}
|
|
234
|
-
this.setfieldTabsFrom();
|
|
235
|
-
}
|
|
236
|
-
/** 从目标源拖拽到目标源*/
|
|
237
|
-
dragToResultSourceItemDropped(fieldsIndex) {
|
|
238
|
-
const _fromResultSourceDragEl = this.fromResultSourceDragEl;
|
|
239
|
-
if (_fromResultSourceDragEl) {
|
|
240
|
-
// 拖拽目标源的下标
|
|
241
|
-
let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id);
|
|
242
|
-
//删除目标源中的数据
|
|
243
|
-
this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);
|
|
244
|
-
this.resultSource[this.navActive].fields.splice(fieldsIndex, 0, _fromResultSourceDragEl);
|
|
245
|
-
}
|
|
246
|
-
this.setfieldTabsFrom();
|
|
247
|
-
}
|
|
248
|
-
/**设置formA表单 */
|
|
249
|
-
setfieldTabsFrom() {
|
|
250
|
-
let setArray = [];
|
|
251
|
-
this.resultSource.forEach(el => {
|
|
252
|
-
let fieldsArray = [];
|
|
253
|
-
el.fields.forEach(item => {
|
|
254
|
-
fieldsArray.push({
|
|
255
|
-
"fieldId": item.id || item.fieldId,
|
|
256
|
-
"displayName": item.displayName,
|
|
257
|
-
"required": item?.required,
|
|
258
|
-
"showOnList": item?.showOnList
|
|
259
|
-
});
|
|
260
|
-
});
|
|
261
|
-
setArray.push({
|
|
262
|
-
name: el.name,
|
|
263
|
-
fields: fieldsArray
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
this.newEntity.patchValue({
|
|
267
|
-
fieldTabs: setArray
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
/**保存表单 */
|
|
271
|
-
save() {
|
|
272
|
-
let input = this.newEntity.value;
|
|
273
|
-
if (this.entryTypesSelect) {
|
|
274
|
-
this._EntryTypeAdminService.update(this.entryTypesSelect.id, input).subscribe(res => {
|
|
275
|
-
this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
|
|
276
|
-
this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
|
|
277
|
-
this.router.navigate([`/cms/admin/sections`]);
|
|
278
|
-
this._UpdateListService.updateList();
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
input.sectionId = this.sectionId;
|
|
284
|
-
this._EntryTypeAdminService.create(input).subscribe(res => {
|
|
285
|
-
this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
|
|
286
|
-
this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
|
|
287
|
-
this.router.navigate([`/cms/admin/sections`]);
|
|
288
|
-
this._UpdateListService.updateList();
|
|
289
|
-
});
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
/**编辑Tabs表单 */
|
|
293
|
-
editFieldTabsFrom;
|
|
294
|
-
/**模态框状态 */
|
|
295
|
-
visibleTabsOpen = false;
|
|
296
|
-
/**是否是忙碌状态 */
|
|
297
|
-
modalBusy = false;
|
|
298
|
-
/**正在编辑的tabs */
|
|
299
|
-
editFieldTabsSelect;
|
|
300
|
-
/**正在选中的nav */
|
|
301
|
-
navActive = 0;
|
|
302
|
-
/**表单控件模板-动态赋值表单控件 */
|
|
303
|
-
editFieldTabsModalSubmitBtn;
|
|
304
|
-
/**模态框状态改变回调 */
|
|
305
|
-
VisibleTabsChange(event) {
|
|
306
|
-
if (!event) {
|
|
307
|
-
this.editFieldTabsSelect = '';
|
|
308
|
-
return;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
/**新建增加FieldTabs */
|
|
312
|
-
addFieldTabs() {
|
|
313
|
-
this.editFieldTabsFrom = this.fb.group(new fieldTabsBase());
|
|
314
|
-
this.visibleTabsOpen = true;
|
|
315
|
-
}
|
|
316
|
-
/**正在编辑的tab下标 */
|
|
317
|
-
newEditFieldTabsIndex;
|
|
318
|
-
/**编辑FieldTabs */
|
|
319
|
-
editFieldTabs(item, i) {
|
|
320
|
-
this.editFieldTabsFrom = this.fb.group(new fieldTabsBase({
|
|
321
|
-
name: item.name
|
|
322
|
-
}));
|
|
323
|
-
this.editFieldTabsSelect = item;
|
|
324
|
-
this.visibleTabsOpen = true;
|
|
325
|
-
this.newEditFieldTabsIndex = i;
|
|
326
|
-
}
|
|
327
|
-
/**保存编辑tabs表单 */
|
|
328
|
-
editFieldTabsSave() {
|
|
329
|
-
//编辑
|
|
330
|
-
if (this.editFieldTabsSelect) {
|
|
331
|
-
this.resultSource[this.newEditFieldTabsIndex].name = this.editFieldTabsFrom.value.name;
|
|
332
|
-
this.navActive = this.newEditFieldTabsIndex;
|
|
333
|
-
}
|
|
334
|
-
else {
|
|
335
|
-
//新建
|
|
336
|
-
this.addControlToFieldTabs(this.editFieldTabsFrom.value.name);
|
|
337
|
-
}
|
|
338
|
-
this.visibleTabsOpen = false;
|
|
339
|
-
this.setfieldTabsFrom();
|
|
340
|
-
}
|
|
341
|
-
/**删除某个tabs表单 */
|
|
342
|
-
deleteFieldTabs(index) {
|
|
343
|
-
this.fieldTabs.removeAt(index);
|
|
344
|
-
this.resultSource.splice(index, 1);
|
|
345
|
-
}
|
|
346
|
-
/**编辑字段模态框状态 */
|
|
347
|
-
visibleEditFieldOpen = false;
|
|
348
|
-
/**编辑字段模态框表单 */
|
|
349
|
-
editFieldFrom;
|
|
350
|
-
/**表单控件模板-动态赋值表单控件-编辑字段 */
|
|
351
|
-
editFieldModalSubmitBtn;
|
|
352
|
-
/**正在编辑的字段下标 */
|
|
353
|
-
EditFieldIndex;
|
|
354
|
-
/**编辑字段模态框状态状态改变回调 */
|
|
355
|
-
VisibleEditFieldChange(event) {
|
|
356
|
-
if (!event) {
|
|
357
|
-
this.EditFieldIndex = undefined;
|
|
358
|
-
return;
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
/**打开编辑字段模态框 */
|
|
362
|
-
EditFieldModalOpen(items, elIndex) {
|
|
363
|
-
this.visibleEditFieldOpen = true;
|
|
364
|
-
this.EditFieldIndex = elIndex;
|
|
365
|
-
this.editFieldFrom = this.fb.group(new fieldsBase(this.fieldTabs.value[this.navActive].fields[elIndex]));
|
|
366
|
-
}
|
|
367
|
-
/**保存编辑字段 */
|
|
368
|
-
editFieldSave() {
|
|
369
|
-
let input = this.editFieldFrom.value;
|
|
370
|
-
this.resultSource[this.navActive].fields[this.EditFieldIndex].displayName = input.displayName;
|
|
371
|
-
this.resultSource[this.navActive].fields[this.EditFieldIndex].required = input.required;
|
|
372
|
-
this.resultSource[this.navActive].fields[this.EditFieldIndex].showOnList = input.showOnList;
|
|
373
|
-
this.visibleEditFieldOpen = false;
|
|
374
|
-
this.setfieldTabsFrom();
|
|
375
|
-
}
|
|
376
|
-
/**name表单控件 */
|
|
377
|
-
get nameInput() {
|
|
378
|
-
return this.newEntity.get('name');
|
|
379
|
-
}
|
|
380
|
-
/**字段标签input失去标点生成字段名字 */
|
|
381
|
-
disPlayNameInputBlur(event) {
|
|
382
|
-
let value = event.target.value;
|
|
383
|
-
let pinyin = this._CmsApiService.chineseToPinyin(value);
|
|
384
|
-
let nameInput = this.nameInput;
|
|
385
|
-
if (nameInput.value)
|
|
386
|
-
return;
|
|
387
|
-
nameInput.patchValue(pinyin);
|
|
388
|
-
}
|
|
389
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditComponent, deps: [{ token: i1.ToasterService }, { token: i2.Location }, { token: i3.ActivatedRoute }, { token: i4.FieldGroupAdminService }, { token: i4.FieldAdminService }, { token: i5.EntryTypeAdminService }, { token: i6.LocalizationService }, { token: i7.CmsApiService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
390
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateOrEditComponent, selector: "cms-create-or-edit", providers: [
|
|
391
|
-
{
|
|
392
|
-
provide: EXTENSIONS_IDENTIFIER,
|
|
393
|
-
useValue: ECmsComponent.SectionsCreateOrEdit,
|
|
394
|
-
},
|
|
395
|
-
], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }, { propertyName: "editFieldTabsModalSubmitBtn", first: true, predicate: ["editFieldTabsModalSubmitBtn"], descendants: true }, { propertyName: "editFieldModalSubmitBtn", first: true, predicate: ["editFieldModalSubmitBtn"], descendants: true }], ngImport: i0, template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\" [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\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>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <!-- -->\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <li ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </li>\n <li ngbDropdownItem\n *ngIf=\"resultSource.length !== 1\" type=\"button\"\n (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </li>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\" style=\"height: 100%;\">\n <p class=\"form-text\" *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\" style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n \n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n </div>\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('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=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" (ngSubmit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\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>\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\" [disabled]=\"!editFieldTabsFrom.valid\"\n (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | 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=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (ngSubmit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\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=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | 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=\"showOnList\"\n id=\"showOnList\" />\n <label class=\"form-check-label\" for=\"showOnList\"> {{'Cms::ShowOnList' | abpLocalization}} </label>\n </div>\n </div>\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\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .create-or-edit-entry-type-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-or-edit-entry-type-page .form-control,::ng-deep .create-or-edit-entry-type-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-type-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-type-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit;height:calc(100% - 60px)}::ng-deep .create-or-edit-entry-type-page .tab-pane{height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.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: i8.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i6.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i6.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i10.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i10.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i10.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i10.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i10.NgbNavLinkButton, selector: "button[ngbNavLink]" }, { kind: "directive", type: i10.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i10.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "directive", type: i10.NgbAccordionButton, selector: "button[ngbAccordionButton]" }, { kind: "directive", type: i10.NgbAccordionDirective, selector: "[ngbAccordion]", inputs: ["animation", "closeOthers", "destroyOnHide"], outputs: ["show", "shown", "hide", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i10.NgbAccordionItem, selector: "[ngbAccordionItem]", inputs: ["ngbAccordionItem", "destroyOnHide", "disabled", "collapsed"], outputs: ["show", "shown", "hide", "hidden"], exportAs: ["ngbAccordionItem"] }, { kind: "directive", type: i10.NgbAccordionHeader, selector: "[ngbAccordionHeader]" }, { kind: "directive", type: i10.NgbAccordionBody, selector: "[ngbAccordionBody]" }, { kind: "directive", type: i10.NgbAccordionCollapse, selector: "[ngbAccordionCollapse]", exportAs: ["ngbAccordionCollapse"] }, { 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: i6.LocalizationPipe, name: "abpLocalization" }] });
|
|
396
|
-
}
|
|
397
|
-
export { CreateOrEditComponent };
|
|
398
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditComponent, decorators: [{
|
|
399
|
-
type: Component,
|
|
400
|
-
args: [{ selector: 'cms-create-or-edit', providers: [
|
|
401
|
-
{
|
|
402
|
-
provide: EXTENSIONS_IDENTIFIER,
|
|
403
|
-
useValue: ECmsComponent.SectionsCreateOrEdit,
|
|
404
|
-
},
|
|
405
|
-
], template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\" [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\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>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <!-- -->\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <li ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </li>\n <li ngbDropdownItem\n *ngIf=\"resultSource.length !== 1\" type=\"button\"\n (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </li>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\" style=\"height: 100%;\">\n <p class=\"form-text\" *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\" style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n \n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n </div>\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('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=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" (ngSubmit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\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>\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\" [disabled]=\"!editFieldTabsFrom.valid\"\n (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | 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=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (ngSubmit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\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=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | 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=\"showOnList\"\n id=\"showOnList\" />\n <label class=\"form-check-label\" for=\"showOnList\"> {{'Cms::ShowOnList' | abpLocalization}} </label>\n </div>\n </div>\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\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .create-or-edit-entry-type-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-or-edit-entry-type-page .form-control,::ng-deep .create-or-edit-entry-type-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-type-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-type-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit;height:calc(100% - 60px)}::ng-deep .create-or-edit-entry-type-page .tab-pane{height:100%}\n"] }]
|
|
406
|
-
}], ctorParameters: function () { return [{ type: i1.ToasterService }, { type: i2.Location }, { type: i3.ActivatedRoute }, { type: i4.FieldGroupAdminService }, { type: i4.FieldAdminService }, { type: i5.EntryTypeAdminService }, { type: i6.LocalizationService }, { type: i7.CmsApiService }, { type: i3.Router }]; }, propDecorators: { submitclick: [{
|
|
407
|
-
type: ViewChild,
|
|
408
|
-
args: ['submitclick', { static: true }]
|
|
409
|
-
}], editFieldTabsModalSubmitBtn: [{
|
|
410
|
-
type: ViewChild,
|
|
411
|
-
args: ['editFieldTabsModalSubmitBtn', { static: false }]
|
|
412
|
-
}], editFieldModalSubmitBtn: [{
|
|
413
|
-
type: ViewChild,
|
|
414
|
-
args: ['editFieldModalSubmitBtn', { static: false }]
|
|
415
|
-
}] } });
|
|
416
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9lbnRyeS10eXBlcy9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2VudHJ5LXR5cGVzL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFhLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRW5FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFLcEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRTdFLE1BV2EscUJBQXFCO0lBSXRCO0lBQ0Q7SUFDQztJQUNEO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQztJQVZWO0lBQ0UsMkJBQTJCO0lBQ25CLE9BQXVCLEVBQ3hCLFNBQW1CLEVBQ2xCLEtBQXFCLEVBQ3RCLHVCQUErQyxFQUMvQyxrQkFBcUMsRUFDckMsc0JBQTZDLEVBQzdDLG9CQUF5QyxFQUN6QyxjQUE2QixFQUM1QixNQUFjO1FBUmQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNsQixVQUFLLEdB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QUM5QixDQUFDO3dHQTVYVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiw2Q0FQckI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjthQUM3QztTQUNGLHNZQ3ZCSCx5amJBOExZOztTRHJLQyxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFYakMsU0FBUzsrQkFDRSxvQkFBb0IsYUFHbkI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxvQkFBb0I7eUJBQzdDO3FCQUNGO3FWQWdDMkMsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQXFRbUIsMkJBQTJCO3NCQUF2RixTQUFTO3VCQUFDLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFvREYsdUJBQXVCO3NCQUEvRSxTQUFTO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDcmVhdGVPckVkaXRFbnRyeVR5cGVJbnB1dEJhc2UsIGZpZWxkVGFic0Jhc2UsIGZpZWxkc0Jhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci1lZGl0Li1lbnRyeS10eXBlLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgRmllbGRHcm91cEFkbWluU2VydmljZSwgRmllbGRBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9wcm94eS9hZG1pbi9maWVsZHMnO1xuaW1wb3J0IHsgRW50cnlUeXBlQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcHJveHkvYWRtaW4vc2VjdGlvbnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zJztcbmltcG9ydCB7IENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9jbXMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91cGRhdGUtbGlzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWNyZWF0ZS1vci1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuU2VjdGlvbnNDcmVhdGVPckVkaXQsXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHVibGljIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIF9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlOiBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRmllbGRBZG1pblNlcnZpY2U6IEZpZWxkQWRtaW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRW50cnlUeXBlQWRtaW5TZXJ2aWNlOiBFbnRyeVR5cGVBZG1pblNlcnZpY2UsXG4gICAgcHVibGljIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICApIHsgfVxuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKVxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSlcbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIG5ld0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JFZGl0RW50cnlUeXBlSW5wdXRCYXNlKCkpXG4gIC8qKueJiOWdl2lkICovXG4gIHNlY3Rpb25JZDogc3RyaW5nID0gJydcbiAgLyoq5p2h55uu57G75Z6LaWQgKi9cbiAgZW50cnlUeXBlc0lkOiBzdHJpbmcgPSAnJ1xuICAvKirmnaHnm67nsbvlnovor6bmg4UgKi9cbiAgZW50cnlUeXBlc1NlbGVjdDogYW55XG5cbiAgZ2V0IGZpZWxkVGFicygpIHtcbiAgICByZXR1cm4gdGhpcy5uZXdFbnRpdHkuZ2V0KCdmaWVsZFRhYnMnKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICAvKirojrflj5bmj5DkuqTmjInpkq7mm7/ouqvvvIznlKjkuo7nnJ/lrp7op6blj5HooajljZXmj5DkuqQgKi9cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICAvKirop6blj5Hmj5DkuqTmjInpkq4gKi9cbiAgc3VibWl0Y2xpY2tCdG4oKSB7XG4gICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKClcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICBsZXQgc2VjdGlvbklkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuc2VjdGlvbnNJZFxuICAgIHRoaXMuZW50cnlUeXBlc0lkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZW50cnlUeXBlc0lkIHx8ICcnXG4gICAgaWYgKHNlY3Rpb25JZCkge1xuICAgICAgdGhpcy5zZWN0aW9uSWQgPSBzZWN0aW9uSWRcbiAgICAgIHRoaXMuYWRkQ29udHJvbFRvRmllbGRUYWJzKClcbiAgICAgIHRoaXMuZ2V0RmllbGRHcm91cCgpXG4gICAgfVxuICB9XG5cbiAgLyoq57uZZmllbGRUYWJz5re75Yqg5paw5o6n5Lu2ICovXG4gIGFkZENvbnRyb2xUb0ZpZWxkVGFicyhuYW1lVmFsdWUgPSAnJykge1xuICAgIGNvbnN0IG5ld0Zvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAobmV3IGZpZWxkVGFic0Jhc2Uoe1xuICAgICAgbmFtZTogdGhpcy5maWVsZFRhYnMubGVuZ3RoID09PSAwID8gdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkZpZWxkVGFiYCkgOiBuYW1lVmFsdWUsXG4gICAgfSkpO1xuICAgIHRoaXMuZmllbGRUYWJzLnB1c2gobmV3Rm9ybUdyb3VwKVxuICAgIHRoaXMucmVzdWx0U291cmNlLnB1c2gobmV3Rm9ybUdyb3VwLnZhbHVlKVxuICAgIHRoaXMubmF2QWN0aXZlID0gdGhpcy5yZXN1bHRTb3VyY2UubGVuZ3RoIC0gMVxuICB9XG5cblxuICAvKirojrflj5blrZfmrrXliIbnu4QgKi9cbiAgZ2V0RmllbGRHcm91cCgpIHtcbiAgICB0aGlzLl9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLmdldExpc3Qoe30pLnN1YnNjcmliZShhc3luYyAocmVzKSA9PiB7XG4gICAgICBsZXQgZmllbGRMaXN0OiBhbnkgPSBhd2FpdCB0aGlzLmdldEZpZWxkTGlzdCgpXG4gICAgICBsZXQgZmllbGRHcm91cExpc3QgPSByZXMuaXRlbXNcbiAgICAgIGZpZWxkR3JvdXBMaXN0LnVuc2hpZnQoe1xuICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgbmFtZTogJ1VuZ3JvdXBlZEZpZWxkcydcbiAgICAgIH0pXG4gICAgICBmaWVsZEdyb3VwTGlzdC5mb3JFYWNoKChlbDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgICBlbC5maWVsZHMgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZmllbGRHcm91cExpc3QgPSBmaWVsZEdyb3VwTGlzdFxuICAgICAgdGhpcy5maWVsZExpc3QgPSB0aGlzLmRlZXBDbG9uZShmaWVsZExpc3QpXG4gICAgICBsZXQgZW50cnlUeXBlc0lkID0gdGhpcy5lbnRyeVR5cGVzSWRcbiAgICAgIGlmIChlbnRyeVR5cGVzSWQpIHtcbiAgICAgICAgdGhpcy5lbnRyeVR5cGVzSWQgPSBlbnRyeVR5cGVzSWRcbiAgICAgICAgdGhpcy5nZXRFbnRyeVR5cGVzKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIC8qKuiOt+WPluadoeebruexu+Wei+ivpuaDhSAqL1xuICBnZXRFbnRyeVR5cGVzKCkge1xuICAgIGxldCBmaWVsZExpc3Q6IGFueSA9IHRoaXMuZGVlcENsb25lKHRoaXMuZmllbGRMaXN0KVxuICAgIHRoaXMuX0VudHJ5VHlwZUFkbWluU2VydmljZS5nZXQodGhpcy5lbnRyeVR5cGVzSWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgcmVzLmZpZWxkVGFicy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgZWwuZmllbGRzLmZvckVhY2goKGVsZDogYW55KSA9PiB7XG4gICAgICAgICAgZWxkLmlkID0gZWxkLmZpZWxkSWRcbiAgICAgICAgICBlbGQuZ3JvdXBJZCA9IGZpZWxkTGlzdC5maW5kKGVsZmQgPT4gZWxmZC5pZCA9PSBlbGQuZmllbGRJZCkuZ3JvdXBJZFxuICAgICAgICAgIHRoaXMuZm9ybVJpZ2h0R3JvdXAucHVzaChlbGQpXG4gICAgICAgICAgbGV0IGZpZWxkaW5kZXggPSBmaWVsZExpc3QuZmluZEluZGV4KGVsZmwgPT4gZWxmbC5pZCA9PSBlbGQuZmllbGRJZClcbiAgICAgICAgICBmaWVsZExpc3Quc3BsaWNlKGZpZWxkaW5kZXgsIDEpXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgICAgdGhpcy5maWVsZEdyb3VwTGlzdC5mb3JFYWNoKChlbDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgICBlbC5maWVsZHMgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpXG4gICAgICB9KTtcbiAgICAgIHRoaXMubmV3RW50aXR5LnBhdGNoVmFsdWUocmVzKVxuICAgICAgdGhpcy5lbnRyeVR5cGVzU2VsZWN0ID0gcmVzXG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZSA9IHJlcy5maWVsZFRhYnNcbiAgICB9KVxuICB9XG4gIC8qKlxuICAgKiDmt7Hmi7fotJ0tLeaWueazlVxuICAgKiAkYXBpLmRlZXBDbG9uZSgpICAqL1xuICBkZWVwQ2xvbmUob2JqOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSByZXR1cm4gb2JqO1xuICAgIGNvbnN0IHJlc3VsdCA9IEFycmF5LmlzQXJyYXkob2JqKSA/IFtdIDoge307XG4gICAgZm9yIChsZXQga2V5IGluIG9iaikge1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnICYmIG9ialtrZXldICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKG9ialtrZXldIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBuZXcgRGF0ZShvYmpba2V5XS5nZXRUaW1lKCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAob2JqW2tleV0gaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gbmV3IFJlZ0V4cChvYmpba2V5XSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdGhpcy5kZWVwQ2xvbmUob2JqW2tleV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IG9ialtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIFxuICAgKiBAcGFyYW0gbmFtZVZhbHVlIOiOt+WPluaJgOacieWtl+autVxuICAgKi9cbiAgZ2V0RmllbGRMaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAgIG1heFJlc3VsdENvdW50OiAxMDAwXG4gICAgICB9KS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHJlcy5pdGVtcy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICBlbC5yZXF1aXJlZCA9IGZhbHNlXG4gICAgICAgICAgZWwuc2hvd09uTGlzdCA9IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgIHJlc29sdmUocmVzLml0ZW1zKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cblxuICAvKipcbiAgICog5ouW5ou9IOWKn+iDvSovXG4gIC8qKuaVsOaNrua6kCAqL1xuICAvKirmlbDmja7mupAt5a2X5q615YiG57uE5pWw5o2uLeWMheWQq+Wtl+auteaVsOaNriBmaWVsZHMgKi9cbiAgZmllbGRHcm91cExpc3Q6IGFueVtdID0gW11cbiAgLyoq5pWw5o2u5rqQLeaJgOacieWtl+auteWIl+ihqCAqL1xuICBmaWVsZExpc3Q6IGFueVtdID0gW11cbiAgLyoq5pWw5o2u5rqQ5ouW5ou955qE5YiG57uE5LiL5qCHICovXG4gIERhdGFTb3VyY2VHcm91cEluZGV4OiBudW1iZXJcbiAgLyoq5pWw5o2u5rqQ5ouW5ou955qE5a2X5q615LiL5qCHICovXG4gIERhdGFTb3VyY2VGaWVsZEluZGV4OiBudW1iZXJcbiAgLyoq55uu5qCH5rqQIOe7k+aenCovXG4gIHJlc3VsdFNvdXJjZTogYW55W10gPSBbXVxuXG4gIC8qKuS7juaVsOaNrua6kOaLluaLveeahOWFg+e0oCAqL1xuICBmcm9tRGF0YVNvdXJjZURyYWdFbDogYW55XG4gIC8qKuS7juebruagh+a6kOaLluaLveeahOWFg+e0oCAqL1xuICBmcm9tUmVzdWx0U291cmNlRHJhZ0VsOiBhbnlcblxuICAvKirmnaXoh6rmlbDmja7mupDnmoTpm4blkIjvvIznlKjkuo7ku47nm67moIfmupDmi5blm57mlbDmja7mupDml7bnmoTliKTmlq3vvIzkuI7lj5blgLwgKi9cbiAgZm9ybVJpZ2h0R3JvdXA6IGFueVtdID0gW11cbiAgLyoq5LuO5pWw5o2u5rqQ5byA5aeL5ouW5ou9ICovXG4gIGZyb21EYXRhU291cmNlRHJhZ1N0YXJ0KGVsZW1lbnQsIGZpZWxkSW5kZXgsIGdyb3VwSW5kZXgpIHtcbiAgICB0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsID0gZWxlbWVudFxuICAgIHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXggPSBmaWVsZEluZGV4XG4gICAgdGhpcy5EYXRhU291cmNlR3JvdXBJbmRleCA9IGdyb3VwSW5kZXhcbiAgICB0aGlzLmZyb21SZXN1bHRTb3VyY2VEcmFnRWwgPSB1bmRlZmluZWRcblxuICB9XG4gIC8qKuS7juebruagh+a6kOW8gOWni+aLluaLvSAqL1xuICBmcm9tUmVzdWx0U291cmNlRHJhZ1N0YXJ0KGVsZW1lbnQpIHtcbiAgICB0aGlzLmZyb21SZXN1bHRTb3VyY2VEcmFnRWwgPSBlbGVtZW50XG4gICAgdGhpcy5mcm9tRGF0YVNvdXJjZURyYWdFbCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXggPSB1bmRlZmluZWRcbiAgICB0aGlzLkRhdGFTb3VyY2VHcm91cEluZGV4ID0gdW5kZWZpbmVkXG4gIH1cbiAgLyoq5ouW5ou95Yiw5pWw5o2u5rqQ5pe26Kem5Y+RICovXG4gIGRyYWdUb0RhdGFTb3VyY2VEcm9wcGVkKCkge1xuICAgIC8v5LuO5pWw5o2u5rqQ5ouW5ou95Yiw5pWw5o2u5rqQLeaOkuW6j1xuICAgIGlmICh0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsKSB7XG4gICAgfVxuICAgIGxldCBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbCA9IHRoaXMuZnJvbVJlc3VsdFNvdXJjZURyYWdFbFxuICAgIGxldCBmb3JtUmlnaHRHcm91cCA9IHRoaXMuZGVlcENsb25lKHRoaXMuZm9ybVJpZ2h0R3JvdXApXG4gICAgbGV0IGZpZWxkTGlzdCA9IHRoaXMuZGVlcENsb25lKHRoaXMuZmllbGRMaXN0KVxuXG4gICAgaWYgKF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsKSB7Ly/np7vliqhcbiAgICAgIC8v5LuO55uu5qCH5rqQ5ouW5ou95Yiw5pWw5o2u5rqQXG4gICAgICAvLyDmi5bmi73nm67moIfmupDnmoTkuIvmoIdcbiAgICAgIGxldCBkcmFnUmVzdWx0U291cmNlSW5kZXggPSB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzLmZpbmRJbmRleChlbCA9PiBlbC5pZCA9PSBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbC5pZClcbiAgICAgIC8v5Yig6Zmk55uu5qCH5rqQ5Lit55qE5pWw5o2uXG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzLnNwbGljZShkcmFnUmVzdWx0U291cmNlSW5kZXgsIDEpXG4gICAgICBmb3JtUmlnaHRHcm91cC5zcGxpY2UoZm9ybVJpZ2h0R3JvdXAuZmluZEluZGV4KGVsID0+IGVsLmlkID09IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsLmlkKSwgMSlcbiAgICAgIHRoaXMuZmllbGRHcm91cExpc3QuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGlmIChlbC5pZCA9PSBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbC5ncm91cElkKSB7XG4gICAgICAgICAgY29uc3QgZWxGaWVsZHNBbGwgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpXG4gICAgICAgICAgZWwuZmllbGRzID0gZWxGaWVsZHNBbGwuZmlsdGVyKGl0ZW0gPT4gIWZvcm1SaWdodEdyb3VwLnNvbWUoaXRlbUIgPT4gaXRlbS5pZCA9PT0gaXRlbUIuaWQpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHRoaXMuZm9ybVJpZ2h0R3JvdXAgPSBmb3JtUmlnaHRHcm91cFxuICAgIH1cblxuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpXG4gIH1cbiAgLyoq5ouW5ou95Yiw55uu5qCH5rqQ5pe26Kem5Y+RXG4gICAqIFxuICAgKi9cbiAgZHJhZ1RvUmVzdWx0U291cmNlRHJvcHBlZChmaWVsZFRhYnN0ZW06IGFueSwgZmllbGRUYWJzSW5kZXgpIHtcbiAgICBjb25zdCBfZnJvbURhdGFTb3VyY2VEcmFnRWwgPSB0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsXG4gICAgLy/ku47mlbDmja7mupDmi5bmi73liLDnm67moIfmupBcbiAgICBpZiAoX2Zyb21EYXRhU291cmNlRHJhZ0VsKSB7XG4gICAgICB0aGlzLmZpZWxkR3JvdXBMaXN0W3RoaXMuRGF0YVNvdXJjZUdyb3VwSW5kZXhdLmZpZWxkcy5zcGxpY2UodGhpcy5EYXRhU291cmNlRmllbGRJbmRleCwgMSlcbiAgICAgIHRoaXMucmVzdWx0U291cmNlW2ZpZWxkVGFic0luZGV4XS5maWVsZHMucHVzaChfZnJvbURhdGFTb3VyY2VEcmFnRWwpXG4gICAgICB0aGlzLmZvcm1SaWdodEdyb3VwLnB1c2goX2Zyb21EYXRhU291cmNlRHJhZ0VsKVxuICAgIH1cblxuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpXG4gIH1cbiAgLyoqIOS7juebruagh+a6kOaLluaLveWIsOebruagh+a6kCovXG4gIGRyYWdUb1Jlc3VsdFNvdXJjZUl0ZW1Ecm9wcGVkKGZpZWxkc0luZGV4KSB7XG4gICAgY29uc3QgX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwgPSB0aGlzLmZyb21SZXN1bHRTb3VyY2VEcmFnRWxcbiAgICBpZiAoX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwpIHtcbiAgICAgIC8vIOaLluaLveebruagh+a6kOeahOS4i+agh1xuICAgICAgbGV0IGRyYWdSZXN1bHRTb3VyY2VJbmRleCA9IHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuZmluZEluZGV4KGVsID0+IGVsLmlkID09IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsLmlkKVxuICAgICAgLy/liKDpmaTnm67moIfmupDkuK3nmoTmlbDmja5cbiAgICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuc3BsaWNlKGRyYWdSZXN1bHRTb3VyY2VJbmRleCwgMSlcbiAgICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuc3BsaWNlKGZpZWxkc0luZGV4LCAwLCBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbClcbiAgICB9XG4gICAgdGhpcy5zZXRmaWVsZFRhYnNGcm9tKClcbiAgfVxuICAvKirorr7nva5mb3JtQeihqOWNlSAqL1xuICBzZXRmaWVsZFRhYnNGcm9tKCkge1xuICAgIGxldCBzZXRBcnJheSA9IFtdXG4gICAgdGhpcy5yZXN1bHRTb3VyY2UuZm9yRWFjaChlbCA9PiB7XG4gICAgICBsZXQgZmllbGRzQXJyYXkgPSBbXVxuICAgICAgZWwuZmllbGRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGZpZWxkc0FycmF5LnB1c2goe1xuICAgICAgICAgIFwiZmllbGRJZFwiOiBpdGVtLmlkIHx8IGl0ZW0uZmllbGRJZCxcbiAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6IGl0ZW0uZGlzcGxheU5hbWUsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBpdGVtPy5yZXF1aXJlZCxcbiAgICAgICAgICBcInNob3dPbkxpc3RcIjogaXRlbT8uc2hvd09uTGlzdFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICAgIHNldEFycmF5LnB1c2goe1xuICAgICAgICBuYW1lOiBlbC5uYW1lLFxuICAgICAgICBmaWVsZHM6IGZpZWxkc0FycmF5XG4gICAgICB9KVxuICAgIH0pXG4gICAgdGhpcy5uZXdFbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICBmaWVsZFRhYnM6IHNldEFycmF5XG4gICAgfSlcbiAgfVxuXG5cbiAgLyoq5L+d5a2Y6KGo5Y2VICovXG4gIHNhdmUoKSB7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5uZXdFbnRpdHkudmFsdWVcbiAgICBpZiAodGhpcy5lbnRyeVR5cGVzU2VsZWN0KSB7XG4gICAgICB0aGlzLl9FbnRyeVR5cGVBZG1pblNlcnZpY2UudXBkYXRlKHRoaXMuZW50cnlUeXBlc1NlbGVjdC5pZCwgaW5wdXQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtc0tpdDo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Ntcy9hZG1pbi9zZWN0aW9uc2BdKTtcbiAgICAgICAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpbnB1dC5zZWN0aW9uSWQgPSB0aGlzLnNlY3Rpb25JZFxuICAgIHRoaXMuX0VudHJ5VHlwZUFkbWluU2VydmljZS5jcmVhdGUoaW5wdXQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXNLaXQ6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnJywgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Ntcy9hZG1pbi9zZWN0aW9uc2BdKTtcbiAgICAgICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdCgpO1xuICAgICAgfSk7XG4gICAgfSlcblxuXG5cbiAgfVxuICAvKirnvJbovpFUYWJz6KGo5Y2VICovXG4gIGVkaXRGaWVsZFRhYnNGcm9tOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIC8qKuaooeaAgeahhueKtuaAgSAqL1xuICB2aXNpYmxlVGFic09wZW46IGJvb2xlYW4gPSBmYWxzZVxuICAvKirmmK/lkKbmmK/lv5nnooznirbmgIEgKi9cbiAgbW9kYWxCdXN5OiBib29sZWFuID0gZmFsc2VcbiAgLyoq5q2j5Zyo57yW6L6R55qEdGFicyAqL1xuICBlZGl0RmllbGRUYWJzU2VsZWN0OiBhbnlcbiAgLyoq5q2j5Zyo6YCJ5Lit55qEbmF2ICovXG4gIG5hdkFjdGl2ZTogYW55ID0gMFxuXG4gIC8qKuihqOWNleaOp+S7tuaooeadvy3liqjmgIHotYvlgLzooajljZXmjqfku7YgKi9cbiAgQFZpZXdDaGlsZCgnZWRpdEZpZWxkVGFic01vZGFsU3VibWl0QnRuJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRGaWVsZFRhYnNNb2RhbFN1Ym1pdEJ0bjogRWxlbWVudFJlZjtcblxuICAvKirmqKHmgIHmoYbnirbmgIHmlLnlj5jlm57osIMgKi9cbiAgVmlzaWJsZVRhYnNDaGFuZ2UoZXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICB0aGlzLmVkaXRGaWVsZFRhYnNTZWxlY3QgPSAnJ1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG4gIC8qKuaWsOW7uuWinuWKoEZpZWxkVGFicyAqL1xuICBhZGRGaWVsZFRhYnMoKSB7XG4gICAgdGhpcy5lZGl0RmllbGRUYWJzRnJvbSA9IHRoaXMuZmIuZ3JvdXAobmV3IGZpZWxkVGFic0Jhc2UoKSk7XG4gICAgdGhpcy52aXNpYmxlVGFic09wZW4gPSB0cnVlXG5cbiAgfVxuICAvKirmraPlnKjnvJbovpHnmoR0YWLkuIvmoIcgKi9cbiAgbmV3RWRpdEZpZWxkVGFic0luZGV4OiBudW1iZXJcbiAgLyoq57yW6L6RRmllbGRUYWJzICovXG4gIGVkaXRGaWVsZFRhYnMoaXRlbSwgaSkge1xuICAgIHRoaXMuZWRpdEZpZWxkVGFic0Zyb20gPSB0aGlzLmZiLmdyb3VwKG5ldyBmaWVsZFRhYnNCYXNlKHtcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZVxuICAgIH0pKTtcbiAgICB0aGlzLmVkaXRGaWVsZFRhYnNTZWxlY3QgPSBpdGVtXG4gICAgdGhpcy52aXNpYmxlVGFic09wZW4gPSB0cnVlXG4gICAgdGhpcy5uZXdFZGl0RmllbGRUYWJzSW5kZXggPSBpXG4gIH1cblxuICAvKirkv53lrZjnvJbovpF0YWJz6KGo5Y2VICovXG4gIGVkaXRGaWVsZFRhYnNTYXZlKCkge1xuICAgIC8v57yW6L6RXG4gICAgaWYgKHRoaXMuZWRpdEZpZWxkVGFic1NlbGVjdCkge1xuICAgICAgdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uZXdFZGl0RmllbGRUYWJzSW5kZXhdLm5hbWUgPSB0aGlzLmVkaXRGaWVsZFRhYnNGcm9tLnZhbHVlLm5hbWVcbiAgICAgIHRoaXMubmF2QWN0aXZlID0gdGhpcy5uZXdFZGl0RmllbGRUYWJzSW5kZXhcbiAgICB9IGVsc2Uge1xuICAgICAgLy/mlrDlu7pcbiAgICAgIHRoaXMuYWRkQ29udHJvbFRvRmllbGRUYWJzKHRoaXMuZWRpdEZpZWxkVGFic0Zyb20udmFsdWUubmFtZSlcbiAgICB9XG4gICAgdGhpcy52aXNpYmxlVGFic09wZW4gPSBmYWxzZVxuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpXG4gIH1cbiAgLyoq5Yig6Zmk5p+Q5LiqdGFic+ihqOWNlSAqL1xuICBkZWxldGVGaWVsZFRhYnMoaW5kZXgpIHtcbiAgICB0aGlzLmZpZWxkVGFicy5yZW1vdmVBdChpbmRleClcbiAgICB0aGlzLnJlc3VsdFNvdXJjZS5zcGxpY2UoaW5kZXgsIDEpXG4gIH1cblxuXG4gIC8qKue8lui+keWtl+auteaooeaAgeahhueKtuaAgSAqL1xuICB2aXNpYmxlRWRpdEZpZWxkT3BlbjogYm9vbGVhbiA9IGZhbHNlXG4gIC8qKue8lui+keWtl+auteaooeaAgeahhuihqOWNlSAqL1xuICBlZGl0RmllbGRGcm9tOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIC8qKuihqOWNleaOp+S7tuaooeadvy3liqjmgIHotYvlgLzooajljZXmjqfku7Yt57yW6L6R5a2X5q61ICovXG4gIEBWaWV3Q2hpbGQoJ2VkaXRGaWVsZE1vZGFsU3VibWl0QnRuJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRGaWVsZE1vZGFsU3VibWl0QnRuOiBFbGVtZW50UmVmO1xuICAvKirmraPlnKjnvJbovpHnmoTlrZfmrrXkuIvmoIcgKi9cbiAgRWRpdEZpZWxkSW5kZXg6IG51bWJlcjtcbiAgLyoq57yW6L6R5a2X5q615qih5oCB5qGG54q25oCB54q25oCB5pS55Y+Y5Zue6LCDICovXG4gIFZpc2libGVFZGl0RmllbGRDaGFuZ2UoZXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICB0aGlzLkVkaXRGaWVsZEluZGV4ID0gdW5kZWZpbmVkXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cbiAgLyoq5omT5byA57yW6L6R5a2X5q615qih5oCB5qGGICovXG4gIEVkaXRGaWVsZE1vZGFsT3BlbihpdGVtcywgZWxJbmRleCkge1xuICAgIHRoaXMudmlzaWJsZUVkaXRGaWVsZE9wZW4gPSB0cnVlXG4gICAgdGhpcy5FZGl0RmllbGRJbmRleCA9IGVsSW5kZXhcbiAgICB0aGlzLmVkaXRGaWVsZEZyb20gPSB0aGlzLmZiLmdyb3VwKG5ldyBmaWVsZHNCYXNlKHRoaXMuZmllbGRUYWJzLnZhbHVlW3RoaXMubmF2QWN0aXZlXS5maWVsZHNbZWxJbmRleF0pKVxuICB9XG4gIC8qKuS/neWtmOe8lui+keWtl+autSAqL1xuICBlZGl0RmllbGRTYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMuZWRpdEZpZWxkRnJvbS52YWx1ZVxuICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHNbdGhpcy5FZGl0RmllbGRJbmRleF0uZGlzcGxheU5hbWUgPSBpbnB1dC5kaXNwbGF5TmFtZVxuICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHNbdGhpcy5FZGl0RmllbGRJbmRleF0ucmVxdWlyZWQgPSBpbnB1dC5yZXF1aXJlZFxuICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHNbdGhpcy5FZGl0RmllbGRJbmRleF0uc2hvd09uTGlzdCA9IGlucHV0LnNob3dPbkxpc3RcbiAgICB0aGlzLnZpc2libGVFZGl0RmllbGRPcGVuID0gZmFsc2VcbiAgICB0aGlzLnNldGZpZWxkVGFic0Zyb20oKVxuICB9XG5cbiAgLyoqbmFtZeihqOWNleaOp+S7tiAqL1xuICBnZXQgbmFtZUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLm5ld0VudGl0eS5nZXQoJ25hbWUnKVxuICB9XG4gIC8qKuWtl+auteagh+etvmlucHV05aSx5Y675qCH54K555Sf5oiQ5a2X5q615ZCN5a2XICovXG4gIGRpc1BsYXlOYW1lSW5wdXRCbHVyKGV2ZW50KSB7XG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgbGV0IHBpbnlpbiA9IHRoaXMuX0Ntc0FwaVNlcnZpY2UuY2hpbmVzZVRvUGlueWluKHZhbHVlKVxuICAgIGxldCBuYW1lSW5wdXQgPSB0aGlzLm5hbWVJbnB1dFxuICAgIGlmIChuYW1lSW5wdXQudmFsdWUpIHJldHVyblxuICAgIG5hbWVJbnB1dC5wYXRjaFZhbHVlKHBpbnlpbilcbiAgfVxuXG59XG4iLCI8Zm9ybSBjbGFzcz1cInJvdyBnLTMgbmVlZHMtdmFsaWRhdGlvblwiIFtmb3JtR3JvdXBdPVwibmV3RW50aXR5XCIgKG5nU3VibWl0KT1cInNhdmUoKVwiPlxuICAgIDxhYnAtcGFnZSBbdGl0bGVdPVwiZW50cnlUeXBlc0lkID8gKCdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24pOignQ21zOjpOZXcnIHwgYWJwTG9jYWxpemF0aW9uKVwiIFt0b29sYmFyXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1vci1lZGl0LWVudHJ5LXR5cGUtcGFnZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpEaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cImRpc1BsYXlOYW1lSW5wdXRCbHVyKCRldmVudClcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6TmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJmaWVsZFRhYnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpGaWVsZExheW91dCcgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBbKGFjdGl2ZUlkKV09XCJuYXZBY3RpdmVcIiBjbGFzcz1cIm5hdiBuYXYtdGFic1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXN1bHRTb3VyY2U7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nYk5hdkl0ZW1dPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93biBuZ2JOYXZMaW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTFcIiAoY2xpY2suc3RvcCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IHN0eWxlPVwiei1pbmRleDogOTk5O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBuZ2JEcm9wZG93bkl0ZW0gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImVkaXRGaWVsZFRhYnMoaXRlbSxpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1lZGl0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJlc3VsdFNvdXJjZS5sZW5ndGggIT09IDFcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiZGVsZXRlRmllbGRUYWJzKGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRyYXNoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0yXCIgb25kcmFnb3Zlcj1cImV2ZW50LnByZXZlbnREZWZhdWx0KCk7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJkcmFnVG9SZXN1bHRTb3VyY2VEcm9wcGVkKGl0ZW0saSlcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvcm0tdGV4dFwiICpuZ0lmPVwiaXRlbS5maWVsZHMubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0Ntczo6RHJhZ0FuZERyb3BGaWVsZFRpcHMnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWwgb2YgaXRlbS5maWVsZHM7IGxldCBpZWwgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRyYWdnYWJsZT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwiZnJvbVJlc3VsdFNvdXJjZURyYWdTdGFydChlbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcm9wKT1cImRyYWdUb1Jlc3VsdFNvdXJjZUl0ZW1Ecm9wcGVkKGllbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gcHktMVwiIHN0eWxlPVwicG9zaXRpb246IHVuc2V0O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVsLmRpc3BsYXlOYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInAtMCBidG4gYnRuLXNtIGJ0bi1saWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cIkVkaXRGaWVsZE1vZGFsT3BlbihlbCxpZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPjxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhcyBmYS13cmVuY2ggcC1zbS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIj48L2k+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJuYXYtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImFkZEZpZWxkVGFicygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydDbXM6Ok5ld1RhYicgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiIGNsYXNzPVwibXQtMiBib3JkZXJuTmF2cyBwLTBcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb24gI2FjY29yZGlvbj1cIm5nYkFjY29yZGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmRyYWdvdmVyPVwiZXZlbnQucHJldmVudERlZmF1bHQoKTtcIiAoZHJvcCk9XCJkcmFnVG9EYXRhU291cmNlRHJvcHBlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWluLWhlaWdodDogODBweDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmllbGRHcm91cExpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ2JBY2NvcmRpb25JdGVtXT1cIml0ZW0ubmFtZVwiICpuZ0lmPVwiaXRlbS5maWVsZHMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgbmdiQWNjb3JkaW9uSGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JBY2NvcmRpb25CdXR0b24+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ0Ntczo6JytpdGVtLm5hbWUpIHwgYWJwTG9jYWxpemF0aW9uIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsIG9mIGl0ZW0uZmllbGRzOyBsZXQgaWkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkcmFnZ2FibGU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJmcm9tRGF0YVNvdXJjZURyYWdTdGFydChlbCxpaSxpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVsLmRpc3BsYXlOYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2FicC1wYWdlPlxuXG48L2Zvcm0+XG5cbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJ2aXNpYmxlVGFic09wZW5cIiBbYnVzeV09XCJtb2RhbEJ1c3lcIiAodmlzaWJsZUNoYW5nZSk9XCJWaXNpYmxlVGFic0NoYW5nZSgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgICAgIDxoMz57eyBlZGl0RmllbGRUYWJzU2VsZWN0ID8gKCdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24pOignQ21zOjpOZXcnIHwgYWJwTG9jYWxpemF0aW9uKX19PC9oMz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkZXJSZWY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0RmllbGRUYWJzRnJvbTsgZWxzZSBsb2FkZXJSZWZcIj5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwic2l0ZXMtbW9kYWwtZm9ybVwiIFtmb3JtR3JvdXBdPVwiZWRpdEZpZWxkVGFic0Zyb21cIiAobmdTdWJtaXQpPVwiZWRpdEZpZWxkVGFic1NhdmUoKVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiICNlZGl0RmllbGRUYWJzTW9kYWxTdWJtaXRCdG4gc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6TmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPnt7J0FicFVpOjpDbG9zZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIFtkaXNhYmxlZF09XCIhZWRpdEZpZWxkVGFic0Zyb20udmFsaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRGaWVsZFRhYnNNb2RhbFN1Ym1pdEJ0bi5uYXRpdmVFbGVtZW50LmNsaWNrKClcIj57eydBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9hYnAtbW9kYWw+XG5cblxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cInZpc2libGVFZGl0RmllbGRPcGVuXCIgW2J1c3ldPVwibW9kYWxCdXN5XCIgKHZpc2libGVDaGFuZ2UpPVwiVmlzaWJsZUVkaXRGaWVsZENoYW5nZSgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgICAgIDxoMz57eydBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb259fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdEZpZWxkRnJvbTsgZWxzZSBsb2FkZXJSZWZcIj5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwic2l0ZXMtbW9kYWwtZm9ybVwiIFtmb3JtR3JvdXBdPVwiZWRpdEZpZWxkRnJvbVwiIChuZ1N1Ym1pdCk9XCJlZGl0RmllbGRTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjZWRpdEZpZWxkTW9kYWxTdWJtaXRCdG4gc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6RGlzcGxheU5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicmVxdWlyZWRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInJlcXVpcmVkXCI+IHt7J0Ntczo6UmVxdWlyZWQnIHwgYWJwTG9jYWxpemF0aW9ufX0gPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJzaG93T25MaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNob3dPbkxpc3RcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInNob3dPbkxpc3RcIj4ge3snQ21zOjpTaG93T25MaXN0JyB8IGFicExvY2FsaXphdGlvbn19IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+e3snQWJwVWk6OkNsb3NlJyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgW2Rpc2FibGVkXT1cIiFlZGl0RmllbGRGcm9tLnZhbGlkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0RmllbGRNb2RhbFN1Ym1pdEJ0bi5uYXRpdmVFbGVtZW50LmNsaWNrKClcIj57eydBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9hYnAtbW9kYWw+Il19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './create-or-edit.-entry-type-input-base';
|
|
2
|
-
export * from './create-or-edit.component';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2VudHJ5LXR5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyw0QkFBNEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLW9yLWVkaXQuLWVudHJ5LXR5cGUtaW5wdXQtYmFzZSdcclxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQnIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './sections.component';
|
|
2
|
-
export * from './entry-types';
|
|
3
|
-
export * from './create-or-update-sections-input-base';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxlQUFlLENBQUE7QUFDN0IsY0FBYyx3Q0FBd0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VjdGlvbnMuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2VudHJ5LXR5cGVzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtc2VjdGlvbnMtaW5wdXQtYmFzZSciXX0=
|