@seniorsistemas/angular-components 19.0.4 → 19.0.6

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 (472) hide show
  1. package/accordion/lib/accordion/accordion.component.d.ts +25 -0
  2. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +60 -0
  3. package/alert/lib/alert/alert.component.d.ts +40 -0
  4. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +51 -0
  5. package/badge/lib/badge/badge.component.d.ts +20 -0
  6. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +46 -1
  7. package/breadcrumb/lib/breadcrumb/breadcrumb-models.d.ts +11 -0
  8. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +19 -23
  9. package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.d.ts +25 -0
  10. package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.d.ts +10 -0
  11. package/breadcrumb/public-api.d.ts +4 -2
  12. package/button/lib/button/button.component.d.ts +103 -1
  13. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +24 -0
  14. package/card/lib/card/card.component.d.ts +18 -0
  15. package/chat/lib/chat/chat.component.d.ts +20 -2
  16. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +18 -2
  17. package/checkbox/lib/checkbox/checkbox.component.d.ts +23 -3
  18. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +20 -0
  19. package/chips/lib/chips/chip-item/chip-item.component.d.ts +15 -0
  20. package/chips/lib/chips/chips/chips.component.d.ts +41 -0
  21. package/code-editor/lib/code-editor/code-editor.component.d.ts +40 -0
  22. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +18 -0
  23. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
  24. package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +19 -0
  25. package/content-generator/lib/content-generator/content-generator.component.d.ts +30 -0
  26. package/control-errors/lib/control-errors/control-errors.component.d.ts +36 -0
  27. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +36 -0
  28. package/currency/lib/currency.service.d.ts +15 -2
  29. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +31 -0
  30. package/dialog/lib/src/dialog/dialog.component.d.ts +51 -0
  31. package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -2
  32. package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +1 -1
  33. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +6 -5
  34. package/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.d.ts +5 -0
  35. package/dynamic-form/dynamic-form/configurations/structure/fieldset.d.ts +14 -0
  36. package/dynamic-form/dynamic-form/configurations/structure/row.d.ts +67 -0
  37. package/dynamic-form/dynamic-form/configurations/structure/section.d.ts +8 -0
  38. package/dynamic-form/dynamic-form/configurations/structure/structure.d.ts +19 -0
  39. package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +21 -1
  40. package/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +45 -0
  41. package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +59 -0
  42. package/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.d.ts +55 -0
  43. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +35 -0
  44. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +17 -0
  45. package/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.d.ts +23 -0
  46. package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +66 -0
  47. package/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +15 -0
  48. package/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.d.ts +30 -0
  49. package/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.d.ts +47 -2
  50. package/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +26 -0
  51. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +18 -1
  52. package/dynamic-form/dynamic-form/form-field/configurations/fields/field.d.ts +44 -0
  53. package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +112 -4
  54. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +42 -3
  55. package/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.d.ts +48 -0
  56. package/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +62 -0
  57. package/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +34 -0
  58. package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +63 -0
  59. package/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.d.ts +47 -1
  60. package/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +23 -0
  61. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +37 -1
  62. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +65 -2
  63. package/dynamic-form/public-api.d.ts +1 -0
  64. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +16 -0
  65. package/empty-state/lib/empty-state/empty-state.component.d.ts +59 -0
  66. package/esm2022/accordion/lib/accordion/accordion.component.mjs +26 -1
  67. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +61 -1
  68. package/esm2022/alert/lib/alert/alert.component.mjs +41 -1
  69. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +52 -1
  70. package/esm2022/badge/lib/badge/badge.component.mjs +21 -1
  71. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +47 -2
  72. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-models.mjs +2 -0
  73. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +39 -98
  74. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +120 -0
  75. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.mjs +19 -0
  76. package/esm2022/breadcrumb/public-api.mjs +4 -3
  77. package/esm2022/button/lib/button/button.component.mjs +107 -3
  78. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +72 -47
  79. package/esm2022/card/lib/card/card.component.mjs +21 -6
  80. package/esm2022/chat/lib/chat/chat.component.mjs +23 -5
  81. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +20 -4
  82. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +24 -4
  83. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +22 -2
  84. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +17 -2
  85. package/esm2022/chips/lib/chips/chips/chips.component.mjs +42 -1
  86. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +41 -1
  87. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +19 -1
  88. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +6 -1
  89. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +21 -2
  90. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +32 -2
  91. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +37 -1
  92. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +37 -1
  93. package/esm2022/currency/lib/currency.service.mjs +21 -8
  94. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +32 -1
  95. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +66 -11
  96. package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -10
  97. package/esm2022/dialog/lib/src/dialog/services/internal-dialog.service.mjs +3 -3
  98. package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +2 -2
  99. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +2 -2
  100. package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.mjs +2 -0
  101. package/esm2022/dynamic-form/dynamic-form/configurations/structure/fieldset.mjs +1 -1
  102. package/esm2022/dynamic-form/dynamic-form/configurations/structure/row.mjs +1 -1
  103. package/esm2022/dynamic-form/dynamic-form/configurations/structure/section.mjs +1 -1
  104. package/esm2022/dynamic-form/dynamic-form/configurations/structure/structure.mjs +1 -1
  105. package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +22 -2
  106. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
  107. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
  108. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.mjs +1 -1
  109. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.mjs +1 -1
  110. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.mjs +1 -1
  111. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.mjs +1 -1
  112. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
  113. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.mjs +1 -1
  114. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.mjs +1 -1
  115. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.mjs +1 -1
  116. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.mjs +1 -1
  117. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  118. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -2
  119. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  120. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  121. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.mjs +1 -1
  122. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.mjs +1 -1
  123. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.mjs +6 -1
  124. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
  125. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.mjs +1 -1
  126. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.mjs +1 -1
  127. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
  128. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
  129. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +2 -2
  130. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
  131. package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
  132. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +2 -2
  133. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +2 -2
  134. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +2 -2
  135. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +2 -2
  136. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
  137. package/esm2022/dynamic-form/public-api.mjs +2 -2
  138. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +17 -1
  139. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +61 -2
  140. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
  141. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +49 -2
  142. package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
  143. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +1 -1
  144. package/esm2022/global-search/lib/global-search/global-search.component.mjs +31 -2
  145. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -1
  146. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
  147. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +83 -27
  148. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +41 -4
  149. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +18 -2
  150. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +33 -4
  151. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
  152. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +1 -1
  153. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +16 -1
  154. package/esm2022/insights/lib/insights/insights.component.mjs +23 -1
  155. package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +21 -1
  156. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
  157. package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +1 -1
  158. package/esm2022/kanban/lib/kanban/kanban.component.mjs +34 -16
  159. package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
  160. package/esm2022/lib/locale/fallback.mjs +4 -2
  161. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +37 -1
  162. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +24 -1
  163. package/esm2022/locale/lib/locale/locale.service.mjs +8 -1
  164. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +17 -1
  165. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +13 -1
  166. package/esm2022/mouse-events/lib/mouse-events/double-click.directive.mjs +16 -3
  167. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +24 -10
  168. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +21 -2
  169. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +32 -12
  170. package/esm2022/numeric/lib/numeric.pipe.mjs +16 -1
  171. package/esm2022/numeric/lib/numeric.service.mjs +21 -1
  172. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +9 -6
  173. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
  174. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
  175. package/esm2022/object-card/lib/object-card/object-card.component.mjs +24 -1
  176. package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
  177. package/esm2022/paginator/lib/paginator/paginator.component.mjs +20 -1
  178. package/esm2022/panel/lib/panel/panel.component.mjs +44 -23
  179. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +25 -1
  180. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +54 -1
  181. package/esm2022/picklist/lib/picklist/picklist.component.mjs +34 -3
  182. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +29 -34
  183. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +87 -3
  184. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +53 -3
  185. package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +28 -1
  186. package/esm2022/radio-button/lib/radio-button-group/radio-button-group.component.mjs +27 -1
  187. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +39 -7
  188. package/esm2022/select/lib/select/select.component.mjs +35 -1
  189. package/esm2022/select-button/lib/select-button/select-button.component.mjs +35 -1
  190. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +11 -3
  191. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +54 -1
  192. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +76 -36
  193. package/esm2022/slider/lib/slider/slider.component.mjs +90 -9
  194. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +25 -4
  195. package/esm2022/split-button/lib/split-button/split-button.component.mjs +24 -2
  196. package/esm2022/star-rating/star-rating/star-rating.component.mjs +17 -1
  197. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +32 -10
  198. package/esm2022/stepper/lib/stepper/stepper.component.mjs +20 -1
  199. package/esm2022/structure/lib/structure/footer.component.mjs +11 -1
  200. package/esm2022/switch/lib/switch/switch.component.mjs +22 -2
  201. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +16 -1
  202. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
  203. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +29 -3
  204. package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +33 -2
  205. package/esm2022/tabs/lib/tabs/tabs.component.mjs +35 -3
  206. package/esm2022/template/lib/template/template.directive.mjs +14 -2
  207. package/esm2022/text-area/lib/text-area/text-area.component.mjs +28 -1
  208. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +25 -1
  209. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +28 -3
  210. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +65 -46
  211. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +3 -3
  212. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +35 -2
  213. package/esm2022/tile/lib/tile/tile.component.mjs +26 -1
  214. package/esm2022/timeline/lib/timeline/timeline.component.mjs +26 -3
  215. package/esm2022/toast/lib/toast/toast.component.mjs +24 -4
  216. package/esm2022/token-list/lib/token-list/token-list.component.mjs +22 -1
  217. package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +66 -1
  218. package/esm2022/topbar/lib/topbar/topbar.component.mjs +18 -1
  219. package/esm2022/tree/lib/tree/tree.component.mjs +28 -1
  220. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +47 -1
  221. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +85 -0
  222. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  223. package/fesm2022/seniorsistemas-angular-components-alert.mjs +40 -0
  224. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  225. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +51 -0
  226. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  227. package/fesm2022/seniorsistemas-angular-components-badge.mjs +20 -0
  228. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  229. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +46 -1
  230. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  231. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +93 -37
  232. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  233. package/fesm2022/seniorsistemas-angular-components-button.mjs +106 -2
  234. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  235. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +71 -46
  236. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  237. package/fesm2022/seniorsistemas-angular-components-card.mjs +19 -4
  238. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  239. package/fesm2022/seniorsistemas-angular-components-chat.mjs +39 -5
  240. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  241. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +21 -1
  242. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  243. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +23 -3
  244. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  245. package/fesm2022/seniorsistemas-angular-components-chips.mjs +57 -1
  246. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  247. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +40 -0
  248. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  249. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +18 -0
  250. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  251. package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -0
  252. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  253. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +20 -1
  254. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  255. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +31 -1
  256. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  257. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +36 -0
  258. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  259. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +36 -0
  260. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  261. package/fesm2022/seniorsistemas-angular-components-currency.mjs +19 -6
  262. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
  263. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +31 -0
  264. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  265. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +74 -16
  266. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  267. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +38 -13
  268. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  269. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +16 -0
  270. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  271. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +60 -1
  272. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  273. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +21 -1
  274. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  275. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +48 -1
  276. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  277. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +31 -0
  278. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  279. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +31 -2
  280. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  281. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +39 -0
  282. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  283. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +81 -25
  284. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  285. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +39 -2
  286. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  287. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +17 -1
  288. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  289. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +30 -1
  290. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  291. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +17 -2
  292. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  293. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -0
  294. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  295. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +20 -0
  296. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  297. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +30 -12
  298. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  299. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +13 -0
  300. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  301. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +59 -0
  302. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  303. package/fesm2022/seniorsistemas-angular-components-locale.mjs +7 -0
  304. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  305. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +16 -0
  306. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  307. package/fesm2022/seniorsistemas-angular-components-mask.mjs +12 -0
  308. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  309. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +35 -8
  310. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  311. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +20 -1
  312. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  313. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +31 -11
  314. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  315. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +8 -5
  316. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  317. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +35 -0
  318. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  319. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +25 -2
  320. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  321. package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +19 -0
  323. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-panel.mjs +39 -18
  325. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +77 -0
  327. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +33 -2
  329. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +28 -33
  331. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +86 -2
  333. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +52 -2
  335. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +53 -0
  337. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +36 -4
  339. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +34 -0
  341. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-select.mjs +34 -0
  343. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-shared.mjs +9 -1
  345. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +53 -0
  347. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +71 -31
  349. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-slider.mjs +89 -8
  351. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +24 -3
  353. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +22 -0
  355. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +16 -0
  357. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +30 -8
  359. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +19 -0
  361. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-structure.mjs +10 -0
  363. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-switch.mjs +20 -0
  365. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +28 -2
  367. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-table.mjs +16 -1
  369. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  370. package/fesm2022/seniorsistemas-angular-components-tabs.mjs +65 -2
  371. package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
  372. package/fesm2022/seniorsistemas-angular-components-template.mjs +13 -1
  373. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  374. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +27 -0
  375. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  376. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +24 -0
  377. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  378. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +26 -1
  379. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  380. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +99 -47
  381. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  382. package/fesm2022/seniorsistemas-angular-components-tile.mjs +25 -0
  383. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  384. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +25 -2
  385. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  386. package/fesm2022/seniorsistemas-angular-components-toast.mjs +22 -2
  387. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  388. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +21 -0
  389. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  390. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +65 -0
  391. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  392. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +17 -0
  393. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  394. package/fesm2022/seniorsistemas-angular-components-tree.mjs +27 -0
  395. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  396. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +46 -0
  397. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  398. package/fesm2022/seniorsistemas-angular-components.mjs +3 -1
  399. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  400. package/fieldset/lib/fieldset/fieldset.component.d.ts +23 -3
  401. package/file-picker/lib/file-picker/file-picker.component.d.ts +47 -0
  402. package/gantt/lib/gantt/gantt.component.d.ts +31 -0
  403. package/global-search/lib/global-search/global-search.component.d.ts +29 -0
  404. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +39 -0
  405. package/help-popover/lib/help-popover/help-popover.directive.d.ts +67 -17
  406. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +38 -0
  407. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +15 -0
  408. package/info-sign/lib/info-sign/info-sign.directive.d.ts +30 -1
  409. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
  410. package/insights/lib/insights/insights.component.d.ts +22 -0
  411. package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +20 -0
  412. package/kanban/lib/kanban/kanban.component.d.ts +25 -5
  413. package/label-value/lib/label-value/label-value.component.d.ts +13 -0
  414. package/loading-state/lib/loading-state/loading-state.component.d.ts +36 -0
  415. package/loading-state/lib/loading-state/loading-state.directive.d.ts +23 -0
  416. package/locale/lib/locale/locale.service.d.ts +7 -0
  417. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
  418. package/mask/lib/mask/mask-formatter.pipe.d.ts +12 -0
  419. package/mouse-events/lib/mouse-events/double-click.directive.d.ts +13 -0
  420. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -2
  421. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +19 -0
  422. package/number-input/lib/number-input/number-input.directive.d.ts +19 -1
  423. package/numeric/lib/numeric.pipe.d.ts +15 -0
  424. package/numeric/lib/numeric.service.d.ts +20 -0
  425. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +5 -4
  426. package/object-card/lib/object-card/object-card.component.d.ts +23 -0
  427. package/optional-fields/editor/editor-field.d.ts +19 -0
  428. package/package.json +7 -7
  429. package/paginator/lib/paginator/paginator.component.d.ts +19 -0
  430. package/panel/lib/panel/panel.component.d.ts +24 -3
  431. package/password-strength/lib/password-strength/password-strength.component.d.ts +24 -0
  432. package/password-strength/lib/password-strength/password-strength.directive.d.ts +53 -0
  433. package/picklist/lib/picklist/picklist.component.d.ts +29 -0
  434. package/pin-code-field/lib/pin-code-field/pin-code-field.component.d.ts +28 -33
  435. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +85 -1
  436. package/progressbar/lib/progressbar/progressbar.component.d.ts +50 -0
  437. package/radio-button/lib/radio-button/radio-button.component.d.ts +27 -0
  438. package/radio-button/lib/radio-button-group/radio-button-group.component.d.ts +26 -0
  439. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +30 -2
  440. package/select/lib/select/select.component.d.ts +34 -0
  441. package/select-button/lib/select-button/select-button.component.d.ts +34 -0
  442. package/shared/lib/shared/border-button/border-button.component.d.ts +10 -2
  443. package/sidebar/lib/sidebar/sidebar.component.d.ts +53 -0
  444. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +53 -2
  445. package/slider/lib/slider/slider.component.d.ts +72 -0
  446. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +18 -0
  447. package/split-button/lib/split-button/split-button.component.d.ts +22 -0
  448. package/star-rating/star-rating/star-rating.component.d.ts +16 -0
  449. package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
  450. package/stepper/lib/stepper/stepper.component.d.ts +19 -0
  451. package/structure/lib/structure/footer.component.d.ts +10 -0
  452. package/switch/lib/switch/switch.component.d.ts +20 -0
  453. package/table/lib/table/table-column/table-columns.component.d.ts +15 -0
  454. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +18 -0
  455. package/tabs/lib/tab-item/tab-item.component.d.ts +31 -0
  456. package/tabs/lib/tabs/tabs.component.d.ts +28 -0
  457. package/template/lib/template/template.directive.d.ts +12 -0
  458. package/text-area/lib/text-area/text-area.component.d.ts +27 -0
  459. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +24 -0
  460. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +27 -2
  461. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +3 -1
  462. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +31 -1
  463. package/tile/lib/tile/tile.component.d.ts +25 -0
  464. package/timeline/lib/timeline/timeline.component.d.ts +24 -0
  465. package/toast/lib/toast/toast.component.d.ts +22 -2
  466. package/token-list/lib/token-list/token-list.component.d.ts +21 -0
  467. package/tooltip/lib/tooltip/tooltip.directive.d.ts +65 -0
  468. package/topbar/lib/topbar/topbar.component.d.ts +17 -0
  469. package/tree/lib/tree/tree.component.d.ts +27 -0
  470. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +46 -0
  471. package/breadcrumb/lib/breadcrumb/breadcrumb.module.d.ts +0 -10
  472. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.module.mjs +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-code-editor.mjs","sources":["../../projects/angular-components/code-editor/src/lib/code-editor/models/enums/languages.ts","../../projects/angular-components/code-editor/src/lib/code-editor/models/enums/themes.ts","../../projects/angular-components/code-editor/src/lib/code-editor/models/index.ts","../../projects/angular-components/code-editor/src/lib/code-editor/core/use-cases/core-linters.ts","../../projects/angular-components/code-editor/src/lib/code-editor/core/facades/core-facade.ts","../../projects/angular-components/code-editor/src/lib/code-editor/code-editor.component.ts","../../projects/angular-components/code-editor/src/lib/code-editor/code-editor.component.html","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-http-client/custom-http-client.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-translations/custom-translations-service.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-translations/custom-translations.module.ts","../../projects/angular-components/code-editor/src/lib/code-editor/core/models/enums/marker-severity.ts","../../projects/angular-components/code-editor/src/lib/code-editor/core/models/index.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/json/json.language.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/editor-languages.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/editor-themes.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.ts","../../projects/angular-components/code-editor/src/lib/code-editor/code-editor.module.ts","../../projects/angular-components/code-editor/src/seniorsistemas-angular-components-code-editor.ts"],"sourcesContent":["export enum Languages {\n TaxCalculation = \"TaxCalculation\",\n Json = \"Json\"\n}\n","export enum Themes {\n SDSLight = \"SDSLight\"\n}\n","/* Interfaces */\nexport * from \"./interfaces/editor-options\";\n\n/* Enums */\nexport * from \"./enums/languages\";\nexport * from \"./enums/themes\";\n","import { Languages } from \"../../models\";\nimport { LinterFacade } from \"../facades/linter-facade\";\n\ntype LinterFacadeFactory = () => LinterFacade;\n\nexport class CoreLinters {\n\n private static readonly _LINTERS: Map<Languages, LinterFacadeFactory> = new Map([]);\n\n public static getLinter(language: Languages): LinterFacade | undefined {\n const languageLinterFactory = CoreLinters._LINTERS.get(language);\n if (languageLinterFactory) {\n return languageLinterFactory();\n }\n return undefined;\n }\n}\n","import { Observable, ReplaySubject, Subject } from 'rxjs';\n\nimport { EditorOptions, Languages, Themes } from '../../models';\nimport { Marker } from '../models';\nimport { CoreLinters } from '../use-cases/core-linters';\nimport { LinterFacade } from './linter-facade';\n\nexport abstract class CoreFacade {\n private readonly $onCoreFinishLoad: ReplaySubject<void> = new ReplaySubject(1);\n private readonly $onCodeChange: Subject<string> = new Subject();\n private readonly $onCodeValidityChange: Subject<boolean> = new Subject();\n private _completionItems: string[] = [];\n private _lastCodeEmitted = '';\n private _lastCodeValidityEmitted!: boolean;\n private _linter!: LinterFacade;\n\n public changeEditorOptions(options: EditorOptions): void {\n if (options) {\n if (typeof options !== 'object') {\n throw new Error(\"Editor's options must be an EditorOptions object\");\n }\n\n this.validateLanguage(options.language as Languages);\n this.validateTheme(options.theme as Themes);\n this.setLinter(options.language as Languages);\n\n this.setCoreEditorOptions(options);\n }\n }\n\n public changeCode(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this.setCode(safeCode);\n }\n }\n\n public setPayload(payload: string): void {\n const safeCode = this.getSafeCode(payload);\n // Força a atualização sem verificar _lastCodeEmitted,\n // mas preserva o cursor verificando no nível do editor\n this.setCodeWithCursorPreservation(safeCode);\n }\n\n protected abstract setCodeWithCursorPreservation(code: string): void;\n\n public abstract initCore(): void;\n public abstract destroyCore(): void;\n\n public abstract setCoreWrapperElement(element: HTMLDivElement): void;\n public abstract setCode(code: string): void;\n\n public getOnCoreFinishLoadObservable(): Observable<void> {\n return this.$onCoreFinishLoad.asObservable();\n }\n\n public getOnCodeChangeObservable(): Observable<string> {\n return this.$onCodeChange.asObservable();\n }\n\n public getOnCodeValidityChangeObservable(): Observable<boolean> {\n return this.$onCodeValidityChange.asObservable();\n }\n\n protected abstract setCoreEditorOptions(options: EditorOptions): void;\n protected abstract highlightCode(markers: Marker[]): void;\n\n protected notifyCoreFinishLoad(): void {\n this.$onCoreFinishLoad.next();\n }\n\n protected notifyCodeChange(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this._lastCodeEmitted = safeCode;\n this.$onCodeChange.next(safeCode);\n this.validateCode(safeCode);\n }\n }\n\n protected updateCompletionItems(items: string[]): void {\n this._completionItems = items || [];\n this.validateCode(this._lastCodeEmitted);\n }\n\n private setLinter(language: Languages): void {\n this._linter = CoreLinters.getLinter(language) as LinterFacade;\n }\n\n private async validateCode(code: string): Promise<void> {\n if (this._linter) {\n const markers: Marker[] = await this._linter.lint(code, this._completionItems);\n this.highlightCode(markers);\n this.notifyCodeValidityChange(!markers.length);\n }\n }\n\n private notifyCodeValidityChange(validity: boolean): void {\n if (validity !== this._lastCodeValidityEmitted) {\n this._lastCodeValidityEmitted = validity;\n this.$onCodeValidityChange.next(validity);\n }\n }\n\n private validateLanguage(language: Languages): void {\n const languages = Object.values(Languages);\n if (language && !languages.includes(language)) {\n throw new Error(`The informed language \"${language}\" is not supported`);\n }\n }\n\n private validateTheme(theme: Themes): void {\n const themes = Object.values(Themes);\n if (theme && !themes.includes(theme)) {\n throw new Error(`The informed theme \"${theme}\" is not supported`);\n }\n }\n\n private getSafeCode(code: string): string {\n return typeof code === 'string' ? code : '';\n }\n}\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { CoreFacade } from './core/facades/core-facade';\nimport { EditorOptions } from './models';\n\n@Component({\n selector: 's-code-editor',\n templateUrl: './code-editor.component.html',\n styleUrls: ['./code-editor.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CodeEditorComponent),\n multi: true,\n },\n ],\n})\nexport class CodeEditorComponent implements OnInit, AfterViewInit, ControlValueAccessor, OnDestroy {\n @Input()\n public set editorOptions(options: EditorOptions | undefined) {\n if (options) {\n this.coreFacade.changeEditorOptions(options);\n }\n }\n\n @Input()\n public set code(code: string) {\n this.coreFacade.changeCode(code);\n }\n\n @Input() isCodeValid: boolean | undefined = false;\n\n @Input()\n public set payload(payload: string) {\n this.coreFacade.setPayload(payload);\n }\n\n @Output()\n public codeChange = new EventEmitter<string>();\n\n @Output()\n public isCodeValidChange = new EventEmitter<boolean>();\n\n @Output()\n public onCodeChange = new EventEmitter<string>();\n\n @Output()\n public onComponentFinishLoad = new EventEmitter<void>();\n\n @ViewChild('coreWrapper')\n private readonly coreWrapperElement: ElementRef | null = null;\n\n private readonly _ngUnsubscribe = new Subject<void>();\n\n private _onChange: (value: string) => void = () => {};\n private _onTouched: () => void = () => {};\n\n constructor(private readonly coreFacade: CoreFacade) {}\n\n public writeValue(value: string): void {\n this.code = value;\n }\n\n public registerOnChange(onChange: (value: string) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public ngOnInit(): void {\n this.coreFacade.initCore();\n this.setupCoreListeners();\n }\n\n public ngAfterViewInit(): void {\n this.setCoreWrapperElement();\n }\n\n public ngOnDestroy(): void {\n this.coreFacade.destroyCore();\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n private setCoreWrapperElement(): void {\n this.coreFacade.setCoreWrapperElement(this.coreWrapperElement?.nativeElement as HTMLDivElement);\n }\n\n private setupCoreListeners(): void {\n this.coreFacade\n .getOnCoreFinishLoadObservable()\n .pipe(take(1))\n .subscribe(() => this.onComponentFinishLoad.emit());\n\n this.coreFacade\n .getOnCodeChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((code) => {\n this.codeChange.emit(code);\n this.onCodeChange.emit(code);\n this._onTouched();\n this._onChange(code);\n });\n\n this.coreFacade\n .getOnCodeValidityChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((validity) => {\n this.isCodeValidChange.emit(validity);\n });\n }\n}\n","<div #coreWrapper class=\"core-wrapper\"></div>","export default `\n@top Script { statement+ }\n\nstatement[@isGroup=Statement] {\n Keyword |\n String |\n Number\n}\n\n@tokens {\n String { '\"' (![\\\\n\"])* '\"'? }\n\n Number { std.digit+ }\n\n identifierChar { std.asciiLetter | $[_$\\u{a1}-\\u{10ffff}] }\n\n word { identifierChar (identifierChar | std.digit)* }\n\n identifier { word }\n}\n\nKeyword {\n kw<\"SE\">\n kw<\"ENTAO\">\n kw<\"FIM_SE\">\n kw<\"SENAO\">\n kw<\"NAO\">\n kw<\"CONTENHA\">\n kw<\"OU\">\n kw<\"E\">\n}\n\nkw<term> { @specialize[@name={term}]<identifier, term> }\n\n@detectDelim\n`;\n","export enum EnumTypeOrder {\n // Tipo de ordenação - Crescente\n ASC = \"ASC\",\n // Tipo de ordenação - Decrescente\n DESC = \"DESC\"\n}\n","export enum MetaType {\n // Entity\n ENTITY = \"ENTITY\",\n // String\n STRING = \"STRING\",\n // Integer\n INTEGER = \"INTEGER\",\n // Double\n DOUBLE = \"DOUBLE\",\n // Long\n LONG = \"LONG\",\n // BigDecimal\n BIGDECIMAL = \"BIGDECIMAL\",\n // UUID\n UUID = \"UUID\",\n // Date\n DATE = \"DATE\",\n // DateTime\n DATETIME = \"DATETIME\",\n // DateTime\n LOCALDATETIME = \"LOCALDATETIME\",\n // Time\n TIME = \"TIME\",\n // Boolean\n BOOLEAN = \"BOOLEAN\",\n // List\n LIST = \"LIST\",\n // Enum\n ENUM = \"ENUM\",\n // CustomExpression\n CUSTOM_EXPRESSION = \"CUSTOM_EXPRESSION\",\n // PublicExpression\n PUBLIC_EXPRESSION = \"PUBLIC_EXPRESSION\"\n}\n","export enum RequestTypes {\n ListContextMetadataById,\n ListBlobMetadata,\n ListExpressionMetadata,\n ListFacadeMetadataNames,\n GetFacadeMetadataByPath,\n}\n","export enum CompletionTypes {\n Keyword = \"keyword\",\n Context = \"context\",\n Expression = \"expression\",\n UserExpression = \"userExpression\",\n Entity = \"entity\",\n FinalValue = \"finalValue\"\n}\n","export enum Keywords {\n SE = \"SE\",\n SENAO = \"SENAO\",\n CONTENHA = \"CONTENHA\",\n ENTAO = \"ENTAO\",\n FIM_SE = \"FIM_SE\",\n NAO = \"NAO\",\n E = \"E\",\n OU = \"OU\"\n}\n","/* Interfaces */\nexport * from \"./interfaces/tax-calculation-configs\";\nexport * from \"./interfaces/fields-order-by\";\nexport * from \"./interfaces/rec-page-request\";\nexport * from \"./interfaces/list-facade-metadata-names\";\nexport * from \"./interfaces/facade-metadata-name\";\nexport * from \"./interfaces/rec-front-context-metadata\";\nexport * from \"./interfaces/list-context-metadata-by-id\";\nexport * from \"./interfaces/rec-expression-metadata\";\nexport * from \"./interfaces/list-expression-metadata\";\nexport * from \"./interfaces/rec-front-field-metadata\";\nexport * from \"./interfaces/rec-front-facade-metadata\";\nexport * from \"./interfaces/get-facade-metadata-by-path\";\nexport * from \"./interfaces/safe-http-communication\";\nexport * from \"./interfaces/completion-Item\";\n\n/* Enums */\nexport * from \"./enums/enum-type-order\";\nexport * from \"./enums/meta-type\";\nexport * from \"./enums/request-types\";\nexport * from \"./enums/completion-types\";\nexport * from \"./enums/keywords\";\n","import { LRLanguage } from \"@codemirror/language\";\nimport { buildParser } from \"@lezer/generator\";\nimport {\n styleTags,\n tags\n} from \"@codemirror/highlight\";\n\nimport parserGrammar from \"./grammar\";\nimport { Keywords } from \"../../models\";\n\nexport const baseConfigs = LRLanguage.define({\n parser: buildParser(parserGrammar)\n .configure({\n props: [\n styleTags({\n [Object.values(Keywords).join(\" \")]: tags.keyword,\n \"String\": tags.string,\n \"Number\": tags.number,\n })\n ]\n })\n});\n","/**\n * Formats a JSON response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatJsonResponse(response: Response): Promise<any> {\n return response.json();\n}\n","/**\n * Formats a Blob response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatBlobResponse(response: Response): Promise<any> {\n const textResponse = await (await response.blob()).text();\n return JSON.parse(textResponse);\n}\n","import {\n service,\n user\n} from \"@seniorsistemas/senior-platform-data\";\n\nimport {\n formatJsonResponse,\n formatBlobResponse\n} from \"./json-response-formatters\";\n\n/**\n * Custom HttpClient for cases when is not possible to use the Angular's HttpClient\n */\nexport class CustomHttpClient {\n\n private static readonly _responseFormatterMap: Map<string, (response: Response) => Promise<any>> = new Map([\n [\"application/json\", formatJsonResponse],\n [\"application/octet-stream\", formatBlobResponse]\n ]);\n\n /**\n * Executes a Http Get\n * @param url Url to execute the Get on\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async GET<T>(url: string, init: RequestInit = {}): Promise<T> {\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"GET\"\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Executes a Http Post\n * @param url Url to execute the Post on\n * @param body Info to send to server on Post\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async POST<T>(url: string, body: any, init: RequestInit = {}): Promise<T> {\n const headers = new Headers(init.headers);\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Accept\", \"application/json\");\n\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"POST\",\n body: JSON.stringify(body),\n headers,\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Intercepts the original request to add a required header for Senior in case of a internal request\n * @param url Url from the original request\n * @param originalReq Configs from the original request\n * @returns Whether a Promise<Response> if the request was made successfully or an error\n */\n private static async interceptRequest(url: string, originalReq: RequestInit = {}): Promise<Response> {\n try {\n if (!url.includes(\"://\")) {\n const restUrl = await service.getRestUrl();\n const authHeader = await user.getAuthHeader();\n\n const headers = new Headers(originalReq.headers);\n headers.append(\"Authorization\", authHeader);\n\n const request = new Request(\n restUrl + url,\n {\n ...originalReq,\n headers\n }\n );\n return fetch(request);\n }\n\n return fetch(url, originalReq);\n\n } catch (err) {\n throw new Error(`Error fetching requested URL: ${err}`);\n }\n }\n\n /**\n * Formats the request response to an object<T> or {}\n * @param response The response to be formatted\n * @returns Whether a Promise<T> if the response status is in the range 200-299 an error\n */\n private static async formatResponse<T>(response: Response): Promise<T> {\n const contentType = response.headers.get(\"content-type\");\n const formatter = CustomHttpClient._responseFormatterMap.get(contentType as string);\n const formattedContentType = formatter ? await formatter(response) : {};\n\n if (response.ok) return formattedContentType as unknown as T;\n throw new Error(JSON.stringify(formattedContentType));\n }\n}\n","import { HostProjectConfigs } from \"@seniorsistemas/angular-components/common\";\nimport { Translations } from \"./models\";\n\n/**\n * Custom translator for cases when is not possible to use the \"TranslateService\" from \"@ngx-translate/core\"\n */\nexport class CustomTranslationsService {\n\n private static _translations: Translations = {};\n private static _TRANSLATION_PREFIX = \"\";\n\n /**\n * Method used to get the translation for an key based on the host project's translations. Always use the first available language\n * @param key Key used to search the translation\n * @returns The translation for the informed key or the key in case there is no translation\n */\n public static translate(key: string): string {\n if (key === undefined || key === null) {\n return '';\n }\n const translationKey = `${CustomTranslationsService._TRANSLATION_PREFIX}${key}`;\n const firstLanguageTranslations = Object.values(CustomTranslationsService._translations)[0] ?? {};\n return firstLanguageTranslations[translationKey] ?? translationKey;\n }\n\n /**\n * Method used to set the translations that will be used as base when calling the \"translate\" method\n * @param translations Translations to use as base\n */\n public static setTranslations(translations: Translations): void {\n CustomTranslationsService._translations = translations ?? {};\n }\n\n /**\n * Method used to set the prefix that will be used when calling the \"translate\" method\n * @param hostProjectConfigs The host project's configs used to create the prefix\n */\n public static setTranslationsPrefix(hostProjectConfigs: HostProjectConfigs): void {\n const { domain, service } = hostProjectConfigs ?? {};\n const prefix = `${domain}.${service}.`;\n CustomTranslationsService._TRANSLATION_PREFIX = prefix;\n }\n}\n","import {\n NgModule,\n Inject\n} from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { CustomTranslationsService } from \"./index\";\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"@seniorsistemas/angular-components/common\";\n\n/**\n * Responsible for setting up the translations that will be used by the \"CustomTranslationsService\".\n * Uses the host project's translations set by using the \"TranslationsModule\" from \"@seniorsistemas/platform-components\"\n */\n@NgModule()\nexport class CustomTranslationsModule {\n\n constructor(\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {\n this.factoryTranslations(this.translate, this.hostProjectConfigs);\n }\n\n private factoryTranslations(translate: TranslateService, hostProjectConfigs: HostProjectConfigs): void {\n CustomTranslationsService.setTranslations(translate.translations);\n CustomTranslationsService.setTranslationsPrefix(hostProjectConfigs);\n }\n}\n","export enum MarkerSeverity {\n Error,\n Info,\n Warning\n}\n","/* Interfaces */\nexport * from \"./interfaces/marker\";\n\n/* Enums */\nexport * from \"./enums/marker-severity\";\n","import { Diagnostic } from \"@codemirror/lint\";\n\nimport { DiagnosticSeverity } from \"../models\";\nimport {\n Marker,\n MarkerSeverity\n} from \"../../../../core/models\";\n\nconst diagnosticSeverityInMarkerSeverityMap: Map<number, DiagnosticSeverity> = new Map([\n [MarkerSeverity.Error, \"error\"],\n [MarkerSeverity.Info, \"info\"],\n [MarkerSeverity.Warning, \"warning\"]\n]);\n\nexport function convertMarkersToDiagnostics(markers: Marker[], textLength: number): Diagnostic[] {\n return markers.map(marker => ({\n from: marker.start || 0,\n to: marker.end || textLength,\n message: marker.message ?? \"\",\n severity: diagnosticSeverityInMarkerSeverityMap.get(marker.severity) ?? \"error\"\n }));\n}\n","export function isCurrentPositionInsideString(stringBeforeCurrentPosition: string): boolean {\n const doubleQuotesQuantity = stringBeforeCurrentPosition.match(/\"/g)?.length || 0;\n return doubleQuotesQuantity % 2 !== 0;\n}\n","import { CustomHttpClient } from \"../../../../../../utils\";\nimport {\n ListContextMetadataByIdRequest,\n ListContextMetadataByIdResponse,\n ListExpressionMetadataRequest,\n ListExpressionMetadataResponse,\n ListFacadeMetadataNamesRequest,\n ListFacadeMetadataNamesResponse,\n GetFacadeMetadataByPathRequest,\n GetFacadeMetadataByPathResponse,\n} from \"../../models\";\n\nexport class AutocompleteService {\n private static BASE_URL = \"platform/rule_metadata\";\n\n public static async listContextMetadataById(request: ListContextMetadataByIdRequest, abortSignal: AbortSignal): Promise<ListContextMetadataByIdResponse> {\n return CustomHttpClient.POST<ListContextMetadataByIdResponse>(\n `${AutocompleteService.BASE_URL}/queries/listContextMetadataById`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listExpressionMetadata(request: ListExpressionMetadataRequest, abortSignal: AbortSignal): Promise<ListExpressionMetadataResponse> {\n return CustomHttpClient.POST<ListExpressionMetadataResponse>(\n `${AutocompleteService.BASE_URL}/queries/listExpressionMetadata`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listFacadeMetadataNames(request: ListFacadeMetadataNamesRequest, abortSignal: AbortSignal): Promise<ListFacadeMetadataNamesResponse> {\n return CustomHttpClient.POST<ListFacadeMetadataNamesResponse>(\n `${AutocompleteService.BASE_URL}/queries/listFacadeMetadataNames`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async getFacadeMetadataByPath(request: GetFacadeMetadataByPathRequest, abortSignal: AbortSignal): Promise<GetFacadeMetadataByPathResponse> {\n return CustomHttpClient.POST<GetFacadeMetadataByPathResponse>(\n `${AutocompleteService.BASE_URL}/queries/getFacadeMetadataByPath`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to autocomplete's state-wrapper\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".s-code-editor-taxCalculation-autocomplete-ul\": {\n \"padding\": \".75rem !important\",\n },\n\n \".s-code-editor-taxCalculation-autocomplete-li\": {\n cursor: \"default !important\",\n \"line-height\": \"1.375em !important\",\n },\n });\n}\n","import {\n EditorState,\n Extension,\n StateField\n} from '@codemirror/state';\nimport { showTooltip, Tooltip } from '@codemirror/tooltip';\n\nimport { CodeMirror6Core } from '../../../../../../codemirror-6-core';\nimport { style } from './autocomplete-state-wrapper-style';\n\nlet htmlElementToBeWrapped: HTMLElement | null = null;\n\n/**\n * Adds a view updates's listener that creates an state over the autocomplete\n * @returns An extension containing everything needed to listen the updates and create the autocomplete's state\n */\nexport function autocompleteStateWrapper(): Extension {\n return [\n autocompleteStateWrapperStateField(),\n style()\n ];\n}\n\n/**\n * Shows a state on a non-clickable autocomplete item's format with an HTMLElement inside\n * @param element The HTMLElement to show inside the state\n */\nexport function showAutocompleteStateWrapper(element: HTMLElement): void {\n htmlElementToBeWrapped = element;\n CodeMirror6Core.updateEditorView();\n}\n\n/**\n * Removes a possible showed autocomplete state\n */\nexport function hideAutocompleteStateWrapper(): void {\n htmlElementToBeWrapped = null;\n CodeMirror6Core.updateEditorView();\n}\n\n/*\n * Creates and returns a StateField responsible for listening the view's change and to add the autocomplete\n * state's wrapper\n */\nfunction autocompleteStateWrapperStateField(): StateField<Tooltip> {\n return StateField.define({\n create: getAutocompleteStateWrapper,\n update(_, transaction) {\n return getAutocompleteStateWrapper(transaction.state);\n },\n provide(field: any) {\n return showTooltip.compute(\n [field],\n state => state.field(field),\n );\n }\n });\n}\n\n/*\n * Function responsible for creating the state's wrapper and returning the same as a Tooltip from \"@codemirror/tooltip\";\n * Only creates the Tooltip if the theres is element on the \"htmlElementToBeWrapped\" variable;\n * The same will also be removed when any view update is emitted;\n */\nfunction getAutocompleteStateWrapper(state: EditorState): Tooltip | undefined {\n if (!htmlElementToBeWrapped) {\n return undefined;\n }\n\n const htmlElementToBeWrappedString = htmlElementToBeWrapped.outerHTML;\n const stateWrapper: Tooltip = {\n pos: state.selection.ranges[0].head,\n create: () => ({ dom: getAutocompleteStateWrapperDomElement(htmlElementToBeWrappedString) })\n };\n\n htmlElementToBeWrapped = null;\n return stateWrapper;\n}\n\nfunction getAutocompleteStateWrapperDomElement(elementToBeWrappedString: string): HTMLElement {\n const wrapperDiv = document.createElement('div');\n wrapperDiv.className = 'cm-tooltip-autocomplete cm-tooltip';\n wrapperDiv.innerHTML =\n `\n <ul class=\"s-code-editor-taxCalculation-autocomplete-ul\">\n <li class=\"s-code-editor-taxCalculation-autocomplete-li\">\n ${elementToBeWrappedString}\n </li>\n </ul>\n\n `;\n\n return wrapperDiv;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteLoadingStateHTMLElement!: HTMLElement;\n\n/**\n * Adds a loading-state over the autocomplete\n * @returns An extension containing everything needed to add the loading-state\n */\nexport function autocompleteLoadingState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the loading state on the autocomplete\n */\n/*\n * Must set the \"autocompleteLoadingStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteLoadingState(): void {\n if (!autocompleteLoadingStateHTMLElement) {\n autocompleteLoadingStateHTMLElement = getAutocompleteLoadingStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteLoadingStateHTMLElement);\n}\n\nfunction getAutocompleteLoadingStateHTMLElement(): HTMLElement {\n const loadingStateSpanWrapper = document.createElement(\"span\");\n loadingStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_fetching_suggestions\");\n\n return loadingStateSpanWrapper;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteEmptyStateHTMLElement!: HTMLElement;\n\n/**\n * Adds an empty-state over the autocomplete\n * @returns An extension containing everything needed to add the empty-state\n */\nexport function autocompleteEmptyState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the empty-state on the autocomplete\n */\n/*\n * Must set the \"autocompleteEmptyStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteEmptyState(): void {\n if (!autocompleteEmptyStateHTMLElement) {\n autocompleteEmptyStateHTMLElement = getAutocompleteEmptyStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteEmptyStateHTMLElement);\n}\n\nfunction getAutocompleteEmptyStateHTMLElement(): HTMLElement {\n const emptyStateSpanWrapper = document.createElement(\"span\");\n emptyStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_no_suggestions\");\n\n return emptyStateSpanWrapper;\n}\n","import { TaxCalculationConfigs } from \"./models\";\n\nexport * from \"./models/interfaces/tax-calculation-configs\";\n\nexport class TaxCalculationLanguageConfigs {\n\n private static CONFIGS: TaxCalculationConfigs = { contexts: [] };\n\n public static setConfigs(configs: TaxCalculationConfigs): void {\n TaxCalculationLanguageConfigs.CONFIGS = JSON.parse(JSON.stringify(configs));\n }\n\n public static getConfigs(): TaxCalculationConfigs {\n return TaxCalculationLanguageConfigs.CONFIGS;\n }\n}\n","import { TaxCalculationConfigs } from \"../models\";\nimport { TaxCalculationLanguageConfigs } from \"../tax-calculation-language-configs\";\n\n/**\n * Gets the configs for the TaxCalculationLanguage\n * @returns The configs\n */\nexport function getLanguageConfigs(): TaxCalculationConfigs {\n const configs = TaxCalculationLanguageConfigs.getConfigs();\n if (!configs.contexts?.length) throw new Error(\n \"In order to use the TaxCalculation Language's autocomplete, \"\n + \"one must inform at least one context by using the \"\n + \"'TaxCalculationLanguageConfigs.setConfigs()'\"\n );\n return configs;\n}\n","import {\n SafeRequest,\n Response\n} from '../models';\n\n/**\n * Wraps the request to return the same with an identification or undefined in case of error, so the promise will\n * always trigger the \"then\"\n * @param request Request to wrap\n * @returns The typed request's response\n */\nexport async function getSafeResponse(request: SafeRequest): Promise<Response | undefined> {\n try {\n return {\n ...request,\n response: await request.request\n };\n } catch (_) {\n return undefined;\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the autocomplete\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".cm-completionIcon\": {\n \"font-family\": \"'Font Awesome 5 Pro'\",\n \"font-weight\": \"900\",\n },\n\n \".cm-completionIcon-keyword::after\": {\n \"content\": getIconBasedOnUnicode(\"f084\"),\n },\n\n \".cm-completionIcon-context::after\": {\n \"content\": getIconBasedOnUnicode(\"f466\"),\n },\n\n \".cm-completionIcon-expression::after\": {\n \"content\": getIconBasedOnUnicode(\"f505\"),\n },\n\n \".cm-completionIcon-userExpression::after\": {\n \"content\": getIconBasedOnUnicode(\"f4ff\"),\n },\n\n \".cm-completionIcon-entity::after\": {\n \"content\": getIconBasedOnUnicode(\"f126\"),\n },\n\n \".cm-completionIcon-finalValue::after\": {\n \"content\": getIconBasedOnUnicode(\"f192\"),\n },\n });\n}\n\nfunction getIconBasedOnUnicode(unicode: string): string {\n return `\"\\\\${unicode}\"`;\n}\n","import { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport {\n autocompletion,\n Completion,\n CompletionContext,\n CompletionResult,\n pickedCompletion,\n startCompletion,\n} from '@codemirror/autocomplete';\n\nimport { CustomTranslationsService } from '../../../../../../utils';\nimport { CodeMirror6Core } from '../../../../codemirror-6-core';\nimport { isCurrentPositionInsideString } from '../../../../utils';\nimport { AutocompleteService } from './autocomplete.service';\nimport {\n autocompleteLoadingState,\n showAutocompleteLoadingState,\n autocompleteEmptyState,\n showAutocompleteEmptyState,\n} from './autocomplete-states';\nimport {\n TaxCalculationConfigs,\n RequestTypes,\n Response,\n SafeRequest,\n SafeResponse,\n ListContextMetadataByIdResponse,\n CompletionTypes,\n ListExpressionMetadataResponse,\n MetaType,\n GetFacadeMetadataByPathResponse,\n ListFacadeMetadataNamesResponse,\n Keywords,\n} from '../../models';\nimport { getLanguageConfigs, getSafeResponse } from '../../utils';\nimport { style } from './autocomplete-style';\n\n/**\n * Adds an autocomplete to the editor\n * @returns An extension containing everything needed to create the autocomplete\n */\nexport function autocomplete(): Extension {\n return [\n autocompletion({ override: [getCompletionResults] }),\n autocompleteLoadingState(),\n autocompleteEmptyState(),\n style(),\n ];\n}\n\nconst TRANSLATION_PREFIX = 'core_language_tax_calculation';\nlet completionResults!: CompletionResult;\n\n/*\n * A function to be called when a key is pressed, the ctrl+space is triggered or when the search for\n * completionResults is done.\n * If there is a completionResult, returns it, otherwise starts a new async search.\n * Will only execute the autocompletion if the current cursor position is not inside a string\n */\nfunction getCompletionResults(context: CompletionContext): CompletionResult | null {\n const isCursorInsideString = isCurrentPositionInsideString(context.state.doc.toString().substring(0, context.pos));\n if (isCursorInsideString) {\n return null;\n };\n\n if (completionResults) {\n const finalCompletionResults: CompletionResult = { ...completionResults };\n const codeLength = context.state.doc.toString().length;\n finalCompletionResults.from = finalCompletionResults.from > codeLength ? codeLength : finalCompletionResults.from;\n completionResults = null as unknown as CompletionResult;\n return finalCompletionResults;\n }\n startCompletionResultsSearch(context);\n return null;\n}\n\nlet cancelLastCompletionSearch: () => void = () => { };\nlet codeMirrorViewElement!: HTMLElement;\n\n/*\n * Starts a new completionResults's async search.\n * Avoids the last search to be finished by calling the \"cancelLastCompletionSearch\" callback function\n */\nfunction startCompletionResultsSearch(context: CompletionContext): void {\n const token = new AbortController();\n setTimeout(() => {\n if (!token.signal.aborted) {\n showAutocompleteLoadingState();\n searchCompletionResults(context, token);\n }\n }, 500);\n\n /*\n * IMPORTANT: The following lines MUST be the way they are!\n * Here is being add the listener to any keydown/click event so when any key is downed or mouse clicked, we cancel\n * the last request.\n * We do this to not show to the user a completionItem in an incorrect place of text, that can be done by either\n * pressing the * arrows, home, end, backspace and etc. The flow is:\n * 1. We add an eventListener to keydown/click when the autocompletion's request is triggered;\n * 2. When any key/click is pressed, we remove the listener and cancel the last request by changing the\n * isSearchCanceled on token object to true;\n * 3. If any key that requires autocompletion is triggered, the flow repeats;\n */\n codeMirrorViewElement = CodeMirror6Core.getEditorView().contentDOM;\n\n cancelLastCompletionSearch = () => {\n codeMirrorViewElement.removeEventListener('keydown', cancelLastCompletionSearch);\n codeMirrorViewElement.removeEventListener('click', cancelLastCompletionSearch);\n token.abort();\n };\n\n codeMirrorViewElement.addEventListener('keydown', cancelLastCompletionSearch);\n codeMirrorViewElement.addEventListener('click', cancelLastCompletionSearch);\n}\n\n/*\n * Requests the necessary items to fill the completionResults, although it only really opens the autocomplete\n * box (by calling the \"startCompletion()\", that calls the \"getCompletionResults\") if the current search\n * was not cancelled by a new one\n */\nasync function searchCompletionResults(context: CompletionContext, token: AbortController): Promise<void> {\n const codeBeforeCursor = context?.state?.doc?.toString().substring(0, context?.pos ?? 0) ?? '';\n const filter = getFilter(codeBeforeCursor);\n const path = getPath(codeBeforeCursor, filter.length);\n const requests: SafeResponse[] = getRequestsBasedOnPath(path, filter, token.signal);\n\n Promise.all(requests).then((responses) => {\n if (!token.signal.aborted) {\n const completions = ([] as Completion[]).concat(\n getKeywordsCompletions(path),\n getContextsCompletions(responses as Response[]),\n getExpressionsCompletions(responses as Response[]),\n getEntitiesCompletions(responses as Response[]),\n );\n const filteredCompletions: Completion[] = getFilteredCompletions(completions, filter);\n\n if (filteredCompletions.length) {\n const formattedCompletions: Completion[] = getFormattedCompletions(filteredCompletions, filter);\n const sortedCompletions: Completion[] = getSortedCompletions(formattedCompletions);\n\n completionResults = {\n from: context.pos,\n filter: false,\n options: sortedCompletions,\n };\n startCompletion(CodeMirror6Core.getEditorView());\n } else {\n showAutocompleteEmptyState();\n }\n }\n });\n}\n\n/*\n * Returns the filter in the code written.\n * For example in the code \"controladoria.empresa\", \"empresa\" would be the filter\n * and in \"controladoria\", \"controladoria\" would be the filter.\n * Allows only alphanumerics, underscore and hashtag on filter's start.\n * Does not allow spaces\n */\nfunction getFilter(string: string): string {\n if (string === undefined || string === null) {\n return '';\n }\n\n const regex = /(#|\\.|)\\w*$/;\n const match = regex.exec(string);\n const filter = match ? match[0] : '';\n return filter.replace('.', '').trim();\n}\n\n/*\n * Returns the path in the code written based on filter.\n * For example in the code \"controladoria.empresa\", \"controladoria\" would be the path\n * and in \"controladoria\", \"\" would be the path.\n * Does not allow spaces\n */\nfunction getPath(string: string, filterLength: number): string {\n if (string === undefined || string === null) {\n return '';\n }\n\n const stringWithoutPath = string.substring(0, string.length - filterLength);\n const regex = /(\\w*\\.)*$/;\n const match = regex.exec(stringWithoutPath);\n const path = match ? match[0] : '';\n return path.replace(/\\.$/, '');\n}\n\nfunction getRequestsBasedOnPath(path: string, filter: string, abortSignal: AbortSignal): SafeResponse[] {\n const languageConfigs: TaxCalculationConfigs = getLanguageConfigs();\n const requests: SafeRequest[] = [];\n\n if (path === '') {\n requests.push({\n requestType: RequestTypes.ListContextMetadataById,\n request: AutocompleteService.listContextMetadataById(\n {\n id: languageConfigs.contexts,\n },\n abortSignal,\n ),\n });\n requests.push({\n requestType: RequestTypes.ListExpressionMetadata,\n request: AutocompleteService.listExpressionMetadata(\n {\n context: languageConfigs.contexts,\n subcontext: languageConfigs.subContexts ?? [],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 20,\n },\n },\n abortSignal,\n ),\n });\n } else if (path.includes('.')) {\n const splittedPath = path.split('.');\n requests.push({\n requestType: RequestTypes.GetFacadeMetadataByPath,\n request: AutocompleteService.getFacadeMetadataByPath(\n {\n context: splittedPath[0],\n entityName: splittedPath[1],\n fields: splittedPath[2] === undefined ? undefined : splittedPath.slice(2),\n },\n abortSignal,\n ),\n });\n } else {\n requests.push({\n requestType: RequestTypes.ListFacadeMetadataNames,\n request: AutocompleteService.listFacadeMetadataNames(\n {\n context: [path],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 30,\n },\n },\n abortSignal,\n ),\n });\n }\n\n return requests.map((request) => getSafeResponse(request)) as SafeResponse[];\n}\n\nfunction getKeywordsCompletions(path: string): Completion[] {\n if (path !== '') {\n return [];\n }\n\n const completions = [\n {\n label: Keywords.SE,\n apply: 'SE ()\\nENTAO\\n\\tacao\\nFIM_SE',\n },\n {\n label: Keywords.SENAO,\n apply: 'SENAO\\n\\tacao',\n },\n {\n label: Keywords.CONTENHA,\n apply: 'CONTENHA(condicao)',\n },\n {\n label: Keywords.ENTAO,\n apply: 'ENTAO\\n\\tacao',\n },\n {\n label: Keywords.FIM_SE,\n apply: 'FIM_SE ',\n },\n {\n label: Keywords.NAO,\n apply: 'NAO ',\n },\n {\n label: Keywords.E,\n apply: 'E ',\n },\n {\n label: Keywords.OU,\n apply: 'OU ',\n },\n ];\n\n return completions.map((completionItem) => ({\n ...completionItem,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_keyword`),\n type: CompletionTypes.Keyword,\n }));\n}\n\nfunction getContextsCompletions(responses: Response[] = []): Completion[] {\n const contextsResponse: Response<ListContextMetadataByIdResponse> | undefined = responses.find(\n (response) => response?.requestType === RequestTypes.ListContextMetadataById,\n );\n\n if (contextsResponse) {\n return (contextsResponse.response?.contextMetadata ?? []).map((contextMetadata) => ({\n label: contextMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_context`),\n apply: contextMetadata.name,\n type: CompletionTypes.Context,\n }));\n }\n\n return [];\n}\n\nfunction getExpressionsCompletions(responses: Response[] = []): Completion[] {\n const expressionsResponse: Response<ListExpressionMetadataResponse> | undefined = responses.find(\n (response) => response?.requestType === RequestTypes.ListExpressionMetadata,\n );\n\n if (expressionsResponse) {\n return (expressionsResponse.response?.expressionMetadata ?? []).map((expressionMetadata) => ({\n label: expressionMetadata.name,\n detail: CustomTranslationsService.translate(\n `${TRANSLATION_PREFIX}_${expressionMetadata.type === MetaType.PUBLIC_EXPRESSION ? 'senior_expression' : 'user_expression'\n }`,\n ),\n apply: expressionMetadata.name,\n info: expressionMetadata.description,\n type:\n expressionMetadata.type === MetaType.PUBLIC_EXPRESSION\n ? CompletionTypes.Expression\n : CompletionTypes.UserExpression,\n }));\n }\n\n return [];\n}\n\nfunction getEntitiesCompletions(responses: Response[] = []): Completion[] {\n const facadesResponseFromList: Response<ListFacadeMetadataNamesResponse> | undefined = responses.find(\n (response) => response?.requestType === RequestTypes.ListFacadeMetadataNames,\n );\n\n if (facadesResponseFromList) {\n return (facadesResponseFromList.response?.facadeMetadataNames ?? []).map((facade) => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_entity`),\n apply: facade.name,\n type: CompletionTypes.Entity,\n }));\n }\n\n const facadesResponseFromGet: Response<GetFacadeMetadataByPathResponse> | undefined = responses.find(\n (response) => response?.requestType === RequestTypes.GetFacadeMetadataByPath,\n );\n\n if (facadesResponseFromGet) {\n return (facadesResponseFromGet.response?.facadeMetadata?.fields ?? []).map((facade) => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(\n `${TRANSLATION_PREFIX}_${facade.type === MetaType.ENTITY ? 'entity' : 'field'}`,\n ),\n apply: facade.name,\n type: facade.type === MetaType.ENTITY ? CompletionTypes.Entity : CompletionTypes.FinalValue,\n }));\n }\n\n return [];\n}\n\n/*\n * Filtering the completions to only deal with the necessary items\n */\nfunction getFilteredCompletions(completions: Completion[], filter: string): Completion[] {\n return completions.filter((completionItem) => completionItem.label.toLowerCase().startsWith(filter.toLowerCase()));\n}\n\n/*\n * Overwriting the completions's apply to remove the entire current written value and apply the the entire\n * completion's apply\n */\nfunction getFormattedCompletions(completions: Completion[], filter: string): Completion[] {\n return completions.map((completionItem) => ({\n ...completionItem,\n apply: getCompletionApply(filter, `${completionItem.apply}`),\n }));\n}\n\nfunction getCompletionApply(\n filter: string,\n oldApplyText: string,\n): (view: EditorView, completion: Completion, from: number, to: number) => void {\n return (view: EditorView, completion: Completion, from: number, to: number): void => {\n const newFrom = from - filter.length;\n\n view.dispatch({\n changes: {\n to,\n from: newFrom,\n insert: oldApplyText,\n },\n selection: {\n anchor: newFrom + oldApplyText.length,\n },\n userEvent: 'input.complete',\n annotations: pickedCompletion.of(completion),\n });\n };\n}\n\nconst completionsSortOrder: CompletionTypes[] = [\n CompletionTypes.Keyword,\n CompletionTypes.Context,\n CompletionTypes.UserExpression,\n CompletionTypes.Expression,\n CompletionTypes.Entity,\n CompletionTypes.FinalValue,\n];\n\n/*\n * Sorts the completions following the \"completionsSortOrder\" priority order\n */\nfunction getSortedCompletions(completions: Completion[]): Completion[] {\n return completions.sort((x: Completion, y: Completion) => {\n const xPriority = completionsSortOrder.indexOf(x.type as CompletionTypes);\n const yPriority = completionsSortOrder.indexOf(y.type as CompletionTypes);\n\n return xPriority - yPriority;\n });\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { baseConfigs } from \"./extensions/base-configs/base-configs\";\nimport { autocomplete } from \"./extensions/autocomplete/autocomplete\";\n\nexport function TaxCalculation(): LanguageSupport {\n return new LanguageSupport(\n baseConfigs,\n [\n autocomplete(),\n ]\n );\n}\n","import { LanguageSupport, LRLanguage } from \"@codemirror/language\";\nimport { buildParser } from \"@lezer/generator\";\nimport { styleTags, tags } from \"@codemirror/highlight\";\n\nconst jsonGrammar = `\n@top JsonDocument { JsonValue }\n\nJsonValue {\n JsonObject |\n JsonArray |\n JsonString |\n JsonNumber |\n JsonBoolean |\n JsonNull\n}\n\nJsonObject {\n \"{\" (JsonPair (\",\" JsonPair)*)? \"}\"\n}\n\nJsonPair {\n JsonString \":\" JsonValue\n}\n\nJsonArray {\n \"[\" (JsonValue (\",\" JsonValue)*)? \"]\"\n}\n\n@tokens {\n JsonString { '\"' (![\\\\n\"])* '\"'? }\n JsonNumber {\n '-'? std.digit+\n ('.' std.digit+)?\n ((\"e\" | \"E\") (\"+\" | \"-\")? std.digit+)?\n }\n JsonBoolean { \"true\" | \"false\" }\n JsonNull { \"null\" }\n space { $[ \\t\\n\\r]+ }\n \"{\" \"}\"\n \"[\" \"]\"\n \":\" \",\"\n}\n\n@skip { space }\n\n@detectDelim\n`;\n\nconst jsonLanguage = LRLanguage.define({\n parser: buildParser(jsonGrammar).configure({\n props: [\n styleTags({\n JsonString: tags.string,\n JsonNumber: tags.number,\n \"JsonBoolean JsonNull\": tags.keyword,\n '\"{\"': tags.brace,\n '\"}\"': tags.brace,\n '\"[\"': tags.brace,\n '\"]\"': tags.brace,\n '\":\"': tags.operator,\n '\",\"': tags.punctuation,\n }),\n ],\n }),\n});\n\nexport function Json(): LanguageSupport {\n return new LanguageSupport(jsonLanguage);\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { Languages } from \"../../../../models\";\n\n/* Languages */\nimport { TaxCalculation } from \"./tax-calculation/tax-calculation.language\";\nimport { Json } from \"./json/json.language\";\n\ntype LanguageSupportFactory = () => LanguageSupport\n\nexport class EditorLanguages {\n\n private static _LANGUAGES: Map<Languages, LanguageSupportFactory> = new Map([\n [Languages.TaxCalculation, TaxCalculation],\n [Languages.Json, Json]\n ]);\n\n public static getLanguage(language: Languages): LanguageSupport {\n const languageSupportFactory = EditorLanguages._LANGUAGES.get(language);\n if (languageSupportFactory) return languageSupportFactory();\n return [] as unknown as LanguageSupport;\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the editor in general\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \"&.cm-editor.cm-focused\": {\n outline: \"none\",\n },\n });\n}\n","import { HighlightStyle, tags } from \"@codemirror/highlight\";\n\nexport const SDSLightHighlightStyle: HighlightStyle = HighlightStyle.define([\n {\n tag: tags.keyword,\n color: \"#008080\",\n },\n {\n tag: tags.string,\n color: \"#9C3A3A\",\n },\n {\n tag: tags.number,\n color: \"#400753\",\n },\n]);\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a vertical scrollbar when the editor's height overflows the parent's height\n * @returns An extension containing everything needed to add the scrollbar\n */\nexport function scrollbars(): Extension {\n return [\n style()\n ];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \"&.cm-editor\": {\n \"height\": \"100%\"\n },\n\n });\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport { StyleSpec } from \"style-mod\";\n\n/**\n * Adds style to editor'font\n * @returns An extension containing everything needed to add the font style\n */\nexport function fontStyle(): Extension {\n return [style()];\n}\n\nconst generalFontStyle: StyleSpec = {\n \"font-family\": \"'Noto Sans Mono', 'sans-serif'\",\n \"font-style\": \"normal\",\n \"font-size\": \"1rem\",\n};\n\nfunction style() {\n return EditorView.theme({\n \".cm-scroller\": {\n ...generalFontStyle,\n \"letter-spacing\": \"0\",\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 400\",\n \"color\": \"#333333\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n ...generalFontStyle,\n \"font-variation-settings\": \"'wght' 300\",\n \"color\": \"#697882\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionLabel\": {\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 500\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"font-size\": \"0.875em\",\n \"font-style\": \"normal\",\n \"margin-left\": \"0.75rem\",\n },\n });\n}\n","import { lineNumbers } from \"@codemirror/gutter\"\nimport { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a line counter\n * @returns An extension containing everything needed to add the line counter\n */\nexport function lineCounter(): Extension {\n return [\n lineNumbers(),\n style()\n ];\n}\n\nfunction style() {\n return EditorView.theme(\n {\n \".cm-gutters\": {\n \"background-color\": \"#fff\",\n \"color\": \"#428BCA\",\n \"border-right\": \"none\"\n },\n \".cm-gutter\": {\n \"padding\": \"0 2rem 0 2rem\"\n }\n }\n );\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds styles to the autocomplete's tooltip\n * @returns An extension containing everything needed to add the style\n */\nexport function autocompleteTooltip(): Extension {\n return [style()];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \".cm-tooltip\": {\n \"border\": \"none !important\",\n \"border-radius\": \"4px\",\n \"background-color\": \"#E5EAEA !important\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul[role='listbox']\": {\n \"padding\": \"1rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"margin-left\": \".75rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::before\": {\n \"content\": \"'[ '\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::after\": {\n \"content\": \"' ]'\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionIcon\": {\n \"padding-right\": 0,\n \"margin-right\": \".475rem\",\n \"width\": \"1rem\",\n },\n\n \".cm-tooltip-autocomplete ul li[aria-selected]\": {\n \"border-radius\": \"4px\",\n \"background-color\": \"#5D96A2 !important\",\n \"color\": \"#fff !important\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right\": {\n \"border-radius\": \"3px\",\n \"box-shadow\": \"0 2px 4px -1px rgb(0 0 0 / 20%), 0 4px 5px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 rgb(0 0 0 / 12%)\",\n \"background\": \"#495057 !important\",\n \"color\": \"#fff\",\n \"padding\": \".5rem\",\n \"left\": \"101.6%\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right::before\": {\n \"content\": \"''\",\n \"position\": \"absolute\",\n \"width\": 0,\n \"height\": 0,\n \"top\": \".8125rem\",\n \"left\": \"-.25rem\",\n \"margin-top\": \"-.25rem\",\n \"border-color\": \"transparent\",\n \"border-style\": \"solid\",\n \"border-right-color\": \"#495057\",\n \"border-width\": \".25rem .25rem .25rem 0\",\n },\n });\n}\n","import { EditorTheme } from \"../../models\";\n\n/* General Style */\nimport { style } from \"./sds-light-style\";\n\n/* HighlightStyle */\nimport { SDSLightHighlightStyle } from \"./sds-light-highlight-style\";\n\n/* Theme's Extensions */\nimport { scrollbars } from \"./extensions/scrollbars\";\nimport { fontStyle } from \"./extensions/font-style\";\nimport { lineCounter } from \"./extensions/line-counter\";\nimport { autocompleteTooltip } from \"./extensions/autocomplete-tooltip\";\n\nexport function SDSLight(): EditorTheme {\n return [\n [\n style(),\n scrollbars(),\n fontStyle(),\n lineCounter(),\n autocompleteTooltip()\n ], \n SDSLightHighlightStyle\n ];\n}\n","import { Themes } from \"../../../../models\";\nimport { EditorTheme } from \"../models\";\n\n/* Themes */\nimport { SDSLight } from \"./sds-light/sds-light-theme\";\n\ntype EditorThemeFactory = () => EditorTheme; \n\nexport class EditorThemes {\n\n private static _THEMES: Map<Themes, EditorThemeFactory> = new Map([\n [Themes.SDSLight, SDSLight]\n ]);\n\n public static getTheme(theme: Themes): EditorTheme {\n const EditorThemeFactory = EditorThemes._THEMES.get(theme);\n if (EditorThemeFactory) return EditorThemeFactory();\n return [] as unknown as EditorTheme;\n }\n}\n","import { setDiagnostics } from '@codemirror/lint';\nimport { EditorState, Extension, StateEffect, TransactionSpec } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { CoreFacade } from '../../../core/facades/core-facade';\nimport { Marker } from '../../../core/models';\nimport { EditorOptions, Languages, Themes } from '../../../models';\nimport { EditorLanguages } from './languages/editor-languages';\nimport { EditorThemes } from './themes/editor-themes';\nimport { convertMarkersToDiagnostics } from './utils';\n\nexport class CodeMirror6Core extends CoreFacade {\n public static readonly $onCompletionItemsUpdate: Subject<string[]> = new Subject();\n private static readonly _ngUnsubscribe: Subject<void> = new Subject();\n private static _editorView: EditorView | null = null;\n\n /* These are necessary for the setCode and setEditorOptions can be called before view has been created */\n private _codeReceivedBeforeViewCreation = '';\n private _editorOptionsReceivedBeforeViewCreation: Extension = [];\n\n constructor() {\n super();\n }\n\n public static getEditorView(): EditorView {\n return CodeMirror6Core._editorView as EditorView;\n }\n\n public static updateEditorView(...transactionSpecs: TransactionSpec[]): void {\n CodeMirror6Core._editorView?.dispatch(...transactionSpecs);\n }\n\n public setCoreWrapperElement(element: HTMLDivElement): void {\n this.createEditorView(element);\n }\n\n public setCode(code: string): void {\n this.changeEditorContent(code);\n }\n\n public initCore(): void {\n this.setObservablesListeners();\n }\n\n public destroyCore(): void {\n this._codeReceivedBeforeViewCreation = '';\n CodeMirror6Core._editorView = null;\n CodeMirror6Core._ngUnsubscribe.next();\n CodeMirror6Core._ngUnsubscribe.complete();\n }\n\n protected setCoreEditorOptions(options: EditorOptions): void {\n const language = EditorLanguages.getLanguage(options.language as Languages);\n const theme = EditorThemes.getTheme(options.theme as Themes);\n\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n effects: StateEffect.reconfigure.of([language, theme, this.getCodeChangeListenerExtension()]),\n });\n } else {\n this._editorOptionsReceivedBeforeViewCreation = [language, theme];\n }\n }\n\n protected highlightCode(markers: Marker[]): void {\n const diagnostics = convertMarkersToDiagnostics(\n markers,\n CodeMirror6Core._editorView?.state.doc.length as number,\n );\n\n CodeMirror6Core.updateEditorView(\n setDiagnostics(CodeMirror6Core._editorView?.state as EditorState, diagnostics),\n );\n }\n\n private setObservablesListeners(): void {\n CodeMirror6Core.$onCompletionItemsUpdate\n .pipe(takeUntil(CodeMirror6Core._ngUnsubscribe))\n .subscribe((items) => this.updateCompletionItems(items));\n }\n\n private createEditorView(parentElement: HTMLElement): void {\n CodeMirror6Core._editorView = new EditorView({\n parent: parentElement,\n state: EditorState.create({\n doc: this._codeReceivedBeforeViewCreation,\n extensions: [this._editorOptionsReceivedBeforeViewCreation, this.getCodeChangeListenerExtension()],\n }),\n });\n\n this.notifyCoreFinishLoad();\n }\n\n private getCodeChangeListenerExtension(): Extension {\n return EditorView.updateListener.of(\n (update) => update.docChanged && this.notifyCodeChange(update.state.doc.toString()),\n );\n }\n\n private changeEditorContent(code: string): void {\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n changes: {\n from: 0,\n to: CodeMirror6Core._editorView.state.doc.length,\n insert: code,\n },\n });\n } else {\n this._codeReceivedBeforeViewCreation = code;\n }\n }\n\n protected setCodeWithCursorPreservation(code: string): void {\n if (CodeMirror6Core._editorView) {\n const currentCode = CodeMirror6Core._editorView.state.doc.toString();\n\n // Só atualiza se o conteúdo for realmente diferente\n if (currentCode !== code) {\n const currentSelection = CodeMirror6Core._editorView.state.selection.main;\n\n CodeMirror6Core.updateEditorView({\n changes: {\n from: 0,\n to: CodeMirror6Core._editorView.state.doc.length,\n insert: code,\n },\n selection: {\n anchor: Math.min(currentSelection.anchor, code.length),\n head: Math.min(currentSelection.head, code.length),\n },\n });\n }\n } else {\n this._codeReceivedBeforeViewCreation = code;\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { CodeEditorComponent } from \"./code-editor.component\";\nimport { CoreFacade } from \"./core/facades/core-facade\";\nimport { CodeMirror6Core } from \"./infra/cores/codemirror-6/codemirror-6-core\";\nimport { CustomTranslationsModule } from \"./infra/utils/custom-translations/custom-translations.module\";\n\n@NgModule({\n imports: [CommonModule, CustomTranslationsModule],\n declarations: [CodeEditorComponent],\n exports: [CodeEditorComponent],\n providers: [\n {\n provide: CoreFacade,\n useClass: CodeMirror6Core,\n },\n ],\n})\nexport class CodeEditorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CoreFacade","style"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-code-editor.mjs","sources":["../../projects/angular-components/code-editor/src/lib/code-editor/models/enums/languages.ts","../../projects/angular-components/code-editor/src/lib/code-editor/models/enums/themes.ts","../../projects/angular-components/code-editor/src/lib/code-editor/models/index.ts","../../projects/angular-components/code-editor/src/lib/code-editor/core/use-cases/core-linters.ts","../../projects/angular-components/code-editor/src/lib/code-editor/core/facades/core-facade.ts","../../projects/angular-components/code-editor/src/lib/code-editor/code-editor.component.ts","../../projects/angular-components/code-editor/src/lib/code-editor/code-editor.component.html","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-http-client/custom-http-client.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-translations/custom-translations-service.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/utils/custom-translations/custom-translations.module.ts","../../projects/angular-components/code-editor/src/lib/code-editor/core/models/enums/marker-severity.ts","../../projects/angular-components/code-editor/src/lib/code-editor/core/models/index.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/json/json.language.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/languages/editor-languages.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/themes/editor-themes.ts","../../projects/angular-components/code-editor/src/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.ts","../../projects/angular-components/code-editor/src/lib/code-editor/code-editor.module.ts","../../projects/angular-components/code-editor/src/seniorsistemas-angular-components-code-editor.ts"],"sourcesContent":["export enum Languages {\n TaxCalculation = \"TaxCalculation\",\n Json = \"Json\"\n}\n","export enum Themes {\n SDSLight = \"SDSLight\"\n}\n","/* Interfaces */\nexport * from \"./interfaces/editor-options\";\n\n/* Enums */\nexport * from \"./enums/languages\";\nexport * from \"./enums/themes\";\n","import { Languages } from \"../../models\";\nimport { LinterFacade } from \"../facades/linter-facade\";\n\ntype LinterFacadeFactory = () => LinterFacade;\n\nexport class CoreLinters {\n\n private static readonly _LINTERS: Map<Languages, LinterFacadeFactory> = new Map([]);\n\n public static getLinter(language: Languages): LinterFacade | undefined {\n const languageLinterFactory = CoreLinters._LINTERS.get(language);\n if (languageLinterFactory) {\n return languageLinterFactory();\n }\n return undefined;\n }\n}\n","import { Observable, ReplaySubject, Subject } from 'rxjs';\n\nimport { EditorOptions, Languages, Themes } from '../../models';\nimport { Marker } from '../models';\nimport { CoreLinters } from '../use-cases/core-linters';\nimport { LinterFacade } from './linter-facade';\n\nexport abstract class CoreFacade {\n private readonly $onCoreFinishLoad: ReplaySubject<void> = new ReplaySubject(1);\n private readonly $onCodeChange: Subject<string> = new Subject();\n private readonly $onCodeValidityChange: Subject<boolean> = new Subject();\n private _completionItems: string[] = [];\n private _lastCodeEmitted = '';\n private _lastCodeValidityEmitted!: boolean;\n private _linter!: LinterFacade;\n\n public changeEditorOptions(options: EditorOptions): void {\n if (options) {\n if (typeof options !== 'object') {\n throw new Error(\"Editor's options must be an EditorOptions object\");\n }\n\n this.validateLanguage(options.language as Languages);\n this.validateTheme(options.theme as Themes);\n this.setLinter(options.language as Languages);\n\n this.setCoreEditorOptions(options);\n }\n }\n\n public changeCode(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this.setCode(safeCode);\n }\n }\n\n public setPayload(payload: string): void {\n const safeCode = this.getSafeCode(payload);\n // Força a atualização sem verificar _lastCodeEmitted,\n // mas preserva o cursor verificando no nível do editor\n this.setCodeWithCursorPreservation(safeCode);\n }\n\n protected abstract setCodeWithCursorPreservation(code: string): void;\n\n public abstract initCore(): void;\n public abstract destroyCore(): void;\n\n public abstract setCoreWrapperElement(element: HTMLDivElement): void;\n public abstract setCode(code: string): void;\n\n public getOnCoreFinishLoadObservable(): Observable<void> {\n return this.$onCoreFinishLoad.asObservable();\n }\n\n public getOnCodeChangeObservable(): Observable<string> {\n return this.$onCodeChange.asObservable();\n }\n\n public getOnCodeValidityChangeObservable(): Observable<boolean> {\n return this.$onCodeValidityChange.asObservable();\n }\n\n protected abstract setCoreEditorOptions(options: EditorOptions): void;\n protected abstract highlightCode(markers: Marker[]): void;\n\n protected notifyCoreFinishLoad(): void {\n this.$onCoreFinishLoad.next();\n }\n\n protected notifyCodeChange(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this._lastCodeEmitted = safeCode;\n this.$onCodeChange.next(safeCode);\n this.validateCode(safeCode);\n }\n }\n\n protected updateCompletionItems(items: string[]): void {\n this._completionItems = items || [];\n this.validateCode(this._lastCodeEmitted);\n }\n\n private setLinter(language: Languages): void {\n this._linter = CoreLinters.getLinter(language) as LinterFacade;\n }\n\n private async validateCode(code: string): Promise<void> {\n if (this._linter) {\n const markers: Marker[] = await this._linter.lint(code, this._completionItems);\n this.highlightCode(markers);\n this.notifyCodeValidityChange(!markers.length);\n }\n }\n\n private notifyCodeValidityChange(validity: boolean): void {\n if (validity !== this._lastCodeValidityEmitted) {\n this._lastCodeValidityEmitted = validity;\n this.$onCodeValidityChange.next(validity);\n }\n }\n\n private validateLanguage(language: Languages): void {\n const languages = Object.values(Languages);\n if (language && !languages.includes(language)) {\n throw new Error(`The informed language \"${language}\" is not supported`);\n }\n }\n\n private validateTheme(theme: Themes): void {\n const themes = Object.values(Themes);\n if (theme && !themes.includes(theme)) {\n throw new Error(`The informed theme \"${theme}\" is not supported`);\n }\n }\n\n private getSafeCode(code: string): string {\n return typeof code === 'string' ? code : '';\n }\n}\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { CoreFacade } from './core/facades/core-facade';\nimport { EditorOptions } from './models';\n\n/**\n * @description Componente de editor de código com syntax highlighting, construído sobre\n * um editor Monaco/CodeMirror. Implementa {@link ControlValueAccessor} para integração\n * com formulários Angular e suporta configuração de linguagem, tema e opções avançadas\n * do editor via `editorOptions`.\n *\n * @example\n * ```html\n * <s-code-editor\n * formControlName=\"script\"\n * [editorOptions]=\"{ language: 'javascript', theme: 'vs-dark' }\"\n * (codeChange)=\"onCodeChange($event)\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-code-editor',\n templateUrl: './code-editor.component.html',\n styleUrls: ['./code-editor.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CodeEditorComponent),\n multi: true,\n },\n ],\n})\nexport class CodeEditorComponent implements OnInit, AfterViewInit, ControlValueAccessor, OnDestroy {\n /**\n * @description Opções de configuração do editor (linguagem, tema, readonly, etc.).\n * Ao atribuir um novo valor, as opções são aplicadas imediatamente ao editor.\n */\n @Input()\n public set editorOptions(options: EditorOptions | undefined) {\n if (options) {\n this.coreFacade.changeEditorOptions(options);\n }\n }\n\n /**\n * @description Conteúdo textual do editor. Ao atribuir, o código é propagado ao núcleo do editor.\n */\n @Input()\n public set code(code: string) {\n this.coreFacade.changeCode(code);\n }\n\n /**\n * @description Indica se o código atual é válido segundo as regras do editor.\n * Pode ser usado para exibir indicadores visuais de erro.\n *\n * @default false\n */\n @Input() isCodeValid: boolean | undefined = false;\n\n /**\n * @description Payload adicional passado ao núcleo do editor, utilizado para\n * contexto de autocompletar ou validações específicas da linguagem.\n */\n @Input()\n public set payload(payload: string) {\n this.coreFacade.setPayload(payload);\n }\n\n /** @description Emitido sempre que o conteúdo do editor é alterado. Emite o código atual como string. */\n @Output()\n public codeChange = new EventEmitter<string>();\n\n /** @description Emitido quando o estado de validade do código muda. */\n @Output()\n public isCodeValidChange = new EventEmitter<boolean>();\n\n /**\n * @deprecated Use `codeChange` ao invés deste output.\n * @description Emitido sempre que o conteúdo do editor é alterado.\n */\n @Output()\n public onCodeChange = new EventEmitter<string>();\n\n /** @description Emitido quando o componente finaliza o carregamento e o editor está pronto para uso. */\n @Output()\n public onComponentFinishLoad = new EventEmitter<void>();\n\n @ViewChild('coreWrapper')\n private readonly coreWrapperElement: ElementRef | null = null;\n\n private readonly _ngUnsubscribe = new Subject<void>();\n\n private _onChange: (value: string) => void = () => {};\n private _onTouched: () => void = () => {};\n\n constructor(private readonly coreFacade: CoreFacade) {}\n\n public writeValue(value: string): void {\n this.code = value;\n }\n\n public registerOnChange(onChange: (value: string) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public ngOnInit(): void {\n this.coreFacade.initCore();\n this.setupCoreListeners();\n }\n\n public ngAfterViewInit(): void {\n this.setCoreWrapperElement();\n }\n\n public ngOnDestroy(): void {\n this.coreFacade.destroyCore();\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n private setCoreWrapperElement(): void {\n this.coreFacade.setCoreWrapperElement(this.coreWrapperElement?.nativeElement as HTMLDivElement);\n }\n\n private setupCoreListeners(): void {\n this.coreFacade\n .getOnCoreFinishLoadObservable()\n .pipe(take(1))\n .subscribe(() => this.onComponentFinishLoad.emit());\n\n this.coreFacade\n .getOnCodeChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((code) => {\n this.codeChange.emit(code);\n this.onCodeChange.emit(code);\n this._onTouched();\n this._onChange(code);\n });\n\n this.coreFacade\n .getOnCodeValidityChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((validity) => {\n this.isCodeValidChange.emit(validity);\n });\n }\n}\n\n","<div #coreWrapper class=\"core-wrapper\"></div>","export default `\n@top Script { statement+ }\n\nstatement[@isGroup=Statement] {\n Keyword |\n String |\n Number\n}\n\n@tokens {\n String { '\"' (![\\\\n\"])* '\"'? }\n\n Number { std.digit+ }\n\n identifierChar { std.asciiLetter | $[_$\\u{a1}-\\u{10ffff}] }\n\n word { identifierChar (identifierChar | std.digit)* }\n\n identifier { word }\n}\n\nKeyword {\n kw<\"SE\">\n kw<\"ENTAO\">\n kw<\"FIM_SE\">\n kw<\"SENAO\">\n kw<\"NAO\">\n kw<\"CONTENHA\">\n kw<\"OU\">\n kw<\"E\">\n}\n\nkw<term> { @specialize[@name={term}]<identifier, term> }\n\n@detectDelim\n`;\n","export enum EnumTypeOrder {\n // Tipo de ordenação - Crescente\n ASC = \"ASC\",\n // Tipo de ordenação - Decrescente\n DESC = \"DESC\"\n}\n","export enum MetaType {\n // Entity\n ENTITY = \"ENTITY\",\n // String\n STRING = \"STRING\",\n // Integer\n INTEGER = \"INTEGER\",\n // Double\n DOUBLE = \"DOUBLE\",\n // Long\n LONG = \"LONG\",\n // BigDecimal\n BIGDECIMAL = \"BIGDECIMAL\",\n // UUID\n UUID = \"UUID\",\n // Date\n DATE = \"DATE\",\n // DateTime\n DATETIME = \"DATETIME\",\n // DateTime\n LOCALDATETIME = \"LOCALDATETIME\",\n // Time\n TIME = \"TIME\",\n // Boolean\n BOOLEAN = \"BOOLEAN\",\n // List\n LIST = \"LIST\",\n // Enum\n ENUM = \"ENUM\",\n // CustomExpression\n CUSTOM_EXPRESSION = \"CUSTOM_EXPRESSION\",\n // PublicExpression\n PUBLIC_EXPRESSION = \"PUBLIC_EXPRESSION\"\n}\n","export enum RequestTypes {\n ListContextMetadataById,\n ListBlobMetadata,\n ListExpressionMetadata,\n ListFacadeMetadataNames,\n GetFacadeMetadataByPath,\n}\n","export enum CompletionTypes {\n Keyword = \"keyword\",\n Context = \"context\",\n Expression = \"expression\",\n UserExpression = \"userExpression\",\n Entity = \"entity\",\n FinalValue = \"finalValue\"\n}\n","export enum Keywords {\n SE = \"SE\",\n SENAO = \"SENAO\",\n CONTENHA = \"CONTENHA\",\n ENTAO = \"ENTAO\",\n FIM_SE = \"FIM_SE\",\n NAO = \"NAO\",\n E = \"E\",\n OU = \"OU\"\n}\n","/* Interfaces */\nexport * from \"./interfaces/tax-calculation-configs\";\nexport * from \"./interfaces/fields-order-by\";\nexport * from \"./interfaces/rec-page-request\";\nexport * from \"./interfaces/list-facade-metadata-names\";\nexport * from \"./interfaces/facade-metadata-name\";\nexport * from \"./interfaces/rec-front-context-metadata\";\nexport * from \"./interfaces/list-context-metadata-by-id\";\nexport * from \"./interfaces/rec-expression-metadata\";\nexport * from \"./interfaces/list-expression-metadata\";\nexport * from \"./interfaces/rec-front-field-metadata\";\nexport * from \"./interfaces/rec-front-facade-metadata\";\nexport * from \"./interfaces/get-facade-metadata-by-path\";\nexport * from \"./interfaces/safe-http-communication\";\nexport * from \"./interfaces/completion-Item\";\n\n/* Enums */\nexport * from \"./enums/enum-type-order\";\nexport * from \"./enums/meta-type\";\nexport * from \"./enums/request-types\";\nexport * from \"./enums/completion-types\";\nexport * from \"./enums/keywords\";\n","import { LRLanguage } from \"@codemirror/language\";\nimport { buildParser } from \"@lezer/generator\";\nimport {\n styleTags,\n tags\n} from \"@codemirror/highlight\";\n\nimport parserGrammar from \"./grammar\";\nimport { Keywords } from \"../../models\";\n\nexport const baseConfigs = LRLanguage.define({\n parser: buildParser(parserGrammar)\n .configure({\n props: [\n styleTags({\n [Object.values(Keywords).join(\" \")]: tags.keyword,\n \"String\": tags.string,\n \"Number\": tags.number,\n })\n ]\n })\n});\n","/**\n * Formats a JSON response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatJsonResponse(response: Response): Promise<any> {\n return response.json();\n}\n","/**\n * Formats a Blob response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatBlobResponse(response: Response): Promise<any> {\n const textResponse = await (await response.blob()).text();\n return JSON.parse(textResponse);\n}\n","import {\n service,\n user\n} from \"@seniorsistemas/senior-platform-data\";\n\nimport {\n formatJsonResponse,\n formatBlobResponse\n} from \"./json-response-formatters\";\n\n/**\n * Custom HttpClient for cases when is not possible to use the Angular's HttpClient\n */\nexport class CustomHttpClient {\n\n private static readonly _responseFormatterMap: Map<string, (response: Response) => Promise<any>> = new Map([\n [\"application/json\", formatJsonResponse],\n [\"application/octet-stream\", formatBlobResponse]\n ]);\n\n /**\n * Executes a Http Get\n * @param url Url to execute the Get on\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async GET<T>(url: string, init: RequestInit = {}): Promise<T> {\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"GET\"\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Executes a Http Post\n * @param url Url to execute the Post on\n * @param body Info to send to server on Post\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async POST<T>(url: string, body: any, init: RequestInit = {}): Promise<T> {\n const headers = new Headers(init.headers);\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Accept\", \"application/json\");\n\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"POST\",\n body: JSON.stringify(body),\n headers,\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Intercepts the original request to add a required header for Senior in case of a internal request\n * @param url Url from the original request\n * @param originalReq Configs from the original request\n * @returns Whether a Promise<Response> if the request was made successfully or an error\n */\n private static async interceptRequest(url: string, originalReq: RequestInit = {}): Promise<Response> {\n try {\n if (!url.includes(\"://\")) {\n const restUrl = await service.getRestUrl();\n const authHeader = await user.getAuthHeader();\n\n const headers = new Headers(originalReq.headers);\n headers.append(\"Authorization\", authHeader);\n\n const request = new Request(\n restUrl + url,\n {\n ...originalReq,\n headers\n }\n );\n return fetch(request);\n }\n\n return fetch(url, originalReq);\n\n } catch (err) {\n throw new Error(`Error fetching requested URL: ${err}`);\n }\n }\n\n /**\n * Formats the request response to an object<T> or {}\n * @param response The response to be formatted\n * @returns Whether a Promise<T> if the response status is in the range 200-299 an error\n */\n private static async formatResponse<T>(response: Response): Promise<T> {\n const contentType = response.headers.get(\"content-type\");\n const formatter = CustomHttpClient._responseFormatterMap.get(contentType as string);\n const formattedContentType = formatter ? await formatter(response) : {};\n\n if (response.ok) return formattedContentType as unknown as T;\n throw new Error(JSON.stringify(formattedContentType));\n }\n}\n","import { HostProjectConfigs } from \"@seniorsistemas/angular-components/common\";\nimport { Translations } from \"./models\";\n\n/**\n * Custom translator for cases when is not possible to use the \"TranslateService\" from \"@ngx-translate/core\"\n */\nexport class CustomTranslationsService {\n\n private static _translations: Translations = {};\n private static _TRANSLATION_PREFIX = \"\";\n\n /**\n * Method used to get the translation for an key based on the host project's translations. Always use the first available language\n * @param key Key used to search the translation\n * @returns The translation for the informed key or the key in case there is no translation\n */\n public static translate(key: string): string {\n if (key === undefined || key === null) {\n return '';\n }\n const translationKey = `${CustomTranslationsService._TRANSLATION_PREFIX}${key}`;\n const firstLanguageTranslations = Object.values(CustomTranslationsService._translations)[0] ?? {};\n return firstLanguageTranslations[translationKey] ?? translationKey;\n }\n\n /**\n * Method used to set the translations that will be used as base when calling the \"translate\" method\n * @param translations Translations to use as base\n */\n public static setTranslations(translations: Translations): void {\n CustomTranslationsService._translations = translations ?? {};\n }\n\n /**\n * Method used to set the prefix that will be used when calling the \"translate\" method\n * @param hostProjectConfigs The host project's configs used to create the prefix\n */\n public static setTranslationsPrefix(hostProjectConfigs: HostProjectConfigs): void {\n const { domain, service } = hostProjectConfigs ?? {};\n const prefix = `${domain}.${service}.`;\n CustomTranslationsService._TRANSLATION_PREFIX = prefix;\n }\n}\n","import {\n NgModule,\n Inject\n} from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { CustomTranslationsService } from \"./index\";\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"@seniorsistemas/angular-components/common\";\n\n/**\n * Responsible for setting up the translations that will be used by the \"CustomTranslationsService\".\n * Uses the host project's translations set by using the \"TranslationsModule\" from \"@seniorsistemas/platform-components\"\n */\n@NgModule()\nexport class CustomTranslationsModule {\n\n constructor(\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {\n this.factoryTranslations(this.translate, this.hostProjectConfigs);\n }\n\n private factoryTranslations(translate: TranslateService, hostProjectConfigs: HostProjectConfigs): void {\n CustomTranslationsService.setTranslations(translate.translations);\n CustomTranslationsService.setTranslationsPrefix(hostProjectConfigs);\n }\n}\n","export enum MarkerSeverity {\n Error,\n Info,\n Warning\n}\n","/* Interfaces */\nexport * from \"./interfaces/marker\";\n\n/* Enums */\nexport * from \"./enums/marker-severity\";\n","import { Diagnostic } from \"@codemirror/lint\";\n\nimport { DiagnosticSeverity } from \"../models\";\nimport {\n Marker,\n MarkerSeverity\n} from \"../../../../core/models\";\n\nconst diagnosticSeverityInMarkerSeverityMap: Map<number, DiagnosticSeverity> = new Map([\n [MarkerSeverity.Error, \"error\"],\n [MarkerSeverity.Info, \"info\"],\n [MarkerSeverity.Warning, \"warning\"]\n]);\n\nexport function convertMarkersToDiagnostics(markers: Marker[], textLength: number): Diagnostic[] {\n return markers.map(marker => ({\n from: marker.start || 0,\n to: marker.end || textLength,\n message: marker.message ?? \"\",\n severity: diagnosticSeverityInMarkerSeverityMap.get(marker.severity) ?? \"error\"\n }));\n}\n","export function isCurrentPositionInsideString(stringBeforeCurrentPosition: string): boolean {\n const doubleQuotesQuantity = stringBeforeCurrentPosition.match(/\"/g)?.length || 0;\n return doubleQuotesQuantity % 2 !== 0;\n}\n","import { CustomHttpClient } from \"../../../../../../utils\";\nimport {\n ListContextMetadataByIdRequest,\n ListContextMetadataByIdResponse,\n ListExpressionMetadataRequest,\n ListExpressionMetadataResponse,\n ListFacadeMetadataNamesRequest,\n ListFacadeMetadataNamesResponse,\n GetFacadeMetadataByPathRequest,\n GetFacadeMetadataByPathResponse,\n} from \"../../models\";\n\nexport class AutocompleteService {\n private static BASE_URL = \"platform/rule_metadata\";\n\n public static async listContextMetadataById(request: ListContextMetadataByIdRequest, abortSignal: AbortSignal): Promise<ListContextMetadataByIdResponse> {\n return CustomHttpClient.POST<ListContextMetadataByIdResponse>(\n `${AutocompleteService.BASE_URL}/queries/listContextMetadataById`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listExpressionMetadata(request: ListExpressionMetadataRequest, abortSignal: AbortSignal): Promise<ListExpressionMetadataResponse> {\n return CustomHttpClient.POST<ListExpressionMetadataResponse>(\n `${AutocompleteService.BASE_URL}/queries/listExpressionMetadata`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listFacadeMetadataNames(request: ListFacadeMetadataNamesRequest, abortSignal: AbortSignal): Promise<ListFacadeMetadataNamesResponse> {\n return CustomHttpClient.POST<ListFacadeMetadataNamesResponse>(\n `${AutocompleteService.BASE_URL}/queries/listFacadeMetadataNames`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async getFacadeMetadataByPath(request: GetFacadeMetadataByPathRequest, abortSignal: AbortSignal): Promise<GetFacadeMetadataByPathResponse> {\n return CustomHttpClient.POST<GetFacadeMetadataByPathResponse>(\n `${AutocompleteService.BASE_URL}/queries/getFacadeMetadataByPath`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to autocomplete's state-wrapper\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".s-code-editor-taxCalculation-autocomplete-ul\": {\n \"padding\": \".75rem !important\",\n },\n\n \".s-code-editor-taxCalculation-autocomplete-li\": {\n cursor: \"default !important\",\n \"line-height\": \"1.375em !important\",\n },\n });\n}\n","import {\n EditorState,\n Extension,\n StateField\n} from '@codemirror/state';\nimport { showTooltip, Tooltip } from '@codemirror/tooltip';\n\nimport { CodeMirror6Core } from '../../../../../../codemirror-6-core';\nimport { style } from './autocomplete-state-wrapper-style';\n\nlet htmlElementToBeWrapped: HTMLElement | null = null;\n\n/**\n * Adds a view updates's listener that creates an state over the autocomplete\n * @returns An extension containing everything needed to listen the updates and create the autocomplete's state\n */\nexport function autocompleteStateWrapper(): Extension {\n return [\n autocompleteStateWrapperStateField(),\n style()\n ];\n}\n\n/**\n * Shows a state on a non-clickable autocomplete item's format with an HTMLElement inside\n * @param element The HTMLElement to show inside the state\n */\nexport function showAutocompleteStateWrapper(element: HTMLElement): void {\n htmlElementToBeWrapped = element;\n CodeMirror6Core.updateEditorView();\n}\n\n/**\n * Removes a possible showed autocomplete state\n */\nexport function hideAutocompleteStateWrapper(): void {\n htmlElementToBeWrapped = null;\n CodeMirror6Core.updateEditorView();\n}\n\n/*\n * Creates and returns a StateField responsible for listening the view's change and to add the autocomplete\n * state's wrapper\n */\nfunction autocompleteStateWrapperStateField(): StateField<Tooltip> {\n return StateField.define({\n create: getAutocompleteStateWrapper,\n update(_, transaction) {\n return getAutocompleteStateWrapper(transaction.state);\n },\n provide(field: any) {\n return showTooltip.compute(\n [field],\n state => state.field(field),\n );\n }\n });\n}\n\n/*\n * Function responsible for creating the state's wrapper and returning the same as a Tooltip from \"@codemirror/tooltip\";\n * Only creates the Tooltip if the theres is element on the \"htmlElementToBeWrapped\" variable;\n * The same will also be removed when any view update is emitted;\n */\nfunction getAutocompleteStateWrapper(state: EditorState): Tooltip | undefined {\n if (!htmlElementToBeWrapped) {\n return undefined;\n }\n\n const htmlElementToBeWrappedString = htmlElementToBeWrapped.outerHTML;\n const stateWrapper: Tooltip = {\n pos: state.selection.ranges[0].head,\n create: () => ({ dom: getAutocompleteStateWrapperDomElement(htmlElementToBeWrappedString) })\n };\n\n htmlElementToBeWrapped = null;\n return stateWrapper;\n}\n\nfunction getAutocompleteStateWrapperDomElement(elementToBeWrappedString: string): HTMLElement {\n const wrapperDiv = document.createElement('div');\n wrapperDiv.className = 'cm-tooltip-autocomplete cm-tooltip';\n wrapperDiv.innerHTML =\n `\n <ul class=\"s-code-editor-taxCalculation-autocomplete-ul\">\n <li class=\"s-code-editor-taxCalculation-autocomplete-li\">\n ${elementToBeWrappedString}\n </li>\n </ul>\n\n `;\n\n return wrapperDiv;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteLoadingStateHTMLElement!: HTMLElement;\n\n/**\n * Adds a loading-state over the autocomplete\n * @returns An extension containing everything needed to add the loading-state\n */\nexport function autocompleteLoadingState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the loading state on the autocomplete\n */\n/*\n * Must set the \"autocompleteLoadingStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteLoadingState(): void {\n if (!autocompleteLoadingStateHTMLElement) {\n autocompleteLoadingStateHTMLElement = getAutocompleteLoadingStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteLoadingStateHTMLElement);\n}\n\nfunction getAutocompleteLoadingStateHTMLElement(): HTMLElement {\n const loadingStateSpanWrapper = document.createElement(\"span\");\n loadingStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_fetching_suggestions\");\n\n return loadingStateSpanWrapper;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteEmptyStateHTMLElement!: HTMLElement;\n\n/**\n * Adds an empty-state over the autocomplete\n * @returns An extension containing everything needed to add the empty-state\n */\nexport function autocompleteEmptyState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the empty-state on the autocomplete\n */\n/*\n * Must set the \"autocompleteEmptyStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteEmptyState(): void {\n if (!autocompleteEmptyStateHTMLElement) {\n autocompleteEmptyStateHTMLElement = getAutocompleteEmptyStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteEmptyStateHTMLElement);\n}\n\nfunction getAutocompleteEmptyStateHTMLElement(): HTMLElement {\n const emptyStateSpanWrapper = document.createElement(\"span\");\n emptyStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_no_suggestions\");\n\n return emptyStateSpanWrapper;\n}\n","import { TaxCalculationConfigs } from \"./models\";\n\nexport * from \"./models/interfaces/tax-calculation-configs\";\n\nexport class TaxCalculationLanguageConfigs {\n\n private static CONFIGS: TaxCalculationConfigs = { contexts: [] };\n\n public static setConfigs(configs: TaxCalculationConfigs): void {\n TaxCalculationLanguageConfigs.CONFIGS = JSON.parse(JSON.stringify(configs));\n }\n\n public static getConfigs(): TaxCalculationConfigs {\n return TaxCalculationLanguageConfigs.CONFIGS;\n }\n}\n","import { TaxCalculationConfigs } from \"../models\";\nimport { TaxCalculationLanguageConfigs } from \"../tax-calculation-language-configs\";\n\n/**\n * Gets the configs for the TaxCalculationLanguage\n * @returns The configs\n */\nexport function getLanguageConfigs(): TaxCalculationConfigs {\n const configs = TaxCalculationLanguageConfigs.getConfigs();\n if (!configs.contexts?.length) throw new Error(\n \"In order to use the TaxCalculation Language's autocomplete, \"\n + \"one must inform at least one context by using the \"\n + \"'TaxCalculationLanguageConfigs.setConfigs()'\"\n );\n return configs;\n}\n","import {\n SafeRequest,\n Response\n} from '../models';\n\n/**\n * Wraps the request to return the same with an identification or undefined in case of error, so the promise will\n * always trigger the \"then\"\n * @param request Request to wrap\n * @returns The typed request's response\n */\nexport async function getSafeResponse(request: SafeRequest): Promise<Response | undefined> {\n try {\n return {\n ...request,\n response: await request.request\n };\n } catch (_) {\n return undefined;\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the autocomplete\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".cm-completionIcon\": {\n \"font-family\": \"'Font Awesome 5 Pro'\",\n \"font-weight\": \"900\",\n },\n\n \".cm-completionIcon-keyword::after\": {\n \"content\": getIconBasedOnUnicode(\"f084\"),\n },\n\n \".cm-completionIcon-context::after\": {\n \"content\": getIconBasedOnUnicode(\"f466\"),\n },\n\n \".cm-completionIcon-expression::after\": {\n \"content\": getIconBasedOnUnicode(\"f505\"),\n },\n\n \".cm-completionIcon-userExpression::after\": {\n \"content\": getIconBasedOnUnicode(\"f4ff\"),\n },\n\n \".cm-completionIcon-entity::after\": {\n \"content\": getIconBasedOnUnicode(\"f126\"),\n },\n\n \".cm-completionIcon-finalValue::after\": {\n \"content\": getIconBasedOnUnicode(\"f192\"),\n },\n });\n}\n\nfunction getIconBasedOnUnicode(unicode: string): string {\n return `\"\\\\${unicode}\"`;\n}\n","import { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport {\n autocompletion,\n Completion,\n CompletionContext,\n CompletionResult,\n pickedCompletion,\n startCompletion,\n} from '@codemirror/autocomplete';\n\nimport { CustomTranslationsService } from '../../../../../../utils';\nimport { CodeMirror6Core } from '../../../../codemirror-6-core';\nimport { isCurrentPositionInsideString } from '../../../../utils';\nimport { AutocompleteService } from './autocomplete.service';\nimport {\n autocompleteLoadingState,\n showAutocompleteLoadingState,\n autocompleteEmptyState,\n showAutocompleteEmptyState,\n} from './autocomplete-states';\nimport {\n TaxCalculationConfigs,\n RequestTypes,\n Response,\n SafeRequest,\n SafeResponse,\n ListContextMetadataByIdResponse,\n CompletionTypes,\n ListExpressionMetadataResponse,\n MetaType,\n GetFacadeMetadataByPathResponse,\n ListFacadeMetadataNamesResponse,\n Keywords,\n} from '../../models';\nimport { getLanguageConfigs, getSafeResponse } from '../../utils';\nimport { style } from './autocomplete-style';\n\n/**\n * Adds an autocomplete to the editor\n * @returns An extension containing everything needed to create the autocomplete\n */\nexport function autocomplete(): Extension {\n return [\n autocompletion({ override: [getCompletionResults] }),\n autocompleteLoadingState(),\n autocompleteEmptyState(),\n style(),\n ];\n}\n\nconst TRANSLATION_PREFIX = 'core_language_tax_calculation';\nlet completionResults!: CompletionResult;\n\n/*\n * A function to be called when a key is pressed, the ctrl+space is triggered or when the search for\n * completionResults is done.\n * If there is a completionResult, returns it, otherwise starts a new async search.\n * Will only execute the autocompletion if the current cursor position is not inside a string\n */\nfunction getCompletionResults(context: CompletionContext): CompletionResult | null {\n const isCursorInsideString = isCurrentPositionInsideString(context.state.doc.toString().substring(0, context.pos));\n if (isCursorInsideString) {\n return null;\n };\n\n if (completionResults) {\n const finalCompletionResults: CompletionResult = { ...completionResults };\n const codeLength = context.state.doc.toString().length;\n finalCompletionResults.from = finalCompletionResults.from > codeLength ? codeLength : finalCompletionResults.from;\n completionResults = null as unknown as CompletionResult;\n return finalCompletionResults;\n }\n startCompletionResultsSearch(context);\n return null;\n}\n\nlet cancelLastCompletionSearch: () => void = () => { };\nlet codeMirrorViewElement!: HTMLElement;\n\n/*\n * Starts a new completionResults's async search.\n * Avoids the last search to be finished by calling the \"cancelLastCompletionSearch\" callback function\n */\nfunction startCompletionResultsSearch(context: CompletionContext): void {\n const token = new AbortController();\n setTimeout(() => {\n if (!token.signal.aborted) {\n showAutocompleteLoadingState();\n searchCompletionResults(context, token);\n }\n }, 500);\n\n /*\n * IMPORTANT: The following lines MUST be the way they are!\n * Here is being add the listener to any keydown/click event so when any key is downed or mouse clicked, we cancel\n * the last request.\n * We do this to not show to the user a completionItem in an incorrect place of text, that can be done by either\n * pressing the * arrows, home, end, backspace and etc. The flow is:\n * 1. We add an eventListener to keydown/click when the autocompletion's request is triggered;\n * 2. When any key/click is pressed, we remove the listener and cancel the last request by changing the\n * isSearchCanceled on token object to true;\n * 3. If any key that requires autocompletion is triggered, the flow repeats;\n */\n codeMirrorViewElement = CodeMirror6Core.getEditorView().contentDOM;\n\n cancelLastCompletionSearch = () => {\n codeMirrorViewElement.removeEventListener('keydown', cancelLastCompletionSearch);\n codeMirrorViewElement.removeEventListener('click', cancelLastCompletionSearch);\n token.abort();\n };\n\n codeMirrorViewElement.addEventListener('keydown', cancelLastCompletionSearch);\n codeMirrorViewElement.addEventListener('click', cancelLastCompletionSearch);\n}\n\n/*\n * Requests the necessary items to fill the completionResults, although it only really opens the autocomplete\n * box (by calling the \"startCompletion()\", that calls the \"getCompletionResults\") if the current search\n * was not cancelled by a new one\n */\nasync function searchCompletionResults(context: CompletionContext, token: AbortController): Promise<void> {\n const codeBeforeCursor = context?.state?.doc?.toString().substring(0, context?.pos ?? 0) ?? '';\n const filter = getFilter(codeBeforeCursor);\n const path = getPath(codeBeforeCursor, filter.length);\n const requests: SafeResponse[] = getRequestsBasedOnPath(path, filter, token.signal);\n\n Promise.all(requests).then((responses) => {\n if (!token.signal.aborted) {\n const completions = ([] as Completion[]).concat(\n getKeywordsCompletions(path),\n getContextsCompletions(responses as Response[]),\n getExpressionsCompletions(responses as Response[]),\n getEntitiesCompletions(responses as Response[]),\n );\n const filteredCompletions: Completion[] = getFilteredCompletions(completions, filter);\n\n if (filteredCompletions.length) {\n const formattedCompletions: Completion[] = getFormattedCompletions(filteredCompletions, filter);\n const sortedCompletions: Completion[] = getSortedCompletions(formattedCompletions);\n\n completionResults = {\n from: context.pos,\n filter: false,\n options: sortedCompletions,\n };\n startCompletion(CodeMirror6Core.getEditorView());\n } else {\n showAutocompleteEmptyState();\n }\n }\n });\n}\n\n/*\n * Returns the filter in the code written.\n * For example in the code \"controladoria.empresa\", \"empresa\" would be the filter\n * and in \"controladoria\", \"controladoria\" would be the filter.\n * Allows only alphanumerics, underscore and hashtag on filter's start.\n * Does not allow spaces\n */\nfunction getFilter(string: string): string {\n if (string === undefined || string === null) {\n return '';\n }\n\n const regex = /(#|\\.|)\\w*$/;\n const match = regex.exec(string);\n const filter = match ? match[0] : '';\n return filter.replace('.', '').trim();\n}\n\n/*\n * Returns the path in the code written based on filter.\n * For example in the code \"controladoria.empresa\", \"controladoria\" would be the path\n * and in \"controladoria\", \"\" would be the path.\n * Does not allow spaces\n */\nfunction getPath(string: string, filterLength: number): string {\n if (string === undefined || string === null) {\n return '';\n }\n\n const stringWithoutPath = string.substring(0, string.length - filterLength);\n const regex = /(\\w*\\.)*$/;\n const match = regex.exec(stringWithoutPath);\n const path = match ? match[0] : '';\n return path.replace(/\\.$/, '');\n}\n\nfunction getRequestsBasedOnPath(path: string, filter: string, abortSignal: AbortSignal): SafeResponse[] {\n const languageConfigs: TaxCalculationConfigs = getLanguageConfigs();\n const requests: SafeRequest[] = [];\n\n if (path === '') {\n requests.push({\n requestType: RequestTypes.ListContextMetadataById,\n request: AutocompleteService.listContextMetadataById(\n {\n id: languageConfigs.contexts,\n },\n abortSignal,\n ),\n });\n requests.push({\n requestType: RequestTypes.ListExpressionMetadata,\n request: AutocompleteService.listExpressionMetadata(\n {\n context: languageConfigs.contexts,\n subcontext: languageConfigs.subContexts ?? [],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 20,\n },\n },\n abortSignal,\n ),\n });\n } else if (path.includes('.')) {\n const splittedPath = path.split('.');\n requests.push({\n requestType: RequestTypes.GetFacadeMetadataByPath,\n request: AutocompleteService.getFacadeMetadataByPath(\n {\n context: splittedPath[0],\n entityName: splittedPath[1],\n fields: splittedPath[2] === undefined ? undefined : splittedPath.slice(2),\n },\n abortSignal,\n ),\n });\n } else {\n requests.push({\n requestType: RequestTypes.ListFacadeMetadataNames,\n request: AutocompleteService.listFacadeMetadataNames(\n {\n context: [path],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 30,\n },\n },\n abortSignal,\n ),\n });\n }\n\n return requests.map((request) => getSafeResponse(request)) as SafeResponse[];\n}\n\nfunction getKeywordsCompletions(path: string): Completion[] {\n if (path !== '') {\n return [];\n }\n\n const completions = [\n {\n label: Keywords.SE,\n apply: 'SE ()\\nENTAO\\n\\tacao\\nFIM_SE',\n },\n {\n label: Keywords.SENAO,\n apply: 'SENAO\\n\\tacao',\n },\n {\n label: Keywords.CONTENHA,\n apply: 'CONTENHA(condicao)',\n },\n {\n label: Keywords.ENTAO,\n apply: 'ENTAO\\n\\tacao',\n },\n {\n label: Keywords.FIM_SE,\n apply: 'FIM_SE ',\n },\n {\n label: Keywords.NAO,\n apply: 'NAO ',\n },\n {\n label: Keywords.E,\n apply: 'E ',\n },\n {\n label: Keywords.OU,\n apply: 'OU ',\n },\n ];\n\n return completions.map((completionItem) => ({\n ...completionItem,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_keyword`),\n type: CompletionTypes.Keyword,\n }));\n}\n\nfunction getContextsCompletions(responses: Response[] = []): Completion[] {\n const contextsResponse: Response<ListContextMetadataByIdResponse> | undefined = responses.find(\n (response) => response?.requestType === RequestTypes.ListContextMetadataById,\n );\n\n if (contextsResponse) {\n return (contextsResponse.response?.contextMetadata ?? []).map((contextMetadata) => ({\n label: contextMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_context`),\n apply: contextMetadata.name,\n type: CompletionTypes.Context,\n }));\n }\n\n return [];\n}\n\nfunction getExpressionsCompletions(responses: Response[] = []): Completion[] {\n const expressionsResponse: Response<ListExpressionMetadataResponse> | undefined = responses.find(\n (response) => response?.requestType === RequestTypes.ListExpressionMetadata,\n );\n\n if (expressionsResponse) {\n return (expressionsResponse.response?.expressionMetadata ?? []).map((expressionMetadata) => ({\n label: expressionMetadata.name,\n detail: CustomTranslationsService.translate(\n `${TRANSLATION_PREFIX}_${expressionMetadata.type === MetaType.PUBLIC_EXPRESSION ? 'senior_expression' : 'user_expression'\n }`,\n ),\n apply: expressionMetadata.name,\n info: expressionMetadata.description,\n type:\n expressionMetadata.type === MetaType.PUBLIC_EXPRESSION\n ? CompletionTypes.Expression\n : CompletionTypes.UserExpression,\n }));\n }\n\n return [];\n}\n\nfunction getEntitiesCompletions(responses: Response[] = []): Completion[] {\n const facadesResponseFromList: Response<ListFacadeMetadataNamesResponse> | undefined = responses.find(\n (response) => response?.requestType === RequestTypes.ListFacadeMetadataNames,\n );\n\n if (facadesResponseFromList) {\n return (facadesResponseFromList.response?.facadeMetadataNames ?? []).map((facade) => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_entity`),\n apply: facade.name,\n type: CompletionTypes.Entity,\n }));\n }\n\n const facadesResponseFromGet: Response<GetFacadeMetadataByPathResponse> | undefined = responses.find(\n (response) => response?.requestType === RequestTypes.GetFacadeMetadataByPath,\n );\n\n if (facadesResponseFromGet) {\n return (facadesResponseFromGet.response?.facadeMetadata?.fields ?? []).map((facade) => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(\n `${TRANSLATION_PREFIX}_${facade.type === MetaType.ENTITY ? 'entity' : 'field'}`,\n ),\n apply: facade.name,\n type: facade.type === MetaType.ENTITY ? CompletionTypes.Entity : CompletionTypes.FinalValue,\n }));\n }\n\n return [];\n}\n\n/*\n * Filtering the completions to only deal with the necessary items\n */\nfunction getFilteredCompletions(completions: Completion[], filter: string): Completion[] {\n return completions.filter((completionItem) => completionItem.label.toLowerCase().startsWith(filter.toLowerCase()));\n}\n\n/*\n * Overwriting the completions's apply to remove the entire current written value and apply the the entire\n * completion's apply\n */\nfunction getFormattedCompletions(completions: Completion[], filter: string): Completion[] {\n return completions.map((completionItem) => ({\n ...completionItem,\n apply: getCompletionApply(filter, `${completionItem.apply}`),\n }));\n}\n\nfunction getCompletionApply(\n filter: string,\n oldApplyText: string,\n): (view: EditorView, completion: Completion, from: number, to: number) => void {\n return (view: EditorView, completion: Completion, from: number, to: number): void => {\n const newFrom = from - filter.length;\n\n view.dispatch({\n changes: {\n to,\n from: newFrom,\n insert: oldApplyText,\n },\n selection: {\n anchor: newFrom + oldApplyText.length,\n },\n userEvent: 'input.complete',\n annotations: pickedCompletion.of(completion),\n });\n };\n}\n\nconst completionsSortOrder: CompletionTypes[] = [\n CompletionTypes.Keyword,\n CompletionTypes.Context,\n CompletionTypes.UserExpression,\n CompletionTypes.Expression,\n CompletionTypes.Entity,\n CompletionTypes.FinalValue,\n];\n\n/*\n * Sorts the completions following the \"completionsSortOrder\" priority order\n */\nfunction getSortedCompletions(completions: Completion[]): Completion[] {\n return completions.sort((x: Completion, y: Completion) => {\n const xPriority = completionsSortOrder.indexOf(x.type as CompletionTypes);\n const yPriority = completionsSortOrder.indexOf(y.type as CompletionTypes);\n\n return xPriority - yPriority;\n });\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { baseConfigs } from \"./extensions/base-configs/base-configs\";\nimport { autocomplete } from \"./extensions/autocomplete/autocomplete\";\n\nexport function TaxCalculation(): LanguageSupport {\n return new LanguageSupport(\n baseConfigs,\n [\n autocomplete(),\n ]\n );\n}\n","import { LanguageSupport, LRLanguage } from \"@codemirror/language\";\nimport { buildParser } from \"@lezer/generator\";\nimport { styleTags, tags } from \"@codemirror/highlight\";\n\nconst jsonGrammar = `\n@top JsonDocument { JsonValue }\n\nJsonValue {\n JsonObject |\n JsonArray |\n JsonString |\n JsonNumber |\n JsonBoolean |\n JsonNull\n}\n\nJsonObject {\n \"{\" (JsonPair (\",\" JsonPair)*)? \"}\"\n}\n\nJsonPair {\n JsonString \":\" JsonValue\n}\n\nJsonArray {\n \"[\" (JsonValue (\",\" JsonValue)*)? \"]\"\n}\n\n@tokens {\n JsonString { '\"' (![\\\\n\"])* '\"'? }\n JsonNumber {\n '-'? std.digit+\n ('.' std.digit+)?\n ((\"e\" | \"E\") (\"+\" | \"-\")? std.digit+)?\n }\n JsonBoolean { \"true\" | \"false\" }\n JsonNull { \"null\" }\n space { $[ \\t\\n\\r]+ }\n \"{\" \"}\"\n \"[\" \"]\"\n \":\" \",\"\n}\n\n@skip { space }\n\n@detectDelim\n`;\n\nconst jsonLanguage = LRLanguage.define({\n parser: buildParser(jsonGrammar).configure({\n props: [\n styleTags({\n JsonString: tags.string,\n JsonNumber: tags.number,\n \"JsonBoolean JsonNull\": tags.keyword,\n '\"{\"': tags.brace,\n '\"}\"': tags.brace,\n '\"[\"': tags.brace,\n '\"]\"': tags.brace,\n '\":\"': tags.operator,\n '\",\"': tags.punctuation,\n }),\n ],\n }),\n});\n\nexport function Json(): LanguageSupport {\n return new LanguageSupport(jsonLanguage);\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { Languages } from \"../../../../models\";\n\n/* Languages */\nimport { TaxCalculation } from \"./tax-calculation/tax-calculation.language\";\nimport { Json } from \"./json/json.language\";\n\ntype LanguageSupportFactory = () => LanguageSupport\n\nexport class EditorLanguages {\n\n private static _LANGUAGES: Map<Languages, LanguageSupportFactory> = new Map([\n [Languages.TaxCalculation, TaxCalculation],\n [Languages.Json, Json]\n ]);\n\n public static getLanguage(language: Languages): LanguageSupport {\n const languageSupportFactory = EditorLanguages._LANGUAGES.get(language);\n if (languageSupportFactory) return languageSupportFactory();\n return [] as unknown as LanguageSupport;\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the editor in general\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \"&.cm-editor.cm-focused\": {\n outline: \"none\",\n },\n });\n}\n","import { HighlightStyle, tags } from \"@codemirror/highlight\";\n\nexport const SDSLightHighlightStyle: HighlightStyle = HighlightStyle.define([\n {\n tag: tags.keyword,\n color: \"#008080\",\n },\n {\n tag: tags.string,\n color: \"#9C3A3A\",\n },\n {\n tag: tags.number,\n color: \"#400753\",\n },\n]);\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a vertical scrollbar when the editor's height overflows the parent's height\n * @returns An extension containing everything needed to add the scrollbar\n */\nexport function scrollbars(): Extension {\n return [\n style()\n ];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \"&.cm-editor\": {\n \"height\": \"100%\"\n },\n\n });\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport { StyleSpec } from \"style-mod\";\n\n/**\n * Adds style to editor'font\n * @returns An extension containing everything needed to add the font style\n */\nexport function fontStyle(): Extension {\n return [style()];\n}\n\nconst generalFontStyle: StyleSpec = {\n \"font-family\": \"'Noto Sans Mono', 'sans-serif'\",\n \"font-style\": \"normal\",\n \"font-size\": \"1rem\",\n};\n\nfunction style() {\n return EditorView.theme({\n \".cm-scroller\": {\n ...generalFontStyle,\n \"letter-spacing\": \"0\",\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 400\",\n \"color\": \"#333333\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n ...generalFontStyle,\n \"font-variation-settings\": \"'wght' 300\",\n \"color\": \"#697882\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionLabel\": {\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 500\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"font-size\": \"0.875em\",\n \"font-style\": \"normal\",\n \"margin-left\": \"0.75rem\",\n },\n });\n}\n","import { lineNumbers } from \"@codemirror/gutter\"\nimport { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a line counter\n * @returns An extension containing everything needed to add the line counter\n */\nexport function lineCounter(): Extension {\n return [\n lineNumbers(),\n style()\n ];\n}\n\nfunction style() {\n return EditorView.theme(\n {\n \".cm-gutters\": {\n \"background-color\": \"#fff\",\n \"color\": \"#428BCA\",\n \"border-right\": \"none\"\n },\n \".cm-gutter\": {\n \"padding\": \"0 2rem 0 2rem\"\n }\n }\n );\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds styles to the autocomplete's tooltip\n * @returns An extension containing everything needed to add the style\n */\nexport function autocompleteTooltip(): Extension {\n return [style()];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \".cm-tooltip\": {\n \"border\": \"none !important\",\n \"border-radius\": \"4px\",\n \"background-color\": \"#E5EAEA !important\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul[role='listbox']\": {\n \"padding\": \"1rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"margin-left\": \".75rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::before\": {\n \"content\": \"'[ '\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::after\": {\n \"content\": \"' ]'\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionIcon\": {\n \"padding-right\": 0,\n \"margin-right\": \".475rem\",\n \"width\": \"1rem\",\n },\n\n \".cm-tooltip-autocomplete ul li[aria-selected]\": {\n \"border-radius\": \"4px\",\n \"background-color\": \"#5D96A2 !important\",\n \"color\": \"#fff !important\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right\": {\n \"border-radius\": \"3px\",\n \"box-shadow\": \"0 2px 4px -1px rgb(0 0 0 / 20%), 0 4px 5px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 rgb(0 0 0 / 12%)\",\n \"background\": \"#495057 !important\",\n \"color\": \"#fff\",\n \"padding\": \".5rem\",\n \"left\": \"101.6%\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right::before\": {\n \"content\": \"''\",\n \"position\": \"absolute\",\n \"width\": 0,\n \"height\": 0,\n \"top\": \".8125rem\",\n \"left\": \"-.25rem\",\n \"margin-top\": \"-.25rem\",\n \"border-color\": \"transparent\",\n \"border-style\": \"solid\",\n \"border-right-color\": \"#495057\",\n \"border-width\": \".25rem .25rem .25rem 0\",\n },\n });\n}\n","import { EditorTheme } from \"../../models\";\n\n/* General Style */\nimport { style } from \"./sds-light-style\";\n\n/* HighlightStyle */\nimport { SDSLightHighlightStyle } from \"./sds-light-highlight-style\";\n\n/* Theme's Extensions */\nimport { scrollbars } from \"./extensions/scrollbars\";\nimport { fontStyle } from \"./extensions/font-style\";\nimport { lineCounter } from \"./extensions/line-counter\";\nimport { autocompleteTooltip } from \"./extensions/autocomplete-tooltip\";\n\nexport function SDSLight(): EditorTheme {\n return [\n [\n style(),\n scrollbars(),\n fontStyle(),\n lineCounter(),\n autocompleteTooltip()\n ], \n SDSLightHighlightStyle\n ];\n}\n","import { Themes } from \"../../../../models\";\nimport { EditorTheme } from \"../models\";\n\n/* Themes */\nimport { SDSLight } from \"./sds-light/sds-light-theme\";\n\ntype EditorThemeFactory = () => EditorTheme; \n\nexport class EditorThemes {\n\n private static _THEMES: Map<Themes, EditorThemeFactory> = new Map([\n [Themes.SDSLight, SDSLight]\n ]);\n\n public static getTheme(theme: Themes): EditorTheme {\n const EditorThemeFactory = EditorThemes._THEMES.get(theme);\n if (EditorThemeFactory) return EditorThemeFactory();\n return [] as unknown as EditorTheme;\n }\n}\n","import { setDiagnostics } from '@codemirror/lint';\nimport { EditorState, Extension, StateEffect, TransactionSpec } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { CoreFacade } from '../../../core/facades/core-facade';\nimport { Marker } from '../../../core/models';\nimport { EditorOptions, Languages, Themes } from '../../../models';\nimport { EditorLanguages } from './languages/editor-languages';\nimport { EditorThemes } from './themes/editor-themes';\nimport { convertMarkersToDiagnostics } from './utils';\n\nexport class CodeMirror6Core extends CoreFacade {\n public static readonly $onCompletionItemsUpdate: Subject<string[]> = new Subject();\n private static readonly _ngUnsubscribe: Subject<void> = new Subject();\n private static _editorView: EditorView | null = null;\n\n /* These are necessary for the setCode and setEditorOptions can be called before view has been created */\n private _codeReceivedBeforeViewCreation = '';\n private _editorOptionsReceivedBeforeViewCreation: Extension = [];\n\n constructor() {\n super();\n }\n\n public static getEditorView(): EditorView {\n return CodeMirror6Core._editorView as EditorView;\n }\n\n public static updateEditorView(...transactionSpecs: TransactionSpec[]): void {\n CodeMirror6Core._editorView?.dispatch(...transactionSpecs);\n }\n\n public setCoreWrapperElement(element: HTMLDivElement): void {\n this.createEditorView(element);\n }\n\n public setCode(code: string): void {\n this.changeEditorContent(code);\n }\n\n public initCore(): void {\n this.setObservablesListeners();\n }\n\n public destroyCore(): void {\n this._codeReceivedBeforeViewCreation = '';\n CodeMirror6Core._editorView = null;\n CodeMirror6Core._ngUnsubscribe.next();\n CodeMirror6Core._ngUnsubscribe.complete();\n }\n\n protected setCoreEditorOptions(options: EditorOptions): void {\n const language = EditorLanguages.getLanguage(options.language as Languages);\n const theme = EditorThemes.getTheme(options.theme as Themes);\n\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n effects: StateEffect.reconfigure.of([language, theme, this.getCodeChangeListenerExtension()]),\n });\n } else {\n this._editorOptionsReceivedBeforeViewCreation = [language, theme];\n }\n }\n\n protected highlightCode(markers: Marker[]): void {\n const diagnostics = convertMarkersToDiagnostics(\n markers,\n CodeMirror6Core._editorView?.state.doc.length as number,\n );\n\n CodeMirror6Core.updateEditorView(\n setDiagnostics(CodeMirror6Core._editorView?.state as EditorState, diagnostics),\n );\n }\n\n private setObservablesListeners(): void {\n CodeMirror6Core.$onCompletionItemsUpdate\n .pipe(takeUntil(CodeMirror6Core._ngUnsubscribe))\n .subscribe((items) => this.updateCompletionItems(items));\n }\n\n private createEditorView(parentElement: HTMLElement): void {\n CodeMirror6Core._editorView = new EditorView({\n parent: parentElement,\n state: EditorState.create({\n doc: this._codeReceivedBeforeViewCreation,\n extensions: [this._editorOptionsReceivedBeforeViewCreation, this.getCodeChangeListenerExtension()],\n }),\n });\n\n this.notifyCoreFinishLoad();\n }\n\n private getCodeChangeListenerExtension(): Extension {\n return EditorView.updateListener.of(\n (update) => update.docChanged && this.notifyCodeChange(update.state.doc.toString()),\n );\n }\n\n private changeEditorContent(code: string): void {\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n changes: {\n from: 0,\n to: CodeMirror6Core._editorView.state.doc.length,\n insert: code,\n },\n });\n } else {\n this._codeReceivedBeforeViewCreation = code;\n }\n }\n\n protected setCodeWithCursorPreservation(code: string): void {\n if (CodeMirror6Core._editorView) {\n const currentCode = CodeMirror6Core._editorView.state.doc.toString();\n\n // Só atualiza se o conteúdo for realmente diferente\n if (currentCode !== code) {\n const currentSelection = CodeMirror6Core._editorView.state.selection.main;\n\n CodeMirror6Core.updateEditorView({\n changes: {\n from: 0,\n to: CodeMirror6Core._editorView.state.doc.length,\n insert: code,\n },\n selection: {\n anchor: Math.min(currentSelection.anchor, code.length),\n head: Math.min(currentSelection.head, code.length),\n },\n });\n }\n } else {\n this._codeReceivedBeforeViewCreation = code;\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { CodeEditorComponent } from \"./code-editor.component\";\nimport { CoreFacade } from \"./core/facades/core-facade\";\nimport { CodeMirror6Core } from \"./infra/cores/codemirror-6/codemirror-6-core\";\nimport { CustomTranslationsModule } from \"./infra/utils/custom-translations/custom-translations.module\";\n\n@NgModule({\n imports: [CommonModule, CustomTranslationsModule],\n declarations: [CodeEditorComponent],\n exports: [CodeEditorComponent],\n providers: [\n {\n provide: CoreFacade,\n useClass: CodeMirror6Core,\n },\n ],\n})\nexport class CodeEditorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CoreFacade","style"],"mappings":"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"}
