@masterteam/components 0.0.108 → 0.0.109

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 (214) hide show
  1. package/package.json +2 -2
  2. package/.codex-tmp-pack/extract/package/README.md +0 -63
  3. package/.codex-tmp-pack/extract/package/assets/cairo.css +0 -70
  4. package/.codex-tmp-pack/extract/package/assets/common.css +0 -2
  5. package/.codex-tmp-pack/extract/package/assets/fonts/Cairo-Black.woff2 +0 -0
  6. package/.codex-tmp-pack/extract/package/assets/fonts/Cairo-Bold.woff2 +0 -0
  7. package/.codex-tmp-pack/extract/package/assets/fonts/Cairo-ExtraBold.woff2 +0 -0
  8. package/.codex-tmp-pack/extract/package/assets/fonts/Cairo-ExtraLight.woff2 +0 -0
  9. package/.codex-tmp-pack/extract/package/assets/fonts/Cairo-Light.woff2 +0 -0
  10. package/.codex-tmp-pack/extract/package/assets/fonts/Cairo-Medium.woff2 +0 -0
  11. package/.codex-tmp-pack/extract/package/assets/fonts/Cairo-Regular.woff2 +0 -0
  12. package/.codex-tmp-pack/extract/package/assets/fonts/Cairo-SemiBold.woff2 +0 -0
  13. package/.codex-tmp-pack/extract/package/assets/fonts/Cairo-VariableFont_slnt,wght.woff2 +0 -0
  14. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-Black.woff2 +0 -0
  15. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-BlackItalic.woff2 +0 -0
  16. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-Bold.woff2 +0 -0
  17. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-BoldItalic.woff2 +0 -0
  18. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-ExtraBold.woff2 +0 -0
  19. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-ExtraBoldItalic.woff2 +0 -0
  20. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-ExtraLight.woff2 +0 -0
  21. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-ExtraLightItalic.woff2 +0 -0
  22. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-Italic.woff2 +0 -0
  23. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-Light.woff2 +0 -0
  24. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-LightItalic.woff2 +0 -0
  25. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-Medium.woff2 +0 -0
  26. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-MediumItalic.woff2 +0 -0
  27. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-Regular.woff2 +0 -0
  28. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-SemiBold.woff2 +0 -0
  29. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-SemiBoldItalic.woff2 +0 -0
  30. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-Thin.woff2 +0 -0
  31. package/.codex-tmp-pack/extract/package/assets/fonts/Inter-ThinItalic.woff2 +0 -0
  32. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-Black.woff2 +0 -0
  33. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-BlackItalic.woff2 +0 -0
  34. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-Bold.woff2 +0 -0
  35. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-BoldItalic.woff2 +0 -0
  36. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-ExtraBold.woff2 +0 -0
  37. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-ExtraBoldItalic.woff2 +0 -0
  38. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-ExtraLight.woff2 +0 -0
  39. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-ExtraLightItalic.woff2 +0 -0
  40. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-Italic.woff2 +0 -0
  41. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-Light.woff2 +0 -0
  42. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-LightItalic.woff2 +0 -0
  43. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-Medium.woff2 +0 -0
  44. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-MediumItalic.woff2 +0 -0
  45. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-Regular.woff2 +0 -0
  46. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-SemiBold.woff2 +0 -0
  47. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-SemiBoldItalic.woff2 +0 -0
  48. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-Thin.woff2 +0 -0
  49. package/.codex-tmp-pack/extract/package/assets/fonts/InterDisplay-ThinItalic.woff2 +0 -0
  50. package/.codex-tmp-pack/extract/package/assets/fonts/InterVariable-Italic.woff2 +0 -0
  51. package/.codex-tmp-pack/extract/package/assets/fonts/InterVariable.woff2 +0 -0
  52. package/.codex-tmp-pack/extract/package/assets/i18n/ar.json +0 -44
  53. package/.codex-tmp-pack/extract/package/assets/i18n/en.json +0 -44
  54. package/.codex-tmp-pack/extract/package/assets/inter.css +0 -418
  55. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-avatar-text.mjs +0 -46
  56. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-avatar-text.mjs.map +0 -1
  57. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-avatar.mjs +0 -45
  58. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-avatar.mjs.map +0 -1
  59. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-breadcrumb.mjs +0 -27
  60. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-breadcrumb.mjs.map +0 -1
  61. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-business-fields.mjs +0 -222
  62. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-business-fields.mjs.map +0 -1
  63. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-button-group.mjs +0 -20
  64. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-button-group.mjs.map +0 -1
  65. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-button.mjs +0 -52
  66. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-button.mjs.map +0 -1
  67. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-card.mjs +0 -28
  68. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-card.mjs.map +0 -1
  69. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-checkbox-field.mjs +0 -88
  70. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-checkbox-field.mjs.map +0 -1
  71. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-chip.mjs +0 -35
  72. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-chip.mjs.map +0 -1
  73. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-client-page-menu.mjs +0 -92
  74. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-client-page-menu.mjs.map +0 -1
  75. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-client-page.mjs +0 -93
  76. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-client-page.mjs.map +0 -1
  77. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-color-picker-field.mjs +0 -94
  78. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-color-picker-field.mjs.map +0 -1
  79. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-confirmation.mjs +0 -93
  80. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-confirmation.mjs.map +0 -1
  81. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-date-field.mjs +0 -94
  82. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-date-field.mjs.map +0 -1
  83. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-dialog.mjs +0 -33
  84. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-dialog.mjs.map +0 -1
  85. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-drawer.mjs +0 -69
  86. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-drawer.mjs.map +0 -1
  87. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-dynamic-drawer.mjs +0 -321
  88. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-dynamic-drawer.mjs.map +0 -1
  89. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-editor-field.mjs +0 -96
  90. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-editor-field.mjs.map +0 -1
  91. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-entities.mjs +0 -572
  92. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-entities.mjs.map +0 -1
  93. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-field-validation.mjs +0 -103
  94. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-field-validation.mjs.map +0 -1
  95. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-formula.mjs +0 -3102
  96. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-formula.mjs.map +0 -1
  97. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-icon-field.mjs +0 -63
  98. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-icon-field.mjs.map +0 -1
  99. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-list.mjs +0 -31
  100. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-list.mjs.map +0 -1
  101. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-menu.mjs +0 -136
  102. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-menu.mjs.map +0 -1
  103. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-modal.mjs +0 -50
  104. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-modal.mjs.map +0 -1
  105. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-module-summary-card.mjs +0 -32
  106. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-module-summary-card.mjs.map +0 -1
  107. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-multi-select-field.mjs +0 -197
  108. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-multi-select-field.mjs.map +0 -1
  109. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-number-field.mjs +0 -95
  110. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-number-field.mjs.map +0 -1
  111. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-page-header.mjs +0 -42
  112. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-page-header.mjs.map +0 -1
  113. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-page.mjs +0 -35
  114. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-page.mjs.map +0 -1
  115. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-paginator.mjs +0 -44
  116. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-paginator.mjs.map +0 -1
  117. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-pick-list-field.mjs +0 -204
  118. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-pick-list-field.mjs.map +0 -1
  119. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-progress.mjs +0 -41
  120. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-progress.mjs.map +0 -1
  121. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-property-filter-builder.mjs +0 -383
  122. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-property-filter-builder.mjs.map +0 -1
  123. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-radio-button-field.mjs +0 -85
  124. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-radio-button-field.mjs.map +0 -1
  125. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-radio-cards-field.mjs +0 -68
  126. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-radio-cards-field.mjs.map +0 -1
  127. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-radio-cards.mjs +0 -74
  128. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-radio-cards.mjs.map +0 -1
  129. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-select-field.mjs +0 -258
  130. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-select-field.mjs.map +0 -1
  131. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-sidebar.mjs +0 -36
  132. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-sidebar.mjs.map +0 -1
  133. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-slider-field.mjs +0 -104
  134. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-slider-field.mjs.map +0 -1
  135. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-statistic-card.mjs +0 -21
  136. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-statistic-card.mjs.map +0 -1
  137. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-table.mjs +0 -583
  138. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-table.mjs.map +0 -1
  139. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-tabs.mjs +0 -44
  140. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-tabs.mjs.map +0 -1
  141. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-text-field.mjs +0 -159
  142. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-text-field.mjs.map +0 -1
  143. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-textarea-field.mjs +0 -92
  144. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-textarea-field.mjs.map +0 -1
  145. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-toast.mjs +0 -75
  146. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-toast.mjs.map +0 -1
  147. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-toggle-field.mjs +0 -104
  148. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-toggle-field.mjs.map +0 -1
  149. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-tooltip.mjs +0 -45
  150. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-tooltip.mjs.map +0 -1
  151. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-topbar.mjs +0 -28
  152. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-topbar.mjs.map +0 -1
  153. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-tree.mjs +0 -219
  154. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-tree.mjs.map +0 -1
  155. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-upload-field.mjs +0 -480
  156. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-upload-field.mjs.map +0 -1
  157. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-user-search-field.mjs +0 -153
  158. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components-user-search-field.mjs.map +0 -1
  159. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components.mjs +0 -1338
  160. package/.codex-tmp-pack/extract/package/fesm2022/masterteam-components.mjs.map +0 -1
  161. package/.codex-tmp-pack/extract/package/types/masterteam-components-avatar-text.d.ts +0 -23
  162. package/.codex-tmp-pack/extract/package/types/masterteam-components-avatar.d.ts +0 -21
  163. package/.codex-tmp-pack/extract/package/types/masterteam-components-breadcrumb.d.ts +0 -18
  164. package/.codex-tmp-pack/extract/package/types/masterteam-components-business-fields.d.ts +0 -114
  165. package/.codex-tmp-pack/extract/package/types/masterteam-components-button-group.d.ts +0 -8
  166. package/.codex-tmp-pack/extract/package/types/masterteam-components-button.d.ts +0 -36
  167. package/.codex-tmp-pack/extract/package/types/masterteam-components-card.d.ts +0 -14
  168. package/.codex-tmp-pack/extract/package/types/masterteam-components-checkbox-field.d.ts +0 -34
  169. package/.codex-tmp-pack/extract/package/types/masterteam-components-chip.d.ts +0 -19
  170. package/.codex-tmp-pack/extract/package/types/masterteam-components-client-page-menu.d.ts +0 -35
  171. package/.codex-tmp-pack/extract/package/types/masterteam-components-client-page.d.ts +0 -42
  172. package/.codex-tmp-pack/extract/package/types/masterteam-components-color-picker-field.d.ts +0 -35
  173. package/.codex-tmp-pack/extract/package/types/masterteam-components-confirmation.d.ts +0 -41
  174. package/.codex-tmp-pack/extract/package/types/masterteam-components-date-field.d.ts +0 -41
  175. package/.codex-tmp-pack/extract/package/types/masterteam-components-dialog.d.ts +0 -12
  176. package/.codex-tmp-pack/extract/package/types/masterteam-components-drawer.d.ts +0 -30
  177. package/.codex-tmp-pack/extract/package/types/masterteam-components-dynamic-drawer.d.ts +0 -93
  178. package/.codex-tmp-pack/extract/package/types/masterteam-components-editor-field.d.ts +0 -34
  179. package/.codex-tmp-pack/extract/package/types/masterteam-components-entities.d.ts +0 -326
  180. package/.codex-tmp-pack/extract/package/types/masterteam-components-field-validation.d.ts +0 -13
  181. package/.codex-tmp-pack/extract/package/types/masterteam-components-formula.d.ts +0 -651
  182. package/.codex-tmp-pack/extract/package/types/masterteam-components-icon-field.d.ts +0 -27
  183. package/.codex-tmp-pack/extract/package/types/masterteam-components-list.d.ts +0 -18
  184. package/.codex-tmp-pack/extract/package/types/masterteam-components-menu.d.ts +0 -55
  185. package/.codex-tmp-pack/extract/package/types/masterteam-components-modal.d.ts +0 -18
  186. package/.codex-tmp-pack/extract/package/types/masterteam-components-module-summary-card.d.ts +0 -17
  187. package/.codex-tmp-pack/extract/package/types/masterteam-components-multi-select-field.d.ts +0 -74
  188. package/.codex-tmp-pack/extract/package/types/masterteam-components-number-field.d.ts +0 -42
  189. package/.codex-tmp-pack/extract/package/types/masterteam-components-page-header.d.ts +0 -30
  190. package/.codex-tmp-pack/extract/package/types/masterteam-components-page.d.ts +0 -26
  191. package/.codex-tmp-pack/extract/package/types/masterteam-components-paginator.d.ts +0 -20
  192. package/.codex-tmp-pack/extract/package/types/masterteam-components-pick-list-field.d.ts +0 -60
  193. package/.codex-tmp-pack/extract/package/types/masterteam-components-progress.d.ts +0 -20
  194. package/.codex-tmp-pack/extract/package/types/masterteam-components-property-filter-builder.d.ts +0 -90
  195. package/.codex-tmp-pack/extract/package/types/masterteam-components-radio-button-field.d.ts +0 -41
  196. package/.codex-tmp-pack/extract/package/types/masterteam-components-radio-cards-field.d.ts +0 -30
  197. package/.codex-tmp-pack/extract/package/types/masterteam-components-radio-cards.d.ts +0 -33
  198. package/.codex-tmp-pack/extract/package/types/masterteam-components-select-field.d.ts +0 -84
  199. package/.codex-tmp-pack/extract/package/types/masterteam-components-sidebar.d.ts +0 -28
  200. package/.codex-tmp-pack/extract/package/types/masterteam-components-slider-field.d.ts +0 -45
  201. package/.codex-tmp-pack/extract/package/types/masterteam-components-statistic-card.d.ts +0 -17
  202. package/.codex-tmp-pack/extract/package/types/masterteam-components-table.d.ts +0 -207
  203. package/.codex-tmp-pack/extract/package/types/masterteam-components-tabs.d.ts +0 -23
  204. package/.codex-tmp-pack/extract/package/types/masterteam-components-text-field.d.ts +0 -44
  205. package/.codex-tmp-pack/extract/package/types/masterteam-components-textarea-field.d.ts +0 -38
  206. package/.codex-tmp-pack/extract/package/types/masterteam-components-toast.d.ts +0 -26
  207. package/.codex-tmp-pack/extract/package/types/masterteam-components-toggle-field.d.ts +0 -41
  208. package/.codex-tmp-pack/extract/package/types/masterteam-components-tooltip.d.ts +0 -9
  209. package/.codex-tmp-pack/extract/package/types/masterteam-components-topbar.d.ts +0 -17
  210. package/.codex-tmp-pack/extract/package/types/masterteam-components-tree.d.ts +0 -98
  211. package/.codex-tmp-pack/extract/package/types/masterteam-components-upload-field.d.ts +0 -77
  212. package/.codex-tmp-pack/extract/package/types/masterteam-components-user-search-field.d.ts +0 -61
  213. package/.codex-tmp-pack/extract/package/types/masterteam-components.d.ts +0 -780
  214. package/.codex-tmp-pack/masterteam-components-0.0.108.tgz +0 -0
