@dignite-ng/expand.cms 0.0.18 → 0.0.20
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 +66 -0
- package/config/{public-api.d.ts → src/public-api.ts} +3 -3
- package/karma.conf.js +44 -0
- package/ng-package.json +7 -0
- package/package.json +19 -38
- package/src/lib/cms-routing.module.ts +111 -0
- package/src/lib/cms.module.ts +119 -0
- package/src/lib/components/admin/entries/create-or-edit-entries.component.html +115 -0
- package/src/lib/components/admin/entries/create-or-edit-entries.component.scss +25 -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 +287 -0
- package/src/lib/components/admin/entries/create-or-update-entry-input-base.ts +36 -0
- package/src/lib/components/admin/entries/create.component.html +13 -0
- package/src/lib/components/admin/entries/create.component.scss +21 -0
- package/src/lib/components/admin/entries/create.component.spec.ts +21 -0
- package/src/lib/components/admin/entries/create.component.ts +103 -0
- package/src/lib/components/admin/entries/edit.component.html +9 -0
- package/src/lib/components/admin/entries/edit.component.scss +26 -0
- package/src/lib/components/admin/entries/edit.component.spec.ts +21 -0
- package/src/lib/components/admin/entries/edit.component.ts +103 -0
- package/src/lib/components/admin/entries/entries.component.html +106 -0
- package/src/lib/components/admin/entries/entries.component.scss +80 -0
- package/src/lib/components/admin/entries/entries.component.spec.ts +21 -0
- package/src/lib/components/admin/entries/entries.component.ts +216 -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 +10 -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 +119 -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 +73 -0
- package/src/lib/components/admin/fields/fields.component.scss +11 -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 +4 -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 +24 -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 +412 -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 +191 -0
- package/src/lib/components/admin/sections/sections.component.scss +26 -0
- package/src/lib/components/admin/sections/sections.component.spec.ts +21 -0
- package/src/lib/components/admin/sections/sections.component.ts +334 -0
- package/src/lib/components/admin/sites/create-or-update-sites-input-base.ts +31 -0
- package/src/lib/components/admin/sites/index.ts +2 -0
- package/src/lib/components/admin/sites/sites.component.html +154 -0
- package/src/lib/components/admin/sites/sites.component.scss +19 -0
- package/src/lib/components/admin/sites/sites.component.spec.ts +21 -0
- package/src/lib/components/admin/sites/sites.component.ts +293 -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 +20 -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 +110 -0
- package/src/lib/components/dynamic-form/entry/index.ts +3 -0
- package/src/lib/components/dynamic-form/form-control-group.ts +31 -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 +238 -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 +55 -0
- package/src/lib/components/dynamic-form/table/table-control.component.scss +10 -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 +107 -0
- package/src/lib/components/index.ts +2 -0
- package/src/lib/constants/index.ts +1 -0
- package/src/lib/constants/styles.ts +31 -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/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 +100 -0
- package/src/lib/proxy/admin/entries/models.ts +73 -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/sections/entry-type-admin.service.ts +55 -0
- package/{lib/proxy/admin/sections/models.d.ts → src/lib/proxy/admin/sections/models.ts} +88 -74
- package/src/lib/proxy/admin/sections/section-admin.service.ts +74 -0
- package/{lib/proxy/admin/sites/models.d.ts → src/lib/proxy/admin/sites/models.ts} +36 -30
- package/src/lib/proxy/admin/sites/site-admin.service.ts +72 -0
- package/src/lib/proxy/dignite/abp/data/models.ts +4 -0
- package/src/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +65 -0
- package/{lib/proxy/dignite/file-explorer/directories/models.d.ts → src/lib/proxy/dignite/file-explorer/directories/models.ts} +35 -29
- package/src/lib/proxy/dignite/file-explorer/files/file-descriptor.service.ts +86 -0
- package/src/lib/proxy/dignite/file-explorer/files/models.ts +57 -0
- package/src/lib/proxy/entries/entry-status.enum.ts +8 -0
- package/src/lib/proxy/fields/models.ts +9 -0
- package/src/lib/proxy/generate-proxy.json +11821 -0
- package/{lib/proxy/microsoft/asp-net-core/mvc/models.d.ts → src/lib/proxy/microsoft/asp-net-core/mvc/models.ts} +12 -10
- package/src/lib/proxy/microsoft/extensions/primitives/models.ts +9 -0
- package/{lib/proxy/microsoft/net/http/headers/models.d.ts → src/lib/proxy/microsoft/net/http/headers/models.ts} +7 -6
- package/src/lib/proxy/sections/models.ts +14 -0
- package/src/lib/proxy/sections/section-type.enum.ts +9 -0
- package/src/lib/proxy/sites/models.ts +5 -0
- package/src/lib/proxy/volo/abp/content/models.ts +6 -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/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 +41 -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 +95 -0
- package/{public-api.d.ts → src/public-api.ts} +12 -8
- package/src/test.ts +26 -0
- package/tsconfig.lib.json +20 -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 -8
- package/config/index.d.ts +0 -5
- package/config/providers/route.provider.d.ts +0 -8
- 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 -64
- 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 -164
- package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +0 -279
- 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 -107
- package/esm2022/lib/components/admin/entries/edit.component.mjs +0 -110
- package/esm2022/lib/components/admin/entries/entries.component.mjs +0 -212
- 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 -112
- 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 -5
- 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 -418
- 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 -334
- package/esm2022/lib/components/admin/sites/create-or-update-sites-input-base.mjs +0 -23
- package/esm2022/lib/components/admin/sites/index.mjs +0 -3
- package/esm2022/lib/components/admin/sites/sites.component.mjs +0 -285
- package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +0 -125
- 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 -31
- package/esm2022/lib/components/dynamic-form/index.mjs +0 -5
- package/esm2022/lib/components/index.mjs +0 -3
- package/esm2022/lib/constants/index.mjs +0 -2
- package/esm2022/lib/constants/styles.mjs +0 -32
- package/esm2022/lib/enums/ecms-component.mjs +0 -13
- package/esm2022/lib/enums/index.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 -67
- 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/index.mjs +0 -7
- 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/sites/index.mjs +0 -3
- package/esm2022/lib/proxy/admin/sites/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/sites/site-admin.service.mjs +0 -51
- package/esm2022/lib/proxy/dignite/abp/data/index.mjs +0 -2
- package/esm2022/lib/proxy/dignite/abp/data/models.mjs +0 -2
- package/esm2022/lib/proxy/dignite/abp/index.mjs +0 -3
- package/esm2022/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.mjs +0 -48
- package/esm2022/lib/proxy/dignite/file-explorer/directories/index.mjs +0 -3
- package/esm2022/lib/proxy/dignite/file-explorer/directories/models.mjs +0 -2
- package/esm2022/lib/proxy/dignite/file-explorer/files/file-descriptor.service.mjs +0 -60
- package/esm2022/lib/proxy/dignite/file-explorer/files/index.mjs +0 -3
- package/esm2022/lib/proxy/dignite/file-explorer/files/models.mjs +0 -2
- package/esm2022/lib/proxy/dignite/file-explorer/index.mjs +0 -4
- package/esm2022/lib/proxy/dignite/index.mjs +0 -4
- 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/index.mjs +0 -2
- package/esm2022/lib/proxy/fields/models.mjs +0 -2
- package/esm2022/lib/proxy/index.mjs +0 -10
- package/esm2022/lib/proxy/microsoft/asp-net-core/index.mjs +0 -3
- package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/index.mjs +0 -2
- package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/models.mjs +0 -2
- package/esm2022/lib/proxy/microsoft/extensions/index.mjs +0 -3
- package/esm2022/lib/proxy/microsoft/extensions/primitives/index.mjs +0 -2
- package/esm2022/lib/proxy/microsoft/extensions/primitives/models.mjs +0 -2
- package/esm2022/lib/proxy/microsoft/index.mjs +0 -5
- package/esm2022/lib/proxy/microsoft/net/http/headers/index.mjs +0 -2
- package/esm2022/lib/proxy/microsoft/net/http/headers/models.mjs +0 -2
- package/esm2022/lib/proxy/microsoft/net/http/index.mjs +0 -3
- package/esm2022/lib/proxy/microsoft/net/index.mjs +0 -3
- 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/sites/index.mjs +0 -2
- package/esm2022/lib/proxy/sites/models.mjs +0 -2
- package/esm2022/lib/proxy/volo/abp/content/index.mjs +0 -2
- package/esm2022/lib/proxy/volo/abp/content/models.mjs +0 -2
- package/esm2022/lib/proxy/volo/abp/index.mjs +0 -3
- package/esm2022/lib/proxy/volo/cms-kit/index.mjs +0 -3
- package/esm2022/lib/proxy/volo/cms-kit/users/index.mjs +0 -2
- package/esm2022/lib/proxy/volo/cms-kit/users/models.mjs +0 -2
- package/esm2022/lib/proxy/volo/index.mjs +0 -4
- 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 -4
- 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 -81
- package/esm2022/public-api.mjs +0 -12
- package/fesm2022/dignite-ng-expand.cms-config.mjs +0 -87
- package/fesm2022/dignite-ng-expand.cms-config.mjs.map +0 -1
- package/fesm2022/dignite-ng-expand.cms.mjs +0 -3839
- 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 -36
- package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +0 -89
- 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 -42
- 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 -33
- 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 -4
- 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 -95
- package/lib/components/admin/sites/create-or-update-sites-input-base.d.ts +0 -12
- package/lib/components/admin/sites/index.d.ts +0 -2
- package/lib/components/admin/sites/sites.component.d.ts +0 -72
- package/lib/components/dynamic-form/entry/entry-config.component.d.ts +0 -42
- 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 -2
- package/lib/components/index.d.ts +0 -2
- package/lib/constants/index.d.ts +0 -1
- 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/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 -21
- package/lib/proxy/admin/entries/models.d.ts +0 -65
- 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/sites/site-admin.service.d.ts +0 -18
- package/lib/proxy/dignite/abp/data/models.d.ts +0 -3
- package/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.d.ts +0 -17
- package/lib/proxy/dignite/file-explorer/files/file-descriptor.service.d.ts +0 -20
- package/lib/proxy/dignite/file-explorer/files/models.d.ts +0 -50
- package/lib/proxy/entries/entry-status.enum.d.ts +0 -5
- package/lib/proxy/fields/models.d.ts +0 -8
- package/lib/proxy/microsoft/extensions/primitives/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/sites/models.d.ts +0 -4
- package/lib/proxy/volo/abp/content/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 -3
- 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 -19
- package/lib/toolbar/toolbar-config.d.ts +0 -57
- /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/index.d.ts → src/lib/proxy/admin/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/sites/index.d.ts → src/lib/proxy/admin/sites/index.ts} +0 -0
- /package/{lib/proxy/dignite/abp/data/index.d.ts → src/lib/proxy/dignite/abp/data/index.ts} +0 -0
- /package/{lib/proxy/dignite/abp/index.d.ts → src/lib/proxy/dignite/abp/index.ts} +0 -0
- /package/{lib/proxy/dignite/file-explorer/directories/index.d.ts → src/lib/proxy/dignite/file-explorer/directories/index.ts} +0 -0
- /package/{lib/proxy/dignite/file-explorer/files/index.d.ts → src/lib/proxy/dignite/file-explorer/files/index.ts} +0 -0
- /package/{lib/proxy/dignite/file-explorer/index.d.ts → src/lib/proxy/dignite/file-explorer/index.ts} +0 -0
- /package/{lib/proxy/dignite/index.d.ts → src/lib/proxy/dignite/index.ts} +0 -0
- /package/{lib/proxy/entries/index.d.ts → src/lib/proxy/entries/index.ts} +0 -0
- /package/{lib/proxy/fields/index.d.ts → src/lib/proxy/fields/index.ts} +0 -0
- /package/{lib/proxy/index.d.ts → src/lib/proxy/index.ts} +0 -0
- /package/{lib/proxy/microsoft/asp-net-core/index.d.ts → src/lib/proxy/microsoft/asp-net-core/index.ts} +0 -0
- /package/{lib/proxy/microsoft/asp-net-core/mvc/index.d.ts → src/lib/proxy/microsoft/asp-net-core/mvc/index.ts} +0 -0
- /package/{lib/proxy/microsoft/extensions/index.d.ts → src/lib/proxy/microsoft/extensions/index.ts} +0 -0
- /package/{lib/proxy/microsoft/extensions/primitives/index.d.ts → src/lib/proxy/microsoft/extensions/primitives/index.ts} +0 -0
- /package/{lib/proxy/microsoft/index.d.ts → src/lib/proxy/microsoft/index.ts} +0 -0
- /package/{lib/proxy/microsoft/net/http/headers/index.d.ts → src/lib/proxy/microsoft/net/http/headers/index.ts} +0 -0
- /package/{lib/proxy/microsoft/net/http/index.d.ts → src/lib/proxy/microsoft/net/http/index.ts} +0 -0
- /package/{lib/proxy/microsoft/net/index.d.ts → src/lib/proxy/microsoft/net/index.ts} +0 -0
- /package/{lib/proxy/sections/index.d.ts → src/lib/proxy/sections/index.ts} +0 -0
- /package/{lib/proxy/sites/index.d.ts → src/lib/proxy/sites/index.ts} +0 -0
- /package/{lib/proxy/volo/abp/content/index.d.ts → src/lib/proxy/volo/abp/content/index.ts} +0 -0
- /package/{lib/proxy/volo/abp/index.d.ts → src/lib/proxy/volo/abp/index.ts} +0 -0
- /package/{lib/proxy/volo/cms-kit/index.d.ts → src/lib/proxy/volo/cms-kit/index.ts} +0 -0
- /package/{lib/proxy/volo/cms-kit/users/index.d.ts → src/lib/proxy/volo/cms-kit/users/index.ts} +0 -0
- /package/{lib/proxy/volo/index.d.ts → src/lib/proxy/volo/index.ts} +0 -0
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @angular-eslint/use-lifecycle-interface */
|
|
2
|
-
import { LIST_QUERY_DEBOUNCE_TIME, ListService } from '@abp/ng.core';
|
|
3
|
-
import { Component, ViewChild } from '@angular/core';
|
|
4
|
-
import { FormControl, Validators } from '@angular/forms';
|
|
5
|
-
import { ColumnMode } from "@swimlane/ngx-datatable";
|
|
6
|
-
import { finalize } from 'rxjs/operators';
|
|
7
|
-
import { CreateOrUpdateSitesInputBase } from './create-or-update-sites-input-base';
|
|
8
|
-
import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
|
|
9
|
-
import { ECmsComponent } from '../../../enums';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@abp/ng.core";
|
|
12
|
-
import * as i2 from "../../../proxy/admin/sites";
|
|
13
|
-
import * as i3 from "@abp/ng.theme.shared";
|
|
14
|
-
import * as i4 from "@angular/forms";
|
|
15
|
-
import * as i5 from "../../../services/cms-api.service";
|
|
16
|
-
import * as i6 from "@angular/common";
|
|
17
|
-
import * as i7 from "@swimlane/ngx-datatable";
|
|
18
|
-
import * as i8 from "@ngx-validate/core";
|
|
19
|
-
import * as i9 from "@ng-bootstrap/ng-bootstrap";
|
|
20
|
-
import * as i10 from "@abp/ng.components/page";
|
|
21
|
-
class SitesComponent {
|
|
22
|
-
list;
|
|
23
|
-
_SiteAdminService;
|
|
24
|
-
toaster;
|
|
25
|
-
confirmation;
|
|
26
|
-
fb;
|
|
27
|
-
configState;
|
|
28
|
-
_LocalizationService;
|
|
29
|
-
_CmsApiService;
|
|
30
|
-
constructor(list, _SiteAdminService, toaster, confirmation, fb, configState, _LocalizationService, _CmsApiService) {
|
|
31
|
-
this.list = list;
|
|
32
|
-
this._SiteAdminService = _SiteAdminService;
|
|
33
|
-
this.toaster = toaster;
|
|
34
|
-
this.confirmation = confirmation;
|
|
35
|
-
this.fb = fb;
|
|
36
|
-
this.configState = configState;
|
|
37
|
-
this._LocalizationService = _LocalizationService;
|
|
38
|
-
this._CmsApiService = _CmsApiService;
|
|
39
|
-
}
|
|
40
|
-
/**创建站点模态框状态 */
|
|
41
|
-
createSitesOpen = false;
|
|
42
|
-
/**用于确定模态的繁忙状态是否为真 */
|
|
43
|
-
modalBusy = false;
|
|
44
|
-
/**创建站点表单 */
|
|
45
|
-
createOrEditForm;
|
|
46
|
-
get languagesInput() {
|
|
47
|
-
return this.createOrEditForm.get('languages').value;
|
|
48
|
-
}
|
|
49
|
-
/**语言列表 */
|
|
50
|
-
languages;
|
|
51
|
-
/**站点给定的表单值 */
|
|
52
|
-
selected;
|
|
53
|
-
/**表单控件模板-动态赋值表单控件 */
|
|
54
|
-
createModalSubmit;
|
|
55
|
-
ColumnMode = ColumnMode;
|
|
56
|
-
data = {
|
|
57
|
-
items: [],
|
|
58
|
-
totalCount: 0,
|
|
59
|
-
};
|
|
60
|
-
filters = {};
|
|
61
|
-
ngOnInit() {
|
|
62
|
-
this.hookToQuery();
|
|
63
|
-
}
|
|
64
|
-
hookToQuery() {
|
|
65
|
-
const getData = (query) => this._SiteAdminService.getList({
|
|
66
|
-
...query,
|
|
67
|
-
...this.filters,
|
|
68
|
-
});
|
|
69
|
-
const setData = (list) => (this.data = list);
|
|
70
|
-
this.list.hookToQuery(getData).subscribe(setData);
|
|
71
|
-
}
|
|
72
|
-
/**删除字段 */
|
|
73
|
-
deletefield(row) {
|
|
74
|
-
this.confirmation.warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`)).subscribe((status) => {
|
|
75
|
-
if (status == 'confirm') {
|
|
76
|
-
this._SiteAdminService.delete(row.id).pipe(finalize(() => {
|
|
77
|
-
})).subscribe(res => {
|
|
78
|
-
this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
|
|
79
|
-
this.list.get();
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
/**创建站点模态框状态改变 */
|
|
85
|
-
createGroupVisibleChange(event) {
|
|
86
|
-
if (!event) {
|
|
87
|
-
this.selected = '';
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
/**选择语言改变 */
|
|
92
|
-
languagesChange(event) {
|
|
93
|
-
let checked = event.target.checked;
|
|
94
|
-
let value = event.target.value;
|
|
95
|
-
this.languages.forEach(el => {
|
|
96
|
-
el.ischecked = el.cultureName === value ? checked : el.ischecked;
|
|
97
|
-
});
|
|
98
|
-
this.setFromLangguages();
|
|
99
|
-
}
|
|
100
|
-
/**设置默认语言 */
|
|
101
|
-
setDefault(items) {
|
|
102
|
-
this.languages.forEach(el => {
|
|
103
|
-
el.isDefault = el.cultureName === items.cultureName;
|
|
104
|
-
});
|
|
105
|
-
this.setFromLangguages();
|
|
106
|
-
}
|
|
107
|
-
/**设置表单中的语言 */
|
|
108
|
-
setFromLangguages() {
|
|
109
|
-
let languagesSelect = this.languages.filter(el => el.ischecked == true);
|
|
110
|
-
this.createOrEditForm.patchValue({
|
|
111
|
-
languages: languagesSelect
|
|
112
|
-
});
|
|
113
|
-
if (languagesSelect.length == 0) {
|
|
114
|
-
this.languages.forEach(el => {
|
|
115
|
-
el.isDefault = false;
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
/**表单保存提交 */
|
|
120
|
-
createOrEditSave() {
|
|
121
|
-
if (this.selected) {
|
|
122
|
-
return this.EditSave();
|
|
123
|
-
}
|
|
124
|
-
this.createSave();
|
|
125
|
-
}
|
|
126
|
-
/**创建站点保存 */
|
|
127
|
-
createSave() {
|
|
128
|
-
let input = this.createOrEditForm.value;
|
|
129
|
-
this.modalBusy = true;
|
|
130
|
-
if (!this.createOrEditForm.valid)
|
|
131
|
-
return;
|
|
132
|
-
this._SiteAdminService.create(input).pipe(finalize(() => {
|
|
133
|
-
this.modalBusy = false;
|
|
134
|
-
this.createSitesOpen = false;
|
|
135
|
-
})).subscribe(res => {
|
|
136
|
-
this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
|
|
137
|
-
this.list.get();
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
/**编辑站点保存 */
|
|
141
|
-
EditSave() {
|
|
142
|
-
let input = this.createOrEditForm.value;
|
|
143
|
-
this.modalBusy = true;
|
|
144
|
-
this._SiteAdminService.update(this.selected.id, input).pipe(finalize(() => {
|
|
145
|
-
this.modalBusy = false;
|
|
146
|
-
this.createSitesOpen = false;
|
|
147
|
-
})).subscribe(res => {
|
|
148
|
-
this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
|
|
149
|
-
this.list.get();
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
/**创建站点按钮 */
|
|
153
|
-
createSitesBtn() {
|
|
154
|
-
this.createSitesOpen = true;
|
|
155
|
-
this.createOrEditForm = this.fb.group(new CreateOrUpdateSitesInputBase());
|
|
156
|
-
this.setAsyncValidatorsFn();
|
|
157
|
-
this.languages = this.configState.getDeep('localization.languages');
|
|
158
|
-
this.languages.forEach((el, index) => {
|
|
159
|
-
el.isDefault = index === 0;
|
|
160
|
-
el.ischecked = index === 0;
|
|
161
|
-
});
|
|
162
|
-
this.setFromLangguages();
|
|
163
|
-
}
|
|
164
|
-
/**编辑站点按钮 */
|
|
165
|
-
EditSitesBtn(rows) {
|
|
166
|
-
this.createSitesOpen = true;
|
|
167
|
-
this.languages = this.configState.getDeep('localization.languages');
|
|
168
|
-
this._SiteAdminService.get(rows.id).subscribe(res => {
|
|
169
|
-
this.selected = rows;
|
|
170
|
-
this.createOrEditForm = this.fb.group(new CreateOrUpdateSitesInputBase());
|
|
171
|
-
this.createOrEditForm.patchValue(rows);
|
|
172
|
-
this.setAsyncValidatorsFn();
|
|
173
|
-
// 更新语言和默认状态
|
|
174
|
-
this.updateLanguages(res.languages);
|
|
175
|
-
// 设置表单语言
|
|
176
|
-
this.setFromLangguages();
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
/**设置字段控件异步验证 */
|
|
180
|
-
setAsyncValidatorsFn() {
|
|
181
|
-
this.createOrEditForm.setControl('name', new FormControl(this.nameInput.value || '', {
|
|
182
|
-
validators: Validators.required,
|
|
183
|
-
asyncValidators: this.nameRepetitionAsyncValidator(),
|
|
184
|
-
updateOn: 'blur'
|
|
185
|
-
}));
|
|
186
|
-
}
|
|
187
|
-
/**更新语言和默认状态 */
|
|
188
|
-
updateLanguages(siteLanguages) {
|
|
189
|
-
this.languages.forEach(language => {
|
|
190
|
-
const siteLanguage = siteLanguages.find(sl => sl.cultureName === language.cultureName);
|
|
191
|
-
if (siteLanguage) {
|
|
192
|
-
language.ischecked = true;
|
|
193
|
-
language.isDefault = siteLanguage.isDefault;
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
get nameInput() {
|
|
198
|
-
return this.createOrEditForm.get('name');
|
|
199
|
-
}
|
|
200
|
-
get hostInput() {
|
|
201
|
-
return this.createOrEditForm.get('host');
|
|
202
|
-
}
|
|
203
|
-
/**字段标签input失去标点生成字段名字 */
|
|
204
|
-
disPlayNameInputBlur(event) {
|
|
205
|
-
let value = event.target.value;
|
|
206
|
-
let pinyin = this._CmsApiService.chineseToPinyin(value);
|
|
207
|
-
let nameInput = this.nameInput;
|
|
208
|
-
if (nameInput.value)
|
|
209
|
-
return;
|
|
210
|
-
nameInput.patchValue(pinyin);
|
|
211
|
-
}
|
|
212
|
-
/**name定义自定义异步验证 */
|
|
213
|
-
nameRepetitionAsyncValidator() {
|
|
214
|
-
return (ctrl) => {
|
|
215
|
-
return new Promise(resolve => {
|
|
216
|
-
let subslug = this.createOrEditForm?.get('name').value;
|
|
217
|
-
if (subslug == this.selected?.name) {
|
|
218
|
-
resolve(null);
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
this._SiteAdminService.nameExists(subslug).subscribe(res => {
|
|
222
|
-
if (res) {
|
|
223
|
-
resolve({ repetition: this._LocalizationService.instant(`Cms::SiteName{0}AlreadyExist`, ctrl.value) });
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
resolve(null);
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
/**host定义自定义异步验证 */
|
|
233
|
-
hostRepetitionAsyncValidator() {
|
|
234
|
-
return (ctrl) => {
|
|
235
|
-
return new Promise(resolve => {
|
|
236
|
-
let subslug = this.createOrEditForm?.get('host').value;
|
|
237
|
-
if (subslug == this.selected?.host || subslug == 'https://') {
|
|
238
|
-
resolve(null);
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
this._SiteAdminService.hostExists(subslug).subscribe(res => {
|
|
242
|
-
if (res) {
|
|
243
|
-
resolve({ repetition: this._LocalizationService.instant(`Cms::SiteHost{0}AlreadyExist`, ctrl.value) });
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
resolve(null);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
});
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SitesComponent, deps: [{ token: i1.ListService }, { token: i2.SiteAdminService }, { token: i3.ToasterService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }, { token: i1.ConfigStateService }, { token: i1.LocalizationService }, { token: i5.CmsApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
253
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SitesComponent, selector: "cms-sites", providers: [
|
|
254
|
-
// [Required]
|
|
255
|
-
ListService,
|
|
256
|
-
// [Optional]
|
|
257
|
-
// Provide this token if you want a different debounce time.
|
|
258
|
-
// Default is 300. Cannot be 0. Any value below 100 is not recommended.
|
|
259
|
-
{ provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
|
|
260
|
-
{
|
|
261
|
-
provide: EXTENSIONS_IDENTIFIER,
|
|
262
|
-
useValue: ECmsComponent.Sites,
|
|
263
|
-
},
|
|
264
|
-
], viewQueries: [{ propertyName: "createModalSubmit", first: true, predicate: ["createModalSubmit"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'Cms::Sites' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sites-page\">\n <div class=\"card\">\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material container-height\" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"'force'\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [scrollbarV]=\"true\" [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Host' | abpLocalization\" prop=\"host\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy-MM-dd hh-mm-ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-outline-primary btn-sm\" ngbDropdownToggle>\n {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n (click)=\"EditSitesBtn(row)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n\n\n </div>\n\n\n\n</abp-page>\n\n\n<!-- <dignite-page [title]=\"'Cms::Sites' | abpLocalization\" [back]=\"false\" [class]=\"'sites-page'\">\n <ng-template #pageHeader>\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" (click.stop)=\"createSitesBtn()\">\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\n </button>\n </ng-template>\n <ng-template #pageBody>\n \n </ng-template>\n</dignite-page> -->\n\n<abp-modal [(visible)]=\"createSitesOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"createOrEditForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #createModalSubmit 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\"\n (blur)=\"disPlayNameInputBlur($event)\" />\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\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Host' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"host\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"hostInput.errors?.repetition\">\n {{hostInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"flexRadioDefault1\" />\n <label class=\"form-check-label\" for=\"flexRadioDefault1\"> {{'Cms::IsActive' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Languages' | abpLocalization}}</label>\n <ul class=\"list-group list-group-flush\">\n <ng-container *ngFor=\"let item of languages; let i = index\">\n <li class=\"list-group-item d-flex justify-content-between align-items-center\">\n <div>\n <input class=\"form-check-input me-1\" type=\"checkbox\" [value]=\"item.cultureName\"\n id=\"firstRadio{{ i }}\" [checked]=\"item.ischecked\"\n (change)=\"languagesChange($event);!item.ischecked\" />\n <label class=\"form-check-label\" for=\"firstRadio{{ i }}\">{{ item.displayName\n }}</label>\n </div>\n <ng-container *ngIf=\"item.ischecked\">\n <div class=\"text-primary\" *ngIf=\"item.isDefault\">{{'Cms::Default' | abpLocalization}}\n </div>\n <div (click.stop)=\"setDefault(item)\" *ngIf=\"!item.isDefault\">\n {{'Cms::SetDefault' | abpLocalization}}</div>\n </ng-container>\n </li>\n </ng-container>\n </ul>\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\"\n (click)=\"createModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .container-height{height:calc(100vh - 220px)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: i7.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i7.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i7.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] });
|
|
265
|
-
}
|
|
266
|
-
export { SitesComponent };
|
|
267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SitesComponent, decorators: [{
|
|
268
|
-
type: Component,
|
|
269
|
-
args: [{ selector: 'cms-sites', providers: [
|
|
270
|
-
// [Required]
|
|
271
|
-
ListService,
|
|
272
|
-
// [Optional]
|
|
273
|
-
// Provide this token if you want a different debounce time.
|
|
274
|
-
// Default is 300. Cannot be 0. Any value below 100 is not recommended.
|
|
275
|
-
{ provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
|
|
276
|
-
{
|
|
277
|
-
provide: EXTENSIONS_IDENTIFIER,
|
|
278
|
-
useValue: ECmsComponent.Sites,
|
|
279
|
-
},
|
|
280
|
-
], template: "<abp-page [title]=\"'Cms::Sites' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sites-page\">\n <div class=\"card\">\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material container-height\" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"'force'\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [scrollbarV]=\"true\" [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Host' | abpLocalization\" prop=\"host\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy-MM-dd hh-mm-ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-outline-primary btn-sm\" ngbDropdownToggle>\n {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n (click)=\"EditSitesBtn(row)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n\n\n </div>\n\n\n\n</abp-page>\n\n\n<!-- <dignite-page [title]=\"'Cms::Sites' | abpLocalization\" [back]=\"false\" [class]=\"'sites-page'\">\n <ng-template #pageHeader>\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" (click.stop)=\"createSitesBtn()\">\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\n </button>\n </ng-template>\n <ng-template #pageBody>\n \n </ng-template>\n</dignite-page> -->\n\n<abp-modal [(visible)]=\"createSitesOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"createOrEditForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #createModalSubmit 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\"\n (blur)=\"disPlayNameInputBlur($event)\" />\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\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Host' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"host\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"hostInput.errors?.repetition\">\n {{hostInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"flexRadioDefault1\" />\n <label class=\"form-check-label\" for=\"flexRadioDefault1\"> {{'Cms::IsActive' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Languages' | abpLocalization}}</label>\n <ul class=\"list-group list-group-flush\">\n <ng-container *ngFor=\"let item of languages; let i = index\">\n <li class=\"list-group-item d-flex justify-content-between align-items-center\">\n <div>\n <input class=\"form-check-input me-1\" type=\"checkbox\" [value]=\"item.cultureName\"\n id=\"firstRadio{{ i }}\" [checked]=\"item.ischecked\"\n (change)=\"languagesChange($event);!item.ischecked\" />\n <label class=\"form-check-label\" for=\"firstRadio{{ i }}\">{{ item.displayName\n }}</label>\n </div>\n <ng-container *ngIf=\"item.ischecked\">\n <div class=\"text-primary\" *ngIf=\"item.isDefault\">{{'Cms::Default' | abpLocalization}}\n </div>\n <div (click.stop)=\"setDefault(item)\" *ngIf=\"!item.isDefault\">\n {{'Cms::SetDefault' | abpLocalization}}</div>\n </ng-container>\n </li>\n </ng-container>\n </ul>\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\"\n (click)=\"createModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .container-height{height:calc(100vh - 220px)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
|
|
281
|
-
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.SiteAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }, { type: i1.ConfigStateService }, { type: i1.LocalizationService }, { type: i5.CmsApiService }]; }, propDecorators: { createModalSubmit: [{
|
|
282
|
-
type: ViewChild,
|
|
283
|
-
args: ['createModalSubmit', { static: false }]
|
|
284
|
-
}] } });
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zaXRlcy9zaXRlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NpdGVzL3NpdGVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCxPQUFPLEVBQTJCLHdCQUF3QixFQUFFLFdBQVcsRUFBdUMsTUFBTSxjQUFjLENBQUM7QUFFbkksT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBZ0MsV0FBVyxFQUF1QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBSS9DLE1BaUJhLGNBQWM7SUFFUDtJQUNSO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBUlYsWUFDa0IsSUFBaUIsRUFDekIsaUJBQW1DLEVBQ25DLE9BQXVCLEVBQ3ZCLFlBQWlDLEVBQ2pDLEVBQWUsRUFDZixXQUErQixFQUMvQixvQkFBeUMsRUFDekMsY0FBNkI7UUFQckIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUN6QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLFlBQU8sR0FB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K2pTQXlKWTs7U0QxSEMsY0FBYzs0RkFBZCxjQUFjO2tCQWpCMUIsU0FBUzsrQkFDRSxXQUFXLGFBR1Y7d0JBQ1AsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsNERBQTREO3dCQUM1RCx1RUFBdUU7d0JBQ3ZFLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7d0JBQ3REOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSzt5QkFDOUI7cUJBQ0Y7eVRBc0NrRCxpQkFBaUI7c0JBQW5FLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3VzZS1saWZlY3ljbGUtaW50ZXJmYWNlICovXG5pbXBvcnQgeyBBQlAsIENvbmZpZ1N0YXRlU2VydmljZSwgTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCBMaXN0U2VydmljZSwgTG9jYWxpemF0aW9uU2VydmljZSwgUGFnZWRSZXN1bHREdG8gfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UsIENvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1hdGlvbiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEdldFNpdGVzSW5wdXQsIFNpdGVEdG8sIFNpdGVBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9zaXRlcyc7XG5pbXBvcnQgeyBDb2x1bW5Nb2RlIH0gZnJvbSBcIkBzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlXCI7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlU2l0ZXNJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtc2l0ZXMtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY21zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLXNpdGVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpdGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2l0ZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgICAvLyBbUmVxdWlyZWRdXG4gICAgICBMaXN0U2VydmljZSxcbiAgICAgIC8vIFtPcHRpb25hbF1cbiAgICAgIC8vIFByb3ZpZGUgdGhpcyB0b2tlbiBpZiB5b3Ugd2FudCBhIGRpZmZlcmVudCBkZWJvdW5jZSB0aW1lLlxuICAgICAgLy8gRGVmYXVsdCBpcyAzMDAuIENhbm5vdCBiZSAwLiBBbnkgdmFsdWUgYmVsb3cgMTAwIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICAgIHsgcHJvdmlkZTogTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCB1c2VWYWx1ZTogNTAwIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuU2l0ZXMsXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaXRlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0OiBMaXN0U2VydmljZSxcbiAgICBwcml2YXRlIF9TaXRlQWRtaW5TZXJ2aWNlOiBTaXRlQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgKSB7XG4gIH1cblxuXG5cblxuXG4gIC8qKuWIm+W7uuermeeCueaooeaAgeahhueKtuaAgSAqL1xuICBjcmVhdGVTaXRlc09wZW46IGJvb2xlYW4gPSBmYWxzZVxuXG4gIC8qKueUqOS6juehruWumuaooeaAgeeahOe5geW/meeKtuaAgeaYr+WQpuS4uuecnyAqL1xuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZVxuICAvKirliJvlu7rnq5nngrnooajljZUgKi9cbiAgY3JlYXRlT3JFZGl0Rm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIGdldCBsYW5ndWFnZXNJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPckVkaXRGb3JtLmdldCgnbGFuZ3VhZ2VzJykudmFsdWVcbiAgfVxuXG4gIC8qKuivreiogOWIl+ihqCAqL1xuICBsYW5ndWFnZXM6IGFueVtdXG5cbiAgLyoq56uZ54K557uZ5a6a55qE6KGo5Y2V5YC8ICovXG4gIHNlbGVjdGVkOiBhbnlcblxuICAvKirooajljZXmjqfku7bmqKHmnb8t5Yqo5oCB6LWL5YC86KGo5Y2V5o6n5Lu2ICovXG4gIEBWaWV3Q2hpbGQoJ2NyZWF0ZU1vZGFsU3VibWl0JywgeyBzdGF0aWM6IGZhbHNlIH0pIGNyZWF0ZU1vZGFsU3VibWl0OiBFbGVtZW50UmVmO1xuXG5cbiAgQ29sdW1uTW9kZSA9IENvbHVtbk1vZGU7XG4gIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPFNpdGVEdG8+ID0ge1xuICAgIGl0ZW1zOiBbXSxcbiAgICB0b3RhbENvdW50OiAwLFxuICB9O1xuXG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRTaXRlc0lucHV0O1xuXG4gIFxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KClcbiAgfVxuXG4gIGhvb2tUb1F1ZXJ5KCkge1xuICAgIGNvbnN0IGdldERhdGEgPSAocXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMpID0+IHRoaXMuX1NpdGVBZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAuLi5xdWVyeSxcbiAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNldERhdGEgPSAobGlzdDogUGFnZWRSZXN1bHREdG88U2l0ZUR0bz4pID0+ICh0aGlzLmRhdGEgPSBsaXN0KTtcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkoZ2V0RGF0YSkuc3Vic2NyaWJlKHNldERhdGEpO1xuICB9XG5cblxuICAvKirliKDpmaTlrZfmrrUgKi9cbiAgZGVsZXRlZmllbGQocm93OiBhbnkpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKFxuICAgICAgcm93LmRpc3BsYXlOYW1lLFxuICAgICAgdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6SXRlbVdpbGxCZURlbGV0ZWRNZXNzYWdlYCksXG4gICAgKS5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PSAnY29uZmlybScpIHtcbiAgICAgICAgdGhpcy5fU2l0ZUFkbWluU2VydmljZS5kZWxldGUocm93LmlkKS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgfSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlN1Y2Nlc3NmdWxseURlbGV0ZWRgKSk7XG4gICAgICAgICAgdGhpcy5saXN0LmdldCgpXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICB9KTtcbiAgfVxuXG4gIC8qKuWIm+W7uuermeeCueaooeaAgeahhueKtuaAgeaUueWPmCAqL1xuICBjcmVhdGVHcm91cFZpc2libGVDaGFuZ2UoZXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkID0gJydcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuXG4gIC8qKumAieaLqeivreiogOaUueWPmCAqL1xuICBsYW5ndWFnZXNDaGFuZ2UoZXZlbnQpIHtcbiAgICBsZXQgY2hlY2tlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkXG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgdGhpcy5sYW5ndWFnZXMuZm9yRWFjaChlbCA9PiB7XG4gICAgICBlbC5pc2NoZWNrZWQgPSBlbC5jdWx0dXJlTmFtZSA9PT0gdmFsdWUgPyBjaGVja2VkIDogZWwuaXNjaGVja2VkO1xuICAgIH0pXG4gICAgdGhpcy5zZXRGcm9tTGFuZ2d1YWdlcygpXG4gIH1cbiAgLyoq6K6+572u6buY6K6k6K+t6KiAICovXG4gIHNldERlZmF1bHQoaXRlbXMpIHtcbiAgICB0aGlzLmxhbmd1YWdlcy5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGVsLmlzRGVmYXVsdCA9IGVsLmN1bHR1cmVOYW1lID09PSBpdGVtcy5jdWx0dXJlTmFtZTtcbiAgICB9KVxuICAgIHRoaXMuc2V0RnJvbUxhbmdndWFnZXMoKVxuICB9XG4gIC8qKuiuvue9ruihqOWNleS4reeahOivreiogCAqL1xuICBzZXRGcm9tTGFuZ2d1YWdlcygpIHtcbiAgICBsZXQgbGFuZ3VhZ2VzU2VsZWN0ID0gdGhpcy5sYW5ndWFnZXMuZmlsdGVyKGVsID0+IGVsLmlzY2hlY2tlZCA9PSB0cnVlKVxuICAgIHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIGxhbmd1YWdlczogbGFuZ3VhZ2VzU2VsZWN0XG4gICAgfSlcbiAgICBpZiAobGFuZ3VhZ2VzU2VsZWN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLmxhbmd1YWdlcy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgZWwuaXNEZWZhdWx0ID0gZmFsc2VcbiAgICAgIH0pXG4gICAgfVxuICB9XG4gIC8qKuihqOWNleS/neWtmOaPkOS6pCAqL1xuICBjcmVhdGVPckVkaXRTYXZlKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5FZGl0U2F2ZSgpXG4gICAgfVxuICAgIHRoaXMuY3JlYXRlU2F2ZSgpXG4gIH1cblxuICAvKirliJvlu7rnq5nngrnkv53lrZggKi9cbiAgY3JlYXRlU2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0udmFsdWVcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWVcbiAgICBpZiAoIXRoaXMuY3JlYXRlT3JFZGl0Rm9ybS52YWxpZCkgcmV0dXJuXG4gICAgdGhpcy5fU2l0ZUFkbWluU2VydmljZS5jcmVhdGUoaW5wdXQpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZVxuICAgICAgdGhpcy5jcmVhdGVTaXRlc09wZW4gPSBmYWxzZVxuICAgIH0pKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0OjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgIHRoaXMubGlzdC5nZXQoKVxuICAgIH0pXG4gIH1cbiAgLyoq57yW6L6R56uZ54K55L+d5a2YICovXG4gIEVkaXRTYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS52YWx1ZVxuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZVxuICAgIHRoaXMuX1NpdGVBZG1pblNlcnZpY2UudXBkYXRlKHRoaXMuc2VsZWN0ZWQuaWQsIGlucHV0KS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2VcbiAgICAgIHRoaXMuY3JlYXRlU2l0ZXNPcGVuID0gZmFsc2VcbiAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtc0tpdDo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgICB9KVxuICB9XG5cblxuXG4gIC8qKuWIm+W7uuermeeCueaMiemSriAqL1xuICBjcmVhdGVTaXRlc0J0bigpIHtcbiAgICB0aGlzLmNyZWF0ZVNpdGVzT3BlbiA9IHRydWVcbiAgICB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0gPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZVNpdGVzSW5wdXRCYXNlKCkpXG4gICAgdGhpcy5zZXRBc3luY1ZhbGlkYXRvcnNGbigpXG4gICAgdGhpcy5sYW5ndWFnZXMgPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAoJ2xvY2FsaXphdGlvbi5sYW5ndWFnZXMnKVxuICAgIHRoaXMubGFuZ3VhZ2VzLmZvckVhY2goKGVsLCBpbmRleCkgPT4ge1xuICAgICAgZWwuaXNEZWZhdWx0ID0gaW5kZXggPT09IDBcbiAgICAgIGVsLmlzY2hlY2tlZCA9IGluZGV4ID09PSAwXG4gICAgfSlcbiAgICB0aGlzLnNldEZyb21MYW5nZ3VhZ2VzKClcbiAgfVxuXG5cblxuICAvKirnvJbovpHnq5nngrnmjInpkq4gKi9cbiAgRWRpdFNpdGVzQnRuKHJvd3MpIHtcbiAgICB0aGlzLmNyZWF0ZVNpdGVzT3BlbiA9IHRydWVcbiAgICB0aGlzLmxhbmd1YWdlcyA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCgnbG9jYWxpemF0aW9uLmxhbmd1YWdlcycpXG4gICAgdGhpcy5fU2l0ZUFkbWluU2VydmljZS5nZXQocm93cy5pZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkID0gcm93c1xuICAgICAgdGhpcy5jcmVhdGVPckVkaXRGb3JtID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JVcGRhdGVTaXRlc0lucHV0QmFzZSgpKVxuICAgICAgdGhpcy5jcmVhdGVPckVkaXRGb3JtLnBhdGNoVmFsdWUocm93cylcbiAgICAgIHRoaXMuc2V0QXN5bmNWYWxpZGF0b3JzRm4oKVxuICAgICAgLy8g5pu05paw6K+t6KiA5ZKM6buY6K6k54q25oCBICBcbiAgICAgIHRoaXMudXBkYXRlTGFuZ3VhZ2VzKHJlcy5sYW5ndWFnZXMpO1xuICAgICAgLy8g6K6+572u6KGo5Y2V6K+t6KiAICBcbiAgICAgIHRoaXMuc2V0RnJvbUxhbmdndWFnZXMoKVxuICAgIH0pXG4gIH1cblxuICAvKirorr7nva7lrZfmrrXmjqfku7blvILmraXpqozor4EgKi9cbiAgc2V0QXN5bmNWYWxpZGF0b3JzRm4oKSB7XG4gICAgdGhpcy5jcmVhdGVPckVkaXRGb3JtLnNldENvbnRyb2woJ25hbWUnLCBuZXcgRm9ybUNvbnRyb2wodGhpcy5uYW1lSW5wdXQudmFsdWUgfHwgJycsIHtcbiAgICAgIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICBhc3luY1ZhbGlkYXRvcnM6IHRoaXMubmFtZVJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpLFxuICAgICAgdXBkYXRlT246ICdibHVyJ1xuICAgIH0pKVxuICB9XG5cblxuXG4gIC8qKuabtOaWsOivreiogOWSjOm7mOiupOeKtuaAgSAqL1xuICB1cGRhdGVMYW5ndWFnZXMoc2l0ZUxhbmd1YWdlcykge1xuICAgIHRoaXMubGFuZ3VhZ2VzLmZvckVhY2gobGFuZ3VhZ2UgPT4ge1xuICAgICAgY29uc3Qgc2l0ZUxhbmd1YWdlID0gc2l0ZUxhbmd1YWdlcy5maW5kKHNsID0+IHNsLmN1bHR1cmVOYW1lID09PSBsYW5ndWFnZS5jdWx0dXJlTmFtZSk7XG4gICAgICBpZiAoc2l0ZUxhbmd1YWdlKSB7XG4gICAgICAgIGxhbmd1YWdlLmlzY2hlY2tlZCA9IHRydWU7XG4gICAgICAgIGxhbmd1YWdlLmlzRGVmYXVsdCA9IHNpdGVMYW5ndWFnZS5pc0RlZmF1bHQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuXG4gIGdldCBuYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS5nZXQoJ25hbWUnKVxuICB9XG4gIGdldCBob3N0SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS5nZXQoJ2hvc3QnKVxuICB9XG5cbiAgLyoq5a2X5q615qCH562+aW5wdXTlpLHljrvmoIfngrnnlJ/miJDlrZfmrrXlkI3lrZcgKi9cbiAgZGlzUGxheU5hbWVJbnB1dEJsdXIoZXZlbnQpIHtcbiAgICBsZXQgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWVcbiAgICBsZXQgcGlueWluID0gdGhpcy5fQ21zQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsdWUpXG4gICAgbGV0IG5hbWVJbnB1dCA9IHRoaXMubmFtZUlucHV0XG4gICAgaWYgKG5hbWVJbnB1dC52YWx1ZSkgcmV0dXJuXG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKVxuICB9XG5cbiAgLyoqbmFtZeWumuS5ieiHquWumuS5ieW8guatpemqjOivgSAqL1xuICBuYW1lUmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5jcmVhdGVPckVkaXRGb3JtPy5nZXQoJ25hbWUnKS52YWx1ZVxuICAgICAgICBpZiAoc3Vic2x1ZyA9PSB0aGlzLnNlbGVjdGVkPy5uYW1lKSB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9TaXRlQWRtaW5TZXJ2aWNlLm5hbWVFeGlzdHMoc3Vic2x1Zykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zOjpTaXRlTmFtZXswfUFscmVhZHlFeGlzdGAsIGN0cmwudmFsdWUpIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cbiAgLyoqaG9zdOWumuS5ieiHquWumuS5ieW8guatpemqjOivgSAqL1xuICBob3N0UmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5jcmVhdGVPckVkaXRGb3JtPy5nZXQoJ2hvc3QnKS52YWx1ZVxuICAgICAgICBpZiAoc3Vic2x1ZyA9PSB0aGlzLnNlbGVjdGVkPy5ob3N0IHx8IHN1YnNsdWcgPT0gJ2h0dHBzOi8vJykge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fU2l0ZUFkbWluU2VydmljZS5ob3N0RXhpc3RzKHN1YnNsdWcpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHJlc29sdmUoeyByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtczo6U2l0ZUhvc3R7MH1BbHJlYWR5RXhpc3RgLCBjdHJsLnZhbHVlKSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbn1cbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6U2l0ZXMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzaXRlcy1wYWdlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB4LTIgcHktc20tMiBib3JkZXItYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC0zXCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiYnV0dG9uLWFkZG9uMlwiIChjbGljayk9XCJsaXN0LmdldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgdGFibGUtZml4ZWQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlIGNsYXNzPVwibWF0ZXJpYWwgY29udGFpbmVyLWhlaWdodFwiIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbbGlzdF09XCJsaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5Nb2RlXT1cIidmb3JjZSdcIiBbaGVhZGVySGVpZ2h0XT1cIjUwXCIgW2Zvb3RlckhlaWdodF09XCI1MFwiIHJvd0hlaWdodD1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Njcm9sbGJhclZdPVwidHJ1ZVwiIFt2aXJ0dWFsaXphdGlvbl09XCJmYWxzZVwiIFtleHRlcm5hbFBhZ2luZ109XCJ0cnVlXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJkaXNwbGF5TmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6TmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6SXNBY3RpdmUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImlzQWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2sgdGV4dC1zdWNjZXNzXCIgKm5nSWY9XCJ2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXMgdGV4dC1kYW5nZXJcIiAqbmdJZj1cIiF2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpIb3N0JyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJob3N0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpDcmVhdGlvblRpbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImNyZWF0aW9uVGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIHwgZGF0ZSA6ICd5eXl5LU1NLWRkIGhoLW1tLXNzJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtzb3J0YWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBidG4tc21cIiBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiRWRpdFNpdGVzQnRuKHJvdylcIj57eydBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cblxuICAgIDwvZGl2PlxuXG5cblxuPC9hYnAtcGFnZT5cblxuXG48IS0tIDxkaWduaXRlLXBhZ2UgW3RpdGxlXT1cIidDbXM6OlNpdGVzJyB8IGFicExvY2FsaXphdGlvblwiIFtiYWNrXT1cImZhbHNlXCIgW2NsYXNzXT1cIidzaXRlcy1wYWdlJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjcGFnZUhlYWRlcj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG1zLTJcIiAoY2xpY2suc3RvcCk9XCJjcmVhdGVTaXRlc0J0bigpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMgcGUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT57eydDbXM6Ok5ldycgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjcGFnZUJvZHk+XG4gICAgICAgIFxuICAgIDwvbmctdGVtcGxhdGU+XG48L2RpZ25pdGUtcGFnZT4gLS0+XG5cbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJjcmVhdGVTaXRlc09wZW5cIiBbYnVzeV09XCJtb2RhbEJ1c3lcIiAodmlzaWJsZUNoYW5nZSk9XCJjcmVhdGVHcm91cFZpc2libGVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3tzZWxlY3RlZD8oJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbik6KCdDbXM6Ok5ldycgfCBhYnBMb2NhbGl6YXRpb24pfX08L2gzPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRlclJlZj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtcHVsc2UgZmEtc3Bpbm5lclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNyZWF0ZU9yRWRpdEZvcm07IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiAjbXlGb3JtPVwibmdGb3JtXCIgW2Zvcm1Hcm91cF09XCJjcmVhdGVPckVkaXRGb3JtXCJcbiAgICAgICAgICAgICAgICAobmdTdWJtaXQpPVwiY3JlYXRlT3JFZGl0U2F2ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgI2NyZWF0ZU1vZGFsU3VibWl0IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJkaXNQbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIm5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7bmFtZUlucHV0LmVycm9ycz8ucmVwZXRpdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Okhvc3QnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImhvc3RcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiaG9zdElucHV0LmVycm9ycz8ucmVwZXRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tob3N0SW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJpc0FjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmbGV4UmFkaW9EZWZhdWx0MVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiZmxleFJhZGlvRGVmYXVsdDFcIj4ge3snQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6TGFuZ3VhZ2VzJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxhbmd1YWdlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTFcIiB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwiaXRlbS5jdWx0dXJlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmaXJzdFJhZGlve3sgaSB9fVwiIFtjaGVja2VkXT1cIml0ZW0uaXNjaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxhbmd1YWdlc0NoYW5nZSgkZXZlbnQpOyFpdGVtLmlzY2hlY2tlZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiZmlyc3RSYWRpb3t7IGkgfX1cIj57eyBpdGVtLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaXNjaGVja2VkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5XCIgKm5nSWY9XCJpdGVtLmlzRGVmYXVsdFwiPnt7J0Ntczo6RGVmYXVsdCcgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljay5zdG9wKT1cInNldERlZmF1bHQoaXRlbSlcIiAqbmdJZj1cIiFpdGVtLmlzRGVmYXVsdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0Ntczo6U2V0RGVmYXVsdCcgfCBhYnBMb2NhbGl6YXRpb259fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZU1vZGFsU3VibWl0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4iXX0=
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { FormControl } from '@angular/forms';
|
|
3
|
-
import { EntryConfig } from './entry-config';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/forms";
|
|
6
|
-
import * as i2 from "../../../proxy/admin/sites";
|
|
7
|
-
import * as i3 from "../../../proxy/admin/sections";
|
|
8
|
-
import * as i4 from "@angular/common";
|
|
9
|
-
import * as i5 from "@abp/ng.core";
|
|
10
|
-
import * as i6 from "@ngx-validate/core";
|
|
11
|
-
class EntryConfigComponent {
|
|
12
|
-
fb;
|
|
13
|
-
_SiteAdminService;
|
|
14
|
-
_SectionAdminService;
|
|
15
|
-
constructor(fb, _SiteAdminService, _SectionAdminService) {
|
|
16
|
-
this.fb = fb;
|
|
17
|
-
this._SiteAdminService = _SiteAdminService;
|
|
18
|
-
this._SectionAdminService = _SectionAdminService;
|
|
19
|
-
}
|
|
20
|
-
/**表单控件类型 */
|
|
21
|
-
_type;
|
|
22
|
-
set type(v) {
|
|
23
|
-
if (v == this._type)
|
|
24
|
-
return;
|
|
25
|
-
this._type = v;
|
|
26
|
-
}
|
|
27
|
-
/**表单实体 */
|
|
28
|
-
_Entity;
|
|
29
|
-
set Entity(v) {
|
|
30
|
-
this._Entity = v;
|
|
31
|
-
}
|
|
32
|
-
/**选择的表单信息 */
|
|
33
|
-
_selected;
|
|
34
|
-
set selected(v) {
|
|
35
|
-
this._selected = v;
|
|
36
|
-
}
|
|
37
|
-
/**语言 */
|
|
38
|
-
_culture;
|
|
39
|
-
set culture(v) {
|
|
40
|
-
this._culture = v;
|
|
41
|
-
}
|
|
42
|
-
get formConfiguration() {
|
|
43
|
-
return this._Entity.get('formConfiguration');
|
|
44
|
-
}
|
|
45
|
-
submitclick;
|
|
46
|
-
/**站点列表 */
|
|
47
|
-
siteList = [];
|
|
48
|
-
/**选择的站点id */
|
|
49
|
-
// siteId: string = ''
|
|
50
|
-
siteId = new FormControl('');
|
|
51
|
-
/**站点下的版块 */
|
|
52
|
-
SiteOfSectionList = [];
|
|
53
|
-
ngAfterContentInit() {
|
|
54
|
-
//Called after ngOnInit when the component's or directive's content has been initialized.
|
|
55
|
-
//Add 'implements AfterContentInit' to the class.
|
|
56
|
-
this.dataLoaded(2);
|
|
57
|
-
}
|
|
58
|
-
async dataLoaded(val) {
|
|
59
|
-
if (this._Entity && this._type) {
|
|
60
|
-
await this.AfterInit();
|
|
61
|
-
this.submitclick.nativeElement.click();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
AfterInit() {
|
|
65
|
-
return new Promise(async (resolve, rejects) => {
|
|
66
|
-
this._Entity.setControl('formConfiguration', this.fb.group(new EntryConfig()));
|
|
67
|
-
await this.getsiteList();
|
|
68
|
-
await this.getSiteOfSectionList();
|
|
69
|
-
if (this._selected) {
|
|
70
|
-
this.formConfiguration.patchValue({
|
|
71
|
-
...this._selected.formConfiguration
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
resolve(true);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
/**获取站点列表 */
|
|
78
|
-
getsiteList() {
|
|
79
|
-
return new Promise((resolve, rejects) => {
|
|
80
|
-
this._SiteAdminService.getList({}).subscribe(res => {
|
|
81
|
-
this.siteList = res.items;
|
|
82
|
-
this.siteId = res.items[0]?.id || '';
|
|
83
|
-
resolve(res.items);
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
/**获取站点下的版块 */
|
|
88
|
-
getSiteOfSectionList() {
|
|
89
|
-
return new Promise((resolve, rejects) => {
|
|
90
|
-
this._SectionAdminService.getList({
|
|
91
|
-
maxResultCount: 1000,
|
|
92
|
-
siteId: this.siteId
|
|
93
|
-
}).subscribe(res => {
|
|
94
|
-
this.SiteOfSectionList = res.items;
|
|
95
|
-
this.formConfiguration.patchValue({
|
|
96
|
-
'Entry.SectionId': res.items[0]?.id || ''
|
|
97
|
-
});
|
|
98
|
-
resolve(res.items);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
/**切换站点 */
|
|
103
|
-
async siteIdChange() {
|
|
104
|
-
await this.getSiteOfSectionList();
|
|
105
|
-
}
|
|
106
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EntryConfigComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SiteAdminService }, { token: i3.SectionAdminService }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EntryConfigComponent, selector: "cms-entry-config", inputs: { type: "type", Entity: "Entity", selected: "selected", culture: "culture" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sites' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"siteId\" (change)=\"siteIdChange()\">\n <ng-container *ngFor=\"let item of siteList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n</div>\n<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n \n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" formControlName=\"Entry.SectionId\">\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Entry.Multiple\" id=\"Multiple\">\n <label class=\"form-check-label\" for=\"Multiple\">\n {{'Cms::Multiple' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"Entry.Placeholder\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i6.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }] });
|
|
108
|
-
}
|
|
109
|
-
export { EntryConfigComponent };
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EntryConfigComponent, decorators: [{
|
|
111
|
-
type: Component,
|
|
112
|
-
args: [{ selector: 'cms-entry-config', template: "<div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sites' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" [(ngModel)]=\"siteId\" (change)=\"siteIdChange()\">\n <ng-container *ngFor=\"let item of siteList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n</div>\n<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n \n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}</label>\n <select class=\"form-select col-auto\" formControlName=\"Entry.SectionId\">\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"Entry.Multiple\" id=\"Multiple\">\n <label class=\"form-check-label\" for=\"Multiple\">\n {{'Cms::Multiple' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Placeholder' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"Entry.Placeholder\">\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>" }]
|
|
113
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SiteAdminService }, { type: i3.SectionAdminService }]; }, propDecorators: { type: [{
|
|
114
|
-
type: Input
|
|
115
|
-
}], Entity: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], selected: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], culture: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], submitclick: [{
|
|
122
|
-
type: ViewChild,
|
|
123
|
-
args: ['submitclick', { static: true }]
|
|
124
|
-
}] } });
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktY29uZmlnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2VudHJ5L2VudHJ5LWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9lbnRyeS9lbnRyeS1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWUsV0FBVyxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFHN0MsTUFLYSxvQkFBb0I7SUFFckI7SUFDQTtJQUNBO0lBSFYsWUFDVSxFQUFlLEVBQ2YsaUJBQW1DLEVBQ25DLG9CQUF5QztRQUZ6QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2Ysc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO0lBRW5ELENBQUM7SUFDRCxZQUFZO0lBQ1osS0FBSyxDQUFLO0lBQ1YsSUFDVyxJQUFJLENBQUMsQ0FBTTtRQUNwQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU07UUFFM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDaEIsQ0FBQztJQUNELFVBQVU7SUFDVixPQUFPLENBQXVCO0lBQzlCLElBQ1csTUFBTSxDQUFDLENBQVk7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUNELGFBQWE7SUFDYixTQUFTLENBQUs7SUFD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QUM7b0JBQ2hDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7aUJBQzFDLENBQUMsQ0FBQTtnQkFDRixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3BCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsVUFBVTtJQUNWLEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7SUFDbkMsQ0FBQzt3R0F2R1Usb0JBQW9COzRGQUFwQixvQkFBb0Isd1FDVmpDLHVwREFtQ087O1NEekJNLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjttS0FjakIsSUFBSTtzQkFEZCxLQUFLO2dCQVNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBT0ssUUFBUTtzQkFEbEIsS0FBSztnQkFPSyxPQUFPO3NCQURqQixLQUFLO2dCQU9zQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50cnlDb25maWcgfSBmcm9tICcuL2VudHJ5LWNvbmZpZyc7XG5pbXBvcnQgeyBTaXRlQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vc2l0ZXMnO1xuaW1wb3J0IHsgU2VjdGlvbkFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL3NlY3Rpb25zJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1lbnRyeS1jb25maWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50cnktY29uZmlnLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW50cnktY29uZmlnLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRW50cnlDb25maWdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0e1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIF9TaXRlQWRtaW5TZXJ2aWNlOiBTaXRlQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX1NlY3Rpb25BZG1pblNlcnZpY2U6IFNlY3Rpb25BZG1pblNlcnZpY2UsXG4gICkge1xuICB9XG4gIC8qKuihqOWNleaOp+S7tuexu+WeiyAqL1xuICBfdHlwZTogYW55XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdHlwZSh2OiBhbnkpIHtcbiAgICBpZiAodiA9PSB0aGlzLl90eXBlKSByZXR1cm5cblxuICAgIHRoaXMuX3R5cGUgPSB2XG4gIH1cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIF9FbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZFxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IEVudGl0eSh2OiBGb3JtR3JvdXApIHtcbiAgICB0aGlzLl9FbnRpdHkgPSB2O1xuICB9XG4gIC8qKumAieaLqeeahOihqOWNleS/oeaBryAqL1xuICBfc2VsZWN0ZWQ6IGFueVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdlxuICB9XG4gIC8qKuivreiogCAqL1xuICBfY3VsdHVyZTogYW55XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3VsdHVyZSh2OiBhbnkpIHtcbiAgICB0aGlzLl9jdWx0dXJlID0gdlxuICB9XG4gIGdldCBmb3JtQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fRW50aXR5LmdldCgnZm9ybUNvbmZpZ3VyYXRpb24nKSBhcyBGb3JtR3JvdXBcbiAgfVxuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIC8qKuermeeCueWIl+ihqCAqL1xuICBzaXRlTGlzdDogYW55W2FueV0gPSBbXVxuXG4gIC8qKumAieaLqeeahOermeeCuWlkICovXG4gIC8vIHNpdGVJZDogc3RyaW5nID0gJydcbiAgc2l0ZUlkOiBhbnkgPSBuZXcgRm9ybUNvbnRyb2woJycpXG4gIC8qKuermeeCueS4i+eahOeJiOWdlyAqL1xuICBTaXRlT2ZTZWN0aW9uTGlzdDogYW55W2FueV0gPSBbXVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvL0NhbGxlZCBhZnRlciBuZ09uSW5pdCB3aGVuIHRoZSBjb21wb25lbnQncyBvciBkaXJlY3RpdmUncyBjb250ZW50IGhhcyBiZWVuIGluaXRpYWxpemVkLlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQnIHRvIHRoZSBjbGFzcy5cbiAgICB0aGlzLmRhdGFMb2FkZWQoMilcbiAgfVxuXG4gIGFzeW5jIGRhdGFMb2FkZWQodmFsKSB7XG4gICAgaWYgKHRoaXMuX0VudGl0eSAmJiB0aGlzLl90eXBlKSB7XG4gICAgICBhd2FpdCB0aGlzLkFmdGVySW5pdCgpXG4gICAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBBZnRlckluaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9FbnRpdHkuc2V0Q29udHJvbCgnZm9ybUNvbmZpZ3VyYXRpb24nLCB0aGlzLmZiLmdyb3VwKG5ldyBFbnRyeUNvbmZpZygpKSlcbiAgICAgIGF3YWl0IHRoaXMuZ2V0c2l0ZUxpc3QoKVxuICAgICAgYXdhaXQgdGhpcy5nZXRTaXRlT2ZTZWN0aW9uTGlzdCgpXG4gICAgICBpZiAodGhpcy5fc2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29uZmlndXJhdGlvbi5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAuLi50aGlzLl9zZWxlY3RlZC5mb3JtQ29uZmlndXJhdGlvblxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgcmVzb2x2ZSh0cnVlKVxuICAgIH0pXG4gIH1cblxuICAvKirojrflj5bnq5nngrnliJfooaggKi9cbiAgZ2V0c2l0ZUxpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TaXRlQWRtaW5TZXJ2aWNlLmdldExpc3Qoe30pLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnNpdGVMaXN0ID0gcmVzLml0ZW1zXG4gICAgICAgIHRoaXMuc2l0ZUlkID0gcmVzLml0ZW1zWzBdPy5pZCB8fCAnJ1xuICAgICAgICByZXNvbHZlKHJlcy5pdGVtcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuICAvKirojrflj5bnq5nngrnkuIvnmoTniYjlnZcgKi9cbiAgZ2V0U2l0ZU9mU2VjdGlvbkxpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgICBtYXhSZXN1bHRDb3VudDogMTAwMCxcbiAgICAgICAgc2l0ZUlkOiB0aGlzLnNpdGVJZFxuICAgICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3QgPSByZXMuaXRlbXNcbiAgICAgICAgdGhpcy5mb3JtQ29uZmlndXJhdGlvbi5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAnRW50cnkuU2VjdGlvbklkJzogcmVzLml0ZW1zWzBdPy5pZCB8fCAnJ1xuICAgICAgICB9KVxuICAgICAgICByZXNvbHZlKHJlcy5pdGVtcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKuWIh+aNouermeeCuSAqL1xuICBhc3luYyBzaXRlSWRDaGFuZ2UoKSB7XG4gICAgYXdhaXQgdGhpcy5nZXRTaXRlT2ZTZWN0aW9uTGlzdCgpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6U2l0ZXMnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBjb2wtYXV0b1wiICBbKG5nTW9kZWwpXT1cInNpdGVJZFwiIChjaGFuZ2UpPVwic2l0ZUlkQ2hhbmdlKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzaXRlTGlzdFwiPlxuICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9vcHRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc2VsZWN0PlxuPC9kaXY+XG48Zm9ybSBbZm9ybUdyb3VwXT1cIl9FbnRpdHlcIj5cbiAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJmb3JtQ29uZmlndXJhdGlvblwiPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OlNlY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBjb2wtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cIkVudHJ5LlNlY3Rpb25JZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgU2l0ZU9mU2VjdGlvbkxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGZvcm1Db250cm9sTmFtZT1cIkVudHJ5Lk11bHRpcGxlXCIgaWQ9XCJNdWx0aXBsZVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJNdWx0aXBsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eydDbXM6Ok11bHRpcGxlJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OlBsYWNlaG9sZGVyJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiRW50cnkuUGxhY2Vob2xkZXJcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChhYnBJbml0KT1cInN1Ym1pdGNsaWNrPy5uYXRpdmVFbGVtZW50Py5jbGljaygpXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiXG4gICAgICAgICAgICAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Zvcm0+Il19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export class EntryConfig {
|
|
2
|
-
/**多选 */
|
|
3
|
-
'Entry.Multiple' = [false, []];
|
|
4
|
-
/**占位符 */
|
|
5
|
-
'Entry.Placeholder' = ['', []];
|
|
6
|
-
/**版块id */
|
|
7
|
-
'Entry.SectionId' = ['', []];
|
|
8
|
-
constructor(data) {
|
|
9
|
-
if (data) {
|
|
10
|
-
for (const key in data) {
|
|
11
|
-
if (data.hasOwnProperty(key)) {
|
|
12
|
-
this[key] = data[key];
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vZW50cnkvZW50cnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxXQUFXO0lBR3BCLFFBQVE7SUFDUixnQkFBZ0IsR0FBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxTQUFTO0lBQ1QsbUJBQW1CLEdBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsVUFBVTtJQUNWLGlCQUFpQixHQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWxDLFlBQVksSUFBa0I7UUFDMUIsSUFBSSxJQUFJLEVBQUU7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QjthQUNKO1NBQ0o7SUFHTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVudHJ5Q29uZmlnIHtcclxuXHJcblxyXG4gICAgLyoq5aSa6YCJICovXHJcbiAgICAnRW50cnkuTXVsdGlwbGUnOiBhbnkgPSBbZmFsc2UsIFtdXTtcclxuICAgIC8qKuWNoOS9jeespiAqL1xyXG4gICAgJ0VudHJ5LlBsYWNlaG9sZGVyJzogYW55ID0gWycnLCBbXV07XHJcbiAgICAvKirniYjlnZdpZCAqL1xyXG4gICAgJ0VudHJ5LlNlY3Rpb25JZCc6IGFueSA9IFsnJywgW11dO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBFbnRyeUNvbmZpZykge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH1cclxufSJdfQ==
|