@wix/patterns 1.495.0 → 1.497.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 (651) 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/EditableTable.js +9 -18
  45. package/dist/cjs/components/EditableTable/EditableTable.js.map +1 -1
  46. package/dist/cjs/components/EditableTable/EditableTableContextMenu.js +13 -10
  47. package/dist/cjs/components/EditableTable/EditableTableContextMenu.js.map +1 -1
  48. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  49. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  50. package/dist/cjs/components/EditableTable/HeaderFieldActions.js +4 -3
  51. package/dist/cjs/components/EditableTable/HeaderFieldActions.js.map +1 -1
  52. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  53. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  54. package/dist/cjs/components/EditableTable/cellTypes/JsonInputEdit.st.css.js +3 -3
  55. package/dist/cjs/components/EditableTable/cellTypes/JsonInputEdit.st.css.js.map +1 -1
  56. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  57. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  58. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  59. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  60. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  61. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  62. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  63. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  64. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  65. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  66. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  67. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  68. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  69. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  70. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  71. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  72. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  73. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  74. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  75. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  76. package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.js +13 -4
  77. package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.js.map +1 -1
  78. package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.st.css +7 -0
  79. package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.st.css.js +22 -0
  80. package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.st.css.js.map +1 -0
  81. package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.js +2 -0
  82. package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.js.map +1 -1
  83. package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.js +14 -4
  84. package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.js.map +1 -1
  85. package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.st.css +6 -0
  86. package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.st.css.js +23 -0
  87. package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.st.css.js.map +1 -0
  88. package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.js +3 -1
  89. package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.js.map +1 -1
  90. package/dist/cjs/components/EditableTable/cellTypes/multiReference/index.js +1 -0
  91. package/dist/cjs/components/EditableTable/cellTypes/multiReference/index.js.map +1 -1
  92. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  93. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  94. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  95. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  96. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  97. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  98. package/dist/cjs/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js +6 -6
  99. package/dist/cjs/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js.map +1 -1
  100. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  101. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  102. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  103. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  104. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  105. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  106. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  107. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  108. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  109. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  110. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  111. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  112. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  113. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  114. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  115. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  116. package/dist/cjs/components/EntityPageFields/EntityPageCustomField.js +2 -2
  117. package/dist/cjs/components/EntityPageFields/EntityPageCustomField.js.map +1 -1
  118. package/dist/cjs/components/EntityPageFields/EntityPageField.st.css.js +3 -3
  119. package/dist/cjs/components/EntityPageFields/EntityPageField.st.css.js.map +1 -1
  120. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  121. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  122. package/dist/cjs/components/FieldActions/FieldActions.js +18 -14
  123. package/dist/cjs/components/FieldActions/FieldActions.js.map +1 -1
  124. package/dist/cjs/components/FieldActions/headerActionTypes.js.map +1 -1
  125. package/dist/cjs/components/FiltersPanel/FilterRevealAnchor.js +51 -0
  126. package/dist/cjs/components/FiltersPanel/FilterRevealAnchor.js.map +1 -0
  127. package/dist/cjs/components/FiltersPanel/FiltersPanel.js +13 -15
  128. package/dist/cjs/components/FiltersPanel/FiltersPanel.js.map +1 -1
  129. package/dist/cjs/components/FiltersPanel/FiltersPanelState.js +50 -0
  130. package/dist/cjs/components/FiltersPanel/FiltersPanelState.js.map +1 -1
  131. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  132. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  133. package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js +26 -17
  134. package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
  135. package/dist/cjs/components/ImportButton/ImportStepConfiguration.js +30 -28
  136. package/dist/cjs/components/ImportButton/ImportStepConfiguration.js.map +1 -1
  137. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  138. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  139. package/dist/cjs/components/ImportButton/createImportFieldValidator.js +22 -0
  140. package/dist/cjs/components/ImportButton/createImportFieldValidator.js.map +1 -0
  141. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  142. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  143. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  144. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  145. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  146. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  147. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  148. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  149. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  150. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  151. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  152. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  153. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  154. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  155. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  156. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  157. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  158. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  159. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  160. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  161. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  162. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  163. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  164. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  165. package/dist/cjs/components/SchemaSource/schemaFieldActions.js +24 -6
  166. package/dist/cjs/components/SchemaSource/schemaFieldActions.js.map +1 -1
  167. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +10 -0
  168. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  169. package/dist/cjs/components/SchemaSource/tableSchemaSource.js +3 -0
  170. package/dist/cjs/components/SchemaSource/tableSchemaSource.js.map +1 -1
  171. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  172. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  173. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +10 -10
  174. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  175. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  176. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  177. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  178. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  179. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +6 -6
  180. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  181. package/dist/cjs/components/Table/NumberCell.st.css.js +2 -2
  182. package/dist/cjs/components/Table/NumberCell.st.css.js.map +1 -1
  183. package/dist/cjs/components/TableFolders/TableFolders.uni.driver.js +8 -0
  184. package/dist/cjs/components/TableFolders/TableFolders.uni.driver.js.map +1 -1
  185. package/dist/cjs/components/TableFolders/TableFoldersContent.js +26 -10
  186. package/dist/cjs/components/TableFolders/TableFoldersContent.js.map +1 -1
  187. package/dist/cjs/components/TableFolders/buildFoldersMobileColumns.js +37 -0
  188. package/dist/cjs/components/TableFolders/buildFoldersMobileColumns.js.map +1 -0
  189. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  190. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  191. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  192. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  193. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  194. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  195. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  196. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  197. package/dist/cjs/components/common.st.css.js +4 -4
  198. package/dist/cjs/components/common.st.css.js.map +1 -1
  199. package/dist/cjs/hooks/useBuildAccordionItems.js +45 -24
  200. package/dist/cjs/hooks/useBuildAccordionItems.js.map +1 -1
  201. package/dist/cjs/hooks/useOptionalCachedState.js +4 -1
  202. package/dist/cjs/hooks/useOptionalCachedState.js.map +1 -1
  203. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +3 -3
  204. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  205. package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
  206. package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -1
  207. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js +4 -4
  208. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
  209. package/dist/cjs/state/CustomFields/CustomFieldsPanelState.js +7 -1
  210. package/dist/cjs/state/CustomFields/CustomFieldsPanelState.js.map +1 -1
  211. package/dist/cjs/state/EditableTable/CellValueState.js +6 -5
  212. package/dist/cjs/state/EditableTable/CellValueState.js.map +1 -1
  213. package/dist/cjs/state/EditableTable/types.js.map +1 -1
  214. package/dist/cjs/state/EditableTable/utils.js +0 -52
  215. package/dist/cjs/state/EditableTable/utils.js.map +1 -1
  216. package/dist/cjs/state/EntityPage/EntityPageState.js +4 -0
  217. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  218. package/dist/cjs/state/EntityPageFieldsCardState.js +5 -1
  219. package/dist/cjs/state/EntityPageFieldsCardState.js.map +1 -1
  220. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  221. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  222. package/dist/cjs/state/WixPatternsRouterState.js +13 -0
  223. package/dist/cjs/state/WixPatternsRouterState.js.map +1 -1
  224. package/dist/cjs/state/buildEditableFieldColumns.js +2 -81
  225. package/dist/cjs/state/buildEditableFieldColumns.js.map +1 -1
  226. package/dist/cjs/styles.global.css +2 -2
  227. package/dist/cjs/{components/CollectionTable → utils}/buildMobileColumns.js +41 -22
  228. package/dist/cjs/utils/buildMobileColumns.js.map +1 -0
  229. package/dist/cjs/utils/fieldValidation.js +136 -0
  230. package/dist/cjs/utils/fieldValidation.js.map +1 -0
  231. package/dist/cjs/version.js +1 -1
  232. package/dist/cjs/version.js.map +1 -1
  233. package/dist/docs/CustomFieldType.md +4 -2
  234. package/dist/docs/ImportButton.md +4 -0
  235. package/dist/docs/index.json +1 -1
  236. package/dist/docs/useSchemaSource.md +7 -1
  237. package/dist/dts-bundle/index.json +31 -31
  238. package/dist/dts-bundle/index.txt +5 -5
  239. package/dist/dts-bundle/types/CellType.d.ts +9 -7
  240. package/dist/dts-bundle/types/EntityPageState.d.ts +1 -0
  241. package/dist/dts-bundle/types/SchemaSource.d.ts +8 -2
  242. package/dist/dts-bundle/types/SchemaSourceInput.d.ts +10 -2
  243. package/dist/dts-bundle/types/UseCmsSchemaSourceDeps.d.ts +7 -2
  244. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  245. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  246. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  247. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  248. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  249. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  250. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  251. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  252. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  253. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  254. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  255. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  256. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js +2 -2
  257. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
  258. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  259. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  260. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  261. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  262. package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js +10 -2
  263. package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js.map +1 -1
  264. package/dist/esm/components/CollectionToolbarFilters/useFiltersSyncProps.js +17 -2
  265. package/dist/esm/components/CollectionToolbarFilters/useFiltersSyncProps.js.map +1 -1
  266. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  267. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  268. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +2 -2
  269. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  270. package/dist/esm/components/EditableTable/EditableCell.js +10 -4
  271. package/dist/esm/components/EditableTable/EditableCell.js.map +1 -1
  272. package/dist/esm/components/EditableTable/EditableCell.st.css +8 -32
  273. package/dist/esm/components/EditableTable/EditableCell.st.css.js +3 -3
  274. package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
  275. package/dist/esm/components/EditableTable/EditableCell.uni.driver.js +2 -2
  276. package/dist/esm/components/EditableTable/EditableCell.uni.driver.js.map +1 -1
  277. package/dist/esm/components/EditableTable/EditableTable.js +0 -2
  278. package/dist/esm/components/EditableTable/EditableTable.js.map +1 -1
  279. package/dist/esm/components/EditableTable/EditableTableContextMenu.js +6 -1
  280. package/dist/esm/components/EditableTable/EditableTableContextMenu.js.map +1 -1
  281. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  282. package/dist/esm/components/EditableTable/HeaderFieldActions.js +3 -3
  283. package/dist/esm/components/EditableTable/HeaderFieldActions.js.map +1 -1
  284. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  285. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  286. package/dist/esm/components/EditableTable/cellTypes/JsonInputEdit.st.css.js +2 -2
  287. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  288. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  289. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  290. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  291. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  292. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  293. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  294. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  295. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  296. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  297. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  298. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  299. package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.js +3 -1
  300. package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.js.map +1 -1
  301. package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.st.css +7 -0
  302. package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.st.css.js +15 -0
  303. package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.st.css.js.map +1 -0
  304. package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.js +4 -0
  305. package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.js.map +1 -1
  306. package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.js +3 -1
  307. package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.js.map +1 -1
  308. package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.st.css +6 -0
  309. package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.st.css.js +15 -0
  310. package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.st.css.js.map +1 -0
  311. package/dist/esm/components/EditableTable/cellTypes/multiReference/View.js +2 -2
  312. package/dist/esm/components/EditableTable/cellTypes/multiReference/View.js.map +1 -1
  313. package/dist/esm/components/EditableTable/cellTypes/multiReference/index.js +1 -0
  314. package/dist/esm/components/EditableTable/cellTypes/multiReference/index.js.map +1 -1
  315. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  316. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  317. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  318. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  319. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  320. package/dist/esm/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js +2 -2
  321. package/dist/esm/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js.map +1 -1
  322. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  323. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  324. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  325. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  326. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  327. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  328. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  329. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  330. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  331. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  332. package/dist/esm/components/EntityPageFields/EntityPageCustomField.js +2 -2
  333. package/dist/esm/components/EntityPageFields/EntityPageCustomField.js.map +1 -1
  334. package/dist/esm/components/EntityPageFields/EntityPageField.st.css.js +2 -2
  335. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  336. package/dist/esm/components/FieldActions/FieldActions.js +7 -2
  337. package/dist/esm/components/FieldActions/FieldActions.js.map +1 -1
  338. package/dist/esm/components/FiltersPanel/FilterRevealAnchor.js +29 -0
  339. package/dist/esm/components/FiltersPanel/FilterRevealAnchor.js.map +1 -0
  340. package/dist/esm/components/FiltersPanel/FiltersPanel.js +2 -5
  341. package/dist/esm/components/FiltersPanel/FiltersPanel.js.map +1 -1
  342. package/dist/esm/components/FiltersPanel/FiltersPanelState.js +46 -0
  343. package/dist/esm/components/FiltersPanel/FiltersPanelState.js.map +1 -1
  344. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  345. package/dist/esm/components/ImportButton/ImportButtonModalLayout.js +8 -1
  346. package/dist/esm/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
  347. package/dist/esm/components/ImportButton/ImportStepConfiguration.js +2 -0
  348. package/dist/esm/components/ImportButton/ImportStepConfiguration.js.map +1 -1
  349. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  350. package/dist/esm/components/ImportButton/createImportFieldValidator.js +15 -0
  351. package/dist/esm/components/ImportButton/createImportFieldValidator.js.map +1 -0
  352. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  353. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  354. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  355. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  356. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  357. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  358. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  359. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  360. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  361. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  362. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  363. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  364. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  365. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  366. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  367. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  368. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  369. package/dist/esm/components/SchemaSource/schemaFieldActions.js +30 -8
  370. package/dist/esm/components/SchemaSource/schemaFieldActions.js.map +1 -1
  371. package/dist/esm/components/SchemaSource/schemaFieldManagement.js +12 -0
  372. package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  373. package/dist/esm/components/SchemaSource/tableSchemaSource.js +3 -0
  374. package/dist/esm/components/SchemaSource/tableSchemaSource.js.map +1 -1
  375. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  376. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  377. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  378. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  379. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  380. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  381. package/dist/esm/components/Table/NumberCell.st.css.js +2 -2
  382. package/dist/esm/components/Table/NumberCell.st.css.js.map +1 -1
  383. package/dist/esm/components/TableFolders/TableFolders.uni.driver.js +11 -0
  384. package/dist/esm/components/TableFolders/TableFolders.uni.driver.js.map +1 -1
  385. package/dist/esm/components/TableFolders/TableFoldersContent.js +17 -2
  386. package/dist/esm/components/TableFolders/TableFoldersContent.js.map +1 -1
  387. package/dist/esm/components/TableFolders/buildFoldersMobileColumns.js +17 -0
  388. package/dist/esm/components/TableFolders/buildFoldersMobileColumns.js.map +1 -0
  389. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  390. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  391. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  392. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  393. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  394. package/dist/esm/components/common.st.css.js +2 -2
  395. package/dist/esm/hooks/useBuildAccordionItems.js +24 -10
  396. package/dist/esm/hooks/useBuildAccordionItems.js.map +1 -1
  397. package/dist/esm/hooks/useOptionalCachedState.js +4 -1
  398. package/dist/esm/hooks/useOptionalCachedState.js.map +1 -1
  399. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  400. package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
  401. package/dist/esm/state/CollectionPage/TitleBadges.st.css.js +2 -2
  402. package/dist/esm/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
  403. package/dist/esm/state/CustomFields/CustomFieldsPanelState.js +13 -1
  404. package/dist/esm/state/CustomFields/CustomFieldsPanelState.js.map +1 -1
  405. package/dist/esm/state/EditableTable/CellValueState.js +5 -4
  406. package/dist/esm/state/EditableTable/CellValueState.js.map +1 -1
  407. package/dist/esm/state/EditableTable/utils.js +0 -48
  408. package/dist/esm/state/EditableTable/utils.js.map +1 -1
  409. package/dist/esm/state/EntityPage/EntityPageState.js +3 -0
  410. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  411. package/dist/esm/state/EntityPageFieldsCardState.js +5 -1
  412. package/dist/esm/state/EntityPageFieldsCardState.js.map +1 -1
  413. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  414. package/dist/esm/state/WixPatternsRouterState.js +13 -0
  415. package/dist/esm/state/WixPatternsRouterState.js.map +1 -1
  416. package/dist/esm/state/buildEditableFieldColumns.js +2 -73
  417. package/dist/esm/state/buildEditableFieldColumns.js.map +1 -1
  418. package/dist/esm/styles.global.css +2 -2
  419. package/dist/esm/{components/CollectionTable → utils}/buildMobileColumns.js +23 -8
  420. package/dist/esm/utils/buildMobileColumns.js.map +1 -0
  421. package/dist/esm/utils/fieldValidation.js +121 -0
  422. package/dist/esm/utils/fieldValidation.js.map +1 -0
  423. package/dist/esm/version.js +1 -1
  424. package/dist/types/components/CmsFieldManagement/CmsFieldModal.st.css.d.ts.map +1 -1
  425. package/dist/types/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.d.ts.map +1 -1
  426. package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
  427. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
  428. package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts +6 -0
  429. package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts.map +1 -1
  430. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  431. package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFiltersState.d.ts +4 -3
  432. package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFiltersState.d.ts.map +1 -1
  433. package/dist/types/components/CollectionToolbarFilters/useFiltersSyncProps.d.ts.map +1 -1
  434. package/dist/types/components/EditableTable/EditableCell.d.ts.map +1 -1
  435. package/dist/types/components/EditableTable/EditableCell.st.css.d.ts +1 -5
  436. package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
  437. package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts +7 -5
  438. package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts.map +1 -1
  439. package/dist/types/components/EditableTable/EditableTable.d.ts.map +1 -1
  440. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +4 -0
  441. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
  442. package/dist/types/components/EditableTable/EditableTableContextMenu.d.ts.map +1 -1
  443. package/dist/types/components/EditableTable/HeaderFieldActions.d.ts.map +1 -1
  444. package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
  445. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
  446. package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
  447. package/dist/types/components/EditableTable/cellTypes/mediaImage/Edit.d.ts.map +1 -1
  448. package/dist/types/components/EditableTable/cellTypes/mediaImage/Edit.st.css.d.ts +13 -0
  449. package/dist/types/components/EditableTable/cellTypes/mediaImage/Edit.st.css.d.ts.map +1 -0
  450. package/dist/types/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.d.ts +2 -0
  451. package/dist/types/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.d.ts.map +1 -1
  452. package/dist/types/components/EditableTable/cellTypes/multiDocument/Edit.d.ts.map +1 -1
  453. package/dist/types/components/EditableTable/cellTypes/multiDocument/Edit.st.css.d.ts +14 -0
  454. package/dist/types/components/EditableTable/cellTypes/multiDocument/Edit.st.css.d.ts.map +1 -0
  455. package/dist/types/components/EditableTable/cellTypes/multiReference/View.d.ts.map +1 -1
  456. package/dist/types/components/EditableTable/cellTypes/multiReference/index.d.ts.map +1 -1
  457. package/dist/types/components/EditableTable/cellTypes/number/Edit.st.css.d.ts.map +1 -1
  458. package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
  459. package/dist/types/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.d.ts.map +1 -1
  460. package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
  461. package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
  462. package/dist/types/components/FieldActions/FieldActions.d.ts +2 -2
  463. package/dist/types/components/FieldActions/FieldActions.d.ts.map +1 -1
  464. package/dist/types/components/FieldActions/headerActionTypes.d.ts +2 -2
  465. package/dist/types/components/FieldActions/headerActionTypes.d.ts.map +1 -1
  466. package/dist/types/components/FiltersPanel/FilterRevealAnchor.d.ts +12 -0
  467. package/dist/types/components/FiltersPanel/FilterRevealAnchor.d.ts.map +1 -0
  468. package/dist/types/components/FiltersPanel/FiltersPanel.d.ts.map +1 -1
  469. package/dist/types/components/FiltersPanel/FiltersPanelState.d.ts +12 -0
  470. package/dist/types/components/FiltersPanel/FiltersPanelState.d.ts.map +1 -1
  471. package/dist/types/components/ImportButton/ImportButtonModalLayout.d.ts.map +1 -1
  472. package/dist/types/components/ImportButton/ImportStepConfiguration.d.ts.map +1 -1
  473. package/dist/types/components/ImportButton/createImportFieldValidator.d.ts +3 -0
  474. package/dist/types/components/ImportButton/createImportFieldValidator.d.ts.map +1 -0
  475. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  476. package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
  477. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  478. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
  479. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  480. package/dist/types/components/SchemaSource/schemaFieldActions.d.ts.map +1 -1
  481. package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
  482. package/dist/types/components/SchemaSource/tableSchemaSource.d.ts.map +1 -1
  483. package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts.map +1 -1
  484. package/dist/types/components/Table/NumberCell.st.css.d.ts.map +1 -1
  485. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +9 -1
  486. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  487. package/dist/types/components/TableFolders/TableFoldersContent.d.ts.map +1 -1
  488. package/dist/types/components/TableFolders/buildFoldersMobileColumns.d.ts +4 -0
  489. package/dist/types/components/TableFolders/buildFoldersMobileColumns.d.ts.map +1 -0
  490. package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
  491. package/dist/types/hooks/useBuildAccordionItems.d.ts.map +1 -1
  492. package/dist/types/hooks/useOptionalCachedState.d.ts.map +1 -1
  493. package/dist/types/state/CollectionPage/TitleBadges.st.css.d.ts.map +1 -1
  494. package/dist/types/state/CustomFields/CustomFieldsPanelState.d.ts +1 -0
  495. package/dist/types/state/CustomFields/CustomFieldsPanelState.d.ts.map +1 -1
  496. package/dist/types/state/EditableTable/CellValueState.d.ts.map +1 -1
  497. package/dist/types/state/EditableTable/types.d.ts +2 -5
  498. package/dist/types/state/EditableTable/types.d.ts.map +1 -1
  499. package/dist/types/state/EditableTable/utils.d.ts +1 -4
  500. package/dist/types/state/EditableTable/utils.d.ts.map +1 -1
  501. package/dist/types/state/EntityPage/EntityPageState.d.ts +1 -0
  502. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  503. package/dist/types/state/EntityPageFieldsCardState.d.ts.map +1 -1
  504. package/dist/types/state/WixPatternsRouterState.d.ts +3 -0
  505. package/dist/types/state/WixPatternsRouterState.d.ts.map +1 -1
  506. package/dist/types/state/buildEditableFieldColumns.d.ts +1 -2
  507. package/dist/types/state/buildEditableFieldColumns.d.ts.map +1 -1
  508. package/dist/types/testkit/enzyme.d.ts +4 -0
  509. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  510. package/dist/types/testkit/jsdom.d.ts +8 -0
  511. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  512. package/dist/types/testkit/playwright.d.ts +8 -0
  513. package/dist/types/testkit/playwright.d.ts.map +1 -1
  514. package/dist/types/testkit/puppeteer.d.ts +8 -0
  515. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  516. package/dist/types/utils/buildMobileColumns.d.ts +10 -0
  517. package/dist/types/utils/buildMobileColumns.d.ts.map +1 -0
  518. package/dist/types/utils/fieldValidation.d.ts +9 -0
  519. package/dist/types/utils/fieldValidation.d.ts.map +1 -0
  520. package/dist/types/version.d.ts +1 -1
  521. package/package.json +7 -7
  522. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  523. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  524. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  525. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  526. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  527. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  528. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  529. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  530. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  531. package/src/components/CollectionTable/CollectionTableWSRTable.tsx +10 -1
  532. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  533. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  534. package/src/components/CollectionToolbarFilters/CollectionToolbarFiltersState.ts +18 -7
  535. package/src/components/CollectionToolbarFilters/useFiltersSyncProps.ts +28 -5
  536. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  537. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  538. package/src/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.ts +2 -2
  539. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  540. package/src/components/EditableTable/EditableCell.st.css +8 -32
  541. package/src/components/EditableTable/EditableCell.st.css.ts +3 -3
  542. package/src/components/EditableTable/EditableCell.tsx +26 -10
  543. package/src/components/EditableTable/EditableCell.uni.driver.ts +2 -2
  544. package/src/components/EditableTable/EditableTable.tsx +0 -4
  545. package/src/components/EditableTable/EditableTableContextMenu.tsx +6 -1
  546. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  547. package/src/components/EditableTable/HeaderFieldActions.tsx +4 -5
  548. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  549. package/src/components/EditableTable/cellTypes/JsonInputEdit.st.css.ts +2 -2
  550. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  551. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  552. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  553. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  554. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  555. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  556. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  557. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  558. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  559. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  560. package/src/components/EditableTable/cellTypes/mediaImage/Edit.st.css +7 -0
  561. package/src/components/EditableTable/cellTypes/mediaImage/Edit.st.css.ts +25 -0
  562. package/src/components/EditableTable/cellTypes/mediaImage/Edit.tsx +12 -9
  563. package/src/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.ts +6 -0
  564. package/src/components/EditableTable/cellTypes/multiDocument/Edit.st.css +6 -0
  565. package/src/components/EditableTable/cellTypes/multiDocument/Edit.st.css.ts +25 -0
  566. package/src/components/EditableTable/cellTypes/multiDocument/Edit.tsx +13 -10
  567. package/src/components/EditableTable/cellTypes/multiReference/View.tsx +2 -1
  568. package/src/components/EditableTable/cellTypes/multiReference/index.ts +1 -0
  569. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  570. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  571. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  572. package/src/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.ts +2 -2
  573. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  574. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  575. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  576. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  577. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  578. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  579. package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
  580. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  581. package/src/components/EntityPageFields/EntityPageCustomField.tsx +2 -2
  582. package/src/components/EntityPageFields/EntityPageField.st.css.ts +2 -2
  583. package/src/components/Fade/Fade.st.css.ts +2 -2
  584. package/src/components/FieldActions/FieldActions.tsx +12 -4
  585. package/src/components/FieldActions/headerActionTypes.ts +2 -2
  586. package/src/components/FiltersPanel/FilterRevealAnchor.tsx +49 -0
  587. package/src/components/FiltersPanel/FiltersPanel.tsx +6 -8
  588. package/src/components/FiltersPanel/FiltersPanelState.ts +63 -0
  589. package/src/components/Heading/Heading.st.css.ts +2 -2
  590. package/src/components/ImportButton/ImportButtonModalLayout.tsx +10 -1
  591. package/src/components/ImportButton/ImportStepConfiguration.tsx +4 -1
  592. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  593. package/src/components/ImportButton/createImportFieldValidator.ts +20 -0
  594. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  595. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  596. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  597. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  598. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  599. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  600. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  601. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  602. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  603. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  604. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  605. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  606. package/src/components/SchemaSource/schemaFieldActions.ts +39 -10
  607. package/src/components/SchemaSource/schemaFieldManagement.ts +15 -0
  608. package/src/components/SchemaSource/tableSchemaSource.ts +3 -0
  609. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  610. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  611. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  612. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  613. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  614. package/src/components/Table/NumberCell.st.css.ts +2 -2
  615. package/src/components/TableFolders/TableFolders.uni.driver.ts +19 -0
  616. package/src/components/TableFolders/TableFoldersContent.tsx +27 -2
  617. package/src/components/TableFolders/buildFoldersMobileColumns.ts +37 -0
  618. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  619. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  620. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  621. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  622. package/src/components/common.st.css.ts +2 -2
  623. package/src/hooks/useBuildAccordionItems.tsx +78 -58
  624. package/src/hooks/useOptionalCachedState.ts +4 -1
  625. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  626. package/src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts +2 -2
  627. package/src/state/CollectionPage/TitleBadges.st.css.ts +2 -2
  628. package/src/state/CustomFields/CustomFieldsPanelState.ts +14 -1
  629. package/src/state/EditableTable/CellValueState.ts +5 -4
  630. package/src/state/EditableTable/types.ts +2 -5
  631. package/src/state/EditableTable/utils.ts +1 -75
  632. package/src/state/EntityPage/EntityPageState.ts +4 -0
  633. package/src/state/EntityPageFieldsCardState.ts +5 -1
  634. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  635. package/src/state/WixPatternsRouterState.ts +19 -1
  636. package/src/state/buildEditableFieldColumns.ts +2 -80
  637. package/src/styles.global.css +2 -2
  638. package/src/{components/CollectionTable → utils}/buildMobileColumns.tsx +46 -17
  639. package/src/utils/fieldValidation.ts +153 -0
  640. package/src/version.ts +1 -1
  641. package/dist/cjs/components/CollectionTable/buildMobileColumns.js.map +0 -1
  642. package/dist/cjs/components/CollectionTable/mobileColumnsUtils.js +0 -24
  643. package/dist/cjs/components/CollectionTable/mobileColumnsUtils.js.map +0 -1
  644. package/dist/esm/components/CollectionTable/buildMobileColumns.js.map +0 -1
  645. package/dist/esm/components/CollectionTable/mobileColumnsUtils.js +0 -15
  646. package/dist/esm/components/CollectionTable/mobileColumnsUtils.js.map +0 -1
  647. package/dist/types/components/CollectionTable/buildMobileColumns.d.ts +0 -4
  648. package/dist/types/components/CollectionTable/buildMobileColumns.d.ts.map +0 -1
  649. package/dist/types/components/CollectionTable/mobileColumnsUtils.d.ts +0 -17
  650. package/dist/types/components/CollectionTable/mobileColumnsUtils.d.ts.map +0 -1
  651. package/src/components/CollectionTable/mobileColumnsUtils.ts +0 -31
