@koalarx/ui 12.7.18 → 13.0.2
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/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/alert/{esm2015/koalarx-ui-alert.js → esm2020/koalarx-ui-alert.mjs} +0 -0
- package/alert/esm2020/lib/dialog-alert.component.mjs +48 -0
- package/alert/{esm2015/lib/koala.alert-config.interface.js → esm2020/lib/koala.alert-config.interface.mjs} +0 -0
- package/alert/{esm2015/lib/koala.alert.enum.js → esm2020/lib/koala.alert.enum.mjs} +0 -0
- package/alert/esm2020/lib/koala.alert.module.mjs +48 -0
- package/alert/esm2020/lib/koala.alert.service.mjs +19 -0
- package/alert/{esm2015/lib/koala.request-code-to-alert-enum.translate.js → esm2020/lib/koala.request-code-to-alert-enum.translate.mjs} +0 -0
- package/alert/fesm2015/koalarx-ui-alert.mjs +141 -0
- package/alert/fesm2015/koalarx-ui-alert.mjs.map +1 -0
- package/alert/fesm2020/koalarx-ui-alert.mjs +139 -0
- package/alert/fesm2020/koalarx-ui-alert.mjs.map +1 -0
- package/alert/koalarx-ui-alert.d.ts +1 -0
- package/alert/lib/dialog-alert.component.d.ts +3 -0
- package/alert/lib/koala.alert.module.d.ts +10 -0
- package/alert/lib/koala.alert.service.d.ts +3 -0
- package/alert/package.json +18 -6
- package/button/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/button/{esm2015/koalarx-ui-button.js → esm2020/koalarx-ui-button.mjs} +0 -0
- package/button/esm2020/lib/button.component.mjs +44 -0
- package/button/esm2020/lib/koala.button.module.mjs +42 -0
- package/button/fesm2015/koalarx-ui-button.mjs +90 -0
- package/button/fesm2015/koalarx-ui-button.mjs.map +1 -0
- package/button/fesm2020/koalarx-ui-button.mjs +90 -0
- package/button/fesm2020/koalarx-ui-button.mjs.map +1 -0
- package/button/koalarx-ui-button.d.ts +1 -0
- package/button/lib/button.component.d.ts +6 -1
- package/button/lib/koala.button.module.d.ts +10 -0
- package/button/package.json +18 -6
- package/common/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/common/{esm2015/koalarx-ui-common.js → esm2020/koalarx-ui-common.mjs} +0 -0
- package/common/{esm2015/lib/mask-options.js → esm2020/lib/mask-options.mjs} +0 -0
- package/common/esm2020/lib/services/csv/koala.csv.service.mjs +36 -0
- package/common/{esm2015/lib/services/xlsx/koala.xlsx-config.interface.js → esm2020/lib/services/xlsx/koala.xlsx-config.interface.mjs} +0 -0
- package/common/esm2020/lib/services/xlsx/koala.xlsx.service.mjs +73 -0
- package/common/fesm2015/{koalarx-ui-common.js → koalarx-ui-common.mjs} +14 -14
- package/common/fesm2015/koalarx-ui-common.mjs.map +1 -0
- package/common/fesm2020/koalarx-ui-common.mjs +118 -0
- package/common/fesm2020/koalarx-ui-common.mjs.map +1 -0
- package/common/koalarx-ui-common.d.ts +1 -0
- package/common/lib/services/csv/koala.csv.service.d.ts +3 -0
- package/common/lib/services/xlsx/koala.xlsx.service.d.ts +3 -0
- package/common/package.json +18 -6
- package/core/esm2020/index.mjs +35 -0
- package/core/esm2020/koalarx-ui-core.mjs +5 -0
- package/core/{esm2015/lib/environments/koalaEnvironment.js → esm2020/lib/environments/koalaEnvironment.mjs} +0 -0
- package/core/esm2020/lib/loader/loader-bar-page.component.mjs +24 -0
- package/core/{esm2015/lib/loader/loader-bar-page.interface.js → esm2020/lib/loader/loader-bar-page.interface.mjs} +0 -0
- package/core/{esm2015/lib/loader/loader-config.interface.js → esm2020/lib/loader/loader-config.interface.mjs} +0 -0
- package/core/esm2020/lib/ngx-koala.module.mjs +49 -0
- package/core/{esm2015/lib/page/koala-language.helper.js → esm2020/lib/page/koala-language.helper.mjs} +0 -0
- package/core/{esm2015/lib/page/koala-page-pallet-colors.interface.js → esm2020/lib/page/koala-page-pallet-colors.interface.mjs} +0 -0
- package/core/esm2020/lib/page/koala.page.module.mjs +78 -0
- package/core/{esm2015/lib/page/koala.user-menu-options.interface.js → esm2020/lib/page/koala.user-menu-options.interface.mjs} +0 -0
- package/core/{esm2015/lib/page/notifications/koala.notification.interface.js → esm2020/lib/page/notifications/koala.notification.interface.mjs} +0 -0
- package/core/esm2020/lib/page/notifications/notification.component.mjs +47 -0
- package/core/esm2020/lib/page/page.component.mjs +404 -0
- package/core/esm2020/lib/router/koala.parameter-hash-location-stategy.mjs +18 -0
- package/core/esm2020/lib/services/api-requester/factory/koala.response.factory.mjs +44 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.client.error.js → esm2020/lib/services/api-requester/helpers/error/koala.client.error.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.errors.helper.js → esm2020/lib/services/api-requester/helpers/error/koala.errors.helper.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.not-found.error.js → esm2020/lib/services/api-requester/helpers/error/koala.not-found.error.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.success.error.js → esm2020/lib/services/api-requester/helpers/error/koala.success.error.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.unhautorized.error.js → esm2020/lib/services/api-requester/helpers/error/koala.unhautorized.error.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/service/koala.request-header.helper.js → esm2020/lib/services/api-requester/helpers/service/koala.request-header.helper.mjs} +0 -0
- package/core/esm2020/lib/services/api-requester/koala.api-requester.base.mjs +63 -0
- package/core/esm2020/lib/services/api-requester/koala.api-requester.service.mjs +131 -0
- package/core/esm2020/lib/services/loader/koala.loader.service.mjs +34 -0
- package/core/{esm2015/lib/services/openid/koala-oauth2-config.interface.js → esm2020/lib/services/openid/koala-oauth2-config.interface.mjs} +0 -0
- package/core/esm2020/lib/services/openid/koala.oauth.config.mjs +30 -0
- package/core/esm2020/lib/services/openid/koala.oauth2.service.mjs +194 -0
- package/core/esm2020/lib/services/request/koala.request.service.mjs +52 -0
- package/core/{esm2015/lib/services/token/koala.token.service.js → esm2020/lib/services/token/koala.token.service.mjs} +7 -6
- package/core/esm2020/lib/services/token/token.factory.mjs +27 -0
- package/core/fesm2015/{koalarx-ui-core.js → koalarx-ui-core.mjs} +249 -191
- package/core/fesm2015/koalarx-ui-core.mjs.map +1 -0
- package/core/fesm2020/koalarx-ui-core.mjs +1367 -0
- package/core/fesm2020/koalarx-ui-core.mjs.map +1 -0
- package/core/index.d.ts +1 -0
- package/core/koalarx-ui-core.d.ts +1 -2
- package/core/lib/loader/loader-bar-page.component.d.ts +5 -1
- package/core/lib/ngx-koala.module.d.ts +7 -0
- package/core/lib/page/koala.page.module.d.ts +19 -0
- package/core/lib/page/notifications/notification.component.d.ts +3 -0
- package/core/lib/page/page.component.d.ts +3 -0
- package/core/lib/router/koala.parameter-hash-location-stategy.d.ts +3 -0
- package/core/lib/services/api-requester/koala.api-requester.service.d.ts +3 -0
- package/core/lib/services/loader/koala.loader.service.d.ts +3 -0
- package/core/lib/services/openid/koala.oauth2.service.d.ts +3 -0
- package/core/lib/services/request/koala.request.service.d.ts +3 -0
- package/core/lib/services/token/koala.token.service.d.ts +3 -0
- package/core/package.json +18 -6
- package/dialog/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/dialog/{esm2015/koalarx-ui-dialog.js → esm2020/koalarx-ui-dialog.mjs} +0 -0
- package/dialog/esm2020/lib/dialog.component.mjs +25 -0
- package/dialog/{esm2015/lib/koala.dialog-template.interface.js → esm2020/lib/koala.dialog-template.interface.mjs} +0 -0
- package/dialog/esm2020/lib/koala.dialog.module.mjs +38 -0
- package/dialog/esm2020/lib/koala.dialog.service.mjs +57 -0
- package/dialog/fesm2015/koalarx-ui-dialog.mjs +121 -0
- package/dialog/fesm2015/koalarx-ui-dialog.mjs.map +1 -0
- package/dialog/fesm2020/koalarx-ui-dialog.mjs +121 -0
- package/dialog/fesm2020/koalarx-ui-dialog.mjs.map +1 -0
- package/dialog/koalarx-ui-dialog.d.ts +1 -0
- package/dialog/lib/dialog.component.d.ts +3 -0
- package/dialog/lib/koala.dialog.module.d.ts +9 -0
- package/dialog/lib/koala.dialog.service.d.ts +3 -0
- package/dialog/package.json +18 -6
- package/dynamic-component/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/dynamic-component/{esm2015/koalarx-ui-dynamic-component.js → esm2020/koalarx-ui-dynamic-component.mjs} +0 -0
- package/dynamic-component/{esm2015/lib/koala-dynamic-component.component.js → esm2020/lib/koala-dynamic-component.component.mjs} +0 -0
- package/dynamic-component/esm2020/lib/koala-dynamic-component.directive.mjs +16 -0
- package/dynamic-component/esm2020/lib/koala-dynamic-component.factory.mjs +41 -0
- package/dynamic-component/{esm2015/lib/koala-dynamic-component.js → esm2020/lib/koala-dynamic-component.mjs} +0 -0
- package/dynamic-component/esm2020/lib/koala-dynamic-component.module.mjs +23 -0
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.mjs +87 -0
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.mjs.map +1 -0
- package/dynamic-component/fesm2020/koalarx-ui-dynamic-component.mjs +86 -0
- package/dynamic-component/fesm2020/koalarx-ui-dynamic-component.mjs.map +1 -0
- package/dynamic-component/koalarx-ui-dynamic-component.d.ts +1 -0
- package/dynamic-component/lib/koala-dynamic-component.directive.d.ts +3 -0
- package/dynamic-component/lib/koala-dynamic-component.factory.d.ts +3 -0
- package/dynamic-component/lib/koala-dynamic-component.module.d.ts +6 -0
- package/dynamic-component/package.json +18 -6
- package/file-button/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/file-button/{esm2015/koalarx-ui-file-button.js → esm2020/koalarx-ui-file-button.mjs} +0 -0
- package/file-button/esm2020/lib/file-button.component.mjs +125 -0
- package/file-button/esm2020/lib/koala.btn-file.service.mjs +25 -0
- package/file-button/esm2020/lib/koala.file-button.module.mjs +38 -0
- package/file-button/{esm2015/lib/koala.file.interface.js → esm2020/lib/koala.file.interface.mjs} +0 -0
- package/file-button/fesm2015/koalarx-ui-file-button.mjs +199 -0
- package/file-button/fesm2015/koalarx-ui-file-button.mjs.map +1 -0
- package/file-button/fesm2020/koalarx-ui-file-button.mjs +189 -0
- package/file-button/fesm2020/koalarx-ui-file-button.mjs.map +1 -0
- package/file-button/koalarx-ui-file-button.d.ts +1 -0
- package/file-button/lib/file-button.component.d.ts +4 -1
- package/file-button/lib/koala.btn-file.service.d.ts +3 -0
- package/file-button/lib/koala.file-button.module.d.ts +9 -0
- package/file-button/package.json +18 -6
- package/folder-page/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/folder-page/{esm2015/koalarx-ui-folder-page.js → esm2020/koalarx-ui-folder-page.mjs} +0 -0
- package/folder-page/esm2020/lib/folder.component.mjs +70 -0
- package/folder-page/{esm2015/lib/koala-navigate-history.interface.js → esm2020/lib/koala-navigate-history.interface.mjs} +0 -0
- package/folder-page/esm2020/lib/koala.folder-page.module.mjs +42 -0
- package/folder-page/fesm2015/koalarx-ui-folder-page.mjs +117 -0
- package/folder-page/fesm2015/koalarx-ui-folder-page.mjs.map +1 -0
- package/folder-page/fesm2020/koalarx-ui-folder-page.mjs +116 -0
- package/folder-page/fesm2020/koalarx-ui-folder-page.mjs.map +1 -0
- package/folder-page/koalarx-ui-folder-page.d.ts +1 -0
- package/folder-page/lib/folder.component.d.ts +6 -2
- package/folder-page/lib/koala.folder-page.module.d.ts +10 -0
- package/folder-page/package.json +18 -6
- package/form/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/form/{esm2015/koalarx-ui-form.js → esm2020/koalarx-ui-form.mjs} +0 -0
- package/form/esm2020/lib/btn-submit/btn-submit.component.mjs +49 -0
- package/form/esm2020/lib/directives/koala-autofocus.directive.mjs +25 -0
- package/form/esm2020/lib/dynamic-form/builder/dynamic-form.builder.mjs +138 -0
- package/form/{esm2015/lib/dynamic-form/builder/fields/autocomplete.builder.js → esm2020/lib/dynamic-form/builder/fields/autocomplete.builder.mjs} +0 -0
- package/form/esm2020/lib/dynamic-form/builder/fields/field.base.mjs +148 -0
- package/form/{esm2015/lib/dynamic-form/builder/fields/field.builder.js → esm2020/lib/dynamic-form/builder/fields/field.builder.mjs} +0 -0
- package/form/esm2020/lib/dynamic-form/builder/fields/more-items.builder.mjs +57 -0
- package/form/esm2020/lib/dynamic-form/dynamic-form.component.mjs +581 -0
- package/form/{esm2015/lib/dynamic-form/enums/dynamic-form-type-field.enum.js → esm2020/lib/dynamic-form/enums/dynamic-form-type-field.enum.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala-custom-validator-fn.interface.js → esm2020/lib/dynamic-form/interfaces/koala-custom-validator-fn.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-config.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-config.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-field.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-field.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-set-value.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-set-value.interface.mjs} +0 -0
- package/form/esm2020/lib/dynamic-form/koala.dynamic-form.service.mjs +199 -0
- package/form/{esm2015/lib/dynamic-form/validators/autocomplete-selected.validator.js → esm2020/lib/dynamic-form/validators/autocomplete-selected.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/cnpj.validator.js → esm2020/lib/dynamic-form/validators/cnpj.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/cpf.validator.js → esm2020/lib/dynamic-form/validators/cpf.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/date-max.validator.js → esm2020/lib/dynamic-form/validators/date-max.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/date-min.validator.js → esm2020/lib/dynamic-form/validators/date-min.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/koala-dynamic-form-validator-result.helper.js → esm2020/lib/dynamic-form/validators/koala-dynamic-form-validator-result.helper.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/validation.helper.js → esm2020/lib/dynamic-form/validators/validation.helper.mjs} +0 -0
- package/form/{esm2015/lib/form.abstract.js → esm2020/lib/form.abstract.mjs} +0 -0
- package/form/esm2020/lib/koala.form.module.mjs +134 -0
- package/form/{esm2015/lib/show-invalid-fields/show-invalid-fields.js → esm2020/lib/show-invalid-fields/show-invalid-fields.mjs} +0 -0
- package/form/fesm2015/koalarx-ui-form.mjs +1575 -0
- package/form/fesm2015/koalarx-ui-form.mjs.map +1 -0
- package/form/fesm2020/koalarx-ui-form.mjs +1557 -0
- package/form/fesm2020/koalarx-ui-form.mjs.map +1 -0
- package/form/koalarx-ui-form.d.ts +1 -0
- package/form/lib/btn-submit/btn-submit.component.d.ts +3 -0
- package/form/lib/directives/koala-autofocus.directive.d.ts +3 -0
- package/form/lib/dynamic-form/builder/fields/field.base.d.ts +1 -1
- package/form/lib/dynamic-form/dynamic-form.component.d.ts +8 -1
- package/form/lib/dynamic-form/koala.dynamic-form.service.d.ts +3 -0
- package/form/lib/koala.form.module.d.ts +23 -0
- package/form/package.json +18 -6
- package/icon/{esm2015/index.js → esm2020/index.mjs} +2 -1
- package/icon/{esm2015/koalarx-ui-icon.js → esm2020/koalarx-ui-icon.mjs} +0 -0
- package/icon/esm2020/lib/icon.component.mjs +46 -0
- package/icon/esm2020/lib/koala.icon.module.mjs +26 -0
- package/icon/esm2020/lib/koala.icon.type.mjs +2 -0
- package/icon/fesm2015/koalarx-ui-icon.mjs +77 -0
- package/icon/{esm2015/lib/icon.component.js → fesm2015/koalarx-ui-icon.mjs.map} +1 -45
- package/icon/fesm2020/koalarx-ui-icon.mjs +76 -0
- package/icon/{fesm2015/koalarx-ui-icon.js → fesm2020/koalarx-ui-icon.mjs.map} +1 -69
- package/icon/index.d.ts +1 -0
- package/icon/koalarx-ui-icon.d.ts +1 -0
- package/icon/lib/icon.component.d.ts +4 -1
- package/icon/lib/koala.icon.module.d.ts +6 -0
- package/icon/lib/koala.icon.type.d.ts +1 -0
- package/icon/package.json +18 -6
- package/icons-animated/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/icons-animated/esm2020/koalarx-ui-icons-animated.mjs +5 -0
- package/icons-animated/esm2020/lib/icons/downloading/downloading-icon-animated.component.mjs +23 -0
- package/icons-animated/esm2020/lib/icons/loading/loading-icon-animated.component.mjs +23 -0
- package/icons-animated/esm2020/lib/icons-animated.component.mjs +20 -0
- package/icons-animated/esm2020/lib/icons-animated.service.mjs +32 -0
- package/icons-animated/esm2020/lib/koala-icons-animated.module.mjs +32 -0
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.mjs +122 -0
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.mjs.map +1 -0
- package/icons-animated/fesm2020/koalarx-ui-icons-animated.mjs +120 -0
- package/icons-animated/fesm2020/koalarx-ui-icons-animated.mjs.map +1 -0
- package/icons-animated/koalarx-ui-icons-animated.d.ts +1 -1
- package/icons-animated/lib/icons/downloading/downloading-icon-animated.component.d.ts +5 -2
- package/icons-animated/lib/icons/loading/loading-icon-animated.component.d.ts +5 -2
- package/icons-animated/lib/icons-animated.component.d.ts +3 -0
- package/icons-animated/lib/icons-animated.service.d.ts +3 -0
- package/icons-animated/lib/koala-icons-animated.module.d.ts +8 -0
- package/icons-animated/package.json +18 -6
- package/list/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/list/{esm2015/koalarx-ui-list.js → esm2020/koalarx-ui-list.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-btn-collapse-sub-list-config.interface.js → esm2020/lib/koala-list-btn-collapse-sub-list-config.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-filter.interface.js → esm2020/lib/koala-list-filter.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-form-filter.interface.js → esm2020/lib/koala-list-form-filter.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-item-menu-option.interface.js → esm2020/lib/koala-list-item-menu-option.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-item.interface.js → esm2020/lib/koala-list-item.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala.list-config.interface.js → esm2020/lib/koala.list-config.interface.mjs} +0 -0
- package/list/esm2020/lib/koala.list.module.mjs +70 -0
- package/list/esm2020/lib/koala.list.service.mjs +15 -0
- package/list/esm2020/lib/list-builder/list.builder.mjs +97 -0
- package/list/esm2020/lib/list.abstract.mjs +157 -0
- package/list/esm2020/lib/list.component.mjs +171 -0
- package/list/esm2020/lib/providers/pagination/pagination.provider.mjs +32 -0
- package/list/fesm2015/koalarx-ui-list.mjs +559 -0
- package/list/fesm2015/koalarx-ui-list.mjs.map +1 -0
- package/list/fesm2020/koalarx-ui-list.mjs +529 -0
- package/list/fesm2020/koalarx-ui-list.mjs.map +1 -0
- package/list/koalarx-ui-list.d.ts +1 -0
- package/list/lib/koala.list.module.d.ts +15 -0
- package/list/lib/koala.list.service.d.ts +3 -0
- package/list/lib/list.component.d.ts +3 -0
- package/list/lib/providers/pagination/pagination.provider.d.ts +3 -0
- package/list/package.json +18 -6
- package/menu/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/menu/{esm2015/koalarx-ui-menu.js → esm2020/koalarx-ui-menu.mjs} +0 -0
- package/menu/{esm2015/lib/koala.menu-module.interface.js → esm2020/lib/koala.menu-module.interface.mjs} +0 -0
- package/menu/{esm2015/lib/koala.menu-tool.interface.js → esm2020/lib/koala.menu-tool.interface.mjs} +0 -0
- package/menu/esm2020/lib/koala.menu.module.mjs +38 -0
- package/menu/esm2020/lib/koala.menu.service.mjs +24 -0
- package/menu/esm2020/lib/menu.component.mjs +100 -0
- package/menu/fesm2015/koalarx-ui-menu.mjs +167 -0
- package/menu/fesm2015/koalarx-ui-menu.mjs.map +1 -0
- package/menu/fesm2020/koalarx-ui-menu.mjs +162 -0
- package/menu/fesm2020/koalarx-ui-menu.mjs.map +1 -0
- package/menu/koalarx-ui-menu.d.ts +1 -0
- package/menu/lib/koala.menu.module.d.ts +9 -0
- package/menu/lib/koala.menu.service.d.ts +3 -0
- package/menu/lib/menu.component.d.ts +6 -0
- package/menu/package.json +18 -6
- package/package.json +9 -9
- package/question/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/question/{esm2015/koalarx-ui-question.js → esm2020/koalarx-ui-question.mjs} +0 -0
- package/question/esm2020/lib/dialog-question.component.mjs +25 -0
- package/question/{esm2015/lib/koala-question-config.interface.js → esm2020/lib/koala-question-config.interface.mjs} +0 -0
- package/question/esm2020/lib/koala.question.module.mjs +42 -0
- package/question/esm2020/lib/koala.question.service.mjs +26 -0
- package/question/fesm2015/koalarx-ui-question.mjs +95 -0
- package/question/fesm2015/koalarx-ui-question.mjs.map +1 -0
- package/question/fesm2020/koalarx-ui-question.mjs +93 -0
- package/question/fesm2020/koalarx-ui-question.mjs.map +1 -0
- package/question/koalarx-ui-question.d.ts +1 -0
- package/question/lib/dialog-question.component.d.ts +3 -0
- package/question/lib/koala.question.module.d.ts +10 -0
- package/question/lib/koala.question.service.d.ts +3 -0
- package/question/package.json +18 -6
- package/snackbar/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/snackbar/{esm2015/koalarx-ui-snackbar.js → esm2020/koalarx-ui-snackbar.mjs} +0 -0
- package/snackbar/esm2020/lib/koala.snackbar.component.mjs +22 -0
- package/snackbar/{esm2015/lib/koala.snackbar.interface.js → esm2020/lib/koala.snackbar.interface.mjs} +0 -0
- package/snackbar/esm2020/lib/koala.snackbar.module.mjs +38 -0
- package/snackbar/esm2020/lib/koala.snackbar.service.mjs +35 -0
- package/snackbar/fesm2015/koalarx-ui-snackbar.mjs +95 -0
- package/snackbar/fesm2015/koalarx-ui-snackbar.mjs.map +1 -0
- package/snackbar/fesm2020/koalarx-ui-snackbar.mjs +93 -0
- package/snackbar/fesm2020/koalarx-ui-snackbar.mjs.map +1 -0
- package/snackbar/koalarx-ui-snackbar.d.ts +1 -0
- package/snackbar/lib/koala.snackbar.component.d.ts +3 -0
- package/snackbar/lib/koala.snackbar.module.d.ts +8 -0
- package/snackbar/lib/koala.snackbar.service.d.ts +3 -0
- package/snackbar/package.json +18 -6
- package/alert/bundles/koalarx-ui-alert.umd.js +0 -153
- package/alert/bundles/koalarx-ui-alert.umd.js.map +0 -1
- package/alert/esm2015/lib/dialog-alert.component.js +0 -43
- package/alert/esm2015/lib/koala.alert.module.js +0 -31
- package/alert/esm2015/lib/koala.alert.service.js +0 -21
- package/alert/fesm2015/koalarx-ui-alert.js +0 -121
- package/alert/fesm2015/koalarx-ui-alert.js.map +0 -1
- package/alert/koalarx-ui-alert.metadata.json +0 -1
- package/button/bundles/koalarx-ui-button.umd.js +0 -71
- package/button/bundles/koalarx-ui-button.umd.js.map +0 -1
- package/button/esm2015/lib/button.component.js +0 -31
- package/button/esm2015/lib/koala.button.module.js +0 -27
- package/button/fesm2015/koalarx-ui-button.js +0 -63
- package/button/fesm2015/koalarx-ui-button.js.map +0 -1
- package/button/koalarx-ui-button.metadata.json +0 -1
- package/common/bundles/koalarx-ui-common.umd.js +0 -481
- package/common/bundles/koalarx-ui-common.umd.js.map +0 -1
- package/common/esm2015/lib/services/csv/koala.csv.service.js +0 -38
- package/common/esm2015/lib/services/xlsx/koala.xlsx.service.js +0 -74
- package/common/fesm2015/koalarx-ui-common.js.map +0 -1
- package/common/koalarx-ui-common.metadata.json +0 -1
- package/core/bundles/koalarx-ui-core.umd.js +0 -1716
- package/core/bundles/koalarx-ui-core.umd.js.map +0 -1
- package/core/esm2015/index.js +0 -34
- package/core/esm2015/koalarx-ui-core.js +0 -7
- package/core/esm2015/lib/loader/loader-bar-page.component.js +0 -22
- package/core/esm2015/lib/ngx-koala.module.js +0 -35
- package/core/esm2015/lib/page/koala.page.module.js +0 -46
- package/core/esm2015/lib/page/notifications/notification.component.js +0 -43
- package/core/esm2015/lib/page/page.component.js +0 -396
- package/core/esm2015/lib/router/koala.parameter-hash-location-stategy.js +0 -16
- package/core/esm2015/lib/services/api-requester/factory/koala.response.factory.js +0 -48
- package/core/esm2015/lib/services/api-requester/koala.api-requester.base.js +0 -70
- package/core/esm2015/lib/services/api-requester/koala.api-requester.service.js +0 -134
- package/core/esm2015/lib/services/loader/koala.loader.service.js +0 -32
- package/core/esm2015/lib/services/openid/koala.oauth.config.js +0 -33
- package/core/esm2015/lib/services/openid/koala.oauth2.service.js +0 -201
- package/core/esm2015/lib/services/request/koala.request.service.js +0 -53
- package/core/esm2015/lib/services/token/token.factory.js +0 -31
- package/core/fesm2015/koalarx-ui-core.js.map +0 -1
- package/core/koalarx-ui-core.metadata.json +0 -1
- package/dialog/bundles/koalarx-ui-dialog.umd.js +0 -139
- package/dialog/bundles/koalarx-ui-dialog.umd.js.map +0 -1
- package/dialog/esm2015/lib/dialog.component.js +0 -18
- package/dialog/esm2015/lib/koala.dialog.module.js +0 -25
- package/dialog/esm2015/lib/koala.dialog.service.js +0 -61
- package/dialog/fesm2015/koalarx-ui-dialog.js +0 -107
- package/dialog/fesm2015/koalarx-ui-dialog.js.map +0 -1
- package/dialog/koalarx-ui-dialog.metadata.json +0 -1
- package/dynamic-component/bundles/koalarx-ui-dynamic-component.umd.js +0 -95
- package/dynamic-component/bundles/koalarx-ui-dynamic-component.umd.js.map +0 -1
- package/dynamic-component/esm2015/lib/koala-dynamic-component.directive.js +0 -15
- package/dynamic-component/esm2015/lib/koala-dynamic-component.factory.js +0 -38
- package/dynamic-component/esm2015/lib/koala-dynamic-component.module.js +0 -17
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.js +0 -79
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.js.map +0 -1
- package/dynamic-component/koalarx-ui-dynamic-component.metadata.json +0 -1
- package/file-button/bundles/koalarx-ui-file-button.umd.js +0 -553
- package/file-button/bundles/koalarx-ui-file-button.umd.js.map +0 -1
- package/file-button/esm2015/lib/file-button.component.js +0 -118
- package/file-button/esm2015/lib/koala.btn-file.service.js +0 -26
- package/file-button/esm2015/lib/koala.file-button.module.js +0 -25
- package/file-button/fesm2015/koalarx-ui-file-button.js +0 -171
- package/file-button/fesm2015/koalarx-ui-file-button.js.map +0 -1
- package/file-button/koalarx-ui-file-button.metadata.json +0 -1
- package/folder-page/bundles/koalarx-ui-folder-page.umd.js +0 -97
- package/folder-page/bundles/koalarx-ui-folder-page.umd.js.map +0 -1
- package/folder-page/esm2015/lib/folder.component.js +0 -56
- package/folder-page/esm2015/lib/koala.folder-page.module.js +0 -27
- package/folder-page/fesm2015/koalarx-ui-folder-page.js +0 -88
- package/folder-page/fesm2015/koalarx-ui-folder-page.js.map +0 -1
- package/folder-page/koalarx-ui-folder-page.metadata.json +0 -1
- package/form/bundles/koalarx-ui-form.umd.js +0 -1944
- package/form/bundles/koalarx-ui-form.umd.js.map +0 -1
- package/form/esm2015/lib/btn-submit/btn-submit.component.js +0 -39
- package/form/esm2015/lib/directives/koala-autofocus.directive.js +0 -25
- package/form/esm2015/lib/dynamic-form/builder/dynamic-form.builder.js +0 -141
- package/form/esm2015/lib/dynamic-form/builder/fields/field.base.js +0 -150
- package/form/esm2015/lib/dynamic-form/builder/fields/more-items.builder.js +0 -57
- package/form/esm2015/lib/dynamic-form/dynamic-form.component.js +0 -551
- package/form/esm2015/lib/dynamic-form/koala.dynamic-form.service.js +0 -204
- package/form/esm2015/lib/koala.form.module.js +0 -69
- package/form/fesm2015/koalarx-ui-form.js +0 -1473
- package/form/fesm2015/koalarx-ui-form.js.map +0 -1
- package/form/koalarx-ui-form.metadata.json +0 -1
- package/icon/bundles/koalarx-ui-icon.umd.js +0 -76
- package/icon/bundles/koalarx-ui-icon.umd.js.map +0 -1
- package/icon/esm2015/lib/koala.icon.module.js +0 -19
- package/icon/fesm2015/koalarx-ui-icon.js.map +0 -1
- package/icon/koalarx-ui-icon.metadata.json +0 -1
- package/icons-animated/bundles/koalarx-ui-icons-animated.umd.js +0 -138
- package/icons-animated/bundles/koalarx-ui-icons-animated.umd.js.map +0 -1
- package/icons-animated/esm2015/koalarx-ui-icons-animated.js +0 -6
- package/icons-animated/esm2015/lib/icons/downloading/downloading-icon-animated.component.js +0 -28
- package/icons-animated/esm2015/lib/icons/loading/loading-icon-animated.component.js +0 -28
- package/icons-animated/esm2015/lib/icons-animated.component.js +0 -15
- package/icons-animated/esm2015/lib/icons-animated.service.js +0 -29
- package/icons-animated/esm2015/lib/koala-icons-animated.module.js +0 -23
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.js +0 -121
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.js.map +0 -1
- package/icons-animated/koalarx-ui-icons-animated.metadata.json +0 -1
- package/list/bundles/koalarx-ui-list.umd.js +0 -914
- package/list/bundles/koalarx-ui-list.umd.js.map +0 -1
- package/list/esm2015/lib/koala.list.module.js +0 -42
- package/list/esm2015/lib/koala.list.service.js +0 -13
- package/list/esm2015/lib/list-builder/list.builder.js +0 -101
- package/list/esm2015/lib/list.abstract.js +0 -174
- package/list/esm2015/lib/list.component.js +0 -166
- package/list/esm2015/lib/providers/pagination/pagination.provider.js +0 -30
- package/list/fesm2015/koalarx-ui-list.js +0 -514
- package/list/fesm2015/koalarx-ui-list.js.map +0 -1
- package/list/koalarx-ui-list.metadata.json +0 -1
- package/menu/bundles/koalarx-ui-menu.umd.js +0 -511
- package/menu/bundles/koalarx-ui-menu.umd.js.map +0 -1
- package/menu/esm2015/lib/koala.menu.module.js +0 -25
- package/menu/esm2015/lib/koala.menu.service.js +0 -22
- package/menu/esm2015/lib/menu.component.js +0 -104
- package/menu/fesm2015/koalarx-ui-menu.js +0 -153
- package/menu/fesm2015/koalarx-ui-menu.js.map +0 -1
- package/menu/koalarx-ui-menu.metadata.json +0 -1
- package/question/bundles/koalarx-ui-question.umd.js +0 -104
- package/question/bundles/koalarx-ui-question.umd.js.map +0 -1
- package/question/esm2015/lib/dialog-question.component.js +0 -20
- package/question/esm2015/lib/koala.question.module.js +0 -27
- package/question/esm2015/lib/koala.question.service.js +0 -28
- package/question/fesm2015/koalarx-ui-question.js +0 -77
- package/question/fesm2015/koalarx-ui-question.js.map +0 -1
- package/question/koalarx-ui-question.metadata.json +0 -1
- package/snackbar/bundles/koalarx-ui-snackbar.umd.js +0 -93
- package/snackbar/bundles/koalarx-ui-snackbar.umd.js.map +0 -1
- package/snackbar/esm2015/lib/koala.snackbar.component.js +0 -20
- package/snackbar/esm2015/lib/koala.snackbar.module.js +0 -26
- package/snackbar/esm2015/lib/koala.snackbar.service.js +0 -35
- package/snackbar/fesm2015/koalarx-ui-snackbar.js +0 -81
- package/snackbar/fesm2015/koalarx-ui-snackbar.js.map +0 -1
- package/snackbar/koalarx-ui-snackbar.metadata.json +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"koalarx-ui-list.mjs","sources":["../../../projects/list/src/lib/providers/pagination/pagination.provider.ts","../../../projects/list/src/lib/list-builder/list.builder.ts","../../../projects/list/src/lib/koala.list.service.ts","../../../projects/list/src/lib/list.abstract.ts","../../../projects/list/src/lib/list.component.ts","../../../projects/list/src/lib/list.component.html","../../../projects/list/src/lib/koala.list.module.ts","../../../projects/list/src/koalarx-ui-list.ts"],"sourcesContent":["import { MatPaginatorIntl } from '@angular/material/paginator';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PaginationProvider extends MatPaginatorIntl {\n constructor() {\n super();\n this.getAndInitTranslations();\n }\n\n public getAndInitTranslations() {\n this.itemsPerPageLabel = \"Itens por Página\";\n this.firstPageLabel = \"Primeira Página\";\n this.nextPageLabel = \"Próxima Página\";\n this.previousPageLabel = \"Página Anterior\";\n this.lastPageLabel = \"Última Página\";\n this.changes.next();\n }\n\n public getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 / ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} / ${length}`;\n }\n}\n","import { KoalaListConfigInterface } from \"../koala.list-config.interface\";\nimport { KoalaListItemInterface } from \"../koala-list-item.interface\";\nimport { Type } from \"@angular/core\";\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { KoalaListFilterInterface } from \"../koala-list-filter.interface\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { KoalaListFormFilterInterface } from \"../koala-list-form-filter.interface\";\nimport { KoalaListItemMenuOptionInterface } from \"../koala-list-item-menu-option.interface\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { KoalaListPageSize } from \"../list.abstract\";\nimport { first } from \"rxjs/operators\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"../koala-list-btn-collapse-sub-list-config.interface\";\n\nexport class ListBuilder<DataType> {\n private config = {} as KoalaListConfigInterface;\n\n public service(\n service: (filter: BehaviorSubject<KoalaListFormFilterInterface>) => Observable<any> | Promise<any>,\n type: 'all' | 'onDemand' = \"all\",\n resultIndexName?: string,\n qtdResultIndexName?: string\n ) {\n this.config.typeRequest = type;\n this.config.responseIndexName = resultIndexName;\n this.config.responseQtdResultIndexName = response => response[qtdResultIndexName ?? ''] ?? [];\n this.config.columnSort = this.config?.filterParams?.getValue()?.sort;\n this.config.sortDirection = this.config?.filterParams?.getValue()?.order ?? 'asc';\n\n const response = service(this.config.filterParams ?? null);\n\n if (response instanceof Promise) {\n this.config.request = new Observable<any>(observe => {\n response.then(response => observe.next(response))\n .catch(error => observe.error(error));\n }).pipe(first());\n } else {\n this.config.request = new Observable<any>(observe => {\n (service(this.config.filterParams ?? null) as Observable<any>).pipe(first()).subscribe(observe);\n }).pipe(first());\n }\n\n return this;\n }\n\n public filterConfig(config: KoalaListFilterInterface) {\n this.config.filterFormConfig = config;\n return this;\n }\n\n public defaultFilter(config: KoalaListFormFilterInterface) {\n this.config.filterParams = new BehaviorSubject<KoalaListFormFilterInterface>(config);\n return this;\n }\n\n public pageSize(size: KoalaListPageSize) {\n this.config.pageSize = size;\n return this;\n }\n\n public columns(columns: string[]) {\n this.config.columnsToShowInList = columns;\n return this;\n }\n\n public itemColumn(item: KoalaListItemInterface<DataType>) {\n (this.config.itemsList?.length > 0) ?\n this.config.itemsList.push(item) :\n this.config.itemsList = [item];\n\n return this;\n }\n\n public actionList(item: KoalaListItemMenuOptionInterface<DataType>) {\n (this.config.itemsMenuListOptions?.length ?? 0 > 0) ?\n this.config.itemsMenuListOptions?.push(item) :\n this.config.itemsMenuListOptions = [item];\n\n return this;\n }\n\n public getDataSource(fn: (dataSource: DataType[]) => void) {\n this.config.getDataSource = fn;\n return this;\n }\n\n public getSelectionList(fn: (selection: SelectionModel<DataType>) => void) {\n this.config.getSelectionList = fn;\n return this;\n }\n\n public emptyListComponent(component: Type<any>, data?: any) {\n this.config.emptyListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public errorListComponent(component: Type<any>, data?: any) {\n this.config.errorListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public disableCheckboxItemList(fn: (item: DataType) => boolean) {\n this.config.disabledCheckboxItemList = fn;\n return this;\n }\n\n public setSubList(config: (item: DataType) => KoalaListConfigInterface) {\n this.config.subListConfig = config;\n return this;\n }\n\n public defineBtnCollapseSubListConfig(config: KoalaListBtnCollapseSubListConfigInterface<DataType>) {\n this.config.btnCollapseSubListConfig = config;\n return this;\n }\n\n public hidePaginator(hide: boolean = true) {\n this.config.hidePaginator = hide;\n return this;\n }\n\n public setCustomClass(className: string) {\n this.config.customClass = className;\n return this;\n }\n\n public getConfig(): KoalaListConfigInterface {\n this.config.reload = new BehaviorSubject<boolean>(false);\n return this.config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ListBuilder } from \"./list-builder/list.builder\";\n\n@Injectable({providedIn: \"any\"})\nexport class KoalaListService {\n\n public build<DataType>() {\n return new ListBuilder<DataType>();\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { BehaviorSubject, merge, Observable, Subscription } from 'rxjs';\nimport { FormAbstract } from '@koalarx/ui/form';\nimport { FormGroup } from '@angular/forms';\nimport { debounceTime, first, map, startWith, switchMap } from 'rxjs/operators';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { KoalaListFormFilterInterface } from './koala-list-form-filter.interface';\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\n\nexport type KoalaListPageSize = 10 | 20 | 30 | 50 | 100;\n\nexport abstract class ListAbstract extends FormAbstract {\n public selection = new SelectionModel<object>(true, []);\n public limitOptions: number[] = [10, 20, 30, 50, 100];\n public showMenuList: boolean = false;\n public allSelected$ = new BehaviorSubject<boolean>(false);\n public dataSource = new MatTableDataSource<any>([]);\n public typeRequest: 'all' | 'onDemand' = 'onDemand';\n public filterParams = new BehaviorSubject<KoalaListFormFilterInterface|null>(null);\n public filterError$ = new BehaviorSubject<any>(null);\n public emptyListComponent?: KoalaDynamicComponent;\n public errorListComponent?: KoalaDynamicComponent;\n public pageSize: KoalaListPageSize;\n\n protected config?: KoalaListConfigInterface;\n protected paginator?: MatPaginator;\n protected sort?: MatSort;\n\n private subscriptionList?: Subscription;\n private subscriptionSortList?: Subscription;\n private intervalSortList: any;\n\n protected constructor(\n private requestFunction: () => Observable<any>,\n private requestResponseFunction: <T>(results: T[]) => void,\n formSearch: () => FormGroup\n ) {\n super(formSearch);\n }\n\n public selectAll() {\n this.isAllSelected() ?\n this.selection.clear() :\n this.dataSource.data.forEach(item => {\n if (\n (this.config?.disabledCheckboxItemList && !this.config.disabledCheckboxItemList(item)) ||\n !this.config?.disabledCheckboxItemList\n ) {\n this.selection.select(item);\n }\n });\n\n this.isAllSelected();\n }\n\n public defineStatusSelectAll(status: boolean) {\n this.allSelected$.next(status);\n return this.allSelected$.getValue();\n }\n\n public selectItem() {\n setTimeout(() => {\n this.showMenuList = this.selection.hasValue();\n this.isAllSelected();\n }, 50);\n }\n\n public async search(filter?: any) {\n this.loading(true);\n this.selection.clear();\n if (this.paginator) {\n this.paginator.firstPage();\n }\n this.filterParams.next({\n params: filter,\n sort: this.sort?.active ?? '',\n order: this.sort?.direction ?? 'asc',\n page: this.paginator?.pageIndex ?? 0,\n limit: this.paginator?.pageSize ?? 30\n });\n }\n\n protected onDestroy() {\n this.subscriptionSortList?.unsubscribe();\n this.subscriptionList?.unsubscribe();\n clearInterval(this.intervalSortList);\n }\n\n protected async afterViewInit() {\n let tentativas = 0;\n let stop = false;\n do {\n tentativas++;\n await delay(400);\n if (this.sort || this.emptyListComponent) {\n this.prepareSearch().then();\n if (this.emptyListComponent) stop = true;\n } else if (tentativas > 10) {\n stop = true;\n }\n } while (!this.sort && !stop);\n }\n\n private async prepareSearch() {\n this.intervalSortList = setInterval(() => {\n if (this.sort && !this.subscriptionSortList) {\n this.subscriptionSortList = this.sort.sortChange.subscribe(() => {\n const filter = this.filterParams.value ?? {} as any;\n filter.sort = this.sort?.active ?? '';\n filter.order = this.sort?.direction ?? '';\n this.filterParams.next(filter);\n });\n } else if (!this.sort && this.subscriptionSortList) {\n this.subscriptionSortList.unsubscribe();\n }\n }, 50);\n\n if (this.typeRequest === 'onDemand') {\n this.subscriptionList = merge(this.paginator?.page ?? new Observable(), this.filterParams).pipe(\n startWith({}),\n switchMap(() => new Observable(observe => {\n this.loading(true);\n this.selection.clear();\n if (this.filterParams.value) {\n this.filterParams.value.sort = this.sort?.active ?? this.config?.columnSort ?? '';\n this.filterParams.value.order = this.sort?.direction ?? this.config?.sortDirection ?? '';\n this.filterParams.value.page = this.paginator?.pageIndex ?? 0;\n this.filterParams.value.limit = this.paginator?.pageSize ?? 30;\n }\n observe.next(true);\n })),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n } else {\n if (this.paginator) this.dataSource.paginator = this.paginator;\n this.subscriptionList = this.filterParams.pipe(\n startWith({}),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n }\n\n if (this.emptyListComponent) {\n do {\n await delay(301);\n if (this.sort) {\n if (this.typeRequest === \"onDemand\") {\n this.sort.sortChange.subscribe(() => {\n if (this.paginator) this.paginator.pageIndex = 0\n });\n } else {\n this.dataSource.sort = this.sort;\n }\n }\n } while (!this.sort);\n }\n }\n\n private isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = (this.config?.disabledCheckboxItemList ?\n this.dataSource.data.filter(item => !(this.config?.disabledCheckboxItemList\n ? this.config.disabledCheckboxItemList(item)\n : '')) :\n this.dataSource.data).length;\n\n return this.defineStatusSelectAll(numSelected === numRows);\n }\n\n private runRequestFunction() {\n return new Observable<unknown[]>(observe => {\n this.requestFunction().pipe(first()).subscribe({\n next: response => observe.next(response),\n error: err => {\n if (this.errorListComponent) {\n this.filterError$.next(err);\n this.errorListComponent.data = err;\n }\n this.loading(false);\n observe.next([]);\n }\n })\n })\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ListAbstract } from './list.abstract';\nimport { KoalaListItemMenuOptionInterface } from './koala-list-item-menu-option.interface';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { KoalaListFilterInterface } from './koala-list-filter.interface';\nimport { KoalaDynamicFormService, KoalaDynamicFormConfigInterface } from '@koalarx/ui/form';\nimport { KoalaListItemInterface } from './koala-list-item.interface';\nimport { KoalaListFormFilterInterface } from \"./koala-list-form-filter.interface\";\nimport { MatSort, SortDirection } from \"@angular/material/sort\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { koala } from \"@koalarx/utils\";\nimport { DeviceDetectorService } from \"ngx-device-detector\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\nimport { MatPaginator } from \"@angular/material/paginator\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"./koala-list-btn-collapse-sub-list-config.interface\";\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\n\n@Component({\n selector: 'koala-list',\n templateUrl: 'list.component.html',\n styleUrls: ['list.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({height: '0px', minHeight: '0'})),\n state('expanded', style({height: '*'})),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class ListComponent extends ListAbstract implements OnInit, AfterViewInit, OnDestroy {\n @Input() public config?: KoalaListConfigInterface;\n\n @ViewChild(MatPaginator) protected paginator: MatPaginator;\n @ViewChild(MatSort, {static: false}) protected sort: MatSort;\n\n public customClass?: string;\n public columnsToShowInList?: string[];\n public hidePaginator?: boolean = false;\n public columnSort?: string;\n public sortDirection: SortDirection = 'asc';\n public itemsMenuListOptions?: KoalaListItemMenuOptionInterface<any>[];\n public itemsList?: KoalaListItemInterface<any>[];\n public request?: Observable<any>;\n public responseIndexName?: string;\n public responseQtdResultIndexName?: (response: any) => number;\n public responseRequest?: any;\n public typeRequest: 'all' | 'onDemand' = 'all'\n public filterFormConfig?: KoalaListFilterInterface;\n public reload?: BehaviorSubject<boolean>;\n public formFilter?: FormGroup;\n public showAdvancedFilter: boolean = false;\n public qtdListResult = 0;\n public disabledCheckboxItemList?: (item: any) => boolean;\n public expandedElement = false;\n public btnCollapseSubListConfig?: KoalaListBtnCollapseSubListConfigInterface<any>;\n public subListConfig?: (item: any) => KoalaListConfigInterface;\n\n constructor(\n private fb: FormBuilder,\n private dynamicFormService: KoalaDynamicFormService,\n private deviceService: DeviceDetectorService\n ) {\n super(\n () => this.config?.request ?? new Observable<any>(),\n (response) => {\n this.responseRequest = response;\n this.dataSource.data = this.config?.responseIndexName\n ? (this.config.responseIndexName\n ? response[this.config.responseIndexName]\n : [])\n : response;\n if (this.config?.getDataSource) this.config?.getDataSource(this.dataSource.data);\n this.qtdListResult = this.config?.responseQtdResultIndexName\n ? this.config.responseQtdResultIndexName(response) ?? 0\n : this.dataSource.data?.length ?? 0;\n },\n () => this.formFilter ?? fb.group({})\n );\n }\n\n ngOnInit() {\n this.initConfig();\n this.formFilter = this.fb.group({\n formSearch: this.filterFormConfig?.main?.form ?? [''],\n formAdvancedSearch: this.filterFormConfig?.advanced?.form ?? ['']\n });\n this.loading(true);\n if (this.filterFormConfig) {\n this.filterFormConfig?.main?.formConfig?.map(item => {\n item.class += ' padding-none w-99';\n return item;\n });\n this.filterFormConfig?.advanced?.formConfig?.map(item => {\n item.class += ' padding-none';\n return item;\n });\n if (this.filterFormConfig?.checkAndSearch) {\n this.formFilter.addControl(this.filterFormConfig.checkAndSearch.formControlName, new FormControl(this.filterFormConfig.checkAndSearch.isChecked ?? false));\n }\n }\n\n if (this.config.getSelectionList) this.config.getSelectionList(this.selection);\n\n if (this.reload) {\n this.reload.subscribe(async reload => {\n if (reload) {\n await this.filterSubmit();\n }\n });\n }\n }\n\n ngOnDestroy() {\n super.onDestroy();\n }\n\n ngAfterViewInit() {\n super.afterViewInit().then();\n }\n\n public async filterSubmit() {\n this.showAdvancedFilter = false;\n await delay(1);\n let dados = koala(\n this.filterFormConfig?.main?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.main?.form)\n : {}\n )\n .object()\n .merge(\n this.filterFormConfig?.advanced?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.advanced?.form)\n : {})\n .getValue();\n\n if (this.filterFormConfig?.checkAndSearch) {\n const controlName = this.filterFormConfig.checkAndSearch.formControlName;\n dados[controlName] = this.formFilter.get(controlName).value;\n }\n await super.search(dados);\n }\n\n public toogleFilter() {\n this.showAdvancedFilter = !this.showAdvancedFilter;\n }\n\n public haveOptionsOnItemLine(item: any) {\n return this.itemsMenuListOptions.filter(option => option.havePermission && (\n !option.showByItemList ||\n option.showByItemList(item)\n )).length > 0\n }\n\n public hasFooter() {\n return !!this.itemsList.find(item => !!item.footer);\n }\n\n private initConfig() {\n this.columnSort = this.config.columnSort ?? null;\n this.sortDirection = this.config.sortDirection ?? 'asc';\n this.itemsMenuListOptions = this.config.itemsMenuListOptions ?? [];\n this.typeRequest = this.config.typeRequest ?? 'all';\n this.qtdListResult = this.config.qtdListResult ?? 0;\n this.columnsToShowInList = this.config.columnsToShowInList;\n this.itemsList = this.config.itemsList.map(item => {\n if (!item.dblClick) {\n item.dblClick = () => {\n };\n }\n return item;\n });\n this.showAdvancedFilter = this.config.showAdvancedFilter;\n this.filterFormConfig = this.config.filterFormConfig;\n this.request = this.config.request;\n this.reload = this.config.reload;\n this.responseIndexName = this.config.responseIndexName;\n this.responseQtdResultIndexName = this.config.responseQtdResultIndexName;\n this.filterParams = this.config.filterParams ?? new BehaviorSubject<KoalaListFormFilterInterface>(null);\n this.emptyListComponent = this.config.emptyListComponent;\n this.errorListComponent = this.config.errorListComponent;\n this.pageSize = this.config.pageSize ?? 30;\n this.disabledCheckboxItemList = this.config.disabledCheckboxItemList;\n this.subListConfig = this.config.subListConfig;\n this.btnCollapseSubListConfig = this.config.btnCollapseSubListConfig;\n this.hidePaginator = this.config.hidePaginator;\n this.customClass = this.config.customClass;\n }\n}\n","<div class=\"list-container\" [ngClass]=\"customClass\">\n <div *ngIf=\"filterFormConfig\" class=\"list-filter\">\n <form (ngSubmit)=\"filterSubmit()\" [formGroup]=\"formFilter\">\n <div class=\"main\">\n <koala-dynamic-form\n *ngIf=\"filterFormConfig.main\"\n [form]=\"filterFormConfig.main.form\"\n [formConfig]=\"filterFormConfig.main.formConfig\"\n [setValues]=\"filterFormConfig.main.setValues\"\n [showFields]=\"filterFormConfig.main.showFields\">\n </koala-dynamic-form>\n <ul>\n <li *ngIf=\"filterFormConfig.advanced\" class=\"option\">\n <button (click)=\"toogleFilter()\" color=\"primary\" mat-icon-button matTooltip=\"Filtro Avançado\"\n matTooltipPosition=\"below\" type=\"button\">\n <mat-icon>tune</mat-icon>\n </button>\n </li>\n <li *ngIf=\"filterFormConfig.checkAndSearch\" class=\"checkbox-filter\">\n <mat-checkbox (click)=\"filterSubmit()\"\n [formControlName]=\"filterFormConfig.checkAndSearch.formControlName\">\n {{filterFormConfig.checkAndSearch.label}}\n </mat-checkbox>\n </li>\n <li class=\"option\">\n <koala-submit\n [btnSubmitDisabled]=\"btnSubmitDisabled\"\n [fg]=\"formFilter\"\n [iconButton]=\"true\"\n [loader]=\"loader\"\n icon=\"search\">\n </koala-submit>\n </li>\n </ul>\n </div>\n <div *ngIf=\"filterFormConfig.advanced\" [ngClass]=\"{'show': showAdvancedFilter}\" class=\"advanced\">\n <div class=\"container-filter\">\n <koala-dynamic-form\n [form]=\"filterFormConfig.advanced.form\"\n [formConfig]=\"filterFormConfig.advanced.formConfig\"\n [setValues]=\"filterFormConfig.advanced.setValues\"\n [showFields]=\"filterFormConfig.advanced.showFields\">\n </koala-dynamic-form>\n </div>\n </div>\n </form>\n </div>\n <nav class=\"menu-list\">\n <ul class=\"menu\">\n <li *ngIf=\"selection.hasValue()\">\n <ng-content select=\"[itemsSelectList]\"></ng-content>\n </li>\n <li *ngIf=\"selection.hasValue()\" class=\"text-center\">|</li>\n <li>\n <ng-content select=\"[itemsList]\"></ng-content>\n </li>\n </ul>\n </nav>\n <div *ngIf=\"loader | async\" class=\"spinner-container\" [ngClass]=\"{\n 'no-filter': !filterFormConfig\n }\">\n <mat-spinner diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"list\">\n <table\n *ngIf=\"!emptyListComponent || (emptyListComponent && dataSource?.data?.length > 0) else emptyList\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"columnSort\"\n multiTemplateDataRows\n class=\"table-hover\"\n mat-table\n matSort\n [matSortDirection]=\"sortDirection\" matSortDisableClear>\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox (change)=\"$event ? selectAll() : null\"\n [checked]=\"selection.hasValue() && allSelected$ | async\"\n [indeterminate]=\"selection.hasValue() && !(allSelected$ | async)\">\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let item\" mat-cell>\n <mat-checkbox *ngIf=\"disabledCheckboxItemList ? !disabledCheckboxItemList(item) : true\"\n (change)=\"$event ? selection.toggle(item) : null\"\n (click)=\"$event.stopPropagation(); selectItem();\"\n [checked]=\"selection.isSelected(item)\">\n </mat-checkbox>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"collapseButton\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <koala-button\n *ngIf=\"btnCollapseSubListConfig.show(item)\"\n (click)=\"expandedElement = expandedElement === item ? null : item\"\n [koalaIcon]=\"btnCollapseSubListConfig.koalaIcon\"\n [icon]=\"btnCollapseSubListConfig.icon\"\n [tooltip]=\"btnCollapseSubListConfig.tooltip\"\n [color]=\"btnCollapseSubListConfig.iconColor\"\n [backgroundColor]=\"btnCollapseSubListConfig.backgroundColor\"\n [koalaIconSize]=\"22\">\n </koala-button>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngFor=\"let itemList of itemsList\" [matColumnDef]=\"itemList.columnDef\">\n <th *matHeaderCellDef [mat-sort-header]=\"itemList.sortHeader\" [disabled]=\"!itemList.sortHeader\" mat-header-cell>{{itemList.label}}</th>\n <td (dblclick)=\"itemList.dblClick(item)\" *matCellDef=\"let item\" mat-cell>\n\t <koala-dynamic-component *ngIf=\"itemList.itemComponent else itemText\"\n\t [dynamicComponent]=\"itemList.itemComponent(item)\"></koala-dynamic-component>\n\t <ng-template #itemText>\n\t {{itemList.itemNameProperty(item)}}\n\t </ng-template>\n </td>\n <td *matFooterCellDef mat-footer-cell>\n <koala-dynamic-component *ngIf=\"itemList.footer?.itemComponent else itemFooterText\"\n [dynamicComponent]=\"itemList.footer?.itemComponent(responseRequest)\"></koala-dynamic-component>\n <ng-template #itemFooterText>\n {{itemList.footer?.itemNameProperty(responseRequest)}}\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"koalaListDetails\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" [attr.colspan]=\"columnsToShowInList.length\" mat-cell>\n <div class=\"item-detail\" [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\">\n <koala-list [config]=\"subListConfig(item)\"></koala-list>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container matColumnDef=\"options\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <div *ngIf=\"haveOptionsOnItemLine(item)\">\n <button [matMenuTriggerFor]=\"options\" mat-icon-button type=\"button\">\n <i class='material-icons'>more_vert</i>\n </button>\n <mat-menu #options=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n\t <div *ngFor=\"let option of itemsMenuListOptions\">\n\t <button\n\t\t (click)=\"option.action(item)\"\n\t\t *ngIf=\"option.havePermission && (\n\t\t !option.showByItemList ||\n\t\t option.showByItemList(item)\n\t )\"\n\t\t mat-menu-item>\n\t <mat-icon>{{option.icon}}</mat-icon>\n\t <span>{{option.name}}</span>\n\t </button>\n\t </div>\n </mat-menu>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"columnsToShowInList; sticky: true\" mat-header-row></tr>\n <tr *matRowDef=\"let item; columns: columnsToShowInList;\" mat-row></tr>\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\">\n <tr mat-row *matRowDef=\"let row; columns: ['koalaListDetails']\" class=\"item-detail-row\"></tr>\n </ng-container>\n <ng-container *ngIf=\"hasFooter()\">\n <tr *matFooterRowDef=\"columnsToShowInList; sticky: true\" mat-footer-row></tr>\n </ng-container>\n </table>\n <ng-template #emptyList>\n <koala-dynamic-component *ngIf=\"!(filterError$ | async) else errorList\" [dynamicComponent]=\"emptyListComponent\"></koala-dynamic-component>\n <ng-template #errorList>\n <koala-dynamic-component [dynamicComponent]=\"errorListComponent\"></koala-dynamic-component>\n </ng-template>\n </ng-template>\n </div>\n <div *ngIf=\"!hidePaginator\" class=\"content-paginator\">\n <mat-paginator\n [length]=\"qtdListResult\"\n [pageSizeOptions]=\"limitOptions\"\n [pageSize]=\"pageSize\"\n showFirstLastButtons>\n </mat-paginator>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ListComponent } from './list.component';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\nimport { CommonModule } from '@angular/common';\nimport { KoalaFormModule } from '@koalarx/ui/form';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { PaginationProvider } from './providers/pagination/pagination.provider';\nimport { KoalaFolderPageModule } from '@koalarx/ui/folder-page';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { KoalaDynamicComponentModule } from '@koalarx/ui/dynamic-component';\nimport { KoalaButtonModule } from \"@koalarx/ui/button\";\n\n@NgModule({\n declarations: [\n ListComponent\n ],\n imports: [\n CommonModule,\n KoalaFolderPageModule,\n KoalaFormModule,\n KoalaDynamicComponentModule,\n KoalaButtonModule,\n MatMenuModule,\n MatTableModule,\n MatSortModule,\n MatTooltipModule,\n MatPaginatorModule\n ],\n exports: [\n ListComponent\n ],\n providers: [{\n provide: MatPaginatorIntl,\n useClass: PaginationProvider\n }]\n})\nexport class KoalaListModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,17 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./list.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@koalarx/ui/folder-page";
|
|
5
|
+
import * as i4 from "@koalarx/ui/form";
|
|
6
|
+
import * as i5 from "@koalarx/ui/dynamic-component";
|
|
7
|
+
import * as i6 from "@koalarx/ui/button";
|
|
8
|
+
import * as i7 from "@angular/material/menu";
|
|
9
|
+
import * as i8 from "@angular/material/table";
|
|
10
|
+
import * as i9 from "@angular/material/sort";
|
|
11
|
+
import * as i10 from "@angular/material/tooltip";
|
|
12
|
+
import * as i11 from "@angular/material/paginator";
|
|
1
13
|
export declare class KoalaListModule {
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KoalaListModule, never>;
|
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<KoalaListModule, [typeof i1.ListComponent], [typeof i2.CommonModule, typeof i3.KoalaFolderPageModule, typeof i4.KoalaFormModule, typeof i5.KoalaDynamicComponentModule, typeof i6.KoalaButtonModule, typeof i7.MatMenuModule, typeof i8.MatTableModule, typeof i9.MatSortModule, typeof i10.MatTooltipModule, typeof i11.MatPaginatorModule], [typeof i1.ListComponent]>;
|
|
16
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<KoalaListModule>;
|
|
2
17
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { ListBuilder } from "./list-builder/list.builder";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
2
3
|
export declare class KoalaListService {
|
|
3
4
|
build<DataType>(): ListBuilder<DataType>;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KoalaListService, never>;
|
|
6
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<KoalaListService>;
|
|
4
7
|
}
|
|
@@ -11,6 +11,7 @@ import { DeviceDetectorService } from "ngx-device-detector";
|
|
|
11
11
|
import { KoalaListConfigInterface } from "./koala.list-config.interface";
|
|
12
12
|
import { MatPaginator } from "@angular/material/paginator";
|
|
13
13
|
import { KoalaListBtnCollapseSubListConfigInterface } from "./koala-list-btn-collapse-sub-list-config.interface";
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
14
15
|
export declare class ListComponent extends ListAbstract implements OnInit, AfterViewInit, OnDestroy {
|
|
15
16
|
private fb;
|
|
16
17
|
private dynamicFormService;
|
|
@@ -48,4 +49,6 @@ export declare class ListComponent extends ListAbstract implements OnInit, After
|
|
|
48
49
|
haveOptionsOnItemLine(item: any): boolean;
|
|
49
50
|
hasFooter(): boolean;
|
|
50
51
|
private initConfig;
|
|
52
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
|
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "koala-list", never, { "config": "config"; }, {}, never, ["[itemsSelectList]", "[itemsList]"]>;
|
|
51
54
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { MatPaginatorIntl } from '@angular/material/paginator';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
2
3
|
export declare class PaginationProvider extends MatPaginatorIntl {
|
|
3
4
|
constructor();
|
|
4
5
|
getAndInitTranslations(): void;
|
|
5
6
|
getRangeLabel: (page: number, pageSize: number, length: number) => string;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PaginationProvider, never>;
|
|
8
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PaginationProvider>;
|
|
6
9
|
}
|
package/list/package.json
CHANGED
|
@@ -9,12 +9,24 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"tslib": "^2.1.0"
|
|
11
11
|
},
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"fesm2015": "fesm2015/koalarx-ui-list.
|
|
12
|
+
"module": "fesm2015/koalarx-ui-list.mjs",
|
|
13
|
+
"es2020": "fesm2020/koalarx-ui-list.mjs",
|
|
14
|
+
"esm2020": "esm2020/koalarx-ui-list.mjs",
|
|
15
|
+
"fesm2020": "fesm2020/koalarx-ui-list.mjs",
|
|
16
|
+
"fesm2015": "fesm2015/koalarx-ui-list.mjs",
|
|
17
17
|
"typings": "koalarx-ui-list.d.ts",
|
|
18
|
-
"
|
|
18
|
+
"exports": {
|
|
19
|
+
"./package.json": {
|
|
20
|
+
"default": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./koalarx-ui-list.d.ts",
|
|
24
|
+
"esm2020": "./esm2020/koalarx-ui-list.mjs",
|
|
25
|
+
"es2020": "./fesm2020/koalarx-ui-list.mjs",
|
|
26
|
+
"es2015": "./fesm2015/koalarx-ui-list.mjs",
|
|
27
|
+
"node": "./fesm2015/koalarx-ui-list.mjs",
|
|
28
|
+
"default": "./fesm2020/koalarx-ui-list.mjs"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
19
31
|
"sideEffects": false
|
|
20
32
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/menu/{esm2015/lib/koala.menu-tool.interface.js → esm2020/lib/koala.menu-tool.interface.mjs}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { MenuComponent } from './menu.component';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { RouterModule } from '@angular/router';
|
|
6
|
+
import { KoalaIconModule } from "@koalarx/ui/icon";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class KoalaMenuModule {
|
|
9
|
+
}
|
|
10
|
+
KoalaMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: KoalaMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
KoalaMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: KoalaMenuModule, declarations: [MenuComponent], imports: [CommonModule,
|
|
12
|
+
RouterModule,
|
|
13
|
+
MatIconModule,
|
|
14
|
+
KoalaIconModule], exports: [MenuComponent] });
|
|
15
|
+
KoalaMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: KoalaMenuModule, imports: [[
|
|
16
|
+
CommonModule,
|
|
17
|
+
RouterModule,
|
|
18
|
+
MatIconModule,
|
|
19
|
+
KoalaIconModule
|
|
20
|
+
]] });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: KoalaMenuModule, decorators: [{
|
|
22
|
+
type: NgModule,
|
|
23
|
+
args: [{
|
|
24
|
+
declarations: [
|
|
25
|
+
MenuComponent
|
|
26
|
+
],
|
|
27
|
+
imports: [
|
|
28
|
+
CommonModule,
|
|
29
|
+
RouterModule,
|
|
30
|
+
MatIconModule,
|
|
31
|
+
KoalaIconModule
|
|
32
|
+
],
|
|
33
|
+
exports: [
|
|
34
|
+
MenuComponent
|
|
35
|
+
]
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEubWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tZW51L3NyYy9saWIva29hbGEubWVudS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWdCbkQsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFaeEIsYUFBYSxhQUdiLFlBQVk7UUFDWixZQUFZO1FBQ1osYUFBYTtRQUNiLGVBQWUsYUFHZixhQUFhOzZHQUdKLGVBQWUsWUFWakI7WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLGFBQWE7WUFDYixlQUFlO1NBQ2hCOzJGQUtVLGVBQWU7a0JBZDNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgS29hbGFJY29uTW9kdWxlIH0gZnJvbSBcIkBrb2FsYXJ4L3VpL2ljb25cIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWVudUNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEtvYWxhSWNvbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWVudUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEtvYWxhTWVudU1vZHVsZSB7XG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { menuStateSubject } from './menu.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class KoalaMenuService {
|
|
5
|
+
getMenuState() {
|
|
6
|
+
return menuStateSubject.getValue();
|
|
7
|
+
}
|
|
8
|
+
open() {
|
|
9
|
+
menuStateSubject.next('open');
|
|
10
|
+
}
|
|
11
|
+
close() {
|
|
12
|
+
menuStateSubject.next('close');
|
|
13
|
+
}
|
|
14
|
+
clearConfig() {
|
|
15
|
+
menuStateSubject.next(null);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
KoalaMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: KoalaMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
+
KoalaMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: KoalaMenuService, providedIn: "any" });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: KoalaMenuService, decorators: [{
|
|
21
|
+
type: Injectable,
|
|
22
|
+
args: [{ providedIn: "any" }]
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEubWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVudS9zcmMvbGliL2tvYWxhLm1lbnUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHbkUsTUFBTSxPQUFPLGdCQUFnQjtJQUVyQixZQUFZO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLElBQUk7UUFDVixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUs7UUFDWCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLFdBQVc7UUFDakIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzZHQWhCVyxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQURKLEtBQUs7MkZBQ2pCLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZW51U3RhdGVTdWJqZWN0LCBNZW51U3RhdGVUeXBlIH0gZnJvbSAnLi9tZW51LmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiBcImFueVwifSlcbmV4cG9ydCBjbGFzcyBLb2FsYU1lbnVTZXJ2aWNlIHtcblxuXHRwdWJsaWMgZ2V0TWVudVN0YXRlKCk6IE1lbnVTdGF0ZVR5cGUgfCBudWxsIHtcblx0XHRyZXR1cm4gbWVudVN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXHR9XG5cblx0cHVibGljIG9wZW4oKSB7XG5cdFx0bWVudVN0YXRlU3ViamVjdC5uZXh0KCdvcGVuJyk7XG5cdH1cblxuXHRwdWJsaWMgY2xvc2UoKSB7XG5cdFx0bWVudVN0YXRlU3ViamVjdC5uZXh0KCdjbG9zZScpO1xuXHR9XG5cblx0cHVibGljIGNsZWFyQ29uZmlnKCkge1xuXHRcdG1lbnVTdGF0ZVN1YmplY3QubmV4dChudWxsKTtcblx0fVxufVxuIl19
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { NavigationEnd, Scroll } from '@angular/router';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { koala } from '@koalarx/utils';
|
|
5
|
+
import { map, switchMap } from 'rxjs/operators';
|
|
6
|
+
import { delay } from '@koalarx/utils/operators/delay';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/router";
|
|
9
|
+
import * as i2 from "@angular/material/icon";
|
|
10
|
+
import * as i3 from "@koalarx/ui/icon";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
export const menuStateSubject = new BehaviorSubject(null);
|
|
13
|
+
export class MenuComponent {
|
|
14
|
+
constructor(router) {
|
|
15
|
+
this.router = router;
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
if (this.optionsSubject) {
|
|
19
|
+
this.optionsSubject.pipe(map((options) => this.defineMenuOptions(options))).subscribe();
|
|
20
|
+
this.router.events
|
|
21
|
+
.pipe(switchMap((event) => new Promise(async (resolve) => {
|
|
22
|
+
while (this.optionsSubject?.getValue()?.length === 0) {
|
|
23
|
+
await delay(300);
|
|
24
|
+
}
|
|
25
|
+
resolve(event);
|
|
26
|
+
})))
|
|
27
|
+
.pipe(map((event) => {
|
|
28
|
+
const options = this.cloneOptions();
|
|
29
|
+
this.optionsSubject?.next(options.map((option) => {
|
|
30
|
+
option.active = false;
|
|
31
|
+
return option;
|
|
32
|
+
}));
|
|
33
|
+
return event;
|
|
34
|
+
}))
|
|
35
|
+
.subscribe((event) => {
|
|
36
|
+
switch (true) {
|
|
37
|
+
case event instanceof Scroll:
|
|
38
|
+
case event instanceof NavigationEnd:
|
|
39
|
+
const options = this.cloneOptions();
|
|
40
|
+
if (options?.length > 0) {
|
|
41
|
+
this.optionsSubject?.next(this.defineMenuOptions(options, true));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
toogle(module) {
|
|
48
|
+
if (this.optionsSubject) {
|
|
49
|
+
const options = JSON.parse(JSON.stringify(this.optionsSubject.getValue()));
|
|
50
|
+
this.optionsSubject.next(koala(options)
|
|
51
|
+
.array()
|
|
52
|
+
.map((item) => {
|
|
53
|
+
item.animateOpen = false;
|
|
54
|
+
item.animateClose = false;
|
|
55
|
+
if (item.name === module.name) {
|
|
56
|
+
item.expanded = !module.expanded;
|
|
57
|
+
item.animateOpen = item.expanded;
|
|
58
|
+
item.animateClose = !item.expanded;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
item.expanded = false;
|
|
62
|
+
}
|
|
63
|
+
return item;
|
|
64
|
+
})
|
|
65
|
+
.getValue());
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
getKoalaIcon(config) {
|
|
69
|
+
return config.icon;
|
|
70
|
+
}
|
|
71
|
+
defineMenuOptions(options, routerChange = false) {
|
|
72
|
+
options.map((module) => {
|
|
73
|
+
if (routerChange) {
|
|
74
|
+
module.animateOpen = false;
|
|
75
|
+
module.animateClose = false;
|
|
76
|
+
module.active = module.tools
|
|
77
|
+
? this.router.url === module.routerLink ||
|
|
78
|
+
!!module.tools.find((tool) => this.router.url.indexOf(tool.routerLink) >= 0)
|
|
79
|
+
: this.router.url === module.routerLink;
|
|
80
|
+
module.expanded = module.active;
|
|
81
|
+
}
|
|
82
|
+
return module;
|
|
83
|
+
});
|
|
84
|
+
return options;
|
|
85
|
+
}
|
|
86
|
+
cloneOptions() {
|
|
87
|
+
return JSON.parse(JSON.stringify(this.optionsSubject?.getValue()));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MenuComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
91
|
+
MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MenuComponent, selector: "koala-menu", inputs: { titleMenu: "titleMenu", optionsSubject: "optionsSubject" }, ngImport: i0, template: "<nav>\n <h2 *ngIf=\"titleMenu\" class=\"title\">{{titleMenu}}</h2>\n <ul *ngIf=\"(optionsSubject | async) as options\" class=\"list-menu\" [ngClass]=\"{'without-title': !titleMenu}\">\n <li\n #moduleItem\n\t *ngFor=\"let module of options\"\n\t [ngClass]=\"{\n\t animateOpen: module.animateOpen,\n\t animateClose: module.animateClose,\n expanded: module.expanded,\n active: module.active\n }\">\n <a *ngIf=\"!!module.routerLink else moduleWithoutLink\" [routerLink]=\"module.routerLink\" (click)=\"toogle(module)\" class=\"module\">\n <mat-icon *ngIf=\"module.icon && !module.koalaIcon\">{{module.icon}}</mat-icon>\n <koala-icon *ngIf=\"module.icon && module.koalaIcon\" [icon]=\"getKoalaIcon(module)\"></koala-icon>\n <h3>{{module.name}}</h3>\n <mat-icon\n\t *ngIf=\"module.tools?.length ?? 0 > 0\"\n\t class=\"state-module\">{{module.expanded || module.active ? 'keyboard_arrow_down' : 'keyboard_arrow_right'}}</mat-icon>\n </a>\n <ng-template #moduleWithoutLink>\n <div (click)=\"toogle(module)\" class=\"module\">\n <mat-icon *ngIf=\"module.icon && !module.koalaIcon\">{{module.icon}}</mat-icon>\n <koala-icon *ngIf=\"module.icon && module.koalaIcon\" [icon]=\"getKoalaIcon(module)\" [size]=\"18\"></koala-icon>\n <h3>{{module.name}}</h3>\n <mat-icon\n\t *ngIf=\"module.tools?.length ?? 0 > 0\"\n\t class=\"state-module\">{{module.expanded || module.active ? 'keyboard_arrow_down' : 'keyboard_arrow_right'}}</mat-icon>\n </div>\n </ng-template>\n <ul *ngIf=\"module.tools?.length ?? 0 > 0\">\n <li *ngFor=\"let tool of module.tools\">\n\t\t <a [routerLink]=\"tool.routerLink\" routerLinkActive=\"active\">\n\t <mat-icon *ngIf=\"tool.icon && !tool.koalaIcon\">{{tool.icon}}</mat-icon>\n <koala-icon *ngIf=\"tool.icon && tool.koalaIcon\" [icon]=\"getKoalaIcon(tool)\" [size]=\"18\"></koala-icon>\n\t <h4>{{tool.name}}</h4>\n\t\t </a>\n </li>\n </ul>\n </li>\n </ul>\n</nav>\n", styles: [".title{font-family:OpenSans,sans-serif;font-size:.8em;font-weight:bold;line-height:.8em;margin:0;padding:8px 15px}ul{font-size:0;list-style:none;margin:0;padding:0 20px 0 0;width:100%;box-sizing:border-box}ul.list-menu{height:calc(100vh - 107px);overflow:auto}ul.list-menu.without-title{height:calc(100vh - 78px)}ul ul{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;overflow:hidden;width:100%}ul li{cursor:pointer;display:block;font-size:14px;outline:none;padding:0;position:relative;transition:.2s;overflow:hidden;border-radius:0 20px 20px 0}ul li a{transition:.2s}.module{outline:none;padding:5px 15px;text-decoration:none}a.module{box-sizing:border-box;cursor:pointer;display:block;width:100%}ul li li{border:none!important;padding:0!important;height:0}.state-module{position:absolute;right:10px;top:4px}ul li.active ul{border-bottom:1px solid rgba(0,0,0,.1);box-shadow:0 1px 3px #00000080}ul li.expanded ul{border-bottom:1px solid rgba(0,0,0,.1);box-shadow:0 1px 3px #00000080;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:15px 0}ul li.expanded ul li{height:30px}ul li li a.active{background:rgba(0,0,0,.1)!important;cursor:default;height:-webkit-fit-content!important;height:-moz-fit-content!important;height:fit-content!important}ul li h3,ul li h4,ul li koala-icon,ul li mat-icon{display:inline-flex;line-height:1.5em;margin:0;vertical-align:middle}ul li h3,ul li h4{font-size:.9em}ul li koala-icon,ul li li koala-icon{font-size:18px;height:18px;line-height:18px;margin-right:5px;width:18px}ul li mat-icon,ul li li mat-icon{font-size:20px;height:20px;line-height:20px;margin-right:5px;width:20px}ul li koala-icon,ul li li koala-icon{margin-right:10px}ul li li a{cursor:pointer;display:block;padding:5px 15px!important;text-decoration:none;width:100%}ul li li:hover{background:rgba(0,0,0,.1)}ul li li a.active:hover{background:transparent}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.IconComponent, selector: "koala-icon", inputs: ["color", "icon", "size"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MenuComponent, decorators: [{
|
|
93
|
+
type: Component,
|
|
94
|
+
args: [{ selector: 'koala-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav>\n <h2 *ngIf=\"titleMenu\" class=\"title\">{{titleMenu}}</h2>\n <ul *ngIf=\"(optionsSubject | async) as options\" class=\"list-menu\" [ngClass]=\"{'without-title': !titleMenu}\">\n <li\n #moduleItem\n\t *ngFor=\"let module of options\"\n\t [ngClass]=\"{\n\t animateOpen: module.animateOpen,\n\t animateClose: module.animateClose,\n expanded: module.expanded,\n active: module.active\n }\">\n <a *ngIf=\"!!module.routerLink else moduleWithoutLink\" [routerLink]=\"module.routerLink\" (click)=\"toogle(module)\" class=\"module\">\n <mat-icon *ngIf=\"module.icon && !module.koalaIcon\">{{module.icon}}</mat-icon>\n <koala-icon *ngIf=\"module.icon && module.koalaIcon\" [icon]=\"getKoalaIcon(module)\"></koala-icon>\n <h3>{{module.name}}</h3>\n <mat-icon\n\t *ngIf=\"module.tools?.length ?? 0 > 0\"\n\t class=\"state-module\">{{module.expanded || module.active ? 'keyboard_arrow_down' : 'keyboard_arrow_right'}}</mat-icon>\n </a>\n <ng-template #moduleWithoutLink>\n <div (click)=\"toogle(module)\" class=\"module\">\n <mat-icon *ngIf=\"module.icon && !module.koalaIcon\">{{module.icon}}</mat-icon>\n <koala-icon *ngIf=\"module.icon && module.koalaIcon\" [icon]=\"getKoalaIcon(module)\" [size]=\"18\"></koala-icon>\n <h3>{{module.name}}</h3>\n <mat-icon\n\t *ngIf=\"module.tools?.length ?? 0 > 0\"\n\t class=\"state-module\">{{module.expanded || module.active ? 'keyboard_arrow_down' : 'keyboard_arrow_right'}}</mat-icon>\n </div>\n </ng-template>\n <ul *ngIf=\"module.tools?.length ?? 0 > 0\">\n <li *ngFor=\"let tool of module.tools\">\n\t\t <a [routerLink]=\"tool.routerLink\" routerLinkActive=\"active\">\n\t <mat-icon *ngIf=\"tool.icon && !tool.koalaIcon\">{{tool.icon}}</mat-icon>\n <koala-icon *ngIf=\"tool.icon && tool.koalaIcon\" [icon]=\"getKoalaIcon(tool)\" [size]=\"18\"></koala-icon>\n\t <h4>{{tool.name}}</h4>\n\t\t </a>\n </li>\n </ul>\n </li>\n </ul>\n</nav>\n", styles: [".title{font-family:OpenSans,sans-serif;font-size:.8em;font-weight:bold;line-height:.8em;margin:0;padding:8px 15px}ul{font-size:0;list-style:none;margin:0;padding:0 20px 0 0;width:100%;box-sizing:border-box}ul.list-menu{height:calc(100vh - 107px);overflow:auto}ul.list-menu.without-title{height:calc(100vh - 78px)}ul ul{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;overflow:hidden;width:100%}ul li{cursor:pointer;display:block;font-size:14px;outline:none;padding:0;position:relative;transition:.2s;overflow:hidden;border-radius:0 20px 20px 0}ul li a{transition:.2s}.module{outline:none;padding:5px 15px;text-decoration:none}a.module{box-sizing:border-box;cursor:pointer;display:block;width:100%}ul li li{border:none!important;padding:0!important;height:0}.state-module{position:absolute;right:10px;top:4px}ul li.active ul{border-bottom:1px solid rgba(0,0,0,.1);box-shadow:0 1px 3px #00000080}ul li.expanded ul{border-bottom:1px solid rgba(0,0,0,.1);box-shadow:0 1px 3px #00000080;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:15px 0}ul li.expanded ul li{height:30px}ul li li a.active{background:rgba(0,0,0,.1)!important;cursor:default;height:-webkit-fit-content!important;height:-moz-fit-content!important;height:fit-content!important}ul li h3,ul li h4,ul li koala-icon,ul li mat-icon{display:inline-flex;line-height:1.5em;margin:0;vertical-align:middle}ul li h3,ul li h4{font-size:.9em}ul li koala-icon,ul li li koala-icon{font-size:18px;height:18px;line-height:18px;margin-right:5px;width:18px}ul li mat-icon,ul li li mat-icon{font-size:20px;height:20px;line-height:20px;margin-right:5px;width:20px}ul li koala-icon,ul li li koala-icon{margin-right:10px}ul li li a{cursor:pointer;display:block;padding:5px 15px!important;text-decoration:none;width:100%}ul li li:hover{background:rgba(0,0,0,.1)}ul li li a.active:hover{background:transparent}\n"] }]
|
|
95
|
+
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { titleMenu: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], optionsSubject: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}] } });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tZW51L3NyYy9saWIvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tZW51L3NyYy9saWIvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7QUFLdkQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxlQUFlLENBQXVCLElBQUksQ0FBQyxDQUFDO0FBUWhGLE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUV0QyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4RixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07aUJBQ2YsSUFBSSxDQUNILFNBQVMsQ0FDUCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1IsSUFBSSxP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Q0FBQyxLQUFLO29CQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLFVBQVU7d0JBQ3JDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzlFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUMxQyxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDakM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBK0IsQ0FBQztJQUNuRyxDQUFDOzswR0E5RlUsYUFBYTs4RkFBYixhQUFhLHdIQ25CMUIseWtFQTBDQTsyRkR2QmEsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU07NkZBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtvYWxhTWVudU1vZHVsZUludGVyZmFjZSB9IGZyb20gJy4va29hbGEubWVudS1tb2R1bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciwgU2Nyb2xsIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsga29hbGEgfSBmcm9tICdAa29hbGFyeC91dGlscyc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAnQGtvYWxhcngvdXRpbHMvb3BlcmF0b3JzL2RlbGF5JztcbmltcG9ydCB7IEtvYWxhTWVudVRvb2xJbnRlcmZhY2UgfSBmcm9tICcuL2tvYWxhLm1lbnUtdG9vbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgS29hbGFJY29uVHlwZSB9IGZyb20gJ0Brb2FsYXJ4L3VpL2ljb24nO1xuXG5leHBvcnQgdHlwZSBNZW51U3RhdGVUeXBlID0gJ29wZW4nIHwgJ2Nsb3NlJztcbmV4cG9ydCBjb25zdCBtZW51U3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZW51U3RhdGVUeXBlIHwgbnVsbD4obnVsbCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tvYWxhLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJ21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnbWVudS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdGl0bGVNZW51Pzogc3RyaW5nO1xuICBASW5wdXQoKSBvcHRpb25zU3ViamVjdD86IEJlaGF2aW9yU3ViamVjdDxLb2FsYU1lbnVNb2R1bGVJbnRlcmZhY2VbXT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zU3ViamVjdCkge1xuICAgICAgdGhpcy5vcHRpb25zU3ViamVjdC5waXBlKG1hcCgob3B0aW9ucykgPT4gdGhpcy5kZWZpbmVNZW51T3B0aW9ucyhvcHRpb25zKSkpLnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcChcbiAgICAgICAgICAgIChldmVudCkgPT5cbiAgICAgICAgICAgICAgbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgICB3aGlsZSAodGhpcy5vcHRpb25zU3ViamVjdD8uZ2V0VmFsdWUoKT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICBhd2FpdCBkZWxheSgzMDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlc29sdmUoZXZlbnQpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNsb25lT3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zU3ViamVjdD8ubmV4dChcbiAgICAgICAgICAgICAgb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiBldmVudDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgY2FzZSBldmVudCBpbnN0YW5jZW9mIFNjcm9sbDpcbiAgICAgICAgICAgIGNhc2UgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kOlxuICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jbG9uZU9wdGlvbnMoKTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNTdWJqZWN0Py5uZXh0KHRoaXMuZGVmaW5lTWVudU9wdGlvbnMob3B0aW9ucywgdHJ1ZSkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9vZ2xlKG1vZHVsZTogS29hbGFNZW51TW9kdWxlSW50ZXJmYWNlKSB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1N1YmplY3QpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3B0aW9uc1N1YmplY3QuZ2V0VmFsdWUoKSkpIGFzIEtvYWxhTWVudU1vZHVsZUludGVyZmFjZVtdO1xuICAgICAgdGhpcy5vcHRpb25zU3ViamVjdC5uZXh0KFxuICAgICAgICBrb2FsYShvcHRpb25zKVxuICAgICAgICAgIC5hcnJheTxLb2FsYU1lbnVNb2R1bGVJbnRlcmZhY2U+KClcbiAgICAgICAgICAubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmFuaW1hdGVPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLmFuaW1hdGVDbG9zZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGl0ZW0ubmFtZSA9PT0gbW9kdWxlLm5hbWUpIHtcbiAgICAgICAgICAgICAgaXRlbS5leHBhbmRlZCA9ICFtb2R1bGUuZXhwYW5kZWQ7XG4gICAgICAgICAgICAgIGl0ZW0uYW5pbWF0ZU9wZW4gPSBpdGVtLmV4cGFuZGVkO1xuICAgICAgICAgICAgICBpdGVtLmFuaW1hdGVDbG9zZSA9ICFpdGVtLmV4cGFuZGVkO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaXRlbS5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZ2V0VmFsdWUoKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEtvYWxhSWNvbihjb25maWc6IEtvYWxhTWVudU1vZHVsZUludGVyZmFjZSB8IEtvYWxhTWVudVRvb2xJbnRlcmZhY2UpIHtcbiAgICByZXR1cm4gY29uZmlnLmljb24gYXMgS29hbGFJY29uVHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgZGVmaW5lTWVudU9wdGlvbnMob3B0aW9uczogS29hbGFNZW51TW9kdWxlSW50ZXJmYWNlW10sIHJvdXRlckNoYW5nZSA9IGZhbHNlKSB7XG4gICAgb3B0aW9ucy5tYXAoKG1vZHVsZSkgPT4ge1xuICAgICAgaWYgKHJvdXRlckNoYW5nZSkge1xuICAgICAgICBtb2R1bGUuYW5pbWF0ZU9wZW4gPSBmYWxzZTtcbiAgICAgICAgbW9kdWxlLmFuaW1hdGVDbG9zZSA9IGZhbHNlO1xuICAgICAgICBtb2R1bGUuYWN0aXZlID0gbW9kdWxlLnRvb2xzXG4gICAgICAgICAgPyB0aGlzLnJvdXRlci51cmwgPT09IG1vZHVsZS5yb3V0ZXJMaW5rIHx8XG4gICAgICAgICAgICAhIW1vZHVsZS50b29scy5maW5kKCh0b29sKSA9PiB0aGlzLnJvdXRlci51cmwuaW5kZXhPZih0b29sLnJvdXRlckxpbmspID49IDApXG4gICAgICAgICAgOiB0aGlzLnJvdXRlci51cmwgPT09IG1vZHVsZS5yb3V0ZXJMaW5rO1xuICAgICAgICBtb2R1bGUuZXhwYW5kZWQgPSBtb2R1bGUuYWN0aXZlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbW9kdWxlO1xuICAgIH0pO1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9uZU9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5vcHRpb25zU3ViamVjdD8uZ2V0VmFsdWUoKSkpIGFzIEtvYWxhTWVudU1vZHVsZUludGVyZmFjZVtdO1xuICB9XG59XG4iLCI8bmF2PlxuICA8aDIgKm5nSWY9XCJ0aXRsZU1lbnVcIiBjbGFzcz1cInRpdGxlXCI+e3t0aXRsZU1lbnV9fTwvaDI+XG4gIDx1bCAqbmdJZj1cIihvcHRpb25zU3ViamVjdCB8IGFzeW5jKSBhcyBvcHRpb25zXCIgY2xhc3M9XCJsaXN0LW1lbnVcIiBbbmdDbGFzc109XCJ7J3dpdGhvdXQtdGl0bGUnOiAhdGl0bGVNZW51fVwiPlxuICAgIDxsaVxuICAgICAgI21vZHVsZUl0ZW1cblx0ICAgICpuZ0Zvcj1cImxldCBtb2R1bGUgb2Ygb3B0aW9uc1wiXG5cdCAgICBbbmdDbGFzc109XCJ7XG5cdCAgICAgIGFuaW1hdGVPcGVuOiBtb2R1bGUuYW5pbWF0ZU9wZW4sXG5cdCAgICAgIGFuaW1hdGVDbG9zZTogbW9kdWxlLmFuaW1hdGVDbG9zZSxcbiAgICAgICAgZXhwYW5kZWQ6IG1vZHVsZS5leHBhbmRlZCxcbiAgICAgICAgYWN0aXZlOiBtb2R1bGUuYWN0aXZlXG4gICAgICB9XCI+XG4gICAgICA8YSAqbmdJZj1cIiEhbW9kdWxlLnJvdXRlckxpbmsgZWxzZSBtb2R1bGVXaXRob3V0TGlua1wiIFtyb3V0ZXJMaW5rXT1cIm1vZHVsZS5yb3V0ZXJMaW5rXCIgKGNsaWNrKT1cInRvb2dsZShtb2R1bGUpXCIgY2xhc3M9XCJtb2R1bGVcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwibW9kdWxlLmljb24gJiYgIW1vZHVsZS5rb2FsYUljb25cIj57e21vZHVsZS5pY29ufX08L21hdC1pY29uPlxuICAgICAgICA8a29hbGEtaWNvbiAqbmdJZj1cIm1vZHVsZS5pY29uICYmIG1vZHVsZS5rb2FsYUljb25cIiBbaWNvbl09XCJnZXRLb2FsYUljb24obW9kdWxlKVwiPjwva29hbGEtaWNvbj5cbiAgICAgICAgPGgzPnt7bW9kdWxlLm5hbWV9fTwvaDM+XG4gICAgICAgIDxtYXQtaWNvblxuXHQgICAgICAgICpuZ0lmPVwibW9kdWxlLnRvb2xzPy5sZW5ndGggPz8gMCA+IDBcIlxuXHQgICAgICAgIGNsYXNzPVwic3RhdGUtbW9kdWxlXCI+e3ttb2R1bGUuZXhwYW5kZWQgfHwgbW9kdWxlLmFjdGl2ZSA/ICdrZXlib2FyZF9hcnJvd19kb3duJyA6ICdrZXlib2FyZF9hcnJvd19yaWdodCd9fTwvbWF0LWljb24+XG4gICAgICA8L2E+XG4gICAgICA8bmctdGVtcGxhdGUgI21vZHVsZVdpdGhvdXRMaW5rPlxuICAgICAgICA8ZGl2IChjbGljayk9XCJ0b29nbGUobW9kdWxlKVwiIGNsYXNzPVwibW9kdWxlXCI+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwibW9kdWxlLmljb24gJiYgIW1vZHVsZS5rb2FsYUljb25cIj57e21vZHVsZS5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgIDxrb2FsYS1pY29uICpuZ0lmPVwibW9kdWxlLmljb24gJiYgbW9kdWxlLmtvYWxhSWNvblwiIFtpY29uXT1cImdldEtvYWxhSWNvbihtb2R1bGUpXCIgW3NpemVdPVwiMThcIj48L2tvYWxhLWljb24+XG4gICAgICAgICAgPGgzPnt7bW9kdWxlLm5hbWV9fTwvaDM+XG4gICAgICAgICAgPG1hdC1pY29uXG5cdCAgICAgICAgICAqbmdJZj1cIm1vZHVsZS50b29scz8ubGVuZ3RoID8/IDAgPiAwXCJcblx0ICAgICAgICAgIGNsYXNzPVwic3RhdGUtbW9kdWxlXCI+e3ttb2R1bGUuZXhwYW5kZWQgfHwgbW9kdWxlLmFjdGl2ZSA/ICdrZXlib2FyZF9hcnJvd19kb3duJyA6ICdrZXlib2FyZF9hcnJvd19yaWdodCd9fTwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDx1bCAqbmdJZj1cIm1vZHVsZS50b29scz8ubGVuZ3RoID8/IDAgPiAwXCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdG9vbCBvZiBtb2R1bGUudG9vbHNcIj5cblx0XHQgICAgICA8YSBbcm91dGVyTGlua109XCJ0b29sLnJvdXRlckxpbmtcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+XG5cdCAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJ0b29sLmljb24gJiYgIXRvb2wua29hbGFJY29uXCI+e3t0b29sLmljb259fTwvbWF0LWljb24+XG4gICAgICAgICAgICA8a29hbGEtaWNvbiAqbmdJZj1cInRvb2wuaWNvbiAmJiB0b29sLmtvYWxhSWNvblwiIFtpY29uXT1cImdldEtvYWxhSWNvbih0b29sKVwiIFtzaXplXT1cIjE4XCI+PC9rb2FsYS1pY29uPlxuXHQgICAgICAgICAgPGg0Pnt7dG9vbC5uYW1lfX08L2g0PlxuXHRcdCAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvbmF2PlxuIl19
|