@talxis/base-controls 0.0.1

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 (516) hide show
  1. package/README.md +41 -0
  2. package/dist/components/DatasetControl/DatasetControl.d.ts +3 -0
  3. package/dist/components/DatasetControl/DatasetControl.js +72 -0
  4. package/dist/components/DatasetControl/DatasetControl.js.map +1 -0
  5. package/dist/components/DatasetControl/Paging/DatasetPaging.d.ts +3 -0
  6. package/dist/components/DatasetControl/Paging/DatasetPaging.js +69 -0
  7. package/dist/components/DatasetControl/Paging/DatasetPaging.js.map +1 -0
  8. package/dist/components/DatasetControl/Paging/Paging.d.ts +26 -0
  9. package/dist/components/DatasetControl/Paging/Paging.js +80 -0
  10. package/dist/components/DatasetControl/Paging/Paging.js.map +1 -0
  11. package/dist/components/DatasetControl/Paging/index.d.ts +3 -0
  12. package/dist/components/DatasetControl/Paging/index.js +3 -0
  13. package/dist/components/DatasetControl/Paging/index.js.map +1 -0
  14. package/dist/components/DatasetControl/Paging/interfaces.d.ts +16 -0
  15. package/dist/components/DatasetControl/Paging/styles.d.ts +35 -0
  16. package/dist/components/DatasetControl/Paging/styles.js +41 -0
  17. package/dist/components/DatasetControl/Paging/styles.js.map +1 -0
  18. package/dist/components/DatasetControl/Paging/translations.d.ts +38 -0
  19. package/dist/components/DatasetControl/Paging/translations.js +14 -0
  20. package/dist/components/DatasetControl/Paging/translations.js.map +1 -0
  21. package/dist/components/DatasetControl/QuickFind/QuickFind.d.ts +13 -0
  22. package/dist/components/DatasetControl/QuickFind/QuickFind.js +59 -0
  23. package/dist/components/DatasetControl/QuickFind/QuickFind.js.map +1 -0
  24. package/dist/components/DatasetControl/QuickFind/styles.d.ts +8 -0
  25. package/dist/components/DatasetControl/QuickFind/styles.js +15 -0
  26. package/dist/components/DatasetControl/QuickFind/styles.js.map +1 -0
  27. package/dist/components/DatasetControl/index.d.ts +3 -0
  28. package/dist/components/DatasetControl/index.js +4 -0
  29. package/dist/components/DatasetControl/index.js.map +1 -0
  30. package/dist/components/DatasetControl/interfaces.d.ts +32 -0
  31. package/dist/components/DatasetControl/styles.d.ts +18 -0
  32. package/dist/components/DatasetControl/styles.js +29 -0
  33. package/dist/components/DatasetControl/styles.js.map +1 -0
  34. package/dist/components/DatasetControl/translations.d.ts +18 -0
  35. package/dist/components/DatasetControl/translations.js +9 -0
  36. package/dist/components/DatasetControl/translations.js.map +1 -0
  37. package/dist/components/DateTime/DateTime.d.ts +3 -0
  38. package/dist/components/DateTime/DateTime.js +149 -0
  39. package/dist/components/DateTime/DateTime.js.map +1 -0
  40. package/dist/components/DateTime/components/Calendar.d.ts +17 -0
  41. package/dist/components/DateTime/components/Calendar.js +63 -0
  42. package/dist/components/DateTime/components/Calendar.js.map +1 -0
  43. package/dist/components/DateTime/hooks/useDateTime.d.ts +32 -0
  44. package/dist/components/DateTime/hooks/useDateTime.js +150 -0
  45. package/dist/components/DateTime/hooks/useDateTime.js.map +1 -0
  46. package/dist/components/DateTime/index.d.ts +3 -0
  47. package/dist/components/DateTime/index.js +3 -0
  48. package/dist/components/DateTime/index.js.map +1 -0
  49. package/dist/components/DateTime/interfaces.d.ts +23 -0
  50. package/dist/components/DateTime/styles.d.ts +31 -0
  51. package/dist/components/DateTime/styles.js +37 -0
  52. package/dist/components/DateTime/styles.js.map +1 -0
  53. package/dist/components/DateTime/translations.d.ts +19 -0
  54. package/dist/components/DateTime/translations.js +23 -0
  55. package/dist/components/DateTime/translations.js.map +1 -0
  56. package/dist/components/Decimal/Decimal.d.ts +3 -0
  57. package/dist/components/Decimal/Decimal.js +204 -0
  58. package/dist/components/Decimal/Decimal.js.map +1 -0
  59. package/dist/components/Decimal/components/ArrowButtons.d.ts +10 -0
  60. package/dist/components/Decimal/components/ArrowButtons.js +38 -0
  61. package/dist/components/Decimal/components/ArrowButtons.js.map +1 -0
  62. package/dist/components/Decimal/components/styles.d.ts +20 -0
  63. package/dist/components/Decimal/components/styles.js +26 -0
  64. package/dist/components/Decimal/components/styles.js.map +1 -0
  65. package/dist/components/Decimal/index.d.ts +2 -0
  66. package/dist/components/Decimal/index.js +2 -0
  67. package/dist/components/Decimal/index.js.map +1 -0
  68. package/dist/components/Decimal/interfaces.d.ts +13 -0
  69. package/dist/components/Duration/Duration.d.ts +3 -0
  70. package/dist/components/Duration/Duration.js +155 -0
  71. package/dist/components/Duration/Duration.js.map +1 -0
  72. package/dist/components/Duration/durationOptions.d.ts +2 -0
  73. package/dist/components/Duration/durationOptions.js +27 -0
  74. package/dist/components/Duration/durationOptions.js.map +1 -0
  75. package/dist/components/Duration/index.d.ts +2 -0
  76. package/dist/components/Duration/index.js +2 -0
  77. package/dist/components/Duration/index.js.map +1 -0
  78. package/dist/components/Duration/interfaces.d.ts +13 -0
  79. package/dist/components/Duration/translations.d.ts +26 -0
  80. package/dist/components/Duration/translations.js +31 -0
  81. package/dist/components/Duration/translations.js.map +1 -0
  82. package/dist/components/Grid/Grid.d.ts +3 -0
  83. package/dist/components/Grid/Grid.js +37 -0
  84. package/dist/components/Grid/Grid.js.map +1 -0
  85. package/dist/components/Grid/GridContext.d.ts +3 -0
  86. package/dist/components/Grid/GridContext.js +6 -0
  87. package/dist/components/Grid/GridContext.js.map +1 -0
  88. package/dist/components/Grid/aggregation/Aggregation.d.ts +18 -0
  89. package/dist/components/Grid/aggregation/Aggregation.js +129 -0
  90. package/dist/components/Grid/aggregation/Aggregation.js.map +1 -0
  91. package/dist/components/Grid/constants.d.ts +1 -0
  92. package/dist/components/Grid/constants.js +4 -0
  93. package/dist/components/Grid/constants.js.map +1 -0
  94. package/dist/components/Grid/core/components/AgGrid/AgGrid.d.ts +5 -0
  95. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +203 -0
  96. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -0
  97. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.d.ts +2 -0
  98. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js +12 -0
  99. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js.map +1 -0
  100. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.d.ts +18 -0
  101. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js +23 -0
  102. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js.map +1 -0
  103. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.d.ts +2 -0
  104. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js +10 -0
  105. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +1 -0
  106. package/dist/components/Grid/core/components/AgGrid/context.d.ts +3 -0
  107. package/dist/components/Grid/core/components/AgGrid/context.js +6 -0
  108. package/dist/components/Grid/core/components/AgGrid/context.js.map +1 -0
  109. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +52 -0
  110. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +343 -0
  111. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -0
  112. package/dist/components/Grid/core/components/AgGrid/model/Comparator.d.ts +9 -0
  113. package/dist/components/Grid/core/components/AgGrid/model/Comparator.js +86 -0
  114. package/dist/components/Grid/core/components/AgGrid/model/Comparator.js.map +1 -0
  115. package/dist/components/Grid/core/components/AgGrid/styles.d.ts +72 -0
  116. package/dist/components/Grid/core/components/AgGrid/styles.js +78 -0
  117. package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -0
  118. package/dist/components/Grid/core/components/Cell/Cell.d.ts +13 -0
  119. package/dist/components/Grid/core/components/Cell/Cell.js +158 -0
  120. package/dist/components/Grid/core/components/Cell/Cell.js.map +1 -0
  121. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.d.ts +8 -0
  122. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js +230 -0
  123. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +1 -0
  124. package/dist/components/Grid/core/components/Cell/CellContent/styles.d.ts +33 -0
  125. package/dist/components/Grid/core/components/Cell/CellContent/styles.js +39 -0
  126. package/dist/components/Grid/core/components/Cell/CellContent/styles.js.map +1 -0
  127. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.d.ts +12 -0
  128. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js +112 -0
  129. package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js.map +1 -0
  130. package/dist/components/Grid/core/components/Cell/Notifications/styles.d.ts +39 -0
  131. package/dist/components/Grid/core/components/Cell/Notifications/styles.js +46 -0
  132. package/dist/components/Grid/core/components/Cell/Notifications/styles.js.map +1 -0
  133. package/dist/components/Grid/core/components/Cell/styles.d.ts +40 -0
  134. package/dist/components/Grid/core/components/Cell/styles.js +59 -0
  135. package/dist/components/Grid/core/components/Cell/styles.js.map +1 -0
  136. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.d.ts +6 -0
  137. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +61 -0
  138. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -0
  139. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.d.ts +2 -0
  140. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +50 -0
  141. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +1 -0
  142. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.d.ts +14 -0
  143. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js +20 -0
  144. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +1 -0
  145. package/dist/components/Grid/core/components/ColumnHeader/styles.d.ts +42 -0
  146. package/dist/components/Grid/core/components/ColumnHeader/styles.js +48 -0
  147. package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +1 -0
  148. package/dist/components/Grid/core/components/Dialog/Constants.d.ts +2 -0
  149. package/dist/components/Grid/core/components/Dialog/Constants.js +9 -0
  150. package/dist/components/Grid/core/components/Dialog/Constants.js.map +1 -0
  151. package/dist/components/Grid/core/components/Dialog/Styles.d.ts +2 -0
  152. package/dist/components/Grid/core/components/Dialog/Styles.js +61 -0
  153. package/dist/components/Grid/core/components/Dialog/Styles.js.map +1 -0
  154. package/dist/components/Grid/core/components/Dialog/index.d.ts +4 -0
  155. package/dist/components/Grid/core/components/Dialog/index.js +16 -0
  156. package/dist/components/Grid/core/components/Dialog/index.js.map +1 -0
  157. package/dist/components/Grid/core/components/Dialog/interfaces/index.d.ts +6 -0
  158. package/dist/components/Grid/core/components/Dialog/interfaces/index.js +2 -0
  159. package/dist/components/Grid/core/components/Dialog/interfaces/index.js.map +1 -0
  160. package/dist/components/Grid/core/components/Save/Save.d.ts +2 -0
  161. package/dist/components/Grid/core/components/Save/Save.js +59 -0
  162. package/dist/components/Grid/core/components/Save/Save.js.map +1 -0
  163. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.d.ts +7 -0
  164. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +73 -0
  165. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -0
  166. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +11 -0
  167. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +231 -0
  168. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -0
  169. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.d.ts +39 -0
  170. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js +45 -0
  171. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js.map +1 -0
  172. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.d.ts +31 -0
  173. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js +37 -0
  174. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js.map +1 -0
  175. package/dist/components/Grid/core/components/Save/styles.d.ts +35 -0
  176. package/dist/components/Grid/core/components/Save/styles.js +42 -0
  177. package/dist/components/Grid/core/components/Save/styles.js.map +1 -0
  178. package/dist/components/Grid/core/controllers/useGridController.d.ts +7 -0
  179. package/dist/components/Grid/core/controllers/useGridController.js +29 -0
  180. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -0
  181. package/dist/components/Grid/core/enums/ConditionOperator.d.ts +48 -0
  182. package/dist/components/Grid/core/enums/ConditionOperator.js +52 -0
  183. package/dist/components/Grid/core/enums/ConditionOperator.js.map +1 -0
  184. package/dist/components/Grid/core/enums/DataType.d.ts +25 -0
  185. package/dist/components/Grid/core/enums/DataType.js +30 -0
  186. package/dist/components/Grid/core/enums/DataType.js.map +1 -0
  187. package/dist/components/Grid/core/hooks/useGridInstance.d.ts +2 -0
  188. package/dist/components/Grid/core/hooks/useGridInstance.js +9 -0
  189. package/dist/components/Grid/core/hooks/useGridInstance.js.map +1 -0
  190. package/dist/components/Grid/core/hooks/useRefreshCallback.d.ts +2 -0
  191. package/dist/components/Grid/core/hooks/useRefreshCallback.js +20 -0
  192. package/dist/components/Grid/core/hooks/useRefreshCallback.js.map +1 -0
  193. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +13 -0
  194. package/dist/components/Grid/core/interfaces/IGridContext.d.ts +4 -0
  195. package/dist/components/Grid/core/model/Grid.d.ts +81 -0
  196. package/dist/components/Grid/core/model/Grid.js +513 -0
  197. package/dist/components/Grid/core/model/Grid.js.map +1 -0
  198. package/dist/components/Grid/core/model/GridDependency.d.ts +13 -0
  199. package/dist/components/Grid/core/model/GridDependency.js +28 -0
  200. package/dist/components/Grid/core/model/GridDependency.js.map +1 -0
  201. package/dist/components/Grid/core/services/KeyListener.d.ts +12 -0
  202. package/dist/components/Grid/core/services/KeyListener.js +31 -0
  203. package/dist/components/Grid/core/services/KeyListener.js.map +1 -0
  204. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.d.ts +8 -0
  205. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js +59 -0
  206. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js.map +1 -0
  207. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.d.ts +7 -0
  208. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +56 -0
  209. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +1 -0
  210. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.d.ts +7 -0
  211. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +73 -0
  212. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -0
  213. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.d.ts +7 -0
  214. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.js +90 -0
  215. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.js.map +1 -0
  216. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +48 -0
  217. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +146 -0
  218. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +1 -0
  219. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.d.ts +11 -0
  220. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js +53 -0
  221. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js.map +1 -0
  222. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.d.ts +9 -0
  223. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js +31 -0
  224. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js.map +1 -0
  225. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.d.ts +10 -0
  226. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js +294 -0
  227. package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js.map +1 -0
  228. package/dist/components/Grid/filtering/components/FilterCallout/styles.d.ts +35 -0
  229. package/dist/components/Grid/filtering/components/FilterCallout/styles.js +40 -0
  230. package/dist/components/Grid/filtering/components/FilterCallout/styles.js.map +1 -0
  231. package/dist/components/Grid/filtering/constants.d.ts +5 -0
  232. package/dist/components/Grid/filtering/constants.js +53 -0
  233. package/dist/components/Grid/filtering/constants.js.map +1 -0
  234. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.d.ts +21 -0
  235. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js +44 -0
  236. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +1 -0
  237. package/dist/components/Grid/filtering/model/Condition.d.ts +49 -0
  238. package/dist/components/Grid/filtering/model/Condition.js +347 -0
  239. package/dist/components/Grid/filtering/model/Condition.js.map +1 -0
  240. package/dist/components/Grid/filtering/model/Filtering.d.ts +11 -0
  241. package/dist/components/Grid/filtering/model/Filtering.js +78 -0
  242. package/dist/components/Grid/filtering/model/Filtering.js.map +1 -0
  243. package/dist/components/Grid/filtering/utils/FilteringUtilts.d.ts +34 -0
  244. package/dist/components/Grid/filtering/utils/FilteringUtilts.js +195 -0
  245. package/dist/components/Grid/filtering/utils/FilteringUtilts.js.map +1 -0
  246. package/dist/components/Grid/index.d.ts +2 -0
  247. package/dist/components/Grid/index.js +2 -0
  248. package/dist/components/Grid/index.js.map +1 -0
  249. package/dist/components/Grid/interfaces.d.ts +36 -0
  250. package/dist/components/Grid/selection/model/Selection.d.ts +12 -0
  251. package/dist/components/Grid/selection/model/Selection.js +54 -0
  252. package/dist/components/Grid/selection/model/Selection.js.map +1 -0
  253. package/dist/components/Grid/sorting/Sorting.d.ts +10 -0
  254. package/dist/components/Grid/sorting/Sorting.js +31 -0
  255. package/dist/components/Grid/sorting/Sorting.js.map +1 -0
  256. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.d.ts +8 -0
  257. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +157 -0
  258. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -0
  259. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.d.ts +9 -0
  260. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js +15 -0
  261. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js.map +1 -0
  262. package/dist/components/Grid/sorting/controllers/useColumnSortingController.d.ts +9 -0
  263. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js +22 -0
  264. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js.map +1 -0
  265. package/dist/components/Grid/translations.d.ts +366 -0
  266. package/dist/components/Grid/translations.js +99 -0
  267. package/dist/components/Grid/translations.js.map +1 -0
  268. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.d.ts +2 -0
  269. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js +11 -0
  270. package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js.map +1 -0
  271. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.d.ts +1 -0
  272. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js +2 -0
  273. package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js.map +1 -0
  274. package/dist/components/GridCellRenderer/GridCellRenderer.d.ts +3 -0
  275. package/dist/components/GridCellRenderer/GridCellRenderer.js +293 -0
  276. package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -0
  277. package/dist/components/GridCellRenderer/OptionSet/OptionSet.d.ts +5 -0
  278. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js +75 -0
  279. package/dist/components/GridCellRenderer/OptionSet/OptionSet.js.map +1 -0
  280. package/dist/components/GridCellRenderer/OptionSet/index.d.ts +1 -0
  281. package/dist/components/GridCellRenderer/OptionSet/index.js +2 -0
  282. package/dist/components/GridCellRenderer/OptionSet/index.js.map +1 -0
  283. package/dist/components/GridCellRenderer/OptionSet/styles.d.ts +20 -0
  284. package/dist/components/GridCellRenderer/OptionSet/styles.js +29 -0
  285. package/dist/components/GridCellRenderer/OptionSet/styles.js.map +1 -0
  286. package/dist/components/GridCellRenderer/RecordCommands/Icon.d.ts +7 -0
  287. package/dist/components/GridCellRenderer/RecordCommands/Icon.js +32 -0
  288. package/dist/components/GridCellRenderer/RecordCommands/Icon.js.map +1 -0
  289. package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.d.ts +13 -0
  290. package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.js +103 -0
  291. package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.js.map +1 -0
  292. package/dist/components/GridCellRenderer/RecordCommands/styles.d.ts +13 -0
  293. package/dist/components/GridCellRenderer/RecordCommands/styles.js +32 -0
  294. package/dist/components/GridCellRenderer/RecordCommands/styles.js.map +1 -0
  295. package/dist/components/GridCellRenderer/index.d.ts +2 -0
  296. package/dist/components/GridCellRenderer/index.js +2 -0
  297. package/dist/components/GridCellRenderer/index.js.map +1 -0
  298. package/dist/components/GridCellRenderer/interfaces.d.ts +66 -0
  299. package/dist/components/GridCellRenderer/styles.d.ts +85 -0
  300. package/dist/components/GridCellRenderer/styles.js +119 -0
  301. package/dist/components/GridCellRenderer/styles.js.map +1 -0
  302. package/dist/components/GridCellRenderer/translations.d.ts +30 -0
  303. package/dist/components/GridCellRenderer/translations.js +35 -0
  304. package/dist/components/GridCellRenderer/translations.js.map +1 -0
  305. package/dist/components/GridCellRenderer/useComponentProps.d.ts +6 -0
  306. package/dist/components/GridCellRenderer/useComponentProps.js +10 -0
  307. package/dist/components/GridCellRenderer/useComponentProps.js.map +1 -0
  308. package/dist/components/Lookup/Lookup.d.ts +3 -0
  309. package/dist/components/Lookup/Lookup.js +222 -0
  310. package/dist/components/Lookup/Lookup.js.map +1 -0
  311. package/dist/components/Lookup/components/RecordCreator.d.ts +10 -0
  312. package/dist/components/Lookup/components/RecordCreator.js +37 -0
  313. package/dist/components/Lookup/components/RecordCreator.js.map +1 -0
  314. package/dist/components/Lookup/components/TargetSelector.d.ts +9 -0
  315. package/dist/components/Lookup/components/TargetSelector.js +19 -0
  316. package/dist/components/Lookup/components/TargetSelector.js.map +1 -0
  317. package/dist/components/Lookup/hooks/useFetchXml.d.ts +6 -0
  318. package/dist/components/Lookup/hooks/useFetchXml.js +52 -0
  319. package/dist/components/Lookup/hooks/useFetchXml.js.map +1 -0
  320. package/dist/components/Lookup/hooks/useLoadedEntities.d.ts +6 -0
  321. package/dist/components/Lookup/hooks/useLoadedEntities.js +20 -0
  322. package/dist/components/Lookup/hooks/useLoadedEntities.js.map +1 -0
  323. package/dist/components/Lookup/hooks/useLookup.d.ts +43 -0
  324. package/dist/components/Lookup/hooks/useLookup.js +120 -0
  325. package/dist/components/Lookup/hooks/useLookup.js.map +1 -0
  326. package/dist/components/Lookup/index.d.ts +3 -0
  327. package/dist/components/Lookup/index.js +3 -0
  328. package/dist/components/Lookup/index.js.map +1 -0
  329. package/dist/components/Lookup/interfaces.d.ts +75 -0
  330. package/dist/components/Lookup/styles.d.ts +95 -0
  331. package/dist/components/Lookup/styles.js +112 -0
  332. package/dist/components/Lookup/styles.js.map +1 -0
  333. package/dist/components/Lookup/translations.d.ts +30 -0
  334. package/dist/components/Lookup/translations.js +33 -0
  335. package/dist/components/Lookup/translations.js.map +1 -0
  336. package/dist/components/MultiSelectOptionSet/ColofulOptions/ColorfulOptions.d.ts +8 -0
  337. package/dist/components/MultiSelectOptionSet/ColofulOptions/ColorfulOptions.js +42 -0
  338. package/dist/components/MultiSelectOptionSet/ColofulOptions/ColorfulOptions.js.map +1 -0
  339. package/dist/components/MultiSelectOptionSet/ColofulOptions/styles.d.ts +17 -0
  340. package/dist/components/MultiSelectOptionSet/ColofulOptions/styles.js +24 -0
  341. package/dist/components/MultiSelectOptionSet/ColofulOptions/styles.js.map +1 -0
  342. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.d.ts +3 -0
  343. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +132 -0
  344. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -0
  345. package/dist/components/MultiSelectOptionSet/index.d.ts +2 -0
  346. package/dist/components/MultiSelectOptionSet/index.js +2 -0
  347. package/dist/components/MultiSelectOptionSet/index.js.map +1 -0
  348. package/dist/components/MultiSelectOptionSet/interfaces.d.ts +13 -0
  349. package/dist/components/MultiSelectOptionSet/styles.d.ts +31 -0
  350. package/dist/components/MultiSelectOptionSet/styles.js +42 -0
  351. package/dist/components/MultiSelectOptionSet/styles.js.map +1 -0
  352. package/dist/components/NestedControlRenderer/NestedControl.d.ts +86 -0
  353. package/dist/components/NestedControlRenderer/NestedControl.js +456 -0
  354. package/dist/components/NestedControlRenderer/NestedControl.js.map +1 -0
  355. package/dist/components/NestedControlRenderer/NestedControlError.d.ts +4 -0
  356. package/dist/components/NestedControlRenderer/NestedControlError.js +13 -0
  357. package/dist/components/NestedControlRenderer/NestedControlError.js.map +1 -0
  358. package/dist/components/NestedControlRenderer/NestedControlRenderer.d.ts +3 -0
  359. package/dist/components/NestedControlRenderer/NestedControlRenderer.js +194 -0
  360. package/dist/components/NestedControlRenderer/NestedControlRenderer.js.map +1 -0
  361. package/dist/components/NestedControlRenderer/index.d.ts +1 -0
  362. package/dist/components/NestedControlRenderer/index.js +2 -0
  363. package/dist/components/NestedControlRenderer/index.js.map +1 -0
  364. package/dist/components/NestedControlRenderer/interfaces.d.ts +122 -0
  365. package/dist/components/NestedControlRenderer/manifest/Control.d.ts +16 -0
  366. package/dist/components/NestedControlRenderer/manifest/Control.js +40 -0
  367. package/dist/components/NestedControlRenderer/manifest/Control.js.map +1 -0
  368. package/dist/components/NestedControlRenderer/manifest/Manifest.d.ts +5 -0
  369. package/dist/components/NestedControlRenderer/manifest/Manifest.js +12 -0
  370. package/dist/components/NestedControlRenderer/manifest/Manifest.js.map +1 -0
  371. package/dist/components/NestedControlRenderer/manifest/TypeGroup.d.ts +6 -0
  372. package/dist/components/NestedControlRenderer/manifest/TypeGroup.js +13 -0
  373. package/dist/components/NestedControlRenderer/manifest/TypeGroup.js.map +1 -0
  374. package/dist/components/NestedControlRenderer/manifest/index.d.ts +1 -0
  375. package/dist/components/NestedControlRenderer/manifest/index.js +2 -0
  376. package/dist/components/NestedControlRenderer/manifest/index.js.map +1 -0
  377. package/dist/components/NestedControlRenderer/manifest/property/Property.d.ts +16 -0
  378. package/dist/components/NestedControlRenderer/manifest/property/Property.js +34 -0
  379. package/dist/components/NestedControlRenderer/manifest/property/Property.js.map +1 -0
  380. package/dist/components/NestedControlRenderer/manifest/property/Value.d.ts +8 -0
  381. package/dist/components/NestedControlRenderer/manifest/property/Value.js +12 -0
  382. package/dist/components/NestedControlRenderer/manifest/property/Value.js.map +1 -0
  383. package/dist/components/NestedControlRenderer/properties/DateProperty.d.ts +5 -0
  384. package/dist/components/NestedControlRenderer/properties/DateProperty.js +20 -0
  385. package/dist/components/NestedControlRenderer/properties/DateProperty.js.map +1 -0
  386. package/dist/components/NestedControlRenderer/properties/FileProperty.d.ts +5 -0
  387. package/dist/components/NestedControlRenderer/properties/FileProperty.js +14 -0
  388. package/dist/components/NestedControlRenderer/properties/FileProperty.js.map +1 -0
  389. package/dist/components/NestedControlRenderer/properties/LookupProperty.d.ts +6 -0
  390. package/dist/components/NestedControlRenderer/properties/LookupProperty.js +35 -0
  391. package/dist/components/NestedControlRenderer/properties/LookupProperty.js.map +1 -0
  392. package/dist/components/NestedControlRenderer/properties/NumberProperty.d.ts +5 -0
  393. package/dist/components/NestedControlRenderer/properties/NumberProperty.js +15 -0
  394. package/dist/components/NestedControlRenderer/properties/NumberProperty.js.map +1 -0
  395. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.d.ts +5 -0
  396. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js +18 -0
  397. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js.map +1 -0
  398. package/dist/components/NestedControlRenderer/properties/Property.d.ts +17 -0
  399. package/dist/components/NestedControlRenderer/properties/Property.js +46 -0
  400. package/dist/components/NestedControlRenderer/properties/Property.js.map +1 -0
  401. package/dist/components/NestedControlRenderer/properties/TextProperty.d.ts +5 -0
  402. package/dist/components/NestedControlRenderer/properties/TextProperty.js +15 -0
  403. package/dist/components/NestedControlRenderer/properties/TextProperty.js.map +1 -0
  404. package/dist/components/NestedControlRenderer/styles.d.ts +14 -0
  405. package/dist/components/NestedControlRenderer/styles.js +21 -0
  406. package/dist/components/NestedControlRenderer/styles.js.map +1 -0
  407. package/dist/components/NestedControlRenderer/translations.d.ts +14 -0
  408. package/dist/components/NestedControlRenderer/translations.js +19 -0
  409. package/dist/components/NestedControlRenderer/translations.js.map +1 -0
  410. package/dist/components/OptionSet/OptionSet.d.ts +3 -0
  411. package/dist/components/OptionSet/OptionSet.js +80 -0
  412. package/dist/components/OptionSet/OptionSet.js.map +1 -0
  413. package/dist/components/OptionSet/index.d.ts +2 -0
  414. package/dist/components/OptionSet/index.js +2 -0
  415. package/dist/components/OptionSet/index.js.map +1 -0
  416. package/dist/components/OptionSet/interfaces.d.ts +13 -0
  417. package/dist/components/OptionSet/shared.d.ts +5 -0
  418. package/dist/components/OptionSet/shared.js +19 -0
  419. package/dist/components/OptionSet/shared.js.map +1 -0
  420. package/dist/components/OptionSet/styles.d.ts +11 -0
  421. package/dist/components/OptionSet/styles.js +18 -0
  422. package/dist/components/OptionSet/styles.js.map +1 -0
  423. package/dist/components/OptionSet/useComboBoxTheme.d.ts +3 -0
  424. package/dist/components/OptionSet/useComboBoxTheme.js +61 -0
  425. package/dist/components/OptionSet/useComboBoxTheme.js.map +1 -0
  426. package/dist/components/TextField/TextField.d.ts +3 -0
  427. package/dist/components/TextField/TextField.js +120 -0
  428. package/dist/components/TextField/TextField.js.map +1 -0
  429. package/dist/components/TextField/index.d.ts +2 -0
  430. package/dist/components/TextField/index.js +2 -0
  431. package/dist/components/TextField/index.js.map +1 -0
  432. package/dist/components/TextField/interfaces.d.ts +14 -0
  433. package/dist/components/TwoOptions/TwoOptions.d.ts +3 -0
  434. package/dist/components/TwoOptions/TwoOptions.js +55 -0
  435. package/dist/components/TwoOptions/TwoOptions.js.map +1 -0
  436. package/dist/components/TwoOptions/index.d.ts +2 -0
  437. package/dist/components/TwoOptions/index.js +2 -0
  438. package/dist/components/TwoOptions/index.js.map +1 -0
  439. package/dist/components/TwoOptions/interfaces.d.ts +13 -0
  440. package/dist/components/index.d.ts +13 -0
  441. package/dist/components/index.js +17 -0
  442. package/dist/components/index.js.map +1 -0
  443. package/dist/constants.d.ts +15 -0
  444. package/dist/constants.js +35 -0
  445. package/dist/constants.js.map +1 -0
  446. package/dist/hooks/index.d.ts +7 -0
  447. package/dist/hooks/index.js +8 -0
  448. package/dist/hooks/index.js.map +1 -0
  449. package/dist/hooks/useControl.d.ts +17 -0
  450. package/dist/hooks/useControl.js +67 -0
  451. package/dist/hooks/useControl.js.map +1 -0
  452. package/dist/hooks/useControlLabels.d.ts +14 -0
  453. package/dist/hooks/useControlLabels.js +47 -0
  454. package/dist/hooks/useControlLabels.js.map +1 -0
  455. package/dist/hooks/useControlSizing.d.ts +5 -0
  456. package/dist/hooks/useControlSizing.js +15 -0
  457. package/dist/hooks/useControlSizing.js.map +1 -0
  458. package/dist/hooks/useFocusIn.d.ts +1 -0
  459. package/dist/hooks/useFocusIn.js +33 -0
  460. package/dist/hooks/useFocusIn.js.map +1 -0
  461. package/dist/hooks/useInputBasedControl.d.ts +37 -0
  462. package/dist/hooks/useInputBasedControl.js +36 -0
  463. package/dist/hooks/useInputBasedControl.js.map +1 -0
  464. package/dist/hooks/useMouseOver.d.ts +1 -0
  465. package/dist/hooks/useMouseOver.js +23 -0
  466. package/dist/hooks/useMouseOver.js.map +1 -0
  467. package/dist/hooks/usePrevious.d.ts +1 -0
  468. package/dist/index.d.ts +1504 -0
  469. package/dist/index.js +30 -0
  470. package/dist/index.js.map +1 -0
  471. package/dist/interfaces/context.d.ts +27 -0
  472. package/dist/interfaces/index.d.ts +9 -0
  473. package/dist/interfaces/index.js +2 -0
  474. package/dist/interfaces/index.js.map +1 -0
  475. package/dist/interfaces/parameters.d.ts +25 -0
  476. package/dist/interfaces/property.d.ts +67 -0
  477. package/dist/utils/BaseControls.d.ts +16 -0
  478. package/dist/utils/BaseControls.js +82 -0
  479. package/dist/utils/BaseControls.js.map +1 -0
  480. package/dist/utils/dataset/adapters/DatasetAdapter.d.ts +59 -0
  481. package/dist/utils/dataset/adapters/DatasetAdapter.js +229 -0
  482. package/dist/utils/dataset/adapters/DatasetAdapter.js.map +1 -0
  483. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.d.ts +48 -0
  484. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js +169 -0
  485. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -0
  486. package/dist/utils/dataset/adapters/index.d.ts +2 -0
  487. package/dist/utils/dataset/adapters/index.js +3 -0
  488. package/dist/utils/dataset/adapters/index.js.map +1 -0
  489. package/dist/utils/dataset/index.d.ts +1 -0
  490. package/dist/utils/dataset/index.js +3 -0
  491. package/dist/utils/dataset/index.js.map +1 -0
  492. package/dist/utils/index.d.ts +3 -0
  493. package/dist/utils/index.js +8 -0
  494. package/dist/utils/index.js.map +1 -0
  495. package/dist/utils/theme/ControlTheme.d.ts +21 -0
  496. package/dist/utils/theme/ControlTheme.js +39 -0
  497. package/dist/utils/theme/ControlTheme.js.map +1 -0
  498. package/dist/utils/theme/components/ThemeWrapper.d.ts +9 -0
  499. package/dist/utils/theme/components/ThemeWrapper.js +11 -0
  500. package/dist/utils/theme/components/ThemeWrapper.js.map +1 -0
  501. package/dist/utils/theme/components/index.d.ts +1 -0
  502. package/dist/utils/theme/components/index.js +2 -0
  503. package/dist/utils/theme/components/index.js.map +1 -0
  504. package/dist/utils/theme/hooks/index.d.ts +2 -0
  505. package/dist/utils/theme/hooks/index.js +3 -0
  506. package/dist/utils/theme/hooks/index.js.map +1 -0
  507. package/dist/utils/theme/hooks/useControlTheme.d.ts +3 -0
  508. package/dist/utils/theme/hooks/useControlTheme.js +12 -0
  509. package/dist/utils/theme/hooks/useControlTheme.js.map +1 -0
  510. package/dist/utils/theme/hooks/useControlThemeGenerator.d.ts +14 -0
  511. package/dist/utils/theme/hooks/useControlThemeGenerator.js +11 -0
  512. package/dist/utils/theme/hooks/useControlThemeGenerator.js.map +1 -0
  513. package/dist/utils/theme/index.d.ts +3 -0
  514. package/dist/utils/theme/index.js +5 -0
  515. package/dist/utils/theme/index.js.map +1 -0
  516. package/package.json +94 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectOptionSet.js","sources":["../../../src/components/MultiSelectOptionSet/MultiSelectOptionSet.tsx"],"sourcesContent":["\nimport { IMultiSelectOptionSet } from './interfaces';\nimport { useControl } from '../../hooks';\nimport { ComboBox } from \"@talxis/react-components\";\nimport { IComboBox, IComboBoxOption, ThemeProvider } from '@fluentui/react';\nimport { useEffect, useMemo, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport React from 'react';\nimport { ColorfulOptions } from './ColofulOptions/ColorfulOptions';\nimport { getIsColorFeatureEnabled, onRenderColorfulOption } from '../OptionSet/shared';\nimport { getComboBoxStyles } from './styles';\n\nexport const MultiSelectOptionSet = (props: IMultiSelectOptionSet) => {\n const { sizing, onNotifyOutputChanged, theme } = useControl('MultiSelectOptionSet', props);\n const ref = useRef<HTMLDivElement>(null);\n const parameters = props.parameters;\n const boundValue = parameters.value;\n const componentRef = useRef<IComboBox>(null);\n const { Options } = parameters.value.attributes;\n const context = props.context;\n const applicationTheme = props.context.fluentDesignLanguage?.applicationTheme;\n const isColorFeatureEnabled = useMemo(() => getIsColorFeatureEnabled(props.parameters.EnableOptionSetColors?.raw, Options), [props.parameters.EnableOptionSetColors?.raw, Options]);\n const comboBoxOptions: IComboBoxOption[] = Options.map(option => ({\n key: option.Value.toString(),\n text: option.Label,\n }));\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n\n const handleChange = (option?: IComboBoxOption | null): void => {\n if (!option) {\n onNotifyOutputChanged({\n value: undefined\n });\n return;\n }\n const optionKey = option.key.toString();\n const updatedSelectedKeys = new Set(boundValue.raw || []);\n if (option.selected) {\n updatedSelectedKeys.add(+optionKey);\n } else {\n updatedSelectedKeys.delete(+optionKey);\n }\n const updatedSelectedKeysArray = Array.from(updatedSelectedKeys);\n\n onNotifyOutputChanged({\n value: updatedSelectedKeysArray.map(key => +key)\n });\n };\n\n const isEmptyValue = () => {\n if (!boundValue.raw) {\n return true;\n }\n if (boundValue.raw.length === 0) {\n return true;\n }\n return false;\n }\n\n const renderColorfulOptions = () => {\n const className = 'talxis__multiSelectOptionSet__colorfulOptions';\n const parent: HTMLDivElement = ref.current?.querySelector('.ms-ComboBox')!;\n const container = document.createElement('div');\n container.setAttribute('class', `${className} ${styles.colorfulOptionsWrapper}`);\n container.onclick = () => componentRef.current?.focus(true);\n\n ReactDOM.render(React.createElement(ColorfulOptions, {\n value: boundValue,\n context: props.context\n }), container);\n\n const existingContainer = parent.querySelector(`:scope>.${className}`);\n if (existingContainer && isEmptyValue()) {\n //clear the container if no values are selected\n parent.removeChild(existingContainer);\n }\n if (!existingContainer) {\n parent.prepend(container);\n }\n else {\n existingContainer.replaceWith(container);\n }\n }\n\n\n useEffect(() => {\n if (parameters.AutoFocus?.raw) {\n componentRef.current?.focus(true);\n }\n }, []);\n\n useEffect(() => {\n if (isColorFeatureEnabled) {\n renderColorfulOptions();\n }\n }, [boundValue.raw]);\n\n const styles = getComboBoxStyles(isColorFeatureEnabled, isEmptyValue(), sizing.width, sizing.height)\n\n const componentProps = onOverrideComponentProps({\n componentRef: componentRef,\n ref: ref,\n options: comboBoxOptions,\n allowFreeInput: true,\n multiSelect: true,\n autoComplete: \"on\",\n autofill: parameters.AutoFocus?.raw === true ? {\n autoFocus: true,\n } : undefined,\n onRenderContainer: (containerProps, defaultRender) => <ThemeProvider theme={props.context.fluentDesignLanguage?.applicationTheme}>{defaultRender?.(containerProps)}</ThemeProvider>,\n onRenderOption: isColorFeatureEnabled ? (option) => onRenderColorfulOption(Options, option, theme) : undefined,\n calloutProps: applicationTheme ? {\n theme: applicationTheme\n } : undefined,\n readOnly: context.mode.isControlDisabled,\n errorMessage: boundValue.errorMessage,\n selectedKey: boundValue.raw ? boundValue.raw.map(key => key.toString()) : null,\n useComboBoxAsMenuWidth: true,\n hideErrorMessage: !parameters.ShowErrorMessage?.raw,\n styles: { root: styles.root, callout: styles.callout },\n clickToCopyProps: parameters.EnableCopyButton?.raw === true ? {\n key: 'copy',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Copy'\n }\n } : undefined,\n deleteButtonProps: parameters.EnableDeleteButton?.raw === true ? {\n key: 'delete',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Cancel'\n },\n onClick: (e, value) => {\n handleChange(null);\n }\n } : undefined,\n onChange: (e, option) => handleChange(option),\n });\n\n return (\n <ThemeProvider theme={theme} applyTo=\"none\">\n <ComboBox {...componentProps} />\n </ThemeProvider>\n );\n};\n"],"names":["React","_jsx"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './MultiSelectOptionSet';
2
+ export * from './interfaces';
@@ -0,0 +1,2 @@
1
+ export { MultiSelectOptionSet } from './MultiSelectOptionSet.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { IComboBoxProps } from "@talxis/react-components";
2
+ import { IMultiSelectOptionSetProperty, ITwoOptionsProperty } from "../../interfaces";
3
+ import { IControl, IOutputs } from "../../interfaces/context";
4
+ import { IInputParameters } from "../../interfaces/parameters";
5
+ export interface IMultiSelectOptionSet extends IControl<IMultiSelectOptionSetParameters, IMultiSelectOptionSetOutputs, any, IComboBoxProps> {
6
+ }
7
+ export interface IMultiSelectOptionSetParameters extends IInputParameters {
8
+ value: IMultiSelectOptionSetProperty;
9
+ EnableOptionSetColors?: Omit<ITwoOptionsProperty, 'attributes'>;
10
+ }
11
+ export interface IMultiSelectOptionSetOutputs extends IOutputs {
12
+ value?: number[];
13
+ }
@@ -0,0 +1,31 @@
1
+ export declare const getComboBoxStyles: (isColorFeatureEnabled: boolean, isEmptyValue: boolean, width?: number, height?: number) => import("@fluentui/react").IProcessedStyleSet<{
2
+ root: {
3
+ '.ms-ComboBox-Input': {
4
+ opacity: number;
5
+ width: number | undefined;
6
+ };
7
+ paddingLeft?: string | undefined;
8
+ height: number | undefined;
9
+ width: number | undefined;
10
+ display: string;
11
+ alignItems: string;
12
+ };
13
+ callout: {
14
+ '.ms-Checkbox-label'?: {
15
+ display: string;
16
+ flexDirection: string;
17
+ gap: string;
18
+ alignItems: string;
19
+ } | undefined;
20
+ maxHeight: string;
21
+ };
22
+ colorfulOptionsWrapper: {
23
+ flexGrow: number;
24
+ display: string;
25
+ alignItems: string;
26
+ height: string;
27
+ textAlign: string;
28
+ overflow: string;
29
+ textOverflow: string;
30
+ };
31
+ }>;
@@ -0,0 +1,42 @@
1
+ import { mergeStyleSets } from '@fluentui/react';
2
+
3
+ const getComboBoxStyles = (isColorFeatureEnabled, isEmptyValue, width, height) => {
4
+ return mergeStyleSets({
5
+ root: {
6
+ height: height,
7
+ width: width,
8
+ display: 'flex',
9
+ alignItems: 'center',
10
+ ...(!isEmptyValue && isColorFeatureEnabled && {
11
+ paddingLeft: '4px !important',
12
+ }),
13
+ '.ms-ComboBox-Input': {
14
+ opacity: isColorFeatureEnabled && !isEmptyValue ? 0 : 1,
15
+ width: isColorFeatureEnabled && !isEmptyValue ? 0 : undefined
16
+ }
17
+ },
18
+ callout: {
19
+ maxHeight: '300px !important',
20
+ ...(isColorFeatureEnabled && {
21
+ '.ms-Checkbox-label': {
22
+ display: 'flex',
23
+ flexDirection: 'row',
24
+ gap: '5px',
25
+ alignItems: 'center',
26
+ },
27
+ }),
28
+ },
29
+ colorfulOptionsWrapper: {
30
+ flexGrow: 1,
31
+ display: 'flex',
32
+ alignItems: 'center',
33
+ height: '100%',
34
+ textAlign: 'left',
35
+ overflow: 'hidden',
36
+ textOverflow: 'ellipsis'
37
+ },
38
+ });
39
+ };
40
+
41
+ export { getComboBoxStyles };
42
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../src/components/MultiSelectOptionSet/styles.ts"],"sourcesContent":["import { mergeStyleSets } from \"@fluentui/react\"\n\nexport const getComboBoxStyles = (isColorFeatureEnabled: boolean, isEmptyValue: boolean, width?: number, height?: number) => {\n return mergeStyleSets({\n root: {\n height: height,\n width: width,\n display: 'flex',\n alignItems: 'center',\n ...(!isEmptyValue && isColorFeatureEnabled && {\n paddingLeft: '4px !important',\n }),\n '.ms-ComboBox-Input': {\n opacity: isColorFeatureEnabled && !isEmptyValue ? 0 : 1,\n width: isColorFeatureEnabled && !isEmptyValue ? 0 : undefined\n }\n },\n callout: {\n maxHeight: '300px !important',\n ...(isColorFeatureEnabled && {\n '.ms-Checkbox-label': {\n display: 'flex',\n flexDirection: 'row',\n gap: '5px',\n alignItems: 'center',\n },\n }),\n },\n colorfulOptionsWrapper: {\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n textAlign: 'left',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n })\n}"],"names":[],"mappings":";;AAEO,MAAM,iBAAiB,GAAG,CAAC,qBAA8B,EAAE,YAAqB,EAAE,KAAc,EAAE,MAAe,KAAI;AACxH,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,IAAI,CAAC,YAAY,IAAI,qBAAqB,IAAI;AAC1C,gBAAA,WAAW,EAAE,gBAAgB;aAChC,CAAC;AACF,YAAA,oBAAoB,EAAE;AAClB,gBAAA,OAAO,EAAE,qBAAqB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC;AACvD,gBAAA,KAAK,EAAE,qBAAqB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,SAAS;AAChE,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,SAAS,EAAE,kBAAkB;YAC7B,IAAI,qBAAqB,IAAI;AACzB,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,aAAa,EAAE,KAAK;AACpB,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,UAAU,EAAE,QAAQ;AACvB,iBAAA;aACJ,CAAC;AACL,SAAA;AACD,QAAA,sBAAsB,EAAE;AACpB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,YAAY,EAAE,UAAU;AAC3B,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
@@ -0,0 +1,86 @@
1
+ /// <reference types="@types/powerapps-component-framework" />
2
+ import { IControl, IParameters, IProperty } from "../../interfaces";
3
+ import { IBinding, IControlStates } from "./interfaces";
4
+ export interface IOptions {
5
+ onGetBindings: () => {
6
+ [key: string]: IBinding;
7
+ };
8
+ /**
9
+ * PCF Context of parent control using this class. It will be used as base for nested control PCF context.
10
+ */
11
+ parentPcfContext: ComponentFramework.Context<any, any>;
12
+ /**
13
+ * Custom PCF to be rendered, if not provided you will get Base Control props.
14
+ */
15
+ /**
16
+ * Container element into which the control will be rendered in.
17
+ */
18
+ onGetContainerElement?: () => HTMLDivElement;
19
+ onGetControlName?: () => string;
20
+ callbacks?: {
21
+ onInit?: (instance: NestedControl) => void;
22
+ onGetControlStates?: () => IControlStates | undefined;
23
+ onNotifyOutputChanged?: (ouputs: any) => void;
24
+ /**
25
+ * Triggers when the control changes a state that should be visible in control renderer UI (for example loading)
26
+ */
27
+ onControlStateChanged?: () => void;
28
+ };
29
+ overrides?: {
30
+ onGetProps?: (props: IControl<any, any, any, any>) => IControl<any, any, any, any>;
31
+ onRender?: (control: NestedControl, defaultRender: () => Promise<void>) => void;
32
+ onUnmount?: (control: NestedControl, defaultUnmount: () => void) => void;
33
+ };
34
+ }
35
+ export declare class NestedControl {
36
+ private _options;
37
+ private _pendingInitialRender;
38
+ private _errorMessage;
39
+ private _properties;
40
+ private _lastRenderedControlName;
41
+ private _hasCustomPcfBeenMounted;
42
+ private _customControlInstance;
43
+ private _customControlId;
44
+ private _manifest;
45
+ private _loading;
46
+ private _props;
47
+ private _mutationObserver;
48
+ private _destroyed;
49
+ private _initialized;
50
+ private _container;
51
+ private _hasControlBeenPatched;
52
+ constructor(options: IOptions);
53
+ getProps(): IControl<IParameters, any, any, any>;
54
+ refreshProps(): any;
55
+ getParameters(): {
56
+ [name: string]: IProperty;
57
+ };
58
+ isLoading(): boolean;
59
+ setLoading(loading: boolean): void;
60
+ getOptions(): IOptions;
61
+ render(): Promise<void>;
62
+ unmount(softUnmount?: boolean): void;
63
+ getErrorMessage(): string;
64
+ setError(message?: string): void;
65
+ isMountedPcfComponent(): boolean;
66
+ getContainer(): HTMLDivElement;
67
+ getControlName(): string;
68
+ getBindings(): {
69
+ [key: string]: IBinding;
70
+ };
71
+ getCustomControlId(): string;
72
+ private _overrideDecorator;
73
+ private _unmount;
74
+ private _render;
75
+ private _getCustomControlNameWithoutPrefix;
76
+ private _checkIfControlLoadedToDom;
77
+ private _getPropertiesFromBindings;
78
+ private _getPropertyInstance;
79
+ private _getPrimaryBindingName;
80
+ private _getManifestPrimaryBinding;
81
+ private _getManifest;
82
+ private _getCustomControlParameters;
83
+ private _patchUpdateView;
84
+ private _patchContext;
85
+ private _getFluentDesignLanguage;
86
+ }
@@ -0,0 +1,456 @@
1
+ import { PromiseCache, DataTypes } from '@talxis/client-libraries';
2
+ import { TextProperty } from './properties/TextProperty.js';
3
+ import { OptionSetProperty } from './properties/OptionSetProperty.js';
4
+ import { NumberProperty } from './properties/NumberProperty.js';
5
+ import { DateProperty } from './properties/DateProperty.js';
6
+ import { LookupProperty } from './properties/LookupProperty.js';
7
+ import { FileProperty } from './properties/FileProperty.js';
8
+ import { NestedControlError } from './NestedControlError.js';
9
+ import { Manifest } from './manifest/Manifest.js';
10
+ import { ControlTheme } from '../../utils/theme/ControlTheme.js';
11
+
12
+ const manifestCache = new PromiseCache();
13
+ const LOADED_CONTROLS = new Set();
14
+ class NestedControl {
15
+ constructor(options) {
16
+ this._pendingInitialRender = false;
17
+ this._errorMessage = '';
18
+ this._properties = new Map();
19
+ this._lastRenderedControlName = '';
20
+ this._hasCustomPcfBeenMounted = false;
21
+ this._customControlInstance = null;
22
+ this._customControlId = '';
23
+ this._manifest = null;
24
+ this._loading = false;
25
+ this._mutationObserver = new MutationObserver((mutations) => this._checkIfControlLoadedToDom(mutations));
26
+ this._destroyed = false;
27
+ this._initialized = false;
28
+ this._container = null;
29
+ this._hasControlBeenPatched = false;
30
+ this._options = options;
31
+ this._getPropertiesFromBindings();
32
+ }
33
+ getProps() {
34
+ if (!this._props) {
35
+ return this.refreshProps();
36
+ }
37
+ return this._props;
38
+ }
39
+ refreshProps() {
40
+ const parameters = this.getParameters();
41
+ const props = {
42
+ context: {
43
+ ...this.getOptions().parentPcfContext,
44
+ parameters: parameters,
45
+ mode: Object.create(this.getOptions().parentPcfContext.mode, {
46
+ isControlDisabled: {
47
+ value: this.getOptions().callbacks?.onGetControlStates?.()?.isControlDisabled ?? false
48
+ }
49
+ }),
50
+ factory: {
51
+ ...this.getOptions().parentPcfContext.factory,
52
+ requestRender: () => this.render()
53
+ },
54
+ fluentDesignLanguage: this._getFluentDesignLanguage(this.getOptions().parentPcfContext.fluentDesignLanguage)
55
+ },
56
+ parameters: parameters,
57
+ onNotifyOutputChanged: (outputs) => {
58
+ Object.entries(outputs).map(([name, output]) => {
59
+ this.getOptions().onGetBindings()[name]?.onNotifyOutputChanged?.(output);
60
+ });
61
+ this.getOptions().callbacks?.onNotifyOutputChanged?.(outputs);
62
+ }
63
+ };
64
+ const result = this._overrideDecorator(() => props, this.getOptions().overrides?.onGetProps, () => [props]);
65
+ this._props = result;
66
+ return result;
67
+ }
68
+ getParameters() {
69
+ const parameters = {};
70
+ [...this._properties.entries()].map(([name, prop]) => {
71
+ const binding = this.getOptions().onGetBindings()[name];
72
+ //binding might not exist if we have switched controls
73
+ if (binding) {
74
+ parameters[name] = {
75
+ ...prop.getParameter(),
76
+ error: binding.error ?? false,
77
+ errorMessage: binding.errorMessage ?? null,
78
+ type: prop.dataType
79
+ };
80
+ }
81
+ });
82
+ return parameters;
83
+ }
84
+ isLoading() {
85
+ return this._loading;
86
+ }
87
+ setLoading(loading) {
88
+ this._loading = loading;
89
+ }
90
+ getOptions() {
91
+ return this._options;
92
+ }
93
+ async render() {
94
+ if (this._pendingInitialRender || this._destroyed) {
95
+ return;
96
+ }
97
+ await this._getPropertiesFromBindings();
98
+ if (this._destroyed) {
99
+ return;
100
+ }
101
+ this.refreshProps();
102
+ //if we detect a change in name, unmount the component before render
103
+ if (this._lastRenderedControlName && this._lastRenderedControlName !== this.getControlName()) {
104
+ this.unmount(true);
105
+ }
106
+ if (!this._customControlId) {
107
+ this._customControlId = crypto.randomUUID();
108
+ }
109
+ await this._overrideDecorator(async () => this._render(), this.getOptions().overrides?.onRender, () => [this, async () => this._render()]);
110
+ if (this._destroyed) {
111
+ return;
112
+ }
113
+ this._lastRenderedControlName = this.getControlName();
114
+ }
115
+ unmount(softUnmount) {
116
+ this._overrideDecorator(() => this._unmount(), this.getOptions().overrides?.onUnmount, () => [this, () => this._unmount()]);
117
+ this._lastRenderedControlName = '';
118
+ this._hasCustomPcfBeenMounted = false;
119
+ this._hasControlBeenPatched = false;
120
+ this._customControlId = '';
121
+ this._mutationObserver?.disconnect();
122
+ if (!softUnmount) {
123
+ this._mutationObserver = null;
124
+ this._customControlInstance = null;
125
+ this._props = undefined;
126
+ this._container = null;
127
+ this._properties.clear();
128
+ this._destroyed = true;
129
+ }
130
+ }
131
+ getErrorMessage() {
132
+ return this._errorMessage;
133
+ }
134
+ setError(message) {
135
+ this._errorMessage = message ?? '';
136
+ }
137
+ isMountedPcfComponent() {
138
+ return this._hasCustomPcfBeenMounted;
139
+ }
140
+ getContainer() {
141
+ let container = this.getOptions().onGetContainerElement?.();
142
+ if (container) {
143
+ this._container = container;
144
+ return container;
145
+ }
146
+ if (this._container) {
147
+ return this._container;
148
+ }
149
+ if (!container && this._container) {
150
+ return this._container;
151
+ }
152
+ throw new Error('Cannot render control if no container is specified!');
153
+ }
154
+ getControlName() {
155
+ const controlName = this.getOptions().onGetControlName?.();
156
+ if (!controlName) {
157
+ throw new Error("Cannot render control if it's name is not specified!");
158
+ }
159
+ return controlName;
160
+ }
161
+ getBindings() {
162
+ return this.getOptions().onGetBindings();
163
+ }
164
+ getCustomControlId() {
165
+ return this._customControlId;
166
+ }
167
+ _overrideDecorator(defaultMethod, override, getOverrideArgs) {
168
+ if (override && getOverrideArgs) {
169
+ return override(...getOverrideArgs());
170
+ }
171
+ else {
172
+ return defaultMethod();
173
+ }
174
+ }
175
+ _unmount() {
176
+ this.getOptions().parentPcfContext.factory.unbindDOMComponent(this._customControlId);
177
+ }
178
+ async _render() {
179
+ try {
180
+ if (!this._lastRenderedControlName) {
181
+ this._errorMessage = '';
182
+ this._pendingInitialRender = true;
183
+ const controlName = this.getControlName();
184
+ if (!LOADED_CONTROLS.has(controlName)) {
185
+ this._loading = true;
186
+ this.getOptions().callbacks?.onControlStateChanged?.();
187
+ }
188
+ this._mutationObserver?.observe(this.getContainer(), { childList: true, subtree: true });
189
+ try {
190
+ this._manifest = await this._getManifest(controlName);
191
+ }
192
+ catch (err) {
193
+ throw new NestedControlError({
194
+ message: `Could not find control named ${controlName} on this environment.`
195
+ }, this);
196
+ }
197
+ if (this._destroyed) {
198
+ return;
199
+ }
200
+ try {
201
+ const properties = {
202
+ controlstates: this.getOptions().callbacks?.onGetControlStates?.() ?? {},
203
+ parameters: this._getCustomControlParameters(this._manifest),
204
+ childeventlisteners: [{
205
+ eventname: "onInit",
206
+ eventhandler: (control) => {
207
+ LOADED_CONTROLS.add(this._lastRenderedControlName);
208
+ this._customControlInstance = control;
209
+ this._patchUpdateView(this._customControlInstance, this._manifest);
210
+ this._loading = false;
211
+ this.getOptions().callbacks?.onControlStateChanged?.();
212
+ }
213
+ }]
214
+ };
215
+ const component = this.getOptions().parentPcfContext.factory.createComponent(controlName, this._customControlId, properties);
216
+ this.getOptions().parentPcfContext.factory.bindDOMElement(component, this.getContainer());
217
+ this._hasCustomPcfBeenMounted = true;
218
+ }
219
+ catch (err) {
220
+ throw new NestedControlError(err, this);
221
+ }
222
+ this._pendingInitialRender = false;
223
+ }
224
+ //the PCF did not change, just call updateView
225
+ else {
226
+ this._customControlInstance?.updateView?.(this.getProps().context);
227
+ }
228
+ }
229
+ catch (err) {
230
+ this._pendingInitialRender = false;
231
+ this._pendingInitialRender = false;
232
+ console.error(err);
233
+ }
234
+ }
235
+ _getCustomControlNameWithoutPrefix() {
236
+ const parts = this._lastRenderedControlName.split('_');
237
+ return parts[1] ?? parts[0];
238
+ }
239
+ _checkIfControlLoadedToDom(mutations) {
240
+ try {
241
+ mutations.map(mutation => {
242
+ const target = mutation.target;
243
+ if (target.classList.contains(this._getCustomControlNameWithoutPrefix())) {
244
+ this._loading = false;
245
+ LOADED_CONTROLS.add(this._lastRenderedControlName);
246
+ this._mutationObserver?.disconnect();
247
+ if (!this._customControlInstance) {
248
+ this._unmount();
249
+ throw new NestedControlError({
250
+ message: `Custom control ${this._lastRenderedControlName} does not expose it's instance through fireEvent. Please add fireEvent to init() to avoid unintentional behavior.`
251
+ }, this);
252
+ }
253
+ }
254
+ });
255
+ }
256
+ catch (err) {
257
+ console.error(err);
258
+ }
259
+ }
260
+ async _getPropertiesFromBindings() {
261
+ const promises = [];
262
+ Object.entries(this.getOptions().onGetBindings()).map(([name, binding]) => {
263
+ if (!this._properties.get(name)) {
264
+ const getBinding = () => this.getOptions().onGetBindings()[name];
265
+ const propertyInstance = this._getPropertyInstance(getBinding);
266
+ const metadata = getBinding()?.metadata;
267
+ //push to promise only if we need to fetch the metadata asynchronously
268
+ if (metadata?.attributeName && metadata.entityName) {
269
+ promises.push(propertyInstance.init());
270
+ }
271
+ else {
272
+ propertyInstance.init();
273
+ }
274
+ this._properties.set(name, propertyInstance);
275
+ }
276
+ });
277
+ if (promises.length > 0) {
278
+ await Promise.all(promises);
279
+ }
280
+ if (!this._initialized) {
281
+ this._initialized = true;
282
+ this.getOptions().callbacks?.onInit?.(this);
283
+ }
284
+ }
285
+ _getPropertyInstance(onGetBinding) {
286
+ switch (onGetBinding().type) {
287
+ case DataTypes.TwoOptions:
288
+ case DataTypes.OptionSet:
289
+ case DataTypes.MultiSelectOptionSet: {
290
+ return new OptionSetProperty(this.getOptions(), onGetBinding);
291
+ }
292
+ case DataTypes.DateAndTimeDateAndTime:
293
+ case DataTypes.DateAndTimeDateOnly: {
294
+ return new DateProperty(this.getOptions(), onGetBinding);
295
+ }
296
+ case DataTypes.WholeNone:
297
+ case DataTypes.Decimal:
298
+ case DataTypes.Currency:
299
+ case DataTypes.WholeDuration: {
300
+ return new NumberProperty(this.getOptions(), onGetBinding);
301
+ }
302
+ case DataTypes.LookupSimple:
303
+ case DataTypes.LookupOwner:
304
+ case DataTypes.LookupCustomer:
305
+ case DataTypes.LookupRegarding: {
306
+ return new LookupProperty(this.getOptions(), onGetBinding);
307
+ }
308
+ case DataTypes.File:
309
+ case DataTypes.Image: {
310
+ return new FileProperty(this.getOptions(), onGetBinding);
311
+ }
312
+ default: {
313
+ return new TextProperty(this.getOptions(), onGetBinding);
314
+ }
315
+ }
316
+ }
317
+ _getPrimaryBindingName() {
318
+ const primaryBinding = Object.entries(this.getOptions().onGetBindings()).find(([key, binding]) => !binding.isStatic)?.[0];
319
+ if (!primaryBinding) {
320
+ throw new Error('Control needs to have atleast one non-static binding!');
321
+ }
322
+ return primaryBinding;
323
+ }
324
+ _getManifestPrimaryBinding(manifest) {
325
+ return [...manifest.control.properties.values()].find(prop => prop.isBindingProperty);
326
+ }
327
+ async _getManifest(controlName) {
328
+ return manifestCache.get(controlName, async () => {
329
+ const result = await this.getOptions().parentPcfContext.webAPI.retrieveMultipleRecords('customcontrol', `?$select=name,manifest&$filter=name eq '${controlName}'`);
330
+ const manifestXmlString = result.entities[0].manifest;
331
+ return new Manifest(manifestXmlString);
332
+ });
333
+ }
334
+ _getCustomControlParameters(manifest) {
335
+ const result = {};
336
+ const bindingParameters = this.getProps().parameters;
337
+ const manifestProperties = [...manifest.control.properties.values()];
338
+ manifestProperties.map(property => {
339
+ result[property.name] = {
340
+ Static: property.usage === 'input',
341
+ Primary: property.isBindingProperty,
342
+ //if no ofType is present, there is a type group and we need to get the type from the passed parameters above
343
+ Type: property.ofType ?? bindingParameters[property.name]?.type ?? 'SingleLine.Text',
344
+ //if static, we take the value that came from the parameter above
345
+ Value: (() => {
346
+ const binding = bindingParameters[property.name];
347
+ if (binding) {
348
+ return binding.raw;
349
+ }
350
+ if (property.usage === 'input') {
351
+ return property.defaultValue;
352
+ }
353
+ if (property.isBindingProperty) {
354
+ return bindingParameters[this._getPrimaryBindingName()].raw;
355
+ }
356
+ })(),
357
+ Usage: (() => {
358
+ switch (property.usage) {
359
+ case 'bound': {
360
+ return 3;
361
+ }
362
+ case 'input':
363
+ case 'output': {
364
+ return 0;
365
+ }
366
+ }
367
+ })(),
368
+ Attributes: (() => {
369
+ const getBindingMetadata = (bindingName) => {
370
+ const binding = this.getOptions().onGetBindings()[bindingName];
371
+ return binding?.metadata ? {
372
+ EntityLogicalName: binding.metadata.entityName,
373
+ LogicalName: binding.metadata.attributeName
374
+ } : undefined;
375
+ };
376
+ const propertyBindingMetadata = getBindingMetadata(property.name);
377
+ if (propertyBindingMetadata) {
378
+ return propertyBindingMetadata;
379
+ }
380
+ if (property.isBindingProperty) {
381
+ return getBindingMetadata(this._getPrimaryBindingName());
382
+ }
383
+ return undefined;
384
+ })(),
385
+ Callback: (value) => {
386
+ let binding = this.getOptions().onGetBindings()[property.name];
387
+ let bindingName = property.name;
388
+ if (!binding && !property.isBindingProperty) {
389
+ return;
390
+ }
391
+ if (!binding) {
392
+ bindingName = this._getPrimaryBindingName();
393
+ binding = this.getOptions().onGetBindings()[bindingName];
394
+ }
395
+ binding.onNotifyOutputChanged?.(value);
396
+ const boundBindings = Object.entries(this.getOptions().onGetBindings()).filter(([key, binding]) => !binding.isStatic);
397
+ const outputs = {};
398
+ boundBindings.map(([key, binding]) => {
399
+ outputs[key] = key === bindingName ? value : this.getProps().parameters[bindingName].raw;
400
+ });
401
+ this.getOptions().callbacks?.onNotifyOutputChanged?.(outputs);
402
+ }
403
+ };
404
+ });
405
+ const nonManifestParameters = Object.entries(bindingParameters).filter(([key, value]) => !manifest.control.properties.get(key));
406
+ nonManifestParameters.map(([key, parameter]) => {
407
+ result[key] = {
408
+ Static: true,
409
+ Primary: false,
410
+ Type: parameter.type ?? 'SingleLine.Text',
411
+ Value: parameter.raw,
412
+ Usage: 0
413
+ };
414
+ });
415
+ return result;
416
+ }
417
+ _patchUpdateView(control, manifest) {
418
+ if (this._hasControlBeenPatched) {
419
+ return;
420
+ }
421
+ let originalContext = null;
422
+ const originalUpdateView = control.updateView.bind(control);
423
+ control.updateView = (context) => {
424
+ if (!originalContext) {
425
+ originalContext = context;
426
+ }
427
+ originalUpdateView(this._patchContext(manifest, originalContext));
428
+ };
429
+ this._hasControlBeenPatched = true;
430
+ }
431
+ _patchContext(manifest, originalContext) {
432
+ const context = this.getProps().context;
433
+ const contextParameters = originalContext.parameters;
434
+ const parameters = this.getProps().parameters;
435
+ const manifestBindingProperty = this._getManifestPrimaryBinding(manifest);
436
+ const primaryBindingName = this._getPrimaryBindingName();
437
+ context.resources = originalContext.resources;
438
+ context.events = originalContext.events;
439
+ context.parameters = {
440
+ ...contextParameters,
441
+ ...parameters,
442
+ [manifestBindingProperty.name]: parameters[primaryBindingName]
443
+ };
444
+ return context;
445
+ }
446
+ _getFluentDesignLanguage(fluentDesignLanguage) {
447
+ const v8Theme = ControlTheme.GetV8ThemeFromFluentDesignLanguage(fluentDesignLanguage);
448
+ return ControlTheme.GenerateFluentDesignLanguage(v8Theme.palette.themePrimary, v8Theme.semanticColors.bodyBackground, v8Theme.semanticColors.bodyText, {
449
+ v8FluentOverrides: fluentDesignLanguage?.v8FluentOverrides,
450
+ applicationTheme: fluentDesignLanguage?.applicationTheme ?? v8Theme
451
+ });
452
+ }
453
+ }
454
+
455
+ export { NestedControl };
456
+ //# sourceMappingURL=NestedControl.js.map