@wix/patterns 1.495.0 → 1.496.0

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 (554) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  4. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  9. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  10. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  11. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  12. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  14. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  16. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js +13 -12
  18. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
  19. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  20. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  22. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  24. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  25. package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js +12 -2
  26. package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js.map +1 -1
  27. package/dist/cjs/components/CollectionToolbarFilters/useFiltersSyncProps.js +16 -1
  28. package/dist/cjs/components/CollectionToolbarFilters/useFiltersSyncProps.js.map +1 -1
  29. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  30. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  31. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  32. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  33. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +3 -3
  34. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -1
  35. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  36. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/EditableCell.js +47 -9
  38. package/dist/cjs/components/EditableTable/EditableCell.js.map +1 -1
  39. package/dist/cjs/components/EditableTable/EditableCell.st.css +8 -32
  40. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +6 -10
  41. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  42. package/dist/cjs/components/EditableTable/EditableCell.uni.driver.js +2 -2
  43. package/dist/cjs/components/EditableTable/EditableCell.uni.driver.js.map +1 -1
  44. package/dist/cjs/components/EditableTable/EditableTableContextMenu.js +13 -10
  45. package/dist/cjs/components/EditableTable/EditableTableContextMenu.js.map +1 -1
  46. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  47. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  48. package/dist/cjs/components/EditableTable/HeaderFieldActions.js +4 -3
  49. package/dist/cjs/components/EditableTable/HeaderFieldActions.js.map +1 -1
  50. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  51. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  52. package/dist/cjs/components/EditableTable/cellTypes/JsonInputEdit.st.css.js +3 -3
  53. package/dist/cjs/components/EditableTable/cellTypes/JsonInputEdit.st.css.js.map +1 -1
  54. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  55. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  56. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  57. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  58. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  59. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  60. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  61. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  62. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  63. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  64. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  65. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  66. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  67. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  68. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  69. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  70. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  71. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  72. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  73. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  74. package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.js +3 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.js.map +1 -1
  76. package/dist/cjs/components/EditableTable/cellTypes/multiReference/index.js +1 -0
  77. package/dist/cjs/components/EditableTable/cellTypes/multiReference/index.js.map +1 -1
  78. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  79. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  80. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  81. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  82. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  83. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  84. package/dist/cjs/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js +6 -6
  85. package/dist/cjs/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js.map +1 -1
  86. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  87. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  88. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  89. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  90. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  91. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  92. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  93. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  94. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  95. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  96. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  97. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  98. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  99. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  100. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  101. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  102. package/dist/cjs/components/EntityPageFields/EntityPageCustomField.js +2 -2
  103. package/dist/cjs/components/EntityPageFields/EntityPageCustomField.js.map +1 -1
  104. package/dist/cjs/components/EntityPageFields/EntityPageField.st.css.js +3 -3
  105. package/dist/cjs/components/EntityPageFields/EntityPageField.st.css.js.map +1 -1
  106. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  107. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  108. package/dist/cjs/components/FieldActions/FieldActions.js +18 -14
  109. package/dist/cjs/components/FieldActions/FieldActions.js.map +1 -1
  110. package/dist/cjs/components/FieldActions/headerActionTypes.js.map +1 -1
  111. package/dist/cjs/components/FiltersPanel/FilterRevealAnchor.js +51 -0
  112. package/dist/cjs/components/FiltersPanel/FilterRevealAnchor.js.map +1 -0
  113. package/dist/cjs/components/FiltersPanel/FiltersPanel.js +13 -15
  114. package/dist/cjs/components/FiltersPanel/FiltersPanel.js.map +1 -1
  115. package/dist/cjs/components/FiltersPanel/FiltersPanelState.js +50 -0
  116. package/dist/cjs/components/FiltersPanel/FiltersPanelState.js.map +1 -1
  117. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  118. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  119. package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js +26 -17
  120. package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
  121. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  122. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  123. package/dist/cjs/components/ImportButton/createImportFieldValidator.js +22 -0
  124. package/dist/cjs/components/ImportButton/createImportFieldValidator.js.map +1 -0
  125. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  126. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  127. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  128. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  129. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  130. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  131. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  132. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  133. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  134. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  135. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  136. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  137. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  138. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  139. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  140. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  141. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  142. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  143. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  144. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  145. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  146. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  147. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  148. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  149. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  150. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  151. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +10 -10
  152. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  153. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  154. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  155. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  156. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  157. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +6 -6
  158. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  159. package/dist/cjs/components/Table/NumberCell.st.css.js +2 -2
  160. package/dist/cjs/components/Table/NumberCell.st.css.js.map +1 -1
  161. package/dist/cjs/components/TableFolders/TableFolders.uni.driver.js +8 -0
  162. package/dist/cjs/components/TableFolders/TableFolders.uni.driver.js.map +1 -1
  163. package/dist/cjs/components/TableFolders/TableFoldersContent.js +26 -10
  164. package/dist/cjs/components/TableFolders/TableFoldersContent.js.map +1 -1
  165. package/dist/cjs/components/TableFolders/buildFoldersMobileColumns.js +37 -0
  166. package/dist/cjs/components/TableFolders/buildFoldersMobileColumns.js.map +1 -0
  167. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  168. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  169. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  170. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  171. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  172. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  173. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  174. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  175. package/dist/cjs/components/common.st.css.js +4 -4
  176. package/dist/cjs/components/common.st.css.js.map +1 -1
  177. package/dist/cjs/hooks/useBuildAccordionItems.js +45 -24
  178. package/dist/cjs/hooks/useBuildAccordionItems.js.map +1 -1
  179. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +3 -3
  180. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  181. package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
  182. package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -1
  183. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js +4 -4
  184. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
  185. package/dist/cjs/state/EditableTable/CellValueState.js +6 -5
  186. package/dist/cjs/state/EditableTable/CellValueState.js.map +1 -1
  187. package/dist/cjs/state/EditableTable/types.js.map +1 -1
  188. package/dist/cjs/state/EditableTable/utils.js +0 -52
  189. package/dist/cjs/state/EditableTable/utils.js.map +1 -1
  190. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  191. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  192. package/dist/cjs/state/buildEditableFieldColumns.js +2 -81
  193. package/dist/cjs/state/buildEditableFieldColumns.js.map +1 -1
  194. package/dist/cjs/styles.global.css +2 -2
  195. package/dist/cjs/{components/CollectionTable → utils}/buildMobileColumns.js +41 -22
  196. package/dist/cjs/utils/buildMobileColumns.js.map +1 -0
  197. package/dist/cjs/utils/fieldValidation.js +136 -0
  198. package/dist/cjs/utils/fieldValidation.js.map +1 -0
  199. package/dist/cjs/version.js +1 -1
  200. package/dist/cjs/version.js.map +1 -1
  201. package/dist/docs/CustomFieldType.md +4 -2
  202. package/dist/docs/ImportButton.md +2 -0
  203. package/dist/dts-bundle/index.json +26 -26
  204. package/dist/dts-bundle/index.txt +4 -4
  205. package/dist/dts-bundle/types/CellType.d.ts +9 -7
  206. package/dist/dts-bundle/types/SchemaSource.d.ts +3 -2
  207. package/dist/dts-bundle/types/SchemaSourceInput.d.ts +3 -2
  208. package/dist/dts-bundle/types/UseCmsSchemaSourceDeps.d.ts +3 -2
  209. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  210. package/dist/esm/components/CardContainer/CardContainer.st.css.js.map +1 -1
  211. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  212. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  213. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  214. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  215. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  216. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  217. package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
  218. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  219. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  220. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  221. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js +2 -2
  222. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
  223. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  224. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  225. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  226. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  227. package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js +10 -2
  228. package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js.map +1 -1
  229. package/dist/esm/components/CollectionToolbarFilters/useFiltersSyncProps.js +17 -2
  230. package/dist/esm/components/CollectionToolbarFilters/useFiltersSyncProps.js.map +1 -1
  231. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  232. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  233. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  234. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +2 -2
  235. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -1
  236. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  237. package/dist/esm/components/EditableTable/EditableCell.js +10 -4
  238. package/dist/esm/components/EditableTable/EditableCell.js.map +1 -1
  239. package/dist/esm/components/EditableTable/EditableCell.st.css +8 -32
  240. package/dist/esm/components/EditableTable/EditableCell.st.css.js +3 -3
  241. package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
  242. package/dist/esm/components/EditableTable/EditableCell.uni.driver.js +2 -2
  243. package/dist/esm/components/EditableTable/EditableCell.uni.driver.js.map +1 -1
  244. package/dist/esm/components/EditableTable/EditableTableContextMenu.js +6 -1
  245. package/dist/esm/components/EditableTable/EditableTableContextMenu.js.map +1 -1
  246. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  247. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  248. package/dist/esm/components/EditableTable/HeaderFieldActions.js +3 -3
  249. package/dist/esm/components/EditableTable/HeaderFieldActions.js.map +1 -1
  250. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  251. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  252. package/dist/esm/components/EditableTable/cellTypes/JsonInputEdit.st.css.js +2 -2
  253. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  254. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  255. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  256. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  257. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  258. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  259. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  260. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  261. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  262. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  263. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  264. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  265. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  266. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  267. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  268. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  269. package/dist/esm/components/EditableTable/cellTypes/multiReference/View.js +2 -2
  270. package/dist/esm/components/EditableTable/cellTypes/multiReference/View.js.map +1 -1
  271. package/dist/esm/components/EditableTable/cellTypes/multiReference/index.js +1 -0
  272. package/dist/esm/components/EditableTable/cellTypes/multiReference/index.js.map +1 -1
  273. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  274. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  275. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  276. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  277. package/dist/esm/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js +2 -2
  278. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  279. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  280. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  281. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  282. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  283. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  284. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  285. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  286. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  287. package/dist/esm/components/EntityPageFields/EntityPageCustomField.js +2 -2
  288. package/dist/esm/components/EntityPageFields/EntityPageCustomField.js.map +1 -1
  289. package/dist/esm/components/EntityPageFields/EntityPageField.st.css.js +2 -2
  290. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  291. package/dist/esm/components/FieldActions/FieldActions.js +7 -2
  292. package/dist/esm/components/FieldActions/FieldActions.js.map +1 -1
  293. package/dist/esm/components/FiltersPanel/FilterRevealAnchor.js +29 -0
  294. package/dist/esm/components/FiltersPanel/FilterRevealAnchor.js.map +1 -0
  295. package/dist/esm/components/FiltersPanel/FiltersPanel.js +2 -5
  296. package/dist/esm/components/FiltersPanel/FiltersPanel.js.map +1 -1
  297. package/dist/esm/components/FiltersPanel/FiltersPanelState.js +46 -0
  298. package/dist/esm/components/FiltersPanel/FiltersPanelState.js.map +1 -1
  299. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  300. package/dist/esm/components/ImportButton/ImportButtonModalLayout.js +8 -1
  301. package/dist/esm/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
  302. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  303. package/dist/esm/components/ImportButton/createImportFieldValidator.js +15 -0
  304. package/dist/esm/components/ImportButton/createImportFieldValidator.js.map +1 -0
  305. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  306. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  307. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  308. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  309. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  310. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  311. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  312. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  313. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  314. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  315. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  316. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  317. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  318. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  319. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  320. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  321. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  322. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  323. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  324. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  325. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  326. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  327. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  328. package/dist/esm/components/Table/NumberCell.st.css.js +2 -2
  329. package/dist/esm/components/TableFolders/TableFolders.uni.driver.js +11 -0
  330. package/dist/esm/components/TableFolders/TableFolders.uni.driver.js.map +1 -1
  331. package/dist/esm/components/TableFolders/TableFoldersContent.js +17 -2
  332. package/dist/esm/components/TableFolders/TableFoldersContent.js.map +1 -1
  333. package/dist/esm/components/TableFolders/buildFoldersMobileColumns.js +17 -0
  334. package/dist/esm/components/TableFolders/buildFoldersMobileColumns.js.map +1 -0
  335. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  336. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  337. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  338. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  339. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  340. package/dist/esm/components/common.st.css.js +2 -2
  341. package/dist/esm/components/common.st.css.js.map +1 -1
  342. package/dist/esm/hooks/useBuildAccordionItems.js +24 -10
  343. package/dist/esm/hooks/useBuildAccordionItems.js.map +1 -1
  344. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  345. package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
  346. package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -1
  347. package/dist/esm/state/CollectionPage/TitleBadges.st.css.js +2 -2
  348. package/dist/esm/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
  349. package/dist/esm/state/EditableTable/CellValueState.js +5 -4
  350. package/dist/esm/state/EditableTable/CellValueState.js.map +1 -1
  351. package/dist/esm/state/EditableTable/utils.js +0 -48
  352. package/dist/esm/state/EditableTable/utils.js.map +1 -1
  353. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  354. package/dist/esm/state/buildEditableFieldColumns.js +2 -73
  355. package/dist/esm/state/buildEditableFieldColumns.js.map +1 -1
  356. package/dist/esm/styles.global.css +2 -2
  357. package/dist/esm/{components/CollectionTable → utils}/buildMobileColumns.js +23 -8
  358. package/dist/esm/utils/buildMobileColumns.js.map +1 -0
  359. package/dist/esm/utils/fieldValidation.js +121 -0
  360. package/dist/esm/utils/fieldValidation.js.map +1 -0
  361. package/dist/esm/version.js +1 -1
  362. package/dist/types/components/CardContainer/CardContainer.st.css.d.ts.map +1 -1
  363. package/dist/types/components/CmsFieldManagement/CmsFieldForm.st.css.d.ts.map +1 -1
  364. package/dist/types/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.d.ts.map +1 -1
  365. package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
  366. package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts +6 -0
  367. package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts.map +1 -1
  368. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  369. package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFiltersState.d.ts +4 -3
  370. package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFiltersState.d.ts.map +1 -1
  371. package/dist/types/components/CollectionToolbarFilters/useFiltersSyncProps.d.ts.map +1 -1
  372. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  373. package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.d.ts.map +1 -1
  374. package/dist/types/components/EditableTable/EditableCell.d.ts.map +1 -1
  375. package/dist/types/components/EditableTable/EditableCell.st.css.d.ts +1 -5
  376. package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
  377. package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts +5 -5
  378. package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts.map +1 -1
  379. package/dist/types/components/EditableTable/EditableTableContextMenu.d.ts.map +1 -1
  380. package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
  381. package/dist/types/components/EditableTable/HeaderFieldActions.d.ts.map +1 -1
  382. package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
  383. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
  384. package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
  385. package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
  386. package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
  387. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -1
  388. package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
  389. package/dist/types/components/EditableTable/cellTypes/multiReference/View.d.ts.map +1 -1
  390. package/dist/types/components/EditableTable/cellTypes/multiReference/index.d.ts.map +1 -1
  391. package/dist/types/components/EditableTable/cellTypes/number/Edit.st.css.d.ts.map +1 -1
  392. package/dist/types/components/EditableTable/cellTypes/url/View.st.css.d.ts.map +1 -1
  393. package/dist/types/components/FieldActions/FieldActions.d.ts +2 -2
  394. package/dist/types/components/FieldActions/FieldActions.d.ts.map +1 -1
  395. package/dist/types/components/FieldActions/headerActionTypes.d.ts +2 -2
  396. package/dist/types/components/FieldActions/headerActionTypes.d.ts.map +1 -1
  397. package/dist/types/components/FiltersPanel/FilterRevealAnchor.d.ts +12 -0
  398. package/dist/types/components/FiltersPanel/FilterRevealAnchor.d.ts.map +1 -0
  399. package/dist/types/components/FiltersPanel/FiltersPanel.d.ts.map +1 -1
  400. package/dist/types/components/FiltersPanel/FiltersPanelState.d.ts +12 -0
  401. package/dist/types/components/FiltersPanel/FiltersPanelState.d.ts.map +1 -1
  402. package/dist/types/components/ImportButton/ImportButtonModalLayout.d.ts.map +1 -1
  403. package/dist/types/components/ImportButton/createImportFieldValidator.d.ts +3 -0
  404. package/dist/types/components/ImportButton/createImportFieldValidator.d.ts.map +1 -0
  405. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  406. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  407. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  408. package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
  409. package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
  410. package/dist/types/components/Table/AddFieldColumnHeader.st.css.d.ts.map +1 -1
  411. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +9 -1
  412. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  413. package/dist/types/components/TableFolders/TableFoldersContent.d.ts.map +1 -1
  414. package/dist/types/components/TableFolders/buildFoldersMobileColumns.d.ts +4 -0
  415. package/dist/types/components/TableFolders/buildFoldersMobileColumns.d.ts.map +1 -0
  416. package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
  417. package/dist/types/components/common.st.css.d.ts.map +1 -1
  418. package/dist/types/hooks/useBuildAccordionItems.d.ts.map +1 -1
  419. package/dist/types/state/CollectionPage/MobilePrimaryActionBar.st.css.d.ts.map +1 -1
  420. package/dist/types/state/CollectionPage/TitleBadges.st.css.d.ts.map +1 -1
  421. package/dist/types/state/EditableTable/CellValueState.d.ts.map +1 -1
  422. package/dist/types/state/EditableTable/types.d.ts +2 -5
  423. package/dist/types/state/EditableTable/types.d.ts.map +1 -1
  424. package/dist/types/state/EditableTable/utils.d.ts +1 -4
  425. package/dist/types/state/EditableTable/utils.d.ts.map +1 -1
  426. package/dist/types/state/buildEditableFieldColumns.d.ts +1 -2
  427. package/dist/types/state/buildEditableFieldColumns.d.ts.map +1 -1
  428. package/dist/types/testkit/enzyme.d.ts +4 -0
  429. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  430. package/dist/types/testkit/jsdom.d.ts +4 -0
  431. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  432. package/dist/types/testkit/playwright.d.ts +4 -0
  433. package/dist/types/testkit/playwright.d.ts.map +1 -1
  434. package/dist/types/testkit/puppeteer.d.ts +4 -0
  435. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  436. package/dist/types/utils/buildMobileColumns.d.ts +10 -0
  437. package/dist/types/utils/buildMobileColumns.d.ts.map +1 -0
  438. package/dist/types/utils/fieldValidation.d.ts +9 -0
  439. package/dist/types/utils/fieldValidation.d.ts.map +1 -0
  440. package/dist/types/version.d.ts +1 -1
  441. package/package.json +7 -7
  442. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  443. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  444. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  445. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  446. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  447. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  448. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  449. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  450. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  451. package/src/components/CollectionTable/CollectionTableWSRTable.tsx +10 -1
  452. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  453. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  454. package/src/components/CollectionToolbarFilters/CollectionToolbarFiltersState.ts +18 -7
  455. package/src/components/CollectionToolbarFilters/useFiltersSyncProps.ts +28 -5
  456. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  457. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  458. package/src/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.ts +2 -2
  459. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  460. package/src/components/EditableTable/EditableCell.st.css +8 -32
  461. package/src/components/EditableTable/EditableCell.st.css.ts +3 -3
  462. package/src/components/EditableTable/EditableCell.tsx +26 -10
  463. package/src/components/EditableTable/EditableCell.uni.driver.ts +2 -2
  464. package/src/components/EditableTable/EditableTableContextMenu.tsx +6 -1
  465. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  466. package/src/components/EditableTable/HeaderFieldActions.tsx +4 -5
  467. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  468. package/src/components/EditableTable/cellTypes/JsonInputEdit.st.css.ts +2 -2
  469. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  470. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  471. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  472. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  473. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  474. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  475. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  476. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  477. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  478. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  479. package/src/components/EditableTable/cellTypes/multiReference/View.tsx +2 -1
  480. package/src/components/EditableTable/cellTypes/multiReference/index.ts +1 -0
  481. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  482. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  483. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  484. package/src/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.ts +2 -2
  485. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  486. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  487. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  488. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  489. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  490. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  491. package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
  492. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  493. package/src/components/EntityPageFields/EntityPageCustomField.tsx +2 -2
  494. package/src/components/EntityPageFields/EntityPageField.st.css.ts +2 -2
  495. package/src/components/Fade/Fade.st.css.ts +2 -2
  496. package/src/components/FieldActions/FieldActions.tsx +12 -4
  497. package/src/components/FieldActions/headerActionTypes.ts +2 -2
  498. package/src/components/FiltersPanel/FilterRevealAnchor.tsx +49 -0
  499. package/src/components/FiltersPanel/FiltersPanel.tsx +6 -8
  500. package/src/components/FiltersPanel/FiltersPanelState.ts +63 -0
  501. package/src/components/Heading/Heading.st.css.ts +2 -2
  502. package/src/components/ImportButton/ImportButtonModalLayout.tsx +10 -1
  503. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  504. package/src/components/ImportButton/createImportFieldValidator.ts +20 -0
  505. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  506. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  507. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  508. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  509. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  510. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  511. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  512. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  513. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  514. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  515. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  516. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  517. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  518. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  519. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  520. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  521. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  522. package/src/components/Table/NumberCell.st.css.ts +2 -2
  523. package/src/components/TableFolders/TableFolders.uni.driver.ts +19 -0
  524. package/src/components/TableFolders/TableFoldersContent.tsx +27 -2
  525. package/src/components/TableFolders/buildFoldersMobileColumns.ts +37 -0
  526. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  527. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  528. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  529. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  530. package/src/components/common.st.css.ts +2 -2
  531. package/src/hooks/useBuildAccordionItems.tsx +78 -58
  532. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  533. package/src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts +2 -2
  534. package/src/state/CollectionPage/TitleBadges.st.css.ts +2 -2
  535. package/src/state/EditableTable/CellValueState.ts +5 -4
  536. package/src/state/EditableTable/types.ts +2 -5
  537. package/src/state/EditableTable/utils.ts +1 -75
  538. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  539. package/src/state/buildEditableFieldColumns.ts +2 -80
  540. package/src/styles.global.css +2 -2
  541. package/src/{components/CollectionTable → utils}/buildMobileColumns.tsx +46 -17
  542. package/src/utils/fieldValidation.ts +153 -0
  543. package/src/version.ts +1 -1
  544. package/dist/cjs/components/CollectionTable/buildMobileColumns.js.map +0 -1
  545. package/dist/cjs/components/CollectionTable/mobileColumnsUtils.js +0 -24
  546. package/dist/cjs/components/CollectionTable/mobileColumnsUtils.js.map +0 -1
  547. package/dist/esm/components/CollectionTable/buildMobileColumns.js.map +0 -1
  548. package/dist/esm/components/CollectionTable/mobileColumnsUtils.js +0 -15
  549. package/dist/esm/components/CollectionTable/mobileColumnsUtils.js.map +0 -1
  550. package/dist/types/components/CollectionTable/buildMobileColumns.d.ts +0 -4
  551. package/dist/types/components/CollectionTable/buildMobileColumns.d.ts.map +0 -1
  552. package/dist/types/components/CollectionTable/mobileColumnsUtils.d.ts +0 -17
  553. package/dist/types/components/CollectionTable/mobileColumnsUtils.d.ts.map +0 -1
  554. package/src/components/CollectionTable/mobileColumnsUtils.ts +0 -31
