structra-ui 0.1.18 → 0.1.20

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.
Files changed (150) hide show
  1. package/README.md +3 -4
  2. package/fesm2022/structra-ui.mjs +326 -326
  3. package/fesm2022/structra-ui.mjs.map +1 -1
  4. package/package.json +16 -25
  5. package/esm2022/app/_utils/date-pt-br.utils.mjs +0 -82
  6. package/esm2022/app/_utils/decimal-br.utils.mjs +0 -154
  7. package/esm2022/app/_utils/estados-br.data.mjs +0 -37
  8. package/esm2022/app/_utils/integer-br.utils.mjs +0 -48
  9. package/esm2022/app/_utils/integer-value.utils.mjs +0 -19
  10. package/esm2022/app/_utils/scroll/body-scroll-lock.util.mjs +0 -97
  11. package/esm2022/app/app-shell/_models/breadcrumb-item.model.mjs +0 -2
  12. package/esm2022/app/app-shell/app-shell-sidebar-template.directive.mjs +0 -29
  13. package/esm2022/app/app-shell/app-shell.component.mjs +0 -105
  14. package/esm2022/app/app-shell/breadcrumb/breadcrumb.component.mjs +0 -18
  15. package/esm2022/app/app-shell/index.mjs +0 -19
  16. package/esm2022/app/app-shell/sidebar/app-sidebar-toolbar.directive.mjs +0 -23
  17. package/esm2022/app/app-shell/sidebar/shell-sidebar-toggle.component.mjs +0 -36
  18. package/esm2022/app/app-shell/sidebar/sidebar.component.mjs +0 -84
  19. package/esm2022/app/app-shell/sidebar-reveal.constants.mjs +0 -9
  20. package/esm2022/app/app-shell/topbar/topbar.component.mjs +0 -14
  21. package/esm2022/app/app-shell/user-menu/user-menu.component.mjs +0 -52
  22. package/esm2022/app/buttons/base-button/base-button.component.mjs +0 -97
  23. package/esm2022/app/buttons/index.mjs +0 -2
  24. package/esm2022/app/data-display/_models/card-item-view.model.mjs +0 -2
  25. package/esm2022/app/data-display/_models/data-display.models.mjs +0 -2
  26. package/esm2022/app/data-display/_models/data-grid-column.model.mjs +0 -2
  27. package/esm2022/app/data-display/_models/index.mjs +0 -2
  28. package/esm2022/app/data-display/adaptive-data-view/adaptive-data-view.component.mjs +0 -124
  29. package/esm2022/app/data-display/card-list/card-list.component.mjs +0 -208
  30. package/esm2022/app/data-display/dashboard-section/dashboard-section.component.mjs +0 -25
  31. package/esm2022/app/data-display/data-card/data-card.component.mjs +0 -40
  32. package/esm2022/app/data-display/data-grid/data-grid-actions-cell-renderer.component.mjs +0 -41
  33. package/esm2022/app/data-display/data-grid/data-grid.component.mjs +0 -253
  34. package/esm2022/app/data-display/data-list/data-list.component.mjs +0 -40
  35. package/esm2022/app/data-display/data-toolbar/data-toolbar.component.mjs +0 -12
  36. package/esm2022/app/data-display/details-field/details-field.component.mjs +0 -21
  37. package/esm2022/app/data-display/details-view/details-view.component.mjs +0 -44
  38. package/esm2022/app/data-display/empty-state/empty-state-overlay.util.mjs +0 -19
  39. package/esm2022/app/data-display/empty-state/empty-state.component.mjs +0 -30
  40. package/esm2022/app/data-display/index.mjs +0 -19
  41. package/esm2022/app/data-display/list-item/list-item.component.mjs +0 -59
  42. package/esm2022/app/data-display/stat-card/stat-card.component.mjs +0 -59
  43. package/esm2022/app/data-display/status-badge/status-badge.component.mjs +0 -41
  44. package/esm2022/app/data-display/table-empty-state/table-empty-state.component.mjs +0 -31
  45. package/esm2022/app/data-display/table-toolbar/table-toolbar.component.mjs +0 -22
  46. package/esm2022/app/dialogs/_models/lib-dialog-size.model.mjs +0 -8
  47. package/esm2022/app/dialogs/_utils/app-lib-light-block-scroll-strategy.mjs +0 -22
  48. package/esm2022/app/dialogs/_utils/lib-dialog-panel-classes.mjs +0 -6
  49. package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +0 -200
  50. package/esm2022/app/dialogs/app-dialog/dialog-footer.directive.mjs +0 -15
  51. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog-data.model.mjs +0 -2
  52. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -36
  53. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.service.mjs +0 -47
  54. package/esm2022/app/dialogs/index.mjs +0 -12
  55. package/esm2022/app/dialogs/loading-dialog/loading-dialog-data.model.mjs +0 -2
  56. package/esm2022/app/dialogs/loading-dialog/loading-dialog.component.mjs +0 -19
  57. package/esm2022/app/dialogs/loading-dialog/loading-dialog.service.mjs +0 -38
  58. package/esm2022/app/dialogs/toast/toast-host.component.mjs +0 -65
  59. package/esm2022/app/dialogs/toast/toast.models.mjs +0 -2
  60. package/esm2022/app/dialogs/toast/toast.service.mjs +0 -76
  61. package/esm2022/app/fields/checkbox-fields/_base/boolean-field.directive.mjs +0 -158
  62. package/esm2022/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.mjs +0 -36
  63. package/esm2022/app/fields/checkbox-fields/index.mjs +0 -4
  64. package/esm2022/app/fields/checkbox-fields/switch-field/switch-field.component.mjs +0 -35
  65. package/esm2022/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.mjs +0 -117
  66. package/esm2022/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.mjs +0 -152
  67. package/esm2022/app/fields/dropdown-fields/_base/dropdown-option-field.base.mjs +0 -149
  68. package/esm2022/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.mjs +0 -32
  69. package/esm2022/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.mjs +0 -2
  70. package/esm2022/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.mjs +0 -2
  71. package/esm2022/app/fields/dropdown-fields/_models/index.mjs +0 -2
  72. package/esm2022/app/fields/dropdown-fields/_models/select-option.model.mjs +0 -2
  73. package/esm2022/app/fields/dropdown-fields/_models/select-pagination.model.mjs +0 -2
  74. package/esm2022/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.mjs +0 -520
  75. package/esm2022/app/fields/dropdown-fields/index.mjs +0 -7
  76. package/esm2022/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.mjs +0 -379
  77. package/esm2022/app/fields/dropdown-fields/select-field/select-field.component.mjs +0 -359
  78. package/esm2022/app/fields/input-fields/_base/base-field.component.mjs +0 -151
  79. package/esm2022/app/fields/input-fields/_base/base-field.directive.mjs +0 -224
  80. package/esm2022/app/fields/input-fields/_base/masked-text-field.base.mjs +0 -135
  81. package/esm2022/app/fields/input-fields/_base/ng-control-field.directive.mjs +0 -127
  82. package/esm2022/app/fields/input-fields/_models/field-common-inputs.model.mjs +0 -2
  83. package/esm2022/app/fields/input-fields/_models/index.mjs +0 -2
  84. package/esm2022/app/fields/input-fields/_utils/mask-complete.validators.mjs +0 -61
  85. package/esm2022/app/fields/input-fields/_utils/mask-format.utils.mjs +0 -40
  86. package/esm2022/app/fields/input-fields/cep-field/cep-field.component.mjs +0 -48
  87. package/esm2022/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.mjs +0 -61
  88. package/esm2022/app/fields/input-fields/date-field/date-field.component.mjs +0 -147
  89. package/esm2022/app/fields/input-fields/decimal-field/decimal-field.component.mjs +0 -166
  90. package/esm2022/app/fields/input-fields/index.mjs +0 -22
  91. package/esm2022/app/fields/input-fields/input-mask-field/input-mask-field.component.mjs +0 -52
  92. package/esm2022/app/fields/input-fields/integer-field/integer-field.component.mjs +0 -143
  93. package/esm2022/app/fields/input-fields/password-field/password-field.component.mjs +0 -130
  94. package/esm2022/app/fields/input-fields/phone-field/phone-field.component.mjs +0 -66
  95. package/esm2022/app/fields/input-fields/text-field/text-field.component.mjs +0 -90
  96. package/esm2022/app/fields/input-fields/textarea-field/textarea-field.component.mjs +0 -125
  97. package/esm2022/app/form-layout/_models/form-layout.model.mjs +0 -48
  98. package/esm2022/app/form-layout/_models/form-tabs.model.mjs +0 -2
  99. package/esm2022/app/form-layout/_models/index.mjs +0 -2
  100. package/esm2022/app/form-layout/_models/validation-summary.model.mjs +0 -2
  101. package/esm2022/app/form-layout/form-actions/form-actions.component.mjs +0 -55
  102. package/esm2022/app/form-layout/form-col/form-col.component.mjs +0 -76
  103. package/esm2022/app/form-layout/form-group/form-group.component.mjs +0 -358
  104. package/esm2022/app/form-layout/form-group/form-path.utils.mjs +0 -65
  105. package/esm2022/app/form-layout/form-group/form-root-invalid-ui-refresh.util.mjs +0 -54
  106. package/esm2022/app/form-layout/form-row/form-row.component.mjs +0 -49
  107. package/esm2022/app/form-layout/form-section/form-section.component.mjs +0 -43
  108. package/esm2022/app/form-layout/form-tab/form-tab.component.mjs +0 -67
  109. package/esm2022/app/form-layout/form-tabs/form-tabs.component.mjs +0 -126
  110. package/esm2022/app/form-layout/index.mjs +0 -14
  111. package/esm2022/app/form-layout/layout-stack/layout-stack.component.mjs +0 -56
  112. package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +0 -343
  113. package/esm2022/app/loading/skeleton-loading/index.mjs +0 -7
  114. package/esm2022/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.mjs +0 -43
  115. package/esm2022/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.mjs +0 -23
  116. package/esm2022/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.mjs +0 -34
  117. package/esm2022/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.mjs +0 -38
  118. package/esm2022/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.mjs +0 -37
  119. package/esm2022/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.mjs +0 -45
  120. package/esm2022/app/menus/_models/drawer-side.model.mjs +0 -8
  121. package/esm2022/app/menus/_models/drawer-size.model.mjs +0 -8
  122. package/esm2022/app/menus/_models/menu-dropdown-placement.model.mjs +0 -12
  123. package/esm2022/app/menus/_models/menu-item.model.mjs +0 -6
  124. package/esm2022/app/menus/_utils/menu-connected-positions.util.mjs +0 -41
  125. package/esm2022/app/menus/_utils/menu-rows.util.mjs +0 -39
  126. package/esm2022/app/menus/_utils/submenu-connected-positions.util.mjs +0 -23
  127. package/esm2022/app/menus/action-menu/action-menu.component.mjs +0 -48
  128. package/esm2022/app/menus/context-menu/context-menu.component.mjs +0 -112
  129. package/esm2022/app/menus/drawer/drawer.component.mjs +0 -142
  130. package/esm2022/app/menus/dropdown-menu/dropdown-menu.component.mjs +0 -99
  131. package/esm2022/app/menus/index.mjs +0 -11
  132. package/esm2022/app/menus/menu-divider/menu-divider.component.mjs +0 -14
  133. package/esm2022/app/menus/menu-group/menu-group.component.mjs +0 -32
  134. package/esm2022/app/menus/menu-list/menu-list.component.mjs +0 -399
  135. package/esm2022/app/overlay/_models/overlay-placement.model.mjs +0 -11
  136. package/esm2022/app/overlay/_utils/anchored-overlay-positions.util.mjs +0 -84
  137. package/esm2022/app/overlay/anchored-overlay/anchored-overlay.component.mjs +0 -121
  138. package/esm2022/app/overlay/index.mjs +0 -21
  139. package/esm2022/app/overlay/popover/popover-body-template.directive.mjs +0 -17
  140. package/esm2022/app/overlay/popover/popover-footer-template.directive.mjs +0 -17
  141. package/esm2022/app/overlay/popover/popover-trigger.directive.mjs +0 -15
  142. package/esm2022/app/overlay/popover/popover.component.mjs +0 -93
  143. package/esm2022/app/overlay/tooltip/tooltip-panel-template.directive.mjs +0 -20
  144. package/esm2022/app/overlay/tooltip/tooltip.component.mjs +0 -118
  145. package/esm2022/app/theme/app-theme.service.mjs +0 -49
  146. package/esm2022/app/theme/index.mjs +0 -2
  147. package/esm2022/structra-public-api.mjs +0 -18
  148. package/esm2022/structra-ui.mjs +0 -5
  149. package/esm2022/structra-version.mjs +0 -3
  150. package/index.d.ts +0 -5
