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,38 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, booleanAttribute, numberAttribute, } from '@angular/core';
2
- import { SkeletonBlockComponent } from '../skeleton-block/skeleton-block.component';
3
- import * as i0 from "@angular/core";
4
- /** Lista vertical de linhas (ex.: opções de dropdown). */
5
- export class SkeletonListComponent {
6
- constructor() {
7
- this.rows = 6;
8
- /** Mostra um “leading” à esquerda (círculo pequeno). */
9
- this.leading = true;
10
- this.rowGap = '0.25rem';
11
- /** Altura da barra por linha (alinhada às opções de select ~0,95rem / lh 1,35). */
12
- this.lineHeight = '1.05rem';
13
- this.animate = true;
14
- }
15
- rowIndexes() {
16
- return Array.from({ length: Math.max(1, this.rows) }, (_, i) => i);
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SkeletonListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SkeletonListComponent, isStandalone: true, selector: "app-skeleton-list", inputs: { rows: ["rows", "rows", numberAttribute], leading: ["leading", "leading", booleanAttribute], rowGap: "rowGap", lineHeight: "lineHeight", animate: ["animate", "animate", booleanAttribute] }, ngImport: i0, template: "<div class=\"skeleton-list\" [style.gap]=\"rowGap\">\r\n @for (i of rowIndexes(); track i) {\r\n <div class=\"skeleton-list__row\">\r\n @if (leading) {\r\n <app-skeleton-block class=\"skeleton-list__dot\" width=\"1.5rem\" height=\"1.5rem\" radius=\"999px\"\r\n [animate]=\"animate\" />\r\n }\r\n <app-skeleton-block class=\"skeleton-list__line\" width=\"100%\" [height]=\"lineHeight\" radius=\"6px\"\r\n [animate]=\"animate\" />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0}.skeleton-list{display:flex;flex-direction:column;width:100%;min-width:0;padding:.2rem 0;box-sizing:border-box}.skeleton-list__row{display:flex;align-items:center;gap:.55rem;min-width:0;min-height:2.45rem;padding:.4rem .75rem;box-sizing:border-box}.skeleton-list__line{flex:1 1 auto;min-width:0}.skeleton-list__dot{flex-shrink:0}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SkeletonListComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'app-skeleton-list', standalone: true, imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"skeleton-list\" [style.gap]=\"rowGap\">\r\n @for (i of rowIndexes(); track i) {\r\n <div class=\"skeleton-list__row\">\r\n @if (leading) {\r\n <app-skeleton-block class=\"skeleton-list__dot\" width=\"1.5rem\" height=\"1.5rem\" radius=\"999px\"\r\n [animate]=\"animate\" />\r\n }\r\n <app-skeleton-block class=\"skeleton-list__line\" width=\"100%\" [height]=\"lineHeight\" radius=\"6px\"\r\n [animate]=\"animate\" />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0}.skeleton-list{display:flex;flex-direction:column;width:100%;min-width:0;padding:.2rem 0;box-sizing:border-box}.skeleton-list__row{display:flex;align-items:center;gap:.55rem;min-width:0;min-height:2.45rem;padding:.4rem .75rem;box-sizing:border-box}.skeleton-list__line{flex:1 1 auto;min-width:0}.skeleton-list__dot{flex-shrink:0}\n"] }]
24
- }], propDecorators: { rows: [{
25
- type: Input,
26
- args: [{ transform: numberAttribute }]
27
- }], leading: [{
28
- type: Input,
29
- args: [{ transform: booleanAttribute }]
30
- }], rowGap: [{
31
- type: Input
32
- }], lineHeight: [{
33
- type: Input
34
- }], animate: [{
35
- type: Input,
36
- args: [{ transform: booleanAttribute }]
37
- }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2xvYWRpbmcvc2tlbGV0b24tbG9hZGluZy9za2VsZXRvbi1saXN0L3NrZWxldG9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sb2FkaW5nL3NrZWxldG9uLWxvYWRpbmcvc2tlbGV0b24tbGlzdC9za2VsZXRvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFcEYsMERBQTBEO0FBUzFELE1BQU0sT0FBTyxxQkFBcUI7SUFSbEM7UUFTeUMsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNoRCx3REFBd0Q7UUFDaEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUM5QyxXQUFNLEdBQUcsU0FBUyxDQUFDO1FBQzVCLG1GQUFtRjtRQUMxRSxlQUFVLEdBQUcsU0FBUyxDQUFDO1FBRVEsWUFBTyxHQUFHLElBQUksQ0FBQztLQUt4RDtJQUhDLFVBQVU7UUFDUixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDOytHQVpVLHFCQUFxQjttR0FBckIscUJBQXFCLHNGQUNaLGVBQWUsbUNBRWYsZ0JBQWdCLCtFQUtoQixnQkFBZ0IsNkJDMUJ0Qyx1ZUFZQSxnYkRDWSxzQkFBc0I7OzRGQUtyQixxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLHNCQUFzQixDQUFDLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdSLElBQUk7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUVHLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzdCLE1BQU07c0JBQWQsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVrQyxPQUFPO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcclxuICBudW1iZXJBdHRyaWJ1dGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNrZWxldG9uQmxvY2tDb21wb25lbnQgfSBmcm9tICcuLi9za2VsZXRvbi1ibG9jay9za2VsZXRvbi1ibG9jay5jb21wb25lbnQnO1xyXG5cclxuLyoqIExpc3RhIHZlcnRpY2FsIGRlIGxpbmhhcyAoZXguOiBvcMOnw7VlcyBkZSBkcm9wZG93bikuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNrZWxldG9uLWxpc3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1NrZWxldG9uQmxvY2tDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9za2VsZXRvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2tlbGV0b24tbGlzdC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTa2VsZXRvbkxpc3RDb21wb25lbnQge1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHJvd3MgPSA2O1xyXG4gIC8qKiBNb3N0cmEgdW0g4oCcbGVhZGluZ+KAnSDDoCBlc3F1ZXJkYSAoY8OtcmN1bG8gcGVxdWVubykuICovXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGxlYWRpbmcgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHJvd0dhcCA9ICcwLjI1cmVtJztcclxuICAvKiogQWx0dXJhIGRhIGJhcnJhIHBvciBsaW5oYSAoYWxpbmhhZGEgw6BzIG9ww6fDtWVzIGRlIHNlbGVjdCB+MCw5NXJlbSAvIGxoIDEsMzUpLiAqL1xyXG4gIEBJbnB1dCgpIGxpbmVIZWlnaHQgPSAnMS4wNXJlbSc7XHJcblxyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhbmltYXRlID0gdHJ1ZTtcclxuXHJcbiAgcm93SW5kZXhlcygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogTWF0aC5tYXgoMSwgdGhpcy5yb3dzKSB9LCAoXywgaSkgPT4gaSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJza2VsZXRvbi1saXN0XCIgW3N0eWxlLmdhcF09XCJyb3dHYXBcIj5cclxuICBAZm9yIChpIG9mIHJvd0luZGV4ZXMoKTsgdHJhY2sgaSkge1xyXG4gIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1saXN0X19yb3dcIj5cclxuICAgIEBpZiAobGVhZGluZykge1xyXG4gICAgPGFwcC1za2VsZXRvbi1ibG9jayBjbGFzcz1cInNrZWxldG9uLWxpc3RfX2RvdFwiIHdpZHRoPVwiMS41cmVtXCIgaGVpZ2h0PVwiMS41cmVtXCIgcmFkaXVzPVwiOTk5cHhcIlxyXG4gICAgICBbYW5pbWF0ZV09XCJhbmltYXRlXCIgLz5cclxuICAgIH1cclxuICAgIDxhcHAtc2tlbGV0b24tYmxvY2sgY2xhc3M9XCJza2VsZXRvbi1saXN0X19saW5lXCIgd2lkdGg9XCIxMDAlXCIgW2hlaWdodF09XCJsaW5lSGVpZ2h0XCIgcmFkaXVzPVwiNnB4XCJcclxuICAgICAgW2FuaW1hdGVdPVwiYW5pbWF0ZVwiIC8+XHJcbiAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
@@ -1,37 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, booleanAttribute, numberAttribute, } from '@angular/core';
2
- import { SkeletonBlockComponent } from '../skeleton-block/skeleton-block.component';
3
- import * as i0 from "@angular/core";
4
- /** Placeholder tabular (cabeçalho + linhas + faixa de paginação). */
5
- export class SkeletonTableComponent {
6
- constructor() {
7
- this.columnCount = 4;
8
- this.rowCount = 8;
9
- this.showPager = true;
10
- this.animate = true;
11
- }
12
- colIndexes() {
13
- return Array.from({ length: Math.max(1, this.columnCount) }, (_, i) => i);
14
- }
15
- rowIndexes() {
16
- return Array.from({ length: Math.max(1, this.rowCount) }, (_, i) => i);
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SkeletonTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SkeletonTableComponent, isStandalone: true, selector: "app-skeleton-table", inputs: { columnCount: ["columnCount", "columnCount", numberAttribute], rowCount: ["rowCount", "rowCount", numberAttribute], showPager: ["showPager", "showPager", booleanAttribute], animate: ["animate", "animate", booleanAttribute] }, ngImport: i0, template: "<div class=\"skeleton-table\" aria-hidden=\"true\">\r\n <div class=\"skeleton-table__header\">\r\n @for (c of colIndexes(); track c) {\r\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.65rem\" radius=\"6px\" [animate]=\"animate\" />\r\n }\r\n </div>\r\n <div class=\"skeleton-table__body\">\r\n @for (r of rowIndexes(); track r) {\r\n <div class=\"skeleton-table__row\">\r\n @for (c of colIndexes(); track c) {\r\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.55rem\" radius=\"5px\" [animate]=\"animate\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (showPager) {\r\n <div class=\"skeleton-table__pager\">\r\n <app-skeleton-block width=\"40%\" height=\"0.55rem\" radius=\"6px\" [animate]=\"animate\" />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0;height:100%;min-height:0;box-sizing:border-box}.skeleton-table{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box;border-radius:10px;overflow:hidden;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, #fff)}.skeleton-table__header{display:flex;gap:.65rem;align-items:center;padding:.65rem .75rem;background:var(--app-color-tab-inactive-bg, #f3f6f9);border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1))}.skeleton-table__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.skeleton-table__row{display:flex;gap:.65rem;align-items:center;padding:.55rem .75rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .06));background:var(--app-color-surface, #fff)}.skeleton-table__row:nth-child(2n){background:var(--app-color-background, #fafbfc)}.skeleton-table__cell{flex:1 1 0;min-width:0}.skeleton-table__pager{display:flex;align-items:center;justify-content:flex-end;padding:.5rem .75rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));background:var(--app-color-background, #fafbfc)}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SkeletonTableComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'app-skeleton-table', standalone: true, imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"skeleton-table\" aria-hidden=\"true\">\r\n <div class=\"skeleton-table__header\">\r\n @for (c of colIndexes(); track c) {\r\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.65rem\" radius=\"6px\" [animate]=\"animate\" />\r\n }\r\n </div>\r\n <div class=\"skeleton-table__body\">\r\n @for (r of rowIndexes(); track r) {\r\n <div class=\"skeleton-table__row\">\r\n @for (c of colIndexes(); track c) {\r\n <app-skeleton-block class=\"skeleton-table__cell\" width=\"100%\" height=\"0.55rem\" radius=\"5px\" [animate]=\"animate\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (showPager) {\r\n <div class=\"skeleton-table__pager\">\r\n <app-skeleton-block width=\"40%\" height=\"0.55rem\" radius=\"6px\" [animate]=\"animate\" />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0;height:100%;min-height:0;box-sizing:border-box}.skeleton-table{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box;border-radius:10px;overflow:hidden;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));background:var(--app-color-surface, #fff)}.skeleton-table__header{display:flex;gap:.65rem;align-items:center;padding:.65rem .75rem;background:var(--app-color-tab-inactive-bg, #f3f6f9);border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .1))}.skeleton-table__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.skeleton-table__row{display:flex;gap:.65rem;align-items:center;padding:.55rem .75rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .06));background:var(--app-color-surface, #fff)}.skeleton-table__row:nth-child(2n){background:var(--app-color-background, #fafbfc)}.skeleton-table__cell{flex:1 1 0;min-width:0}.skeleton-table__pager{display:flex;align-items:center;justify-content:flex-end;padding:.5rem .75rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .08));background:var(--app-color-background, #fafbfc)}\n"] }]
24
- }], propDecorators: { columnCount: [{
25
- type: Input,
26
- args: [{ transform: numberAttribute }]
27
- }], rowCount: [{
28
- type: Input,
29
- args: [{ transform: numberAttribute }]
30
- }], showPager: [{
31
- type: Input,
32
- args: [{ transform: booleanAttribute }]
33
- }], animate: [{
34
- type: Input,
35
- args: [{ transform: booleanAttribute }]
36
- }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sb2FkaW5nL3NrZWxldG9uLWxvYWRpbmcvc2tlbGV0b24tdGFibGUvc2tlbGV0b24tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sb2FkaW5nL3NrZWxldG9uLWxvYWRpbmcvc2tlbGV0b24tdGFibGUvc2tlbGV0b24tdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLGdCQUFnQixFQUNoQixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQUVwRixxRUFBcUU7QUFTckUsTUFBTSxPQUFPLHNCQUFzQjtJQVJuQztRQVN5QyxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1osY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixZQUFPLEdBQUcsSUFBSSxDQUFDO0tBU3hEO0lBUEMsVUFBVTtRQUNSLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQzsrR0FiVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiw0R0FDYixlQUFlLHNDQUNmLGVBQWUseUNBQ2YsZ0JBQWdCLG1DQUVoQixnQkFBZ0IsNkJDdkJ0Qyw2MEJBcUJBLG92Q0RSWSxzQkFBc0I7OzRGQUtyQixzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLHNCQUFzQixDQUFDLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdSLFdBQVc7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUNFLFFBQVE7c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUNHLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRUUsT0FBTztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXHJcbiAgbnVtYmVyQXR0cmlidXRlLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTa2VsZXRvbkJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vc2tlbGV0b24tYmxvY2svc2tlbGV0b24tYmxvY2suY29tcG9uZW50JztcclxuXHJcbi8qKiBQbGFjZWhvbGRlciB0YWJ1bGFyIChjYWJlw6dhbGhvICsgbGluaGFzICsgZmFpeGEgZGUgcGFnaW5hw6fDo28pLiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1za2VsZXRvbi10YWJsZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbU2tlbGV0b25CbG9ja0NvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NrZWxldG9uLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2tlbGV0b24tdGFibGUuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2tlbGV0b25UYWJsZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgY29sdW1uQ291bnQgPSA0O1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHJvd0NvdW50ID0gODtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd1BhZ2VyID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFuaW1hdGUgPSB0cnVlO1xyXG5cclxuICBjb2xJbmRleGVzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBNYXRoLm1heCgxLCB0aGlzLmNvbHVtbkNvdW50KSB9LCAoXywgaSkgPT4gaSk7XHJcbiAgfVxyXG5cclxuICByb3dJbmRleGVzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBNYXRoLm1heCgxLCB0aGlzLnJvd0NvdW50KSB9LCAoXywgaSkgPT4gaSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJza2VsZXRvbi10YWJsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJza2VsZXRvbi10YWJsZV9faGVhZGVyXCI+XHJcbiAgICBAZm9yIChjIG9mIGNvbEluZGV4ZXMoKTsgdHJhY2sgYykge1xyXG4gICAgPGFwcC1za2VsZXRvbi1ibG9jayBjbGFzcz1cInNrZWxldG9uLXRhYmxlX19jZWxsXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMC42NXJlbVwiIHJhZGl1cz1cIjZweFwiIFthbmltYXRlXT1cImFuaW1hdGVcIiAvPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJza2VsZXRvbi10YWJsZV9fYm9keVwiPlxyXG4gICAgQGZvciAociBvZiByb3dJbmRleGVzKCk7IHRyYWNrIHIpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi10YWJsZV9fcm93XCI+XHJcbiAgICAgIEBmb3IgKGMgb2YgY29sSW5kZXhlcygpOyB0cmFjayBjKSB7XHJcbiAgICAgIDxhcHAtc2tlbGV0b24tYmxvY2sgY2xhc3M9XCJza2VsZXRvbi10YWJsZV9fY2VsbFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjAuNTVyZW1cIiByYWRpdXM9XCI1cHhcIiBbYW5pbWF0ZV09XCJhbmltYXRlXCIgLz5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgQGlmIChzaG93UGFnZXIpIHtcclxuICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tdGFibGVfX3BhZ2VyXCI+XHJcbiAgICA8YXBwLXNrZWxldG9uLWJsb2NrIHdpZHRoPVwiNDAlXCIgaGVpZ2h0PVwiMC41NXJlbVwiIHJhZGl1cz1cIjZweFwiIFthbmltYXRlXT1cImFuaW1hdGVcIiAvPlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, booleanAttribute, numberAttribute, } from '@angular/core';
2
- import { SkeletonBlockComponent } from '../skeleton-block/skeleton-block.component';
3
- import * as i0 from "@angular/core";
4
- /** Várias linhas de texto placeholder. */
5
- export class SkeletonTextComponent {
6
- constructor() {
7
- this.lines = 3;
8
- /** Largura da última linha em % (1–100). */
9
- this.lastLineWidthPct = 62;
10
- this.lineHeight = '0.7rem';
11
- this.gap = '0.45rem';
12
- this.animate = true;
13
- }
14
- lineIndexes() {
15
- return Array.from({ length: Math.max(1, this.lines) }, (_, i) => i);
16
- }
17
- widthForLine(i) {
18
- const n = Math.max(1, this.lines);
19
- if (i === n - 1) {
20
- const p = Math.min(100, Math.max(20, this.lastLineWidthPct));
21
- return `${p}%`;
22
- }
23
- return '100%';
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SkeletonTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SkeletonTextComponent, isStandalone: true, selector: "app-skeleton-text", inputs: { lines: ["lines", "lines", numberAttribute], lastLineWidthPct: ["lastLineWidthPct", "lastLineWidthPct", numberAttribute], lineHeight: "lineHeight", gap: "gap", animate: ["animate", "animate", booleanAttribute] }, ngImport: i0, template: "<div class=\"skeleton-text\" [style.gap]=\"gap\">\r\n @for (i of lineIndexes(); track i) {\r\n <app-skeleton-block [width]=\"widthForLine(i)\" [height]=\"lineHeight\" [animate]=\"animate\" />\r\n }\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0}.skeleton-text{display:flex;flex-direction:column;width:100%;min-width:0}\n"], dependencies: [{ kind: "component", type: SkeletonBlockComponent, selector: "app-skeleton-block", inputs: ["width", "height", "radius", "animate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SkeletonTextComponent, decorators: [{
29
- type: Component,
30
- args: [{ selector: 'app-skeleton-text', standalone: true, imports: [SkeletonBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"skeleton-text\" [style.gap]=\"gap\">\r\n @for (i of lineIndexes(); track i) {\r\n <app-skeleton-block [width]=\"widthForLine(i)\" [height]=\"lineHeight\" [animate]=\"animate\" />\r\n }\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-width:0}.skeleton-text{display:flex;flex-direction:column;width:100%;min-width:0}\n"] }]
31
- }], propDecorators: { lines: [{
32
- type: Input,
33
- args: [{ transform: numberAttribute }]
34
- }], lastLineWidthPct: [{
35
- type: Input,
36
- args: [{ transform: numberAttribute }]
37
- }], lineHeight: [{
38
- type: Input
39
- }], gap: [{
40
- type: Input
41
- }], animate: [{
42
- type: Input,
43
- args: [{ transform: booleanAttribute }]
44
- }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2xvYWRpbmcvc2tlbGV0b24tbG9hZGluZy9za2VsZXRvbi10ZXh0L3NrZWxldG9uLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sb2FkaW5nL3NrZWxldG9uLWxvYWRpbmcvc2tlbGV0b24tdGV4dC9za2VsZXRvbi10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFcEYsMENBQTBDO0FBUzFDLE1BQU0sT0FBTyxxQkFBcUI7SUFSbEM7UUFTeUMsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNqRCw0Q0FBNEM7UUFDTCxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDcEQsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUN0QixRQUFHLEdBQUcsU0FBUyxDQUFDO1FBRWUsWUFBTyxHQUFHLElBQUksQ0FBQztLQWN4RDtJQVpDLFdBQVc7UUFDVCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsWUFBWSxDQUFDLENBQVM7UUFDcEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQzdELE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzsrR0FwQlUscUJBQXFCO21HQUFyQixxQkFBcUIseUZBQ1osZUFBZSw4REFFZixlQUFlLHlFQUlmLGdCQUFnQiw2QkN6QnRDLHdOQUtBLGdMRFFZLHNCQUFzQjs7NEZBS3JCLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsc0JBQXNCLENBQUMsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU07OEJBR1IsS0FBSztzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBRUUsZ0JBQWdCO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFDNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRWtDLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBib29sZWFuQXR0cmlidXRlLFxyXG4gIG51bWJlckF0dHJpYnV0ZSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2tlbGV0b25CbG9ja0NvbXBvbmVudCB9IGZyb20gJy4uL3NrZWxldG9uLWJsb2NrL3NrZWxldG9uLWJsb2NrLmNvbXBvbmVudCc7XHJcblxyXG4vKiogVsOhcmlhcyBsaW5oYXMgZGUgdGV4dG8gcGxhY2Vob2xkZXIuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNrZWxldG9uLXRleHQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1NrZWxldG9uQmxvY2tDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9za2VsZXRvbi10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2tlbGV0b24tdGV4dC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTa2VsZXRvblRleHRDb21wb25lbnQge1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGxpbmVzID0gMztcclxuICAvKiogTGFyZ3VyYSBkYSDDumx0aW1hIGxpbmhhIGVtICUgKDHigJMxMDApLiAqL1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGxhc3RMaW5lV2lkdGhQY3QgPSA2MjtcclxuICBASW5wdXQoKSBsaW5lSGVpZ2h0ID0gJzAuN3JlbSc7XHJcbiAgQElucHV0KCkgZ2FwID0gJzAuNDVyZW0nO1xyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYW5pbWF0ZSA9IHRydWU7XHJcblxyXG4gIGxpbmVJbmRleGVzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBNYXRoLm1heCgxLCB0aGlzLmxpbmVzKSB9LCAoXywgaSkgPT4gaSk7XHJcbiAgfVxyXG5cclxuICB3aWR0aEZvckxpbmUoaTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG4gPSBNYXRoLm1heCgxLCB0aGlzLmxpbmVzKTtcclxuICAgIGlmIChpID09PSBuIC0gMSkge1xyXG4gICAgICBjb25zdCBwID0gTWF0aC5taW4oMTAwLCBNYXRoLm1heCgyMCwgdGhpcy5sYXN0TGluZVdpZHRoUGN0KSk7XHJcbiAgICAgIHJldHVybiBgJHtwfSVgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcxMDAlJztcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNrZWxldG9uLXRleHRcIiBbc3R5bGUuZ2FwXT1cImdhcFwiPlxyXG4gIEBmb3IgKGkgb2YgbGluZUluZGV4ZXMoKTsgdHJhY2sgaSkge1xyXG4gIDxhcHAtc2tlbGV0b24tYmxvY2sgW3dpZHRoXT1cIndpZHRoRm9yTGluZShpKVwiIFtoZWlnaHRdPVwibGluZUhlaWdodFwiIFthbmltYXRlXT1cImFuaW1hdGVcIiAvPlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,8 +0,0 @@
1
- /** Lado de ancoragem do drawer. */
2
- export var DrawerSide;
3
- (function (DrawerSide) {
4
- DrawerSide["Left"] = "left";
5
- DrawerSide["Right"] = "right";
6
- DrawerSide["Bottom"] = "bottom";
7
- })(DrawerSide || (DrawerSide = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLXNpZGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL19tb2RlbHMvZHJhd2VyLXNpZGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLE1BQU0sQ0FBTixJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLDZCQUFlLENBQUE7SUFDZiwrQkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTGFkbyBkZSBhbmNvcmFnZW0gZG8gZHJhd2VyLiAqL1xyXG5leHBvcnQgZW51bSBEcmF3ZXJTaWRlIHtcclxuICBMZWZ0ID0gJ2xlZnQnLFxyXG4gIFJpZ2h0ID0gJ3JpZ2h0JyxcclxuICBCb3R0b20gPSAnYm90dG9tJyxcclxufVxyXG4iXX0=
@@ -1,8 +0,0 @@
1
- /** Larguras padronizadas do painel lateral (drawer). */
2
- export var DrawerSize;
3
- (function (DrawerSize) {
4
- DrawerSize["Sm"] = "sm";
5
- DrawerSize["Md"] = "md";
6
- DrawerSize["Lg"] = "lg";
7
- })(DrawerSize || (DrawerSize = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLXNpemUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL19tb2RlbHMvZHJhd2VyLXNpemUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBTixJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsdUJBQVMsQ0FBQTtJQUNULHVCQUFTLENBQUE7SUFDVCx1QkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLFVBQVUsS0FBVixVQUFVLFFBSXJCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIExhcmd1cmFzIHBhZHJvbml6YWRhcyBkbyBwYWluZWwgbGF0ZXJhbCAoZHJhd2VyKS4gKi9cclxuZXhwb3J0IGVudW0gRHJhd2VyU2l6ZSB7XHJcbiAgU20gPSAnc20nLFxyXG4gIE1kID0gJ21kJyxcclxuICBMZyA9ICdsZycsXHJcbn1cclxuIl19
@@ -1,12 +0,0 @@
1
- /**
2
- * Posicionamento vertical preferido do dropdown em relação ao trigger.
3
- * O CDK faz flip automático se não couber no viewport quando configurado com posições múltiplas.
4
- */
5
- export var MenuDropdownPlacement;
6
- (function (MenuDropdownPlacement) {
7
- /** Abre por baixo do trigger (preferencial). */
8
- MenuDropdownPlacement["Below"] = "below";
9
- /** Abre por cima do trigger. */
10
- MenuDropdownPlacement["Above"] = "above";
11
- })(MenuDropdownPlacement || (MenuDropdownPlacement = {}));
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bi1wbGFjZW1lbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL19tb2RlbHMvbWVudS1kcm9wZG93bi1wbGFjZW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUMvQixnREFBZ0Q7SUFDaEQsd0NBQWUsQ0FBQTtJQUNmLGdDQUFnQztJQUNoQyx3Q0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBS2hDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFBvc2ljaW9uYW1lbnRvIHZlcnRpY2FsIHByZWZlcmlkbyBkbyBkcm9wZG93biBlbSByZWxhw6fDo28gYW8gdHJpZ2dlci5cclxuICogTyBDREsgZmF6IGZsaXAgYXV0b23DoXRpY28gc2UgbsOjbyBjb3ViZXIgbm8gdmlld3BvcnQgcXVhbmRvIGNvbmZpZ3VyYWRvIGNvbSBwb3Npw6fDtWVzIG3Dumx0aXBsYXMuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBNZW51RHJvcGRvd25QbGFjZW1lbnQge1xyXG4gIC8qKiBBYnJlIHBvciBiYWl4byBkbyB0cmlnZ2VyIChwcmVmZXJlbmNpYWwpLiAqL1xyXG4gIEJlbG93ID0gJ2JlbG93JyxcclxuICAvKiogQWJyZSBwb3IgY2ltYSBkbyB0cmlnZ2VyLiAqL1xyXG4gIEFib3ZlID0gJ2Fib3ZlJyxcclxufVxyXG4iXX0=
@@ -1,6 +0,0 @@
1
- /**
2
- * Itens de menu partilhados por dropdown, context menu, action-menu e campos (`mostrarMenuContexto`).
3
- * Discriminação por `kind` para renderização e navegação por teclado.
4
- */
5
- export {};
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tZW51cy9fbW9kZWxzL21lbnUtaXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEl0ZW5zIGRlIG1lbnUgcGFydGlsaGFkb3MgcG9yIGRyb3Bkb3duLCBjb250ZXh0IG1lbnUsIGFjdGlvbi1tZW51IGUgY2FtcG9zIChgbW9zdHJhck1lbnVDb250ZXh0b2ApLlxuICogRGlzY3JpbWluYcOnw6NvIHBvciBga2luZGAgcGFyYSByZW5kZXJpemHDp8OjbyBlIG5hdmVnYcOnw6NvIHBvciB0ZWNsYWRvLlxuICovXG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtS2luZCA9ICdpdGVtJyB8ICdkaXZpZGVyJyB8ICdncm91cCcgfCAnc3VibWVudSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW1BY3Rpb248VCA9IHN0cmluZz4ge1xuICBraW5kOiAnaXRlbSc7XG4gIC8qKiBJZGVudGlmaWNhZG9yIGVzdMOhdmVsIHBhcmEgbyBldmVudG8gZGUgc2VsZWPDp8Ojby4gKi9cbiAgaWQ6IFQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKiogQ2xhc3NlcyBkZSDDrWNvbmUgKGV4LjogRm9udCBBd2Vzb21lKSwgb3BjaW9uYWwuICovXG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqIEJsb3F1ZWlhIGludGVyYcOnw6NvIGUgbW9zdHJhIGluZGljYWRvciBkZSBjYXJyZWdhbWVudG8gKG8gcGFpIGF0dWFsaXphIG8gbW9kZWxvKS4gKi9cbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIC8qKiBBY8Onw6NvIGRlc3RydXRpdmEgKGV4LjogZWxpbWluYXIpIOKAlCByZWFsY2Ugc2Vtw6JudGljbyBzZW0gcXVlYnJhciBvIHRlbWEuICovXG4gIGRhbmdlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW1EaXZpZGVyIHtcbiAga2luZDogJ2RpdmlkZXInO1xufVxuXG4vKipcbiAqIFN1Ym1lbnUgYW5pbmhhZG8gKHF1YWxxdWVyIHByb2Z1bmRpZGFkZSBlbSBgaXRlbXNgKS5cbiAqIEEgbmF2ZWdhw6fDo28gZSBvIHBvc2ljaW9uYW1lbnRvIHPDo28gdHJhdGFkb3MgZW0gYG1lbnUtbGlzdGAgKGxpc3RhIHJlY3Vyc2l2YSArIG92ZXJsYXkgQ0RLKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZW51SXRlbVN1Ym1lbnU8VCA9IHN0cmluZz4ge1xuICBraW5kOiAnc3VibWVudSc7XG4gIC8qKiBJZGVudGlmaWNhZG9yIGVzdMOhdmVsIChhY2Vzc2liaWxpZGFkZSwgcmFzdHJlaW8pLiAqL1xuICBpZDogVDtcbiAgbGFiZWw6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaXRlbXM6IHJlYWRvbmx5IE1lbnVOb2RlSXRlbTxUPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtR3JvdXA8VCA9IHN0cmluZz4ge1xuICBraW5kOiAnZ3JvdXAnO1xuICAvKiogUsOzdHVsbyBkYSBzZcOnw6NvIChvcGNpb25hbCkuICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogSXRlbnMgZSBzdWJtZW51cyBhbmluaGFkb3MgZGVudHJvIGRvIGdydXBvLiAqL1xuICBpdGVtczogcmVhZG9ubHkgTWVudU5vZGVJdGVtPFQ+W107XG59XG5cbi8qKiBGb2xoYTogYcOnw6NvIG91IGRpdmlzb3IuICovXG5leHBvcnQgdHlwZSBNZW51TGVhZkl0ZW08VCA9IHN0cmluZz4gPSBNZW51SXRlbUFjdGlvbjxUPiB8IE1lbnVJdGVtRGl2aWRlcjtcblxuLyoqIE7DsyBkZSBwcmltZWlybyBuw612ZWwgb3UgZGVudHJvIGRlIGdydXBvcyAoaW5jbHVpIHN1Ym1lbnVzKS4gKi9cbmV4cG9ydCB0eXBlIE1lbnVOb2RlSXRlbTxUID0gc3RyaW5nPiA9XG4gIHwgTWVudUxlYWZJdGVtPFQ+XG4gIHwgTWVudUl0ZW1Hcm91cDxUPlxuICB8IE1lbnVJdGVtU3VibWVudTxUPjtcbiJdfQ==
@@ -1,41 +0,0 @@
1
- import { MenuDropdownPlacement } from '../_models/menu-dropdown-placement.model';
2
- /** Espaço entre trigger e painel (listas alinhadas ao `start`); mais apertado que `anchoredOverlayPositions` (8px). */
3
- const GAP = 4;
4
- /** Posições com flip vertical (preferência em baixo ou em cima). */
5
- export function menuConnectedPositions(placement) {
6
- if (placement === MenuDropdownPlacement.Above) {
7
- return [
8
- {
9
- originX: 'start',
10
- originY: 'top',
11
- overlayX: 'start',
12
- overlayY: 'bottom',
13
- offsetY: -GAP,
14
- },
15
- {
16
- originX: 'start',
17
- originY: 'bottom',
18
- overlayX: 'start',
19
- overlayY: 'top',
20
- offsetY: GAP,
21
- },
22
- ];
23
- }
24
- return [
25
- {
26
- originX: 'start',
27
- originY: 'bottom',
28
- overlayX: 'start',
29
- overlayY: 'top',
30
- offsetY: GAP,
31
- },
32
- {
33
- originX: 'start',
34
- originY: 'top',
35
- overlayX: 'start',
36
- overlayY: 'bottom',
37
- offsetY: -GAP,
38
- },
39
- ];
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1jb25uZWN0ZWQtcG9zaXRpb25zLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL191dGlscy9tZW51LWNvbm5lY3RlZC1wb3NpdGlvbnMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRix1SEFBdUg7QUFDdkgsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBRWQsb0VBQW9FO0FBQ3BFLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsU0FBZ0M7SUFFaEMsSUFBSSxTQUFTLEtBQUsscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUMsT0FBTztZQUNMO2dCQUNFLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLE9BQU8sRUFBRSxDQUFDLEdBQUc7YUFDZDtZQUNEO2dCQUNFLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLE9BQU8sRUFBRSxHQUFHO2FBQ2I7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFLEdBQUc7U0FDYjtRQUNEO1lBQ0UsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsUUFBUTtZQUNsQixPQUFPLEVBQUUsQ0FBQyxHQUFHO1NBQ2Q7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IE1lbnVEcm9wZG93blBsYWNlbWVudCB9IGZyb20gJy4uL19tb2RlbHMvbWVudS1kcm9wZG93bi1wbGFjZW1lbnQubW9kZWwnO1xyXG5cclxuLyoqIEVzcGHDp28gZW50cmUgdHJpZ2dlciBlIHBhaW5lbCAobGlzdGFzIGFsaW5oYWRhcyBhbyBgc3RhcnRgKTsgbWFpcyBhcGVydGFkbyBxdWUgYGFuY2hvcmVkT3ZlcmxheVBvc2l0aW9uc2AgKDhweCkuICovXHJcbmNvbnN0IEdBUCA9IDQ7XHJcblxyXG4vKiogUG9zacOnw7VlcyBjb20gZmxpcCB2ZXJ0aWNhbCAocHJlZmVyw6puY2lhIGVtIGJhaXhvIG91IGVtIGNpbWEpLiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVudUNvbm5lY3RlZFBvc2l0aW9ucyhcclxuICBwbGFjZW1lbnQ6IE1lbnVEcm9wZG93blBsYWNlbWVudCxcclxuKTogQ29ubmVjdGVkUG9zaXRpb25bXSB7XHJcbiAgaWYgKHBsYWNlbWVudCA9PT0gTWVudURyb3Bkb3duUGxhY2VtZW50LkFib3ZlKSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcclxuICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXHJcbiAgICAgICAgb2Zmc2V0WTogLUdBUCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXHJcbiAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxyXG4gICAgICAgIG9mZnNldFk6IEdBUCxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG4gIHJldHVybiBbXHJcbiAgICB7XHJcbiAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcclxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxyXG4gICAgICBvZmZzZXRZOiBHQVAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcclxuICAgICAgb2Zmc2V0WTogLUdBUCxcclxuICAgIH0sXHJcbiAgXTtcclxufVxyXG4iXX0=
@@ -1,39 +0,0 @@
1
- export function buildMenuRows(nodes) {
2
- const rows = [];
3
- let focusCounter = 0;
4
- const addLeaf = (leaf) => {
5
- if (leaf.kind === 'divider') {
6
- rows.push({ kind: 'divider' });
7
- return;
8
- }
9
- const focusIndex = leaf.disabled ? null : focusCounter++;
10
- rows.push({ kind: 'action', item: leaf, focusIndex });
11
- };
12
- const addNode = (n) => {
13
- if (n.kind === 'divider') {
14
- rows.push({ kind: 'divider' });
15
- return;
16
- }
17
- if (n.kind === 'submenu') {
18
- const focusIndex = n.disabled ? null : focusCounter++;
19
- rows.push({ kind: 'submenu', item: n, focusIndex });
20
- return;
21
- }
22
- if (n.kind === 'group') {
23
- rows.push({ kind: 'group', label: n.label });
24
- for (const child of n.items) {
25
- addNode(child);
26
- }
27
- return;
28
- }
29
- addLeaf(n);
30
- };
31
- for (const n of nodes) {
32
- addNode(n);
33
- }
34
- return rows;
35
- }
36
- export function focusableActionCount(rows) {
37
- return rows.filter((r) => (r.kind === 'action' || r.kind === 'submenu') && r.focusIndex !== null).length;
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1yb3dzLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL191dGlscy9tZW51LXJvd3MudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQ0EsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsS0FBaUM7SUFFakMsTUFBTSxJQUFJLEdBQWlCLEVBQUUsQ0FBQztJQUM5QixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7SUFFckIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFxQixFQUFRLEVBQUU7UUFDOUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQztJQUVGLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBa0IsRUFBUSxFQUFFO1FBQzNDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDcEQsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLEtBQUssTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakIsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0lBRUYsS0FBSyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDYixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFJLElBQTJCO0lBQ2pFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsQ0FBQyxDQUFDLEVBQTZDLEVBQUUsQ0FDL0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUN6RSxDQUFDLE1BQU0sQ0FBQztBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIE1lbnVJdGVtQWN0aW9uLFxuICBNZW51SXRlbVN1Ym1lbnUsXG4gIE1lbnVMZWFmSXRlbSxcbiAgTWVudU5vZGVJdGVtLFxufSBmcm9tICcuLi9fbW9kZWxzL21lbnUtaXRlbS5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVJvd0FjdGlvbjxUID0gc3RyaW5nPiB7XG4gIGtpbmQ6ICdhY3Rpb24nO1xuICBpdGVtOiBNZW51SXRlbUFjdGlvbjxUPjtcbiAgLyoqIMONbmRpY2UgbmEgbmF2ZWdhw6fDo28gcG9yIHRlY2xhZG87IGBudWxsYCBzZSBkZXNhYmlsaXRhZG8uICovXG4gIGZvY3VzSW5kZXg6IG51bWJlciB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVJvd0RpdmlkZXIge1xuICBraW5kOiAnZGl2aWRlcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVJvd0dyb3VwIHtcbiAga2luZDogJ2dyb3VwJztcbiAgbGFiZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVJvd1N1Ym1lbnU8VCA9IHN0cmluZz4ge1xuICBraW5kOiAnc3VibWVudSc7XG4gIGl0ZW06IE1lbnVJdGVtU3VibWVudTxUPjtcbiAgZm9jdXNJbmRleDogbnVtYmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgTWVudVJvdzxUID0gc3RyaW5nPiA9XG4gIHwgTWVudVJvd0FjdGlvbjxUPlxuICB8IE1lbnVSb3dEaXZpZGVyXG4gIHwgTWVudVJvd0dyb3VwXG4gIHwgTWVudVJvd1N1Ym1lbnU8VD47XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZE1lbnVSb3dzPFQgPSBzdHJpbmc+KFxuICBub2RlczogcmVhZG9ubHkgTWVudU5vZGVJdGVtPFQ+W10sXG4pOiBNZW51Um93PFQ+W10ge1xuICBjb25zdCByb3dzOiBNZW51Um93PFQ+W10gPSBbXTtcbiAgbGV0IGZvY3VzQ291bnRlciA9IDA7XG5cbiAgY29uc3QgYWRkTGVhZiA9IChsZWFmOiBNZW51TGVhZkl0ZW08VD4pOiB2b2lkID0+IHtcbiAgICBpZiAobGVhZi5raW5kID09PSAnZGl2aWRlcicpIHtcbiAgICAgIHJvd3MucHVzaCh7IGtpbmQ6ICdkaXZpZGVyJyB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZm9jdXNJbmRleCA9IGxlYWYuZGlzYWJsZWQgPyBudWxsIDogZm9jdXNDb3VudGVyKys7XG4gICAgcm93cy5wdXNoKHsga2luZDogJ2FjdGlvbicsIGl0ZW06IGxlYWYsIGZvY3VzSW5kZXggfSk7XG4gIH07XG5cbiAgY29uc3QgYWRkTm9kZSA9IChuOiBNZW51Tm9kZUl0ZW08VD4pOiB2b2lkID0+IHtcbiAgICBpZiAobi5raW5kID09PSAnZGl2aWRlcicpIHtcbiAgICAgIHJvd3MucHVzaCh7IGtpbmQ6ICdkaXZpZGVyJyB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG4ua2luZCA9PT0gJ3N1Ym1lbnUnKSB7XG4gICAgICBjb25zdCBmb2N1c0luZGV4ID0gbi5kaXNhYmxlZCA/IG51bGwgOiBmb2N1c0NvdW50ZXIrKztcbiAgICAgIHJvd3MucHVzaCh7IGtpbmQ6ICdzdWJtZW51JywgaXRlbTogbiwgZm9jdXNJbmRleCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG4ua2luZCA9PT0gJ2dyb3VwJykge1xuICAgICAgcm93cy5wdXNoKHsga2luZDogJ2dyb3VwJywgbGFiZWw6IG4ubGFiZWwgfSk7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG4uaXRlbXMpIHtcbiAgICAgICAgYWRkTm9kZShjaGlsZCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGFkZExlYWYobik7XG4gIH07XG5cbiAgZm9yIChjb25zdCBuIG9mIG5vZGVzKSB7XG4gICAgYWRkTm9kZShuKTtcbiAgfVxuICByZXR1cm4gcm93cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzYWJsZUFjdGlvbkNvdW50PFQ+KHJvd3M6IHJlYWRvbmx5IE1lbnVSb3c8VD5bXSk6IG51bWJlciB7XG4gIHJldHVybiByb3dzLmZpbHRlcihcbiAgICAocik6IHIgaXMgTWVudVJvd0FjdGlvbjxUPiB8IE1lbnVSb3dTdWJtZW51PFQ+ID0+XG4gICAgICAoci5raW5kID09PSAnYWN0aW9uJyB8fCByLmtpbmQgPT09ICdzdWJtZW51JykgJiYgci5mb2N1c0luZGV4ICE9PSBudWxsLFxuICApLmxlbmd0aDtcbn1cbiJdfQ==
@@ -1,23 +0,0 @@
1
- const GAP = 4;
2
- /**
3
- * Submenu ao lado do item (preferência à direita); o CDK `push` inverte se não couber.
4
- */
5
- export function submenuConnectedPositions() {
6
- return [
7
- {
8
- originX: 'end',
9
- originY: 'top',
10
- overlayX: 'start',
11
- overlayY: 'top',
12
- offsetX: GAP,
13
- },
14
- {
15
- originX: 'start',
16
- originY: 'top',
17
- overlayX: 'end',
18
- overlayY: 'top',
19
- offsetX: -GAP,
20
- },
21
- ];
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWVudS1jb25uZWN0ZWQtcG9zaXRpb25zLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL191dGlscy9zdWJtZW51LWNvbm5lY3RlZC1wb3NpdGlvbnMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFFZDs7R0FFRztBQUNILE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFLEdBQUc7U0FDYjtRQUNEO1lBQ0UsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFLENBQUMsR0FBRztTQUNkO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5cclxuY29uc3QgR0FQID0gNDtcclxuXHJcbi8qKlxyXG4gKiBTdWJtZW51IGFvIGxhZG8gZG8gaXRlbSAocHJlZmVyw6puY2lhIMOgIGRpcmVpdGEpOyBvIENESyBgcHVzaGAgaW52ZXJ0ZSBzZSBuw6NvIGNvdWJlci5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdWJtZW51Q29ubmVjdGVkUG9zaXRpb25zKCk6IENvbm5lY3RlZFBvc2l0aW9uW10ge1xyXG4gIHJldHVybiBbXHJcbiAgICB7XHJcbiAgICAgIG9yaWdpblg6ICdlbmQnLFxyXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgIG92ZXJsYXlZOiAndG9wJyxcclxuICAgICAgb2Zmc2V0WDogR0FQLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgIG92ZXJsYXlYOiAnZW5kJyxcclxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxyXG4gICAgICBvZmZzZXRYOiAtR0FQLFxyXG4gICAgfSxcclxuICBdO1xyXG59XHJcbiJdfQ==
@@ -1,48 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, booleanAttribute, } from '@angular/core';
2
- import { DropdownMenuComponent } from '../dropdown-menu/dropdown-menu.component';
3
- import { MenuDropdownPlacement } from '../_models/menu-dropdown-placement.model';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Menu de ações padrão: mesmo comportamento do `dropdown-menu` com trigger «…» (overflow).
7
- * Mantém a API de itens existente (`MenuNodeItem`).
8
- */
9
- export class ActionMenuComponent {
10
- constructor() {
11
- this.items = [];
12
- this.placement = MenuDropdownPlacement.Below;
13
- this.minWidthPx = 200;
14
- this.menuId = '';
15
- /** Texto acessível do botão de gatilho. */
16
- this.triggerLabel = 'Mais ações';
17
- /** O painel não segue a largura do botão (ícone estreito). */
18
- this.matchTriggerWidth = false;
19
- this.itemSelect = new EventEmitter();
20
- this.openChange = new EventEmitter();
21
- this.MenuDropdownPlacement = MenuDropdownPlacement;
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: ActionMenuComponent, isStandalone: true, selector: "app-action-menu", inputs: { items: "items", placement: "placement", minWidthPx: "minWidthPx", menuId: "menuId", triggerLabel: "triggerLabel", matchTriggerWidth: ["matchTriggerWidth", "matchTriggerWidth", booleanAttribute] }, outputs: { itemSelect: "itemSelect", openChange: "openChange" }, ngImport: i0, template: "<app-dropdown-menu\r\n class=\"action-menu\"\r\n [items]=\"items\"\r\n [placement]=\"placement\"\r\n [minWidthPx]=\"minWidthPx\"\r\n [matchTriggerWidth]=\"matchTriggerWidth\"\r\n [menuId]=\"menuId\"\r\n (itemSelect)=\"itemSelect.emit($event)\"\r\n (openChange)=\"openChange.emit($event)\"\r\n>\r\n <button type=\"button\" class=\"action-menu__trigger\" [attr.aria-label]=\"triggerLabel\">\r\n <i class=\"fa-solid fa-ellipsis\" aria-hidden=\"true\"></i>\r\n </button>\r\n</app-dropdown-menu>\r\n", styles: [":host{display:inline-flex;max-width:100%;vertical-align:middle}.action-menu__trigger{display:inline-flex;align-items:center;justify-content:center;width:2rem;min-height:2rem;padding:0;margin:0;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .14));border-radius:8px;background:var(--app-color-surface, #fff);color:var(--app-color-text-secondary, #5a7fa3);cursor:pointer;font-size:1rem;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.action-menu__trigger:hover:not(:disabled){background:var(--app-color-hover-bg, rgba(43, 127, 217, .08));border-color:var(--app-color-border-strong, #b6cce5);color:var(--app-color-text-primary, #1a2f45)}.action-menu__trigger:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:1px}\n"], dependencies: [{ kind: "component", type: DropdownMenuComponent, selector: "app-dropdown-menu", inputs: ["items", "placement", "minWidthPx", "matchTriggerWidth", "menuId"], outputs: ["itemSelect", "openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionMenuComponent, decorators: [{
27
- type: Component,
28
- args: [{ selector: 'app-action-menu', standalone: true, imports: [DropdownMenuComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<app-dropdown-menu\r\n class=\"action-menu\"\r\n [items]=\"items\"\r\n [placement]=\"placement\"\r\n [minWidthPx]=\"minWidthPx\"\r\n [matchTriggerWidth]=\"matchTriggerWidth\"\r\n [menuId]=\"menuId\"\r\n (itemSelect)=\"itemSelect.emit($event)\"\r\n (openChange)=\"openChange.emit($event)\"\r\n>\r\n <button type=\"button\" class=\"action-menu__trigger\" [attr.aria-label]=\"triggerLabel\">\r\n <i class=\"fa-solid fa-ellipsis\" aria-hidden=\"true\"></i>\r\n </button>\r\n</app-dropdown-menu>\r\n", styles: [":host{display:inline-flex;max-width:100%;vertical-align:middle}.action-menu__trigger{display:inline-flex;align-items:center;justify-content:center;width:2rem;min-height:2rem;padding:0;margin:0;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .14));border-radius:8px;background:var(--app-color-surface, #fff);color:var(--app-color-text-secondary, #5a7fa3);cursor:pointer;font-size:1rem;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.action-menu__trigger:hover:not(:disabled){background:var(--app-color-hover-bg, rgba(43, 127, 217, .08));border-color:var(--app-color-border-strong, #b6cce5);color:var(--app-color-text-primary, #1a2f45)}.action-menu__trigger:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:1px}\n"] }]
29
- }], propDecorators: { items: [{
30
- type: Input,
31
- args: [{ required: true }]
32
- }], placement: [{
33
- type: Input
34
- }], minWidthPx: [{
35
- type: Input
36
- }], menuId: [{
37
- type: Input
38
- }], triggerLabel: [{
39
- type: Input
40
- }], matchTriggerWidth: [{
41
- type: Input,
42
- args: [{ transform: booleanAttribute }]
43
- }], itemSelect: [{
44
- type: Output
45
- }], openChange: [{
46
- type: Output
47
- }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tZW51cy9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFHakY7OztHQUdHO0FBU0gsTUFBTSxPQUFPLG1CQUFtQjtJQVJoQztRQVM2QixVQUFLLEdBQStCLEVBQUUsQ0FBQztRQUV6RCxjQUFTLEdBQTBCLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUUvRCxlQUFVLEdBQUcsR0FBRyxDQUFDO1FBRWpCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFckIsMkNBQTJDO1FBQ2xDLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBRXJDLDhEQUE4RDtRQUN0QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFL0MsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFDbkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFbkQsMEJBQXFCLEdBQUcscUJBQXFCLENBQUM7S0FDeEQ7K0dBbkJZLG1CQUFtQjttR0FBbkIsbUJBQW1CLDZPQWFWLGdCQUFnQiw4RkNyQ3RDLDZmQWNBLGszQkRLWSxxQkFBcUI7OzRGQUtwQixtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMscUJBQXFCLENBQUMsbUJBR2YsdUJBQXVCLENBQUMsTUFBTTs4QkFHcEIsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWhCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHa0MsaUJBQWlCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVuQixVQUFVO3NCQUE1QixNQUFNO2dCQUNZLFVBQVU7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51RHJvcGRvd25QbGFjZW1lbnQgfSBmcm9tICcuLi9fbW9kZWxzL21lbnUtZHJvcGRvd24tcGxhY2VtZW50Lm1vZGVsJztcbmltcG9ydCB0eXBlIHsgTWVudU5vZGVJdGVtIH0gZnJvbSAnLi4vX21vZGVscy9tZW51LWl0ZW0ubW9kZWwnO1xuXG4vKipcbiAqIE1lbnUgZGUgYcOnw7VlcyBwYWRyw6NvOiBtZXNtbyBjb21wb3J0YW1lbnRvIGRvIGBkcm9wZG93bi1tZW51YCBjb20gdHJpZ2dlciDCq+KApsK7IChvdmVyZmxvdykuXG4gKiBNYW50w6ltIGEgQVBJIGRlIGl0ZW5zIGV4aXN0ZW50ZSAoYE1lbnVOb2RlSXRlbWApLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWN0aW9uLW1lbnUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRHJvcGRvd25NZW51Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FjdGlvbi1tZW51LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbk1lbnVDb21wb25lbnQ8VCA9IHN0cmluZz4ge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBpdGVtczogcmVhZG9ubHkgTWVudU5vZGVJdGVtPFQ+W10gPSBbXTtcblxuICBASW5wdXQoKSBwbGFjZW1lbnQ6IE1lbnVEcm9wZG93blBsYWNlbWVudCA9IE1lbnVEcm9wZG93blBsYWNlbWVudC5CZWxvdztcblxuICBASW5wdXQoKSBtaW5XaWR0aFB4ID0gMjAwO1xuXG4gIEBJbnB1dCgpIG1lbnVJZCA9ICcnO1xuXG4gIC8qKiBUZXh0byBhY2Vzc8OtdmVsIGRvIGJvdMOjbyBkZSBnYXRpbGhvLiAqL1xuICBASW5wdXQoKSB0cmlnZ2VyTGFiZWwgPSAnTWFpcyBhw6fDtWVzJztcblxuICAvKiogTyBwYWluZWwgbsOjbyBzZWd1ZSBhIGxhcmd1cmEgZG8gYm90w6NvICjDrWNvbmUgZXN0cmVpdG8pLiAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbWF0Y2hUcmlnZ2VyV2lkdGggPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcmVhZG9ubHkgTWVudURyb3Bkb3duUGxhY2VtZW50ID0gTWVudURyb3Bkb3duUGxhY2VtZW50O1xufVxuIiwiPGFwcC1kcm9wZG93bi1tZW51XHJcbiAgY2xhc3M9XCJhY3Rpb24tbWVudVwiXHJcbiAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICBbcGxhY2VtZW50XT1cInBsYWNlbWVudFwiXHJcbiAgW21pbldpZHRoUHhdPVwibWluV2lkdGhQeFwiXHJcbiAgW21hdGNoVHJpZ2dlcldpZHRoXT1cIm1hdGNoVHJpZ2dlcldpZHRoXCJcclxuICBbbWVudUlkXT1cIm1lbnVJZFwiXHJcbiAgKGl0ZW1TZWxlY3QpPVwiaXRlbVNlbGVjdC5lbWl0KCRldmVudClcIlxyXG4gIChvcGVuQ2hhbmdlKT1cIm9wZW5DaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuPlxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYWN0aW9uLW1lbnVfX3RyaWdnZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRyaWdnZXJMYWJlbFwiPlxyXG4gICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1lbGxpcHNpc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICA8L2J1dHRvbj5cclxuPC9hcHAtZHJvcGRvd24tbWVudT5cclxuIl19
@@ -1,112 +0,0 @@
1
- import { NgClass } from '@angular/common';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef, booleanAttribute, computed, inject, } from '@angular/core';
3
- import { Overlay } from '@angular/cdk/overlay';
4
- import { TemplatePortal } from '@angular/cdk/portal';
5
- import { fromEvent } from 'rxjs';
6
- import { filter } from 'rxjs/operators';
7
- import { AppThemeService } from '../../theme';
8
- import { MenuListComponent } from '../menu-list/menu-list.component';
9
- import * as i0 from "@angular/core";
10
- const PANEL_MIN_W = 200;
11
- const VIEWPORT_PAD = 8;
12
- export class ContextMenuComponent {
13
- constructor() {
14
- this.overlay = inject(Overlay);
15
- this.vcr = inject(ViewContainerRef);
16
- this.appTheme = inject(AppThemeService);
17
- this.cdr = inject(ChangeDetectorRef);
18
- this.items = [];
19
- this.disabled = false;
20
- this.menuId = '';
21
- this.itemSelect = new EventEmitter();
22
- this.overlayRef = null;
23
- this.escSub = null;
24
- this.generatedId = `app-ctx-${Math.random().toString(36).slice(2, 9)}`;
25
- this.panelThemeNgClass = computed(() => {
26
- const themeClass = this.appTheme.themeClass();
27
- return {
28
- 'app-library-theme': true,
29
- [themeClass]: true,
30
- };
31
- });
32
- }
33
- get resolvedMenuId() {
34
- return this.menuId.trim() || this.generatedId;
35
- }
36
- ngOnDestroy() {
37
- this.disposeOverlay();
38
- }
39
- onContextMenu(ev) {
40
- if (this.disabled) {
41
- return;
42
- }
43
- ev.preventDefault();
44
- ev.stopPropagation();
45
- this.openAt(ev.clientX, ev.clientY);
46
- }
47
- openAt(clientX, clientY) {
48
- this.disposeOverlay();
49
- const left = Math.min(clientX, window.innerWidth - PANEL_MIN_W - VIEWPORT_PAD);
50
- const top = Math.min(clientY, window.innerHeight - VIEWPORT_PAD);
51
- const themeClass = this.appTheme.themeClass();
52
- this.overlayRef = this.overlay.create({
53
- hasBackdrop: true,
54
- backdropClass: 'cdk-overlay-transparent-backdrop',
55
- panelClass: ['app-library-theme', themeClass],
56
- scrollStrategy: this.overlay.scrollStrategies.close(),
57
- positionStrategy: this.overlay
58
- .position()
59
- .global()
60
- .left(`${Math.max(VIEWPORT_PAD, left)}px`)
61
- .top(`${Math.max(VIEWPORT_PAD, top)}px`),
62
- });
63
- const portal = new TemplatePortal(this.menuTpl, this.vcr);
64
- this.overlayRef.attach(portal);
65
- this.overlayRef.backdropClick().subscribe(() => this.disposeOverlay());
66
- this.escSub = fromEvent(document, 'keydown')
67
- .pipe(filter((e) => e.key === 'Escape'))
68
- .subscribe(() => this.disposeOverlay());
69
- queueMicrotask(() => {
70
- this.menuList?.resetHighlight();
71
- this.cdr.markForCheck();
72
- });
73
- }
74
- disposeOverlay() {
75
- this.escSub?.unsubscribe();
76
- this.escSub = null;
77
- if (this.overlayRef) {
78
- this.overlayRef.dispose();
79
- this.overlayRef = null;
80
- }
81
- }
82
- onItemSelect(id) {
83
- this.itemSelect.emit(id);
84
- this.disposeOverlay();
85
- }
86
- onCloseRequest() {
87
- this.disposeOverlay();
88
- }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: ContextMenuComponent, isStandalone: true, selector: "app-context-menu", inputs: { items: "items", disabled: ["disabled", "disabled", booleanAttribute], menuId: "menuId" }, outputs: { itemSelect: "itemSelect" }, viewQueries: [{ propertyName: "menuTpl", first: true, predicate: ["menuTpl"], descendants: true, static: true }, { propertyName: "menuList", first: true, predicate: MenuListComponent, descendants: true }], ngImport: i0, template: "<span class=\"context-menu__host\" (contextmenu)=\"onContextMenu($event)\">\r\n <ng-content />\r\n</span>\r\n\r\n<ng-template #menuTpl>\r\n <div class=\"context-menu__surface\" [ngClass]=\"panelThemeNgClass()\" (click)=\"$event.stopPropagation()\">\r\n <app-menu-list\r\n [items]=\"items\"\r\n [menuId]=\"resolvedMenuId\"\r\n (itemSelect)=\"onItemSelect($event)\"\r\n (closeRequest)=\"onCloseRequest()\"\r\n />\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}.context-menu__host{display:contents}.context-menu__surface{box-sizing:border-box;min-width:12.5rem;max-width:min(100vw - 1rem,22rem)}\n"], dependencies: [{ kind: "component", type: MenuListComponent, selector: "app-menu-list", inputs: ["items", "menuId", "dense", "nested", "selectedItemId", "compressText"], outputs: ["itemSelect", "closeRequest", "submenuBack"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
91
- }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContextMenuComponent, decorators: [{
93
- type: Component,
94
- args: [{ selector: 'app-context-menu', standalone: true, imports: [MenuListComponent, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"context-menu__host\" (contextmenu)=\"onContextMenu($event)\">\r\n <ng-content />\r\n</span>\r\n\r\n<ng-template #menuTpl>\r\n <div class=\"context-menu__surface\" [ngClass]=\"panelThemeNgClass()\" (click)=\"$event.stopPropagation()\">\r\n <app-menu-list\r\n [items]=\"items\"\r\n [menuId]=\"resolvedMenuId\"\r\n (itemSelect)=\"onItemSelect($event)\"\r\n (closeRequest)=\"onCloseRequest()\"\r\n />\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}.context-menu__host{display:contents}.context-menu__surface{box-sizing:border-box;min-width:12.5rem;max-width:min(100vw - 1rem,22rem)}\n"] }]
95
- }], propDecorators: { items: [{
96
- type: Input,
97
- args: [{ required: true }]
98
- }], disabled: [{
99
- type: Input,
100
- args: [{ transform: booleanAttribute }]
101
- }], menuId: [{
102
- type: Input
103
- }], itemSelect: [{
104
- type: Output
105
- }], menuTpl: [{
106
- type: ViewChild,
107
- args: ['menuTpl', { static: true }]
108
- }], menuList: [{
109
- type: ViewChild,
110
- args: [MenuListComponent]
111
- }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbWVudXMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRXJFLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUN4QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFVdkIsTUFBTSxPQUFPLG9CQUFvQjtJQVJqQztRQVNtQixZQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLFFBQUcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQixhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25DLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV0QixVQUFLLEdBQStCLEVBQUUsQ0FBQztRQUUxQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhELFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFRixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUs5QyxlQUFVLEdBQXNCLElBQUksQ0FBQztRQUNyQyxXQUFNLEdBQXdCLElBQUksQ0FBQztRQUUxQixnQkFBVyxHQUFHLFdBQVcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFMUUsc0JBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzlDLE9BQU87Z0JBQ0wsbUJBQW1CLEVBQUUsSUFBSTtnQkFDekIsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO2FBQ25CLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztLQTRFSjtJQTFFQyxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDaEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFjO1FBQzFCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBQ0QsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxNQUFNLENBQUMsT0FBZSxFQUFFLE9BQWU7UUFDN0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ25CLE9BQU8sRUFDUCxNQUFNLENBQUMsVUFBVSxHQUFHLFdBQVcsR0FBRyxZQUFZLENBQy9DLENBQUM7UUFDRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNsQixPQUFPLEVBQ1AsTUFBTSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQ2xDLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDcEMsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGtDQUFrQztZQUNqRCxVQUFVLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLENBQUM7WUFDN0MsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3JELGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUMzQixRQUFRLEVBQUU7aUJBQ1YsTUFBTSxFQUFFO2lCQUNSLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ3pDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUM7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFFdkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQWdCLFFBQVEsRUFBRSxTQUFTLENBQUM7YUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQzthQUN2QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFFMUMsY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsRUFBSztRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0F2R1Usb0JBQW9CO21HQUFwQixvQkFBb0IsaUhBUVgsZ0JBQWdCLG1PQU96QixpQkFBaUIsZ0RDbEQ5QiwwZEFjQSx5TkRnQlksaUJBQWlCLG9NQUFFLE9BQU87OzRGQUt6QixvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxtQkFHcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFRcEIsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWUsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFN0IsTUFBTTtzQkFBZCxLQUFLO2dCQUVhLFVBQVU7c0JBQTVCLE1BQU07Z0JBRWlDLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQSxRQUFRO3NCQUE3QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3RoZW1lJztcbmltcG9ydCB0eXBlIHsgTWVudU5vZGVJdGVtIH0gZnJvbSAnLi4vX21vZGVscy9tZW51LWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgTWVudUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9tZW51LWxpc3QvbWVudS1saXN0LmNvbXBvbmVudCc7XG5cbmNvbnN0IFBBTkVMX01JTl9XID0gMjAwO1xuY29uc3QgVklFV1BPUlRfUEFEID0gODtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbnRleHQtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNZW51TGlzdENvbXBvbmVudCwgTmdDbGFzc10sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY29udGV4dC1tZW51LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRNZW51Q29tcG9uZW50PFQgPSBzdHJpbmc+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZjciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBUaGVtZSA9IGluamVjdChBcHBUaGVtZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaXRlbXM6IHJlYWRvbmx5IE1lbnVOb2RlSXRlbTxUPltdID0gW107XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbWVudUlkID0gJyc7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnbWVudVRwbCcsIHsgc3RhdGljOiB0cnVlIH0pIG1lbnVUcGwhOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQFZpZXdDaGlsZChNZW51TGlzdENvbXBvbmVudCkgcHJpdmF0ZSBtZW51TGlzdD86IE1lbnVMaXN0Q29tcG9uZW50PFQ+O1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGVzY1N1YjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZWRJZCA9IGBhcHAtY3R4LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwgOSl9YDtcblxuICByZWFkb25seSBwYW5lbFRoZW1lTmdDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0aGVtZUNsYXNzID0gdGhpcy5hcHBUaGVtZS50aGVtZUNsYXNzKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdhcHAtbGlicmFyeS10aGVtZSc6IHRydWUsXG4gICAgICBbdGhlbWVDbGFzc106IHRydWUsXG4gICAgfTtcbiAgfSk7XG5cbiAgZ2V0IHJlc29sdmVkTWVudUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWVudUlkLnRyaW0oKSB8fCB0aGlzLmdlbmVyYXRlZElkO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwb3NlT3ZlcmxheSgpO1xuICB9XG5cbiAgb25Db250ZXh0TWVudShldjogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vcGVuQXQoZXYuY2xpZW50WCwgZXYuY2xpZW50WSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5BdChjbGllbnRYOiBudW1iZXIsIGNsaWVudFk6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZU92ZXJsYXkoKTtcblxuICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1pbihcbiAgICAgIGNsaWVudFgsXG4gICAgICB3aW5kb3cuaW5uZXJXaWR0aCAtIFBBTkVMX01JTl9XIC0gVklFV1BPUlRfUEFELFxuICAgICk7XG4gICAgY29uc3QgdG9wID0gTWF0aC5taW4oXG4gICAgICBjbGllbnRZLFxuICAgICAgd2luZG93LmlubmVySGVpZ2h0IC0gVklFV1BPUlRfUEFELFxuICAgICk7XG5cbiAgICBjb25zdCB0aGVtZUNsYXNzID0gdGhpcy5hcHBUaGVtZS50aGVtZUNsYXNzKCk7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwYW5lbENsYXNzOiBbJ2FwcC1saWJyYXJ5LXRoZW1lJywgdGhlbWVDbGFzc10sXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheVxuICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAuZ2xvYmFsKClcbiAgICAgICAgLmxlZnQoYCR7TWF0aC5tYXgoVklFV1BPUlRfUEFELCBsZWZ0KX1weGApXG4gICAgICAgIC50b3AoYCR7TWF0aC5tYXgoVklFV1BPUlRfUEFELCB0b3ApfXB4YCksXG4gICAgfSk7XG5cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5tZW51VHBsLCB0aGlzLnZjcik7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kaXNwb3NlT3ZlcmxheSgpKTtcblxuICAgIHRoaXMuZXNjU3ViID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZShmaWx0ZXIoKGUpID0+IGUua2V5ID09PSAnRXNjYXBlJykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZGlzcG9zZU92ZXJsYXkoKSk7XG5cbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICB0aGlzLm1lbnVMaXN0Py5yZXNldEhpZ2hsaWdodCgpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3Bvc2VPdmVybGF5KCk6IHZvaWQge1xuICAgIHRoaXMuZXNjU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZXNjU3ViID0gbnVsbDtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBvbkl0ZW1TZWxlY3QoaWQ6IFQpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1TZWxlY3QuZW1pdChpZCk7XG4gICAgdGhpcy5kaXNwb3NlT3ZlcmxheSgpO1xuICB9XG5cbiAgb25DbG9zZVJlcXVlc3QoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwb3NlT3ZlcmxheSgpO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cImNvbnRleHQtbWVudV9faG9zdFwiIChjb250ZXh0bWVudSk9XCJvbkNvbnRleHRNZW51KCRldmVudClcIj5cclxuICA8bmctY29udGVudCAvPlxyXG48L3NwYW4+XHJcblxyXG48bmctdGVtcGxhdGUgI21lbnVUcGw+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRleHQtbWVudV9fc3VyZmFjZVwiIFtuZ0NsYXNzXT1cInBhbmVsVGhlbWVOZ0NsYXNzKClcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICA8YXBwLW1lbnUtbGlzdFxyXG4gICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICBbbWVudUlkXT1cInJlc29sdmVkTWVudUlkXCJcclxuICAgICAgKGl0ZW1TZWxlY3QpPVwib25JdGVtU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAoY2xvc2VSZXF1ZXN0KT1cIm9uQ2xvc2VSZXF1ZXN0KClcIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19