@quadrel-enterprise-ui/framework 18.25.3 → 19.0.0-beta.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/fesm2022/quadrel-enterprise-ui-framework.mjs +3203 -3024
- package/fesm2022/quadrel-enterprise-ui-framework.mjs.map +1 -1
- package/lib/core/services/push-events.service.d.ts +2 -13
- package/lib/forms/datepicker/calendar/calendar.component.d.ts +0 -8
- package/lib/forms/input/input.component.d.ts +0 -1
- package/lib/forms/qd-form.module.d.ts +6 -7
- package/lib/forms/reactive-forms/controls/form-array.d.ts +0 -3
- package/lib/navigation/stepper/stepper.module.d.ts +2 -3
- package/lib/navigation/tabs/tabs.module.d.ts +1 -2
- package/lib/page/model/page-config.interface.d.ts +2 -11
- package/lib/page-tabs/page-tabs.module.d.ts +5 -6
- package/lib/shell/header/shell-header.component.d.ts +1 -1
- package/package.json +6 -9
- package/esm2022/global-vars.json +0 -18
- package/esm2022/lib/button/__mocks__/mock-button-grid.component.mjs +0 -14
- package/esm2022/lib/button/__mocks__/mock-button-stack-button.component.mjs +0 -21
- package/esm2022/lib/button/__mocks__/mock-button-stack.component.mjs +0 -14
- package/esm2022/lib/button/__mocks__/mock-button.component.mjs +0 -30
- package/esm2022/lib/button/__mocks__/mock-button.directives.mjs +0 -19
- package/esm2022/lib/button/__mocks__/mock-button.module.mjs +0 -52
- package/esm2022/lib/button/__mocks__/mock-icon-button.component.mjs +0 -17
- package/esm2022/lib/button/button/additional-info/button-additional-info.component.mjs +0 -48
- package/esm2022/lib/button/button/button.component.mjs +0 -98
- package/esm2022/lib/button/button-grid/button-grid.component.mjs +0 -16
- package/esm2022/lib/button/button-stack/button-stack-button/button-stack-button.component.mjs +0 -46
- package/esm2022/lib/button/button-stack/button-stack-container/button-stack.component.mjs +0 -39
- package/esm2022/lib/button/button.module.mjs +0 -89
- package/esm2022/lib/button/directives/button.directives.mjs +0 -40
- package/esm2022/lib/button/icon-button/icon-button.component.mjs +0 -51
- package/esm2022/lib/button/menu-button/menu-button.component.mjs +0 -95
- package/esm2022/lib/button/model/button-config.mjs +0 -2
- package/esm2022/lib/button/model/button.types.mjs +0 -2
- package/esm2022/lib/chips/__mocks__/mock-chip.component.mjs +0 -42
- package/esm2022/lib/chips/__mocks__/mock-chips.module.mjs +0 -19
- package/esm2022/lib/chips/chip/chip.component.mjs +0 -79
- package/esm2022/lib/chips/chips.module.mjs +0 -20
- package/esm2022/lib/chips/interfaces/chip.interface.mjs +0 -2
- package/esm2022/lib/comments/add-comment/add-comment-dialog.component.mjs +0 -138
- package/esm2022/lib/comments/comments.component.mjs +0 -73
- package/esm2022/lib/comments/comments.module.mjs +0 -60
- package/esm2022/lib/comments/menu/comment-menu.component.mjs +0 -19
- package/esm2022/lib/comments/model/comments.interface.mjs +0 -2
- package/esm2022/lib/comments/pipes/stripe-html.pipe.mjs +0 -18
- package/esm2022/lib/contact-card/__mocks__/mock-contact-card.component.mjs +0 -19
- package/esm2022/lib/contact-card/__mocks__/mock-contact-card.module.mjs +0 -19
- package/esm2022/lib/contact-card/contact-card.component.mjs +0 -285
- package/esm2022/lib/contact-card/contact-card.module.mjs +0 -25
- package/esm2022/lib/contact-card/menu/contact-card-menu.component.mjs +0 -80
- package/esm2022/lib/contact-card/model/contact-card-actions-config.interface.mjs +0 -2
- package/esm2022/lib/contact-card/model/contact-data.interface.mjs +0 -2
- package/esm2022/lib/container/__mocks__/mock-action-footer.component.mjs +0 -14
- package/esm2022/lib/container/__mocks__/mock-container-create-content.component.mjs +0 -22
- package/esm2022/lib/container/__mocks__/mock-container-create-default.component.mjs +0 -18
- package/esm2022/lib/container/__mocks__/mock-container-section.component.mjs +0 -18
- package/esm2022/lib/container/__mocks__/mock-container-toolbar-action.component.mjs +0 -41
- package/esm2022/lib/container/__mocks__/mock-container-toolbar-filter.component.mjs +0 -14
- package/esm2022/lib/container/__mocks__/mock-container-toolbar-title.component.mjs +0 -14
- package/esm2022/lib/container/__mocks__/mock-container-toolbar.component.mjs +0 -17
- package/esm2022/lib/container/__mocks__/mock-container.component.mjs +0 -40
- package/esm2022/lib/container/__mocks__/mock-container.module.mjs +0 -85
- package/esm2022/lib/container/__mocks__/mock-create-delete-alert.component.mjs +0 -20
- package/esm2022/lib/container/__mocks__/mock-form-group.component.mjs +0 -39
- package/esm2022/lib/container/container.component.mjs +0 -217
- package/esm2022/lib/container/container.module.mjs +0 -64
- package/esm2022/lib/container/model/container-type.mjs +0 -2
- package/esm2022/lib/container/model/toolbar.interface.mjs +0 -2
- package/esm2022/lib/container/section/container-section.component.mjs +0 -41
- package/esm2022/lib/container/section/header/container-section-header.component.mjs +0 -16
- package/esm2022/lib/container/section/info/container-section-info.component.mjs +0 -14
- package/esm2022/lib/container/services/container-action.service.mjs +0 -19
- package/esm2022/lib/container/services/container-layout.service.mjs +0 -33
- package/esm2022/lib/container/toolbar/action/container-toolbar-action.component.mjs +0 -107
- package/esm2022/lib/container/toolbar/container-toolbar.component.mjs +0 -76
- package/esm2022/lib/container/toolbar/filter/container-toolbar-filter.component.mjs +0 -17
- package/esm2022/lib/container/toolbar/title/container-toolbar-title.component.mjs +0 -16
- package/esm2022/lib/content-grid/__mocks__/mock-content-grid-column.mjs +0 -14
- package/esm2022/lib/content-grid/__mocks__/mock-content-grid-row.mjs +0 -14
- package/esm2022/lib/content-grid/__mocks__/mock-content-grid.mjs +0 -14
- package/esm2022/lib/content-grid/__mocks__/mock-content-grid.module.mjs +0 -19
- package/esm2022/lib/content-grid/content-grid/content-grid.component.mjs +0 -31
- package/esm2022/lib/content-grid/content-grid-column/content-grid-column.component.mjs +0 -17
- package/esm2022/lib/content-grid/content-grid-row/content-grid-row.component.mjs +0 -18
- package/esm2022/lib/content-grid/content-grid.module.mjs +0 -21
- package/esm2022/lib/core/__mocks__/mock-breakpoint.service.mjs +0 -8
- package/esm2022/lib/core/__mocks__/mock-core.module.mjs +0 -42
- package/esm2022/lib/core/__mocks__/mock-disabled.directive.mjs +0 -14
- package/esm2022/lib/core/__mocks__/mock-popover-on-click.directive.mjs +0 -107
- package/esm2022/lib/core/__mocks__/mock-rwd-disabled.directive.mjs +0 -14
- package/esm2022/lib/core/__mocks__/mock-translate.pipe.mjs +0 -14
- package/esm2022/lib/core/__mocks__/mock-visually-hidden.directive.mjs +0 -14
- package/esm2022/lib/core/autofocus/autofocus.directive.mjs +0 -42
- package/esm2022/lib/core/autofocus/autofocus.module.mjs +0 -18
- package/esm2022/lib/core/autofocus/autofocus.service.mjs +0 -20
- package/esm2022/lib/core/breadcrumbs/breadcrumbs.component.mjs +0 -154
- package/esm2022/lib/core/breadcrumbs/breadcrumbs.module.mjs +0 -21
- package/esm2022/lib/core/breadcrumbs/model/breadcrumbs.interface.mjs +0 -2
- package/esm2022/lib/core/breadcrumbs/services/breadcrumbs.service.mjs +0 -61
- package/esm2022/lib/core/breadcrumbs/services/dialog-breadcrumbs.service.mjs +0 -15
- package/esm2022/lib/core/core.module.mjs +0 -54
- package/esm2022/lib/core/data-facets/blank/data-facets-blank.component.mjs +0 -34
- package/esm2022/lib/core/data-facets/boolean/data-facets-boolean.component.mjs +0 -23
- package/esm2022/lib/core/data-facets/chip/data-facets-chip.component.mjs +0 -63
- package/esm2022/lib/core/data-facets/chip/data-facets-chip.interfaces.mjs +0 -2
- package/esm2022/lib/core/data-facets/chip/truncated-indicator/data-facets-chip-truncated-indicator.component.mjs +0 -98
- package/esm2022/lib/core/data-facets/chip/truncated-tooltip/data-facets-chip-truncated-tooltip.component.mjs +0 -139
- package/esm2022/lib/core/data-facets/currency/data-facets-currency.component.mjs +0 -71
- package/esm2022/lib/core/data-facets/currency/data-facets-currency.interfaces.mjs +0 -2
- package/esm2022/lib/core/data-facets/data-facets-context.service.mjs +0 -17
- package/esm2022/lib/core/data-facets/data-facets.model.mjs +0 -34
- package/esm2022/lib/core/data-facets/data-facets.module.mjs +0 -62
- package/esm2022/lib/core/data-facets/date/data-facets-date.component.mjs +0 -98
- package/esm2022/lib/core/data-facets/date/data-facets-date.interfaces.mjs +0 -2
- package/esm2022/lib/core/data-facets/icon/data-facets-icon.component.mjs +0 -24
- package/esm2022/lib/core/data-facets/integer/data-facets-integer.component.mjs +0 -22
- package/esm2022/lib/core/data-facets/link/data-facets-link.component.mjs +0 -70
- package/esm2022/lib/core/data-facets/link/data-facets-link.interfaces.mjs +0 -2
- package/esm2022/lib/core/data-facets/progress/data-facets-progress.component.mjs +0 -34
- package/esm2022/lib/core/data-facets/status/data-facets-status.component.mjs +0 -24
- package/esm2022/lib/core/data-facets/status/data-facets-status.interfaces.mjs +0 -2
- package/esm2022/lib/core/data-facets/text/data-facets-text.component.mjs +0 -49
- package/esm2022/lib/core/data-facets/text/data-facets-text.interfaces.mjs +0 -2
- package/esm2022/lib/core/disabled/disabled.directive.mjs +0 -14
- package/esm2022/lib/core/focusable/focusable.directive.mjs +0 -27
- package/esm2022/lib/core/focusable/focusable.mjs +0 -2
- package/esm2022/lib/core/focusable/focusable.module.mjs +0 -16
- package/esm2022/lib/core/focusable/focusable.token.mjs +0 -6
- package/esm2022/lib/core/model/app-enviroment.interface.mjs +0 -2
- package/esm2022/lib/core/model/app-enviroment.token.mjs +0 -3
- package/esm2022/lib/core/model/breakpoint.interface.mjs +0 -3
- package/esm2022/lib/core/model/translation.interface.mjs +0 -2
- package/esm2022/lib/core/pipes/file-size.pipe.mjs +0 -41
- package/esm2022/lib/core/pipes/placeholder.pipe.mjs +0 -17
- package/esm2022/lib/core/pipes/placeholders.pipe.mjs +0 -20
- package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +0 -20
- package/esm2022/lib/core/popover/popover/popover.component.mjs +0 -52
- package/esm2022/lib/core/popover/popover-on-click/popover-on-click.directive.mjs +0 -261
- package/esm2022/lib/core/popover/popover-on-hover/popover-on-hover.directive.mjs +0 -91
- package/esm2022/lib/core/popover/popover-parent.service.mjs +0 -11
- package/esm2022/lib/core/popover/popover-sizing.service.mjs +0 -163
- package/esm2022/lib/core/popover/popover-top-first.token.mjs +0 -3
- package/esm2022/lib/core/popover/popover.module.mjs +0 -22
- package/esm2022/lib/core/popover/popover.service.mjs +0 -18
- package/esm2022/lib/core/projection-guard/projection-guard.component.mjs +0 -33
- package/esm2022/lib/core/rwd-disabled/rwd-disabled.directive.mjs +0 -14
- package/esm2022/lib/core/rxjs/delay-and-hold.operator.mjs +0 -52
- package/esm2022/lib/core/services/breakpoint.service.mjs +0 -34
- package/esm2022/lib/core/services/element.service.mjs +0 -16
- package/esm2022/lib/core/services/event-broker.service.mjs +0 -76
- package/esm2022/lib/core/services/push-events.service.mjs +0 -191
- package/esm2022/lib/core/services/scrolling.service.mjs +0 -47
- package/esm2022/lib/core/services/translate.service.mjs +0 -48
- package/esm2022/lib/core/tools/constantCase.tools.mjs +0 -3
- package/esm2022/lib/core/tools/convertPxToRem.tools.mjs +0 -3
- package/esm2022/lib/core/tooltip/model/tooltip-content.interface.mjs +0 -2
- package/esm2022/lib/core/tooltip/tooltip/tooltip.component.mjs +0 -15
- package/esm2022/lib/core/tooltip/tooltip-at-intersection/tooltip-at-intersection.directive.mjs +0 -115
- package/esm2022/lib/core/tooltip/tooltip-on-tap-hover/tooltip-on-click.directive.mjs +0 -101
- package/esm2022/lib/core/tooltip/tooltip.module.mjs +0 -21
- package/esm2022/lib/core/types/utility.types.mjs +0 -2
- package/esm2022/lib/core/visually-hidden/visually-hidden.directive.mjs +0 -14
- package/esm2022/lib/dialog/action/dialog-action.component.mjs +0 -11
- package/esm2022/lib/dialog/auth-session-end/dialog-auth-session-end.component.mjs +0 -33
- package/esm2022/lib/dialog/confirmation/dialog-confirmation.component.mjs +0 -227
- package/esm2022/lib/dialog/dialog.component.mjs +0 -100
- package/esm2022/lib/dialog/dialog.module.mjs +0 -106
- package/esm2022/lib/dialog/models/confirmation.model.mjs +0 -6
- package/esm2022/lib/dialog/models/dialog-config.model.mjs +0 -10
- package/esm2022/lib/dialog/models/record-stepper.model.mjs +0 -2
- package/esm2022/lib/dialog/models/session-end-result.model.mjs +0 -2
- package/esm2022/lib/dialog/page-dialog-with-breadcrumbs/page-dialog-with-breadcrumbs.component.mjs +0 -14
- package/esm2022/lib/dialog/record-stepper/dialog-record-stepper.component.mjs +0 -80
- package/esm2022/lib/dialog/services/dialog-auth-session-end.service.mjs +0 -38
- package/esm2022/lib/dialog/services/dialog.service.mjs +0 -128
- package/esm2022/lib/file-collector/__mocks__/mock-file-collector-dialog-item-error.component.mjs +0 -19
- package/esm2022/lib/file-collector/__mocks__/mock-file-collector-dialog-item-progress.component.mjs +0 -21
- package/esm2022/lib/file-collector/__mocks__/mock-file-collector-dialog-item.component.mjs +0 -25
- package/esm2022/lib/file-collector/__mocks__/mock-file-collector-item-name.component.mjs +0 -18
- package/esm2022/lib/file-collector/__mocks__/mock-file-collector-item-size.component.mjs +0 -18
- package/esm2022/lib/file-collector/__mocks__/mock-file-collector-item-tools.component.mjs +0 -34
- package/esm2022/lib/file-collector/__mocks__/mock-file-collector-item.component.mjs +0 -40
- package/esm2022/lib/file-collector/__mocks__/mock-file-collector.component.mjs +0 -14
- package/esm2022/lib/file-collector/__mocks__/mock-file-collector.module.mjs +0 -42
- package/esm2022/lib/file-collector/allowed-files-description/file-collector-allowed-files-description.component.mjs +0 -34
- package/esm2022/lib/file-collector/dialog/file-collector-dialog.component.mjs +0 -47
- package/esm2022/lib/file-collector/dialog/item/error/file-collector-dialog-item-error.component.mjs +0 -39
- package/esm2022/lib/file-collector/dialog/item/file-collector-dialog-item.component.mjs +0 -41
- package/esm2022/lib/file-collector/dialog/item/progress/file-collector-dialog-item-progress.component.mjs +0 -64
- package/esm2022/lib/file-collector/file-collector.component.mjs +0 -256
- package/esm2022/lib/file-collector/file-collector.module.mjs +0 -95
- package/esm2022/lib/file-collector/file-delete-dialog/file-delete-dialog.component.mjs +0 -35
- package/esm2022/lib/file-collector/item/file-collector-item.component.mjs +0 -44
- package/esm2022/lib/file-collector/item/name/file-collector-item-name.component.mjs +0 -15
- package/esm2022/lib/file-collector/item/size/file-collector-item-size.component.mjs +0 -17
- package/esm2022/lib/file-collector/item/tools/file-collector-item-tools.component.mjs +0 -79
- package/esm2022/lib/file-collector/item/upload-timestamp/upload-timestamp.component.mjs +0 -16
- package/esm2022/lib/file-collector/models/collected-file.mjs +0 -2
- package/esm2022/lib/file-collector/models/file-collector-config.mjs +0 -2
- package/esm2022/lib/file-collector/models/file-manager-token.mjs +0 -3
- package/esm2022/lib/file-collector/models/file-manager.mjs +0 -2
- package/esm2022/lib/file-collector/models/file-type.mjs +0 -2
- package/esm2022/lib/file-collector/models/file-upload.mjs +0 -9
- package/esm2022/lib/file-collector/models/upload-progress.mjs +0 -12
- package/esm2022/lib/file-collector/pipes/filesize.pipe.mjs +0 -40
- package/esm2022/lib/file-collector/pipes/upload-timestamp.pipe.mjs +0 -26
- package/esm2022/lib/file-collector/services/file-collector-validation.service.mjs +0 -36
- package/esm2022/lib/file-collector/services/file-collector.service.mjs +0 -86
- package/esm2022/lib/file-collector/services/file-type.service.mjs +0 -119
- package/esm2022/lib/filter/__mocks__/mock-filter-category-boolean.mjs +0 -31
- package/esm2022/lib/filter/__mocks__/mock-filter-category-date-range.mjs +0 -35
- package/esm2022/lib/filter/__mocks__/mock-filter-category-date.mjs +0 -35
- package/esm2022/lib/filter/__mocks__/mock-filter-category-free-text.mjs +0 -34
- package/esm2022/lib/filter/__mocks__/mock-filter-category-select.mjs +0 -31
- package/esm2022/lib/filter/__mocks__/mock-filter-category.mjs +0 -35
- package/esm2022/lib/filter/__mocks__/mock-filter-item-boolean.mjs +0 -37
- package/esm2022/lib/filter/__mocks__/mock-filter-item-date-range.mjs +0 -38
- package/esm2022/lib/filter/__mocks__/mock-filter-item-date.mjs +0 -38
- package/esm2022/lib/filter/__mocks__/mock-filter-item-free-text.mjs +0 -37
- package/esm2022/lib/filter/__mocks__/mock-filter-item-multi-select.mjs +0 -34
- package/esm2022/lib/filter/__mocks__/mock-filter-item-single-select.mjs +0 -34
- package/esm2022/lib/filter/__mocks__/mock-filter.mjs +0 -32
- package/esm2022/lib/filter/__mocks__/mock-filter.module.mjs +0 -89
- package/esm2022/lib/filter/__mocks__/mock-filter.service.mjs +0 -87
- package/esm2022/lib/filter/__mocks__/mock-localeDate.pipe.mjs +0 -15
- package/esm2022/lib/filter/category/boolean/filter-category-boolean.component.mjs +0 -36
- package/esm2022/lib/filter/category/date/filter-category-date.component.mjs +0 -62
- package/esm2022/lib/filter/category/date-range/filter-category-date-range.component.mjs +0 -75
- package/esm2022/lib/filter/category/filter-category.component.mjs +0 -110
- package/esm2022/lib/filter/category/free-text/filter-category-free-text.component.mjs +0 -61
- package/esm2022/lib/filter/category/select/filter-category-select.component.mjs +0 -129
- package/esm2022/lib/filter/filter-service/filter.service.mjs +0 -206
- package/esm2022/lib/filter/filter.component.mjs +0 -308
- package/esm2022/lib/filter/filter.module.mjs +0 -101
- package/esm2022/lib/filter/helpers/filter-active-items.helper.mjs +0 -26
- package/esm2022/lib/filter/helpers/filter-active.helper.mjs +0 -6
- package/esm2022/lib/filter/helpers/filter-get.helper.mjs +0 -18
- package/esm2022/lib/filter/helpers/filter-postbody.helper.mjs +0 -6
- package/esm2022/lib/filter/helpers/filter-query-parser.helper.mjs +0 -27
- package/esm2022/lib/filter/helpers/filter-query.helper.mjs +0 -39
- package/esm2022/lib/filter/helpers/filter-selection-validator.helper.mjs +0 -33
- package/esm2022/lib/filter/helpers/filter-state.helpers.mjs +0 -88
- package/esm2022/lib/filter/helpers/filter-update.helper.mjs +0 -84
- package/esm2022/lib/filter/item/boolean/filter-item-boolean.component.mjs +0 -62
- package/esm2022/lib/filter/item/date/filter-item-date.component.mjs +0 -68
- package/esm2022/lib/filter/item/date-range/filter-item-date-range.component.mjs +0 -107
- package/esm2022/lib/filter/item/free-text/filter-item-free-text.component.mjs +0 -82
- package/esm2022/lib/filter/item/multi-select/filter-item-multi-select.component.mjs +0 -62
- package/esm2022/lib/filter/item/single-select/filter-item-single-select.component.mjs +0 -72
- package/esm2022/lib/filter/model/filter-config.interface.mjs +0 -2
- package/esm2022/lib/filter/model/filter-post-body.interface.mjs +0 -2
- package/esm2022/lib/filter/model/filter-reducer.interface.mjs +0 -2
- package/esm2022/lib/filter/model/filter-state.interface.mjs +0 -2
- package/esm2022/lib/filter/model/filter-types.interface.mjs +0 -2
- package/esm2022/lib/filter/pipes/localeDate.pipe.mjs +0 -54
- package/esm2022/lib/filter/services/dependent-filters.service.mjs +0 -61
- package/esm2022/lib/filter/services/filter-rest-param.tools.mjs +0 -27
- package/esm2022/lib/filter/services/filter-router-connector.service.mjs +0 -111
- package/esm2022/lib/filter/store/filter.actions.mjs +0 -25
- package/esm2022/lib/filter/store/filter.reducer.mjs +0 -98
- package/esm2022/lib/filter/store/filter.selector.mjs +0 -38
- package/esm2022/lib/forms/__mocks__/mock-calendar.component.mjs +0 -31
- package/esm2022/lib/forms/__mocks__/mock-checkbox-chips-item.component.mjs +0 -23
- package/esm2022/lib/forms/__mocks__/mock-checkbox-chips.component.mjs +0 -32
- package/esm2022/lib/forms/__mocks__/mock-checkbox.component.mjs +0 -38
- package/esm2022/lib/forms/__mocks__/mock-checkboxes.component.mjs +0 -35
- package/esm2022/lib/forms/__mocks__/mock-datepicker.component.mjs +0 -34
- package/esm2022/lib/forms/__mocks__/mock-dropdown.component.mjs +0 -44
- package/esm2022/lib/forms/__mocks__/mock-filter-form-items.component.mjs +0 -27
- package/esm2022/lib/forms/__mocks__/mock-form-error.component.mjs +0 -19
- package/esm2022/lib/forms/__mocks__/mock-form-group-error.component.mjs +0 -22
- package/esm2022/lib/forms/__mocks__/mock-form-hint.component.mjs +0 -31
- package/esm2022/lib/forms/__mocks__/mock-form-label.component.mjs +0 -39
- package/esm2022/lib/forms/__mocks__/mock-form-readonly.component.mjs +0 -26
- package/esm2022/lib/forms/__mocks__/mock-form-viewonly.component.mjs +0 -26
- package/esm2022/lib/forms/__mocks__/mock-forms.module.mjs +0 -118
- package/esm2022/lib/forms/__mocks__/mock-input.component.mjs +0 -95
- package/esm2022/lib/forms/__mocks__/mock-pin-code.component.mjs +0 -76
- package/esm2022/lib/forms/__mocks__/mock-radio-buttons.component.mjs +0 -38
- package/esm2022/lib/forms/__mocks__/mock-switch.component.mjs +0 -56
- package/esm2022/lib/forms/__mocks__/mock-switches.component.mjs +0 -54
- package/esm2022/lib/forms/__mocks__/mock-textarea.component.mjs +0 -50
- package/esm2022/lib/forms/checkbox-chips/checkbox-chips.component.mjs +0 -250
- package/esm2022/lib/forms/checkbox-chips/item/checkbox-chips-item.component.mjs +0 -34
- package/esm2022/lib/forms/checkbox-chips/services/checkbox-chips.service.mjs +0 -33
- package/esm2022/lib/forms/checkboxes/checkbox/checkbox.component.mjs +0 -93
- package/esm2022/lib/forms/checkboxes/checkboxes-service/checkboxes.service.mjs +0 -106
- package/esm2022/lib/forms/checkboxes/checkboxes.component.mjs +0 -354
- package/esm2022/lib/forms/datepicker/adapter/date-adapter.mjs +0 -116
- package/esm2022/lib/forms/datepicker/calendar/calendar.component.mjs +0 -195
- package/esm2022/lib/forms/datepicker/datepicker.component.mjs +0 -490
- package/esm2022/lib/forms/datepicker/service/timepicker.service.mjs +0 -68
- package/esm2022/lib/forms/dropdown/dropdown.component.mjs +0 -491
- package/esm2022/lib/forms/dropdown/options/dropdown-options.component.mjs +0 -90
- package/esm2022/lib/forms/file-upload/file-upload.component.mjs +0 -333
- package/esm2022/lib/forms/file-upload/model/file-upload.model.mjs +0 -46
- package/esm2022/lib/forms/file-upload/services/file-upload.service.mjs +0 -61
- package/esm2022/lib/forms/forms/forms.component.mjs +0 -16
- package/esm2022/lib/forms/input/helpers/get-value-with-unit.mjs +0 -22
- package/esm2022/lib/forms/input/input.component.mjs +0 -610
- package/esm2022/lib/forms/input/options/input-options.component.mjs +0 -64
- package/esm2022/lib/forms/input/options/input-options.directive.mjs +0 -281
- package/esm2022/lib/forms/input/units/input-units.component.mjs +0 -62
- package/esm2022/lib/forms/model/datepicker.mjs +0 -7
- package/esm2022/lib/forms/model/form-input.mjs +0 -2
- package/esm2022/lib/forms/model/form-options-resolver.mjs +0 -22
- package/esm2022/lib/forms/model/forms.interface.mjs +0 -2
- package/esm2022/lib/forms/model/options.interface.mjs +0 -2
- package/esm2022/lib/forms/model/radio-buttons.mjs +0 -2
- package/esm2022/lib/forms/multi-input/interfaces/multi-input-chip.interface.mjs +0 -2
- package/esm2022/lib/forms/multi-input/multi-input-chip/multi-input-chip.component.mjs +0 -95
- package/esm2022/lib/forms/multi-input/multi-input-menu/multi-input-menu.component.mjs +0 -83
- package/esm2022/lib/forms/multi-input/multi-input-service/multi-input.service.mjs +0 -102
- package/esm2022/lib/forms/multi-input/multi-input.component.mjs +0 -540
- package/esm2022/lib/forms/pin-code/pin-code-service/pin-code.service.mjs +0 -90
- package/esm2022/lib/forms/pin-code/pin-code.component.mjs +0 -454
- package/esm2022/lib/forms/qd-form.module.mjs +0 -189
- package/esm2022/lib/forms/radio-buttons/radio-buttons-service/radio-buttons.service.mjs +0 -45
- package/esm2022/lib/forms/radio-buttons/radio-buttons.component.mjs +0 -326
- package/esm2022/lib/forms/reactive-forms/controls/form-array-factory.service.mjs +0 -72
- package/esm2022/lib/forms/reactive-forms/controls/form-array.mjs +0 -320
- package/esm2022/lib/forms/reactive-forms/controls/form-builder.mjs +0 -126
- package/esm2022/lib/forms/reactive-forms/controls/form-control.mjs +0 -61
- package/esm2022/lib/forms/reactive-forms/controls/form-group.mjs +0 -4
- package/esm2022/lib/forms/richtext/richtext.component.mjs +0 -214
- package/esm2022/lib/forms/shared/components/filter-form-items/filter-form-items.component.mjs +0 -34
- package/esm2022/lib/forms/shared/components/form-error/form-error.component.mjs +0 -48
- package/esm2022/lib/forms/shared/components/form-hint/form-hint.component.mjs +0 -40
- package/esm2022/lib/forms/shared/components/form-input/form-input.component.mjs +0 -43
- package/esm2022/lib/forms/shared/components/form-label/form-label.component.mjs +0 -59
- package/esm2022/lib/forms/shared/components/form-readonly/form-readonly.component.mjs +0 -45
- package/esm2022/lib/forms/shared/components/form-viewonly/form-viewonly.component.mjs +0 -50
- package/esm2022/lib/forms/shared/helpers/forms-options.helpers.mjs +0 -21
- package/esm2022/lib/forms/shared/helpers/forms.helpers.mjs +0 -87
- package/esm2022/lib/forms/shared/helpers/has-validators.helpers.mjs +0 -10
- package/esm2022/lib/forms/shared/services/action-emitter.service.mjs +0 -17
- package/esm2022/lib/forms/shared/services/form-keyboard.service.mjs +0 -52
- package/esm2022/lib/forms/shared/services/form-options.service.mjs +0 -102
- package/esm2022/lib/forms/shared/services/options-resolver.registry.mjs +0 -32
- package/esm2022/lib/forms/shared/validators/validators.mjs +0 -247
- package/esm2022/lib/forms/switches/switch/switch.component.mjs +0 -58
- package/esm2022/lib/forms/switches/switches-service/switches.service.mjs +0 -67
- package/esm2022/lib/forms/switches/switches.component.mjs +0 -300
- package/esm2022/lib/forms/textarea/textarea.component.mjs +0 -296
- package/esm2022/lib/grid/__mocks__/mock-column.directive.mjs +0 -17
- package/esm2022/lib/grid/__mocks__/mock-columns.directive.mjs +0 -26
- package/esm2022/lib/grid/__mocks__/mock-grid.module.mjs +0 -18
- package/esm2022/lib/grid/directives/column-auto-fill.directive.mjs +0 -54
- package/esm2022/lib/grid/directives/column-break-before.directive.mjs +0 -55
- package/esm2022/lib/grid/directives/column-disable-responsive-colspans.directive.mjs +0 -60
- package/esm2022/lib/grid/directives/column-full-grid-width.directive.mjs +0 -56
- package/esm2022/lib/grid/directives/column-next-in-same-row.directive.mjs +0 -79
- package/esm2022/lib/grid/directives/column.directive.mjs +0 -91
- package/esm2022/lib/grid/directives/columns-disable-auto-fill.directive.mjs +0 -55
- package/esm2022/lib/grid/directives/columns-disable-responsive-colspans.directive.mjs +0 -56
- package/esm2022/lib/grid/directives/columns-max.directive.mjs +0 -67
- package/esm2022/lib/grid/directives/columns.directive.mjs +0 -83
- package/esm2022/lib/grid/grid.component.mjs +0 -67
- package/esm2022/lib/grid/grid.module.mjs +0 -77
- package/esm2022/lib/grid/model/grid-config.interface.mjs +0 -2
- package/esm2022/lib/grid/model/subgrid-config.interface.mjs +0 -2
- package/esm2022/lib/grid/services/grid-auto-fill.service.mjs +0 -165
- package/esm2022/lib/grid/services/grid.service.mjs +0 -22
- package/esm2022/lib/grid/subgrid/subgrid.component.mjs +0 -77
- package/esm2022/lib/helpers/html-plaintext.helper.mjs +0 -11
- package/esm2022/lib/helpers/language.helper.mjs +0 -5
- package/esm2022/lib/helpers/load-javascript-asset.helper.mjs +0 -10
- package/esm2022/lib/helpers/relative-time.helper.mjs +0 -22
- package/esm2022/lib/icon/__mocks__/mock-icon.component.mjs +0 -36
- package/esm2022/lib/icon/__mocks__/mock-icon.module.mjs +0 -17
- package/esm2022/lib/icon/custom-icons/logo.mjs +0 -201
- package/esm2022/lib/icon/icon/icon-definitions.mjs +0 -293
- package/esm2022/lib/icon/icon/icon.component.mjs +0 -78
- package/esm2022/lib/icon/icon.module.mjs +0 -19
- package/esm2022/lib/image/__mocks__/mock-image.component.mjs +0 -30
- package/esm2022/lib/image/__mocks__/mock-image.module.mjs +0 -17
- package/esm2022/lib/image/image/image.component.mjs +0 -83
- package/esm2022/lib/image/image.module.mjs +0 -21
- package/esm2022/lib/layout/__mocks__/mock-action-bar.component.mjs +0 -37
- package/esm2022/lib/layout/__mocks__/mock-active-content-tab.directive.mjs +0 -18
- package/esm2022/lib/layout/__mocks__/mock-button-enabled.directive.mjs +0 -21
- package/esm2022/lib/layout/__mocks__/mock-layout-container.component.mjs +0 -14
- package/esm2022/lib/layout/__mocks__/mock-layout-renderer.component.mjs +0 -37
- package/esm2022/lib/layout/__mocks__/mock-layout.module.mjs +0 -97
- package/esm2022/lib/layout/__mocks__/mock-page-process-header-title.component.mjs +0 -14
- package/esm2022/lib/layout/__mocks__/mock-page-process-header.component.mjs +0 -66
- package/esm2022/lib/layout/__mocks__/mock-page-title.component.mjs +0 -16
- package/esm2022/lib/layout/__mocks__/mock-panel-title.component.mjs +0 -18
- package/esm2022/lib/layout/__mocks__/mock-panel.component.mjs +0 -24
- package/esm2022/lib/layout/__mocks__/mock-truncated-text.directive.mjs +0 -43
- package/esm2022/lib/layout/action-bar/action-bar.component.mjs +0 -78
- package/esm2022/lib/layout/action-bar/button-enabled.directive.mjs +0 -63
- package/esm2022/lib/layout/container/container.component.mjs +0 -153
- package/esm2022/lib/layout/content/page-process-header/page-process-header/page-process-header.component.mjs +0 -181
- package/esm2022/lib/layout/content/page-process-header/page-process-header-title/page-process-header-title.component.mjs +0 -17
- package/esm2022/lib/layout/content/page-title/page-title.component.mjs +0 -37
- package/esm2022/lib/layout/directives/active-content-tab.directive.mjs +0 -55
- package/esm2022/lib/layout/directives/calculate-full-height.directive.mjs +0 -57
- package/esm2022/lib/layout/directives/viewport-adaptive.directive.mjs +0 -25
- package/esm2022/lib/layout/force-line-break/force-line-break.directive.mjs +0 -17
- package/esm2022/lib/layout/interfaces/process-list.mjs +0 -2
- package/esm2022/lib/layout/layout-renderer/layout-renderer.component.mjs +0 -79
- package/esm2022/lib/layout/layout.module.mjs +0 -175
- package/esm2022/lib/layout/modal-fullscreen-container/modal-fullscreen-container.component.mjs +0 -157
- package/esm2022/lib/layout/panel/container/panel.component.mjs +0 -80
- package/esm2022/lib/layout/panel/title/panel-title.component.mjs +0 -50
- package/esm2022/lib/layout/panel/types/panel-types.mjs +0 -2
- package/esm2022/lib/layout/service/layout.service.mjs +0 -42
- package/esm2022/lib/layout/service/panel.service.mjs +0 -43
- package/esm2022/lib/lists/__mocks__/mock-container-pairs-caption.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-container-pairs-container.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-container-pairs-header.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-container-pairs-item.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-container-pairs-value.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-list.module.mjs +0 -86
- package/esm2022/lib/lists/__mocks__/mock-status-error.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-status-pairs-caption.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-status-pairs-item.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-status-pairs-value.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-status-pairs.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-vertical-pairs-caption.component.mjs +0 -18
- package/esm2022/lib/lists/__mocks__/mock-vertical-pairs-item.component.mjs +0 -14
- package/esm2022/lib/lists/__mocks__/mock-vertical-pairs-value.component.mjs +0 -18
- package/esm2022/lib/lists/__mocks__/mock-vertical-pairs.component.mjs +0 -14
- package/esm2022/lib/lists/list.module.mjs +0 -111
- package/esm2022/lib/lists/model/list.interface.mjs +0 -2
- package/esm2022/lib/lists/pairs/container-pairs/container-pairs-caption/container-pairs-caption.component.mjs +0 -16
- package/esm2022/lib/lists/pairs/container-pairs/container-pairs-container/container-pairs-container.component.mjs +0 -30
- package/esm2022/lib/lists/pairs/container-pairs/container-pairs-header/container-pairs-header.component.mjs +0 -16
- package/esm2022/lib/lists/pairs/container-pairs/container-pairs-item/container-pairs-item.component.mjs +0 -17
- package/esm2022/lib/lists/pairs/container-pairs/container-pairs-value/container-pairs-value.component.mjs +0 -16
- package/esm2022/lib/lists/pairs/horizontal-pairs/horizontal-pairs-caption/horizontal-pairs-caption.component.mjs +0 -16
- package/esm2022/lib/lists/pairs/horizontal-pairs/horizontal-pairs-container/horizontal-pairs.component.mjs +0 -41
- package/esm2022/lib/lists/pairs/horizontal-pairs/horizontal-pairs-item/horizontal-pairs-item.component.mjs +0 -17
- package/esm2022/lib/lists/pairs/horizontal-pairs/horizontal-pairs-value/horizontal-pairs-value.component.mjs +0 -16
- package/esm2022/lib/lists/pairs/status-pairs/status-pairs-caption/status-pairs-caption.component.mjs +0 -16
- package/esm2022/lib/lists/pairs/status-pairs/status-pairs-container/status-pairs.component.mjs +0 -65
- package/esm2022/lib/lists/pairs/status-pairs/status-pairs-error/status-pairs-error.component.mjs +0 -29
- package/esm2022/lib/lists/pairs/status-pairs/status-pairs-item/status-pairs-item.component.mjs +0 -29
- package/esm2022/lib/lists/pairs/status-pairs/status-pairs-value/status-pairs-value.component.mjs +0 -16
- package/esm2022/lib/lists/pairs/vertical-pairs/vertical-pairs-caption/vertical-pairs-caption.component.mjs +0 -16
- package/esm2022/lib/lists/pairs/vertical-pairs/vertical-pairs-container/vertical-pairs.component.mjs +0 -41
- package/esm2022/lib/lists/pairs/vertical-pairs/vertical-pairs-item/vertical-pairs-item.component.mjs +0 -27
- package/esm2022/lib/lists/pairs/vertical-pairs/vertical-pairs-value/vertical-pairs-value.component.mjs +0 -16
- package/esm2022/lib/master-layout/__mocks__/mock-header-widget.component.mjs +0 -45
- package/esm2022/lib/master-layout/__mocks__/mock-master-layout-banner.component.mjs +0 -14
- package/esm2022/lib/master-layout/__mocks__/mock-master-layout-footer.component.mjs +0 -14
- package/esm2022/lib/master-layout/__mocks__/mock-master-layout-header.component.mjs +0 -43
- package/esm2022/lib/master-layout/__mocks__/mock-master-layout.component.mjs +0 -27
- package/esm2022/lib/master-layout/__mocks__/mock-master-layout.module.mjs +0 -43
- package/esm2022/lib/master-layout/header-widget/header-widget.component.mjs +0 -164
- package/esm2022/lib/master-layout/master-layout/master-layout.component.mjs +0 -132
- package/esm2022/lib/master-layout/master-layout-banner/master-layout-banner.component.mjs +0 -47
- package/esm2022/lib/master-layout/master-layout-footer/master-layout-footer.component.mjs +0 -20
- package/esm2022/lib/master-layout/master-layout-header/master-layout-header.component.mjs +0 -98
- package/esm2022/lib/master-layout/master-layout.module.mjs +0 -82
- package/esm2022/lib/master-layout/model/page-level.mjs +0 -7
- package/esm2022/lib/master-layout/model/service-navigation.mjs +0 -2
- package/esm2022/lib/master-layout/service/language-from-url.service.mjs +0 -63
- package/esm2022/lib/master-layout/service/master-layout.service.mjs +0 -43
- package/esm2022/lib/master-layout/service-navigation/service-navigation.component.mjs +0 -21
- package/esm2022/lib/navigation/stepper/__mocks__/mock-step-action.component.mjs +0 -49
- package/esm2022/lib/navigation/stepper/__mocks__/mock-step-item.component.mjs +0 -53
- package/esm2022/lib/navigation/stepper/__mocks__/mock-step.component.mjs +0 -50
- package/esm2022/lib/navigation/stepper/__mocks__/mock-stepper.component.mjs +0 -25
- package/esm2022/lib/navigation/stepper/__mocks__/mock-stepper.module.mjs +0 -22
- package/esm2022/lib/navigation/stepper/interfaces/stepper.mjs +0 -2
- package/esm2022/lib/navigation/stepper/step/step.component.mjs +0 -182
- package/esm2022/lib/navigation/stepper/step-action/step-action.component.mjs +0 -73
- package/esm2022/lib/navigation/stepper/step-item/step-item.component.mjs +0 -108
- package/esm2022/lib/navigation/stepper/stepper/stepper.component.mjs +0 -368
- package/esm2022/lib/navigation/stepper/stepper.module.mjs +0 -27
- package/esm2022/lib/navigation/tab-bar/__mocks__/mock-tab-bar.module.mjs +0 -20
- package/esm2022/lib/navigation/tab-bar/__mocks__/mock-tab-link.component.mjs +0 -23
- package/esm2022/lib/navigation/tab-bar/__mocks__/mock-tab-nav-bar.component.mjs +0 -15
- package/esm2022/lib/navigation/tab-bar/tab-bar.module.mjs +0 -21
- package/esm2022/lib/navigation/tab-bar/tab-link/tab-link.component.mjs +0 -52
- package/esm2022/lib/navigation/tab-bar/tab-nav-bar/tab-nav-bar.component.mjs +0 -17
- package/esm2022/lib/navigation/tabs/__mocks__/mock-tab-action.component.mjs +0 -34
- package/esm2022/lib/navigation/tabs/__mocks__/mock-tab-item.component.mjs +0 -51
- package/esm2022/lib/navigation/tabs/__mocks__/mock-tab-pending-tasks.component.mjs +0 -29
- package/esm2022/lib/navigation/tabs/__mocks__/mock-tab.component.mjs +0 -54
- package/esm2022/lib/navigation/tabs/__mocks__/mock-tabs-page-leave-handler.component.mjs +0 -25
- package/esm2022/lib/navigation/tabs/__mocks__/mock-tabs.component.mjs +0 -43
- package/esm2022/lib/navigation/tabs/__mocks__/mock-tabs.module.mjs +0 -48
- package/esm2022/lib/navigation/tabs/interfaces/tabs.interface.mjs +0 -2
- package/esm2022/lib/navigation/tabs/services/tabs.service.mjs +0 -72
- package/esm2022/lib/navigation/tabs/tab/tab.component.mjs +0 -135
- package/esm2022/lib/navigation/tabs/tab-action/tab-action.component.mjs +0 -33
- package/esm2022/lib/navigation/tabs/tab-item/tab-item.component.mjs +0 -92
- package/esm2022/lib/navigation/tabs/tab-pending-tasks/tab-pending-tasks.component.mjs +0 -36
- package/esm2022/lib/navigation/tabs/tabs/tabs.component.mjs +0 -245
- package/esm2022/lib/navigation/tabs/tabs.module.mjs +0 -51
- package/esm2022/lib/navigation-tiles/__mocks__/mock-navigation-tile.component.mjs +0 -21
- package/esm2022/lib/navigation-tiles/__mocks__/mock-navigation-tiles.component.mjs +0 -14
- package/esm2022/lib/navigation-tiles/__mocks__/mock-navigation-tiles.module.mjs +0 -18
- package/esm2022/lib/navigation-tiles/navigation-tile/navigation-tile.component.mjs +0 -42
- package/esm2022/lib/navigation-tiles/navigation-tiles/navigation-tiles.component.mjs +0 -23
- package/esm2022/lib/navigation-tiles/navigation-tiles.module.mjs +0 -22
- package/esm2022/lib/notifications/__mocks__/mock-notification.component.mjs +0 -29
- package/esm2022/lib/notifications/__mocks__/mock-notification.content.component.mjs +0 -15
- package/esm2022/lib/notifications/__mocks__/mock-notifications-service.service.mjs +0 -32
- package/esm2022/lib/notifications/__mocks__/mock-notifications.component.mjs +0 -17
- package/esm2022/lib/notifications/__mocks__/mock-notifications.module.mjs +0 -24
- package/esm2022/lib/notifications/directives/snackbar-listener.directive.mjs +0 -70
- package/esm2022/lib/notifications/interfaces/notifications.mjs +0 -2
- package/esm2022/lib/notifications/notification/notification.component.mjs +0 -547
- package/esm2022/lib/notifications/notification-content/notification-content.component.mjs +0 -14
- package/esm2022/lib/notifications/notifications/notifications.component.mjs +0 -35
- package/esm2022/lib/notifications/notifications.module.mjs +0 -47
- package/esm2022/lib/notifications/services/notifications-http-interceptor.service.mjs +0 -111
- package/esm2022/lib/notifications/services/notifications-service.service.mjs +0 -122
- package/esm2022/lib/notifications/services/os-notifications/desktop-notifications.service.mjs +0 -85
- package/esm2022/lib/notifications/services/os-notifications/os-notifications.service.mjs +0 -29
- package/esm2022/lib/notifications/services/snackbar.service.mjs +0 -65
- package/esm2022/lib/notifications/snackbar/snackbar.component.mjs +0 -25
- package/esm2022/lib/page/__mocks__/mock-page-footer.component.mjs +0 -14
- package/esm2022/lib/page/__mocks__/mock-page-header.component.mjs +0 -14
- package/esm2022/lib/page/__mocks__/mock-page.component.mjs +0 -19
- package/esm2022/lib/page/__mocks__/mock-page.module.mjs +0 -21
- package/esm2022/lib/page/cancel-confirmation-dialog/page-cancel-confirmation-dialog.component.mjs +0 -38
- package/esm2022/lib/page/control-panel/page-control-panel.component.mjs +0 -55
- package/esm2022/lib/page/footer/page-footer-custom-content.directive.mjs +0 -25
- package/esm2022/lib/page/footer/page-footer.component.mjs +0 -30
- package/esm2022/lib/page/info-banner/page-info-banner.component.mjs +0 -124
- package/esm2022/lib/page/model/page-config.interface.mjs +0 -2
- package/esm2022/lib/page/model/page-control-panel-config.interface.mjs +0 -2
- package/esm2022/lib/page/model/page-footer-action.interface.mjs +0 -9
- package/esm2022/lib/page/model/page-header-facet.interface.mjs +0 -2
- package/esm2022/lib/page/model/page-info-banner.interface.mjs +0 -2
- package/esm2022/lib/page/model/page-object-resolver.mjs +0 -6
- package/esm2022/lib/page/object-header/context-select-dialog/context-select-dialog.component.mjs +0 -95
- package/esm2022/lib/page/object-header/dynamic-facet/dynamic-facet.component.mjs +0 -53
- package/esm2022/lib/page/object-header/dynamic-facet/dynamic-facet.directive.mjs +0 -17
- package/esm2022/lib/page/object-header/dynamic-facets.service.mjs +0 -38
- package/esm2022/lib/page/object-header/facets/crititcality-facet/criticality-facet.component.mjs +0 -29
- package/esm2022/lib/page/object-header/facets/date-facet/date-facet.component.mjs +0 -22
- package/esm2022/lib/page/object-header/facets/multi-select-facet/multi-select-facet.component.mjs +0 -27
- package/esm2022/lib/page/object-header/facets/progress-facet/progress-facet.component.mjs +0 -21
- package/esm2022/lib/page/object-header/facets/references-facet/references-facet.component.mjs +0 -22
- package/esm2022/lib/page/object-header/facets/single-select-facet/single-select-facet.component.mjs +0 -27
- package/esm2022/lib/page/object-header/facets/status-facet/status-facet.component.mjs +0 -25
- package/esm2022/lib/page/object-header/facets/value-facet/value-facet.component.mjs +0 -21
- package/esm2022/lib/page/object-header/page-object-header.component.mjs +0 -309
- package/esm2022/lib/page/page.component.mjs +0 -634
- package/esm2022/lib/page/page.module.mjs +0 -168
- package/esm2022/lib/page/shared/directives/connect-form-state-to-page.directive.mjs +0 -91
- package/esm2022/lib/page/shared/services/context.service.mjs +0 -75
- package/esm2022/lib/page/shared/services/form-group-manager.service.mjs +0 -180
- package/esm2022/lib/page/shared/services/page-footer.service.mjs +0 -54
- package/esm2022/lib/page/shared/services/page-store.service.mjs +0 -33
- package/esm2022/lib/page/shared/services/page-submit-action.service.mjs +0 -69
- package/esm2022/lib/page/shared/services/resolver-trigger.service.mjs +0 -57
- package/esm2022/lib/page-stepper/adaptors/page-stepper-adapter.directive.mjs +0 -66
- package/esm2022/lib/page-stepper/cancel-dialog/page-stepper-cancel-dialog.component.mjs +0 -50
- package/esm2022/lib/page-stepper/header/page-step-header.component.mjs +0 -60
- package/esm2022/lib/page-stepper/model/page-step-resolver.token.mjs +0 -3
- package/esm2022/lib/page-stepper/model/page-step.resolver.mjs +0 -2
- package/esm2022/lib/page-stepper/model/qd-page-stepper-config.mjs +0 -2
- package/esm2022/lib/page-stepper/page-step/page-step.component.mjs +0 -79
- package/esm2022/lib/page-stepper/page-stepper.component.mjs +0 -295
- package/esm2022/lib/page-stepper/page-stepper.module.mjs +0 -61
- package/esm2022/lib/page-tabs/adaptors/page-tabs-adapter.directive.mjs +0 -68
- package/esm2022/lib/page-tabs/model/page-tabs-config.mjs +0 -2
- package/esm2022/lib/page-tabs/model/page-tabs-selection-event.mjs +0 -2
- package/esm2022/lib/page-tabs/page-tab/page-tab.component.mjs +0 -84
- package/esm2022/lib/page-tabs/page-tab-header/counter/page-tab-header-counters.component.mjs +0 -33
- package/esm2022/lib/page-tabs/page-tab-header/page-tab-header.component.mjs +0 -57
- package/esm2022/lib/page-tabs/page-tabs.component.mjs +0 -386
- package/esm2022/lib/page-tabs/page-tabs.module.mjs +0 -54
- package/esm2022/lib/panel-section/actions/panel-section-actions.component.mjs +0 -61
- package/esm2022/lib/panel-section/model/panel-section-config.interface.mjs +0 -2
- package/esm2022/lib/panel-section/model/panel-section-status-config.interface.mjs +0 -2
- package/esm2022/lib/panel-section/model/panel-section-text-paragraph-config.interface.mjs +0 -2
- package/esm2022/lib/panel-section/panel-section.component.mjs +0 -98
- package/esm2022/lib/panel-section/panel-section.module.mjs +0 -41
- package/esm2022/lib/panel-section/services/panel-section-action.service.mjs +0 -18
- package/esm2022/lib/panel-section/status/panel-section-status.component.mjs +0 -23
- package/esm2022/lib/panel-section/text-paragraph/panel-section-text-paragraph.component.mjs +0 -19
- package/esm2022/lib/place-holder/__mocks__/mock-place-holder.component.mjs +0 -19
- package/esm2022/lib/place-holder/__mocks__/mock-place-holder.module.mjs +0 -17
- package/esm2022/lib/place-holder/place-holder/place-holder.component.mjs +0 -21
- package/esm2022/lib/place-holder/place-holder.module.mjs +0 -19
- package/esm2022/lib/progress-bar/__mocks__/mock-indeterminate-progress-bar.component.mjs +0 -15
- package/esm2022/lib/progress-bar/__mocks__/mock-percentage-progress-bar.component.mjs +0 -28
- package/esm2022/lib/progress-bar/__mocks__/mock-progress-bar.module.mjs +0 -19
- package/esm2022/lib/progress-bar/indeterminate/indeterminate-progress-bar.component.mjs +0 -14
- package/esm2022/lib/progress-bar/percentage/percentage-progress-bar.component.mjs +0 -51
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -21
- package/esm2022/lib/qd-ui-mock.module.mjs +0 -149
- package/esm2022/lib/qd-ui.module.mjs +0 -233
- package/esm2022/lib/quick-edit/model/quick-edit-config.mjs +0 -2
- package/esm2022/lib/quick-edit/model/quick-edit-data.mjs +0 -2
- package/esm2022/lib/quick-edit/qd-ng-for.directive.mjs +0 -58
- package/esm2022/lib/quick-edit/quick-edit.component.mjs +0 -391
- package/esm2022/lib/quick-edit/quick-edit.module.mjs +0 -62
- package/esm2022/lib/search/__mocks__/mock-search.component.mjs +0 -19
- package/esm2022/lib/search/__mocks__/mock-search.module.mjs +0 -19
- package/esm2022/lib/search/helpers/search-update.helper.mjs +0 -19
- package/esm2022/lib/search/model/search-options.interface.mjs +0 -2
- package/esm2022/lib/search/model/search-post-body.mjs +0 -2
- package/esm2022/lib/search/model/search-store.interface.mjs +0 -2
- package/esm2022/lib/search/search.component.mjs +0 -209
- package/esm2022/lib/search/search.module.mjs +0 -45
- package/esm2022/lib/search/services/search-router-connector.service.mjs +0 -109
- package/esm2022/lib/search/services/search-store.service.mjs +0 -34
- package/esm2022/lib/search/services/search.service.mjs +0 -106
- package/esm2022/lib/search/store/search.actions.mjs +0 -10
- package/esm2022/lib/search/store/search.reducer.mjs +0 -10
- package/esm2022/lib/search/store/search.selector.mjs +0 -8
- package/esm2022/lib/section/__mocks__/mock-section-toolbar.component.mjs +0 -19
- package/esm2022/lib/section/__mocks__/mock-section.component.mjs +0 -19
- package/esm2022/lib/section/__mocks__/mock-section.module.mjs +0 -20
- package/esm2022/lib/section/adaptors/section-adapter.directive.mjs +0 -66
- package/esm2022/lib/section/connectors/table/connector-table-context.directive.mjs +0 -150
- package/esm2022/lib/section/connectors/table/connector-table-filter.directive.mjs +0 -97
- package/esm2022/lib/section/connectors/table/connector-table-search.directive.mjs +0 -91
- package/esm2022/lib/section/model/section-config.interface.mjs +0 -2
- package/esm2022/lib/section/model/toolbar-components.interface.mjs +0 -2
- package/esm2022/lib/section/section.component.mjs +0 -185
- package/esm2022/lib/section/section.module.mjs +0 -77
- package/esm2022/lib/section/services/section-toolbar-action.service.mjs +0 -18
- package/esm2022/lib/section/services/toolbar-components.service.mjs +0 -17
- package/esm2022/lib/section/toolbar/action/section-toolbar-action.component.mjs +0 -158
- package/esm2022/lib/section/toolbar/section-toolbar.component.mjs +0 -59
- package/esm2022/lib/shell/__mocks__/mock-counter-badge.component.mjs +0 -14
- package/esm2022/lib/shell/__mocks__/mock-header-widget-desktop.component.mjs +0 -37
- package/esm2022/lib/shell/__mocks__/mock-header-widget-mobile.component.mjs +0 -37
- package/esm2022/lib/shell/__mocks__/mock-shell-footer.component.mjs +0 -14
- package/esm2022/lib/shell/__mocks__/mock-shell-header-banner.component.mjs +0 -14
- package/esm2022/lib/shell/__mocks__/mock-shell-header-search.component.mjs +0 -14
- package/esm2022/lib/shell/__mocks__/mock-shell-header-widget.component.mjs +0 -18
- package/esm2022/lib/shell/__mocks__/mock-shell-header.component.mjs +0 -19
- package/esm2022/lib/shell/__mocks__/mock-shell-toolbar-item.component.mjs +0 -19
- package/esm2022/lib/shell/__mocks__/mock-shell-toolbar.component.mjs +0 -14
- package/esm2022/lib/shell/__mocks__/mock-shell.component.mjs +0 -19
- package/esm2022/lib/shell/__mocks__/mock-shell.module.mjs +0 -69
- package/esm2022/lib/shell/footer/shell-footer.component.mjs +0 -24
- package/esm2022/lib/shell/header/banner/shell-header-banner.component.mjs +0 -33
- package/esm2022/lib/shell/header/counter-badge/counter-badge.component.mjs +0 -18
- package/esm2022/lib/shell/header/search/shell-header-search.component.mjs +0 -16
- package/esm2022/lib/shell/header/service-navigation/shell-service-navigation.component.mjs +0 -156
- package/esm2022/lib/shell/header/service-navigation/shell-service-navigation.module.mjs +0 -19
- package/esm2022/lib/shell/header/shell-header.component.mjs +0 -193
- package/esm2022/lib/shell/header/toolbar/shell-toolbar.component.mjs +0 -20
- package/esm2022/lib/shell/header/toolbar/toolbar-item/shell-toolbar-item.component.mjs +0 -25
- package/esm2022/lib/shell/header/widget/shell-header-widget.component.mjs +0 -115
- package/esm2022/lib/shell/left/navigation/link/shell-left-navigation-link.component.mjs +0 -27
- package/esm2022/lib/shell/left/navigation/shell-left-navigation.component.mjs +0 -17
- package/esm2022/lib/shell/left/shell-left.component.mjs +0 -29
- package/esm2022/lib/shell/model/default-config.mjs +0 -8
- package/esm2022/lib/shell/model/eportal.interface.mjs +0 -2
- package/esm2022/lib/shell/model/route-data.interface.mjs +0 -2
- package/esm2022/lib/shell/model/shell-config.interface.mjs +0 -2
- package/esm2022/lib/shell/model/shell-footer-copyright-info.interface.mjs +0 -2
- package/esm2022/lib/shell/model/shell-header-widget-config.interface.mjs +0 -2
- package/esm2022/lib/shell/model/shell-navigation-config.interface.mjs +0 -2
- package/esm2022/lib/shell/model/shell-service-navigation-config.interface.mjs +0 -2
- package/esm2022/lib/shell/model/shell-toolbar-config.interface.mjs +0 -2
- package/esm2022/lib/shell/right/notification/shell-notification.component.mjs +0 -95
- package/esm2022/lib/shell/right/notifications/shell-notifications.component.mjs +0 -25
- package/esm2022/lib/shell/right/shell-right.component.mjs +0 -56
- package/esm2022/lib/shell/right/toolbar/shell-right-toolbar.component.mjs +0 -28
- package/esm2022/lib/shell/services/banner.service.mjs +0 -27
- package/esm2022/lib/shell/services/eportal-language.service.mjs +0 -44
- package/esm2022/lib/shell/services/navigation.service.mjs +0 -60
- package/esm2022/lib/shell/services/pams-environment.service.mjs +0 -22
- package/esm2022/lib/shell/services/service-navigation.service.mjs +0 -208
- package/esm2022/lib/shell/services/shell-header-minimization.service.mjs +0 -37
- package/esm2022/lib/shell/services/shell-header-widget.service.mjs +0 -178
- package/esm2022/lib/shell/services/shell-left.service.mjs +0 -27
- package/esm2022/lib/shell/services/shell-right.service.mjs +0 -46
- package/esm2022/lib/shell/shell.component.mjs +0 -199
- package/esm2022/lib/shell/shell.module.mjs +0 -134
- package/esm2022/lib/spinner/spinner.component.mjs +0 -11
- package/esm2022/lib/spinner/spinner.module.mjs +0 -19
- package/esm2022/lib/status-indicator/__mocks__/mock-status-indicator-cpation.component.mjs +0 -14
- package/esm2022/lib/status-indicator/__mocks__/mock-status-indicator-item.component.mjs +0 -22
- package/esm2022/lib/status-indicator/__mocks__/mock-status-indicator.component.mjs +0 -33
- package/esm2022/lib/status-indicator/__mocks__/mock-status-indicator.module.mjs +0 -27
- package/esm2022/lib/status-indicator/interfaces/status-indicator.interface.mjs +0 -2
- package/esm2022/lib/status-indicator/status-indicator/status-indicator.component.mjs +0 -48
- package/esm2022/lib/status-indicator/status-indicator-caption/status-indicator-caption.component.mjs +0 -14
- package/esm2022/lib/status-indicator/status-indicator-item/status-indicator-item.component.mjs +0 -45
- package/esm2022/lib/status-indicator/status-indicator.module.mjs +0 -21
- package/esm2022/lib/table/__mocks__/mock-sort.component.mjs +0 -29
- package/esm2022/lib/table/__mocks__/mock-table-body-plain.component.mjs +0 -27
- package/esm2022/lib/table/__mocks__/mock-table-body-tree.component.mjs +0 -27
- package/esm2022/lib/table/__mocks__/mock-table-data-blank.component.mjs +0 -15
- package/esm2022/lib/table/__mocks__/mock-table-data-boolean.component.mjs +0 -19
- package/esm2022/lib/table/__mocks__/mock-table-data-date.component.mjs +0 -23
- package/esm2022/lib/table/__mocks__/mock-table-data-integer.component.mjs +0 -19
- package/esm2022/lib/table/__mocks__/mock-table-data-link.component.mjs +0 -29
- package/esm2022/lib/table/__mocks__/mock-table-data-progress.component.mjs +0 -19
- package/esm2022/lib/table/__mocks__/mock-table-data-text.component.mjs +0 -26
- package/esm2022/lib/table/__mocks__/mock-table-empty-state.component.mjs +0 -22
- package/esm2022/lib/table/__mocks__/mock-table-head.component.mjs +0 -24
- package/esm2022/lib/table/__mocks__/mock-table-paginator-page-size.directive.mjs +0 -18
- package/esm2022/lib/table/__mocks__/mock-table-paginator.component.mjs +0 -24
- package/esm2022/lib/table/__mocks__/mock-table.component.mjs +0 -33
- package/esm2022/lib/table/__mocks__/mock-table.module.mjs +0 -63
- package/esm2022/lib/table/body/table-body.component.mjs +0 -57
- package/esm2022/lib/table/empty-state/table-empty-state.component.mjs +0 -46
- package/esm2022/lib/table/head/table-head.component.mjs +0 -65
- package/esm2022/lib/table/helpers/spring-tools.mjs +0 -20
- package/esm2022/lib/table/model/connectors-state.enum.mjs +0 -7
- package/esm2022/lib/table/model/paginator-direction.enum.mjs +0 -8
- package/esm2022/lib/table/model/sort-direction.enum.mjs +0 -7
- package/esm2022/lib/table/model/table-config-actions.interface.mjs +0 -2
- package/esm2022/lib/table/model/table-config-content.interface.mjs +0 -2
- package/esm2022/lib/table/model/table-config.interface.mjs +0 -2
- package/esm2022/lib/table/model/table-data-resolver.mjs +0 -10
- package/esm2022/lib/table/model/table-data-resolver.token.mjs +0 -6
- package/esm2022/lib/table/model/table-data.interface.mjs +0 -2
- package/esm2022/lib/table/model/table-row-selection.interface.mjs +0 -2
- package/esm2022/lib/table/model/table-store.interface.mjs +0 -2
- package/esm2022/lib/table/paginator/page-size/table-paginator-page-size.component.mjs +0 -104
- package/esm2022/lib/table/paginator/page-size/table-paginator-page-size.directive.mjs +0 -53
- package/esm2022/lib/table/paginator/scroll-to-pagination.directive.mjs +0 -77
- package/esm2022/lib/table/paginator/table-paginator.component.mjs +0 -128
- package/esm2022/lib/table/row/actions/secondary/menu/table-row-actions-secondary-menu.component.mjs +0 -94
- package/esm2022/lib/table/row/selection/table-row-selection.component.mjs +0 -49
- package/esm2022/lib/table/row/table-row.component.mjs +0 -102
- package/esm2022/lib/table/services/empty-state.service.mjs +0 -25
- package/esm2022/lib/table/services/external-action-result.service.mjs +0 -16
- package/esm2022/lib/table/services/filling-width.service.mjs +0 -174
- package/esm2022/lib/table/services/resolver.service.mjs +0 -82
- package/esm2022/lib/table/services/responsive-row.service.mjs +0 -106
- package/esm2022/lib/table/services/row-selection.service.mjs +0 -60
- package/esm2022/lib/table/services/secondary-actions.service.mjs +0 -18
- package/esm2022/lib/table/sort/table-sort.component.mjs +0 -126
- package/esm2022/lib/table/store/table-store-selector.service.mjs +0 -123
- package/esm2022/lib/table/store/table-store.service.mjs +0 -138
- package/esm2022/lib/table/store/table-update.helper.mjs +0 -81
- package/esm2022/lib/table/store/table.actions.mjs +0 -40
- package/esm2022/lib/table/store/table.reducer.mjs +0 -21
- package/esm2022/lib/table/table.component.mjs +0 -485
- package/esm2022/lib/table/table.module.mjs +0 -105
- package/esm2022/lib/text-section/__mocks__/mock-text-section-headline.component.mjs +0 -14
- package/esm2022/lib/text-section/__mocks__/mock-text-section-paragraph.component.mjs +0 -14
- package/esm2022/lib/text-section/__mocks__/mock-text-section.component.mjs +0 -14
- package/esm2022/lib/text-section/__mocks__/mock-text-section.module.mjs +0 -19
- package/esm2022/lib/text-section/text-section-headline/text-section-headline.component.mjs +0 -16
- package/esm2022/lib/text-section/text-section-paragraph/text-section-paragraph.component.mjs +0 -16
- package/esm2022/lib/text-section/text-section.component.mjs +0 -28
- package/esm2022/lib/text-section/text-section.module.mjs +0 -21
- package/esm2022/lib/tiles/__mocks__/mock-tile-button-list.component.mjs +0 -14
- package/esm2022/lib/tiles/__mocks__/mock-tile-text-list-item.component.mjs +0 -14
- package/esm2022/lib/tiles/__mocks__/mock-tile-text-list.component.mjs +0 -14
- package/esm2022/lib/tiles/__mocks__/mock-tile-title.component.mjs +0 -14
- package/esm2022/lib/tiles/__mocks__/mock-tile.component.mjs +0 -18
- package/esm2022/lib/tiles/__mocks__/mock-tiles-container-title.component.mjs +0 -14
- package/esm2022/lib/tiles/__mocks__/mock-tiles-container.component.mjs +0 -18
- package/esm2022/lib/tiles/__mocks__/mock-tiles.module.mjs +0 -51
- package/esm2022/lib/tiles/model/tile-config.mjs +0 -2
- package/esm2022/lib/tiles/model/tiles-config.mjs +0 -2
- package/esm2022/lib/tiles/tile/tile.component.mjs +0 -42
- package/esm2022/lib/tiles/tile-button-list/tile-button-list.component.mjs +0 -15
- package/esm2022/lib/tiles/tile-text-list/tile-text-list.component.mjs +0 -11
- package/esm2022/lib/tiles/tile-text-list-item/tile-text-list-item.component.mjs +0 -11
- package/esm2022/lib/tiles/tile-title/tile-title.component.mjs +0 -11
- package/esm2022/lib/tiles/tiles-title/tiles-title.component.mjs +0 -11
- package/esm2022/lib/tiles/tiles.component.mjs +0 -22
- package/esm2022/lib/tiles/tiles.module.mjs +0 -55
- package/esm2022/lib/tree/body/tree-body.component.mjs +0 -46
- package/esm2022/lib/tree/empty-state/tree-empty-state.component.mjs +0 -34
- package/esm2022/lib/tree/error/grouped-indices-not-consecutive.error.mjs +0 -7
- package/esm2022/lib/tree/head/tree-head.component.mjs +0 -64
- package/esm2022/lib/tree/model/tree-column-detail.interface.mjs +0 -2
- package/esm2022/lib/tree/model/tree-config-actions.interface.mjs +0 -2
- package/esm2022/lib/tree/model/tree-config.interface.mjs +0 -2
- package/esm2022/lib/tree/model/tree-data.interface.mjs +0 -2
- package/esm2022/lib/tree/row/actions/secondary/menu/tree-row-actions-secondary-menu.component.mjs +0 -98
- package/esm2022/lib/tree/row/tree-row.component.mjs +0 -85
- package/esm2022/lib/tree/services/row-expander.service.mjs +0 -117
- package/esm2022/lib/tree/services/tree-group.service.mjs +0 -87
- package/esm2022/lib/tree/services/tree-rows.service.mjs +0 -151
- package/esm2022/lib/tree/tree.component.mjs +0 -244
- package/esm2022/lib/tree/tree.module.mjs +0 -80
- package/esm2022/public-api.mjs +0 -79
- package/esm2022/quadrel-enterprise-ui-framework.mjs +0 -5
- package/lib/forms/model/form-input.d.ts +0 -9
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import { FormControl, Validators } from '@angular/forms';
|
|
2
|
-
import moment from 'moment';
|
|
3
|
-
import { TimePickerService } from '../../datepicker/service/timepicker.service';
|
|
4
|
-
function hasUnit(control) {
|
|
5
|
-
return control.value?.value != null && control.value?.unit != null;
|
|
6
|
-
}
|
|
7
|
-
export class QdValidators {
|
|
8
|
-
/**
|
|
9
|
-
* Validates that the value of the form field is at least the specified minimum.
|
|
10
|
-
*
|
|
11
|
-
* #### **Usage**
|
|
12
|
-
* ```ts
|
|
13
|
-
* new QdFormControl('', QdValidators.min(3));
|
|
14
|
-
* new QdFormControl('', QdValidators.min(3, 'custom-error'));
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
static min(min, errorKey = 'i18n.qd.form.error.min') {
|
|
18
|
-
const validFn = (control) => {
|
|
19
|
-
if (hasUnit(control))
|
|
20
|
-
return Validators.min(min)(new FormControl(control.value.value)) ? { min: errorKey } : null;
|
|
21
|
-
return Validators.min(min)(control) ? { min: errorKey } : null;
|
|
22
|
-
};
|
|
23
|
-
return validFn;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Validates that the value of the form field does not exceed the specified maximum.
|
|
27
|
-
*
|
|
28
|
-
* #### **Usage**
|
|
29
|
-
* ```ts
|
|
30
|
-
* new QdFormControl('', QdValidators.max(10));
|
|
31
|
-
* new QdFormControl('', QdValidators.max(10, 'custom-error'));
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
static max(max, errorKey = 'i18n.qd.form.error.max') {
|
|
35
|
-
const validFn = (control) => {
|
|
36
|
-
if (hasUnit(control))
|
|
37
|
-
return Validators.max(max)(new FormControl(control.value.value)) ? { max: errorKey } : null;
|
|
38
|
-
return Validators.max(max)(control) ? { max: errorKey } : null;
|
|
39
|
-
};
|
|
40
|
-
return validFn;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Ensures that the form field is not empty.
|
|
44
|
-
*
|
|
45
|
-
* #### **Usage**
|
|
46
|
-
* ```ts
|
|
47
|
-
* new QdFormControl('', QdValidators.required());
|
|
48
|
-
* new QdFormControl('', QdValidators.required('custom-error'));
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
static required(errorKey = 'i18n.qd.form.error.required') {
|
|
52
|
-
const validFn = (control) => {
|
|
53
|
-
if (Array.isArray(control.value))
|
|
54
|
-
return Validators.required(control) ? { required: errorKey } : null;
|
|
55
|
-
return this.isEmptyInputValue(control.value) ? { required: errorKey } : null;
|
|
56
|
-
};
|
|
57
|
-
return validFn;
|
|
58
|
-
}
|
|
59
|
-
static isEmptyInputValue(value) {
|
|
60
|
-
if (value !== null && typeof value === 'object') {
|
|
61
|
-
return Object.keys(value).some(key => this.isEmptyInputValue(value[key]));
|
|
62
|
-
}
|
|
63
|
-
return value == null || (typeof value === 'string' && value.length === 0);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Validates that the form field contains a valid email address.
|
|
67
|
-
*
|
|
68
|
-
* #### **Usage**
|
|
69
|
-
* ```ts
|
|
70
|
-
* new QdFormControl('', QdValidators.email());
|
|
71
|
-
* new QdFormControl('', QdValidators.email('custom-error'));
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
|
-
static email(errorKey = 'i18n.qd.form.error.email') {
|
|
75
|
-
// regex from https://regexr.com/ community patterns "RFC2822 Email Validation"
|
|
76
|
-
const emailValidatorRegex = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
|
|
77
|
-
const validFn = (control) => Validators.pattern(emailValidatorRegex)(control) ? { email: errorKey } : null;
|
|
78
|
-
return validFn;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Ensures that the form field contains at least the specified number of characters.
|
|
82
|
-
*
|
|
83
|
-
* #### **Usage**
|
|
84
|
-
* ```ts
|
|
85
|
-
* new QdFormControl('', QdValidators.minLength(3));
|
|
86
|
-
* new QdFormControl('', QdValidators.minLength(3, 'custom-error'));
|
|
87
|
-
* ```
|
|
88
|
-
*/
|
|
89
|
-
static minLength(minLength, errorKey = 'i18n.qd.form.error.minLength') {
|
|
90
|
-
const validFn = (control) => {
|
|
91
|
-
if (hasUnit(control))
|
|
92
|
-
return Validators.minLength(minLength)(new FormControl(control.value.value)) ? { minLength: errorKey } : null;
|
|
93
|
-
return Validators.minLength(minLength)(control) ? { minLength: errorKey } : null;
|
|
94
|
-
};
|
|
95
|
-
return validFn;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Ensures that the form field contains no more than the specified number of characters.
|
|
99
|
-
*
|
|
100
|
-
* #### **Usage**
|
|
101
|
-
* ```ts
|
|
102
|
-
* new QdFormControl('', QdValidators.maxLength(10));
|
|
103
|
-
* new QdFormControl('', QdValidators.maxLength(10, 'custom-error'));
|
|
104
|
-
* ```
|
|
105
|
-
*/
|
|
106
|
-
static maxLength(maxLength, errorKey = 'i18n.qd.form.error.maxLength') {
|
|
107
|
-
const validFn = (control) => {
|
|
108
|
-
if (hasUnit(control))
|
|
109
|
-
return Validators.maxLength(maxLength)(new FormControl(control.value.value)) ? { maxLength: errorKey } : null;
|
|
110
|
-
return Validators.maxLength(maxLength)(control) ? { maxLength: errorKey } : null;
|
|
111
|
-
};
|
|
112
|
-
validFn.maxLength = maxLength;
|
|
113
|
-
return validFn;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Ensures that the form field matches a given regular expression pattern.
|
|
117
|
-
*
|
|
118
|
-
* #### **Usage**
|
|
119
|
-
* ```ts
|
|
120
|
-
* new QdFormControl('', QdValidators.pattern(/\d/));
|
|
121
|
-
* new QdFormControl('', QdValidators.pattern('[A-Za-z]+'));
|
|
122
|
-
* new QdFormControl('', QdValidators.pattern(/\d/, 'custom-error'));
|
|
123
|
-
* ```
|
|
124
|
-
*/
|
|
125
|
-
static pattern(pattern, errorKey = 'i18n.qd.form.error.pattern') {
|
|
126
|
-
const validFn = (control) => {
|
|
127
|
-
if (hasUnit(control))
|
|
128
|
-
return Validators.pattern(pattern)(new FormControl(control.value.value)) ? { pattern: errorKey } : null;
|
|
129
|
-
return Validators.pattern(pattern)(control) ? { pattern: errorKey } : null;
|
|
130
|
-
};
|
|
131
|
-
return validFn;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Ensures that the form field contains a valid date.
|
|
135
|
-
*
|
|
136
|
-
* #### **Usage**
|
|
137
|
-
* ```ts
|
|
138
|
-
* new QdFormControl('', QdValidators.date());
|
|
139
|
-
* new QdFormControl(new Date(), QdValidators.date());
|
|
140
|
-
* new QdFormControl(new Date(), QdValidators.date('date-error'));
|
|
141
|
-
* ```
|
|
142
|
-
*/
|
|
143
|
-
static date(errorKey = 'i18n.qd.form.error.date') {
|
|
144
|
-
return ({ value }) => {
|
|
145
|
-
if (!value)
|
|
146
|
-
return null;
|
|
147
|
-
const localizedFormat = moment().locale('de').format('L');
|
|
148
|
-
const formattedErrorKey = { date: { key: errorKey, params: { format: localizedFormat } } };
|
|
149
|
-
if (value === 'Invalid Date')
|
|
150
|
-
return formattedErrorKey;
|
|
151
|
-
if (!(value instanceof Date) || isNaN(value.getTime()))
|
|
152
|
-
return formattedErrorKey;
|
|
153
|
-
return null;
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Ensures that the selected date is not within a range of disabled dates.
|
|
158
|
-
*
|
|
159
|
-
* #### **Usage**
|
|
160
|
-
* ```ts
|
|
161
|
-
* new QdFormControl('', QdValidators.disabledDates([{ from: new Date('2025-01-01') }]));
|
|
162
|
-
* ```
|
|
163
|
-
*/
|
|
164
|
-
static disabledDates(disabledDates, errorKey = 'i18n.qd.form.error.disabledDates') {
|
|
165
|
-
const validFn = (control) => {
|
|
166
|
-
if (!control.value || isNaN(control.value?.getTime?.()))
|
|
167
|
-
return null;
|
|
168
|
-
const date = moment(control.value.getTime());
|
|
169
|
-
return this.isDateDisabled(disabledDates, date) ? { disabledDates: errorKey } : null;
|
|
170
|
-
};
|
|
171
|
-
return validFn;
|
|
172
|
-
}
|
|
173
|
-
static isDateDisabled(disabledDates, date) {
|
|
174
|
-
return disabledDates.some(disabledDate => {
|
|
175
|
-
let fromDate = moment(disabledDate.from);
|
|
176
|
-
let toDate = moment(disabledDate.to);
|
|
177
|
-
if (!disabledDate.from)
|
|
178
|
-
fromDate = moment('1900-01-01T00:00:00.000Z');
|
|
179
|
-
if (!disabledDate.to)
|
|
180
|
-
toDate = moment('2100-01-01T00:00:00.000Z');
|
|
181
|
-
return date.isAfter(fromDate, 'day') && date.isBefore(toDate, 'day');
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Ensures that the selected time is not within a range of disabled times.
|
|
186
|
-
*
|
|
187
|
-
* #### **Usage**
|
|
188
|
-
* ```ts
|
|
189
|
-
* new QdFormControl('', QdValidators.disabledTimes([{ from: '15:00' }]));
|
|
190
|
-
* ```
|
|
191
|
-
*/
|
|
192
|
-
static disabledTimes(disabledTimes, errorKey = 'i18n.qd.form.error.disabledTimes') {
|
|
193
|
-
const validFn = (control) => {
|
|
194
|
-
if (!control.value || isNaN(control.value?.getTime?.()))
|
|
195
|
-
return null;
|
|
196
|
-
const time = moment(control.value).format('HH:mm');
|
|
197
|
-
return TimePickerService.isTimeDisabled(time, disabledTimes) ? { disabledTimes: errorKey } : null;
|
|
198
|
-
};
|
|
199
|
-
return validFn;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Ensures that the selected file does not exceed the given maximum size in megabytes.
|
|
203
|
-
*
|
|
204
|
-
* #### **Usage**
|
|
205
|
-
* ```ts
|
|
206
|
-
* new QdFormControl(null, QdValidators.fileSize(5));
|
|
207
|
-
* new QdFormControl(null, QdValidators.fileSize(10, 'custom-error'));
|
|
208
|
-
* ```
|
|
209
|
-
*/
|
|
210
|
-
static fileSize(maxMb, errorKey = 'i18n.qd.form.error.fileSize') {
|
|
211
|
-
return (control) => {
|
|
212
|
-
const file = control.value;
|
|
213
|
-
if (!file || !(file instanceof File))
|
|
214
|
-
return null;
|
|
215
|
-
const maxBytes = maxMb * 1024 * 1024;
|
|
216
|
-
return file.size > maxBytes ? { fileSize: { key: errorKey, params: { maxMb } } } : null;
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Validates that the file type or file extension matches one of the accepted types.
|
|
221
|
-
*
|
|
222
|
-
* #### **Usage**
|
|
223
|
-
* ```ts
|
|
224
|
-
* new QdFormControl(null, QdValidators.fileType(['image/*', '.pdf']));
|
|
225
|
-
* new QdFormControl(null, QdValidators.fileType(['application/msword'], 'custom-error'));
|
|
226
|
-
* ```
|
|
227
|
-
*/
|
|
228
|
-
static fileType(accepted, errorKey = 'i18n.qd.form.error.fileType') {
|
|
229
|
-
return (control) => {
|
|
230
|
-
const file = control.value;
|
|
231
|
-
if (!file || !(file instanceof File))
|
|
232
|
-
return null;
|
|
233
|
-
const fileName = file.name.toLowerCase();
|
|
234
|
-
const mimeType = file.type.toLowerCase();
|
|
235
|
-
const isAccepted = accepted.some(type => {
|
|
236
|
-
const t = type.toLowerCase().trim();
|
|
237
|
-
if (t.endsWith('/*')) {
|
|
238
|
-
const baseType = t.slice(0, t.indexOf('/'));
|
|
239
|
-
return mimeType.startsWith(`${baseType}/`);
|
|
240
|
-
}
|
|
241
|
-
return mimeType === t || fileName.endsWith(t);
|
|
242
|
-
});
|
|
243
|
-
return !isAccepted ? { fileType: { key: errorKey, params: { accepted } } } : null;
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9mb3Jtcy9zaGFyZWQvdmFsaWRhdG9ycy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsV0FBVyxFQUFpQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RyxPQUFPLE1BQWtCLE1BQU0sUUFBUSxDQUFDO0FBR3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRWhGLFNBQVMsT0FBTyxDQUFDLE9BQXdCO0lBQ3ZDLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFDdkI7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxRQUFRLEdBQUcsd0JBQXdCO1FBQ3pELE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtZQUNwRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQUUsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUVsSCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDakUsQ0FBQyxDQUFDO1FBRUYsT0FBTyxP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RixDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcblxuaW1wb3J0IHsgUWREaXNhYmxlZERhdGVzLCBRZERpc2FibGVkVGltZXMgfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IFRpbWVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0ZXBpY2tlci9zZXJ2aWNlL3RpbWVwaWNrZXIuc2VydmljZSc7XG5cbmZ1bmN0aW9uIGhhc1VuaXQoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogYm9vbGVhbiB7XG4gIHJldHVybiBjb250cm9sLnZhbHVlPy52YWx1ZSAhPSBudWxsICYmIGNvbnRyb2wudmFsdWU/LnVuaXQgIT0gbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFFkVmFsaWRhdG9ycyB7XG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhhdCB0aGUgdmFsdWUgb2YgdGhlIGZvcm0gZmllbGQgaXMgYXQgbGVhc3QgdGhlIHNwZWNpZmllZCBtaW5pbXVtLlxuICAgKlxuICAgKiAjIyMjICoqVXNhZ2UqKlxuICAgKiBgYGB0c1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLm1pbigzKSk7XG4gICAqIG5ldyBRZEZvcm1Db250cm9sKCcnLCBRZFZhbGlkYXRvcnMubWluKDMsICdjdXN0b20tZXJyb3InKSk7XG4gICAqIGBgYFxuICAgKi9cbiAgc3RhdGljIG1pbihtaW46IG51bWJlciwgZXJyb3JLZXkgPSAnaTE4bi5xZC5mb3JtLmVycm9yLm1pbicpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgdmFsaWRGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoaGFzVW5pdChjb250cm9sKSkgcmV0dXJuIFZhbGlkYXRvcnMubWluKG1pbikobmV3IEZvcm1Db250cm9sKGNvbnRyb2wudmFsdWUudmFsdWUpKSA/IHsgbWluOiBlcnJvcktleSB9IDogbnVsbDtcblxuICAgICAgcmV0dXJuIFZhbGlkYXRvcnMubWluKG1pbikoY29udHJvbCkgPyB7IG1pbjogZXJyb3JLZXkgfSA6IG51bGw7XG4gICAgfTtcblxuICAgIHJldHVybiB2YWxpZEZuO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGF0IHRoZSB2YWx1ZSBvZiB0aGUgZm9ybSBmaWVsZCBkb2VzIG5vdCBleGNlZWQgdGhlIHNwZWNpZmllZCBtYXhpbXVtLlxuICAgKlxuICAgKiAjIyMjICoqVXNhZ2UqKlxuICAgKiBgYGB0c1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLm1heCgxMCkpO1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLm1heCgxMCwgJ2N1c3RvbS1lcnJvcicpKTtcbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgbWF4KG1heDogbnVtYmVyLCBlcnJvcktleSA9ICdpMThuLnFkLmZvcm0uZXJyb3IubWF4Jyk6IFZhbGlkYXRvckZuIHtcbiAgICBjb25zdCB2YWxpZEZuID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGlmIChoYXNVbml0KGNvbnRyb2wpKSByZXR1cm4gVmFsaWRhdG9ycy5tYXgobWF4KShuZXcgRm9ybUNvbnRyb2woY29udHJvbC52YWx1ZS52YWx1ZSkpID8geyBtYXg6IGVycm9yS2V5IH0gOiBudWxsO1xuXG4gICAgICByZXR1cm4gVmFsaWRhdG9ycy5tYXgobWF4KShjb250cm9sKSA/IHsgbWF4OiBlcnJvcktleSB9IDogbnVsbDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHZhbGlkRm47XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGF0IHRoZSBmb3JtIGZpZWxkIGlzIG5vdCBlbXB0eS5cbiAgICpcbiAgICogIyMjIyAqKlVzYWdlKipcbiAgICogYGBgdHNcbiAgICogbmV3IFFkRm9ybUNvbnRyb2woJycsIFFkVmFsaWRhdG9ycy5yZXF1aXJlZCgpKTtcbiAgICogbmV3IFFkRm9ybUNvbnRyb2woJycsIFFkVmFsaWRhdG9ycy5yZXF1aXJlZCgnY3VzdG9tLWVycm9yJykpO1xuICAgKiBgYGBcbiAgICovXG4gIHN0YXRpYyByZXF1aXJlZChlcnJvcktleSA9ICdpMThuLnFkLmZvcm0uZXJyb3IucmVxdWlyZWQnKTogVmFsaWRhdG9yRm4ge1xuICAgIGNvbnN0IHZhbGlkRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29udHJvbC52YWx1ZSkpIHJldHVybiBWYWxpZGF0b3JzLnJlcXVpcmVkKGNvbnRyb2wpID8geyByZXF1aXJlZDogZXJyb3JLZXkgfSA6IG51bGw7XG5cbiAgICAgIHJldHVybiB0aGlzLmlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpID8geyByZXF1aXJlZDogZXJyb3JLZXkgfSA6IG51bGw7XG4gICAgfTtcblxuICAgIHJldHVybiB2YWxpZEZuO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNFbXB0eUlucHV0VmFsdWUodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHZhbHVlKS5zb21lKGtleSA9PiB0aGlzLmlzRW1wdHlJbnB1dFZhbHVlKCh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba2V5XSkpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA9PT0gMCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoYXQgdGhlIGZvcm0gZmllbGQgY29udGFpbnMgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLlxuICAgKlxuICAgKiAjIyMjICoqVXNhZ2UqKlxuICAgKiBgYGB0c1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLmVtYWlsKCkpO1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLmVtYWlsKCdjdXN0b20tZXJyb3InKSk7XG4gICAqIGBgYFxuICAgKi9cbiAgc3RhdGljIGVtYWlsKGVycm9yS2V5ID0gJ2kxOG4ucWQuZm9ybS5lcnJvci5lbWFpbCcpOiBWYWxpZGF0b3JGbiB7XG4gICAgLy8gcmVnZXggZnJvbSBodHRwczovL3JlZ2V4ci5jb20vIGNvbW11bml0eSBwYXR0ZXJucyBcIlJGQzI4MjIgRW1haWwgVmFsaWRhdGlvblwiXG4gICAgY29uc3QgZW1haWxWYWxpZGF0b3JSZWdleCA9XG4gICAgICAvXlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcXC5bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAKD86W2EtejAtOV0oPzpbYS16MC05LV0qW2EtejAtOV0pP1xcLikrW2EtejAtOV0oPzpbYS16MC05LV0qW2EtejAtOV0pPyQvaTtcblxuICAgIGNvbnN0IHZhbGlkRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgIFZhbGlkYXRvcnMucGF0dGVybihlbWFpbFZhbGlkYXRvclJlZ2V4KShjb250cm9sKSA/IHsgZW1haWw6IGVycm9yS2V5IH0gOiBudWxsO1xuXG4gICAgcmV0dXJuIHZhbGlkRm47XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGF0IHRoZSBmb3JtIGZpZWxkIGNvbnRhaW5zIGF0IGxlYXN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqICMjIyMgKipVc2FnZSoqXG4gICAqIGBgYHRzXG4gICAqIG5ldyBRZEZvcm1Db250cm9sKCcnLCBRZFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpKTtcbiAgICogbmV3IFFkRm9ybUNvbnRyb2woJycsIFFkVmFsaWRhdG9ycy5taW5MZW5ndGgoMywgJ2N1c3RvbS1lcnJvcicpKTtcbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgbWluTGVuZ3RoKG1pbkxlbmd0aDogbnVtYmVyLCBlcnJvcktleSA9ICdpMThuLnFkLmZvcm0uZXJyb3IubWluTGVuZ3RoJyk6IFZhbGlkYXRvckZuIHtcbiAgICBjb25zdCB2YWxpZEZuID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGlmIChoYXNVbml0KGNvbnRyb2wpKVxuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5taW5MZW5ndGgobWluTGVuZ3RoKShuZXcgRm9ybUNvbnRyb2woY29udHJvbC52YWx1ZS52YWx1ZSkpID8geyBtaW5MZW5ndGg6IGVycm9yS2V5IH0gOiBudWxsO1xuXG4gICAgICByZXR1cm4gVmFsaWRhdG9ycy5taW5MZW5ndGgobWluTGVuZ3RoKShjb250cm9sKSA/IHsgbWluTGVuZ3RoOiBlcnJvcktleSB9IDogbnVsbDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHZhbGlkRm47XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGF0IHRoZSBmb3JtIGZpZWxkIGNvbnRhaW5zIG5vIG1vcmUgdGhhbiB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBjaGFyYWN0ZXJzLlxuICAgKlxuICAgKiAjIyMjICoqVXNhZ2UqKlxuICAgKiBgYGB0c1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLm1heExlbmd0aCgxMCkpO1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLm1heExlbmd0aCgxMCwgJ2N1c3RvbS1lcnJvcicpKTtcbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgbWF4TGVuZ3RoKG1heExlbmd0aDogbnVtYmVyLCBlcnJvcktleSA9ICdpMThuLnFkLmZvcm0uZXJyb3IubWF4TGVuZ3RoJyk6IFZhbGlkYXRvckZuIHtcbiAgICBjb25zdCB2YWxpZEZuID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGlmIChoYXNVbml0KGNvbnRyb2wpKVxuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5tYXhMZW5ndGgobWF4TGVuZ3RoKShuZXcgRm9ybUNvbnRyb2woY29udHJvbC52YWx1ZS52YWx1ZSkpID8geyBtYXhMZW5ndGg6IGVycm9yS2V5IH0gOiBudWxsO1xuXG4gICAgICByZXR1cm4gVmFsaWRhdG9ycy5tYXhMZW5ndGgobWF4TGVuZ3RoKShjb250cm9sKSA/IHsgbWF4TGVuZ3RoOiBlcnJvcktleSB9IDogbnVsbDtcbiAgICB9O1xuXG4gICAgdmFsaWRGbi5tYXhMZW5ndGggPSBtYXhMZW5ndGg7XG4gICAgcmV0dXJuIHZhbGlkRm47XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGF0IHRoZSBmb3JtIGZpZWxkIG1hdGNoZXMgYSBnaXZlbiByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybi5cbiAgICpcbiAgICogIyMjIyAqKlVzYWdlKipcbiAgICogYGBgdHNcbiAgICogbmV3IFFkRm9ybUNvbnRyb2woJycsIFFkVmFsaWRhdG9ycy5wYXR0ZXJuKC9cXGQvKSk7XG4gICAqIG5ldyBRZEZvcm1Db250cm9sKCcnLCBRZFZhbGlkYXRvcnMucGF0dGVybignW0EtWmEtel0rJykpO1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLnBhdHRlcm4oL1xcZC8sICdjdXN0b20tZXJyb3InKSk7XG4gICAqIGBgYFxuICAgKi9cbiAgc3RhdGljIHBhdHRlcm4ocGF0dGVybjogc3RyaW5nIHwgUmVnRXhwLCBlcnJvcktleSA9ICdpMThuLnFkLmZvcm0uZXJyb3IucGF0dGVybicpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgdmFsaWRGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoaGFzVW5pdChjb250cm9sKSlcbiAgICAgICAgcmV0dXJuIFZhbGlkYXRvcnMucGF0dGVybihwYXR0ZXJuKShuZXcgRm9ybUNvbnRyb2woY29udHJvbC52YWx1ZS52YWx1ZSkpID8geyBwYXR0ZXJuOiBlcnJvcktleSB9IDogbnVsbDtcblxuICAgICAgcmV0dXJuIFZhbGlkYXRvcnMucGF0dGVybihwYXR0ZXJuKShjb250cm9sKSA/IHsgcGF0dGVybjogZXJyb3JLZXkgfSA6IG51bGw7XG4gICAgfTtcblxuICAgIHJldHVybiB2YWxpZEZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhhdCB0aGUgZm9ybSBmaWVsZCBjb250YWlucyBhIHZhbGlkIGRhdGUuXG4gICAqXG4gICAqICMjIyMgKipVc2FnZSoqXG4gICAqIGBgYHRzXG4gICAqIG5ldyBRZEZvcm1Db250cm9sKCcnLCBRZFZhbGlkYXRvcnMuZGF0ZSgpKTtcbiAgICogbmV3IFFkRm9ybUNvbnRyb2wobmV3IERhdGUoKSwgUWRWYWxpZGF0b3JzLmRhdGUoKSk7XG4gICAqIG5ldyBRZEZvcm1Db250cm9sKG5ldyBEYXRlKCksIFFkVmFsaWRhdG9ycy5kYXRlKCdkYXRlLWVycm9yJykpO1xuICAgKiBgYGBcbiAgICovXG4gIHN0YXRpYyBkYXRlKGVycm9yS2V5ID0gJ2kxOG4ucWQuZm9ybS5lcnJvci5kYXRlJyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKHsgdmFsdWUgfTogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGNvbnN0IGxvY2FsaXplZEZvcm1hdCA9IG1vbWVudCgpLmxvY2FsZSgnZGUnKS5mb3JtYXQoJ0wnKTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZEVycm9yS2V5ID0geyBkYXRlOiB7IGtleTogZXJyb3JLZXksIHBhcmFtczogeyBmb3JtYXQ6IGxvY2FsaXplZEZvcm1hdCB9IH0gfTtcblxuICAgICAgaWYgKHZhbHVlID09PSAnSW52YWxpZCBEYXRlJykgcmV0dXJuIGZvcm1hdHRlZEVycm9yS2V5O1xuXG4gICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHx8IGlzTmFOKHZhbHVlLmdldFRpbWUoKSkpIHJldHVybiBmb3JtYXR0ZWRFcnJvcktleTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoYXQgdGhlIHNlbGVjdGVkIGRhdGUgaXMgbm90IHdpdGhpbiBhIHJhbmdlIG9mIGRpc2FibGVkIGRhdGVzLlxuICAgKlxuICAgKiAjIyMjICoqVXNhZ2UqKlxuICAgKiBgYGB0c1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLmRpc2FibGVkRGF0ZXMoW3sgZnJvbTogbmV3IERhdGUoJzIwMjUtMDEtMDEnKSB9XSkpO1xuICAgKiBgYGBcbiAgICovXG4gIHN0YXRpYyBkaXNhYmxlZERhdGVzKGRpc2FibGVkRGF0ZXM6IFFkRGlzYWJsZWREYXRlc1tdLCBlcnJvcktleSA9ICdpMThuLnFkLmZvcm0uZXJyb3IuZGlzYWJsZWREYXRlcycpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgdmFsaWRGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUgfHwgaXNOYU4oY29udHJvbC52YWx1ZT8uZ2V0VGltZT8uKCkpKSByZXR1cm4gbnVsbDtcblxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChjb250cm9sLnZhbHVlLmdldFRpbWUoKSk7XG5cbiAgICAgIHJldHVybiB0aGlzLmlzRGF0ZURpc2FibGVkKGRpc2FibGVkRGF0ZXMsIGRhdGUpID8geyBkaXNhYmxlZERhdGVzOiBlcnJvcktleSB9IDogbnVsbDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHZhbGlkRm47XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc0RhdGVEaXNhYmxlZChkaXNhYmxlZERhdGVzOiBRZERpc2FibGVkRGF0ZXNbXSwgZGF0ZTogTW9tZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRpc2FibGVkRGF0ZXMuc29tZShkaXNhYmxlZERhdGUgPT4ge1xuICAgICAgbGV0IGZyb21EYXRlID0gbW9tZW50KGRpc2FibGVkRGF0ZS5mcm9tKTtcbiAgICAgIGxldCB0b0RhdGUgPSBtb21lbnQoZGlzYWJsZWREYXRlLnRvKTtcbiAgICAgIGlmICghZGlzYWJsZWREYXRlLmZyb20pIGZyb21EYXRlID0gbW9tZW50KCcxOTAwLTAxLTAxVDAwOjAwOjAwLjAwMFonKTtcbiAgICAgIGlmICghZGlzYWJsZWREYXRlLnRvKSB0b0RhdGUgPSBtb21lbnQoJzIxMDAtMDEtMDFUMDA6MDA6MDAuMDAwWicpO1xuXG4gICAgICByZXR1cm4gZGF0ZS5pc0FmdGVyKGZyb21EYXRlLCAnZGF5JykgJiYgZGF0ZS5pc0JlZm9yZSh0b0RhdGUsICdkYXknKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoYXQgdGhlIHNlbGVjdGVkIHRpbWUgaXMgbm90IHdpdGhpbiBhIHJhbmdlIG9mIGRpc2FibGVkIHRpbWVzLlxuICAgKlxuICAgKiAjIyMjICoqVXNhZ2UqKlxuICAgKiBgYGB0c1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbCgnJywgUWRWYWxpZGF0b3JzLmRpc2FibGVkVGltZXMoW3sgZnJvbTogJzE1OjAwJyB9XSkpO1xuICAgKiBgYGBcbiAgICovXG4gIHN0YXRpYyBkaXNhYmxlZFRpbWVzKGRpc2FibGVkVGltZXM6IFFkRGlzYWJsZWRUaW1lc1tdLCBlcnJvcktleSA9ICdpMThuLnFkLmZvcm0uZXJyb3IuZGlzYWJsZWRUaW1lcycpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgdmFsaWRGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUgfHwgaXNOYU4oY29udHJvbC52YWx1ZT8uZ2V0VGltZT8uKCkpKSByZXR1cm4gbnVsbDtcblxuICAgICAgY29uc3QgdGltZSA9IG1vbWVudChjb250cm9sLnZhbHVlKS5mb3JtYXQoJ0hIOm1tJyk7XG5cbiAgICAgIHJldHVybiBUaW1lUGlja2VyU2VydmljZS5pc1RpbWVEaXNhYmxlZCh0aW1lLCBkaXNhYmxlZFRpbWVzKSA/IHsgZGlzYWJsZWRUaW1lczogZXJyb3JLZXkgfSA6IG51bGw7XG4gICAgfTtcblxuICAgIHJldHVybiB2YWxpZEZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhhdCB0aGUgc2VsZWN0ZWQgZmlsZSBkb2VzIG5vdCBleGNlZWQgdGhlIGdpdmVuIG1heGltdW0gc2l6ZSBpbiBtZWdhYnl0ZXMuXG4gICAqXG4gICAqICMjIyMgKipVc2FnZSoqXG4gICAqIGBgYHRzXG4gICAqIG5ldyBRZEZvcm1Db250cm9sKG51bGwsIFFkVmFsaWRhdG9ycy5maWxlU2l6ZSg1KSk7XG4gICAqIG5ldyBRZEZvcm1Db250cm9sKG51bGwsIFFkVmFsaWRhdG9ycy5maWxlU2l6ZSgxMCwgJ2N1c3RvbS1lcnJvcicpKTtcbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgZmlsZVNpemUobWF4TWI6IG51bWJlciwgZXJyb3JLZXkgPSAnaTE4bi5xZC5mb3JtLmVycm9yLmZpbGVTaXplJyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBjb250cm9sLnZhbHVlIGFzIEZpbGUgfCBudWxsO1xuXG4gICAgICBpZiAoIWZpbGUgfHwgIShmaWxlIGluc3RhbmNlb2YgRmlsZSkpIHJldHVybiBudWxsO1xuXG4gICAgICBjb25zdCBtYXhCeXRlcyA9IG1heE1iICogMTAyNCAqIDEwMjQ7XG5cbiAgICAgIHJldHVybiBmaWxlLnNpemUgPiBtYXhCeXRlcyA/IHsgZmlsZVNpemU6IHsga2V5OiBlcnJvcktleSwgcGFyYW1zOiB7IG1heE1iIH0gfSB9IDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGF0IHRoZSBmaWxlIHR5cGUgb3IgZmlsZSBleHRlbnNpb24gbWF0Y2hlcyBvbmUgb2YgdGhlIGFjY2VwdGVkIHR5cGVzLlxuICAgKlxuICAgKiAjIyMjICoqVXNhZ2UqKlxuICAgKiBgYGB0c1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbChudWxsLCBRZFZhbGlkYXRvcnMuZmlsZVR5cGUoWydpbWFnZS8qJywgJy5wZGYnXSkpO1xuICAgKiBuZXcgUWRGb3JtQ29udHJvbChudWxsLCBRZFZhbGlkYXRvcnMuZmlsZVR5cGUoWydhcHBsaWNhdGlvbi9tc3dvcmQnXSwgJ2N1c3RvbS1lcnJvcicpKTtcbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgZmlsZVR5cGUoYWNjZXB0ZWQ6IHN0cmluZ1tdLCBlcnJvcktleSA9ICdpMThuLnFkLmZvcm0uZXJyb3IuZmlsZVR5cGUnKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgZmlsZSA9IGNvbnRyb2wudmFsdWUgYXMgRmlsZSB8IG51bGw7XG5cbiAgICAgIGlmICghZmlsZSB8fCAhKGZpbGUgaW5zdGFuY2VvZiBGaWxlKSkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGNvbnN0IGZpbGVOYW1lID0gZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBtaW1lVHlwZSA9IGZpbGUudHlwZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjb25zdCBpc0FjY2VwdGVkID0gYWNjZXB0ZWQuc29tZSh0eXBlID0+IHtcbiAgICAgICAgY29uc3QgdCA9IHR5cGUudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgICAgIGlmICh0LmVuZHNXaXRoKCcvKicpKSB7XG4gICAgICAgICAgY29uc3QgYmFzZVR5cGUgPSB0LnNsaWNlKDAsIHQuaW5kZXhPZignLycpKTtcblxuICAgICAgICAgIHJldHVybiBtaW1lVHlwZS5zdGFydHNXaXRoKGAke2Jhc2VUeXBlfS9gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtaW1lVHlwZSA9PT0gdCB8fCBmaWxlTmFtZS5lbmRzV2l0aCh0KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gIWlzQWNjZXB0ZWQgPyB7IGZpbGVUeXBlOiB7IGtleTogZXJyb3JLZXksIHBhcmFtczogeyBhY2NlcHRlZCB9IH0gfSA6IG51bGw7XG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
// @ts-strict-ignore
|
|
2
|
-
import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { v4 as uuid } from 'uuid';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "@ngx-translate/core";
|
|
7
|
-
export class QdSwitchComponent {
|
|
8
|
-
inputData;
|
|
9
|
-
id;
|
|
10
|
-
disabled = false;
|
|
11
|
-
testId = 'switch';
|
|
12
|
-
valueChange = new EventEmitter();
|
|
13
|
-
get active() {
|
|
14
|
-
return this.inputData.active;
|
|
15
|
-
}
|
|
16
|
-
get isDisabled() {
|
|
17
|
-
return this.inputData.disabled || this.disabled;
|
|
18
|
-
}
|
|
19
|
-
get toggleId() {
|
|
20
|
-
const uid = this.inputData ? this.inputData.value + this.id : this.id;
|
|
21
|
-
return `switch-toggle-${uid}`;
|
|
22
|
-
}
|
|
23
|
-
get label() {
|
|
24
|
-
return this.inputData.i18n;
|
|
25
|
-
}
|
|
26
|
-
get labelPosition() {
|
|
27
|
-
return this.inputData.labelPosition || 'right';
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
if (!this.id) {
|
|
31
|
-
this.id = uuid();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdSwitchComponent, selector: "qd-switch", inputs: { inputData: "inputData", id: "id", disabled: "disabled", testId: ["data-test-id", "testId"] }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.qd-switch-active": "this.active", "class.qd-switch-disabled": "this.isDisabled" }, classAttribute: "qd-switch" }, ngImport: i0, template: "<label [for]=\"toggleId\">\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'left'\" [attr.data-test-id]=\"testId + '-label'\">\n {{ label | translate }}\n </div>\n <div class=\"switch-toggle-bar\">\n <div class=\"switch-toggle-button\"></div>\n </div>\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'right'\" [attr.data-test-id]=\"testId + '-content'\">\n {{ label | translate }}\n </div>\n</label>\n", styles: [".qd-switch label{display:flex;width:max-content;align-items:center}.qd-switch label:hover{cursor:pointer}.qd-switch .switch-toggle-bar{position:relative;width:2.5rem;height:1.25rem;border-radius:1.25rem;background-color:#e5e5e5}.qd-switch .switch-toggle-bar .switch-toggle-button{position:absolute;top:0;width:1.25rem;height:1.25rem;border-radius:1.25rem;background-color:#b4b4b4;transition:all 80ms linear;transition-property:transform}.qd-switch .switch-content{margin-right:.75rem;margin-left:.75rem;color:#171717;font-size:.875rem;font-weight:400;line-height:.875rem}.qd-switch:hover .switch-toggle-bar{background-color:#d5d5d5}.qd-switch:hover .switch-toggle-bar .switch-toggle-button{background-color:#979797}.qd-switch.qd-switch-active .switch-toggle-bar{background-color:#c3e8cd}.qd-switch.qd-switch-active .switch-toggle-bar .switch-toggle-button{background-color:#00813a;transform:translate(1.25rem)}.qd-switch.qd-switch-active:hover .switch-toggle-bar .switch-toggle-button{background-color:#006226}.qd-switch.qd-switch-disabled label:hover{cursor:initial}.qd-switch.qd-switch-disabled .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}.qd-switch.qd-switch-disabled .switch-content{color:#757575}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSwitchComponent, decorators: [{
|
|
38
|
-
type: Component,
|
|
39
|
-
args: [{ selector: 'qd-switch', encapsulation: ViewEncapsulation.None, host: { class: 'qd-switch' }, template: "<label [for]=\"toggleId\">\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'left'\" [attr.data-test-id]=\"testId + '-label'\">\n {{ label | translate }}\n </div>\n <div class=\"switch-toggle-bar\">\n <div class=\"switch-toggle-button\"></div>\n </div>\n <div class=\"switch-content\" *ngIf=\"labelPosition === 'right'\" [attr.data-test-id]=\"testId + '-content'\">\n {{ label | translate }}\n </div>\n</label>\n", styles: [".qd-switch label{display:flex;width:max-content;align-items:center}.qd-switch label:hover{cursor:pointer}.qd-switch .switch-toggle-bar{position:relative;width:2.5rem;height:1.25rem;border-radius:1.25rem;background-color:#e5e5e5}.qd-switch .switch-toggle-bar .switch-toggle-button{position:absolute;top:0;width:1.25rem;height:1.25rem;border-radius:1.25rem;background-color:#b4b4b4;transition:all 80ms linear;transition-property:transform}.qd-switch .switch-content{margin-right:.75rem;margin-left:.75rem;color:#171717;font-size:.875rem;font-weight:400;line-height:.875rem}.qd-switch:hover .switch-toggle-bar{background-color:#d5d5d5}.qd-switch:hover .switch-toggle-bar .switch-toggle-button{background-color:#979797}.qd-switch.qd-switch-active .switch-toggle-bar{background-color:#c3e8cd}.qd-switch.qd-switch-active .switch-toggle-bar .switch-toggle-button{background-color:#00813a;transform:translate(1.25rem)}.qd-switch.qd-switch-active:hover .switch-toggle-bar .switch-toggle-button{background-color:#006226}.qd-switch.qd-switch-disabled label:hover{cursor:initial}.qd-switch.qd-switch-disabled .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}.qd-switch.qd-switch-disabled .switch-content{color:#757575}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar{background-color:#efefef}.qd-switch.qd-switch-disabled:hover .switch-toggle-bar .switch-toggle-button{background-color:#d5d5d5}\n"] }]
|
|
40
|
-
}], propDecorators: { inputData: [{
|
|
41
|
-
type: Input
|
|
42
|
-
}], id: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}], disabled: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}], testId: [{
|
|
47
|
-
type: Input,
|
|
48
|
-
args: ['data-test-id']
|
|
49
|
-
}], valueChange: [{
|
|
50
|
-
type: Output
|
|
51
|
-
}], active: [{
|
|
52
|
-
type: HostBinding,
|
|
53
|
-
args: ['class.qd-switch-active']
|
|
54
|
-
}], isDisabled: [{
|
|
55
|
-
type: HostBinding,
|
|
56
|
-
args: ['class.qd-switch-disabled']
|
|
57
|
-
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9mb3Jtcy9zd2l0Y2hlcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9mb3Jtcy9zd2l0Y2hlcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQVdsQyxNQUFNLE9BQU8saUJBQWlCO0lBQ25CLFNBQVMsQ0FBZ0I7SUFDekIsRUFBRSxDQUFTO0lBQ1gsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNILE1BQU0sR0FBRyxRQUFRLENBQUM7SUFFL0IsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFbkQsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFDSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3RFLE9BQU8saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQztJQUNqRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO3VHQW5DVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixpVkNiOUIsc2JBV0E7OzJGREVhLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFOzhCQUduQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNpQixNQUFNO3NCQUE1QixLQUFLO3VCQUFDLGNBQWM7Z0JBRVgsV0FBVztzQkFBcEIsTUFBTTtnQkFHSCxNQUFNO3NCQURULFdBQVc7dUJBQUMsd0JBQXdCO2dCQU1qQyxVQUFVO3NCQURiLFdBQVc7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLXN0cmljdC1pZ25vcmVcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuXG5pbXBvcnQgeyBRZFN3aXRjaElucHV0IH0gZnJvbSAnLi4vLi4vbW9kZWwvb3B0aW9ucy5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdxZC1zd2l0Y2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3dpdGNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3dpdGNoLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdxZC1zd2l0Y2gnIH1cbn0pXG5leHBvcnQgY2xhc3MgUWRTd2l0Y2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpbnB1dERhdGE6IFFkU3dpdGNoSW5wdXQ7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgnZGF0YS10ZXN0LWlkJykgdGVzdElkID0gJ3N3aXRjaCc7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1zd2l0Y2gtYWN0aXZlJylcbiAgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dERhdGEuYWN0aXZlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1zd2l0Y2gtZGlzYWJsZWQnKVxuICBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dERhdGEuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZDtcbiAgfVxuXG4gIGdldCB0b2dnbGVJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVpZCA9IHRoaXMuaW5wdXREYXRhID8gdGhpcy5pbnB1dERhdGEudmFsdWUgKyB0aGlzLmlkIDogdGhpcy5pZDtcbiAgICByZXR1cm4gYHN3aXRjaC10b2dnbGUtJHt1aWR9YDtcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlucHV0RGF0YS5pMThuO1xuICB9XG5cbiAgZ2V0IGxhYmVsUG9zaXRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dERhdGEubGFiZWxQb3NpdGlvbiB8fCAncmlnaHQnO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlkKSB7XG4gICAgICB0aGlzLmlkID0gdXVpZCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGxhYmVsIFtmb3JdPVwidG9nZ2xlSWRcIj5cbiAgPGRpdiBjbGFzcz1cInN3aXRjaC1jb250ZW50XCIgKm5nSWY9XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCdcIiBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkICsgJy1sYWJlbCdcIj5cbiAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInN3aXRjaC10b2dnbGUtYmFyXCI+XG4gICAgPGRpdiBjbGFzcz1cInN3aXRjaC10b2dnbGUtYnV0dG9uXCI+PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3dpdGNoLWNvbnRlbnRcIiAqbmdJZj1cImxhYmVsUG9zaXRpb24gPT09ICdyaWdodCdcIiBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkICsgJy1jb250ZW50J1wiPlxuICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gIDwvZGl2PlxuPC9sYWJlbD5cbiJdfQ==
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// @ts-strict-ignore
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class QdSwitchesService {
|
|
5
|
-
switchesList;
|
|
6
|
-
formatFormControlValues(formControlValues) {
|
|
7
|
-
const values = formControlValues || [];
|
|
8
|
-
return values.map(formControlValue => {
|
|
9
|
-
if (formControlValue.hasOwnProperty('value')) {
|
|
10
|
-
return formControlValue;
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
return { value: formControlValue };
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
isAtLeastOneSelected(list) {
|
|
18
|
-
return list.reduce((hasValue, item) => hasValue || item.active, false);
|
|
19
|
-
}
|
|
20
|
-
setList(list) {
|
|
21
|
-
this.switchesList = list.map(item => ({ ...item, disabled: item.disabled || false }));
|
|
22
|
-
}
|
|
23
|
-
getList() {
|
|
24
|
-
return this.switchesList;
|
|
25
|
-
}
|
|
26
|
-
fillListWithDefaults(formControlValues) {
|
|
27
|
-
const _formControlValue = this.formatFormControlValues(formControlValues);
|
|
28
|
-
this.switchesList = this.switchesList.map((item, index) => {
|
|
29
|
-
let values;
|
|
30
|
-
_formControlValue.forEach(formControlValue => {
|
|
31
|
-
if (formControlValue.value === item.value) {
|
|
32
|
-
values = { active: true, disabled: formControlValue.disabled || item.disabled || false };
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
return {
|
|
36
|
-
...item,
|
|
37
|
-
...{ active: item.active || false },
|
|
38
|
-
...{ index },
|
|
39
|
-
...values
|
|
40
|
-
};
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
getValues() {
|
|
44
|
-
if (this.isAtLeastOneSelected(this.switchesList)) {
|
|
45
|
-
return this.switchesList.map(checkbox => (checkbox.active ? checkbox.value : null));
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return [];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
updateList(value) {
|
|
52
|
-
this.switchesList = this.switchesList.map(item => {
|
|
53
|
-
if (item.value === value) {
|
|
54
|
-
return { ...item, ...{ active: !item.active } };
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
return item;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSwitchesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSwitchesService });
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSwitchesService, decorators: [{
|
|
65
|
-
type: Injectable
|
|
66
|
-
}] });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9mb3Jtcy9zd2l0Y2hlcy9zd2l0Y2hlcy1zZXJ2aWNlL3N3aXRjaGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxpQkFBaUI7SUFDcEIsWUFBWSxDQUFrQjtJQUU5Qix1QkFBdUIsQ0FBQyxpQkFBaUI7UUFDL0MsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLElBQUksRUFBRSxDQUFDO1FBRXZDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ25DLElBQUksZ0JBQWdCLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLE9BQU8sZ0JBQWdCLENBQUM7WUFDMUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsSUFBcUI7UUFDaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVNLG9CQUFvQixDQUFDLGlCQUFrQjtRQUM1QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTFFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFtQixFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQy9FLElBQUksTUFBTSxDQUFDO1lBRVgsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7Z0JBQzNDLElBQUksZ0JBQWdCLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDMUMsTUFBTSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQzNGLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU87Z0JBQ0wsR0FBRyxJQUFJO2dCQUNQLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUU7Z0JBQ25DLEdBQUcsRUFBRSxLQUFLLEVBQUU7Z0JBQ1osR0FBRyxNQUFNO2FBQ1YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUE2QjtRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9DLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWhFVSxpQkFBaUI7MkdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1zdHJpY3QtaWdub3JlXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFFkU3dpdGNoSW5wdXQgfSBmcm9tICcuLi8uLi9tb2RlbC9vcHRpb25zLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRZFN3aXRjaGVzU2VydmljZSB7XG4gIHByaXZhdGUgc3dpdGNoZXNMaXN0OiBRZFN3aXRjaElucHV0W107XG5cbiAgcHJpdmF0ZSBmb3JtYXRGb3JtQ29udHJvbFZhbHVlcyhmb3JtQ29udHJvbFZhbHVlcyk6IFFkU3dpdGNoSW5wdXRbXSB7XG4gICAgY29uc3QgdmFsdWVzID0gZm9ybUNvbnRyb2xWYWx1ZXMgfHwgW107XG5cbiAgICByZXR1cm4gdmFsdWVzLm1hcChmb3JtQ29udHJvbFZhbHVlID0+IHtcbiAgICAgIGlmIChmb3JtQ29udHJvbFZhbHVlLmhhc093blByb3BlcnR5KCd2YWx1ZScpKSB7XG4gICAgICAgIHJldHVybiBmb3JtQ29udHJvbFZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGZvcm1Db250cm9sVmFsdWUgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBdExlYXN0T25lU2VsZWN0ZWQobGlzdDogUWRTd2l0Y2hJbnB1dFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxpc3QucmVkdWNlKChoYXNWYWx1ZSwgaXRlbSkgPT4gaGFzVmFsdWUgfHwgaXRlbS5hY3RpdmUsIGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaXN0KGxpc3QpOiB2b2lkIHtcbiAgICB0aGlzLnN3aXRjaGVzTGlzdCA9IGxpc3QubWFwKGl0ZW0gPT4gKHsgLi4uaXRlbSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfHwgZmFsc2UgfSkpO1xuICB9XG5cbiAgcHVibGljIGdldExpc3QoKTogUWRTd2l0Y2hJbnB1dFtdIHtcbiAgICByZXR1cm4gdGhpcy5zd2l0Y2hlc0xpc3Q7XG4gIH1cblxuICBwdWJsaWMgZmlsbExpc3RXaXRoRGVmYXVsdHMoZm9ybUNvbnRyb2xWYWx1ZXM/KTogdm9pZCB7XG4gICAgY29uc3QgX2Zvcm1Db250cm9sVmFsdWUgPSB0aGlzLmZvcm1hdEZvcm1Db250cm9sVmFsdWVzKGZvcm1Db250cm9sVmFsdWVzKTtcblxuICAgIHRoaXMuc3dpdGNoZXNMaXN0ID0gdGhpcy5zd2l0Y2hlc0xpc3QubWFwKChpdGVtOiBRZFN3aXRjaElucHV0LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBsZXQgdmFsdWVzO1xuXG4gICAgICBfZm9ybUNvbnRyb2xWYWx1ZS5mb3JFYWNoKGZvcm1Db250cm9sVmFsdWUgPT4ge1xuICAgICAgICBpZiAoZm9ybUNvbnRyb2xWYWx1ZS52YWx1ZSA9PT0gaXRlbS52YWx1ZSkge1xuICAgICAgICAgIHZhbHVlcyA9IHsgYWN0aXZlOiB0cnVlLCBkaXNhYmxlZDogZm9ybUNvbnRyb2xWYWx1ZS5kaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkIHx8IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pdGVtLFxuICAgICAgICAuLi57IGFjdGl2ZTogaXRlbS5hY3RpdmUgfHwgZmFsc2UgfSxcbiAgICAgICAgLi4ueyBpbmRleCB9LFxuICAgICAgICAuLi52YWx1ZXNcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5pc0F0TGVhc3RPbmVTZWxlY3RlZCh0aGlzLnN3aXRjaGVzTGlzdCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnN3aXRjaGVzTGlzdC5tYXAoY2hlY2tib3ggPT4gKGNoZWNrYm94LmFjdGl2ZSA/IGNoZWNrYm94LnZhbHVlIDogbnVsbCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUxpc3QodmFsdWU6IFFkU3dpdGNoSW5wdXRbJ3ZhbHVlJ10pOiB2b2lkIHtcbiAgICB0aGlzLnN3aXRjaGVzTGlzdCA9IHRoaXMuc3dpdGNoZXNMaXN0Lm1hcChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICByZXR1cm4geyAuLi5pdGVtLCAuLi57IGFjdGl2ZTogIWl0ZW0uYWN0aXZlIH0gfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|