@wix/patterns 1.408.0 → 1.410.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 (444) 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/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
  10. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  11. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  12. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  14. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  16. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.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/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  26. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  29. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  30. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  31. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  32. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  33. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  34. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  35. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  36. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.js +104 -0
  38. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.js.map +1 -0
  39. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css +22 -0
  40. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +23 -0
  41. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -0
  42. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.uni.driver.js +39 -0
  43. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.uni.driver.js.map +1 -0
  44. package/dist/cjs/components/EditableTable/cellTypes/address/View.js +29 -0
  45. package/dist/cjs/components/EditableTable/cellTypes/address/View.js.map +1 -0
  46. package/dist/cjs/components/EditableTable/cellTypes/address/View.uni.driver.js +13 -0
  47. package/dist/cjs/components/EditableTable/cellTypes/address/View.uni.driver.js.map +1 -0
  48. package/dist/cjs/components/EditableTable/cellTypes/address/index.js +78 -0
  49. package/dist/cjs/components/EditableTable/cellTypes/address/index.js.map +1 -0
  50. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  51. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  52. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  53. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  54. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  55. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  56. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  57. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  58. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  59. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  60. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  61. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  62. package/dist/cjs/components/EditableTable/cellTypes/index.js +3 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/index.js.map +1 -1
  64. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  65. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  66. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  67. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  68. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  69. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  70. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  71. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  72. package/dist/cjs/components/EditableTable/cellTypes/reference/Edit.js +9 -5
  73. package/dist/cjs/components/EditableTable/cellTypes/reference/Edit.js.map +1 -1
  74. package/dist/cjs/components/EditableTable/cellTypes/reference/types.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  76. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  78. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  79. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  80. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  81. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  82. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  83. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  84. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  85. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  86. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  87. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  88. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  89. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  90. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  91. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  92. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  93. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  94. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  95. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  96. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  97. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  98. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  99. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  100. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  101. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  102. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  103. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  104. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  105. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  106. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  107. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  108. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  109. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  110. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  111. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  112. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  113. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  114. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  115. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  116. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  117. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  118. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  119. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  120. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  121. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  122. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  123. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  124. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  125. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  126. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  127. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  128. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  129. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  130. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  131. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  132. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  133. package/dist/cjs/components/common.st.css.js +4 -4
  134. package/dist/cjs/components/common.st.css.js.map +1 -1
  135. package/dist/cjs/hooks/useCollectionTableResize.js +1 -2
  136. package/dist/cjs/hooks/useCollectionTableResize.js.map +1 -1
  137. package/dist/cjs/hooks/useIsMobile.js +1 -9
  138. package/dist/cjs/hooks/useIsMobile.js.map +1 -1
  139. package/dist/cjs/model/view.js +11 -1
  140. package/dist/cjs/model/view.js.map +1 -1
  141. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  142. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  143. package/dist/cjs/state/CollectionViewsQueryCompareHelper.js +3 -2
  144. package/dist/cjs/state/CollectionViewsQueryCompareHelper.js.map +1 -1
  145. package/dist/cjs/state/CollectionViewsState.js +22 -4
  146. package/dist/cjs/state/CollectionViewsState.js.map +1 -1
  147. package/dist/cjs/state/ColumnSizesState.js +1 -11
  148. package/dist/cjs/state/ColumnSizesState.js.map +1 -1
  149. package/dist/cjs/state/CustomColumnsHistoryState.js +40 -3
  150. package/dist/cjs/state/CustomColumnsHistoryState.js.map +1 -1
  151. package/dist/cjs/state/CustomColumnsState.js +29 -5
  152. package/dist/cjs/state/CustomColumnsState.js.map +1 -1
  153. package/dist/cjs/state/EditableTable/types.js.map +1 -1
  154. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  155. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  156. package/dist/cjs/state/ViewsState.js +2 -0
  157. package/dist/cjs/state/ViewsState.js.map +1 -1
  158. package/dist/cjs/styles.global.css +2 -2
  159. package/dist/cjs/version.js +1 -1
  160. package/dist/cjs/version.js.map +1 -1
  161. package/dist/docs/Table.md +4 -2
  162. package/dist/docs/View.md +3 -1
  163. package/dist/docs/index.json +27 -27
  164. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  165. package/dist/esm/components/CardContainer/CardContainer.st.css.js.map +1 -1
  166. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  167. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  168. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  169. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  170. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  171. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
  172. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  173. package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
  174. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  175. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  176. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  177. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  178. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  179. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  180. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  181. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  182. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  183. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  184. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  185. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  186. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  187. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  188. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  189. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  190. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  191. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  192. package/dist/esm/components/EditableTable/cellTypes/address/Edit.js +40 -0
  193. package/dist/esm/components/EditableTable/cellTypes/address/Edit.js.map +1 -0
  194. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css +22 -0
  195. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +15 -0
  196. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -0
  197. package/dist/esm/components/EditableTable/cellTypes/address/Edit.uni.driver.js +35 -0
  198. package/dist/esm/components/EditableTable/cellTypes/address/Edit.uni.driver.js.map +1 -0
  199. package/dist/esm/components/EditableTable/cellTypes/address/View.js +6 -0
  200. package/dist/esm/components/EditableTable/cellTypes/address/View.js.map +1 -0
  201. package/dist/esm/components/EditableTable/cellTypes/address/View.uni.driver.js +9 -0
  202. package/dist/esm/components/EditableTable/cellTypes/address/View.uni.driver.js.map +1 -0
  203. package/dist/esm/components/EditableTable/cellTypes/address/index.js +48 -0
  204. package/dist/esm/components/EditableTable/cellTypes/address/index.js.map +1 -0
  205. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  206. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  207. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  208. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  209. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  210. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  211. package/dist/esm/components/EditableTable/cellTypes/index.js +3 -1
  212. package/dist/esm/components/EditableTable/cellTypes/index.js.map +1 -1
  213. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  214. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  215. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  216. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  217. package/dist/esm/components/EditableTable/cellTypes/reference/Edit.js +5 -1
  218. package/dist/esm/components/EditableTable/cellTypes/reference/Edit.js.map +1 -1
  219. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  220. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  221. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  222. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  223. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  224. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  225. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  226. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  227. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  228. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  229. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  230. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  231. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  232. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  233. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  234. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  235. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  236. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  237. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  238. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  239. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  240. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  241. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  242. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  243. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  244. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  245. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  246. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  247. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  248. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  249. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  250. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  251. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  252. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  253. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  254. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  255. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  256. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  257. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  258. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  259. package/dist/esm/components/common.st.css.js +2 -2
  260. package/dist/esm/components/common.st.css.js.map +1 -1
  261. package/dist/esm/hooks/useCollectionTableResize.js +1 -3
  262. package/dist/esm/hooks/useCollectionTableResize.js.map +1 -1
  263. package/dist/esm/hooks/useIsMobile.js +1 -8
  264. package/dist/esm/hooks/useIsMobile.js.map +1 -1
  265. package/dist/esm/model/view.js +11 -0
  266. package/dist/esm/model/view.js.map +1 -1
  267. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  268. package/dist/esm/state/CollectionViewsQueryCompareHelper.js +2 -1
  269. package/dist/esm/state/CollectionViewsQueryCompareHelper.js.map +1 -1
  270. package/dist/esm/state/CollectionViewsState.js +21 -4
  271. package/dist/esm/state/CollectionViewsState.js.map +1 -1
  272. package/dist/esm/state/ColumnSizesState.js +0 -9
  273. package/dist/esm/state/ColumnSizesState.js.map +1 -1
  274. package/dist/esm/state/CustomColumnsHistoryState.js +40 -5
  275. package/dist/esm/state/CustomColumnsHistoryState.js.map +1 -1
  276. package/dist/esm/state/CustomColumnsState.js +26 -3
  277. package/dist/esm/state/CustomColumnsState.js.map +1 -1
  278. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  279. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  280. package/dist/esm/state/ViewsState.js +2 -0
  281. package/dist/esm/state/ViewsState.js.map +1 -1
  282. package/dist/esm/styles.global.css +2 -2
  283. package/dist/esm/version.js +1 -1
  284. package/dist/types/components/CardContainer/CardContainer.st.css.d.ts.map +1 -1
  285. package/dist/types/components/CmsFieldManagement/CmsFieldModal.st.css.d.ts.map +1 -1
  286. package/dist/types/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.d.ts.map +1 -1
  287. package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
  288. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
  289. package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
  290. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +24 -24
  291. package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts.map +1 -1
  292. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  293. package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +11 -11
  294. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  295. package/dist/types/components/CustomFieldModal/CustomFieldModal.uni.driver.d.ts +2 -2
  296. package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.uni.driver.d.ts +3 -3
  297. package/dist/types/components/DropdownFilter/CollectionDropdownFilter.uni.driver.d.ts +1 -1
  298. package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
  299. package/dist/types/components/EditableTable/cellTypes/address/Edit.d.ts +18 -0
  300. package/dist/types/components/EditableTable/cellTypes/address/Edit.d.ts.map +1 -0
  301. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts +14 -0
  302. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -0
  303. package/dist/types/components/EditableTable/cellTypes/address/Edit.uni.driver.d.ts +21 -0
  304. package/dist/types/components/EditableTable/cellTypes/address/Edit.uni.driver.d.ts.map +1 -0
  305. package/dist/types/components/EditableTable/cellTypes/address/View.d.ts +5 -0
  306. package/dist/types/components/EditableTable/cellTypes/address/View.d.ts.map +1 -0
  307. package/dist/types/components/EditableTable/cellTypes/address/View.uni.driver.d.ts +16 -0
  308. package/dist/types/components/EditableTable/cellTypes/address/View.uni.driver.d.ts.map +1 -0
  309. package/dist/types/components/EditableTable/cellTypes/address/index.d.ts +5 -0
  310. package/dist/types/components/EditableTable/cellTypes/address/index.d.ts.map +1 -0
  311. package/dist/types/components/EditableTable/cellTypes/index.d.ts +2 -1
  312. package/dist/types/components/EditableTable/cellTypes/index.d.ts.map +1 -1
  313. package/dist/types/components/EditableTable/cellTypes/reference/Edit.d.ts.map +1 -1
  314. package/dist/types/components/EditableTable/cellTypes/reference/types.d.ts +4 -2
  315. package/dist/types/components/EditableTable/cellTypes/reference/types.d.ts.map +1 -1
  316. package/dist/types/components/EditableTable/cellTypes/select/Edit.st.css.d.ts.map +1 -1
  317. package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
  318. package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
  319. package/dist/types/components/FiltersPanel/FiltersPanel.uni.driver.d.ts +4 -4
  320. package/dist/types/components/Grid/Grid.uni.driver.d.ts +13 -13
  321. package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +38 -38
  322. package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +13 -13
  323. package/dist/types/components/ImportButton/ImportStepUpload.st.css.d.ts.map +1 -1
  324. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  325. package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +11 -11
  326. package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts +39 -39
  327. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  328. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  329. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +37 -37
  330. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  331. package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
  332. package/dist/types/components/SummaryBar/SummaryBar.uni.driver.d.ts +1 -1
  333. package/dist/types/components/Table/Table.uni.driver.d.ts +26 -26
  334. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +37 -37
  335. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +40 -40
  336. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  337. package/dist/types/components/TabsFilter/TabsFilter.uni.driver.d.ts +1 -1
  338. package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
  339. package/dist/types/components/common.st.css.d.ts.map +1 -1
  340. package/dist/types/hooks/useCollectionTableResize.d.ts.map +1 -1
  341. package/dist/types/hooks/useIsMobile.d.ts +1 -1
  342. package/dist/types/hooks/useIsMobile.d.ts.map +1 -1
  343. package/dist/types/model/view.d.ts +13 -1
  344. package/dist/types/model/view.d.ts.map +1 -1
  345. package/dist/types/state/CollectionViewsQueryCompareHelper.d.ts.map +1 -1
  346. package/dist/types/state/CollectionViewsState.d.ts.map +1 -1
  347. package/dist/types/state/ColumnSizesState.d.ts +0 -1
  348. package/dist/types/state/ColumnSizesState.d.ts.map +1 -1
  349. package/dist/types/state/CustomColumnsHistoryState.d.ts +2 -1
  350. package/dist/types/state/CustomColumnsHistoryState.d.ts.map +1 -1
  351. package/dist/types/state/CustomColumnsState.d.ts +2 -0
  352. package/dist/types/state/CustomColumnsState.d.ts.map +1 -1
  353. package/dist/types/state/EditableTable/types.d.ts +2 -0
  354. package/dist/types/state/EditableTable/types.d.ts.map +1 -1
  355. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  356. package/dist/types/state/ViewsState.d.ts.map +1 -1
  357. package/dist/types/testkit/enzyme.d.ts +194 -194
  358. package/dist/types/testkit/jsdom.d.ts +246 -246
  359. package/dist/types/testkit/playwright.d.ts +194 -194
  360. package/dist/types/testkit/puppeteer.d.ts +205 -205
  361. package/dist/types/version.d.ts +1 -1
  362. package/package.json +6 -6
  363. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  364. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  365. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  366. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  367. package/src/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
  368. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  369. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  370. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  371. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  372. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  373. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  374. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  375. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  376. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  377. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  378. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  379. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  380. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  381. package/src/components/EditableTable/cellTypes/address/Edit.st.css +22 -0
  382. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +25 -0
  383. package/src/components/EditableTable/cellTypes/address/Edit.tsx +96 -0
  384. package/src/components/EditableTable/cellTypes/address/Edit.uni.driver.ts +38 -0
  385. package/src/components/EditableTable/cellTypes/address/View.tsx +13 -0
  386. package/src/components/EditableTable/cellTypes/address/View.uni.driver.ts +10 -0
  387. package/src/components/EditableTable/cellTypes/address/index.tsx +65 -0
  388. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  389. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  390. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  391. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  392. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  393. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  394. package/src/components/EditableTable/cellTypes/index.ts +3 -0
  395. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  396. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  397. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  398. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  399. package/src/components/EditableTable/cellTypes/reference/Edit.tsx +10 -1
  400. package/src/components/EditableTable/cellTypes/reference/types.ts +4 -2
  401. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  402. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  403. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  404. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  405. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  406. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  407. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  408. package/src/components/Fade/Fade.st.css.ts +2 -2
  409. package/src/components/Heading/Heading.st.css.ts +2 -2
  410. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  411. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  412. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  413. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  414. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  415. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  416. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  417. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  418. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  419. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  420. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  421. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  422. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  423. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  424. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  425. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  426. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  427. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  428. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  429. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  430. package/src/components/common.st.css.ts +2 -2
  431. package/src/hooks/useCollectionTableResize.ts +1 -4
  432. package/src/hooks/useIsMobile.ts +1 -10
  433. package/src/model/view.ts +31 -1
  434. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  435. package/src/state/CollectionViewsQueryCompareHelper.ts +2 -1
  436. package/src/state/CollectionViewsState.ts +26 -4
  437. package/src/state/ColumnSizesState.ts +0 -14
  438. package/src/state/CustomColumnsHistoryState.ts +68 -11
  439. package/src/state/CustomColumnsState.ts +39 -4
  440. package/src/state/EditableTable/types.ts +2 -0
  441. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  442. package/src/state/ViewsState.ts +4 -0
  443. package/src/styles.global.css +2 -2
  444. package/src/version.ts +1 -1
