shared-ui-test-1 1.0.1
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/constants/breadcrumbs.const.d.ts +1 -0
- package/constants/query-design-custom-class.constant.d.ts +1 -0
- package/core/directive/authorize.directive.d.ts +14 -0
- package/core/interfaces/filters.api.interface.d.ts +32 -0
- package/core/models/menu-elements-dto.d.ts +21 -0
- package/core/services/local-storage.service.d.ts +34 -0
- package/core/services/user-management.service.d.ts +39 -0
- package/core/site/services/support-util.service.d.ts +18 -0
- package/core/token/client-injection-token.d.ts +2 -0
- package/core/utils/sql-to-filter-datatype-converter.d.ts +2 -0
- package/core/utils/type-checks.utils.d.ts +10 -0
- package/core/utils/uuid-generator.utils.d.ts +1 -0
- package/directives/let.directive.d.ts +25 -0
- package/directives/remove-cancel-button.directive.d.ts +10 -0
- package/enums/action-types.enum.d.ts +16 -0
- package/enums/sort-direction.enum.d.ts +4 -0
- package/enums/source-types.enum.d.ts +4 -0
- package/enums/tooltips-prop.enum.d.ts +31 -0
- package/esm2022/constants/breadcrumbs.const.mjs +2 -0
- package/esm2022/constants/query-design-custom-class.constant.mjs +2 -0
- package/esm2022/core/directive/authorize.directive.mjs +37 -0
- package/esm2022/core/interfaces/filters.api.interface.mjs +12 -0
- package/esm2022/core/models/menu-elements-dto.mjs +2 -0
- package/esm2022/core/services/local-storage.service.mjs +55 -0
- package/esm2022/core/services/user-management.service.mjs +97 -0
- package/esm2022/core/site/services/support-util.service.mjs +55 -0
- package/esm2022/core/token/client-injection-token.mjs +3 -0
- package/esm2022/core/utils/sql-to-filter-datatype-converter.mjs +37 -0
- package/esm2022/core/utils/type-checks.utils.mjs +34 -0
- package/esm2022/core/utils/uuid-generator.utils.mjs +8 -0
- package/esm2022/directives/let.directive.mjs +48 -0
- package/esm2022/directives/remove-cancel-button.directive.mjs +23 -0
- package/esm2022/enums/action-types.enum.mjs +18 -0
- package/esm2022/enums/sort-direction.enum.mjs +6 -0
- package/esm2022/enums/source-types.enum.mjs +6 -0
- package/esm2022/enums/tooltips-prop.enum.mjs +33 -0
- package/esm2022/modules/dynamic-cards/directives/flip-card.directive.mjs +44 -0
- package/esm2022/modules/dynamic-cards/dynamic-card/card-list-container/card-list-container.component.mjs +20 -0
- package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card/dynamic-card.component.mjs +19 -0
- package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card-back/dynamic-card-back.component.mjs +16 -0
- package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card-footer/dynamic-card-footer.component.mjs +21 -0
- package/esm2022/modules/dynamic-cards/dynamic-card/dynamic-card-front/dynamic-card-front.component.mjs +18 -0
- package/esm2022/modules/dynamic-cards/dynamic-cards.module.mjs +60 -0
- package/esm2022/modules/dynamic-cards/interface/card-list.interface.mjs +2 -0
- package/esm2022/modules/dynamic-cards/interface/card.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-button-control/dynamic-form-button-control.component.mjs +27 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-checkbox-control/dynamic-form-checkbox-control.component.mjs +19 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-control-label/dynamic-form-control-label.component.mjs +14 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component.mjs +43 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-datepicker-control/dynamic-form-datepicker-control.component.mjs +48 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field-control.component.mjs +96 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field.matcher.mjs +9 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-input-control/dynamic-form-input-control.component.mjs +22 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ng-select-control/dynamic-form-ng-select-control.component.mjs +27 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/dynamic-form-radio-group.component.mjs +31 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/enum/radio-group-orientation.enum.mjs +6 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-select-control/dynamic-form-select-control.component.mjs +29 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component.mjs +18 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-text-area-control/dynamic-form-text-area-control.component.mjs +22 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control-list/dynamic-form-ui-control-list.component.mjs +74 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control.component.mjs +30 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/base-form-actions.component.mjs +47 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/enums/base-form-action-types.mjs +7 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/interfaces/base-form-action.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/dynamic-form-ui.component.mjs +64 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-array/dynamic-form-ui-array.component.mjs +26 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-group/dynamic-form-group.component.mjs +26 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout-item/dynamic-form-layout-item.component.mjs +65 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout.component.mjs +33 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/enums/form-field-css-class.enum.mjs +9 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/components/errors-block/errors-block.component.mjs +25 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/dynamic-form-ui.module.mjs +117 -0
- package/esm2022/modules/dynamic-forms/dynamic-form-UI/providers/ui-form-control-map.provider.mjs +47 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-array.component.mjs +16 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-component.mjs +82 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control-container.component.mjs +189 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control.component.mjs +112 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-layout.component.mjs +34 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant.mjs +34 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/constants/matchers/matchers.constant.mjs +27 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/constants/reg-exp-error.constant.mjs +10 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-id.directive.mjs +24 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-list.directive.mjs +26 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-template.directive.mjs +29 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/dynamic-form-core.module.mjs +49 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/autocomplete.enum.mjs +6 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/control-types.enum.mjs +22 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/form-control-events.enum.mjs +8 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/form-hooks.enum.mjs +7 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/input-types.enum.mjs +20 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/matcher-types.enum.mjs +10 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/template-directive-alignment.mjs +6 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/enums/textarea-wrap.enum.mjs +6 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/index.mjs +39 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control-event.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/dynamic-form/dynamic-form-model.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-control-layout.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/matchers/form-control-matcher.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-array/form-array-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-button-control/button-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-check-control/check-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-relation.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-date-control/date-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-group/form-group-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-input-control/form-input-control-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-number-control/form-number-control-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option/form-option-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option-control/form-option-control-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/button-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/checkbox-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/datepicker-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/input-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/radio-group-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/select-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/switch-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/textarea-control-model-config.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-value-control/form-value-control.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/interfaces/validators/validators.interface.mjs +2 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-array/dynamic-form-array.model.mjs +51 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-array/form-array-group/dynamic-form-array-group.model.mjs +15 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-button-control/dynamic-button-control.model.mjs +19 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-check-control/dynamic-check-control.model.mjs +19 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model.mjs +23 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-date-control/dynamic-date-control.model.mjs +11 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-group/dynamic-form-group.model.mjs +37 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-input-control/dynamic-input-control.model.mjs +20 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-number-control/dynamic-number-control.model.mjs +15 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-option/form-option.model.mjs +15 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-option-control/dynamic-option-control.model.mjs +52 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-static-control/static-control.model.mjs +7 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/button/dynamic-button.model.mjs +13 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/checkbox/dynamic-checkbox.model.mjs +12 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/counter/dynamic-counter.model.mjs +11 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/datepicker/dynamic-datepicker.model.mjs +18 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/input/dynamic-input.model.mjs +13 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/radio/dynamic-radio-group.model.mjs +13 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/select/dynamic-select.model.mjs +18 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/switch/dynamic-switch.model.mjs +11 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/textarea/dynamic-textarea.model.mjs +14 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/form-value-control/form-value-control.model.mjs +25 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/layout/enums/FormLayoutControlTypes.enum.mjs +7 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/layout/layout-control.model.mjs +8 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/models/ng-select-control/dynamic-ng-select.model.mjs +19 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/pipes/find-dynamic-control-model/find-dynamic-control-model.pipe.mjs +38 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/pipes/get-error-from-key-value.pipe.mjs +20 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-component.service.mjs +37 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-layout.service.mjs +35 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-validation.service.mjs +35 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form.service.mjs +239 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/tokens/dynamic-matchers.token.mjs +3 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/tokens/form-control-map.token.mjs +3 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms-core/tokens/validators.token.mjs +3 -0
- package/esm2022/modules/dynamic-forms/dynamic-forms.module.mjs +32 -0
- package/esm2022/modules/material/mat-cdk-module.mjs +17 -0
- package/esm2022/modules/material/material.module.mjs +201 -0
- package/esm2022/modules/query-builder/components/query-design/query-design.component.mjs +103 -0
- package/esm2022/modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component.mjs +150 -0
- package/esm2022/modules/query-builder/components/query-design/rule-line/components/boolean-control/boolean-control.component.mjs +102 -0
- package/esm2022/modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component.mjs +76 -0
- package/esm2022/modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component.mjs +168 -0
- package/esm2022/modules/query-builder/components/query-design/rule-line/constants/operators-sets.mjs +108 -0
- package/esm2022/modules/query-builder/components/query-design/rule-line/helpers/condition-operators.mapper.mjs +8 -0
- package/esm2022/modules/query-builder/components/query-design/rule-line/helpers/control-values-mapper.mjs +78 -0
- package/esm2022/modules/query-builder/components/query-design/rule-line/rule-line.component.mjs +234 -0
- package/esm2022/modules/query-builder/directive/auto-complete-position.directive.mjs +30 -0
- package/esm2022/modules/query-builder/interfaces/query-builder.interface.mjs +39 -0
- package/esm2022/modules/query-builder/interfaces/select-custom-css-object.mjs +2 -0
- package/esm2022/modules/query-builder/query-builder.module.mjs +66 -0
- package/esm2022/modules/ui-kit/components/accordion/accordion-content/accordion-content.component.mjs +16 -0
- package/esm2022/modules/ui-kit/components/accordion/accordion-trigger.directive.mjs +30 -0
- package/esm2022/modules/ui-kit/components/accordion/accordion.directive.mjs +19 -0
- package/esm2022/modules/ui-kit/components/banner/banner.component.mjs +53 -0
- package/esm2022/modules/ui-kit/components/banner/banner.service.mjs +64 -0
- package/esm2022/modules/ui-kit/components/breadcrumbs/breadcrumbs.component.mjs +25 -0
- package/esm2022/modules/ui-kit/components/breadcrumbs/model/breadCrumbItem.mjs +2 -0
- package/esm2022/modules/ui-kit/components/breadcrumbs/service/breadcrumb.service.mjs +63 -0
- package/esm2022/modules/ui-kit/components/breadcrumbs/utils/crumb-service.enum.mjs +8 -0
- package/esm2022/modules/ui-kit/components/buttons/button-control/button-control.component.mjs +46 -0
- package/esm2022/modules/ui-kit/components/buttons/buttons-list/buttons-list.component.mjs +11 -0
- package/esm2022/modules/ui-kit/components/buttons/circle-button/circle-button.component.mjs +37 -0
- package/esm2022/modules/ui-kit/components/card-container/card-container.component.mjs +11 -0
- package/esm2022/modules/ui-kit/components/common-breadcrumbs/common-breadcrumbs.component.mjs +30 -0
- package/esm2022/modules/ui-kit/components/common-breadcrumbs/interface/breadcrumb.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/components/common-breadcrumbs/service/breadcrumb.service.mjs +65 -0
- package/esm2022/modules/ui-kit/components/data-pagination/data-pagination.component.mjs +155 -0
- package/esm2022/modules/ui-kit/components/data-table/api-classes/filter-manager.mjs +50 -0
- package/esm2022/modules/ui-kit/components/data-table/api-classes/grid-api.mjs +73 -0
- package/esm2022/modules/ui-kit/components/data-table/constants/change-type.enum.mjs +8 -0
- package/esm2022/modules/ui-kit/components/data-table/constants/column-id.mjs +13 -0
- package/esm2022/modules/ui-kit/components/data-table/constants/row.mjs +4 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component.mjs +93 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col/data-col.component.mjs +17 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-action-button/data-col-action-button.component.mjs +27 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-boolean/data-col-boolean.component.mjs +20 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-multivalue/data-col-multivalue.component.mjs +18 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-nested/data-col-nested.component.mjs +31 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-reference/data-col-reference.component.mjs +96 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col/data-col-view/data-col-view.component.mjs +75 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col-disp/data-col-disp.component.mjs +248 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/data-col-filter.component.mjs +323 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-between-value.mjs +68 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-contains-value.mjs +25 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-in-value.mjs +64 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-slider-value.mjs +42 -0
- package/esm2022/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider.mjs +42 -0
- package/esm2022/modules/ui-kit/components/data-table/data-column-filter/data-column-filter.component.mjs +69 -0
- package/esm2022/modules/ui-kit/components/data-table/data-row/data-row.component.mjs +251 -0
- package/esm2022/modules/ui-kit/components/data-table/data-table/data-table.component.mjs +1534 -0
- package/esm2022/modules/ui-kit/components/data-table/data-table-actions/data-table-actions.component.mjs +153 -0
- package/esm2022/modules/ui-kit/components/data-table/data-table-body/data-table-body.component.mjs +205 -0
- package/esm2022/modules/ui-kit/components/data-table/data-table-check-rows/data-table-check-rows.component.mjs +61 -0
- package/esm2022/modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum.mjs +8 -0
- package/esm2022/modules/ui-kit/components/data-table/data-table-row-actions/data-table-row-actions.component.mjs +120 -0
- package/esm2022/modules/ui-kit/components/data-table/enums/col-filter-types.mjs +17 -0
- package/esm2022/modules/ui-kit/components/data-table/header-row/header-row.component.mjs +14 -0
- package/esm2022/modules/ui-kit/components/data-table/interfaces/data-table-component.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/components/data-table/interfaces/filter-value-executor.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/components/data-table/services/data-table-context.service.mjs +26 -0
- package/esm2022/modules/ui-kit/components/data-table-wrap/data-table-wrap.component.mjs +38 -0
- package/esm2022/modules/ui-kit/components/excel-table/excel-table.component.mjs +164 -0
- package/esm2022/modules/ui-kit/components/excel-table/interface/excel-table.interface.mjs +44 -0
- package/esm2022/modules/ui-kit/components/form/base-form-control/base-form-control.component.mjs +41 -0
- package/esm2022/modules/ui-kit/components/form/checkbox-form-control/checkbox-form-control.component.mjs +21 -0
- package/esm2022/modules/ui-kit/components/form/counter-form-control/counter-form-control.component.mjs +66 -0
- package/esm2022/modules/ui-kit/components/form/form-container/form-container.component.mjs +133 -0
- package/esm2022/modules/ui-kit/components/form/form-group-container/form-group-container.component.mjs +11 -0
- package/esm2022/modules/ui-kit/components/form/input-form-control/input-form-control.component.mjs +20 -0
- package/esm2022/modules/ui-kit/components/form/multivalue-form-control/custom-input/custom-input.component.mjs +35 -0
- package/esm2022/modules/ui-kit/components/form/multivalue-form-control/custom-input/old-new-value.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/components/form/multivalue-form-control/multivalue-form-control.component.mjs +66 -0
- package/esm2022/modules/ui-kit/components/form/radio-form-control/radio-form-control.component.mjs +19 -0
- package/esm2022/modules/ui-kit/components/form/select-form-control/select-form-control.component.mjs +78 -0
- package/esm2022/modules/ui-kit/components/form/selection-group-container/selection-group-container.component.mjs +18 -0
- package/esm2022/modules/ui-kit/components/form/textarea-form-control/textarea-form-control.component.mjs +20 -0
- package/esm2022/modules/ui-kit/components/icon/expand-collapse-icon/expand-collapse-icon.component.mjs +26 -0
- package/esm2022/modules/ui-kit/components/icon/icon/icon.component.mjs +35 -0
- package/esm2022/modules/ui-kit/components/icon/text-icon/text-icon.component.mjs +22 -0
- package/esm2022/modules/ui-kit/components/layouts/form-layout/form-layout.component.mjs +56 -0
- package/esm2022/modules/ui-kit/components/layouts/primary-layout/primary-layout.component.mjs +11 -0
- package/esm2022/modules/ui-kit/components/loader/loader.component.mjs +27 -0
- package/esm2022/modules/ui-kit/components/mat-actions-button/mat-actions-button.mjs +34 -0
- package/esm2022/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component.mjs +53 -0
- package/esm2022/modules/ui-kit/components/modals/confirm-modal/confirm-modal.component.mjs +37 -0
- package/esm2022/modules/ui-kit/components/modals/delete-modal/delete-modal.component.mjs +41 -0
- package/esm2022/modules/ui-kit/components/modals/enums/confirmation-modal.enum.mjs +13 -0
- package/esm2022/modules/ui-kit/components/snackbar/snackbar.component.mjs +21 -0
- package/esm2022/modules/ui-kit/components/tabs/constants/index.mjs +2 -0
- package/esm2022/modules/ui-kit/components/tabs/interfaces/index.mjs +2 -0
- package/esm2022/modules/ui-kit/components/tabs/tab-group/tab-group.component.mjs +77 -0
- package/esm2022/modules/ui-kit/components/tabs/tab.directive.mjs +60 -0
- package/esm2022/modules/ui-kit/components/tree-view/tree-view.component.mjs +374 -0
- package/esm2022/modules/ui-kit/constants/data-table.constants.mjs +7 -0
- package/esm2022/modules/ui-kit/constants/snackbar.constants.mjs +4 -0
- package/esm2022/modules/ui-kit/enums/coderefs-prop.enum.mjs +26 -0
- package/esm2022/modules/ui-kit/enums/color-schemes.enum.mjs +13 -0
- package/esm2022/modules/ui-kit/enums/column-disable-mode.enum.mjs +7 -0
- package/esm2022/modules/ui-kit/enums/column-types.enum.mjs +10 -0
- package/esm2022/modules/ui-kit/enums/component-sizes.enum.mjs +6 -0
- package/esm2022/modules/ui-kit/enums/form-item-type.mjs +7 -0
- package/esm2022/modules/ui-kit/enums/form-types.enum.mjs +7 -0
- package/esm2022/modules/ui-kit/enums/form-url-params.enum.mjs +6 -0
- package/esm2022/modules/ui-kit/enums/icons.enum.mjs +24 -0
- package/esm2022/modules/ui-kit/enums/position.enum.mjs +6 -0
- package/esm2022/modules/ui-kit/enums/select-option.enum.mjs +10 -0
- package/esm2022/modules/ui-kit/enums/snackbar.enum.mjs +8 -0
- package/esm2022/modules/ui-kit/enums/url-param-action.enum.mjs +6 -0
- package/esm2022/modules/ui-kit/enums/viewType.enum.mjs +7 -0
- package/esm2022/modules/ui-kit/interfaces/api.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/confirm-modal-data.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/constants.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/data-table.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/form.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/generic.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/list-item.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/mat-action-buttons.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/row-selection-info.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/select.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/snackbar.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/interfaces/tree-view.interface.mjs +2 -0
- package/esm2022/modules/ui-kit/pipes/column-filter.pipe.mjs +21 -0
- package/esm2022/modules/ui-kit/pipes/filter-by-prop.pipe.mjs +27 -0
- package/esm2022/modules/ui-kit/pipes/first-letter-text.pipe.mjs +17 -0
- package/esm2022/modules/ui-kit/pipes/keys.pipe.mjs +17 -0
- package/esm2022/modules/ui-kit/pipes/paginate.pipe.mjs +29 -0
- package/esm2022/modules/ui-kit/pipes/search.pipe.mjs +50 -0
- package/esm2022/modules/ui-kit/services/data-table.service.mjs +202 -0
- package/esm2022/modules/ui-kit/services/form.service.mjs +91 -0
- package/esm2022/modules/ui-kit/services/mappers/form-data-table-mapper.service.mjs +19 -0
- package/esm2022/modules/ui-kit/services/snackbar.service.mjs +43 -0
- package/esm2022/modules/ui-kit/services/url.service.mjs +17 -0
- package/esm2022/modules/ui-kit/types/basic.type.mjs +2 -0
- package/esm2022/modules/ui-kit/types/function.type.mjs +2 -0
- package/esm2022/modules/ui-kit/types/select.type.mjs +2 -0
- package/esm2022/modules/ui-kit/ui-kit.module.mjs +370 -0
- package/esm2022/public-api.mjs +85 -0
- package/esm2022/shared-pipes/pipes/search.pipe.mjs +48 -0
- package/esm2022/shared-ui-test-1.mjs +5 -0
- package/esm2022/shared.module.mjs +57 -0
- package/fesm2022/shared-ui-test-1.mjs +10516 -0
- package/fesm2022/shared-ui-test-1.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/modules/dynamic-cards/directives/flip-card.directive.d.ts +15 -0
- package/modules/dynamic-cards/dynamic-card/card-list-container/card-list-container.component.d.ts +10 -0
- package/modules/dynamic-cards/dynamic-card/dynamic-card/dynamic-card.component.d.ts +7 -0
- package/modules/dynamic-cards/dynamic-card/dynamic-card-back/dynamic-card-back.component.d.ts +7 -0
- package/modules/dynamic-cards/dynamic-card/dynamic-card-footer/dynamic-card-footer.component.d.ts +10 -0
- package/modules/dynamic-cards/dynamic-card/dynamic-card-front/dynamic-card-front.component.d.ts +8 -0
- package/modules/dynamic-cards/dynamic-cards.module.d.ts +18 -0
- package/modules/dynamic-cards/interface/card-list.interface.d.ts +9 -0
- package/modules/dynamic-cards/interface/card.interface.d.ts +12 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-button-control/dynamic-form-button-control.component.d.ts +11 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-checkbox-control/dynamic-form-checkbox-control.component.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-control-label/dynamic-form-control-label.component.d.ts +7 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-counter-control/dynamic-form-counter-control.component.d.ts +13 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-datepicker-control/dynamic-form-datepicker-control.component.d.ts +13 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field-control.component.d.ts +34 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-field-control/dynamic-form-field.matcher.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-input-control/dynamic-form-input-control.component.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ng-select-control/dynamic-form-ng-select-control.component.d.ts +11 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/dynamic-form-radio-group.component.d.ts +12 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-radio-group/enum/radio-group-orientation.enum.d.ts +4 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-select-control/dynamic-form-select-control.component.d.ts +10 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-switch-control/dynamic-form-switch-control.component.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-text-area-control/dynamic-form-text-area-control.component.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control-list/dynamic-form-ui-control-list.component.d.ts +26 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/controls/dynamic-form-ui-control/dynamic-form-ui-control.component.d.ts +14 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/base-form-actions.component.d.ts +19 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/enums/base-form-action-types.d.ts +5 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/base-form-actions/interfaces/base-form-action.interface.d.ts +5 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form/dynamic-form-ui.component.d.ts +26 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-array/dynamic-form-ui-array.component.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-group/dynamic-form-group.component.d.ts +11 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout-item/dynamic-form-layout-item.component.d.ts +23 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/dynamic-form-layout/dynamic-form-layout.component.d.ts +21 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/enums/form-field-css-class.enum.d.ts +7 -0
- package/modules/dynamic-forms/dynamic-form-UI/components/errors-block/errors-block.component.d.ts +11 -0
- package/modules/dynamic-forms/dynamic-form-UI/dynamic-form-ui.module.d.ts +32 -0
- package/modules/dynamic-forms/dynamic-form-UI/providers/ui-form-control-map.provider.d.ts +6 -0
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-array.component.d.ts +10 -0
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-component.d.ts +26 -0
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control-container.component.d.ts +57 -0
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-control.component.d.ts +42 -0
- package/modules/dynamic-forms/dynamic-forms-core/components/dynamic-form-layout.component.d.ts +28 -0
- package/modules/dynamic-forms/dynamic-forms-core/constants/form-errors.constant.d.ts +6 -0
- package/modules/dynamic-forms/dynamic-forms-core/constants/matchers/matchers.constant.d.ts +6 -0
- package/modules/dynamic-forms/dynamic-forms-core/constants/reg-exp-error.constant.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-id.directive.d.ts +11 -0
- package/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-list.directive.d.ts +11 -0
- package/modules/dynamic-forms/dynamic-forms-core/directives/dynamic-template.directive.d.ts +13 -0
- package/modules/dynamic-forms/dynamic-forms-core/dynamic-form-core.module.d.ts +12 -0
- package/modules/dynamic-forms/dynamic-forms-core/enums/autocomplete.enum.d.ts +4 -0
- package/modules/dynamic-forms/dynamic-forms-core/enums/control-types.enum.d.ts +20 -0
- package/modules/dynamic-forms/dynamic-forms-core/enums/form-control-events.enum.d.ts +6 -0
- package/modules/dynamic-forms/dynamic-forms-core/enums/form-hooks.enum.d.ts +5 -0
- package/modules/dynamic-forms/dynamic-forms-core/enums/input-types.enum.d.ts +18 -0
- package/modules/dynamic-forms/dynamic-forms-core/enums/matcher-types.enum.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-forms-core/enums/template-directive-alignment.d.ts +4 -0
- package/modules/dynamic-forms/dynamic-forms-core/enums/textarea-wrap.enum.d.ts +4 -0
- package/modules/dynamic-forms/dynamic-forms-core/index.d.ts +38 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control-event.interface.d.ts +15 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/components/form-control/dynamic-form-control.interface.d.ts +19 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/dynamic-form/dynamic-form-model.interface.d.ts +4 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-control-layout.interface.d.ts +3 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout-config.interface.d.ts +6 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/layout/form-layout.interface.d.ts +2 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/matchers/form-control-matcher.interface.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-array/form-array-model-config.interface.d.ts +7 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-button-control/button-control-model-config.interface.d.ts +4 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-check-control/check-control-model-config.interface.d.ts +4 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-model-config.interface.d.ts +16 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-control/form-control-relation.interface.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-date-control/date-control-model-config.interface.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-group/form-group-model-config.interface.d.ts +6 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-input-control/form-input-control-config.interface.d.ts +14 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-number-control/form-number-control-config.interface.d.ts +7 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option/form-option-config.interface.d.ts +5 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-option-control/form-option-control-config.interface.d.ts +6 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/button-control-model-config.interface.d.ts +6 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/checkbox-control-model-config.interface.d.ts +5 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/datepicker-control-model-config.interface.d.ts +11 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/input-control-model-config.interface.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/radio-group-model-config.interface.d.ts +4 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/select-control-model-config.interface.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/switch-control-model-config.interface.d.ts +5 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-ui-models/textarea-control-model-config.interface.d.ts +6 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/models/form-value-control/form-value-control.interface.d.ts +10 -0
- package/modules/dynamic-forms/dynamic-forms-core/interfaces/validators/validators.interface.d.ts +5 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-array/dynamic-form-array.model.d.ts +19 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-array/form-array-group/dynamic-form-array-group.model.d.ts +12 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-button-control/dynamic-button-control.model.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-check-control/dynamic-check-control.model.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-control/dynamic-form-control.model.d.ts +24 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-date-control/dynamic-date-control.model.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-group/dynamic-form-group.model.d.ts +17 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-input-control/dynamic-input-control.model.d.ts +16 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-number-control/dynamic-number-control.model.d.ts +12 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-option/form-option.model.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-option-control/dynamic-option-control.model.d.ts +19 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-static-control/static-control.model.d.ts +7 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/button/dynamic-button.model.d.ts +10 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/checkbox/dynamic-checkbox.model.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/counter/dynamic-counter.model.d.ts +7 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/datepicker/dynamic-datepicker.model.d.ts +15 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/input/dynamic-input.model.d.ts +10 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/radio/dynamic-radio-group.model.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/select/dynamic-select.model.d.ts +11 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/switch/dynamic-switch.model.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-ui-models/textarea/dynamic-textarea.model.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/form-value-control/form-value-control.model.d.ts +17 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/layout/enums/FormLayoutControlTypes.enum.d.ts +5 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/layout/layout-control.model.d.ts +9 -0
- package/modules/dynamic-forms/dynamic-forms-core/models/ng-select-control/dynamic-ng-select.model.d.ts +12 -0
- package/modules/dynamic-forms/dynamic-forms-core/pipes/find-dynamic-control-model/find-dynamic-control-model.pipe.d.ts +20 -0
- package/modules/dynamic-forms/dynamic-forms-core/pipes/get-error-from-key-value.pipe.d.ts +8 -0
- package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-component.service.d.ts +14 -0
- package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-layout.service.d.ts +14 -0
- package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form-validation.service.d.ts +11 -0
- package/modules/dynamic-forms/dynamic-forms-core/service/dynamic-form.service.d.ts +30 -0
- package/modules/dynamic-forms/dynamic-forms-core/tokens/dynamic-matchers.token.d.ts +3 -0
- package/modules/dynamic-forms/dynamic-forms-core/tokens/form-control-map.token.d.ts +3 -0
- package/modules/dynamic-forms/dynamic-forms-core/tokens/validators.token.d.ts +3 -0
- package/modules/dynamic-forms/dynamic-forms.module.d.ts +9 -0
- package/modules/material/mat-cdk-module.d.ts +7 -0
- package/modules/material/material.module.d.ts +50 -0
- package/modules/query-builder/components/query-design/query-design.component.d.ts +35 -0
- package/modules/query-builder/components/query-design/rule-line/components/alphanumeric-control/alphanumeric-control.component.d.ts +46 -0
- package/modules/query-builder/components/query-design/rule-line/components/boolean-control/boolean-control.component.d.ts +29 -0
- package/modules/query-builder/components/query-design/rule-line/components/date-control/date-control.component.d.ts +21 -0
- package/modules/query-builder/components/query-design/rule-line/components/numeric-control/numeric-control.component.d.ts +46 -0
- package/modules/query-builder/components/query-design/rule-line/constants/operators-sets.d.ts +12 -0
- package/modules/query-builder/components/query-design/rule-line/helpers/condition-operators.mapper.d.ts +6 -0
- package/modules/query-builder/components/query-design/rule-line/helpers/control-values-mapper.d.ts +7 -0
- package/modules/query-builder/components/query-design/rule-line/rule-line.component.d.ts +64 -0
- package/modules/query-builder/directive/auto-complete-position.directive.d.ts +11 -0
- package/modules/query-builder/interfaces/query-builder.interface.d.ts +61 -0
- package/modules/query-builder/interfaces/select-custom-css-object.d.ts +7 -0
- package/modules/query-builder/query-builder.module.d.ts +18 -0
- package/modules/ui-kit/components/accordion/accordion-content/accordion-content.component.d.ts +8 -0
- package/modules/ui-kit/components/accordion/accordion-trigger.directive.d.ts +10 -0
- package/modules/ui-kit/components/accordion/accordion.directive.d.ts +7 -0
- package/modules/ui-kit/components/banner/banner.component.d.ts +14 -0
- package/modules/ui-kit/components/banner/banner.service.d.ts +27 -0
- package/modules/ui-kit/components/breadcrumbs/breadcrumbs.component.d.ts +15 -0
- package/modules/ui-kit/components/breadcrumbs/model/breadCrumbItem.d.ts +4 -0
- package/modules/ui-kit/components/breadcrumbs/service/breadcrumb.service.d.ts +19 -0
- package/modules/ui-kit/components/breadcrumbs/utils/crumb-service.enum.d.ts +6 -0
- package/modules/ui-kit/components/buttons/button-control/button-control.component.d.ts +16 -0
- package/modules/ui-kit/components/buttons/buttons-list/buttons-list.component.d.ts +5 -0
- package/modules/ui-kit/components/buttons/circle-button/circle-button.component.d.ts +20 -0
- package/modules/ui-kit/components/card-container/card-container.component.d.ts +5 -0
- package/modules/ui-kit/components/common-breadcrumbs/common-breadcrumbs.component.d.ts +20 -0
- package/modules/ui-kit/components/common-breadcrumbs/interface/breadcrumb.interface.d.ts +6 -0
- package/modules/ui-kit/components/common-breadcrumbs/service/breadcrumb.service.d.ts +21 -0
- package/modules/ui-kit/components/data-pagination/data-pagination.component.d.ts +54 -0
- package/modules/ui-kit/components/data-table/api-classes/filter-manager.d.ts +13 -0
- package/modules/ui-kit/components/data-table/api-classes/grid-api.d.ts +31 -0
- package/modules/ui-kit/components/data-table/constants/change-type.enum.d.ts +6 -0
- package/modules/ui-kit/components/data-table/constants/column-id.d.ts +2 -0
- package/modules/ui-kit/components/data-table/constants/row.d.ts +2 -0
- package/modules/ui-kit/components/data-table/data-col/base-data-col/base-data-col.component.d.ts +28 -0
- package/modules/ui-kit/components/data-table/data-col/data-col/data-col.component.d.ts +7 -0
- package/modules/ui-kit/components/data-table/data-col/data-col-action-button/data-col-action-button.component.d.ts +12 -0
- package/modules/ui-kit/components/data-table/data-col/data-col-boolean/data-col-boolean.component.d.ts +8 -0
- package/modules/ui-kit/components/data-table/data-col/data-col-multivalue/data-col-multivalue.component.d.ts +8 -0
- package/modules/ui-kit/components/data-table/data-col/data-col-nested/data-col-nested.component.d.ts +13 -0
- package/modules/ui-kit/components/data-table/data-col/data-col-reference/data-col-reference.component.d.ts +29 -0
- package/modules/ui-kit/components/data-table/data-col/data-col-view/data-col-view.component.d.ts +27 -0
- package/modules/ui-kit/components/data-table/data-col-disp/data-col-disp.component.d.ts +60 -0
- package/modules/ui-kit/components/data-table/data-col-filter/data-col-filter.component.d.ts +85 -0
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-between-value.d.ts +12 -0
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-contains-value.d.ts +9 -0
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-in-value.d.ts +13 -0
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/col-filter-slider-value.d.ts +10 -0
- package/modules/ui-kit/components/data-table/data-col-filter/filter-value-helpers/filter-value-executor-provider.d.ts +11 -0
- package/modules/ui-kit/components/data-table/data-column-filter/data-column-filter.component.d.ts +29 -0
- package/modules/ui-kit/components/data-table/data-row/data-row.component.d.ts +81 -0
- package/modules/ui-kit/components/data-table/data-table/data-table.component.d.ts +302 -0
- package/modules/ui-kit/components/data-table/data-table-actions/data-table-actions.component.d.ts +53 -0
- package/modules/ui-kit/components/data-table/data-table-body/data-table-body.component.d.ts +75 -0
- package/modules/ui-kit/components/data-table/data-table-check-rows/data-table-check-rows.component.d.ts +25 -0
- package/modules/ui-kit/components/data-table/data-table-row-actions/const/data-table-actions.enum.d.ts +6 -0
- package/modules/ui-kit/components/data-table/data-table-row-actions/data-table-row-actions.component.d.ts +42 -0
- package/modules/ui-kit/components/data-table/enums/col-filter-types.d.ts +14 -0
- package/modules/ui-kit/components/data-table/header-row/header-row.component.d.ts +7 -0
- package/modules/ui-kit/components/data-table/interfaces/data-table-component.interface.d.ts +28 -0
- package/modules/ui-kit/components/data-table/interfaces/filter-value-executor.interface.d.ts +12 -0
- package/modules/ui-kit/components/data-table/services/data-table-context.service.d.ts +12 -0
- package/modules/ui-kit/components/data-table-wrap/data-table-wrap.component.d.ts +13 -0
- package/modules/ui-kit/components/excel-table/excel-table.component.d.ts +28 -0
- package/modules/ui-kit/components/excel-table/interface/excel-table.interface.d.ts +29 -0
- package/modules/ui-kit/components/form/base-form-control/base-form-control.component.d.ts +17 -0
- package/modules/ui-kit/components/form/checkbox-form-control/checkbox-form-control.component.d.ts +8 -0
- package/modules/ui-kit/components/form/counter-form-control/counter-form-control.component.d.ts +21 -0
- package/modules/ui-kit/components/form/form-container/form-container.component.d.ts +45 -0
- package/modules/ui-kit/components/form/form-group-container/form-group-container.component.d.ts +5 -0
- package/modules/ui-kit/components/form/input-form-control/input-form-control.component.d.ts +8 -0
- package/modules/ui-kit/components/form/multivalue-form-control/custom-input/custom-input.component.d.ts +15 -0
- package/modules/ui-kit/components/form/multivalue-form-control/custom-input/old-new-value.interface.d.ts +4 -0
- package/modules/ui-kit/components/form/multivalue-form-control/multivalue-form-control.component.d.ts +26 -0
- package/modules/ui-kit/components/form/radio-form-control/radio-form-control.component.d.ts +8 -0
- package/modules/ui-kit/components/form/select-form-control/select-form-control.component.d.ts +32 -0
- package/modules/ui-kit/components/form/selection-group-container/selection-group-container.component.d.ts +7 -0
- package/modules/ui-kit/components/form/textarea-form-control/textarea-form-control.component.d.ts +8 -0
- package/modules/ui-kit/components/icon/expand-collapse-icon/expand-collapse-icon.component.d.ts +11 -0
- package/modules/ui-kit/components/icon/icon/icon.component.d.ts +14 -0
- package/modules/ui-kit/components/icon/text-icon/text-icon.component.d.ts +10 -0
- package/modules/ui-kit/components/layouts/form-layout/form-layout.component.d.ts +29 -0
- package/modules/ui-kit/components/layouts/primary-layout/primary-layout.component.d.ts +5 -0
- package/modules/ui-kit/components/loader/loader.component.d.ts +12 -0
- package/modules/ui-kit/components/mat-actions-button/mat-actions-button.d.ts +14 -0
- package/modules/ui-kit/components/modals/common-confirm-modal/common-confirm-modal.component.d.ts +17 -0
- package/modules/ui-kit/components/modals/confirm-modal/confirm-modal.component.d.ts +13 -0
- package/modules/ui-kit/components/modals/delete-modal/delete-modal.component.d.ts +17 -0
- package/modules/ui-kit/components/modals/enums/confirmation-modal.enum.d.ts +11 -0
- package/modules/ui-kit/components/snackbar/snackbar.component.d.ts +10 -0
- package/modules/ui-kit/components/tabs/constants/index.d.ts +1 -0
- package/modules/ui-kit/components/tabs/interfaces/index.d.ts +3 -0
- package/modules/ui-kit/components/tabs/tab-group/tab-group.component.d.ts +25 -0
- package/modules/ui-kit/components/tabs/tab.directive.d.ts +16 -0
- package/modules/ui-kit/components/tree-view/tree-view.component.d.ts +67 -0
- package/modules/ui-kit/constants/data-table.constants.d.ts +6 -0
- package/modules/ui-kit/constants/snackbar.constants.d.ts +3 -0
- package/modules/ui-kit/enums/coderefs-prop.enum.d.ts +24 -0
- package/modules/ui-kit/enums/color-schemes.enum.d.ts +11 -0
- package/modules/ui-kit/enums/column-disable-mode.enum.d.ts +5 -0
- package/modules/ui-kit/enums/column-types.enum.d.ts +8 -0
- package/modules/ui-kit/enums/component-sizes.enum.d.ts +4 -0
- package/modules/ui-kit/enums/form-item-type.d.ts +5 -0
- package/modules/ui-kit/enums/form-types.enum.d.ts +5 -0
- package/modules/ui-kit/enums/form-url-params.enum.d.ts +4 -0
- package/modules/ui-kit/enums/icons.enum.d.ts +22 -0
- package/modules/ui-kit/enums/position.enum.d.ts +4 -0
- package/modules/ui-kit/enums/select-option.enum.d.ts +8 -0
- package/modules/ui-kit/enums/snackbar.enum.d.ts +6 -0
- package/modules/ui-kit/enums/url-param-action.enum.d.ts +4 -0
- package/modules/ui-kit/enums/viewType.enum.d.ts +5 -0
- package/modules/ui-kit/interfaces/api.interface.d.ts +45 -0
- package/modules/ui-kit/interfaces/confirm-modal-data.interface.d.ts +7 -0
- package/modules/ui-kit/interfaces/constants.interface.d.ts +4 -0
- package/modules/ui-kit/interfaces/data-table.interface.d.ts +253 -0
- package/modules/ui-kit/interfaces/form.interface.d.ts +21 -0
- package/modules/ui-kit/interfaces/generic.interface.d.ts +7 -0
- package/modules/ui-kit/interfaces/list-item.interface.d.ts +5 -0
- package/modules/ui-kit/interfaces/mat-action-buttons.interface.d.ts +14 -0
- package/modules/ui-kit/interfaces/row-selection-info.interface.d.ts +7 -0
- package/modules/ui-kit/interfaces/select.interface.d.ts +8 -0
- package/modules/ui-kit/interfaces/snackbar.interface.d.ts +4 -0
- package/modules/ui-kit/interfaces/tree-view.interface.d.ts +49 -0
- package/modules/ui-kit/pipes/column-filter.pipe.d.ts +12 -0
- package/modules/ui-kit/pipes/filter-by-prop.pipe.d.ts +9 -0
- package/modules/ui-kit/pipes/first-letter-text.pipe.d.ts +7 -0
- package/modules/ui-kit/pipes/keys.pipe.d.ts +7 -0
- package/modules/ui-kit/pipes/paginate.pipe.d.ts +12 -0
- package/modules/ui-kit/pipes/search.pipe.d.ts +16 -0
- package/modules/ui-kit/services/data-table.service.d.ts +37 -0
- package/modules/ui-kit/services/form.service.d.ts +26 -0
- package/modules/ui-kit/services/mappers/form-data-table-mapper.service.d.ts +8 -0
- package/modules/ui-kit/services/snackbar.service.d.ts +15 -0
- package/modules/ui-kit/services/url.service.d.ts +7 -0
- package/modules/ui-kit/types/basic.type.d.ts +2 -0
- package/modules/ui-kit/types/function.type.d.ts +20 -0
- package/modules/ui-kit/types/select.type.d.ts +2 -0
- package/modules/ui-kit/ui-kit.module.d.ts +79 -0
- package/package.json +45 -0
- package/public-api.d.ts +84 -0
- package/shared-pipes/pipes/search.pipe.d.ts +15 -0
- package/shared.module.d.ts +13 -0
package/esm2022/modules/ui-kit/components/data-table/data-col-disp/data-col-disp.component.mjs
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { Component, EventEmitter, Inject, Output } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import { cloneDeep } from 'lodash';
|
|
4
|
+
import { SourceTypesEnum } from 'idp-apps-shared-ui/enums/source-types.enum';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "idp-apps-shared-ui/core/services/local-storage.service";
|
|
7
|
+
import * as i2 from "../../../../../modules/ui-kit/components/banner/banner.service";
|
|
8
|
+
import * as i3 from "@angular/material/dialog";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "@angular/material/button";
|
|
11
|
+
import * as i6 from "@angular/material/card";
|
|
12
|
+
import * as i7 from "@angular/material/icon";
|
|
13
|
+
import * as i8 from "@angular/material/tooltip";
|
|
14
|
+
import * as i9 from "@angular/flex-layout/extended";
|
|
15
|
+
export class DataColDispComponent {
|
|
16
|
+
constructor(localStorageService, banner, dialogRef, data) {
|
|
17
|
+
this.localStorageService = localStorageService;
|
|
18
|
+
this.banner = banner;
|
|
19
|
+
this.dialogRef = dialogRef;
|
|
20
|
+
this.data = data;
|
|
21
|
+
this.selectedInLeftPanel = [];
|
|
22
|
+
this.selectedInRightPanel = [];
|
|
23
|
+
this.onVisibleColumnListChange = new EventEmitter();
|
|
24
|
+
this.sourceTypes = SourceTypesEnum;
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this.backupPreviouslyColumnVisibleList = cloneDeep(this.data.columns);
|
|
28
|
+
this.columnNames = this.data.columns.filter((item) => item.isVisible)
|
|
29
|
+
.map((x) => {
|
|
30
|
+
return { header: x.header, prop: x.prop, isMetadataColumn: x.isMetaDataColumn };
|
|
31
|
+
});
|
|
32
|
+
this.columnsAvailable = this.data.defaultSortedColumns;
|
|
33
|
+
this.onVisibleColumnListChange.emit(this.columnNames);
|
|
34
|
+
}
|
|
35
|
+
leftItemClicked(column) {
|
|
36
|
+
const index = this.selectedInLeftPanel.findIndex((item) => item.prop === column.prop);
|
|
37
|
+
if (index === -1) {
|
|
38
|
+
this.selectedInLeftPanel.push(column);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.selectedInLeftPanel.splice(index, 1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
leftSelected(column) {
|
|
45
|
+
const index = this.selectedInLeftPanel.findIndex((item) => item.prop === column.prop);
|
|
46
|
+
return index > -1;
|
|
47
|
+
}
|
|
48
|
+
rightItemClicked(column) {
|
|
49
|
+
const index = this.selectedInRightPanel.findIndex((item) => item.prop === column.prop);
|
|
50
|
+
if (index === -1) {
|
|
51
|
+
this.selectedInRightPanel.push(column);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.selectedInRightPanel.splice(index, 1);
|
|
55
|
+
}
|
|
56
|
+
this.selectedInRightPanel = this.sortSelectedPanel();
|
|
57
|
+
}
|
|
58
|
+
sortSelectedPanel() {
|
|
59
|
+
var result = [];
|
|
60
|
+
var selectedPanel = this.selectedInRightPanel;
|
|
61
|
+
this.columnNames.forEach(function (column) {
|
|
62
|
+
selectedPanel = selectedPanel.filter(function (item) {
|
|
63
|
+
if (item.prop == column.prop) {
|
|
64
|
+
result.push(item);
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
rightSelected(column) {
|
|
72
|
+
const index = this.selectedInRightPanel.findIndex((item) => item.prop === column.prop);
|
|
73
|
+
return index > -1;
|
|
74
|
+
}
|
|
75
|
+
singleRightClicked() {
|
|
76
|
+
this.setColumnNamesFromStorage(this.selectedInLeftPanel);
|
|
77
|
+
this.makeVisible(this.selectedInLeftPanel);
|
|
78
|
+
}
|
|
79
|
+
setColumnNamesFromStorage(selectedColumns) {
|
|
80
|
+
if (!this.data.storageKey) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const columns = selectedColumns.filter(x => {
|
|
84
|
+
const index = this.columnNames.findIndex((value) => value.prop === x.prop);
|
|
85
|
+
return index < 0;
|
|
86
|
+
}).map(function (item) {
|
|
87
|
+
return { header: item.header, prop: item.prop, isMetadataColumn: item.isMetaDataColumn };
|
|
88
|
+
});
|
|
89
|
+
columns.forEach(x => this.columnNames.push(x));
|
|
90
|
+
}
|
|
91
|
+
doubleRightClicked() {
|
|
92
|
+
this.setColumnNamesFromStorage(this.columnsAvailable);
|
|
93
|
+
this.makeVisible(this.columnsAvailable);
|
|
94
|
+
}
|
|
95
|
+
singleLeftClicked() {
|
|
96
|
+
const toBeRemoved = this.selectedInRightPanel.map(x => x.prop);
|
|
97
|
+
this.columnNames = this.columnNames.filter(x => !toBeRemoved.includes(x.prop));
|
|
98
|
+
this.selectedInRightPanel = [];
|
|
99
|
+
this.selectedInLeftPanel = [];
|
|
100
|
+
this.onVisibleColumnListChange.emit(this.columnNames);
|
|
101
|
+
}
|
|
102
|
+
doubleLeftClicked() {
|
|
103
|
+
this.columnNames = [];
|
|
104
|
+
this.selectedInRightPanel = [];
|
|
105
|
+
this.selectedInLeftPanel = [];
|
|
106
|
+
this.onVisibleColumnListChange.emit([]);
|
|
107
|
+
}
|
|
108
|
+
okClicked() {
|
|
109
|
+
this.data.status = 'OK';
|
|
110
|
+
this.data.columns = this.completeSet();
|
|
111
|
+
this.data.columns.some(c => c.isVisible)
|
|
112
|
+
? this.closeDialog(this.data)
|
|
113
|
+
: this.backupPreviouslyVisibleColumn(this.data.status);
|
|
114
|
+
}
|
|
115
|
+
cancelClicked() {
|
|
116
|
+
this.data.status = 'CANCEL';
|
|
117
|
+
this.backupPreviouslyVisibleColumn(this.data.status);
|
|
118
|
+
this.closeDialog(this.data);
|
|
119
|
+
}
|
|
120
|
+
backupPreviouslyVisibleColumn(status) {
|
|
121
|
+
this.backupPreviouslyColumnVisibleList.forEach((element, index) => {
|
|
122
|
+
this.data.columns[index].isVisible = element.isVisible;
|
|
123
|
+
});
|
|
124
|
+
if (status === 'OK') {
|
|
125
|
+
this.emptySaveWarning();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
emptySaveWarning() {
|
|
129
|
+
this.banner.warning(`Column Configuration can't be saved without columns`);
|
|
130
|
+
}
|
|
131
|
+
sortupClicked() {
|
|
132
|
+
this.resortingSelectedRightColumnList();
|
|
133
|
+
this.selectedInRightPanel.filter(x => x).forEach((selecteditem) => {
|
|
134
|
+
const index = this.columnNames.findIndex((item) => item.prop === selecteditem.prop);
|
|
135
|
+
if (index > 0) {
|
|
136
|
+
const selectedIndex = this.selectedInRightPanel.findIndex(x => x.prop == this.columnNames[index - 1].prop);
|
|
137
|
+
if (selectedIndex < 0) {
|
|
138
|
+
this.columnNames = this.swapElements(this.columnNames, index, -1);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
this.selectedInRightPanel = this.sortSelectedPanel();
|
|
143
|
+
}
|
|
144
|
+
sortdownClicked() {
|
|
145
|
+
this.resortingSelectedRightColumnList();
|
|
146
|
+
this.selectedInRightPanel.sort((a, b) => this.columnNames.indexOf(a) - this.columnNames.indexOf(b));
|
|
147
|
+
this.selectedInRightPanel.reverse().forEach((selecteditem) => {
|
|
148
|
+
const index = this.columnNames.findIndex((item) => item.prop === selecteditem.prop);
|
|
149
|
+
if (index < this.columnNames.length - 1) {
|
|
150
|
+
const selectedIndex = this.selectedInRightPanel.findIndex(x => x.prop == this.columnNames[index + 1].prop);
|
|
151
|
+
if (selectedIndex < 0) {
|
|
152
|
+
this.columnNames = this.swapElements(this.columnNames, index, 1);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
this.selectedInRightPanel = this.sortSelectedPanel();
|
|
157
|
+
}
|
|
158
|
+
closeDialog(data) {
|
|
159
|
+
this.dialogRef.close(data);
|
|
160
|
+
}
|
|
161
|
+
makeVisible(selectedSet) {
|
|
162
|
+
selectedSet.forEach((item) => {
|
|
163
|
+
const tempColumnIndex = this.columnNames.findIndex(x => x.prop === item.prop);
|
|
164
|
+
if (tempColumnIndex < 0) {
|
|
165
|
+
item.isVisible = true;
|
|
166
|
+
this.columnNames.push({ header: item.header, prop: item.prop, isMetadataColumn: item.isMetaDataColumn });
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
this.selectedInRightPanel = [];
|
|
170
|
+
this.selectedInLeftPanel = [];
|
|
171
|
+
this.onVisibleColumnListChange.emit(this.columnNames);
|
|
172
|
+
}
|
|
173
|
+
completeSet() {
|
|
174
|
+
const tempCollection = this.columnNames.map((item) => {
|
|
175
|
+
const tempColumn = this.columnsAvailable.find(x => x.prop === item.prop);
|
|
176
|
+
if (tempColumn) {
|
|
177
|
+
tempColumn.isVisible = true;
|
|
178
|
+
}
|
|
179
|
+
return tempColumn;
|
|
180
|
+
});
|
|
181
|
+
// added invisible columns at the end to complete the set
|
|
182
|
+
this.columnsAvailable.filter(item => this.columnNames.findIndex(x => x.prop === item.prop) < 0)
|
|
183
|
+
.forEach((item) => {
|
|
184
|
+
item.isVisible = false;
|
|
185
|
+
tempCollection.push(item);
|
|
186
|
+
});
|
|
187
|
+
this.localStorageService.setItem(this.data.storageKey, this.columnNames);
|
|
188
|
+
return tempCollection;
|
|
189
|
+
}
|
|
190
|
+
swapElements(columns, index, direction) {
|
|
191
|
+
let tempColumnIndex = index + direction;
|
|
192
|
+
if (tempColumnIndex >= 0 && tempColumnIndex < columns.length) {
|
|
193
|
+
const tempColumn = columns[tempColumnIndex];
|
|
194
|
+
columns[tempColumnIndex] = columns[index];
|
|
195
|
+
columns[index] = tempColumn;
|
|
196
|
+
}
|
|
197
|
+
return columns;
|
|
198
|
+
}
|
|
199
|
+
hasMetadataSeparation(columns) {
|
|
200
|
+
return columns.filter(x => x.isMetaDataColumn).length !== 0;
|
|
201
|
+
}
|
|
202
|
+
sortingAvailbleColumns() {
|
|
203
|
+
if (!this.availableColumnsSortingActionStatus) {
|
|
204
|
+
this.columnsAvailable = this.columnsAvailable.sort((a, b) => a.header > b.header ? 1 : -1);
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
this.columnsAvailable = this.columnsAvailable.sort((a, b) => a.header > b.header ? -1 : 1);
|
|
208
|
+
}
|
|
209
|
+
this.availableColumnsSortingActionStatus = !this.availableColumnsSortingActionStatus;
|
|
210
|
+
}
|
|
211
|
+
sortingDisplayColumns() {
|
|
212
|
+
if (!this.displayColumnsSortingActionStatus) {
|
|
213
|
+
this.columnNames = this.columnNames.sort((a, b) => a.header > b.header ? 1 : -1);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
this.columnNames = this.columnNames.sort((a, b) => a.header > b.header ? -1 : 1);
|
|
217
|
+
}
|
|
218
|
+
this.displayColumnsSortingActionStatus = !this.displayColumnsSortingActionStatus;
|
|
219
|
+
}
|
|
220
|
+
sortupDoubleClicked() {
|
|
221
|
+
this.resortingSelectedRightColumnList();
|
|
222
|
+
this.selectedInRightPanel.reverse().forEach((selecteditem) => {
|
|
223
|
+
this.columnNames.unshift(this.columnNames.splice(this.columnNames.findIndex(item => item.prop === selecteditem.prop), 1)[0]);
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
sortdownDoubleClicked() {
|
|
227
|
+
this.resortingSelectedRightColumnList();
|
|
228
|
+
this.selectedInRightPanel.filter(x => x).forEach((selecteditem) => {
|
|
229
|
+
let index = this.columnNames.findIndex(item => item.prop === selecteditem.prop);
|
|
230
|
+
this.columnNames.push(this.columnNames.splice(index, 1)[0]);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
resortingSelectedRightColumnList() {
|
|
234
|
+
this.selectedInRightPanel.sort((a, b) => this.columnNames.indexOf(a) - this.columnNames.indexOf(b));
|
|
235
|
+
}
|
|
236
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataColDispComponent, deps: [{ token: i1.LocalStorageService }, { token: i2.BannerService }, { token: i3.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
237
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DataColDispComponent, selector: "app-data-col-disp", outputs: { onVisibleColumnListChange: "onVisibleColumnListChange" }, ngImport: i0, template: "<mat-card>\n <mat-card-title class=\"header data-col-disp\">\n Column Configuration\n <mat-icon (click)=\"cancelClicked()\">close</mat-icon>\n <mat-card-subtitle class=\"text\">\n Use the column configurator to customize your data table to view data relevant to you\n </mat-card-subtitle>\n </mat-card-title>\n <mat-card-content>\n <div class=\"wrapper\">\n <div class=\"content-wrapper d-flex flex-row\">\n <div class=\"left-panel\">\n <div class=\"panel-header\">\n <span>Available Columns</span>\n <span class=\"sorting-icon-position\"><i\n [ngClass]=\"!availableColumnsSortingActionStatus ? 'fa-solid fa-arrow-down-a-z' : 'fa-solid fa-arrow-down-z-a'\"\n [matTooltip]=\"!availableColumnsSortingActionStatus ? 'Click to see columns in asc order.' : 'Click to see columns in desc order.'\"\n [matTooltipPosition]=\"'right'\" (click)=\"sortingAvailbleColumns()\"></i></span>\n </div>\n <div class=\"panel-content-container\">\n <div class=\"panel-content\">\n <div *ngIf=\"!hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnsAvailable\" (click)=\"leftItemClicked(column)\"\n [ngClass]='{selected: leftSelected(column)}'>\n {{column.header}}\n </span>\n </div>\n <div *ngIf=\"hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnsAvailable\" (click)=\"leftItemClicked(column)\"\n [ngClass]='{selected: leftSelected(column)}'>\n {{column.header}}\n <span *ngIf=\"column.isMetaDataColumn\">*</span>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"selection-panel d-flex flex-column\">\n <a class=\"double-left selection\" (click)=\"doubleLeftClicked()\">\n <em class=\"fa-solid fa-angles-left\"></em>\n </a>\n <a class=\"single-left selection\" (click)=\"singleLeftClicked()\">\n <em class=\"fa-solid fa-chevron-left\"></em>\n </a>\n <a class=\"single-right selection\" (click)=\"singleRightClicked()\">\n <em class=\"fa-solid fa-chevron-right\"></em>\n </a>\n <a class=\"double-right selection\" (click)=\"doubleRightClicked()\">\n <em class=\"fa-solid fa-angles-right\"></em>\n </a>\n </div>\n <div class=\"right-panel\">\n <div class=\"panel-header\">\n <span>Displayed Columns</span>\n <span class=\"sorting-icon-position\"><i\n [ngClass]=\"!displayColumnsSortingActionStatus ? 'fa-solid fa-arrow-down-a-z' : 'fa-solid fa-arrow-down-z-a'\"\n [matTooltip]=\"!displayColumnsSortingActionStatus ? 'Click to see columns in asc order.' : 'Click to see columns in desc order.'\"\n [matTooltipPosition]=\"'right'\" (click)=\"sortingDisplayColumns()\"></i></span>\n </div>\n <div class=\"panel-content-container\">\n <div class=\"panel-content\">\n <div *ngIf=\"!hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnNames\" (click)=\"rightItemClicked(column)\"\n [ngClass]='{selected: rightSelected(column)}'>\n {{column.header}}\n </span>\n </div>\n <div *ngIf=\"hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnNames\" (click)=\"rightItemClicked(column)\"\n [ngClass]='{selected: rightSelected(column)}'>\n {{column.header}}\n <span *ngIf=\"column.isMetadataColumn\">*</span>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sort-panel flex-column\">\n <a class=\"double-left selection\" (click)=\"sortupDoubleClicked()\">\n <em class=\"fa-solid fa-angles-up\"></em>\n </a>\n <a class=\"single-left selection\" (click)=\"sortupClicked()\">\n <em class=\"fa-solid fa-chevron-up\"></em>\n </a>\n <a class=\"single-right selection\" (click)=\"sortdownClicked()\">\n <em class=\"fa-solid fa-chevron-down\"></em>\n </a>\n <a class=\"double-right selection\" (click)=\"sortdownDoubleClicked()\">\n <em class=\"fa-solid fa-angles-down\"></em>\n </a>\n </div>\n </div>\n </div>\n <div class=\"column-note\" *ngIf=\"hasMetadataSeparation(data.columns)\">\n <span><span class=\"star\">*</span> System generated columns.</span>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-reverse\">\n <button mat-raised-button color=\"primary\" class=\"odp-button\" (click)=\"okClicked()\">OK</button>\n <button mat-flat-button color=\"accent\" class=\"odp-button b-mr\" (click)=\"cancelClicked()\">Cancel</button>\n </mat-card-actions>\n</mat-card>\n", styles: [".wrapper{width:100%}.header{font-family:Proxima-Nova-Semibold;font-size:20px;line-height:32px;color:#000;padding:0}.selection-panel{width:80px;min-height:100%;padding-top:36px;justify-content:center}.right-panel{width:328px;min-height:100%}.sort-panel{display:flex;width:80px;min-height:100%;padding-top:36px;justify-content:center}.panel-header{height:30px;font-size:16px;font-family:Proxima-Nova-Bold,arial,sans-serif;color:#000;margin-bottom:6px}.panel-header i{margin-left:5px;color:#006dfb}.panel-content-container{border:1px solid #dfdfdf;padding:1px;border-radius:5px}.panel-content{padding-top:13px;height:340px;overflow:auto;background-color:#f8f9fb;border-radius:5px}.selection{font-size:20px;text-align:center;cursor:pointer}.selection>em{font-size:20px;color:#006dfb}.sort{width:100%;text-align:center;cursor:pointer;height:27px;line-height:29px;margin:11px 0}.sort>em{font-size:20px;color:#006dfb}.sort.down-sort{padding-top:10px}.spacing{height:20%}.columns{display:block;padding-left:30px;text-align:left;line-height:40px;font-size:16px;width:100%;height:40px;cursor:pointer;color:#444;font-family:Proxima-Nova-Regular,arial,sans-serif}.col-group-family{font-family:Proxima-Nova-Semibold,arial,sans-serif!important}.selected{color:#000;font-family:Proxima-Nova-Semibold,arial,sans-serif}.icon{height:21px;width:20px;color:#006dfb;font-family:\"Font Awesome 5 Pro\";font-size:20px;line-height:21px;text-align:center}.flex-reverse{display:flex;flex-direction:row-reverse}.cancel-button{height:40px;width:81px;border-radius:4px;background-color:#f2f2f2;margin:0 8px;color:#444;font-size:16px;font-weight:500;line-height:21px;text-align:center}.ok-button{height:40px;width:81px;border-radius:4px;background-color:#0768fd;box-shadow:0 4px 8px #00000014,0 4px 8px #0768fd52;color:#fff;font-size:16px;font-weight:500;line-height:24px;text-align:center}.mat-mdc-card{padding:0;box-shadow:none}.selection-panel svg{font-size:22px;color:#0768fd}.selection-panel .selection{height:27px;line-height:29px;margin:11px 0}.sort-panel svg{font-size:22px;color:#0768fd;margin:6px}.data-col-disp .spacing{height:32%}.left-panel{width:328px;min-height:100%}.mat-icon{font-size:21px;float:right;cursor:pointer;color:#636363}.mat-mdc-card .mat-mdc-card-actions{padding-top:16px;margin:0}.column-note{font-weight:700;float:left;margin-top:28px}.column-note span.star{color:#006dfb;font-size:28px;font-weight:100;top:4px;position:relative}.columns span{color:#006dfb;font-size:28px;top:4px;position:relative}.sort-panel a{height:27px;line-height:29px;margin:11px 0}#disable-color-sorting{color:#ccc}.sorting-icon-position{float:right;font-size:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i6.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i6.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i6.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] }); }
|
|
238
|
+
}
|
|
239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataColDispComponent, decorators: [{
|
|
240
|
+
type: Component,
|
|
241
|
+
args: [{ selector: 'app-data-col-disp', template: "<mat-card>\n <mat-card-title class=\"header data-col-disp\">\n Column Configuration\n <mat-icon (click)=\"cancelClicked()\">close</mat-icon>\n <mat-card-subtitle class=\"text\">\n Use the column configurator to customize your data table to view data relevant to you\n </mat-card-subtitle>\n </mat-card-title>\n <mat-card-content>\n <div class=\"wrapper\">\n <div class=\"content-wrapper d-flex flex-row\">\n <div class=\"left-panel\">\n <div class=\"panel-header\">\n <span>Available Columns</span>\n <span class=\"sorting-icon-position\"><i\n [ngClass]=\"!availableColumnsSortingActionStatus ? 'fa-solid fa-arrow-down-a-z' : 'fa-solid fa-arrow-down-z-a'\"\n [matTooltip]=\"!availableColumnsSortingActionStatus ? 'Click to see columns in asc order.' : 'Click to see columns in desc order.'\"\n [matTooltipPosition]=\"'right'\" (click)=\"sortingAvailbleColumns()\"></i></span>\n </div>\n <div class=\"panel-content-container\">\n <div class=\"panel-content\">\n <div *ngIf=\"!hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnsAvailable\" (click)=\"leftItemClicked(column)\"\n [ngClass]='{selected: leftSelected(column)}'>\n {{column.header}}\n </span>\n </div>\n <div *ngIf=\"hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnsAvailable\" (click)=\"leftItemClicked(column)\"\n [ngClass]='{selected: leftSelected(column)}'>\n {{column.header}}\n <span *ngIf=\"column.isMetaDataColumn\">*</span>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"selection-panel d-flex flex-column\">\n <a class=\"double-left selection\" (click)=\"doubleLeftClicked()\">\n <em class=\"fa-solid fa-angles-left\"></em>\n </a>\n <a class=\"single-left selection\" (click)=\"singleLeftClicked()\">\n <em class=\"fa-solid fa-chevron-left\"></em>\n </a>\n <a class=\"single-right selection\" (click)=\"singleRightClicked()\">\n <em class=\"fa-solid fa-chevron-right\"></em>\n </a>\n <a class=\"double-right selection\" (click)=\"doubleRightClicked()\">\n <em class=\"fa-solid fa-angles-right\"></em>\n </a>\n </div>\n <div class=\"right-panel\">\n <div class=\"panel-header\">\n <span>Displayed Columns</span>\n <span class=\"sorting-icon-position\"><i\n [ngClass]=\"!displayColumnsSortingActionStatus ? 'fa-solid fa-arrow-down-a-z' : 'fa-solid fa-arrow-down-z-a'\"\n [matTooltip]=\"!displayColumnsSortingActionStatus ? 'Click to see columns in asc order.' : 'Click to see columns in desc order.'\"\n [matTooltipPosition]=\"'right'\" (click)=\"sortingDisplayColumns()\"></i></span>\n </div>\n <div class=\"panel-content-container\">\n <div class=\"panel-content\">\n <div *ngIf=\"!hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnNames\" (click)=\"rightItemClicked(column)\"\n [ngClass]='{selected: rightSelected(column)}'>\n {{column.header}}\n </span>\n </div>\n <div *ngIf=\"hasMetadataSeparation(data.columns)\">\n <span class=\"columns\" *ngFor=\"let column of columnNames\" (click)=\"rightItemClicked(column)\"\n [ngClass]='{selected: rightSelected(column)}'>\n {{column.header}}\n <span *ngIf=\"column.isMetadataColumn\">*</span>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"sort-panel flex-column\">\n <a class=\"double-left selection\" (click)=\"sortupDoubleClicked()\">\n <em class=\"fa-solid fa-angles-up\"></em>\n </a>\n <a class=\"single-left selection\" (click)=\"sortupClicked()\">\n <em class=\"fa-solid fa-chevron-up\"></em>\n </a>\n <a class=\"single-right selection\" (click)=\"sortdownClicked()\">\n <em class=\"fa-solid fa-chevron-down\"></em>\n </a>\n <a class=\"double-right selection\" (click)=\"sortdownDoubleClicked()\">\n <em class=\"fa-solid fa-angles-down\"></em>\n </a>\n </div>\n </div>\n </div>\n <div class=\"column-note\" *ngIf=\"hasMetadataSeparation(data.columns)\">\n <span><span class=\"star\">*</span> System generated columns.</span>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-reverse\">\n <button mat-raised-button color=\"primary\" class=\"odp-button\" (click)=\"okClicked()\">OK</button>\n <button mat-flat-button color=\"accent\" class=\"odp-button b-mr\" (click)=\"cancelClicked()\">Cancel</button>\n </mat-card-actions>\n</mat-card>\n", styles: [".wrapper{width:100%}.header{font-family:Proxima-Nova-Semibold;font-size:20px;line-height:32px;color:#000;padding:0}.selection-panel{width:80px;min-height:100%;padding-top:36px;justify-content:center}.right-panel{width:328px;min-height:100%}.sort-panel{display:flex;width:80px;min-height:100%;padding-top:36px;justify-content:center}.panel-header{height:30px;font-size:16px;font-family:Proxima-Nova-Bold,arial,sans-serif;color:#000;margin-bottom:6px}.panel-header i{margin-left:5px;color:#006dfb}.panel-content-container{border:1px solid #dfdfdf;padding:1px;border-radius:5px}.panel-content{padding-top:13px;height:340px;overflow:auto;background-color:#f8f9fb;border-radius:5px}.selection{font-size:20px;text-align:center;cursor:pointer}.selection>em{font-size:20px;color:#006dfb}.sort{width:100%;text-align:center;cursor:pointer;height:27px;line-height:29px;margin:11px 0}.sort>em{font-size:20px;color:#006dfb}.sort.down-sort{padding-top:10px}.spacing{height:20%}.columns{display:block;padding-left:30px;text-align:left;line-height:40px;font-size:16px;width:100%;height:40px;cursor:pointer;color:#444;font-family:Proxima-Nova-Regular,arial,sans-serif}.col-group-family{font-family:Proxima-Nova-Semibold,arial,sans-serif!important}.selected{color:#000;font-family:Proxima-Nova-Semibold,arial,sans-serif}.icon{height:21px;width:20px;color:#006dfb;font-family:\"Font Awesome 5 Pro\";font-size:20px;line-height:21px;text-align:center}.flex-reverse{display:flex;flex-direction:row-reverse}.cancel-button{height:40px;width:81px;border-radius:4px;background-color:#f2f2f2;margin:0 8px;color:#444;font-size:16px;font-weight:500;line-height:21px;text-align:center}.ok-button{height:40px;width:81px;border-radius:4px;background-color:#0768fd;box-shadow:0 4px 8px #00000014,0 4px 8px #0768fd52;color:#fff;font-size:16px;font-weight:500;line-height:24px;text-align:center}.mat-mdc-card{padding:0;box-shadow:none}.selection-panel svg{font-size:22px;color:#0768fd}.selection-panel .selection{height:27px;line-height:29px;margin:11px 0}.sort-panel svg{font-size:22px;color:#0768fd;margin:6px}.data-col-disp .spacing{height:32%}.left-panel{width:328px;min-height:100%}.mat-icon{font-size:21px;float:right;cursor:pointer;color:#636363}.mat-mdc-card .mat-mdc-card-actions{padding-top:16px;margin:0}.column-note{font-weight:700;float:left;margin-top:28px}.column-note span.star{color:#006dfb;font-size:28px;font-weight:100;top:4px;position:relative}.columns span{color:#006dfb;font-size:28px;top:4px;position:relative}.sort-panel a{height:27px;line-height:29px;margin:11px 0}#disable-color-sorting{color:#ccc}.sorting-icon-position{float:right;font-size:20px}\n"] }]
|
|
242
|
+
}], ctorParameters: () => [{ type: i1.LocalStorageService }, { type: i2.BannerService }, { type: i3.MatDialogRef }, { type: undefined, decorators: [{
|
|
243
|
+
type: Inject,
|
|
244
|
+
args: [MAT_DIALOG_DATA]
|
|
245
|
+
}] }], propDecorators: { onVisibleColumnListChange: [{
|
|
246
|
+
type: Output
|
|
247
|
+
}] } });
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb2wtZGlzcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvc3JjL21vZHVsZXMvdWkta2l0L2NvbXBvbmVudHMvZGF0YS10YWJsZS9kYXRhLWNvbC1kaXNwL2RhdGEtY29sLWRpc3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9tb2R1bGVzL3VpLWtpdC9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS1jb2wtZGlzcC9kYXRhLWNvbC1kaXNwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl6RSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sUUFBUSxDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0UsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQixZQUNVLG1CQUF3QyxFQUN4QyxNQUFxQixFQUN0QixTQUE2QyxFQUNwQixJQUFnQjtRQUh4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBb0M7UUFDcEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWYzQyx3QkFBbUIsR0FBdUIsRUFBRSxDQUFDO1FBQzdDLHlCQUFvQixHQUFlLEVBQUUsQ0FBQztRQUM1Qiw4QkFBeUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBS2hELGdCQUFXLEdBQTJCLGVBQWUsQ0FBQztJQVN0RSxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxTQUFTLENBQUMsSUFB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QUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUNoRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdDQUFnQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDOytHQTdQVSxvQkFBb0IsOEdBaUJyQixlQUFlO21HQWpCZCxvQkFBb0IsOEhDZmpDLDBtS0FzR0E7OzRGRHZGYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsbUJBQW1COzswQkFzQjFCLE1BQU07MkJBQUMsZUFBZTt5Q0FiUix5QkFBeUI7c0JBQXpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgSURhdGFUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZGF0YS10YWJsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2xpc3QtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFubmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvdWkta2l0L2NvbXBvbmVudHMvYmFubmVyL2Jhbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJ2lkcC1hcHBzLXNoYXJlZC11aS9jb3JlL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBTb3VyY2VUeXBlc0VudW0gfSBmcm9tICdpZHAtYXBwcy1zaGFyZWQtdWkvZW51bXMvc291cmNlLXR5cGVzLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGF0YS1jb2wtZGlzcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWNvbC1kaXNwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS1jb2wtZGlzcC5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIERhdGFDb2xEaXNwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc2VsZWN0ZWRJbkxlZnRQYW5lbDogSURhdGFUYWJsZUNvbHVtbltdID0gW107XG4gIHB1YmxpYyBzZWxlY3RlZEluUmlnaHRQYW5lbDogTGlzdEl0ZW1bXSA9IFtdO1xuICBAT3V0cHV0KCkgcHVibGljIG9uVmlzaWJsZUNvbHVtbkxpc3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGNvbHVtbk5hbWVzOiBMaXN0SXRlbVtdO1xuICBwdWJsaWMgY29sdW1uc0F2YWlsYWJsZTogSURhdGFUYWJsZUNvbHVtbltdO1xuICBwdWJsaWMgYmFja3VwUHJldmlvdXNseUNvbHVtblZpc2libGVMaXN0OiBJRGF0YVRhYmxlQ29sdW1uW107XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2VUeXBlczogdHlwZW9mIFNvdXJjZVR5cGVzRW51bSA9IFNvdXJjZVR5cGVzRW51bTtcbiAgcHVibGljIGF2YWlsYWJsZUNvbHVtbnNTb3J0aW5nQWN0aW9uU3RhdHVzOiBib29sZWFuO1xuICBwdWJsaWMgZGlzcGxheUNvbHVtbnNTb3J0aW5nQWN0aW9uU3RhdHVzOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGJhbm5lcjogQmFubmVyU2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RGF0YUNvbERpc3BDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogRGlhbG9nRGF0YSkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYmFja3VwUHJldmlvdXNseUNvbHVtblZpc2libGVMaXN0ID0gY2xvbmVEZWVwKHRoaXMuZGF0YS5jb2x1bW5zKTtcbiAgICB0aGlzLmNvbHVtbk5hbWVzID0gdGhpcy5kYXRhLmNvbHVtbnMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlzVmlzaWJsZSlcbiAgICAgIC5tYXAoKHgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgaGVhZGVyOiB4LmhlYWRlciwgcHJvcDogeC5wcm9wLCBpc01ldGFkYXRhQ29sdW1uOiB4LmlzTWV0YURhdGFDb2x1bW4gfTtcbiAgICAgIH0pO1xuICAgIHRoaXMuY29sdW1uc0F2YWlsYWJsZSA9IHRoaXMuZGF0YS5kZWZhdWx0U29ydGVkQ29sdW1ucztcbiAgICB0aGlzLm9uVmlzaWJsZUNvbHVtbkxpc3RDaGFuZ2UuZW1pdCh0aGlzLmNvbHVtbk5hbWVzKTtcbiAgfVxuXG4gIHB1YmxpYyBsZWZ0SXRlbUNsaWNrZWQoY29sdW1uOiBJRGF0YVRhYmxlQ29sdW1uKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSW5MZWZ0UGFuZWwuZmluZEluZGV4KChpdGVtOiBJRGF0YVRhYmxlQ29sdW1uKSA9PiBpdGVtLnByb3AgPT09IGNvbHVtbi5wcm9wKTtcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5MZWZ0UGFuZWwucHVzaChjb2x1bW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5MZWZ0UGFuZWwuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbGVmdFNlbGVjdGVkKGNvbHVtbjogSURhdGFUYWJsZUNvbHVtbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEluTGVmdFBhbmVsLmZpbmRJbmRleCgoaXRlbTogSURhdGFUYWJsZUNvbHVtbikgPT4gaXRlbS5wcm9wID09PSBjb2x1bW4ucHJvcCk7XG4gICAgcmV0dXJuIGluZGV4ID4gLTE7XG4gIH1cblxuICBwdWJsaWMgcmlnaHRJdGVtQ2xpY2tlZChjb2x1bW46IExpc3RJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSW5SaWdodFBhbmVsLmZpbmRJbmRleCgoaXRlbTogSURhdGFUYWJsZUNvbHVtbikgPT4gaXRlbS5wcm9wID09PSBjb2x1bW4ucHJvcCk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEluUmlnaHRQYW5lbC5wdXNoKGNvbHVtbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJblJpZ2h0UGFuZWwuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEluUmlnaHRQYW5lbCA9IHRoaXMuc29ydFNlbGVjdGVkUGFuZWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydFNlbGVjdGVkUGFuZWwoKTogTGlzdEl0ZW1bXSB7XG4gICAgdmFyIHJlc3VsdDogTGlzdEl0ZW1bXSA9IFtdO1xuICAgIHZhciBzZWxlY3RlZFBhbmVsID0gdGhpcy5zZWxlY3RlZEluUmlnaHRQYW5lbDtcbiAgICB0aGlzLmNvbHVtbk5hbWVzLmZvckVhY2goZnVuY3Rpb24gKGNvbHVtbikge1xuICAgICAgc2VsZWN0ZWRQYW5lbCA9IHNlbGVjdGVkUGFuZWwuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIGlmIChpdGVtLnByb3AgPT0gY29sdW1uLnByb3ApIHtcbiAgICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgcmlnaHRTZWxlY3RlZChjb2x1bW46IElEYXRhVGFibGVDb2x1bW4pOiBib29sZWFuIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJblJpZ2h0UGFuZWwuZmluZEluZGV4KChpdGVtOiBJRGF0YVRhYmxlQ29sdW1uKSA9PiBpdGVtLnByb3AgPT09IGNvbHVtbi5wcm9wKTtcbiAgICByZXR1cm4gaW5kZXggPiAtMTtcbiAgfVxuXG4gIHB1YmxpYyBzaW5nbGVSaWdodENsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDb2x1bW5OYW1lc0Zyb21TdG9yYWdlKHRoaXMuc2VsZWN0ZWRJbkxlZnRQYW5lbCk7XG4gICAgdGhpcy5tYWtlVmlzaWJsZSh0aGlzLnNlbGVjdGVkSW5MZWZ0UGFuZWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb2x1bW5OYW1lc0Zyb21TdG9yYWdlKHNlbGVjdGVkQ29sdW1uczogSURhdGFUYWJsZUNvbHVtbltdKSB7XG4gICAgaWYgKCF0aGlzLmRhdGEuc3RvcmFnZUtleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb2x1bW5zID0gc2VsZWN0ZWRDb2x1bW5zLmZpbHRlcih4ID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jb2x1bW5OYW1lcy5maW5kSW5kZXgoKHZhbHVlOiBMaXN0SXRlbSkgPT4gdmFsdWUucHJvcCA9PT0geC5wcm9wKTtcbiAgICAgIHJldHVybiBpbmRleCA8IDA7XG4gICAgfSkubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gPExpc3RJdGVtPnsgaGVhZGVyOiBpdGVtLmhlYWRlciwgcHJvcDogaXRlbS5wcm9wLCBpc01ldGFkYXRhQ29sdW1uOiBpdGVtLmlzTWV0YURhdGFDb2x1bW4gfTtcbiAgICB9KTtcbiAgICBjb2x1bW5zLmZvckVhY2goeCA9PiB0aGlzLmNvbHVtbk5hbWVzLnB1c2goeCkpO1xuICB9XG5cbiAgcHVibGljIGRvdWJsZVJpZ2h0Q2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldENvbHVtbk5hbWVzRnJvbVN0b3JhZ2UodGhpcy5jb2x1bW5zQXZhaWxhYmxlKVxuICAgIHRoaXMubWFrZVZpc2libGUodGhpcy5jb2x1bW5zQXZhaWxhYmxlKTtcbiAgfVxuXG4gIHB1YmxpYyBzaW5nbGVMZWZ0Q2xpY2tlZCgpOiB2b2lkIHtcbiAgICBjb25zdCB0b0JlUmVtb3ZlZCA9IHRoaXMuc2VsZWN0ZWRJblJpZ2h0UGFuZWwubWFwKHggPT4geC5wcm9wKTtcbiAgICB0aGlzLmNvbHVtbk5hbWVzID0gdGhpcy5jb2x1bW5OYW1lcy5maWx0ZXIoeCA9PiAhdG9CZVJlbW92ZWQuaW5jbHVkZXMoeC5wcm9wKSk7XG4gICAgdGhpcy5zZWxlY3RlZEluUmlnaHRQYW5lbCA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRJbkxlZnRQYW5lbCA9IFtdO1xuICAgIHRoaXMub25WaXNpYmxlQ29sdW1uTGlzdENoYW5nZS5lbWl0KHRoaXMuY29sdW1uTmFtZXMpO1xuICB9XG5cbiAgcHVibGljIGRvdWJsZUxlZnRDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uTmFtZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkSW5SaWdodFBhbmVsID0gW107XG4gICAgdGhpcy5zZWxlY3RlZEluTGVmdFBhbmVsID0gW107XG4gICAgdGhpcy5vblZpc2libGVDb2x1bW5MaXN0Q2hhbmdlLmVtaXQoW10pO1xuICB9XG5cbiAgcHVibGljIG9rQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEuc3RhdHVzID0gJ09LJztcbiAgICB0aGlzLmRhdGEuY29sdW1ucyA9IHRoaXMuY29tcGxldGVTZXQoKTtcbiAgICB0aGlzLmRhdGEuY29sdW1ucy5zb21lKGMgPT4gYy5pc1Zpc2libGUpXG4gICAgICA/IHRoaXMuY2xvc2VEaWFsb2codGhpcy5kYXRhKVxuICAgICAgOiB0aGlzLmJhY2t1cFByZXZpb3VzbHlWaXNpYmxlQ29sdW1uKHRoaXMuZGF0YS5zdGF0dXMpXG4gIH1cblxuICBwdWJsaWMgY2FuY2VsQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEuc3RhdHVzID0gJ0NBTkNFTCc7XG4gICAgdGhpcy5iYWNrdXBQcmV2aW91c2x5VmlzaWJsZUNvbHVtbih0aGlzLmRhdGEuc3RhdHVzKTtcbiAgICB0aGlzLmNsb3NlRGlhbG9nKHRoaXMuZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgYmFja3VwUHJldmlvdXNseVZpc2libGVDb2x1bW4oc3RhdHVzOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJhY2t1cFByZXZpb3VzbHlDb2x1bW5WaXNpYmxlTGlzdC5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgdGhpcy5kYXRhLmNvbHVtbnNbaW5kZXhdLmlzVmlzaWJsZSA9IGVsZW1lbnQuaXNWaXNpYmxlO1xuICAgIH0pO1xuICAgIGlmIChzdGF0dXMgPT09ICdPSycpIHtcbiAgICAgIHRoaXMuZW1wdHlTYXZlV2FybmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1wdHlTYXZlV2FybmluZygpOiB2b2lkIHtcbiAgICB0aGlzLmJhbm5lci53YXJuaW5nKGBDb2x1bW4gQ29uZmlndXJhdGlvbiBjYW4ndCBiZSBzYXZlZCB3aXRob3V0IGNvbHVtbnNgKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0dXBDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMucmVzb3J0aW5nU2VsZWN0ZWRSaWdodENvbHVtbkxpc3QoKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5SaWdodFBhbmVsLmZpbHRlcih4ID0+IHgpLmZvckVhY2goKHNlbGVjdGVkaXRlbSkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNvbHVtbk5hbWVzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5wcm9wID09PSBzZWxlY3RlZGl0ZW0ucHJvcCk7XG4gICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB0aGlzLnNlbGVjdGVkSW5SaWdodFBhbmVsLmZpbmRJbmRleCh4ID0+IHgucHJvcCA9PSB0aGlzLmNvbHVtbk5hbWVzW2luZGV4IC0gMV0ucHJvcClcbiAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCAwKSB7XG4gICAgICAgICAgdGhpcy5jb2x1bW5OYW1lcyA9IHRoaXMuc3dhcEVsZW1lbnRzKHRoaXMuY29sdW1uTmFtZXMsIGluZGV4LCAtMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSW5SaWdodFBhbmVsID0gdGhpcy5zb3J0U2VsZWN0ZWRQYW5lbCgpO1xuICB9XG5cbiAgcHVibGljIHNvcnRkb3duQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc29ydGluZ1NlbGVjdGVkUmlnaHRDb2x1bW5MaXN0KCk7XG4gICAgdGhpcy5zZWxlY3RlZEluUmlnaHRQYW5lbC5zb3J0KChhLCBiKSA9PiB0aGlzLmNvbHVtbk5hbWVzLmluZGV4T2YoYSkgLSB0aGlzLmNvbHVtbk5hbWVzLmluZGV4T2YoYikpO1xuICAgIHRoaXMuc2VsZWN0ZWRJblJpZ2h0UGFuZWwucmV2ZXJzZSgpLmZvckVhY2goKHNlbGVjdGVkaXRlbSkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNvbHVtbk5hbWVzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5wcm9wID09PSBzZWxlY3RlZGl0ZW0ucHJvcCk7XG4gICAgICBpZiAoaW5kZXggPCB0aGlzLmNvbHVtbk5hbWVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJblJpZ2h0UGFuZWwuZmluZEluZGV4KHggPT4geC5wcm9wID09IHRoaXMuY29sdW1uTmFtZXNbaW5kZXggKyAxXS5wcm9wKVxuICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IDApIHtcbiAgICAgICAgICB0aGlzLmNvbHVtbk5hbWVzID0gdGhpcy5zd2FwRWxlbWVudHModGhpcy5jb2x1bW5OYW1lcywgaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEluUmlnaHRQYW5lbCA9IHRoaXMuc29ydFNlbGVjdGVkUGFuZWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VEaWFsb2coZGF0YTogRGlhbG9nRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlVmlzaWJsZShzZWxlY3RlZFNldDogSURhdGFUYWJsZUNvbHVtbltdKTogdm9pZCB7XG4gICAgc2VsZWN0ZWRTZXQuZm9yRWFjaCgoaXRlbTogSURhdGFUYWJsZUNvbHVtbikgPT4ge1xuICAgICAgY29uc3QgdGVtcENvbHVtbkluZGV4ID0gdGhpcy5jb2x1bW5OYW1lcy5maW5kSW5kZXgoeCA9PiB4LnByb3AgPT09IGl0ZW0ucHJvcCk7XG4gICAgICBpZiAodGVtcENvbHVtbkluZGV4IDwgMCkge1xuICAgICAgICBpdGVtLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuY29sdW1uTmFtZXMucHVzaCh7IGhlYWRlcjogaXRlbS5oZWFkZXIsIHByb3A6IGl0ZW0ucHJvcCwgaXNNZXRhZGF0YUNvbHVtbjogaXRlbS5pc01ldGFEYXRhQ29sdW1uIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRJblJpZ2h0UGFuZWwgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkSW5MZWZ0UGFuZWwgPSBbXTtcbiAgICB0aGlzLm9uVmlzaWJsZUNvbHVtbkxpc3RDaGFuZ2UuZW1pdCh0aGlzLmNvbHVtbk5hbWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGxldGVTZXQoKTogSURhdGFUYWJsZUNvbHVtbltdIHtcbiAgICBjb25zdCB0ZW1wQ29sbGVjdGlvbjogKElEYXRhVGFibGVDb2x1bW4gfCB1bmRlZmluZWQpW10gPSB0aGlzLmNvbHVtbk5hbWVzLm1hcCgoaXRlbTogTGlzdEl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IHRlbXBDb2x1bW4gPSB0aGlzLmNvbHVtbnNBdmFpbGFibGUuZmluZCh4ID0+IHgucHJvcCA9PT0gaXRlbS5wcm9wKTtcbiAgICAgIGlmICh0ZW1wQ29sdW1uKSB7XG4gICAgICAgIHRlbXBDb2x1bW4uaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0ZW1wQ29sdW1uO1xuICAgIH0pO1xuXG4gICAgLy8gYWRkZWQgaW52aXNpYmxlIGNvbHVtbnMgYXQgdGhlIGVuZCB0byBjb21wbGV0ZSB0aGUgc2V0XG4gICAgdGhpcy5jb2x1bW5zQXZhaWxhYmxlLmZpbHRlcihpdGVtID0+IHRoaXMuY29sdW1uTmFtZXMuZmluZEluZGV4KHggPT4geC5wcm9wID09PSBpdGVtLnByb3ApIDwgMClcbiAgICAgIC5mb3JFYWNoKChpdGVtOiBJRGF0YVRhYmxlQ29sdW1uKSA9PiB7XG4gICAgICAgIGl0ZW0uaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRlbXBDb2xsZWN0aW9uLnB1c2goaXRlbSk7XG4gICAgICB9KTtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmRhdGEuc3RvcmFnZUtleSwgdGhpcy5jb2x1bW5OYW1lcyk7XG5cbiAgICByZXR1cm4gdGVtcENvbGxlY3Rpb247XG4gIH1cblxuICBwcml2YXRlIHN3YXBFbGVtZW50cyhjb2x1bW5zOiBMaXN0SXRlbVtdLCBpbmRleDogbnVtYmVyLCBkaXJlY3Rpb246IG51bWJlcik6IExpc3RJdGVtW10ge1xuICAgIGxldCB0ZW1wQ29sdW1uSW5kZXggPSBpbmRleCArIGRpcmVjdGlvbjtcbiAgICBpZiAodGVtcENvbHVtbkluZGV4ID49IDAgJiYgdGVtcENvbHVtbkluZGV4IDwgY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHRlbXBDb2x1bW4gPSBjb2x1bW5zW3RlbXBDb2x1bW5JbmRleF07XG4gICAgICBjb2x1bW5zW3RlbXBDb2x1bW5JbmRleF0gPSBjb2x1bW5zW2luZGV4XTtcbiAgICAgIGNvbHVtbnNbaW5kZXhdID0gdGVtcENvbHVtbjtcbiAgICB9XG4gICAgcmV0dXJuIGNvbHVtbnM7XG4gIH1cblxuICBwdWJsaWMgaGFzTWV0YWRhdGFTZXBhcmF0aW9uKGNvbHVtbnM6IElEYXRhVGFibGVDb2x1bW5bXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW5zLmZpbHRlcih4ID0+IHguaXNNZXRhRGF0YUNvbHVtbikubGVuZ3RoICE9PSAwO1xuICB9XG5cbiAgcHVibGljIHNvcnRpbmdBdmFpbGJsZUNvbHVtbnMoKSB7XG4gICAgaWYgKCF0aGlzLmF2YWlsYWJsZUNvbHVtbnNTb3J0aW5nQWN0aW9uU3RhdHVzKSB7XG4gICAgICB0aGlzLmNvbHVtbnNBdmFpbGFibGUgPSB0aGlzLmNvbHVtbnNBdmFpbGFibGUuc29ydCgoYSwgYikgPT4gYS5oZWFkZXIgPiBiLmhlYWRlciA/IDEgOiAtMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29sdW1uc0F2YWlsYWJsZSA9IHRoaXMuY29sdW1uc0F2YWlsYWJsZS5zb3J0KChhLCBiKSA9PiBhLmhlYWRlciA+IGIuaGVhZGVyID8gLTEgOiAxKTtcbiAgICB9XG4gICAgdGhpcy5hdmFpbGFibGVDb2x1bW5zU29ydGluZ0FjdGlvblN0YXR1cyA9ICF0aGlzLmF2YWlsYWJsZUNvbHVtbnNTb3J0aW5nQWN0aW9uU3RhdHVzO1xuICB9XG5cbiAgcHVibGljIHNvcnRpbmdEaXNwbGF5Q29sdW1ucygpIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheUNvbHVtbnNTb3J0aW5nQWN0aW9uU3RhdHVzKSB7XG4gICAgICB0aGlzLmNvbHVtbk5hbWVzID0gdGhpcy5jb2x1bW5OYW1lcy5zb3J0KChhLCBiKSA9PiBhLmhlYWRlciA+IGIuaGVhZGVyID8gMSA6IC0xKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2x1bW5OYW1lcyA9IHRoaXMuY29sdW1uTmFtZXMuc29ydCgoYSwgYikgPT4gYS5oZWFkZXIgPiBiLmhlYWRlciA/IC0xIDogMSk7XG4gICAgfVxuICAgIHRoaXMuZGlzcGxheUNvbHVtbnNTb3J0aW5nQWN0aW9uU3RhdHVzID0gIXRoaXMuZGlzcGxheUNvbHVtbnNTb3J0aW5nQWN0aW9uU3RhdHVzO1xuICB9XG5cbiAgcHVibGljIHNvcnR1cERvdWJsZUNsaWNrZWQoKSB7XG4gICAgdGhpcy5yZXNvcnRpbmdTZWxlY3RlZFJpZ2h0Q29sdW1uTGlzdCgpO1xuICAgIHRoaXMuc2VsZWN0ZWRJblJpZ2h0UGFuZWwucmV2ZXJzZSgpLmZvckVhY2goKHNlbGVjdGVkaXRlbSkgPT4ge1xuICAgICAgdGhpcy5jb2x1bW5OYW1lcy51bnNoaWZ0KHRoaXMuY29sdW1uTmFtZXMuc3BsaWNlKHRoaXMuY29sdW1uTmFtZXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5wcm9wID09PSBzZWxlY3RlZGl0ZW0ucHJvcCksIDEpWzBdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0ZG93bkRvdWJsZUNsaWNrZWQoKSB7XG4gICAgdGhpcy5yZXNvcnRpbmdTZWxlY3RlZFJpZ2h0Q29sdW1uTGlzdCgpO1xuICAgIHRoaXMuc2VsZWN0ZWRJblJpZ2h0UGFuZWwuZmlsdGVyKHggPT4geCkuZm9yRWFjaCgoc2VsZWN0ZWRpdGVtKSA9PiB7XG4gICAgICBsZXQgaW5kZXggPSB0aGlzLmNvbHVtbk5hbWVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ucHJvcCA9PT0gc2VsZWN0ZWRpdGVtLnByb3ApO1xuICAgICAgdGhpcy5jb2x1bW5OYW1lcy5wdXNoKHRoaXMuY29sdW1uTmFtZXMuc3BsaWNlKGluZGV4LCAxKVswXSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29ydGluZ1NlbGVjdGVkUmlnaHRDb2x1bW5MaXN0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRJblJpZ2h0UGFuZWwuc29ydCgoYSwgYikgPT4gdGhpcy5jb2x1bW5OYW1lcy5pbmRleE9mKGEpIC0gdGhpcy5jb2x1bW5OYW1lcy5pbmRleE9mKGIpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0RhdGEge1xuICBzdGF0dXM6IHN0cmluZztcbiAgY29sdW1uczogSURhdGFUYWJsZUNvbHVtbltdO1xuICBkZWZhdWx0U29ydGVkQ29sdW1uczogSURhdGFUYWJsZUNvbHVtbltdO1xuICBzdG9yYWdlS2V5Pzogc3RyaW5nO1xuICBtZXRhRGF0YUNvbHVtbnM/OiBzdHJpbmdbXTtcbn1cbiIsIjxtYXQtY2FyZD5cbiAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwiaGVhZGVyIGRhdGEtY29sLWRpc3BcIj5cbiAgICBDb2x1bW4gQ29uZmlndXJhdGlvblxuICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2FuY2VsQ2xpY2tlZCgpXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cInRleHRcIj5cbiAgICAgIFVzZSB0aGUgY29sdW1uIGNvbmZpZ3VyYXRvciB0byBjdXN0b21pemUgeW91ciBkYXRhIHRhYmxlIHRvIHZpZXcgZGF0YSByZWxldmFudCB0byB5b3VcbiAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxuICA8L21hdC1jYXJkLXRpdGxlPlxuICA8bWF0LWNhcmQtY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtd3JhcHBlciBkLWZsZXggZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcGFuZWxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGVyXCI+XG4gICAgICAgICAgICA8c3Bhbj5BdmFpbGFibGUgQ29sdW1uczwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic29ydGluZy1pY29uLXBvc2l0aW9uXCI+PGlcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIhYXZhaWxhYmxlQ29sdW1uc1NvcnRpbmdBY3Rpb25TdGF0dXMgPyAnZmEtc29saWQgZmEtYXJyb3ctZG93bi1hLXonIDogJ2ZhLXNvbGlkIGZhLWFycm93LWRvd24tei1hJ1wiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiIWF2YWlsYWJsZUNvbHVtbnNTb3J0aW5nQWN0aW9uU3RhdHVzID8gJ0NsaWNrIHRvIHNlZSBjb2x1bW5zIGluIGFzYyBvcmRlci4nIDogJ0NsaWNrIHRvIHNlZSBjb2x1bW5zIGluIGRlc2Mgb3JkZXIuJ1wiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCIgKGNsaWNrKT1cInNvcnRpbmdBdmFpbGJsZUNvbHVtbnMoKVwiPjwvaT48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWhhc01ldGFkYXRhU2VwYXJhdGlvbihkYXRhLmNvbHVtbnMpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2x1bW5zXCIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zQXZhaWxhYmxlXCIgKGNsaWNrKT1cImxlZnRJdGVtQ2xpY2tlZChjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT0ne3NlbGVjdGVkOiBsZWZ0U2VsZWN0ZWQoY29sdW1uKX0nPlxuICAgICAgICAgICAgICAgICAge3tjb2x1bW4uaGVhZGVyfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzTWV0YWRhdGFTZXBhcmF0aW9uKGRhdGEuY29sdW1ucylcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbHVtbnNcIiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNBdmFpbGFibGVcIiAoY2xpY2spPVwibGVmdEl0ZW1DbGlja2VkKGNvbHVtbilcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPSd7c2VsZWN0ZWQ6IGxlZnRTZWxlY3RlZChjb2x1bW4pfSc+XG4gICAgICAgICAgICAgICAgICB7e2NvbHVtbi5oZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2x1bW4uaXNNZXRhRGF0YUNvbHVtblwiPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGlvbi1wYW5lbCBkLWZsZXggZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImRvdWJsZS1sZWZ0IHNlbGVjdGlvblwiIChjbGljayk9XCJkb3VibGVMZWZ0Q2xpY2tlZCgpXCI+XG4gICAgICAgICAgICA8ZW0gY2xhc3M9XCJmYS1zb2xpZCBmYS1hbmdsZXMtbGVmdFwiPjwvZW0+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwic2luZ2xlLWxlZnQgc2VsZWN0aW9uXCIgKGNsaWNrKT1cInNpbmdsZUxlZnRDbGlja2VkKClcIj5cbiAgICAgICAgICAgIDxlbSBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZXZyb24tbGVmdFwiPjwvZW0+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwic2luZ2xlLXJpZ2h0IHNlbGVjdGlvblwiIChjbGljayk9XCJzaW5nbGVSaWdodENsaWNrZWQoKVwiPlxuICAgICAgICAgICAgPGVtIGNsYXNzPVwiZmEtc29saWQgZmEtY2hldnJvbi1yaWdodFwiPjwvZW0+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwiZG91YmxlLXJpZ2h0IHNlbGVjdGlvblwiIChjbGljayk9XCJkb3VibGVSaWdodENsaWNrZWQoKVwiPlxuICAgICAgICAgICAgPGVtIGNsYXNzPVwiZmEtc29saWQgZmEtYW5nbGVzLXJpZ2h0XCI+PC9lbT5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtcGFuZWxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGVyXCI+XG4gICAgICAgICAgICA8c3Bhbj5EaXNwbGF5ZWQgQ29sdW1uczwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic29ydGluZy1pY29uLXBvc2l0aW9uXCI+PGlcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIhZGlzcGxheUNvbHVtbnNTb3J0aW5nQWN0aW9uU3RhdHVzID8gJ2ZhLXNvbGlkIGZhLWFycm93LWRvd24tYS16JyA6ICdmYS1zb2xpZCBmYS1hcnJvdy1kb3duLXotYSdcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIiFkaXNwbGF5Q29sdW1uc1NvcnRpbmdBY3Rpb25TdGF0dXMgPyAnQ2xpY2sgdG8gc2VlIGNvbHVtbnMgaW4gYXNjIG9yZGVyLicgOiAnQ2xpY2sgdG8gc2VlIGNvbHVtbnMgaW4gZGVzYyBvcmRlci4nXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIiAoY2xpY2spPVwic29ydGluZ0Rpc3BsYXlDb2x1bW5zKClcIj48L2k+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFoYXNNZXRhZGF0YVNlcGFyYXRpb24oZGF0YS5jb2x1bW5zKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uc1wiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uTmFtZXNcIiAoY2xpY2spPVwicmlnaHRJdGVtQ2xpY2tlZChjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT0ne3NlbGVjdGVkOiByaWdodFNlbGVjdGVkKGNvbHVtbil9Jz5cbiAgICAgICAgICAgICAgICAgIHt7Y29sdW1uLmhlYWRlcn19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImhhc01ldGFkYXRhU2VwYXJhdGlvbihkYXRhLmNvbHVtbnMpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2x1bW5zXCIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5OYW1lc1wiIChjbGljayk9XCJyaWdodEl0ZW1DbGlja2VkKGNvbHVtbilcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPSd7c2VsZWN0ZWQ6IHJpZ2h0U2VsZWN0ZWQoY29sdW1uKX0nPlxuICAgICAgICAgICAgICAgICAge3tjb2x1bW4uaGVhZGVyfX1cbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sdW1uLmlzTWV0YWRhdGFDb2x1bW5cIj4qPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzb3J0LXBhbmVsIGZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJkb3VibGUtbGVmdCBzZWxlY3Rpb25cIiAoY2xpY2spPVwic29ydHVwRG91YmxlQ2xpY2tlZCgpXCI+XG4gICAgICAgICAgICA8ZW0gY2xhc3M9XCJmYS1zb2xpZCBmYS1hbmdsZXMtdXBcIj48L2VtPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YSBjbGFzcz1cInNpbmdsZS1sZWZ0IHNlbGVjdGlvblwiIChjbGljayk9XCJzb3J0dXBDbGlja2VkKClcIj5cbiAgICAgICAgICAgIDxlbSBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZXZyb24tdXBcIj48L2VtPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YSBjbGFzcz1cInNpbmdsZS1yaWdodCBzZWxlY3Rpb25cIiAoY2xpY2spPVwic29ydGRvd25DbGlja2VkKClcIj5cbiAgICAgICAgICAgIDxlbSBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZXZyb24tZG93blwiPjwvZW0+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwiZG91YmxlLXJpZ2h0IHNlbGVjdGlvblwiIChjbGljayk9XCJzb3J0ZG93bkRvdWJsZUNsaWNrZWQoKVwiPlxuICAgICAgICAgICAgPGVtIGNsYXNzPVwiZmEtc29saWQgZmEtYW5nbGVzLWRvd25cIj48L2VtPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLW5vdGVcIiAqbmdJZj1cImhhc01ldGFkYXRhU2VwYXJhdGlvbihkYXRhLmNvbHVtbnMpXCI+XG4gICAgICA8c3Bhbj48c3BhbiBjbGFzcz1cInN0YXJcIj4qPC9zcGFuPiBTeXN0ZW0gZ2VuZXJhdGVkIGNvbHVtbnMuPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDxtYXQtY2FyZC1hY3Rpb25zIGNsYXNzPVwiZmxleC1yZXZlcnNlXCI+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cIm9kcC1idXR0b25cIiAoY2xpY2spPVwib2tDbGlja2VkKClcIj5PSzwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgY2xhc3M9XCJvZHAtYnV0dG9uIGItbXJcIiAoY2xpY2spPVwiY2FuY2VsQ2xpY2tlZCgpXCI+Q2FuY2VsPC9idXR0b24+XG4gIDwvbWF0LWNhcmQtYWN0aW9ucz5cbjwvbWF0LWNhcmQ+XG4iXX0=
|