structra-ui 0.1.13 → 0.1.15
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/package.json +6 -4
- package/app/_utils/date-pt-br.utils.d.ts +0 -24
- package/app/_utils/decimal-br.utils.d.ts +0 -52
- package/app/_utils/estados-br.data.d.ts +0 -10
- package/app/_utils/integer-br.utils.d.ts +0 -17
- package/app/_utils/integer-value.utils.d.ts +0 -5
- package/app/_utils/scroll/body-scroll-lock.util.d.ts +0 -44
- package/app/app-shell/_models/breadcrumb-item.model.d.ts +0 -13
- package/app/app-shell/app-shell-sidebar-template.directive.d.ts +0 -19
- package/app/app-shell/app-shell.component.d.ts +0 -41
- package/app/app-shell/breadcrumb/breadcrumb.component.d.ts +0 -10
- package/app/app-shell/index.d.ts +0 -19
- package/app/app-shell/sidebar/app-sidebar-toolbar.directive.d.ts +0 -14
- package/app/app-shell/sidebar/shell-sidebar-toggle.component.d.ts +0 -19
- package/app/app-shell/sidebar/sidebar.component.d.ts +0 -36
- package/app/app-shell/sidebar-reveal.constants.d.ts +0 -8
- package/app/app-shell/topbar/topbar.component.d.ts +0 -8
- package/app/app-shell/user-menu/user-menu.component.d.ts +0 -25
- package/app/buttons/base-button/base-button.component.d.ts +0 -43
- package/app/buttons/index.d.ts +0 -1
- package/app/data-display/_models/card-item-view.model.d.ts +0 -8
- package/app/data-display/_models/data-display.models.d.ts +0 -11
- package/app/data-display/_models/data-grid-column.model.d.ts +0 -13
- package/app/data-display/_models/index.d.ts +0 -2
- package/app/data-display/adaptive-data-view/adaptive-data-view.component.d.ts +0 -53
- package/app/data-display/card-list/card-list.component.d.ts +0 -70
- package/app/data-display/dashboard-section/dashboard-section.component.d.ts +0 -12
- package/app/data-display/data-card/data-card.component.d.ts +0 -16
- package/app/data-display/data-grid/data-grid-actions-cell-renderer.component.d.ts +0 -21
- package/app/data-display/data-grid/data-grid.component.d.ts +0 -76
- package/app/data-display/data-list/data-list.component.d.ts +0 -18
- package/app/data-display/data-toolbar/data-toolbar.component.d.ts +0 -6
- package/app/data-display/details-field/details-field.component.d.ts +0 -10
- package/app/data-display/details-view/details-view.component.d.ts +0 -26
- package/app/data-display/empty-state/empty-state-overlay.util.d.ts +0 -5
- package/app/data-display/empty-state/empty-state.component.d.ts +0 -13
- package/app/data-display/index.d.ts +0 -20
- package/app/data-display/list-item/list-item.component.d.ts +0 -22
- package/app/data-display/stat-card/stat-card.component.d.ts +0 -23
- package/app/data-display/status-badge/status-badge.component.d.ts +0 -17
- package/app/data-display/table-empty-state/table-empty-state.component.d.ts +0 -14
- package/app/data-display/table-toolbar/table-toolbar.component.d.ts +0 -11
- package/app/dialogs/_models/lib-dialog-size.model.d.ts +0 -6
- package/app/dialogs/_utils/app-lib-light-block-scroll-strategy.d.ts +0 -12
- package/app/dialogs/_utils/lib-dialog-panel-classes.d.ts +0 -3
- package/app/dialogs/app-dialog/app-dialog.component.d.ts +0 -71
- package/app/dialogs/app-dialog/dialog-footer.directive.d.ts +0 -6
- package/app/dialogs/confirm-dialog/confirm-dialog-data.model.d.ts +0 -13
- package/app/dialogs/confirm-dialog/confirm-dialog.component.d.ts +0 -20
- package/app/dialogs/confirm-dialog/confirm-dialog.service.d.ts +0 -17
- package/app/dialogs/index.d.ts +0 -14
- package/app/dialogs/loading-dialog/loading-dialog-data.model.d.ts +0 -7
- package/app/dialogs/loading-dialog/loading-dialog.component.d.ts +0 -9
- package/app/dialogs/loading-dialog/loading-dialog.service.d.ts +0 -15
- package/app/dialogs/toast/toast-host.component.d.ts +0 -13
- package/app/dialogs/toast/toast.models.d.ts +0 -26
- package/app/dialogs/toast/toast.service.d.ts +0 -17
- package/app/fields/checkbox-fields/_base/boolean-field.directive.d.ts +0 -42
- package/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.d.ts +0 -8
- package/app/fields/checkbox-fields/index.d.ts +0 -3
- package/app/fields/checkbox-fields/switch-field/switch-field.component.d.ts +0 -8
- package/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.d.ts +0 -62
- package/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.d.ts +0 -40
- package/app/fields/dropdown-fields/_base/dropdown-option-field.base.d.ts +0 -47
- package/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.d.ts +0 -18
- package/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.d.ts +0 -13
- package/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.d.ts +0 -7
- package/app/fields/dropdown-fields/_models/index.d.ts +0 -4
- package/app/fields/dropdown-fields/_models/select-option.model.d.ts +0 -5
- package/app/fields/dropdown-fields/_models/select-pagination.model.d.ts +0 -6
- package/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.d.ts +0 -84
- package/app/fields/dropdown-fields/index.d.ts +0 -7
- package/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.d.ts +0 -49
- package/app/fields/dropdown-fields/select-field/select-field.component.d.ts +0 -54
- package/app/fields/input-fields/_base/base-field.component.d.ts +0 -60
- package/app/fields/input-fields/_base/base-field.directive.d.ts +0 -102
- package/app/fields/input-fields/_base/masked-text-field.base.d.ts +0 -34
- package/app/fields/input-fields/_base/ng-control-field.directive.d.ts +0 -43
- package/app/fields/input-fields/_models/field-common-inputs.model.d.ts +0 -49
- package/app/fields/input-fields/_models/index.d.ts +0 -1
- package/app/fields/input-fields/_utils/mask-complete.validators.d.ts +0 -18
- package/app/fields/input-fields/_utils/mask-format.utils.d.ts +0 -13
- package/app/fields/input-fields/cep-field/cep-field.component.d.ts +0 -12
- package/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.d.ts +0 -20
- package/app/fields/input-fields/date-field/date-field.component.d.ts +0 -30
- package/app/fields/input-fields/decimal-field/decimal-field.component.d.ts +0 -17
- package/app/fields/input-fields/index.d.ts +0 -22
- package/app/fields/input-fields/input-mask-field/input-mask-field.component.d.ts +0 -16
- package/app/fields/input-fields/integer-field/integer-field.component.d.ts +0 -17
- package/app/fields/input-fields/password-field/password-field.component.d.ts +0 -30
- package/app/fields/input-fields/phone-field/phone-field.component.d.ts +0 -22
- package/app/fields/input-fields/text-field/text-field.component.d.ts +0 -16
- package/app/fields/input-fields/textarea-field/textarea-field.component.d.ts +0 -31
- package/app/form-layout/_models/form-layout.model.d.ts +0 -41
- package/app/form-layout/_models/form-tabs.model.d.ts +0 -1
- package/app/form-layout/_models/index.d.ts +0 -3
- package/app/form-layout/_models/validation-summary.model.d.ts +0 -8
- package/app/form-layout/form-actions/form-actions.component.d.ts +0 -21
- package/app/form-layout/form-col/form-col.component.d.ts +0 -25
- package/app/form-layout/form-group/form-group.component.d.ts +0 -125
- package/app/form-layout/form-group/form-path.utils.d.ts +0 -16
- package/app/form-layout/form-group/form-root-invalid-ui-refresh.util.d.ts +0 -8
- package/app/form-layout/form-row/form-row.component.d.ts +0 -14
- package/app/form-layout/form-section/form-section.component.d.ts +0 -13
- package/app/form-layout/form-tab/form-tab.component.d.ts +0 -32
- package/app/form-layout/form-tabs/form-tabs.component.d.ts +0 -44
- package/app/form-layout/index.d.ts +0 -14
- package/app/form-layout/layout-stack/layout-stack.component.d.ts +0 -25
- package/app/form-layout/validation-summary/validation-summary.component.d.ts +0 -105
- package/app/loading/skeleton-loading/index.d.ts +0 -6
- package/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.d.ts +0 -15
- package/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.d.ts +0 -10
- package/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.d.ts +0 -21
- package/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.d.ts +0 -17
- package/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.d.ts +0 -16
- package/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.d.ts +0 -17
- package/app/menus/_models/drawer-side.model.d.ts +0 -6
- package/app/menus/_models/drawer-size.model.d.ts +0 -6
- package/app/menus/_models/menu-dropdown-placement.model.d.ts +0 -10
- package/app/menus/_models/menu-item.model.d.ts +0 -47
- package/app/menus/_utils/menu-connected-positions.util.d.ts +0 -4
- package/app/menus/_utils/menu-rows.util.d.ts +0 -22
- package/app/menus/_utils/submenu-connected-positions.util.d.ts +0 -5
- package/app/menus/action-menu/action-menu.component.d.ts +0 -24
- package/app/menus/context-menu/context-menu.component.d.ts +0 -32
- package/app/menus/drawer/drawer.component.d.ts +0 -38
- package/app/menus/dropdown-menu/dropdown-menu.component.d.ts +0 -33
- package/app/menus/index.d.ts +0 -11
- package/app/menus/menu-divider/menu-divider.component.d.ts +0 -8
- package/app/menus/menu-group/menu-group.component.d.ts +0 -13
- package/app/menus/menu-list/menu-list.component.d.ts +0 -77
- package/app/overlay/_models/overlay-placement.model.d.ts +0 -9
- package/app/overlay/_utils/anchored-overlay-positions.util.d.ts +0 -9
- package/app/overlay/anchored-overlay/anchored-overlay.component.d.ts +0 -51
- package/app/overlay/index.d.ts +0 -20
- package/app/overlay/popover/popover-body-template.directive.d.ts +0 -7
- package/app/overlay/popover/popover-footer-template.directive.d.ts +0 -7
- package/app/overlay/popover/popover-trigger.directive.d.ts +0 -6
- package/app/overlay/popover/popover.component.d.ts +0 -38
- package/app/overlay/tooltip/tooltip-panel-template.directive.d.ts +0 -10
- package/app/overlay/tooltip/tooltip.component.d.ts +0 -40
- package/app/theme/app-theme.service.d.ts +0 -25
- package/app/theme/index.d.ts +0 -1
- package/esm2022/app/_utils/date-pt-br.utils.mjs +0 -82
- package/esm2022/app/_utils/decimal-br.utils.mjs +0 -154
- package/esm2022/app/_utils/estados-br.data.mjs +0 -37
- package/esm2022/app/_utils/integer-br.utils.mjs +0 -48
- package/esm2022/app/_utils/integer-value.utils.mjs +0 -19
- package/esm2022/app/_utils/scroll/body-scroll-lock.util.mjs +0 -97
- package/esm2022/app/app-shell/_models/breadcrumb-item.model.mjs +0 -2
- package/esm2022/app/app-shell/app-shell-sidebar-template.directive.mjs +0 -29
- package/esm2022/app/app-shell/app-shell.component.mjs +0 -105
- package/esm2022/app/app-shell/breadcrumb/breadcrumb.component.mjs +0 -18
- package/esm2022/app/app-shell/index.mjs +0 -19
- package/esm2022/app/app-shell/sidebar/app-sidebar-toolbar.directive.mjs +0 -23
- package/esm2022/app/app-shell/sidebar/shell-sidebar-toggle.component.mjs +0 -36
- package/esm2022/app/app-shell/sidebar/sidebar.component.mjs +0 -84
- package/esm2022/app/app-shell/sidebar-reveal.constants.mjs +0 -9
- package/esm2022/app/app-shell/topbar/topbar.component.mjs +0 -14
- package/esm2022/app/app-shell/user-menu/user-menu.component.mjs +0 -52
- package/esm2022/app/buttons/base-button/base-button.component.mjs +0 -97
- package/esm2022/app/buttons/index.mjs +0 -2
- package/esm2022/app/data-display/_models/card-item-view.model.mjs +0 -2
- package/esm2022/app/data-display/_models/data-display.models.mjs +0 -2
- package/esm2022/app/data-display/_models/data-grid-column.model.mjs +0 -2
- package/esm2022/app/data-display/_models/index.mjs +0 -2
- package/esm2022/app/data-display/adaptive-data-view/adaptive-data-view.component.mjs +0 -124
- package/esm2022/app/data-display/card-list/card-list.component.mjs +0 -208
- package/esm2022/app/data-display/dashboard-section/dashboard-section.component.mjs +0 -25
- package/esm2022/app/data-display/data-card/data-card.component.mjs +0 -40
- package/esm2022/app/data-display/data-grid/data-grid-actions-cell-renderer.component.mjs +0 -41
- package/esm2022/app/data-display/data-grid/data-grid.component.mjs +0 -253
- package/esm2022/app/data-display/data-list/data-list.component.mjs +0 -40
- package/esm2022/app/data-display/data-toolbar/data-toolbar.component.mjs +0 -12
- package/esm2022/app/data-display/details-field/details-field.component.mjs +0 -21
- package/esm2022/app/data-display/details-view/details-view.component.mjs +0 -44
- package/esm2022/app/data-display/empty-state/empty-state-overlay.util.mjs +0 -19
- package/esm2022/app/data-display/empty-state/empty-state.component.mjs +0 -30
- package/esm2022/app/data-display/index.mjs +0 -19
- package/esm2022/app/data-display/list-item/list-item.component.mjs +0 -59
- package/esm2022/app/data-display/stat-card/stat-card.component.mjs +0 -59
- package/esm2022/app/data-display/status-badge/status-badge.component.mjs +0 -41
- package/esm2022/app/data-display/table-empty-state/table-empty-state.component.mjs +0 -31
- package/esm2022/app/data-display/table-toolbar/table-toolbar.component.mjs +0 -22
- package/esm2022/app/dialogs/_models/lib-dialog-size.model.mjs +0 -8
- package/esm2022/app/dialogs/_utils/app-lib-light-block-scroll-strategy.mjs +0 -22
- package/esm2022/app/dialogs/_utils/lib-dialog-panel-classes.mjs +0 -6
- package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +0 -200
- package/esm2022/app/dialogs/app-dialog/dialog-footer.directive.mjs +0 -15
- package/esm2022/app/dialogs/confirm-dialog/confirm-dialog-data.model.mjs +0 -2
- package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -36
- package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.service.mjs +0 -47
- package/esm2022/app/dialogs/index.mjs +0 -12
- package/esm2022/app/dialogs/loading-dialog/loading-dialog-data.model.mjs +0 -2
- package/esm2022/app/dialogs/loading-dialog/loading-dialog.component.mjs +0 -19
- package/esm2022/app/dialogs/loading-dialog/loading-dialog.service.mjs +0 -38
- package/esm2022/app/dialogs/toast/toast-host.component.mjs +0 -65
- package/esm2022/app/dialogs/toast/toast.models.mjs +0 -2
- package/esm2022/app/dialogs/toast/toast.service.mjs +0 -76
- package/esm2022/app/fields/checkbox-fields/_base/boolean-field.directive.mjs +0 -158
- package/esm2022/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.mjs +0 -36
- package/esm2022/app/fields/checkbox-fields/index.mjs +0 -4
- package/esm2022/app/fields/checkbox-fields/switch-field/switch-field.component.mjs +0 -35
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.mjs +0 -117
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.mjs +0 -152
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-option-field.base.mjs +0 -149
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.mjs +0 -32
- package/esm2022/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.mjs +0 -2
- package/esm2022/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.mjs +0 -2
- package/esm2022/app/fields/dropdown-fields/_models/index.mjs +0 -2
- package/esm2022/app/fields/dropdown-fields/_models/select-option.model.mjs +0 -2
- package/esm2022/app/fields/dropdown-fields/_models/select-pagination.model.mjs +0 -2
- package/esm2022/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.mjs +0 -520
- package/esm2022/app/fields/dropdown-fields/index.mjs +0 -7
- package/esm2022/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.mjs +0 -379
- package/esm2022/app/fields/dropdown-fields/select-field/select-field.component.mjs +0 -359
- package/esm2022/app/fields/input-fields/_base/base-field.component.mjs +0 -151
- package/esm2022/app/fields/input-fields/_base/base-field.directive.mjs +0 -224
- package/esm2022/app/fields/input-fields/_base/masked-text-field.base.mjs +0 -135
- package/esm2022/app/fields/input-fields/_base/ng-control-field.directive.mjs +0 -127
- package/esm2022/app/fields/input-fields/_models/field-common-inputs.model.mjs +0 -2
- package/esm2022/app/fields/input-fields/_models/index.mjs +0 -2
- package/esm2022/app/fields/input-fields/_utils/mask-complete.validators.mjs +0 -61
- package/esm2022/app/fields/input-fields/_utils/mask-format.utils.mjs +0 -40
- package/esm2022/app/fields/input-fields/cep-field/cep-field.component.mjs +0 -48
- package/esm2022/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.mjs +0 -61
- package/esm2022/app/fields/input-fields/date-field/date-field.component.mjs +0 -147
- package/esm2022/app/fields/input-fields/decimal-field/decimal-field.component.mjs +0 -166
- package/esm2022/app/fields/input-fields/index.mjs +0 -22
- package/esm2022/app/fields/input-fields/input-mask-field/input-mask-field.component.mjs +0 -52
- package/esm2022/app/fields/input-fields/integer-field/integer-field.component.mjs +0 -143
- package/esm2022/app/fields/input-fields/password-field/password-field.component.mjs +0 -130
- package/esm2022/app/fields/input-fields/phone-field/phone-field.component.mjs +0 -66
- package/esm2022/app/fields/input-fields/text-field/text-field.component.mjs +0 -90
- package/esm2022/app/fields/input-fields/textarea-field/textarea-field.component.mjs +0 -125
- package/esm2022/app/form-layout/_models/form-layout.model.mjs +0 -48
- package/esm2022/app/form-layout/_models/form-tabs.model.mjs +0 -2
- package/esm2022/app/form-layout/_models/index.mjs +0 -2
- package/esm2022/app/form-layout/_models/validation-summary.model.mjs +0 -2
- package/esm2022/app/form-layout/form-actions/form-actions.component.mjs +0 -55
- package/esm2022/app/form-layout/form-col/form-col.component.mjs +0 -76
- package/esm2022/app/form-layout/form-group/form-group.component.mjs +0 -358
- package/esm2022/app/form-layout/form-group/form-path.utils.mjs +0 -65
- package/esm2022/app/form-layout/form-group/form-root-invalid-ui-refresh.util.mjs +0 -54
- package/esm2022/app/form-layout/form-row/form-row.component.mjs +0 -49
- package/esm2022/app/form-layout/form-section/form-section.component.mjs +0 -43
- package/esm2022/app/form-layout/form-tab/form-tab.component.mjs +0 -67
- package/esm2022/app/form-layout/form-tabs/form-tabs.component.mjs +0 -126
- package/esm2022/app/form-layout/index.mjs +0 -14
- package/esm2022/app/form-layout/layout-stack/layout-stack.component.mjs +0 -56
- package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +0 -343
- package/esm2022/app/loading/skeleton-loading/index.mjs +0 -7
- package/esm2022/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.mjs +0 -43
- package/esm2022/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.mjs +0 -23
- package/esm2022/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.mjs +0 -34
- package/esm2022/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.mjs +0 -38
- package/esm2022/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.mjs +0 -37
- package/esm2022/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.mjs +0 -45
- package/esm2022/app/menus/_models/drawer-side.model.mjs +0 -8
- package/esm2022/app/menus/_models/drawer-size.model.mjs +0 -8
- package/esm2022/app/menus/_models/menu-dropdown-placement.model.mjs +0 -12
- package/esm2022/app/menus/_models/menu-item.model.mjs +0 -6
- package/esm2022/app/menus/_utils/menu-connected-positions.util.mjs +0 -41
- package/esm2022/app/menus/_utils/menu-rows.util.mjs +0 -39
- package/esm2022/app/menus/_utils/submenu-connected-positions.util.mjs +0 -23
- package/esm2022/app/menus/action-menu/action-menu.component.mjs +0 -48
- package/esm2022/app/menus/context-menu/context-menu.component.mjs +0 -112
- package/esm2022/app/menus/drawer/drawer.component.mjs +0 -142
- package/esm2022/app/menus/dropdown-menu/dropdown-menu.component.mjs +0 -99
- package/esm2022/app/menus/index.mjs +0 -11
- package/esm2022/app/menus/menu-divider/menu-divider.component.mjs +0 -14
- package/esm2022/app/menus/menu-group/menu-group.component.mjs +0 -32
- package/esm2022/app/menus/menu-list/menu-list.component.mjs +0 -399
- package/esm2022/app/overlay/_models/overlay-placement.model.mjs +0 -11
- package/esm2022/app/overlay/_utils/anchored-overlay-positions.util.mjs +0 -84
- package/esm2022/app/overlay/anchored-overlay/anchored-overlay.component.mjs +0 -121
- package/esm2022/app/overlay/index.mjs +0 -21
- package/esm2022/app/overlay/popover/popover-body-template.directive.mjs +0 -17
- package/esm2022/app/overlay/popover/popover-footer-template.directive.mjs +0 -17
- package/esm2022/app/overlay/popover/popover-trigger.directive.mjs +0 -15
- package/esm2022/app/overlay/popover/popover.component.mjs +0 -93
- package/esm2022/app/overlay/tooltip/tooltip-panel-template.directive.mjs +0 -20
- package/esm2022/app/overlay/tooltip/tooltip.component.mjs +0 -118
- package/esm2022/app/theme/app-theme.service.mjs +0 -49
- package/esm2022/app/theme/index.mjs +0 -2
- package/esm2022/structra-public-api.mjs +0 -18
- package/esm2022/structra-ui.mjs +0 -5
- package/esm2022/structra-version.mjs +0 -3
- package/fesm2022/structra-ui.mjs +0 -8971
- package/fesm2022/structra-ui.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/structra-public-api.d.ts +0 -17
- package/structra-version.d.ts +0 -2
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, forwardRef, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { SkeletonBlockComponent } from '../../../loading/skeleton-loading';
|
|
4
|
-
import { BooleanFieldDirective } from '../_base/boolean-field.directive';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class CheckboxFieldComponent extends BooleanFieldDirective {
|
|
7
|
-
onCheckboxClick(ev) {
|
|
8
|
-
if (this.readonly || this.loading) {
|
|
9
|
-
ev.preventDefault();
|
|
10
|
-
ev.stopPropagation();
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
onNativeChange(event) {
|
|
14
|
-
const el = event.target;
|
|
15
|
-
this.setChecked(el.checked);
|
|
16
|
-
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckboxFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CheckboxFieldComponent, isStandalone: true, selector: "app-checkbox-field", providers: [
|
|
19
|
-
{
|
|
20
|
-
provide: NG_VALUE_ACCESSOR,
|
|
21
|
-
useExisting: forwardRef(() => CheckboxFieldComponent),
|
|
22
|
-
multi: true,
|
|
23
|
-
},
|
|
24
|
-
], usesInheritance: true, ngImport: i0, template: "@if (!loading) {\r\n<div class=\"checkbox-field\" [class.checkbox-field--invalid]=\"uiInvalid\"\r\n [class.checkbox-field--readonly]=\"readonly\">\r\n <label class=\"checkbox-field__row\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox-field__native\"\r\n [id]=\"controlId\"\r\n [attr.name]=\"name || null\"\r\n [attr.tabindex]=\"readonly ? -1 : null\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [required]=\"uiRequiredEffective\"\r\n [attr.aria-invalid]=\"uiInvalid\"\r\n [attr.aria-describedby]=\"uiAriaDescribedBy\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n [attr.aria-label]=\"label || placeholder || 'Op\u00E7\u00E3o'\"\r\n (click)=\"onCheckboxClick($event)\"\r\n (change)=\"onNativeChange($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n @if (label) {\r\n <span class=\"checkbox-field__label\">{{ label }}</span>\r\n }\r\n </label>\r\n @if (showErrorMessage && uiInvalid && uiErrorMessage) {\r\n <p class=\"checkbox-field__error\" [id]=\"errorElementId\" role=\"alert\">{{ uiErrorMessage }}</p>\r\n }\r\n</div>\r\n} @else {\r\n<div class=\"checkbox-field checkbox-field--loading\" role=\"status\" aria-live=\"polite\" [attr.aria-busy]=\"true\"\r\n [attr.aria-label]=\"label || 'A carregar'\">\r\n <div class=\"checkbox-field__skeleton-row\" aria-hidden=\"true\">\r\n <app-skeleton-block width=\"1.1rem\" height=\"1.1rem\" radius=\"4px\" />\r\n <app-skeleton-block width=\"11rem\" height=\"0.72rem\" radius=\"6px\" />\r\n </div>\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;box-sizing:border-box}.checkbox-field--invalid .checkbox-field__label{color:var(--ui-field-float-label-invalid-color)}.checkbox-field__row{display:flex;align-items:flex-start;gap:.5rem;margin:0;cursor:pointer;width:fit-content;max-width:100%}.checkbox-field__native{appearance:none;-webkit-appearance:none;width:1.1rem;height:1.1rem;margin-top:.15rem;flex-shrink:0;box-sizing:border-box;border:1px solid var(--ui-field-float-border);border-radius:4px;background-color:var(--ui-field-float-bg);background-repeat:no-repeat;background-position:center;background-size:.65rem auto;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.checkbox-field__native:focus-visible{outline:2px solid var(--ui-field-float-border-focus);outline-offset:2px}.checkbox-field__native:focus:not(:focus-visible){outline:2px solid var(--ui-field-float-border-focus);outline-offset:2px}.checkbox-field__native:checked{border-color:var(--ui-field-float-border-focus);background-color:var(--ui-field-float-border-focus);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6l2.5 2.5 4.5-5'/%3E%3C/svg%3E\")}.checkbox-field__native:disabled{cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity)}.checkbox-field--invalid .checkbox-field__native{border-color:var(--ui-field-input-invalid-border)}.checkbox-field--invalid .checkbox-field__native:checked{border-color:var(--ui-field-input-invalid-border);background-color:var(--ui-field-input-invalid-border);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6l2.5 2.5 4.5-5'/%3E%3C/svg%3E\")}.checkbox-field--invalid .checkbox-field__native:focus-visible{outline-color:var(--ui-field-input-invalid-border)}.checkbox-field--invalid .checkbox-field__native:focus:not(:focus-visible){outline:2px solid var(--ui-field-input-invalid-border);outline-offset:2px}.checkbox-field__label{font-size:1rem;line-height:1.35;color:var(--ui-field-float-label-color);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-field__error{margin:.35rem 0 0 1.6rem;padding:0;font-size:.75rem;color:var(--ui-field-error-text-color);user-select:none;-webkit-user-select:none}.checkbox-field--loading{width:100%;max-width:100%;box-sizing:border-box}.checkbox-field--loading .checkbox-field__skeleton-row{display:flex;align-items:center;gap:.5rem;width:100%;max-width:100%;box-sizing:border-box}.checkbox-field--readonly .checkbox-field__row{cursor:default;pointer-events:none}.checkbox-field--readonly .checkbox-field__native{border-color:var(--ui-field-readonly-border);background-color:var(--ui-field-readonly-bg);cursor:default}.checkbox-field--readonly .checkbox-field__native:checked{border-color:var(--ui-field-readonly-border-focus);background-color:var(--ui-field-readonly-border-focus);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6l2.5 2.5 4.5-5'/%3E%3C/svg%3E\")}.checkbox-field--readonly .checkbox-field__native:focus,.checkbox-field--readonly .checkbox-field__native:focus-visible{outline:none}.checkbox-field--readonly .checkbox-field__label{color:var(--ui-field-readonly-label-color);cursor:default}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckboxFieldComponent, decorators: [{
|
|
27
|
-
type: Component,
|
|
28
|
-
args: [{ selector: 'app-checkbox-field', standalone: true, imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
29
|
-
{
|
|
30
|
-
provide: NG_VALUE_ACCESSOR,
|
|
31
|
-
useExisting: forwardRef(() => CheckboxFieldComponent),
|
|
32
|
-
multi: true,
|
|
33
|
-
},
|
|
34
|
-
], template: "@if (!loading) {\r\n<div class=\"checkbox-field\" [class.checkbox-field--invalid]=\"uiInvalid\"\r\n [class.checkbox-field--readonly]=\"readonly\">\r\n <label class=\"checkbox-field__row\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox-field__native\"\r\n [id]=\"controlId\"\r\n [attr.name]=\"name || null\"\r\n [attr.tabindex]=\"readonly ? -1 : null\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [required]=\"uiRequiredEffective\"\r\n [attr.aria-invalid]=\"uiInvalid\"\r\n [attr.aria-describedby]=\"uiAriaDescribedBy\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n [attr.aria-label]=\"label || placeholder || 'Op\u00E7\u00E3o'\"\r\n (click)=\"onCheckboxClick($event)\"\r\n (change)=\"onNativeChange($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n @if (label) {\r\n <span class=\"checkbox-field__label\">{{ label }}</span>\r\n }\r\n </label>\r\n @if (showErrorMessage && uiInvalid && uiErrorMessage) {\r\n <p class=\"checkbox-field__error\" [id]=\"errorElementId\" role=\"alert\">{{ uiErrorMessage }}</p>\r\n }\r\n</div>\r\n} @else {\r\n<div class=\"checkbox-field checkbox-field--loading\" role=\"status\" aria-live=\"polite\" [attr.aria-busy]=\"true\"\r\n [attr.aria-label]=\"label || 'A carregar'\">\r\n <div class=\"checkbox-field__skeleton-row\" aria-hidden=\"true\">\r\n <app-skeleton-block width=\"1.1rem\" height=\"1.1rem\" radius=\"4px\" />\r\n <app-skeleton-block width=\"11rem\" height=\"0.72rem\" radius=\"6px\" />\r\n </div>\r\n</div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;box-sizing:border-box}.checkbox-field--invalid .checkbox-field__label{color:var(--ui-field-float-label-invalid-color)}.checkbox-field__row{display:flex;align-items:flex-start;gap:.5rem;margin:0;cursor:pointer;width:fit-content;max-width:100%}.checkbox-field__native{appearance:none;-webkit-appearance:none;width:1.1rem;height:1.1rem;margin-top:.15rem;flex-shrink:0;box-sizing:border-box;border:1px solid var(--ui-field-float-border);border-radius:4px;background-color:var(--ui-field-float-bg);background-repeat:no-repeat;background-position:center;background-size:.65rem auto;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.checkbox-field__native:focus-visible{outline:2px solid var(--ui-field-float-border-focus);outline-offset:2px}.checkbox-field__native:focus:not(:focus-visible){outline:2px solid var(--ui-field-float-border-focus);outline-offset:2px}.checkbox-field__native:checked{border-color:var(--ui-field-float-border-focus);background-color:var(--ui-field-float-border-focus);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6l2.5 2.5 4.5-5'/%3E%3C/svg%3E\")}.checkbox-field__native:disabled{cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity)}.checkbox-field--invalid .checkbox-field__native{border-color:var(--ui-field-input-invalid-border)}.checkbox-field--invalid .checkbox-field__native:checked{border-color:var(--ui-field-input-invalid-border);background-color:var(--ui-field-input-invalid-border);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6l2.5 2.5 4.5-5'/%3E%3C/svg%3E\")}.checkbox-field--invalid .checkbox-field__native:focus-visible{outline-color:var(--ui-field-input-invalid-border)}.checkbox-field--invalid .checkbox-field__native:focus:not(:focus-visible){outline:2px solid var(--ui-field-input-invalid-border);outline-offset:2px}.checkbox-field__label{font-size:1rem;line-height:1.35;color:var(--ui-field-float-label-color);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-field__error{margin:.35rem 0 0 1.6rem;padding:0;font-size:.75rem;color:var(--ui-field-error-text-color);user-select:none;-webkit-user-select:none}.checkbox-field--loading{width:100%;max-width:100%;box-sizing:border-box}.checkbox-field--loading .checkbox-field__skeleton-row{display:flex;align-items:center;gap:.5rem;width:100%;max-width:100%;box-sizing:border-box}.checkbox-field--readonly .checkbox-field__row{cursor:default;pointer-events:none}.checkbox-field--readonly .checkbox-field__native{border-color:var(--ui-field-readonly-border);background-color:var(--ui-field-readonly-bg);cursor:default}.checkbox-field--readonly .checkbox-field__native:checked{border-color:var(--ui-field-readonly-border-focus);background-color:var(--ui-field-readonly-border-focus);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6l2.5 2.5 4.5-5'/%3E%3C/svg%3E\")}.checkbox-field--readonly .checkbox-field__native:focus,.checkbox-field--readonly .checkbox-field__native:focus-visible{outline:none}.checkbox-field--readonly .checkbox-field__label{color:var(--ui-field-readonly-label-color);cursor:default}\n"] }]
|
|
35
|
-
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9maWVsZHMvY2hlY2tib3gtZmllbGRzL2NoZWNrYm94LWZpZWxkL2NoZWNrYm94LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2NoZWNrYm94LWZpZWxkcy9jaGVja2JveC1maWVsZC9jaGVja2JveC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBaUJ6RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEscUJBQXFCO0lBQy9ELGVBQWUsQ0FBQyxFQUFjO1FBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFZO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBWFUsc0JBQXNCO21HQUF0QixzQkFBc0IsaUVBUnRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDckQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQ3RCSCx1akRBc0NBLDJrSEQxQlksc0JBQXNCOzs0RkFZckIsc0JBQXNCO2tCQWZsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsQ0FBQyxtQkFHaEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2tlbGV0b25CbG9ja0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2xvYWRpbmcvc2tlbGV0b24tbG9hZGluZyc7XHJcbmltcG9ydCB7IEJvb2xlYW5GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uL19iYXNlL2Jvb2xlYW4tZmllbGQuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNoZWNrYm94LWZpZWxkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtTa2VsZXRvbkJsb2NrQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jaGVja2JveC1maWVsZC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveEZpZWxkQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveEZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQm9vbGVhbkZpZWxkRGlyZWN0aXZlIHtcclxuICBvbkNoZWNrYm94Q2xpY2soZXY6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMubG9hZGluZykge1xyXG4gICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTmF0aXZlQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgZWwgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZChlbC5jaGVja2VkKTtcclxuICB9XHJcbn1cclxuIiwiQGlmICghbG9hZGluZykge1xyXG48ZGl2IGNsYXNzPVwiY2hlY2tib3gtZmllbGRcIiBbY2xhc3MuY2hlY2tib3gtZmllbGQtLWludmFsaWRdPVwidWlJbnZhbGlkXCJcclxuICBbY2xhc3MuY2hlY2tib3gtZmllbGQtLXJlYWRvbmx5XT1cInJlYWRvbmx5XCI+XHJcbiAgPGxhYmVsIGNsYXNzPVwiY2hlY2tib3gtZmllbGRfX3Jvd1wiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIGNsYXNzPVwiY2hlY2tib3gtZmllbGRfX25hdGl2ZVwiXHJcbiAgICAgIFtpZF09XCJjb250cm9sSWRcIlxyXG4gICAgICBbYXR0ci5uYW1lXT1cIm5hbWUgfHwgbnVsbFwiXHJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cInJlYWRvbmx5ID8gLTEgOiBudWxsXCJcclxuICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJ1aVJlcXVpcmVkRWZmZWN0aXZlXCJcclxuICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cInVpSW52YWxpZFwiXHJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwidWlBcmlhRGVzY3JpYmVkQnlcIlxyXG4gICAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRvbmx5ID8gdHJ1ZSA6IG51bGxcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsIHx8IHBsYWNlaG9sZGVyIHx8ICdPcMOnw6NvJ1wiXHJcbiAgICAgIChjbGljayk9XCJvbkNoZWNrYm94Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25OYXRpdmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgIC8+XHJcbiAgICBAaWYgKGxhYmVsKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cImNoZWNrYm94LWZpZWxkX19sYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxyXG4gICAgfVxyXG4gIDwvbGFiZWw+XHJcbiAgQGlmIChzaG93RXJyb3JNZXNzYWdlICYmIHVpSW52YWxpZCAmJiB1aUVycm9yTWVzc2FnZSkge1xyXG4gIDxwIGNsYXNzPVwiY2hlY2tib3gtZmllbGRfX2Vycm9yXCIgW2lkXT1cImVycm9yRWxlbWVudElkXCIgcm9sZT1cImFsZXJ0XCI+e3sgdWlFcnJvck1lc3NhZ2UgfX08L3A+XHJcbiAgfVxyXG48L2Rpdj5cclxufSBAZWxzZSB7XHJcbjxkaXYgY2xhc3M9XCJjaGVja2JveC1maWVsZCBjaGVja2JveC1maWVsZC0tbG9hZGluZ1wiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBbYXR0ci5hcmlhLWJ1c3ldPVwidHJ1ZVwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCB8fCAnQSBjYXJyZWdhcidcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtZmllbGRfX3NrZWxldG9uLXJvd1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPGFwcC1za2VsZXRvbi1ibG9jayB3aWR0aD1cIjEuMXJlbVwiIGhlaWdodD1cIjEuMXJlbVwiIHJhZGl1cz1cIjRweFwiIC8+XHJcbiAgICA8YXBwLXNrZWxldG9uLWJsb2NrIHdpZHRoPVwiMTFyZW1cIiBoZWlnaHQ9XCIwLjcycmVtXCIgcmFkaXVzPVwiNnB4XCIgLz5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbn1cclxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { BooleanFieldDirective } from './_base/boolean-field.directive';
|
|
2
|
-
export { CheckboxFieldComponent } from './checkbox-field/checkbox-field.component';
|
|
3
|
-
export { SwitchFieldComponent } from './switch-field/switch-field.component';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9jaGVja2JveC1maWVsZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCb29sZWFuRmllbGREaXJlY3RpdmUgfSBmcm9tICcuL19iYXNlL2Jvb2xlYW4tZmllbGQuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgQ2hlY2tib3hGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3gtZmllbGQvY2hlY2tib3gtZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0IHsgU3dpdGNoRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3N3aXRjaC1maWVsZC9zd2l0Y2gtZmllbGQuY29tcG9uZW50JztcclxuIl19
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, forwardRef, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { SkeletonBlockComponent } from '../../../loading/skeleton-loading';
|
|
4
|
-
import { BooleanFieldDirective } from '../_base/boolean-field.directive';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class SwitchFieldComponent extends BooleanFieldDirective {
|
|
7
|
-
get labelId() {
|
|
8
|
-
return `${this.controlId}-switch-label`;
|
|
9
|
-
}
|
|
10
|
-
toggle() {
|
|
11
|
-
if (this.disabled || this.readonly || this.loading) {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
this.setChecked(!this.checked);
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SwitchFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SwitchFieldComponent, isStandalone: true, selector: "app-switch-field", providers: [
|
|
18
|
-
{
|
|
19
|
-
provide: NG_VALUE_ACCESSOR,
|
|
20
|
-
useExisting: forwardRef(() => SwitchFieldComponent),
|
|
21
|
-
multi: true,
|
|
22
|
-
},
|
|
23
|
-
], usesInheritance: true, ngImport: i0, template: "@if (!loading) {\r\n<div class=\"switch-field\" [class.switch-field--invalid]=\"uiInvalid\"\r\n [class.switch-field--readonly]=\"readonly\">\r\n <label class=\"switch-field__row\">\r\n <button\r\n type=\"button\"\r\n class=\"switch-field__track\"\r\n role=\"switch\"\r\n [id]=\"controlId\"\r\n [attr.name]=\"name || null\"\r\n [attr.aria-checked]=\"checked\"\r\n [attr.aria-labelledby]=\"label ? labelId : null\"\r\n [attr.aria-invalid]=\"uiInvalid\"\r\n [attr.aria-describedby]=\"uiAriaDescribedBy\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n [disabled]=\"disabled || readonly\"\r\n (click)=\"toggle()\"\r\n (blur)=\"onBlur()\"\r\n >\r\n <span class=\"switch-field__thumb\" aria-hidden=\"true\"></span>\r\n </button>\r\n @if (label) {\r\n <span class=\"switch-field__label\" [id]=\"labelId\">\r\n {{ label }}\r\n @if (uiRequiredEffective && showRequiredMark) {\r\n <span class=\"switch-field__required\" aria-hidden=\"true\">*</span>\r\n }\r\n </span>\r\n }\r\n </label>\r\n @if (showErrorMessage && uiInvalid && uiErrorMessage) {\r\n <p class=\"switch-field__error\" [id]=\"errorElementId\" role=\"alert\">{{ uiErrorMessage }}</p>\r\n }\r\n</div>\r\n} @else {\r\n<div class=\"switch-field switch-field--loading\" role=\"status\" aria-live=\"polite\" [attr.aria-busy]=\"true\"\r\n [attr.aria-label]=\"label || 'A carregar'\">\r\n <div class=\"switch-field__skeleton-row\" aria-hidden=\"true\">\r\n <app-skeleton-block width=\"2.75rem\" height=\"1.5rem\" radius=\"999px\" />\r\n <app-skeleton-block width=\"4.25rem\" height=\"0.72rem\" radius=\"6px\" />\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.switch-field--invalid .switch-field__label{color:var(--ui-field-float-label-invalid-color)}.switch-field__row{display:flex;align-items:center;gap:.65rem;margin:0;cursor:pointer;width:fit-content;max-width:100%}.switch-field__track{position:relative;width:2.75rem;height:1.5rem;padding:0;border:1px solid var(--ui-field-float-border);border-radius:999px;background:var(--ui-field-float-bg, #f3f3f3);cursor:pointer;flex-shrink:0;transition:background .15s ease,border-color .15s ease}.switch-field__track[aria-checked=true]{background:var(--ui-field-float-border-focus);border-color:var(--ui-field-float-border-focus)}.switch-field__track:focus-visible{outline:2px solid var(--ui-field-float-border-focus);outline-offset:2px}.switch-field__track:focus:not(:focus-visible){outline:2px solid var(--ui-field-float-border-focus);outline-offset:2px}.switch-field--invalid .switch-field__track{border-color:var(--ui-field-input-invalid-border)}.switch-field--invalid .switch-field__track[aria-checked=true]{background:var(--ui-field-input-invalid-border);border-color:var(--ui-field-input-invalid-border)}.switch-field--invalid .switch-field__track:focus-visible{outline:2px solid var(--ui-field-input-invalid-border);outline-offset:2px}.switch-field--invalid .switch-field__track:focus:not(:focus-visible){outline:2px solid var(--ui-field-input-invalid-border);outline-offset:2px}.switch-field__track:disabled{cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity)}.switch-field__thumb{position:absolute;top:2px;left:2px;width:1.1rem;height:1.1rem;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s ease}.switch-field__track[aria-checked=true] .switch-field__thumb{transform:translate(1.2rem)}.switch-field__label{font-size:1rem;line-height:1.35;color:var(--ui-field-float-label-color);-webkit-user-select:none;user-select:none}.switch-field__required{color:var(--ui-field-required-mark-color);margin-left:.15rem}.switch-field__error{margin:.35rem 0 0;padding:0;font-size:.75rem;color:var(--ui-field-error-text-color);user-select:none;-webkit-user-select:none}.switch-field--loading{min-width:8.5rem;width:100%;max-width:100%;box-sizing:border-box}.switch-field--loading .switch-field__skeleton-row{display:flex;align-items:center;gap:.65rem;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.switch-field--readonly .switch-field__row{cursor:default}.switch-field--readonly .switch-field__track:disabled{cursor:default;border-color:var(--ui-field-readonly-border);background:var(--ui-field-readonly-bg);opacity:1}.switch-field--readonly .switch-field__track:disabled[aria-checked=true]{background:var(--ui-field-readonly-border-focus);border-color:var(--ui-field-readonly-border-focus)}.switch-field--readonly .switch-field__track:disabled:focus,.switch-field--readonly .switch-field__track:disabled:focus-visible{outline:none}.switch-field--readonly .switch-field__label{color:var(--ui-field-readonly-label-color)}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SwitchFieldComponent, decorators: [{
|
|
26
|
-
type: Component,
|
|
27
|
-
args: [{ selector: 'app-switch-field', standalone: true, imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
28
|
-
{
|
|
29
|
-
provide: NG_VALUE_ACCESSOR,
|
|
30
|
-
useExisting: forwardRef(() => SwitchFieldComponent),
|
|
31
|
-
multi: true,
|
|
32
|
-
},
|
|
33
|
-
], template: "@if (!loading) {\r\n<div class=\"switch-field\" [class.switch-field--invalid]=\"uiInvalid\"\r\n [class.switch-field--readonly]=\"readonly\">\r\n <label class=\"switch-field__row\">\r\n <button\r\n type=\"button\"\r\n class=\"switch-field__track\"\r\n role=\"switch\"\r\n [id]=\"controlId\"\r\n [attr.name]=\"name || null\"\r\n [attr.aria-checked]=\"checked\"\r\n [attr.aria-labelledby]=\"label ? labelId : null\"\r\n [attr.aria-invalid]=\"uiInvalid\"\r\n [attr.aria-describedby]=\"uiAriaDescribedBy\"\r\n [attr.aria-readonly]=\"readonly ? true : null\"\r\n [disabled]=\"disabled || readonly\"\r\n (click)=\"toggle()\"\r\n (blur)=\"onBlur()\"\r\n >\r\n <span class=\"switch-field__thumb\" aria-hidden=\"true\"></span>\r\n </button>\r\n @if (label) {\r\n <span class=\"switch-field__label\" [id]=\"labelId\">\r\n {{ label }}\r\n @if (uiRequiredEffective && showRequiredMark) {\r\n <span class=\"switch-field__required\" aria-hidden=\"true\">*</span>\r\n }\r\n </span>\r\n }\r\n </label>\r\n @if (showErrorMessage && uiInvalid && uiErrorMessage) {\r\n <p class=\"switch-field__error\" [id]=\"errorElementId\" role=\"alert\">{{ uiErrorMessage }}</p>\r\n }\r\n</div>\r\n} @else {\r\n<div class=\"switch-field switch-field--loading\" role=\"status\" aria-live=\"polite\" [attr.aria-busy]=\"true\"\r\n [attr.aria-label]=\"label || 'A carregar'\">\r\n <div class=\"switch-field__skeleton-row\" aria-hidden=\"true\">\r\n <app-skeleton-block width=\"2.75rem\" height=\"1.5rem\" radius=\"999px\" />\r\n <app-skeleton-block width=\"4.25rem\" height=\"0.72rem\" radius=\"6px\" />\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.switch-field--invalid .switch-field__label{color:var(--ui-field-float-label-invalid-color)}.switch-field__row{display:flex;align-items:center;gap:.65rem;margin:0;cursor:pointer;width:fit-content;max-width:100%}.switch-field__track{position:relative;width:2.75rem;height:1.5rem;padding:0;border:1px solid var(--ui-field-float-border);border-radius:999px;background:var(--ui-field-float-bg, #f3f3f3);cursor:pointer;flex-shrink:0;transition:background .15s ease,border-color .15s ease}.switch-field__track[aria-checked=true]{background:var(--ui-field-float-border-focus);border-color:var(--ui-field-float-border-focus)}.switch-field__track:focus-visible{outline:2px solid var(--ui-field-float-border-focus);outline-offset:2px}.switch-field__track:focus:not(:focus-visible){outline:2px solid var(--ui-field-float-border-focus);outline-offset:2px}.switch-field--invalid .switch-field__track{border-color:var(--ui-field-input-invalid-border)}.switch-field--invalid .switch-field__track[aria-checked=true]{background:var(--ui-field-input-invalid-border);border-color:var(--ui-field-input-invalid-border)}.switch-field--invalid .switch-field__track:focus-visible{outline:2px solid var(--ui-field-input-invalid-border);outline-offset:2px}.switch-field--invalid .switch-field__track:focus:not(:focus-visible){outline:2px solid var(--ui-field-input-invalid-border);outline-offset:2px}.switch-field__track:disabled{cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity)}.switch-field__thumb{position:absolute;top:2px;left:2px;width:1.1rem;height:1.1rem;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s ease}.switch-field__track[aria-checked=true] .switch-field__thumb{transform:translate(1.2rem)}.switch-field__label{font-size:1rem;line-height:1.35;color:var(--ui-field-float-label-color);-webkit-user-select:none;user-select:none}.switch-field__required{color:var(--ui-field-required-mark-color);margin-left:.15rem}.switch-field__error{margin:.35rem 0 0;padding:0;font-size:.75rem;color:var(--ui-field-error-text-color);user-select:none;-webkit-user-select:none}.switch-field--loading{min-width:8.5rem;width:100%;max-width:100%;box-sizing:border-box}.switch-field--loading .switch-field__skeleton-row{display:flex;align-items:center;gap:.65rem;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.switch-field--readonly .switch-field__row{cursor:default}.switch-field--readonly .switch-field__track:disabled{cursor:default;border-color:var(--ui-field-readonly-border);background:var(--ui-field-readonly-bg);opacity:1}.switch-field--readonly .switch-field__track:disabled[aria-checked=true]{background:var(--ui-field-readonly-border-focus);border-color:var(--ui-field-readonly-border-focus)}.switch-field--readonly .switch-field__track:disabled:focus,.switch-field--readonly .switch-field__track:disabled:focus-visible{outline:none}.switch-field--readonly .switch-field__label{color:var(--ui-field-readonly-label-color)}\n"] }]
|
|
34
|
-
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2NoZWNrYm94LWZpZWxkcy9zd2l0Y2gtZmllbGQvc3dpdGNoLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2NoZWNrYm94LWZpZWxkcy9zd2l0Y2gtZmllbGQvc3dpdGNoLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFpQnpFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxxQkFBcUI7SUFDN0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLGVBQWUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuRCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0FWVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwrREFScEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDdEJILDRyREEyQ0EsdWdHRC9CWSxzQkFBc0I7OzRGQVlyQixvQkFBb0I7a0JBZmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLHNCQUFzQixDQUFDLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTa2VsZXRvbkJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vbG9hZGluZy9za2VsZXRvbi1sb2FkaW5nJztcclxuaW1wb3J0IHsgQm9vbGVhbkZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi4vX2Jhc2UvYm9vbGVhbi1maWVsZC5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc3dpdGNoLWZpZWxkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtTa2VsZXRvbkJsb2NrQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3dpdGNoLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc3dpdGNoLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN3aXRjaEZpZWxkQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTd2l0Y2hGaWVsZENvbXBvbmVudCBleHRlbmRzIEJvb2xlYW5GaWVsZERpcmVjdGl2ZSB7XHJcbiAgZ2V0IGxhYmVsSWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmNvbnRyb2xJZH0tc3dpdGNoLWxhYmVsYDtcclxuICB9XHJcblxyXG4gIHRvZ2dsZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkgfHwgdGhpcy5sb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0Q2hlY2tlZCghdGhpcy5jaGVja2VkKTtcclxuICB9XHJcbn1cclxuIiwiQGlmICghbG9hZGluZykge1xyXG48ZGl2IGNsYXNzPVwic3dpdGNoLWZpZWxkXCIgW2NsYXNzLnN3aXRjaC1maWVsZC0taW52YWxpZF09XCJ1aUludmFsaWRcIlxyXG4gIFtjbGFzcy5zd2l0Y2gtZmllbGQtLXJlYWRvbmx5XT1cInJlYWRvbmx5XCI+XHJcbiAgPGxhYmVsIGNsYXNzPVwic3dpdGNoLWZpZWxkX19yb3dcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNsYXNzPVwic3dpdGNoLWZpZWxkX190cmFja1wiXHJcbiAgICAgIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICBbaWRdPVwiY29udHJvbElkXCJcclxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lIHx8IG51bGxcIlxyXG4gICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbCA/IGxhYmVsSWQgOiBudWxsXCJcclxuICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cInVpSW52YWxpZFwiXHJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwidWlBcmlhRGVzY3JpYmVkQnlcIlxyXG4gICAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRvbmx5ID8gdHJ1ZSA6IG51bGxcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxyXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxyXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3dpdGNoLWZpZWxkX190aHVtYlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgQGlmIChsYWJlbCkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJzd2l0Y2gtZmllbGRfX2xhYmVsXCIgW2lkXT1cImxhYmVsSWRcIj5cclxuICAgICAge3sgbGFiZWwgfX1cclxuICAgICAgQGlmICh1aVJlcXVpcmVkRWZmZWN0aXZlICYmIHNob3dSZXF1aXJlZE1hcmspIHtcclxuICAgICAgPHNwYW4gY2xhc3M9XCJzd2l0Y2gtZmllbGRfX3JlcXVpcmVkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgPC9zcGFuPlxyXG4gICAgfVxyXG4gIDwvbGFiZWw+XHJcbiAgQGlmIChzaG93RXJyb3JNZXNzYWdlICYmIHVpSW52YWxpZCAmJiB1aUVycm9yTWVzc2FnZSkge1xyXG4gIDxwIGNsYXNzPVwic3dpdGNoLWZpZWxkX19lcnJvclwiIFtpZF09XCJlcnJvckVsZW1lbnRJZFwiIHJvbGU9XCJhbGVydFwiPnt7IHVpRXJyb3JNZXNzYWdlIH19PC9wPlxyXG4gIH1cclxuPC9kaXY+XHJcbn0gQGVsc2Uge1xyXG48ZGl2IGNsYXNzPVwic3dpdGNoLWZpZWxkIHN3aXRjaC1maWVsZC0tbG9hZGluZ1wiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBbYXR0ci5hcmlhLWJ1c3ldPVwidHJ1ZVwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCB8fCAnQSBjYXJyZWdhcidcIj5cclxuICA8ZGl2IGNsYXNzPVwic3dpdGNoLWZpZWxkX19za2VsZXRvbi1yb3dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgIDxhcHAtc2tlbGV0b24tYmxvY2sgd2lkdGg9XCIyLjc1cmVtXCIgaGVpZ2h0PVwiMS41cmVtXCIgcmFkaXVzPVwiOTk5cHhcIiAvPlxyXG4gICAgPGFwcC1za2VsZXRvbi1ibG9jayB3aWR0aD1cIjQuMjVyZW1cIiBoZWlnaHQ9XCIwLjcycmVtXCIgcmFkaXVzPVwiNnB4XCIgLz5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbn1cclxuIl19
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, booleanAttribute, computed, inject, } from '@angular/core';
|
|
3
|
-
import { CdkConnectedOverlay, CdkOverlayOrigin, } from '@angular/cdk/overlay';
|
|
4
|
-
import { AppThemeService } from '../../../../theme';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/** Posição por omissão do CDK (equivalente ao comportamento anterior sem `positions` explícitas). */
|
|
7
|
-
const DEFAULT_CONNECTED_POSITIONS = [
|
|
8
|
-
{
|
|
9
|
-
originX: 'start',
|
|
10
|
-
originY: 'bottom',
|
|
11
|
-
overlayX: 'start',
|
|
12
|
-
overlayY: 'top',
|
|
13
|
-
},
|
|
14
|
-
];
|
|
15
|
-
/**
|
|
16
|
-
* Base de overlay para **listas ligadas a campos** (select, dropdown-menu, etc.).
|
|
17
|
-
* Para tooltips/popovers genéricos ver `AnchoredOverlayComponent` em `overlay/` — mesma stack CDK e tema,
|
|
18
|
-
* API de fecho semelhante (`open`/`openChange`, Escape), mas defaults diferentes (ex.: backdrop em dropdowns).
|
|
19
|
-
*/
|
|
20
|
-
export class DropdownBaseComponent {
|
|
21
|
-
constructor() {
|
|
22
|
-
this.appTheme = inject(AppThemeService);
|
|
23
|
-
/**
|
|
24
|
-
* O overlay do CDK fica sob `body`; sem estas classes, `var(--app-color-*)` cai no `:root`.
|
|
25
|
-
* Tem de ser **array**: uma única string com espaço quebra `classList.add` e as classes não aplicam.
|
|
26
|
-
*/
|
|
27
|
-
this.overlayPanelClasses = computed(() => ['app-library-theme', this.appTheme.themeClass()]);
|
|
28
|
-
/**
|
|
29
|
-
* O CDK não reaplica `cdkConnectedOverlayPanelClass` quando o overlay já existe.
|
|
30
|
-
* As classes de tema no painel interno seguem o tema activo sempre.
|
|
31
|
-
*/
|
|
32
|
-
this.panelThemeNgClass = computed(() => {
|
|
33
|
-
const themeClass = this.appTheme.themeClass();
|
|
34
|
-
return {
|
|
35
|
-
'app-library-theme': true,
|
|
36
|
-
[themeClass]: true,
|
|
37
|
-
};
|
|
38
|
-
});
|
|
39
|
-
this.open = false;
|
|
40
|
-
this.openChange = new EventEmitter();
|
|
41
|
-
/** Largura do painel em px (ex.: largura total do campo). */
|
|
42
|
-
this.panelWidthPx = null;
|
|
43
|
-
this.closeOnEscape = true;
|
|
44
|
-
this.hasBackdrop = true;
|
|
45
|
-
/** Empurra o overlay para caber no viewport quando há espaço insuficiente. */
|
|
46
|
-
this.pushConnectedOverlay = false;
|
|
47
|
-
/**
|
|
48
|
-
* `true`: painel sem fundo/borda/sombra próprios — o conteúdo (ex.: `app-menu-list`) define o chrome.
|
|
49
|
-
* Evita dupla moldura com `menu-surface-shell` nos menus de acção.
|
|
50
|
-
*/
|
|
51
|
-
this.bareOverlayPanel = false;
|
|
52
|
-
}
|
|
53
|
-
get overlayWidthPx() {
|
|
54
|
-
const w = this.panelWidthPx;
|
|
55
|
-
return w != null && w > 0 ? w : 0;
|
|
56
|
-
}
|
|
57
|
-
get effectiveConnectedPositions() {
|
|
58
|
-
return this.connectedPositions ?? DEFAULT_CONNECTED_POSITIONS;
|
|
59
|
-
}
|
|
60
|
-
onBackdropClick() {
|
|
61
|
-
this.setOpen(false);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Cliques noutros controlos (fora do painel e fora do trigger) nem sempre passam pelo backdrop;
|
|
65
|
-
* o CDK expõe `overlayOutsideClick` para o mesmo efeito de fechar.
|
|
66
|
-
*/
|
|
67
|
-
onOverlayOutsideClick() {
|
|
68
|
-
this.setOpen(false);
|
|
69
|
-
}
|
|
70
|
-
onOverlayKeydown(ev) {
|
|
71
|
-
if (this.closeOnEscape && ev.key === 'Escape') {
|
|
72
|
-
ev.preventDefault();
|
|
73
|
-
this.setOpen(false);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
setOpen(next) {
|
|
77
|
-
if (this.open === next) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
this.open = next;
|
|
81
|
-
this.openChange.emit(next);
|
|
82
|
-
}
|
|
83
|
-
toggle() {
|
|
84
|
-
this.setOpen(!this.open);
|
|
85
|
-
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: DropdownBaseComponent, isStandalone: true, selector: "app-dropdown-base", inputs: { open: ["open", "open", booleanAttribute], panelTemplate: "panelTemplate", panelWidthPx: "panelWidthPx", closeOnEscape: ["closeOnEscape", "closeOnEscape", booleanAttribute], hasBackdrop: ["hasBackdrop", "hasBackdrop", booleanAttribute], connectedPositions: "connectedPositions", pushConnectedOverlay: ["pushConnectedOverlay", "pushConnectedOverlay", booleanAttribute], bareOverlayPanel: ["bareOverlayPanel", "bareOverlayPanel", booleanAttribute] }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<div class=\"dropdown-base\">\r\n <span class=\"dropdown-base__origin\" cdkOverlayOrigin #dropdownOrigin=\"cdkOverlayOrigin\">\r\n <ng-content select=\"[appDropdownTrigger]\" />\r\n </span>\r\n\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayPositions]=\"effectiveConnectedPositions\"\r\n [cdkConnectedOverlayPush]=\"pushConnectedOverlay\"\r\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClasses()\"\r\n [cdkConnectedOverlayOrigin]=\"dropdownOrigin\"\r\n [cdkConnectedOverlayOpen]=\"open\"\r\n [cdkConnectedOverlayWidth]=\"$any(overlayWidthPx > 0 ? overlayWidthPx : undefined)\"\r\n [cdkConnectedOverlayMinWidth]=\"$any(overlayWidthPx > 0 ? overlayWidthPx : undefined)\"\r\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayDisableClose]=\"false\"\r\n (backdropClick)=\"onBackdropClick()\"\r\n (overlayOutsideClick)=\"onOverlayOutsideClick()\"\r\n (overlayKeydown)=\"onOverlayKeydown($event)\"\r\n (detach)=\"setOpen(false)\"\r\n >\r\n <div\r\n class=\"dropdown-base__panel\"\r\n [class.dropdown-base__panel--bare]=\"bareOverlayPanel\"\r\n [ngClass]=\"panelThemeNgClass()\"\r\n role=\"presentation\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"panelTemplate\" />\r\n </div>\r\n </ng-template>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex:1;min-width:0;width:100%;box-sizing:border-box}.dropdown-base{display:flex;flex:1;min-width:0;width:100%;box-sizing:border-box}.dropdown-base__origin{display:block;width:100%;min-width:0;flex:1 1 auto;box-sizing:border-box}.dropdown-base__panel{width:100%;box-sizing:border-box;background:var(--app-color-nav-surface, var(--app-color-surface, #fff));border:1px solid var(--ui-field-float-border, #ccc);border-radius:4px;box-shadow:0 4px 12px var(--app-color-overlay-shadow, rgba(0, 0, 0, .12));overflow:visible;max-height:none}.dropdown-base__panel--bare{background:transparent;border:none;box-shadow:none;border-radius:0;overflow:visible}\n"], dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
88
|
-
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownBaseComponent, decorators: [{
|
|
90
|
-
type: Component,
|
|
91
|
-
args: [{ selector: 'app-dropdown-base', standalone: true, imports: [CdkConnectedOverlay, CdkOverlayOrigin, NgClass, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dropdown-base\">\r\n <span class=\"dropdown-base__origin\" cdkOverlayOrigin #dropdownOrigin=\"cdkOverlayOrigin\">\r\n <ng-content select=\"[appDropdownTrigger]\" />\r\n </span>\r\n\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayPositions]=\"effectiveConnectedPositions\"\r\n [cdkConnectedOverlayPush]=\"pushConnectedOverlay\"\r\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClasses()\"\r\n [cdkConnectedOverlayOrigin]=\"dropdownOrigin\"\r\n [cdkConnectedOverlayOpen]=\"open\"\r\n [cdkConnectedOverlayWidth]=\"$any(overlayWidthPx > 0 ? overlayWidthPx : undefined)\"\r\n [cdkConnectedOverlayMinWidth]=\"$any(overlayWidthPx > 0 ? overlayWidthPx : undefined)\"\r\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayDisableClose]=\"false\"\r\n (backdropClick)=\"onBackdropClick()\"\r\n (overlayOutsideClick)=\"onOverlayOutsideClick()\"\r\n (overlayKeydown)=\"onOverlayKeydown($event)\"\r\n (detach)=\"setOpen(false)\"\r\n >\r\n <div\r\n class=\"dropdown-base__panel\"\r\n [class.dropdown-base__panel--bare]=\"bareOverlayPanel\"\r\n [ngClass]=\"panelThemeNgClass()\"\r\n role=\"presentation\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"panelTemplate\" />\r\n </div>\r\n </ng-template>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex:1;min-width:0;width:100%;box-sizing:border-box}.dropdown-base{display:flex;flex:1;min-width:0;width:100%;box-sizing:border-box}.dropdown-base__origin{display:block;width:100%;min-width:0;flex:1 1 auto;box-sizing:border-box}.dropdown-base__panel{width:100%;box-sizing:border-box;background:var(--app-color-nav-surface, var(--app-color-surface, #fff));border:1px solid var(--ui-field-float-border, #ccc);border-radius:4px;box-shadow:0 4px 12px var(--app-color-overlay-shadow, rgba(0, 0, 0, .12));overflow:visible;max-height:none}.dropdown-base__panel--bare{background:transparent;border:none;box-shadow:none;border-radius:0;overflow:visible}\n"] }]
|
|
92
|
-
}], propDecorators: { open: [{
|
|
93
|
-
type: Input,
|
|
94
|
-
args: [{ transform: booleanAttribute }]
|
|
95
|
-
}], openChange: [{
|
|
96
|
-
type: Output
|
|
97
|
-
}], panelTemplate: [{
|
|
98
|
-
type: Input,
|
|
99
|
-
args: [{ required: true }]
|
|
100
|
-
}], panelWidthPx: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], closeOnEscape: [{
|
|
103
|
-
type: Input,
|
|
104
|
-
args: [{ transform: booleanAttribute }]
|
|
105
|
-
}], hasBackdrop: [{
|
|
106
|
-
type: Input,
|
|
107
|
-
args: [{ transform: booleanAttribute }]
|
|
108
|
-
}], connectedPositions: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}], pushConnectedOverlay: [{
|
|
111
|
-
type: Input,
|
|
112
|
-
args: [{ transform: booleanAttribute }]
|
|
113
|
-
}], bareOverlayPanel: [{
|
|
114
|
-
type: Input,
|
|
115
|
-
args: [{ transform: booleanAttribute }]
|
|
116
|
-
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9kcm9wZG93bi1maWVsZHMvX2Jhc2UvZHJvcGRvd24tYmFzZS9kcm9wZG93bi1iYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2Ryb3Bkb3duLWZpZWxkcy9fYmFzZS9kcm9wZG93bi1iYXNlL2Ryb3Bkb3duLWJhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEdBRWpCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUVwRCxxR0FBcUc7QUFDckcsTUFBTSwyQkFBMkIsR0FBd0I7SUFDdkQ7UUFDRSxPQUFPLEVBQUUsT0FBTztRQUNoQixPQUFPLEVBQUUsUUFBUTtRQUNqQixRQUFRLEVBQUUsT0FBTztRQUNqQixRQUFRLEVBQUUsS0FBSztLQUNoQjtDQUNGLENBQUM7QUFFRjs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLHFCQUFxQjtJQVJsQztRQVNtQixhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXBEOzs7V0FHRztRQUNNLHdCQUFtQixHQUFHLFFBQVEsQ0FDckMsR0FBYSxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFD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QkFDRSxXQUFXO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU03QixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR2tDLG9CQUFvQjtzQkFBM0QsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNRSxnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBib29sZWFuQXR0cmlidXRlLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGluamVjdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDZGtDb25uZWN0ZWRPdmVybGF5LFxyXG4gIENka092ZXJsYXlPcmlnaW4sXHJcbiAgdHlwZSBDb25uZWN0ZWRQb3NpdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IEFwcFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3RoZW1lJztcclxuXHJcbi8qKiBQb3Npw6fDo28gcG9yIG9taXNzw6NvIGRvIENESyAoZXF1aXZhbGVudGUgYW8gY29tcG9ydGFtZW50byBhbnRlcmlvciBzZW0gYHBvc2l0aW9uc2AgZXhwbMOtY2l0YXMpLiAqL1xyXG5jb25zdCBERUZBVUxUX0NPTk5FQ1RFRF9QT1NJVElPTlM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXHJcbiAge1xyXG4gICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgfSxcclxuXTtcclxuXHJcbi8qKlxyXG4gKiBCYXNlIGRlIG92ZXJsYXkgcGFyYSAqKmxpc3RhcyBsaWdhZGFzIGEgY2FtcG9zKiogKHNlbGVjdCwgZHJvcGRvd24tbWVudSwgZXRjLikuXHJcbiAqIFBhcmEgdG9vbHRpcHMvcG9wb3ZlcnMgZ2Vuw6lyaWNvcyB2ZXIgYEFuY2hvcmVkT3ZlcmxheUNvbXBvbmVudGAgZW0gYG92ZXJsYXkvYCDigJQgbWVzbWEgc3RhY2sgQ0RLIGUgdGVtYSxcclxuICogQVBJIGRlIGZlY2hvIHNlbWVsaGFudGUgKGBvcGVuYC9gb3BlbkNoYW5nZWAsIEVzY2FwZSksIG1hcyBkZWZhdWx0cyBkaWZlcmVudGVzIChleC46IGJhY2tkcm9wIGVtIGRyb3Bkb3ducykuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kcm9wZG93bi1iYXNlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDZGtDb25uZWN0ZWRPdmVybGF5LCBDZGtPdmVybGF5T3JpZ2luLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24tYmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Ryb3Bkb3duLWJhc2UuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25CYXNlQ29tcG9uZW50IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwcFRoZW1lID0gaW5qZWN0KEFwcFRoZW1lU2VydmljZSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE8gb3ZlcmxheSBkbyBDREsgZmljYSBzb2IgYGJvZHlgOyBzZW0gZXN0YXMgY2xhc3NlcywgYHZhcigtLWFwcC1jb2xvci0qKWAgY2FpIG5vIGA6cm9vdGAuXHJcbiAgICogVGVtIGRlIHNlciAqKmFycmF5Kio6IHVtYSDDum5pY2Egc3RyaW5nIGNvbSBlc3Bhw6dvIHF1ZWJyYSBgY2xhc3NMaXN0LmFkZGAgZSBhcyBjbGFzc2VzIG7Do28gYXBsaWNhbS5cclxuICAgKi9cclxuICByZWFkb25seSBvdmVybGF5UGFuZWxDbGFzc2VzID0gY29tcHV0ZWQoXHJcbiAgICAoKTogc3RyaW5nW10gPT4gWydhcHAtbGlicmFyeS10aGVtZScsIHRoaXMuYXBwVGhlbWUudGhlbWVDbGFzcygpXSxcclxuICApO1xyXG5cclxuICAvKipcclxuICAgKiBPIENESyBuw6NvIHJlYXBsaWNhIGBjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzc2AgcXVhbmRvIG8gb3ZlcmxheSBqw6EgZXhpc3RlLlxyXG4gICAqIEFzIGNsYXNzZXMgZGUgdGVtYSBubyBwYWluZWwgaW50ZXJubyBzZWd1ZW0gbyB0ZW1hIGFjdGl2byBzZW1wcmUuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcGFuZWxUaGVtZU5nQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCB0aGVtZUNsYXNzID0gdGhpcy5hcHBUaGVtZS50aGVtZUNsYXNzKCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnYXBwLWxpYnJhcnktdGhlbWUnOiB0cnVlLFxyXG4gICAgICBbdGhlbWVDbGFzc106IHRydWUsXHJcbiAgICB9O1xyXG4gIH0pO1xyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3BlbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvKiogQ29udGXDumRvIGRvIHBhaW5lbCAobGlzdGEsIGV0Yy4pIHJlbmRlcml6YWRvIG5vIG92ZXJsYXkuICovXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFuZWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG5cclxuICAvKiogTGFyZ3VyYSBkbyBwYWluZWwgZW0gcHggKGV4LjogbGFyZ3VyYSB0b3RhbCBkbyBjYW1wbykuICovXHJcbiAgQElucHV0KCkgcGFuZWxXaWR0aFB4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsb3NlT25Fc2NhcGUgPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNCYWNrZHJvcCA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc2nDp8O1ZXMgZG8gb3ZlcmxheSBsaWdhZGFzIGFvIHRyaWdnZXIgKGV4LjogbWVudSBjb20gZmxpcCB2ZXJ0aWNhbCkuXHJcbiAgICogUG9yIG9taXNzw6NvIG1hbnTDqW0gbyBhbGluaGFtZW50byBjbMOhc3NpY28gwqtwb3IgYmFpeG/CuyBkb3MgY2FtcG9zLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbm5lY3RlZFBvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqIEVtcHVycmEgbyBvdmVybGF5IHBhcmEgY2FiZXIgbm8gdmlld3BvcnQgcXVhbmRvIGjDoSBlc3Bhw6dvIGluc3VmaWNpZW50ZS4gKi9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcHVzaENvbm5lY3RlZE92ZXJsYXkgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogYHRydWVgOiBwYWluZWwgc2VtIGZ1bmRvL2JvcmRhL3NvbWJyYSBwcsOzcHJpb3Mg4oCUIG8gY29udGXDumRvIChleC46IGBhcHAtbWVudS1saXN0YCkgZGVmaW5lIG8gY2hyb21lLlxyXG4gICAqIEV2aXRhIGR1cGxhIG1vbGR1cmEgY29tIGBtZW51LXN1cmZhY2Utc2hlbGxgIG5vcyBtZW51cyBkZSBhY8Onw6NvLlxyXG4gICAqL1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBiYXJlT3ZlcmxheVBhbmVsID0gZmFsc2U7XHJcblxyXG4gIGdldCBvdmVybGF5V2lkdGhQeCgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgdyA9IHRoaXMucGFuZWxXaWR0aFB4O1xyXG4gICAgcmV0dXJuIHcgIT0gbnVsbCAmJiB3ID4gMCA/IHcgOiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVmZmVjdGl2ZUNvbm5lY3RlZFBvc2l0aW9ucygpOiBDb25uZWN0ZWRQb3NpdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLmNvbm5lY3RlZFBvc2l0aW9ucyA/PyBERUZBVUxUX0NPTk5FQ1RFRF9QT1NJVElPTlM7XHJcbiAgfVxyXG5cclxuICBvbkJhY2tkcm9wQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE9wZW4oZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xpcXVlcyBub3V0cm9zIGNvbnRyb2xvcyAoZm9yYSBkbyBwYWluZWwgZSBmb3JhIGRvIHRyaWdnZXIpIG5lbSBzZW1wcmUgcGFzc2FtIHBlbG8gYmFja2Ryb3A7XHJcbiAgICogbyBDREsgZXhww7VlIGBvdmVybGF5T3V0c2lkZUNsaWNrYCBwYXJhIG8gbWVzbW8gZWZlaXRvIGRlIGZlY2hhci5cclxuICAgKi9cclxuICBvbk92ZXJsYXlPdXRzaWRlQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE9wZW4oZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgb25PdmVybGF5S2V5ZG93bihldjogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2xvc2VPbkVzY2FwZSAmJiBldi5rZXkgPT09ICdFc2NhcGUnKSB7XHJcbiAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuc2V0T3BlbihmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRPcGVuKG5leHQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9wZW4gPT09IG5leHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcGVuID0gbmV4dDtcclxuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KG5leHQpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRPcGVuKCF0aGlzLm9wZW4pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZHJvcGRvd24tYmFzZVwiPlxyXG4gIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tYmFzZV9fb3JpZ2luXCIgY2RrT3ZlcmxheU9yaWdpbiAjZHJvcGRvd25PcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYXBwRHJvcGRvd25UcmlnZ2VyXVwiIC8+XHJcbiAgPC9zcGFuPlxyXG5cclxuICA8bmctdGVtcGxhdGVcclxuICAgIGNka0Nvbm5lY3RlZE92ZXJsYXlcclxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cImVmZmVjdGl2ZUNvbm5lY3RlZFBvc2l0aW9uc1wiXHJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVB1c2hdPVwicHVzaENvbm5lY3RlZE92ZXJsYXlcIlxyXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzXT1cIm92ZXJsYXlQYW5lbENsYXNzZXMoKVwiXHJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJkcm9wZG93bk9yaWdpblwiXHJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwib3BlblwiXHJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cIiRhbnkob3ZlcmxheVdpZHRoUHggPiAwID8gb3ZlcmxheVdpZHRoUHggOiB1bmRlZmluZWQpXCJcclxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGhdPVwiJGFueShvdmVybGF5V2lkdGhQeCA+IDAgPyBvdmVybGF5V2lkdGhQeCA6IHVuZGVmaW5lZClcIlxyXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJoYXNCYWNrZHJvcFwiXHJcbiAgICBjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcz1cImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcclxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5RGlzYWJsZUNsb3NlXT1cImZhbHNlXCJcclxuICAgIChiYWNrZHJvcENsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygpXCJcclxuICAgIChvdmVybGF5T3V0c2lkZUNsaWNrKT1cIm9uT3ZlcmxheU91dHNpZGVDbGljaygpXCJcclxuICAgIChvdmVybGF5S2V5ZG93bik9XCJvbk92ZXJsYXlLZXlkb3duKCRldmVudClcIlxyXG4gICAgKGRldGFjaCk9XCJzZXRPcGVuKGZhbHNlKVwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImRyb3Bkb3duLWJhc2VfX3BhbmVsXCJcclxuICAgICAgW2NsYXNzLmRyb3Bkb3duLWJhc2VfX3BhbmVsLS1iYXJlXT1cImJhcmVPdmVybGF5UGFuZWxcIlxyXG4gICAgICBbbmdDbGFzc109XCJwYW5lbFRoZW1lTmdDbGFzcygpXCJcclxuICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicGFuZWxUZW1wbGF0ZVwiIC8+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, booleanAttribute } from '@angular/core';
|
|
2
|
-
import { NgControlFieldDirective } from '../../input-fields/_base/ng-control-field.directive';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Base para multiselect: valor `unknown[]`, opções, índice ativo (teclado) e comparação.
|
|
6
|
-
*/
|
|
7
|
-
export class DropdownMultiOptionFieldBase extends NgControlFieldDirective {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.filledUi = false;
|
|
11
|
-
this._options = [];
|
|
12
|
-
this._compareWith = Object.is;
|
|
13
|
-
/** Lista de opções ainda a carregar. */
|
|
14
|
-
this.optionsLoading = false;
|
|
15
|
-
this.activeIndex = 0;
|
|
16
|
-
}
|
|
17
|
-
get options() {
|
|
18
|
-
return this._options;
|
|
19
|
-
}
|
|
20
|
-
set options(value) {
|
|
21
|
-
this._options = value ?? [];
|
|
22
|
-
}
|
|
23
|
-
/** Alias de {@link options}. */
|
|
24
|
-
set itemsInput(value) {
|
|
25
|
-
this._options = value ?? [];
|
|
26
|
-
}
|
|
27
|
-
get compareWith() {
|
|
28
|
-
return this._compareWith;
|
|
29
|
-
}
|
|
30
|
-
set compareWith(fn) {
|
|
31
|
-
this._compareWith = fn ?? Object.is;
|
|
32
|
-
}
|
|
33
|
-
/** Alias de {@link compareWith}. */
|
|
34
|
-
set compareBy(fn) {
|
|
35
|
-
this._compareWith = fn ?? Object.is;
|
|
36
|
-
}
|
|
37
|
-
refreshMultiFilledUi() {
|
|
38
|
-
const vals = this.internalValue;
|
|
39
|
-
this.filledUi = Array.isArray(vals) && vals.length > 0;
|
|
40
|
-
}
|
|
41
|
-
emitModelValue(value) {
|
|
42
|
-
super.emitModelValue(value);
|
|
43
|
-
this.refreshMultiFilledUi();
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Opções com as selecionadas primeiro (mesma ordem relativa que em `options`).
|
|
47
|
-
*/
|
|
48
|
-
get listOptions() {
|
|
49
|
-
const src = this._options;
|
|
50
|
-
if (src.length === 0) {
|
|
51
|
-
return src;
|
|
52
|
-
}
|
|
53
|
-
const vals = this.internalValue;
|
|
54
|
-
if (!Array.isArray(vals) || vals.length === 0) {
|
|
55
|
-
return src;
|
|
56
|
-
}
|
|
57
|
-
const picked = [];
|
|
58
|
-
const rest = [];
|
|
59
|
-
for (const o of src) {
|
|
60
|
-
if (o.disabled) {
|
|
61
|
-
rest.push(o);
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
const sel = vals.some((v) => this.matches(o.value, v));
|
|
65
|
-
if (sel) {
|
|
66
|
-
picked.push(o);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
rest.push(o);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return [...picked, ...rest];
|
|
73
|
-
}
|
|
74
|
-
finishMultiTouch() {
|
|
75
|
-
queueMicrotask(() => {
|
|
76
|
-
this.notifyTouched();
|
|
77
|
-
this.cdr.markForCheck();
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
trackOption(_index, opt) {
|
|
81
|
-
return opt.value;
|
|
82
|
-
}
|
|
83
|
-
isSelected(opt) {
|
|
84
|
-
const vals = this.internalValue;
|
|
85
|
-
if (!Array.isArray(vals) || vals.length === 0) {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
return vals.some((v) => this.matches(opt.value, v));
|
|
89
|
-
}
|
|
90
|
-
findOptionByValue(value) {
|
|
91
|
-
if (value == null) {
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
|
-
return this._options.find((o) => !o.disabled && this.matches(o.value, value));
|
|
95
|
-
}
|
|
96
|
-
matches(a, b) {
|
|
97
|
-
return this._compareWith(a, b);
|
|
98
|
-
}
|
|
99
|
-
syncActiveIndexToFirstEnabled() {
|
|
100
|
-
const list = this.listOptions;
|
|
101
|
-
const idx = list.findIndex((o) => !o.disabled);
|
|
102
|
-
this.activeIndex = idx >= 0 ? idx : 0;
|
|
103
|
-
}
|
|
104
|
-
firstEnabledIndex() {
|
|
105
|
-
const list = this.listOptions;
|
|
106
|
-
const i = list.findIndex((o) => !o.disabled);
|
|
107
|
-
return i >= 0 ? i : 0;
|
|
108
|
-
}
|
|
109
|
-
lastEnabledIndex() {
|
|
110
|
-
const list = this.listOptions;
|
|
111
|
-
for (let i = list.length - 1; i >= 0; i--) {
|
|
112
|
-
if (!list[i].disabled) {
|
|
113
|
-
return i;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return 0;
|
|
117
|
-
}
|
|
118
|
-
stepActive(delta) {
|
|
119
|
-
let i = this.activeIndex;
|
|
120
|
-
const list = this.listOptions;
|
|
121
|
-
const n = list.length;
|
|
122
|
-
if (n === 0) {
|
|
123
|
-
return 0;
|
|
124
|
-
}
|
|
125
|
-
for (let step = 0; step < n; step++) {
|
|
126
|
-
i = (i + delta + n) % n;
|
|
127
|
-
if (!list[i].disabled) {
|
|
128
|
-
return i;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
return this.activeIndex;
|
|
132
|
-
}
|
|
133
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownMultiOptionFieldBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
134
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.12", type: DropdownMultiOptionFieldBase, inputs: { options: "options", itemsInput: ["items", "itemsInput"], compareWith: "compareWith", compareBy: "compareBy", optionsLoading: ["optionsLoading", "optionsLoading", booleanAttribute] }, usesInheritance: true, ngImport: i0 }); }
|
|
135
|
-
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownMultiOptionFieldBase, decorators: [{
|
|
137
|
-
type: Directive
|
|
138
|
-
}], propDecorators: { options: [{
|
|
139
|
-
type: Input
|
|
140
|
-
}], itemsInput: [{
|
|
141
|
-
type: Input,
|
|
142
|
-
args: ['items']
|
|
143
|
-
}], compareWith: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], compareBy: [{
|
|
146
|
-
type: Input,
|
|
147
|
-
args: ['compareBy']
|
|
148
|
-
}], optionsLoading: [{
|
|
149
|
-
type: Input,
|
|
150
|
-
args: [{ transform: booleanAttribute }]
|
|
151
|
-
}] } });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbXVsdGktb3B0aW9uLWZpZWxkLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9kcm9wZG93bi1maWVsZHMvX2Jhc2UvZHJvcGRvd24tbXVsdGktb3B0aW9uLWZpZWxkLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7O0FBRzlGOztHQUVHO0FBRUgsTUFBTSxPQUFnQiw0QkFBNkIsU0FBUSx1QkFFMUQ7SUFIRDs7UUFJRSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRVQsYUFBUSxHQUEyQyxFQUFFLENBQUM7UUFnQnRELGlCQUFZLEdBQXdDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFnQnRFLHdDQUF3QztRQUNBLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRS9ELGdCQUFXLEdBQUcsQ0FBQyxDQUFDO0tBZ0hqQjtJQWpKQyxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQTZDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLElBQ0ksVUFBVSxDQUFDLEtBQTZDO1FBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBSUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxFQUF1QztRQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsSUFBSSxNQUFNLENBQUMsRUFBRSxD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eyBEaXJlY3RpdmUsIElucHV0LCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbEZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vaW5wdXQtZmllbGRzL19iYXNlL25nLWNvbnRyb2wtZmllbGQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVWlTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9fbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgcGFyYSBtdWx0aXNlbGVjdDogdmFsb3IgYHVua25vd25bXWAsIG9ww6fDtWVzLCDDrW5kaWNlIGF0aXZvICh0ZWNsYWRvKSBlIGNvbXBhcmHDp8Ojby5cclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHJvcGRvd25NdWx0aU9wdGlvbkZpZWxkQmFzZSBleHRlbmRzIE5nQ29udHJvbEZpZWxkRGlyZWN0aXZlPFxyXG4gIHVua25vd25bXVxyXG4+IHtcclxuICBmaWxsZWRVaSA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9vcHRpb25zOiBSZWFkb25seUFycmF5PFVpU2VsZWN0T3B0aW9uPHVua25vd24+PiA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBvcHRpb25zKCk6IFJlYWRvbmx5QXJyYXk8VWlTZWxlY3RPcHRpb248dW5rbm93bj4+IHtcclxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gIH1cclxuICBzZXQgb3B0aW9ucyh2YWx1ZTogUmVhZG9ubHlBcnJheTxVaVNlbGVjdE9wdGlvbjx1bmtub3duPj4pIHtcclxuICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZSA/PyBbXTtcclxuICB9XHJcblxyXG4gIC8qKiBBbGlhcyBkZSB7QGxpbmsgb3B0aW9uc30uICovXHJcbiAgQElucHV0KCdpdGVtcycpXHJcbiAgc2V0IGl0ZW1zSW5wdXQodmFsdWU6IFJlYWRvbmx5QXJyYXk8VWlTZWxlY3RPcHRpb248dW5rbm93bj4+KSB7XHJcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWUgPz8gW107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb21wYXJlV2l0aDogKGE6IHVua25vd24sIGI6IHVua25vd24pID0+IGJvb2xlYW4gPSBPYmplY3QuaXM7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbXBhcmVXaXRoKCk6IChhOiB1bmtub3duLCBiOiB1bmtub3duKSA9PiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jb21wYXJlV2l0aDtcclxuICB9XHJcbiAgc2V0IGNvbXBhcmVXaXRoKGZuOiAoYTogdW5rbm93biwgYjogdW5rbm93bikgPT4gYm9vbGVhbikge1xyXG4gICAgdGhpcy5fY29tcGFyZVdpdGggPSBmbiA/PyBPYmplY3QuaXM7XHJcbiAgfVxyXG5cclxuICAvKiogQWxpYXMgZGUge0BsaW5rIGNvbXBhcmVXaXRofS4gKi9cclxuICBASW5wdXQoJ2NvbXBhcmVCeScpXHJcbiAgc2V0IGNvbXBhcmVCeShmbjogKGE6IHVua25vd24sIGI6IHVua25vd24pID0+IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2NvbXBhcmVXaXRoID0gZm4gPz8gT2JqZWN0LmlzO1xyXG4gIH1cclxuXHJcbiAgLyoqIExpc3RhIGRlIG9ww6fDtWVzIGFpbmRhIGEgY2FycmVnYXIuICovXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG9wdGlvbnNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIGFjdGl2ZUluZGV4ID0gMDtcclxuXHJcbiAgcHJvdGVjdGVkIHJlZnJlc2hNdWx0aUZpbGxlZFVpKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFscyA9IHRoaXMuaW50ZXJuYWxWYWx1ZTtcclxuICAgIHRoaXMuZmlsbGVkVWkgPSBBcnJheS5pc0FycmF5KHZhbHMpICYmIHZhbHMubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSBlbWl0TW9kZWxWYWx1ZSh2YWx1ZTogdW5rbm93bltdIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgc3VwZXIuZW1pdE1vZGVsVmFsdWUodmFsdWUpO1xyXG4gICAgdGhpcy5yZWZyZXNoTXVsdGlGaWxsZWRVaSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3DDp8O1ZXMgY29tIGFzIHNlbGVjaW9uYWRhcyBwcmltZWlybyAobWVzbWEgb3JkZW0gcmVsYXRpdmEgcXVlIGVtIGBvcHRpb25zYCkuXHJcbiAgICovXHJcbiAgZ2V0IGxpc3RPcHRpb25zKCk6IFJlYWRvbmx5QXJyYXk8VWlTZWxlY3RPcHRpb248dW5rbm93bj4+IHtcclxuICAgIGNvbnN0IHNyYyA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICBpZiAoc3JjLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gc3JjO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmFscyA9IHRoaXMuaW50ZXJuYWxWYWx1ZTtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWxzKSB8fCB2YWxzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gc3JjO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGlja2VkOiBVaVNlbGVjdE9wdGlvbjx1bmtub3duPltdID0gW107XHJcbiAgICBjb25zdCByZXN0OiBVaVNlbGVjdE9wdGlvbjx1bmtub3duPltdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IG8gb2Ygc3JjKSB7XHJcbiAgICAgIGlmIChvLmRpc2FibGVkKSB7XHJcbiAgICAgICAgcmVzdC5wdXNoKG8pO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHNlbCA9IHZhbHMuc29tZSgodikgPT4gdGhpcy5tYXRjaGVzKG8udmFsdWUsIHYpKTtcclxuICAgICAgaWYgKHNlbCkge1xyXG4gICAgICAgIHBpY2tlZC5wdXNoKG8pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3QucHVzaChvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFsuLi5waWNrZWQsIC4uLnJlc3RdO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZpbmlzaE11bHRpVG91Y2goKTogdm9pZCB7XHJcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XHJcbiAgICAgIHRoaXMubm90aWZ5VG91Y2hlZCgpO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tPcHRpb24oX2luZGV4OiBudW1iZXIsIG9wdDogVWlTZWxlY3RPcHRpb248dW5rbm93bj4pOiB1bmtub3duIHtcclxuICAgIHJldHVybiBvcHQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkKG9wdDogVWlTZWxlY3RPcHRpb248dW5rbm93bj4pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHZhbHMgPSB0aGlzLmludGVybmFsVmFsdWU7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFscykgfHwgdmFscy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHMuc29tZSgodikgPT4gdGhpcy5tYXRjaGVzKG9wdC52YWx1ZSwgdikpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZpbmRPcHRpb25CeVZhbHVlKFxyXG4gICAgdmFsdWU6IHVua25vd24gfCBudWxsLFxyXG4gICk6IFVpU2VsZWN0T3B0aW9uPHVua25vd24+IHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5maW5kKFxyXG4gICAgICAobykgPT4gIW8uZGlzYWJsZWQgJiYgdGhpcy5tYXRjaGVzKG8udmFsdWUsIHZhbHVlKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbWF0Y2hlcyhhOiB1bmtub3duLCBiOiB1bmtub3duKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29tcGFyZVdpdGgoYSwgYik7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc3luY0FjdGl2ZUluZGV4VG9GaXJzdEVuYWJsZWQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0T3B0aW9ucztcclxuICAgIGNvbnN0IGlkeCA9IGxpc3QuZmluZEluZGV4KChvKSA9PiAhby5kaXNhYmxlZCk7XHJcbiAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaWR4ID49IDAgPyBpZHggOiAwO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZpcnN0RW5hYmxlZEluZGV4KCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0T3B0aW9ucztcclxuICAgIGNvbnN0IGkgPSBsaXN0LmZpbmRJbmRleCgobykgPT4gIW8uZGlzYWJsZWQpO1xyXG4gICAgcmV0dXJuIGkgPj0gMCA/IGkgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGxhc3RFbmFibGVkSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RPcHRpb25zO1xyXG4gICAgZm9yIChsZXQgaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgaWYgKCFsaXN0W2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHN0ZXBBY3RpdmUoZGVsdGE6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgaSA9IHRoaXMuYWN0aXZlSW5kZXg7XHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0T3B0aW9ucztcclxuICAgIGNvbnN0IG4gPSBsaXN0Lmxlbmd0aDtcclxuICAgIGlmIChuID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgc3RlcCA9IDA7IHN0ZXAgPCBuOyBzdGVwKyspIHtcclxuICAgICAgaSA9IChpICsgZGVsdGEgKyBuKSAlIG47XHJcbiAgICAgIGlmICghbGlzdFtpXS5kaXNhYmxlZCkge1xyXG4gICAgICAgIHJldHVybiBpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJbmRleDtcclxuICB9XHJcbn1cclxuIl19
|