@@ -1,780 +0,0 @@
1
- import { EnvironmentProviders, Signal } from '@angular/core';
2
- import { MessageService, ConfirmationService } from 'primeng/api';
3
- import { HttpContext, HttpContextToken } from '@angular/common/http';
4
- import { ValidatorFn, AbstractControl } from '@angular/forms';
5
- import * as _masterteam_components from '@masterteam/components';
6
- import { StateContext } from '@ngxs/store';
7
- import { Observable } from 'rxjs';
8
-
9
- interface MTThemeOptions {
10
- primaryColor?: string;
11
- textColor?: string;
12
- backgroundColor?: string;
13
- }
14
- declare function changePrimaryColor(color: string): void;
15
- declare function changeBackgroundColor(color?: string): void;
16
- declare function changeTextColor(color: string): void;
17
- declare function provideMTComponents(themeOptions?: MTThemeOptions): EnvironmentProviders;
18
-
19
- declare function provideMTMessages(): typeof MessageService;
20
-
21
- declare function provideMTConfirmation(): typeof ConfirmationService;
22
-
23
- type FieldType = 'text' | 'textarea' | 'select' | 'date' | 'number' | 'slider' | 'multi-select' | 'pick-list' | 'checkbox' | 'icon-field' | 'color-picker' | 'spacer' | string;
24
- type ValidatorType = 'required' | 'email' | 'minLength' | 'maxLength' | 'min' | 'max' | 'pattern' | 'custom';
25
- type FieldRelationAction = 'enable' | 'disable' | 'show' | 'hide';
26
- interface FieldRelationConfig {
27
- key: string;
28
- value: any;
29
- action: FieldRelationAction;
30
- }
31
- type FormulaConditionMode = 'auto' | 'show' | 'hide' | 'enable' | 'disable';
32
- interface FormulaConditionConfig {
33
- formulaTokens: string;
34
- formulaText?: string;
35
- mode?: FormulaConditionMode;
36
- }
37
- type FormulaValidationSeverity = 'error' | 'warning';
38
- interface FormulaValidationRuleConfig {
39
- id: string | number;
40
- formulaTokens: string;
41
- formulaText?: string;
42
- message: string;
43
- severity: FormulaValidationSeverity;
44
- enabled: boolean;
45
- }
46
- type FormulaRuntimeMessageCode = 'FORMULA_PARSE_ERROR' | 'FORMULA_EVALUATION_ERROR' | 'FORMULA_FALSE';
47
- interface FormulaRuntimeMessage {
48
- code: FormulaRuntimeMessageCode;
49
- severity: FormulaValidationSeverity;
50
- message: string;
51
- formulaText?: string;
52
- ruleId?: string | number;
53
- fieldKey?: string;
54
- }
55
- interface ResponsiveColSpan {
56
- xs?: number;
57
- sm?: number;
58
- md?: number;
59
- lg?: number;
60
- xl?: number;
61
- }
62
- declare class ValidatorConfig {
63
- type: ValidatorType;
64
- value?: any;
65
- message?: string;
66
- customValidator?: (value: any) => boolean | Promise<boolean>;
67
- constructor(config: {
68
- type: ValidatorType;
69
- value?: any;
70
- message?: string;
71
- customValidator?: (value: any) => boolean | Promise<boolean>;
72
- });
73
- static required(message?: string): ValidatorConfig;
74
- static email(message?: string): ValidatorConfig;
75
- static minLength(length: number, message?: string): ValidatorConfig;
76
- static maxLength(length: number, message?: string): ValidatorConfig;
77
- static min(value: number, message?: string): ValidatorConfig;
78
- static max(value: number, message?: string): ValidatorConfig;
79
- static pattern(pattern: string, message?: string): ValidatorConfig;
80
- static custom(validator: (value: any) => boolean | Promise<boolean>, message?: string): ValidatorConfig;
81
- }
82
- type BaseFieldConstructorConfig = ConstructorParameters<typeof BaseFieldConfig>[0];
83
- declare abstract class BaseFieldConfig {
84
- key: string;
85
- label: string;
86
- type: FieldType;
87
- required: boolean;
88
- disabled: boolean;
89
- readonly: boolean;
90
- hidden: boolean;
91
- placeholder: string;
92
- hint: string;
93
- cssClass: string;
94
- validators: ValidatorConfig[];
95
- order: number;
96
- colSpan: number | ResponsiveColSpan;
97
- defaultValue?: any;
98
- customTemplate: string;
99
- relations: FieldRelationConfig[];
100
- formulaCondition?: FormulaConditionConfig;
101
- constructor(config: {
102
- key?: string;
103
- label?: string;
104
- type: FieldType;
105
- required?: boolean;
106
- disabled?: boolean;
107
- readonly?: boolean;
108
- hidden?: boolean;
109
- placeholder?: string;
110
- hint?: string;
111
- cssClass?: string;
112
- validators?: ValidatorConfig[];
113
- order?: number;
114
- relations?: FieldRelationConfig[];
115
- formulaCondition?: FormulaConditionConfig;
116
- colSpan?: number | ResponsiveColSpan;
117
- });
118
- }
119
- declare class TextFieldConfig extends BaseFieldConfig {
120
- inputType: string;
121
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
122
- inputType?: string;
123
- });
124
- }
125
- declare class TextareaFieldConfig extends BaseFieldConfig {
126
- rows: number;
127
- autoResize: boolean;
128
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
129
- rows?: number;
130
- autoResize?: boolean;
131
- });
132
- }
133
- declare class SelectFieldConfig extends BaseFieldConfig {
134
- options: any[];
135
- optionLabel: string;
136
- optionValue: string;
137
- group: boolean;
138
- optionGroupLabel: string;
139
- optionGroupChildren: string;
140
- multiple: boolean;
141
- filter: boolean;
142
- filterBy: string;
143
- filterPlaceholder: string;
144
- showClear: boolean;
145
- emptyMessage: string;
146
- size: string;
147
- hasPlaceholderPrefix: boolean;
148
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
149
- options: any[];
150
- optionLabel?: string;
151
- optionValue?: string;
152
- group?: boolean;
153
- optionGroupLabel?: string;
154
- optionGroupChildren?: string;
155
- multiple?: boolean;
156
- filter?: boolean;
157
- filterBy?: string;
158
- filterPlaceholder?: string;
159
- showClear?: boolean;
160
- emptyMessage?: string;
161
- size?: string;
162
- hasPlaceholderPrefix?: boolean;
163
- });
164
- }
165
- declare class RadioButtonFieldConfig extends BaseFieldConfig {
166
- options: any[];
167
- optionLabel: string;
168
- optionValue: string;
169
- orientation: 'vertical' | 'horizontal';
170
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
171
- options: any[];
172
- optionLabel?: string;
173
- optionValue?: string;
174
- orientation?: 'vertical' | 'horizontal';
175
- });
176
- }
177
- declare class RadioCardsFieldConfig extends BaseFieldConfig {
178
- options: any[];
179
- optionLabel: string;
180
- optionValue: string;
181
- size: string;
182
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
183
- options: any[];
184
- optionLabel?: string;
185
- optionValue?: string;
186
- size?: string;
187
- });
188
- }
189
- declare class UserSearchFieldConfig extends BaseFieldConfig {
190
- optionLabel: string;
191
- optionValue: string;
192
- size: string;
193
- apiUrl: string;
194
- context: HttpContext | undefined;
195
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
196
- optionLabel?: string;
197
- optionValue?: string;
198
- size?: string;
199
- hint?: string;
200
- apiUrl?: string;
201
- context?: HttpContext | undefined;
202
- placeholder?: string;
203
- });
204
- }
205
- declare class UploadFileFieldConfig extends BaseFieldConfig {
206
- size: string;
207
- endPoint?: string;
208
- userImgClass?: string;
209
- shape?: string;
210
- multiple?: boolean;
211
- accept?: string;
212
- fileSizeLimit?: number | undefined;
213
- context: HttpContext | undefined;
214
- title: string;
215
- description: string;
216
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
217
- size?: string;
218
- endPoint?: string;
219
- userImgClass?: string;
220
- shape?: string;
221
- multiple?: boolean;
222
- accept?: string;
223
- fileSizeLimit?: number | undefined;
224
- context?: HttpContext | undefined;
225
- title?: string;
226
- description?: string;
227
- });
228
- }
229
- declare class DateFieldConfig extends BaseFieldConfig {
230
- dateFormat: string;
231
- showTime: boolean;
232
- showSeconds: boolean;
233
- hourFormat: '12' | '24';
234
- minDate?: Date;
235
- maxDate?: Date;
236
- disabledDates: Date[];
237
- disabledDays: number[];
238
- yearRange: string;
239
- showIcon: boolean;
240
- icon: string;
241
- showButtonBar: boolean;
242
- showClear: boolean;
243
- inline: boolean;
244
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
245
- dateFormat?: string;
246
- showTime?: boolean;
247
- showSeconds?: boolean;
248
- hourFormat?: '12' | '24';
249
- minDate?: Date;
250
- maxDate?: Date;
251
- disabledDates?: Date[];
252
- disabledDays?: number[];
253
- yearRange?: string;
254
- showIcon?: boolean;
255
- icon?: string;
256
- showButtonBar?: boolean;
257
- showClear?: boolean;
258
- inline?: boolean;
259
- });
260
- }
261
- declare class NumberFieldConfig extends BaseFieldConfig {
262
- min?: number;
263
- max?: number;
264
- step?: number;
265
- prefix?: string;
266
- suffix?: string;
267
- currency?: string;
268
- locale?: string;
269
- minFractionDigits?: number;
270
- maxFractionDigits?: number;
271
- useGrouping?: boolean;
272
- showButtons?: boolean;
273
- buttonLayout?: 'stacked' | 'horizontal';
274
- incrementButtonClass?: string;
275
- decrementButtonClass?: string;
276
- incrementButtonIcon?: string;
277
- decrementButtonIcon?: string;
278
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
279
- min?: number;
280
- max?: number;
281
- step?: number;
282
- prefix?: string;
283
- suffix?: string;
284
- currency?: string;
285
- locale?: string;
286
- minFractionDigits?: number;
287
- maxFractionDigits?: number;
288
- useGrouping?: boolean;
289
- showButtons?: boolean;
290
- buttonLayout?: 'stacked' | 'horizontal';
291
- incrementButtonClass?: string;
292
- decrementButtonClass?: string;
293
- incrementButtonIcon?: string;
294
- decrementButtonIcon?: string;
295
- });
296
- }
297
- declare class SliderFieldConfig extends BaseFieldConfig {
298
- min?: number;
299
- max?: number;
300
- step?: number;
301
- orientation?: 'horizontal' | 'vertical';
302
- range?: boolean;
303
- animate?: boolean;
304
- unit?: string;
305
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
306
- min?: number;
307
- max?: number;
308
- step?: number;
309
- orientation?: 'horizontal' | 'vertical';
310
- range?: boolean;
311
- animate?: boolean;
312
- unit?: string;
313
- });
314
- }
315
- declare class MultiSelectFieldConfig extends BaseFieldConfig {
316
- options: any[];
317
- optionLabel: string;
318
- optionValue: string;
319
- filter: boolean;
320
- filterBy: string;
321
- filterPlaceholder: string;
322
- showClear: boolean;
323
- emptyMessage: string;
324
- display?: 'comma' | 'chip';
325
- maxSelectedLabels?: number;
326
- selectedItemsLabel?: string;
327
- showToggleAll?: boolean;
328
- resetFilterOnHide?: boolean;
329
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
330
- options: any[];
331
- optionLabel?: string;
332
- optionValue?: string;
333
- filter?: boolean;
334
- filterBy?: string;
335
- filterPlaceholder?: string;
336
- showClear?: boolean;
337
- emptyMessage?: string;
338
- display?: 'comma' | 'chip';
339
- maxSelectedLabels?: number;
340
- selectedItemsLabel?: string;
341
- showToggleAll?: boolean;
342
- resetFilterOnHide?: boolean;
343
- });
344
- }
345
- declare class PickListFieldConfig extends BaseFieldConfig {
346
- options: any[];
347
- optionLabel: string;
348
- optionValue: string;
349
- sourceHeader: string;
350
- targetHeader: string;
351
- showSourceControls: boolean;
352
- showTargetControls: boolean;
353
- showSourceFilter: boolean;
354
- showTargetFilter: boolean;
355
- filterBy: string;
356
- dataKey?: string;
357
- dragdrop: boolean;
358
- responsive: boolean;
359
- breakpoint: string;
360
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
361
- options: any[];
362
- optionLabel?: string;
363
- optionValue?: string;
364
- sourceHeader?: string;
365
- targetHeader?: string;
366
- showSourceControls?: boolean;
367
- showTargetControls?: boolean;
368
- showSourceFilter?: boolean;
369
- showTargetFilter?: boolean;
370
- filterBy?: string;
371
- dataKey?: string;
372
- dragdrop?: boolean;
373
- responsive?: boolean;
374
- });
375
- }
376
- declare class CheckboxFieldConfig extends BaseFieldConfig {
377
- binary?: boolean;
378
- trueValue?: any;
379
- falseValue?: any;
380
- checkboxIcon?: string;
381
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
382
- binary?: boolean;
383
- trueValue?: any;
384
- falseValue?: any;
385
- checkboxIcon?: string;
386
- });
387
- }
388
- declare class ToggleFieldConfig extends BaseFieldConfig {
389
- toggleShape?: 'toggle' | 'card';
390
- icon?: string;
391
- descriptionCard?: string;
392
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
393
- toggleShape?: 'toggle' | 'card';
394
- icon?: string;
395
- descriptionCard?: string;
396
- });
397
- }
398
- declare class EditorFieldConfig extends BaseFieldConfig {
399
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'>);
400
- }
401
- declare class ColorPickerFieldConfig extends BaseFieldConfig {
402
- format?: 'hex' | 'rgb' | 'hsb';
403
- inline?: boolean;
404
- appendTo?: any;
405
- variant?: 'outlined' | 'filled';
406
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
407
- format?: 'hex' | 'rgb' | 'hsb';
408
- inline?: boolean;
409
- appendTo?: any;
410
- variant?: 'outlined' | 'filled';
411
- });
412
- }
413
- declare class IconFieldConfig extends BaseFieldConfig {
414
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {});
415
- }
416
- declare class SpacerFieldConfig extends BaseFieldConfig {
417
- constructor(config: Omit<BaseFieldConstructorConfig, 'type' | 'key' | 'label'> & {
418
- key?: string;
419
- label?: string;
420
- });
421
- }
422
- declare class SchemaConnectionFieldConfig extends BaseFieldConfig {
423
- configuration: any;
424
- context: HttpContext | undefined;
425
- filter: boolean;
426
- constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
427
- configuration: any;
428
- context?: HttpContext | undefined;
429
- filter?: boolean;
430
- });
431
- }
432
- type DynamicFieldConfig = {
433
- [K in keyof (TextFieldConfig & TextareaFieldConfig & SelectFieldConfig & DateFieldConfig & NumberFieldConfig & SliderFieldConfig & MultiSelectFieldConfig & PickListFieldConfig & CheckboxFieldConfig & ToggleFieldConfig & ColorPickerFieldConfig & IconFieldConfig & SpacerFieldConfig & SchemaConnectionFieldConfig & BaseFieldConfig)]?: (TextFieldConfig & TextareaFieldConfig & SelectFieldConfig & DateFieldConfig & NumberFieldConfig & SliderFieldConfig & MultiSelectFieldConfig & PickListFieldConfig & CheckboxFieldConfig & ToggleFieldConfig & ColorPickerFieldConfig & IconFieldConfig & SpacerFieldConfig & SchemaConnectionFieldConfig & BaseFieldConfig)[K];
434
- };
435
- interface LayoutConfig {
436
- containerClass?: string;
437
- sectionClass?: string;
438
- fieldClass?: string;
439
- }
440
- interface DynamicFormConfig {
441
- sections: SectionConfig[];
442
- layout?: LayoutConfig;
443
- validationRules?: FormulaValidationRuleConfig[];
444
- }
445
- interface SectionConfig {
446
- key?: string;
447
- label?: string;
448
- type: 'none' | 'header';
449
- cssClass?: string;
450
- bodyClass?: string;
451
- headerClass?: string;
452
- columns?: number;
453
- order?: number;
454
- fields: DynamicFieldConfig[];
455
- }
456
- interface FieldState {
457
- hidden: boolean;
458
- disabled: boolean;
459
- }
460
- declare function createCustomValidator(customValidator: (value: any) => boolean | Promise<boolean>, message?: string): ValidatorFn;
461
- declare function wrapValidatorWithMessage(validator: ValidatorFn, errorKey: string, message: string): ValidatorFn;
462
-
463
- /**
464
- * Query result with separate signals for each property
465
- */
466
- interface QueryResult<T> {
467
- data: Signal<T | null>;
468
- isPending: Signal<boolean>;
469
- isSuccess: Signal<boolean>;
470
- isError: Signal<boolean>;
471
- error: Signal<string | null>;
472
- }
473
- /**
474
- * @deprecated Use direct `select()` + `computed()` pattern instead for better performance.
475
- *
476
- * **Problem with BaseFacade:**
477
- * - All computed signals depend on the full state, causing unnecessary recomputations
478
- * - Bypasses NGXS selector memoization
479
- * - Uses `as any` casting, losing type safety
480
- *
481
- * **New Pattern - Use slice-based selectors:**
482
- *
483
- * ```typescript
484
- * // In your State class - add slice selectors:
485
- * @Selector()
486
- * static getLoadingActive(state: MyStateModel): string[] {
487
- * return state.loadingActive;
488
- * }
489
- *
490
- * @Selector()
491
- * static getErrors(state: MyStateModel): Record<string, string | null> {
492
- * return state.errors;
493
- * }
494
- *
495
- * // In your Facade - don't extend BaseFacade:
496
- * @Injectable({ providedIn: 'root' })
497
- * export class MyFacade {
498
- * private readonly store = inject(Store);
499
- *
500
- * // Data selectors - memoized by NGXS
501
- * readonly items = select(MyState.getItems);
502
- *
503
- * // Loading/Error slices - memoized by NGXS
504
- * private readonly loadingActive = select(MyState.getLoadingActive);
505
- * private readonly errors = select(MyState.getErrors);
506
- *
507
- * // Loading signals - computed from slice (minimal reactivity)
508
- * readonly isLoadingItems = computed(() =>
509
- * this.loadingActive().includes(MyActionKey.GetItems)
510
- * );
511
- *
512
- * // Error signals - computed from slice (minimal reactivity)
513
- * readonly itemsError = computed(() =>
514
- * this.errors()[MyActionKey.GetItems] ?? null
515
- * );
516
- *
517
- * // Dispatchers
518
- * loadItems() {
519
- * return this.store.dispatch(new GetItems());
520
- * }
521
- * }
522
- * ```
523
- *
524
- * **Template Usage:**
525
- * ```html
526
- * @if (facade.isLoadingItems()) {
527
- * <loading-spinner />
528
- * } @else if (facade.itemsError(); as error) {
529
- * <error-alert>{{ error }}</error-alert>
530
- * } @else {
531
- * @for (item of facade.items(); track item.id) {
532
- * <item-card [item]="item" />
533
- * }
534
- * }
535
- * ```
536
- */
537
- declare abstract class BaseFacade<TState, TLoadingName extends string> {
538
- /**
539
- * Override in child facade to provide the state selector
540
- */
541
- protected abstract state(): Signal<TState>;
542
- /**
543
- * Creates a query object with separate signals for data, loading, and error states
544
- * Each property is its own signal for granular reactivity
545
- *
546
- * @example
547
- * readonly modulesQuery = this.query(
548
- * 'getModulesLoading',
549
- * (state) => state.allModules
550
- * );
551
- *
552
- * // In template - each is a separate signal:
553
- * @if (modulesQuery.isPending()) { Loading... }
554
- * @if (modulesQuery.error(); as error) { Error: {{ error }} }
555
- * @if (modulesQuery.data(); as modules) {
556
- * <div *ngFor="let m of modules">{{ m.title }}</div>
557
- * }
558
- */
559
- protected query<T>(loadingKey: TLoadingName, dataSelector: (state: TState) => T): QueryResult<T>;
560
- /**
561
- * Creates a loading signal for a specific operation
562
- */
563
- protected loading(loadingKey: TLoadingName): Signal<boolean>;
564
- /**
565
- * Creates an error signal for a specific operation
566
- */
567
- protected errorSignal(loadingKey: TLoadingName): Signal<string | null>;
568
- }
569
-
570
- interface LoadingStateShape<L extends string = string> {
571
- loadingActive: L[];
572
- errors: Partial<Record<L, string>>;
573
- }
574
- type LoadingName<T extends LoadingStateShape<string>> = T['loadingActive'][number];
575
- declare function startLoading<T extends LoadingStateShape<string>>(ctx: StateContext<T>, loadingName: LoadingName<T>): void;
576
- declare function endLoading<T extends LoadingStateShape<string>>(ctx: StateContext<T>, loadingName: LoadingName<T>): void;
577
- declare function setLoadingError<T extends LoadingStateShape<string>>(ctx: StateContext<T>, loadingName: LoadingName<T>, message: string): void;
578
-
579
- interface Response<T> {
580
- endpoint: string;
581
- status: number;
582
- code: number;
583
- locale: string;
584
- message?: string | null;
585
- errors?: unknown | null;
586
- data: T;
587
- cacheSession?: string;
588
- }
589
- interface CrudLoadConfig<T, TState, TData = T[]> {
590
- key: string;
591
- request$: Observable<Response<TData>>;
592
- stateProperty?: (state: TState) => T[];
593
- /**
594
- * @deprecated Use `handleApiRequest` with `onSuccess` for complex state updates.
595
- * CRUD methods should only be used for simple array operations with `stateProperty`.
596
- */
597
- updateState?: (state: TState, data: TData) => Partial<TState>;
598
- /**
599
- * @deprecated Use `handleApiRequest` with `onSuccess` for data transformation.
600
- * CRUD methods should only be used for simple array operations.
601
- */
602
- transform?: (data: TData) => TData;
603
- onError?: (error: any, state: TState) => Partial<TState> | void;
604
- errorMessage?: string;
605
- }
606
- interface CrudCreateConfig<T, TState> {
607
- key: string;
608
- request$: Observable<Response<T>>;
609
- stateProperty: (state: TState) => T[];
610
- /**
611
- * @deprecated Use `handleApiRequest` with `onSuccess` for complex state updates.
612
- * CRUD methods should only be used for simple array operations with `stateProperty`.
613
- */
614
- updateState?: (state: TState, items: T[]) => Partial<TState>;
615
- /**
616
- * @deprecated Use `handleApiRequest` with `onSuccess` for data transformation.
617
- * CRUD methods should only be used for simple array operations.
618
- */
619
- transform?: (data: T) => T;
620
- onError?: (error: any, state: TState) => Partial<TState> | void;
621
- errorMessage?: string;
622
- }
623
- interface CrudUpdateConfig<T, TState> {
624
- key: string;
625
- request$: Observable<Response<T>>;
626
- uniqueKey: keyof T;
627
- id: string | number;
628
- stateProperty: (state: TState) => T[];
629
- /**
630
- * @deprecated Use `handleApiRequest` with `onSuccess` for complex state updates.
631
- * CRUD methods should only be used for simple array operations with `stateProperty`.
632
- */
633
- updateState?: (state: TState, items: T[]) => Partial<TState>;
634
- /**
635
- * @deprecated Use `handleApiRequest` with `onSuccess` for data transformation.
636
- * CRUD methods should only be used for simple array operations.
637
- */
638
- transform?: (data: T) => T;
639
- onError?: (error: any, state: TState) => Partial<TState> | void;
640
- errorMessage?: string;
641
- }
642
- interface CrudDeleteConfig<T, TState> {
643
- key: string;
644
- request$: Observable<Response<void>>;
645
- uniqueKey: keyof T;
646
- id: string | number;
647
- stateProperty: (state: TState) => T[];
648
- /**
649
- * @deprecated Use `handleApiRequest` with `onSuccess` for complex state updates.
650
- * CRUD methods should only be used for simple array operations with `stateProperty`.
651
- */
652
- updateState?: (state: TState, items: T[]) => Partial<TState>;
653
- onError?: (error: any, state: TState) => Partial<TState> | void;
654
- errorMessage?: string;
655
- }
656
- /**
657
- * T = entity type (Module, User, ...)
658
- * TState = full state model (must include LoadingStateShape)
659
- * TLoad = union type of loading keys for this feature
660
- */
661
- declare abstract class CrudStateBase<T, TState extends LoadingStateShape<TLoad>, TLoad extends string> {
662
- protected adapter: _masterteam_components.EntityAdapter<T>;
663
- /**
664
- * Helper to create default updateState function
665
- */
666
- private getDefaultUpdateState;
667
- /**
668
- * @deprecated Use `handleApiRequest` directly with `onSuccess` callback.
669
- * The `load()` method provides no significant benefit over `handleApiRequest`.
670
- *
671
- * @example
672
- * // Instead of this.load(), use:
673
- * return handleApiRequest({
674
- * ctx,
675
- * key: ActionKey.GetItems,
676
- * request$: req$,
677
- * onSuccess: (response) => ({
678
- * items: response.data ?? [],
679
- * }),
680
- * });
681
- */
682
- protected load<TData = T[]>(ctx: StateContext<TState>, config: CrudLoadConfig<T, TState, TData>): Observable<Response<TData>>;
683
- /**
684
- * Create one entity with config object
685
- */
686
- protected create(ctx: StateContext<TState>, config: CrudCreateConfig<T, TState>): Observable<Response<T>>;
687
- /**
688
- * Update one entity with config object
689
- */
690
- protected update(ctx: StateContext<TState>, config: CrudUpdateConfig<T, TState>): Observable<Response<T>>;
691
- /**
692
- * Delete one entity with config object
693
- */
694
- protected delete(ctx: StateContext<TState>, config: CrudDeleteConfig<T, TState>): Observable<Response<void>>;
695
- }
696
-
697
- type TailwindColorPalette = {
698
- [key: string]: string;
699
- };
700
- /**
701
- * Generates a Tailwind-like color palette (50-950) from a primary color (assumed to be 500).
702
- *
703
- * @param primaryColor500 - The hex string of the primary color (e.g., "#0284c7").
704
- * @returns An object representing the color palette, where keys are color numbers (e.g., "50", "100")
705
- * and values are hex color strings.
706
- */
707
- type PaletteShade = '0' | '50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | '950';
708
- /**
709
- * Generates a Tailwind-like color palette (50-950) from any given base color.
710
- *
711
- * @param baseColorHex - The hex string of the base color (e.g., "#0284c7").
712
- * @param baseColorShade - The shade of the base color (e.g., "500", "700").
713
- * @returns An object representing the full color palette.
714
- */
715
- declare function generateTailwindPalette(baseColorHex: string, baseColorShade?: PaletteShade): TailwindColorPalette;
716
-
717
- declare function isInvalid(control: AbstractControl | null): boolean;
718
-
719
- interface ApiRequestConfig<TState, TResponse> {
720
- ctx: StateContext<TState>;
721
- key: string;
722
- request$: Observable<TResponse>;
723
- onSuccess: (response: TResponse, state: TState) => Partial<TState> | void;
724
- onError?: (error: any, state: TState) => Partial<TState> | void;
725
- errorMessage?: string;
726
- }
727
- declare function handleApiRequest<TState extends LoadingStateShape<string>, TResponse>(config: ApiRequestConfig<TState, TResponse>): Observable<TResponse>;
728
-
729
- interface EntityAdapter<T> {
730
- addOne(state: T[], entity: T): T[];
731
- upsertOne(state: T[], entity: T, uniqueKey?: keyof T): T[];
732
- updateOne(state: T[], id: string | number, changes: Partial<T>, uniqueKey?: keyof T): T[];
733
- removeOne(state: T[], id: string | number, uniqueKey?: keyof T): T[];
734
- setAll(state: T[], entities: T[]): T[];
735
- }
736
- declare function createEntityAdapter<T>(): EntityAdapter<T>;
737
-
738
- /**
739
- * HTTP context configuration for request handling
740
- */
741
- interface RequestContextConfig {
742
- /** Use base URL instead of gateway URL */
743
- useBaseUrl?: boolean;
744
- }
745
- /**
746
- * Shared HTTP context token for request configuration.
747
- * Used by interceptors to determine base URL routing.
748
- *
749
- * @example
750
- * ```typescript
751
- * import { REQUEST_CONTEXT } from '@masterteam/components';
752
- *
753
- * // In a service
754
- * private context = new HttpContext().set(REQUEST_CONTEXT, { useBaseUrl: true });
755
- *
756
- * getMetadata(): Observable<any> {
757
- * return this.http.get('metadata', { context: this.context });
758
- * }
759
- *
760
- * // In interceptor
761
- * const config = req.context.get(REQUEST_CONTEXT);
762
- * if (config?.useBaseUrl) {
763
- * // Use base URL
764
- * }
765
- * ```
766
- */
767
- declare const REQUEST_CONTEXT: HttpContextToken<RequestContextConfig>;
768
-
769
- /**
770
- * Color utility functions for brand display.
771
- */
772
- /**
773
- * Converts a hex color to a light shade (equivalent to primary-100 in Tailwind).
774
- * This creates a color with ~10% opacity or a very light tint by mixing with white.
775
- */
776
- declare function getLightColor(hexColor: string): string;
777
- declare function getContrastColor(bgColor: string): string;
778
-
779
- export { BaseFacade, BaseFieldConfig, CheckboxFieldConfig, ColorPickerFieldConfig, CrudStateBase, DateFieldConfig, EditorFieldConfig, IconFieldConfig, MultiSelectFieldConfig, NumberFieldConfig, PickListFieldConfig, REQUEST_CONTEXT, RadioButtonFieldConfig, RadioCardsFieldConfig, SchemaConnectionFieldConfig, SelectFieldConfig, SliderFieldConfig, SpacerFieldConfig, TextFieldConfig, TextareaFieldConfig, ToggleFieldConfig, UploadFileFieldConfig, UserSearchFieldConfig, ValidatorConfig, changeBackgroundColor, changePrimaryColor, changeTextColor, createCustomValidator, createEntityAdapter, endLoading, generateTailwindPalette, getContrastColor, getLightColor, handleApiRequest, isInvalid, provideMTComponents, provideMTConfirmation, provideMTMessages, setLoadingError, startLoading, wrapValidatorWithMessage };
780
- export type { ApiRequestConfig, BaseFieldConstructorConfig, CrudCreateConfig, CrudDeleteConfig, CrudLoadConfig, CrudUpdateConfig, DynamicFieldConfig, DynamicFormConfig, EntityAdapter, FieldRelationAction, FieldRelationConfig, FieldState, FieldType, FormulaConditionConfig, FormulaConditionMode, FormulaRuntimeMessage, FormulaRuntimeMessageCode, FormulaValidationRuleConfig, FormulaValidationSeverity, LayoutConfig, LoadingStateShape, MTThemeOptions, PaletteShade, QueryResult, RequestContextConfig, Response, ResponsiveColSpan, SectionConfig, ValidatorType };