@@ -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":[]}
@@ -32,7 +32,10 @@ function useOptionalCachedState(createState, {
32
32
  } = {}) {
33
33
  const container = (0, _react2.useWixPatternsContainer)();
34
34
  const router = (0, _WixPatternsRouterProvider.useWixPatternsRouter)();
35
- const [maybeNewState] = (0, _react.useState)(() => createState());
35
+ const [maybeNewState] = (0, _react.useState)(() => {
36
+ router == null || router.dropCacheIfFieldsChanged();
37
+ return createState();
38
+ });
36
39
  const uniqueId = (0, _getCollectionComponentUniqueId.getCollectionComponentUniqueId)(maybeNewState);
37
40
  const [cachedState] = (0, _react.useState)(getCachedState({
38
41
  router,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_WixPatternsRouterProvider","_getCollectionComponentUniqueId","_bexCore","_useSyncCollectionOnEntityCreate","_useSyncCollectionOnEntityDelete","_useSyncCollectionOnEntityUpdate","_react2","getCachedState","shouldResetCache","uniqueId","router","container","resetCache","stateRefs","delete","queryCache","QueryCache","get","useOptionalCachedState","createState","getCollectionsToUpdate","useWixPatternsContainer","useWixPatternsRouter","maybeNewState","useState","getCollectionComponentUniqueId","cachedState","useSyncCollectionOnEntityCreate","useSyncCollectionOnEntityUpdate","useSyncCollectionOnEntityDelete","state","isUsingCache","saveState"],"sources":["../../../src/hooks/useOptionalCachedState.ts"],"sourcesContent":["import { useState } from 'react';\nimport { useWixPatternsRouter } from '../providers/WixPatternsRouterProvider';\nimport { ICollectionComponentState } from '../state/ICollectionComponentState';\nimport { getCollectionComponentUniqueId } from '../utils/getCollectionComponentUniqueId';\nimport {\n CollectionState,\n QueryCache,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { useSyncCollectionOnEntityCreate } from './useSyncCollectionOnEntityCreate';\nimport { useSyncCollectionOnEntityDelete } from './useSyncCollectionOnEntityDelete';\nimport { useSyncCollectionOnEntityUpdate } from './useSyncCollectionOnEntityUpdate';\nimport { WixPatternsRouterState } from '../state/WixPatternsRouterState';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\n\nexport interface IUseOptionalCachedStateOptions<\n S extends ICollectionComponentState,\n> {\n getCollectionsToUpdate?: (\n state: S,\n entity: any,\n ) => CollectionState<any>[] | null;\n shouldResetCache?: ({\n router,\n uniqueId,\n }: {\n router: WixPatternsRouterState | null;\n uniqueId: string;\n }) => boolean;\n}\n\nconst getCachedState = <S extends ICollectionComponentState>({\n shouldResetCache,\n uniqueId,\n router,\n container,\n}: {\n shouldResetCache?: ({\n router,\n uniqueId,\n }: {\n router: WixPatternsRouterState | null;\n uniqueId: string;\n }) => boolean;\n uniqueId: string;\n router: WixPatternsRouterState | null;\n container: WixPatternsContainer;\n}) => {\n const resetCache = shouldResetCache?.({\n router,\n uniqueId,\n });\n\n if (resetCache) {\n router?.stateRefs.delete(uniqueId);\n container.queryCache = new QueryCache();\n }\n return router?.stateRefs.get(uniqueId) as S | undefined;\n};\n\nexport function useOptionalCachedState<S extends ICollectionComponentState>(\n createState: () => S,\n {\n getCollectionsToUpdate,\n shouldResetCache,\n }: IUseOptionalCachedStateOptions<S> = {},\n): S {\n const container = useWixPatternsContainer();\n const router = useWixPatternsRouter();\n const [maybeNewState] = useState<S>(() => createState());\n const uniqueId = getCollectionComponentUniqueId(maybeNewState);\n\n const [cachedState] = useState<S | undefined>(\n getCachedState<S>({ router, uniqueId, shouldResetCache, container }),\n );\n\n useSyncCollectionOnEntityCreate(cachedState, getCollectionsToUpdate);\n useSyncCollectionOnEntityUpdate(cachedState, getCollectionsToUpdate);\n useSyncCollectionOnEntityDelete(cachedState, getCollectionsToUpdate);\n\n const [state] = useState<S>(() => {\n if (router) {\n router.isUsingCache = !!cachedState;\n }\n\n if (cachedState) {\n return cachedState;\n }\n\n router?.saveState<S>(maybeNewState);\n return maybeNewState;\n });\n\n return state;\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAEA,IAAAE,+BAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,gCAAA,GAAAJ,OAAA;AACA,IAAAK,gCAAA,GAAAL,OAAA;AACA,IAAAM,gCAAA,GAAAN,OAAA;AAEA,IAAAO,OAAA,GAAAP,OAAA;AAkBA,MAAMQ,cAAc,GAAGA,CAAsC;EAC3DC,gBAAgB;EAChBC,QAAQ;EACRC,MAAM;EACNC;AAYF,CAAC,KAAK;EACJ,MAAMC,UAAU,GAAGJ,gBAAgB,oBAAhBA,gBAAgB,CAAG;IACpCE,MAAM;IACND;EACF,CAAC,CAAC;EAEF,IAAIG,UAAU,EAAE;IACdF,MAAM,YAANA,MAAM,CAAEG,SAAS,CAACC,MAAM,CAACL,QAAQ,CAAC;IAClCE,SAAS,CAACI,UAAU,GAAG,IAAIC,mBAAU,CAAC,CAAC;EACzC;EACA,OAAON,MAAM,oBAANA,MAAM,CAAEG,SAAS,CAACI,GAAG,CAACR,QAAQ,CAAC;AACxC,CAAC;AAEM,SAASS,sBAAsBA,CACpCC,WAAoB,EACpB;EACEC,sBAAsB;EACtBZ;AACiC,CAAC,GAAG,CAAC,CAAC,EACtC;EACH,MAAMG,SAAS,GAAG,IAAAU,+BAAuB,EAAC,CAAC;EAC3C,MAAMX,MAAM,GAAG,IAAAY,+CAAoB,EAAC,CAAC;EACrC,MAAM,CAACC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAI,MAAML,WAAW,CAAC,CAAC,CAAC;EACxD,MAAMV,QAAQ,GAAG,IAAAgB,8DAA8B,EAACF,aAAa,CAAC;EAE9D,MAAM,CAACG,WAAW,CAAC,GAAG,IAAAF,eAAQ,EAC5BjB,cAAc,CAAI;IAAEG,MAAM;IAAED,QAAQ;IAAED,gBAAgB;IAAEG;EAAU,CAAC,CACrE,CAAC;EAED,IAAAgB,gEAA+B,EAACD,WAAW,EAAEN,sBAAsB,CAAC;EACpE,IAAAQ,gEAA+B,EAACF,WAAW,EAAEN,sBAAsB,CAAC;EACpE,IAAAS,gEAA+B,EAACH,WAAW,EAAEN,sBAAsB,CAAC;EAEpE,MAAM,CAACU,KAAK,CAAC,GAAG,IAAAN,eAAQ,EAAI,MAAM;IAChC,IAAId,MAAM,EAAE;MACVA,MAAM,CAACqB,YAAY,GAAG,CAAC,CAACL,WAAW;IACrC;IAEA,IAAIA,WAAW,EAAE;MACf,OAAOA,WAAW;IACpB;IAEAhB,MAAM,YAANA,MAAM,CAAEsB,SAAS,CAAIT,aAAa,CAAC;IACnC,OAAOA,aAAa;EACtB,CAAC,CAAC;EAEF,OAAOO,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_WixPatternsRouterProvider","_getCollectionComponentUniqueId","_bexCore","_useSyncCollectionOnEntityCreate","_useSyncCollectionOnEntityDelete","_useSyncCollectionOnEntityUpdate","_react2","getCachedState","shouldResetCache","uniqueId","router","container","resetCache","stateRefs","delete","queryCache","QueryCache","get","useOptionalCachedState","createState","getCollectionsToUpdate","useWixPatternsContainer","useWixPatternsRouter","maybeNewState","useState","dropCacheIfFieldsChanged","getCollectionComponentUniqueId","cachedState","useSyncCollectionOnEntityCreate","useSyncCollectionOnEntityUpdate","useSyncCollectionOnEntityDelete","state","isUsingCache","saveState"],"sources":["../../../src/hooks/useOptionalCachedState.ts"],"sourcesContent":["import { useState } from 'react';\nimport { useWixPatternsRouter } from '../providers/WixPatternsRouterProvider';\nimport { ICollectionComponentState } from '../state/ICollectionComponentState';\nimport { getCollectionComponentUniqueId } from '../utils/getCollectionComponentUniqueId';\nimport {\n CollectionState,\n QueryCache,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { useSyncCollectionOnEntityCreate } from './useSyncCollectionOnEntityCreate';\nimport { useSyncCollectionOnEntityDelete } from './useSyncCollectionOnEntityDelete';\nimport { useSyncCollectionOnEntityUpdate } from './useSyncCollectionOnEntityUpdate';\nimport { WixPatternsRouterState } from '../state/WixPatternsRouterState';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\n\nexport interface IUseOptionalCachedStateOptions<\n S extends ICollectionComponentState,\n> {\n getCollectionsToUpdate?: (\n state: S,\n entity: any,\n ) => CollectionState<any>[] | null;\n shouldResetCache?: ({\n router,\n uniqueId,\n }: {\n router: WixPatternsRouterState | null;\n uniqueId: string;\n }) => boolean;\n}\n\nconst getCachedState = <S extends ICollectionComponentState>({\n shouldResetCache,\n uniqueId,\n router,\n container,\n}: {\n shouldResetCache?: ({\n router,\n uniqueId,\n }: {\n router: WixPatternsRouterState | null;\n uniqueId: string;\n }) => boolean;\n uniqueId: string;\n router: WixPatternsRouterState | null;\n container: WixPatternsContainer;\n}) => {\n const resetCache = shouldResetCache?.({\n router,\n uniqueId,\n });\n\n if (resetCache) {\n router?.stateRefs.delete(uniqueId);\n container.queryCache = new QueryCache();\n }\n return router?.stateRefs.get(uniqueId) as S | undefined;\n};\n\nexport function useOptionalCachedState<S extends ICollectionComponentState>(\n createState: () => S,\n {\n getCollectionsToUpdate,\n shouldResetCache,\n }: IUseOptionalCachedStateOptions<S> = {},\n): S {\n const container = useWixPatternsContainer();\n const router = useWixPatternsRouter();\n const [maybeNewState] = useState<S>(() => {\n router?.dropCacheIfFieldsChanged();\n return createState();\n });\n const uniqueId = getCollectionComponentUniqueId(maybeNewState);\n\n const [cachedState] = useState<S | undefined>(\n getCachedState<S>({ router, uniqueId, shouldResetCache, container }),\n );\n\n useSyncCollectionOnEntityCreate(cachedState, getCollectionsToUpdate);\n useSyncCollectionOnEntityUpdate(cachedState, getCollectionsToUpdate);\n useSyncCollectionOnEntityDelete(cachedState, getCollectionsToUpdate);\n\n const [state] = useState<S>(() => {\n if (router) {\n router.isUsingCache = !!cachedState;\n }\n\n if (cachedState) {\n return cachedState;\n }\n\n router?.saveState<S>(maybeNewState);\n return maybeNewState;\n });\n\n return state;\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAEA,IAAAE,+BAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,gCAAA,GAAAJ,OAAA;AACA,IAAAK,gCAAA,GAAAL,OAAA;AACA,IAAAM,gCAAA,GAAAN,OAAA;AAEA,IAAAO,OAAA,GAAAP,OAAA;AAkBA,MAAMQ,cAAc,GAAGA,CAAsC;EAC3DC,gBAAgB;EAChBC,QAAQ;EACRC,MAAM;EACNC;AAYF,CAAC,KAAK;EACJ,MAAMC,UAAU,GAAGJ,gBAAgB,oBAAhBA,gBAAgB,CAAG;IACpCE,MAAM;IACND;EACF,CAAC,CAAC;EAEF,IAAIG,UAAU,EAAE;IACdF,MAAM,YAANA,MAAM,CAAEG,SAAS,CAACC,MAAM,CAACL,QAAQ,CAAC;IAClCE,SAAS,CAACI,UAAU,GAAG,IAAIC,mBAAU,CAAC,CAAC;EACzC;EACA,OAAON,MAAM,oBAANA,MAAM,CAAEG,SAAS,CAACI,GAAG,CAACR,QAAQ,CAAC;AACxC,CAAC;AAEM,SAASS,sBAAsBA,CACpCC,WAAoB,EACpB;EACEC,sBAAsB;EACtBZ;AACiC,CAAC,GAAG,CAAC,CAAC,EACtC;EACH,MAAMG,SAAS,GAAG,IAAAU,+BAAuB,EAAC,CAAC;EAC3C,MAAMX,MAAM,GAAG,IAAAY,+CAAoB,EAAC,CAAC;EACrC,MAAM,CAACC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAI,MAAM;IACxCd,MAAM,YAANA,MAAM,CAAEe,wBAAwB,CAAC,CAAC;IAClC,OAAON,WAAW,CAAC,CAAC;EACtB,CAAC,CAAC;EACF,MAAMV,QAAQ,GAAG,IAAAiB,8DAA8B,EAACH,aAAa,CAAC;EAE9D,MAAM,CAACI,WAAW,CAAC,GAAG,IAAAH,eAAQ,EAC5BjB,cAAc,CAAI;IAAEG,MAAM;IAAED,QAAQ;IAAED,gBAAgB;IAAEG;EAAU,CAAC,CACrE,CAAC;EAED,IAAAiB,gEAA+B,EAACD,WAAW,EAAEP,sBAAsB,CAAC;EACpE,IAAAS,gEAA+B,EAACF,WAAW,EAAEP,sBAAsB,CAAC;EACpE,IAAAU,gEAA+B,EAACH,WAAW,EAAEP,sBAAsB,CAAC;EAEpE,MAAM,CAACW,KAAK,CAAC,GAAG,IAAAP,eAAQ,EAAI,MAAM;IAChC,IAAId,MAAM,EAAE;MACVA,MAAM,CAACsB,YAAY,GAAG,CAAC,CAACL,WAAW;IACrC;IAEA,IAAIA,WAAW,EAAE;MACf,OAAOA,WAAW;IACpB;IAEAjB,MAAM,YAANA,MAAM,CAAEuB,SAAS,CAAIV,aAAa,CAAC;IACnC,OAAOA,aAAa;EACtB,CAAC,CAAC;EAEF,OAAOQ,KAAK;AACd","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_ = "CollectionPageHeader3311006848";
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": "CollectionPageHeader3311006848__root",
16
+ "mobileMoreActions": "CollectionPageHeader3311006848__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_ = \"CollectionPageHeader3311006848\";\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\":\"CollectionPageHeader3311006848__root\",\"mobileMoreActions\":\"CollectionPageHeader3311006848__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_ = "MobilePrimaryActionBar4227138949";
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": "MobilePrimaryActionBar4227138949__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_ = \"MobilePrimaryActionBar4227138949\";\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\":\"MobilePrimaryActionBar4227138949__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":[]}
@@ -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_ = "TitleBadges3914608263";
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": "TitleBadges3914608263__root",
16
+ "tooltip": "TitleBadges3914608263__tooltip",
17
+ "tooltipTrigger": "TitleBadges3914608263__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_ = \"TitleBadges3914608263\";\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\":\"TitleBadges3914608263__root\",\"tooltip\":\"TitleBadges3914608263__tooltip\",\"tooltipTrigger\":\"TitleBadges3914608263__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":[]}
@@ -77,6 +77,11 @@ class CustomFieldsPanelState {
77
77
  get archive() {
78
78
  return this.fieldsSource.archive;
79
79
  }
80
+ getFieldTypeLocks(fieldId) {
81
+ var _resolveFieldTypeDefi;
82
+ const field = fieldId ? this.fieldsSource.fields.find(candidate => candidate.id === fieldId) : undefined;
83
+ return field ? ((_resolveFieldTypeDefi = (0, _bexCore.resolveFieldTypeDefinition)(this.fieldsSource, field)) == null || (_resolveFieldTypeDefi = _resolveFieldTypeDefi.fieldModal) == null ? void 0 : _resolveFieldTypeDefi.lockedProperties) ?? [] : [];
84
+ }
80
85
  openCustomFieldModal(params) {
81
86
  const {
82
87
  customFieldModal
@@ -88,7 +93,8 @@ class CustomFieldsPanelState {
88
93
  customFieldModal.mode = params.fieldId ? 'edit' : 'new';
89
94
  customFieldModal.origin = params.origin;
90
95
  customFieldModal.customOrigin = params.customOrigin;
91
- customFieldModal.lockedProperties = params.lockedProperties ?? [];
96
+ const typeLocks = this.getFieldTypeLocks(params.fieldId);
97
+ customFieldModal.lockedProperties = [...new Set([...typeLocks, ...(params.lockedProperties ?? [])])];
92
98
  customFieldModal.onSave = params.onSave;
93
99
  !params.fieldId && customFieldModalBiReporter.reportAddCustomField({
94
100
  origin: params.origin,
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","_fieldTypeActions","CustomFieldsPanelState","constructor","params","_defineProperty2","default","reportBi","closeSidePanel","fieldsSource","container","archive","archiveFieldModal","ArchiveFieldModalState","archiver","customFieldModal","CustomFieldModalState","fieldManagement","fieldCount","manageableFields","length","deleteFieldModal","DeleteFieldModalState","deleteField","id","origin","items","closePanel","undefined","sourceMenu","createFieldActionsMenu","fieldActionsMenu","args","config","field","fields","find","f","fieldId","definition","resolveFieldTypeDefinition","extras","buildFieldTypeActionGroup","mergeFieldTypeActions","makeAutoObservable","openCustomFieldModal","customFieldModalBiReporter","reset","mode","customOrigin","lockedProperties","onSave","reportAddCustomField","formSnapshot","setDefaultPermissions","_this$fieldsSource$fi","formValues","getFieldDraft","setFormValues","disablePermissionCheckboxes","applyInitialField","initialField","modalState","modal","open","exports"],"sources":["../../../../src/state/CustomFields/CustomFieldsPanelState.ts"],"sourcesContent":["import {\n ArchiveFieldModalState,\n CustomFieldModalState,\n CustomFieldOrigin,\n DeleteFieldModalState,\n FieldsSource,\n OpenFieldModalOptions,\n ReportBI,\n WixPatternsContainer,\n resolveFieldTypeDefinition,\n} from '@wix/bex-core';\nimport { makeAutoObservable } from 'mobx';\nimport type { FieldActionsMenuConfig } from '../../components/FieldActions';\nimport {\n buildFieldTypeActionGroup,\n mergeFieldTypeActions,\n} from '../../components/FieldActions/fieldTypeActions';\n\n/** Builds the per-field action popover (edit / archive / delete …) for a field. */\nexport type FieldActionsMenuBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionsMenuConfig | null;\n\nexport interface CustomFieldsPanelStateParams {\n readonly reportBi: ReportBI;\n readonly closeSidePanel: () => unknown;\n readonly fieldsSource: FieldsSource;\n readonly container: WixPatternsContainer;\n /**\n * The source's per-field menu, as a factory over the panel it belongs to (its\n * handlers call back into this panel's modals). Built once in the constructor.\n */\n readonly createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n}\n\nexport class CustomFieldsPanelState {\n readonly reportBi;\n readonly closeSidePanel;\n readonly fieldsSource;\n readonly container;\n readonly customFieldModal;\n readonly archiveFieldModal?: ArchiveFieldModalState;\n readonly deleteFieldModal: DeleteFieldModalState;\n /** The per-field action popover. The source supplies it; CustomFieldItem reads it. */\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n\n constructor(params: CustomFieldsPanelStateParams) {\n this.reportBi = params.reportBi;\n this.closeSidePanel = params.closeSidePanel;\n this.fieldsSource = params.fieldsSource;\n this.container = params.container;\n\n if (params.fieldsSource.archive) {\n this.archiveFieldModal = new ArchiveFieldModalState({\n reportBi: this.reportBi,\n archiver: params.fieldsSource.archive,\n });\n }\n this.customFieldModal = new CustomFieldModalState({\n reportBi: this.reportBi,\n fieldManagement: params.fieldsSource.fieldManagement!,\n container: params.container,\n fieldCount: () => params.fieldsSource.manageableFields.length,\n });\n // The delete runs through the source's own deleteField (which reports its\n // own toast) and reconciles the archived-items list when archiving exists.\n this.deleteFieldModal = new DeleteFieldModalState({\n reportBi: this.reportBi,\n fieldManagement: {\n deleteField: (id, origin) =>\n params.fieldsSource.fieldManagement!.deleteField(id, origin),\n },\n archive: params.fieldsSource.archive ?? {\n items: [],\n closePanel: () => undefined,\n },\n });\n // A custom field type's extra actions render on every surface's menu, so\n // they're appended here — after the source built its own menu — rather\n // than inside each source's builder.\n const sourceMenu = params.createFieldActionsMenu(this);\n this.fieldActionsMenu = (args) => {\n const config = sourceMenu(args);\n const field = this.fieldsSource.fields.find((f) => f.id === args.fieldId);\n const definition = field\n ? resolveFieldTypeDefinition(this.fieldsSource, field)\n : undefined;\n const extras =\n field && definition\n ? buildFieldTypeActionGroup({ field, definition })\n : [];\n return mergeFieldTypeActions(config, extras);\n };\n makeAutoObservable(this, {\n // A function that builds (doesn't mutate) the popover — not an action. It's\n // set once here and never reassigned, so it needn't be observable either.\n fieldActionsMenu: false,\n });\n }\n\n get fieldManagement() {\n return this.fieldsSource.fieldManagement;\n }\n get manageableFields() {\n return this.fieldsSource.manageableFields;\n }\n get archive() {\n return this.fieldsSource.archive;\n }\n\n openCustomFieldModal(\n params: Omit<OpenFieldModalOptions, 'origin'> & {\n origin: CustomFieldOrigin;\n },\n ) {\n const { customFieldModal } = this;\n const { customFieldModalBiReporter } = customFieldModal;\n\n customFieldModal.reset();\n customFieldModal.mode = params.fieldId ? 'edit' : 'new';\n customFieldModal.origin = params.origin;\n customFieldModal.customOrigin = params.customOrigin;\n customFieldModal.lockedProperties = params.lockedProperties ?? [];\n customFieldModal.onSave = params.onSave;\n\n !params.fieldId &&\n customFieldModalBiReporter.reportAddCustomField({\n origin: params.origin,\n customOrigin: params.customOrigin,\n });\n\n customFieldModalBiReporter.formSnapshot = null;\n customFieldModal.setDefaultPermissions();\n\n if (params.fieldId) {\n const formValues = this.fieldsSource.fieldManagement?.getFieldDraft(\n params.fieldId,\n );\n if (!formValues) {\n return;\n }\n customFieldModal.setFormValues(formValues, {\n disablePermissionCheckboxes: true,\n });\n customFieldModalBiReporter.formSnapshot = formValues;\n } else {\n customFieldModal.applyInitialField(params.initialField);\n }\n\n customFieldModal.modalState.modal.open();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","_fieldTypeActions","CustomFieldsPanelState","constructor","params","_defineProperty2","default","reportBi","closeSidePanel","fieldsSource","container","archive","archiveFieldModal","ArchiveFieldModalState","archiver","customFieldModal","CustomFieldModalState","fieldManagement","fieldCount","manageableFields","length","deleteFieldModal","DeleteFieldModalState","deleteField","id","origin","items","closePanel","undefined","sourceMenu","createFieldActionsMenu","fieldActionsMenu","args","config","field","fields","find","f","fieldId","definition","resolveFieldTypeDefinition","extras","buildFieldTypeActionGroup","mergeFieldTypeActions","makeAutoObservable","getFieldTypeLocks","_resolveFieldTypeDefi","candidate","fieldModal","lockedProperties","openCustomFieldModal","customFieldModalBiReporter","reset","mode","customOrigin","typeLocks","Set","onSave","reportAddCustomField","formSnapshot","setDefaultPermissions","_this$fieldsSource$fi","formValues","getFieldDraft","setFormValues","disablePermissionCheckboxes","applyInitialField","initialField","modalState","modal","open","exports"],"sources":["../../../../src/state/CustomFields/CustomFieldsPanelState.ts"],"sourcesContent":["import {\n ArchiveFieldModalState,\n CustomFieldModalState,\n CustomFieldOrigin,\n DeleteFieldModalState,\n FieldsSource,\n OpenFieldModalOptions,\n ReportBI,\n WixPatternsContainer,\n resolveFieldTypeDefinition,\n} from '@wix/bex-core';\nimport { makeAutoObservable } from 'mobx';\nimport type { FieldActionsMenuConfig } from '../../components/FieldActions';\nimport {\n buildFieldTypeActionGroup,\n mergeFieldTypeActions,\n} from '../../components/FieldActions/fieldTypeActions';\n\n/** Builds the per-field action popover (edit / archive / delete …) for a field. */\nexport type FieldActionsMenuBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionsMenuConfig | null;\n\nexport interface CustomFieldsPanelStateParams {\n readonly reportBi: ReportBI;\n readonly closeSidePanel: () => unknown;\n readonly fieldsSource: FieldsSource;\n readonly container: WixPatternsContainer;\n /**\n * The source's per-field menu, as a factory over the panel it belongs to (its\n * handlers call back into this panel's modals). Built once in the constructor.\n */\n readonly createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n}\n\nexport class CustomFieldsPanelState {\n readonly reportBi;\n readonly closeSidePanel;\n readonly fieldsSource;\n readonly container;\n readonly customFieldModal;\n readonly archiveFieldModal?: ArchiveFieldModalState;\n readonly deleteFieldModal: DeleteFieldModalState;\n /** The per-field action popover. The source supplies it; CustomFieldItem reads it. */\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n\n constructor(params: CustomFieldsPanelStateParams) {\n this.reportBi = params.reportBi;\n this.closeSidePanel = params.closeSidePanel;\n this.fieldsSource = params.fieldsSource;\n this.container = params.container;\n\n if (params.fieldsSource.archive) {\n this.archiveFieldModal = new ArchiveFieldModalState({\n reportBi: this.reportBi,\n archiver: params.fieldsSource.archive,\n });\n }\n this.customFieldModal = new CustomFieldModalState({\n reportBi: this.reportBi,\n fieldManagement: params.fieldsSource.fieldManagement!,\n container: params.container,\n fieldCount: () => params.fieldsSource.manageableFields.length,\n });\n // The delete runs through the source's own deleteField (which reports its\n // own toast) and reconciles the archived-items list when archiving exists.\n this.deleteFieldModal = new DeleteFieldModalState({\n reportBi: this.reportBi,\n fieldManagement: {\n deleteField: (id, origin) =>\n params.fieldsSource.fieldManagement!.deleteField(id, origin),\n },\n archive: params.fieldsSource.archive ?? {\n items: [],\n closePanel: () => undefined,\n },\n });\n // A custom field type's extra actions render on every surface's menu, so\n // they're appended here — after the source built its own menu — rather\n // than inside each source's builder.\n const sourceMenu = params.createFieldActionsMenu(this);\n this.fieldActionsMenu = (args) => {\n const config = sourceMenu(args);\n const field = this.fieldsSource.fields.find((f) => f.id === args.fieldId);\n const definition = field\n ? resolveFieldTypeDefinition(this.fieldsSource, field)\n : undefined;\n const extras =\n field && definition\n ? buildFieldTypeActionGroup({ field, definition })\n : [];\n return mergeFieldTypeActions(config, extras);\n };\n makeAutoObservable(this, {\n // A function that builds (doesn't mutate) the popover — not an action. It's\n // set once here and never reassigned, so it needn't be observable either.\n fieldActionsMenu: false,\n });\n }\n\n get fieldManagement() {\n return this.fieldsSource.fieldManagement;\n }\n get manageableFields() {\n return this.fieldsSource.manageableFields;\n }\n get archive() {\n return this.fieldsSource.archive;\n }\n\n private getFieldTypeLocks(fieldId?: string) {\n const field = fieldId\n ? this.fieldsSource.fields.find((candidate) => candidate.id === fieldId)\n : undefined;\n return field\n ? resolveFieldTypeDefinition(this.fieldsSource, field)?.fieldModal\n ?.lockedProperties ?? []\n : [];\n }\n\n openCustomFieldModal(\n params: Omit<OpenFieldModalOptions, 'origin'> & {\n origin: CustomFieldOrigin;\n },\n ) {\n const { customFieldModal } = this;\n const { customFieldModalBiReporter } = customFieldModal;\n\n customFieldModal.reset();\n customFieldModal.mode = params.fieldId ? 'edit' : 'new';\n customFieldModal.origin = params.origin;\n customFieldModal.customOrigin = params.customOrigin;\n const typeLocks = this.getFieldTypeLocks(params.fieldId);\n customFieldModal.lockedProperties = [\n ...new Set([...typeLocks, ...(params.lockedProperties ?? [])]),\n ];\n customFieldModal.onSave = params.onSave;\n\n !params.fieldId &&\n customFieldModalBiReporter.reportAddCustomField({\n origin: params.origin,\n customOrigin: params.customOrigin,\n });\n\n customFieldModalBiReporter.formSnapshot = null;\n customFieldModal.setDefaultPermissions();\n\n if (params.fieldId) {\n const formValues = this.fieldsSource.fieldManagement?.getFieldDraft(\n params.fieldId,\n );\n if (!formValues) {\n return;\n }\n customFieldModal.setFormValues(formValues, {\n disablePermissionCheckboxes: true,\n });\n customFieldModalBiReporter.formSnapshot = formValues;\n } else {\n customFieldModal.applyInitialField(params.initialField);\n }\n\n customFieldModal.modalState.modal.open();\n }\n}\n"],"mappings":"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","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":"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","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":[]}