structra-ui 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/package.json +6 -4
  2. package/app/_utils/date-pt-br.utils.d.ts +0 -24
  3. package/app/_utils/decimal-br.utils.d.ts +0 -52
  4. package/app/_utils/estados-br.data.d.ts +0 -10
  5. package/app/_utils/integer-br.utils.d.ts +0 -17
  6. package/app/_utils/integer-value.utils.d.ts +0 -5
  7. package/app/_utils/scroll/body-scroll-lock.util.d.ts +0 -44
  8. package/app/app-shell/_models/breadcrumb-item.model.d.ts +0 -13
  9. package/app/app-shell/app-shell-sidebar-template.directive.d.ts +0 -19
  10. package/app/app-shell/app-shell.component.d.ts +0 -41
  11. package/app/app-shell/breadcrumb/breadcrumb.component.d.ts +0 -10
  12. package/app/app-shell/index.d.ts +0 -19
  13. package/app/app-shell/sidebar/app-sidebar-toolbar.directive.d.ts +0 -14
  14. package/app/app-shell/sidebar/shell-sidebar-toggle.component.d.ts +0 -19
  15. package/app/app-shell/sidebar/sidebar.component.d.ts +0 -36
  16. package/app/app-shell/sidebar-reveal.constants.d.ts +0 -8
  17. package/app/app-shell/topbar/topbar.component.d.ts +0 -8
  18. package/app/app-shell/user-menu/user-menu.component.d.ts +0 -25
  19. package/app/buttons/base-button/base-button.component.d.ts +0 -43
  20. package/app/buttons/index.d.ts +0 -1
  21. package/app/data-display/_models/card-item-view.model.d.ts +0 -8
  22. package/app/data-display/_models/data-display.models.d.ts +0 -11
  23. package/app/data-display/_models/data-grid-column.model.d.ts +0 -13
  24. package/app/data-display/_models/index.d.ts +0 -2
  25. package/app/data-display/adaptive-data-view/adaptive-data-view.component.d.ts +0 -53
  26. package/app/data-display/card-list/card-list.component.d.ts +0 -70
  27. package/app/data-display/dashboard-section/dashboard-section.component.d.ts +0 -12
  28. package/app/data-display/data-card/data-card.component.d.ts +0 -16
  29. package/app/data-display/data-grid/data-grid-actions-cell-renderer.component.d.ts +0 -21
  30. package/app/data-display/data-grid/data-grid.component.d.ts +0 -76
  31. package/app/data-display/data-list/data-list.component.d.ts +0 -18
  32. package/app/data-display/data-toolbar/data-toolbar.component.d.ts +0 -6
  33. package/app/data-display/details-field/details-field.component.d.ts +0 -10
  34. package/app/data-display/details-view/details-view.component.d.ts +0 -26
  35. package/app/data-display/empty-state/empty-state-overlay.util.d.ts +0 -5
  36. package/app/data-display/empty-state/empty-state.component.d.ts +0 -13
  37. package/app/data-display/index.d.ts +0 -20
  38. package/app/data-display/list-item/list-item.component.d.ts +0 -22
  39. package/app/data-display/stat-card/stat-card.component.d.ts +0 -23
  40. package/app/data-display/status-badge/status-badge.component.d.ts +0 -17
  41. package/app/data-display/table-empty-state/table-empty-state.component.d.ts +0 -14
  42. package/app/data-display/table-toolbar/table-toolbar.component.d.ts +0 -11
  43. package/app/dialogs/_models/lib-dialog-size.model.d.ts +0 -6
  44. package/app/dialogs/_utils/app-lib-light-block-scroll-strategy.d.ts +0 -12
  45. package/app/dialogs/_utils/lib-dialog-panel-classes.d.ts +0 -3
  46. package/app/dialogs/app-dialog/app-dialog.component.d.ts +0 -71
  47. package/app/dialogs/app-dialog/dialog-footer.directive.d.ts +0 -6
  48. package/app/dialogs/confirm-dialog/confirm-dialog-data.model.d.ts +0 -13
  49. package/app/dialogs/confirm-dialog/confirm-dialog.component.d.ts +0 -20
  50. package/app/dialogs/confirm-dialog/confirm-dialog.service.d.ts +0 -17
  51. package/app/dialogs/index.d.ts +0 -14
  52. package/app/dialogs/loading-dialog/loading-dialog-data.model.d.ts +0 -7
  53. package/app/dialogs/loading-dialog/loading-dialog.component.d.ts +0 -9
  54. package/app/dialogs/loading-dialog/loading-dialog.service.d.ts +0 -15
  55. package/app/dialogs/toast/toast-host.component.d.ts +0 -13
  56. package/app/dialogs/toast/toast.models.d.ts +0 -26
  57. package/app/dialogs/toast/toast.service.d.ts +0 -17
  58. package/app/fields/checkbox-fields/_base/boolean-field.directive.d.ts +0 -42
  59. package/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.d.ts +0 -8
  60. package/app/fields/checkbox-fields/index.d.ts +0 -3
  61. package/app/fields/checkbox-fields/switch-field/switch-field.component.d.ts +0 -8
  62. package/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.d.ts +0 -62
  63. package/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.d.ts +0 -40
  64. package/app/fields/dropdown-fields/_base/dropdown-option-field.base.d.ts +0 -47
  65. package/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.d.ts +0 -18
  66. package/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.d.ts +0 -13
  67. package/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.d.ts +0 -7
  68. package/app/fields/dropdown-fields/_models/index.d.ts +0 -4
  69. package/app/fields/dropdown-fields/_models/select-option.model.d.ts +0 -5
  70. package/app/fields/dropdown-fields/_models/select-pagination.model.d.ts +0 -6
  71. package/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.d.ts +0 -84
  72. package/app/fields/dropdown-fields/index.d.ts +0 -7
  73. package/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.d.ts +0 -49
  74. package/app/fields/dropdown-fields/select-field/select-field.component.d.ts +0 -54
  75. package/app/fields/input-fields/_base/base-field.component.d.ts +0 -60
  76. package/app/fields/input-fields/_base/base-field.directive.d.ts +0 -102
  77. package/app/fields/input-fields/_base/masked-text-field.base.d.ts +0 -34
  78. package/app/fields/input-fields/_base/ng-control-field.directive.d.ts +0 -43
  79. package/app/fields/input-fields/_models/field-common-inputs.model.d.ts +0 -49
  80. package/app/fields/input-fields/_models/index.d.ts +0 -1
  81. package/app/fields/input-fields/_utils/mask-complete.validators.d.ts +0 -18
  82. package/app/fields/input-fields/_utils/mask-format.utils.d.ts +0 -13
  83. package/app/fields/input-fields/cep-field/cep-field.component.d.ts +0 -12
  84. package/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.d.ts +0 -20
  85. package/app/fields/input-fields/date-field/date-field.component.d.ts +0 -30
  86. package/app/fields/input-fields/decimal-field/decimal-field.component.d.ts +0 -17
  87. package/app/fields/input-fields/index.d.ts +0 -22
  88. package/app/fields/input-fields/input-mask-field/input-mask-field.component.d.ts +0 -16
  89. package/app/fields/input-fields/integer-field/integer-field.component.d.ts +0 -17
  90. package/app/fields/input-fields/password-field/password-field.component.d.ts +0 -30
  91. package/app/fields/input-fields/phone-field/phone-field.component.d.ts +0 -22
  92. package/app/fields/input-fields/text-field/text-field.component.d.ts +0 -16
  93. package/app/fields/input-fields/textarea-field/textarea-field.component.d.ts +0 -31
  94. package/app/form-layout/_models/form-layout.model.d.ts +0 -41
  95. package/app/form-layout/_models/form-tabs.model.d.ts +0 -1
  96. package/app/form-layout/_models/index.d.ts +0 -3
  97. package/app/form-layout/_models/validation-summary.model.d.ts +0 -8
  98. package/app/form-layout/form-actions/form-actions.component.d.ts +0 -21
  99. package/app/form-layout/form-col/form-col.component.d.ts +0 -25
  100. package/app/form-layout/form-group/form-group.component.d.ts +0 -125
  101. package/app/form-layout/form-group/form-path.utils.d.ts +0 -16
  102. package/app/form-layout/form-group/form-root-invalid-ui-refresh.util.d.ts +0 -8
  103. package/app/form-layout/form-row/form-row.component.d.ts +0 -14
  104. package/app/form-layout/form-section/form-section.component.d.ts +0 -13
  105. package/app/form-layout/form-tab/form-tab.component.d.ts +0 -32
  106. package/app/form-layout/form-tabs/form-tabs.component.d.ts +0 -44
  107. package/app/form-layout/index.d.ts +0 -14
  108. package/app/form-layout/layout-stack/layout-stack.component.d.ts +0 -25
  109. package/app/form-layout/validation-summary/validation-summary.component.d.ts +0 -105
  110. package/app/loading/skeleton-loading/index.d.ts +0 -6
  111. package/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.d.ts +0 -15
  112. package/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.d.ts +0 -10
  113. package/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.d.ts +0 -21
  114. package/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.d.ts +0 -17
  115. package/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.d.ts +0 -16
  116. package/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.d.ts +0 -17
  117. package/app/menus/_models/drawer-side.model.d.ts +0 -6
  118. package/app/menus/_models/drawer-size.model.d.ts +0 -6
  119. package/app/menus/_models/menu-dropdown-placement.model.d.ts +0 -10
  120. package/app/menus/_models/menu-item.model.d.ts +0 -47
  121. package/app/menus/_utils/menu-connected-positions.util.d.ts +0 -4
  122. package/app/menus/_utils/menu-rows.util.d.ts +0 -22
  123. package/app/menus/_utils/submenu-connected-positions.util.d.ts +0 -5
  124. package/app/menus/action-menu/action-menu.component.d.ts +0 -24
  125. package/app/menus/context-menu/context-menu.component.d.ts +0 -32
  126. package/app/menus/drawer/drawer.component.d.ts +0 -38
  127. package/app/menus/dropdown-menu/dropdown-menu.component.d.ts +0 -33
  128. package/app/menus/index.d.ts +0 -11
  129. package/app/menus/menu-divider/menu-divider.component.d.ts +0 -8
  130. package/app/menus/menu-group/menu-group.component.d.ts +0 -13
  131. package/app/menus/menu-list/menu-list.component.d.ts +0 -77
  132. package/app/overlay/_models/overlay-placement.model.d.ts +0 -9
  133. package/app/overlay/_utils/anchored-overlay-positions.util.d.ts +0 -9
  134. package/app/overlay/anchored-overlay/anchored-overlay.component.d.ts +0 -51
  135. package/app/overlay/index.d.ts +0 -20
  136. package/app/overlay/popover/popover-body-template.directive.d.ts +0 -7
  137. package/app/overlay/popover/popover-footer-template.directive.d.ts +0 -7
  138. package/app/overlay/popover/popover-trigger.directive.d.ts +0 -6
  139. package/app/overlay/popover/popover.component.d.ts +0 -38
  140. package/app/overlay/tooltip/tooltip-panel-template.directive.d.ts +0 -10
  141. package/app/overlay/tooltip/tooltip.component.d.ts +0 -40
  142. package/app/theme/app-theme.service.d.ts +0 -25
  143. package/app/theme/index.d.ts +0 -1
  144. package/esm2022/app/_utils/date-pt-br.utils.mjs +0 -82
  145. package/esm2022/app/_utils/decimal-br.utils.mjs +0 -154
  146. package/esm2022/app/_utils/estados-br.data.mjs +0 -37
  147. package/esm2022/app/_utils/integer-br.utils.mjs +0 -48
  148. package/esm2022/app/_utils/integer-value.utils.mjs +0 -19
  149. package/esm2022/app/_utils/scroll/body-scroll-lock.util.mjs +0 -97
  150. package/esm2022/app/app-shell/_models/breadcrumb-item.model.mjs +0 -2
  151. package/esm2022/app/app-shell/app-shell-sidebar-template.directive.mjs +0 -29
  152. package/esm2022/app/app-shell/app-shell.component.mjs +0 -105
  153. package/esm2022/app/app-shell/breadcrumb/breadcrumb.component.mjs +0 -18
  154. package/esm2022/app/app-shell/index.mjs +0 -19
  155. package/esm2022/app/app-shell/sidebar/app-sidebar-toolbar.directive.mjs +0 -23
  156. package/esm2022/app/app-shell/sidebar/shell-sidebar-toggle.component.mjs +0 -36
  157. package/esm2022/app/app-shell/sidebar/sidebar.component.mjs +0 -84
  158. package/esm2022/app/app-shell/sidebar-reveal.constants.mjs +0 -9
  159. package/esm2022/app/app-shell/topbar/topbar.component.mjs +0 -14
  160. package/esm2022/app/app-shell/user-menu/user-menu.component.mjs +0 -52
  161. package/esm2022/app/buttons/base-button/base-button.component.mjs +0 -97
  162. package/esm2022/app/buttons/index.mjs +0 -2
  163. package/esm2022/app/data-display/_models/card-item-view.model.mjs +0 -2
  164. package/esm2022/app/data-display/_models/data-display.models.mjs +0 -2
  165. package/esm2022/app/data-display/_models/data-grid-column.model.mjs +0 -2
  166. package/esm2022/app/data-display/_models/index.mjs +0 -2
  167. package/esm2022/app/data-display/adaptive-data-view/adaptive-data-view.component.mjs +0 -124
  168. package/esm2022/app/data-display/card-list/card-list.component.mjs +0 -208
  169. package/esm2022/app/data-display/dashboard-section/dashboard-section.component.mjs +0 -25
  170. package/esm2022/app/data-display/data-card/data-card.component.mjs +0 -40
  171. package/esm2022/app/data-display/data-grid/data-grid-actions-cell-renderer.component.mjs +0 -41
  172. package/esm2022/app/data-display/data-grid/data-grid.component.mjs +0 -253
  173. package/esm2022/app/data-display/data-list/data-list.component.mjs +0 -40
  174. package/esm2022/app/data-display/data-toolbar/data-toolbar.component.mjs +0 -12
  175. package/esm2022/app/data-display/details-field/details-field.component.mjs +0 -21
  176. package/esm2022/app/data-display/details-view/details-view.component.mjs +0 -44
  177. package/esm2022/app/data-display/empty-state/empty-state-overlay.util.mjs +0 -19
  178. package/esm2022/app/data-display/empty-state/empty-state.component.mjs +0 -30
  179. package/esm2022/app/data-display/index.mjs +0 -19
  180. package/esm2022/app/data-display/list-item/list-item.component.mjs +0 -59
  181. package/esm2022/app/data-display/stat-card/stat-card.component.mjs +0 -59
  182. package/esm2022/app/data-display/status-badge/status-badge.component.mjs +0 -41
  183. package/esm2022/app/data-display/table-empty-state/table-empty-state.component.mjs +0 -31
  184. package/esm2022/app/data-display/table-toolbar/table-toolbar.component.mjs +0 -22
  185. package/esm2022/app/dialogs/_models/lib-dialog-size.model.mjs +0 -8
  186. package/esm2022/app/dialogs/_utils/app-lib-light-block-scroll-strategy.mjs +0 -22
  187. package/esm2022/app/dialogs/_utils/lib-dialog-panel-classes.mjs +0 -6
  188. package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +0 -200
  189. package/esm2022/app/dialogs/app-dialog/dialog-footer.directive.mjs +0 -15
  190. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog-data.model.mjs +0 -2
  191. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -36
  192. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.service.mjs +0 -47
  193. package/esm2022/app/dialogs/index.mjs +0 -12
  194. package/esm2022/app/dialogs/loading-dialog/loading-dialog-data.model.mjs +0 -2
  195. package/esm2022/app/dialogs/loading-dialog/loading-dialog.component.mjs +0 -19
  196. package/esm2022/app/dialogs/loading-dialog/loading-dialog.service.mjs +0 -38
  197. package/esm2022/app/dialogs/toast/toast-host.component.mjs +0 -65
  198. package/esm2022/app/dialogs/toast/toast.models.mjs +0 -2
  199. package/esm2022/app/dialogs/toast/toast.service.mjs +0 -76
  200. package/esm2022/app/fields/checkbox-fields/_base/boolean-field.directive.mjs +0 -158
  201. package/esm2022/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.mjs +0 -36
  202. package/esm2022/app/fields/checkbox-fields/index.mjs +0 -4
  203. package/esm2022/app/fields/checkbox-fields/switch-field/switch-field.component.mjs +0 -35
  204. package/esm2022/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.mjs +0 -117
  205. package/esm2022/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.mjs +0 -152
  206. package/esm2022/app/fields/dropdown-fields/_base/dropdown-option-field.base.mjs +0 -149
  207. package/esm2022/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.mjs +0 -32
  208. package/esm2022/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.mjs +0 -2
  209. package/esm2022/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.mjs +0 -2
  210. package/esm2022/app/fields/dropdown-fields/_models/index.mjs +0 -2
  211. package/esm2022/app/fields/dropdown-fields/_models/select-option.model.mjs +0 -2
  212. package/esm2022/app/fields/dropdown-fields/_models/select-pagination.model.mjs +0 -2
  213. package/esm2022/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.mjs +0 -520
  214. package/esm2022/app/fields/dropdown-fields/index.mjs +0 -7
  215. package/esm2022/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.mjs +0 -379
  216. package/esm2022/app/fields/dropdown-fields/select-field/select-field.component.mjs +0 -359
  217. package/esm2022/app/fields/input-fields/_base/base-field.component.mjs +0 -151
  218. package/esm2022/app/fields/input-fields/_base/base-field.directive.mjs +0 -224
  219. package/esm2022/app/fields/input-fields/_base/masked-text-field.base.mjs +0 -135
  220. package/esm2022/app/fields/input-fields/_base/ng-control-field.directive.mjs +0 -127
  221. package/esm2022/app/fields/input-fields/_models/field-common-inputs.model.mjs +0 -2
  222. package/esm2022/app/fields/input-fields/_models/index.mjs +0 -2
  223. package/esm2022/app/fields/input-fields/_utils/mask-complete.validators.mjs +0 -61
  224. package/esm2022/app/fields/input-fields/_utils/mask-format.utils.mjs +0 -40
  225. package/esm2022/app/fields/input-fields/cep-field/cep-field.component.mjs +0 -48
  226. package/esm2022/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.mjs +0 -61
  227. package/esm2022/app/fields/input-fields/date-field/date-field.component.mjs +0 -147
  228. package/esm2022/app/fields/input-fields/decimal-field/decimal-field.component.mjs +0 -166
  229. package/esm2022/app/fields/input-fields/index.mjs +0 -22
  230. package/esm2022/app/fields/input-fields/input-mask-field/input-mask-field.component.mjs +0 -52
  231. package/esm2022/app/fields/input-fields/integer-field/integer-field.component.mjs +0 -143
  232. package/esm2022/app/fields/input-fields/password-field/password-field.component.mjs +0 -130
  233. package/esm2022/app/fields/input-fields/phone-field/phone-field.component.mjs +0 -66
  234. package/esm2022/app/fields/input-fields/text-field/text-field.component.mjs +0 -90
  235. package/esm2022/app/fields/input-fields/textarea-field/textarea-field.component.mjs +0 -125
  236. package/esm2022/app/form-layout/_models/form-layout.model.mjs +0 -48
  237. package/esm2022/app/form-layout/_models/form-tabs.model.mjs +0 -2
  238. package/esm2022/app/form-layout/_models/index.mjs +0 -2
  239. package/esm2022/app/form-layout/_models/validation-summary.model.mjs +0 -2
  240. package/esm2022/app/form-layout/form-actions/form-actions.component.mjs +0 -55
  241. package/esm2022/app/form-layout/form-col/form-col.component.mjs +0 -76
  242. package/esm2022/app/form-layout/form-group/form-group.component.mjs +0 -358
  243. package/esm2022/app/form-layout/form-group/form-path.utils.mjs +0 -65
  244. package/esm2022/app/form-layout/form-group/form-root-invalid-ui-refresh.util.mjs +0 -54
  245. package/esm2022/app/form-layout/form-row/form-row.component.mjs +0 -49
  246. package/esm2022/app/form-layout/form-section/form-section.component.mjs +0 -43
  247. package/esm2022/app/form-layout/form-tab/form-tab.component.mjs +0 -67
  248. package/esm2022/app/form-layout/form-tabs/form-tabs.component.mjs +0 -126
  249. package/esm2022/app/form-layout/index.mjs +0 -14
  250. package/esm2022/app/form-layout/layout-stack/layout-stack.component.mjs +0 -56
  251. package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +0 -343
  252. package/esm2022/app/loading/skeleton-loading/index.mjs +0 -7
  253. package/esm2022/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.mjs +0 -43
  254. package/esm2022/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.mjs +0 -23
  255. package/esm2022/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.mjs +0 -34
  256. package/esm2022/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.mjs +0 -38
  257. package/esm2022/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.mjs +0 -37
  258. package/esm2022/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.mjs +0 -45
  259. package/esm2022/app/menus/_models/drawer-side.model.mjs +0 -8
  260. package/esm2022/app/menus/_models/drawer-size.model.mjs +0 -8
  261. package/esm2022/app/menus/_models/menu-dropdown-placement.model.mjs +0 -12
  262. package/esm2022/app/menus/_models/menu-item.model.mjs +0 -6
  263. package/esm2022/app/menus/_utils/menu-connected-positions.util.mjs +0 -41
  264. package/esm2022/app/menus/_utils/menu-rows.util.mjs +0 -39
  265. package/esm2022/app/menus/_utils/submenu-connected-positions.util.mjs +0 -23
  266. package/esm2022/app/menus/action-menu/action-menu.component.mjs +0 -48
  267. package/esm2022/app/menus/context-menu/context-menu.component.mjs +0 -112
  268. package/esm2022/app/menus/drawer/drawer.component.mjs +0 -142
  269. package/esm2022/app/menus/dropdown-menu/dropdown-menu.component.mjs +0 -99
  270. package/esm2022/app/menus/index.mjs +0 -11
  271. package/esm2022/app/menus/menu-divider/menu-divider.component.mjs +0 -14
  272. package/esm2022/app/menus/menu-group/menu-group.component.mjs +0 -32
  273. package/esm2022/app/menus/menu-list/menu-list.component.mjs +0 -399
  274. package/esm2022/app/overlay/_models/overlay-placement.model.mjs +0 -11
  275. package/esm2022/app/overlay/_utils/anchored-overlay-positions.util.mjs +0 -84
  276. package/esm2022/app/overlay/anchored-overlay/anchored-overlay.component.mjs +0 -121
  277. package/esm2022/app/overlay/index.mjs +0 -21
  278. package/esm2022/app/overlay/popover/popover-body-template.directive.mjs +0 -17
  279. package/esm2022/app/overlay/popover/popover-footer-template.directive.mjs +0 -17
  280. package/esm2022/app/overlay/popover/popover-trigger.directive.mjs +0 -15
  281. package/esm2022/app/overlay/popover/popover.component.mjs +0 -93
  282. package/esm2022/app/overlay/tooltip/tooltip-panel-template.directive.mjs +0 -20
  283. package/esm2022/app/overlay/tooltip/tooltip.component.mjs +0 -118
  284. package/esm2022/app/theme/app-theme.service.mjs +0 -49
  285. package/esm2022/app/theme/index.mjs +0 -2
  286. package/esm2022/structra-public-api.mjs +0 -18
  287. package/esm2022/structra-ui.mjs +0 -5
  288. package/esm2022/structra-version.mjs +0 -3
  289. package/fesm2022/structra-ui.mjs +0 -8971
  290. package/fesm2022/structra-ui.mjs.map +0 -1
  291. package/index.d.ts +0 -5
  292. package/structra-public-api.d.ts +0 -17
  293. package/structra-version.d.ts +0 -2
