structra-ui 0.1.3 → 0.1.5
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/README.md +59 -6
- package/app/_utils/date-pt-br.utils.d.ts +24 -0
- package/app/_utils/decimal-br.utils.d.ts +52 -0
- package/app/_utils/estados-br.data.d.ts +10 -0
- package/app/_utils/integer-br.utils.d.ts +17 -0
- package/app/_utils/integer-value.utils.d.ts +5 -0
- package/app/_utils/scroll/body-scroll-lock.util.d.ts +22 -0
- package/app/app-shell/_models/breadcrumb-item.model.d.ts +13 -0
- package/app/app-shell/app-shell-sidebar-template.directive.d.ts +19 -0
- package/app/app-shell/app-shell.component.d.ts +41 -0
- package/app/app-shell/breadcrumb/breadcrumb.component.d.ts +10 -0
- package/app/app-shell/index.d.ts +19 -0
- package/app/app-shell/sidebar/app-sidebar-toolbar.directive.d.ts +14 -0
- package/app/app-shell/sidebar/shell-sidebar-toggle.component.d.ts +19 -0
- package/app/app-shell/sidebar/sidebar.component.d.ts +36 -0
- package/app/app-shell/sidebar-reveal.constants.d.ts +8 -0
- package/app/app-shell/topbar/topbar.component.d.ts +8 -0
- package/app/app-shell/user-menu/user-menu.component.d.ts +25 -0
- package/app/buttons/base-button/base-button.component.d.ts +43 -0
- package/app/buttons/index.d.ts +1 -0
- package/app/data-display/_models/card-item-view.model.d.ts +8 -0
- package/app/data-display/_models/data-display.models.d.ts +11 -0
- package/app/data-display/_models/data-grid-column.model.d.ts +13 -0
- package/app/data-display/_models/index.d.ts +2 -0
- package/app/data-display/adaptive-data-view/adaptive-data-view.component.d.ts +53 -0
- package/app/data-display/card-list/card-list.component.d.ts +70 -0
- package/app/data-display/dashboard-section/dashboard-section.component.d.ts +12 -0
- package/app/data-display/data-card/data-card.component.d.ts +16 -0
- package/app/data-display/data-grid/data-grid-actions-cell-renderer.component.d.ts +21 -0
- package/app/data-display/data-grid/data-grid.component.d.ts +76 -0
- package/app/data-display/data-list/data-list.component.d.ts +18 -0
- package/app/data-display/data-toolbar/data-toolbar.component.d.ts +6 -0
- package/app/data-display/details-field/details-field.component.d.ts +10 -0
- package/app/data-display/details-view/details-view.component.d.ts +26 -0
- package/app/data-display/empty-state/empty-state-overlay.util.d.ts +5 -0
- package/app/data-display/empty-state/empty-state.component.d.ts +13 -0
- package/app/data-display/index.d.ts +20 -0
- package/app/data-display/list-item/list-item.component.d.ts +22 -0
- package/app/data-display/stat-card/stat-card.component.d.ts +23 -0
- package/app/data-display/status-badge/status-badge.component.d.ts +17 -0
- package/app/data-display/table-empty-state/table-empty-state.component.d.ts +14 -0
- package/app/data-display/table-toolbar/table-toolbar.component.d.ts +11 -0
- package/app/dialogs/_models/lib-dialog-size.model.d.ts +6 -0
- package/app/dialogs/_utils/lib-dialog-panel-classes.d.ts +3 -0
- package/app/dialogs/app-dialog/app-dialog.component.d.ts +52 -0
- package/app/dialogs/app-dialog/dialog-footer.directive.d.ts +6 -0
- package/app/dialogs/confirm-dialog/confirm-dialog-data.model.d.ts +13 -0
- package/app/dialogs/confirm-dialog/confirm-dialog.component.d.ts +20 -0
- package/app/dialogs/confirm-dialog/confirm-dialog.service.d.ts +17 -0
- package/app/dialogs/index.d.ts +13 -0
- package/app/dialogs/loading-dialog/loading-dialog-data.model.d.ts +7 -0
- package/app/dialogs/loading-dialog/loading-dialog.component.d.ts +9 -0
- package/app/dialogs/loading-dialog/loading-dialog.service.d.ts +15 -0
- package/app/dialogs/toast/toast-host.component.d.ts +13 -0
- package/app/dialogs/toast/toast.models.d.ts +26 -0
- package/app/dialogs/toast/toast.service.d.ts +17 -0
- package/app/fields/checkbox-fields/_base/boolean-field.directive.d.ts +42 -0
- package/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.d.ts +8 -0
- package/app/fields/checkbox-fields/index.d.ts +3 -0
- package/app/fields/checkbox-fields/switch-field/switch-field.component.d.ts +8 -0
- package/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.d.ts +62 -0
- package/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.d.ts +40 -0
- package/app/fields/dropdown-fields/_base/dropdown-option-field.base.d.ts +47 -0
- package/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.d.ts +18 -0
- package/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.d.ts +13 -0
- package/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.d.ts +7 -0
- package/app/fields/dropdown-fields/_models/index.d.ts +4 -0
- package/app/fields/dropdown-fields/_models/select-option.model.d.ts +5 -0
- package/app/fields/dropdown-fields/_models/select-pagination.model.d.ts +6 -0
- package/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.d.ts +84 -0
- package/app/fields/dropdown-fields/index.d.ts +7 -0
- package/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.d.ts +49 -0
- package/app/fields/dropdown-fields/select-field/select-field.component.d.ts +54 -0
- package/app/fields/input-fields/_base/base-field.component.d.ts +60 -0
- package/app/fields/input-fields/_base/base-field.directive.d.ts +102 -0
- package/app/fields/input-fields/_base/masked-text-field.base.d.ts +34 -0
- package/app/fields/input-fields/_base/ng-control-field.directive.d.ts +43 -0
- package/app/fields/input-fields/_models/field-common-inputs.model.d.ts +49 -0
- package/app/fields/input-fields/_models/index.d.ts +1 -0
- package/app/fields/input-fields/_utils/mask-complete.validators.d.ts +18 -0
- package/app/fields/input-fields/_utils/mask-format.utils.d.ts +13 -0
- package/app/fields/input-fields/cep-field/cep-field.component.d.ts +12 -0
- package/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.d.ts +20 -0
- package/app/fields/input-fields/date-field/date-field.component.d.ts +30 -0
- package/app/fields/input-fields/decimal-field/decimal-field.component.d.ts +17 -0
- package/app/fields/input-fields/index.d.ts +22 -0
- package/app/fields/input-fields/input-mask-field/input-mask-field.component.d.ts +16 -0
- package/app/fields/input-fields/integer-field/integer-field.component.d.ts +17 -0
- package/app/fields/input-fields/password-field/password-field.component.d.ts +30 -0
- package/app/fields/input-fields/phone-field/phone-field.component.d.ts +22 -0
- package/app/fields/input-fields/text-field/text-field.component.d.ts +16 -0
- package/app/fields/input-fields/textarea-field/textarea-field.component.d.ts +31 -0
- package/app/form-layout/_models/form-layout.model.d.ts +41 -0
- package/app/form-layout/_models/form-tabs.model.d.ts +1 -0
- package/app/form-layout/_models/index.d.ts +3 -0
- package/app/form-layout/_models/validation-summary.model.d.ts +8 -0
- package/app/form-layout/form-actions/form-actions.component.d.ts +21 -0
- package/app/form-layout/form-col/form-col.component.d.ts +25 -0
- package/app/form-layout/form-group/form-group.component.d.ts +125 -0
- package/app/form-layout/form-group/form-path.utils.d.ts +16 -0
- package/app/form-layout/form-group/form-root-invalid-ui-refresh.util.d.ts +8 -0
- package/app/form-layout/form-row/form-row.component.d.ts +14 -0
- package/app/form-layout/form-section/form-section.component.d.ts +13 -0
- package/app/form-layout/form-tab/form-tab.component.d.ts +32 -0
- package/app/form-layout/form-tabs/form-tabs.component.d.ts +44 -0
- package/app/form-layout/index.d.ts +14 -0
- package/app/form-layout/layout-stack/layout-stack.component.d.ts +25 -0
- package/app/form-layout/validation-summary/validation-summary.component.d.ts +111 -0
- package/app/loading/skeleton-loading/index.d.ts +6 -0
- package/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.d.ts +15 -0
- package/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.d.ts +10 -0
- package/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.d.ts +21 -0
- package/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.d.ts +17 -0
- package/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.d.ts +16 -0
- package/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.d.ts +17 -0
- package/app/menus/_models/drawer-side.model.d.ts +6 -0
- package/app/menus/_models/drawer-size.model.d.ts +6 -0
- package/app/menus/_models/menu-dropdown-placement.model.d.ts +10 -0
- package/app/menus/_models/menu-item.model.d.ts +47 -0
- package/app/menus/_utils/menu-connected-positions.util.d.ts +4 -0
- package/app/menus/_utils/menu-rows.util.d.ts +22 -0
- package/app/menus/_utils/submenu-connected-positions.util.d.ts +5 -0
- package/app/menus/action-menu/action-menu.component.d.ts +24 -0
- package/app/menus/context-menu/context-menu.component.d.ts +32 -0
- package/app/menus/drawer/drawer.component.d.ts +37 -0
- package/app/menus/dropdown-menu/dropdown-menu.component.d.ts +33 -0
- package/app/menus/index.d.ts +11 -0
- package/app/menus/menu-divider/menu-divider.component.d.ts +8 -0
- package/app/menus/menu-group/menu-group.component.d.ts +13 -0
- package/app/menus/menu-list/menu-list.component.d.ts +77 -0
- package/app/overlay/_models/overlay-placement.model.d.ts +9 -0
- package/app/overlay/_utils/anchored-overlay-positions.util.d.ts +9 -0
- package/app/overlay/anchored-overlay/anchored-overlay.component.d.ts +51 -0
- package/app/overlay/index.d.ts +20 -0
- package/app/overlay/popover/popover-body-template.directive.d.ts +7 -0
- package/app/overlay/popover/popover-footer-template.directive.d.ts +7 -0
- package/app/overlay/popover/popover-trigger.directive.d.ts +6 -0
- package/app/overlay/popover/popover.component.d.ts +38 -0
- package/app/overlay/tooltip/tooltip-panel-template.directive.d.ts +10 -0
- package/app/overlay/tooltip/tooltip.component.d.ts +40 -0
- package/app/theme/app-theme.service.d.ts +25 -0
- package/app/theme/index.d.ts +1 -0
- package/esm2022/app/_utils/date-pt-br.utils.mjs +82 -0
- package/esm2022/app/_utils/decimal-br.utils.mjs +154 -0
- package/esm2022/app/_utils/estados-br.data.mjs +37 -0
- package/esm2022/app/_utils/integer-br.utils.mjs +48 -0
- package/esm2022/app/_utils/integer-value.utils.mjs +19 -0
- package/esm2022/app/_utils/scroll/body-scroll-lock.util.mjs +43 -0
- package/esm2022/app/app-shell/_models/breadcrumb-item.model.mjs +2 -0
- package/esm2022/app/app-shell/app-shell-sidebar-template.directive.mjs +29 -0
- package/esm2022/app/app-shell/app-shell.component.mjs +105 -0
- package/esm2022/app/app-shell/breadcrumb/breadcrumb.component.mjs +18 -0
- package/esm2022/app/app-shell/index.mjs +19 -0
- package/esm2022/app/app-shell/sidebar/app-sidebar-toolbar.directive.mjs +23 -0
- package/esm2022/app/app-shell/sidebar/shell-sidebar-toggle.component.mjs +36 -0
- package/esm2022/app/app-shell/sidebar/sidebar.component.mjs +84 -0
- package/esm2022/app/app-shell/sidebar-reveal.constants.mjs +9 -0
- package/esm2022/app/app-shell/topbar/topbar.component.mjs +14 -0
- package/esm2022/app/app-shell/user-menu/user-menu.component.mjs +52 -0
- package/esm2022/app/buttons/base-button/base-button.component.mjs +97 -0
- package/esm2022/app/buttons/index.mjs +2 -0
- package/esm2022/app/data-display/_models/card-item-view.model.mjs +2 -0
- package/esm2022/app/data-display/_models/data-display.models.mjs +2 -0
- package/esm2022/app/data-display/_models/data-grid-column.model.mjs +2 -0
- package/esm2022/app/data-display/_models/index.mjs +2 -0
- package/esm2022/app/data-display/adaptive-data-view/adaptive-data-view.component.mjs +124 -0
- package/esm2022/app/data-display/card-list/card-list.component.mjs +208 -0
- package/esm2022/app/data-display/dashboard-section/dashboard-section.component.mjs +25 -0
- package/esm2022/app/data-display/data-card/data-card.component.mjs +40 -0
- package/esm2022/app/data-display/data-grid/data-grid-actions-cell-renderer.component.mjs +41 -0
- package/esm2022/app/data-display/data-grid/data-grid.component.mjs +253 -0
- package/esm2022/app/data-display/data-list/data-list.component.mjs +40 -0
- package/esm2022/app/data-display/data-toolbar/data-toolbar.component.mjs +12 -0
- package/esm2022/app/data-display/details-field/details-field.component.mjs +21 -0
- package/esm2022/app/data-display/details-view/details-view.component.mjs +44 -0
- package/esm2022/app/data-display/empty-state/empty-state-overlay.util.mjs +19 -0
- package/esm2022/app/data-display/empty-state/empty-state.component.mjs +30 -0
- package/esm2022/app/data-display/index.mjs +19 -0
- package/esm2022/app/data-display/list-item/list-item.component.mjs +59 -0
- package/esm2022/app/data-display/stat-card/stat-card.component.mjs +59 -0
- package/esm2022/app/data-display/status-badge/status-badge.component.mjs +41 -0
- package/esm2022/app/data-display/table-empty-state/table-empty-state.component.mjs +31 -0
- package/esm2022/app/data-display/table-toolbar/table-toolbar.component.mjs +22 -0
- package/esm2022/app/dialogs/_models/lib-dialog-size.model.mjs +8 -0
- package/esm2022/app/dialogs/_utils/lib-dialog-panel-classes.mjs +6 -0
- package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +164 -0
- package/esm2022/app/dialogs/app-dialog/dialog-footer.directive.mjs +15 -0
- package/esm2022/app/dialogs/confirm-dialog/confirm-dialog-data.model.mjs +2 -0
- package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.component.mjs +36 -0
- package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.service.mjs +45 -0
- package/esm2022/app/dialogs/index.mjs +11 -0
- package/esm2022/app/dialogs/loading-dialog/loading-dialog-data.model.mjs +2 -0
- package/esm2022/app/dialogs/loading-dialog/loading-dialog.component.mjs +19 -0
- package/esm2022/app/dialogs/loading-dialog/loading-dialog.service.mjs +36 -0
- package/esm2022/app/dialogs/toast/toast-host.component.mjs +65 -0
- package/esm2022/app/dialogs/toast/toast.models.mjs +2 -0
- package/esm2022/app/dialogs/toast/toast.service.mjs +76 -0
- package/esm2022/app/fields/checkbox-fields/_base/boolean-field.directive.mjs +158 -0
- package/esm2022/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.mjs +36 -0
- package/esm2022/app/fields/checkbox-fields/index.mjs +4 -0
- package/esm2022/app/fields/checkbox-fields/switch-field/switch-field.component.mjs +35 -0
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.mjs +117 -0
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.mjs +152 -0
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-option-field.base.mjs +149 -0
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.mjs +32 -0
- package/esm2022/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/_models/index.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/_models/select-option.model.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/_models/select-pagination.model.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.mjs +520 -0
- package/esm2022/app/fields/dropdown-fields/index.mjs +7 -0
- package/esm2022/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.mjs +379 -0
- package/esm2022/app/fields/dropdown-fields/select-field/select-field.component.mjs +359 -0
- package/esm2022/app/fields/input-fields/_base/base-field.component.mjs +151 -0
- package/esm2022/app/fields/input-fields/_base/base-field.directive.mjs +224 -0
- package/esm2022/app/fields/input-fields/_base/masked-text-field.base.mjs +135 -0
- package/esm2022/app/fields/input-fields/_base/ng-control-field.directive.mjs +127 -0
- package/esm2022/app/fields/input-fields/_models/field-common-inputs.model.mjs +2 -0
- package/esm2022/app/fields/input-fields/_models/index.mjs +2 -0
- package/esm2022/app/fields/input-fields/_utils/mask-complete.validators.mjs +61 -0
- package/esm2022/app/fields/input-fields/_utils/mask-format.utils.mjs +40 -0
- package/esm2022/app/fields/input-fields/cep-field/cep-field.component.mjs +48 -0
- package/esm2022/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.mjs +61 -0
- package/esm2022/app/fields/input-fields/date-field/date-field.component.mjs +147 -0
- package/esm2022/app/fields/input-fields/decimal-field/decimal-field.component.mjs +166 -0
- package/esm2022/app/fields/input-fields/index.mjs +22 -0
- package/esm2022/app/fields/input-fields/input-mask-field/input-mask-field.component.mjs +52 -0
- package/esm2022/app/fields/input-fields/integer-field/integer-field.component.mjs +143 -0
- package/esm2022/app/fields/input-fields/password-field/password-field.component.mjs +130 -0
- package/esm2022/app/fields/input-fields/phone-field/phone-field.component.mjs +66 -0
- package/esm2022/app/fields/input-fields/text-field/text-field.component.mjs +90 -0
- package/esm2022/app/fields/input-fields/textarea-field/textarea-field.component.mjs +125 -0
- package/esm2022/app/form-layout/_models/form-layout.model.mjs +48 -0
- package/esm2022/app/form-layout/_models/form-tabs.model.mjs +2 -0
- package/esm2022/app/form-layout/_models/index.mjs +2 -0
- package/esm2022/app/form-layout/_models/validation-summary.model.mjs +2 -0
- package/esm2022/app/form-layout/form-actions/form-actions.component.mjs +55 -0
- package/esm2022/app/form-layout/form-col/form-col.component.mjs +76 -0
- package/esm2022/app/form-layout/form-group/form-group.component.mjs +358 -0
- package/esm2022/app/form-layout/form-group/form-path.utils.mjs +65 -0
- package/esm2022/app/form-layout/form-group/form-root-invalid-ui-refresh.util.mjs +54 -0
- package/esm2022/app/form-layout/form-row/form-row.component.mjs +49 -0
- package/esm2022/app/form-layout/form-section/form-section.component.mjs +43 -0
- package/esm2022/app/form-layout/form-tab/form-tab.component.mjs +67 -0
- package/esm2022/app/form-layout/form-tabs/form-tabs.component.mjs +126 -0
- package/esm2022/app/form-layout/index.mjs +14 -0
- package/esm2022/app/form-layout/layout-stack/layout-stack.component.mjs +56 -0
- package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +392 -0
- package/esm2022/app/loading/skeleton-loading/index.mjs +7 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.mjs +43 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.mjs +23 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.mjs +34 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.mjs +38 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.mjs +37 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.mjs +45 -0
- package/esm2022/app/menus/_models/drawer-side.model.mjs +8 -0
- package/esm2022/app/menus/_models/drawer-size.model.mjs +8 -0
- package/esm2022/app/menus/_models/menu-dropdown-placement.model.mjs +12 -0
- package/esm2022/app/menus/_models/menu-item.model.mjs +6 -0
- package/esm2022/app/menus/_utils/menu-connected-positions.util.mjs +41 -0
- package/esm2022/app/menus/_utils/menu-rows.util.mjs +39 -0
- package/esm2022/app/menus/_utils/submenu-connected-positions.util.mjs +23 -0
- package/esm2022/app/menus/action-menu/action-menu.component.mjs +48 -0
- package/esm2022/app/menus/context-menu/context-menu.component.mjs +112 -0
- package/esm2022/app/menus/drawer/drawer.component.mjs +140 -0
- package/esm2022/app/menus/dropdown-menu/dropdown-menu.component.mjs +99 -0
- package/esm2022/app/menus/index.mjs +11 -0
- package/esm2022/app/menus/menu-divider/menu-divider.component.mjs +14 -0
- package/esm2022/app/menus/menu-group/menu-group.component.mjs +32 -0
- package/esm2022/app/menus/menu-list/menu-list.component.mjs +399 -0
- package/esm2022/app/overlay/_models/overlay-placement.model.mjs +11 -0
- package/esm2022/app/overlay/_utils/anchored-overlay-positions.util.mjs +84 -0
- package/esm2022/app/overlay/anchored-overlay/anchored-overlay.component.mjs +121 -0
- package/esm2022/app/overlay/index.mjs +21 -0
- package/esm2022/app/overlay/popover/popover-body-template.directive.mjs +17 -0
- package/esm2022/app/overlay/popover/popover-footer-template.directive.mjs +17 -0
- package/esm2022/app/overlay/popover/popover-trigger.directive.mjs +15 -0
- package/esm2022/app/overlay/popover/popover.component.mjs +93 -0
- package/esm2022/app/overlay/tooltip/tooltip-panel-template.directive.mjs +20 -0
- package/esm2022/app/overlay/tooltip/tooltip.component.mjs +118 -0
- package/esm2022/app/theme/app-theme.service.mjs +49 -0
- package/esm2022/app/theme/index.mjs +2 -0
- package/esm2022/structra-public-api.mjs +18 -0
- package/esm2022/structra-ui.mjs +2 -2
- package/esm2022/structra-version.mjs +3 -0
- package/fesm2022/structra-ui.mjs +8896 -4
- package/fesm2022/structra-ui.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +7 -2
- package/structra-public-api.d.ts +17 -0
- package/structra-version.d.ts +2 -0
- package/esm2022/lib/version.mjs +0 -3
- package/esm2022/public-api.mjs +0 -5
- package/lib/version.d.ts +0 -2
- package/public-api.d.ts +0 -1
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, booleanAttribute, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Linha base para listas (`app-data-list`): texto, área de estado e ações projetadas.
|
|
5
|
+
* Estrutura preparada para selecção futura (`selectable` apenas aplica classe visual).
|
|
6
|
+
*/
|
|
7
|
+
export class ListItemComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.subtitle = '';
|
|
10
|
+
this.clickable = false;
|
|
11
|
+
/**
|
|
12
|
+
* Reserva visual para selecção futura (sem lógica de modelo).
|
|
13
|
+
*/
|
|
14
|
+
this.selectable = false;
|
|
15
|
+
this.itemActivate = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
onKeydown(ev) {
|
|
18
|
+
if (!this.clickable) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (ev.key === 'Enter' || ev.key === ' ') {
|
|
22
|
+
ev.preventDefault();
|
|
23
|
+
this.itemActivate.emit();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
onClick(ev) {
|
|
27
|
+
if (!this.clickable) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const el = ev.target;
|
|
31
|
+
if (el?.closest('.list-item__actions')) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.itemActivate.emit();
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ListItemComponent, isStandalone: true, selector: "app-list-item", inputs: { title: "title", subtitle: "subtitle", clickable: ["clickable", "clickable", booleanAttribute], selectable: ["selectable", "selectable", booleanAttribute] }, outputs: { itemActivate: "itemActivate" }, host: { listeners: { "keydown": "onKeydown($event)" } }, ngImport: i0, template: "<div\r\n class=\"list-item\"\r\n [class.list-item--clickable]=\"clickable\"\r\n [class.list-item--selectable]=\"selectable\"\r\n role=\"listitem\"\r\n [attr.tabindex]=\"clickable ? 0 : null\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <div class=\"list-item__main\">\r\n <h4 class=\"list-item__title\">{{ title }}</h4>\r\n @if (subtitle.trim()) {\r\n <p class=\"list-item__subtitle\">{{ subtitle }}</p>\r\n }\r\n <div class=\"list-item__extra\">\r\n <ng-content />\r\n </div>\r\n </div>\r\n <div class=\"list-item__status\">\r\n <ng-content select=\"[list-item-status]\" />\r\n </div>\r\n <div class=\"list-item__actions\">\r\n <ng-content select=\"[list-item-actions]\" />\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0}.list-item{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem .75rem;width:100%;box-sizing:border-box;padding:.65rem .75rem;border-radius:8px;border:1px solid transparent;background:transparent;text-align:left;transition:background .12s ease,border-color .12s ease}.list-item:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .06));border-color:var(--app-color-border-subtle, rgba(26, 47, 69, .08))}.list-item--clickable{cursor:pointer}.list-item--clickable:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.list-item--selectable{border-style:dashed;border-color:var(--app-color-border-subtle, rgba(26, 47, 69, .06))}.list-item__main{flex:1 1 12rem;min-width:0}.list-item__title{margin:0;font-size:.92rem;font-weight:600;line-height:1.35;color:var(--app-color-text-primary, #1a2f45);word-break:break-word}.list-item__subtitle{margin:.15rem 0 0;font-size:.82rem;line-height:1.4;color:var(--app-color-text-muted, #6b8299)}.list-item__extra{margin-top:.35rem;min-width:0;font-size:.84rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3)}.list-item__status{flex:0 0 auto;display:flex;align-items:center;min-height:1.75rem}.list-item__actions{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;margin-left:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ListItemComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ selector: 'app-list-item', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"list-item\"\r\n [class.list-item--clickable]=\"clickable\"\r\n [class.list-item--selectable]=\"selectable\"\r\n role=\"listitem\"\r\n [attr.tabindex]=\"clickable ? 0 : null\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <div class=\"list-item__main\">\r\n <h4 class=\"list-item__title\">{{ title }}</h4>\r\n @if (subtitle.trim()) {\r\n <p class=\"list-item__subtitle\">{{ subtitle }}</p>\r\n }\r\n <div class=\"list-item__extra\">\r\n <ng-content />\r\n </div>\r\n </div>\r\n <div class=\"list-item__status\">\r\n <ng-content select=\"[list-item-status]\" />\r\n </div>\r\n <div class=\"list-item__actions\">\r\n <ng-content select=\"[list-item-actions]\" />\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0}.list-item{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem .75rem;width:100%;box-sizing:border-box;padding:.65rem .75rem;border-radius:8px;border:1px solid transparent;background:transparent;text-align:left;transition:background .12s ease,border-color .12s ease}.list-item:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .06));border-color:var(--app-color-border-subtle, rgba(26, 47, 69, .08))}.list-item--clickable{cursor:pointer}.list-item--clickable:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.list-item--selectable{border-style:dashed;border-color:var(--app-color-border-subtle, rgba(26, 47, 69, .06))}.list-item__main{flex:1 1 12rem;min-width:0}.list-item__title{margin:0;font-size:.92rem;font-weight:600;line-height:1.35;color:var(--app-color-text-primary, #1a2f45);word-break:break-word}.list-item__subtitle{margin:.15rem 0 0;font-size:.82rem;line-height:1.4;color:var(--app-color-text-muted, #6b8299)}.list-item__extra{margin-top:.35rem;min-width:0;font-size:.84rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3)}.list-item__status{flex:0 0 auto;display:flex;align-items:center;min-height:1.75rem}.list-item__actions{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;margin-left:auto}\n"] }]
|
|
42
|
+
}], propDecorators: { title: [{
|
|
43
|
+
type: Input,
|
|
44
|
+
args: [{ required: true }]
|
|
45
|
+
}], subtitle: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], clickable: [{
|
|
48
|
+
type: Input,
|
|
49
|
+
args: [{ transform: booleanAttribute }]
|
|
50
|
+
}], selectable: [{
|
|
51
|
+
type: Input,
|
|
52
|
+
args: [{ transform: booleanAttribute }]
|
|
53
|
+
}], itemActivate: [{
|
|
54
|
+
type: Output
|
|
55
|
+
}], onKeydown: [{
|
|
56
|
+
type: HostListener,
|
|
57
|
+
args: ['keydown', ['$event']]
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1kaXNwbGF5L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7O0dBR0c7QUFRSCxNQUFNLE9BQU8saUJBQWlCO0lBUDlCO1FBVVcsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVpQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTFEOztXQUVHO1FBQ3FDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFeEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBdUI1RDtJQXBCQyxTQUFTLENBQUMsRUFBaUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN6QyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFjO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBNEIsQ0FBQztRQUMzQyxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQWxDVSxpQkFBaUI7bUdBQWpCLGlCQUFpQix1SUFLUixnQkFBZ0IsNENBS2hCLGdCQUFnQixpSUMvQnRDLHF1QkF3QkE7OzRGREhhLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQUdwQixLQUFLO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaEIsUUFBUTtzQkFBaEIsS0FBSztnQkFFa0MsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLRSxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVuQixZQUFZO3NCQUE5QixNQUFNO2dCQUdQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBib29sZWFuQXR0cmlidXRlLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIExpbmhhIGJhc2UgcGFyYSBsaXN0YXMgKGBhcHAtZGF0YS1saXN0YCk6IHRleHRvLCDDoXJlYSBkZSBlc3RhZG8gZSBhw6fDtWVzIHByb2pldGFkYXMuXHJcbiAqIEVzdHJ1dHVyYSBwcmVwYXJhZGEgcGFyYSBzZWxlY8Onw6NvIGZ1dHVyYSAoYHNlbGVjdGFibGVgIGFwZW5hcyBhcGxpY2EgY2xhc3NlIHZpc3VhbCkuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1saXN0LWl0ZW0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0SXRlbUNvbXBvbmVudCB7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGl0bGUhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHN1YnRpdGxlID0gJyc7XHJcblxyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjbGlja2FibGUgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVzZXJ2YSB2aXN1YWwgcGFyYSBzZWxlY8Onw6NvIGZ1dHVyYSAoc2VtIGzDs2dpY2EgZGUgbW9kZWxvKS5cclxuICAgKi9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2VsZWN0YWJsZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXRlbUFjdGl2YXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleWRvd24oZXY6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jbGlja2FibGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2LmtleSA9PT0gJ0VudGVyJyB8fCBldi5rZXkgPT09ICcgJykge1xyXG4gICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLml0ZW1BY3RpdmF0ZS5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrKGV2OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2xpY2thYmxlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGVsID0gZXYudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcclxuICAgIGlmIChlbD8uY2xvc2VzdCgnLmxpc3QtaXRlbV9fYWN0aW9ucycpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXRlbUFjdGl2YXRlLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwibGlzdC1pdGVtXCJcclxuICBbY2xhc3MubGlzdC1pdGVtLS1jbGlja2FibGVdPVwiY2xpY2thYmxlXCJcclxuICBbY2xhc3MubGlzdC1pdGVtLS1zZWxlY3RhYmxlXT1cInNlbGVjdGFibGVcIlxyXG4gIHJvbGU9XCJsaXN0aXRlbVwiXHJcbiAgW2F0dHIudGFiaW5kZXhdPVwiY2xpY2thYmxlID8gMCA6IG51bGxcIlxyXG4gIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbV9fbWFpblwiPlxyXG4gICAgPGg0IGNsYXNzPVwibGlzdC1pdGVtX190aXRsZVwiPnt7IHRpdGxlIH19PC9oND5cclxuICAgIEBpZiAoc3VidGl0bGUudHJpbSgpKSB7XHJcbiAgICAgIDxwIGNsYXNzPVwibGlzdC1pdGVtX19zdWJ0aXRsZVwiPnt7IHN1YnRpdGxlIH19PC9wPlxyXG4gICAgfVxyXG4gICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbV9fZXh0cmFcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW1fX3N0YXR1c1wiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xpc3QtaXRlbS1zdGF0dXNdXCIgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtX19hY3Rpb25zXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGlzdC1pdGVtLWFjdGlvbnNdXCIgLz5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, booleanAttribute, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Cartão de métrica (KPI) com a **mesma superfície** que `app-data-card` (mixin SCSS `data-card-shell`).
|
|
5
|
+
* Não usa o selector `app-data-card` (esse componente é para linhas de lista com ações).
|
|
6
|
+
*/
|
|
7
|
+
export class StatCardComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.description = '';
|
|
10
|
+
this.icon = '';
|
|
11
|
+
/** Texto curto (ex.: +12% ou −3%). */
|
|
12
|
+
this.delta = '';
|
|
13
|
+
this.deltaTone = 'neutral';
|
|
14
|
+
this.clickable = false;
|
|
15
|
+
this.cardActivate = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
onActivate(ev) {
|
|
18
|
+
if (!this.clickable) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
ev.preventDefault();
|
|
22
|
+
this.cardActivate.emit();
|
|
23
|
+
}
|
|
24
|
+
onKeydown(ev) {
|
|
25
|
+
if (!this.clickable) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (ev.key === 'Enter' || ev.key === ' ') {
|
|
29
|
+
ev.preventDefault();
|
|
30
|
+
this.cardActivate.emit();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StatCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: StatCardComponent, isStandalone: true, selector: "app-stat-card", inputs: { title: "title", value: "value", description: "description", icon: "icon", delta: "delta", deltaTone: "deltaTone", clickable: ["clickable", "clickable", booleanAttribute] }, outputs: { cardActivate: "cardActivate" }, ngImport: i0, template: "<article\r\n class=\"stat-card\"\r\n [class.stat-card--clickable]=\"clickable\"\r\n [attr.role]=\"clickable ? 'button' : null\"\r\n [attr.tabindex]=\"clickable ? 0 : null\"\r\n (click)=\"onActivate($event)\"\r\n (keydown)=\"onKeydown($event)\"\r\n>\r\n <div class=\"stat-card__header\">\r\n @if (icon.trim()) {\r\n <span class=\"stat-card__icon\" aria-hidden=\"true\">\r\n <i [attr.class]=\"icon\" aria-hidden=\"true\"></i>\r\n </span>\r\n }\r\n <h3 class=\"stat-card__title\">{{ title }}</h3>\r\n </div>\r\n <p class=\"stat-card__value\">{{ value }}</p>\r\n @if (description.trim()) {\r\n <p class=\"stat-card__description\">{{ description }}</p>\r\n }\r\n @if (delta.trim()) {\r\n <p\r\n class=\"stat-card__delta\"\r\n [class.stat-card__delta--positive]=\"deltaTone === 'positive'\"\r\n [class.stat-card__delta--negative]=\"deltaTone === 'negative'\"\r\n [class.stat-card__delta--neutral]=\"deltaTone === 'neutral'\"\r\n >\r\n <span class=\"stat-card__delta-text\">{{ delta }}</span>\r\n </p>\r\n }\r\n</article>\r\n", styles: [":host{display:block;min-width:0;height:100%}.stat-card{box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1));background:var(--app-color-surface, #fff);padding:1rem 1.05rem;transition:border-color .15s ease,box-shadow .15s ease;height:100%}.stat-card--clickable{cursor:pointer}.stat-card--clickable:hover{border-color:var(--app-color-selected-border, rgba(43, 127, 217, .28));box-shadow:0 1px 0 var(--app-color-border-subtle, rgba(26, 47, 69, .04))}.stat-card--clickable:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.stat-card__header{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.45rem;min-width:0}.stat-card__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:8px;font-size:.95rem;color:var(--app-color-primary, #2b7fd9);background:var(--app-color-primary-muted, rgba(43, 127, 217, .14));border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}.stat-card__title{margin:0;flex:1 1 auto;min-width:0;font-size:.82rem;font-weight:600;line-height:1.35;color:var(--app-color-text-muted, #6b8299);text-transform:uppercase;letter-spacing:.03em}.stat-card__value{margin:0 0 .35rem;font-size:1.45rem;font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--app-color-text-primary, #1a2f45);word-break:break-word}.stat-card__description{margin:0 0 .35rem;font-size:.82rem;line-height:1.4;color:var(--app-color-text-secondary, #5a7fa3)}.stat-card__delta{margin:0;font-size:.8rem;font-weight:600;line-height:1.35}.stat-card__delta--positive{color:var(--app-color-success, #15803d)}.stat-card__delta--negative{color:var(--app-color-error, #b91c1c)}.stat-card__delta--neutral{color:var(--app-color-text-muted, #6b8299)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StatCardComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'app-stat-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<article\r\n class=\"stat-card\"\r\n [class.stat-card--clickable]=\"clickable\"\r\n [attr.role]=\"clickable ? 'button' : null\"\r\n [attr.tabindex]=\"clickable ? 0 : null\"\r\n (click)=\"onActivate($event)\"\r\n (keydown)=\"onKeydown($event)\"\r\n>\r\n <div class=\"stat-card__header\">\r\n @if (icon.trim()) {\r\n <span class=\"stat-card__icon\" aria-hidden=\"true\">\r\n <i [attr.class]=\"icon\" aria-hidden=\"true\"></i>\r\n </span>\r\n }\r\n <h3 class=\"stat-card__title\">{{ title }}</h3>\r\n </div>\r\n <p class=\"stat-card__value\">{{ value }}</p>\r\n @if (description.trim()) {\r\n <p class=\"stat-card__description\">{{ description }}</p>\r\n }\r\n @if (delta.trim()) {\r\n <p\r\n class=\"stat-card__delta\"\r\n [class.stat-card__delta--positive]=\"deltaTone === 'positive'\"\r\n [class.stat-card__delta--negative]=\"deltaTone === 'negative'\"\r\n [class.stat-card__delta--neutral]=\"deltaTone === 'neutral'\"\r\n >\r\n <span class=\"stat-card__delta-text\">{{ delta }}</span>\r\n </p>\r\n }\r\n</article>\r\n", styles: [":host{display:block;min-width:0;height:100%}.stat-card{box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1));background:var(--app-color-surface, #fff);padding:1rem 1.05rem;transition:border-color .15s ease,box-shadow .15s ease;height:100%}.stat-card--clickable{cursor:pointer}.stat-card--clickable:hover{border-color:var(--app-color-selected-border, rgba(43, 127, 217, .28));box-shadow:0 1px 0 var(--app-color-border-subtle, rgba(26, 47, 69, .04))}.stat-card--clickable:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.stat-card__header{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.45rem;min-width:0}.stat-card__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:8px;font-size:.95rem;color:var(--app-color-primary, #2b7fd9);background:var(--app-color-primary-muted, rgba(43, 127, 217, .14));border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}.stat-card__title{margin:0;flex:1 1 auto;min-width:0;font-size:.82rem;font-weight:600;line-height:1.35;color:var(--app-color-text-muted, #6b8299);text-transform:uppercase;letter-spacing:.03em}.stat-card__value{margin:0 0 .35rem;font-size:1.45rem;font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--app-color-text-primary, #1a2f45);word-break:break-word}.stat-card__description{margin:0 0 .35rem;font-size:.82rem;line-height:1.4;color:var(--app-color-text-secondary, #5a7fa3)}.stat-card__delta{margin:0;font-size:.8rem;font-weight:600;line-height:1.35}.stat-card__delta--positive{color:var(--app-color-success, #15803d)}.stat-card__delta--negative{color:var(--app-color-error, #b91c1c)}.stat-card__delta--neutral{color:var(--app-color-text-muted, #6b8299)}\n"] }]
|
|
39
|
+
}], propDecorators: { title: [{
|
|
40
|
+
type: Input,
|
|
41
|
+
args: [{ required: true }]
|
|
42
|
+
}], value: [{
|
|
43
|
+
type: Input,
|
|
44
|
+
args: [{ required: true }]
|
|
45
|
+
}], description: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], icon: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], delta: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], deltaTone: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], clickable: [{
|
|
54
|
+
type: Input,
|
|
55
|
+
args: [{ transform: booleanAttribute }]
|
|
56
|
+
}], cardActivate: [{
|
|
57
|
+
type: Output
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1kaXNwbGF5L3N0YXQtY2FyZC9zdGF0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvc3RhdC1jYXJkL3N0YXQtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7O0FBR3ZCOzs7R0FHRztBQVFILE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFZVyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRW5CLHNDQUFzQztRQUM3QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsY0FBUyxHQUFzQixTQUFTLENBQUM7UUFFVixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXZDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQW1CNUQ7SUFqQkMsVUFBVSxDQUFDLEVBQVM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUNELEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTLENBQUMsRUFBaUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN6QyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzsrR0FsQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsbU5BY1IsZ0JBQWdCLHdFQ25DdEMsd2tDQStCQTs7NEZEVmEsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUVFLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUVoQixXQUFXO3NCQUFuQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFa0MsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFbkIsWUFBWTtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBTdGF0Q2FyZERlbHRhVG9uZSB9IGZyb20gJy4uL19tb2RlbHMvZGF0YS1kaXNwbGF5Lm1vZGVscyc7XHJcblxyXG4vKipcclxuICogQ2FydMOjbyBkZSBtw6l0cmljYSAoS1BJKSBjb20gYSAqKm1lc21hIHN1cGVyZsOtY2llKiogcXVlIGBhcHAtZGF0YS1jYXJkYCAobWl4aW4gU0NTUyBgZGF0YS1jYXJkLXNoZWxsYCkuXHJcbiAqIE7Do28gdXNhIG8gc2VsZWN0b3IgYGFwcC1kYXRhLWNhcmRgIChlc3NlIGNvbXBvbmVudGUgw6kgcGFyYSBsaW5oYXMgZGUgbGlzdGEgY29tIGHDp8O1ZXMpLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc3RhdC1jYXJkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGF0LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdGF0LWNhcmQuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RhdENhcmRDb21wb25lbnQge1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRpdGxlITogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB2YWx1ZSE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb24gPSAnJztcclxuXHJcbiAgQElucHV0KCkgaWNvbiA9ICcnO1xyXG5cclxuICAvKiogVGV4dG8gY3VydG8gKGV4LjogKzEyJSBvdSDiiJIzJSkuICovXHJcbiAgQElucHV0KCkgZGVsdGEgPSAnJztcclxuXHJcbiAgQElucHV0KCkgZGVsdGFUb25lOiBTdGF0Q2FyZERlbHRhVG9uZSA9ICduZXV0cmFsJztcclxuXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsaWNrYWJsZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2FyZEFjdGl2YXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBvbkFjdGl2YXRlKGV2OiBFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNsaWNrYWJsZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5jYXJkQWN0aXZhdGUuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25LZXlkb3duKGV2OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2xpY2thYmxlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChldi5rZXkgPT09ICdFbnRlcicgfHwgZXYua2V5ID09PSAnICcpIHtcclxuICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jYXJkQWN0aXZhdGUuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YXJ0aWNsZVxyXG4gIGNsYXNzPVwic3RhdC1jYXJkXCJcclxuICBbY2xhc3Muc3RhdC1jYXJkLS1jbGlja2FibGVdPVwiY2xpY2thYmxlXCJcclxuICBbYXR0ci5yb2xlXT1cImNsaWNrYWJsZSA/ICdidXR0b24nIDogbnVsbFwiXHJcbiAgW2F0dHIudGFiaW5kZXhdPVwiY2xpY2thYmxlID8gMCA6IG51bGxcIlxyXG4gIChjbGljayk9XCJvbkFjdGl2YXRlKCRldmVudClcIlxyXG4gIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJzdGF0LWNhcmRfX2hlYWRlclwiPlxyXG4gICAgQGlmIChpY29uLnRyaW0oKSkge1xyXG4gICAgICA8c3BhbiBjbGFzcz1cInN0YXQtY2FyZF9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxpIFthdHRyLmNsYXNzXT1cImljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIH1cclxuICAgIDxoMyBjbGFzcz1cInN0YXQtY2FyZF9fdGl0bGVcIj57eyB0aXRsZSB9fTwvaDM+XHJcbiAgPC9kaXY+XHJcbiAgPHAgY2xhc3M9XCJzdGF0LWNhcmRfX3ZhbHVlXCI+e3sgdmFsdWUgfX08L3A+XHJcbiAgQGlmIChkZXNjcmlwdGlvbi50cmltKCkpIHtcclxuICAgIDxwIGNsYXNzPVwic3RhdC1jYXJkX19kZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uIH19PC9wPlxyXG4gIH1cclxuICBAaWYgKGRlbHRhLnRyaW0oKSkge1xyXG4gICAgPHBcclxuICAgICAgY2xhc3M9XCJzdGF0LWNhcmRfX2RlbHRhXCJcclxuICAgICAgW2NsYXNzLnN0YXQtY2FyZF9fZGVsdGEtLXBvc2l0aXZlXT1cImRlbHRhVG9uZSA9PT0gJ3Bvc2l0aXZlJ1wiXHJcbiAgICAgIFtjbGFzcy5zdGF0LWNhcmRfX2RlbHRhLS1uZWdhdGl2ZV09XCJkZWx0YVRvbmUgPT09ICduZWdhdGl2ZSdcIlxyXG4gICAgICBbY2xhc3Muc3RhdC1jYXJkX19kZWx0YS0tbmV1dHJhbF09XCJkZWx0YVRvbmUgPT09ICduZXV0cmFsJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3RhdC1jYXJkX19kZWx0YS10ZXh0XCI+e3sgZGVsdGEgfX08L3NwYW4+XHJcbiAgICA8L3A+XHJcbiAgfVxyXG48L2FydGljbGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, booleanAttribute, } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Etiqueta de estado (Ativo, Pendente, etc.) com fundo suave e cor semântica.
|
|
6
|
+
*/
|
|
7
|
+
export class StatusBadgeComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.variant = 'neutral';
|
|
10
|
+
/** Classes Font Awesome (ex.: `fa-solid fa-check`). */
|
|
11
|
+
this.icon = '';
|
|
12
|
+
this.size = 'md';
|
|
13
|
+
this.bordered = true;
|
|
14
|
+
this.variantClassMap = {
|
|
15
|
+
success: 'status-badge--success',
|
|
16
|
+
error: 'status-badge--error',
|
|
17
|
+
warning: 'status-badge--warning',
|
|
18
|
+
info: 'status-badge--info',
|
|
19
|
+
neutral: 'status-badge--neutral',
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StatusBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: StatusBadgeComponent, isStandalone: true, selector: "app-status-badge", inputs: { label: "label", variant: "variant", icon: "icon", size: "size", bordered: ["bordered", "bordered", booleanAttribute] }, ngImport: i0, template: "<span\r\n class=\"status-badge\"\r\n [ngClass]=\"variantClassMap[variant]\"\r\n [class.status-badge--sm]=\"size === 'sm'\"\r\n [class.status-badge--md]=\"size === 'md'\"\r\n [class.status-badge--bordered]=\"bordered\"\r\n [class.status-badge--no-border]=\"!bordered\"\r\n role=\"status\"\r\n>\r\n @if (icon.trim()) {\r\n <span class=\"status-badge__icon\" aria-hidden=\"true\">\r\n <i [attr.class]=\"icon\" aria-hidden=\"true\"></i>\r\n </span>\r\n }\r\n <span class=\"status-badge__label\">{{ label }}</span>\r\n</span>\r\n", styles: [":host{display:inline-block;max-width:100%;vertical-align:middle}.status-badge{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;box-sizing:border-box;border-radius:6px;font-weight:600;line-height:1.25;border-style:solid;border-width:1px}.status-badge--bordered{border-color:transparent}.status-badge--no-border{border-color:transparent;border-width:0}.status-badge--sm{padding:.12rem .45rem;font-size:.72rem}.status-badge--md{padding:.2rem .55rem;font-size:.8rem}.status-badge__icon{display:inline-flex;flex-shrink:0;font-size:.85em;line-height:1}.status-badge__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge--success{color:var(--app-color-success, #15803d);background:color-mix(in srgb,var(--app-color-success, #15803d) 12%,var(--app-color-surface, #fff))}.status-badge--success.status-badge--bordered{border-color:color-mix(in srgb,var(--app-color-success, #15803d) 35%,transparent)}.status-badge--error{color:var(--app-color-error, #b91c1c);background:var(--app-color-error-bg-subtle, rgba(185, 28, 28, .12))}.status-badge--error.status-badge--bordered{border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 45%,transparent)}.status-badge--warning{color:var(--app-color-warning, #c2410c);background:color-mix(in srgb,var(--app-color-warning, #c2410c) 14%,var(--app-color-surface, #fff))}.status-badge--warning.status-badge--bordered{border-color:color-mix(in srgb,var(--app-color-warning, #c2410c) 38%,transparent)}.status-badge--info{color:var(--app-color-info, #1d4ed8);background:color-mix(in srgb,var(--app-color-info, #1d4ed8) 12%,var(--app-color-surface, #fff))}.status-badge--info.status-badge--bordered{border-color:color-mix(in srgb,var(--app-color-info, #1d4ed8) 35%,transparent)}.status-badge--neutral{color:var(--app-color-text-secondary, #5a7fa3);background:var(--app-color-tab-inactive-bg, #f3f6f9)}.status-badge--neutral.status-badge--bordered{border-color:var(--app-color-border-subtle, rgba(26, 47, 69, .12))}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StatusBadgeComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'app-status-badge', standalone: true, imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\r\n class=\"status-badge\"\r\n [ngClass]=\"variantClassMap[variant]\"\r\n [class.status-badge--sm]=\"size === 'sm'\"\r\n [class.status-badge--md]=\"size === 'md'\"\r\n [class.status-badge--bordered]=\"bordered\"\r\n [class.status-badge--no-border]=\"!bordered\"\r\n role=\"status\"\r\n>\r\n @if (icon.trim()) {\r\n <span class=\"status-badge__icon\" aria-hidden=\"true\">\r\n <i [attr.class]=\"icon\" aria-hidden=\"true\"></i>\r\n </span>\r\n }\r\n <span class=\"status-badge__label\">{{ label }}</span>\r\n</span>\r\n", styles: [":host{display:inline-block;max-width:100%;vertical-align:middle}.status-badge{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;box-sizing:border-box;border-radius:6px;font-weight:600;line-height:1.25;border-style:solid;border-width:1px}.status-badge--bordered{border-color:transparent}.status-badge--no-border{border-color:transparent;border-width:0}.status-badge--sm{padding:.12rem .45rem;font-size:.72rem}.status-badge--md{padding:.2rem .55rem;font-size:.8rem}.status-badge__icon{display:inline-flex;flex-shrink:0;font-size:.85em;line-height:1}.status-badge__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge--success{color:var(--app-color-success, #15803d);background:color-mix(in srgb,var(--app-color-success, #15803d) 12%,var(--app-color-surface, #fff))}.status-badge--success.status-badge--bordered{border-color:color-mix(in srgb,var(--app-color-success, #15803d) 35%,transparent)}.status-badge--error{color:var(--app-color-error, #b91c1c);background:var(--app-color-error-bg-subtle, rgba(185, 28, 28, .12))}.status-badge--error.status-badge--bordered{border-color:color-mix(in srgb,var(--app-color-error-border, #dc2626) 45%,transparent)}.status-badge--warning{color:var(--app-color-warning, #c2410c);background:color-mix(in srgb,var(--app-color-warning, #c2410c) 14%,var(--app-color-surface, #fff))}.status-badge--warning.status-badge--bordered{border-color:color-mix(in srgb,var(--app-color-warning, #c2410c) 38%,transparent)}.status-badge--info{color:var(--app-color-info, #1d4ed8);background:color-mix(in srgb,var(--app-color-info, #1d4ed8) 12%,var(--app-color-surface, #fff))}.status-badge--info.status-badge--bordered{border-color:color-mix(in srgb,var(--app-color-info, #1d4ed8) 35%,transparent)}.status-badge--neutral{color:var(--app-color-text-secondary, #5a7fa3);background:var(--app-color-tab-inactive-bg, #f3f6f9)}.status-badge--neutral.status-badge--bordered{border-color:var(--app-color-border-subtle, rgba(26, 47, 69, .12))}\n"] }]
|
|
28
|
+
}], propDecorators: { label: [{
|
|
29
|
+
type: Input,
|
|
30
|
+
args: [{ required: true }]
|
|
31
|
+
}], variant: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], icon: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], size: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], bordered: [{
|
|
38
|
+
type: Input,
|
|
39
|
+
args: [{ transform: booleanAttribute }]
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWJhZGdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1kaXNwbGF5L3N0YXR1cy1iYWRnZS9zdGF0dXMtYmFkZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvc3RhdHVzLWJhZGdlL3N0YXR1cy1iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQzs7QUFHdkI7O0dBRUc7QUFTSCxNQUFNLE9BQU8sb0JBQW9CO0lBUmpDO1FBV1csWUFBTyxHQUF1QixTQUFTLENBQUM7UUFFakQsdURBQXVEO1FBQzlDLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVixTQUFJLEdBQW9CLElBQUksQ0FBQztRQUVFLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFL0Msb0JBQWUsR0FBdUM7WUFDN0QsT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxLQUFLLEVBQUUscUJBQXFCO1lBQzVCLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixPQUFPLEVBQUUsdUJBQXVCO1NBQ2pDLENBQUM7S0FDSDsrR0FuQlksb0JBQW9CO21HQUFwQixvQkFBb0IsaUtBVVgsZ0JBQWdCLDZCQzlCdEMsbWlCQWdCQSw4Z0VERFksT0FBTzs7NEZBS04sb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUMsbUJBR0QsdUJBQXVCLENBQUMsTUFBTTs4QkFHcEIsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWhCLE9BQU87c0JBQWYsS0FBSztnQkFHRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgU3RhdHVzQmFkZ2VTaXplLCBTdGF0dXNCYWRnZVZhcmlhbnQgfSBmcm9tICcuLi9fbW9kZWxzL2RhdGEtZGlzcGxheS5tb2RlbHMnO1xyXG5cclxuLyoqXHJcbiAqIEV0aXF1ZXRhIGRlIGVzdGFkbyAoQXRpdm8sIFBlbmRlbnRlLCBldGMuKSBjb20gZnVuZG8gc3VhdmUgZSBjb3Igc2Vtw6JudGljYS5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXN0YXR1cy1iYWRnZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdDbGFzc10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YXR1cy1iYWRnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3N0YXR1cy1iYWRnZS5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGF0dXNCYWRnZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbGFiZWwhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFN0YXR1c0JhZGdlVmFyaWFudCA9ICduZXV0cmFsJztcclxuXHJcbiAgLyoqIENsYXNzZXMgRm9udCBBd2Vzb21lIChleC46IGBmYS1zb2xpZCBmYS1jaGVja2ApLiAqL1xyXG4gIEBJbnB1dCgpIGljb24gPSAnJztcclxuXHJcbiAgQElucHV0KCkgc2l6ZTogU3RhdHVzQmFkZ2VTaXplID0gJ21kJztcclxuXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGJvcmRlcmVkID0gdHJ1ZTtcclxuXHJcbiAgcmVhZG9ubHkgdmFyaWFudENsYXNzTWFwOiBSZWNvcmQ8U3RhdHVzQmFkZ2VWYXJpYW50LCBzdHJpbmc+ID0ge1xyXG4gICAgc3VjY2VzczogJ3N0YXR1cy1iYWRnZS0tc3VjY2VzcycsXHJcbiAgICBlcnJvcjogJ3N0YXR1cy1iYWRnZS0tZXJyb3InLFxyXG4gICAgd2FybmluZzogJ3N0YXR1cy1iYWRnZS0td2FybmluZycsXHJcbiAgICBpbmZvOiAnc3RhdHVzLWJhZGdlLS1pbmZvJyxcclxuICAgIG5ldXRyYWw6ICdzdGF0dXMtYmFkZ2UtLW5ldXRyYWwnLFxyXG4gIH07XHJcbn1cclxuIiwiPHNwYW5cclxuICBjbGFzcz1cInN0YXR1cy1iYWRnZVwiXHJcbiAgW25nQ2xhc3NdPVwidmFyaWFudENsYXNzTWFwW3ZhcmlhbnRdXCJcclxuICBbY2xhc3Muc3RhdHVzLWJhZGdlLS1zbV09XCJzaXplID09PSAnc20nXCJcclxuICBbY2xhc3Muc3RhdHVzLWJhZGdlLS1tZF09XCJzaXplID09PSAnbWQnXCJcclxuICBbY2xhc3Muc3RhdHVzLWJhZGdlLS1ib3JkZXJlZF09XCJib3JkZXJlZFwiXHJcbiAgW2NsYXNzLnN0YXR1cy1iYWRnZS0tbm8tYm9yZGVyXT1cIiFib3JkZXJlZFwiXHJcbiAgcm9sZT1cInN0YXR1c1wiXHJcbj5cclxuICBAaWYgKGljb24udHJpbSgpKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInN0YXR1cy1iYWRnZV9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICA8aSBbYXR0ci5jbGFzc109XCJpY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuICA8c3BhbiBjbGFzcz1cInN0YXR1cy1iYWRnZV9fbGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuPC9zcGFuPlxyXG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, booleanAttribute } from '@angular/core';
|
|
2
|
+
import { EmptyStateComponent } from '../empty-state/empty-state.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Estado vazio para tabelas ou listas densas — reutiliza {@link EmptyStateComponent}
|
|
6
|
+
* e permite uma ação opcional (ex.: limpar filtros).
|
|
7
|
+
*/
|
|
8
|
+
export class TableEmptyStateComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.description = '';
|
|
11
|
+
this.iconClass = 'fa-solid fa-table';
|
|
12
|
+
this.embed = true;
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: TableEmptyStateComponent, isStandalone: true, selector: "app-table-empty-state", inputs: { title: "title", description: "description", iconClass: "iconClass", embed: ["embed", "embed", booleanAttribute] }, ngImport: i0, template: "<div class=\"table-empty-state\">\r\n <app-empty-state\r\n [message]=\"title\"\r\n [description]=\"description\"\r\n [iconClass]=\"iconClass\"\r\n [embed]=\"embed\"\r\n />\r\n <div class=\"table-empty-state__action\">\r\n <ng-content select=\"[tableEmptyAction]\" />\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.table-empty-state{display:flex;flex-direction:column;align-items:center;gap:.65rem;width:100%;box-sizing:border-box}.table-empty-state__action{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.table-empty-state__action:empty{display:none}\n"], dependencies: [{ kind: "component", type: EmptyStateComponent, selector: "app-empty-state", inputs: ["message", "description", "iconClass", "variant", "embed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableEmptyStateComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'app-table-empty-state', standalone: true, imports: [EmptyStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"table-empty-state\">\r\n <app-empty-state\r\n [message]=\"title\"\r\n [description]=\"description\"\r\n [iconClass]=\"iconClass\"\r\n [embed]=\"embed\"\r\n />\r\n <div class=\"table-empty-state__action\">\r\n <ng-content select=\"[tableEmptyAction]\" />\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.table-empty-state{display:flex;flex-direction:column;align-items:center;gap:.65rem;width:100%;box-sizing:border-box}.table-empty-state__action{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.table-empty-state__action:empty{display:none}\n"] }]
|
|
20
|
+
}], propDecorators: { title: [{
|
|
21
|
+
type: Input,
|
|
22
|
+
args: [{ required: true }]
|
|
23
|
+
}], description: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], iconClass: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], embed: [{
|
|
28
|
+
type: Input,
|
|
29
|
+
args: [{ transform: booleanAttribute }]
|
|
30
|
+
}] } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvdGFibGUtZW1wdHktc3RhdGUvdGFibGUtZW1wdHktc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvdGFibGUtZW1wdHktc3RhdGUvdGFibGUtZW1wdHktc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRTNFOzs7R0FHRztBQVNILE1BQU0sT0FBTyx3QkFBd0I7SUFSckM7UUFXVyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixjQUFTLEdBQUcsbUJBQW1CLENBQUM7UUFFRCxVQUFLLEdBQUcsSUFBSSxDQUFDO0tBQ3REOytHQVJZLHdCQUF3QjttR0FBeEIsd0JBQXdCLGlLQU9mLGdCQUFnQiw2QkN0QnRDLHdUQVdBLHNWRERZLG1CQUFtQjs7NEZBS2xCLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsbUJBQW1CLENBQUMsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTs4QkFHcEIsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWhCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFa0MsS0FBSztzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEVzdGFkbyB2YXppbyBwYXJhIHRhYmVsYXMgb3UgbGlzdGFzIGRlbnNhcyDigJQgcmV1dGlsaXphIHtAbGluayBFbXB0eVN0YXRlQ29tcG9uZW50fVxyXG4gKiBlIHBlcm1pdGUgdW1hIGHDp8OjbyBvcGNpb25hbCAoZXguOiBsaW1wYXIgZmlsdHJvcykuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10YWJsZS1lbXB0eS1zdGF0ZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRW1wdHlTdGF0ZUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWVtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGFibGUtZW1wdHktc3RhdGUuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVFbXB0eVN0YXRlQ29tcG9uZW50IHtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB0aXRsZSE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb24gPSAnJztcclxuXHJcbiAgQElucHV0KCkgaWNvbkNsYXNzID0gJ2ZhLXNvbGlkIGZhLXRhYmxlJztcclxuXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGVtYmVkID0gdHJ1ZTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGFibGUtZW1wdHktc3RhdGVcIj5cclxuICA8YXBwLWVtcHR5LXN0YXRlXHJcbiAgICBbbWVzc2FnZV09XCJ0aXRsZVwiXHJcbiAgICBbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgW2ljb25DbGFzc109XCJpY29uQ2xhc3NcIlxyXG4gICAgW2VtYmVkXT1cImVtYmVkXCJcclxuICAvPlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS1lbXB0eS1zdGF0ZV9fYWN0aW9uXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGFibGVFbXB0eUFjdGlvbl1cIiAvPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { DataToolbarComponent } from '../data-toolbar/data-toolbar.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Barra auxiliar para tabelas / grades: envolve {@link DataToolbarComponent}
|
|
6
|
+
* com áreas para pesquisa, contagem e ações.
|
|
7
|
+
*/
|
|
8
|
+
export class TableToolbarComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
/** Ex.: `128 resultados` ou `Nenhum resultado`. */
|
|
11
|
+
this.resultCountLabel = '';
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TableToolbarComponent, isStandalone: true, selector: "app-table-toolbar", inputs: { resultCountLabel: "resultCountLabel" }, ngImport: i0, template: "<app-data-toolbar class=\"table-toolbar__data-toolbar\">\r\n <div toolbar-start class=\"table-toolbar__start\">\r\n <div class=\"table-toolbar__search-filters\">\r\n <ng-content select=\"[tableToolbarSearch]\" />\r\n <ng-content select=\"[tableToolbarFilters]\" />\r\n </div>\r\n @if (resultCountLabel.trim()) {\r\n <p class=\"table-toolbar__count\" aria-live=\"polite\">{{ resultCountLabel }}</p>\r\n }\r\n </div>\r\n <div toolbar-end class=\"table-toolbar__end\">\r\n <ng-content select=\"[tableToolbarActions]\" />\r\n </div>\r\n</app-data-toolbar>\r\n", styles: [":host{display:block;width:100%;min-width:0}.table-toolbar__data-toolbar{width:100%}.table-toolbar__start{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .85rem;min-width:0;flex:1 1 auto}.table-toolbar__search-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem;min-width:0;flex:1 1 14rem}.table-toolbar__count{margin:0;flex:0 0 auto;font-size:.82rem;font-weight:500;line-height:1.35;color:var(--app-color-text-muted, #6b8299);white-space:nowrap}.table-toolbar__end{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "component", type: DataToolbarComponent, selector: "app-data-toolbar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableToolbarComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'app-table-toolbar', standalone: true, imports: [DataToolbarComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<app-data-toolbar class=\"table-toolbar__data-toolbar\">\r\n <div toolbar-start class=\"table-toolbar__start\">\r\n <div class=\"table-toolbar__search-filters\">\r\n <ng-content select=\"[tableToolbarSearch]\" />\r\n <ng-content select=\"[tableToolbarFilters]\" />\r\n </div>\r\n @if (resultCountLabel.trim()) {\r\n <p class=\"table-toolbar__count\" aria-live=\"polite\">{{ resultCountLabel }}</p>\r\n }\r\n </div>\r\n <div toolbar-end class=\"table-toolbar__end\">\r\n <ng-content select=\"[tableToolbarActions]\" />\r\n </div>\r\n</app-data-toolbar>\r\n", styles: [":host{display:block;width:100%;min-width:0}.table-toolbar__data-toolbar{width:100%}.table-toolbar__start{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .85rem;min-width:0;flex:1 1 auto}.table-toolbar__search-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem;min-width:0;flex:1 1 14rem}.table-toolbar__count{margin:0;flex:0 0 auto;font-size:.82rem;font-weight:500;line-height:1.35;color:var(--app-color-text-muted, #6b8299);white-space:nowrap}.table-toolbar__end{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem}\n"] }]
|
|
19
|
+
}], propDecorators: { resultCountLabel: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}] } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RhdGEtZGlzcGxheS90YWJsZS10b29sYmFyL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvdGFibGUtdG9vbGJhci90YWJsZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQUU5RTs7O0dBR0c7QUFTSCxNQUFNLE9BQU8scUJBQXFCO0lBUmxDO1FBU0UsbURBQW1EO1FBQzFDLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztLQUNoQzsrR0FIWSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwrSENmbEMsK2tCQWNBLGdvQkRKWSxvQkFBb0I7OzRGQUtuQixxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLG9CQUFvQixDQUFDLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBSXRDLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS10b29sYmFyL2RhdGEtdG9vbGJhci5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEJhcnJhIGF1eGlsaWFyIHBhcmEgdGFiZWxhcyAvIGdyYWRlczogZW52b2x2ZSB7QGxpbmsgRGF0YVRvb2xiYXJDb21wb25lbnR9XHJcbiAqIGNvbSDDoXJlYXMgcGFyYSBwZXNxdWlzYSwgY29udGFnZW0gZSBhw6fDtWVzLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGUtdG9vbGJhcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRGF0YVRvb2xiYXJDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGFibGUtdG9vbGJhci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVRvb2xiYXJDb21wb25lbnQge1xyXG4gIC8qKiBFeC46IGAxMjggcmVzdWx0YWRvc2Agb3UgYE5lbmh1bSByZXN1bHRhZG9gLiAqL1xyXG4gIEBJbnB1dCgpIHJlc3VsdENvdW50TGFiZWwgPSAnJztcclxufVxyXG4iLCI8YXBwLWRhdGEtdG9vbGJhciBjbGFzcz1cInRhYmxlLXRvb2xiYXJfX2RhdGEtdG9vbGJhclwiPlxyXG4gIDxkaXYgdG9vbGJhci1zdGFydCBjbGFzcz1cInRhYmxlLXRvb2xiYXJfX3N0YXJ0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtdG9vbGJhcl9fc2VhcmNoLWZpbHRlcnNcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RhYmxlVG9vbGJhclNlYXJjaF1cIiAvPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGFibGVUb29sYmFyRmlsdGVyc11cIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKHJlc3VsdENvdW50TGFiZWwudHJpbSgpKSB7XHJcbiAgICAgIDxwIGNsYXNzPVwidGFibGUtdG9vbGJhcl9fY291bnRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj57eyByZXN1bHRDb3VudExhYmVsIH19PC9wPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgdG9vbGJhci1lbmQgY2xhc3M9XCJ0YWJsZS10b29sYmFyX19lbmRcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZVRvb2xiYXJBY3Rpb25zXVwiIC8+XHJcbiAgPC9kaXY+XHJcbjwvYXBwLWRhdGEtdG9vbGJhcj5cclxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Largura máxima do painel `app-dialog` (conteúdo responsivo). */
|
|
2
|
+
export var LibDialogSize;
|
|
3
|
+
(function (LibDialogSize) {
|
|
4
|
+
LibDialogSize["Sm"] = "sm";
|
|
5
|
+
LibDialogSize["Md"] = "md";
|
|
6
|
+
LibDialogSize["Lg"] = "lg";
|
|
7
|
+
})(LibDialogSize || (LibDialogSize = {}));
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWRpYWxvZy1zaXplLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kaWFsb2dzL19tb2RlbHMvbGliLWRpYWxvZy1zaXplLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1FQUFtRTtBQUNuRSxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLDBCQUFTLENBQUE7SUFDVCwwQkFBUyxDQUFBO0lBQ1QsMEJBQVMsQ0FBQTtBQUNYLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBMYXJndXJhIG3DoXhpbWEgZG8gcGFpbmVsIGBhcHAtZGlhbG9nYCAoY29udGXDumRvIHJlc3BvbnNpdm8pLiAqL1xyXG5leHBvcnQgZW51bSBMaWJEaWFsb2dTaXplIHtcclxuICBTbSA9ICdzbScsXHJcbiAgTWQgPSAnbWQnLFxyXG4gIExnID0gJ2xnJyxcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Classes aplicadas ao painel CDK Dialog + tema da app. */
|
|
2
|
+
export function libDialogPanelClasses(theme, extra = []) {
|
|
3
|
+
const rest = Array.isArray(extra) ? extra : [extra];
|
|
4
|
+
return ['app-lib-dialog-panel', 'app-library-theme', theme.themeClass(), ...rest];
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWRpYWxvZy1wYW5lbC1jbGFzc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kaWFsb2dzL191dGlscy9saWItZGlhbG9nLXBhbmVsLWNsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsNERBQTREO0FBQzVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsS0FBc0IsRUFDdEIsUUFBMkIsRUFBRTtJQUU3QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsT0FBTyxDQUFDLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3BGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi90aGVtZSc7XHJcblxyXG4vKiogQ2xhc3NlcyBhcGxpY2FkYXMgYW8gcGFpbmVsIENESyBEaWFsb2cgKyB0ZW1hIGRhIGFwcC4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGxpYkRpYWxvZ1BhbmVsQ2xhc3NlcyhcclxuICB0aGVtZTogQXBwVGhlbWVTZXJ2aWNlLFxyXG4gIGV4dHJhOiBzdHJpbmcgfCBzdHJpbmdbXSA9IFtdLFxyXG4pOiBzdHJpbmdbXSB7XHJcbiAgY29uc3QgcmVzdCA9IEFycmF5LmlzQXJyYXkoZXh0cmEpID8gZXh0cmEgOiBbZXh0cmFdO1xyXG4gIHJldHVybiBbJ2FwcC1saWItZGlhbG9nLXBhbmVsJywgJ2FwcC1saWJyYXJ5LXRoZW1lJywgdGhlbWUudGhlbWVDbGFzcygpLCAuLi5yZXN0XTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, inject, Input, Output, booleanAttribute, } from '@angular/core';
|
|
2
|
+
import { CdkTrapFocus } from '@angular/cdk/a11y';
|
|
3
|
+
import { lockPageScrollCdkStyle, unlockPageScrollCdkStyle, } from '../../_utils/scroll/body-scroll-lock.util';
|
|
4
|
+
import { LibDialogSize } from '../_models/lib-dialog-size.model';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
let appDialogSeq = 0;
|
|
7
|
+
/**
|
|
8
|
+
* Diálogo modal declarativo com `[(open)]`, projeção de corpo e rodapé opcional (`[appDialogFooter]`).
|
|
9
|
+
* Bloqueio de scroll alinhado ao CDK (`cdk-global-scrollblock`), como no `ConfirmDialogService`.
|
|
10
|
+
*/
|
|
11
|
+
export class AppDialogComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.hostEl = inject((ElementRef));
|
|
14
|
+
this.open = false;
|
|
15
|
+
this.openChange = new EventEmitter();
|
|
16
|
+
this.title = '';
|
|
17
|
+
/** Texto de apoio abaixo do título (opcional); liga `aria-describedby` no painel. */
|
|
18
|
+
this.description = '';
|
|
19
|
+
/**
|
|
20
|
+
* Rótulo acessível quando não há `title` (evita diálogo sem nome).
|
|
21
|
+
* Ignorado se `title` tiver texto.
|
|
22
|
+
*/
|
|
23
|
+
this.ariaLabel = 'Diálogo';
|
|
24
|
+
this.size = LibDialogSize.Md;
|
|
25
|
+
/**
|
|
26
|
+
* Quando `false`, a tecla Escape e o clique no backdrop não fecham o diálogo
|
|
27
|
+
* (botão ✕, `[(open)]` e `requestClose()` continuam disponíveis).
|
|
28
|
+
* Omisso: `true`.
|
|
29
|
+
*/
|
|
30
|
+
this.allowOverlayDismiss = true;
|
|
31
|
+
this.showCloseButton = true;
|
|
32
|
+
this.LibDialogSize = LibDialogSize;
|
|
33
|
+
this.titleId = `app-dialog-title-${++appDialogSeq}`;
|
|
34
|
+
this.descriptionId = `app-dialog-desc-${appDialogSeq}`;
|
|
35
|
+
/**
|
|
36
|
+
* O modal fica no fim de `document.body` enquanto aberto, para o `backdrop-filter`
|
|
37
|
+
* não ficar «preso» a ancestrais com `overflow: auto` (ex.: `app-shell__content`).
|
|
38
|
+
*/
|
|
39
|
+
this.bodyRestoreParent = null;
|
|
40
|
+
this.bodyRestoreNext = null;
|
|
41
|
+
this.previousActive = null;
|
|
42
|
+
this.scrollLock = {
|
|
43
|
+
htmlLeft: '',
|
|
44
|
+
htmlTop: '',
|
|
45
|
+
scrollX: 0,
|
|
46
|
+
scrollY: 0,
|
|
47
|
+
bodyOverflow: '',
|
|
48
|
+
bodyTouchAction: '',
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
ngOnChanges(changes) {
|
|
52
|
+
if (changes['open']) {
|
|
53
|
+
if (this.open) {
|
|
54
|
+
this.attachHostToBody();
|
|
55
|
+
const a = document.activeElement;
|
|
56
|
+
if (a instanceof HTMLElement && a !== document.body) {
|
|
57
|
+
this.previousActive = a;
|
|
58
|
+
}
|
|
59
|
+
this.scrollLock = lockPageScrollCdkStyle();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
unlockPageScrollCdkStyle(this.scrollLock);
|
|
63
|
+
this.detachHostFromBody();
|
|
64
|
+
this.restoreFocus();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
ngOnDestroy() {
|
|
69
|
+
if (this.open) {
|
|
70
|
+
unlockPageScrollCdkStyle(this.scrollLock);
|
|
71
|
+
}
|
|
72
|
+
this.detachHostFromBody();
|
|
73
|
+
}
|
|
74
|
+
attachHostToBody() {
|
|
75
|
+
const el = this.hostEl.nativeElement;
|
|
76
|
+
if (el.parentElement === document.body) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
this.bodyRestoreParent = el.parentElement;
|
|
80
|
+
this.bodyRestoreNext = el.nextSibling;
|
|
81
|
+
document.body.appendChild(el);
|
|
82
|
+
}
|
|
83
|
+
detachHostFromBody() {
|
|
84
|
+
const el = this.hostEl.nativeElement;
|
|
85
|
+
if (el.parentElement !== document.body) {
|
|
86
|
+
this.bodyRestoreParent = null;
|
|
87
|
+
this.bodyRestoreNext = null;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const parent = this.bodyRestoreParent;
|
|
91
|
+
const next = this.bodyRestoreNext;
|
|
92
|
+
this.bodyRestoreParent = null;
|
|
93
|
+
this.bodyRestoreNext = null;
|
|
94
|
+
if (parent && document.body.contains(parent)) {
|
|
95
|
+
if (next && next.parentNode === parent) {
|
|
96
|
+
parent.insertBefore(el, next);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
parent.appendChild(el);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const appRoot = document.querySelector('app-root');
|
|
103
|
+
if (appRoot) {
|
|
104
|
+
appRoot.appendChild(el);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
onDocumentKeydown(ev) {
|
|
108
|
+
if (!this.open || ev.key !== 'Escape' || !this.allowOverlayDismiss) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
ev.preventDefault();
|
|
112
|
+
this.requestClose();
|
|
113
|
+
}
|
|
114
|
+
onBackdropClick() {
|
|
115
|
+
if (!this.allowOverlayDismiss) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.requestClose();
|
|
119
|
+
}
|
|
120
|
+
requestClose() {
|
|
121
|
+
if (!this.open) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
this.open = false;
|
|
125
|
+
this.openChange.emit(false);
|
|
126
|
+
unlockPageScrollCdkStyle(this.scrollLock);
|
|
127
|
+
this.restoreFocus();
|
|
128
|
+
}
|
|
129
|
+
restoreFocus() {
|
|
130
|
+
if (this.previousActive && document.contains(this.previousActive)) {
|
|
131
|
+
this.previousActive.focus({ preventScroll: true });
|
|
132
|
+
}
|
|
133
|
+
this.previousActive = null;
|
|
134
|
+
}
|
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AppDialogComponent, isStandalone: true, selector: "app-dialog", inputs: { open: ["open", "open", booleanAttribute], title: "title", description: "description", ariaLabel: "ariaLabel", size: "size", allowOverlayDismiss: ["allowOverlayDismiss", "allowOverlayDismiss", booleanAttribute], showCloseButton: ["showCloseButton", "showCloseButton", booleanAttribute] }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" } }, usesOnChanges: true, ngImport: i0, template: "@if (open) {\r\n <div\r\n class=\"app-dialog-backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n <div class=\"app-dialog-stage\" aria-hidden=\"false\">\r\n <div\r\n class=\"app-dialog-panel\"\r\n [class.app-dialog-panel--sm]=\"size === LibDialogSize.Sm\"\r\n [class.app-dialog-panel--md]=\"size === LibDialogSize.Md\"\r\n [class.app-dialog-panel--lg]=\"size === LibDialogSize.Lg\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"\r\n title.trim() ? titleId : description.trim() ? descriptionId : null\r\n \"\r\n [attr.aria-label]=\"!title.trim() && !description.trim() ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"\r\n title.trim() && description.trim() ? descriptionId : null\r\n \"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if (title.trim()) {\r\n <header class=\"app-dialog-header\">\r\n <h2 class=\"app-dialog-title\" [id]=\"titleId\">{{ title }}</h2>\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-dialog-close\"\r\n aria-label=\"Fechar di\u00E1logo\"\r\n (click)=\"requestClose()\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n }\r\n @if (description.trim()) {\r\n <p class=\"app-dialog-description\" [id]=\"descriptionId\">{{ description }}</p>\r\n }\r\n <div class=\"app-dialog-body\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"app-dialog-footer\">\r\n <ng-content select=\"[appDialogFooter]\" />\r\n </footer>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-dialog-backdrop{position:fixed;inset:0;z-index:var(--app-z-dialog, 1200);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);pointer-events:auto;animation:app-lib-dialog-backdrop-enter .24s ease-out both}.app-dialog-stage{position:fixed;inset:0;z-index:calc(var(--app-z-dialog, 1200) + 1);display:flex;align-items:center;justify-content:center;padding:min(1.5rem,4vw);box-sizing:border-box;pointer-events:none;background:transparent}.app-dialog-panel{position:relative;z-index:0;display:flex;flex-direction:column;max-height:min(88vh,40rem);width:100%;pointer-events:auto;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:var(--app-color-surface, #fff);box-shadow:0 4px 6px -1px #00000014,0 12px 28px -8px #1a2f452e;outline:none;animation:app-lib-dialog-panel-in .28s cubic-bezier(.22,1,.36,1) both}.app-dialog-panel--sm{max-width:min(28rem,94vw)}.app-dialog-panel--md{max-width:min(40rem,94vw)}.app-dialog-panel--lg{max-width:min(56rem,96vw)}@media (prefers-reduced-motion: reduce){.app-dialog-backdrop,.app-dialog-panel{animation:none}}.app-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-dialog-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-description{margin:0;padding:.65rem 1rem;font-size:.88rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3);flex:0 0 auto}.app-dialog-close{flex:0 0 auto;width:2rem;height:2rem;margin:0;padding:0;border:1px solid var(--app-color-border, #d4d4d4);border-radius:6px;background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);font-size:1.35rem;line-height:1;cursor:pointer}.app-dialog-close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-dialog-close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-dialog-body{padding:1rem;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;font-size:.9rem;line-height:1.5;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-footer{flex:0 0 auto;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-dialog-footer:empty{display:none;padding:0;border:none}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
137
|
+
}
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppDialogComponent, decorators: [{
|
|
139
|
+
type: Component,
|
|
140
|
+
args: [{ selector: 'app-dialog', standalone: true, imports: [CdkTrapFocus], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (open) {\r\n <div\r\n class=\"app-dialog-backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n <div class=\"app-dialog-stage\" aria-hidden=\"false\">\r\n <div\r\n class=\"app-dialog-panel\"\r\n [class.app-dialog-panel--sm]=\"size === LibDialogSize.Sm\"\r\n [class.app-dialog-panel--md]=\"size === LibDialogSize.Md\"\r\n [class.app-dialog-panel--lg]=\"size === LibDialogSize.Lg\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"\r\n title.trim() ? titleId : description.trim() ? descriptionId : null\r\n \"\r\n [attr.aria-label]=\"!title.trim() && !description.trim() ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"\r\n title.trim() && description.trim() ? descriptionId : null\r\n \"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if (title.trim()) {\r\n <header class=\"app-dialog-header\">\r\n <h2 class=\"app-dialog-title\" [id]=\"titleId\">{{ title }}</h2>\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-dialog-close\"\r\n aria-label=\"Fechar di\u00E1logo\"\r\n (click)=\"requestClose()\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n }\r\n @if (description.trim()) {\r\n <p class=\"app-dialog-description\" [id]=\"descriptionId\">{{ description }}</p>\r\n }\r\n <div class=\"app-dialog-body\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"app-dialog-footer\">\r\n <ng-content select=\"[appDialogFooter]\" />\r\n </footer>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-dialog-backdrop{position:fixed;inset:0;z-index:var(--app-z-dialog, 1200);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);pointer-events:auto;animation:app-lib-dialog-backdrop-enter .24s ease-out both}.app-dialog-stage{position:fixed;inset:0;z-index:calc(var(--app-z-dialog, 1200) + 1);display:flex;align-items:center;justify-content:center;padding:min(1.5rem,4vw);box-sizing:border-box;pointer-events:none;background:transparent}.app-dialog-panel{position:relative;z-index:0;display:flex;flex-direction:column;max-height:min(88vh,40rem);width:100%;pointer-events:auto;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:var(--app-color-surface, #fff);box-shadow:0 4px 6px -1px #00000014,0 12px 28px -8px #1a2f452e;outline:none;animation:app-lib-dialog-panel-in .28s cubic-bezier(.22,1,.36,1) both}.app-dialog-panel--sm{max-width:min(28rem,94vw)}.app-dialog-panel--md{max-width:min(40rem,94vw)}.app-dialog-panel--lg{max-width:min(56rem,96vw)}@media (prefers-reduced-motion: reduce){.app-dialog-backdrop,.app-dialog-panel{animation:none}}.app-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-dialog-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-description{margin:0;padding:.65rem 1rem;font-size:.88rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3);flex:0 0 auto}.app-dialog-close{flex:0 0 auto;width:2rem;height:2rem;margin:0;padding:0;border:1px solid var(--app-color-border, #d4d4d4);border-radius:6px;background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);font-size:1.35rem;line-height:1;cursor:pointer}.app-dialog-close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-dialog-close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-dialog-body{padding:1rem;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;font-size:.9rem;line-height:1.5;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-footer{flex:0 0 auto;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-dialog-footer:empty{display:none;padding:0;border:none}\n"] }]
|
|
141
|
+
}], propDecorators: { open: [{
|
|
142
|
+
type: Input,
|
|
143
|
+
args: [{ transform: booleanAttribute }]
|
|
144
|
+
}], openChange: [{
|
|
145
|
+
type: Output
|
|
146
|
+
}], title: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], description: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], ariaLabel: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], size: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], allowOverlayDismiss: [{
|
|
155
|
+
type: Input,
|
|
156
|
+
args: [{ transform: booleanAttribute }]
|
|
157
|
+
}], showCloseButton: [{
|
|
158
|
+
type: Input,
|
|
159
|
+
args: [{ transform: booleanAttribute }]
|
|
160
|
+
}], onDocumentKeydown: [{
|
|
161
|
+
type: HostListener,
|
|
162
|
+
args: ['document:keydown', ['$event']]
|
|
163
|
+
}] } });
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpYWxvZ3MvYXBwLWRpYWxvZy9hcHAtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9hcHAtZGlhbG9nL2FwcC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRU4sZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHdCQUF3QixHQUV6QixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFakUsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXJCOzs7R0FHRztBQVNILE1BQU0sT0FBTyxrQkFBa0I7SUFSL0I7UUFTbUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBRWxCLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDbEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFbkQsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVwQixxRkFBcUY7UUFDNUUsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7OztXQUdHO1FBQ00sY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0QixTQUFJLEdBQWtCLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFFaEQ7Ozs7V0FJRztRQUNxQyx3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFM0Isb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdEQsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFFOUIsWUFBTyxHQUFHLG9CQUFvQixFQUFFLFlBQVksRUFBRSxDQUFDO1FBQy9DLGtCQUFhLEdBQUcsbUJBQW1CLFlBQVksRUFBRSxDQUFDO1FBRTNEOzs7V0FHRztRQUNLLHNCQUFpQixHQUF1QixJQUFJLENBQUM7UUFDN0Msb0JBQWUsR0FBcUIsSUFBSSxDQUFDO1FBRXpDLG1CQUFjLEdBQXVCLElBQUksQ0FBQztRQUMxQyxlQUFVLEdBQXVCO1lBQ3ZDLFFBQVEsRUFBRSxFQUFFO1lBQ1osT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1lBQ1YsWUFBWSxFQUFFLEVBQUU7WUFDaEIsZUFBZSxFQUFFLEVBQUU7U0FDcEIsQ0FBQztLQTZGSDtJQTNGQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFlBQVksV0FBVyxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3BELElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQixDQUFDO2dCQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztZQUM3QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNyQyxJQUFJLEVBQUUsQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3RDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDckMsSUFBSSxFQUFFLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQzVCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUM5QixPQUFPO1lBQ1QsQ0FBQztZQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBR0QsaUJBQWlCLENBQUMsRUFBaUI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNuRSxPQUFPO1FBQ1QsQ0FBQztRQUNELEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1Qix3QkFBd0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7K0dBNUlVLGtCQUFrQjttR0FBbEIsa0JBQWtCLCtFQUdULGdCQUFnQix5SkFxQmhCLGdCQUFnQiwyREFFaEIsZ0JBQWdCLG1LQzlEdEMscTJEQXFEQSx1c0ZEdEJZLFlBQVk7OzRGQUtYLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07OEJBS1AsSUFBSTtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDbkIsVUFBVTtzQkFBNUIsTUFBTTtnQkFFRSxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFPa0MsbUJBQW1CO3NCQUExRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVFLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBb0Z0QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtUcmFwRm9jdXMgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBsb2NrUGFnZVNjcm9sbENka1N0eWxlLFxuICB1bmxvY2tQYWdlU2Nyb2xsQ2RrU3R5bGUsXG4gIHR5cGUgU2Nyb2xsTG9ja1NuYXBzaG90LFxufSBmcm9tICcuLi8uLi9fdXRpbHMvc2Nyb2xsL2JvZHktc2Nyb2xsLWxvY2sudXRpbCc7XG5pbXBvcnQgeyBMaWJEaWFsb2dTaXplIH0gZnJvbSAnLi4vX21vZGVscy9saWItZGlhbG9nLXNpemUubW9kZWwnO1xuXG5sZXQgYXBwRGlhbG9nU2VxID0gMDtcblxuLyoqXG4gKiBEacOhbG9nbyBtb2RhbCBkZWNsYXJhdGl2byBjb20gYFsob3BlbildYCwgcHJvamXDp8OjbyBkZSBjb3JwbyBlIHJvZGFww6kgb3BjaW9uYWwgKGBbYXBwRGlhbG9nRm9vdGVyXWApLlxuICogQmxvcXVlaW8gZGUgc2Nyb2xsIGFsaW5oYWRvIGFvIENESyAoYGNkay1nbG9iYWwtc2Nyb2xsYmxvY2tgKSwgY29tbyBubyBgQ29uZmlybURpYWxvZ1NlcnZpY2VgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGlhbG9nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Nka1RyYXBGb2N1c10sXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FwcC1kaWFsb2cuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXBwRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGhvc3RFbCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG9wZW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQElucHV0KCkgdGl0bGUgPSAnJztcblxuICAvKiogVGV4dG8gZGUgYXBvaW8gYWJhaXhvIGRvIHTDrXR1bG8gKG9wY2lvbmFsKTsgbGlnYSBgYXJpYS1kZXNjcmliZWRieWAgbm8gcGFpbmVsLiAqL1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9ICcnO1xuXG4gIC8qKlxuICAgKiBSw7N0dWxvIGFjZXNzw612ZWwgcXVhbmRvIG7Do28gaMOhIGB0aXRsZWAgKGV2aXRhIGRpw6Fsb2dvIHNlbSBub21lKS5cbiAgICogSWdub3JhZG8gc2UgYHRpdGxlYCB0aXZlciB0ZXh0by5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbCA9ICdEacOhbG9nbyc7XG5cbiAgQElucHV0KCkgc2l6ZTogTGliRGlhbG9nU2l6ZSA9IExpYkRpYWxvZ1NpemUuTWQ7XG5cbiAgLyoqXG4gICAqIFF1YW5kbyBgZmFsc2VgLCBhIHRlY2xhIEVzY2FwZSBlIG8gY2xpcXVlIG5vIGJhY2tkcm9wIG7Do28gZmVjaGFtIG8gZGnDoWxvZ29cbiAgICogKGJvdMOjbyDinJUsIGBbKG9wZW4pXWAgZSBgcmVxdWVzdENsb3NlKClgIGNvbnRpbnVhbSBkaXNwb27DrXZlaXMpLlxuICAgKiBPbWlzc286IGB0cnVlYC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhbGxvd092ZXJsYXlEaXNtaXNzID0gdHJ1ZTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcblxuICByZWFkb25seSBMaWJEaWFsb2dTaXplID0gTGliRGlhbG9nU2l6ZTtcblxuICByZWFkb25seSB0aXRsZUlkID0gYGFwcC1kaWFsb2ctdGl0bGUtJHsrK2FwcERpYWxvZ1NlcX1gO1xuICByZWFkb25seSBkZXNjcmlwdGlvbklkID0gYGFwcC1kaWFsb2ctZGVzYy0ke2FwcERpYWxvZ1NlcX1gO1xuXG4gIC8qKlxuICAgKiBPIG1vZGFsIGZpY2Egbm8gZmltIGRlIGBkb2N1bWVudC5ib2R5YCBlbnF1YW50byBhYmVydG8sIHBhcmEgbyBgYmFja2Ryb3AtZmlsdGVyYFxuICAgKiBuw6NvIGZpY2FyIMKrcHJlc2/CuyBhIGFuY2VzdHJhaXMgY29tIGBvdmVyZmxvdzogYXV0b2AgKGV4LjogYGFwcC1zaGVsbF9fY29udGVudGApLlxuICAgKi9cbiAgcHJpdmF0ZSBib2R5UmVzdG9yZVBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBib2R5UmVzdG9yZU5leHQ6IENoaWxkTm9kZSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcHJldmlvdXNBY3RpdmU6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc2Nyb2xsTG9jazogU2Nyb2xsTG9ja1NuYXBzaG90ID0ge1xuICAgIGh0bWxMZWZ0OiAnJyxcbiAgICBodG1sVG9wOiAnJyxcbiAgICBzY3JvbGxYOiAwLFxuICAgIHNjcm9sbFk6IDAsXG4gICAgYm9keU92ZXJmbG93OiAnJyxcbiAgICBib2R5VG91Y2hBY3Rpb246ICcnLFxuICB9O1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snb3BlbiddKSB7XG4gICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgIHRoaXMuYXR0YWNoSG9zdFRvQm9keSgpO1xuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBhICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZSA9IGE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY3JvbGxMb2NrID0gbG9ja1BhZ2VTY3JvbGxDZGtTdHlsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdW5sb2NrUGFnZVNjcm9sbENka1N0eWxlKHRoaXMuc2Nyb2xsTG9jayk7XG4gICAgICAgIHRoaXMuZGV0YWNoSG9zdEZyb21Cb2R5KCk7XG4gICAgICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3Blbikge1xuICAgICAgdW5sb2NrUGFnZVNjcm9sbENka1N0eWxlKHRoaXMuc2Nyb2xsTG9jayk7XG4gICAgfVxuICAgIHRoaXMuZGV0YWNoSG9zdEZyb21Cb2R5KCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEhvc3RUb0JvZHkoKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmhvc3RFbC5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChlbC5wYXJlbnRFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYm9keVJlc3RvcmVQYXJlbnQgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgIHRoaXMuYm9keVJlc3RvcmVOZXh0ID0gZWwubmV4dFNpYmxpbmc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG4gIH1cblxuICBwcml2YXRlIGRldGFjaEhvc3RGcm9tQm9keSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuaG9zdEVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGVsLnBhcmVudEVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIHRoaXMuYm9keVJlc3RvcmVQYXJlbnQgPSBudWxsO1xuICAgICAgdGhpcy5ib2R5UmVzdG9yZU5leHQgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmJvZHlSZXN0b3JlUGFyZW50O1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLmJvZHlSZXN0b3JlTmV4dDtcbiAgICB0aGlzLmJvZHlSZXN0b3JlUGFyZW50ID0gbnVsbDtcbiAgICB0aGlzLmJvZHlSZXN0b3JlTmV4dCA9IG51bGw7XG4gICAgaWYgKHBhcmVudCAmJiBkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHBhcmVudCkpIHtcbiAgICAgIGlmIChuZXh0ICYmIG5leHQucGFyZW50Tm9kZSA9PT0gcGFyZW50KSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoZWwsIG5leHQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBhcHBSb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYXBwLXJvb3QnKTtcbiAgICBpZiAoYXBwUm9vdCkge1xuICAgICAgYXBwUm9vdC5hcHBlbmRDaGlsZChlbCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRLZXlkb3duKGV2OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wZW4gfHwgZXYua2V5ICE9PSAnRXNjYXBlJyB8fCAhdGhpcy5hbGxvd092ZXJsYXlEaXNtaXNzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UoKTtcbiAgfVxuXG4gIG9uQmFja2Ryb3BDbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWxsb3dPdmVybGF5RGlzbWlzcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlcXVlc3RDbG9zZSgpO1xuICB9XG5cbiAgcmVxdWVzdENsb3NlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB1bmxvY2tQYWdlU2Nyb2xsQ2RrU3R5bGUodGhpcy5zY3JvbGxMb2NrKTtcbiAgICB0aGlzLnJlc3RvcmVGb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJldmlvdXNBY3RpdmUgJiYgZG9jdW1lbnQuY29udGFpbnModGhpcy5wcmV2aW91c0FjdGl2ZSkpIHtcbiAgICAgIHRoaXMucHJldmlvdXNBY3RpdmUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH1cbiAgICB0aGlzLnByZXZpb3VzQWN0aXZlID0gbnVsbDtcbiAgfVxufVxuIiwiQGlmIChvcGVuKSB7XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhcHAtZGlhbG9nLWJhY2tkcm9wXCJcclxuICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAoY2xpY2spPVwib25CYWNrZHJvcENsaWNrKClcIlxyXG4gID48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYXBwLWRpYWxvZy1zdGFnZVwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJhcHAtZGlhbG9nLXBhbmVsXCJcclxuICAgICAgW2NsYXNzLmFwcC1kaWFsb2ctcGFuZWwtLXNtXT1cInNpemUgPT09IExpYkRpYWxvZ1NpemUuU21cIlxyXG4gICAgICBbY2xhc3MuYXBwLWRpYWxvZy1wYW5lbC0tbWRdPVwic2l6ZSA9PT0gTGliRGlhbG9nU2l6ZS5NZFwiXHJcbiAgICAgIFtjbGFzcy5hcHAtZGlhbG9nLXBhbmVsLS1sZ109XCJzaXplID09PSBMaWJEaWFsb2dTaXplLkxnXCJcclxuICAgICAgcm9sZT1cImRpYWxvZ1wiXHJcbiAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxyXG4gICAgICAgIHRpdGxlLnRyaW0oKSA/IHRpdGxlSWQgOiBkZXNjcmlwdGlvbi50cmltKCkgPyBkZXNjcmlwdGlvbklkIDogbnVsbFxyXG4gICAgICBcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIiF0aXRsZS50cmltKCkgJiYgIWRlc2NyaXB0aW9uLnRyaW0oKSA/IGFyaWFMYWJlbCA6IG51bGxcIlxyXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIlxyXG4gICAgICAgIHRpdGxlLnRyaW0oKSAmJiBkZXNjcmlwdGlvbi50cmltKCkgPyBkZXNjcmlwdGlvbklkIDogbnVsbFxyXG4gICAgICBcIlxyXG4gICAgICBjZGtUcmFwRm9jdXNcclxuICAgICAgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxyXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgID5cclxuICAgICAgQGlmICh0aXRsZS50cmltKCkpIHtcclxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiYXBwLWRpYWxvZy1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImFwcC1kaWFsb2ctdGl0bGVcIiBbaWRdPVwidGl0bGVJZFwiPnt7IHRpdGxlIH19PC9oMj5cclxuICAgICAgICAgIEBpZiAoc2hvd0Nsb3NlQnV0dG9uKSB7XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImFwcC1kaWFsb2ctY2xvc2VcIlxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJGZWNoYXIgZGnDoWxvZ29cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZXF1ZXN0Q2xvc2UoKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2hlYWRlcj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGRlc2NyaXB0aW9uLnRyaW0oKSkge1xyXG4gICAgICAgIDxwIGNsYXNzPVwiYXBwLWRpYWxvZy1kZXNjcmlwdGlvblwiIFtpZF09XCJkZXNjcmlwdGlvbklkXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XHJcbiAgICAgIH1cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1kaWFsb2ctYm9keVwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8Zm9vdGVyIGNsYXNzPVwiYXBwLWRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYXBwRGlhbG9nRm9vdGVyXVwiIC8+XHJcbiAgICAgIDwvZm9vdGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** Marca o conteúdo projectado no rodapé de `app-dialog`. */
|
|
4
|
+
export class DialogFooterDirective {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DialogFooterDirective, isStandalone: true, selector: "[appDialogFooter]", ngImport: i0 }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogFooterDirective, decorators: [{
|
|
9
|
+
type: Directive,
|
|
10
|
+
args: [{
|
|
11
|
+
selector: '[appDialogFooter]',
|
|
12
|
+
standalone: true,
|
|
13
|
+
}]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWZvb3Rlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpYWxvZ3MvYXBwLWRpYWxvZy9kaWFsb2ctZm9vdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQyw2REFBNkQ7QUFLN0QsTUFBTSxPQUFPLHFCQUFxQjsrR0FBckIscUJBQXFCO21HQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKiogTWFyY2EgbyBjb250ZcO6ZG8gcHJvamVjdGFkbyBubyByb2RhcMOpIGRlIGBhcHAtZGlhbG9nYC4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXBwRGlhbG9nRm9vdGVyXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0Zvb3RlckRpcmVjdGl2ZSB7fVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2ctZGF0YS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDb25maXJtRGlhbG9nVmFyaWFudCA9ICdkZWZhdWx0JyB8ICdkYW5nZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtRGlhbG9nRGF0YSB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgY29uZmlybUxhYmVsPzogc3RyaW5nO1xyXG4gIGNhbmNlbExhYmVsPzogc3RyaW5nO1xyXG4gIHZhcmlhbnQ/OiBDb25maXJtRGlhbG9nVmFyaWFudDtcclxuICAvKipcclxuICAgKiBTZSBgdHJ1ZWAsIEVzY2FwZSBlIGNsaXF1ZSBmb3JhICoqbsOjbyoqIGZlY2hhbSBvIGRpw6Fsb2dvIChhcGVuYXMgYm90w7VlcyBkbyByb2RhcMOpKS5cclxuICAgKiBPbWlzc286IGBmYWxzZWAg4oCUIHBlcm1pdGUgZGlzcGVuc2FyIGNvbSBFc2Mgb3UgYmFja2Ryb3AgKGVtaXRlIGB1bmRlZmluZWRgIG5vIGBjbG9zZWRgKS5cclxuICAgKi9cclxuICBibG9ja092ZXJsYXlEaXNtaXNzPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
|