structra-ui 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/README.md +59 -6
  2. package/app/_utils/date-pt-br.utils.d.ts +24 -0
  3. package/app/_utils/decimal-br.utils.d.ts +52 -0
  4. package/app/_utils/estados-br.data.d.ts +10 -0
  5. package/app/_utils/integer-br.utils.d.ts +17 -0
  6. package/app/_utils/integer-value.utils.d.ts +5 -0
  7. package/app/_utils/scroll/body-scroll-lock.util.d.ts +22 -0
  8. package/app/app-shell/_models/breadcrumb-item.model.d.ts +13 -0
  9. package/app/app-shell/app-shell-sidebar-template.directive.d.ts +19 -0
  10. package/app/app-shell/app-shell.component.d.ts +41 -0
  11. package/app/app-shell/breadcrumb/breadcrumb.component.d.ts +10 -0
  12. package/app/app-shell/index.d.ts +19 -0
  13. package/app/app-shell/sidebar/app-sidebar-toolbar.directive.d.ts +14 -0
  14. package/app/app-shell/sidebar/shell-sidebar-toggle.component.d.ts +19 -0
  15. package/app/app-shell/sidebar/sidebar.component.d.ts +36 -0
  16. package/app/app-shell/sidebar-reveal.constants.d.ts +8 -0
  17. package/app/app-shell/topbar/topbar.component.d.ts +8 -0
  18. package/app/app-shell/user-menu/user-menu.component.d.ts +25 -0
  19. package/app/buttons/base-button/base-button.component.d.ts +43 -0
  20. package/app/buttons/index.d.ts +1 -0
  21. package/app/data-display/_models/card-item-view.model.d.ts +8 -0
  22. package/app/data-display/_models/data-display.models.d.ts +11 -0
  23. package/app/data-display/_models/data-grid-column.model.d.ts +13 -0
  24. package/app/data-display/_models/index.d.ts +2 -0
  25. package/app/data-display/adaptive-data-view/adaptive-data-view.component.d.ts +53 -0
  26. package/app/data-display/card-list/card-list.component.d.ts +70 -0
  27. package/app/data-display/dashboard-section/dashboard-section.component.d.ts +12 -0
  28. package/app/data-display/data-card/data-card.component.d.ts +16 -0
  29. package/app/data-display/data-grid/data-grid-actions-cell-renderer.component.d.ts +21 -0
  30. package/app/data-display/data-grid/data-grid.component.d.ts +76 -0
  31. package/app/data-display/data-list/data-list.component.d.ts +18 -0
  32. package/app/data-display/data-toolbar/data-toolbar.component.d.ts +6 -0
  33. package/app/data-display/details-field/details-field.component.d.ts +10 -0
  34. package/app/data-display/details-view/details-view.component.d.ts +26 -0
  35. package/app/data-display/empty-state/empty-state-overlay.util.d.ts +5 -0
  36. package/app/data-display/empty-state/empty-state.component.d.ts +13 -0
  37. package/app/data-display/index.d.ts +20 -0
  38. package/app/data-display/list-item/list-item.component.d.ts +22 -0
  39. package/app/data-display/stat-card/stat-card.component.d.ts +23 -0
  40. package/app/data-display/status-badge/status-badge.component.d.ts +17 -0
  41. package/app/data-display/table-empty-state/table-empty-state.component.d.ts +14 -0
  42. package/app/data-display/table-toolbar/table-toolbar.component.d.ts +11 -0
  43. package/app/dialogs/_models/lib-dialog-size.model.d.ts +6 -0
  44. package/app/dialogs/_utils/lib-dialog-panel-classes.d.ts +3 -0
  45. package/app/dialogs/app-dialog/app-dialog.component.d.ts +52 -0
  46. package/app/dialogs/app-dialog/dialog-footer.directive.d.ts +6 -0
  47. package/app/dialogs/confirm-dialog/confirm-dialog-data.model.d.ts +13 -0
  48. package/app/dialogs/confirm-dialog/confirm-dialog.component.d.ts +20 -0
  49. package/app/dialogs/confirm-dialog/confirm-dialog.service.d.ts +17 -0
  50. package/app/dialogs/index.d.ts +13 -0
  51. package/app/dialogs/loading-dialog/loading-dialog-data.model.d.ts +7 -0
  52. package/app/dialogs/loading-dialog/loading-dialog.component.d.ts +9 -0
  53. package/app/dialogs/loading-dialog/loading-dialog.service.d.ts +15 -0
  54. package/app/dialogs/toast/toast-host.component.d.ts +13 -0
  55. package/app/dialogs/toast/toast.models.d.ts +26 -0
  56. package/app/dialogs/toast/toast.service.d.ts +17 -0
  57. package/app/fields/checkbox-fields/_base/boolean-field.directive.d.ts +42 -0
  58. package/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.d.ts +8 -0
  59. package/app/fields/checkbox-fields/index.d.ts +3 -0
  60. package/app/fields/checkbox-fields/switch-field/switch-field.component.d.ts +8 -0
  61. package/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.d.ts +62 -0
  62. package/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.d.ts +40 -0
  63. package/app/fields/dropdown-fields/_base/dropdown-option-field.base.d.ts +47 -0
  64. package/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.d.ts +18 -0
  65. package/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.d.ts +13 -0
  66. package/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.d.ts +7 -0
  67. package/app/fields/dropdown-fields/_models/index.d.ts +4 -0
  68. package/app/fields/dropdown-fields/_models/select-option.model.d.ts +5 -0
  69. package/app/fields/dropdown-fields/_models/select-pagination.model.d.ts +6 -0
  70. package/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.d.ts +84 -0
  71. package/app/fields/dropdown-fields/index.d.ts +7 -0
  72. package/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.d.ts +49 -0
  73. package/app/fields/dropdown-fields/select-field/select-field.component.d.ts +54 -0
  74. package/app/fields/input-fields/_base/base-field.component.d.ts +60 -0
  75. package/app/fields/input-fields/_base/base-field.directive.d.ts +102 -0
  76. package/app/fields/input-fields/_base/masked-text-field.base.d.ts +34 -0
  77. package/app/fields/input-fields/_base/ng-control-field.directive.d.ts +43 -0
  78. package/app/fields/input-fields/_models/field-common-inputs.model.d.ts +49 -0
  79. package/app/fields/input-fields/_models/index.d.ts +1 -0
  80. package/app/fields/input-fields/_utils/mask-complete.validators.d.ts +18 -0
  81. package/app/fields/input-fields/_utils/mask-format.utils.d.ts +13 -0
  82. package/app/fields/input-fields/cep-field/cep-field.component.d.ts +12 -0
  83. package/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.d.ts +20 -0
  84. package/app/fields/input-fields/date-field/date-field.component.d.ts +30 -0
  85. package/app/fields/input-fields/decimal-field/decimal-field.component.d.ts +17 -0
  86. package/app/fields/input-fields/index.d.ts +22 -0
  87. package/app/fields/input-fields/input-mask-field/input-mask-field.component.d.ts +16 -0
  88. package/app/fields/input-fields/integer-field/integer-field.component.d.ts +17 -0
  89. package/app/fields/input-fields/password-field/password-field.component.d.ts +30 -0
  90. package/app/fields/input-fields/phone-field/phone-field.component.d.ts +22 -0
  91. package/app/fields/input-fields/text-field/text-field.component.d.ts +16 -0
  92. package/app/fields/input-fields/textarea-field/textarea-field.component.d.ts +31 -0
  93. package/app/form-layout/_models/form-layout.model.d.ts +41 -0
  94. package/app/form-layout/_models/form-tabs.model.d.ts +1 -0
  95. package/app/form-layout/_models/index.d.ts +3 -0
  96. package/app/form-layout/_models/validation-summary.model.d.ts +8 -0
  97. package/app/form-layout/form-actions/form-actions.component.d.ts +21 -0
  98. package/app/form-layout/form-col/form-col.component.d.ts +25 -0
  99. package/app/form-layout/form-group/form-group.component.d.ts +125 -0
  100. package/app/form-layout/form-group/form-path.utils.d.ts +16 -0
  101. package/app/form-layout/form-group/form-root-invalid-ui-refresh.util.d.ts +8 -0
  102. package/app/form-layout/form-row/form-row.component.d.ts +14 -0
  103. package/app/form-layout/form-section/form-section.component.d.ts +13 -0
  104. package/app/form-layout/form-tab/form-tab.component.d.ts +32 -0
  105. package/app/form-layout/form-tabs/form-tabs.component.d.ts +44 -0
  106. package/app/form-layout/index.d.ts +14 -0
  107. package/app/form-layout/layout-stack/layout-stack.component.d.ts +25 -0
  108. package/app/form-layout/validation-summary/validation-summary.component.d.ts +111 -0
  109. package/app/loading/skeleton-loading/index.d.ts +6 -0
  110. package/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.d.ts +15 -0
  111. package/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.d.ts +10 -0
  112. package/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.d.ts +21 -0
  113. package/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.d.ts +17 -0
  114. package/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.d.ts +16 -0
  115. package/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.d.ts +17 -0
  116. package/app/menus/_models/drawer-side.model.d.ts +6 -0
  117. package/app/menus/_models/drawer-size.model.d.ts +6 -0
  118. package/app/menus/_models/menu-dropdown-placement.model.d.ts +10 -0
  119. package/app/menus/_models/menu-item.model.d.ts +47 -0
  120. package/app/menus/_utils/menu-connected-positions.util.d.ts +4 -0
  121. package/app/menus/_utils/menu-rows.util.d.ts +22 -0
  122. package/app/menus/_utils/submenu-connected-positions.util.d.ts +5 -0
  123. package/app/menus/action-menu/action-menu.component.d.ts +24 -0
  124. package/app/menus/context-menu/context-menu.component.d.ts +32 -0
  125. package/app/menus/drawer/drawer.component.d.ts +37 -0
  126. package/app/menus/dropdown-menu/dropdown-menu.component.d.ts +33 -0
  127. package/app/menus/index.d.ts +11 -0
  128. package/app/menus/menu-divider/menu-divider.component.d.ts +8 -0
  129. package/app/menus/menu-group/menu-group.component.d.ts +13 -0
  130. package/app/menus/menu-list/menu-list.component.d.ts +77 -0
  131. package/app/overlay/_models/overlay-placement.model.d.ts +9 -0
  132. package/app/overlay/_utils/anchored-overlay-positions.util.d.ts +9 -0
  133. package/app/overlay/anchored-overlay/anchored-overlay.component.d.ts +51 -0
  134. package/app/overlay/index.d.ts +20 -0
  135. package/app/overlay/popover/popover-body-template.directive.d.ts +7 -0
  136. package/app/overlay/popover/popover-footer-template.directive.d.ts +7 -0
  137. package/app/overlay/popover/popover-trigger.directive.d.ts +6 -0
  138. package/app/overlay/popover/popover.component.d.ts +38 -0
  139. package/app/overlay/tooltip/tooltip-panel-template.directive.d.ts +10 -0
  140. package/app/overlay/tooltip/tooltip.component.d.ts +40 -0
  141. package/app/theme/app-theme.service.d.ts +25 -0
  142. package/app/theme/index.d.ts +1 -0
  143. package/esm2022/app/_utils/date-pt-br.utils.mjs +82 -0
  144. package/esm2022/app/_utils/decimal-br.utils.mjs +154 -0
  145. package/esm2022/app/_utils/estados-br.data.mjs +37 -0
  146. package/esm2022/app/_utils/integer-br.utils.mjs +48 -0
  147. package/esm2022/app/_utils/integer-value.utils.mjs +19 -0
  148. package/esm2022/app/_utils/scroll/body-scroll-lock.util.mjs +43 -0
  149. package/esm2022/app/app-shell/_models/breadcrumb-item.model.mjs +2 -0
  150. package/esm2022/app/app-shell/app-shell-sidebar-template.directive.mjs +29 -0
  151. package/esm2022/app/app-shell/app-shell.component.mjs +105 -0
  152. package/esm2022/app/app-shell/breadcrumb/breadcrumb.component.mjs +18 -0
  153. package/esm2022/app/app-shell/index.mjs +19 -0
  154. package/esm2022/app/app-shell/sidebar/app-sidebar-toolbar.directive.mjs +23 -0
  155. package/esm2022/app/app-shell/sidebar/shell-sidebar-toggle.component.mjs +36 -0
  156. package/esm2022/app/app-shell/sidebar/sidebar.component.mjs +84 -0
  157. package/esm2022/app/app-shell/sidebar-reveal.constants.mjs +9 -0
  158. package/esm2022/app/app-shell/topbar/topbar.component.mjs +14 -0
  159. package/esm2022/app/app-shell/user-menu/user-menu.component.mjs +52 -0
  160. package/esm2022/app/buttons/base-button/base-button.component.mjs +97 -0
  161. package/esm2022/app/buttons/index.mjs +2 -0
  162. package/esm2022/app/data-display/_models/card-item-view.model.mjs +2 -0
  163. package/esm2022/app/data-display/_models/data-display.models.mjs +2 -0
  164. package/esm2022/app/data-display/_models/data-grid-column.model.mjs +2 -0
  165. package/esm2022/app/data-display/_models/index.mjs +2 -0
  166. package/esm2022/app/data-display/adaptive-data-view/adaptive-data-view.component.mjs +124 -0
  167. package/esm2022/app/data-display/card-list/card-list.component.mjs +208 -0
  168. package/esm2022/app/data-display/dashboard-section/dashboard-section.component.mjs +25 -0
  169. package/esm2022/app/data-display/data-card/data-card.component.mjs +40 -0
  170. package/esm2022/app/data-display/data-grid/data-grid-actions-cell-renderer.component.mjs +41 -0
  171. package/esm2022/app/data-display/data-grid/data-grid.component.mjs +253 -0
  172. package/esm2022/app/data-display/data-list/data-list.component.mjs +40 -0
  173. package/esm2022/app/data-display/data-toolbar/data-toolbar.component.mjs +12 -0
  174. package/esm2022/app/data-display/details-field/details-field.component.mjs +21 -0
  175. package/esm2022/app/data-display/details-view/details-view.component.mjs +44 -0
  176. package/esm2022/app/data-display/empty-state/empty-state-overlay.util.mjs +19 -0
  177. package/esm2022/app/data-display/empty-state/empty-state.component.mjs +30 -0
  178. package/esm2022/app/data-display/index.mjs +19 -0
  179. package/esm2022/app/data-display/list-item/list-item.component.mjs +59 -0
  180. package/esm2022/app/data-display/stat-card/stat-card.component.mjs +59 -0
  181. package/esm2022/app/data-display/status-badge/status-badge.component.mjs +41 -0
  182. package/esm2022/app/data-display/table-empty-state/table-empty-state.component.mjs +31 -0
  183. package/esm2022/app/data-display/table-toolbar/table-toolbar.component.mjs +22 -0
  184. package/esm2022/app/dialogs/_models/lib-dialog-size.model.mjs +8 -0
  185. package/esm2022/app/dialogs/_utils/lib-dialog-panel-classes.mjs +6 -0
  186. package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +164 -0
  187. package/esm2022/app/dialogs/app-dialog/dialog-footer.directive.mjs +15 -0
  188. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog-data.model.mjs +2 -0
  189. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.component.mjs +36 -0
  190. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.service.mjs +45 -0
  191. package/esm2022/app/dialogs/index.mjs +11 -0
  192. package/esm2022/app/dialogs/loading-dialog/loading-dialog-data.model.mjs +2 -0
  193. package/esm2022/app/dialogs/loading-dialog/loading-dialog.component.mjs +19 -0
  194. package/esm2022/app/dialogs/loading-dialog/loading-dialog.service.mjs +36 -0
  195. package/esm2022/app/dialogs/toast/toast-host.component.mjs +65 -0
  196. package/esm2022/app/dialogs/toast/toast.models.mjs +2 -0
  197. package/esm2022/app/dialogs/toast/toast.service.mjs +76 -0
  198. package/esm2022/app/fields/checkbox-fields/_base/boolean-field.directive.mjs +158 -0
  199. package/esm2022/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.mjs +36 -0
  200. package/esm2022/app/fields/checkbox-fields/index.mjs +4 -0
  201. package/esm2022/app/fields/checkbox-fields/switch-field/switch-field.component.mjs +35 -0
  202. package/esm2022/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.mjs +117 -0
  203. package/esm2022/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.mjs +152 -0
  204. package/esm2022/app/fields/dropdown-fields/_base/dropdown-option-field.base.mjs +149 -0
  205. package/esm2022/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.mjs +32 -0
  206. package/esm2022/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.mjs +2 -0
  207. package/esm2022/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.mjs +2 -0
  208. package/esm2022/app/fields/dropdown-fields/_models/index.mjs +2 -0
  209. package/esm2022/app/fields/dropdown-fields/_models/select-option.model.mjs +2 -0
  210. package/esm2022/app/fields/dropdown-fields/_models/select-pagination.model.mjs +2 -0
  211. package/esm2022/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.mjs +520 -0
  212. package/esm2022/app/fields/dropdown-fields/index.mjs +7 -0
  213. package/esm2022/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.mjs +379 -0
  214. package/esm2022/app/fields/dropdown-fields/select-field/select-field.component.mjs +359 -0
  215. package/esm2022/app/fields/input-fields/_base/base-field.component.mjs +151 -0
  216. package/esm2022/app/fields/input-fields/_base/base-field.directive.mjs +224 -0
  217. package/esm2022/app/fields/input-fields/_base/masked-text-field.base.mjs +135 -0
  218. package/esm2022/app/fields/input-fields/_base/ng-control-field.directive.mjs +127 -0
  219. package/esm2022/app/fields/input-fields/_models/field-common-inputs.model.mjs +2 -0
  220. package/esm2022/app/fields/input-fields/_models/index.mjs +2 -0
  221. package/esm2022/app/fields/input-fields/_utils/mask-complete.validators.mjs +61 -0
  222. package/esm2022/app/fields/input-fields/_utils/mask-format.utils.mjs +40 -0
  223. package/esm2022/app/fields/input-fields/cep-field/cep-field.component.mjs +48 -0
  224. package/esm2022/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.mjs +61 -0
  225. package/esm2022/app/fields/input-fields/date-field/date-field.component.mjs +147 -0
  226. package/esm2022/app/fields/input-fields/decimal-field/decimal-field.component.mjs +166 -0
  227. package/esm2022/app/fields/input-fields/index.mjs +22 -0
  228. package/esm2022/app/fields/input-fields/input-mask-field/input-mask-field.component.mjs +52 -0
  229. package/esm2022/app/fields/input-fields/integer-field/integer-field.component.mjs +143 -0
  230. package/esm2022/app/fields/input-fields/password-field/password-field.component.mjs +130 -0
  231. package/esm2022/app/fields/input-fields/phone-field/phone-field.component.mjs +66 -0
  232. package/esm2022/app/fields/input-fields/text-field/text-field.component.mjs +90 -0
  233. package/esm2022/app/fields/input-fields/textarea-field/textarea-field.component.mjs +125 -0
  234. package/esm2022/app/form-layout/_models/form-layout.model.mjs +48 -0
  235. package/esm2022/app/form-layout/_models/form-tabs.model.mjs +2 -0
  236. package/esm2022/app/form-layout/_models/index.mjs +2 -0
  237. package/esm2022/app/form-layout/_models/validation-summary.model.mjs +2 -0
  238. package/esm2022/app/form-layout/form-actions/form-actions.component.mjs +55 -0
  239. package/esm2022/app/form-layout/form-col/form-col.component.mjs +76 -0
  240. package/esm2022/app/form-layout/form-group/form-group.component.mjs +358 -0
  241. package/esm2022/app/form-layout/form-group/form-path.utils.mjs +65 -0
  242. package/esm2022/app/form-layout/form-group/form-root-invalid-ui-refresh.util.mjs +54 -0
  243. package/esm2022/app/form-layout/form-row/form-row.component.mjs +49 -0
  244. package/esm2022/app/form-layout/form-section/form-section.component.mjs +43 -0
  245. package/esm2022/app/form-layout/form-tab/form-tab.component.mjs +67 -0
  246. package/esm2022/app/form-layout/form-tabs/form-tabs.component.mjs +126 -0
  247. package/esm2022/app/form-layout/index.mjs +14 -0
  248. package/esm2022/app/form-layout/layout-stack/layout-stack.component.mjs +56 -0
  249. package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +392 -0
  250. package/esm2022/app/loading/skeleton-loading/index.mjs +7 -0
  251. package/esm2022/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.mjs +43 -0
  252. package/esm2022/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.mjs +23 -0
  253. package/esm2022/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.mjs +34 -0
  254. package/esm2022/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.mjs +38 -0
  255. package/esm2022/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.mjs +37 -0
  256. package/esm2022/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.mjs +45 -0
  257. package/esm2022/app/menus/_models/drawer-side.model.mjs +8 -0
  258. package/esm2022/app/menus/_models/drawer-size.model.mjs +8 -0
  259. package/esm2022/app/menus/_models/menu-dropdown-placement.model.mjs +12 -0
  260. package/esm2022/app/menus/_models/menu-item.model.mjs +6 -0
  261. package/esm2022/app/menus/_utils/menu-connected-positions.util.mjs +41 -0
  262. package/esm2022/app/menus/_utils/menu-rows.util.mjs +39 -0
  263. package/esm2022/app/menus/_utils/submenu-connected-positions.util.mjs +23 -0
  264. package/esm2022/app/menus/action-menu/action-menu.component.mjs +48 -0
  265. package/esm2022/app/menus/context-menu/context-menu.component.mjs +112 -0
  266. package/esm2022/app/menus/drawer/drawer.component.mjs +140 -0
  267. package/esm2022/app/menus/dropdown-menu/dropdown-menu.component.mjs +99 -0
  268. package/esm2022/app/menus/index.mjs +11 -0
  269. package/esm2022/app/menus/menu-divider/menu-divider.component.mjs +14 -0
  270. package/esm2022/app/menus/menu-group/menu-group.component.mjs +32 -0
  271. package/esm2022/app/menus/menu-list/menu-list.component.mjs +399 -0
  272. package/esm2022/app/overlay/_models/overlay-placement.model.mjs +11 -0
  273. package/esm2022/app/overlay/_utils/anchored-overlay-positions.util.mjs +84 -0
  274. package/esm2022/app/overlay/anchored-overlay/anchored-overlay.component.mjs +121 -0
  275. package/esm2022/app/overlay/index.mjs +21 -0
  276. package/esm2022/app/overlay/popover/popover-body-template.directive.mjs +17 -0
  277. package/esm2022/app/overlay/popover/popover-footer-template.directive.mjs +17 -0
  278. package/esm2022/app/overlay/popover/popover-trigger.directive.mjs +15 -0
  279. package/esm2022/app/overlay/popover/popover.component.mjs +93 -0
  280. package/esm2022/app/overlay/tooltip/tooltip-panel-template.directive.mjs +20 -0
  281. package/esm2022/app/overlay/tooltip/tooltip.component.mjs +118 -0
  282. package/esm2022/app/theme/app-theme.service.mjs +49 -0
  283. package/esm2022/app/theme/index.mjs +2 -0
  284. package/esm2022/structra-public-api.mjs +18 -0
  285. package/esm2022/structra-ui.mjs +2 -2
  286. package/esm2022/structra-version.mjs +3 -0
  287. package/fesm2022/structra-ui.mjs +8896 -4
  288. package/fesm2022/structra-ui.mjs.map +1 -1
  289. package/index.d.ts +1 -1
  290. package/package.json +7 -2
  291. package/structra-public-api.d.ts +17 -0
  292. package/structra-version.d.ts +2 -0
  293. package/esm2022/lib/version.mjs +0 -3
  294. package/esm2022/public-api.mjs +0 -5
  295. package/lib/version.d.ts +0 -2
  296. package/public-api.d.ts +0 -1
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Utilitários pt-BR fixo: vírgula decimal, ponto milhar, duas casas na formatação final.
3
+ */
4
+ import { formatIntegerThousandsBr } from './integer-br.utils';
5
+ export { formatIntegerThousandsBr } from './integer-br.utils';
6
+ export function sanitizeDecimalBrInput(raw) {
7
+ return raw.replace(/[^\d,.]/g, '');
8
+ }
9
+ /**
10
+ * Remove pontos e interpreta a última vírgula como separador decimal.
11
+ * Retorna apenas dígitos na parte inteira e até 2 na fracionária.
12
+ */
13
+ export function extractDecimalBrParts(rawDisplay) {
14
+ const noDots = rawDisplay.replace(/\./g, '');
15
+ const lastComma = noDots.lastIndexOf(',');
16
+ if (lastComma === -1) {
17
+ return {
18
+ intDigits: noDots.replace(/\D/g, ''),
19
+ fracDigits: '',
20
+ hasComma: false,
21
+ };
22
+ }
23
+ const intDigits = noDots.slice(0, lastComma).replace(/\D/g, '');
24
+ const fracDigits = noDots
25
+ .slice(lastComma + 1)
26
+ .replace(/\D/g, '')
27
+ .slice(0, 2);
28
+ return { intDigits, fracDigits, hasComma: true };
29
+ }
30
+ /**
31
+ * Monta o texto exibido durante a digitação (milhares com ponto, vírgula decimal).
32
+ */
33
+ export function buildDecimalBrDisplay(parts) {
34
+ const { intDigits, fracDigits, hasComma } = parts;
35
+ if (!hasComma) {
36
+ return formatIntegerThousandsBr(intDigits);
37
+ }
38
+ const intDisplay = intDigits === '' ? '0' : formatIntegerThousandsBr(intDigits);
39
+ return `${intDisplay},${fracDigits}`;
40
+ }
41
+ /**
42
+ * Posição semântica do cursor para remapear após reformatar.
43
+ */
44
+ export function semanticCaretAt(value, caret) {
45
+ const left = value.slice(0, caret);
46
+ const noDots = left.replace(/\./g, '');
47
+ const commaIdx = noDots.indexOf(',');
48
+ if (commaIdx === -1) {
49
+ return {
50
+ intCount: noDots.replace(/\D/g, '').length,
51
+ afterComma: false,
52
+ fracCount: 0,
53
+ };
54
+ }
55
+ const before = noDots.slice(0, commaIdx).replace(/\D/g, '');
56
+ const after = noDots.slice(commaIdx + 1).replace(/\D/g, '');
57
+ return {
58
+ intCount: before.length,
59
+ afterComma: true,
60
+ fracCount: after.length,
61
+ };
62
+ }
63
+ /**
64
+ * Índice do caret no texto formatado a partir da posição semântica.
65
+ */
66
+ export function caretIndexFromSemantic(display, target) {
67
+ let intCount = 0;
68
+ let afterComma = false;
69
+ let fracCount = 0;
70
+ for (let i = 0; i < display.length; i++) {
71
+ const ch = display[i];
72
+ if (ch === ',') {
73
+ if (!afterComma) {
74
+ afterComma = true;
75
+ if (target.afterComma &&
76
+ target.fracCount === 0 &&
77
+ target.intCount === intCount) {
78
+ return i + 1;
79
+ }
80
+ }
81
+ continue;
82
+ }
83
+ if (ch === '.') {
84
+ continue;
85
+ }
86
+ if (/\d/.test(ch)) {
87
+ if (!afterComma) {
88
+ intCount++;
89
+ if (!target.afterComma && intCount === target.intCount) {
90
+ return i + 1;
91
+ }
92
+ }
93
+ else {
94
+ fracCount++;
95
+ if (target.afterComma &&
96
+ fracCount === target.fracCount &&
97
+ intCount === target.intCount) {
98
+ return i + 1;
99
+ }
100
+ }
101
+ }
102
+ }
103
+ return display.length;
104
+ }
105
+ /**
106
+ * String passível de parseDecimalBr a partir das partes editáveis.
107
+ */
108
+ export function buildDecimalBrParseString(parts) {
109
+ if (!parts.hasComma) {
110
+ return parts.intDigits;
111
+ }
112
+ return `${parts.intDigits},${parts.fracDigits}`;
113
+ }
114
+ /**
115
+ * Interpreta string já sanitizada e retorna número com até 2 casas decimais (arredondamento).
116
+ * Vazio → null. Vírgula como separador decimal; pontos são removidos da parte inteira.
117
+ */
118
+ export function parseDecimalBr(sanitized) {
119
+ const t = sanitized.trim();
120
+ if (t === '') {
121
+ return null;
122
+ }
123
+ const lastComma = t.lastIndexOf(',');
124
+ let intRaw;
125
+ let fracRaw;
126
+ if (lastComma >= 0) {
127
+ intRaw = t.slice(0, lastComma).replace(/\./g, '');
128
+ fracRaw = t.slice(lastComma + 1).replace(/\./g, '');
129
+ }
130
+ else {
131
+ intRaw = t.replace(/\./g, '');
132
+ fracRaw = '';
133
+ }
134
+ if (!/^\d*$/.test(intRaw) || !/^\d*$/.test(fracRaw)) {
135
+ return null;
136
+ }
137
+ if (intRaw === '' && fracRaw === '') {
138
+ return null;
139
+ }
140
+ const intPart = intRaw === '' ? '0' : intRaw;
141
+ const fracPadded = (fracRaw + '00').slice(0, 2);
142
+ const n = Number(`${intPart}.${fracPadded}`);
143
+ if (!Number.isFinite(n)) {
144
+ return null;
145
+ }
146
+ return Math.round(n * 100) / 100;
147
+ }
148
+ export function formatDecimalBr(value) {
149
+ return new Intl.NumberFormat('pt-BR', {
150
+ minimumFractionDigits: 2,
151
+ maximumFractionDigits: 2,
152
+ }).format(value);
153
+ }
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1ici51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvX3V0aWxzL2RlY2ltYWwtYnIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsR0FBVztJQUNoRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsVUFBa0I7SUFLdEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU87WUFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLFVBQVUsRUFBRSxFQUFFO1lBQ2QsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQU07U0FDdEIsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7U0FDcEIsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7U0FDbEIsS0FBSyxDQUFDLENBQUMs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LENBQUMsR0FBRyxHQUFHLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBYTtJQUMzQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUU7UUFDcEMscUJBQXFCLEVBQUUsQ0FBQztRQUN4QixxQkFBcUIsRUFBRSxDQUFDO0tBQ3pCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBVdGlsaXTDoXJpb3MgcHQtQlIgZml4bzogdsOtcmd1bGEgZGVjaW1hbCwgcG9udG8gbWlsaGFyLCBkdWFzIGNhc2FzIG5hIGZvcm1hdGHDp8OjbyBmaW5hbC5cclxuICovXHJcblxyXG5pbXBvcnQgeyBmb3JtYXRJbnRlZ2VyVGhvdXNhbmRzQnIgfSBmcm9tICcuL2ludGVnZXItYnIudXRpbHMnO1xyXG5cclxuZXhwb3J0IHsgZm9ybWF0SW50ZWdlclRob3VzYW5kc0JyIH0gZnJvbSAnLi9pbnRlZ2VyLWJyLnV0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZURlY2ltYWxCcklucHV0KHJhdzogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gcmF3LnJlcGxhY2UoL1teXFxkLC5dL2csICcnKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBwb250b3MgZSBpbnRlcnByZXRhIGEgw7psdGltYSB2w61yZ3VsYSBjb21vIHNlcGFyYWRvciBkZWNpbWFsLlxyXG4gKiBSZXRvcm5hIGFwZW5hcyBkw61naXRvcyBuYSBwYXJ0ZSBpbnRlaXJhIGUgYXTDqSAyIG5hIGZyYWNpb27DoXJpYS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RGVjaW1hbEJyUGFydHMocmF3RGlzcGxheTogc3RyaW5nKToge1xyXG4gIGludERpZ2l0czogc3RyaW5nO1xyXG4gIGZyYWNEaWdpdHM6IHN0cmluZztcclxuICBoYXNDb21tYTogYm9vbGVhbjtcclxufSB7XHJcbiAgY29uc3Qgbm9Eb3RzID0gcmF3RGlzcGxheS5yZXBsYWNlKC9cXC4vZywgJycpO1xyXG4gIGNvbnN0IGxhc3RDb21tYSA9IG5vRG90cy5sYXN0SW5kZXhPZignLCcpO1xyXG4gIGlmIChsYXN0Q29tbWEgPT09IC0xKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpbnREaWdpdHM6IG5vRG90cy5yZXBsYWNlKC9cXEQvZywgJycpLFxyXG4gICAgICBmcmFjRGlnaXRzOiAnJyxcclxuICAgICAgaGFzQ29tbWE6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgY29uc3QgaW50RGlnaXRzID0gbm9Eb3RzLnNsaWNlKDAsIGxhc3RDb21tYSkucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICBjb25zdCBmcmFjRGlnaXRzID0gbm9Eb3RzXHJcbiAgICAuc2xpY2UobGFzdENvbW1hICsgMSlcclxuICAgIC5yZXBsYWNlKC9cXEQvZywgJycpXHJcbiAgICAuc2xpY2UoMCwgMik7XHJcbiAgcmV0dXJuIHsgaW50RGlnaXRzLCBmcmFjRGlnaXRzLCBoYXNDb21tYTogdHJ1ZSB9O1xyXG59XHJcblxyXG4vKipcclxuICogTW9udGEgbyB0ZXh0byBleGliaWRvIGR1cmFudGUgYSBkaWdpdGHDp8OjbyAobWlsaGFyZXMgY29tIHBvbnRvLCB2w61yZ3VsYSBkZWNpbWFsKS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZERlY2ltYWxCckRpc3BsYXkocGFydHM6IHtcclxuICBpbnREaWdpdHM6IHN0cmluZztcclxuICBmcmFjRGlnaXRzOiBzdHJpbmc7XHJcbiAgaGFzQ29tbWE6IGJvb2xlYW47XHJcbn0pOiBzdHJpbmcge1xyXG4gIGNvbnN0IHsgaW50RGlnaXRzLCBmcmFjRGlnaXRzLCBoYXNDb21tYSB9ID0gcGFydHM7XHJcbiAgaWYgKCFoYXNDb21tYSkge1xyXG4gICAgcmV0dXJuIGZvcm1hdEludGVnZXJUaG91c2FuZHNCcihpbnREaWdpdHMpO1xyXG4gIH1cclxuICBjb25zdCBpbnREaXNwbGF5ID1cclxuICAgIGludERpZ2l0cyA9PT0gJycgPyAnMCcgOiBmb3JtYXRJbnRlZ2VyVGhvdXNhbmRzQnIoaW50RGlnaXRzKTtcclxuICByZXR1cm4gYCR7aW50RGlzcGxheX0sJHtmcmFjRGlnaXRzfWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQb3Npw6fDo28gc2Vtw6JudGljYSBkbyBjdXJzb3IgcGFyYSByZW1hcGVhciBhcMOzcyByZWZvcm1hdGFyLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNlbWFudGljQ2FyZXRBdChcclxuICB2YWx1ZTogc3RyaW5nLFxyXG4gIGNhcmV0OiBudW1iZXIsXHJcbik6IHsgaW50Q291bnQ6IG51bWJlcjsgYWZ0ZXJDb21tYTogYm9vbGVhbjsgZnJhY0NvdW50OiBudW1iZXIgfSB7XHJcbiAgY29uc3QgbGVmdCA9IHZhbHVlLnNsaWNlKDAsIGNhcmV0KTtcclxuICBjb25zdCBub0RvdHMgPSBsZWZ0LnJlcGxhY2UoL1xcLi9nLCAnJyk7XHJcbiAgY29uc3QgY29tbWFJZHggPSBub0RvdHMuaW5kZXhPZignLCcpO1xyXG4gIGlmIChjb21tYUlkeCA9PT0gLTEpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGludENvdW50OiBub0RvdHMucmVwbGFjZSgvXFxEL2csICcnKS5sZW5ndGgsXHJcbiAgICAgIGFmdGVyQ29tbWE6IGZhbHNlLFxyXG4gICAgICBmcmFjQ291bnQ6IDAsXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb25zdCBiZWZvcmUgPSBub0RvdHMuc2xpY2UoMCwgY29tbWFJZHgpLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgY29uc3QgYWZ0ZXIgPSBub0RvdHMuc2xpY2UoY29tbWFJZHggKyAxKS5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gIHJldHVybiB7XHJcbiAgICBpbnRDb3VudDogYmVmb3JlLmxlbmd0aCxcclxuICAgIGFmdGVyQ29tbWE6IHRydWUsXHJcbiAgICBmcmFjQ291bnQ6IGFmdGVyLmxlbmd0aCxcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogw41uZGljZSBkbyBjYXJldCBubyB0ZXh0byBmb3JtYXRhZG8gYSBwYXJ0aXIgZGEgcG9zacOnw6NvIHNlbcOibnRpY2EuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY2FyZXRJbmRleEZyb21TZW1hbnRpYyhcclxuICBkaXNwbGF5OiBzdHJpbmcsXHJcbiAgdGFyZ2V0OiB7IGludENvdW50OiBudW1iZXI7IGFmdGVyQ29tbWE6IGJvb2xlYW47IGZyYWNDb3VudDogbnVtYmVyIH0sXHJcbik6IG51bWJlciB7XHJcbiAgbGV0IGludENvdW50ID0gMDtcclxuICBsZXQgYWZ0ZXJDb21tYSA9IGZhbHNlO1xyXG4gIGxldCBmcmFjQ291bnQgPSAwO1xyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRpc3BsYXkubGVuZ3RoOyBpKyspIHtcclxuICAgIGNvbnN0IGNoID0gZGlzcGxheVtpXTtcclxuICAgIGlmIChjaCA9PT0gJywnKSB7XHJcbiAgICAgIGlmICghYWZ0ZXJDb21tYSkge1xyXG4gICAgICAgIGFmdGVyQ29tbWEgPSB0cnVlO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRhcmdldC5hZnRlckNvbW1hICYmXHJcbiAgICAgICAgICB0YXJnZXQuZnJhY0NvdW50ID09PSAwICYmXHJcbiAgICAgICAgICB0YXJnZXQuaW50Q291bnQgPT09IGludENvdW50XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICByZXR1cm4gaSArIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRpbnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoID09PSAnLicpIHtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBpZiAoL1xcZC8udGVzdChjaCkpIHtcclxuICAgICAgaWYgKCFhZnRlckNvbW1hKSB7XHJcbiAgICAgICAgaW50Q291bnQrKztcclxuICAgICAgICBpZiAoIXRhcmdldC5hZnRlckNvbW1hICYmIGludENvdW50ID09PSB0YXJnZXQuaW50Q291bnQpIHtcclxuICAgICAgICAgIHJldHVybiBpICsgMTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZnJhY0NvdW50Kys7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGFyZ2V0LmFmdGVyQ29tbWEgJiZcclxuICAgICAgICAgIGZyYWNDb3VudCA9PT0gdGFyZ2V0LmZyYWNDb3VudCAmJlxyXG4gICAgICAgICAgaW50Q291bnQgPT09IHRhcmdldC5pbnRDb3VudFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgcmV0dXJuIGkgKyAxO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gZGlzcGxheS5sZW5ndGg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdHJpbmcgcGFzc8OtdmVsIGRlIHBhcnNlRGVjaW1hbEJyIGEgcGFydGlyIGRhcyBwYXJ0ZXMgZWRpdMOhdmVpcy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZERlY2ltYWxCclBhcnNlU3RyaW5nKHBhcnRzOiB7XHJcbiAgaW50RGlnaXRzOiBzdHJpbmc7XHJcbiAgZnJhY0RpZ2l0czogc3RyaW5nO1xyXG4gIGhhc0NvbW1hOiBib29sZWFuO1xyXG59KTogc3RyaW5nIHtcclxuICBpZiAoIXBhcnRzLmhhc0NvbW1hKSB7XHJcbiAgICByZXR1cm4gcGFydHMuaW50RGlnaXRzO1xyXG4gIH1cclxuICByZXR1cm4gYCR7cGFydHMuaW50RGlnaXRzfSwke3BhcnRzLmZyYWNEaWdpdHN9YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVycHJldGEgc3RyaW5nIGrDoSBzYW5pdGl6YWRhIGUgcmV0b3JuYSBuw7ptZXJvIGNvbSBhdMOpIDIgY2FzYXMgZGVjaW1haXMgKGFycmVkb25kYW1lbnRvKS5cclxuICogVmF6aW8g4oaSIG51bGwuIFbDrXJndWxhIGNvbW8gc2VwYXJhZG9yIGRlY2ltYWw7IHBvbnRvcyBzw6NvIHJlbW92aWRvcyBkYSBwYXJ0ZSBpbnRlaXJhLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGVjaW1hbEJyKHNhbml0aXplZDogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgY29uc3QgdCA9IHNhbml0aXplZC50cmltKCk7XHJcbiAgaWYgKHQgPT09ICcnKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGxhc3RDb21tYSA9IHQubGFzdEluZGV4T2YoJywnKTtcclxuICBsZXQgaW50UmF3OiBzdHJpbmc7XHJcbiAgbGV0IGZyYWNSYXc6IHN0cmluZztcclxuXHJcbiAgaWYgKGxhc3RDb21tYSA+PSAwKSB7XHJcbiAgICBpbnRSYXcgPSB0LnNsaWNlKDAsIGxhc3RDb21tYSkucmVwbGFjZSgvXFwuL2csICcnKTtcclxuICAgIGZyYWNSYXcgPSB0LnNsaWNlKGxhc3RDb21tYSArIDEpLnJlcGxhY2UoL1xcLi9nLCAnJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGludFJhdyA9IHQucmVwbGFjZSgvXFwuL2csICcnKTtcclxuICAgIGZyYWNSYXcgPSAnJztcclxuICB9XHJcblxyXG4gIGlmICghL15cXGQqJC8udGVzdChpbnRSYXcpIHx8ICEvXlxcZCokLy50ZXN0KGZyYWNSYXcpKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgaWYgKGludFJhdyA9PT0gJycgJiYgZnJhY1JhdyA9PT0gJycpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50UGFydCA9IGludFJhdyA9PT0gJycgPyAnMCcgOiBpbnRSYXc7XHJcbiAgY29uc3QgZnJhY1BhZGRlZCA9IChmcmFjUmF3ICsgJzAwJykuc2xpY2UoMCwgMik7XHJcbiAgY29uc3QgbiA9IE51bWJlcihgJHtpbnRQYXJ0fS4ke2ZyYWNQYWRkZWR9YCk7XHJcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUobikpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICByZXR1cm4gTWF0aC5yb3VuZChuICogMTAwKSAvIDEwMDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERlY2ltYWxCcih2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KCdwdC1CUicsIHtcclxuICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMixcclxuICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMixcclxuICB9KS5mb3JtYXQodmFsdWUpO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,37 @@
1
+ /** Unidades federativas do Brasil (nome + sigla). Ordem alfabética por nome. */
2
+ export const BR_ESTADOS_NOME_SIGLA = [
3
+ { nome: 'Acre', sigla: 'AC' },
4
+ { nome: 'Alagoas', sigla: 'AL' },
5
+ { nome: 'Amapá', sigla: 'AP' },
6
+ { nome: 'Amazonas', sigla: 'AM' },
7
+ { nome: 'Bahia', sigla: 'BA' },
8
+ { nome: 'Ceará', sigla: 'CE' },
9
+ { nome: 'Distrito Federal', sigla: 'DF' },
10
+ { nome: 'Espírito Santo', sigla: 'ES' },
11
+ { nome: 'Goiás', sigla: 'GO' },
12
+ { nome: 'Maranhão', sigla: 'MA' },
13
+ { nome: 'Mato Grosso', sigla: 'MT' },
14
+ { nome: 'Mato Grosso do Sul', sigla: 'MS' },
15
+ { nome: 'Minas Gerais', sigla: 'MG' },
16
+ { nome: 'Pará', sigla: 'PA' },
17
+ { nome: 'Paraíba', sigla: 'PB' },
18
+ { nome: 'Paraná', sigla: 'PR' },
19
+ { nome: 'Pernambuco', sigla: 'PE' },
20
+ { nome: 'Piauí', sigla: 'PI' },
21
+ { nome: 'Rio de Janeiro', sigla: 'RJ' },
22
+ { nome: 'Rio Grande do Norte', sigla: 'RN' },
23
+ { nome: 'Rio Grande do Sul', sigla: 'RS' },
24
+ { nome: 'Rondônia', sigla: 'RO' },
25
+ { nome: 'Roraima', sigla: 'RR' },
26
+ { nome: 'Santa Catarina', sigla: 'SC' },
27
+ { nome: 'São Paulo', sigla: 'SP' },
28
+ { nome: 'Sergipe', sigla: 'SE' },
29
+ { nome: 'Tocantins', sigla: 'TO' },
30
+ ];
31
+ export function mapEstadosToOptions(slice) {
32
+ return slice.map((e) => ({
33
+ label: `${e.nome} (${e.sigla})`,
34
+ value: e.sigla,
35
+ }));
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXN0YWRvcy1ici5kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9fdXRpbHMvZXN0YWRvcy1ici5kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGdGQUFnRjtBQUNoRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBbUQ7SUFDbkYsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDN0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDaEMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDOUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDakMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDOUIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDOUIsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUN6QyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0lBQ3ZDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0lBQzlCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0lBQ2pDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0lBQ3BDLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDM0MsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDckMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDN0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDaEMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDL0IsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDbkMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDOUIsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUN2QyxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0lBQzVDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDMUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDakMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7SUFDaEMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUN2QyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNsQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUNoQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtDQUMxQixDQUFDO0FBRVgsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxLQUFxRDtJQUVyRCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHO1FBQy9CLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztLQUNmLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVWlTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9maWVsZHMvZHJvcGRvd24tZmllbGRzL19tb2RlbHMvc2VsZWN0LW9wdGlvbi5tb2RlbCc7XHJcblxyXG4vKiogVW5pZGFkZXMgZmVkZXJhdGl2YXMgZG8gQnJhc2lsIChub21lICsgc2lnbGEpLiBPcmRlbSBhbGZhYsOpdGljYSBwb3Igbm9tZS4gKi9cclxuZXhwb3J0IGNvbnN0IEJSX0VTVEFET1NfTk9NRV9TSUdMQTogUmVhZG9ubHlBcnJheTx7IG5vbWU6IHN0cmluZzsgc2lnbGE6IHN0cmluZyB9PiA9IFtcclxuICB7IG5vbWU6ICdBY3JlJywgc2lnbGE6ICdBQycgfSxcclxuICB7IG5vbWU6ICdBbGFnb2FzJywgc2lnbGE6ICdBTCcgfSxcclxuICB7IG5vbWU6ICdBbWFww6EnLCBzaWdsYTogJ0FQJyB9LFxyXG4gIHsgbm9tZTogJ0FtYXpvbmFzJywgc2lnbGE6ICdBTScgfSxcclxuICB7IG5vbWU6ICdCYWhpYScsIHNpZ2xhOiAnQkEnIH0sXHJcbiAgeyBub21lOiAnQ2VhcsOhJywgc2lnbGE6ICdDRScgfSxcclxuICB7IG5vbWU6ICdEaXN0cml0byBGZWRlcmFsJywgc2lnbGE6ICdERicgfSxcclxuICB7IG5vbWU6ICdFc3DDrXJpdG8gU2FudG8nLCBzaWdsYTogJ0VTJyB9LFxyXG4gIHsgbm9tZTogJ0dvacOhcycsIHNpZ2xhOiAnR08nIH0sXHJcbiAgeyBub21lOiAnTWFyYW5ow6NvJywgc2lnbGE6ICdNQScgfSxcclxuICB7IG5vbWU6ICdNYXRvIEdyb3NzbycsIHNpZ2xhOiAnTVQnIH0sXHJcbiAgeyBub21lOiAnTWF0byBHcm9zc28gZG8gU3VsJywgc2lnbGE6ICdNUycgfSxcclxuICB7IG5vbWU6ICdNaW5hcyBHZXJhaXMnLCBzaWdsYTogJ01HJyB9LFxyXG4gIHsgbm9tZTogJ1BhcsOhJywgc2lnbGE6ICdQQScgfSxcclxuICB7IG5vbWU6ICdQYXJhw61iYScsIHNpZ2xhOiAnUEInIH0sXHJcbiAgeyBub21lOiAnUGFyYW7DoScsIHNpZ2xhOiAnUFInIH0sXHJcbiAgeyBub21lOiAnUGVybmFtYnVjbycsIHNpZ2xhOiAnUEUnIH0sXHJcbiAgeyBub21lOiAnUGlhdcOtJywgc2lnbGE6ICdQSScgfSxcclxuICB7IG5vbWU6ICdSaW8gZGUgSmFuZWlybycsIHNpZ2xhOiAnUkonIH0sXHJcbiAgeyBub21lOiAnUmlvIEdyYW5kZSBkbyBOb3J0ZScsIHNpZ2xhOiAnUk4nIH0sXHJcbiAgeyBub21lOiAnUmlvIEdyYW5kZSBkbyBTdWwnLCBzaWdsYTogJ1JTJyB9LFxyXG4gIHsgbm9tZTogJ1JvbmTDtG5pYScsIHNpZ2xhOiAnUk8nIH0sXHJcbiAgeyBub21lOiAnUm9yYWltYScsIHNpZ2xhOiAnUlInIH0sXHJcbiAgeyBub21lOiAnU2FudGEgQ2F0YXJpbmEnLCBzaWdsYTogJ1NDJyB9LFxyXG4gIHsgbm9tZTogJ1PDo28gUGF1bG8nLCBzaWdsYTogJ1NQJyB9LFxyXG4gIHsgbm9tZTogJ1NlcmdpcGUnLCBzaWdsYTogJ1NFJyB9LFxyXG4gIHsgbm9tZTogJ1RvY2FudGlucycsIHNpZ2xhOiAnVE8nIH0sXHJcbl0gYXMgY29uc3Q7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFwRXN0YWRvc1RvT3B0aW9ucyhcclxuICBzbGljZTogUmVhZG9ubHlBcnJheTx7IG5vbWU6IHN0cmluZzsgc2lnbGE6IHN0cmluZyB9PixcclxuKTogVWlTZWxlY3RPcHRpb248c3RyaW5nPltdIHtcclxuICByZXR1cm4gc2xpY2UubWFwKChlKSA9PiAoe1xyXG4gICAgbGFiZWw6IGAke2Uubm9tZX0gKCR7ZS5zaWdsYX0pYCxcclxuICAgIHZhbHVlOiBlLnNpZ2xhLFxyXG4gIH0pKTtcclxufVxyXG4iXX0=
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Formatação pt-BR para inteiros: apenas separador de milhar com ponto.
3
+ * Usado pelo campo inteiro e pela parte inteira do decimal.
4
+ */
5
+ /**
6
+ * Formata sequência de dígitos com pontos de milhar (ex.: 1234567 → 1.234.567).
7
+ * Aceita string vazia; não normaliza zeros à esquerda.
8
+ */
9
+ export function formatIntegerThousandsBr(intDigits) {
10
+ if (intDigits === '') {
11
+ return '';
12
+ }
13
+ const reversed = intDigits.split('').reverse().join('');
14
+ const groups = reversed.match(/.{1,3}/g) ?? [];
15
+ return groups
16
+ .map((g) => g.split('').reverse().join(''))
17
+ .reverse()
18
+ .join('.');
19
+ }
20
+ /**
21
+ * Quantidade de dígitos à esquerda do caret na máscara (pontos ignorados).
22
+ */
23
+ export function semanticIntegerDigitCountLeft(display, caret) {
24
+ return display.slice(0, caret).replace(/\D/g, '').length;
25
+ }
26
+ /**
27
+ * Índice do caret após o enésimo dígito na string formatada (fim se não houver tantos).
28
+ */
29
+ export function caretIndexFromIntegerDigitCount(display, digitCount) {
30
+ if (digitCount <= 0) {
31
+ return 0;
32
+ }
33
+ let seen = 0;
34
+ for (let i = 0; i < display.length; i++) {
35
+ const ch = display[i];
36
+ if (ch === '.') {
37
+ continue;
38
+ }
39
+ if (/\d/.test(ch)) {
40
+ seen++;
41
+ if (seen === digitCount) {
42
+ return i + 1;
43
+ }
44
+ }
45
+ }
46
+ return display.length;
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdlci1ici51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvX3V0aWxzL2ludGVnZXItYnIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFNBQWlCO0lBQ3hELElBQUksU0FBUyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9DLE9BQU8sTUFBTTtTQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDMUMsT0FBTyxFQUFFO1NBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLDZCQUE2QixDQUMzQyxPQUFlLEVBQ2YsS0FBYTtJQUViLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDM0QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLCtCQUErQixDQUM3QyxPQUFlLEVBQ2YsVUFBa0I7SUFFbEIsSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN4QyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxFQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZixTQUFTO1FBQ1gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2xCLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEZvcm1hdGHDp8OjbyBwdC1CUiBwYXJhIGludGVpcm9zOiBhcGVuYXMgc2VwYXJhZG9yIGRlIG1pbGhhciBjb20gcG9udG8uXHJcbiAqIFVzYWRvIHBlbG8gY2FtcG8gaW50ZWlybyBlIHBlbGEgcGFydGUgaW50ZWlyYSBkbyBkZWNpbWFsLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRhIHNlcXXDqm5jaWEgZGUgZMOtZ2l0b3MgY29tIHBvbnRvcyBkZSBtaWxoYXIgKGV4LjogMTIzNDU2NyDihpIgMS4yMzQuNTY3KS5cclxuICogQWNlaXRhIHN0cmluZyB2YXppYTsgbsOjbyBub3JtYWxpemEgemVyb3Mgw6AgZXNxdWVyZGEuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SW50ZWdlclRob3VzYW5kc0JyKGludERpZ2l0czogc3RyaW5nKTogc3RyaW5nIHtcclxuICBpZiAoaW50RGlnaXRzID09PSAnJykge1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICBjb25zdCByZXZlcnNlZCA9IGludERpZ2l0cy5zcGxpdCgnJykucmV2ZXJzZSgpLmpvaW4oJycpO1xyXG4gIGNvbnN0IGdyb3VwcyA9IHJldmVyc2VkLm1hdGNoKC8uezEsM30vZykgPz8gW107XHJcbiAgcmV0dXJuIGdyb3Vwc1xyXG4gICAgLm1hcCgoZykgPT4gZy5zcGxpdCgnJykucmV2ZXJzZSgpLmpvaW4oJycpKVxyXG4gICAgLnJldmVyc2UoKVxyXG4gICAgLmpvaW4oJy4nKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFF1YW50aWRhZGUgZGUgZMOtZ2l0b3Mgw6AgZXNxdWVyZGEgZG8gY2FyZXQgbmEgbcOhc2NhcmEgKHBvbnRvcyBpZ25vcmFkb3MpLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNlbWFudGljSW50ZWdlckRpZ2l0Q291bnRMZWZ0KFxyXG4gIGRpc3BsYXk6IHN0cmluZyxcclxuICBjYXJldDogbnVtYmVyLFxyXG4pOiBudW1iZXIge1xyXG4gIHJldHVybiBkaXNwbGF5LnNsaWNlKDAsIGNhcmV0KS5yZXBsYWNlKC9cXEQvZywgJycpLmxlbmd0aDtcclxufVxyXG5cclxuLyoqXHJcbiAqIMONbmRpY2UgZG8gY2FyZXQgYXDDs3MgbyBlbsOpc2ltbyBkw61naXRvIG5hIHN0cmluZyBmb3JtYXRhZGEgKGZpbSBzZSBuw6NvIGhvdXZlciB0YW50b3MpLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNhcmV0SW5kZXhGcm9tSW50ZWdlckRpZ2l0Q291bnQoXHJcbiAgZGlzcGxheTogc3RyaW5nLFxyXG4gIGRpZ2l0Q291bnQ6IG51bWJlcixcclxuKTogbnVtYmVyIHtcclxuICBpZiAoZGlnaXRDb3VudCA8PSAwKSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgbGV0IHNlZW4gPSAwO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlzcGxheS5sZW5ndGg7IGkrKykge1xyXG4gICAgY29uc3QgY2ggPSBkaXNwbGF5W2ldO1xyXG4gICAgaWYgKGNoID09PSAnLicpIHtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBpZiAoL1xcZC8udGVzdChjaCkpIHtcclxuICAgICAgc2VlbisrO1xyXG4gICAgICBpZiAoc2VlbiA9PT0gZGlnaXRDb3VudCkge1xyXG4gICAgICAgIHJldHVybiBpICsgMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gZGlzcGxheS5sZW5ndGg7XHJcbn1cclxuIl19
@@ -0,0 +1,19 @@
1
+ const DIGITS_ONLY = /^\d*$/;
2
+ /**
3
+ * Mantém apenas dígitos (0–9). Primeira versão sem sinal negativo.
4
+ */
5
+ export function sanitizeIntegerDigits(raw) {
6
+ return raw.replace(/\D/g, '');
7
+ }
8
+ export function parseIntegerString(digits) {
9
+ const t = digits.trim();
10
+ if (t === '') {
11
+ return null;
12
+ }
13
+ if (!DIGITS_ONLY.test(t)) {
14
+ return null;
15
+ }
16
+ const n = Number.parseInt(t, 10);
17
+ return Number.isFinite(n) ? n : null;
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdlci12YWx1ZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvX3V0aWxzL2ludGVnZXItdmFsdWUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDO0FBRTVCOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEdBQVc7SUFDL0MsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBESUdJVFNfT05MWSA9IC9eXFxkKiQvO1xyXG5cclxuLyoqXHJcbiAqIE1hbnTDqW0gYXBlbmFzIGTDrWdpdG9zICgw4oCTOSkuIFByaW1laXJhIHZlcnPDo28gc2VtIHNpbmFsIG5lZ2F0aXZvLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplSW50ZWdlckRpZ2l0cyhyYXc6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHJhdy5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbnRlZ2VyU3RyaW5nKGRpZ2l0czogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgY29uc3QgdCA9IGRpZ2l0cy50cmltKCk7XHJcbiAgaWYgKHQgPT09ICcnKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgaWYgKCFESUdJVFNfT05MWS50ZXN0KHQpKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgY29uc3QgbiA9IE51bWJlci5wYXJzZUludCh0LCAxMCk7XHJcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShuKSA/IG4gOiBudWxsO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Bloqueio de scroll global **alinhado ao CDK** (`BlockScrollStrategy`):
3
+ * classe `cdk-global-scrollblock` no `documentElement` + deslocamento `left`/`top`
4
+ * para congelar a posição de scroll.
5
+ *
6
+ * Também define `overflow: hidden` no `body` enquanto o lock está activo — o `html`
7
+ * **não** usa `overflow-y: scroll` (isso forçava barra no viewport sem necessidade).
8
+ *
9
+ * Requer regras CSS em `styles.scss` para `.cdk-global-scrollblock` e
10
+ * `[data-app-scroll-lock]`.
11
+ */
12
+ /** Aplica o mesmo padrão visual do overlay CDK Dialog (confirm, etc.). */
13
+ export function lockPageScrollCdkStyle() {
14
+ const html = document.documentElement;
15
+ const body = document.body;
16
+ const scrollX = window.scrollX ?? html.scrollLeft;
17
+ const scrollY = window.scrollY ?? html.scrollTop;
18
+ const snapshot = {
19
+ htmlLeft: html.style.left,
20
+ htmlTop: html.style.top,
21
+ scrollX,
22
+ scrollY,
23
+ bodyOverflow: body.style.overflow,
24
+ bodyTouchAction: body.style.touchAction,
25
+ };
26
+ html.style.left = `${-scrollX}px`;
27
+ html.style.top = `${-scrollY}px`;
28
+ html.classList.add('cdk-global-scrollblock');
29
+ body.style.overflow = 'hidden';
30
+ body.style.touchAction = 'none';
31
+ return snapshot;
32
+ }
33
+ export function unlockPageScrollCdkStyle(s) {
34
+ const html = document.documentElement;
35
+ const body = document.body;
36
+ html.classList.remove('cdk-global-scrollblock');
37
+ html.style.left = s.htmlLeft;
38
+ html.style.top = s.htmlTop;
39
+ body.style.overflow = s.bodyOverflow;
40
+ body.style.touchAction = s.bodyTouchAction;
41
+ window.scroll(s.scrollX, s.scrollY);
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9keS1zY3JvbGwtbG9jay51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9fdXRpbHMvc2Nyb2xsL2JvZHktc2Nyb2xsLWxvY2sudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBV0gsMEVBQTBFO0FBQzFFLE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUN0QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzNCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNsRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDakQsTUFBTSxRQUFRLEdBQXVCO1FBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7UUFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztRQUN2QixPQUFPO1FBQ1AsT0FBTztRQUNQLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7UUFDakMsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVztLQUN4QyxDQUFDO0lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDO0lBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQztJQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7SUFDaEMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxDQUFxQjtJQUM1RCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ3RDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBCbG9xdWVpbyBkZSBzY3JvbGwgZ2xvYmFsICoqYWxpbmhhZG8gYW8gQ0RLKiogKGBCbG9ja1Njcm9sbFN0cmF0ZWd5YCk6XHJcbiAqIGNsYXNzZSBgY2RrLWdsb2JhbC1zY3JvbGxibG9ja2Agbm8gYGRvY3VtZW50RWxlbWVudGAgKyBkZXNsb2NhbWVudG8gYGxlZnRgL2B0b3BgXHJcbiAqIHBhcmEgY29uZ2VsYXIgYSBwb3Npw6fDo28gZGUgc2Nyb2xsLlxyXG4gKlxyXG4gKiBUYW1iw6ltIGRlZmluZSBgb3ZlcmZsb3c6IGhpZGRlbmAgbm8gYGJvZHlgIGVucXVhbnRvIG8gbG9jayBlc3TDoSBhY3Rpdm8g4oCUIG8gYGh0bWxgXHJcbiAqICoqbsOjbyoqIHVzYSBgb3ZlcmZsb3cteTogc2Nyb2xsYCAoaXNzbyBmb3LDp2F2YSBiYXJyYSBubyB2aWV3cG9ydCBzZW0gbmVjZXNzaWRhZGUpLlxyXG4gKlxyXG4gKiBSZXF1ZXIgcmVncmFzIENTUyBlbSBgc3R5bGVzLnNjc3NgIHBhcmEgYC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrYCBlXHJcbiAqIGBbZGF0YS1hcHAtc2Nyb2xsLWxvY2tdYC5cclxuICovXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbExvY2tTbmFwc2hvdCB7XHJcbiAgcmVhZG9ubHkgaHRtbExlZnQ6IHN0cmluZztcclxuICByZWFkb25seSBodG1sVG9wOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgc2Nyb2xsWDogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IHNjcm9sbFk6IG51bWJlcjtcclxuICByZWFkb25seSBib2R5T3ZlcmZsb3c6IHN0cmluZztcclxuICByZWFkb25seSBib2R5VG91Y2hBY3Rpb246IHN0cmluZztcclxufVxyXG5cclxuLyoqIEFwbGljYSBvIG1lc21vIHBhZHLDo28gdmlzdWFsIGRvIG92ZXJsYXkgQ0RLIERpYWxvZyAoY29uZmlybSwgZXRjLikuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2NrUGFnZVNjcm9sbENka1N0eWxlKCk6IFNjcm9sbExvY2tTbmFwc2hvdCB7XHJcbiAgY29uc3QgaHRtbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICBjb25zdCBib2R5ID0gZG9jdW1lbnQuYm9keTtcclxuICBjb25zdCBzY3JvbGxYID0gd2luZG93LnNjcm9sbFggPz8gaHRtbC5zY3JvbGxMZWZ0O1xyXG4gIGNvbnN0IHNjcm9sbFkgPSB3aW5kb3cuc2Nyb2xsWSA/PyBodG1sLnNjcm9sbFRvcDtcclxuICBjb25zdCBzbmFwc2hvdDogU2Nyb2xsTG9ja1NuYXBzaG90ID0ge1xyXG4gICAgaHRtbExlZnQ6IGh0bWwuc3R5bGUubGVmdCxcclxuICAgIGh0bWxUb3A6IGh0bWwuc3R5bGUudG9wLFxyXG4gICAgc2Nyb2xsWCxcclxuICAgIHNjcm9sbFksXHJcbiAgICBib2R5T3ZlcmZsb3c6IGJvZHkuc3R5bGUub3ZlcmZsb3csXHJcbiAgICBib2R5VG91Y2hBY3Rpb246IGJvZHkuc3R5bGUudG91Y2hBY3Rpb24sXHJcbiAgfTtcclxuICBodG1sLnN0eWxlLmxlZnQgPSBgJHstc2Nyb2xsWH1weGA7XHJcbiAgaHRtbC5zdHlsZS50b3AgPSBgJHstc2Nyb2xsWX1weGA7XHJcbiAgaHRtbC5jbGFzc0xpc3QuYWRkKCdjZGstZ2xvYmFsLXNjcm9sbGJsb2NrJyk7XHJcbiAgYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xyXG4gIGJvZHkuc3R5bGUudG91Y2hBY3Rpb24gPSAnbm9uZSc7XHJcbiAgcmV0dXJuIHNuYXBzaG90O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdW5sb2NrUGFnZVNjcm9sbENka1N0eWxlKHM6IFNjcm9sbExvY2tTbmFwc2hvdCk6IHZvaWQge1xyXG4gIGNvbnN0IGh0bWwgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7XHJcbiAgaHRtbC5jbGFzc0xpc3QucmVtb3ZlKCdjZGstZ2xvYmFsLXNjcm9sbGJsb2NrJyk7XHJcbiAgaHRtbC5zdHlsZS5sZWZ0ID0gcy5odG1sTGVmdDtcclxuICBodG1sLnN0eWxlLnRvcCA9IHMuaHRtbFRvcDtcclxuICBib2R5LnN0eWxlLm92ZXJmbG93ID0gcy5ib2R5T3ZlcmZsb3c7XHJcbiAgYm9keS5zdHlsZS50b3VjaEFjdGlvbiA9IHMuYm9keVRvdWNoQWN0aW9uO1xyXG4gIHdpbmRvdy5zY3JvbGwocy5zY3JvbGxYLCBzLnNjcm9sbFkpO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9hcHAtc2hlbGwvX21vZGVscy9icmVhZGNydW1iLWl0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBTZWdtZW50byBkbyBmaWxvIGRlIG5hdmVnYcOnw6NvIChgYXBwLWJyZWFkY3J1bWJgKS5cclxuICogUHJpb3JpZGFkZSBkZSBuYXZlZ2HDp8Ojbzogc2UgYHJvdXRlYCBlc3RpdmVyIGRlZmluaWRvLCB1c2Etc2UgYFJvdXRlckxpbmtgOyBzZW7Do28sIGBocmVmYCAow6JuY29yYSBuYXRpdmEpLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBCcmVhZGNydW1iSXRlbSB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICAvKiogUm90YSBBbmd1bGFyIChgcm91dGVyTGlua2ApIHF1YW5kbyBvIHNlZ21lbnRvIMOpIG5hdmVnw6F2ZWwgZGVudHJvIGRhIGFwcC4gKi9cclxuICByb3V0ZT86IHN0cmluZyB8IHJlYWRvbmx5IHVua25vd25bXTtcclxuICAvKipcclxuICAgKiBVUkwgcXVhbmRvIG7Do28gc2UgdXNhIG8gcm91dGVyIChleC46IGxpbmsgZXh0ZXJubykuIElnbm9yYWRvIHNlIGByb3V0ZWAgZXN0aXZlciBkZWZpbmlkby5cclxuICAgKi9cclxuICBocmVmPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Directive, TemplateRef, inject } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Marca o `ng-template` cuja instância é projectada na barra lateral (desktop) e no `app-drawer` (mobile).
5
+ *
6
+ * ```html
7
+ * <app-shell>
8
+ * <ng-template appShellSidebar>
9
+ * <app-sidebar ... />
10
+ * </ng-template>
11
+ * ...
12
+ * </app-shell>
13
+ * ```
14
+ */
15
+ export class AppShellSidebarTemplateDirective {
16
+ constructor() {
17
+ this.templateRef = inject((TemplateRef));
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppShellSidebarTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AppShellSidebarTemplateDirective, isStandalone: true, selector: "ng-template[appShellSidebar]", ngImport: i0 }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppShellSidebarTemplateDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: 'ng-template[appShellSidebar]',
26
+ standalone: true,
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLXNpZGViYXItdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9hcHAtc2hlbGwvYXBwLXNoZWxsLXNpZGViYXItdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0Q7Ozs7Ozs7Ozs7O0dBV0c7QUFLSCxNQUFNLE9BQU8sZ0NBQWdDO0lBSjdDO1FBS1csZ0JBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQSxXQUFvQixDQUFBLENBQUMsQ0FBQztLQUNyRDsrR0FGWSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBNYXJjYSBvIGBuZy10ZW1wbGF0ZWAgY3VqYSBpbnN0w6JuY2lhIMOpIHByb2plY3RhZGEgbmEgYmFycmEgbGF0ZXJhbCAoZGVza3RvcCkgZSBubyBgYXBwLWRyYXdlcmAgKG1vYmlsZSkuXHJcbiAqXHJcbiAqIGBgYGh0bWxcclxuICogPGFwcC1zaGVsbD5cclxuICogICA8bmctdGVtcGxhdGUgYXBwU2hlbGxTaWRlYmFyPlxyXG4gKiAgICAgPGFwcC1zaWRlYmFyIC4uLiAvPlxyXG4gKiAgIDwvbmctdGVtcGxhdGU+XHJcbiAqICAgLi4uXHJcbiAqIDwvYXBwLXNoZWxsPlxyXG4gKiBgYGBcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXBwU2hlbGxTaWRlYmFyXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcFNoZWxsU2lkZWJhclRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjx1bmtub3duPik7XHJcbn1cclxuIl19
@@ -0,0 +1,105 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { BreakpointObserver } from '@angular/cdk/layout';
3
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, DestroyRef, EventEmitter, HostBinding, Input, Output, booleanAttribute, inject, } from '@angular/core';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
+ import { ADAPTIVE_DATA_VIEW_MOBILE_QUERY } from '../data-display/adaptive-data-view/adaptive-data-view.component';
6
+ import { DrawerComponent } from '../menus/drawer/drawer.component';
7
+ import { DrawerSide } from '../menus/_models/drawer-side.model';
8
+ import { DrawerSize } from '../menus/_models/drawer-size.model';
9
+ import { AppThemeService } from '../theme';
10
+ import { AppShellSidebarTemplateDirective } from './app-shell-sidebar-template.directive';
11
+ import * as i0 from "@angular/core";
12
+ /**
13
+ * Estrutura principal: barra lateral, topo e conteúdo. Em mobile a lateral projecta-se no `app-drawer`.
14
+ *
15
+ * Use `exportAs: 'appShell'` e `toggleMobileNav` / `toggleSidebarCollapsed` a partir da topbar.
16
+ */
17
+ export class AppShellComponent {
18
+ constructor() {
19
+ this.bp = inject(BreakpointObserver);
20
+ this.cdr = inject(ChangeDetectorRef);
21
+ this.destroyRef = inject(DestroyRef);
22
+ this.theme = inject(AppThemeService);
23
+ /** Barra lateral estreita (ícones + compressão de texto na lista). */
24
+ this.sidebarCollapsed = false;
25
+ this.sidebarCollapsedChange = new EventEmitter();
26
+ /** Estado do drawer mobile (usar `[(mobileNavOpen)]` para controlar o menu hamburger). */
27
+ this.mobileNavOpen = false;
28
+ this.mobileNavOpenChange = new EventEmitter();
29
+ /** Consulta CDK para modo mobile (por omissão igual à vista adaptativa). */
30
+ this.mobileLayoutQuery = ADAPTIVE_DATA_VIEW_MOBILE_QUERY;
31
+ this.isMobileLayout = false;
32
+ this.DrawerSide = DrawerSide;
33
+ this.DrawerSize = DrawerSize;
34
+ }
35
+ get hostThemeClasses() {
36
+ return `app-library-theme ${this.theme.themeClass()}`;
37
+ }
38
+ /** Conteúdo lateral (obrigatório): `<ng-template appShellSidebar>...</ng-template>`. */
39
+ get sidebarTemplate() {
40
+ return this.sidebarSlot?.templateRef ?? null;
41
+ }
42
+ ngOnInit() {
43
+ this.bp
44
+ .observe([this.mobileLayoutQuery])
45
+ .pipe(takeUntilDestroyed(this.destroyRef))
46
+ .subscribe((state) => {
47
+ const next = state.matches;
48
+ if (next !== this.isMobileLayout) {
49
+ this.isMobileLayout = next;
50
+ if (!next && this.mobileNavOpen) {
51
+ this.emitMobileNavOpen(false);
52
+ }
53
+ this.cdr.markForCheck();
54
+ }
55
+ });
56
+ }
57
+ onMobileDrawerOpenChange(next) {
58
+ this.emitMobileNavOpen(next);
59
+ }
60
+ /** Emite alteração; com `[(mobileNavOpen)]` no pai o `@Input` actualiza o estado do drawer. */
61
+ emitMobileNavOpen(next) {
62
+ if (this.mobileNavOpen === next) {
63
+ return;
64
+ }
65
+ this.mobileNavOpenChange.emit(next);
66
+ this.cdr.markForCheck();
67
+ }
68
+ toggleMobileNav() {
69
+ this.emitMobileNavOpen(!this.mobileNavOpen);
70
+ }
71
+ toggleSidebarCollapsed() {
72
+ this.sidebarCollapsedChange.emit(!this.sidebarCollapsed);
73
+ this.cdr.markForCheck();
74
+ }
75
+ closeMobileNav() {
76
+ if (this.mobileNavOpen) {
77
+ this.emitMobileNavOpen(false);
78
+ }
79
+ }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AppShellComponent, isStandalone: true, selector: "app-shell", inputs: { sidebarCollapsed: ["sidebarCollapsed", "sidebarCollapsed", booleanAttribute], mobileNavOpen: ["mobileNavOpen", "mobileNavOpen", booleanAttribute], mobileLayoutQuery: "mobileLayoutQuery" }, outputs: { sidebarCollapsedChange: "sidebarCollapsedChange", mobileNavOpenChange: "mobileNavOpenChange" }, host: { properties: { "class": "this.hostThemeClasses" } }, queries: [{ propertyName: "sidebarSlot", first: true, predicate: AppShellSidebarTemplateDirective, descendants: true }], exportAs: ["appShell"], ngImport: i0, template: "<div\r\n class=\"app-shell\"\r\n [class.app-shell--mobile]=\"isMobileLayout\"\r\n [class.app-shell--sidebar-collapsed]=\"sidebarCollapsed\"\r\n>\r\n @if (!isMobileLayout && sidebarTemplate) {\r\n <aside class=\"app-shell__sidebar\" aria-label=\"Navega\u00E7\u00E3o principal\">\r\n <ng-container [ngTemplateOutlet]=\"sidebarTemplate\" />\r\n </aside>\r\n }\r\n\r\n @if (isMobileLayout && sidebarTemplate) {\r\n <app-drawer\r\n [open]=\"mobileNavOpen\"\r\n (openChange)=\"onMobileDrawerOpenChange($event)\"\r\n [side]=\"DrawerSide.Left\"\r\n [size]=\"DrawerSize.Sm\"\r\n title=\"Navega\u00E7\u00E3o\"\r\n [showCloseButton]=\"true\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"sidebarTemplate\" />\r\n </app-drawer>\r\n }\r\n\r\n <div class=\"app-shell__main\">\r\n <ng-content select=\"[appShellTopbar]\" />\r\n <main class=\"app-shell__content\">\r\n <ng-content />\r\n </main>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@keyframes app-sidebar-nav-reveal-in{0%{opacity:0;transform:translate3d(-.45rem,0,0)}to{opacity:1;transform:translateZ(0)}}:host{display:flex;flex:1 1 auto;flex-direction:column;width:100%;min-width:0;min-height:0;box-sizing:border-box}.app-shell{display:flex;flex-direction:row;align-items:stretch;flex:1 1 auto;width:100%;min-height:0;min-width:0;box-sizing:border-box}.app-shell__sidebar{display:flex;flex-direction:column;flex:0 0 17.5rem;width:17.5rem;max-width:100%;min-width:0;min-height:0;align-self:stretch;overflow:hidden;transition:flex-basis .12s cubic-bezier(.22,1,.36,1),width .12s cubic-bezier(.22,1,.36,1),padding .12s cubic-bezier(.22,1,.36,1)}.app-shell--sidebar-collapsed:not(.app-shell--mobile) .app-shell__sidebar{flex-basis:5rem;width:5rem}.app-shell__main{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;min-height:0;align-self:stretch;overflow:hidden}.app-shell__content{flex:1 1 auto;min-height:0;min-width:0;overflow:auto;padding:1rem 1.1rem;box-sizing:border-box;background:var(--app-color-shell-main-bg, var(--app-color-background, #fafbfc))}.app-shell--mobile .app-shell__sidebar{display:none}.app-shell--mobile .app-shell__main{width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DrawerComponent, selector: "app-drawer", inputs: ["open", "side", "size", "title", "showCloseButton"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppShellComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'app-shell', standalone: true, exportAs: 'appShell', imports: [NgTemplateOutlet, DrawerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"app-shell\"\r\n [class.app-shell--mobile]=\"isMobileLayout\"\r\n [class.app-shell--sidebar-collapsed]=\"sidebarCollapsed\"\r\n>\r\n @if (!isMobileLayout && sidebarTemplate) {\r\n <aside class=\"app-shell__sidebar\" aria-label=\"Navega\u00E7\u00E3o principal\">\r\n <ng-container [ngTemplateOutlet]=\"sidebarTemplate\" />\r\n </aside>\r\n }\r\n\r\n @if (isMobileLayout && sidebarTemplate) {\r\n <app-drawer\r\n [open]=\"mobileNavOpen\"\r\n (openChange)=\"onMobileDrawerOpenChange($event)\"\r\n [side]=\"DrawerSide.Left\"\r\n [size]=\"DrawerSize.Sm\"\r\n title=\"Navega\u00E7\u00E3o\"\r\n [showCloseButton]=\"true\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"sidebarTemplate\" />\r\n </app-drawer>\r\n }\r\n\r\n <div class=\"app-shell__main\">\r\n <ng-content select=\"[appShellTopbar]\" />\r\n <main class=\"app-shell__content\">\r\n <ng-content />\r\n </main>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@keyframes app-sidebar-nav-reveal-in{0%{opacity:0;transform:translate3d(-.45rem,0,0)}to{opacity:1;transform:translateZ(0)}}:host{display:flex;flex:1 1 auto;flex-direction:column;width:100%;min-width:0;min-height:0;box-sizing:border-box}.app-shell{display:flex;flex-direction:row;align-items:stretch;flex:1 1 auto;width:100%;min-height:0;min-width:0;box-sizing:border-box}.app-shell__sidebar{display:flex;flex-direction:column;flex:0 0 17.5rem;width:17.5rem;max-width:100%;min-width:0;min-height:0;align-self:stretch;overflow:hidden;transition:flex-basis .12s cubic-bezier(.22,1,.36,1),width .12s cubic-bezier(.22,1,.36,1),padding .12s cubic-bezier(.22,1,.36,1)}.app-shell--sidebar-collapsed:not(.app-shell--mobile) .app-shell__sidebar{flex-basis:5rem;width:5rem}.app-shell__main{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;min-height:0;align-self:stretch;overflow:hidden}.app-shell__content{flex:1 1 auto;min-height:0;min-width:0;overflow:auto;padding:1rem 1.1rem;box-sizing:border-box;background:var(--app-color-shell-main-bg, var(--app-color-background, #fafbfc))}.app-shell--mobile .app-shell__sidebar{display:none}.app-shell--mobile .app-shell__main{width:100%}\n"] }]
86
+ }], propDecorators: { hostThemeClasses: [{
87
+ type: HostBinding,
88
+ args: ['class']
89
+ }], sidebarSlot: [{
90
+ type: ContentChild,
91
+ args: [AppShellSidebarTemplateDirective]
92
+ }], sidebarCollapsed: [{
93
+ type: Input,
94
+ args: [{ transform: booleanAttribute }]
95
+ }], sidebarCollapsedChange: [{
96
+ type: Output
97
+ }], mobileNavOpen: [{
98
+ type: Input,
99
+ args: [{ transform: booleanAttribute }]
100
+ }], mobileNavOpenChange: [{
101
+ type: Output
102
+ }], mobileLayoutQuery: [{
103
+ type: Input
104
+ }] } });
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYXBwLXNoZWxsL2FwcC1zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FwcC1zaGVsbC9hcHAtc2hlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUVOLGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDbEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFFMUY7Ozs7R0FJRztBQVVILE1BQU0sT0FBTyxpQkFBaUI7SUFUOUI7UUFVbUIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxlQUFVLEdB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LEVBQUUsZUFBZSxDQUFDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNOzhCQVNqQyxnQkFBZ0I7c0JBRDdCLFdBQVc7dUJBQUMsT0FBTztnQkFNSCxXQUFXO3NCQUQzQixZQUFZO3VCQUFDLGdDQUFnQztnQkFTTixnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRW5CLHNCQUFzQjtzQkFBeEMsTUFBTTtnQkFHaUMsYUFBYTtzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFbkIsbUJBQW1CO3NCQUFyQyxNQUFNO2dCQUdFLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcclxuICBpbmplY3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgQURBUFRJVkVfREFUQV9WSUVXX01PQklMRV9RVUVSWSB9IGZyb20gJy4uL2RhdGEtZGlzcGxheS9hZGFwdGl2ZS1kYXRhLXZpZXcvYWRhcHRpdmUtZGF0YS12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyYXdlckNvbXBvbmVudCB9IGZyb20gJy4uL21lbnVzL2RyYXdlci9kcmF3ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJhd2VyU2lkZSB9IGZyb20gJy4uL21lbnVzL19tb2RlbHMvZHJhd2VyLXNpZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBEcmF3ZXJTaXplIH0gZnJvbSAnLi4vbWVudXMvX21vZGVscy9kcmF3ZXItc2l6ZS5tb2RlbCc7XHJcbmltcG9ydCB7IEFwcFRoZW1lU2VydmljZSB9IGZyb20gJy4uL3RoZW1lJztcclxuaW1wb3J0IHsgQXBwU2hlbGxTaWRlYmFyVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2FwcC1zaGVsbC1zaWRlYmFyLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogRXN0cnV0dXJhIHByaW5jaXBhbDogYmFycmEgbGF0ZXJhbCwgdG9wbyBlIGNvbnRlw7pkby4gRW0gbW9iaWxlIGEgbGF0ZXJhbCBwcm9qZWN0YS1zZSBubyBgYXBwLWRyYXdlcmAuXHJcbiAqXHJcbiAqIFVzZSBgZXhwb3J0QXM6ICdhcHBTaGVsbCdgIGUgYHRvZ2dsZU1vYmlsZU5hdmAgLyBgdG9nZ2xlU2lkZWJhckNvbGxhcHNlZGAgYSBwYXJ0aXIgZGEgdG9wYmFyLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2hlbGwnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgZXhwb3J0QXM6ICdhcHBTaGVsbCcsXHJcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIERyYXdlckNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC1zaGVsbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FwcC1zaGVsbC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBTaGVsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBicCA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0aGVtZSA9IGluamVjdChBcHBUaGVtZVNlcnZpY2UpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICBwcm90ZWN0ZWQgZ2V0IGhvc3RUaGVtZUNsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgYXBwLWxpYnJhcnktdGhlbWUgJHt0aGlzLnRoZW1lLnRoZW1lQ2xhc3MoKX1gO1xyXG4gIH1cclxuXHJcbiAgQENvbnRlbnRDaGlsZChBcHBTaGVsbFNpZGViYXJUZW1wbGF0ZURpcmVjdGl2ZSlcclxuICBwcml2YXRlIHJlYWRvbmx5IHNpZGViYXJTbG90PzogQXBwU2hlbGxTaWRlYmFyVGVtcGxhdGVEaXJlY3RpdmU7XHJcblxyXG4gIC8qKiBDb250ZcO6ZG8gbGF0ZXJhbCAob2JyaWdhdMOzcmlvKTogYDxuZy10ZW1wbGF0ZSBhcHBTaGVsbFNpZGViYXI+Li4uPC9uZy10ZW1wbGF0ZT5gLiAqL1xyXG4gIGdldCBzaWRlYmFyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnNpZGViYXJTbG90Py50ZW1wbGF0ZVJlZiA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqIEJhcnJhIGxhdGVyYWwgZXN0cmVpdGEgKMOtY29uZXMgKyBjb21wcmVzc8OjbyBkZSB0ZXh0byBuYSBsaXN0YSkuICovXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNpZGViYXJDb2xsYXBzZWQgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNpZGViYXJDb2xsYXBzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIC8qKiBFc3RhZG8gZG8gZHJhd2VyIG1vYmlsZSAodXNhciBgWyhtb2JpbGVOYXZPcGVuKV1gIHBhcmEgY29udHJvbGFyIG8gbWVudSBoYW1idXJnZXIpLiAqL1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBtb2JpbGVOYXZPcGVuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSByZWFkb25seSBtb2JpbGVOYXZPcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvKiogQ29uc3VsdGEgQ0RLIHBhcmEgbW9kbyBtb2JpbGUgKHBvciBvbWlzc8OjbyBpZ3VhbCDDoCB2aXN0YSBhZGFwdGF0aXZhKS4gKi9cclxuICBASW5wdXQoKSBtb2JpbGVMYXlvdXRRdWVyeSA9IEFEQVBUSVZFX0RBVEFfVklFV19NT0JJTEVfUVVFUlk7XHJcblxyXG4gIGlzTW9iaWxlTGF5b3V0ID0gZmFsc2U7XHJcblxyXG4gIHJlYWRvbmx5IERyYXdlclNpZGUgPSBEcmF3ZXJTaWRlO1xyXG4gIHJlYWRvbmx5IERyYXdlclNpemUgPSBEcmF3ZXJTaXplO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnBcclxuICAgICAgLm9ic2VydmUoW3RoaXMubW9iaWxlTGF5b3V0UXVlcnldKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcclxuICAgICAgICBjb25zdCBuZXh0ID0gc3RhdGUubWF0Y2hlcztcclxuICAgICAgICBpZiAobmV4dCAhPT0gdGhpcy5pc01vYmlsZUxheW91dCkge1xyXG4gICAgICAgICAgdGhpcy5pc01vYmlsZUxheW91dCA9IG5leHQ7XHJcbiAgICAgICAgICBpZiAoIW5leHQgJiYgdGhpcy5tb2JpbGVOYXZPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdE1vYmlsZU5hdk9wZW4oZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uTW9iaWxlRHJhd2VyT3BlbkNoYW5nZShuZXh0OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmVtaXRNb2JpbGVOYXZPcGVuKG5leHQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEVtaXRlIGFsdGVyYcOnw6NvOyBjb20gYFsobW9iaWxlTmF2T3BlbildYCBubyBwYWkgbyBgQElucHV0YCBhY3R1YWxpemEgbyBlc3RhZG8gZG8gZHJhd2VyLiAqL1xyXG4gIHByaXZhdGUgZW1pdE1vYmlsZU5hdk9wZW4obmV4dDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubW9iaWxlTmF2T3BlbiA9PT0gbmV4dCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm1vYmlsZU5hdk9wZW5DaGFuZ2UuZW1pdChuZXh0KTtcclxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTW9iaWxlTmF2KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbWl0TW9iaWxlTmF2T3BlbighdGhpcy5tb2JpbGVOYXZPcGVuKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZVNpZGViYXJDb2xsYXBzZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNpZGViYXJDb2xsYXBzZWRDaGFuZ2UuZW1pdCghdGhpcy5zaWRlYmFyQ29sbGFwc2VkKTtcclxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2JpbGVOYXYoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2JpbGVOYXZPcGVuKSB7XHJcbiAgICAgIHRoaXMuZW1pdE1vYmlsZU5hdk9wZW4oZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJhcHAtc2hlbGxcIlxyXG4gIFtjbGFzcy5hcHAtc2hlbGwtLW1vYmlsZV09XCJpc01vYmlsZUxheW91dFwiXHJcbiAgW2NsYXNzLmFwcC1zaGVsbC0tc2lkZWJhci1jb2xsYXBzZWRdPVwic2lkZWJhckNvbGxhcHNlZFwiXHJcbj5cclxuICBAaWYgKCFpc01vYmlsZUxheW91dCAmJiBzaWRlYmFyVGVtcGxhdGUpIHtcclxuICAgIDxhc2lkZSBjbGFzcz1cImFwcC1zaGVsbF9fc2lkZWJhclwiIGFyaWEtbGFiZWw9XCJOYXZlZ2HDp8OjbyBwcmluY2lwYWxcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzaWRlYmFyVGVtcGxhdGVcIiAvPlxyXG4gICAgPC9hc2lkZT5cclxuICB9XHJcblxyXG4gIEBpZiAoaXNNb2JpbGVMYXlvdXQgJiYgc2lkZWJhclRlbXBsYXRlKSB7XHJcbiAgICA8YXBwLWRyYXdlclxyXG4gICAgICBbb3Blbl09XCJtb2JpbGVOYXZPcGVuXCJcclxuICAgICAgKG9wZW5DaGFuZ2UpPVwib25Nb2JpbGVEcmF3ZXJPcGVuQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbc2lkZV09XCJEcmF3ZXJTaWRlLkxlZnRcIlxyXG4gICAgICBbc2l6ZV09XCJEcmF3ZXJTaXplLlNtXCJcclxuICAgICAgdGl0bGU9XCJOYXZlZ2HDp8Ojb1wiXHJcbiAgICAgIFtzaG93Q2xvc2VCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZWJhclRlbXBsYXRlXCIgLz5cclxuICAgIDwvYXBwLWRyYXdlcj5cclxuICB9XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJhcHAtc2hlbGxfX21haW5cIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthcHBTaGVsbFRvcGJhcl1cIiAvPlxyXG4gICAgPG1haW4gY2xhc3M9XCJhcHAtc2hlbGxfX2NvbnRlbnRcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgIDwvbWFpbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { RouterLink } from '@angular/router';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Filo hierárquico com `nav` + lista ordenada; último segmento com `aria-current="page"`.
6
+ */
7
+ export class AppBreadcrumbComponent {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AppBreadcrumbComponent, isStandalone: true, selector: "app-breadcrumb", inputs: { items: "items" }, ngImport: i0, template: "@if (items.length) {\r\n <nav class=\"app-breadcrumb\" aria-label=\"Navega\u00E7\u00E3o em filo\">\r\n <ol class=\"app-breadcrumb__list\">\r\n @for (item of items; track $index; let last = $last) {\r\n <li class=\"app-breadcrumb__item\" [class.app-breadcrumb__item--current]=\"last\">\r\n @if (last) {\r\n <span class=\"app-breadcrumb__text app-breadcrumb__text--current\" aria-current=\"page\">\r\n {{ item.label }}\r\n </span>\r\n } @else if (item.route != null) {\r\n <a class=\"app-breadcrumb__link\" [routerLink]=\"$any(item.route)\">{{ item.label }}</a>\r\n <span class=\"app-breadcrumb__sep\" aria-hidden=\"true\">/</span>\r\n } @else if (item.href?.trim()) {\r\n <a class=\"app-breadcrumb__link\" [href]=\"item.href!.trim()\">{{ item.label }}</a>\r\n <span class=\"app-breadcrumb__sep\" aria-hidden=\"true\">/</span>\r\n } @else {\r\n <span class=\"app-breadcrumb__text\">{{ item.label }}</span>\r\n <span class=\"app-breadcrumb__sep\" aria-hidden=\"true\">/</span>\r\n }\r\n </li>\r\n }\r\n </ol>\r\n </nav>\r\n}\r\n", styles: [":host{display:block;min-width:0;max-width:100%;box-sizing:border-box}.app-breadcrumb{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.app-breadcrumb__list{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .15rem;margin:0;padding:0;list-style:none;font-size:.82rem;line-height:1.4;min-width:min-content}.app-breadcrumb__item{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.15rem;min-width:0;max-width:100%}.app-breadcrumb__link{color:var(--app-color-nav-link, var(--app-color-primary, #2b7fd9));text-decoration:none;border-radius:4px}.app-breadcrumb__link:hover{text-decoration:underline}.app-breadcrumb__link:focus-visible{outline:2px solid var(--app-color-nav-focus-ring, var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45)));outline-offset:2px}.app-breadcrumb__text{color:var(--app-color-text-secondary, #5a7fa3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(100%,14rem)}.app-breadcrumb__text--current{color:var(--app-color-text-primary, #1a2f45);font-weight:600;max-width:min(100%,20rem)}.app-breadcrumb__sep{color:var(--app-color-text-muted, #6b8299);-webkit-user-select:none;user-select:none;padding:0 .1rem}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppBreadcrumbComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'app-breadcrumb', standalone: true, imports: [RouterLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (items.length) {\r\n <nav class=\"app-breadcrumb\" aria-label=\"Navega\u00E7\u00E3o em filo\">\r\n <ol class=\"app-breadcrumb__list\">\r\n @for (item of items; track $index; let last = $last) {\r\n <li class=\"app-breadcrumb__item\" [class.app-breadcrumb__item--current]=\"last\">\r\n @if (last) {\r\n <span class=\"app-breadcrumb__text app-breadcrumb__text--current\" aria-current=\"page\">\r\n {{ item.label }}\r\n </span>\r\n } @else if (item.route != null) {\r\n <a class=\"app-breadcrumb__link\" [routerLink]=\"$any(item.route)\">{{ item.label }}</a>\r\n <span class=\"app-breadcrumb__sep\" aria-hidden=\"true\">/</span>\r\n } @else if (item.href?.trim()) {\r\n <a class=\"app-breadcrumb__link\" [href]=\"item.href!.trim()\">{{ item.label }}</a>\r\n <span class=\"app-breadcrumb__sep\" aria-hidden=\"true\">/</span>\r\n } @else {\r\n <span class=\"app-breadcrumb__text\">{{ item.label }}</span>\r\n <span class=\"app-breadcrumb__sep\" aria-hidden=\"true\">/</span>\r\n }\r\n </li>\r\n }\r\n </ol>\r\n </nav>\r\n}\r\n", styles: [":host{display:block;min-width:0;max-width:100%;box-sizing:border-box}.app-breadcrumb{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.app-breadcrumb__list{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .15rem;margin:0;padding:0;list-style:none;font-size:.82rem;line-height:1.4;min-width:min-content}.app-breadcrumb__item{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.15rem;min-width:0;max-width:100%}.app-breadcrumb__link{color:var(--app-color-nav-link, var(--app-color-primary, #2b7fd9));text-decoration:none;border-radius:4px}.app-breadcrumb__link:hover{text-decoration:underline}.app-breadcrumb__link:focus-visible{outline:2px solid var(--app-color-nav-focus-ring, var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45)));outline-offset:2px}.app-breadcrumb__text{color:var(--app-color-text-secondary, #5a7fa3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(100%,14rem)}.app-breadcrumb__text--current{color:var(--app-color-text-primary, #1a2f45);font-weight:600;max-width:min(100%,20rem)}.app-breadcrumb__sep{color:var(--app-color-text-muted, #6b8299);-webkit-user-select:none;user-select:none;padding:0 .1rem}\n"] }]
14
+ }], propDecorators: { items: [{
15
+ type: Input,
16
+ args: [{ required: true }]
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FwcC1zaGVsbC9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9hcHAtc2hlbGwvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHN0M7O0dBRUc7QUFTSCxNQUFNLE9BQU8sc0JBQXNCOytHQUF0QixzQkFBc0I7bUdBQXRCLHNCQUFzQixzR0NmbkMscXJDQXdCQSwydkNEZFksVUFBVTs7NEZBS1Qsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFVBQVUsQ0FBQyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdwQixLQUFLO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgdHlwZSB7IEJyZWFkY3J1bWJJdGVtIH0gZnJvbSAnLi4vX21vZGVscy9icmVhZGNydW1iLWl0ZW0ubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEZpbG8gaGllcsOhcnF1aWNvIGNvbSBgbmF2YCArIGxpc3RhIG9yZGVuYWRhOyDDumx0aW1vIHNlZ21lbnRvIGNvbSBgYXJpYS1jdXJyZW50PVwicGFnZVwiYC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJyZWFkY3J1bWInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1JvdXRlckxpbmtdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBCcmVhZGNydW1iQ29tcG9uZW50IHtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBpdGVtcyE6IHJlYWRvbmx5IEJyZWFkY3J1bWJJdGVtW107XHJcbn1cclxuIiwiQGlmIChpdGVtcy5sZW5ndGgpIHtcclxuICA8bmF2IGNsYXNzPVwiYXBwLWJyZWFkY3J1bWJcIiBhcmlhLWxhYmVsPVwiTmF2ZWdhw6fDo28gZW0gZmlsb1wiPlxyXG4gICAgPG9sIGNsYXNzPVwiYXBwLWJyZWFkY3J1bWJfX2xpc3RcIj5cclxuICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgJGluZGV4OyBsZXQgbGFzdCA9ICRsYXN0KSB7XHJcbiAgICAgICAgPGxpIGNsYXNzPVwiYXBwLWJyZWFkY3J1bWJfX2l0ZW1cIiBbY2xhc3MuYXBwLWJyZWFkY3J1bWJfX2l0ZW0tLWN1cnJlbnRdPVwibGFzdFwiPlxyXG4gICAgICAgICAgQGlmIChsYXN0KSB7XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWJyZWFkY3J1bWJfX3RleHQgYXBwLWJyZWFkY3J1bWJfX3RleHQtLWN1cnJlbnRcIiBhcmlhLWN1cnJlbnQ9XCJwYWdlXCI+XHJcbiAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICB9IEBlbHNlIGlmIChpdGVtLnJvdXRlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJhcHAtYnJlYWRjcnVtYl9fbGlua1wiIFtyb3V0ZXJMaW5rXT1cIiRhbnkoaXRlbS5yb3V0ZSlcIj57eyBpdGVtLmxhYmVsIH19PC9hPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1icmVhZGNydW1iX19zZXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4vPC9zcGFuPlxyXG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5ocmVmPy50cmltKCkpIHtcclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJhcHAtYnJlYWRjcnVtYl9fbGlua1wiIFtocmVmXT1cIml0ZW0uaHJlZiEudHJpbSgpXCI+e3sgaXRlbS5sYWJlbCB9fTwvYT5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtYnJlYWRjcnVtYl9fc2VwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Lzwvc3Bhbj5cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1icmVhZGNydW1iX190ZXh0XCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtYnJlYWRjcnVtYl9fc2VwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Lzwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2xpPlxyXG4gICAgICB9XHJcbiAgICA8L29sPlxyXG4gIDwvbmF2PlxyXG59XHJcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ /**
2
+ * **App Shell & Navigation** — estrutura de aplicação (barra lateral, topo, filo, usuário).
3
+ *
4
+ * - **`AppShellComponent`**: grade principal; em viewports estreitos a sidebar projeta-se em `app-drawer` (`menus/`).
5
+ * - **`AppSidebarComponent`**: delega em `app-menu-list` (`MenuNodeItem`, teclado, submenus); `[appSidebarToolbar]` + **`AppShellSidebarToggleComponent`** no topo (recolher).
6
+ * - **`AppTopbarComponent`**: projeção por zonas (`appTopbarStart` / `appTopbarTitle` / `appTopbarEnd`).
7
+ * - **`AppUserMenuComponent`**: `app-dropdown-menu` com gatilho avatar/nome (sem menu duplicado).
8
+ * - **`AppBreadcrumbComponent`**: `nav` + lista; segmentos com `route` ou `href`.
9
+ */
10
+ export { APP_SIDEBAR_LAYOUT_DURATION_MS, APP_SIDEBAR_LABEL_REVEAL_LAG_MS, APP_SIDEBAR_NAV_REVEAL_TOTAL_MS, } from './sidebar-reveal.constants';
11
+ export { AppShellComponent } from './app-shell.component';
12
+ export { AppShellSidebarTemplateDirective } from './app-shell-sidebar-template.directive';
13
+ export { AppSidebarComponent } from './sidebar/sidebar.component';
14
+ export { AppSidebarToolbarDirective } from './sidebar/app-sidebar-toolbar.directive';
15
+ export { AppShellSidebarToggleComponent } from './sidebar/shell-sidebar-toggle.component';
16
+ export { AppTopbarComponent } from './topbar/topbar.component';
17
+ export { AppUserMenuComponent } from './user-menu/user-menu.component';
18
+ export { AppBreadcrumbComponent } from './breadcrumb/breadcrumb.component';
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FwcC1zaGVsbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLCtCQUErQixHQUNoQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqICoqQXBwIFNoZWxsICYgTmF2aWdhdGlvbioqIOKAlCBlc3RydXR1cmEgZGUgYXBsaWNhw6fDo28gKGJhcnJhIGxhdGVyYWwsIHRvcG8sIGZpbG8sIHVzdcOhcmlvKS5cclxuICpcclxuICogLSAqKmBBcHBTaGVsbENvbXBvbmVudGAqKjogZ3JhZGUgcHJpbmNpcGFsOyBlbSB2aWV3cG9ydHMgZXN0cmVpdG9zIGEgc2lkZWJhciBwcm9qZXRhLXNlIGVtIGBhcHAtZHJhd2VyYCAoYG1lbnVzL2ApLlxyXG4gKiAtICoqYEFwcFNpZGViYXJDb21wb25lbnRgKio6IGRlbGVnYSBlbSBgYXBwLW1lbnUtbGlzdGAgKGBNZW51Tm9kZUl0ZW1gLCB0ZWNsYWRvLCBzdWJtZW51cyk7IGBbYXBwU2lkZWJhclRvb2xiYXJdYCArICoqYEFwcFNoZWxsU2lkZWJhclRvZ2dsZUNvbXBvbmVudGAqKiBubyB0b3BvIChyZWNvbGhlcikuXHJcbiAqIC0gKipgQXBwVG9wYmFyQ29tcG9uZW50YCoqOiBwcm9qZcOnw6NvIHBvciB6b25hcyAoYGFwcFRvcGJhclN0YXJ0YCAvIGBhcHBUb3BiYXJUaXRsZWAgLyBgYXBwVG9wYmFyRW5kYCkuXHJcbiAqIC0gKipgQXBwVXNlck1lbnVDb21wb25lbnRgKio6IGBhcHAtZHJvcGRvd24tbWVudWAgY29tIGdhdGlsaG8gYXZhdGFyL25vbWUgKHNlbSBtZW51IGR1cGxpY2FkbykuXHJcbiAqIC0gKipgQXBwQnJlYWRjcnVtYkNvbXBvbmVudGAqKjogYG5hdmAgKyBsaXN0YTsgc2VnbWVudG9zIGNvbSBgcm91dGVgIG91IGBocmVmYC5cclxuICovXHJcbmV4cG9ydCB7XHJcbiAgQVBQX1NJREVCQVJfTEFZT1VUX0RVUkFUSU9OX01TLFxyXG4gIEFQUF9TSURFQkFSX0xBQkVMX1JFVkVBTF9MQUdfTVMsXHJcbiAgQVBQX1NJREVCQVJfTkFWX1JFVkVBTF9UT1RBTF9NUyxcclxufSBmcm9tICcuL3NpZGViYXItcmV2ZWFsLmNvbnN0YW50cyc7XHJcbmV4cG9ydCB7IEFwcFNoZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAtc2hlbGwuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQXBwU2hlbGxTaWRlYmFyVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2FwcC1zaGVsbC1zaWRlYmFyLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IEFwcFNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBBcHBTaWRlYmFyVG9vbGJhckRpcmVjdGl2ZSB9IGZyb20gJy4vc2lkZWJhci9hcHAtc2lkZWJhci10b29sYmFyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IEFwcFNoZWxsU2lkZWJhclRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZWJhci9zaGVsbC1zaWRlYmFyLXRvZ2dsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBBcHBUb3BiYXJDb21wb25lbnQgfSBmcm9tICcuL3RvcGJhci90b3BiYXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQXBwVXNlck1lbnVDb21wb25lbnQgfSBmcm9tICcuL3VzZXItbWVudS91c2VyLW1lbnUuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQXBwQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB0eXBlIHsgQnJlYWRjcnVtYkl0ZW0gfSBmcm9tICcuL19tb2RlbHMvYnJlYWRjcnVtYi1pdGVtLm1vZGVsJztcclxuIl19
@@ -0,0 +1,23 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Marca conteúdo a projectar no topo da sidebar (ex.: botão recolher/expandir).
5
+ *
6
+ * ```html
7
+ * <app-sidebar [items]="nav">
8
+ * <app-shell-sidebar-toggle appSidebarToolbar [collapsed]="collapsed" (toggle)="onToggle()" />
9
+ * </app-sidebar>
10
+ * ```
11
+ */
12
+ export class AppSidebarToolbarDirective {
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppSidebarToolbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AppSidebarToolbarDirective, isStandalone: true, selector: "[appSidebarToolbar]", ngImport: i0 }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppSidebarToolbarDirective, decorators: [{
17
+ type: Directive,
18
+ args: [{
19
+ selector: '[appSidebarToolbar]',
20
+ standalone: true,
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNpZGViYXItdG9vbGJhci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FwcC1zaGVsbC9zaWRlYmFyL2FwcC1zaWRlYmFyLXRvb2xiYXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDOzs7Ozs7OztHQVFHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjsrR0FBMUIsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogTWFyY2EgY29udGXDumRvIGEgcHJvamVjdGFyIG5vIHRvcG8gZGEgc2lkZWJhciAoZXguOiBib3TDo28gcmVjb2xoZXIvZXhwYW5kaXIpLlxyXG4gKlxyXG4gKiBgYGBodG1sXHJcbiAqIDxhcHAtc2lkZWJhciBbaXRlbXNdPVwibmF2XCI+XHJcbiAqICAgPGFwcC1zaGVsbC1zaWRlYmFyLXRvZ2dsZSBhcHBTaWRlYmFyVG9vbGJhciBbY29sbGFwc2VkXT1cImNvbGxhcHNlZFwiICh0b2dnbGUpPVwib25Ub2dnbGUoKVwiIC8+XHJcbiAqIDwvYXBwLXNpZGViYXI+XHJcbiAqIGBgYFxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXBwU2lkZWJhclRvb2xiYXJdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwU2lkZWJhclRvb2xiYXJEaXJlY3RpdmUge31cclxuIl19