@@ -17,11 +17,29 @@ function parseSelectedColumnsString(selectedColumnsFromUrl) {
17
17
  id
18
18
  }) => id);
19
19
  }
20
+
21
+ // Legacy `selectedColumns` stays bound to non-spreadsheet layouts so existing
22
+ // deep links keep their meaning; spreadsheet uses a sibling param.
23
+ const SELECTED_COLUMNS_PARAM = 'selectedColumns';
24
+ const SPREADSHEET_SELECTED_COLUMNS_PARAM = 'spreadsheetSelectedColumns';
25
+ const getSelectedColumnsParamForLayout = layout => layout === 'spreadsheet' ? SPREADSHEET_SELECTED_COLUMNS_PARAM : SELECTED_COLUMNS_PARAM;
26
+ const serializeSelectedColumns = selectedColumns => selectedColumns.map(c => `${encodeURIComponent(c.id)}${!c.isSelected ? ' false' : ''}`).join(',');
20
27
  class CustomColumnsHistoryState {
28
+ get selectedColumnsSearchParamName() {
29
+ var _this$customColumns$t;
30
+ return getSelectedColumnsParamForLayout((_this$customColumns$t = this.customColumns.table.layoutState) == null ? void 0 : _this$customColumns$t.viewType);
31
+ }
32
+
33
+ // Live, per-layout read — unlike `_selectedColumnsFromUrl` (frozen at the
34
+ // initial layout), this reflects the active layout after a switch so URL
35
+ // takes precedence over dataCapsule per layout, not just on first load.
36
+ get hasUrlColumnsForCurrentLayout() {
37
+ const params = new URLSearchParams(this.history.location.search);
38
+ return !!params.get(this.selectedColumnsSearchParamName);
39
+ }
21
40
  constructor(params) {
22
41
  (0, _defineProperty2.default)(this, "customColumns", void 0);
23
42
  (0, _defineProperty2.default)(this, "history", void 0);
24
- (0, _defineProperty2.default)(this, "selectedColumnsSearchParamName", 'selectedColumns');
25
43
  (0, _defineProperty2.default)(this, "_selectedColumnsFromUrl", void 0);
26
44
  this.customColumns = params.customColumns;
27
45
  this.history = params.history;
@@ -45,16 +63,35 @@ class CustomColumnsHistoryState {
45
63
  }
46
64
  init() {
47
65
  const disposers = [(0, _mobx.reaction)(() => this.customColumns.table.selectedColumns.value, selectedColumns => {
66
+ const paramName = this.selectedColumnsSearchParamName;
48
67
  (0, _bexCore.replaceSearchParamsWith)(this.history, searchParams => {
49
68
  if (selectedColumns.length) {
50
- searchParams.set(this.selectedColumnsSearchParamName, selectedColumns.map(c => `${encodeURIComponent(c.id)}${!c.isSelected ? ' false' : ''}`).join(','));
69
+ searchParams.set(paramName, serializeSelectedColumns(selectedColumns));
51
70
  } else {
52
- searchParams.delete(this.selectedColumnsSearchParamName);
71
+ searchParams.delete(paramName);
53
72
  }
54
73
  });
55
74
  }, {
56
75
  fireImmediately: true,
57
76
  delay: 250
77
+ }), (0, _mobx.reaction)(() => {
78
+ var _this$customColumns$t2;
79
+ return (_this$customColumns$t2 = this.customColumns.table.layoutState) == null ? void 0 : _this$customColumns$t2.viewType;
80
+ }, (newLayout, prevLayout) => {
81
+ if (!newLayout || !prevLayout || newLayout === prevLayout) {
82
+ return;
83
+ }
84
+ // Views path is handled by CollectionViewsState's own reaction.
85
+ if (this.customColumns.table.viewsProps) {
86
+ return;
87
+ }
88
+ const searchParams = new URLSearchParams(this.history.location.search);
89
+ const value = searchParams.get(getSelectedColumnsParamForLayout(newLayout));
90
+ if (value) {
91
+ this.customColumns.table.selectedColumns.setValue(parseSelectedColumnsString(value));
92
+ } else {
93
+ this.customColumns.table.selectedColumns.reset();
94
+ }
58
95
  })];
59
96
  return () => {
60
97
  disposers.forEach(d => d());
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_bexCore","parseSelectedColumnsString","selectedColumnsFromUrl","split","map","columnExpression","id","isSelected","decodeURIComponent","filter","CustomColumnsHistoryState","constructor","params","_defineProperty2","default","customColumns","history","_preInitHistoryPersistence","searchParams","URLSearchParams","location","search","_selectedColumnsFromUrl","get","selectedColumnsSearchParamName","table","selectedColumns","setValue","multi","collections","forEach","query","_initializedFromHistory","init","disposers","reaction","value","replaceSearchParamsWith","length","set","c","encodeURIComponent","join","delete","fireImmediately","delay","d","exports"],"sources":["../../../src/state/CustomColumnsHistoryState.ts"],"sourcesContent":["import { reaction } from 'mobx';\nimport { History, replaceSearchParamsWith } from '@wix/bex-core';\nimport { CustomColumnsState } from './CustomColumnsState';\n\nfunction parseSelectedColumnsString(selectedColumnsFromUrl: string) {\n return selectedColumnsFromUrl\n .split(',')\n .map((columnExpression) => {\n const [id = '', isSelected] = columnExpression.split(' ');\n\n return {\n id: decodeURIComponent(id),\n isSelected: isSelected !== 'false',\n };\n })\n .filter(({ id }) => id);\n}\n\nexport interface CustomColumnsHistoryStateParams {\n customColumns: CustomColumnsState<any, any>;\n history: History;\n}\n\nexport class CustomColumnsHistoryState {\n readonly customColumns;\n readonly history;\n\n selectedColumnsSearchParamName = 'selectedColumns';\n\n _selectedColumnsFromUrl?: string | null;\n\n constructor(params: CustomColumnsHistoryStateParams) {\n this.customColumns = params.customColumns;\n this.history = params.history;\n\n this._preInitHistoryPersistence();\n }\n\n _preInitHistoryPersistence() {\n const { history, customColumns } = this;\n\n const searchParams = new URLSearchParams(history.location.search);\n\n this._selectedColumnsFromUrl = searchParams.get(\n this.selectedColumnsSearchParamName,\n );\n\n if (this._selectedColumnsFromUrl) {\n this.customColumns.table.selectedColumns.setValue(\n parseSelectedColumnsString(this._selectedColumnsFromUrl),\n );\n customColumns.table.multi.collections.forEach(({ query }) => {\n query._initializedFromHistory = true;\n });\n }\n }\n\n init() {\n const disposers = [\n reaction(\n () => this.customColumns.table.selectedColumns.value,\n (selectedColumns) => {\n replaceSearchParamsWith(this.history, (searchParams) => {\n if (selectedColumns.length) {\n searchParams.set(\n this.selectedColumnsSearchParamName,\n selectedColumns\n .map(\n (c) =>\n `${encodeURIComponent(c.id)}${\n !c.isSelected ? ' false' : ''\n }`,\n )\n .join(','),\n );\n } else {\n searchParams.delete(this.selectedColumnsSearchParamName);\n }\n });\n },\n {\n fireImmediately: true,\n delay: 250,\n },\n ),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAGA,SAASE,0BAA0BA,CAACC,sBAA8B,EAAE;EAClE,OAAOA,sBAAsB,CAC1BC,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAEC,gBAAgB,IAAK;IACzB,MAAM,CAACC,EAAE,GAAG,EAAE,EAAEC,UAAU,CAAC,GAAGF,gBAAgB,CAACF,KAAK,CAAC,GAAG,CAAC;IAEzD,OAAO;MACLG,EAAE,EAAEE,kBAAkB,CAACF,EAAE,CAAC;MAC1BC,UAAU,EAAEA,UAAU,KAAK;IAC7B,CAAC;EACH,CAAC,CAAC,CACDE,MAAM,CAAC,CAAC;IAAEH;EAAG,CAAC,KAAKA,EAAE,CAAC;AAC3B;AAOO,MAAMI,yBAAyB,CAAC;EAQrCC,WAAWA,CAACC,MAAuC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,0CAJpB,iBAAiB;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAKhD,IAAI,CAACC,aAAa,GAAGH,MAAM,CAACG,aAAa;IACzC,IAAI,CAACC,OAAO,GAAGJ,MAAM,CAACI,OAAO;IAE7B,IAAI,CAACC,0BAA0B,CAAC,CAAC;EACnC;EAEAA,0BAA0BA,CAAA,EAAG;IAC3B,MAAM;MAAED,OAAO;MAAED;IAAc,CAAC,GAAG,IAAI;IAEvC,MAAMG,YAAY,GAAG,IAAIC,eAAe,CAACH,OAAO,CAACI,QAAQ,CAACC,MAAM,CAAC;IAEjE,IAAI,CAACC,uBAAuB,GAAGJ,YAAY,CAACK,GAAG,CAC7C,IAAI,CAACC,8BACP,CAAC;IAED,IAAI,IAAI,CAACF,uBAAuB,EAAE;MAChC,IAAI,CAACP,aAAa,CAACU,KAAK,CAACC,eAAe,CAACC,QAAQ,CAC/C1B,0BAA0B,CAAC,IAAI,CAACqB,uBAAuB,CACzD,CAAC;MACDP,aAAa,CAACU,KAAK,CAACG,KAAK,CAACC,WAAW,CAACC,OAAO,CAAC,CAAC;QAAEC;MAAM,CAAC,KAAK;QAC3DA,KAAK,CAACC,uBAAuB,GAAG,IAAI;MACtC,CAAC,CAAC;IACJ;EACF;EAEAC,IAAIA,CAAA,EAAG;IACL,MAAMC,SAAS,GAAG,CAChB,IAAAC,cAAQ,EACN,MAAM,IAAI,CAACpB,aAAa,CAACU,KAAK,CAACC,eAAe,CAACU,KAAK,EACnDV,eAAe,IAAK;MACnB,IAAAW,gCAAuB,EAAC,IAAI,CAACrB,OAAO,EAAGE,YAAY,IAAK;QACtD,IAAIQ,eAAe,CAACY,MAAM,EAAE;UAC1BpB,YAAY,CAACqB,GAAG,CACd,IAAI,CAACf,8BAA8B,EACnCE,eAAe,CACZtB,GAAG,CACDoC,CAAC,IACA,GAAGC,kBAAkB,CAACD,CAAC,CAAClC,EAAE,CAAC,GACzB,CAACkC,CAAC,CAACjC,UAAU,GAAG,QAAQ,GAAG,EAAE,EAEnC,CAAC,CACAmC,IAAI,CAAC,GAAG,CACb,CAAC;QACH,CAAC,MAAM;UACLxB,YAAY,CAACyB,MAAM,CAAC,IAAI,CAACnB,8BAA8B,CAAC;QAC1D;MACF,CAAC,CAAC;IACJ,CAAC,EACD;MACEoB,eAAe,EAAE,IAAI;MACrBC,KAAK,EAAE;IACT,CACF,CAAC,CACF;IAED,OAAO,MAAM;MACXX,SAAS,CAACJ,OAAO,CAAEgB,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;EACH;AACF;AAACC,OAAA,CAAArC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_bexCore","parseSelectedColumnsString","selectedColumnsFromUrl","split","map","columnExpression","id","isSelected","decodeURIComponent","filter","SELECTED_COLUMNS_PARAM","SPREADSHEET_SELECTED_COLUMNS_PARAM","getSelectedColumnsParamForLayout","layout","serializeSelectedColumns","selectedColumns","c","encodeURIComponent","join","CustomColumnsHistoryState","selectedColumnsSearchParamName","_this$customColumns$t","customColumns","table","layoutState","viewType","hasUrlColumnsForCurrentLayout","params","URLSearchParams","history","location","search","get","constructor","_defineProperty2","default","_preInitHistoryPersistence","searchParams","_selectedColumnsFromUrl","setValue","multi","collections","forEach","query","_initializedFromHistory","init","disposers","reaction","value","paramName","replaceSearchParamsWith","length","set","delete","fireImmediately","delay","_this$customColumns$t2","newLayout","prevLayout","viewsProps","reset","d","exports"],"sources":["../../../src/state/CustomColumnsHistoryState.ts"],"sourcesContent":["import { reaction } from 'mobx';\nimport { History, replaceSearchParamsWith } from '@wix/bex-core';\nimport { CustomColumnsState } from './CustomColumnsState';\nimport { ViewType } from '../model';\n\nfunction parseSelectedColumnsString(selectedColumnsFromUrl: string) {\n return selectedColumnsFromUrl\n .split(',')\n .map((columnExpression) => {\n const [id = '', isSelected] = columnExpression.split(' ');\n\n return {\n id: decodeURIComponent(id),\n isSelected: isSelected !== 'false',\n };\n })\n .filter(({ id }) => id);\n}\n\n// Legacy `selectedColumns` stays bound to non-spreadsheet layouts so existing\n// deep links keep their meaning; spreadsheet uses a sibling param.\nconst SELECTED_COLUMNS_PARAM = 'selectedColumns';\nconst SPREADSHEET_SELECTED_COLUMNS_PARAM = 'spreadsheetSelectedColumns';\n\nconst getSelectedColumnsParamForLayout = (\n layout: ViewType | undefined,\n): string =>\n layout === 'spreadsheet'\n ? SPREADSHEET_SELECTED_COLUMNS_PARAM\n : SELECTED_COLUMNS_PARAM;\n\nconst serializeSelectedColumns = (\n selectedColumns: readonly {\n id: string;\n isSelected?: boolean;\n }[],\n) =>\n selectedColumns\n .map(\n (c) =>\n `${encodeURIComponent(c.id)}${!c.isSelected ? ' false' : ''}`,\n )\n .join(',');\n\nexport interface CustomColumnsHistoryStateParams {\n customColumns: CustomColumnsState<any, any>;\n history: History;\n}\n\nexport class CustomColumnsHistoryState {\n readonly customColumns;\n readonly history;\n\n get selectedColumnsSearchParamName(): string {\n return getSelectedColumnsParamForLayout(\n this.customColumns.table.layoutState?.viewType,\n );\n }\n\n // Live, per-layout read — unlike `_selectedColumnsFromUrl` (frozen at the\n // initial layout), this reflects the active layout after a switch so URL\n // takes precedence over dataCapsule per layout, not just on first load.\n get hasUrlColumnsForCurrentLayout(): boolean {\n const params = new URLSearchParams(this.history.location.search);\n return !!params.get(this.selectedColumnsSearchParamName);\n }\n\n _selectedColumnsFromUrl?: string | null;\n\n constructor(params: CustomColumnsHistoryStateParams) {\n this.customColumns = params.customColumns;\n this.history = params.history;\n\n this._preInitHistoryPersistence();\n }\n\n _preInitHistoryPersistence() {\n const { history, customColumns } = this;\n\n const searchParams = new URLSearchParams(history.location.search);\n\n this._selectedColumnsFromUrl = searchParams.get(\n this.selectedColumnsSearchParamName,\n );\n\n if (this._selectedColumnsFromUrl) {\n this.customColumns.table.selectedColumns.setValue(\n parseSelectedColumnsString(this._selectedColumnsFromUrl),\n );\n customColumns.table.multi.collections.forEach(({ query }) => {\n query._initializedFromHistory = true;\n });\n }\n }\n\n init() {\n const disposers = [\n reaction(\n () => this.customColumns.table.selectedColumns.value,\n (selectedColumns) => {\n const paramName = this.selectedColumnsSearchParamName;\n replaceSearchParamsWith(this.history, (searchParams) => {\n if (selectedColumns.length) {\n searchParams.set(\n paramName,\n serializeSelectedColumns(selectedColumns),\n );\n } else {\n searchParams.delete(paramName);\n }\n });\n },\n {\n fireImmediately: true,\n delay: 250,\n },\n ),\n reaction(\n () => this.customColumns.table.layoutState?.viewType,\n (newLayout, prevLayout) => {\n if (!newLayout || !prevLayout || newLayout === prevLayout) {\n return;\n }\n // Views path is handled by CollectionViewsState's own reaction.\n if (this.customColumns.table.viewsProps) {\n return;\n }\n const searchParams = new URLSearchParams(\n this.history.location.search,\n );\n const value = searchParams.get(\n getSelectedColumnsParamForLayout(newLayout),\n );\n if (value) {\n this.customColumns.table.selectedColumns.setValue(\n parseSelectedColumnsString(value),\n );\n } else {\n this.customColumns.table.selectedColumns.reset();\n }\n },\n ),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  exports.__esModule = true;
5
- exports.CustomColumnsState = void 0;
5
+ exports.SPREADSHEET_CUSTOM_COLUMNS_KEY = exports.CustomColumnsState = exports.CUSTOM_COLUMNS_KEY = void 0;
6
6
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
7
  var _bexCore = require("@wix/bex-core");
8
8
  var _mobx = require("mobx");
@@ -11,6 +11,11 @@ var _indexOfCompareFn = require("./indexOfCompareFn");
11
11
  var _events = require("events");
12
12
  var _bi = require("@wix/bex-core/bi");
13
13
  var _CustomColumnsPanelStateBase = require("./CustomColumnsPanelStateBase");
14
+ // Legacy `custom-columns` stays bound to non-spreadsheet layouts so existing
15
+ // stored values keep their meaning; spreadsheet uses a sibling key.
16
+ const CUSTOM_COLUMNS_KEY = exports.CUSTOM_COLUMNS_KEY = 'custom-columns';
17
+ const SPREADSHEET_CUSTOM_COLUMNS_KEY = exports.SPREADSHEET_CUSTOM_COLUMNS_KEY = 'spreadsheet-custom-columns';
18
+ const getCustomColumnsKeyForLayout = layout => layout === 'spreadsheet' ? SPREADSHEET_CUSTOM_COLUMNS_KEY : CUSTOM_COLUMNS_KEY;
14
19
  const asStoredColumnsOrNull = customColumnsResult => Array.isArray(customColumnsResult) ? customColumnsResult : null;
15
20
  class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanelStateBase {
16
21
  constructor(params) {
@@ -81,6 +86,7 @@ class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanel
81
86
  return orderedColumns.filter(column => selectedColumns.some(selectedColumn => selectedColumn.id === column.id && selectedColumn.isSelected));
82
87
  }
83
88
  async persistCustomColumns() {
89
+ var _table$layoutState;
84
90
  const {
85
91
  table
86
92
  } = this;
@@ -94,7 +100,7 @@ class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanel
94
100
  return;
95
101
  }
96
102
  this._touched = true;
97
- await dataCapsule.setItem('custom-columns', table.selectedColumns.value);
103
+ await dataCapsule.setItem(getCustomColumnsKeyForLayout((_table$layoutState = table.layoutState) == null ? void 0 : _table$layoutState.viewType), table.selectedColumns.value);
98
104
  }
99
105
  registerSelectedColumnChange() {
100
106
  const {
@@ -239,7 +245,24 @@ class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanel
239
245
  selectedColumns.setValue(this.toSelectedColumns, {
240
246
  emitEvents: ['change', 'beforeRefresh', 'refresh']
241
247
  });
242
- }), this.registerSelectedColumnChange(), this.columnsCollection.init(), (_this$dragAndDrop = this.dragAndDrop) == null ? void 0 : _this$dragAndDrop.init(), (_this$customColumnsHi = this.customColumnsHistory) == null ? void 0 : _this$customColumnsHi.init()];
248
+ }), this.registerSelectedColumnChange(), this.columnsCollection.init(), (_this$dragAndDrop = this.dragAndDrop) == null ? void 0 : _this$dragAndDrop.init(), (_this$customColumnsHi = this.customColumnsHistory) == null ? void 0 : _this$customColumnsHi.init(), (0, _mobx.reaction)(() => {
249
+ var _this$table$layoutSta;
250
+ return (_this$table$layoutSta = this.table.layoutState) == null ? void 0 : _this$table$layoutSta.viewType;
251
+ }, async (newLayout, prevLayout) => {
252
+ if (!newLayout || !prevLayout || newLayout === prevLayout) {
253
+ return;
254
+ }
255
+ // Views path is handled by CollectionViewsState's own reaction.
256
+ if (this.table.viewsProps) {
257
+ return;
258
+ }
259
+ const stored = await this._getStoredCustomColumns();
260
+ if (stored == null) {
261
+ this.table.selectedColumns.reset();
262
+ } else {
263
+ await this._fetchFromStorage();
264
+ }
265
+ })];
243
266
  return () => {
244
267
  disposers.forEach(disposer => disposer == null ? void 0 : disposer());
245
268
  };
@@ -249,7 +272,8 @@ class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanel
249
272
  dataCapsule
250
273
  } = this.table;
251
274
  try {
252
- const storedValue = await asStoredColumnsOrNull(await dataCapsule.getItem('custom-columns'));
275
+ var _this$table$layoutSta2;
276
+ const storedValue = await asStoredColumnsOrNull(await dataCapsule.getItem(getCustomColumnsKeyForLayout((_this$table$layoutSta2 = this.table.layoutState) == null ? void 0 : _this$table$layoutSta2.viewType)));
253
277
  this._touched = storedValue != null;
254
278
  return storedValue;
255
279
  } catch (e) {
@@ -297,7 +321,7 @@ class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanel
297
321
  if (viewsProps) {
298
322
  return;
299
323
  }
300
- if (customColumnsState != null && (_customColumnsState$c = customColumnsState.customColumnsHistory) != null && _customColumnsState$c._selectedColumnsFromUrl) {
324
+ if (customColumnsState != null && (_customColumnsState$c = customColumnsState.customColumnsHistory) != null && _customColumnsState$c.hasUrlColumnsForCurrentLayout) {
301
325
  return;
302
326
  }
303
327
  const storedCustomColumns = await this._getStoredCustomColumns();
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","_CustomColumnsHistoryState","_indexOfCompareFn","_events","_bi","_CustomColumnsPanelStateBase","asStoredColumnsOrNull","customColumnsResult","Array","isArray","CustomColumnsState","CustomColumnsPanelStateBase","constructor","params","container","queryName","environment","componentId","table","collection","filter","Boolean","join","_defineProperty2","default","Map","TaskState","EventEmitter","dragAndDrop","CustomColumnsDragAndDropState","customColumns","dataSource","columns","selectedColumns","components","modalsContainerRef","customColumnsHistory","persistQueryToUrl","CustomColumnsHistoryState","history","initBaseObservables","makeObservable","persistCustomColumns","action","bound","toSelectedColumns","computed","selectedOrderedColumns","init","orderedColumns","customColumnsState","value","column","some","selectedColumn","id","isSelected","dataCapsule","viewsProps","_touched","setItem","registerSelectedColumnChange","events","on","off","mergeNewColumns","_toStoredColumn","_didFirstColumnsMerge","defaultHidden","length","mergeTargetSelectedColumns","s","every","c","map","existing","find","hideable","hiddenFromCustomColumnsSelection","diffColumns","forEach","d","originalIndex","findIndex","afterId","afterIndex","splice","getStickyColumnsCount","stickyColumns","reorderDisabled","reorderDisabledColumns","orderedColumnsByReorderDisabled","select","isChecked","selectionChanged","i","a","b","_this$dragAndDrop","_this$customColumnsHi","customColumnsStateInitialized","disposers","reaction","columnsCollection","clear","forceSetMany","status","finalStatus","startStatus","refreshAllPages","fireImmediately","selectedValues","setValue","emitEvents","disposer","_getStoredCustomColumns","storedValue","getItem","e","Error","message","_tableInit","initTask","multi","collections","runOnce","beforeInitialFetchListeners","listeners","Promise","all","l","_fetchFromStorage","console","error","query","refreshOnColumnsChange","hooks","addListener","promise","_customColumnsState$c","_selectedColumnsFromUrl","storedCustomColumns","selectedColumnsFromStorage","tableColumn","name","sort","indexOfCompareFn","customizeColumnsInSidePanelBi","actionName","_performedCustomColumnsActions","get","set","reportBi","withoutDefaults","cairoCustomizeColumnsInSidePanel","showFieldTypeIcons","collectionDataExtension","sidePanelTransition","sidePanel","transition","onClose","cairoFiltersPanelUsed","isOpened","feature","origin","close","exports"],"sources":["../../../src/state/CustomColumnsState.ts"],"sourcesContent":["import {\n FiltersMap,\n TaskState,\n TypedEmitter,\n withoutDefaults,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, reaction } from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { Column } from '../model';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CustomColumnsHistoryState } from './CustomColumnsHistoryState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\nimport { EventEmitter } from 'events';\nimport {\n cairoCustomizeColumnsInSidePanel,\n cairoFiltersPanelUsed,\n} from '@wix/bex-core/bi';\nimport type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';\nimport type { CollectionDataExtensionState } from '../components/DataExtension';\nimport { CustomColumnsPanelStateBase } from './CustomColumnsPanelStateBase';\n\nexport type { CustomColumnsDragAndDropState };\nexport type { CollectionDataExtensionState };\n\nexport type CustomColumnsPanelState<\n T = unknown,\n F extends FiltersMap = FiltersMap,\n> = CustomColumnsPanelStateBase<T, F>;\n\ntype StoredColumn =\n | { id?: string; name?: string; isSelected?: boolean }\n | null\n | undefined;\n\nconst asStoredColumnsOrNull = (customColumnsResult: unknown) =>\n Array.isArray(customColumnsResult)\n ? (customColumnsResult as StoredColumn[])\n : null;\n\nexport interface CustomColumnsStateParams<T, F extends FiltersMap> {\n readonly table: ToolbarCollectionState<T, F>;\n readonly container: import('@wix/bex-core').WixPatternsContainer;\n readonly dragAndDrop?: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport type CustomColumnsActionName = 'visibility' | 'reorder';\n\nexport class CustomColumnsState<\n T,\n F extends FiltersMap,\n> extends CustomColumnsPanelStateBase<T, F> {\n readonly table;\n\n readonly dragAndDrop: CustomColumnsDragAndDropState<T, F> | undefined;\n\n readonly customColumnsHistory;\n\n _didFirstColumnsMerge?: boolean;\n _performedCustomColumnsActions: Map<CustomColumnsActionName, boolean> =\n new Map();\n\n readonly initTask = new TaskState();\n\n _touched = false;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n beforeInitialFetch: () => void;\n }>;\n\n constructor(params: CustomColumnsStateParams<T, F>) {\n super({\n container: params.container,\n queryName: [\n params.container.environment.componentId,\n params.table.collection.queryName,\n 'customColumns',\n ]\n .filter(Boolean)\n .join('/'),\n });\n\n this.table = params.table;\n\n if (params.dragAndDrop) {\n const { CustomColumnsDragAndDropState } = params.dragAndDrop;\n this.dragAndDrop = new CustomColumnsDragAndDropState({\n customColumns: this,\n dataSource: {\n get columns() {\n return params.table.columns;\n },\n selectedColumns: params.table.selectedColumns,\n },\n components: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n }\n\n this.customColumnsHistory = this.table.collection.persistQueryToUrl\n ? new CustomColumnsHistoryState({\n customColumns: this,\n history: params.container.history,\n })\n : null;\n\n this.initBaseObservables();\n makeObservable(this, {\n persistCustomColumns: action.bound,\n toSelectedColumns: computed,\n selectedOrderedColumns: computed,\n init: action,\n });\n }\n\n get orderedColumns(): Column[] {\n const { dragAndDrop, table } = this;\n const { columns, customColumnsState } = table;\n\n if (customColumnsState?.dragAndDrop && dragAndDrop) {\n return dragAndDrop.orderedColumns;\n }\n\n return columns;\n }\n\n get selectedOrderedColumns() {\n const {\n orderedColumns,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n return orderedColumns.filter((column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n );\n }\n\n async persistCustomColumns() {\n const { table } = this;\n const { dataCapsule, viewsProps } = table;\n\n // if views enabled columns persists inside the view instead of data capsule\n if (viewsProps) {\n return;\n }\n\n this._touched = true;\n await dataCapsule.setItem('custom-columns', table.selectedColumns.value);\n }\n\n private registerSelectedColumnChange() {\n const { table } = this;\n table.selectedColumns.events.on('refresh', this.persistCustomColumns);\n\n return () => {\n table.selectedColumns.events.off('refresh', this.persistCustomColumns);\n };\n }\n\n mergeNewColumns() {\n const {\n table: { columns, selectedColumns, _toStoredColumn, customColumnsState },\n _didFirstColumnsMerge,\n } = this;\n\n const defaultHidden =\n !_didFirstColumnsMerge && !!selectedColumns.value.length;\n\n const mergeTargetSelectedColumns = [...selectedColumns.value];\n\n if (customColumnsState?.dragAndDrop == null) {\n return [\n ...mergeTargetSelectedColumns.filter((s) =>\n columns.every((c) => s.id !== c.id),\n ),\n ...columns.map((c) => {\n const existing = selectedColumns.value.find((s) => s.id === c.id);\n if (existing == null) {\n return _toStoredColumn(c);\n }\n\n return {\n ...existing,\n isSelected:\n c.hideable === false ||\n c.hiddenFromCustomColumnsSelection ||\n existing.isSelected,\n };\n }),\n ];\n }\n\n const diffColumns = columns\n .filter((c) => selectedColumns.value.every((s) => s.id !== c.id))\n .map((c) =>\n _toStoredColumn({\n ...c,\n defaultHidden: defaultHidden || c.defaultHidden,\n }),\n );\n\n // place new columns according to their order in the original columns prop\n diffColumns.forEach((d) => {\n const originalIndex = columns.findIndex((c) => c.id === d.id);\n const afterId = originalIndex > 0 ? columns[originalIndex - 1].id : null;\n const afterIndex =\n afterId != null\n ? mergeTargetSelectedColumns.findIndex((c) => c.id === afterId) + 1\n : originalIndex === 0\n ? 0\n : mergeTargetSelectedColumns.length;\n mergeTargetSelectedColumns.splice(afterIndex, 0, d);\n });\n\n this._didFirstColumnsMerge = true;\n return mergeTargetSelectedColumns;\n }\n\n getStickyColumnsCount({ stickyColumns }: { stickyColumns: number }) {\n const {\n dragAndDrop,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n if (dragAndDrop == null) {\n return stickyColumns;\n }\n\n const { reorderDisabled: reorderDisabledColumns } =\n dragAndDrop.orderedColumnsByReorderDisabled;\n\n if (!reorderDisabledColumns.length) {\n return stickyColumns;\n }\n\n return dragAndDrop.orderedColumnsByReorderDisabled.reorderDisabled.filter(\n (column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n ).length;\n }\n\n get toSelectedColumns() {\n const {\n select,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n return value.map(({ id }) => ({\n id,\n isSelected: select.isChecked(id),\n }));\n }\n\n get selectionChanged() {\n const {\n toSelectedColumns,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n if (value.length !== toSelectedColumns.length) {\n return true;\n }\n\n for (let i = 0; i < value.length; i++) {\n const a = value[i];\n const b = toSelectedColumns[i];\n\n if (a.id !== b.id || a.isSelected !== b.isSelected) {\n return true;\n }\n }\n\n return false;\n }\n\n init() {\n const { table } = this;\n table.customColumnsStateInitialized = true;\n\n const disposers = [\n reaction(\n () => this.table.selectedColumns.value,\n async (selectedColumns) => {\n const { select, columnsCollection } = this;\n\n select.clear();\n select.forceSetMany(\n selectedColumns.map(({ id, isSelected }) => ({\n value: { id },\n status: isSelected ? select.finalStatus : select.startStatus,\n })),\n );\n await columnsCollection.refreshAllPages();\n },\n {\n fireImmediately: true,\n },\n ),\n reaction(\n () => this.select.selectedValues,\n () => {\n const {\n table: { selectedColumns },\n } = this;\n\n if (!this.selectionChanged) {\n return;\n }\n\n selectedColumns.setValue(this.toSelectedColumns, {\n emitEvents: ['change', 'beforeRefresh', 'refresh'],\n });\n },\n ),\n\n this.registerSelectedColumnChange(),\n this.columnsCollection.init(),\n this.dragAndDrop?.init(),\n this.customColumnsHistory?.init(),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n async _getStoredCustomColumns() {\n const { dataCapsule } = this.table;\n try {\n const storedValue = await asStoredColumnsOrNull(\n await dataCapsule.getItem('custom-columns'),\n );\n this._touched = storedValue != null;\n return storedValue;\n } catch (e) {\n if (e instanceof Error && e.message === 'Key was not found in capsule') {\n return null;\n }\n\n throw e;\n }\n }\n\n _tableInit() {\n const {\n initTask,\n table: {\n multi: { collections },\n },\n } = this;\n initTask.runOnce(async () => {\n try {\n const beforeInitialFetchListeners =\n this.events.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((l) => l()));\n await this._fetchFromStorage();\n } catch (e) {\n console.error(e);\n }\n });\n\n collections.forEach((collection) => {\n if (collection.query.refreshOnColumnsChange) {\n collection.hooks.addListener(\n 'beforeInitialFetch',\n () => initTask.status.promise,\n );\n }\n });\n }\n\n async _fetchFromStorage() {\n const {\n table: {\n viewsProps,\n columns,\n selectedColumns,\n customColumnsState,\n _toStoredColumn,\n },\n } = this;\n\n if (viewsProps) {\n return;\n }\n\n if (customColumnsState?.customColumnsHistory?._selectedColumnsFromUrl) {\n return;\n }\n\n const storedCustomColumns = await this._getStoredCustomColumns();\n\n if (storedCustomColumns == null) {\n return;\n }\n\n const selectedColumnsFromStorage = columns.map((tableColumn) => {\n const existing = storedCustomColumns.find(\n (c) => c?.id === tableColumn.id,\n );\n\n // If the column is not found in the stored columns, it means it was added after the last visit, so its \"isSelected\" state should be calculated based on the column prop passed via code\n if (existing == null) {\n return _toStoredColumn(tableColumn);\n }\n\n // If the column is found in the stored columns, it means it was already configured by the user, so its \"isSelected\" state should be taken from the stored columns\n const { id, name, hideable, hiddenFromCustomColumnsSelection } =\n tableColumn;\n\n return {\n id,\n name,\n isSelected:\n storedCustomColumns.some(\n (c) => c?.id === id && c?.isSelected !== false,\n ) ||\n !hideable ||\n hiddenFromCustomColumnsSelection === true,\n };\n });\n\n selectedColumns.setValue(\n customColumnsState?.dragAndDrop\n ? selectedColumnsFromStorage.sort(\n indexOfCompareFn(storedCustomColumns, (e) => e?.id),\n )\n : selectedColumnsFromStorage,\n );\n }\n\n customizeColumnsInSidePanelBi({\n actionName,\n }: {\n actionName: CustomColumnsActionName;\n }) {\n if (this._performedCustomColumnsActions.get(actionName)) {\n return;\n }\n this._performedCustomColumnsActions.set(actionName, true);\n this.table.reportBi(\n withoutDefaults(cairoCustomizeColumnsInSidePanel)({\n actionName,\n }),\n );\n }\n\n get showFieldTypeIcons() {\n return this.table.showFieldTypeIcons;\n }\n\n get collectionDataExtension() {\n return this.table.collectionDataExtension;\n }\n\n get sidePanelTransition() {\n return this.table.sidePanel.transition;\n }\n\n onClose() {\n this.table.reportBi(\n withoutDefaults(cairoFiltersPanelUsed)({\n isOpened: false,\n feature: 'Custom Columns',\n origin: 'X Button',\n }),\n );\n this.table.sidePanel.close();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","_CustomColumnsHistoryState","_indexOfCompareFn","_events","_bi","_CustomColumnsPanelStateBase","CUSTOM_COLUMNS_KEY","exports","SPREADSHEET_CUSTOM_COLUMNS_KEY","getCustomColumnsKeyForLayout","layout","asStoredColumnsOrNull","customColumnsResult","Array","isArray","CustomColumnsState","CustomColumnsPanelStateBase","constructor","params","container","queryName","environment","componentId","table","collection","filter","Boolean","join","_defineProperty2","default","Map","TaskState","EventEmitter","dragAndDrop","CustomColumnsDragAndDropState","customColumns","dataSource","columns","selectedColumns","components","modalsContainerRef","customColumnsHistory","persistQueryToUrl","CustomColumnsHistoryState","history","initBaseObservables","makeObservable","persistCustomColumns","action","bound","toSelectedColumns","computed","selectedOrderedColumns","init","orderedColumns","customColumnsState","value","column","some","selectedColumn","id","isSelected","_table$layoutState","dataCapsule","viewsProps","_touched","setItem","layoutState","viewType","registerSelectedColumnChange","events","on","off","mergeNewColumns","_toStoredColumn","_didFirstColumnsMerge","defaultHidden","length","mergeTargetSelectedColumns","s","every","c","map","existing","find","hideable","hiddenFromCustomColumnsSelection","diffColumns","forEach","d","originalIndex","findIndex","afterId","afterIndex","splice","getStickyColumnsCount","stickyColumns","reorderDisabled","reorderDisabledColumns","orderedColumnsByReorderDisabled","select","isChecked","selectionChanged","i","a","b","_this$dragAndDrop","_this$customColumnsHi","customColumnsStateInitialized","disposers","reaction","columnsCollection","clear","forceSetMany","status","finalStatus","startStatus","refreshAllPages","fireImmediately","selectedValues","setValue","emitEvents","_this$table$layoutSta","newLayout","prevLayout","stored","_getStoredCustomColumns","reset","_fetchFromStorage","disposer","_this$table$layoutSta2","storedValue","getItem","e","Error","message","_tableInit","initTask","multi","collections","runOnce","beforeInitialFetchListeners","listeners","Promise","all","l","console","error","query","refreshOnColumnsChange","hooks","addListener","promise","_customColumnsState$c","hasUrlColumnsForCurrentLayout","storedCustomColumns","selectedColumnsFromStorage","tableColumn","name","sort","indexOfCompareFn","customizeColumnsInSidePanelBi","actionName","_performedCustomColumnsActions","get","set","reportBi","withoutDefaults","cairoCustomizeColumnsInSidePanel","showFieldTypeIcons","collectionDataExtension","sidePanelTransition","sidePanel","transition","onClose","cairoFiltersPanelUsed","isOpened","feature","origin","close"],"sources":["../../../src/state/CustomColumnsState.ts"],"sourcesContent":["import {\n FiltersMap,\n TaskState,\n TypedEmitter,\n withoutDefaults,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, reaction } from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { Column, ViewType } from '../model';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CustomColumnsHistoryState } from './CustomColumnsHistoryState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\nimport { EventEmitter } from 'events';\nimport {\n cairoCustomizeColumnsInSidePanel,\n cairoFiltersPanelUsed,\n} from '@wix/bex-core/bi';\nimport type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';\nimport type { CollectionDataExtensionState } from '../components/DataExtension';\nimport { CustomColumnsPanelStateBase } from './CustomColumnsPanelStateBase';\n\nexport type { CustomColumnsDragAndDropState };\nexport type { CollectionDataExtensionState };\n\nexport type CustomColumnsPanelState<\n T = unknown,\n F extends FiltersMap = FiltersMap,\n> = CustomColumnsPanelStateBase<T, F>;\n\ntype StoredColumn =\n | { id?: string; name?: string; isSelected?: boolean }\n | null\n | undefined;\n\n// Legacy `custom-columns` stays bound to non-spreadsheet layouts so existing\n// stored values keep their meaning; spreadsheet uses a sibling key.\nexport const CUSTOM_COLUMNS_KEY = 'custom-columns';\nexport const SPREADSHEET_CUSTOM_COLUMNS_KEY = 'spreadsheet-custom-columns';\n\nconst getCustomColumnsKeyForLayout = (layout: ViewType | undefined): string =>\n layout === 'spreadsheet'\n ? SPREADSHEET_CUSTOM_COLUMNS_KEY\n : CUSTOM_COLUMNS_KEY;\n\nconst asStoredColumnsOrNull = (customColumnsResult: unknown) =>\n Array.isArray(customColumnsResult)\n ? (customColumnsResult as StoredColumn[])\n : null;\n\nexport interface CustomColumnsStateParams<T, F extends FiltersMap> {\n readonly table: ToolbarCollectionState<T, F>;\n readonly container: import('@wix/bex-core').WixPatternsContainer;\n readonly dragAndDrop?: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport type CustomColumnsActionName = 'visibility' | 'reorder';\n\nexport class CustomColumnsState<\n T,\n F extends FiltersMap,\n> extends CustomColumnsPanelStateBase<T, F> {\n readonly table;\n\n readonly dragAndDrop: CustomColumnsDragAndDropState<T, F> | undefined;\n\n readonly customColumnsHistory;\n\n _didFirstColumnsMerge?: boolean;\n _performedCustomColumnsActions: Map<CustomColumnsActionName, boolean> =\n new Map();\n\n readonly initTask = new TaskState();\n\n _touched = false;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n beforeInitialFetch: () => void;\n }>;\n\n constructor(params: CustomColumnsStateParams<T, F>) {\n super({\n container: params.container,\n queryName: [\n params.container.environment.componentId,\n params.table.collection.queryName,\n 'customColumns',\n ]\n .filter(Boolean)\n .join('/'),\n });\n\n this.table = params.table;\n\n if (params.dragAndDrop) {\n const { CustomColumnsDragAndDropState } = params.dragAndDrop;\n this.dragAndDrop = new CustomColumnsDragAndDropState({\n customColumns: this,\n dataSource: {\n get columns() {\n return params.table.columns;\n },\n selectedColumns: params.table.selectedColumns,\n },\n components: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n }\n\n this.customColumnsHistory = this.table.collection.persistQueryToUrl\n ? new CustomColumnsHistoryState({\n customColumns: this,\n history: params.container.history,\n })\n : null;\n\n this.initBaseObservables();\n makeObservable(this, {\n persistCustomColumns: action.bound,\n toSelectedColumns: computed,\n selectedOrderedColumns: computed,\n init: action,\n });\n }\n\n get orderedColumns(): Column[] {\n const { dragAndDrop, table } = this;\n const { columns, customColumnsState } = table;\n\n if (customColumnsState?.dragAndDrop && dragAndDrop) {\n return dragAndDrop.orderedColumns;\n }\n\n return columns;\n }\n\n get selectedOrderedColumns() {\n const {\n orderedColumns,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n return orderedColumns.filter((column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n );\n }\n\n async persistCustomColumns() {\n const { table } = this;\n const { dataCapsule, viewsProps } = table;\n\n // if views enabled columns persists inside the view instead of data capsule\n if (viewsProps) {\n return;\n }\n\n this._touched = true;\n await dataCapsule.setItem(\n getCustomColumnsKeyForLayout(table.layoutState?.viewType),\n table.selectedColumns.value,\n );\n }\n\n private registerSelectedColumnChange() {\n const { table } = this;\n table.selectedColumns.events.on('refresh', this.persistCustomColumns);\n\n return () => {\n table.selectedColumns.events.off('refresh', this.persistCustomColumns);\n };\n }\n\n mergeNewColumns() {\n const {\n table: { columns, selectedColumns, _toStoredColumn, customColumnsState },\n _didFirstColumnsMerge,\n } = this;\n\n const defaultHidden =\n !_didFirstColumnsMerge && !!selectedColumns.value.length;\n\n const mergeTargetSelectedColumns = [...selectedColumns.value];\n\n if (customColumnsState?.dragAndDrop == null) {\n return [\n ...mergeTargetSelectedColumns.filter((s) =>\n columns.every((c) => s.id !== c.id),\n ),\n ...columns.map((c) => {\n const existing = selectedColumns.value.find((s) => s.id === c.id);\n if (existing == null) {\n return _toStoredColumn(c);\n }\n\n return {\n ...existing,\n isSelected:\n c.hideable === false ||\n c.hiddenFromCustomColumnsSelection ||\n existing.isSelected,\n };\n }),\n ];\n }\n\n const diffColumns = columns\n .filter((c) => selectedColumns.value.every((s) => s.id !== c.id))\n .map((c) =>\n _toStoredColumn({\n ...c,\n defaultHidden: defaultHidden || c.defaultHidden,\n }),\n );\n\n // place new columns according to their order in the original columns prop\n diffColumns.forEach((d) => {\n const originalIndex = columns.findIndex((c) => c.id === d.id);\n const afterId = originalIndex > 0 ? columns[originalIndex - 1].id : null;\n const afterIndex =\n afterId != null\n ? mergeTargetSelectedColumns.findIndex((c) => c.id === afterId) + 1\n : originalIndex === 0\n ? 0\n : mergeTargetSelectedColumns.length;\n mergeTargetSelectedColumns.splice(afterIndex, 0, d);\n });\n\n this._didFirstColumnsMerge = true;\n return mergeTargetSelectedColumns;\n }\n\n getStickyColumnsCount({ stickyColumns }: { stickyColumns: number }) {\n const {\n dragAndDrop,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n if (dragAndDrop == null) {\n return stickyColumns;\n }\n\n const { reorderDisabled: reorderDisabledColumns } =\n dragAndDrop.orderedColumnsByReorderDisabled;\n\n if (!reorderDisabledColumns.length) {\n return stickyColumns;\n }\n\n return dragAndDrop.orderedColumnsByReorderDisabled.reorderDisabled.filter(\n (column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n ).length;\n }\n\n get toSelectedColumns() {\n const {\n select,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n return value.map(({ id }) => ({\n id,\n isSelected: select.isChecked(id),\n }));\n }\n\n get selectionChanged() {\n const {\n toSelectedColumns,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n if (value.length !== toSelectedColumns.length) {\n return true;\n }\n\n for (let i = 0; i < value.length; i++) {\n const a = value[i];\n const b = toSelectedColumns[i];\n\n if (a.id !== b.id || a.isSelected !== b.isSelected) {\n return true;\n }\n }\n\n return false;\n }\n\n init() {\n const { table } = this;\n table.customColumnsStateInitialized = true;\n\n const disposers = [\n reaction(\n () => this.table.selectedColumns.value,\n async (selectedColumns) => {\n const { select, columnsCollection } = this;\n\n select.clear();\n select.forceSetMany(\n selectedColumns.map(({ id, isSelected }) => ({\n value: { id },\n status: isSelected ? select.finalStatus : select.startStatus,\n })),\n );\n await columnsCollection.refreshAllPages();\n },\n {\n fireImmediately: true,\n },\n ),\n reaction(\n () => this.select.selectedValues,\n () => {\n const {\n table: { selectedColumns },\n } = this;\n\n if (!this.selectionChanged) {\n return;\n }\n\n selectedColumns.setValue(this.toSelectedColumns, {\n emitEvents: ['change', 'beforeRefresh', 'refresh'],\n });\n },\n ),\n\n this.registerSelectedColumnChange(),\n this.columnsCollection.init(),\n this.dragAndDrop?.init(),\n this.customColumnsHistory?.init(),\n reaction(\n () => this.table.layoutState?.viewType,\n async (newLayout, prevLayout) => {\n if (!newLayout || !prevLayout || newLayout === prevLayout) {\n return;\n }\n // Views path is handled by CollectionViewsState's own reaction.\n if (this.table.viewsProps) {\n return;\n }\n const stored = await this._getStoredCustomColumns();\n if (stored == null) {\n this.table.selectedColumns.reset();\n } else {\n await this._fetchFromStorage();\n }\n },\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n async _getStoredCustomColumns() {\n const { dataCapsule } = this.table;\n try {\n const storedValue = await asStoredColumnsOrNull(\n await dataCapsule.getItem(\n getCustomColumnsKeyForLayout(this.table.layoutState?.viewType),\n ),\n );\n this._touched = storedValue != null;\n return storedValue;\n } catch (e) {\n if (e instanceof Error && e.message === 'Key was not found in capsule') {\n return null;\n }\n\n throw e;\n }\n }\n\n _tableInit() {\n const {\n initTask,\n table: {\n multi: { collections },\n },\n } = this;\n initTask.runOnce(async () => {\n try {\n const beforeInitialFetchListeners =\n this.events.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((l) => l()));\n await this._fetchFromStorage();\n } catch (e) {\n console.error(e);\n }\n });\n\n collections.forEach((collection) => {\n if (collection.query.refreshOnColumnsChange) {\n collection.hooks.addListener(\n 'beforeInitialFetch',\n () => initTask.status.promise,\n );\n }\n });\n }\n\n async _fetchFromStorage() {\n const {\n table: {\n viewsProps,\n columns,\n selectedColumns,\n customColumnsState,\n _toStoredColumn,\n },\n } = this;\n\n if (viewsProps) {\n return;\n }\n\n if (\n customColumnsState?.customColumnsHistory?.hasUrlColumnsForCurrentLayout\n ) {\n return;\n }\n\n const storedCustomColumns = await this._getStoredCustomColumns();\n\n if (storedCustomColumns == null) {\n return;\n }\n\n const selectedColumnsFromStorage = columns.map((tableColumn) => {\n const existing = storedCustomColumns.find(\n (c) => c?.id === tableColumn.id,\n );\n\n // If the column is not found in the stored columns, it means it was added after the last visit, so its \"isSelected\" state should be calculated based on the column prop passed via code\n if (existing == null) {\n return _toStoredColumn(tableColumn);\n }\n\n // If the column is found in the stored columns, it means it was already configured by the user, so its \"isSelected\" state should be taken from the stored columns\n const { id, name, hideable, hiddenFromCustomColumnsSelection } =\n tableColumn;\n\n return {\n id,\n name,\n isSelected:\n storedCustomColumns.some(\n (c) => c?.id === id && c?.isSelected !== false,\n ) ||\n !hideable ||\n hiddenFromCustomColumnsSelection === true,\n };\n });\n\n selectedColumns.setValue(\n customColumnsState?.dragAndDrop\n ? selectedColumnsFromStorage.sort(\n indexOfCompareFn(storedCustomColumns, (e) => e?.id),\n )\n : selectedColumnsFromStorage,\n );\n }\n\n customizeColumnsInSidePanelBi({\n actionName,\n }: {\n actionName: CustomColumnsActionName;\n }) {\n if (this._performedCustomColumnsActions.get(actionName)) {\n return;\n }\n this._performedCustomColumnsActions.set(actionName, true);\n this.table.reportBi(\n withoutDefaults(cairoCustomizeColumnsInSidePanel)({\n actionName,\n }),\n );\n }\n\n get showFieldTypeIcons() {\n return this.table.showFieldTypeIcons;\n }\n\n get collectionDataExtension() {\n return this.table.collectionDataExtension;\n }\n\n get sidePanelTransition() {\n return this.table.sidePanel.transition;\n }\n\n onClose() {\n this.table.reportBi(\n withoutDefaults(cairoFiltersPanelUsed)({\n isOpened: false,\n feature: 'Custom Columns',\n origin: 'X Button',\n }),\n );\n this.table.sidePanel.close();\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 { RichTextStyleVariables } from '@wix/patterns-fields';\nimport type { TableColumn } from '../../model/tableColumn';\nimport type { ReferenceTypeConfig } from '../../components/EditableTable/cellTypes/reference/types';\nimport type {\n CellViewProps,\n CellEditProps,\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 =\n | { type: 'required'; message: string }\n | { type: 'min' | 'max'; value: number; message: string }\n | { type: 'minLength' | 'maxLength'; value: number; message: string }\n | { type: 'pattern'; value: RegExp; message: string }\n | { type: 'custom'; validate: (value: unknown) => boolean; message: string }\n | {\n type: 'specificValues';\n values: { id: string; value: string }[];\n message: string;\n };\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 validate?: (value: any, rules?: ValidationRule[]) => string | null;\n\n /** Can this cell type be edited? (default: true) */\n editable?: boolean;\n\n /** Can this cell type be cleared with Delete key? (default: true) */\n clearable?: boolean;\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 /** 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 date: never;\n time: never;\n object: never;\n image: never;\n document: never;\n richContent: never;\n video: never;\n richText: RichTextCellTypeConfig;\n mediaGallery: never;\n reference: ReferenceTypeConfig;\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 /** 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 { 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} 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 =\n | { type: 'required'; message: string }\n | { type: 'min' | 'max'; value: number; message: string }\n | { type: 'minLength' | 'maxLength'; value: number; message: string }\n | { type: 'pattern'; value: RegExp; message: string }\n | { type: 'custom'; validate: (value: unknown) => boolean; message: string }\n | {\n type: 'specificValues';\n values: { id: string; value: string }[];\n message: string;\n };\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 validate?: (value: any, rules?: ValidationRule[]) => string | null;\n\n /** Can this cell type be edited? (default: true) */\n editable?: boolean;\n\n /** Can this cell type be cleared with Delete key? (default: true) */\n clearable?: boolean;\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 /** 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 date: never;\n time: never;\n object: never;\n image: never;\n document: never;\n richContent: never;\n video: never;\n richText: RichTextCellTypeConfig;\n mediaGallery: never;\n reference: ReferenceTypeConfig;\n address: AddressCellTypeConfig;\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 /** 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":[]}
@@ -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_ = "FormPageHeader4088530550";
8
+ var _namespace_ = "FormPageHeader347568306";
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": "FormPageHeader4088530550__root"
15
+ "root": "FormPageHeader347568306__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/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"FormPageHeader4088530550\";\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\":\"FormPageHeader4088530550__root\"};\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,0BAA0B;AAC5C,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;AAAgC,CAAC;AACvD,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/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"FormPageHeader347568306\";\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\":\"FormPageHeader347568306__root\"};\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,yBAAyB;AAC3C,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;AAA+B,CAAC;AACtD,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":[]}
@@ -133,6 +133,8 @@ class ViewsState {
133
133
  selectedColumns: allItemsViewProps.selectedColumns,
134
134
  sortDirections: allItemsViewProps.sortDirections,
135
135
  orderedColumns: allItemsViewProps.orderedColumns,
136
+ spreadsheetSelectedColumns: allItemsViewProps.spreadsheetSelectedColumns,
137
+ spreadsheetOrderedColumns: allItemsViewProps.spreadsheetOrderedColumns,
136
138
  layout: allItemsViewProps.layout
137
139
  };
138
140
  views.unshift(allItemsView);