structra-ui 0.1.12 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/package.json +28 -8
  2. package/app/_utils/date-pt-br.utils.d.ts +0 -24
  3. package/app/_utils/decimal-br.utils.d.ts +0 -52
  4. package/app/_utils/estados-br.data.d.ts +0 -10
  5. package/app/_utils/integer-br.utils.d.ts +0 -17
  6. package/app/_utils/integer-value.utils.d.ts +0 -5
  7. package/app/_utils/scroll/body-scroll-lock.util.d.ts +0 -44
  8. package/app/app-shell/_models/breadcrumb-item.model.d.ts +0 -13
  9. package/app/app-shell/app-shell-sidebar-template.directive.d.ts +0 -19
  10. package/app/app-shell/app-shell.component.d.ts +0 -41
  11. package/app/app-shell/breadcrumb/breadcrumb.component.d.ts +0 -10
  12. package/app/app-shell/index.d.ts +0 -19
  13. package/app/app-shell/sidebar/app-sidebar-toolbar.directive.d.ts +0 -14
  14. package/app/app-shell/sidebar/shell-sidebar-toggle.component.d.ts +0 -19
  15. package/app/app-shell/sidebar/sidebar.component.d.ts +0 -36
  16. package/app/app-shell/sidebar-reveal.constants.d.ts +0 -8
  17. package/app/app-shell/topbar/topbar.component.d.ts +0 -8
  18. package/app/app-shell/user-menu/user-menu.component.d.ts +0 -25
  19. package/app/buttons/base-button/base-button.component.d.ts +0 -43
  20. package/app/buttons/index.d.ts +0 -1
  21. package/app/data-display/_models/card-item-view.model.d.ts +0 -8
  22. package/app/data-display/_models/data-display.models.d.ts +0 -11
  23. package/app/data-display/_models/data-grid-column.model.d.ts +0 -13
  24. package/app/data-display/_models/index.d.ts +0 -2
  25. package/app/data-display/adaptive-data-view/adaptive-data-view.component.d.ts +0 -53
  26. package/app/data-display/card-list/card-list.component.d.ts +0 -70
  27. package/app/data-display/dashboard-section/dashboard-section.component.d.ts +0 -12
  28. package/app/data-display/data-card/data-card.component.d.ts +0 -16
  29. package/app/data-display/data-grid/data-grid-actions-cell-renderer.component.d.ts +0 -21
  30. package/app/data-display/data-grid/data-grid.component.d.ts +0 -76
  31. package/app/data-display/data-list/data-list.component.d.ts +0 -18
  32. package/app/data-display/data-toolbar/data-toolbar.component.d.ts +0 -6
  33. package/app/data-display/details-field/details-field.component.d.ts +0 -10
  34. package/app/data-display/details-view/details-view.component.d.ts +0 -26
  35. package/app/data-display/empty-state/empty-state-overlay.util.d.ts +0 -5
  36. package/app/data-display/empty-state/empty-state.component.d.ts +0 -13
  37. package/app/data-display/index.d.ts +0 -20
  38. package/app/data-display/list-item/list-item.component.d.ts +0 -22
  39. package/app/data-display/stat-card/stat-card.component.d.ts +0 -23
  40. package/app/data-display/status-badge/status-badge.component.d.ts +0 -17
  41. package/app/data-display/table-empty-state/table-empty-state.component.d.ts +0 -14
  42. package/app/data-display/table-toolbar/table-toolbar.component.d.ts +0 -11
  43. package/app/dialogs/_models/lib-dialog-size.model.d.ts +0 -6
  44. package/app/dialogs/_utils/app-lib-light-block-scroll-strategy.d.ts +0 -12
  45. package/app/dialogs/_utils/lib-dialog-panel-classes.d.ts +0 -3
  46. package/app/dialogs/app-dialog/app-dialog.component.d.ts +0 -71
  47. package/app/dialogs/app-dialog/dialog-footer.directive.d.ts +0 -6
  48. package/app/dialogs/confirm-dialog/confirm-dialog-data.model.d.ts +0 -13
  49. package/app/dialogs/confirm-dialog/confirm-dialog.component.d.ts +0 -20
  50. package/app/dialogs/confirm-dialog/confirm-dialog.service.d.ts +0 -17
  51. package/app/dialogs/index.d.ts +0 -14
  52. package/app/dialogs/loading-dialog/loading-dialog-data.model.d.ts +0 -7
  53. package/app/dialogs/loading-dialog/loading-dialog.component.d.ts +0 -9
  54. package/app/dialogs/loading-dialog/loading-dialog.service.d.ts +0 -15
  55. package/app/dialogs/toast/toast-host.component.d.ts +0 -13
  56. package/app/dialogs/toast/toast.models.d.ts +0 -26
  57. package/app/dialogs/toast/toast.service.d.ts +0 -17
  58. package/app/fields/checkbox-fields/_base/boolean-field.directive.d.ts +0 -42
  59. package/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.d.ts +0 -8
  60. package/app/fields/checkbox-fields/index.d.ts +0 -3
  61. package/app/fields/checkbox-fields/switch-field/switch-field.component.d.ts +0 -8
  62. package/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.d.ts +0 -62
  63. package/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.d.ts +0 -40
  64. package/app/fields/dropdown-fields/_base/dropdown-option-field.base.d.ts +0 -47
  65. package/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.d.ts +0 -18
  66. package/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.d.ts +0 -13
  67. package/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.d.ts +0 -7
  68. package/app/fields/dropdown-fields/_models/index.d.ts +0 -4
  69. package/app/fields/dropdown-fields/_models/select-option.model.d.ts +0 -5
  70. package/app/fields/dropdown-fields/_models/select-pagination.model.d.ts +0 -6
  71. package/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.d.ts +0 -84
  72. package/app/fields/dropdown-fields/index.d.ts +0 -7
  73. package/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.d.ts +0 -49
  74. package/app/fields/dropdown-fields/select-field/select-field.component.d.ts +0 -54
  75. package/app/fields/input-fields/_base/base-field.component.d.ts +0 -60
  76. package/app/fields/input-fields/_base/base-field.directive.d.ts +0 -102
  77. package/app/fields/input-fields/_base/masked-text-field.base.d.ts +0 -34
  78. package/app/fields/input-fields/_base/ng-control-field.directive.d.ts +0 -43
  79. package/app/fields/input-fields/_models/field-common-inputs.model.d.ts +0 -49
  80. package/app/fields/input-fields/_models/index.d.ts +0 -1
  81. package/app/fields/input-fields/_utils/mask-complete.validators.d.ts +0 -18
  82. package/app/fields/input-fields/_utils/mask-format.utils.d.ts +0 -13
  83. package/app/fields/input-fields/cep-field/cep-field.component.d.ts +0 -12
  84. package/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.d.ts +0 -20
  85. package/app/fields/input-fields/date-field/date-field.component.d.ts +0 -30
  86. package/app/fields/input-fields/decimal-field/decimal-field.component.d.ts +0 -17
  87. package/app/fields/input-fields/index.d.ts +0 -22
  88. package/app/fields/input-fields/input-mask-field/input-mask-field.component.d.ts +0 -16
  89. package/app/fields/input-fields/integer-field/integer-field.component.d.ts +0 -17
  90. package/app/fields/input-fields/password-field/password-field.component.d.ts +0 -30
  91. package/app/fields/input-fields/phone-field/phone-field.component.d.ts +0 -22
  92. package/app/fields/input-fields/text-field/text-field.component.d.ts +0 -16
  93. package/app/fields/input-fields/textarea-field/textarea-field.component.d.ts +0 -31
  94. package/app/form-layout/_models/form-layout.model.d.ts +0 -41
  95. package/app/form-layout/_models/form-tabs.model.d.ts +0 -1
  96. package/app/form-layout/_models/index.d.ts +0 -3
  97. package/app/form-layout/_models/validation-summary.model.d.ts +0 -8
  98. package/app/form-layout/form-actions/form-actions.component.d.ts +0 -21
  99. package/app/form-layout/form-col/form-col.component.d.ts +0 -25
  100. package/app/form-layout/form-group/form-group.component.d.ts +0 -125
  101. package/app/form-layout/form-group/form-path.utils.d.ts +0 -16
  102. package/app/form-layout/form-group/form-root-invalid-ui-refresh.util.d.ts +0 -8
  103. package/app/form-layout/form-row/form-row.component.d.ts +0 -14
  104. package/app/form-layout/form-section/form-section.component.d.ts +0 -13
  105. package/app/form-layout/form-tab/form-tab.component.d.ts +0 -32
  106. package/app/form-layout/form-tabs/form-tabs.component.d.ts +0 -44
  107. package/app/form-layout/index.d.ts +0 -14
  108. package/app/form-layout/layout-stack/layout-stack.component.d.ts +0 -25
  109. package/app/form-layout/validation-summary/validation-summary.component.d.ts +0 -105
  110. package/app/loading/skeleton-loading/index.d.ts +0 -6
  111. package/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.d.ts +0 -15
  112. package/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.d.ts +0 -10
  113. package/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.d.ts +0 -21
  114. package/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.d.ts +0 -17
  115. package/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.d.ts +0 -16
  116. package/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.d.ts +0 -17
  117. package/app/menus/_models/drawer-side.model.d.ts +0 -6
  118. package/app/menus/_models/drawer-size.model.d.ts +0 -6
  119. package/app/menus/_models/menu-dropdown-placement.model.d.ts +0 -10
  120. package/app/menus/_models/menu-item.model.d.ts +0 -47
  121. package/app/menus/_utils/menu-connected-positions.util.d.ts +0 -4
  122. package/app/menus/_utils/menu-rows.util.d.ts +0 -22
  123. package/app/menus/_utils/submenu-connected-positions.util.d.ts +0 -5
  124. package/app/menus/action-menu/action-menu.component.d.ts +0 -24
  125. package/app/menus/context-menu/context-menu.component.d.ts +0 -32
  126. package/app/menus/drawer/drawer.component.d.ts +0 -38
  127. package/app/menus/dropdown-menu/dropdown-menu.component.d.ts +0 -33
  128. package/app/menus/index.d.ts +0 -11
  129. package/app/menus/menu-divider/menu-divider.component.d.ts +0 -8
  130. package/app/menus/menu-group/menu-group.component.d.ts +0 -13
  131. package/app/menus/menu-list/menu-list.component.d.ts +0 -77
  132. package/app/overlay/_models/overlay-placement.model.d.ts +0 -9
  133. package/app/overlay/_utils/anchored-overlay-positions.util.d.ts +0 -9
  134. package/app/overlay/anchored-overlay/anchored-overlay.component.d.ts +0 -51
  135. package/app/overlay/index.d.ts +0 -20
  136. package/app/overlay/popover/popover-body-template.directive.d.ts +0 -7
  137. package/app/overlay/popover/popover-footer-template.directive.d.ts +0 -7
  138. package/app/overlay/popover/popover-trigger.directive.d.ts +0 -6
  139. package/app/overlay/popover/popover.component.d.ts +0 -38
  140. package/app/overlay/tooltip/tooltip-panel-template.directive.d.ts +0 -10
  141. package/app/overlay/tooltip/tooltip.component.d.ts +0 -40
  142. package/app/theme/app-theme.service.d.ts +0 -25
  143. package/app/theme/index.d.ts +0 -1
  144. package/esm2022/app/_utils/date-pt-br.utils.mjs +0 -82
  145. package/esm2022/app/_utils/decimal-br.utils.mjs +0 -154
  146. package/esm2022/app/_utils/estados-br.data.mjs +0 -37
  147. package/esm2022/app/_utils/integer-br.utils.mjs +0 -48
  148. package/esm2022/app/_utils/integer-value.utils.mjs +0 -19
  149. package/esm2022/app/_utils/scroll/body-scroll-lock.util.mjs +0 -97
  150. package/esm2022/app/app-shell/_models/breadcrumb-item.model.mjs +0 -2
  151. package/esm2022/app/app-shell/app-shell-sidebar-template.directive.mjs +0 -29
  152. package/esm2022/app/app-shell/app-shell.component.mjs +0 -105
  153. package/esm2022/app/app-shell/breadcrumb/breadcrumb.component.mjs +0 -18
  154. package/esm2022/app/app-shell/index.mjs +0 -19
  155. package/esm2022/app/app-shell/sidebar/app-sidebar-toolbar.directive.mjs +0 -23
  156. package/esm2022/app/app-shell/sidebar/shell-sidebar-toggle.component.mjs +0 -36
  157. package/esm2022/app/app-shell/sidebar/sidebar.component.mjs +0 -84
  158. package/esm2022/app/app-shell/sidebar-reveal.constants.mjs +0 -9
  159. package/esm2022/app/app-shell/topbar/topbar.component.mjs +0 -14
  160. package/esm2022/app/app-shell/user-menu/user-menu.component.mjs +0 -52
  161. package/esm2022/app/buttons/base-button/base-button.component.mjs +0 -97
  162. package/esm2022/app/buttons/index.mjs +0 -2
  163. package/esm2022/app/data-display/_models/card-item-view.model.mjs +0 -2
  164. package/esm2022/app/data-display/_models/data-display.models.mjs +0 -2
  165. package/esm2022/app/data-display/_models/data-grid-column.model.mjs +0 -2
  166. package/esm2022/app/data-display/_models/index.mjs +0 -2
  167. package/esm2022/app/data-display/adaptive-data-view/adaptive-data-view.component.mjs +0 -124
  168. package/esm2022/app/data-display/card-list/card-list.component.mjs +0 -208
  169. package/esm2022/app/data-display/dashboard-section/dashboard-section.component.mjs +0 -25
  170. package/esm2022/app/data-display/data-card/data-card.component.mjs +0 -40
  171. package/esm2022/app/data-display/data-grid/data-grid-actions-cell-renderer.component.mjs +0 -41
  172. package/esm2022/app/data-display/data-grid/data-grid.component.mjs +0 -253
  173. package/esm2022/app/data-display/data-list/data-list.component.mjs +0 -40
  174. package/esm2022/app/data-display/data-toolbar/data-toolbar.component.mjs +0 -12
  175. package/esm2022/app/data-display/details-field/details-field.component.mjs +0 -21
  176. package/esm2022/app/data-display/details-view/details-view.component.mjs +0 -44
  177. package/esm2022/app/data-display/empty-state/empty-state-overlay.util.mjs +0 -19
  178. package/esm2022/app/data-display/empty-state/empty-state.component.mjs +0 -30
  179. package/esm2022/app/data-display/index.mjs +0 -19
  180. package/esm2022/app/data-display/list-item/list-item.component.mjs +0 -59
  181. package/esm2022/app/data-display/stat-card/stat-card.component.mjs +0 -59
  182. package/esm2022/app/data-display/status-badge/status-badge.component.mjs +0 -41
  183. package/esm2022/app/data-display/table-empty-state/table-empty-state.component.mjs +0 -31
  184. package/esm2022/app/data-display/table-toolbar/table-toolbar.component.mjs +0 -22
  185. package/esm2022/app/dialogs/_models/lib-dialog-size.model.mjs +0 -8
  186. package/esm2022/app/dialogs/_utils/app-lib-light-block-scroll-strategy.mjs +0 -22
  187. package/esm2022/app/dialogs/_utils/lib-dialog-panel-classes.mjs +0 -6
  188. package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +0 -200
  189. package/esm2022/app/dialogs/app-dialog/dialog-footer.directive.mjs +0 -15
  190. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog-data.model.mjs +0 -2
  191. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -36
  192. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.service.mjs +0 -47
  193. package/esm2022/app/dialogs/index.mjs +0 -12
  194. package/esm2022/app/dialogs/loading-dialog/loading-dialog-data.model.mjs +0 -2
  195. package/esm2022/app/dialogs/loading-dialog/loading-dialog.component.mjs +0 -19
  196. package/esm2022/app/dialogs/loading-dialog/loading-dialog.service.mjs +0 -38
  197. package/esm2022/app/dialogs/toast/toast-host.component.mjs +0 -65
  198. package/esm2022/app/dialogs/toast/toast.models.mjs +0 -2
  199. package/esm2022/app/dialogs/toast/toast.service.mjs +0 -76
  200. package/esm2022/app/fields/checkbox-fields/_base/boolean-field.directive.mjs +0 -158
  201. package/esm2022/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.mjs +0 -36
  202. package/esm2022/app/fields/checkbox-fields/index.mjs +0 -4
  203. package/esm2022/app/fields/checkbox-fields/switch-field/switch-field.component.mjs +0 -35
  204. package/esm2022/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.mjs +0 -117
  205. package/esm2022/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.mjs +0 -152
  206. package/esm2022/app/fields/dropdown-fields/_base/dropdown-option-field.base.mjs +0 -149
  207. package/esm2022/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.mjs +0 -32
  208. package/esm2022/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.mjs +0 -2
  209. package/esm2022/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.mjs +0 -2
  210. package/esm2022/app/fields/dropdown-fields/_models/index.mjs +0 -2
  211. package/esm2022/app/fields/dropdown-fields/_models/select-option.model.mjs +0 -2
  212. package/esm2022/app/fields/dropdown-fields/_models/select-pagination.model.mjs +0 -2
  213. package/esm2022/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.mjs +0 -520
  214. package/esm2022/app/fields/dropdown-fields/index.mjs +0 -7
  215. package/esm2022/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.mjs +0 -379
  216. package/esm2022/app/fields/dropdown-fields/select-field/select-field.component.mjs +0 -359
  217. package/esm2022/app/fields/input-fields/_base/base-field.component.mjs +0 -151
  218. package/esm2022/app/fields/input-fields/_base/base-field.directive.mjs +0 -224
  219. package/esm2022/app/fields/input-fields/_base/masked-text-field.base.mjs +0 -135
  220. package/esm2022/app/fields/input-fields/_base/ng-control-field.directive.mjs +0 -127
  221. package/esm2022/app/fields/input-fields/_models/field-common-inputs.model.mjs +0 -2
  222. package/esm2022/app/fields/input-fields/_models/index.mjs +0 -2
  223. package/esm2022/app/fields/input-fields/_utils/mask-complete.validators.mjs +0 -61
  224. package/esm2022/app/fields/input-fields/_utils/mask-format.utils.mjs +0 -40
  225. package/esm2022/app/fields/input-fields/cep-field/cep-field.component.mjs +0 -48
  226. package/esm2022/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.mjs +0 -61
  227. package/esm2022/app/fields/input-fields/date-field/date-field.component.mjs +0 -147
  228. package/esm2022/app/fields/input-fields/decimal-field/decimal-field.component.mjs +0 -166
  229. package/esm2022/app/fields/input-fields/index.mjs +0 -22
  230. package/esm2022/app/fields/input-fields/input-mask-field/input-mask-field.component.mjs +0 -52
  231. package/esm2022/app/fields/input-fields/integer-field/integer-field.component.mjs +0 -143
  232. package/esm2022/app/fields/input-fields/password-field/password-field.component.mjs +0 -130
  233. package/esm2022/app/fields/input-fields/phone-field/phone-field.component.mjs +0 -66
  234. package/esm2022/app/fields/input-fields/text-field/text-field.component.mjs +0 -90
  235. package/esm2022/app/fields/input-fields/textarea-field/textarea-field.component.mjs +0 -125
  236. package/esm2022/app/form-layout/_models/form-layout.model.mjs +0 -48
  237. package/esm2022/app/form-layout/_models/form-tabs.model.mjs +0 -2
  238. package/esm2022/app/form-layout/_models/index.mjs +0 -2
  239. package/esm2022/app/form-layout/_models/validation-summary.model.mjs +0 -2
  240. package/esm2022/app/form-layout/form-actions/form-actions.component.mjs +0 -55
  241. package/esm2022/app/form-layout/form-col/form-col.component.mjs +0 -76
  242. package/esm2022/app/form-layout/form-group/form-group.component.mjs +0 -358
  243. package/esm2022/app/form-layout/form-group/form-path.utils.mjs +0 -65
  244. package/esm2022/app/form-layout/form-group/form-root-invalid-ui-refresh.util.mjs +0 -54
  245. package/esm2022/app/form-layout/form-row/form-row.component.mjs +0 -49
  246. package/esm2022/app/form-layout/form-section/form-section.component.mjs +0 -43
  247. package/esm2022/app/form-layout/form-tab/form-tab.component.mjs +0 -67
  248. package/esm2022/app/form-layout/form-tabs/form-tabs.component.mjs +0 -126
  249. package/esm2022/app/form-layout/index.mjs +0 -14
  250. package/esm2022/app/form-layout/layout-stack/layout-stack.component.mjs +0 -56
  251. package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +0 -343
  252. package/esm2022/app/loading/skeleton-loading/index.mjs +0 -7
  253. package/esm2022/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.mjs +0 -43
  254. package/esm2022/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.mjs +0 -23
  255. package/esm2022/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.mjs +0 -34
  256. package/esm2022/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.mjs +0 -38
  257. package/esm2022/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.mjs +0 -37
  258. package/esm2022/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.mjs +0 -45
  259. package/esm2022/app/menus/_models/drawer-side.model.mjs +0 -8
  260. package/esm2022/app/menus/_models/drawer-size.model.mjs +0 -8
  261. package/esm2022/app/menus/_models/menu-dropdown-placement.model.mjs +0 -12
  262. package/esm2022/app/menus/_models/menu-item.model.mjs +0 -6
  263. package/esm2022/app/menus/_utils/menu-connected-positions.util.mjs +0 -41
  264. package/esm2022/app/menus/_utils/menu-rows.util.mjs +0 -39
  265. package/esm2022/app/menus/_utils/submenu-connected-positions.util.mjs +0 -23
  266. package/esm2022/app/menus/action-menu/action-menu.component.mjs +0 -48
  267. package/esm2022/app/menus/context-menu/context-menu.component.mjs +0 -112
  268. package/esm2022/app/menus/drawer/drawer.component.mjs +0 -142
  269. package/esm2022/app/menus/dropdown-menu/dropdown-menu.component.mjs +0 -99
  270. package/esm2022/app/menus/index.mjs +0 -11
  271. package/esm2022/app/menus/menu-divider/menu-divider.component.mjs +0 -14
  272. package/esm2022/app/menus/menu-group/menu-group.component.mjs +0 -32
  273. package/esm2022/app/menus/menu-list/menu-list.component.mjs +0 -399
  274. package/esm2022/app/overlay/_models/overlay-placement.model.mjs +0 -11
  275. package/esm2022/app/overlay/_utils/anchored-overlay-positions.util.mjs +0 -84
  276. package/esm2022/app/overlay/anchored-overlay/anchored-overlay.component.mjs +0 -121
  277. package/esm2022/app/overlay/index.mjs +0 -21
  278. package/esm2022/app/overlay/popover/popover-body-template.directive.mjs +0 -17
  279. package/esm2022/app/overlay/popover/popover-footer-template.directive.mjs +0 -17
  280. package/esm2022/app/overlay/popover/popover-trigger.directive.mjs +0 -15
  281. package/esm2022/app/overlay/popover/popover.component.mjs +0 -93
  282. package/esm2022/app/overlay/tooltip/tooltip-panel-template.directive.mjs +0 -20
  283. package/esm2022/app/overlay/tooltip/tooltip.component.mjs +0 -118
  284. package/esm2022/app/theme/app-theme.service.mjs +0 -49
  285. package/esm2022/app/theme/index.mjs +0 -2
  286. package/esm2022/structra-public-api.mjs +0 -18
  287. package/esm2022/structra-ui.mjs +0 -5
  288. package/esm2022/structra-version.mjs +0 -3
  289. package/fesm2022/structra-ui.mjs +0 -8971
  290. package/fesm2022/structra-ui.mjs.map +0 -1
  291. package/index.d.ts +0 -5
  292. package/structra-public-api.d.ts +0 -17
  293. package/structra-version.d.ts +0 -2
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2ctZGF0YS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDb25maXJtRGlhbG9nVmFyaWFudCA9ICdkZWZhdWx0JyB8ICdkYW5nZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtRGlhbG9nRGF0YSB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgY29uZmlybUxhYmVsPzogc3RyaW5nO1xyXG4gIGNhbmNlbExhYmVsPzogc3RyaW5nO1xyXG4gIHZhcmlhbnQ/OiBDb25maXJtRGlhbG9nVmFyaWFudDtcclxuICAvKipcclxuICAgKiBTZSBgdHJ1ZWAsIEVzY2FwZSBlIGNsaXF1ZSBmb3JhICoqbsOjbyoqIGZlY2hhbSBvIGRpw6Fsb2dvIChhcGVuYXMgYm90w7VlcyBkbyByb2RhcMOpKS5cclxuICAgKiBPbWlzc286IGBmYWxzZWAg4oCUIHBlcm1pdGUgZGlzcGVuc2FyIGNvbSBFc2Mgb3UgYmFja2Ryb3AgKGVtaXRlIGB1bmRlZmluZWRgIG5vIGBjbG9zZWRgKS5cclxuICAgKi9cclxuICBibG9ja092ZXJsYXlEaXNtaXNzPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -1,36 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ViewChild, inject, } from '@angular/core';
2
- import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
3
- import { BaseButtonComponent, BaseButtonType, BaseButtonVariant } from '../../buttons';
4
- import * as i0 from "@angular/core";
5
- export class ConfirmDialogComponent {
6
- constructor() {
7
- this.ref = inject((DialogRef));
8
- this.data = inject(DIALOG_DATA);
9
- this.BaseButtonType = BaseButtonType;
10
- this.BaseButtonVariant = BaseButtonVariant;
11
- this.titleId = `app-confirm-dlg-title-${++ConfirmDialogComponent.seq}`;
12
- this.descId = `app-confirm-dlg-desc-${ConfirmDialogComponent.seq}`;
13
- }
14
- static { this.seq = 0; }
15
- ngAfterViewInit() {
16
- queueMicrotask(() => {
17
- this.cancelBtn?.focusNative({ preventScroll: true });
18
- });
19
- }
20
- onConfirm() {
21
- this.ref.close(true);
22
- }
23
- onCancel() {
24
- this.ref.close(false);
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", viewQueries: [{ propertyName: "cancelBtn", first: true, predicate: ["cancelBtn"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"confirm-dialog\"\r\n role=\"alertdialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-describedby]=\"descId\"\r\n>\r\n <header class=\"confirm-dialog__header\">\r\n <h2 class=\"confirm-dialog__title\" [id]=\"titleId\">{{ data.title }}</h2>\r\n </header>\r\n\r\n <div class=\"confirm-dialog__body\">\r\n <p class=\"confirm-dialog__message\" [id]=\"descId\">{{ data.message }}</p>\r\n </div>\r\n\r\n <footer class=\"confirm-dialog__footer\">\r\n <app-base-button\r\n #cancelBtn\r\n [type]=\"BaseButtonType.Button\"\r\n [variant]=\"BaseButtonVariant.Secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ data.cancelLabel ?? 'Cancelar' }}\r\n </app-base-button>\r\n <app-base-button\r\n [type]=\"BaseButtonType.Button\"\r\n [variant]=\"BaseButtonVariant.Primary\"\r\n [fullWidth]=\"false\"\r\n [class.confirm-dialog__confirm--danger]=\"data.variant === 'danger'\"\r\n (click)=\"onConfirm()\"\r\n >\r\n {{ data.confirmLabel ?? 'Confirmar' }}\r\n </app-base-button>\r\n </footer>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.confirm-dialog{box-sizing:border-box;display:flex;flex-direction:column;min-width:0;max-width:100%;min-height:0;overflow:hidden}.confirm-dialog__header{flex:0 0 auto;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}.confirm-dialog__title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.confirm-dialog__body{flex:1 1 auto;min-height:0;padding:1rem;overflow:auto}.confirm-dialog__message{margin:0;font-size:.9rem;line-height:1.5;color:var(--app-color-text-secondary, #5a7fa3)}.confirm-dialog__footer{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}:host ::ng-deep app-base-button.confirm-dialog__confirm--danger.base-button--primary .base-button__native{border-color:var(--app-color-error-border, #dc2626);background:var(--app-color-error, #b91c1c);color:var(--app-color-error-contrast, #fff)}:host ::ng-deep app-base-button.confirm-dialog__confirm--danger.base-button--primary .base-button__native:hover:not(:disabled){filter:brightness(.95)}:host ::ng-deep app-base-button.confirm-dialog__confirm--danger.base-button--primary .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}\n"], dependencies: [{ kind: "component", type: BaseButtonComponent, selector: "app-base-button", inputs: ["type", "disabled", "readonly", "fullWidth", "loading", "variant", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
30
- type: Component,
31
- args: [{ selector: 'app-confirm-dialog', standalone: true, imports: [BaseButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"confirm-dialog\"\r\n role=\"alertdialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-describedby]=\"descId\"\r\n>\r\n <header class=\"confirm-dialog__header\">\r\n <h2 class=\"confirm-dialog__title\" [id]=\"titleId\">{{ data.title }}</h2>\r\n </header>\r\n\r\n <div class=\"confirm-dialog__body\">\r\n <p class=\"confirm-dialog__message\" [id]=\"descId\">{{ data.message }}</p>\r\n </div>\r\n\r\n <footer class=\"confirm-dialog__footer\">\r\n <app-base-button\r\n #cancelBtn\r\n [type]=\"BaseButtonType.Button\"\r\n [variant]=\"BaseButtonVariant.Secondary\"\r\n [fullWidth]=\"false\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ data.cancelLabel ?? 'Cancelar' }}\r\n </app-base-button>\r\n <app-base-button\r\n [type]=\"BaseButtonType.Button\"\r\n [variant]=\"BaseButtonVariant.Primary\"\r\n [fullWidth]=\"false\"\r\n [class.confirm-dialog__confirm--danger]=\"data.variant === 'danger'\"\r\n (click)=\"onConfirm()\"\r\n >\r\n {{ data.confirmLabel ?? 'Confirmar' }}\r\n </app-base-button>\r\n </footer>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.confirm-dialog{box-sizing:border-box;display:flex;flex-direction:column;min-width:0;max-width:100%;min-height:0;overflow:hidden}.confirm-dialog__header{flex:0 0 auto;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}.confirm-dialog__title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.confirm-dialog__body{flex:1 1 auto;min-height:0;padding:1rem;overflow:auto}.confirm-dialog__message{margin:0;font-size:.9rem;line-height:1.5;color:var(--app-color-text-secondary, #5a7fa3)}.confirm-dialog__footer{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09))}:host ::ng-deep app-base-button.confirm-dialog__confirm--danger.base-button--primary .base-button__native{border-color:var(--app-color-error-border, #dc2626);background:var(--app-color-error, #b91c1c);color:var(--app-color-error-contrast, #fff)}:host ::ng-deep app-base-button.confirm-dialog__confirm--danger.base-button--primary .base-button__native:hover:not(:disabled){filter:brightness(.95)}:host ::ng-deep app-base-button.confirm-dialog__confirm--danger.base-button--primary .base-button__native:focus-visible{outline:none;box-shadow:0 0 0 3px var(--app-color-error-focus-ring, rgba(220, 38, 38, .35))}\n"] }]
32
- }], propDecorators: { cancelBtn: [{
33
- type: ViewChild,
34
- args: ['cancelBtn']
35
- }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kaWFsb2dzL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXdkYsTUFBTSxPQUFPLHNCQUFzQjtJQVJuQztRQVNXLFFBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQSxTQUEwQyxDQUFBLENBQUMsQ0FBQztRQUN6RCxTQUFJLEdBQUcsTUFBTSxDQUFvQixXQUFXLENBQUMsQ0FBQztRQUU5QyxtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUV0QyxZQUFPLEdBQUcseUJBQXlCLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbEUsV0FBTSxHQUFHLHdCQUF3QixzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQW1CeEU7YUFmZ0IsUUFBRyxHQUFHLENBQUMsQUFBSixDQUFLO0lBRXZCLGVBQWU7UUFDYixjQUFjLENBQUMsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQzsrR0ExQlUsc0JBQXNCO21HQUF0QixzQkFBc0Isc0xDbkJuQyx1b0NBb0NBLG85Q0R0QlksbUJBQW1COzs0RkFLbEIsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFHYix1QkFBdUIsQ0FBQyxNQUFNOzhCQVlmLFNBQVM7c0JBQXhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIGluamVjdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRElBTE9HX0RBVEEsIERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xyXG5pbXBvcnQgeyBCYXNlQnV0dG9uQ29tcG9uZW50LCBCYXNlQnV0dG9uVHlwZSwgQmFzZUJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi8uLi9idXR0b25zJztcclxuaW1wb3J0IHR5cGUgeyBDb25maXJtRGlhbG9nRGF0YSB9IGZyb20gJy4vY29uZmlybS1kaWFsb2ctZGF0YS5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb25maXJtLWRpYWxvZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQmFzZUJ1dHRvbkNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29uZmlybS1kaWFsb2cuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlybURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIHJlYWRvbmx5IHJlZiA9IGluamVjdChEaWFsb2dSZWY8Ym9vbGVhbiwgQ29uZmlybURpYWxvZ0NvbXBvbmVudD4pO1xyXG4gIHJlYWRvbmx5IGRhdGEgPSBpbmplY3Q8Q29uZmlybURpYWxvZ0RhdGE+KERJQUxPR19EQVRBKTtcclxuXHJcbiAgcmVhZG9ubHkgQmFzZUJ1dHRvblR5cGUgPSBCYXNlQnV0dG9uVHlwZTtcclxuICByZWFkb25seSBCYXNlQnV0dG9uVmFyaWFudCA9IEJhc2VCdXR0b25WYXJpYW50O1xyXG5cclxuICByZWFkb25seSB0aXRsZUlkID0gYGFwcC1jb25maXJtLWRsZy10aXRsZS0keysrQ29uZmlybURpYWxvZ0NvbXBvbmVudC5zZXF9YDtcclxuICByZWFkb25seSBkZXNjSWQgPSBgYXBwLWNvbmZpcm0tZGxnLWRlc2MtJHtDb25maXJtRGlhbG9nQ29tcG9uZW50LnNlcX1gO1xyXG5cclxuICBAVmlld0NoaWxkKCdjYW5jZWxCdG4nKSBwcml2YXRlIGNhbmNlbEJ0bj86IEJhc2VCdXR0b25Db21wb25lbnQ7XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIHNlcSA9IDA7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcclxuICAgICAgdGhpcy5jYW5jZWxCdG4/LmZvY3VzTmF0aXZlKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Db25maXJtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWYuY2xvc2UodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVmLmNsb3NlKGZhbHNlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiY29uZmlybS1kaWFsb2dcIlxyXG4gIHJvbGU9XCJhbGVydGRpYWxvZ1wiXHJcbiAgYXJpYS1tb2RhbD1cInRydWVcIlxyXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ0aXRsZUlkXCJcclxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImRlc2NJZFwiXHJcbj5cclxuICA8aGVhZGVyIGNsYXNzPVwiY29uZmlybS1kaWFsb2dfX2hlYWRlclwiPlxyXG4gICAgPGgyIGNsYXNzPVwiY29uZmlybS1kaWFsb2dfX3RpdGxlXCIgW2lkXT1cInRpdGxlSWRcIj57eyBkYXRhLnRpdGxlIH19PC9oMj5cclxuICA8L2hlYWRlcj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX19ib2R5XCI+XHJcbiAgICA8cCBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX19tZXNzYWdlXCIgW2lkXT1cImRlc2NJZFwiPnt7IGRhdGEubWVzc2FnZSB9fTwvcD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGZvb3RlciBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX19mb290ZXJcIj5cclxuICAgIDxhcHAtYmFzZS1idXR0b25cclxuICAgICAgI2NhbmNlbEJ0blxyXG4gICAgICBbdHlwZV09XCJCYXNlQnV0dG9uVHlwZS5CdXR0b25cIlxyXG4gICAgICBbdmFyaWFudF09XCJCYXNlQnV0dG9uVmFyaWFudC5TZWNvbmRhcnlcIlxyXG4gICAgICBbZnVsbFdpZHRoXT1cImZhbHNlXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxyXG4gICAgPlxyXG4gICAgICB7eyBkYXRhLmNhbmNlbExhYmVsID8/ICdDYW5jZWxhcicgfX1cclxuICAgIDwvYXBwLWJhc2UtYnV0dG9uPlxyXG4gICAgPGFwcC1iYXNlLWJ1dHRvblxyXG4gICAgICBbdHlwZV09XCJCYXNlQnV0dG9uVHlwZS5CdXR0b25cIlxyXG4gICAgICBbdmFyaWFudF09XCJCYXNlQnV0dG9uVmFyaWFudC5QcmltYXJ5XCJcclxuICAgICAgW2Z1bGxXaWR0aF09XCJmYWxzZVwiXHJcbiAgICAgIFtjbGFzcy5jb25maXJtLWRpYWxvZ19fY29uZmlybS0tZGFuZ2VyXT1cImRhdGEudmFyaWFudCA9PT0gJ2RhbmdlcidcIlxyXG4gICAgICAoY2xpY2spPVwib25Db25maXJtKClcIlxyXG4gICAgPlxyXG4gICAgICB7eyBkYXRhLmNvbmZpcm1MYWJlbCA/PyAnQ29uZmlybWFyJyB9fVxyXG4gICAgPC9hcHAtYmFzZS1idXR0b24+XHJcbiAgPC9mb290ZXI+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,47 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { Dialog } from '@angular/cdk/dialog';
3
- import { firstValueFrom } from 'rxjs';
4
- import { map } from 'rxjs/operators';
5
- import { AppThemeService } from '../../theme';
6
- import { AppLibLightBlockScrollStrategy } from '../_utils/app-lib-light-block-scroll-strategy';
7
- import { libDialogPanelClasses } from '../_utils/lib-dialog-panel-classes';
8
- import { ConfirmDialogComponent } from './confirm-dialog.component';
9
- import * as i0 from "@angular/core";
10
- export class ConfirmDialogService {
11
- constructor() {
12
- this.dialog = inject(Dialog);
13
- this.theme = inject(AppThemeService);
14
- }
15
- /**
16
- * Abre o diálogo de confirmação (CDK Dialog + `ConfirmDialogComponent`).
17
- * Emite `true` se confirmar, `false` se cancelar, `undefined` se fechar sem resultado (Esc/backdrop, quando permitido).
18
- * Por defeito permite dispensar com Esc e clique fora; use `data.blockOverlayDismiss` para exigir só botões.
19
- */
20
- open(data) {
21
- return this.dialog
22
- .open(ConfirmDialogComponent, {
23
- data,
24
- width: 'min(26rem, 92vw)',
25
- maxWidth: '92vw',
26
- disableClose: data.blockOverlayDismiss === true,
27
- hasBackdrop: true,
28
- backdropClass: 'app-lib-dialog-backdrop',
29
- panelClass: libDialogPanelClasses(this.theme),
30
- autoFocus: false,
31
- ariaModal: true,
32
- scrollStrategy: new AppLibLightBlockScrollStrategy(),
33
- })
34
- .closed.pipe(map((r) => r));
35
- }
36
- /** Confirmação como Promise (adequado a `async`/`await`). */
37
- confirm(data) {
38
- return firstValueFrom(this.open(data).pipe(map((r) => r === true)));
39
- }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
41
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmDialogService, providedIn: 'root' }); }
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmDialogService, decorators: [{
44
- type: Injectable,
45
- args: [{ providedIn: 'root' }]
46
- }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUlwRSxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRW1CLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztLQThCbEQ7SUE1QkM7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxJQUF1QjtRQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNO2FBQ2YsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzVCLElBQUk7WUFDSixLQUFLLEVBQUUsa0JBQWtCO1lBQ3pCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFlBQVksRUFBRSxJQUFJLENBQUMsbUJBQW1CLEtBQUssSUFBSTtZQUMvQyxXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUUseUJBQXlCO1lBQ3hDLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzdDLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUksOEJBQThCLEVBQUU7U0FDckQsQ0FBQzthQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUF3QixDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELE9BQU8sQ0FBQyxJQUF1QjtRQUM3QixPQUFPLGNBQWMsQ0FDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FDN0MsQ0FBQztJQUNKLENBQUM7K0dBL0JVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRFAsTUFBTTs7NEZBQ25CLG9CQUFvQjtrQkFEaEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXBwVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGhlbWUnO1xyXG5pbXBvcnQgeyBBcHBMaWJMaWdodEJsb2NrU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICcuLi9fdXRpbHMvYXBwLWxpYi1saWdodC1ibG9jay1zY3JvbGwtc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBsaWJEaWFsb2dQYW5lbENsYXNzZXMgfSBmcm9tICcuLi9fdXRpbHMvbGliLWRpYWxvZy1wYW5lbC1jbGFzc2VzJztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHR5cGUgeyBDb25maXJtRGlhbG9nRGF0YSB9IGZyb20gJy4vY29uZmlybS1kaWFsb2ctZGF0YS5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlybURpYWxvZ1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nID0gaW5qZWN0KERpYWxvZyk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0aGVtZSA9IGluamVjdChBcHBUaGVtZVNlcnZpY2UpO1xyXG5cclxuICAvKipcclxuICAgKiBBYnJlIG8gZGnDoWxvZ28gZGUgY29uZmlybWHDp8OjbyAoQ0RLIERpYWxvZyArIGBDb25maXJtRGlhbG9nQ29tcG9uZW50YCkuXHJcbiAgICogRW1pdGUgYHRydWVgIHNlIGNvbmZpcm1hciwgYGZhbHNlYCBzZSBjYW5jZWxhciwgYHVuZGVmaW5lZGAgc2UgZmVjaGFyIHNlbSByZXN1bHRhZG8gKEVzYy9iYWNrZHJvcCwgcXVhbmRvIHBlcm1pdGlkbykuXHJcbiAgICogUG9yIGRlZmVpdG8gcGVybWl0ZSBkaXNwZW5zYXIgY29tIEVzYyBlIGNsaXF1ZSBmb3JhOyB1c2UgYGRhdGEuYmxvY2tPdmVybGF5RGlzbWlzc2AgcGFyYSBleGlnaXIgc8OzIGJvdMO1ZXMuXHJcbiAgICovXHJcbiAgb3BlbihkYXRhOiBDb25maXJtRGlhbG9nRGF0YSk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nXHJcbiAgICAgIC5vcGVuKENvbmZpcm1EaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICBkYXRhLFxyXG4gICAgICAgIHdpZHRoOiAnbWluKDI2cmVtLCA5MnZ3KScsXHJcbiAgICAgICAgbWF4V2lkdGg6ICc5MnZ3JyxcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IGRhdGEuYmxvY2tPdmVybGF5RGlzbWlzcyA9PT0gdHJ1ZSxcclxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnYXBwLWxpYi1kaWFsb2ctYmFja2Ryb3AnLFxyXG4gICAgICAgIHBhbmVsQ2xhc3M6IGxpYkRpYWxvZ1BhbmVsQ2xhc3Nlcyh0aGlzLnRoZW1lKSxcclxuICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gICAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcclxuICAgICAgICBzY3JvbGxTdHJhdGVneTogbmV3IEFwcExpYkxpZ2h0QmxvY2tTY3JvbGxTdHJhdGVneSgpLFxyXG4gICAgICB9KVxyXG4gICAgICAuY2xvc2VkLnBpcGUobWFwKChyKSA9PiByIGFzIGJvb2xlYW4gfCB1bmRlZmluZWQpKTtcclxuICB9XHJcblxyXG4gIC8qKiBDb25maXJtYcOnw6NvIGNvbW8gUHJvbWlzZSAoYWRlcXVhZG8gYSBgYXN5bmNgL2Bhd2FpdGApLiAqL1xyXG4gIGNvbmZpcm0oZGF0YTogQ29uZmlybURpYWxvZ0RhdGEpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcclxuICAgICAgdGhpcy5vcGVuKGRhdGEpLnBpcGUobWFwKChyKSA9PiByID09PSB0cnVlKSksXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,12 +0,0 @@
1
- export { AppDialogComponent } from './app-dialog/app-dialog.component';
2
- export { DialogFooterDirective } from './app-dialog/dialog-footer.directive';
3
- export { LibDialogSize } from './_models/lib-dialog-size.model';
4
- export { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';
5
- export { ConfirmDialogService } from './confirm-dialog/confirm-dialog.service';
6
- export { libDialogPanelClasses } from './_utils/lib-dialog-panel-classes';
7
- export { AppLibLightBlockScrollStrategy } from './_utils/app-lib-light-block-scroll-strategy';
8
- export { ToastService } from './toast/toast.service';
9
- export { ToastHostComponent } from './toast/toast-host.component';
10
- export { LoadingDialogComponent } from './loading-dialog/loading-dialog.component';
11
- export { LoadingDialogService } from './loading-dialog/loading-dialog.service';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpYWxvZ3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU9sRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFwcERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYXBwLWRpYWxvZy9hcHAtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IERpYWxvZ0Zvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vYXBwLWRpYWxvZy9kaWFsb2ctZm9vdGVyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IExpYkRpYWxvZ1NpemUgfSBmcm9tICcuL19tb2RlbHMvbGliLWRpYWxvZy1zaXplLm1vZGVsJztcclxuZXhwb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQ29uZmlybURpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLnNlcnZpY2UnO1xyXG5leHBvcnQgdHlwZSB7XHJcbiAgQ29uZmlybURpYWxvZ0RhdGEsXHJcbiAgQ29uZmlybURpYWxvZ1ZhcmlhbnQsXHJcbn0gZnJvbSAnLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhLm1vZGVsJztcclxuZXhwb3J0IHsgbGliRGlhbG9nUGFuZWxDbGFzc2VzIH0gZnJvbSAnLi9fdXRpbHMvbGliLWRpYWxvZy1wYW5lbC1jbGFzc2VzJztcclxuZXhwb3J0IHsgQXBwTGliTGlnaHRCbG9ja1Njcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi9fdXRpbHMvYXBwLWxpYi1saWdodC1ibG9jay1zY3JvbGwtc3RyYXRlZ3knO1xyXG5leHBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xyXG5leHBvcnQgeyBUb2FzdEhvc3RDb21wb25lbnQgfSBmcm9tICcuL3RvYXN0L3RvYXN0LWhvc3QuY29tcG9uZW50JztcclxuZXhwb3J0IHR5cGUge1xyXG4gIFRvYXN0SW5zdGFuY2UsXHJcbiAgVG9hc3RTaG93T3B0aW9ucyxcclxuICBUb2FzdFR5cGUsXHJcbiAgVG9hc3RWZXJ0aWNhbFBvc2l0aW9uLFxyXG59IGZyb20gJy4vdG9hc3QvdG9hc3QubW9kZWxzJztcclxuZXhwb3J0IHsgTG9hZGluZ0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZGluZy1kaWFsb2cvbG9hZGluZy1kaWFsb2cuY29tcG9uZW50JztcclxuZXhwb3J0IHsgTG9hZGluZ0RpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2xvYWRpbmctZGlhbG9nL2xvYWRpbmctZGlhbG9nLnNlcnZpY2UnO1xyXG5leHBvcnQgdHlwZSB7IExvYWRpbmdEaWFsb2dEYXRhIH0gZnJvbSAnLi9sb2FkaW5nLWRpYWxvZy9sb2FkaW5nLWRpYWxvZy1kYXRhLm1vZGVsJztcclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1kaWFsb2ctZGF0YS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZy9sb2FkaW5nLWRpYWxvZy1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIExvYWRpbmdEaWFsb2dEYXRhIHtcclxuICAvKipcclxuICAgKiBUZXh0byBzb2IgbyBpbmRpY2Fkb3IgZGUgcHJvZ3Jlc3NvLlxyXG4gICAqIE9taXNzbzogbWVuc2FnZW0gcG9yIGRlZmVpdG8gZGEgbGliIChgQSBjYXJyZWdhcuKApmApLlxyXG4gICAqL1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -1,19 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
2
- import { DIALOG_DATA } from '@angular/cdk/dialog';
3
- import * as i0 from "@angular/core";
4
- const DEFAULT_MESSAGE = 'A carregar…';
5
- export class LoadingDialogComponent {
6
- constructor() {
7
- this.data = inject(DIALOG_DATA);
8
- this.titleId = `app-loading-dlg-${++LoadingDialogComponent.seq}`;
9
- this.message = this.data?.message?.trim() || DEFAULT_MESSAGE;
10
- }
11
- static { this.seq = 0; }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoadingDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LoadingDialogComponent, isStandalone: true, selector: "app-loading-dialog", ngImport: i0, template: "<div\r\n class=\"loading-dialog\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-busy]=\"true\"\r\n>\r\n <div class=\"loading-dialog__content\">\r\n <div class=\"loading-dialog__spinner\" aria-hidden=\"true\"></div>\r\n <p class=\"loading-dialog__message\" [id]=\"titleId\">{{ message }}</p>\r\n </div>\r\n</div>\r\n", styles: [".loading-dialog{box-sizing:border-box;padding:1.75rem 2.25rem 2rem;outline:none}.loading-dialog__content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;text-align:center;min-width:min(17rem,78vw)}.loading-dialog__spinner{width:2.75rem;height:2.75rem;border-radius:50%;border:3px solid color-mix(in srgb,var(--app-color-primary, #2b7fd9) 22%,transparent);border-top-color:var(--app-color-primary, #2b7fd9);animation:loading-dialog-spin .75s linear infinite}@keyframes loading-dialog-spin{to{transform:rotate(360deg)}}.loading-dialog__message{margin:0;font-size:.95rem;font-weight:500;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoadingDialogComponent, decorators: [{
16
- type: Component,
17
- args: [{ selector: 'app-loading-dialog', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"loading-dialog\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"titleId\"\r\n [attr.aria-busy]=\"true\"\r\n>\r\n <div class=\"loading-dialog__content\">\r\n <div class=\"loading-dialog__spinner\" aria-hidden=\"true\"></div>\r\n <p class=\"loading-dialog__message\" [id]=\"titleId\">{{ message }}</p>\r\n </div>\r\n</div>\r\n", styles: [".loading-dialog{box-sizing:border-box;padding:1.75rem 2.25rem 2rem;outline:none}.loading-dialog__content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;text-align:center;min-width:min(17rem,78vw)}.loading-dialog__spinner{width:2.75rem;height:2.75rem;border-radius:50%;border:3px solid color-mix(in srgb,var(--app-color-primary, #2b7fd9) 22%,transparent);border-top-color:var(--app-color-primary, #2b7fd9);animation:loading-dialog-spin .75s linear infinite}@keyframes loading-dialog-spin{to{transform:rotate(360deg)}}.loading-dialog__message{margin:0;font-size:.95rem;font-weight:500;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3)}\n"] }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kaWFsb2dzL2xvYWRpbmctZGlhbG9nL2xvYWRpbmctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZy9sb2FkaW5nLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR2xELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQVN0QyxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBUW1CLFNBQUksR0FBRyxNQUFNLENBQW9CLFdBQVcsQ0FBQyxDQUFDO1FBRXRELFlBQU8sR0FBRyxtQkFBbUIsRUFBRSxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU1RCxZQUFPLEdBQ2QsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksZUFBZSxDQUFDO0tBR2pEO2FBRGdCLFFBQUcsR0FBRyxDQUFDLEFBQUosQ0FBSzsrR0FSWixzQkFBc0I7bUdBQXRCLHNCQUFzQiw4RUNibkMsOFhBWUE7OzRGRENhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XHJcbmltcG9ydCB0eXBlIHsgTG9hZGluZ0RpYWxvZ0RhdGEgfSBmcm9tICcuL2xvYWRpbmctZGlhbG9nLWRhdGEubW9kZWwnO1xyXG5cclxuY29uc3QgREVGQVVMVF9NRVNTQUdFID0gJ0EgY2FycmVnYXLigKYnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbG9hZGluZy1kaWFsb2cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRpbmctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbG9hZGluZy1kaWFsb2cuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9hZGluZ0RpYWxvZ0NvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhID0gaW5qZWN0PExvYWRpbmdEaWFsb2dEYXRhPihESUFMT0dfREFUQSk7XHJcblxyXG4gIHJlYWRvbmx5IHRpdGxlSWQgPSBgYXBwLWxvYWRpbmctZGxnLSR7KytMb2FkaW5nRGlhbG9nQ29tcG9uZW50LnNlcX1gO1xyXG5cclxuICByZWFkb25seSBtZXNzYWdlID1cclxuICAgIHRoaXMuZGF0YT8ubWVzc2FnZT8udHJpbSgpIHx8IERFRkFVTFRfTUVTU0FHRTtcclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgc2VxID0gMDtcclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJsb2FkaW5nLWRpYWxvZ1wiXHJcbiAgcm9sZT1cImRpYWxvZ1wiXHJcbiAgYXJpYS1tb2RhbD1cInRydWVcIlxyXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ0aXRsZUlkXCJcclxuICBbYXR0ci5hcmlhLWJ1c3ldPVwidHJ1ZVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1kaWFsb2dfX2NvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWRpYWxvZ19fc3Bpbm5lclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxyXG4gICAgPHAgY2xhc3M9XCJsb2FkaW5nLWRpYWxvZ19fbWVzc2FnZVwiIFtpZF09XCJ0aXRsZUlkXCI+e3sgbWVzc2FnZSB9fTwvcD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { Dialog } from '@angular/cdk/dialog';
3
- import { AppThemeService } from '../../theme';
4
- import { AppLibLightBlockScrollStrategy } from '../_utils/app-lib-light-block-scroll-strategy';
5
- import { libDialogPanelClasses } from '../_utils/lib-dialog-panel-classes';
6
- import { LoadingDialogComponent } from './loading-dialog.component';
7
- import * as i0 from "@angular/core";
8
- export class LoadingDialogService {
9
- constructor() {
10
- this.dialog = inject(Dialog);
11
- this.theme = inject(AppThemeService);
12
- }
13
- /**
14
- * Abre o diálogo de carregamento.
15
- * `disableClose: true` — não fecha com Escape nem clique fora; use `ref.close()` quando terminar.
16
- */
17
- open(data) {
18
- return this.dialog.open(LoadingDialogComponent, {
19
- data: data ?? {},
20
- width: 'min(22rem, 90vw)',
21
- maxWidth: '92vw',
22
- disableClose: true,
23
- hasBackdrop: true,
24
- backdropClass: 'app-lib-dialog-backdrop',
25
- panelClass: libDialogPanelClasses(this.theme),
26
- autoFocus: false,
27
- ariaModal: true,
28
- scrollStrategy: new AppLibLightBlockScrollStrategy(),
29
- });
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoadingDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoadingDialogService, providedIn: 'root' }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoadingDialogService, decorators: [{
35
- type: Injectable,
36
- args: [{ providedIn: 'root' }]
37
- }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1kaWFsb2cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZy9sb2FkaW5nLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQWEsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUlwRSxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRW1CLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztLQW9CbEQ7SUFsQkM7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLElBQXdCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDOUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ2hCLEtBQUssRUFBRSxrQkFBa0I7WUFDekIsUUFBUSxFQUFFLE1BQU07WUFDaEIsWUFBWSxFQUFFLElBQUk7WUFDbEIsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLHlCQUF5QjtZQUN4QyxVQUFVLEVBQUUscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM3QyxTQUFTLEVBQUUsS0FBSztZQUNoQixTQUFTLEVBQUUsSUFBSTtZQUNmLGNBQWMsRUFBRSxJQUFJLDhCQUE4QixFQUFFO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7K0dBckJVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRFAsTUFBTTs7NEZBQ25CLG9CQUFvQjtrQkFEaEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nLCBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcclxuaW1wb3J0IHsgQXBwVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGhlbWUnO1xyXG5pbXBvcnQgeyBBcHBMaWJMaWdodEJsb2NrU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICcuLi9fdXRpbHMvYXBwLWxpYi1saWdodC1ibG9jay1zY3JvbGwtc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBsaWJEaWFsb2dQYW5lbENsYXNzZXMgfSBmcm9tICcuLi9fdXRpbHMvbGliLWRpYWxvZy1wYW5lbC1jbGFzc2VzJztcclxuaW1wb3J0IHsgTG9hZGluZ0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZGluZy1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHR5cGUgeyBMb2FkaW5nRGlhbG9nRGF0YSB9IGZyb20gJy4vbG9hZGluZy1kaWFsb2ctZGF0YS5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTG9hZGluZ0RpYWxvZ1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nID0gaW5qZWN0KERpYWxvZyk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0aGVtZSA9IGluamVjdChBcHBUaGVtZVNlcnZpY2UpO1xyXG5cclxuICAvKipcclxuICAgKiBBYnJlIG8gZGnDoWxvZ28gZGUgY2FycmVnYW1lbnRvLlxyXG4gICAqIGBkaXNhYmxlQ2xvc2U6IHRydWVgIOKAlCBuw6NvIGZlY2hhIGNvbSBFc2NhcGUgbmVtIGNsaXF1ZSBmb3JhOyB1c2UgYHJlZi5jbG9zZSgpYCBxdWFuZG8gdGVybWluYXIuXHJcbiAgICovXHJcbiAgb3BlbihkYXRhPzogTG9hZGluZ0RpYWxvZ0RhdGEpOiBEaWFsb2dSZWY8dm9pZCwgTG9hZGluZ0RpYWxvZ0NvbXBvbmVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW4oTG9hZGluZ0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiBkYXRhID8/IHt9LFxyXG4gICAgICB3aWR0aDogJ21pbigyMnJlbSwgOTB2dyknLFxyXG4gICAgICBtYXhXaWR0aDogJzkydncnLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnYXBwLWxpYi1kaWFsb2ctYmFja2Ryb3AnLFxyXG4gICAgICBwYW5lbENsYXNzOiBsaWJEaWFsb2dQYW5lbENsYXNzZXModGhpcy50aGVtZSksXHJcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXHJcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG5ldyBBcHBMaWJMaWdodEJsb2NrU2Nyb2xsU3RyYXRlZ3koKSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,65 +0,0 @@
1
- import { NgClass } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, computed, inject, } from '@angular/core';
3
- import { animate, style, transition, trigger, } from '@angular/animations';
4
- import { AppThemeService } from '../../theme';
5
- import { ToastService } from './toast.service';
6
- import * as i0 from "@angular/core";
7
- export class ToastHostComponent {
8
- constructor() {
9
- this.toastService = inject(ToastService);
10
- this.theme = inject(AppThemeService);
11
- this.topToasts = computed(() => this.toastService.toasts().filter((t) => t.position === 'top'));
12
- this.bottomToasts = computed(() => this.toastService.toasts().filter((t) => t.position === 'bottom'));
13
- }
14
- dismiss(id) {
15
- this.toastService.dismiss(id);
16
- }
17
- action(id) {
18
- this.toastService.runAction(id);
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ToastHostComponent, isStandalone: true, selector: "app-toast-host", ngImport: i0, template: "@if (topToasts().length > 0) {\r\n <div\r\n class=\"toast-host toast-host--top app-library-theme\"\r\n [ngClass]=\"theme.themeClass()\"\r\n aria-live=\"polite\"\r\n aria-relevant=\"additions text\"\r\n >\r\n @for (t of topToasts(); track t.id) {\r\n <div\r\n [ngClass]=\"['toast-host__item', 'toast-host__item--' + t.type]\"\r\n @toastAnimTop\r\n role=\"status\"\r\n >\r\n <div class=\"toast-host__body\">\r\n @if (t.title) {\r\n <p class=\"toast-host__title\">{{ t.title }}</p>\r\n }\r\n <p class=\"toast-host__message\">{{ t.message }}</p>\r\n @if (t.actionLabel) {\r\n <button type=\"button\" class=\"toast-host__action\" (click)=\"action(t.id)\">\r\n {{ t.actionLabel }}\r\n </button>\r\n }\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"toast-host__close\"\r\n [attr.aria-label]=\"'Fechar notifica\u00E7\u00E3o'\"\r\n (click)=\"dismiss(t.id)\"\r\n >\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n}\r\n@if (bottomToasts().length > 0) {\r\n <div\r\n class=\"toast-host toast-host--bottom app-library-theme\"\r\n [ngClass]=\"theme.themeClass()\"\r\n aria-live=\"polite\"\r\n aria-relevant=\"additions text\"\r\n >\r\n @for (t of bottomToasts(); track t.id) {\r\n <div\r\n [ngClass]=\"['toast-host__item', 'toast-host__item--' + t.type]\"\r\n @toastAnimBottom\r\n role=\"status\"\r\n >\r\n <div class=\"toast-host__body\">\r\n @if (t.title) {\r\n <p class=\"toast-host__title\">{{ t.title }}</p>\r\n }\r\n <p class=\"toast-host__message\">{{ t.message }}</p>\r\n @if (t.actionLabel) {\r\n <button type=\"button\" class=\"toast-host__action\" (click)=\"action(t.id)\">\r\n {{ t.actionLabel }}\r\n </button>\r\n }\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"toast-host__close\"\r\n [attr.aria-label]=\"'Fechar notifica\u00E7\u00E3o'\"\r\n (click)=\"dismiss(t.id)\"\r\n >\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:contents}.toast-host{position:fixed;right:0;z-index:var(--app-z-toast, 1300);display:flex;align-items:flex-end;gap:.6rem;box-sizing:border-box;pointer-events:none;max-width:100vw}.toast-host--top{top:0;flex-direction:column;padding:max(.85rem,env(safe-area-inset-top)) max(.85rem,env(safe-area-inset-right)) max(.85rem,env(safe-area-inset-bottom)) max(.85rem,env(safe-area-inset-left))}.toast-host--bottom{bottom:0;top:auto;flex-direction:column-reverse;padding:max(.85rem,env(safe-area-inset-top)) max(.85rem,env(safe-area-inset-right)) max(.85rem,env(safe-area-inset-bottom)) max(.85rem,env(safe-area-inset-left))}.toast-host__item{pointer-events:auto;display:flex;align-items:flex-start;gap:.6rem;width:min(25rem,100vw - 1.7rem);max-width:100%;box-sizing:border-box;border-radius:12px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1));background:var(--app-color-surface, #fff);box-shadow:0 4px 8px -2px #0000000f,0 14px 32px -8px #1a2f4524;padding:.85rem .65rem .85rem .95rem;border-left-width:5px;border-left-style:solid}.toast-host__item--success{border-left-color:var(--app-color-success, #15803d)}.toast-host__item--error{border-left-color:var(--app-color-error-border, #dc2626)}.toast-host__item--warning{border-left-color:var(--app-color-warning, #c2410c)}.toast-host__item--info{border-left-color:var(--app-color-info, #1d4ed8)}.toast-host__body{flex:1 1 auto;min-width:0}.toast-host__title{margin:0 0 .3rem;font-size:.9rem;font-weight:600;line-height:1.35;color:var(--app-color-text-primary, #1a2f45);letter-spacing:.01em}.toast-host__message{margin:0;font-size:.92rem;line-height:1.5;color:var(--app-color-text-secondary, #5a7fa3);word-break:break-word}.toast-host__action{margin:.5rem 0 0;padding:0;border:none;background:none;font:inherit;font-size:.86rem;font-weight:600;color:var(--app-color-primary, #2b7fd9);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.toast-host__action:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px;border-radius:4px}.toast-host__close{flex:0 0 auto;width:1.85rem;height:1.85rem;margin:-.05rem 0 0;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--app-color-text-muted, #6b8299);font-size:1.25rem;line-height:1;cursor:pointer}.toast-host__close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08));color:var(--app-color-text-primary, #1a2f45)}.toast-host__close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
22
- trigger('toastAnimTop', [
23
- transition(':enter', [
24
- style({ opacity: 0, transform: 'translateX(110%)' }),
25
- animate('240ms cubic-bezier(0.22, 1, 0.36, 1)', style({ opacity: 1, transform: 'translateX(0)' })),
26
- ]),
27
- transition(':leave', [
28
- animate('180ms ease-in', style({ opacity: 0, transform: 'translateX(120%)' })),
29
- ]),
30
- ]),
31
- trigger('toastAnimBottom', [
32
- transition(':enter', [
33
- style({ opacity: 0, transform: 'translateY(110%)' }),
34
- animate('240ms cubic-bezier(0.22, 1, 0.36, 1)', style({ opacity: 1, transform: 'translateY(0)' })),
35
- ]),
36
- transition(':leave', [
37
- animate('180ms ease-in', style({ opacity: 0, transform: 'translateY(120%)' })),
38
- ]),
39
- ]),
40
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
- }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastHostComponent, decorators: [{
43
- type: Component,
44
- args: [{ selector: 'app-toast-host', standalone: true, imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
45
- trigger('toastAnimTop', [
46
- transition(':enter', [
47
- style({ opacity: 0, transform: 'translateX(110%)' }),
48
- animate('240ms cubic-bezier(0.22, 1, 0.36, 1)', style({ opacity: 1, transform: 'translateX(0)' })),
49
- ]),
50
- transition(':leave', [
51
- animate('180ms ease-in', style({ opacity: 0, transform: 'translateX(120%)' })),
52
- ]),
53
- ]),
54
- trigger('toastAnimBottom', [
55
- transition(':enter', [
56
- style({ opacity: 0, transform: 'translateY(110%)' }),
57
- animate('240ms cubic-bezier(0.22, 1, 0.36, 1)', style({ opacity: 1, transform: 'translateY(0)' })),
58
- ]),
59
- transition(':leave', [
60
- animate('180ms ease-in', style({ opacity: 0, transform: 'translateY(120%)' })),
61
- ]),
62
- ]),
63
- ], template: "@if (topToasts().length > 0) {\r\n <div\r\n class=\"toast-host toast-host--top app-library-theme\"\r\n [ngClass]=\"theme.themeClass()\"\r\n aria-live=\"polite\"\r\n aria-relevant=\"additions text\"\r\n >\r\n @for (t of topToasts(); track t.id) {\r\n <div\r\n [ngClass]=\"['toast-host__item', 'toast-host__item--' + t.type]\"\r\n @toastAnimTop\r\n role=\"status\"\r\n >\r\n <div class=\"toast-host__body\">\r\n @if (t.title) {\r\n <p class=\"toast-host__title\">{{ t.title }}</p>\r\n }\r\n <p class=\"toast-host__message\">{{ t.message }}</p>\r\n @if (t.actionLabel) {\r\n <button type=\"button\" class=\"toast-host__action\" (click)=\"action(t.id)\">\r\n {{ t.actionLabel }}\r\n </button>\r\n }\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"toast-host__close\"\r\n [attr.aria-label]=\"'Fechar notifica\u00E7\u00E3o'\"\r\n (click)=\"dismiss(t.id)\"\r\n >\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n}\r\n@if (bottomToasts().length > 0) {\r\n <div\r\n class=\"toast-host toast-host--bottom app-library-theme\"\r\n [ngClass]=\"theme.themeClass()\"\r\n aria-live=\"polite\"\r\n aria-relevant=\"additions text\"\r\n >\r\n @for (t of bottomToasts(); track t.id) {\r\n <div\r\n [ngClass]=\"['toast-host__item', 'toast-host__item--' + t.type]\"\r\n @toastAnimBottom\r\n role=\"status\"\r\n >\r\n <div class=\"toast-host__body\">\r\n @if (t.title) {\r\n <p class=\"toast-host__title\">{{ t.title }}</p>\r\n }\r\n <p class=\"toast-host__message\">{{ t.message }}</p>\r\n @if (t.actionLabel) {\r\n <button type=\"button\" class=\"toast-host__action\" (click)=\"action(t.id)\">\r\n {{ t.actionLabel }}\r\n </button>\r\n }\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"toast-host__close\"\r\n [attr.aria-label]=\"'Fechar notifica\u00E7\u00E3o'\"\r\n (click)=\"dismiss(t.id)\"\r\n >\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:contents}.toast-host{position:fixed;right:0;z-index:var(--app-z-toast, 1300);display:flex;align-items:flex-end;gap:.6rem;box-sizing:border-box;pointer-events:none;max-width:100vw}.toast-host--top{top:0;flex-direction:column;padding:max(.85rem,env(safe-area-inset-top)) max(.85rem,env(safe-area-inset-right)) max(.85rem,env(safe-area-inset-bottom)) max(.85rem,env(safe-area-inset-left))}.toast-host--bottom{bottom:0;top:auto;flex-direction:column-reverse;padding:max(.85rem,env(safe-area-inset-top)) max(.85rem,env(safe-area-inset-right)) max(.85rem,env(safe-area-inset-bottom)) max(.85rem,env(safe-area-inset-left))}.toast-host__item{pointer-events:auto;display:flex;align-items:flex-start;gap:.6rem;width:min(25rem,100vw - 1.7rem);max-width:100%;box-sizing:border-box;border-radius:12px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1));background:var(--app-color-surface, #fff);box-shadow:0 4px 8px -2px #0000000f,0 14px 32px -8px #1a2f4524;padding:.85rem .65rem .85rem .95rem;border-left-width:5px;border-left-style:solid}.toast-host__item--success{border-left-color:var(--app-color-success, #15803d)}.toast-host__item--error{border-left-color:var(--app-color-error-border, #dc2626)}.toast-host__item--warning{border-left-color:var(--app-color-warning, #c2410c)}.toast-host__item--info{border-left-color:var(--app-color-info, #1d4ed8)}.toast-host__body{flex:1 1 auto;min-width:0}.toast-host__title{margin:0 0 .3rem;font-size:.9rem;font-weight:600;line-height:1.35;color:var(--app-color-text-primary, #1a2f45);letter-spacing:.01em}.toast-host__message{margin:0;font-size:.92rem;line-height:1.5;color:var(--app-color-text-secondary, #5a7fa3);word-break:break-word}.toast-host__action{margin:.5rem 0 0;padding:0;border:none;background:none;font:inherit;font-size:.86rem;font-weight:600;color:var(--app-color-primary, #2b7fd9);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.toast-host__action:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px;border-radius:4px}.toast-host__close{flex:0 0 auto;width:1.85rem;height:1.85rem;margin:-.05rem 0 0;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--app-color-text-muted, #6b8299);font-size:1.25rem;line-height:1;cursor:pointer}.toast-host__close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08));color:var(--app-color-text-primary, #1a2f45)}.toast-host__close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}\n"] }]
64
- }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpYWxvZ3MvdG9hc3QvdG9hc3QtaG9zdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpYWxvZ3MvdG9hc3QvdG9hc3QtaG9zdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBMEMvQyxNQUFNLE9BQU8sa0JBQWtCO0lBeEMvQjtRQXlDVyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxVQUFLLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWhDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUMvRCxDQUFDO1FBRU8saUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxL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QUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUNyRDs2QkFDRixDQUFDO3lCQUNILENBQUM7cUJBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgY29tcHV0ZWQsXHJcbiAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIGFuaW1hdGUsXHJcbiAgc3R5bGUsXHJcbiAgdHJhbnNpdGlvbixcclxuICB0cmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBBcHBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi90aGVtZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4vdG9hc3Quc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10b2FzdC1ob3N0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ0NsYXNzXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QtaG9zdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RvYXN0LWhvc3QuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3RvYXN0QW5pbVRvcCcsIFtcclxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMTAlKScgfSksXHJcbiAgICAgICAgYW5pbWF0ZShcclxuICAgICAgICAgICcyNDBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSknLFxyXG4gICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSxcclxuICAgICAgICApLFxyXG4gICAgICBdKSxcclxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xyXG4gICAgICAgIGFuaW1hdGUoXHJcbiAgICAgICAgICAnMTgwbXMgZWFzZS1pbicsXHJcbiAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTIwJSknIH0pLFxyXG4gICAgICAgICksXHJcbiAgICAgIF0pLFxyXG4gICAgXSksXHJcbiAgICB0cmlnZ2VyKCd0b2FzdEFuaW1Cb3R0b20nLCBbXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTEwJSknIH0pLFxyXG4gICAgICAgIGFuaW1hdGUoXHJcbiAgICAgICAgICAnMjQwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpJyxcclxuICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSksXHJcbiAgICAgICAgKSxcclxuICAgICAgXSksXHJcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcclxuICAgICAgICBhbmltYXRlKFxyXG4gICAgICAgICAgJzE4MG1zIGVhc2UtaW4nLFxyXG4gICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDEyMCUpJyB9KSxcclxuICAgICAgICApLFxyXG4gICAgICBdKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb2FzdEhvc3RDb21wb25lbnQge1xyXG4gIHJlYWRvbmx5IHRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xyXG4gIHJlYWRvbmx5IHRoZW1lID0gaW5qZWN0KEFwcFRoZW1lU2VydmljZSk7XHJcblxyXG4gIHJlYWRvbmx5IHRvcFRvYXN0cyA9IGNvbXB1dGVkKCgpID0+XHJcbiAgICB0aGlzLnRvYXN0U2VydmljZS50b2FzdHMoKS5maWx0ZXIoKHQpID0+IHQucG9zaXRpb24gPT09ICd0b3AnKSxcclxuICApO1xyXG5cclxuICByZWFkb25seSBib3R0b21Ub2FzdHMgPSBjb21wdXRlZCgoKSA9PlxyXG4gICAgdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzKCkuZmlsdGVyKCh0KSA9PiB0LnBvc2l0aW9uID09PSAnYm90dG9tJyksXHJcbiAgKTtcclxuXHJcbiAgZGlzbWlzcyhpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvYXN0U2VydmljZS5kaXNtaXNzKGlkKTtcclxuICB9XHJcblxyXG4gIGFjdGlvbihpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvYXN0U2VydmljZS5ydW5BY3Rpb24oaWQpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKHRvcFRvYXN0cygpLmxlbmd0aCA+IDApIHtcclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInRvYXN0LWhvc3QgdG9hc3QtaG9zdC0tdG9wIGFwcC1saWJyYXJ5LXRoZW1lXCJcclxuICAgIFtuZ0NsYXNzXT1cInRoZW1lLnRoZW1lQ2xhc3MoKVwiXHJcbiAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxyXG4gICAgYXJpYS1yZWxldmFudD1cImFkZGl0aW9ucyB0ZXh0XCJcclxuICA+XHJcbiAgICBAZm9yICh0IG9mIHRvcFRvYXN0cygpOyB0cmFjayB0LmlkKSB7XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBbbmdDbGFzc109XCJbJ3RvYXN0LWhvc3RfX2l0ZW0nLCAndG9hc3QtaG9zdF9faXRlbS0tJyArIHQudHlwZV1cIlxyXG4gICAgICAgIEB0b2FzdEFuaW1Ub3BcclxuICAgICAgICByb2xlPVwic3RhdHVzXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1ob3N0X19ib2R5XCI+XHJcbiAgICAgICAgICBAaWYgKHQudGl0bGUpIHtcclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0b2FzdC1ob3N0X190aXRsZVwiPnt7IHQudGl0bGUgfX08L3A+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInRvYXN0LWhvc3RfX21lc3NhZ2VcIj57eyB0Lm1lc3NhZ2UgfX08L3A+XHJcbiAgICAgICAgICBAaWYgKHQuYWN0aW9uTGFiZWwpIHtcclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ0b2FzdC1ob3N0X19hY3Rpb25cIiAoY2xpY2spPVwiYWN0aW9uKHQuaWQpXCI+XHJcbiAgICAgICAgICAgICAge3sgdC5hY3Rpb25MYWJlbCB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwidG9hc3QtaG9zdF9fY2xvc2VcIlxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRmVjaGFyIG5vdGlmaWNhw6fDo28nXCJcclxuICAgICAgICAgIChjbGljayk9XCJkaXNtaXNzKHQuaWQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufVxyXG5AaWYgKGJvdHRvbVRvYXN0cygpLmxlbmd0aCA+IDApIHtcclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInRvYXN0LWhvc3QgdG9hc3QtaG9zdC0tYm90dG9tIGFwcC1saWJyYXJ5LXRoZW1lXCJcclxuICAgIFtuZ0NsYXNzXT1cInRoZW1lLnRoZW1lQ2xhc3MoKVwiXHJcbiAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxyXG4gICAgYXJpYS1yZWxldmFudD1cImFkZGl0aW9ucyB0ZXh0XCJcclxuICA+XHJcbiAgICBAZm9yICh0IG9mIGJvdHRvbVRvYXN0cygpOyB0cmFjayB0LmlkKSB7XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBbbmdDbGFzc109XCJbJ3RvYXN0LWhvc3RfX2l0ZW0nLCAndG9hc3QtaG9zdF9faXRlbS0tJyArIHQudHlwZV1cIlxyXG4gICAgICAgIEB0b2FzdEFuaW1Cb3R0b21cclxuICAgICAgICByb2xlPVwic3RhdHVzXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1ob3N0X19ib2R5XCI+XHJcbiAgICAgICAgICBAaWYgKHQudGl0bGUpIHtcclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0b2FzdC1ob3N0X190aXRsZVwiPnt7IHQudGl0bGUgfX08L3A+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInRvYXN0LWhvc3RfX21lc3NhZ2VcIj57eyB0Lm1lc3NhZ2UgfX08L3A+XHJcbiAgICAgICAgICBAaWYgKHQuYWN0aW9uTGFiZWwpIHtcclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ0b2FzdC1ob3N0X19hY3Rpb25cIiAoY2xpY2spPVwiYWN0aW9uKHQuaWQpXCI+XHJcbiAgICAgICAgICAgICAge3sgdC5hY3Rpb25MYWJlbCB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwidG9hc3QtaG9zdF9fY2xvc2VcIlxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRmVjaGFyIG5vdGlmaWNhw6fDo28nXCJcclxuICAgICAgICAgIChjbGljayk9XCJkaXNtaXNzKHQuaWQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kaWFsb2dzL3RvYXN0L3RvYXN0Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVG9hc3RUeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJztcblxuLyoqIE9uZGUgZW1waWxoYXIgbyB0b2FzdCBuYSB0ZWxhIChjYW50byBzdXBlcmlvciBvdSBpbmZlcmlvciBkaXJlaXRvKS4gKi9cbmV4cG9ydCB0eXBlIFRvYXN0VmVydGljYWxQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3RTaG93T3B0aW9ucyB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHR5cGU/OiBUb2FzdFR5cGU7XG4gIC8qKiBPbWlzc286IGB0b3BgIChjb21wb3J0YW1lbnRvIGFudGVyaW9yKS4gKi9cbiAgcG9zaXRpb24/OiBUb2FzdFZlcnRpY2FsUG9zaXRpb247XG4gIC8qKlxuICAgKiBEdXJhw6fDo28gZW0gbXMuIGAwYCA9IG7Do28gZmVjaGEgYXV0b21hdGljYW1lbnRlIChzw7MgYm90w6NvIGZlY2hhciAvIGHDp8OjbykuXG4gICAqIE9taXNzbzogNTAwMCBtcy5cbiAgICovXG4gIGR1cmF0aW9uTXM/OiBudW1iZXI7XG4gIGFjdGlvbkxhYmVsPzogc3RyaW5nO1xuICBvbkFjdGlvbj86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3RJbnN0YW5jZSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR5cGU6IFRvYXN0VHlwZTtcbiAgcmVhZG9ubHkgZHVyYXRpb25NczogbnVtYmVyO1xuICByZWFkb25seSBhY3Rpb25MYWJlbD86IHN0cmluZztcbiAgcmVhZG9ubHkgcG9zaXRpb246IFRvYXN0VmVydGljYWxQb3NpdGlvbjtcbn1cbiJdfQ==
@@ -1,76 +0,0 @@
1
- import { Injectable, computed, signal } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- const DEFAULT_DURATION_MS = 5000;
4
- let toastIdSeq = 0;
5
- function nextId() {
6
- if (typeof crypto !== 'undefined' && crypto.randomUUID) {
7
- return crypto.randomUUID();
8
- }
9
- return `toast-${++toastIdSeq}`;
10
- }
11
- export class ToastService {
12
- constructor() {
13
- this.items = signal([]);
14
- this.timers = new Map();
15
- this.actionHandlers = new Map();
16
- /** Lista actual (mais recente primeiro). */
17
- this.toasts = computed(() => this.items());
18
- }
19
- /** Mostra um toast; devolve o id (para `dismiss` manual). */
20
- show(options) {
21
- const id = nextId();
22
- const type = options.type ?? 'info';
23
- const durationMs = options.durationMs === undefined ? DEFAULT_DURATION_MS : options.durationMs;
24
- const row = {
25
- id,
26
- message: options.message,
27
- title: options.title?.trim() || undefined,
28
- type,
29
- durationMs,
30
- actionLabel: options.actionLabel?.trim() || undefined,
31
- position: options.position ?? 'top',
32
- };
33
- this.items.update((list) => [row, ...list]);
34
- if (options.onAction && row.actionLabel) {
35
- this.actionHandlers.set(id, options.onAction);
36
- }
37
- this.clearTimer(id);
38
- if (durationMs > 0) {
39
- this.timers.set(id, setTimeout(() => this.dismiss(id), durationMs));
40
- }
41
- return id;
42
- }
43
- dismiss(id) {
44
- this.clearTimer(id);
45
- this.actionHandlers.delete(id);
46
- this.items.update((list) => list.filter((t) => t.id !== id));
47
- }
48
- clear() {
49
- for (const id of this.timers.keys()) {
50
- this.clearTimer(id);
51
- }
52
- this.actionHandlers.clear();
53
- this.items.set([]);
54
- }
55
- runAction(id) {
56
- const fn = this.actionHandlers.get(id);
57
- if (fn) {
58
- fn();
59
- }
60
- this.dismiss(id);
61
- }
62
- clearTimer(id) {
63
- const t = this.timers.get(id);
64
- if (t != null) {
65
- clearTimeout(t);
66
- }
67
- this.timers.delete(id);
68
- }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
70
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastService, providedIn: 'root' }); }
71
- }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastService, decorators: [{
73
- type: Injectable,
74
- args: [{ providedIn: 'root' }]
75
- }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy90b2FzdC90b2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHN0QsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFFakMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBRW5CLFNBQVMsTUFBTTtJQUNiLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2RCxPQUFPLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUdELE1BQU0sT0FBTyxZQUFZO0lBRHpCO1FBRW1CLFVBQUssR0FBRyxNQUFNLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxJQUFJLEdBQUcsRUFBeUMsQ0FBQztRQUMxRCxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO1FBRWhFLDRDQUE0QztRQUNuQyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBaUVoRDtJQS9EQyw2REFBNkQ7SUFDN0QsSUFBSSxDQUFDLE9BQXlCO1FBQzVCLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxHQUFjLE9BQU8sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDO1FBQy9DLE1BQU0sVUFBVSxHQUNkLE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUU5RSxNQUFNLEdBQUcsR0FBa0I7WUFDekIsRUFBRTtZQUNGLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxTQUFTO1lBQ3pDLElBQUk7WUFDSixVQUFVO1lBQ1YsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksU0FBUztZQUNyRCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLO1NBQ3BDLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTVDLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDYixFQUFFLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQy9DLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQVU7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxLQUFLO1FBQ0gsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQVU7UUFDbEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNQLEVBQUUsRUFBRSxDQUFDO1FBQ1AsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxFQUFVO1FBQzNCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2QsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOytHQXRFVSxZQUFZO21IQUFaLFlBQVksY0FEQyxNQUFNOzs0RkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgVG9hc3RJbnN0YW5jZSwgVG9hc3RTaG93T3B0aW9ucywgVG9hc3RUeXBlIH0gZnJvbSAnLi90b2FzdC5tb2RlbHMnO1xyXG5cclxuY29uc3QgREVGQVVMVF9EVVJBVElPTl9NUyA9IDUwMDA7XHJcblxyXG5sZXQgdG9hc3RJZFNlcSA9IDA7XHJcblxyXG5mdW5jdGlvbiBuZXh0SWQoKTogc3RyaW5nIHtcclxuICBpZiAodHlwZW9mIGNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgJiYgY3J5cHRvLnJhbmRvbVVVSUQpIHtcclxuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG4gIH1cclxuICByZXR1cm4gYHRvYXN0LSR7Kyt0b2FzdElkU2VxfWA7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUb2FzdFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbXMgPSBzaWduYWw8VG9hc3RJbnN0YW5jZVtdPihbXSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lcnMgPSBuZXcgTWFwPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25IYW5kbGVycyA9IG5ldyBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPigpO1xyXG5cclxuICAvKiogTGlzdGEgYWN0dWFsIChtYWlzIHJlY2VudGUgcHJpbWVpcm8pLiAqL1xyXG4gIHJlYWRvbmx5IHRvYXN0cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXRlbXMoKSk7XHJcblxyXG4gIC8qKiBNb3N0cmEgdW0gdG9hc3Q7IGRldm9sdmUgbyBpZCAocGFyYSBgZGlzbWlzc2AgbWFudWFsKS4gKi9cclxuICBzaG93KG9wdGlvbnM6IFRvYXN0U2hvd09wdGlvbnMpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaWQgPSBuZXh0SWQoKTtcclxuICAgIGNvbnN0IHR5cGU6IFRvYXN0VHlwZSA9IG9wdGlvbnMudHlwZSA/PyAnaW5mbyc7XHJcbiAgICBjb25zdCBkdXJhdGlvbk1zID1cclxuICAgICAgb3B0aW9ucy5kdXJhdGlvbk1zID09PSB1bmRlZmluZWQgPyBERUZBVUxUX0RVUkFUSU9OX01TIDogb3B0aW9ucy5kdXJhdGlvbk1zO1xyXG5cclxuICAgIGNvbnN0IHJvdzogVG9hc3RJbnN0YW5jZSA9IHtcclxuICAgICAgaWQsXHJcbiAgICAgIG1lc3NhZ2U6IG9wdGlvbnMubWVzc2FnZSxcclxuICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGU/LnRyaW0oKSB8fCB1bmRlZmluZWQsXHJcbiAgICAgIHR5cGUsXHJcbiAgICAgIGR1cmF0aW9uTXMsXHJcbiAgICAgIGFjdGlvbkxhYmVsOiBvcHRpb25zLmFjdGlvbkxhYmVsPy50cmltKCkgfHwgdW5kZWZpbmVkLFxyXG4gICAgICBwb3NpdGlvbjogb3B0aW9ucy5wb3NpdGlvbiA/PyAndG9wJyxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5pdGVtcy51cGRhdGUoKGxpc3QpID0+IFtyb3csIC4uLmxpc3RdKTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5vbkFjdGlvbiAmJiByb3cuYWN0aW9uTGFiZWwpIHtcclxuICAgICAgdGhpcy5hY3Rpb25IYW5kbGVycy5zZXQoaWQsIG9wdGlvbnMub25BY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xlYXJUaW1lcihpZCk7XHJcbiAgICBpZiAoZHVyYXRpb25NcyA+IDApIHtcclxuICAgICAgdGhpcy50aW1lcnMuc2V0KFxyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kaXNtaXNzKGlkKSwgZHVyYXRpb25NcyksXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlkO1xyXG4gIH1cclxuXHJcbiAgZGlzbWlzcyhpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyVGltZXIoaWQpO1xyXG4gICAgdGhpcy5hY3Rpb25IYW5kbGVycy5kZWxldGUoaWQpO1xyXG4gICAgdGhpcy5pdGVtcy51cGRhdGUoKGxpc3QpID0+IGxpc3QuZmlsdGVyKCh0KSA9PiB0LmlkICE9PSBpZCkpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHRoaXMudGltZXJzLmtleXMoKSkge1xyXG4gICAgICB0aGlzLmNsZWFyVGltZXIoaWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3Rpb25IYW5kbGVycy5jbGVhcigpO1xyXG4gICAgdGhpcy5pdGVtcy5zZXQoW10pO1xyXG4gIH1cclxuXHJcbiAgcnVuQWN0aW9uKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZuID0gdGhpcy5hY3Rpb25IYW5kbGVycy5nZXQoaWQpO1xyXG4gICAgaWYgKGZuKSB7XHJcbiAgICAgIGZuKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc21pc3MoaWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhclRpbWVyKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHQgPSB0aGlzLnRpbWVycy5nZXQoaWQpO1xyXG4gICAgaWYgKHQgIT0gbnVsbCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRpbWVycy5kZWxldGUoaWQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,158 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { FormGroupDirective, NgControl, NgForm, Validators, } from '@angular/forms';
4
- import { distinctUntilChanged, merge } from 'rxjs';
5
- import { BaseFieldDirective } from '../../input-fields/_base/base-field.directive';
6
- import * as i0 from "@angular/core";
7
- export class BooleanFieldDirective extends BaseFieldDirective {
8
- constructor() {
9
- super(...arguments);
10
- this.ngControl = null;
11
- this.checked = false;
12
- /** Cache para templates OnPush (evita getters a cada CD). */
13
- this.uiInvalid = false;
14
- this.uiErrorMessage = '';
15
- this.uiAriaDescribedBy = null;
16
- this.uiRequiredEffective = false;
17
- /** Por omissão não mostra o parágrafo de erro (checkbox/switch); alinhado à base dos campos. */
18
- this.showErrorMessage = false;
19
- }
20
- resolveControlForRequired() {
21
- return this.ngControl?.control ?? undefined;
22
- }
23
- ngOnChanges(_changes) {
24
- if (this.ngControl?.control) {
25
- this.syncBoolUi();
26
- }
27
- }
28
- ngOnInit() {
29
- this.ngControl = this.injector.get(NgControl, null, {
30
- optional: true,
31
- self: true,
32
- });
33
- if (this.ngControl) {
34
- this.ngControl.valueAccessor = this;
35
- }
36
- const c = this.ngControl?.control;
37
- if (c) {
38
- merge(c.statusChanges, c.valueChanges.pipe(distinctUntilChanged((a, b) => Object.is(a, b))))
39
- .pipe(takeUntilDestroyed(this.destroyRef))
40
- .subscribe(() => this.syncBoolUi());
41
- this.syncBoolUi();
42
- }
43
- this.registerFormSubmitRecheckBool();
44
- }
45
- ngDoCheck() {
46
- if (!this.ngControl?.control) {
47
- return;
48
- }
49
- const sub = this.isParentFormSubmitted();
50
- if (this.lastParentSubmitted === undefined) {
51
- this.lastParentSubmitted = sub;
52
- return;
53
- }
54
- if (this.lastParentSubmitted !== sub) {
55
- this.lastParentSubmitted = sub;
56
- this.syncBoolUi();
57
- }
58
- }
59
- /**
60
- * Checkbox/switch: mostrar erro após alterar o valor (`dirty`), após foco (`touched`)
61
- * ou após envio do formulário — ao contrário dos inputs de texto, não há “valor intermédio”
62
- * e o utilizador espera feedback imediato ao marcar/desmarcar.
63
- */
64
- boolInvalidShownAfterInteraction(control) {
65
- return !!control && (control.dirty || control.touched || this.isParentFormSubmitted());
66
- }
67
- controlInvalidUi(control) {
68
- if (!this.isEffectiveRequired(control)) {
69
- return false;
70
- }
71
- return (!!control &&
72
- control.invalid &&
73
- this.boolInvalidShownAfterInteraction(control));
74
- }
75
- syncBoolUi() {
76
- this.uiInvalid = this.baseInvalid;
77
- this.uiRequiredEffective = this.requiredEffective;
78
- this.uiErrorMessage = this.getErrorMessage();
79
- this.uiAriaDescribedBy =
80
- this.uiInvalid && this.uiErrorMessage ? this.errorElementId : null;
81
- this.cdr.markForCheck();
82
- }
83
- registerFormSubmitRecheckBool() {
84
- const fg = this.injector.get(FormGroupDirective, null, { optional: true });
85
- const nf = this.injector.get(NgForm, null, { optional: true });
86
- const recheck = () => this.syncBoolUi();
87
- fg?.ngSubmit
88
- ?.pipe(takeUntilDestroyed(this.destroyRef))
89
- .subscribe(recheck);
90
- nf?.ngSubmit
91
- ?.pipe(takeUntilDestroyed(this.destroyRef))
92
- .subscribe(recheck);
93
- }
94
- afterWriteValue(value) {
95
- this.checked = value === true;
96
- if (this.ngControl?.control) {
97
- this.syncBoolUi();
98
- }
99
- }
100
- setChecked(next) {
101
- if (this.disabled || this.readonly) {
102
- return;
103
- }
104
- this.checked = next;
105
- this.emitModelValue(next);
106
- const c = this.ngControl?.control;
107
- if (c) {
108
- c.markAsDirty();
109
- this.syncBoolUi();
110
- return;
111
- }
112
- this.cdr.markForCheck();
113
- }
114
- get baseInvalid() {
115
- return this.controlInvalidUi(this.ngControl?.control);
116
- }
117
- /**
118
- * A classe base só devolvia texto quando `isEffectiveRequired` batia com o mesmo instante
119
- * do `NgControl`; com `requiredTrue` + submit, o estado vermelho aparecia sem mensagem.
120
- */
121
- getErrorMessage() {
122
- if (!this.showErrorMessage) {
123
- return '';
124
- }
125
- const c = this.ngControl?.control;
126
- if (!c?.invalid) {
127
- return super.getErrorMessage();
128
- }
129
- const showState = this.boolInvalidShownAfterInteraction(c);
130
- if (!showState) {
131
- return super.getErrorMessage();
132
- }
133
- if (c.hasError('required')) {
134
- const requiredField = this.required ||
135
- c.hasValidator(Validators.required) ||
136
- c.hasValidator(Validators.requiredTrue);
137
- if (requiredField) {
138
- const custom = this.errorMessage.trim();
139
- return custom.length > 0 ? custom : 'Campo obrigatório';
140
- }
141
- }
142
- return super.getErrorMessage();
143
- }
144
- get errorElementId() {
145
- return `${this.controlId}-error`;
146
- }
147
- onBlur() {
148
- this.notifyTouched();
149
- }
150
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BooleanFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
151
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: BooleanFieldDirective, inputs: { showErrorMessage: "showErrorMessage" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
152
- }
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BooleanFieldDirective, decorators: [{
154
- type: Directive
155
- }], propDecorators: { showErrorMessage: [{
156
- type: Input
157
- }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9jaGVja2JveC1maWVsZHMvX2Jhc2UvYm9vbGVhbi1maWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQUduRixNQUFNLE9BQWdCLHFCQUNwQixTQUFRLGtCQUFrQztJQUY1Qzs7UUFLWSxjQUFTLEdBQXFCLElBQUksQ0FBQztRQUs3QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLDZEQUE2RDtRQUM3RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLHNCQUFpQixHQUFrQixJQUFJLENBQUM7UUFDeEMsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRTVCLGdHQUFnRztRQUV2RixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7S0EySm5DO0lBekpvQix5QkFBeUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUM7SUFDOUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FB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Q0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBQzFELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7K0dBN0ttQixxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUzs4QkFvQkMsZ0JBQWdCO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBEb0NoZWNrLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQge1xyXG4gIEFic3RyYWN0Q29udHJvbCxcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgTmdDb250cm9sLFxyXG4gIE5nRm9ybSxcclxuICBWYWxpZGF0b3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1lcmdlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2lucHV0LWZpZWxkcy9fYmFzZS9iYXNlLWZpZWxkLmRpcmVjdGl2ZSc7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJvb2xlYW5GaWVsZERpcmVjdGl2ZVxyXG4gIGV4dGVuZHMgQmFzZUZpZWxkRGlyZWN0aXZlPGJvb2xlYW4gfCBudWxsPlxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIERvQ2hlY2tcclxue1xyXG4gIHByb3RlY3RlZCBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKiogVmVyIHtAbGluayBOZ0NvbnRyb2xGaWVsZERpcmVjdGl2ZS5uZ0RvQ2hlY2t9IOKAlCBgcmVzZXRGb3JtKClgIHNlbSBgbmdTdWJtaXRgLiAqL1xyXG4gIHByaXZhdGUgbGFzdFBhcmVudFN1Ym1pdHRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY2hlY2tlZCA9IGZhbHNlO1xyXG5cclxuICAvKiogQ2FjaGUgcGFyYSB0ZW1wbGF0ZXMgT25QdXNoIChldml0YSBnZXR0ZXJzIGEgY2FkYSBDRCkuICovXHJcbiAgdWlJbnZhbGlkID0gZmFsc2U7XHJcbiAgdWlFcnJvck1lc3NhZ2UgPSAnJztcclxuICB1aUFyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgdWlSZXF1aXJlZEVmZmVjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAvKiogUG9yIG9taXNzw6NvIG7Do28gbW9zdHJhIG8gcGFyw6FncmFmbyBkZSBlcnJvIChjaGVja2JveC9zd2l0Y2gpOyBhbGluaGFkbyDDoCBiYXNlIGRvcyBjYW1wb3MuICovXHJcbiAgQElucHV0KClcclxuICBvdmVycmlkZSBzaG93RXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZXNvbHZlQ29udHJvbEZvclJlcXVpcmVkKCk6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMubmdDb250cm9sPy5jb250cm9sID8/IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5zeW5jQm9vbFVpKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsLCB7XHJcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxyXG4gICAgICBzZWxmOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w7XHJcbiAgICBpZiAoYykge1xyXG4gICAgICBtZXJnZShcclxuICAgICAgICBjLnN0YXR1c0NoYW5nZXMsXHJcbiAgICAgICAgYy52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBPYmplY3QuaXMoYSwgYikpLFxyXG4gICAgICAgICksXHJcbiAgICAgIClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3luY0Jvb2xVaSgpKTtcclxuICAgICAgdGhpcy5zeW5jQm9vbFVpKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlZ2lzdGVyRm9ybVN1Ym1pdFJlY2hlY2tCb29sKCk7XHJcbiAgfVxyXG5cclxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubmdDb250cm9sPy5jb250cm9sKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHN1YiA9IHRoaXMuaXNQYXJlbnRGb3JtU3VibWl0dGVkKCk7XHJcbiAgICBpZiAodGhpcy5sYXN0UGFyZW50U3VibWl0dGVkID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5sYXN0UGFyZW50U3VibWl0dGVkID0gc3ViO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sYXN0UGFyZW50U3VibWl0dGVkICE9PSBzdWIpIHtcclxuICAgICAgdGhpcy5sYXN0UGFyZW50U3VibWl0dGVkID0gc3ViO1xyXG4gICAgICB0aGlzLnN5bmNCb29sVWkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrYm94L3N3aXRjaDogbW9zdHJhciBlcnJvIGFww7NzIGFsdGVyYXIgbyB2YWxvciAoYGRpcnR5YCksIGFww7NzIGZvY28gKGB0b3VjaGVkYClcclxuICAgKiBvdSBhcMOzcyBlbnZpbyBkbyBmb3JtdWzDoXJpbyDigJQgYW8gY29udHLDoXJpbyBkb3MgaW5wdXRzIGRlIHRleHRvLCBuw6NvIGjDoSDigJx2YWxvciBpbnRlcm3DqWRpb+KAnVxyXG4gICAqIGUgbyB1dGlsaXphZG9yIGVzcGVyYSBmZWVkYmFjayBpbWVkaWF0byBhbyBtYXJjYXIvZGVzbWFyY2FyLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBib29sSW52YWxpZFNob3duQWZ0ZXJJbnRlcmFjdGlvbihcclxuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgfCB1bmRlZmluZWQsXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISFjb250cm9sICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLmlzUGFyZW50Rm9ybVN1Ym1pdHRlZCgpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjb250cm9sSW52YWxpZFVpKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5pc0VmZmVjdGl2ZVJlcXVpcmVkKGNvbnRyb2wpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgICEhY29udHJvbCAmJlxyXG4gICAgICBjb250cm9sLmludmFsaWQgJiZcclxuICAgICAgdGhpcy5ib29sSW52YWxpZFNob3duQWZ0ZXJJbnRlcmFjdGlvbihjb250cm9sKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzeW5jQm9vbFVpKCk6IHZvaWQge1xyXG4gICAgdGhpcy51aUludmFsaWQgPSB0aGlzLmJhc2VJbnZhbGlkO1xyXG4gICAgdGhpcy51aVJlcXVpcmVkRWZmZWN0aXZlID0gdGhpcy5yZXF1aXJlZEVmZmVjdGl2ZTtcclxuICAgIHRoaXMudWlFcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSgpO1xyXG4gICAgdGhpcy51aUFyaWFEZXNjcmliZWRCeSA9XHJcbiAgICAgIHRoaXMudWlJbnZhbGlkICYmIHRoaXMudWlFcnJvck1lc3NhZ2UgPyB0aGlzLmVycm9yRWxlbWVudElkIDogbnVsbDtcclxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWdpc3RlckZvcm1TdWJtaXRSZWNoZWNrQm9vbCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZnID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlLCBudWxsLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xyXG4gICAgY29uc3QgbmYgPSB0aGlzLmluamVjdG9yLmdldChOZ0Zvcm0sIG51bGwsIHsgb3B0aW9uYWw6IHRydWUgfSk7XHJcbiAgICBjb25zdCByZWNoZWNrID0gKCk6IHZvaWQgPT4gdGhpcy5zeW5jQm9vbFVpKCk7XHJcbiAgICBmZz8ubmdTdWJtaXRcclxuICAgICAgPy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlY2hlY2spO1xyXG4gICAgbmY/Lm5nU3VibWl0XHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcclxuICAgICAgLnN1YnNjcmliZShyZWNoZWNrKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhZnRlcldyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4gfCBudWxsKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrZWQgPSB2YWx1ZSA9PT0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbD8uY29udHJvbCkge1xyXG4gICAgICB0aGlzLnN5bmNCb29sVWkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXRDaGVja2VkKG5leHQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja2VkID0gbmV4dDtcclxuICAgIHRoaXMuZW1pdE1vZGVsVmFsdWUobmV4dCk7XHJcbiAgICBjb25zdCBjID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w7XHJcbiAgICBpZiAoYykge1xyXG4gICAgICBjLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHRoaXMuc3luY0Jvb2xVaSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGdldCBiYXNlSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xJbnZhbGlkVWkodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBjbGFzc2UgYmFzZSBzw7MgZGV2b2x2aWEgdGV4dG8gcXVhbmRvIGBpc0VmZmVjdGl2ZVJlcXVpcmVkYCBiYXRpYSBjb20gbyBtZXNtbyBpbnN0YW50ZVxyXG4gICAqIGRvIGBOZ0NvbnRyb2xgOyBjb20gYHJlcXVpcmVkVHJ1ZWAgKyBzdWJtaXQsIG8gZXN0YWRvIHZlcm1lbGhvIGFwYXJlY2lhIHNlbSBtZW5zYWdlbS5cclxuICAgKi9cclxuICBvdmVycmlkZSBnZXRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5zaG93RXJyb3JNZXNzYWdlKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGNvbnN0IGMgPSB0aGlzLm5nQ29udHJvbD8uY29udHJvbDtcclxuICAgIGlmICghYz8uaW52YWxpZCkge1xyXG4gICAgICByZXR1cm4gc3VwZXIuZ2V0RXJyb3JNZXNzYWdlKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzaG93U3RhdGUgPSB0aGlzLmJvb2xJbnZhbGlkU2hvd25BZnRlckludGVyYWN0aW9uKGMpO1xyXG4gICAgaWYgKCFzaG93U3RhdGUpIHtcclxuICAgICAgcmV0dXJuIHN1cGVyLmdldEVycm9yTWVzc2FnZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGMuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAgICAgY29uc3QgcmVxdWlyZWRGaWVsZCA9XHJcbiAgICAgICAgdGhpcy5yZXF1aXJlZCB8fFxyXG4gICAgICAgIGMuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpIHx8XHJcbiAgICAgICAgYy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xyXG4gICAgICBpZiAocmVxdWlyZWRGaWVsZCkge1xyXG4gICAgICAgIGNvbnN0IGN1c3RvbSA9IHRoaXMuZXJyb3JNZXNzYWdlLnRyaW0oKTtcclxuICAgICAgICByZXR1cm4gY3VzdG9tLmxlbmd0aCA+IDAgPyBjdXN0b20gOiAnQ2FtcG8gb2JyaWdhdMOzcmlvJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1cGVyLmdldEVycm9yTWVzc2FnZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVycm9yRWxlbWVudElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5jb250cm9sSWR9LWVycm9yYDtcclxuICB9XHJcblxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMubm90aWZ5VG91Y2hlZCgpO1xyXG4gIH1cclxufVxyXG4iXX0=