@@ -5,16 +5,16 @@ exports.__esModule = true;
5
5
  exports.useBuildAccordionItems = useBuildAccordionItems;
6
6
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
7
  var _react = require("@wix/bex-core/react");
8
- var _react2 = _interopRequireWildcard(require("react"));
8
+ var _react2 = _interopRequireDefault(require("react"));
9
9
  var _designSystem = require("@wix/design-system");
10
10
  var _CollectionFilter = require("../components/CollectionFilter");
11
11
  var _FilterAccordionResetButton = require("../components/FiltersPanel/FilterAccordionResetButton");
12
12
  var _FilterAccordionTitle = require("../components/FiltersPanel/FilterAccordionTitle");
13
+ var _FilterRevealAnchor = require("../components/FiltersPanel/FilterRevealAnchor");
13
14
  var _fieldTypePrefixIcons = require("../utils/fieldTypePrefixIcons");
14
15
  var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/cairo/dist/cjs/hooks/useBuildAccordionItems.tsx";
15
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
- function useBuildAccordionItem(state, showFieldTypeIcons) {
17
- return (0, _react2.useCallback)(filterElement => {
16
+ function createAccordionItemBuilder(state, showFieldTypeIcons) {
17
+ return filterElement => {
18
18
  const {
19
19
  type: Component,
20
20
  props: filterProps
@@ -35,7 +35,7 @@ function useBuildAccordionItem(state, showFieldTypeIcons) {
35
35
  __source: {
36
36
  fileName: _jsxFileName,
37
37
  lineNumber: 32,
38
- columnNumber: 9
38
+ columnNumber: 7
39
39
  }
40
40
  }));
41
41
  const titleElement = /*#__PURE__*/_react2.default.createElement(_FilterAccordionTitle.FilterAccordionTitle, {
@@ -46,7 +46,7 @@ function useBuildAccordionItem(state, showFieldTypeIcons) {
46
46
  __source: {
47
47
  fileName: _jsxFileName,
48
48
  lineNumber: 38,
49
- columnNumber: 9
49
+ columnNumber: 7
50
50
  }
51
51
  });
52
52
  const titleWithIcon = showFieldTypeIcons ? /*#__PURE__*/_react2.default.createElement(_designSystem.Box, {
@@ -56,48 +56,69 @@ function useBuildAccordionItem(state, showFieldTypeIcons) {
56
56
  __source: {
57
57
  fileName: _jsxFileName,
58
58
  lineNumber: 45,
59
- columnNumber: 9
59
+ columnNumber: 7
60
60
  }
61
61
  }, (0, _fieldTypePrefixIcons.getFieldTypeIcon)({
62
62
  fieldType,
63
63
  size: 'medium'
64
64
  }), titleElement) : titleElement;
65
- const title = filterProps.filter ? /*#__PURE__*/_react2.default.createElement(_designSystem.Box, {
65
+ const panel = state.panel;
66
+ const sectionKey = panel.getSectionKey(filterElement);
67
+ const open = panel.isSectionOpen(filterElement);
68
+ const request = panel.revealRequest;
69
+ const revealTitle = content => (request == null ? void 0 : request.sectionKey) === sectionKey ? /*#__PURE__*/_react2.default.createElement(_FilterRevealAnchor.FilterRevealAnchor, {
70
+ request: request,
71
+ scrollContainerRef: panel.scrollContainerRef,
72
+ open: open,
73
+ __self: this,
74
+ __source: {
75
+ fileName: _jsxFileName,
76
+ lineNumber: 59,
77
+ columnNumber: 9
78
+ }
79
+ }, content) : content;
80
+ const title = /*#__PURE__*/_react2.default.createElement(_designSystem.Box, {
66
81
  width: "100%",
67
82
  align: "space-between",
68
83
  verticalAlign: "middle",
69
84
  __self: this,
70
85
  __source: {
71
86
  fileName: _jsxFileName,
72
- lineNumber: 54,
73
- columnNumber: 9
87
+ lineNumber: 71,
88
+ columnNumber: 7
74
89
  }
75
- }, titleWithIcon, /*#__PURE__*/_react2.default.createElement(_FilterAccordionResetButton.FilterAccordionResetButton, {
90
+ }, revealTitle(titleWithIcon), /*#__PURE__*/_react2.default.createElement(_FilterAccordionResetButton.FilterAccordionResetButton, {
76
91
  state: state.toolbar,
77
- filter: filterProps.filter,
92
+ filter: filter,
78
93
  __self: this,
79
94
  __source: {
80
95
  fileName: _jsxFileName,
81
- lineNumber: 56,
82
- columnNumber: 11
96
+ lineNumber: 73,
97
+ columnNumber: 9
83
98
  }
84
- })) : titleWithIcon;
99
+ }));
100
+ const itemTitle = accordionItemProps && 'title' in accordionItemProps ? revealTitle(accordionItemProps.title) : title;
85
101
  return {
86
- title,
87
- children: filterProps.filter ? /*#__PURE__*/_react2.default.createElement(_CollectionFilter.CollectionFilter, {
88
- filter: filterProps.filter,
102
+ children: /*#__PURE__*/_react2.default.createElement(_CollectionFilter.CollectionFilter, {
103
+ filter: filter,
89
104
  state: state,
90
105
  __self: this,
91
106
  __source: {
92
107
  fileName: _jsxFileName,
93
- lineNumber: 68,
94
- columnNumber: 11
108
+ lineNumber: 83,
109
+ columnNumber: 9
95
110
  }
96
- }, clonedElement) : clonedElement,
111
+ }, clonedElement),
97
112
  initiallyOpen,
98
- ...accordionItemProps
113
+ ...accordionItemProps,
114
+ key: sectionKey,
115
+ open,
116
+ title: itemTitle,
117
+ onToggle: event => {
118
+ panel.toggleSection(filterElement, event);
119
+ }
99
120
  };
100
- }, [showFieldTypeIcons]);
121
+ };
101
122
  }
102
123
  function useBuildAccordionItems(state, searchTerm = '') {
103
124
  const {
@@ -107,7 +128,7 @@ function useBuildAccordionItems(state, searchTerm = '') {
107
128
  panelFilterElements
108
129
  } = state;
109
130
  const showFieldTypeIcons = state.toolbar.showFieldTypeIcons;
110
- const buildAccordionItem = useBuildAccordionItem(state, showFieldTypeIcons);
131
+ const buildAccordionItem = createAccordionItemBuilder(state, showFieldTypeIcons);
111
132
  const defaultSectionTitle = t('cairo.filtersPanel.sections.default.title');
112
133
  const term = searchTerm.trim().toLowerCase();
113
134
  const elements = term ? panelFilterElements.filter(el => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_react2","_interopRequireWildcard","_designSystem","_CollectionFilter","_FilterAccordionResetButton","_FilterAccordionTitle","_fieldTypePrefixIcons","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useBuildAccordionItem","state","showFieldTypeIcons","useCallback","filterElement","type","Component","props","filterProps","filter","initiallyOpen","popoverProps","accordionItemProps","fieldType","clonedElement","createElement","_extends2","appendTo","__self","__source","fileName","lineNumber","columnNumber","titleElement","FilterAccordionTitle","toolbar","titleWithIcon","Box","gap","verticalAlign","getFieldTypeIcon","size","title","width","align","FilterAccordionResetButton","children","CollectionFilter","useBuildAccordionItems","searchTerm","translate","useWixPatternsContainer","panelFilterElements","buildAccordionItem","defaultSectionTitle","term","trim","toLowerCase","elements","el","_el$props","_el$props2","label","section","sectionTitle","includes","groups","defaultGroup","reduce","accumulator","item","_item$props","groupItems","accordionSectionItemBuilder","items","values","flat","length"],"sources":["../../../src/hooks/useBuildAccordionItems.tsx"],"sourcesContent":["import { FiltersMap } from '@wix/bex-core';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport React, { useCallback } from 'react';\nimport {\n AccordionProps,\n Box,\n accordionSectionItemBuilder,\n} from '@wix/design-system';\nimport { CollectionFilter } from '../components/CollectionFilter';\nimport { FilterElement } from '../components/CollectionToolbarFilters';\nimport { CollectionToolbarFiltersState } from '../components/CollectionToolbarFilters/CollectionToolbarFiltersState';\nimport { FilterAccordionResetButton } from '../components/FiltersPanel/FilterAccordionResetButton';\nimport { FilterAccordionTitle } from '../components/FiltersPanel/FilterAccordionTitle';\nimport { getFieldTypeIcon } from '../utils/fieldTypePrefixIcons';\n\nfunction useBuildAccordionItem<T, F extends FiltersMap>(\n state: CollectionToolbarFiltersState<T, F>,\n showFieldTypeIcons: boolean,\n) {\n return useCallback(\n (filterElement: FilterElement) => {\n const { type: Component, props: filterProps } = filterElement;\n const {\n filter,\n initiallyOpen,\n popoverProps,\n accordionItemProps,\n fieldType,\n } = filterProps;\n\n const clonedElement = (\n <Component\n {...filterProps}\n popoverProps={{ appendTo: 'window', ...popoverProps }}\n />\n );\n const titleElement = (\n <FilterAccordionTitle\n state={state.toolbar}\n filter={filter}\n filterProps={filterProps}\n />\n );\n const titleWithIcon = showFieldTypeIcons ? (\n <Box gap=\"SP1\" verticalAlign=\"middle\">\n {getFieldTypeIcon({ fieldType, size: 'medium' })}\n {titleElement}\n </Box>\n ) : (\n titleElement\n );\n\n const title = filterProps.filter ? (\n <Box width=\"100%\" align=\"space-between\" verticalAlign=\"middle\">\n {titleWithIcon}\n <FilterAccordionResetButton\n state={state.toolbar}\n filter={filterProps.filter}\n />\n </Box>\n ) : (\n titleWithIcon\n );\n\n return {\n title,\n children: filterProps.filter ? (\n <CollectionFilter filter={filterProps.filter} state={state}>\n {clonedElement}\n </CollectionFilter>\n ) : (\n clonedElement\n ),\n initiallyOpen,\n ...accordionItemProps,\n };\n },\n [showFieldTypeIcons],\n );\n}\n\nexport function useBuildAccordionItems<T, F extends FiltersMap>(\n state: CollectionToolbarFiltersState<T, F>,\n searchTerm: string = '',\n) {\n const { translate: t } = useWixPatternsContainer();\n const { panelFilterElements } = state;\n const showFieldTypeIcons = state.toolbar.showFieldTypeIcons;\n const buildAccordionItem = useBuildAccordionItem(state, showFieldTypeIcons);\n\n const defaultSectionTitle = t('cairo.filtersPanel.sections.default.title');\n\n const term = searchTerm.trim().toLowerCase();\n const elements = term\n ? panelFilterElements.filter((el) => {\n const label = (el.props?.accordionItemProps?.label ?? '').toLowerCase();\n const section = (el.props?.sectionTitle ?? '').toLowerCase();\n return label.includes(term) || section.includes(term);\n })\n : panelFilterElements;\n\n const { groups, defaultGroup } = elements.reduce<{\n groups: Record<string, NonNullable<AccordionProps['items']>>;\n defaultGroup: NonNullable<AccordionProps['items']>;\n }>(\n (accumulator, item) => {\n const sectionTitle = item.props?.sectionTitle;\n\n if (!sectionTitle) {\n return {\n ...accumulator,\n defaultGroup: [...accumulator.defaultGroup, buildAccordionItem(item)],\n };\n }\n\n const groupItems = accumulator.groups[sectionTitle]\n ? [...accumulator.groups[sectionTitle], buildAccordionItem(item)]\n : [\n accordionSectionItemBuilder({ title: sectionTitle }),\n buildAccordionItem(item),\n ];\n\n return {\n ...accumulator,\n groups: {\n ...accumulator.groups,\n [sectionTitle]: groupItems,\n },\n };\n },\n {\n groups: {},\n defaultGroup: [],\n },\n );\n\n const items = Object.values(groups).flat();\n\n if (!items.length) {\n return defaultGroup;\n }\n\n return [\n ...items,\n ...(defaultGroup.length\n ? [\n accordionSectionItemBuilder({ title: defaultSectionTitle }),\n ...defaultGroup,\n ]\n : []),\n ];\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_react2","_interopRequireDefault","_designSystem","_CollectionFilter","_FilterAccordionResetButton","_FilterAccordionTitle","_FilterRevealAnchor","_fieldTypePrefixIcons","_jsxFileName","createAccordionItemBuilder","state","showFieldTypeIcons","filterElement","type","Component","props","filterProps","filter","initiallyOpen","popoverProps","accordionItemProps","fieldType","clonedElement","default","createElement","_extends2","appendTo","__self","__source","fileName","lineNumber","columnNumber","titleElement","FilterAccordionTitle","toolbar","titleWithIcon","Box","gap","verticalAlign","getFieldTypeIcon","size","panel","sectionKey","getSectionKey","open","isSectionOpen","request","revealRequest","revealTitle","content","FilterRevealAnchor","scrollContainerRef","title","width","align","FilterAccordionResetButton","itemTitle","children","CollectionFilter","key","onToggle","event","toggleSection","useBuildAccordionItems","searchTerm","translate","t","useWixPatternsContainer","panelFilterElements","buildAccordionItem","defaultSectionTitle","term","trim","toLowerCase","elements","el","_el$props","_el$props2","label","section","sectionTitle","includes","groups","defaultGroup","reduce","accumulator","item","_item$props","groupItems","accordionSectionItemBuilder","items","Object","values","flat","length"],"sources":["../../../src/hooks/useBuildAccordionItems.tsx"],"sourcesContent":["import { FiltersMap } from '@wix/bex-core';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport React from 'react';\nimport {\n AccordionProps,\n Box,\n accordionSectionItemBuilder,\n} from '@wix/design-system';\nimport { CollectionFilter } from '../components/CollectionFilter';\nimport { FilterElement } from '../components/CollectionToolbarFilters';\nimport { CollectionToolbarFiltersState } from '../components/CollectionToolbarFilters/CollectionToolbarFiltersState';\nimport { FilterAccordionResetButton } from '../components/FiltersPanel/FilterAccordionResetButton';\nimport { FilterAccordionTitle } from '../components/FiltersPanel/FilterAccordionTitle';\nimport { FilterRevealAnchor } from '../components/FiltersPanel/FilterRevealAnchor';\nimport { getFieldTypeIcon } from '../utils/fieldTypePrefixIcons';\n\nfunction createAccordionItemBuilder<T, F extends FiltersMap>(\n state: CollectionToolbarFiltersState<T, F>,\n showFieldTypeIcons: boolean,\n) {\n return (filterElement: FilterElement) => {\n const { type: Component, props: filterProps } = filterElement;\n const {\n filter,\n initiallyOpen,\n popoverProps,\n accordionItemProps,\n fieldType,\n } = filterProps;\n\n const clonedElement = (\n <Component\n {...filterProps}\n popoverProps={{ appendTo: 'window', ...popoverProps }}\n />\n );\n const titleElement = (\n <FilterAccordionTitle\n state={state.toolbar}\n filter={filter}\n filterProps={filterProps}\n />\n );\n const titleWithIcon = showFieldTypeIcons ? (\n <Box gap=\"SP1\" verticalAlign=\"middle\">\n {getFieldTypeIcon({ fieldType, size: 'medium' })}\n {titleElement}\n </Box>\n ) : (\n titleElement\n );\n\n const panel = state.panel;\n const sectionKey = panel.getSectionKey(filterElement);\n const open = panel.isSectionOpen(filterElement);\n const request = panel.revealRequest;\n const revealTitle = (content: React.ReactNode) =>\n request?.sectionKey === sectionKey ? (\n <FilterRevealAnchor\n request={request}\n scrollContainerRef={panel.scrollContainerRef}\n open={open}\n >\n {content}\n </FilterRevealAnchor>\n ) : (\n content\n );\n\n const title = (\n <Box width=\"100%\" align=\"space-between\" verticalAlign=\"middle\">\n {revealTitle(titleWithIcon)}\n <FilterAccordionResetButton state={state.toolbar} filter={filter} />\n </Box>\n );\n\n const itemTitle =\n accordionItemProps && 'title' in accordionItemProps\n ? revealTitle(accordionItemProps.title)\n : title;\n return {\n children: (\n <CollectionFilter filter={filter} state={state}>\n {clonedElement}\n </CollectionFilter>\n ),\n initiallyOpen,\n ...accordionItemProps,\n key: sectionKey,\n open,\n title: itemTitle,\n onToggle: (event: React.MouseEvent<HTMLElement>) => {\n panel.toggleSection(filterElement, event);\n },\n };\n };\n}\n\nexport function useBuildAccordionItems<T, F extends FiltersMap>(\n state: CollectionToolbarFiltersState<T, F>,\n searchTerm: string = '',\n) {\n const { translate: t } = useWixPatternsContainer();\n const { panelFilterElements } = state;\n const showFieldTypeIcons = state.toolbar.showFieldTypeIcons;\n const buildAccordionItem = createAccordionItemBuilder(\n state,\n showFieldTypeIcons,\n );\n\n const defaultSectionTitle = t('cairo.filtersPanel.sections.default.title');\n\n const term = searchTerm.trim().toLowerCase();\n const elements = term\n ? panelFilterElements.filter((el) => {\n const label = (el.props?.accordionItemProps?.label ?? '').toLowerCase();\n const section = (el.props?.sectionTitle ?? '').toLowerCase();\n return label.includes(term) || section.includes(term);\n })\n : panelFilterElements;\n\n const { groups, defaultGroup } = elements.reduce<{\n groups: Record<string, NonNullable<AccordionProps['items']>>;\n defaultGroup: NonNullable<AccordionProps['items']>;\n }>(\n (accumulator, item) => {\n const sectionTitle = item.props?.sectionTitle;\n\n if (!sectionTitle) {\n return {\n ...accumulator,\n defaultGroup: [...accumulator.defaultGroup, buildAccordionItem(item)],\n };\n }\n\n const groupItems = accumulator.groups[sectionTitle]\n ? [...accumulator.groups[sectionTitle], buildAccordionItem(item)]\n : [\n accordionSectionItemBuilder({ title: sectionTitle }),\n buildAccordionItem(item),\n ];\n\n return {\n ...accumulator,\n groups: {\n ...accumulator.groups,\n [sectionTitle]: groupItems,\n },\n };\n },\n {\n groups: {},\n defaultGroup: [],\n },\n );\n\n const items = Object.values(groups).flat();\n\n if (!items.length) {\n return defaultGroup;\n }\n\n return [\n ...items,\n ...(defaultGroup.length\n ? [\n accordionSectionItemBuilder({ title: defaultSectionTitle }),\n ...defaultGroup,\n ]\n : []),\n ];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,15 +5,15 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "CollectionPageHeader1790822900";
8
+ var _namespace_ = "CollectionPageHeader1806512227";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "CollectionPageHeader1790822900__root",
16
- "mobileMoreActions": "CollectionPageHeader1790822900__mobileMoreActions"
15
+ "root": "CollectionPageHeader1806512227__root",
16
+ "mobileMoreActions": "CollectionPageHeader1806512227__mobileMoreActions"
17
17
  };
18
18
  var keyframes = exports.keyframes = {};
19
19
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"CollectionPageHeader1790822900\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"CollectionPageHeader1790822900__root\",\"mobileMoreActions\":\"CollectionPageHeader1790822900__mobileMoreActions\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-page-header-title-actions-gap\":\"--wds-page-header-title-actions-gap\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,gCAAgC;AAClD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,sCAAsC;EAAC,mBAAmB,EAAC;AAAmD,CAAC;AACrI,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,mCAAmC,EAAC;AAAqC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"CollectionPageHeader1806512227\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"CollectionPageHeader1806512227__root\",\"mobileMoreActions\":\"CollectionPageHeader1806512227__mobileMoreActions\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-page-header-title-actions-gap\":\"--wds-page-header-title-actions-gap\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,gCAAgC;AAClD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,sCAAsC;EAAC,mBAAmB,EAAC;AAAmD,CAAC;AACrI,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,mCAAmC,EAAC;AAAqC,CAAC","ignoreList":[]}
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "MobilePrimaryActionBar3753253024";
8
+ var _namespace_ = "MobilePrimaryActionBar921216690";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "MobilePrimaryActionBar3753253024__root"
15
+ "root": "MobilePrimaryActionBar921216690__root"
16
16
  };
17
17
  var keyframes = exports.keyframes = {};
18
18
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"MobilePrimaryActionBar3753253024\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"MobilePrimaryActionBar3753253024__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-space-300\":\"--wds-space-300\",\"wds-space-400\":\"--wds-space-400\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,kCAAkC;AACpD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAwC,CAAC;AAC/D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,eAAe,EAAC,iBAAiB;EAAC,eAAe,EAAC;AAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"MobilePrimaryActionBar921216690\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"MobilePrimaryActionBar921216690__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-space-300\":\"--wds-space-300\",\"wds-space-400\":\"--wds-space-400\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,iCAAiC;AACnD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAuC,CAAC;AAC9D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,eAAe,EAAC,iBAAiB;EAAC,eAAe,EAAC;AAAiB,CAAC","ignoreList":[]}
@@ -5,16 +5,16 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "TitleBadges176837811";
8
+ var _namespace_ = "TitleBadges1040141928";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "TitleBadges176837811__root",
16
- "tooltip": "TitleBadges176837811__tooltip",
17
- "tooltipTrigger": "TitleBadges176837811__tooltipTrigger"
15
+ "root": "TitleBadges1040141928__root",
16
+ "tooltip": "TitleBadges1040141928__tooltip",
17
+ "tooltipTrigger": "TitleBadges1040141928__tooltipTrigger"
18
18
  };
19
19
  var keyframes = exports.keyframes = {};
20
20
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/TitleBadges.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"TitleBadges176837811\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"TitleBadges176837811__root\",\"tooltip\":\"TitleBadges176837811__tooltip\",\"tooltipTrigger\":\"TitleBadges176837811__tooltipTrigger\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,sBAAsB;AACxC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,4BAA4B;EAAC,SAAS,EAAC,+BAA+B;EAAC,gBAAgB,EAAC;AAAsC,CAAC;AACrJ,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/TitleBadges.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"TitleBadges1040141928\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"TitleBadges1040141928__root\",\"tooltip\":\"TitleBadges1040141928__tooltip\",\"tooltipTrigger\":\"TitleBadges1040141928__tooltipTrigger\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,uBAAuB;AACzC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,6BAA6B;EAAC,SAAS,EAAC,gCAAgC;EAAC,gBAAgB,EAAC;AAAuC,CAAC;AACxJ,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -7,6 +7,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
7
7
  var _mobx = require("mobx");
8
8
  var _cellTypes = require("../../components/EditableTable/cellTypes");
9
9
  var _utils = require("./utils");
10
+ var _fieldValidation = require("../../utils/fieldValidation");
10
11
  const builtInCellTypeMap = new Map(_cellTypes.builtInCellTypes.map(ct => [ct.type, ct]));
11
12
  class CellValueState {
12
13
  constructor(parent, extraCellTypes = new Map()) {
@@ -76,7 +77,7 @@ class CellValueState {
76
77
  errors: pending.errors
77
78
  };
78
79
  }
79
- return _utils.validResult;
80
+ return _fieldValidation.validResult;
80
81
  }
81
82
 
82
83
  /** Normalize like commitHandler does, then validate, so a value commit
@@ -86,11 +87,11 @@ class CellValueState {
86
87
  var _this$_parent$collect;
87
88
  const column = this._parent._columnMap.get(columnId);
88
89
  if (!column) {
89
- return _utils.validResult;
90
+ return _fieldValidation.validResult;
90
91
  }
91
92
  const resolved = this.resolveCellTypeByColumnId(column.id);
92
93
  const normalized = resolved.normalizeOnCommit ? resolved.normalizeOnCommit(value) : value;
93
- return (0, _utils.runCellValidation)(normalized, column.validation, resolved.validate, (_this$_parent$collect = this._parent.collection) == null ? void 0 : _this$_parent$collect.translate);
94
+ return (0, _fieldValidation.validateFieldValue)(normalized, column.validation, resolved.validate, (_this$_parent$collect = this._parent.collection) == null ? void 0 : _this$_parent$collect.translate);
94
95
  }
95
96
  isCellEditable(rowKey, columnId) {
96
97
  const column = this._parent._columnMap.get(columnId);
@@ -351,7 +352,7 @@ class CellValueState {
351
352
  continue;
352
353
  }
353
354
  const resolved = this.resolveCellTypeByColumnId(column.id);
354
- const result = (0, _utils.runCellValidation)(value, column.validation, resolved.validate, (_this$_parent$collect3 = this._parent.collection) == null ? void 0 : _this$_parent$collect3.translate);
355
+ const result = (0, _fieldValidation.validateFieldValue)(value, column.validation, resolved.validate, (_this$_parent$collect3 = this._parent.collection) == null ? void 0 : _this$_parent$collect3.translate);
355
356
  const pendingKey = this._pendingCellKey(rowKey, columnId);
356
357
  if (result.valid) {
357
358
  if (pendingKey) {
@@ -403,7 +404,7 @@ class CellValueState {
403
404
  return;
404
405
  }
405
406
  const resolved = this.resolveCellTypeByColumnId(column.id);
406
- const result = (0, _utils.runCellValidation)(value, column.validation, resolved.validate, (_this$_parent$collect4 = this._parent.collection) == null ? void 0 : _this$_parent$collect4.translate);
407
+ const result = (0, _fieldValidation.validateFieldValue)(value, column.validation, resolved.validate, (_this$_parent$collect4 = this._parent.collection) == null ? void 0 : _this$_parent$collect4.translate);
407
408
  const pendingKey = this._pendingCellKey(rowKey, columnId);
408
409
  if (result.valid && pendingKey) {
409
410
  this._pendingCells.delete(pendingKey);
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_cellTypes","_utils","builtInCellTypeMap","Map","builtInCellTypes","map","ct","type","CellValueState","constructor","parent","extraCellTypes","_defineProperty2","default","_parent","_extraCellTypes","makeObservable","_pendingCells","observable","_draftCells","_cellTypeMap","computed","clearCells","action","toggleCell","commitHandler","applyBulkRawValues","applyBulkValues","revalidatePendingCells","flushDrafts","flushRow","dropRowCellState","col","allColumns","cellType","typeConfig","set","id","get","textCellType","resolveCellTypeByColumnId","columnId","getCellDisplayValue","rowKey","pending","_getPendingCell","value","draft","_getDraftCell","column","_columnMap","keyedItem","_getKeyedItem","getValue","item","undefined","getCellValidation","valid","errors","validResult","validateEditingValue","_this$_parent$collect","resolved","normalized","normalizeOnCommit","runCellValidation","validation","validate","collection","translate","isCellEditable","editable","EditComponent","isColumnEditable","setValue","getCellActionDisabledTooltip","actionId","cell","contextMenu","context","field","configs","cut","copy","clear","config","tooltip","disabledTooltip","getActionableCells","cells","filter","getCellActionMenuAvailability","isAvailableWithoutCustomPolicy","disabled","serializeCellValue","serialize","String","changes","pendingKey","_pendingCellKey","delete","push","length","toggleValue","newValue","hasValueChanged","Object","is","_applyValue","bi","cellEditCommitted","origin","editingValue","key","tryDeserialize","rawValue","deserialize","_this$_parent$collect2","error","invalidInputMessage","rawChanges","isDeserializationError","rowUpdates","_this$_parent$collect3","result","mutation","isLocalNewRow","rowUpdate","consumed","_consumeRowDrafts","changedFieldIds","Set","add","updates","Array","from","values","updateItems","_this$_parent$collect4","rowsToSave","parseCellKey","has","cellInteraction","isRowActive","exceptRowKey","_flushRows","includeRow","invalidNewRows","_drafts","keys","_validateNewRow","rowKeys","entry","commitNewRow","prefix","startsWith","exports"],"sources":["../../../../src/state/EditableTable/CellValueState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { CellType, Cell, ValidationResult } from './types';\nimport type { EditableCellContextMenuAction, FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport {\n builtInCellTypes,\n textCellType,\n} from '../../components/EditableTable/cellTypes';\nimport { parseCellKey, runCellValidation, validResult } from './utils';\n\nconst builtInCellTypeMap = new Map<string, CellType>(\n builtInCellTypes.map((ct) => [ct.type, ct]),\n);\n\nexport class CellValueState<T, F extends FiltersMap> {\n /** Pending invalid cell values, keyed by `${itemId}:${colId}`. */\n readonly _pendingCells = new Map<\n string,\n { value: any; errors: string[]; isDeserializationError?: boolean }\n >();\n\n /** Valid committed values not yet saved, keyed by `${itemId}:${colId}`.\n * Each row's drafts are flushed as one update when focus leaves the row. */\n readonly _draftCells = new Map<\n string,\n { rowKey: string; columnId: string; value: any }\n >();\n\n private readonly _parent: EditableTableState<T, F>;\n private readonly _extraCellTypes: Map<string, CellType>;\n\n constructor(\n parent: EditableTableState<T, F>,\n extraCellTypes: Map<string, CellType> = new Map(),\n ) {\n this._parent = parent;\n this._extraCellTypes = extraCellTypes;\n\n makeObservable(this, {\n _pendingCells: observable,\n _draftCells: observable,\n _cellTypeMap: computed,\n clearCells: action,\n toggleCell: action,\n commitHandler: action,\n applyBulkRawValues: action,\n applyBulkValues: action,\n revalidatePendingCells: action,\n flushDrafts: action,\n flushRow: action,\n dropRowCellState: action,\n });\n }\n\n // Cell-type config per column id, from the merged columns (consumer columns\n // plus the columns the wired source adds). A computed so source columns that\n // load after init still get their cell types registered, without a rebuild.\n get _cellTypeMap(): Map<string, CellType> {\n const map = new Map<string, CellType>();\n for (const col of this._parent.allColumns) {\n if (col.cellType === 'custom' && col.typeConfig) {\n map.set(col.id, { type: 'custom', ...col.typeConfig });\n } else {\n map.set(\n col.id,\n builtInCellTypeMap.get(col.cellType) ??\n this._extraCellTypes.get(col.cellType) ??\n textCellType,\n );\n }\n }\n return map;\n }\n\n resolveCellTypeByColumnId(columnId: string): CellType {\n return this._cellTypeMap.get(columnId) ?? textCellType;\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return pending.value;\n }\n const draft = this._getDraftCell(rowKey, columnId);\n if (draft) {\n return draft.value;\n }\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return column && keyedItem ? column.getValue(keyedItem.item) : undefined;\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return { valid: false, errors: pending.errors };\n }\n return validResult;\n }\n\n /** Normalize like commitHandler does, then validate, so a value commit\n * would accept (`www.wix.com`) is never reported invalid before it has\n * been committed. */\n validateEditingValue(columnId: string, value: any): ValidationResult {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return validResult;\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(value)\n : value;\n return runCellValidation(\n normalized,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return false;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (resolved.editable === false || !resolved.EditComponent) {\n return false;\n }\n return this.isColumnEditable(rowKey, columnId);\n }\n\n /**\n * Whether `column.editable` permits writing this cell for this row,\n * independent of whether the cell type has an inline EditComponent. Gates\n * bulk/programmatic writes (clear, cut, paste) — narrower than\n * isCellEditable, which also requires an edit UI to exist.\n */\n isColumnEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column?.setValue) {\n return false;\n }\n\n if (typeof column.editable === 'function') {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return keyedItem ? column.editable(keyedItem.item) : false;\n }\n return column.editable !== false;\n }\n\n getCellActionDisabledTooltip(\n actionId: EditableCellContextMenuAction,\n cell: Cell,\n ): string | undefined {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column) {\n return undefined;\n }\n\n const contextMenu = this.resolveCellTypeByColumnId(\n cell.columnId,\n ).contextMenu;\n if (!contextMenu) {\n return undefined;\n }\n\n const context = {\n value: this.getCellDisplayValue(cell.rowKey, cell.columnId),\n field: column.field,\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n };\n const configs =\n actionId === 'cut'\n ? [contextMenu.cut, contextMenu.copy, contextMenu.clear]\n : [contextMenu[actionId]];\n\n for (const config of configs) {\n const tooltip = config?.disabledTooltip(context);\n if (tooltip) {\n return tooltip;\n }\n }\n return undefined;\n }\n\n getActionableCells(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): Cell[] {\n return cells.filter(\n (cell) => !this.getCellActionDisabledTooltip(actionId, cell),\n );\n }\n\n getCellActionMenuAvailability(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): { disabled: boolean; disabledTooltip?: string } {\n let disabledTooltip: string | undefined;\n\n for (const cell of cells) {\n const tooltip = this.getCellActionDisabledTooltip(actionId, cell);\n disabledTooltip ??= tooltip;\n const isAvailableWithoutCustomPolicy =\n actionId === 'copy' ||\n this.isColumnEditable(cell.rowKey, cell.columnId);\n if (isAvailableWithoutCustomPolicy && !tooltip) {\n return { disabled: false };\n }\n }\n\n return { disabled: true, disabledTooltip };\n }\n\n /** Serialize a cell value to a string (for clipboard copy/cut). */\n serializeCellValue(rowKey: string, columnId: string): string {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column || !keyedItem) {\n return '';\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const value = this.getCellDisplayValue(rowKey, columnId);\n return resolved.serialize ? resolved.serialize(value) : String(value ?? '');\n }\n\n /** Clear selected cells (Delete/Backspace). Respects column.editable and contextMenu.clear.\n * Returns the cells that were actually cleared. */\n clearCells(cells: Cell[]): Cell[] {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n\n for (const cell of cells) {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column?.setValue) {\n continue;\n }\n if (!this.isColumnEditable(cell.rowKey, cell.columnId)) {\n continue;\n }\n if (this.getCellActionDisabledTooltip('clear', cell)) {\n continue;\n }\n\n const pendingKey = this._pendingCellKey(cell.rowKey, cell.columnId);\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n changes.push({\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n value: undefined,\n });\n }\n\n if (changes.length > 0) {\n this.applyBulkValues(changes);\n }\n\n return changes.map(({ rowKey, columnId }) => ({ rowKey, columnId }));\n }\n\n toggleCell(rowKey: string, columnId: string) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.toggleValue) {\n return;\n }\n\n const value = this.getCellDisplayValue(rowKey, columnId);\n const newValue = resolved.toggleValue(value);\n const hasValueChanged = !Object.is(value, newValue);\n this._applyValue(rowKey, columnId, newValue);\n // isValid is read from the cell after the write, so it matches the value\n // that was just stored.\n this._parent.bi.cellEditCommitted(\n { rowKey, columnId },\n { origin: 'Toggle', hasValueChanged },\n );\n }\n\n /** Commit handler — used as callback for CellInteractionState. */\n commitHandler(editingValue: any, cell: Cell) {\n if (editingValue !== undefined) {\n const resolved = this.resolveCellTypeByColumnId(cell.columnId);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(editingValue)\n : editingValue;\n this._applyValue(cell.rowKey, cell.columnId, normalized);\n }\n }\n\n private _getPendingCell(\n rowKey: string,\n columnId: string,\n ): { value: any; errors: string[] } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._pendingCells.get(key) : undefined;\n }\n\n private _getDraftCell(\n rowKey: string,\n columnId: string,\n ): { value: any } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._draftCells.get(key) : undefined;\n }\n\n private _pendingCellKey(\n rowKey: string,\n columnId: string,\n ): string | undefined {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n const column = this._parent._columnMap.get(columnId);\n if (!keyedItem || !column) {\n return undefined;\n }\n return `${keyedItem.key}:${column.id}`;\n }\n\n /**\n * Deserialize a raw string to a typed value. Returns an error message\n * if the conversion fails\n */\n tryDeserialize(\n columnId: string,\n rawValue: string,\n ): { value: any; error?: string } {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return { value: rawValue };\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.deserialize) {\n return { value: rawValue };\n }\n try {\n return { value: resolved.deserialize(rawValue) };\n } catch {\n const translate = this._parent.collection?.translate;\n return {\n value: rawValue,\n error:\n resolved.invalidInputMessage?.(rawValue, translate) ||\n translate?.('cairo.editableTable.cell.validation.notCompatible'),\n };\n }\n }\n\n /**\n * Deserialize and apply multiple raw string values in bulk.\n * Handles conversion failures by storing them as pending cells.\n */\n applyBulkRawValues(\n rawChanges: { rowKey: string; columnId: string; rawValue: string }[],\n ) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n for (const { rowKey, columnId, rawValue } of rawChanges) {\n const { value, error } = this.tryDeserialize(columnId, rawValue);\n if (error) {\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: [error],\n isDeserializationError: true,\n });\n }\n } else {\n changes.push({ rowKey, columnId, value });\n }\n }\n this.applyBulkValues(changes);\n }\n\n /**\n * Apply multiple cell values in bulk. Validates per cell, accumulates\n * changes per row, and submits all modified items in a single update.\n * Every mutation path (clear, paste, cut) funnels through here, so\n * checking isColumnEditable here — not just at the call sites — keeps\n * read-only cells protected regardless of entry point.\n */\n applyBulkValues(changes: { rowKey: string; columnId: string; value: any }[]) {\n const rowUpdates = new Map<\n string,\n { item: T; changedFieldIds: Set<string> }\n >();\n\n for (const { rowKey, columnId, value } of changes) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (\n !column?.setValue ||\n !keyedItem ||\n !this.isColumnEditable(rowKey, columnId)\n ) {\n continue;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n if (this._parent.mutation.isLocalNewRow(rowKey)) {\n // A row not created on the server yet can't take an update —\n // buffer the value as a draft; it goes out with the row's\n // create when focus leaves the row.\n if (pendingKey) {\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n }\n continue;\n }\n let rowUpdate = rowUpdates.get(rowKey);\n if (!rowUpdate) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n rowUpdate = {\n item: consumed.item,\n changedFieldIds: new Set(consumed.changedFieldIds),\n };\n rowUpdates.set(rowKey, rowUpdate);\n }\n rowUpdate.item = column.setValue(rowUpdate.item, value);\n rowUpdate.changedFieldIds.add(column.id);\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n const updates = Array.from(rowUpdates.values());\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => Array.from(changedFieldIds)),\n );\n }\n\n private _applyValue(rowKey: string, columnId: string, value: any) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid && pendingKey) {\n this._pendingCells.delete(pendingKey);\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n revalidatePendingCells() {\n const rowsToSave = new Set<string>();\n for (const [key, pending] of this._pendingCells) {\n const cell = parseCellKey(key);\n if (!cell || pending.isDeserializationError) {\n continue;\n }\n this._applyValue(cell.rowKey, cell.columnId, pending.value);\n if (!this._pendingCells.has(key)) {\n rowsToSave.add(cell.rowKey);\n }\n }\n for (const rowKey of rowsToSave) {\n if (!this._parent.cellInteraction.isRowActive(rowKey)) {\n this.flushRow(rowKey);\n }\n }\n }\n\n flushDrafts(exceptRowKey?: string) {\n this._flushRows((rowKey) => rowKey !== exceptRowKey);\n }\n\n /** Save one row's drafts now, leaving other rows' drafts buffered. */\n flushRow(rowKey: string) {\n this._flushRows((key) => key === rowKey);\n }\n\n private _flushRows(includeRow: (rowKey: string) => boolean) {\n const invalidNewRows = new Set<string>();\n for (const rowKey of this._parent.mutation._drafts.keys()) {\n if (includeRow(rowKey) && !this._validateNewRow(rowKey)) {\n invalidNewRows.add(rowKey);\n }\n }\n\n const rowKeys = new Set<string>();\n for (const entry of this._draftCells.values()) {\n if (includeRow(entry.rowKey)) {\n rowKeys.add(entry.rowKey);\n }\n }\n\n const updates: { item: T; changedFieldIds: string[] }[] = [];\n for (const rowKey of rowKeys) {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!keyedItem) {\n this.dropRowCellState(rowKey);\n } else if (this._parent.mutation.isLocalNewRow(rowKey)) {\n if (!invalidNewRows.has(rowKey)) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n this._parent.mutation.commitNewRow(rowKey, consumed.item);\n }\n } else {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n updates.push(consumed);\n }\n }\n if (updates.length > 0) {\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => changedFieldIds),\n );\n }\n }\n\n /** Validate all editable cells of a local new row, storing failures as\n * pending cells. Untouched cells validate their current display value. */\n private _validateNewRow(rowKey: string): boolean {\n let valid = true;\n for (const column of this._parent.allColumns) {\n if (!this.isColumnEditable(rowKey, column.id)) {\n continue;\n }\n // A cell already showing an error blocks the row even if re-validating\n // its value would pass. A failed paste keeps the raw string here, and a\n // cell type that only rejects on deserialize has no `validate` to fail.\n if (this._getPendingCell(rowKey, column.id)) {\n valid = false;\n continue;\n }\n const value = this.getCellDisplayValue(rowKey, column.id);\n const result = this.validateEditingValue(column.id, value);\n if (!result.valid) {\n valid = false;\n const pendingKey = this._pendingCellKey(rowKey, column.id);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n }\n return valid;\n }\n\n private _consumeRowDrafts(\n rowKey: string,\n item: T,\n ): { item: T; changedFieldIds: string[] } {\n const changedFieldIds = new Set<string>();\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey !== rowKey) {\n continue;\n }\n const column = this._parent._columnMap.get(entry.columnId);\n if (column?.setValue) {\n item = column.setValue(item, entry.value);\n changedFieldIds.add(column.id);\n }\n this._draftCells.delete(key);\n }\n return { item, changedFieldIds: Array.from(changedFieldIds) };\n }\n\n /** Drop a row's buffered cell state without saving it (the row is gone).\n * Pending cells are keyed by row key, not tracked per entry, so they are\n * swept by prefix. */\n dropRowCellState(rowKey: string) {\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey === rowKey) {\n this._draftCells.delete(key);\n }\n }\n const prefix = `${rowKey}:`;\n for (const key of this._pendingCells.keys()) {\n if (key.startsWith(prefix)) {\n this._pendingCells.delete(key);\n }\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAIA,IAAAC,UAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAEA,MAAMG,kBAAkB,GAAG,IAAIC,GAAG,CAChCC,2BAAgB,CAACC,GAAG,CAAEC,EAAE,IAAK,CAACA,EAAE,CAACC,IAAI,EAAED,EAAE,CAAC,CAC5C,CAAC;AAEM,MAAME,cAAc,CAA0B;EAiBnDC,WAAWA,CACTC,MAAgC,EAChCC,cAAqC,GAAG,IAAIR,GAAG,CAAC,CAAC,EACjD;IAnBF;IAAA,IAAAS,gBAAA,CAAAC,OAAA,yBACyB,IAAIV,GAAG,CAG9B,CAAC;IAEH;AACF;IADE,IAAAS,gBAAA,CAAAC,OAAA,uBAEuB,IAAIV,GAAG,CAG5B,CAAC;IAAA,IAAAS,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IASD,IAAI,CAACC,OAAO,GAAGJ,MAAM;IACrB,IAAI,CAACK,eAAe,GAAGJ,cAAc;IAErC,IAAAK,oBAAc,EAAC,IAAI,EAAE;MACnBC,aAAa,EAAEC,gBAAU;MACzBC,WAAW,EAAED,gBAAU;MACvBE,YAAY,EAAEC,cAAQ;MACtBC,UAAU,EAAEC,YAAM;MAClBC,UAAU,EAAED,YAAM;MAClBE,aAAa,EAAEF,YAAM;MACrBG,kBAAkB,EAAEH,YAAM;MAC1BI,eAAe,EAAEJ,YAAM;MACvBK,sBAAsB,EAAEL,YAAM;MAC9BM,WAAW,EAAEN,YAAM;MACnBO,QAAQ,EAAEP,YAAM;MAChBQ,gBAAgB,EAAER;IACpB,CAAC,CAAC;EACJ;;EAEA;EACA;EACA;EACA,IAAIH,YAAYA,CAAA,EAA0B;IACxC,MAAMf,GAAG,GAAG,IAAIF,GAAG,CAAmB,CAAC;IACvC,KAAK,MAAM6B,GAAG,IAAI,IAAI,CAAClB,OAAO,CAACmB,UAAU,EAAE;MACzC,IAAID,GAAG,CAACE,QAAQ,KAAK,QAAQ,IAAIF,GAAG,CAACG,UAAU,EAAE;QAC/C9B,GAAG,CAAC+B,GAAG,CAACJ,GAAG,CAACK,EAAE,EAAE;UAAE9B,IAAI,EAAE,QAAQ;UAAE,GAAGyB,GAAG,CAACG;QAAW,CAAC,CAAC;MACxD,CAAC,MAAM;QACL9B,GAAG,CAAC+B,GAAG,CACLJ,GAAG,CAACK,EAAE,EACNnC,kBAAkB,CAACoC,GAAG,CAACN,GAAG,CAACE,QAAQ,CAAC,IAClC,IAAI,CAACnB,eAAe,CAACuB,GAAG,CAACN,GAAG,CAACE,QAAQ,CAAC,IACtCK,uBACJ,CAAC;MACH;IACF;IACA,OAAOlC,GAAG;EACZ;EAEAmC,yBAAyBA,CAACC,QAAgB,EAAY;IACpD,OAAO,IAAI,CAACrB,YAAY,CAACkB,GAAG,CAACG,QAAQ,CAAC,IAAIF,uBAAY;EACxD;EAEAG,mBAAmBA,CAACC,MAAc,EAAEF,QAAgB,EAAO;IACzD,MAAMG,OAAO,GAAG,IAAI,CAACC,eAAe,CAACF,MAAM,EAAEF,QAAQ,CAAC;IACtD,IAAIG,OAAO,EAAE;MACX,OAAOA,OAAO,CAACE,KAAK;IACtB;IACA,MAAMC,KAAK,GAAG,IAAI,CAACC,aAAa,CAACL,MAAM,EAAEF,QAAQ,CAAC;IAClD,IAAIM,KAAK,EAAE;MACT,OAAOA,KAAK,CAACD,KAAK;IACpB;IACA,MAAMG,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,OAAOM,MAAM,IAAIE,SAAS,GAAGF,MAAM,CAACI,QAAQ,CAACF,SAAS,CAACG,IAAI,CAAC,GAAGC,SAAS;EAC1E;EAEAC,iBAAiBA,CAACb,MAAc,EAAEF,QAAgB,EAAoB;IACpE,MAAMG,OAAO,GAAG,IAAI,CAACC,eAAe,CAACF,MAAM,EAAEF,QAAQ,CAAC;IACtD,IAAIG,OAAO,EAAE;MACX,OAAO;QAAEa,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAEd,OAAO,CAACc;MAAO,CAAC;IACjD;IACA,OAAOC,kBAAW;EACpB;;EAEA;AACF;AACA;EACEC,oBAAoBA,CAACnB,QAAgB,EAAEK,KAAU,EAAoB;IAAA,IAAAe,qBAAA;IACnE,MAAMZ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACQ,MAAM,EAAE;MACX,OAAOU,kBAAW;IACpB;IACA,MAAMG,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,MAAM0B,UAAU,GAAGD,QAAQ,CAACE,iBAAiB,GACzCF,QAAQ,CAACE,iBAAiB,CAAClB,KAAK,CAAC,GACjCA,KAAK;IACT,OAAO,IAAAmB,wBAAiB,EACtBF,UAAU,EACVd,MAAM,CAACiB,UAAU,EACjBJ,QAAQ,CAACK,QAAQ,GAAAN,qBAAA,GACjB,IAAI,CAAC/C,OAAO,CAACsD,UAAU,qBAAvBP,qBAAA,CAAyBQ,SAC3B,CAAC;EACH;EAEAC,cAAcA,CAAC3B,MAAc,EAAEF,QAAgB,EAAW;IACxD,MAAMQ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACQ,MAAM,EAAE;MACX,OAAO,KAAK;IACd;IAEA,MAAMa,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,IAAIyB,QAAQ,CAACS,QAAQ,KAAK,KAAK,IAAI,CAACT,QAAQ,CAACU,aAAa,EAAE;MAC1D,OAAO,KAAK;IACd;IACA,OAAO,IAAI,CAACC,gBAAgB,CAAC9B,MAAM,EAAEF,QAAQ,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEgC,gBAAgBA,CAAC9B,MAAc,EAAEF,QAAgB,EAAW;IAC1D,MAAMQ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,EAACQ,MAAM,YAANA,MAAM,CAAEyB,QAAQ,GAAE;MACrB,OAAO,KAAK;IACd;IAEA,IAAI,OAAOzB,MAAM,CAACsB,QAAQ,KAAK,UAAU,EAAE;MACzC,MAAMpB,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;MACpD,OAAOQ,SAAS,GAAGF,MAAM,CAACsB,QAAQ,CAACpB,SAAS,CAACG,IAAI,CAAC,GAAG,KAAK;IAC5D;IACA,OAAOL,MAAM,CAACsB,QAAQ,KAAK,KAAK;EAClC;EAEAI,4BAA4BA,CAC1BC,QAAuC,EACvCC,IAAU,EACU;IACpB,MAAM5B,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACuC,IAAI,CAACpC,QAAQ,CAAC;IACzD,IAAI,CAACQ,MAAM,EAAE;MACX,OAAOM,SAAS;IAClB;IAEA,MAAMuB,WAAW,GAAG,IAAI,CAACtC,yBAAyB,CAChDqC,IAAI,CAACpC,QACP,CAAC,CAACqC,WAAW;IACb,IAAI,CAACA,WAAW,EAAE;MAChB,OAAOvB,SAAS;IAClB;IAEA,MAAMwB,OAAO,GAAG;MACdjC,KAAK,EAAE,IAAI,CAACJ,mBAAmB,CAACmC,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,CAAC;MAC3DuC,KAAK,EAAE/B,MAAM,CAAC+B,KAAK;MACnBrC,MAAM,EAAEkC,IAAI,CAAClC,MAAM;MACnBF,QAAQ,EAAEoC,IAAI,CAACpC;IACjB,CAAC;IACD,MAAMwC,OAAO,GACXL,QAAQ,KAAK,KAAK,GACd,CAACE,WAAW,CAACI,GAAG,EAAEJ,WAAW,CAACK,IAAI,EAAEL,WAAW,CAACM,KAAK,CAAC,GACtD,CAACN,WAAW,CAACF,QAAQ,CAAC,CAAC;IAE7B,KAAK,MAAMS,MAAM,IAAIJ,OAAO,EAAE;MAC5B,MAAMK,OAAO,GAAGD,MAAM,oBAANA,MAAM,CAAEE,eAAe,CAACR,OAAO,CAAC;MAChD,IAAIO,OAAO,EAAE;QACX,OAAOA,OAAO;MAChB;IACF;IACA,OAAO/B,SAAS;EAClB;EAEAiC,kBAAkBA,CAChBZ,QAAuC,EACvCa,KAAa,EACL;IACR,OAAOA,KAAK,CAACC,MAAM,CAChBb,IAAI,IAAK,CAAC,IAAI,CAACF,4BAA4B,CAACC,QAAQ,EAAEC,IAAI,CAC7D,CAAC;EACH;EAEAc,6BAA6BA,CAC3Bf,QAAuC,EACvCa,KAAa,EACoC;IACjD,IAAIF,eAAmC;IAEvC,KAAK,MAAMV,IAAI,IAAIY,KAAK,EAAE;MACxB,MAAMH,OAAO,GAAG,IAAI,CAACX,4BAA4B,CAACC,QAAQ,EAAEC,IAAI,CAAC;MACjEU,eAAe,KAAfA,eAAe,GAAKD,OAAO;MAC3B,MAAMM,8BAA8B,GAClChB,QAAQ,KAAK,MAAM,IACnB,IAAI,CAACH,gBAAgB,CAACI,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,CAAC;MACnD,IAAImD,8BAA8B,IAAI,CAACN,OAAO,EAAE;QAC9C,OAAO;UAAEO,QAAQ,EAAE;QAAM,CAAC;MAC5B;IACF;IAEA,OAAO;MAAEA,QAAQ,EAAE,IAAI;MAAEN;IAAgB,CAAC;EAC5C;;EAEA;EACAO,kBAAkBA,CAACnD,MAAc,EAAEF,QAAgB,EAAU;IAC3D,MAAMQ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,IAAI,CAACM,MAAM,IAAI,CAACE,SAAS,EAAE;MACzB,OAAO,EAAE;IACX;IACA,MAAMW,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,MAAMS,KAAK,GAAG,IAAI,CAACJ,mBAAmB,CAACC,MAAM,EAAEF,QAAQ,CAAC;IACxD,OAAOqB,QAAQ,CAACiC,SAAS,GAAGjC,QAAQ,CAACiC,SAAS,CAACjD,KAAK,CAAC,GAAGkD,MAAM,CAAClD,KAAK,IAAI,EAAE,CAAC;EAC7E;;EAEA;AACF;EACExB,UAAUA,CAACmE,KAAa,EAAU;IAChC,MAAMQ,OAA2D,GAAG,EAAE;IAEtE,KAAK,MAAMpB,IAAI,IAAIY,KAAK,EAAE;MACxB,MAAMxC,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACuC,IAAI,CAACpC,QAAQ,CAAC;MACzD,IAAI,EAACQ,MAAM,YAANA,MAAM,CAAEyB,QAAQ,GAAE;QACrB;MACF;MACA,IAAI,CAAC,IAAI,CAACD,gBAAgB,CAACI,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,CAAC,EAAE;QACtD;MACF;MACA,IAAI,IAAI,CAACkC,4BAA4B,CAAC,OAAO,EAAEE,IAAI,CAAC,EAAE;QACpD;MACF;MAEA,MAAMqB,UAAU,GAAG,IAAI,CAACC,eAAe,CAACtB,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,CAAC;MACnE,IAAIyD,UAAU,EAAE;QACd,IAAI,CAACjF,aAAa,CAACmF,MAAM,CAACF,UAAU,CAAC;MACvC;MACAD,OAAO,CAACI,IAAI,CAAC;QACX1D,MAAM,EAAEkC,IAAI,CAAClC,MAAM;QACnBF,QAAQ,EAAEoC,IAAI,CAACpC,QAAQ;QACvBK,KAAK,EAAES;MACT,CAAC,CAAC;IACJ;IAEA,IAAI0C,OAAO,CAACK,MAAM,GAAG,CAAC,EAAE;MACtB,IAAI,CAAC3E,eAAe,CAACsE,OAAO,CAAC;IAC/B;IAEA,OAAOA,OAAO,CAAC5F,GAAG,CAAC,CAAC;MAAEsC,MAAM;MAAEF;IAAS,CAAC,MAAM;MAAEE,MAAM;MAAEF;IAAS,CAAC,CAAC,CAAC;EACtE;EAEAjB,UAAUA,CAACmB,MAAc,EAAEF,QAAgB,EAAE;IAC3C,MAAMQ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,IAAI,EAACM,MAAM,YAANA,MAAM,CAAEyB,QAAQ,KAAI,CAACvB,SAAS,EAAE;MACnC;IACF;IAEA,MAAMW,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,IAAI,CAACyB,QAAQ,CAACyC,WAAW,EAAE;MACzB;IACF;IAEA,MAAMzD,KAAK,GAAG,IAAI,CAACJ,mBAAmB,CAACC,MAAM,EAAEF,QAAQ,CAAC;IACxD,MAAM+D,QAAQ,GAAG1C,QAAQ,CAACyC,WAAW,CAACzD,KAAK,CAAC;IAC5C,MAAM2D,eAAe,GAAG,CAACC,MAAM,CAACC,EAAE,CAAC7D,KAAK,EAAE0D,QAAQ,CAAC;IACnD,IAAI,CAACI,WAAW,CAACjE,MAAM,EAAEF,QAAQ,EAAE+D,QAAQ,CAAC;IAC5C;IACA;IACA,IAAI,CAAC1F,OAAO,CAAC+F,EAAE,CAACC,iBAAiB,CAC/B;MAAEnE,MAAM;MAAEF;IAAS,CAAC,EACpB;MAAEsE,MAAM,EAAE,QAAQ;MAAEN;IAAgB,CACtC,CAAC;EACH;;EAEA;EACAhF,aAAaA,CAACuF,YAAiB,EAAEnC,IAAU,EAAE;IAC3C,IAAImC,YAAY,KAAKzD,SAAS,EAAE;MAC9B,MAAMO,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACqC,IAAI,CAACpC,QAAQ,CAAC;MAC9D,MAAMsB,UAAU,GAAGD,QAAQ,CAACE,iBAAiB,GACzCF,QAAQ,CAACE,iBAAiB,CAACgD,YAAY,CAAC,GACxCA,YAAY;MAChB,IAAI,CAACJ,WAAW,CAAC/B,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,EAAEsB,UAAU,CAAC;IAC1D;EACF;EAEQlB,eAAeA,CACrBF,MAAc,EACdF,QAAgB,EAC8B;IAC9C,MAAMwE,GAAG,GAAG,IAAI,CAACd,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;IAClD,OAAOwE,GAAG,GAAG,IAAI,CAAChG,aAAa,CAACqB,GAAG,CAAC2E,GAAG,CAAC,GAAG1D,SAAS;EACtD;EAEQP,aAAaA,CACnBL,MAAc,EACdF,QAAgB,EACY;IAC5B,MAAMwE,GAAG,GAAG,IAAI,CAACd,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;IAClD,OAAOwE,GAAG,GAAG,IAAI,CAAC9F,WAAW,CAACmB,GAAG,CAAC2E,GAAG,CAAC,GAAG1D,SAAS;EACpD;EAEQ4C,eAAeA,CACrBxD,MAAc,EACdF,QAAgB,EACI;IACpB,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,MAAMM,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACU,SAAS,IAAI,CAACF,MAAM,EAAE;MACzB,OAAOM,SAAS;IAClB;IACA,OAAO,GAAGJ,SAAS,CAAC8D,GAAG,IAAIhE,MAAM,CAACZ,EAAE,EAAE;EACxC;;EAEA;AACF;AACA;AACA;EACE6E,cAAcA,CACZzE,QAAgB,EAChB0E,QAAgB,EACgB;IAChC,MAAMlE,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACQ,MAAM,EAAE;MACX,OAAO;QAAEH,KAAK,EAAEqE;MAAS,CAAC;IAC5B;IACA,MAAMrD,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,IAAI,CAACyB,QAAQ,CAACsD,WAAW,EAAE;MACzB,OAAO;QAAEtE,KAAK,EAAEqE;MAAS,CAAC;IAC5B;IACA,IAAI;MACF,OAAO;QAAErE,KAAK,EAAEgB,QAAQ,CAACsD,WAAW,CAACD,QAAQ;MAAE,CAAC;IAClD,CAAC,CAAC,MAAM;MAAA,IAAAE,sBAAA;MACN,MAAMhD,SAAS,IAAAgD,sBAAA,GAAG,IAAI,CAACvG,OAAO,CAACsD,UAAU,qBAAvBiD,sBAAA,CAAyBhD,SAAS;MACpD,OAAO;QACLvB,KAAK,EAAEqE,QAAQ;QACfG,KAAK,EACH,CAAAxD,QAAQ,CAACyD,mBAAmB,oBAA5BzD,QAAQ,CAACyD,mBAAmB,CAAGJ,QAAQ,EAAE9C,SAAS,CAAC,MACnDA,SAAS,oBAATA,SAAS,CAAG,mDAAmD,CAAC;MACpE,CAAC;IACH;EACF;;EAEA;AACF;AACA;AACA;EACE3C,kBAAkBA,CAChB8F,UAAoE,EACpE;IACA,MAAMvB,OAA2D,GAAG,EAAE;IACtE,KAAK,MAAM;MAAEtD,MAAM;MAAEF,QAAQ;MAAE0E;IAAS,CAAC,IAAIK,UAAU,EAAE;MACvD,MAAM;QAAE1E,KAAK;QAAEwE;MAAM,CAAC,GAAG,IAAI,CAACJ,cAAc,CAACzE,QAAQ,EAAE0E,QAAQ,CAAC;MAChE,IAAIG,KAAK,EAAE;QACT,MAAMpB,UAAU,GAAG,IAAI,CAACC,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;QACzD,IAAIyD,UAAU,EAAE;UACd,IAAI,CAACjF,aAAa,CAACmB,GAAG,CAAC8D,UAAU,EAAE;YACjCpD,KAAK;YACLY,MAAM,EAAE,CAAC4D,KAAK,CAAC;YACfG,sBAAsB,EAAE;UAC1B,CAAC,CAAC;QACJ;MACF,CAAC,MAAM;QACLxB,OAAO,CAACI,IAAI,CAAC;UAAE1D,MAAM;UAAEF,QAAQ;UAAEK;QAAM,CAAC,CAAC;MAC3C;IACF;IACA,IAAI,CAACnB,eAAe,CAACsE,OAAO,CAAC;EAC/B;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEtE,eAAeA,CAACsE,OAA2D,EAAE;IAC3E,MAAMyB,UAAU,GAAG,IAAIvH,GAAG,CAGxB,CAAC;IAEH,KAAK,MAAM;MAAEwC,MAAM;MAAEF,QAAQ;MAAEK;IAAM,CAAC,IAAImD,OAAO,EAAE;MAAA,IAAA0B,sBAAA;MACjD,MAAM1E,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;MACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;MACpD,IACE,EAACM,MAAM,YAANA,MAAM,CAAEyB,QAAQ,KACjB,CAACvB,SAAS,IACV,CAAC,IAAI,CAACsB,gBAAgB,CAAC9B,MAAM,EAAEF,QAAQ,CAAC,EACxC;QACA;MACF;MAEA,MAAMqB,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;MAC1D,MAAMuF,MAAM,GAAG,IAAA3D,wBAAiB,EAC9BnB,KAAK,EACLG,MAAM,CAACiB,UAAU,EACjBJ,QAAQ,CAACK,QAAQ,GAAAwD,sBAAA,GACjB,IAAI,CAAC7G,OAAO,CAACsD,UAAU,qBAAvBuD,sBAAA,CAAyBtD,SAC3B,CAAC;MACD,MAAM6B,UAAU,GAAG,IAAI,CAACC,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;MAEzD,IAAImF,MAAM,CAACnE,KAAK,EAAE;QAChB,IAAIyC,UAAU,EAAE;UACd,IAAI,CAACjF,aAAa,CAACmF,MAAM,CAACF,UAAU,CAAC;QACvC;QACA,IAAI,IAAI,CAACpF,OAAO,CAAC+G,QAAQ,CAACC,aAAa,CAACnF,MAAM,CAAC,EAAE;UAC/C;UACA;UACA;UACA,IAAIuD,UAAU,EAAE;YACd,IAAI,CAAC/E,WAAW,CAACiB,GAAG,CAAC8D,UAAU,EAAE;cAC/BvD,MAAM,EAAEQ,SAAS,CAAC8D,GAAG;cACrBxE,QAAQ,EAAEQ,MAAM,CAACZ,EAAE;cACnBS;YACF,CAAC,CAAC;UACJ;UACA;QACF;QACA,IAAIiF,SAAS,GAAGL,UAAU,CAACpF,GAAG,CAACK,MAAM,CAAC;QACtC,IAAI,CAACoF,SAAS,EAAE;UACd,MAAMC,QAAQ,GAAG,IAAI,CAACC,iBAAiB,CAACtF,MAAM,EAAEQ,SAAS,CAACG,IAAI,CAAC;UAC/DyE,SAAS,GAAG;YACVzE,IAAI,EAAE0E,QAAQ,CAAC1E,IAAI;YACnB4E,eAAe,EAAE,IAAIC,GAAG,CAACH,QAAQ,CAACE,eAAe;UACnD,CAAC;UACDR,UAAU,CAACtF,GAAG,CAACO,MAAM,EAAEoF,SAAS,CAAC;QACnC;QACAA,SAAS,CAACzE,IAAI,GAAGL,MAAM,CAACyB,QAAQ,CAACqD,SAAS,CAACzE,IAAI,EAAER,KAAK,CAAC;QACvDiF,SAAS,CAACG,eAAe,CAACE,GAAG,CAACnF,MAAM,CAACZ,EAAE,CAAC;MAC1C,CAAC,MAAM,IAAI6D,UAAU,EAAE;QACrB,IAAI,CAACjF,aAAa,CAACmB,GAAG,CAAC8D,UAAU,EAAE;UACjCpD,KAAK;UACLY,MAAM,EAAEkE,MAAM,CAAClE,MAAM,IAAI;QAC3B,CAAC,CAAC;MACJ;IACF;IAEA,MAAM2E,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACb,UAAU,CAACc,MAAM,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC1H,OAAO,CAAC+G,QAAQ,CAACY,WAAW,CAC/BJ,OAAO,CAAChI,GAAG,CAAC,CAAC;MAAEiD;IAAK,CAAC,KAAKA,IAAI,CAAC,EAC/B+E,OAAO,CAAChI,GAAG,CAAC,CAAC;MAAE6H;IAAgB,CAAC,KAAKI,KAAK,CAACC,IAAI,CAACL,eAAe,CAAC,CAClE,CAAC;EACH;EAEQtB,WAAWA,CAACjE,MAAc,EAAEF,QAAgB,EAAEK,KAAU,EAAE;IAAA,IAAA4F,sBAAA;IAChE,MAAMzF,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,IAAI,EAACM,MAAM,YAANA,MAAM,CAAEyB,QAAQ,KAAI,CAACvB,SAAS,EAAE;MACnC;IACF;IAEA,MAAMW,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,MAAMuF,MAAM,GAAG,IAAA3D,wBAAiB,EAC9BnB,KAAK,EACLG,MAAM,CAACiB,UAAU,EACjBJ,QAAQ,CAACK,QAAQ,GAAAuE,sBAAA,GACjB,IAAI,CAAC5H,OAAO,CAACsD,UAAU,qBAAvBsE,sBAAA,CAAyBrE,SAC3B,CAAC;IACD,MAAM6B,UAAU,GAAG,IAAI,CAACC,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;IAEzD,IAAImF,MAAM,CAACnE,KAAK,IAAIyC,UAAU,EAAE;MAC9B,IAAI,CAACjF,aAAa,CAACmF,MAAM,CAACF,UAAU,CAAC;MACrC,IAAI,CAAC/E,WAAW,CAACiB,GAAG,CAAC8D,UAAU,EAAE;QAC/BvD,MAAM,EAAEQ,SAAS,CAAC8D,GAAG;QACrBxE,QAAQ,EAAEQ,MAAM,CAACZ,EAAE;QACnBS;MACF,CAAC,CAAC;IACJ,CAAC,MAAM,IAAIoD,UAAU,EAAE;MACrB,IAAI,CAACjF,aAAa,CAACmB,GAAG,CAAC8D,UAAU,EAAE;QACjCpD,KAAK;QACLY,MAAM,EAAEkE,MAAM,CAAClE,MAAM,IAAI;MAC3B,CAAC,CAAC;IACJ;EACF;EAEA9B,sBAAsBA,CAAA,EAAG;IACvB,MAAM+G,UAAU,GAAG,IAAIR,GAAG,CAAS,CAAC;IACpC,KAAK,MAAM,CAAClB,GAAG,EAAErE,OAAO,CAAC,IAAI,IAAI,CAAC3B,aAAa,EAAE;MAC/C,MAAM4D,IAAI,GAAG,IAAA+D,mBAAY,EAAC3B,GAAG,CAAC;MAC9B,IAAI,CAACpC,IAAI,IAAIjC,OAAO,CAAC6E,sBAAsB,EAAE;QAC3C;MACF;MACA,IAAI,CAACb,WAAW,CAAC/B,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,EAAEG,OAAO,CAACE,KAAK,CAAC;MAC3D,IAAI,CAAC,IAAI,CAAC7B,aAAa,CAAC4H,GAAG,CAAC5B,GAAG,CAAC,EAAE;QAChC0B,UAAU,CAACP,GAAG,CAACvD,IAAI,CAAClC,MAAM,CAAC;MAC7B;IACF;IACA,KAAK,MAAMA,MAAM,IAAIgG,UAAU,EAAE;MAC/B,IAAI,CAAC,IAAI,CAAC7H,OAAO,CAACgI,eAAe,CAACC,WAAW,CAACpG,MAAM,CAAC,EAAE;QACrD,IAAI,CAACb,QAAQ,CAACa,MAAM,CAAC;MACvB;IACF;EACF;EAEAd,WAAWA,CAACmH,YAAqB,EAAE;IACjC,IAAI,CAACC,UAAU,CAAEtG,MAAM,IAAKA,MAAM,KAAKqG,YAAY,CAAC;EACtD;;EAEA;EACAlH,QAAQA,CAACa,MAAc,EAAE;IACvB,IAAI,CAACsG,UAAU,CAAEhC,GAAG,IAAKA,GAAG,KAAKtE,MAAM,CAAC;EAC1C;EAEQsG,UAAUA,CAACC,UAAuC,EAAE;IAC1D,MAAMC,cAAc,GAAG,IAAIhB,GAAG,CAAS,CAAC;IACxC,KAAK,MAAMxF,MAAM,IAAI,IAAI,CAAC7B,OAAO,CAAC+G,QAAQ,CAACuB,OAAO,CAACC,IAAI,CAAC,CAAC,EAAE;MACzD,IAAIH,UAAU,CAACvG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC2G,eAAe,CAAC3G,MAAM,CAAC,EAAE;QACvDwG,cAAc,CAACf,GAAG,CAACzF,MAAM,CAAC;MAC5B;IACF;IAEA,MAAM4G,OAAO,GAAG,IAAIpB,GAAG,CAAS,CAAC;IACjC,KAAK,MAAMqB,KAAK,IAAI,IAAI,CAACrI,WAAW,CAACqH,MAAM,CAAC,CAAC,EAAE;MAC7C,IAAIU,UAAU,CAACM,KAAK,CAAC7G,MAAM,CAAC,EAAE;QAC5B4G,OAAO,CAACnB,GAAG,CAACoB,KAAK,CAAC7G,MAAM,CAAC;MAC3B;IACF;IAEA,MAAM0F,OAAiD,GAAG,EAAE;IAC5D,KAAK,MAAM1F,MAAM,IAAI4G,OAAO,EAAE;MAC5B,MAAMpG,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;MACpD,IAAI,CAACQ,SAAS,EAAE;QACd,IAAI,CAACpB,gBAAgB,CAACY,MAAM,CAAC;MAC/B,CAAC,MAAM,IAAI,IAAI,CAAC7B,OAAO,CAAC+G,QAAQ,CAACC,aAAa,CAACnF,MAAM,CAAC,EAAE;QACtD,IAAI,CAACwG,cAAc,CAACN,GAAG,CAAClG,MAAM,CAAC,EAAE;UAC/B,MAAMqF,QAAQ,GAAG,IAAI,CAACC,iBAAiB,CAACtF,MAAM,EAAEQ,SAAS,CAACG,IAAI,CAAC;UAC/D,IAAI,CAACxC,OAAO,CAAC+G,QAAQ,CAAC4B,YAAY,CAAC9G,MAAM,EAAEqF,QAAQ,CAAC1E,IAAI,CAAC;QAC3D;MACF,CAAC,MAAM;QACL,MAAM0E,QAAQ,GAAG,IAAI,CAACC,iBAAiB,CAACtF,MAAM,EAAEQ,SAAS,CAACG,IAAI,CAAC;QAC/D+E,OAAO,CAAChC,IAAI,CAAC2B,QAAQ,CAAC;MACxB;IACF;IACA,IAAIK,OAAO,CAAC/B,MAAM,GAAG,CAAC,EAAE;MACtB,IAAI,CAACxF,OAAO,CAAC+G,QAAQ,CAACY,WAAW,CAC/BJ,OAAO,CAAChI,GAAG,CAAC,CAAC;QAAEiD;MAAK,CAAC,KAAKA,IAAI,CAAC,EAC/B+E,OAAO,CAAChI,GAAG,CAAC,CAAC;QAAE6H;MAAgB,CAAC,KAAKA,eAAe,CACtD,CAAC;IACH;EACF;;EAEA;AACF;EACUoB,eAAeA,CAAC3G,MAAc,EAAW;IAC/C,IAAIc,KAAK,GAAG,IAAI;IAChB,KAAK,MAAMR,MAAM,IAAI,IAAI,CAACnC,OAAO,CAACmB,UAAU,EAAE;MAC5C,IAAI,CAAC,IAAI,CAACwC,gBAAgB,CAAC9B,MAAM,EAAEM,MAAM,CAACZ,EAAE,CAAC,EAAE;QAC7C;MACF;MACA;MACA;MACA;MACA,IAAI,IAAI,CAACQ,eAAe,CAACF,MAAM,EAAEM,MAAM,CAACZ,EAAE,CAAC,EAAE;QAC3CoB,KAAK,GAAG,KAAK;QACb;MACF;MACA,MAAMX,KAAK,GAAG,IAAI,CAACJ,mBAAmB,CAACC,MAAM,EAAEM,MAAM,CAACZ,EAAE,CAAC;MACzD,MAAMuF,MAAM,GAAG,IAAI,CAAChE,oBAAoB,CAACX,MAAM,CAACZ,EAAE,EAAES,KAAK,CAAC;MAC1D,IAAI,CAAC8E,MAAM,CAACnE,KAAK,EAAE;QACjBA,KAAK,GAAG,KAAK;QACb,MAAMyC,UAAU,GAAG,IAAI,CAACC,eAAe,CAACxD,MAAM,EAAEM,MAAM,CAACZ,EAAE,CAAC;QAC1D,IAAI6D,UAAU,EAAE;UACd,IAAI,CAACjF,aAAa,CAACmB,GAAG,CAAC8D,UAAU,EAAE;YACjCpD,KAAK;YACLY,MAAM,EAAEkE,MAAM,CAAClE,MAAM,IAAI;UAC3B,CAAC,CAAC;QACJ;MACF;IACF;IACA,OAAOD,KAAK;EACd;EAEQwE,iBAAiBA,CACvBtF,MAAc,EACdW,IAAO,EACiC;IACxC,MAAM4E,eAAe,GAAG,IAAIC,GAAG,CAAS,CAAC;IACzC,KAAK,MAAM,CAAClB,GAAG,EAAEuC,KAAK,CAAC,IAAI,IAAI,CAACrI,WAAW,EAAE;MAC3C,IAAIqI,KAAK,CAAC7G,MAAM,KAAKA,MAAM,EAAE;QAC3B;MACF;MACA,MAAMM,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACkH,KAAK,CAAC/G,QAAQ,CAAC;MAC1D,IAAIQ,MAAM,YAANA,MAAM,CAAEyB,QAAQ,EAAE;QACpBpB,IAAI,GAAGL,MAAM,CAACyB,QAAQ,CAACpB,IAAI,EAAEkG,KAAK,CAAC1G,KAAK,CAAC;QACzCoF,eAAe,CAACE,GAAG,CAACnF,MAAM,CAACZ,EAAE,CAAC;MAChC;MACA,IAAI,CAAClB,WAAW,CAACiF,MAAM,CAACa,GAAG,CAAC;IAC9B;IACA,OAAO;MAAE3D,IAAI;MAAE4E,eAAe,EAAEI,KAAK,CAACC,IAAI,CAACL,eAAe;IAAE,CAAC;EAC/D;;EAEA;AACF;AACA;EACEnG,gBAAgBA,CAACY,MAAc,EAAE;IAC/B,KAAK,MAAM,CAACsE,GAAG,EAAEuC,KAAK,CAAC,IAAI,IAAI,CAACrI,WAAW,EAAE;MAC3C,IAAIqI,KAAK,CAAC7G,MAAM,KAAKA,MAAM,EAAE;QAC3B,IAAI,CAACxB,WAAW,CAACiF,MAAM,CAACa,GAAG,CAAC;MAC9B;IACF;IACA,MAAMyC,MAAM,GAAG,GAAG/G,MAAM,GAAG;IAC3B,KAAK,MAAMsE,GAAG,IAAI,IAAI,CAAChG,aAAa,CAACoI,IAAI,CAAC,CAAC,EAAE;MAC3C,IAAIpC,GAAG,CAAC0C,UAAU,CAACD,MAAM,CAAC,EAAE;QAC1B,IAAI,CAACzI,aAAa,CAACmF,MAAM,CAACa,GAAG,CAAC;MAChC;IACF;EACF;AACF;AAAC2C,OAAA,CAAApJ,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_cellTypes","_utils","_fieldValidation","builtInCellTypeMap","Map","builtInCellTypes","map","ct","type","CellValueState","constructor","parent","extraCellTypes","_defineProperty2","default","_parent","_extraCellTypes","makeObservable","_pendingCells","observable","_draftCells","_cellTypeMap","computed","clearCells","action","toggleCell","commitHandler","applyBulkRawValues","applyBulkValues","revalidatePendingCells","flushDrafts","flushRow","dropRowCellState","col","allColumns","cellType","typeConfig","set","id","get","textCellType","resolveCellTypeByColumnId","columnId","getCellDisplayValue","rowKey","pending","_getPendingCell","value","draft","_getDraftCell","column","_columnMap","keyedItem","_getKeyedItem","getValue","item","undefined","getCellValidation","valid","errors","validResult","validateEditingValue","_this$_parent$collect","resolved","normalized","normalizeOnCommit","validateFieldValue","validation","validate","collection","translate","isCellEditable","editable","EditComponent","isColumnEditable","setValue","getCellActionDisabledTooltip","actionId","cell","contextMenu","context","field","configs","cut","copy","clear","config","tooltip","disabledTooltip","getActionableCells","cells","filter","getCellActionMenuAvailability","isAvailableWithoutCustomPolicy","disabled","serializeCellValue","serialize","String","changes","pendingKey","_pendingCellKey","delete","push","length","toggleValue","newValue","hasValueChanged","Object","is","_applyValue","bi","cellEditCommitted","origin","editingValue","key","tryDeserialize","rawValue","deserialize","_this$_parent$collect2","error","invalidInputMessage","rawChanges","isDeserializationError","rowUpdates","_this$_parent$collect3","result","mutation","isLocalNewRow","rowUpdate","consumed","_consumeRowDrafts","changedFieldIds","Set","add","updates","Array","from","values","updateItems","_this$_parent$collect4","rowsToSave","parseCellKey","has","cellInteraction","isRowActive","exceptRowKey","_flushRows","includeRow","invalidNewRows","_drafts","keys","_validateNewRow","rowKeys","entry","commitNewRow","prefix","startsWith","exports"],"sources":["../../../../src/state/EditableTable/CellValueState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { CellType, Cell, ValidationResult } from './types';\nimport type { EditableCellContextMenuAction, FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport {\n builtInCellTypes,\n textCellType,\n} from '../../components/EditableTable/cellTypes';\nimport { parseCellKey } from './utils';\nimport { validateFieldValue, validResult } from '../../utils/fieldValidation';\n\nconst builtInCellTypeMap = new Map<string, CellType>(\n builtInCellTypes.map((ct) => [ct.type, ct]),\n);\n\nexport class CellValueState<T, F extends FiltersMap> {\n /** Pending invalid cell values, keyed by `${itemId}:${colId}`. */\n readonly _pendingCells = new Map<\n string,\n { value: any; errors: string[]; isDeserializationError?: boolean }\n >();\n\n /** Valid committed values not yet saved, keyed by `${itemId}:${colId}`.\n * Each row's drafts are flushed as one update when focus leaves the row. */\n readonly _draftCells = new Map<\n string,\n { rowKey: string; columnId: string; value: any }\n >();\n\n private readonly _parent: EditableTableState<T, F>;\n private readonly _extraCellTypes: Map<string, CellType>;\n\n constructor(\n parent: EditableTableState<T, F>,\n extraCellTypes: Map<string, CellType> = new Map(),\n ) {\n this._parent = parent;\n this._extraCellTypes = extraCellTypes;\n\n makeObservable(this, {\n _pendingCells: observable,\n _draftCells: observable,\n _cellTypeMap: computed,\n clearCells: action,\n toggleCell: action,\n commitHandler: action,\n applyBulkRawValues: action,\n applyBulkValues: action,\n revalidatePendingCells: action,\n flushDrafts: action,\n flushRow: action,\n dropRowCellState: action,\n });\n }\n\n // Cell-type config per column id, from the merged columns (consumer columns\n // plus the columns the wired source adds). A computed so source columns that\n // load after init still get their cell types registered, without a rebuild.\n get _cellTypeMap(): Map<string, CellType> {\n const map = new Map<string, CellType>();\n for (const col of this._parent.allColumns) {\n if (col.cellType === 'custom' && col.typeConfig) {\n map.set(col.id, { type: 'custom', ...col.typeConfig });\n } else {\n map.set(\n col.id,\n builtInCellTypeMap.get(col.cellType) ??\n this._extraCellTypes.get(col.cellType) ??\n textCellType,\n );\n }\n }\n return map;\n }\n\n resolveCellTypeByColumnId(columnId: string): CellType {\n return this._cellTypeMap.get(columnId) ?? textCellType;\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return pending.value;\n }\n const draft = this._getDraftCell(rowKey, columnId);\n if (draft) {\n return draft.value;\n }\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return column && keyedItem ? column.getValue(keyedItem.item) : undefined;\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return { valid: false, errors: pending.errors };\n }\n return validResult;\n }\n\n /** Normalize like commitHandler does, then validate, so a value commit\n * would accept (`www.wix.com`) is never reported invalid before it has\n * been committed. */\n validateEditingValue(columnId: string, value: any): ValidationResult {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return validResult;\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(value)\n : value;\n return validateFieldValue(\n normalized,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return false;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (resolved.editable === false || !resolved.EditComponent) {\n return false;\n }\n return this.isColumnEditable(rowKey, columnId);\n }\n\n /**\n * Whether `column.editable` permits writing this cell for this row,\n * independent of whether the cell type has an inline EditComponent. Gates\n * bulk/programmatic writes (clear, cut, paste) — narrower than\n * isCellEditable, which also requires an edit UI to exist.\n */\n isColumnEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column?.setValue) {\n return false;\n }\n\n if (typeof column.editable === 'function') {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return keyedItem ? column.editable(keyedItem.item) : false;\n }\n return column.editable !== false;\n }\n\n getCellActionDisabledTooltip(\n actionId: EditableCellContextMenuAction,\n cell: Cell,\n ): string | undefined {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column) {\n return undefined;\n }\n\n const contextMenu = this.resolveCellTypeByColumnId(\n cell.columnId,\n ).contextMenu;\n if (!contextMenu) {\n return undefined;\n }\n\n const context = {\n value: this.getCellDisplayValue(cell.rowKey, cell.columnId),\n field: column.field,\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n };\n const configs =\n actionId === 'cut'\n ? [contextMenu.cut, contextMenu.copy, contextMenu.clear]\n : [contextMenu[actionId]];\n\n for (const config of configs) {\n const tooltip = config?.disabledTooltip(context);\n if (tooltip) {\n return tooltip;\n }\n }\n return undefined;\n }\n\n getActionableCells(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): Cell[] {\n return cells.filter(\n (cell) => !this.getCellActionDisabledTooltip(actionId, cell),\n );\n }\n\n getCellActionMenuAvailability(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): { disabled: boolean; disabledTooltip?: string } {\n let disabledTooltip: string | undefined;\n\n for (const cell of cells) {\n const tooltip = this.getCellActionDisabledTooltip(actionId, cell);\n disabledTooltip ??= tooltip;\n const isAvailableWithoutCustomPolicy =\n actionId === 'copy' ||\n this.isColumnEditable(cell.rowKey, cell.columnId);\n if (isAvailableWithoutCustomPolicy && !tooltip) {\n return { disabled: false };\n }\n }\n\n return { disabled: true, disabledTooltip };\n }\n\n /** Serialize a cell value to a string (for clipboard copy/cut). */\n serializeCellValue(rowKey: string, columnId: string): string {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column || !keyedItem) {\n return '';\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const value = this.getCellDisplayValue(rowKey, columnId);\n return resolved.serialize ? resolved.serialize(value) : String(value ?? '');\n }\n\n /** Clear selected cells (Delete/Backspace). Respects column.editable and contextMenu.clear.\n * Returns the cells that were actually cleared. */\n clearCells(cells: Cell[]): Cell[] {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n\n for (const cell of cells) {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column?.setValue) {\n continue;\n }\n if (!this.isColumnEditable(cell.rowKey, cell.columnId)) {\n continue;\n }\n if (this.getCellActionDisabledTooltip('clear', cell)) {\n continue;\n }\n\n const pendingKey = this._pendingCellKey(cell.rowKey, cell.columnId);\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n changes.push({\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n value: undefined,\n });\n }\n\n if (changes.length > 0) {\n this.applyBulkValues(changes);\n }\n\n return changes.map(({ rowKey, columnId }) => ({ rowKey, columnId }));\n }\n\n toggleCell(rowKey: string, columnId: string) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.toggleValue) {\n return;\n }\n\n const value = this.getCellDisplayValue(rowKey, columnId);\n const newValue = resolved.toggleValue(value);\n const hasValueChanged = !Object.is(value, newValue);\n this._applyValue(rowKey, columnId, newValue);\n // isValid is read from the cell after the write, so it matches the value\n // that was just stored.\n this._parent.bi.cellEditCommitted(\n { rowKey, columnId },\n { origin: 'Toggle', hasValueChanged },\n );\n }\n\n /** Commit handler — used as callback for CellInteractionState. */\n commitHandler(editingValue: any, cell: Cell) {\n if (editingValue !== undefined) {\n const resolved = this.resolveCellTypeByColumnId(cell.columnId);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(editingValue)\n : editingValue;\n this._applyValue(cell.rowKey, cell.columnId, normalized);\n }\n }\n\n private _getPendingCell(\n rowKey: string,\n columnId: string,\n ): { value: any; errors: string[] } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._pendingCells.get(key) : undefined;\n }\n\n private _getDraftCell(\n rowKey: string,\n columnId: string,\n ): { value: any } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._draftCells.get(key) : undefined;\n }\n\n private _pendingCellKey(\n rowKey: string,\n columnId: string,\n ): string | undefined {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n const column = this._parent._columnMap.get(columnId);\n if (!keyedItem || !column) {\n return undefined;\n }\n return `${keyedItem.key}:${column.id}`;\n }\n\n /**\n * Deserialize a raw string to a typed value. Returns an error message\n * if the conversion fails\n */\n tryDeserialize(\n columnId: string,\n rawValue: string,\n ): { value: any; error?: string } {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return { value: rawValue };\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.deserialize) {\n return { value: rawValue };\n }\n try {\n return { value: resolved.deserialize(rawValue) };\n } catch {\n const translate = this._parent.collection?.translate;\n return {\n value: rawValue,\n error:\n resolved.invalidInputMessage?.(rawValue, translate) ||\n translate?.('cairo.editableTable.cell.validation.notCompatible'),\n };\n }\n }\n\n /**\n * Deserialize and apply multiple raw string values in bulk.\n * Handles conversion failures by storing them as pending cells.\n */\n applyBulkRawValues(\n rawChanges: { rowKey: string; columnId: string; rawValue: string }[],\n ) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n for (const { rowKey, columnId, rawValue } of rawChanges) {\n const { value, error } = this.tryDeserialize(columnId, rawValue);\n if (error) {\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: [error],\n isDeserializationError: true,\n });\n }\n } else {\n changes.push({ rowKey, columnId, value });\n }\n }\n this.applyBulkValues(changes);\n }\n\n /**\n * Apply multiple cell values in bulk. Validates per cell, accumulates\n * changes per row, and submits all modified items in a single update.\n * Every mutation path (clear, paste, cut) funnels through here, so\n * checking isColumnEditable here — not just at the call sites — keeps\n * read-only cells protected regardless of entry point.\n */\n applyBulkValues(changes: { rowKey: string; columnId: string; value: any }[]) {\n const rowUpdates = new Map<\n string,\n { item: T; changedFieldIds: Set<string> }\n >();\n\n for (const { rowKey, columnId, value } of changes) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (\n !column?.setValue ||\n !keyedItem ||\n !this.isColumnEditable(rowKey, columnId)\n ) {\n continue;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = validateFieldValue(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n if (this._parent.mutation.isLocalNewRow(rowKey)) {\n // A row not created on the server yet can't take an update —\n // buffer the value as a draft; it goes out with the row's\n // create when focus leaves the row.\n if (pendingKey) {\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n }\n continue;\n }\n let rowUpdate = rowUpdates.get(rowKey);\n if (!rowUpdate) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n rowUpdate = {\n item: consumed.item,\n changedFieldIds: new Set(consumed.changedFieldIds),\n };\n rowUpdates.set(rowKey, rowUpdate);\n }\n rowUpdate.item = column.setValue(rowUpdate.item, value);\n rowUpdate.changedFieldIds.add(column.id);\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n const updates = Array.from(rowUpdates.values());\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => Array.from(changedFieldIds)),\n );\n }\n\n private _applyValue(rowKey: string, columnId: string, value: any) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = validateFieldValue(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid && pendingKey) {\n this._pendingCells.delete(pendingKey);\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n revalidatePendingCells() {\n const rowsToSave = new Set<string>();\n for (const [key, pending] of this._pendingCells) {\n const cell = parseCellKey(key);\n if (!cell || pending.isDeserializationError) {\n continue;\n }\n this._applyValue(cell.rowKey, cell.columnId, pending.value);\n if (!this._pendingCells.has(key)) {\n rowsToSave.add(cell.rowKey);\n }\n }\n for (const rowKey of rowsToSave) {\n if (!this._parent.cellInteraction.isRowActive(rowKey)) {\n this.flushRow(rowKey);\n }\n }\n }\n\n flushDrafts(exceptRowKey?: string) {\n this._flushRows((rowKey) => rowKey !== exceptRowKey);\n }\n\n /** Save one row's drafts now, leaving other rows' drafts buffered. */\n flushRow(rowKey: string) {\n this._flushRows((key) => key === rowKey);\n }\n\n private _flushRows(includeRow: (rowKey: string) => boolean) {\n const invalidNewRows = new Set<string>();\n for (const rowKey of this._parent.mutation._drafts.keys()) {\n if (includeRow(rowKey) && !this._validateNewRow(rowKey)) {\n invalidNewRows.add(rowKey);\n }\n }\n\n const rowKeys = new Set<string>();\n for (const entry of this._draftCells.values()) {\n if (includeRow(entry.rowKey)) {\n rowKeys.add(entry.rowKey);\n }\n }\n\n const updates: { item: T; changedFieldIds: string[] }[] = [];\n for (const rowKey of rowKeys) {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!keyedItem) {\n this.dropRowCellState(rowKey);\n } else if (this._parent.mutation.isLocalNewRow(rowKey)) {\n if (!invalidNewRows.has(rowKey)) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n this._parent.mutation.commitNewRow(rowKey, consumed.item);\n }\n } else {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n updates.push(consumed);\n }\n }\n if (updates.length > 0) {\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => changedFieldIds),\n );\n }\n }\n\n /** Validate all editable cells of a local new row, storing failures as\n * pending cells. Untouched cells validate their current display value. */\n private _validateNewRow(rowKey: string): boolean {\n let valid = true;\n for (const column of this._parent.allColumns) {\n if (!this.isColumnEditable(rowKey, column.id)) {\n continue;\n }\n // A cell already showing an error blocks the row even if re-validating\n // its value would pass. A failed paste keeps the raw string here, and a\n // cell type that only rejects on deserialize has no `validate` to fail.\n if (this._getPendingCell(rowKey, column.id)) {\n valid = false;\n continue;\n }\n const value = this.getCellDisplayValue(rowKey, column.id);\n const result = this.validateEditingValue(column.id, value);\n if (!result.valid) {\n valid = false;\n const pendingKey = this._pendingCellKey(rowKey, column.id);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n }\n return valid;\n }\n\n private _consumeRowDrafts(\n rowKey: string,\n item: T,\n ): { item: T; changedFieldIds: string[] } {\n const changedFieldIds = new Set<string>();\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey !== rowKey) {\n continue;\n }\n const column = this._parent._columnMap.get(entry.columnId);\n if (column?.setValue) {\n item = column.setValue(item, entry.value);\n changedFieldIds.add(column.id);\n }\n this._draftCells.delete(key);\n }\n return { item, changedFieldIds: Array.from(changedFieldIds) };\n }\n\n /** Drop a row's buffered cell state without saving it (the row is gone).\n * Pending cells are keyed by row key, not tracked per entry, so they are\n * swept by prefix. */\n dropRowCellState(rowKey: string) {\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey === rowKey) {\n this._draftCells.delete(key);\n }\n }\n const prefix = `${rowKey}:`;\n for (const key of this._pendingCells.keys()) {\n if (key.startsWith(prefix)) {\n this._pendingCells.delete(key);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../../src/state/EditableTable/types.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport type {\n EditableCellConfig,\n Field,\n Translate,\n ValidationRule,\n} from '@wix/bex-core';\nimport type { RichTextStyleVariables } from '@wix/patterns-fields';\nimport type { TableColumn } from '../../model/tableColumn';\nimport type { ReferenceTypeConfig } from '../../components/EditableTable/cellTypes/reference/types';\nimport type { AddressCellTypeConfig } from '../../components/EditableTable/cellTypes/address';\nimport type {\n CellViewProps,\n CellEditProps,\n CellEditWrapperProps,\n} from '../../components/EditableTable/types';\n\nexport interface RichTextCellTypeConfig {\n textStyle?: RichTextStyleVariables;\n}\n\nexport interface Cell {\n rowKey: string;\n columnId: string;\n}\n\nexport interface CellBorder {\n top: boolean;\n bottom: boolean;\n left: boolean;\n right: boolean;\n}\n\nexport type { ValidationRule } from '@wix/bex-core';\n\nexport interface ValidationResult {\n valid: boolean;\n errors?: string[];\n}\n\nexport interface CellType {\n type: keyof CellTypeConfigMap;\n\n /** Render cell in view mode (read-only display) */\n ViewComponent: ComponentType<CellViewProps<any>>;\n\n /** Render cell in edit mode (inline editor). Optional — omit for view-only cells. */\n EditComponent?: ComponentType<CellEditProps<any>>;\n\n /** Serialize value to clipboard string */\n serialize?: (value: any) => string;\n\n /** Deserialize clipboard string to value */\n deserialize?: (raw: string) => any;\n\n /** Validate a cell value. Return null if valid, or error message string.\n * `translate` is optional so cell types whose validate doesn't need\n * localization (text/number/date/…) can keep their existing call sites.\n * Cell types that DO localize (array/object) must be called with a translator. */\n validate?: (\n value: any,\n rules?: ValidationRule[],\n translate?: Translate,\n ) => string | null;\n\n /** Error message for pasted text that `deserialize` rejected. Receives the\n * raw text, not a typed value. Omit it to show the generic\n * \"not compatible\" message. */\n invalidInputMessage?: (raw: string, translate?: Translate) => string | null;\n\n /** Can this cell type be edited? (default: true) */\n editable?: boolean;\n\n /** Availability of Cairo's built-in cell context-menu actions. */\n contextMenu?: EditableCellConfig<unknown>['contextMenu'];\n\n /** Toggle value on single click (e.g., boolean checkbox). Skips focus→edit flow. */\n toggleValue?: (value: any) => any;\n\n /** Enter edit mode on single click (e.g., image cell with no value). */\n editOnClick?: (value: any) => boolean;\n\n /** Show the EditComponent when the cell is focused, without entering edit mode.\n * Keyboard navigation remains active. Similar to toggleValue but without toggling. */\n showEditWhenFocused?: boolean;\n\n /** Optional wrapper component the cell type defines to own behavior that must\n * outlive the inline editor. EditableCell mounts it around the cell content\n * and keeps it mounted across the edit↔view transition (e.g. a reference cell\n * navigating to an overlay and refreshing the table on return). The wrapper\n * hands anything the editor needs down via its own context. */\n EditWrapper?: ComponentType<CellEditWrapperProps>;\n\n /** Cell content can grow past row height when focused (e.g. multi-document\n * wraps chips into multiple rows). The framework releases the bottom anchor\n * and lays an opaque base under the selection tint so the overflow doesn't\n * bleed adjacent rows through.\n * Only applies to showEditWhenFocused cells — others release the bottom\n * anchor via :editing already. */\n growable?: boolean;\n\n /** Called on type-to-edit. Return object with cleared value and/or prevent flag.\n * CMS-web pattern: text clears to '', number clears only for digits, date blocks non-digits.\n * Return undefined to block the key. Return {} to enter edit mode without changing the value. */\n onTypeToEdit?: (params: {\n key: string;\n validation?: ValidationRule[];\n }) => { value?: any } | undefined;\n\n /** Optional hook to normalize the committed value (e.g. auto-prepend https://).\n * Called before commitEdit() from EditableCell (blur/Enter) and useKeyboardNavigation (Tab).\n * The value is written back to editingValue via runInAction before committing. */\n normalizeOnCommit?: (value: any) => any;\n\n /** When true, type-to-edit flushes the edit-mode render synchronously and\n * focuses the input within the same keydown event, then lets the browser's\n * default action deliver the keystroke to the now-focused input naturally\n * (no preventDefault, no programmatic value injection).\n * Mirrors cms-web's `focusOnTyping` pattern. Use for cells that wrap a\n * controlled input whose value can't be seeded via props (e.g. WSR TimeInput). */\n nativeTypeToEdit?: boolean;\n}\n\nexport interface CellTypeConfigMap {\n text: never;\n number: never;\n boolean: never;\n url: never;\n email: never;\n color: never;\n date: never;\n time: never;\n datetime: never;\n object: never;\n array: never;\n image: never;\n mediaImage: never;\n document: never;\n multiDocument: never;\n richContent: never;\n video: never;\n audio: never;\n richText: RichTextCellTypeConfig;\n mediaGallery: never;\n reference: ReferenceTypeConfig;\n multiReference: ReferenceTypeConfig;\n address: AddressCellTypeConfig;\n /** An inline custom cell: the full cell contract minus the registry key.\n * Authorable directly on a column (`cellType: 'custom'` + `typeConfig`),\n * and also produced by the column builder when a schema field's type\n * definition (registered via the source's `fieldTypes`) has an\n * `editableTable` slot. */\n custom: Omit<CellType, 'type'>;\n}\n\ninterface EditableColumnBase<T> extends Omit<TableColumn<T>, 'render'> {\n id: string;\n /** Column type — maps to a CellType in the registry */\n cellType: keyof CellTypeConfigMap;\n\n /** Extract the cell value from the row data */\n getValue: (item: T) => any;\n\n /** Field metadata associated with the column, when available. */\n field?: Field;\n\n /** Return updated item with new cell value (immutable) */\n setValue?: (item: T, value: any) => T;\n\n /** Column-level validation rules */\n validation?: ValidationRule[];\n\n /** Is this column editable? (default: true if setValue exists) */\n editable?: boolean | ((item: T) => boolean);\n\n /** True if this column represents the schema's primary field. Drives header-action disable rules (e.g. blocks Delete, blocks Make Primary). */\n isPrimary?: boolean;\n\n /** True if this column represents a system field. Drives header-action disable rules (e.g. blocks Edit, Delete, Duplicate). */\n isSystem?: boolean;\n}\n\nexport type EditableColumn<\n T,\n C extends keyof CellTypeConfigMap = keyof CellTypeConfigMap,\n> = C extends C\n ? EditableColumnBase<T> & {\n cellType: C;\n typeConfig?: CellTypeConfigMap[C] extends never\n ? never\n : CellTypeConfigMap[C];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../../src/state/EditableTable/types.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport type {\n EditableCellConfig,\n Field,\n Translate,\n ValidationRule,\n} from '@wix/bex-core';\nimport type { RichTextStyleVariables } from '@wix/patterns-fields';\nimport type { TableColumn } from '../../model/tableColumn';\nimport type { ReferenceTypeConfig } from '../../components/EditableTable/cellTypes/reference/types';\nimport type { AddressCellTypeConfig } from '../../components/EditableTable/cellTypes/address';\nimport type {\n CellViewProps,\n CellEditProps,\n CellEditWrapperProps,\n} from '../../components/EditableTable/types';\n\nexport interface RichTextCellTypeConfig {\n textStyle?: RichTextStyleVariables;\n}\n\nexport interface Cell {\n rowKey: string;\n columnId: string;\n}\n\nexport interface CellBorder {\n top: boolean;\n bottom: boolean;\n left: boolean;\n right: boolean;\n}\n\nexport type { ValidationRule } from '@wix/bex-core';\n\nexport type { ValidationResult } from '../../utils/fieldValidation';\n\nexport interface CellType {\n type: keyof CellTypeConfigMap;\n\n /** Render cell in view mode (read-only display) */\n ViewComponent: ComponentType<CellViewProps<any>>;\n\n /** Render cell in edit mode (inline editor). Optional — omit for view-only cells. */\n EditComponent?: ComponentType<CellEditProps<any>>;\n\n /** Serialize value to clipboard string */\n serialize?: (value: any) => string;\n\n /** Deserialize clipboard string to value */\n deserialize?: (raw: string) => any;\n\n /** Validate a cell value. Return null if valid, or error message string.\n * `translate` is optional so cell types whose validate doesn't need\n * localization (text/number/date/…) can keep their existing call sites.\n * Cell types that DO localize (array/object) must be called with a translator. */\n validate?: (\n value: any,\n rules?: ValidationRule[],\n translate?: Translate,\n ) => string | null;\n\n /** Error message for pasted text that `deserialize` rejected. Receives the\n * raw text, not a typed value. Omit it to show the generic\n * \"not compatible\" message. */\n invalidInputMessage?: (raw: string, translate?: Translate) => string | null;\n\n /** Can this cell type be edited? (default: true) */\n editable?: boolean;\n\n /** Availability of Cairo's built-in cell context-menu actions. */\n contextMenu?: EditableCellConfig<unknown>['contextMenu'];\n\n /** Toggle value on single click (e.g., boolean checkbox). Skips focus→edit flow. */\n toggleValue?: (value: any) => any;\n\n /** Enter edit mode on single click (e.g., image cell with no value). */\n editOnClick?: (value: any) => boolean;\n\n /** Show the EditComponent when the cell is focused, without entering edit mode.\n * Keyboard navigation remains active. Similar to toggleValue but without toggling. */\n showEditWhenFocused?: boolean;\n\n /** Optional wrapper component the cell type defines to own behavior that must\n * outlive the inline editor. EditableCell mounts it around the cell content\n * and keeps it mounted across the edit↔view transition (e.g. a reference cell\n * navigating to an overlay and refreshing the table on return). The wrapper\n * hands anything the editor needs down via its own context. */\n EditWrapper?: ComponentType<CellEditWrapperProps>;\n\n /** Cell content can grow past row height when focused (e.g. multi-document\n * wraps chips into multiple rows). The framework releases the bottom anchor\n * and lays an opaque base under the selection tint so the overflow doesn't\n * bleed adjacent rows through.\n * Also applies to read-only views. Other editors release the bottom\n * anchor via :editing already. */\n growable?: boolean;\n\n /** Called on type-to-edit. Return object with cleared value and/or prevent flag.\n * CMS-web pattern: text clears to '', number clears only for digits, date blocks non-digits.\n * Return undefined to block the key. Return {} to enter edit mode without changing the value. */\n onTypeToEdit?: (params: {\n key: string;\n validation?: ValidationRule[];\n }) => { value?: any } | undefined;\n\n /** Optional hook to normalize the committed value (e.g. auto-prepend https://).\n * Called before commitEdit() from EditableCell (blur/Enter) and useKeyboardNavigation (Tab).\n * The value is written back to editingValue via runInAction before committing. */\n normalizeOnCommit?: (value: any) => any;\n\n /** When true, type-to-edit flushes the edit-mode render synchronously and\n * focuses the input within the same keydown event, then lets the browser's\n * default action deliver the keystroke to the now-focused input naturally\n * (no preventDefault, no programmatic value injection).\n * Mirrors cms-web's `focusOnTyping` pattern. Use for cells that wrap a\n * controlled input whose value can't be seeded via props (e.g. WSR TimeInput). */\n nativeTypeToEdit?: boolean;\n}\n\nexport interface CellTypeConfigMap {\n text: never;\n number: never;\n boolean: never;\n url: never;\n email: never;\n color: never;\n date: never;\n time: never;\n datetime: never;\n object: never;\n array: never;\n image: never;\n mediaImage: never;\n document: never;\n multiDocument: never;\n richContent: never;\n video: never;\n audio: never;\n richText: RichTextCellTypeConfig;\n mediaGallery: never;\n reference: ReferenceTypeConfig;\n multiReference: ReferenceTypeConfig;\n address: AddressCellTypeConfig;\n /** An inline custom cell: the full cell contract minus the registry key.\n * Authorable directly on a column (`cellType: 'custom'` + `typeConfig`),\n * and also produced by the column builder when a schema field's type\n * definition (registered via the source's `fieldTypes`) has an\n * `editableTable` slot. */\n custom: Omit<CellType, 'type'>;\n}\n\ninterface EditableColumnBase<T> extends Omit<TableColumn<T>, 'render'> {\n id: string;\n /** Column type — maps to a CellType in the registry */\n cellType: keyof CellTypeConfigMap;\n\n /** Extract the cell value from the row data */\n getValue: (item: T) => any;\n\n /** Field metadata associated with the column, when available. */\n field?: Field;\n\n /** Return updated item with new cell value (immutable) */\n setValue?: (item: T, value: any) => T;\n\n /** Column-level validation rules */\n validation?: ValidationRule[];\n\n /** Is this column editable? (default: true if setValue exists) */\n editable?: boolean | ((item: T) => boolean);\n\n /** True if this column represents the schema's primary field. Drives header-action disable rules (e.g. blocks Delete, blocks Make Primary). */\n isPrimary?: boolean;\n\n /** True if this column represents a system field. Drives header-action disable rules (e.g. blocks Edit, Delete, Duplicate). */\n isSystem?: boolean;\n}\n\nexport type EditableColumn<\n T,\n C extends keyof CellTypeConfigMap = keyof CellTypeConfigMap,\n> = C extends C\n ? EditableColumnBase<T> & {\n cellType: C;\n typeConfig?: CellTypeConfigMap[C] extends never\n ? never\n : CellTypeConfigMap[C];\n }\n : never;\n"],"mappings":"","ignoreList":[]}