@@ -1,44 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, booleanAttribute, } from '@angular/core';
2
- import { SkeletonTextComponent } from '../../loading/skeleton-loading';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Lista de descrição (chave → valor) para detalhes, drawer ou resumo.
6
- * Modo **lista**: `[items]`; modo **composto**: projectar `app-details-field` no conteúdo.
7
- */
8
- export class DetailsViewComponent {
9
- constructor() {
10
- this.items = [];
11
- /**
12
- * Se `true`, ignora `items` e renderiza só `<ng-content />` dentro de um `<dl>`
13
- * (usar com `app-details-field` para valores ricos).
14
- */
15
- this.projectionOnly = false;
16
- /** `2` ativa grade em dois tempos em telas largas. */
17
- this.columns = 1;
18
- this.loading = false;
19
- /** Texto quando `items` está vazio, sem `loading` e sem `projectionOnly`. */
20
- this.emptyMessage = 'Sem dados para mostrar.';
21
- this.emDash = '—';
22
- /** Linhas de skeleton em modo loading. */
23
- this.skeletonPairs = [0, 1, 2, 3];
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DetailsViewComponent, isStandalone: true, selector: "app-details-view", inputs: { items: "items", projectionOnly: ["projectionOnly", "projectionOnly", booleanAttribute], columns: "columns", loading: ["loading", "loading", booleanAttribute], emptyMessage: "emptyMessage" }, ngImport: i0, template: "<section\r\n class=\"details-view\"\r\n [class.details-view--2col]=\"columns === 2\"\r\n [attr.aria-busy]=\"loading ? true : null\"\r\n>\r\n @if (loading) {\r\n <div class=\"details-view__loading\" aria-live=\"polite\">\r\n @for (_ of skeletonPairs; track $index) {\r\n <div class=\"details-view__skeleton-pair\">\r\n <app-skeleton-text [lines]=\"1\" lineHeight=\"0.65rem\" lastLineWidthPct=\"28\" />\r\n <app-skeleton-text [lines]=\"1\" lineHeight=\"0.85rem\" lastLineWidthPct=\"72\" />\r\n </div>\r\n }\r\n </div>\r\n } @else if (projectionOnly) {\r\n <dl\r\n class=\"details-view__list\"\r\n [class.details-view__list--2col]=\"columns === 2\"\r\n >\r\n <ng-content />\r\n </dl>\r\n } @else if (items.length > 0) {\r\n <dl\r\n class=\"details-view__list\"\r\n [class.details-view__list--2col]=\"columns === 2\"\r\n >\r\n @for (item of items; track $index) {\r\n <div class=\"details-view__pair\">\r\n <dt class=\"details-view__term\">{{ item.label }}</dt>\r\n <dd class=\"details-view__def\">{{ item.value?.trim() ? item.value : emDash }}</dd>\r\n </div>\r\n }\r\n </dl>\r\n } @else {\r\n <p class=\"details-view__empty\">{{ emptyMessage }}</p>\r\n }\r\n</section>\r\n", styles: [":host{display:block;width:100%;min-width:0;box-sizing:border-box}.details-view{width:100%;min-width:0}.details-view__loading{display:flex;flex-direction:column;gap:.75rem}.details-view__skeleton-pair{display:flex;flex-direction:column;gap:.35rem}.details-view__list{display:grid;grid-template-columns:minmax(0,1fr);gap:.85rem 1.25rem;margin:0;min-width:0}@media (min-width: 640px){.details-view__list--2col{grid-template-columns:repeat(2,minmax(0,1fr))}}.details-view__pair{display:grid;grid-template-columns:minmax(0,1fr);gap:.25rem;min-width:0}.details-view__term{margin:0;padding:0;font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--app-color-text-muted, #6b8299);line-height:1.35}.details-view__def{margin:0;padding:0;font-size:.9rem;font-weight:500;color:var(--app-color-text-primary, #1a2f45);line-height:1.45;word-break:break-word;min-width:0}.details-view__empty{margin:0;font-size:.88rem;color:var(--app-color-text-muted, #6b8299);line-height:1.45}\n"], dependencies: [{ kind: "component", type: SkeletonTextComponent, selector: "app-skeleton-text", inputs: ["lines", "lastLineWidthPct", "lineHeight", "gap", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailsViewComponent, decorators: [{
29
- type: Component,
30
- args: [{ selector: 'app-details-view', standalone: true, imports: [SkeletonTextComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\r\n class=\"details-view\"\r\n [class.details-view--2col]=\"columns === 2\"\r\n [attr.aria-busy]=\"loading ? true : null\"\r\n>\r\n @if (loading) {\r\n <div class=\"details-view__loading\" aria-live=\"polite\">\r\n @for (_ of skeletonPairs; track $index) {\r\n <div class=\"details-view__skeleton-pair\">\r\n <app-skeleton-text [lines]=\"1\" lineHeight=\"0.65rem\" lastLineWidthPct=\"28\" />\r\n <app-skeleton-text [lines]=\"1\" lineHeight=\"0.85rem\" lastLineWidthPct=\"72\" />\r\n </div>\r\n }\r\n </div>\r\n } @else if (projectionOnly) {\r\n <dl\r\n class=\"details-view__list\"\r\n [class.details-view__list--2col]=\"columns === 2\"\r\n >\r\n <ng-content />\r\n </dl>\r\n } @else if (items.length > 0) {\r\n <dl\r\n class=\"details-view__list\"\r\n [class.details-view__list--2col]=\"columns === 2\"\r\n >\r\n @for (item of items; track $index) {\r\n <div class=\"details-view__pair\">\r\n <dt class=\"details-view__term\">{{ item.label }}</dt>\r\n <dd class=\"details-view__def\">{{ item.value?.trim() ? item.value : emDash }}</dd>\r\n </div>\r\n }\r\n </dl>\r\n } @else {\r\n <p class=\"details-view__empty\">{{ emptyMessage }}</p>\r\n }\r\n</section>\r\n", styles: [":host{display:block;width:100%;min-width:0;box-sizing:border-box}.details-view{width:100%;min-width:0}.details-view__loading{display:flex;flex-direction:column;gap:.75rem}.details-view__skeleton-pair{display:flex;flex-direction:column;gap:.35rem}.details-view__list{display:grid;grid-template-columns:minmax(0,1fr);gap:.85rem 1.25rem;margin:0;min-width:0}@media (min-width: 640px){.details-view__list--2col{grid-template-columns:repeat(2,minmax(0,1fr))}}.details-view__pair{display:grid;grid-template-columns:minmax(0,1fr);gap:.25rem;min-width:0}.details-view__term{margin:0;padding:0;font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--app-color-text-muted, #6b8299);line-height:1.35}.details-view__def{margin:0;padding:0;font-size:.9rem;font-weight:500;color:var(--app-color-text-primary, #1a2f45);line-height:1.45;word-break:break-word;min-width:0}.details-view__empty{margin:0;font-size:.88rem;color:var(--app-color-text-muted, #6b8299);line-height:1.45}\n"] }]
31
- }], propDecorators: { items: [{
32
- type: Input
33
- }], projectionOnly: [{
34
- type: Input,
35
- args: [{ transform: booleanAttribute }]
36
- }], columns: [{
37
- type: Input
38
- }], loading: [{
39
- type: Input,
40
- args: [{ transform: booleanAttribute }]
41
- }], emptyMessage: [{
42
- type: Input
43
- }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1kaXNwbGF5L2RldGFpbHMtdmlldy9kZXRhaWxzLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvZGV0YWlscy12aWV3L2RldGFpbHMtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUd2RTs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sb0JBQW9CO0lBUmpDO1FBU1csVUFBSyxHQUErQixFQUFFLENBQUM7UUFFaEQ7OztXQUdHO1FBQ3FDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRS9ELHNEQUFzRDtRQUM3QyxZQUFPLEdBQVUsQ0FBQyxDQUFDO1FBRVksWUFBTyxHQUFHLEtBQUssQ0FBQztRQUV4RCw2RUFBNkU7UUFDcEUsaUJBQVksR0FBRyx5QkFBeUIsQ0FBQztRQUV6QyxXQUFNLEdBQUcsR0FBRyxDQUFDO1FBRXRCLDBDQUEwQztRQUNqQyxrQkFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDdkM7K0dBckJZLG9CQUFvQjttR0FBcEIsb0JBQW9CLG1JQU9YLGdCQUFnQix1REFLaEIsZ0JBQWdCLDJEQ2pDdEMsb3lDQXFDQSxpaUNEckJZLHFCQUFxQjs7NEZBS3BCLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMscUJBQXFCLENBQUMsbUJBR2YsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQU1rQyxjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUc3QixPQUFPO3NCQUFmLEtBQUs7Z0JBRWtDLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRzdCLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBib29sZWFuQXR0cmlidXRlLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTa2VsZXRvblRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9sb2FkaW5nL3NrZWxldG9uLWxvYWRpbmcnO1xyXG5pbXBvcnQgdHlwZSB7IERldGFpbHNWaWV3SXRlbSB9IGZyb20gJy4uL19tb2RlbHMvZGF0YS1kaXNwbGF5Lm1vZGVscyc7XHJcblxyXG4vKipcclxuICogTGlzdGEgZGUgZGVzY3Jpw6fDo28gKGNoYXZlIOKGkiB2YWxvcikgcGFyYSBkZXRhbGhlcywgZHJhd2VyIG91IHJlc3Vtby5cclxuICogTW9kbyAqKmxpc3RhKio6IGBbaXRlbXNdYDsgbW9kbyAqKmNvbXBvc3RvKio6IHByb2plY3RhciBgYXBwLWRldGFpbHMtZmllbGRgIG5vIGNvbnRlw7pkby5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRldGFpbHMtdmlldycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbU2tlbGV0b25UZXh0Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGV0YWlscy12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGV0YWlscy12aWV3LmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERldGFpbHNWaWV3Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBpdGVtczogcmVhZG9ubHkgRGV0YWlsc1ZpZXdJdGVtW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2UgYHRydWVgLCBpZ25vcmEgYGl0ZW1zYCBlIHJlbmRlcml6YSBzw7MgYDxuZy1jb250ZW50IC8+YCBkZW50cm8gZGUgdW0gYDxkbD5gXHJcbiAgICogKHVzYXIgY29tIGBhcHAtZGV0YWlscy1maWVsZGAgcGFyYSB2YWxvcmVzIHJpY29zKS5cclxuICAgKi9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcHJvamVjdGlvbk9ubHkgPSBmYWxzZTtcclxuXHJcbiAgLyoqIGAyYCBhdGl2YSBncmFkZSBlbSBkb2lzIHRlbXBvcyBlbSB0ZWxhcyBsYXJnYXMuICovXHJcbiAgQElucHV0KCkgY29sdW1uczogMSB8IDIgPSAxO1xyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAvKiogVGV4dG8gcXVhbmRvIGBpdGVtc2AgZXN0w6EgdmF6aW8sIHNlbSBgbG9hZGluZ2AgZSBzZW0gYHByb2plY3Rpb25Pbmx5YC4gKi9cclxuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAnU2VtIGRhZG9zIHBhcmEgbW9zdHJhci4nO1xyXG5cclxuICByZWFkb25seSBlbURhc2ggPSAn4oCUJztcclxuXHJcbiAgLyoqIExpbmhhcyBkZSBza2VsZXRvbiBlbSBtb2RvIGxvYWRpbmcuICovXHJcbiAgcmVhZG9ubHkgc2tlbGV0b25QYWlycyA9IFswLCAxLCAyLCAzXTtcclxufVxyXG4iLCI8c2VjdGlvblxyXG4gIGNsYXNzPVwiZGV0YWlscy12aWV3XCJcclxuICBbY2xhc3MuZGV0YWlscy12aWV3LS0yY29sXT1cImNvbHVtbnMgPT09IDJcIlxyXG4gIFthdHRyLmFyaWEtYnVzeV09XCJsb2FkaW5nID8gdHJ1ZSA6IG51bGxcIlxyXG4+XHJcbiAgQGlmIChsb2FkaW5nKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy12aWV3X19sb2FkaW5nXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XHJcbiAgICAgIEBmb3IgKF8gb2Ygc2tlbGV0b25QYWlyczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtdmlld19fc2tlbGV0b24tcGFpclwiPlxyXG4gICAgICAgICAgPGFwcC1za2VsZXRvbi10ZXh0IFtsaW5lc109XCIxXCIgbGluZUhlaWdodD1cIjAuNjVyZW1cIiBsYXN0TGluZVdpZHRoUGN0PVwiMjhcIiAvPlxyXG4gICAgICAgICAgPGFwcC1za2VsZXRvbi10ZXh0IFtsaW5lc109XCIxXCIgbGluZUhlaWdodD1cIjAuODVyZW1cIiBsYXN0TGluZVdpZHRoUGN0PVwiNzJcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9IEBlbHNlIGlmIChwcm9qZWN0aW9uT25seSkge1xyXG4gICAgPGRsXHJcbiAgICAgIGNsYXNzPVwiZGV0YWlscy12aWV3X19saXN0XCJcclxuICAgICAgW2NsYXNzLmRldGFpbHMtdmlld19fbGlzdC0tMmNvbF09XCJjb2x1bW5zID09PSAyXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgIDwvZGw+XHJcbiAgfSBAZWxzZSBpZiAoaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgPGRsXHJcbiAgICAgIGNsYXNzPVwiZGV0YWlscy12aWV3X19saXN0XCJcclxuICAgICAgW2NsYXNzLmRldGFpbHMtdmlld19fbGlzdC0tMmNvbF09XCJjb2x1bW5zID09PSAyXCJcclxuICAgID5cclxuICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtdmlld19fcGFpclwiPlxyXG4gICAgICAgICAgPGR0IGNsYXNzPVwiZGV0YWlscy12aWV3X190ZXJtXCI+e3sgaXRlbS5sYWJlbCB9fTwvZHQ+XHJcbiAgICAgICAgICA8ZGQgY2xhc3M9XCJkZXRhaWxzLXZpZXdfX2RlZlwiPnt7IGl0ZW0udmFsdWU/LnRyaW0oKSA/IGl0ZW0udmFsdWUgOiBlbURhc2ggfX08L2RkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2RsPlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPHAgY2xhc3M9XCJkZXRhaWxzLXZpZXdfX2VtcHR5XCI+e3sgZW1wdHlNZXNzYWdlIH19PC9wPlxyXG4gIH1cclxuPC9zZWN0aW9uPlxyXG4iXX0=
@@ -1,19 +0,0 @@
1
- /**
2
- * HTML injetado no AG Grid (`overlayNoRowsTemplate`) — manter alinhado ao markup de {@link EmptyStateComponent}.
3
- */
4
- export function escapeHtml(text) {
5
- return text
6
- .replace(/&/g, '&amp;')
7
- .replace(/</g, '&lt;')
8
- .replace(/>/g, '&gt;')
9
- .replace(/"/g, '&quot;')
10
- .replace(/'/g, '&#39;');
11
- }
12
- export function buildEmptyStateOverlayHtml(message) {
13
- const safe = escapeHtml(message);
14
- return (`<div class="empty-state empty-state--embed" role="status">` +
15
- `<span class="empty-state__icon" aria-hidden="true">` +
16
- `<i class="fa-solid fa-inbox"></i></span>` +
17
- `<p class="empty-state__message">${safe}</p></div>`);
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUtb3ZlcmxheS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUtb3ZlcmxheS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFZO0lBQ3JDLE9BQU8sSUFBSTtTQUNSLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO1NBQ3RCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO1NBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxPQUFlO0lBQ3hELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxPQUFPLENBQ0wsNERBQTREO1FBQzVELHFEQUFxRDtRQUNyRCwwQ0FBMEM7UUFDMUMsbUNBQW1DLElBQUksWUFBWSxDQUNwRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBIVE1MIGluamV0YWRvIG5vIEFHIEdyaWQgKGBvdmVybGF5Tm9Sb3dzVGVtcGxhdGVgKSDigJQgbWFudGVyIGFsaW5oYWRvIGFvIG1hcmt1cCBkZSB7QGxpbmsgRW1wdHlTdGF0ZUNvbXBvbmVudH0uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIHJldHVybiB0ZXh0XHJcbiAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxyXG4gICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxyXG4gICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxyXG4gICAgLnJlcGxhY2UoLycvZywgJyYjMzk7Jyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVtcHR5U3RhdGVPdmVybGF5SHRtbChtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IHNhZmUgPSBlc2NhcGVIdG1sKG1lc3NhZ2UpO1xyXG4gIHJldHVybiAoXHJcbiAgICBgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlIGVtcHR5LXN0YXRlLS1lbWJlZFwiIHJvbGU9XCJzdGF0dXNcIj5gICtcclxuICAgIGA8c3BhbiBjbGFzcz1cImVtcHR5LXN0YXRlX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+YCArXHJcbiAgICBgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1pbmJveFwiPjwvaT48L3NwYW4+YCArXHJcbiAgICBgPHAgY2xhc3M9XCJlbXB0eS1zdGF0ZV9fbWVzc2FnZVwiPiR7c2FmZX08L3A+PC9kaXY+YFxyXG4gICk7XHJcbn1cclxuIl19
@@ -1,30 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, booleanAttribute } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class EmptyStateComponent {
4
- constructor() {
5
- /** Classe Font Awesome do ícone (ex.: `fa-solid fa-inbox`). */
6
- this.iconClass = 'fa-solid fa-inbox';
7
- this.variant = 'default';
8
- /** Padding reduzido (ex.: células de tabela, listas densas). */
9
- this.embed = false;
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EmptyStateComponent, isStandalone: true, selector: "app-empty-state", inputs: { message: "message", description: "description", iconClass: "iconClass", variant: "variant", embed: ["embed", "embed", booleanAttribute] }, ngImport: i0, template: "<div\n class=\"empty-state\"\n [class.empty-state--default]=\"variant === 'default'\"\n [class.empty-state--embed]=\"embed\"\n role=\"status\"\n>\n <span class=\"empty-state__icon\" aria-hidden=\"true\">\n <i [class]=\"iconClass\"></i>\n </span>\n <p class=\"empty-state__message\">{{ message }}</p>\n @if (description?.trim()) {\n <p class=\"empty-state__description\">{{ description }}</p>\n }\n</div>\n", styles: [":host{display:block;width:100%}.empty-state{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;min-height:5.5rem;padding:1.25rem 1rem;border-radius:10px;border:1px dashed var(--app-color-empty-border, rgba(26, 47, 69, .14));background:var(--app-color-empty-bg, rgba(243, 246, 249, .55));color:var(--app-color-tab-inactive-text, #51667a);font-size:.9rem;text-align:center;line-height:1.4}.empty-state__icon{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;font-size:1rem;color:var(--app-color-text-secondary, rgba(61, 82, 102, .85));background:var(--app-color-skeleton-track, rgba(26, 47, 69, .06));border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08))}.empty-state__message{margin:0;max-width:28rem;font-size:.9rem;font-weight:500;color:var(--app-color-tab-inactive-text, #51667a)}.empty-state__description{margin:0;max-width:28rem;font-size:.8rem;color:var(--app-color-text-muted, #6b8299)}.empty-state--embed{min-height:4.5rem;padding:1rem .75rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmptyStateComponent, decorators: [{
15
- type: Component,
16
- args: [{ selector: 'app-empty-state', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"empty-state\"\n [class.empty-state--default]=\"variant === 'default'\"\n [class.empty-state--embed]=\"embed\"\n role=\"status\"\n>\n <span class=\"empty-state__icon\" aria-hidden=\"true\">\n <i [class]=\"iconClass\"></i>\n </span>\n <p class=\"empty-state__message\">{{ message }}</p>\n @if (description?.trim()) {\n <p class=\"empty-state__description\">{{ description }}</p>\n }\n</div>\n", styles: [":host{display:block;width:100%}.empty-state{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;min-height:5.5rem;padding:1.25rem 1rem;border-radius:10px;border:1px dashed var(--app-color-empty-border, rgba(26, 47, 69, .14));background:var(--app-color-empty-bg, rgba(243, 246, 249, .55));color:var(--app-color-tab-inactive-text, #51667a);font-size:.9rem;text-align:center;line-height:1.4}.empty-state__icon{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;font-size:1rem;color:var(--app-color-text-secondary, rgba(61, 82, 102, .85));background:var(--app-color-skeleton-track, rgba(26, 47, 69, .06));border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08))}.empty-state__message{margin:0;max-width:28rem;font-size:.9rem;font-weight:500;color:var(--app-color-tab-inactive-text, #51667a)}.empty-state__description{margin:0;max-width:28rem;font-size:.8rem;color:var(--app-color-text-muted, #6b8299)}.empty-state--embed{min-height:4.5rem;padding:1rem .75rem}\n"] }]
17
- }], propDecorators: { message: [{
18
- type: Input,
19
- args: [{ required: true }]
20
- }], description: [{
21
- type: Input
22
- }], iconClass: [{
23
- type: Input
24
- }], variant: [{
25
- type: Input
26
- }], embed: [{
27
- type: Input,
28
- args: [{ transform: booleanAttribute }]
29
- }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzVGLE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFVRSwrREFBK0Q7UUFDdEQsY0FBUyxHQUFHLG1CQUFtQixDQUFDO1FBQ2hDLFlBQU8sR0FBYyxTQUFTLENBQUM7UUFFeEMsZ0VBQWdFO1FBQ3hCLFVBQUssR0FBRyxLQUFLLENBQUM7S0FDdkQ7K0dBVFksbUJBQW1CO21HQUFuQixtQkFBbUIsbUxBUVYsZ0JBQWdCLDZCQ2pCdEMsb2FBY0E7OzRGRExhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLE9BQU87c0JBQWpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdrQyxLQUFLO3NCQUE1QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVtcHR5LXN0YXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVtcHR5U3RhdGVDb21wb25lbnQge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBtZXNzYWdlITogc3RyaW5nO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIENsYXNzZSBGb250IEF3ZXNvbWUgZG8gw61jb25lIChleC46IGBmYS1zb2xpZCBmYS1pbmJveGApLiAqL1xuICBASW5wdXQoKSBpY29uQ2xhc3MgPSAnZmEtc29saWQgZmEtaW5ib3gnO1xuICBASW5wdXQoKSB2YXJpYW50OiAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG5cbiAgLyoqIFBhZGRpbmcgcmVkdXppZG8gKGV4LjogY8OpbHVsYXMgZGUgdGFiZWxhLCBsaXN0YXMgZGVuc2FzKS4gKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGVtYmVkID0gZmFsc2U7XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZW1wdHktc3RhdGVcIlxuICBbY2xhc3MuZW1wdHktc3RhdGUtLWRlZmF1bHRdPVwidmFyaWFudCA9PT0gJ2RlZmF1bHQnXCJcbiAgW2NsYXNzLmVtcHR5LXN0YXRlLS1lbWJlZF09XCJlbWJlZFwiXG4gIHJvbGU9XCJzdGF0dXNcIlxuPlxuICA8c3BhbiBjbGFzcz1cImVtcHR5LXN0YXRlX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgPGkgW2NsYXNzXT1cImljb25DbGFzc1wiPjwvaT5cbiAgPC9zcGFuPlxuICA8cCBjbGFzcz1cImVtcHR5LXN0YXRlX19tZXNzYWdlXCI+e3sgbWVzc2FnZSB9fTwvcD5cbiAgQGlmIChkZXNjcmlwdGlvbj8udHJpbSgpKSB7XG4gIDxwIGNsYXNzPVwiZW1wdHktc3RhdGVfX2Rlc2NyaXB0aW9uXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,19 +0,0 @@
1
- export { DataGridComponent, } from './data-grid/data-grid.component';
2
- export { DataToolbarComponent } from './data-toolbar/data-toolbar.component';
3
- export { AdaptiveDataViewComponent, ADAPTIVE_DATA_VIEW_MOBILE_QUERY, } from './adaptive-data-view/adaptive-data-view.component';
4
- export { DataCardComponent } from './data-card/data-card.component';
5
- export { CardListComponent, } from './card-list/card-list.component';
6
- export { EmptyStateComponent } from './empty-state/empty-state.component';
7
- export { buildEmptyStateOverlayHtml, escapeHtml, } from './empty-state/empty-state-overlay.util';
8
- export { StatusBadgeComponent } from './status-badge/status-badge.component';
9
- export { DetailsViewComponent } from './details-view/details-view.component';
10
- export { DetailsFieldComponent } from './details-field/details-field.component';
11
- export { StatCardComponent } from './stat-card/stat-card.component';
12
- export { ListItemComponent } from './list-item/list-item.component';
13
- export { DataListComponent } from './data-list/data-list.component';
14
- export { DashboardSectionComponent } from './dashboard-section/dashboard-section.component';
15
- export { TableToolbarComponent } from './table-toolbar/table-toolbar.component';
16
- export { TableEmptyStateComponent } from './table-empty-state/table-empty-state.component';
17
- /** Blocos de skeleton reutilizáveis (ver `src/app/loading/skeleton-loading`). */
18
- export { SkeletonBlockComponent, SkeletonTextComponent, SkeletonListComponent, SkeletonCardComponent, SkeletonTableComponent, SkeletonFieldShellComponent, } from '../loading/skeleton-loading';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RhdGEtZGlzcGxheS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEdBRWxCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUNMLHlCQUF5QixFQUN6QiwrQkFBK0IsR0FFaEMsTUFBTSxtREFBbUQsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsaUJBQWlCLEdBRWxCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixVQUFVLEdBQ1gsTUFBTSx3Q0FBd0MsQ0FBQztBQUdoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQVEzRixpRkFBaUY7QUFDakYsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsMkJBQTJCLEdBRTVCLE1BQU0sNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBEYXRhR3JpZENvbXBvbmVudCxcbiAgdHlwZSBEYXRhR3JpZFBhZ2luYXRpb25DaGFuZ2VFdmVudCxcbn0gZnJvbSAnLi9kYXRhLWdyaWQvZGF0YS1ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQgeyBEYXRhVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS10b29sYmFyL2RhdGEtdG9vbGJhci5jb21wb25lbnQnO1xuZXhwb3J0IHtcbiAgQWRhcHRpdmVEYXRhVmlld0NvbXBvbmVudCxcbiAgQURBUFRJVkVfREFUQV9WSUVXX01PQklMRV9RVUVSWSxcbiAgdHlwZSBBZGFwdGl2ZURhdGFWaWV3TW9kZSxcbn0gZnJvbSAnLi9hZGFwdGl2ZS1kYXRhLXZpZXcvYWRhcHRpdmUtZGF0YS12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgeyBEYXRhQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1jYXJkL2RhdGEtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0IHtcbiAgQ2FyZExpc3RDb21wb25lbnQsXG4gIHR5cGUgQ2FyZExpc3REYXRhTW9kZSxcbn0gZnJvbSAnLi9jYXJkLWxpc3QvY2FyZC1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0IHtcbiAgYnVpbGRFbXB0eVN0YXRlT3ZlcmxheUh0bWwsXG4gIGVzY2FwZUh0bWwsXG59IGZyb20gJy4vZW1wdHktc3RhdGUvZW1wdHktc3RhdGUtb3ZlcmxheS51dGlsJztcbmV4cG9ydCB0eXBlIHsgRGF0YUdyaWRDb2x1bW4sIENhcmRJdGVtVmlldywgQ2FyZExpc3RNYXBGbiB9IGZyb20gJy4vX21vZGVscyc7XG5cbmV4cG9ydCB7IFN0YXR1c0JhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9zdGF0dXMtYmFkZ2Uvc3RhdHVzLWJhZGdlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBEZXRhaWxzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vZGV0YWlscy12aWV3L2RldGFpbHMtdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHsgRGV0YWlsc0ZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9kZXRhaWxzLWZpZWxkL2RldGFpbHMtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7IFN0YXRDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9zdGF0LWNhcmQvc3RhdC1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgeyBMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0IHsgRGF0YUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtbGlzdC9kYXRhLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCB7IERhc2hib2FyZFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1zZWN0aW9uL2Rhc2hib2FyZC1zZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBUYWJsZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLXRvb2xiYXIvdGFibGUtdG9vbGJhci5jb21wb25lbnQnO1xuZXhwb3J0IHsgVGFibGVFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1lbXB0eS1zdGF0ZS90YWJsZS1lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUge1xuICBTdGF0dXNCYWRnZVZhcmlhbnQsXG4gIFN0YXR1c0JhZGdlU2l6ZSxcbiAgRGV0YWlsc1ZpZXdJdGVtLFxuICBTdGF0Q2FyZERlbHRhVG9uZSxcbn0gZnJvbSAnLi9fbW9kZWxzL2RhdGEtZGlzcGxheS5tb2RlbHMnO1xuXG4vKiogQmxvY29zIGRlIHNrZWxldG9uIHJldXRpbGl6w6F2ZWlzICh2ZXIgYHNyYy9hcHAvbG9hZGluZy9za2VsZXRvbi1sb2FkaW5nYCkuICovXG5leHBvcnQge1xuICBTa2VsZXRvbkJsb2NrQ29tcG9uZW50LFxuICBTa2VsZXRvblRleHRDb21wb25lbnQsXG4gIFNrZWxldG9uTGlzdENvbXBvbmVudCxcbiAgU2tlbGV0b25DYXJkQ29tcG9uZW50LFxuICBTa2VsZXRvblRhYmxlQ29tcG9uZW50LFxuICBTa2VsZXRvbkZpZWxkU2hlbGxDb21wb25lbnQsXG4gIHR5cGUgU2tlbGV0b25GaWVsZFNoZWxsVmFyaWFudCxcbn0gZnJvbSAnLi4vbG9hZGluZy9za2VsZXRvbi1sb2FkaW5nJztcbiJdfQ==
@@ -1,59 +0,0 @@
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==
@@ -1,59 +0,0 @@
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==
@@ -1,41 +0,0 @@
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=
@@ -1,31 +0,0 @@
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
@@ -1,22 +0,0 @@
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
@@ -1,8 +0,0 @@
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=
@@ -1,22 +0,0 @@
1
- import { lockPageScrollAppDialog, unlockPageScrollAppDialog, } from '../../_utils/scroll/body-scroll-lock.util';
2
- /**
3
- * Substituto do `BlockScrollStrategy` do CDK para modais Structra (Dialog de confirmação,
4
- * loading, etc.): activa {@link lockPageScrollAppDialog} em vez de `cdk-global-scrollblock`
5
- * com `html` deslocado — alinha o backdrop do overlay ao viewport real.
6
- */
7
- export class AppLibLightBlockScrollStrategy {
8
- constructor() {
9
- this.snapshot = null;
10
- }
11
- attach(_overlayRef) { }
12
- enable() {
13
- this.snapshot = lockPageScrollAppDialog();
14
- }
15
- disable() {
16
- if (this.snapshot !== null) {
17
- unlockPageScrollAppDialog(this.snapshot);
18
- this.snapshot = null;
19
- }
20
- }
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxpYi1saWdodC1ibG9jay1zY3JvbGwtc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpYWxvZ3MvX3V0aWxzL2FwcC1saWItbGlnaHQtYmxvY2stc2Nyb2xsLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIseUJBQXlCLEdBRTFCLE1BQU0sMkNBQTJDLENBQUM7QUFFbkQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyw4QkFBOEI7SUFBM0M7UUFDVSxhQUFRLEdBQXVDLElBQUksQ0FBQztJQWM5RCxDQUFDO0lBWkMsTUFBTSxDQUFDLFdBQXVCLElBQVMsQ0FBQztJQUV4QyxNQUFNO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzNCLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPdmVybGF5UmVmLCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHtcclxuICBsb2NrUGFnZVNjcm9sbEFwcERpYWxvZyxcclxuICB1bmxvY2tQYWdlU2Nyb2xsQXBwRGlhbG9nLFxyXG4gIHR5cGUgQXBwRGlhbG9nU2Nyb2xsTG9ja1NuYXBzaG90LFxyXG59IGZyb20gJy4uLy4uL191dGlscy9zY3JvbGwvYm9keS1zY3JvbGwtbG9jay51dGlsJztcclxuXHJcbi8qKlxyXG4gKiBTdWJzdGl0dXRvIGRvIGBCbG9ja1Njcm9sbFN0cmF0ZWd5YCBkbyBDREsgcGFyYSBtb2RhaXMgU3RydWN0cmEgKERpYWxvZyBkZSBjb25maXJtYcOnw6NvLFxyXG4gKiBsb2FkaW5nLCBldGMuKTogYWN0aXZhIHtAbGluayBsb2NrUGFnZVNjcm9sbEFwcERpYWxvZ30gZW0gdmV6IGRlIGBjZGstZ2xvYmFsLXNjcm9sbGJsb2NrYFxyXG4gKiBjb20gYGh0bWxgIGRlc2xvY2FkbyDigJQgYWxpbmhhIG8gYmFja2Ryb3AgZG8gb3ZlcmxheSBhbyB2aWV3cG9ydCByZWFsLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFwcExpYkxpZ2h0QmxvY2tTY3JvbGxTdHJhdGVneSBpbXBsZW1lbnRzIFNjcm9sbFN0cmF0ZWd5IHtcclxuICBwcml2YXRlIHNuYXBzaG90OiBBcHBEaWFsb2dTY3JvbGxMb2NrU25hcHNob3QgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgYXR0YWNoKF9vdmVybGF5UmVmOiBPdmVybGF5UmVmKTogdm9pZCB7fVxyXG5cclxuICBlbmFibGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNuYXBzaG90ID0gbG9ja1BhZ2VTY3JvbGxBcHBEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIGRpc2FibGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zbmFwc2hvdCAhPT0gbnVsbCkge1xyXG4gICAgICB1bmxvY2tQYWdlU2Nyb2xsQXBwRGlhbG9nKHRoaXMuc25hcHNob3QpO1xyXG4gICAgICB0aGlzLnNuYXBzaG90ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,6 +0,0 @@
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=