@@ -1,253 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, NgZone, Output, numberAttribute, } from '@angular/core';
2
- import { AgGridAngular } from 'ag-grid-angular';
3
- import { buildEmptyStateOverlayHtml } from '../empty-state/empty-state-overlay.util';
4
- import { DataGridActionsCellRendererComponent, } from './data-grid-actions-cell-renderer.component';
5
- import { SkeletonTableComponent } from '../../loading/skeleton-loading';
6
- import * as i0 from "@angular/core";
7
- const ACTIONS_RENDERER_NAME = 'dataGridActions';
8
- export class DataGridComponent {
9
- constructor() {
10
- this.ngZone = inject(NgZone);
11
- this.gridApi = null;
12
- this.pageSize = 15;
13
- this.loading = false;
14
- /**
15
- * Após remontar a grade (ex.: skeleton), volta a esta página (0-based).
16
- * Só aplicado em `gridReady` e quando o valor muda com a API já disponível.
17
- */
18
- this.initialPaginationPage = 0;
19
- this.height = '420px';
20
- this.emptyMessage = 'Sem registros para mostrar.';
21
- this.pagination = true;
22
- /** Se `false`, omite colunas com `type: 'actions'` (editar/remover). Por omissão `true`. */
23
- this.showActionsColumn = true;
24
- this.edit = new EventEmitter();
25
- this.remove = new EventEmitter();
26
- /** Reservado para evolução (seleção de linhas); não ligado na v1 para manter a UI minimal. */
27
- this.selectionChange = new EventEmitter();
28
- /** Paginação interna do ag-Grid: mudança de página ou de `pageSize`. */
29
- this.paginationChanged = new EventEmitter();
30
- this.frameworkComponents = {
31
- [ACTIONS_RENDERER_NAME]: DataGridActionsCellRendererComponent,
32
- };
33
- this.paginationPageSizeChoices = [10, 15, 25, 50];
34
- this.defaultColDef = {
35
- sortable: true,
36
- resizable: true,
37
- flex: 1,
38
- minWidth: 120,
39
- };
40
- /**
41
- * O AG Grid corre muitos callbacks fora da `NgZone`; sem `run()`, o pai com `OnPush`
42
- * não volta a renderizar e editar/remover parece “morto”.
43
- */
44
- this.actionsContext = {
45
- onEditRow: (row) => this.ngZone.run(() => {
46
- this.edit.emit(row);
47
- }),
48
- onRemoveRow: (row) => this.ngZone.run(() => {
49
- this.remove.emit(row);
50
- }),
51
- };
52
- this.agColumnDefs = [];
53
- /**
54
- * IDs estáveis por linha (evita `''` duplicado quando não existe `id` nos dados).
55
- * Tenta `id`, depois `sku` (comum em grades de produto), senão impressão digital do objeto.
56
- */
57
- this.getRowId = (params) => {
58
- const d = params.data;
59
- if (!d) {
60
- return '__no-row-data';
61
- }
62
- const idVal = d['id'];
63
- if (idVal !== undefined && idVal !== null && String(idVal).trim() !== '') {
64
- return String(idVal);
65
- }
66
- const skuVal = d['sku'];
67
- if (skuVal !== undefined && skuVal !== null && String(skuVal).trim() !== '') {
68
- return `sku:${String(skuVal)}`;
69
- }
70
- return `row:${this.stableRowFingerprint(d)}`;
71
- };
72
- }
73
- /**
74
- * O AG Grid avisa se `paginationPageSize` não está em `paginationPageSizeSelector`.
75
- * Junta `pageSize` às opções base quando o consumidor usa um valor fora da lista (ex.: 8).
76
- */
77
- get effectivePaginationPageSizeSelector() {
78
- const size = Number(this.pageSize);
79
- const base = [...this.paginationPageSizeChoices];
80
- if (Number.isFinite(size) && size > 0 && !base.includes(size)) {
81
- base.push(size);
82
- base.sort((a, b) => a - b);
83
- }
84
- return base;
85
- }
86
- get skeletonColumnCount() {
87
- const n = this.columns?.length ?? 4;
88
- return Math.min(8, Math.max(2, n));
89
- }
90
- get skeletonRowCount() {
91
- return Math.min(14, Math.max(5, this.pageSize));
92
- }
93
- ngOnInit() {
94
- if (this.columns?.length) {
95
- this.agColumnDefs = this.mapColumnsToColDef(this.columns);
96
- }
97
- }
98
- /** Identificador determinístico e curto para linhas sem chave explícita. */
99
- stableRowFingerprint(d) {
100
- const keys = Object.keys(d).sort();
101
- const s = keys.map((k) => `${k}:${JSON.stringify(d[k])}`).join('|');
102
- let h = 2166136261;
103
- for (let i = 0; i < s.length; i++) {
104
- h ^= s.charCodeAt(i);
105
- h = Math.imul(h, 16777619);
106
- }
107
- return (h >>> 0).toString(36);
108
- }
109
- ngOnChanges(changes) {
110
- if (changes['loading'] && this.loading) {
111
- this.detachPaginationListenerIfLive();
112
- this.gridApi = null;
113
- }
114
- if ((changes['columns'] || changes['showActionsColumn']) &&
115
- this.columns?.length) {
116
- this.agColumnDefs = this.mapColumnsToColDef(this.columns);
117
- }
118
- if (changes['emptyMessage'] &&
119
- this.gridApi &&
120
- !this.gridApi.isDestroyed() &&
121
- changes['emptyMessage'].previousValue !==
122
- changes['emptyMessage'].currentValue) {
123
- this.gridApi.setGridOption('overlayNoRowsTemplate', this.emptyOverlayTemplate);
124
- }
125
- if (changes['initialPaginationPage'] &&
126
- this.gridApi &&
127
- !this.gridApi.isDestroyed() &&
128
- !changes['initialPaginationPage'].firstChange) {
129
- this.applyInitialPaginationPage(this.gridApi);
130
- }
131
- }
132
- ngOnDestroy() {
133
- this.detachPaginationListenerIfLive();
134
- this.gridApi = null;
135
- }
136
- get emptyOverlayTemplate() {
137
- return buildEmptyStateOverlayHtml(this.emptyMessage);
138
- }
139
- get hostHeight() {
140
- return (this.height && this.height.trim()) || '420px';
141
- }
142
- onGridReady(ev) {
143
- this.detachPaginationListenerIfLive();
144
- this.gridApi = ev.api;
145
- ev.api.setGridOption('context', this.actionsContext);
146
- this.paginationChangedListener = (event) => {
147
- const e = event;
148
- if (!e?.newPage && !e?.newPageSize) {
149
- return;
150
- }
151
- const currentPage = ev.api.paginationGetCurrentPage();
152
- this.ngZone.run(() => {
153
- this.paginationChanged.emit({
154
- currentPage,
155
- newPage: !!e.newPage,
156
- newPageSize: !!e.newPageSize,
157
- });
158
- });
159
- };
160
- ev.api.addEventListener('paginationChanged', this.paginationChangedListener);
161
- queueMicrotask(() => this.applyInitialPaginationPage(ev.api));
162
- }
163
- applyInitialPaginationPage(api) {
164
- if (api.isDestroyed()) {
165
- return;
166
- }
167
- const p = this.initialPaginationPage;
168
- if (p > 0 && api.paginationGetTotalPages() > p) {
169
- api.paginationGoToPage(p);
170
- }
171
- }
172
- /** Evita `removeEventListener` na API depois do grid destruído (ex.: `@if (loading)` remove o DOM). */
173
- detachPaginationListenerIfLive() {
174
- const api = this.gridApi;
175
- const fn = this.paginationChangedListener;
176
- if (api && fn && !api.isDestroyed()) {
177
- api.removeEventListener('paginationChanged', fn);
178
- }
179
- this.paginationChangedListener = undefined;
180
- }
181
- columnsForGrid(cols) {
182
- if (this.showActionsColumn) {
183
- return cols;
184
- }
185
- return cols.filter((c) => c.type !== 'actions');
186
- }
187
- mapColumnsToColDef(cols) {
188
- return this.columnsForGrid(cols).map((c) => {
189
- if (c.type === 'actions') {
190
- return {
191
- colId: String(c.key),
192
- headerName: c.header,
193
- sortable: false,
194
- filter: false,
195
- resizable: false,
196
- suppressMovable: true,
197
- cellRenderer: ACTIONS_RENDERER_NAME,
198
- width: c.width ?? 168,
199
- flex: c.flex,
200
- pinned: 'left',
201
- };
202
- }
203
- const field = String(c.key);
204
- const def = {
205
- field: field,
206
- headerName: c.header,
207
- sortable: c.sortable !== false,
208
- width: c.width,
209
- flex: c.flex,
210
- };
211
- if (c.type === 'number') {
212
- def.type = 'numericColumn';
213
- }
214
- return def;
215
- });
216
- }
217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DataGridComponent, isStandalone: true, selector: "app-data-grid", inputs: { rows: "rows", columns: "columns", pageSize: "pageSize", loading: "loading", initialPaginationPage: ["initialPaginationPage", "initialPaginationPage", numberAttribute], height: "height", emptyMessage: "emptyMessage", pagination: "pagination", showActionsColumn: "showActionsColumn" }, outputs: { edit: "edit", remove: "remove", selectionChange: "selectionChange", paginationChanged: "paginationChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"data-grid ag-theme-alpine\" [style.height]=\"hostHeight\">\n @if (loading) {\n <div class=\"data-grid__skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <span class=\"visually-hidden\">A carregar grid...</span>\n <app-skeleton-table [columnCount]=\"skeletonColumnCount\" [rowCount]=\"skeletonRowCount\" [showPager]=\"pagination\" />\n </div>\n } @else {\n <ag-grid-angular\n class=\"data-grid__ag\"\n [rowData]=\"rows\"\n [columnDefs]=\"agColumnDefs\"\n [components]=\"frameworkComponents\"\n [context]=\"actionsContext\"\n [defaultColDef]=\"defaultColDef\"\n [pagination]=\"pagination\"\n [paginationPageSize]=\"pageSize\"\n [paginationPageSizeSelector]=\"effectivePaginationPageSizeSelector\"\n [suppressCellFocus]=\"true\"\n [animateRows]=\"false\"\n [domLayout]=\"'normal'\"\n [overlayNoRowsTemplate]=\"emptyOverlayTemplate\"\n [getRowId]=\"getRowId\"\n (gridReady)=\"onGridReady($event)\"\n />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;min-width:0;box-sizing:border-box}.data-grid{width:100%;min-width:0;min-height:200px;box-sizing:border-box;border-radius:10px;overflow:hidden;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, #fff)}.data-grid__ag{display:block;width:100%;height:100%}.data-grid__skeleton{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host ::ng-deep .data-grid.ag-theme-alpine{--ag-border-color: var(--app-color-border-subtle, rgba(26, 47, 69, .12));--ag-header-background-color: var(--app-color-tab-inactive-bg, #f3f6f9);--ag-odd-row-background-color: var(--app-color-background, #fafbfc);--ag-row-hover-color: var(--app-color-hover-bg, rgba(43, 127, 217, .06));--ag-font-size: .9rem;--ag-header-height: 40px;--ag-row-height: 40px;--ag-border-radius: 0;--ag-wrapper-border-radius: 10px;--ag-selected-row-background-color: var(--app-color-selected-bg, rgba(43, 127, 217, .1));--ag-checkbox-unchecked-color: var(--app-color-text-muted, rgba(26, 47, 69, .35));--ag-range-selection-border-color: var(--ui-field-float-border-focus, #2b7fd9);font-family:inherit;color:var(--ui-field-float-input-text, #0f1b28)}:host ::ng-deep .data-grid.ag-theme-alpine .ag-header-cell-label{font-weight:600;font-size:.85rem;color:var(--app-color-text-primary, #3d5266)}:host ::ng-deep .data-grid.ag-theme-alpine .ag-paging-panel{border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));font-size:.85rem;color:var(--app-color-tab-inactive-text, #51667a)}:host ::ng-deep .data-grid.ag-theme-alpine .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}:host ::ng-deep .data-grid.ag-theme-alpine .empty-state.empty-state--embed{min-height:4.5rem;padding:1rem .75rem}:host ::ng-deep .data-grid.ag-theme-alpine .empty-state .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))}:host ::ng-deep .data-grid.ag-theme-alpine .empty-state .empty-state__message{margin:0;max-width:28rem;font-size:.9rem;font-weight:500;color:var(--app-color-tab-inactive-text, #51667a)}:host ::ng-deep .data-grid.ag-theme-alpine .empty-state .empty-state__description{margin:0;max-width:28rem;font-size:.8rem;color:var(--app-color-text-muted, #6b8299)}\n"], dependencies: [{ kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: SkeletonTableComponent, selector: "app-skeleton-table", inputs: ["columnCount", "rowCount", "showPager", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
219
- }
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataGridComponent, decorators: [{
221
- type: Component,
222
- args: [{ selector: 'app-data-grid', standalone: true, imports: [AgGridAngular, SkeletonTableComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"data-grid ag-theme-alpine\" [style.height]=\"hostHeight\">\n @if (loading) {\n <div class=\"data-grid__skeleton\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <span class=\"visually-hidden\">A carregar grid...</span>\n <app-skeleton-table [columnCount]=\"skeletonColumnCount\" [rowCount]=\"skeletonRowCount\" [showPager]=\"pagination\" />\n </div>\n } @else {\n <ag-grid-angular\n class=\"data-grid__ag\"\n [rowData]=\"rows\"\n [columnDefs]=\"agColumnDefs\"\n [components]=\"frameworkComponents\"\n [context]=\"actionsContext\"\n [defaultColDef]=\"defaultColDef\"\n [pagination]=\"pagination\"\n [paginationPageSize]=\"pageSize\"\n [paginationPageSizeSelector]=\"effectivePaginationPageSizeSelector\"\n [suppressCellFocus]=\"true\"\n [animateRows]=\"false\"\n [domLayout]=\"'normal'\"\n [overlayNoRowsTemplate]=\"emptyOverlayTemplate\"\n [getRowId]=\"getRowId\"\n (gridReady)=\"onGridReady($event)\"\n />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;min-width:0;box-sizing:border-box}.data-grid{width:100%;min-width:0;min-height:200px;box-sizing:border-box;border-radius:10px;overflow:hidden;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, #fff)}.data-grid__ag{display:block;width:100%;height:100%}.data-grid__skeleton{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host ::ng-deep .data-grid.ag-theme-alpine{--ag-border-color: var(--app-color-border-subtle, rgba(26, 47, 69, .12));--ag-header-background-color: var(--app-color-tab-inactive-bg, #f3f6f9);--ag-odd-row-background-color: var(--app-color-background, #fafbfc);--ag-row-hover-color: var(--app-color-hover-bg, rgba(43, 127, 217, .06));--ag-font-size: .9rem;--ag-header-height: 40px;--ag-row-height: 40px;--ag-border-radius: 0;--ag-wrapper-border-radius: 10px;--ag-selected-row-background-color: var(--app-color-selected-bg, rgba(43, 127, 217, .1));--ag-checkbox-unchecked-color: var(--app-color-text-muted, rgba(26, 47, 69, .35));--ag-range-selection-border-color: var(--ui-field-float-border-focus, #2b7fd9);font-family:inherit;color:var(--ui-field-float-input-text, #0f1b28)}:host ::ng-deep .data-grid.ag-theme-alpine .ag-header-cell-label{font-weight:600;font-size:.85rem;color:var(--app-color-text-primary, #3d5266)}:host ::ng-deep .data-grid.ag-theme-alpine .ag-paging-panel{border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));font-size:.85rem;color:var(--app-color-tab-inactive-text, #51667a)}:host ::ng-deep .data-grid.ag-theme-alpine .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}:host ::ng-deep .data-grid.ag-theme-alpine .empty-state.empty-state--embed{min-height:4.5rem;padding:1rem .75rem}:host ::ng-deep .data-grid.ag-theme-alpine .empty-state .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))}:host ::ng-deep .data-grid.ag-theme-alpine .empty-state .empty-state__message{margin:0;max-width:28rem;font-size:.9rem;font-weight:500;color:var(--app-color-tab-inactive-text, #51667a)}:host ::ng-deep .data-grid.ag-theme-alpine .empty-state .empty-state__description{margin:0;max-width:28rem;font-size:.8rem;color:var(--app-color-text-muted, #6b8299)}\n"] }]
223
- }], propDecorators: { rows: [{
224
- type: Input,
225
- args: [{ required: true }]
226
- }], columns: [{
227
- type: Input,
228
- args: [{ required: true }]
229
- }], pageSize: [{
230
- type: Input
231
- }], loading: [{
232
- type: Input
233
- }], initialPaginationPage: [{
234
- type: Input,
235
- args: [{ transform: numberAttribute }]
236
- }], height: [{
237
- type: Input
238
- }], emptyMessage: [{
239
- type: Input
240
- }], pagination: [{
241
- type: Input
242
- }], showActionsColumn: [{
243
- type: Input
244
- }], edit: [{
245
- type: Output
246
- }], remove: [{
247
- type: Output
248
- }], selectionChange: [{
249
- type: Output
250
- }], paginationChanged: [{
251
- type: Output
252
- }] } });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1kaXNwbGF5L2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBSU4sTUFBTSxFQUVOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBUWhELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxvQ0FBb0MsR0FFckMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFeEUsTUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztBQWtCaEQsTUFBTSxPQUFPLGlCQUFpQjtJQVI5QjtRQVNtQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLFlBQU8sR0FBc0IsSUFBSSxDQUFDO1FBTWpDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCOzs7V0FHRztRQUNvQywwQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFDeEQsV0FBTSxHQUFrQixPQUFPLENBQUM7UUFDaEMsaUJBQVksR0FBRyw2QkFBNkIsQ0FBQztRQUM3QyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzNCLDRGQUE0RjtRQUNuRixzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFZixTQUFJLEdB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QUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztZQUM3QixDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBeFBVLGlCQUFpQjttR0FBakIsaUJBQWlCLGlOQWNSLGVBQWUsNlJDN0RyQyw2K0JBMEJBLDRoR0RnQlksYUFBYSxra1NBQUUsc0JBQXNCOzs0RkFLcEMsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsbUJBRy9CLHVCQUF1QixDQUFDLE1BQU07OEJBT3BCLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLE9BQU87c0JBQWpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUVoQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFLaUMscUJBQXFCO3NCQUEzRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFDNUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRWEsSUFBSTtzQkFBdEIsTUFBTTtnQkFDWSxNQUFNO3NCQUF4QixNQUFNO2dCQUVZLGVBQWU7c0JBQWpDLE1BQU07Z0JBR1ksaUJBQWlCO3NCQUFuQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHR5cGUge1xuICBDb2xEZWYsXG4gIEdldFJvd0lkUGFyYW1zLFxuICBHcmlkQXBpLFxuICBHcmlkUmVhZHlFdmVudCxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHR5cGUgeyBEYXRhR3JpZENvbHVtbiB9IGZyb20gJy4uL19tb2RlbHMvZGF0YS1ncmlkLWNvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBidWlsZEVtcHR5U3RhdGVPdmVybGF5SHRtbCB9IGZyb20gJy4uL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLW92ZXJsYXkudXRpbCc7XG5pbXBvcnQge1xuICBEYXRhR3JpZEFjdGlvbnNDZWxsUmVuZGVyZXJDb21wb25lbnQsXG4gIHR5cGUgRGF0YUdyaWRBY3Rpb25zQ29udGV4dCxcbn0gZnJvbSAnLi9kYXRhLWdyaWQtYWN0aW9ucy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa2VsZXRvblRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbG9hZGluZy9za2VsZXRvbi1sb2FkaW5nJztcblxuY29uc3QgQUNUSU9OU19SRU5ERVJFUl9OQU1FID0gJ2RhdGFHcmlkQWN0aW9ucyc7XG5cbi8qKiBFbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIG11ZGEgZGUgcMOhZ2luYSBvdSB0YW1hbmhvIGRlIHDDoWdpbmEgbmEgZ3JhZGUgcGFnaW5hZGEuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFHcmlkUGFnaW5hdGlvbkNoYW5nZUV2ZW50IHtcbiAgLyoqIMONbmRpY2UgMC1iYXNlZCBkYSBww6FnaW5hIGF0dWFsIChBUEkgYWctR3JpZCkuICovXG4gIGN1cnJlbnRQYWdlOiBudW1iZXI7XG4gIG5ld1BhZ2U6IGJvb2xlYW47XG4gIG5ld1BhZ2VTaXplOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGF0YS1ncmlkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0FnR3JpZEFuZ3VsYXIsIFNrZWxldG9uVGFibGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RhdGEtZ3JpZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhR3JpZENvbXBvbmVudDxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBncmlkQXBpOiBHcmlkQXBpPFQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcGFnaW5hdGlvbkNoYW5nZWRMaXN0ZW5lcj86IChldmVudDogdW5rbm93bikgPT4gdm9pZDtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSByb3dzITogVFtdO1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2x1bW5zITogRGF0YUdyaWRDb2x1bW48VD5bXTtcblxuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDE1O1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBBcMOzcyByZW1vbnRhciBhIGdyYWRlIChleC46IHNrZWxldG9uKSwgdm9sdGEgYSBlc3RhIHDDoWdpbmEgKDAtYmFzZWQpLlxuICAgKiBTw7MgYXBsaWNhZG8gZW0gYGdyaWRSZWFkeWAgZSBxdWFuZG8gbyB2YWxvciBtdWRhIGNvbSBhIEFQSSBqw6EgZGlzcG9uw612ZWwuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBpbml0aWFsUGFnaW5hdGlvblBhZ2UgPSAwO1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyB8IG51bGwgPSAnNDIwcHgnO1xuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAnU2VtIHJlZ2lzdHJvcyBwYXJhIG1vc3RyYXIuJztcbiAgQElucHV0KCkgcGFnaW5hdGlvbiA9IHRydWU7XG4gIC8qKiBTZSBgZmFsc2VgLCBvbWl0ZSBjb2x1bmFzIGNvbSBgdHlwZTogJ2FjdGlvbnMnYCAoZWRpdGFyL3JlbW92ZXIpLiBQb3Igb21pc3PDo28gYHRydWVgLiAqL1xuICBASW5wdXQoKSBzaG93QWN0aW9uc0NvbHVtbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIC8qKiBSZXNlcnZhZG8gcGFyYSBldm9sdcOnw6NvIChzZWxlw6fDo28gZGUgbGluaGFzKTsgbsOjbyBsaWdhZG8gbmEgdjEgcGFyYSBtYW50ZXIgYSBVSSBtaW5pbWFsLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG5cbiAgLyoqIFBhZ2luYcOnw6NvIGludGVybmEgZG8gYWctR3JpZDogbXVkYW7Dp2EgZGUgcMOhZ2luYSBvdSBkZSBgcGFnZVNpemVgLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcGFnaW5hdGlvbkNoYW5nZWQgPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RGF0YUdyaWRQYWdpbmF0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgZnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcbiAgICBbQUNUSU9OU19SRU5ERVJFUl9OQU1FXTogRGF0YUdyaWRBY3Rpb25zQ2VsbFJlbmRlcmVyQ29tcG9uZW50LFxuICB9O1xuXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25QYWdlU2l6ZUNob2ljZXMgPSBbMTAsIDE1LCAyNSwgNTBdO1xuXG4gIC8qKlxuICAgKiBPIEFHIEdyaWQgYXZpc2Egc2UgYHBhZ2luYXRpb25QYWdlU2l6ZWAgbsOjbyBlc3TDoSBlbSBgcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3JgLlxuICAgKiBKdW50YSBgcGFnZVNpemVgIMOgcyBvcMOnw7VlcyBiYXNlIHF1YW5kbyBvIGNvbnN1bWlkb3IgdXNhIHVtIHZhbG9yIGZvcmEgZGEgbGlzdGEgKGV4LjogOCkuXG4gICAqL1xuICBnZXQgZWZmZWN0aXZlUGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3IoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHNpemUgPSBOdW1iZXIodGhpcy5wYWdlU2l6ZSk7XG4gICAgY29uc3QgYmFzZSA9IFsuLi50aGlzLnBhZ2luYXRpb25QYWdlU2l6ZUNob2ljZXNdO1xuICAgIGlmIChOdW1iZXIuaXNGaW5pdGUoc2l6ZSkgJiYgc2l6ZSA+IDAgJiYgIWJhc2UuaW5jbHVkZXMoc2l6ZSkpIHtcbiAgICAgIGJhc2UucHVzaChzaXplKTtcbiAgICAgIGJhc2Uuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZTtcbiAgfVxuXG4gIGdldCBza2VsZXRvbkNvbHVtbkNvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgbiA9IHRoaXMuY29sdW1ucz8ubGVuZ3RoID8/IDQ7XG4gICAgcmV0dXJuIE1hdGgubWluKDgsIE1hdGgubWF4KDIsIG4pKTtcbiAgfVxuXG4gIGdldCBza2VsZXRvblJvd0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWluKDE0LCBNYXRoLm1heCg1LCB0aGlzLnBhZ2VTaXplKSk7XG4gIH1cblxuICByZWFkb25seSBkZWZhdWx0Q29sRGVmOiBDb2xEZWY8VD4gPSB7XG4gICAgc29ydGFibGU6IHRydWUsXG4gICAgcmVzaXphYmxlOiB0cnVlLFxuICAgIGZsZXg6IDEsXG4gICAgbWluV2lkdGg6IDEyMCxcbiAgfTtcblxuICAvKipcbiAgICogTyBBRyBHcmlkIGNvcnJlIG11aXRvcyBjYWxsYmFja3MgZm9yYSBkYSBgTmdab25lYDsgc2VtIGBydW4oKWAsIG8gcGFpIGNvbSBgT25QdXNoYFxuICAgKiBuw6NvIHZvbHRhIGEgcmVuZGVyaXphciBlIGVkaXRhci9yZW1vdmVyIHBhcmVjZSDigJxtb3J0b+KAnS5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbnNDb250ZXh0OiBEYXRhR3JpZEFjdGlvbnNDb250ZXh0PFQ+ID0ge1xuICAgIG9uRWRpdFJvdzogKHJvdzogVCkgPT5cbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMuZWRpdC5lbWl0KHJvdyk7XG4gICAgICB9KSxcbiAgICBvblJlbW92ZVJvdzogKHJvdzogVCkgPT5cbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMucmVtb3ZlLmVtaXQocm93KTtcbiAgICAgIH0pLFxuICB9O1xuXG4gIGFnQ29sdW1uRGVmczogQ29sRGVmPFQ+W10gPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2x1bW5zPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYWdDb2x1bW5EZWZzID0gdGhpcy5tYXBDb2x1bW5zVG9Db2xEZWYodGhpcy5jb2x1bW5zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSURzIGVzdMOhdmVpcyBwb3IgbGluaGEgKGV2aXRhIGAnJ2AgZHVwbGljYWRvIHF1YW5kbyBuw6NvIGV4aXN0ZSBgaWRgIG5vcyBkYWRvcykuXG4gICAqIFRlbnRhIGBpZGAsIGRlcG9pcyBgc2t1YCAoY29tdW0gZW0gZ3JhZGVzIGRlIHByb2R1dG8pLCBzZW7Do28gaW1wcmVzc8OjbyBkaWdpdGFsIGRvIG9iamV0by5cbiAgICovXG4gIHJlYWRvbmx5IGdldFJvd0lkID0gKHBhcmFtczogR2V0Um93SWRQYXJhbXM8VD4pOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IGQgPSBwYXJhbXMuZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIWQpIHtcbiAgICAgIHJldHVybiAnX19uby1yb3ctZGF0YSc7XG4gICAgfVxuICAgIGNvbnN0IGlkVmFsID0gZFsnaWQnXTtcbiAgICBpZiAoaWRWYWwgIT09IHVuZGVmaW5lZCAmJiBpZFZhbCAhPT0gbnVsbCAmJiBTdHJpbmcoaWRWYWwpLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIHJldHVybiBTdHJpbmcoaWRWYWwpO1xuICAgIH1cbiAgICBjb25zdCBza3VWYWwgPSBkWydza3UnXTtcbiAgICBpZiAoc2t1VmFsICE9PSB1bmRlZmluZWQgJiYgc2t1VmFsICE9PSBudWxsICYmIFN0cmluZyhza3VWYWwpLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIHJldHVybiBgc2t1OiR7U3RyaW5nKHNrdVZhbCl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGByb3c6JHt0aGlzLnN0YWJsZVJvd0ZpbmdlcnByaW50KGQpfWA7XG4gIH07XG5cbiAgLyoqIElkZW50aWZpY2Fkb3IgZGV0ZXJtaW7DrXN0aWNvIGUgY3VydG8gcGFyYSBsaW5oYXMgc2VtIGNoYXZlIGV4cGzDrWNpdGEuICovXG4gIHByaXZhdGUgc3RhYmxlUm93RmluZ2VycHJpbnQoZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhkKS5zb3J0KCk7XG4gICAgY29uc3QgcyA9IGtleXMubWFwKChrKSA9PiBgJHtrfToke0pTT04uc3RyaW5naWZ5KGRba10pfWApLmpvaW4oJ3wnKTtcbiAgICBsZXQgaCA9IDIxNjYxMzYyNjE7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBoIF49IHMuY2hhckNvZGVBdChpKTtcbiAgICAgIGggPSBNYXRoLmltdWwoaCwgMTY3Nzc2MTkpO1xuICAgIH1cbiAgICByZXR1cm4gKGggPj4+IDApLnRvU3RyaW5nKDM2KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbG9hZGluZyddICYmIHRoaXMubG9hZGluZykge1xuICAgICAgdGhpcy5kZXRhY2hQYWdpbmF0aW9uTGlzdGVuZXJJZkxpdmUoKTtcbiAgICAgIHRoaXMuZ3JpZEFwaSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChjaGFuZ2VzWydjb2x1bW5zJ10gfHwgY2hhbmdlc1snc2hvd0FjdGlvbnNDb2x1bW4nXSkgJiZcbiAgICAgIHRoaXMuY29sdW1ucz8ubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aGlzLmFnQ29sdW1uRGVmcyA9IHRoaXMubWFwQ29sdW1uc1RvQ29sRGVmKHRoaXMuY29sdW1ucyk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoYW5nZXNbJ2VtcHR5TWVzc2FnZSddICYmXG4gICAgICB0aGlzLmdyaWRBcGkgJiZcbiAgICAgICF0aGlzLmdyaWRBcGkuaXNEZXN0cm95ZWQoKSAmJlxuICAgICAgY2hhbmdlc1snZW1wdHlNZXNzYWdlJ10ucHJldmlvdXNWYWx1ZSAhPT1cbiAgICAgICAgY2hhbmdlc1snZW1wdHlNZXNzYWdlJ10uY3VycmVudFZhbHVlXG4gICAgKSB7XG4gICAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvbihcbiAgICAgICAgJ292ZXJsYXlOb1Jvd3NUZW1wbGF0ZScsXG4gICAgICAgIHRoaXMuZW1wdHlPdmVybGF5VGVtcGxhdGUsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWydpbml0aWFsUGFnaW5hdGlvblBhZ2UnXSAmJlxuICAgICAgdGhpcy5ncmlkQXBpICYmXG4gICAgICAhdGhpcy5ncmlkQXBpLmlzRGVzdHJveWVkKCkgJiZcbiAgICAgICFjaGFuZ2VzWydpbml0aWFsUGFnaW5hdGlvblBhZ2UnXS5maXJzdENoYW5nZVxuICAgICkge1xuICAgICAgdGhpcy5hcHBseUluaXRpYWxQYWdpbmF0aW9uUGFnZSh0aGlzLmdyaWRBcGkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWNoUGFnaW5hdGlvbkxpc3RlbmVySWZMaXZlKCk7XG4gICAgdGhpcy5ncmlkQXBpID0gbnVsbDtcbiAgfVxuXG4gIGdldCBlbXB0eU92ZXJsYXlUZW1wbGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBidWlsZEVtcHR5U3RhdGVPdmVybGF5SHRtbCh0aGlzLmVtcHR5TWVzc2FnZSk7XG4gIH1cblxuICBnZXQgaG9zdEhlaWdodCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5oZWlnaHQgJiYgdGhpcy5oZWlnaHQudHJpbSgpKSB8fCAnNDIwcHgnO1xuICB9XG5cbiAgb25HcmlkUmVhZHkoZXY6IEdyaWRSZWFkeUV2ZW50PFQ+KTogdm9pZCB7XG4gICAgdGhpcy5kZXRhY2hQYWdpbmF0aW9uTGlzdGVuZXJJZkxpdmUoKTtcblxuICAgIHRoaXMuZ3JpZEFwaSA9IGV2LmFwaTtcbiAgICBldi5hcGkuc2V0R3JpZE9wdGlvbignY29udGV4dCcsIHRoaXMuYWN0aW9uc0NvbnRleHQpO1xuXG4gICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlZExpc3RlbmVyID0gKGV2ZW50OiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBlID0gZXZlbnQgYXMgeyBuZXdQYWdlPzogYm9vbGVhbjsgbmV3UGFnZVNpemU/OiBib29sZWFuIH07XG4gICAgICBpZiAoIWU/Lm5ld1BhZ2UgJiYgIWU/Lm5ld1BhZ2VTaXplKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gZXYuYXBpLnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpO1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICBjdXJyZW50UGFnZSxcbiAgICAgICAgICBuZXdQYWdlOiAhIWUubmV3UGFnZSxcbiAgICAgICAgICBuZXdQYWdlU2l6ZTogISFlLm5ld1BhZ2VTaXplLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgZXYuYXBpLmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2luYXRpb25DaGFuZ2VkJywgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlZExpc3RlbmVyKTtcblxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuYXBwbHlJbml0aWFsUGFnaW5hdGlvblBhZ2UoZXYuYXBpKSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5SW5pdGlhbFBhZ2luYXRpb25QYWdlKGFwaTogR3JpZEFwaTxUPik6IHZvaWQge1xuICAgIGlmIChhcGkuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwID0gdGhpcy5pbml0aWFsUGFnaW5hdGlvblBhZ2U7XG4gICAgaWYgKHAgPiAwICYmIGFwaS5wYWdpbmF0aW9uR2V0VG90YWxQYWdlcygpID4gcCkge1xuICAgICAgYXBpLnBhZ2luYXRpb25Hb1RvUGFnZShwKTtcbiAgICB9XG4gIH1cblxuICAvKiogRXZpdGEgYHJlbW92ZUV2ZW50TGlzdGVuZXJgIG5hIEFQSSBkZXBvaXMgZG8gZ3JpZCBkZXN0cnXDrWRvIChleC46IGBAaWYgKGxvYWRpbmcpYCByZW1vdmUgbyBET00pLiAqL1xuICBwcml2YXRlIGRldGFjaFBhZ2luYXRpb25MaXN0ZW5lcklmTGl2ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBhcGkgPSB0aGlzLmdyaWRBcGk7XG4gICAgY29uc3QgZm4gPSB0aGlzLnBhZ2luYXRpb25DaGFuZ2VkTGlzdGVuZXI7XG4gICAgaWYgKGFwaSAmJiBmbiAmJiAhYXBpLmlzRGVzdHJveWVkKCkpIHtcbiAgICAgIGFwaS5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdpbmF0aW9uQ2hhbmdlZCcsIGZuKTtcbiAgICB9XG4gICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlZExpc3RlbmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2x1bW5zRm9yR3JpZChjb2xzOiBEYXRhR3JpZENvbHVtbjxUPltdKTogRGF0YUdyaWRDb2x1bW48VD5bXSB7XG4gICAgaWYgKHRoaXMuc2hvd0FjdGlvbnNDb2x1bW4pIHtcbiAgICAgIHJldHVybiBjb2xzO1xuICAgIH1cbiAgICByZXR1cm4gY29scy5maWx0ZXIoKGMpID0+IGMudHlwZSAhPT0gJ2FjdGlvbnMnKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwQ29sdW1uc1RvQ29sRGVmKGNvbHM6IERhdGFHcmlkQ29sdW1uPFQ+W10pOiBDb2xEZWY8VD5bXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uc0ZvckdyaWQoY29scykubWFwKChjKSA9PiB7XG4gICAgICBpZiAoYy50eXBlID09PSAnYWN0aW9ucycpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xJZDogU3RyaW5nKGMua2V5KSxcbiAgICAgICAgICBoZWFkZXJOYW1lOiBjLmhlYWRlcixcbiAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgZmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICByZXNpemFibGU6IGZhbHNlLFxuICAgICAgICAgIHN1cHByZXNzTW92YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXI6IEFDVElPTlNfUkVOREVSRVJfTkFNRSxcbiAgICAgICAgICB3aWR0aDogYy53aWR0aCA/PyAxNjgsXG4gICAgICAgICAgZmxleDogYy5mbGV4LFxuICAgICAgICAgIHBpbm5lZDogJ2xlZnQnLFxuICAgICAgICB9IGFzIENvbERlZjxUPjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpZWxkID0gU3RyaW5nKGMua2V5KTtcbiAgICAgIGNvbnN0IGRlZjogQ29sRGVmPFQ+ID0ge1xuICAgICAgICBmaWVsZDogZmllbGQgYXMgQ29sRGVmPFQ+WydmaWVsZCddLFxuICAgICAgICBoZWFkZXJOYW1lOiBjLmhlYWRlcixcbiAgICAgICAgc29ydGFibGU6IGMuc29ydGFibGUgIT09IGZhbHNlLFxuICAgICAgICB3aWR0aDogYy53aWR0aCxcbiAgICAgICAgZmxleDogYy5mbGV4LFxuICAgICAgfTtcbiAgICAgIGlmIChjLnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGRlZi50eXBlID0gJ251bWVyaWNDb2x1bW4nO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRlZjtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGEtZ3JpZCBhZy10aGVtZS1hbHBpbmVcIiBbc3R5bGUuaGVpZ2h0XT1cImhvc3RIZWlnaHRcIj5cbiAgQGlmIChsb2FkaW5nKSB7XG4gIDxkaXYgY2xhc3M9XCJkYXRhLWdyaWRfX3NrZWxldG9uXCIgcm9sZT1cInN0YXR1c1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGFyaWEtYnVzeT1cInRydWVcIj5cbiAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkEgY2FycmVnYXIgZ3JpZC4uLjwvc3Bhbj5cbiAgICA8YXBwLXNrZWxldG9uLXRhYmxlIFtjb2x1bW5Db3VudF09XCJza2VsZXRvbkNvbHVtbkNvdW50XCIgW3Jvd0NvdW50XT1cInNrZWxldG9uUm93Q291bnRcIiBbc2hvd1BhZ2VyXT1cInBhZ2luYXRpb25cIiAvPlxuICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gIDxhZy1ncmlkLWFuZ3VsYXJcbiAgICBjbGFzcz1cImRhdGEtZ3JpZF9fYWdcIlxuICAgIFtyb3dEYXRhXT1cInJvd3NcIlxuICAgIFtjb2x1bW5EZWZzXT1cImFnQ29sdW1uRGVmc1wiXG4gICAgW2NvbXBvbmVudHNdPVwiZnJhbWV3b3JrQ29tcG9uZW50c1wiXG4gICAgW2NvbnRleHRdPVwiYWN0aW9uc0NvbnRleHRcIlxuICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxuICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxuICAgIFtwYWdpbmF0aW9uUGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgIFtwYWdpbmF0aW9uUGFnZVNpemVTZWxlY3Rvcl09XCJlZmZlY3RpdmVQYWdpbmF0aW9uUGFnZVNpemVTZWxlY3RvclwiXG4gICAgW3N1cHByZXNzQ2VsbEZvY3VzXT1cInRydWVcIlxuICAgIFthbmltYXRlUm93c109XCJmYWxzZVwiXG4gICAgW2RvbUxheW91dF09XCInbm9ybWFsJ1wiXG4gICAgW292ZXJsYXlOb1Jvd3NUZW1wbGF0ZV09XCJlbXB0eU92ZXJsYXlUZW1wbGF0ZVwiXG4gICAgW2dldFJvd0lkXT1cImdldFJvd0lkXCJcbiAgICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIlxuICAvPlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -1,40 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, booleanAttribute } from '@angular/core';
2
- import { SkeletonListComponent } from '../../loading/skeleton-loading';
3
- import { EmptyStateComponent } from '../empty-state/empty-state.component';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Lista vertical de registros com estados de loading e vazio padronizados.
7
- * O conteúdo de cada linha deve usar `app-list-item` (ou composição equivalente).
8
- */
9
- export class DataListComponent {
10
- constructor() {
11
- this.loading = false;
12
- this.empty = false;
13
- this.emptyTitle = 'Sem registros';
14
- this.emptyDescription = '';
15
- this.emptyIconClass = 'fa-solid fa-inbox';
16
- /** Linhas de skeleton em modo loading. */
17
- this.skeletonRows = 5;
18
- }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DataListComponent, isStandalone: true, selector: "app-data-list", inputs: { loading: ["loading", "loading", booleanAttribute], empty: ["empty", "empty", booleanAttribute], emptyTitle: "emptyTitle", emptyDescription: "emptyDescription", emptyIconClass: "emptyIconClass", skeletonRows: "skeletonRows" }, ngImport: i0, template: "<div class=\"data-list\" [attr.aria-busy]=\"loading ? true : null\">\r\n @if (loading) {\r\n <div class=\"data-list__loading\" role=\"status\" aria-live=\"polite\">\r\n <app-skeleton-list\r\n [rows]=\"skeletonRows\"\r\n [leading]=\"true\"\r\n rowGap=\"0.5rem\"\r\n lineHeight=\"0.85rem\"\r\n />\r\n </div>\r\n } @else if (empty) {\r\n <app-empty-state\r\n [message]=\"emptyTitle\"\r\n [description]=\"emptyDescription\"\r\n [iconClass]=\"emptyIconClass\"\r\n [embed]=\"true\"\r\n />\r\n } @else {\r\n <div class=\"data-list__items\" role=\"list\">\r\n <ng-content />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0}.data-list{width:100%;min-width:0;box-sizing:border-box}.data-list__loading{padding:.25rem 0}.data-list__items{display:flex;flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none}\n"], dependencies: [{ kind: "component", type: SkeletonListComponent, selector: "app-skeleton-list", inputs: ["rows", "leading", "rowGap", "lineHeight", "animate"] }, { kind: "component", type: EmptyStateComponent, selector: "app-empty-state", inputs: ["message", "description", "iconClass", "variant", "embed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataListComponent, decorators: [{
23
- type: Component,
24
- args: [{ selector: 'app-data-list', standalone: true, imports: [SkeletonListComponent, EmptyStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"data-list\" [attr.aria-busy]=\"loading ? true : null\">\r\n @if (loading) {\r\n <div class=\"data-list__loading\" role=\"status\" aria-live=\"polite\">\r\n <app-skeleton-list\r\n [rows]=\"skeletonRows\"\r\n [leading]=\"true\"\r\n rowGap=\"0.5rem\"\r\n lineHeight=\"0.85rem\"\r\n />\r\n </div>\r\n } @else if (empty) {\r\n <app-empty-state\r\n [message]=\"emptyTitle\"\r\n [description]=\"emptyDescription\"\r\n [iconClass]=\"emptyIconClass\"\r\n [embed]=\"true\"\r\n />\r\n } @else {\r\n <div class=\"data-list__items\" role=\"list\">\r\n <ng-content />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0}.data-list{width:100%;min-width:0;box-sizing:border-box}.data-list__loading{padding:.25rem 0}.data-list__items{display:flex;flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none}\n"] }]
25
- }], propDecorators: { loading: [{
26
- type: Input,
27
- args: [{ transform: booleanAttribute }]
28
- }], empty: [{
29
- type: Input,
30
- args: [{ transform: booleanAttribute }]
31
- }], emptyTitle: [{
32
- type: Input
33
- }], emptyDescription: [{
34
- type: Input
35
- }], emptyIconClass: [{
36
- type: Input
37
- }], skeletonRows: [{
38
- type: Input
39
- }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1kaXNwbGF5L2RhdGEtbGlzdC9kYXRhLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvZGF0YS1saXN0L2RhdGEtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFM0U7OztHQUdHO0FBU0gsTUFBTSxPQUFPLGlCQUFpQjtJQVI5QjtRQVMwQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFN0MsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQUU3QixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsbUJBQWMsR0FBRyxtQkFBbUIsQ0FBQztRQUU5QywwQ0FBMEM7UUFDakMsaUJBQVksR0FBRyxDQUFDLENBQUM7S0FDM0I7K0dBYlksaUJBQWlCO21HQUFqQixpQkFBaUIsMkZBQ1IsZ0JBQWdCLDZCQUVoQixnQkFBZ0IsNkpDbkJ0Qyw0cUJBdUJBLHVTRFpZLHFCQUFxQiw4SEFBRSxtQkFBbUI7OzRGQUt6QyxpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDLG1CQUdwQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQUdQLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRUUsS0FBSztzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFN0IsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNrZWxldG9uTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2xvYWRpbmcvc2tlbGV0b24tbG9hZGluZyc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcblxuLyoqXG4gKiBMaXN0YSB2ZXJ0aWNhbCBkZSByZWdpc3Ryb3MgY29tIGVzdGFkb3MgZGUgbG9hZGluZyBlIHZhemlvIHBhZHJvbml6YWRvcy5cbiAqIE8gY29udGXDumRvIGRlIGNhZGEgbGluaGEgZGV2ZSB1c2FyIGBhcHAtbGlzdC1pdGVtYCAob3UgY29tcG9zacOnw6NvIGVxdWl2YWxlbnRlKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRhdGEtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTa2VsZXRvbkxpc3RDb21wb25lbnQsIEVtcHR5U3RhdGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RhdGEtbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhTGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGVtcHR5ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZW1wdHlUaXRsZSA9ICdTZW0gcmVnaXN0cm9zJztcblxuICBASW5wdXQoKSBlbXB0eURlc2NyaXB0aW9uID0gJyc7XG5cbiAgQElucHV0KCkgZW1wdHlJY29uQ2xhc3MgPSAnZmEtc29saWQgZmEtaW5ib3gnO1xuXG4gIC8qKiBMaW5oYXMgZGUgc2tlbGV0b24gZW0gbW9kbyBsb2FkaW5nLiAqL1xuICBASW5wdXQoKSBza2VsZXRvblJvd3MgPSA1O1xufVxuIiwiPGRpdiBjbGFzcz1cImRhdGEtbGlzdFwiIFthdHRyLmFyaWEtYnVzeV09XCJsb2FkaW5nID8gdHJ1ZSA6IG51bGxcIj5cclxuICBAaWYgKGxvYWRpbmcpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJkYXRhLWxpc3RfX2xvYWRpbmdcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XHJcbiAgICAgIDxhcHAtc2tlbGV0b24tbGlzdFxyXG4gICAgICAgIFtyb3dzXT1cInNrZWxldG9uUm93c1wiXHJcbiAgICAgICAgW2xlYWRpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgcm93R2FwPVwiMC41cmVtXCJcclxuICAgICAgICBsaW5lSGVpZ2h0PVwiMC44NXJlbVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuICB9IEBlbHNlIGlmIChlbXB0eSkge1xyXG4gICAgPGFwcC1lbXB0eS1zdGF0ZVxyXG4gICAgICBbbWVzc2FnZV09XCJlbXB0eVRpdGxlXCJcclxuICAgICAgW2Rlc2NyaXB0aW9uXT1cImVtcHR5RGVzY3JpcHRpb25cIlxyXG4gICAgICBbaWNvbkNsYXNzXT1cImVtcHR5SWNvbkNsYXNzXCJcclxuICAgICAgW2VtYmVkXT1cInRydWVcIlxyXG4gICAgLz5cclxuICB9IEBlbHNlIHtcclxuICAgIDxkaXYgY2xhc3M9XCJkYXRhLWxpc3RfX2l0ZW1zXCIgcm9sZT1cImxpc3RcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,12 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /** Barra de consulta: pesquisa, filtros, ações e contador (slots `toolbar-start` / `toolbar-end`). */
4
- export class DataToolbarComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DataToolbarComponent, isStandalone: true, selector: "app-data-toolbar", ngImport: i0, template: "<div class=\"data-toolbar\">\r\n <div class=\"data-toolbar__start\">\r\n <ng-content select=\"[toolbar-start]\"></ng-content>\r\n </div>\r\n <div class=\"data-toolbar__end\">\r\n <ng-content select=\"[toolbar-end]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;min-width:0}.data-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-start;gap:.65rem .75rem;width:100%;min-width:0;box-sizing:border-box}.data-toolbar__start,.data-toolbar__end{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem;min-width:0}.data-toolbar__start{flex:1 1 auto;min-width:0}.data-toolbar__end{flex:0 1 auto;justify-content:flex-end}.data-toolbar__end:not(:empty){margin-left:auto}@media (max-width: 39.98rem){.data-toolbar{flex-direction:column;align-items:stretch}.data-toolbar__end{justify-content:flex-start}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
- }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataToolbarComponent, decorators: [{
9
- type: Component,
10
- args: [{ selector: 'app-data-toolbar', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"data-toolbar\">\r\n <div class=\"data-toolbar__start\">\r\n <ng-content select=\"[toolbar-start]\"></ng-content>\r\n </div>\r\n <div class=\"data-toolbar__end\">\r\n <ng-content select=\"[toolbar-end]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;min-width:0}.data-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-start;gap:.65rem .75rem;width:100%;min-width:0;box-sizing:border-box}.data-toolbar__start,.data-toolbar__end{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem;min-width:0}.data-toolbar__start{flex:1 1 auto;min-width:0}.data-toolbar__end{flex:0 1 auto;justify-content:flex-end}.data-toolbar__end:not(:empty){margin-left:auto}@media (max-width: 39.98rem){.data-toolbar{flex-direction:column;align-items:stretch}.data-toolbar__end{justify-content:flex-start}}\n"] }]
11
- }] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1kaXNwbGF5L2RhdGEtdG9vbGJhci9kYXRhLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvZGF0YS10b29sYmFyL2RhdGEtdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVuRSxzR0FBc0c7QUFRdEcsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO21HQUFwQixvQkFBb0IsNEVDVmpDLDBRQVFBOzs0RkRFYSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKiBCYXJyYSBkZSBjb25zdWx0YTogcGVzcXVpc2EsIGZpbHRyb3MsIGHDp8O1ZXMgZSBjb250YWRvciAoc2xvdHMgYHRvb2xiYXItc3RhcnRgIC8gYHRvb2xiYXItZW5kYCkuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRhdGEtdG9vbGJhcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGF0YS10b29sYmFyLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUb29sYmFyQ29tcG9uZW50IHt9XHJcbiIsIjxkaXYgY2xhc3M9XCJkYXRhLXRvb2xiYXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiZGF0YS10b29sYmFyX19zdGFydFwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2xiYXItc3RhcnRdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJkYXRhLXRvb2xiYXJfX2VuZFwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2xiYXItZW5kXVwiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,21 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Uma linha chave → valor para usar **dentro** de `app-details-view` (projeção).
5
- * O host usa `display: contents` para manter `<dl>` > `<dt>`/`<dd>` válidos.
6
- */
7
- export class DetailsFieldComponent {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailsFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DetailsFieldComponent, isStandalone: true, selector: "app-details-field", inputs: { label: "label" }, host: { styleAttribute: "display: contents", classAttribute: "details-field-host" }, ngImport: i0, template: "<dt class=\"details-field__label\">{{ label }}</dt>\r\n<dd class=\"details-field__value\">\r\n <ng-content />\r\n</dd>\r\n", styles: [".details-field__label{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-field__value{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}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailsFieldComponent, decorators: [{
12
- type: Component,
13
- args: [{ selector: 'app-details-field', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
14
- class: 'details-field-host',
15
- style: 'display: contents',
16
- }, template: "<dt class=\"details-field__label\">{{ label }}</dt>\r\n<dd class=\"details-field__value\">\r\n <ng-content />\r\n</dd>\r\n", styles: [".details-field__label{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-field__value{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}\n"] }]
17
- }], propDecorators: { label: [{
18
- type: Input,
19
- args: [{ required: true }]
20
- }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RhdGEtZGlzcGxheS9kZXRhaWxzLWZpZWxkL2RldGFpbHMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLWRpc3BsYXkvZGV0YWlscy1maWVsZC9kZXRhaWxzLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxRTs7O0dBR0c7QUFZSCxNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7bUdBQXJCLHFCQUFxQiw4TENqQmxDLDZIQUlBOzs0RkRhYSxxQkFBcUI7a0JBWGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsb0JBQW9CO3dCQUMzQixLQUFLLEVBQUUsbUJBQW1CO3FCQUMzQjs4QkFHMEIsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFVtYSBsaW5oYSBjaGF2ZSDihpIgdmFsb3IgcGFyYSB1c2FyICoqZGVudHJvKiogZGUgYGFwcC1kZXRhaWxzLXZpZXdgIChwcm9qZcOnw6NvKS5cclxuICogTyBob3N0IHVzYSBgZGlzcGxheTogY29udGVudHNgIHBhcmEgbWFudGVyIGA8ZGw+YCA+IGA8ZHQ+YC9gPGRkPmAgdsOhbGlkb3MuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kZXRhaWxzLWZpZWxkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXRhaWxzLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGV0YWlscy1maWVsZC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdkZXRhaWxzLWZpZWxkLWhvc3QnLFxyXG4gICAgc3R5bGU6ICdkaXNwbGF5OiBjb250ZW50cycsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERldGFpbHNGaWVsZENvbXBvbmVudCB7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbGFiZWwhOiBzdHJpbmc7XHJcbn1cclxuIiwiPGR0IGNsYXNzPVwiZGV0YWlscy1maWVsZF9fbGFiZWxcIj57eyBsYWJlbCB9fTwvZHQ+XHJcbjxkZCBjbGFzcz1cImRldGFpbHMtZmllbGRfX3ZhbHVlXCI+XHJcbiAgPG5nLWNvbnRlbnQgLz5cclxuPC9kZD5cclxuIl19
@@ -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==