@@ -4,16 +4,34 @@ import { Component, Input, NgModule } from '@angular/core';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule } from '@angular/common';
6
6
 
7
+ /**
8
+ * @description Componente de link expansor que mostra/oculta conteúdo transclusão
9
+ * com animação de colapso. Exibe rótulos diferentes para os estados expandido e colapsado.
10
+ *
11
+ * @example
12
+ * ```html
13
+ * <s-collapse-link expandedLabel="Ver menos" collapsedLabel="Ver mais">
14
+ * <p>Conteúdo oculto</p>
15
+ * </s-collapse-link>
16
+ * ```
17
+ *
18
+ * @category Structure
19
+ */
7
20
  class CollapseLinkComponent {
8
21
  static nextIdSeed = 0;
9
22
  static _nextId = CollapseLinkComponent.nextIdSeed;
10
23
  static getNextId() {
11
24
  return this._nextId++;
12
25
  }
26
+ /** @description Identificador do botão de toggle. Gerado automaticamente se não informado. */
13
27
  buttonId = `s-collapse-button-${CollapseLinkComponent.getNextId()}`;
28
+ /** @description Rótulo exibido quando o conteúdo está expandido. @default 'Mostrar menos' */
14
29
  expandedLabel = 'Mostrar menos';
30
+ /** @description Rótulo exibido quando o conteúdo está colapsado. @default 'Mostrar mais' */
15
31
  collapsedLabel = 'Mostrar mais';
32
+ /** @description Desabilita o botão de toggle. @default false */
16
33
  disabled = false;
34
+ /** @description Controla externamente o estado colapsado do componente. @default true */
17
35
  collapse = true;
18
36
  collapsed = true;
19
37
  animating = false;