@koalarx/ui 14.0.6 → 14.0.9
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/alert/esm2020/index.mjs +6 -6
- package/alert/esm2020/koalarx-ui-alert.mjs +4 -4
- package/alert/esm2020/lib/dialog-alert.component.mjs +48 -48
- package/alert/esm2020/lib/koala.alert-config.interface.mjs +1 -1
- package/alert/esm2020/lib/koala.alert.enum.mjs +8 -8
- package/alert/esm2020/lib/koala.alert.module.mjs +46 -46
- package/alert/esm2020/lib/koala.alert.service.mjs +19 -19
- package/alert/esm2020/lib/koala.request-code-to-alert-enum.translate.mjs +17 -17
- package/alert/fesm2015/koalarx-ui-alert.mjs +111 -111
- package/alert/fesm2015/koalarx-ui-alert.mjs.map +1 -1
- package/alert/fesm2020/koalarx-ui-alert.mjs +109 -109
- package/alert/fesm2020/koalarx-ui-alert.mjs.map +1 -1
- package/alert/index.d.ts +6 -6
- package/alert/lib/dialog-alert.component.d.ts +10 -10
- package/alert/lib/koala.alert-config.interface.d.ts +14 -14
- package/alert/lib/koala.alert.enum.d.ts +7 -7
- package/alert/lib/koala.alert.module.d.ts +12 -12
- package/alert/lib/koala.alert.service.d.ts +10 -10
- package/alert/lib/koala.request-code-to-alert-enum.translate.d.ts +4 -4
- package/button/esm2020/index.mjs +2 -2
- package/button/esm2020/koalarx-ui-button.mjs +4 -4
- package/button/esm2020/lib/button.component.mjs +44 -44
- package/button/esm2020/lib/koala.button.module.mjs +40 -40
- package/button/fesm2015/koalarx-ui-button.mjs +67 -67
- package/button/fesm2015/koalarx-ui-button.mjs.map +1 -1
- package/button/fesm2020/koalarx-ui-button.mjs +67 -67
- package/button/fesm2020/koalarx-ui-button.mjs.map +1 -1
- package/button/index.d.ts +2 -2
- package/button/lib/button.component.d.ts +18 -18
- package/button/lib/koala.button.module.d.ts +12 -12
- package/common/esm2020/index.mjs +4 -4
- package/common/esm2020/koalarx-ui-common.mjs +4 -4
- package/common/esm2020/lib/mask-options.mjs +3 -3
- package/common/esm2020/lib/services/csv/koala.csv.service.mjs +36 -36
- package/common/esm2020/lib/services/xlsx/koala.xlsx-config.interface.mjs +1 -1
- package/common/esm2020/lib/services/xlsx/koala.xlsx.service.mjs +127 -127
- package/common/fesm2015/koalarx-ui-common.mjs +160 -160
- package/common/fesm2015/koalarx-ui-common.mjs.map +1 -1
- package/common/fesm2020/koalarx-ui-common.mjs +155 -155
- package/common/fesm2020/koalarx-ui-common.mjs.map +1 -1
- package/common/index.d.ts +4 -4
- package/common/lib/mask-options.d.ts +2 -2
- package/common/lib/services/csv/koala.csv.service.d.ts +10 -10
- package/common/lib/services/xlsx/koala.xlsx-config.interface.d.ts +11 -11
- package/common/lib/services/xlsx/koala.xlsx.service.d.ts +12 -12
- package/core/esm2020/index.mjs +36 -36
- package/core/esm2020/koalarx-ui-core.mjs +4 -4
- package/core/esm2020/lib/environments/koalaEnvironment.mjs +3 -3
- package/core/esm2020/lib/helpers/mat-form-field.helper.mjs +16 -16
- package/core/esm2020/lib/loader/loader-bar-page.component.mjs +24 -24
- package/core/esm2020/lib/loader/loader-bar-page.interface.mjs +1 -1
- package/core/esm2020/lib/loader/loader-config.interface.mjs +1 -1
- package/core/esm2020/lib/ngx-koala.module.mjs +47 -47
- package/core/esm2020/lib/page/koala-language.helper.mjs +113 -113
- package/core/esm2020/lib/page/koala-page-pallet-colors.interface.mjs +1 -1
- package/core/esm2020/lib/page/koala.page.module.mjs +76 -76
- package/core/esm2020/lib/page/koala.user-menu-options.interface.mjs +1 -1
- package/core/esm2020/lib/page/notifications/koala.notification.interface.mjs +1 -1
- package/core/esm2020/lib/page/notifications/notification.component.mjs +43 -43
- package/core/esm2020/lib/page/page.component.mjs +302 -302
- package/core/esm2020/lib/router/koala.parameter-hash-location-stategy.mjs +18 -18
- package/core/esm2020/lib/services/api-requester/factory/koala.response.factory.mjs +43 -43
- package/core/esm2020/lib/services/api-requester/helpers/error/koala.client.error.mjs +2 -2
- package/core/esm2020/lib/services/api-requester/helpers/error/koala.errors.helper.mjs +45 -45
- package/core/esm2020/lib/services/api-requester/helpers/error/koala.not-found.error.mjs +2 -2
- package/core/esm2020/lib/services/api-requester/helpers/error/koala.success.error.mjs +2 -2
- package/core/esm2020/lib/services/api-requester/helpers/error/koala.unhautorized.error.mjs +2 -2
- package/core/esm2020/lib/services/api-requester/helpers/service/koala.request-header.helper.mjs +14 -14
- package/core/esm2020/lib/services/api-requester/koala.api-requester.base.mjs +86 -86
- package/core/esm2020/lib/services/api-requester/koala.api-requester.cache.mjs +37 -37
- package/core/esm2020/lib/services/api-requester/koala.api-requester.service.mjs +158 -158
- package/core/esm2020/lib/services/loader/koala.loader.service.mjs +34 -34
- package/core/esm2020/lib/services/openid/koala-oauth2-config.interface.mjs +1 -1
- package/core/esm2020/lib/services/openid/koala.oauth.config.mjs +29 -29
- package/core/esm2020/lib/services/openid/koala.oauth2.service.mjs +188 -188
- package/core/esm2020/lib/services/request/koala.request.service.mjs +52 -52
- package/core/esm2020/lib/services/token/koala.token.service.mjs +55 -55
- package/core/esm2020/lib/services/token/token.factory.mjs +26 -26
- package/core/fesm2015/koalarx-ui-core.mjs +1294 -1294
- package/core/fesm2015/koalarx-ui-core.mjs.map +1 -1
- package/core/fesm2020/koalarx-ui-core.mjs +1256 -1256
- package/core/fesm2020/koalarx-ui-core.mjs.map +1 -1
- package/core/index.d.ts +30 -30
- package/core/lib/environments/koalaEnvironment.d.ts +15 -15
- package/core/lib/helpers/mat-form-field.helper.d.ts +3 -3
- package/core/lib/loader/loader-bar-page.component.d.ts +9 -9
- package/core/lib/loader/loader-bar-page.interface.d.ts +5 -5
- package/core/lib/loader/loader-config.interface.d.ts +7 -7
- package/core/lib/ngx-koala.module.d.ts +12 -12
- package/core/lib/page/koala-language.helper.d.ts +19 -19
- package/core/lib/page/koala-page-pallet-colors.interface.d.ts +38 -38
- package/core/lib/page/koala.page.module.d.ts +21 -21
- package/core/lib/page/koala.user-menu-options.interface.d.ts +5 -5
- package/core/lib/page/notifications/koala.notification.interface.d.ts +6 -6
- package/core/lib/page/notifications/notification.component.d.ts +15 -15
- package/core/lib/page/page.component.d.ts +58 -58
- package/core/lib/router/koala.parameter-hash-location-stategy.d.ts +7 -7
- package/core/lib/services/api-requester/factory/koala.response.factory.d.ts +5 -5
- package/core/lib/services/api-requester/helpers/error/koala.client.error.d.ts +2 -2
- package/core/lib/services/api-requester/helpers/error/koala.errors.helper.d.ts +13 -13
- package/core/lib/services/api-requester/helpers/error/koala.not-found.error.d.ts +2 -2
- package/core/lib/services/api-requester/helpers/error/koala.success.error.d.ts +2 -2
- package/core/lib/services/api-requester/helpers/error/koala.unhautorized.error.d.ts +2 -2
- package/core/lib/services/api-requester/helpers/service/koala.request-header.helper.d.ts +4 -4
- package/core/lib/services/api-requester/koala.api-requester.base.d.ts +19 -19
- package/core/lib/services/api-requester/koala.api-requester.cache.d.ts +13 -13
- package/core/lib/services/api-requester/koala.api-requester.service.d.ts +24 -24
- package/core/lib/services/loader/koala.loader.service.d.ts +14 -14
- package/core/lib/services/openid/koala-oauth2-config.interface.d.ts +11 -11
- package/core/lib/services/openid/koala.oauth.config.d.ts +9 -9
- package/core/lib/services/openid/koala.oauth2.service.d.ts +82 -82
- package/core/lib/services/request/koala.request.service.d.ts +11 -11
- package/core/lib/services/token/koala.token.service.d.ts +26 -26
- package/core/lib/services/token/token.factory.d.ts +9 -9
- package/dialog/esm2020/index.mjs +3 -3
- package/dialog/esm2020/koalarx-ui-dialog.mjs +4 -4
- package/dialog/esm2020/lib/dialog.component.mjs +25 -25
- package/dialog/esm2020/lib/koala.dialog-template.interface.mjs +1 -1
- package/dialog/esm2020/lib/koala.dialog.module.mjs +36 -36
- package/dialog/esm2020/lib/koala.dialog.service.mjs +57 -57
- package/dialog/fesm2015/koalarx-ui-dialog.mjs +96 -96
- package/dialog/fesm2015/koalarx-ui-dialog.mjs.map +1 -1
- package/dialog/fesm2020/koalarx-ui-dialog.mjs +96 -96
- package/dialog/fesm2020/koalarx-ui-dialog.mjs.map +1 -1
- package/dialog/index.d.ts +3 -3
- package/dialog/lib/dialog.component.d.ts +11 -11
- package/dialog/lib/koala.dialog-template.interface.d.ts +9 -9
- package/dialog/lib/koala.dialog.module.d.ts +11 -11
- package/dialog/lib/koala.dialog.service.d.ts +14 -14
- package/dynamic-component/esm2020/index.mjs +5 -5
- package/dynamic-component/esm2020/koalarx-ui-dynamic-component.mjs +4 -4
- package/dynamic-component/esm2020/lib/koala-dynamic-component.component.mjs +1 -1
- package/dynamic-component/esm2020/lib/koala-dynamic-component.directive.mjs +16 -16
- package/dynamic-component/esm2020/lib/koala-dynamic-component.factory.mjs +40 -40
- package/dynamic-component/esm2020/lib/koala-dynamic-component.mjs +6 -6
- package/dynamic-component/esm2020/lib/koala-dynamic-component.module.mjs +23 -23
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.mjs +71 -71
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.mjs.map +1 -1
- package/dynamic-component/fesm2020/koalarx-ui-dynamic-component.mjs +70 -70
- package/dynamic-component/fesm2020/koalarx-ui-dynamic-component.mjs.map +1 -1
- package/dynamic-component/index.d.ts +5 -5
- package/dynamic-component/lib/koala-dynamic-component.component.d.ts +3 -3
- package/dynamic-component/lib/koala-dynamic-component.d.ts +6 -6
- package/dynamic-component/lib/koala-dynamic-component.directive.d.ts +8 -8
- package/dynamic-component/lib/koala-dynamic-component.factory.d.ts +14 -14
- package/dynamic-component/lib/koala-dynamic-component.module.d.ts +8 -8
- package/file-button/esm2020/index.mjs +4 -4
- package/file-button/esm2020/koalarx-ui-file-button.mjs +4 -4
- package/file-button/esm2020/lib/file-button.component.mjs +125 -125
- package/file-button/esm2020/lib/koala.btn-file.service.mjs +25 -25
- package/file-button/esm2020/lib/koala.file-button.module.mjs +36 -36
- package/file-button/esm2020/lib/koala.file.interface.mjs +1 -1
- package/file-button/fesm2015/koalarx-ui-file-button.mjs +174 -174
- package/file-button/fesm2015/koalarx-ui-file-button.mjs.map +1 -1
- package/file-button/fesm2020/koalarx-ui-file-button.mjs +165 -165
- package/file-button/fesm2020/koalarx-ui-file-button.mjs.map +1 -1
- package/file-button/index.d.ts +4 -4
- package/file-button/lib/file-button.component.d.ts +29 -29
- package/file-button/lib/koala.btn-file.service.d.ts +11 -11
- package/file-button/lib/koala.file-button.module.d.ts +11 -11
- package/file-button/lib/koala.file.interface.d.ts +5 -5
- package/folder-page/esm2020/index.mjs +3 -3
- package/folder-page/esm2020/koalarx-ui-folder-page.mjs +4 -4
- package/folder-page/esm2020/lib/folder.component.mjs +70 -70
- package/folder-page/esm2020/lib/koala-navigate-history.interface.mjs +1 -1
- package/folder-page/esm2020/lib/koala.folder-page.module.mjs +40 -40
- package/folder-page/fesm2015/koalarx-ui-folder-page.mjs +95 -95
- package/folder-page/fesm2015/koalarx-ui-folder-page.mjs.map +1 -1
- package/folder-page/fesm2020/koalarx-ui-folder-page.mjs +94 -94
- package/folder-page/fesm2020/koalarx-ui-folder-page.mjs.map +1 -1
- package/folder-page/index.d.ts +3 -3
- package/folder-page/lib/folder.component.d.ts +21 -21
- package/folder-page/lib/koala-navigate-history.interface.d.ts +4 -4
- package/folder-page/lib/koala.folder-page.module.d.ts +12 -12
- package/form/esm2020/index.mjs +19 -19
- package/form/esm2020/koalarx-ui-form.mjs +4 -4
- package/form/esm2020/lib/btn-submit/btn-submit.component.mjs +49 -49
- package/form/esm2020/lib/directives/koala-autofocus.directive.mjs +25 -25
- package/form/esm2020/lib/dynamic-form/builder/dynamic-form.builder.mjs +139 -138
- package/form/esm2020/lib/dynamic-form/builder/fields/autocomplete.builder.mjs +37 -37
- package/form/esm2020/lib/dynamic-form/builder/fields/field.base.mjs +147 -147
- package/form/esm2020/lib/dynamic-form/builder/fields/field.builder.mjs +6 -6
- package/form/esm2020/lib/dynamic-form/builder/fields/more-items.builder.mjs +56 -56
- package/form/esm2020/lib/dynamic-form/dynamic-form.component.mjs +598 -598
- package/form/esm2020/lib/dynamic-form/enums/dynamic-form-type-field.enum.mjs +34 -34
- package/form/esm2020/lib/dynamic-form/interfaces/koala-custom-validator-fn.interface.mjs +1 -1
- package/form/esm2020/lib/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.mjs +1 -1
- package/form/esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.mjs +1 -1
- package/form/esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-config.interface.mjs +2 -2
- package/form/esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-field.interface.mjs +1 -1
- package/form/esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.mjs +1 -1
- package/form/esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.mjs +1 -1
- package/form/esm2020/lib/dynamic-form/interfaces/koala.dynamic-set-value.interface.mjs +1 -1
- package/form/esm2020/lib/dynamic-form/koala.dynamic-form.service.mjs +212 -212
- package/form/esm2020/lib/dynamic-form/validators/autocomplete-selected.validator.mjs +9 -9
- package/form/esm2020/lib/dynamic-form/validators/cnpj.validator.mjs +9 -9
- package/form/esm2020/lib/dynamic-form/validators/cpf.validator.mjs +9 -9
- package/form/esm2020/lib/dynamic-form/validators/date-max.validator.mjs +10 -10
- package/form/esm2020/lib/dynamic-form/validators/date-min.validator.mjs +10 -10
- package/form/esm2020/lib/dynamic-form/validators/koala-dynamic-form-validator-result.helper.mjs +9 -9
- package/form/esm2020/lib/dynamic-form/validators/validation.helper.mjs +85 -85
- package/form/esm2020/lib/form.abstract.mjs +41 -41
- package/form/esm2020/lib/koala.form.module.mjs +132 -132
- package/form/esm2020/lib/show-invalid-fields/show-invalid-fields.mjs +8 -8
- package/form/fesm2015/koalarx-ui-form.mjs +1517 -1516
- package/form/fesm2015/koalarx-ui-form.mjs.map +1 -1
- package/form/fesm2020/koalarx-ui-form.mjs +1499 -1498
- package/form/fesm2020/koalarx-ui-form.mjs.map +1 -1
- package/form/index.d.ts +19 -19
- package/form/lib/btn-submit/btn-submit.component.d.ts +20 -20
- package/form/lib/directives/koala-autofocus.directive.d.ts +10 -10
- package/form/lib/dynamic-form/builder/dynamic-form.builder.d.ts +21 -21
- package/form/lib/dynamic-form/builder/fields/autocomplete.builder.d.ts +16 -16
- package/form/lib/dynamic-form/builder/fields/field.base.d.ts +42 -42
- package/form/lib/dynamic-form/builder/fields/field.builder.d.ts +8 -8
- package/form/lib/dynamic-form/builder/fields/more-items.builder.d.ts +17 -17
- package/form/lib/dynamic-form/dynamic-form.component.d.ts +54 -54
- package/form/lib/dynamic-form/enums/dynamic-form-type-field.enum.d.ts +33 -33
- package/form/lib/dynamic-form/interfaces/koala-custom-validator-fn.interface.d.ts +4 -4
- package/form/lib/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.d.ts +4 -4
- package/form/lib/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.d.ts +4 -4
- package/form/lib/dynamic-form/interfaces/koala.dynamic-form-config.interface.d.ts +12 -11
- package/form/lib/dynamic-form/interfaces/koala.dynamic-form-field.interface.d.ts +69 -69
- package/form/lib/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.d.ts +8 -8
- package/form/lib/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.d.ts +5 -5
- package/form/lib/dynamic-form/interfaces/koala.dynamic-set-value.interface.d.ts +4 -4
- package/form/lib/dynamic-form/koala.dynamic-form.service.d.ts +28 -28
- package/form/lib/dynamic-form/validators/autocomplete-selected.validator.d.ts +4 -4
- package/form/lib/dynamic-form/validators/cnpj.validator.d.ts +4 -4
- package/form/lib/dynamic-form/validators/cpf.validator.d.ts +4 -4
- package/form/lib/dynamic-form/validators/date-max.validator.d.ts +2 -2
- package/form/lib/dynamic-form/validators/date-min.validator.d.ts +2 -2
- package/form/lib/dynamic-form/validators/koala-dynamic-form-validator-result.helper.d.ts +7 -7
- package/form/lib/dynamic-form/validators/validation.helper.d.ts +4 -4
- package/form/lib/form.abstract.d.ts +16 -16
- package/form/lib/koala.form.module.d.ts +25 -25
- package/form/lib/show-invalid-fields/show-invalid-fields.d.ts +6 -6
- package/icon/esm2020/index.mjs +3 -3
- package/icon/esm2020/koalarx-ui-icon.mjs +4 -4
- package/icon/esm2020/lib/icon.component.mjs +41 -41
- package/icon/esm2020/lib/koala.icon.module.mjs +24 -24
- package/icon/esm2020/lib/koala.icon.type.mjs +1 -1
- package/icon/fesm2015/koalarx-ui-icon.mjs +56 -56
- package/icon/fesm2015/koalarx-ui-icon.mjs.map +1 -1
- package/icon/fesm2020/koalarx-ui-icon.mjs +55 -55
- package/icon/fesm2020/koalarx-ui-icon.mjs.map +1 -1
- package/icon/index.d.ts +3 -3
- package/icon/lib/icon.component.d.ts +14 -14
- package/icon/lib/koala.icon.module.d.ts +8 -8
- package/icon/lib/koala.icon.type.d.ts +1 -1
- package/icons-animated/esm2020/index.mjs +4 -4
- package/icons-animated/esm2020/koalarx-ui-icons-animated.mjs +4 -4
- package/icons-animated/esm2020/lib/icons/downloading/downloading-icon-animated.component.mjs +23 -23
- package/icons-animated/esm2020/lib/icons/loading/loading-icon-animated.component.mjs +23 -23
- package/icons-animated/esm2020/lib/icons-animated.component.mjs +20 -20
- package/icons-animated/esm2020/lib/icons-animated.service.mjs +27 -27
- package/icons-animated/esm2020/lib/koala-icons-animated.module.mjs +30 -30
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.mjs +95 -95
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.mjs.map +1 -1
- package/icons-animated/fesm2020/koalarx-ui-icons-animated.mjs +93 -93
- package/icons-animated/fesm2020/koalarx-ui-icons-animated.mjs.map +1 -1
- package/icons-animated/index.d.ts +4 -4
- package/icons-animated/lib/icons/downloading/downloading-icon-animated.component.d.ts +12 -12
- package/icons-animated/lib/icons/loading/loading-icon-animated.component.d.ts +12 -12
- package/icons-animated/lib/icons-animated.component.d.ts +8 -8
- package/icons-animated/lib/icons-animated.service.d.ts +9 -9
- package/icons-animated/lib/koala-icons-animated.module.d.ts +10 -10
- package/list/esm2020/index.mjs +11 -11
- package/list/esm2020/koalarx-ui-list.mjs +4 -4
- package/list/esm2020/lib/koala-list-btn-collapse-sub-list-config.interface.mjs +1 -1
- package/list/esm2020/lib/koala-list-filter.interface.mjs +1 -1
- package/list/esm2020/lib/koala-list-form-filter.interface.mjs +1 -1
- package/list/esm2020/lib/koala-list-item-menu-option.interface.mjs +1 -1
- package/list/esm2020/lib/koala-list-item.interface.mjs +1 -1
- package/list/esm2020/lib/koala.list-config.interface.mjs +1 -1
- package/list/esm2020/lib/koala.list.module.mjs +68 -68
- package/list/esm2020/lib/koala.list.service.mjs +15 -15
- package/list/esm2020/lib/list-builder/list.builder.mjs +104 -104
- package/list/esm2020/lib/list.abstract.mjs +163 -163
- package/list/esm2020/lib/list.component.mjs +172 -172
- package/list/esm2020/lib/providers/pagination/pagination.provider.mjs +32 -32
- package/list/fesm2015/koalarx-ui-list.mjs +521 -521
- package/list/fesm2015/koalarx-ui-list.mjs.map +1 -1
- package/list/fesm2020/koalarx-ui-list.mjs +491 -491
- package/list/fesm2020/koalarx-ui-list.mjs.map +1 -1
- package/list/index.d.ts +11 -11
- package/list/lib/koala-list-btn-collapse-sub-list-config.interface.d.ts +8 -8
- package/list/lib/koala-list-filter.interface.d.ts +10 -10
- package/list/lib/koala-list-form-filter.interface.d.ts +8 -8
- package/list/lib/koala-list-item-menu-option.interface.d.ts +7 -7
- package/list/lib/koala-list-item.interface.d.ts +13 -13
- package/list/lib/koala.list-config.interface.d.ts +37 -37
- package/list/lib/koala.list.module.d.ts +17 -17
- package/list/lib/koala.list.service.d.ts +7 -7
- package/list/lib/list-builder/list.builder.d.ts +32 -32
- package/list/lib/list.abstract.d.ts +44 -44
- package/list/lib/list.component.d.ts +54 -54
- package/list/lib/providers/pagination/pagination.provider.d.ts +9 -9
- package/menu/esm2020/index.mjs +5 -5
- package/menu/esm2020/koalarx-ui-menu.mjs +4 -4
- package/menu/esm2020/lib/koala.menu-module.interface.mjs +1 -1
- package/menu/esm2020/lib/koala.menu-tool.interface.mjs +1 -1
- package/menu/esm2020/lib/koala.menu.module.mjs +36 -36
- package/menu/esm2020/lib/koala.menu.service.mjs +24 -24
- package/menu/esm2020/lib/menu.component.mjs +100 -100
- package/menu/fesm2015/koalarx-ui-menu.mjs +139 -139
- package/menu/fesm2015/koalarx-ui-menu.mjs.map +1 -1
- package/menu/fesm2020/koalarx-ui-menu.mjs +135 -135
- package/menu/fesm2020/koalarx-ui-menu.mjs.map +1 -1
- package/menu/index.d.ts +5 -5
- package/menu/lib/koala.menu-module.interface.d.ts +12 -12
- package/menu/lib/koala.menu-tool.interface.d.ts +6 -6
- package/menu/lib/koala.menu.module.d.ts +11 -11
- package/menu/lib/koala.menu.service.d.ts +10 -10
- package/menu/lib/menu.component.d.ts +22 -22
- package/package.json +2 -2
- package/question/esm2020/index.mjs +4 -4
- package/question/esm2020/koalarx-ui-question.mjs +4 -4
- package/question/esm2020/lib/dialog-question.component.mjs +25 -25
- package/question/esm2020/lib/koala-question-config.interface.mjs +1 -1
- package/question/esm2020/lib/koala.question.module.mjs +40 -40
- package/question/esm2020/lib/koala.question.service.mjs +26 -26
- package/question/fesm2015/koalarx-ui-question.mjs +68 -68
- package/question/fesm2015/koalarx-ui-question.mjs.map +1 -1
- package/question/fesm2020/koalarx-ui-question.mjs +66 -66
- package/question/fesm2020/koalarx-ui-question.mjs.map +1 -1
- package/question/index.d.ts +4 -4
- package/question/lib/dialog-question.component.d.ts +10 -10
- package/question/lib/koala-question-config.interface.d.ts +5 -5
- package/question/lib/koala.question.module.d.ts +12 -12
- package/question/lib/koala.question.service.d.ts +10 -10
- package/snackbar/esm2020/index.mjs +4 -4
- package/snackbar/esm2020/koalarx-ui-snackbar.mjs +4 -4
- package/snackbar/esm2020/lib/koala.snackbar.component.mjs +22 -22
- package/snackbar/esm2020/lib/koala.snackbar.interface.mjs +1 -1
- package/snackbar/esm2020/lib/koala.snackbar.module.mjs +36 -36
- package/snackbar/esm2020/lib/koala.snackbar.service.mjs +35 -35
- package/snackbar/fesm2015/koalarx-ui-snackbar.mjs +74 -74
- package/snackbar/fesm2015/koalarx-ui-snackbar.mjs.map +1 -1
- package/snackbar/fesm2020/koalarx-ui-snackbar.mjs +72 -72
- package/snackbar/fesm2020/koalarx-ui-snackbar.mjs.map +1 -1
- package/snackbar/index.d.ts +4 -4
- package/snackbar/lib/koala.snackbar.component.d.ts +10 -10
- package/snackbar/lib/koala.snackbar.interface.d.ts +4 -4
- package/snackbar/lib/koala.snackbar.module.d.ts +10 -10
- package/snackbar/lib/koala.snackbar.service.d.ts +12 -12
|
@@ -1,127 +1,127 @@
|
|
|
1
|
-
import * as Excel from "exceljs/dist/exceljs.min.js";
|
|
2
|
-
import * as fs from 'file-saver';
|
|
3
|
-
import { Injectable } from "@angular/core";
|
|
4
|
-
import { koala } from "@koalarx/utils";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class KoalaXlsxService {
|
|
7
|
-
async convertJsonToXlsx(json, config) {
|
|
8
|
-
const title = config.title;
|
|
9
|
-
const header = [];
|
|
10
|
-
Object.keys(json[0]).forEach(name => {
|
|
11
|
-
header.push((config.normalizeHeader === true || config.normalizeHeader === null || config.normalizeHeader === undefined ?
|
|
12
|
-
koala(name).string().normalize().getValue().toUpperCase() :
|
|
13
|
-
name));
|
|
14
|
-
});
|
|
15
|
-
const workbook = new Excel.Workbook();
|
|
16
|
-
const worksheet = workbook.addWorksheet(config.sheetName);
|
|
17
|
-
if (config.password) {
|
|
18
|
-
await worksheet.protect(config.password, {
|
|
19
|
-
selectLockedCells: false,
|
|
20
|
-
selectUnlockedCells: false,
|
|
21
|
-
scenarios: false
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
if (config.title) {
|
|
25
|
-
const titleRow = worksheet.addRow([title]);
|
|
26
|
-
titleRow.alignment = { horizontal: 'center' };
|
|
27
|
-
if (config.titleFontColor) {
|
|
28
|
-
titleRow.font = { bold: true, color: { argb: config.titleFontColor.replace('#', '') } };
|
|
29
|
-
}
|
|
30
|
-
if (config.titleBackgroundColor) {
|
|
31
|
-
titleRow.fill = {
|
|
32
|
-
type: 'pattern',
|
|
33
|
-
pattern: 'solid',
|
|
34
|
-
fgColor: { argb: config.titleBackgroundColor.replace('#', '') },
|
|
35
|
-
bgColor: { argb: config.titleBackgroundColor.replace('#', '') }
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
worksheet.mergeCells(`A1:${worksheet.getCell(1, Object.keys(json[0]).length).address}`);
|
|
39
|
-
}
|
|
40
|
-
const headerRow = worksheet.addRow(header);
|
|
41
|
-
headerRow.eachCell((cell, number) => {
|
|
42
|
-
if (config.headerBackgroundColor) {
|
|
43
|
-
cell.fill = {
|
|
44
|
-
type: 'pattern',
|
|
45
|
-
pattern: 'solid',
|
|
46
|
-
fgColor: { argb: config.headerBackgroundColor.replace('#', '') },
|
|
47
|
-
bgColor: { argb: config.headerBackgroundColor.replace('#', '') }
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
if (config.headerFontColor) {
|
|
51
|
-
cell.font = {
|
|
52
|
-
color: { argb: config.headerFontColor.replace('#', '') }
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
json.forEach(item => {
|
|
57
|
-
const data = [];
|
|
58
|
-
Object.values(item).forEach(value => data.push(value));
|
|
59
|
-
worksheet.addRow(data);
|
|
60
|
-
});
|
|
61
|
-
workbook.xlsx.writeBuffer().then((data) => {
|
|
62
|
-
const blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
|
63
|
-
fs.saveAs(blob, config.filename + '.xlsx');
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
async convertJsonToXlsxWithTabs(tabs, config) {
|
|
67
|
-
const header = [];
|
|
68
|
-
const workbook = new Excel.Workbook();
|
|
69
|
-
tabs.forEach(tab => {
|
|
70
|
-
const title = tab?.titleName ?? config.title;
|
|
71
|
-
Object.keys(tab.json[0]).forEach(name => {
|
|
72
|
-
header.push((config.normalizeHeader === true || config.normalizeHeader === null || config.normalizeHeader === undefined ?
|
|
73
|
-
koala(name).string().normalize().getValue().toUpperCase() :
|
|
74
|
-
name));
|
|
75
|
-
});
|
|
76
|
-
const worksheet = workbook.addWorksheet(tab?.sheetName ?? config.sheetName);
|
|
77
|
-
if (config.title) {
|
|
78
|
-
const titleRow = worksheet.addRow([title]);
|
|
79
|
-
titleRow.alignment = { horizontal: 'center' };
|
|
80
|
-
if (config.titleFontColor) {
|
|
81
|
-
titleRow.font = { bold: true, color: { argb: config.titleFontColor.replace('#', '') } };
|
|
82
|
-
}
|
|
83
|
-
if (config.titleBackgroundColor) {
|
|
84
|
-
titleRow.fill = {
|
|
85
|
-
type: 'pattern',
|
|
86
|
-
pattern: 'solid',
|
|
87
|
-
fgColor: { argb: config.titleBackgroundColor.replace('#', '') },
|
|
88
|
-
bgColor: { argb: config.titleBackgroundColor.replace('#', '') }
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
worksheet.mergeCells(`A1:${worksheet.getCell(1, Object.keys(tab.json[0]).length).address}`);
|
|
92
|
-
}
|
|
93
|
-
const headerRow = worksheet.addRow(header);
|
|
94
|
-
headerRow.eachCell((cell, number) => {
|
|
95
|
-
if (config.headerBackgroundColor) {
|
|
96
|
-
cell.fill = {
|
|
97
|
-
type: 'pattern',
|
|
98
|
-
pattern: 'solid',
|
|
99
|
-
fgColor: { argb: config.headerBackgroundColor.replace('#', '') },
|
|
100
|
-
bgColor: { argb: config.headerBackgroundColor.replace('#', '') }
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
if (config.headerFontColor) {
|
|
104
|
-
cell.font = {
|
|
105
|
-
color: { argb: config.headerFontColor.replace('#', '') }
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
tab.json.forEach(item => {
|
|
110
|
-
const data = [];
|
|
111
|
-
Object.values(item).forEach(value => data.push(value));
|
|
112
|
-
worksheet.addRow(data);
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
workbook.xlsx.writeBuffer().then((data) => {
|
|
116
|
-
const blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
|
117
|
-
fs.saveAs(blob, config.filename + '.xlsx');
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
KoalaXlsxService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
122
|
-
KoalaXlsxService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
124
|
-
type: Injectable,
|
|
125
|
-
args: [{ providedIn: "any" }]
|
|
126
|
-
}] });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEueGxzeC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvc2VydmljZXMveGxzeC9rb2FsYS54bHN4LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSw2QkFBNkIsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHdkMsTUFBTSxPQUFPLGdCQUFnQjtJQUVwQixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBVyxFQUFFLE1BQWdDO1FBQzFFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0IsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDVixNQUFNLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxDQUFDO2dCQUM1RyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUNMLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQXlCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVELE1BQU0sU0FBUyxHQUFHLFFBQVEs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QUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLG1FQUFtRSxFQUFDLENBQUMsQ0FBQztZQUMzRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OEdBdklVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBREosS0FBSzs0RkFDakIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEV4Y2VsIGZyb20gXCJleGNlbGpzL2Rpc3QvZXhjZWxqcy5taW4uanNcIjtcbmltcG9ydCAqIGFzIEV4Y2VsUHJvcGVyIGZyb20gXCJleGNlbGpzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmaWxlLXNhdmVyJztcblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBLb2FsYVhsc3hDb25maWdJbnRlcmZhY2UgfSBmcm9tIFwiLi9rb2FsYS54bHN4LWNvbmZpZy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IGtvYWxhIH0gZnJvbSBcIkBrb2FsYXJ4L3V0aWxzXCI7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiBcImFueVwifSlcbmV4cG9ydCBjbGFzcyBLb2FsYVhsc3hTZXJ2aWNlIHtcblxuICBwdWJsaWMgYXN5bmMgY29udmVydEpzb25Ub1hsc3goanNvbjogYW55W10sIGNvbmZpZzogS29hbGFYbHN4Q29uZmlnSW50ZXJmYWNlKSB7XG4gICAgY29uc3QgdGl0bGUgPSBjb25maWcudGl0bGU7XG4gICAgY29uc3QgaGVhZGVyID0gW107XG5cbiAgICBPYmplY3Qua2V5cyhqc29uWzBdKS5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgaGVhZGVyLnB1c2goKFxuICAgICAgICBjb25maWcubm9ybWFsaXplSGVhZGVyID09PSB0cnVlIHx8IGNvbmZpZy5ub3JtYWxpemVIZWFkZXIgPT09IG51bGwgfHwgY29uZmlnLm5vcm1hbGl6ZUhlYWRlciA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAga29hbGEobmFtZSkuc3RyaW5nKCkubm9ybWFsaXplKCkuZ2V0VmFsdWUoKS50b1VwcGVyQ2FzZSgpIDpcbiAgICAgICAgbmFtZVxuICAgICAgKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB3b3JrYm9vazogRXhjZWxQcm9wZXIuV29ya2Jvb2sgPSBuZXcgRXhjZWwuV29ya2Jvb2soKTtcbiAgICBjb25zdCB3b3Jrc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoY29uZmlnLnNoZWV0TmFtZSk7XG4gICAgaWYgKGNvbmZpZy5wYXNzd29yZCkge1xuICAgICAgYXdhaXQgd29ya3NoZWV0LnByb3RlY3QoY29uZmlnLnBhc3N3b3JkLCB7XG4gICAgICAgIHNlbGVjdExvY2tlZENlbGxzOiBmYWxzZSxcbiAgICAgICAgc2VsZWN0VW5sb2NrZWRDZWxsczogZmFsc2UsXG4gICAgICAgIHNjZW5hcmlvczogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb25maWcudGl0bGUpIHtcbiAgICAgIGNvbnN0IHRpdGxlUm93ID0gd29ya3NoZWV0LmFkZFJvdyhbdGl0bGVdKTtcbiAgICAgIHRpdGxlUm93LmFsaWdubWVudCA9IHtob3Jpem9udGFsOiAnY2VudGVyJ307XG4gICAgICBpZiAoY29uZmlnLnRpdGxlRm9udENvbG9yKSB7XG4gICAgICAgIHRpdGxlUm93LmZvbnQgPSB7Ym9sZDogdHJ1ZSwgY29sb3I6IHthcmdiOiBjb25maWcudGl0bGVGb250Q29sb3IucmVwbGFjZSgnIycsICcnKX19O1xuICAgICAgfVxuICAgICAgaWYgKGNvbmZpZy50aXRsZUJhY2tncm91bmRDb2xvcikge1xuICAgICAgICB0aXRsZVJvdy5maWxsID0ge1xuICAgICAgICAgIHR5cGU6ICdwYXR0ZXJuJyxcbiAgICAgICAgICBwYXR0ZXJuOiAnc29saWQnLFxuICAgICAgICAgIGZnQ29sb3I6IHthcmdiOiBjb25maWcudGl0bGVCYWNrZ3JvdW5kQ29sb3IucmVwbGFjZSgnIycsICcnKX0sXG4gICAgICAgICAgYmdDb2xvcjoge2FyZ2I6IGNvbmZpZy50aXRsZUJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgd29ya3NoZWV0Lm1lcmdlQ2VsbHMoYEExOiR7d29ya3NoZWV0LmdldENlbGwoMSwgT2JqZWN0LmtleXMoanNvblswXSkubGVuZ3RoKS5hZGRyZXNzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGhlYWRlclJvdyA9IHdvcmtzaGVldC5hZGRSb3coaGVhZGVyKTtcbiAgICBoZWFkZXJSb3cuZWFjaENlbGwoKGNlbGwsIG51bWJlcikgPT4ge1xuICAgICAgaWYgKGNvbmZpZy5oZWFkZXJCYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgICAgY2VsbC5maWxsID0ge1xuICAgICAgICAgIHR5cGU6ICdwYXR0ZXJuJyxcbiAgICAgICAgICBwYXR0ZXJuOiAnc29saWQnLFxuICAgICAgICAgIGZnQ29sb3I6IHthcmdiOiBjb25maWcuaGVhZGVyQmFja2dyb3VuZENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9LFxuICAgICAgICAgIGJnQ29sb3I6IHthcmdiOiBjb25maWcuaGVhZGVyQmFja2dyb3VuZENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLmhlYWRlckZvbnRDb2xvcikge1xuICAgICAgICBjZWxsLmZvbnQgPSB7XG4gICAgICAgICAgY29sb3I6IHthcmdiOiBjb25maWcuaGVhZGVyRm9udENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBqc29uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gW107XG4gICAgICBPYmplY3QudmFsdWVzKGl0ZW0pLmZvckVhY2godmFsdWUgPT4gZGF0YS5wdXNoKHZhbHVlKSk7XG4gICAgICB3b3Jrc2hlZXQuYWRkUm93KGRhdGEpO1xuICAgIH0pO1xuXG4gICAgd29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHt0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnfSk7XG4gICAgICBmcy5zYXZlQXMoYmxvYiwgY29uZmlnLmZpbGVuYW1lICsgJy54bHN4Jyk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY29udmVydEpzb25Ub1hsc3hXaXRoVGFicyh0YWJzOiB7XG4gICAgdGl0bGVOYW1lPzogc3RyaW5nO1xuICAgIHNoZWV0TmFtZT86IHN0cmluZztcbiAgICBqc29uOiBhbnlbXVxuICB9W10sIGNvbmZpZzogS29hbGFYbHN4Q29uZmlnSW50ZXJmYWNlKSB7XG4gICAgY29uc3QgaGVhZGVyID0gW107XG4gICAgY29uc3Qgd29ya2Jvb2s6IEV4Y2VsUHJvcGVyLldvcmtib29rID0gbmV3IEV4Y2VsLldvcmtib29rKCk7XG5cbiAgICB0YWJzLmZvckVhY2godGFiID0+IHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGFiPy50aXRsZU5hbWUgPz8gY29uZmlnLnRpdGxlO1xuICAgICAgT2JqZWN0LmtleXModGFiLmpzb25bMF0pLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICAgIGhlYWRlci5wdXNoKChcbiAgICAgICAgICBjb25maWcubm9ybWFsaXplSGVhZGVyID09PSB0cnVlIHx8IGNvbmZpZy5ub3JtYWxpemVIZWFkZXIgPT09IG51bGwgfHwgY29uZmlnLm5vcm1hbGl6ZUhlYWRlciA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAgICAgIGtvYWxhKG5hbWUpLnN0cmluZygpLm5vcm1hbGl6ZSgpLmdldFZhbHVlKCkudG9VcHBlckNhc2UoKSA6XG4gICAgICAgICAgICBuYW1lXG4gICAgICAgICkpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHdvcmtzaGVldCA9IHdvcmtib29rLmFkZFdvcmtzaGVldCh0YWI/LnNoZWV0TmFtZSA/PyBjb25maWcuc2hlZXROYW1lKTtcblxuICAgICAgaWYgKGNvbmZpZy50aXRsZSkge1xuICAgICAgICBjb25zdCB0aXRsZVJvdyA9IHdvcmtzaGVldC5hZGRSb3coW3RpdGxlXSk7XG4gICAgICAgIHRpdGxlUm93LmFsaWdubWVudCA9IHtob3Jpem9udGFsOiAnY2VudGVyJ307XG4gICAgICAgIGlmIChjb25maWcudGl0bGVGb250Q29sb3IpIHtcbiAgICAgICAgICB0aXRsZVJvdy5mb250ID0ge2JvbGQ6IHRydWUsIGNvbG9yOiB7YXJnYjogY29uZmlnLnRpdGxlRm9udENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLnRpdGxlQmFja2dyb3VuZENvbG9yKSB7XG4gICAgICAgICAgdGl0bGVSb3cuZmlsbCA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdwYXR0ZXJuJyxcbiAgICAgICAgICAgIHBhdHRlcm46ICdzb2xpZCcsXG4gICAgICAgICAgICBmZ0NvbG9yOiB7YXJnYjogY29uZmlnLnRpdGxlQmFja2dyb3VuZENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9LFxuICAgICAgICAgICAgYmdDb2xvcjoge2FyZ2I6IGNvbmZpZy50aXRsZUJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgd29ya3NoZWV0Lm1lcmdlQ2VsbHMoYEExOiR7d29ya3NoZWV0LmdldENlbGwoMSwgT2JqZWN0LmtleXModGFiLmpzb25bMF0pLmxlbmd0aCkuYWRkcmVzc31gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGVhZGVyUm93ID0gd29ya3NoZWV0LmFkZFJvdyhoZWFkZXIpO1xuICAgICAgaGVhZGVyUm93LmVhY2hDZWxsKChjZWxsLCBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZy5oZWFkZXJCYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgICAgICBjZWxsLmZpbGwgPSB7XG4gICAgICAgICAgICB0eXBlOiAncGF0dGVybicsXG4gICAgICAgICAgICBwYXR0ZXJuOiAnc29saWQnLFxuICAgICAgICAgICAgZmdDb2xvcjoge2FyZ2I6IGNvbmZpZy5oZWFkZXJCYWNrZ3JvdW5kQ29sb3IucmVwbGFjZSgnIycsICcnKX0sXG4gICAgICAgICAgICBiZ0NvbG9yOiB7YXJnYjogY29uZmlnLmhlYWRlckJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5oZWFkZXJGb250Q29sb3IpIHtcbiAgICAgICAgICBjZWxsLmZvbnQgPSB7XG4gICAgICAgICAgICBjb2xvcjoge2FyZ2I6IGNvbmZpZy5oZWFkZXJGb250Q29sb3IucmVwbGFjZSgnIycsICcnKX1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGFiLmpzb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IFtdO1xuICAgICAgICBPYmplY3QudmFsdWVzKGl0ZW0pLmZvckVhY2godmFsdWUgPT4gZGF0YS5wdXNoKHZhbHVlKSk7XG4gICAgICAgIHdvcmtzaGVldC5hZGRSb3coZGF0YSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHdvcmtib29rLnhsc3gud3JpdGVCdWZmZXIoKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7dHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0J30pO1xuICAgICAgZnMuc2F2ZUFzKGJsb2IsIGNvbmZpZy5maWxlbmFtZSArICcueGxzeCcpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
1
|
+
import * as Excel from "exceljs/dist/exceljs.min.js";
|
|
2
|
+
import * as fs from 'file-saver';
|
|
3
|
+
import { Injectable } from "@angular/core";
|
|
4
|
+
import { koala } from "@koalarx/utils";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class KoalaXlsxService {
|
|
7
|
+
async convertJsonToXlsx(json, config) {
|
|
8
|
+
const title = config.title;
|
|
9
|
+
const header = [];
|
|
10
|
+
Object.keys(json[0]).forEach(name => {
|
|
11
|
+
header.push((config.normalizeHeader === true || config.normalizeHeader === null || config.normalizeHeader === undefined ?
|
|
12
|
+
koala(name).string().normalize().getValue().toUpperCase() :
|
|
13
|
+
name));
|
|
14
|
+
});
|
|
15
|
+
const workbook = new Excel.Workbook();
|
|
16
|
+
const worksheet = workbook.addWorksheet(config.sheetName);
|
|
17
|
+
if (config.password) {
|
|
18
|
+
await worksheet.protect(config.password, {
|
|
19
|
+
selectLockedCells: false,
|
|
20
|
+
selectUnlockedCells: false,
|
|
21
|
+
scenarios: false
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
if (config.title) {
|
|
25
|
+
const titleRow = worksheet.addRow([title]);
|
|
26
|
+
titleRow.alignment = { horizontal: 'center' };
|
|
27
|
+
if (config.titleFontColor) {
|
|
28
|
+
titleRow.font = { bold: true, color: { argb: config.titleFontColor.replace('#', '') } };
|
|
29
|
+
}
|
|
30
|
+
if (config.titleBackgroundColor) {
|
|
31
|
+
titleRow.fill = {
|
|
32
|
+
type: 'pattern',
|
|
33
|
+
pattern: 'solid',
|
|
34
|
+
fgColor: { argb: config.titleBackgroundColor.replace('#', '') },
|
|
35
|
+
bgColor: { argb: config.titleBackgroundColor.replace('#', '') }
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
worksheet.mergeCells(`A1:${worksheet.getCell(1, Object.keys(json[0]).length).address}`);
|
|
39
|
+
}
|
|
40
|
+
const headerRow = worksheet.addRow(header);
|
|
41
|
+
headerRow.eachCell((cell, number) => {
|
|
42
|
+
if (config.headerBackgroundColor) {
|
|
43
|
+
cell.fill = {
|
|
44
|
+
type: 'pattern',
|
|
45
|
+
pattern: 'solid',
|
|
46
|
+
fgColor: { argb: config.headerBackgroundColor.replace('#', '') },
|
|
47
|
+
bgColor: { argb: config.headerBackgroundColor.replace('#', '') }
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (config.headerFontColor) {
|
|
51
|
+
cell.font = {
|
|
52
|
+
color: { argb: config.headerFontColor.replace('#', '') }
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
json.forEach(item => {
|
|
57
|
+
const data = [];
|
|
58
|
+
Object.values(item).forEach(value => data.push(value));
|
|
59
|
+
worksheet.addRow(data);
|
|
60
|
+
});
|
|
61
|
+
workbook.xlsx.writeBuffer().then((data) => {
|
|
62
|
+
const blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
|
63
|
+
fs.saveAs(blob, config.filename + '.xlsx');
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async convertJsonToXlsxWithTabs(tabs, config) {
|
|
67
|
+
const header = [];
|
|
68
|
+
const workbook = new Excel.Workbook();
|
|
69
|
+
tabs.forEach(tab => {
|
|
70
|
+
const title = tab?.titleName ?? config.title;
|
|
71
|
+
Object.keys(tab.json[0]).forEach(name => {
|
|
72
|
+
header.push((config.normalizeHeader === true || config.normalizeHeader === null || config.normalizeHeader === undefined ?
|
|
73
|
+
koala(name).string().normalize().getValue().toUpperCase() :
|
|
74
|
+
name));
|
|
75
|
+
});
|
|
76
|
+
const worksheet = workbook.addWorksheet(tab?.sheetName ?? config.sheetName);
|
|
77
|
+
if (config.title) {
|
|
78
|
+
const titleRow = worksheet.addRow([title]);
|
|
79
|
+
titleRow.alignment = { horizontal: 'center' };
|
|
80
|
+
if (config.titleFontColor) {
|
|
81
|
+
titleRow.font = { bold: true, color: { argb: config.titleFontColor.replace('#', '') } };
|
|
82
|
+
}
|
|
83
|
+
if (config.titleBackgroundColor) {
|
|
84
|
+
titleRow.fill = {
|
|
85
|
+
type: 'pattern',
|
|
86
|
+
pattern: 'solid',
|
|
87
|
+
fgColor: { argb: config.titleBackgroundColor.replace('#', '') },
|
|
88
|
+
bgColor: { argb: config.titleBackgroundColor.replace('#', '') }
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
worksheet.mergeCells(`A1:${worksheet.getCell(1, Object.keys(tab.json[0]).length).address}`);
|
|
92
|
+
}
|
|
93
|
+
const headerRow = worksheet.addRow(header);
|
|
94
|
+
headerRow.eachCell((cell, number) => {
|
|
95
|
+
if (config.headerBackgroundColor) {
|
|
96
|
+
cell.fill = {
|
|
97
|
+
type: 'pattern',
|
|
98
|
+
pattern: 'solid',
|
|
99
|
+
fgColor: { argb: config.headerBackgroundColor.replace('#', '') },
|
|
100
|
+
bgColor: { argb: config.headerBackgroundColor.replace('#', '') }
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
if (config.headerFontColor) {
|
|
104
|
+
cell.font = {
|
|
105
|
+
color: { argb: config.headerFontColor.replace('#', '') }
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
tab.json.forEach(item => {
|
|
110
|
+
const data = [];
|
|
111
|
+
Object.values(item).forEach(value => data.push(value));
|
|
112
|
+
worksheet.addRow(data);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
workbook.xlsx.writeBuffer().then((data) => {
|
|
116
|
+
const blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
|
117
|
+
fs.saveAs(blob, config.filename + '.xlsx');
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
KoalaXlsxService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KoalaXlsxService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
122
|
+
KoalaXlsxService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KoalaXlsxService, providedIn: "any" });
|
|
123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KoalaXlsxService, decorators: [{
|
|
124
|
+
type: Injectable,
|
|
125
|
+
args: [{ providedIn: "any" }]
|
|
126
|
+
}] });
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEueGxzeC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvc2VydmljZXMveGxzeC9rb2FsYS54bHN4LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSw2QkFBNkIsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHdkMsTUFBTSxPQUFPLGdCQUFnQjtJQUVwQixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBVyxFQUFFLE1BQWdDO1FBQzFFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0IsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDVixNQUFNLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxDQUFDO2dCQUM1RyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUNMLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQXlCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVELE1BQU0sU0FBUyxHQUFHLFFBQVEs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QUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLG1FQUFtRSxFQUFDLENBQUMsQ0FBQztZQUMzRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NkdBdklVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBREosS0FBSzsyRkFDakIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEV4Y2VsIGZyb20gXCJleGNlbGpzL2Rpc3QvZXhjZWxqcy5taW4uanNcIjtcbmltcG9ydCAqIGFzIEV4Y2VsUHJvcGVyIGZyb20gXCJleGNlbGpzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmaWxlLXNhdmVyJztcblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBLb2FsYVhsc3hDb25maWdJbnRlcmZhY2UgfSBmcm9tIFwiLi9rb2FsYS54bHN4LWNvbmZpZy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IGtvYWxhIH0gZnJvbSBcIkBrb2FsYXJ4L3V0aWxzXCI7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiBcImFueVwifSlcbmV4cG9ydCBjbGFzcyBLb2FsYVhsc3hTZXJ2aWNlIHtcblxuICBwdWJsaWMgYXN5bmMgY29udmVydEpzb25Ub1hsc3goanNvbjogYW55W10sIGNvbmZpZzogS29hbGFYbHN4Q29uZmlnSW50ZXJmYWNlKSB7XG4gICAgY29uc3QgdGl0bGUgPSBjb25maWcudGl0bGU7XG4gICAgY29uc3QgaGVhZGVyID0gW107XG5cbiAgICBPYmplY3Qua2V5cyhqc29uWzBdKS5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgaGVhZGVyLnB1c2goKFxuICAgICAgICBjb25maWcubm9ybWFsaXplSGVhZGVyID09PSB0cnVlIHx8IGNvbmZpZy5ub3JtYWxpemVIZWFkZXIgPT09IG51bGwgfHwgY29uZmlnLm5vcm1hbGl6ZUhlYWRlciA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAga29hbGEobmFtZSkuc3RyaW5nKCkubm9ybWFsaXplKCkuZ2V0VmFsdWUoKS50b1VwcGVyQ2FzZSgpIDpcbiAgICAgICAgbmFtZVxuICAgICAgKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB3b3JrYm9vazogRXhjZWxQcm9wZXIuV29ya2Jvb2sgPSBuZXcgRXhjZWwuV29ya2Jvb2soKTtcbiAgICBjb25zdCB3b3Jrc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoY29uZmlnLnNoZWV0TmFtZSk7XG4gICAgaWYgKGNvbmZpZy5wYXNzd29yZCkge1xuICAgICAgYXdhaXQgd29ya3NoZWV0LnByb3RlY3QoY29uZmlnLnBhc3N3b3JkLCB7XG4gICAgICAgIHNlbGVjdExvY2tlZENlbGxzOiBmYWxzZSxcbiAgICAgICAgc2VsZWN0VW5sb2NrZWRDZWxsczogZmFsc2UsXG4gICAgICAgIHNjZW5hcmlvczogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb25maWcudGl0bGUpIHtcbiAgICAgIGNvbnN0IHRpdGxlUm93ID0gd29ya3NoZWV0LmFkZFJvdyhbdGl0bGVdKTtcbiAgICAgIHRpdGxlUm93LmFsaWdubWVudCA9IHtob3Jpem9udGFsOiAnY2VudGVyJ307XG4gICAgICBpZiAoY29uZmlnLnRpdGxlRm9udENvbG9yKSB7XG4gICAgICAgIHRpdGxlUm93LmZvbnQgPSB7Ym9sZDogdHJ1ZSwgY29sb3I6IHthcmdiOiBjb25maWcudGl0bGVGb250Q29sb3IucmVwbGFjZSgnIycsICcnKX19O1xuICAgICAgfVxuICAgICAgaWYgKGNvbmZpZy50aXRsZUJhY2tncm91bmRDb2xvcikge1xuICAgICAgICB0aXRsZVJvdy5maWxsID0ge1xuICAgICAgICAgIHR5cGU6ICdwYXR0ZXJuJyxcbiAgICAgICAgICBwYXR0ZXJuOiAnc29saWQnLFxuICAgICAgICAgIGZnQ29sb3I6IHthcmdiOiBjb25maWcudGl0bGVCYWNrZ3JvdW5kQ29sb3IucmVwbGFjZSgnIycsICcnKX0sXG4gICAgICAgICAgYmdDb2xvcjoge2FyZ2I6IGNvbmZpZy50aXRsZUJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgd29ya3NoZWV0Lm1lcmdlQ2VsbHMoYEExOiR7d29ya3NoZWV0LmdldENlbGwoMSwgT2JqZWN0LmtleXMoanNvblswXSkubGVuZ3RoKS5hZGRyZXNzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGhlYWRlclJvdyA9IHdvcmtzaGVldC5hZGRSb3coaGVhZGVyKTtcbiAgICBoZWFkZXJSb3cuZWFjaENlbGwoKGNlbGwsIG51bWJlcikgPT4ge1xuICAgICAgaWYgKGNvbmZpZy5oZWFkZXJCYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgICAgY2VsbC5maWxsID0ge1xuICAgICAgICAgIHR5cGU6ICdwYXR0ZXJuJyxcbiAgICAgICAgICBwYXR0ZXJuOiAnc29saWQnLFxuICAgICAgICAgIGZnQ29sb3I6IHthcmdiOiBjb25maWcuaGVhZGVyQmFja2dyb3VuZENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9LFxuICAgICAgICAgIGJnQ29sb3I6IHthcmdiOiBjb25maWcuaGVhZGVyQmFja2dyb3VuZENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLmhlYWRlckZvbnRDb2xvcikge1xuICAgICAgICBjZWxsLmZvbnQgPSB7XG4gICAgICAgICAgY29sb3I6IHthcmdiOiBjb25maWcuaGVhZGVyRm9udENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBqc29uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gW107XG4gICAgICBPYmplY3QudmFsdWVzKGl0ZW0pLmZvckVhY2godmFsdWUgPT4gZGF0YS5wdXNoKHZhbHVlKSk7XG4gICAgICB3b3Jrc2hlZXQuYWRkUm93KGRhdGEpO1xuICAgIH0pO1xuXG4gICAgd29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHt0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnfSk7XG4gICAgICBmcy5zYXZlQXMoYmxvYiwgY29uZmlnLmZpbGVuYW1lICsgJy54bHN4Jyk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY29udmVydEpzb25Ub1hsc3hXaXRoVGFicyh0YWJzOiB7XG4gICAgdGl0bGVOYW1lPzogc3RyaW5nO1xuICAgIHNoZWV0TmFtZT86IHN0cmluZztcbiAgICBqc29uOiBhbnlbXVxuICB9W10sIGNvbmZpZzogS29hbGFYbHN4Q29uZmlnSW50ZXJmYWNlKSB7XG4gICAgY29uc3QgaGVhZGVyID0gW107XG4gICAgY29uc3Qgd29ya2Jvb2s6IEV4Y2VsUHJvcGVyLldvcmtib29rID0gbmV3IEV4Y2VsLldvcmtib29rKCk7XG5cbiAgICB0YWJzLmZvckVhY2godGFiID0+IHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGFiPy50aXRsZU5hbWUgPz8gY29uZmlnLnRpdGxlO1xuICAgICAgT2JqZWN0LmtleXModGFiLmpzb25bMF0pLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICAgIGhlYWRlci5wdXNoKChcbiAgICAgICAgICBjb25maWcubm9ybWFsaXplSGVhZGVyID09PSB0cnVlIHx8IGNvbmZpZy5ub3JtYWxpemVIZWFkZXIgPT09IG51bGwgfHwgY29uZmlnLm5vcm1hbGl6ZUhlYWRlciA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAgICAgIGtvYWxhKG5hbWUpLnN0cmluZygpLm5vcm1hbGl6ZSgpLmdldFZhbHVlKCkudG9VcHBlckNhc2UoKSA6XG4gICAgICAgICAgICBuYW1lXG4gICAgICAgICkpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHdvcmtzaGVldCA9IHdvcmtib29rLmFkZFdvcmtzaGVldCh0YWI/LnNoZWV0TmFtZSA/PyBjb25maWcuc2hlZXROYW1lKTtcblxuICAgICAgaWYgKGNvbmZpZy50aXRsZSkge1xuICAgICAgICBjb25zdCB0aXRsZVJvdyA9IHdvcmtzaGVldC5hZGRSb3coW3RpdGxlXSk7XG4gICAgICAgIHRpdGxlUm93LmFsaWdubWVudCA9IHtob3Jpem9udGFsOiAnY2VudGVyJ307XG4gICAgICAgIGlmIChjb25maWcudGl0bGVGb250Q29sb3IpIHtcbiAgICAgICAgICB0aXRsZVJvdy5mb250ID0ge2JvbGQ6IHRydWUsIGNvbG9yOiB7YXJnYjogY29uZmlnLnRpdGxlRm9udENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLnRpdGxlQmFja2dyb3VuZENvbG9yKSB7XG4gICAgICAgICAgdGl0bGVSb3cuZmlsbCA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdwYXR0ZXJuJyxcbiAgICAgICAgICAgIHBhdHRlcm46ICdzb2xpZCcsXG4gICAgICAgICAgICBmZ0NvbG9yOiB7YXJnYjogY29uZmlnLnRpdGxlQmFja2dyb3VuZENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9LFxuICAgICAgICAgICAgYmdDb2xvcjoge2FyZ2I6IGNvbmZpZy50aXRsZUJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgd29ya3NoZWV0Lm1lcmdlQ2VsbHMoYEExOiR7d29ya3NoZWV0LmdldENlbGwoMSwgT2JqZWN0LmtleXModGFiLmpzb25bMF0pLmxlbmd0aCkuYWRkcmVzc31gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGVhZGVyUm93ID0gd29ya3NoZWV0LmFkZFJvdyhoZWFkZXIpO1xuICAgICAgaGVhZGVyUm93LmVhY2hDZWxsKChjZWxsLCBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZy5oZWFkZXJCYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgICAgICBjZWxsLmZpbGwgPSB7XG4gICAgICAgICAgICB0eXBlOiAncGF0dGVybicsXG4gICAgICAgICAgICBwYXR0ZXJuOiAnc29saWQnLFxuICAgICAgICAgICAgZmdDb2xvcjoge2FyZ2I6IGNvbmZpZy5oZWFkZXJCYWNrZ3JvdW5kQ29sb3IucmVwbGFjZSgnIycsICcnKX0sXG4gICAgICAgICAgICBiZ0NvbG9yOiB7YXJnYjogY29uZmlnLmhlYWRlckJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5oZWFkZXJGb250Q29sb3IpIHtcbiAgICAgICAgICBjZWxsLmZvbnQgPSB7XG4gICAgICAgICAgICBjb2xvcjoge2FyZ2I6IGNvbmZpZy5oZWFkZXJGb250Q29sb3IucmVwbGFjZSgnIycsICcnKX1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGFiLmpzb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IFtdO1xuICAgICAgICBPYmplY3QudmFsdWVzKGl0ZW0pLmZvckVhY2godmFsdWUgPT4gZGF0YS5wdXNoKHZhbHVlKSk7XG4gICAgICAgIHdvcmtzaGVldC5hZGRSb3coZGF0YSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHdvcmtib29rLnhsc3gud3JpdGVCdWZmZXIoKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7dHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0J30pO1xuICAgICAgZnMuc2F2ZUFzKGJsb2IsIGNvbmZpZy5maWxlbmFtZSArICcueGxzeCcpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|