@wix/patterns 1.410.0 → 1.411.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 (477) hide show
  1. package/dist/cjs/bm/buildBMCairoEssentials.js +19 -1
  2. package/dist/cjs/bm/buildBMCairoEssentials.js.map +1 -1
  3. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  4. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  9. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  10. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  11. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
  12. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  13. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  14. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  16. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  18. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  20. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  22. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  24. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  25. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  26. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  29. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  30. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  31. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  32. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  33. package/dist/cjs/components/EditableTable/EditableCell.js +42 -27
  34. package/dist/cjs/components/EditableTable/EditableCell.js.map +1 -1
  35. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  36. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/EditableTable.js +17 -9
  38. package/dist/cjs/components/EditableTable/EditableTable.js.map +1 -1
  39. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  40. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  41. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  42. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  43. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  44. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  45. package/dist/cjs/components/EditableTable/cellTypes/audio/Edit.js +32 -0
  46. package/dist/cjs/components/EditableTable/cellTypes/audio/Edit.js.map +1 -0
  47. package/dist/cjs/components/EditableTable/cellTypes/audio/Edit.uni.driver.js +15 -0
  48. package/dist/cjs/components/EditableTable/cellTypes/audio/Edit.uni.driver.js.map +1 -0
  49. package/dist/cjs/components/EditableTable/cellTypes/audio/View.js +22 -0
  50. package/dist/cjs/components/EditableTable/cellTypes/audio/View.js.map +1 -0
  51. package/dist/cjs/components/EditableTable/cellTypes/audio/View.uni.driver.js +16 -0
  52. package/dist/cjs/components/EditableTable/cellTypes/audio/View.uni.driver.js.map +1 -0
  53. package/dist/cjs/components/EditableTable/cellTypes/audio/index.js +22 -0
  54. package/dist/cjs/components/EditableTable/cellTypes/audio/index.js.map +1 -0
  55. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  56. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  57. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  58. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  59. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  60. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  61. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  62. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  64. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  65. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  66. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  67. package/dist/cjs/components/EditableTable/cellTypes/index.js +3 -1
  68. package/dist/cjs/components/EditableTable/cellTypes/index.js.map +1 -1
  69. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  70. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  71. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  72. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  73. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  74. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  76. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/reference/Edit.js +16 -8
  78. package/dist/cjs/components/EditableTable/cellTypes/reference/Edit.js.map +1 -1
  79. package/dist/cjs/components/EditableTable/cellTypes/reference/Edit.uni.driver.js +7 -0
  80. package/dist/cjs/components/EditableTable/cellTypes/reference/Edit.uni.driver.js.map +1 -1
  81. package/dist/cjs/components/EditableTable/cellTypes/reference/ReferenceEditWrapper.js +38 -0
  82. package/dist/cjs/components/EditableTable/cellTypes/reference/ReferenceEditWrapper.js.map +1 -0
  83. package/dist/cjs/components/EditableTable/cellTypes/reference/index.js +2 -0
  84. package/dist/cjs/components/EditableTable/cellTypes/reference/index.js.map +1 -1
  85. package/dist/cjs/components/EditableTable/cellTypes/reference/openCollectionContext.js +18 -0
  86. package/dist/cjs/components/EditableTable/cellTypes/reference/openCollectionContext.js.map +1 -0
  87. package/dist/cjs/components/EditableTable/cellTypes/reference/types.js.map +1 -1
  88. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  89. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  90. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  91. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  92. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  93. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  94. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  95. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  96. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  97. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  98. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  99. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  100. package/dist/cjs/components/EditableTable/types.js +8 -0
  101. package/dist/cjs/components/EditableTable/types.js.map +1 -1
  102. package/dist/cjs/components/EditableTable/useAddRow.js +2 -0
  103. package/dist/cjs/components/EditableTable/useAddRow.js.map +1 -1
  104. package/dist/cjs/components/EditableTable/useOpenCollectionOverlay.js +68 -0
  105. package/dist/cjs/components/EditableTable/useOpenCollectionOverlay.js.map +1 -0
  106. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  107. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  108. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  109. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  110. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  111. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  112. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  113. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  114. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  115. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  116. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  117. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  118. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  119. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  120. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  121. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  122. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  123. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  124. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  125. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  126. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  127. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  128. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  129. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  130. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  131. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  132. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  133. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  134. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  135. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  136. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  137. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  138. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  139. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  140. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  141. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  142. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  143. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  144. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  145. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  146. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  147. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  148. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  149. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  150. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  151. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  152. package/dist/cjs/components/common.st.css.js +4 -4
  153. package/dist/cjs/components/common.st.css.js.map +1 -1
  154. package/dist/cjs/dashboard/WixPatternsDashboardBaseProvider.js +8 -2
  155. package/dist/cjs/dashboard/WixPatternsDashboardBaseProvider.js.map +1 -1
  156. package/dist/cjs/giza/WixPatternsGizaProvider.js +7 -2
  157. package/dist/cjs/giza/WixPatternsGizaProvider.js.map +1 -1
  158. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  159. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  160. package/dist/cjs/state/CollectionViewsQueryCompareHelper.js +7 -0
  161. package/dist/cjs/state/CollectionViewsQueryCompareHelper.js.map +1 -1
  162. package/dist/cjs/state/CollectionViewsState.js +13 -0
  163. package/dist/cjs/state/CollectionViewsState.js.map +1 -1
  164. package/dist/cjs/state/CustomColumnsHistoryState.js +3 -0
  165. package/dist/cjs/state/CustomColumnsHistoryState.js.map +1 -1
  166. package/dist/cjs/state/CustomColumnsState.js +3 -0
  167. package/dist/cjs/state/CustomColumnsState.js.map +1 -1
  168. package/dist/cjs/state/EditableTable/EditableTableState.js +3 -0
  169. package/dist/cjs/state/EditableTable/EditableTableState.js.map +1 -1
  170. package/dist/cjs/state/EditableTable/types.js.map +1 -1
  171. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  172. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  173. package/dist/cjs/state/ToolbarCollectionState.js +64 -1
  174. package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
  175. package/dist/cjs/styles.global.css +2 -2
  176. package/dist/cjs/version.js +1 -1
  177. package/dist/cjs/version.js.map +1 -1
  178. package/dist/docs/index.json +15 -15
  179. package/dist/esm/bm/buildBMCairoEssentials.js +10 -1
  180. package/dist/esm/bm/buildBMCairoEssentials.js.map +1 -1
  181. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  182. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  183. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  184. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  185. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  186. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
  187. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  188. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  189. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  190. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  191. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  192. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  193. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  194. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  195. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  196. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  197. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  198. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  199. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  200. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  201. package/dist/esm/components/EditableTable/EditableCell.js +7 -3
  202. package/dist/esm/components/EditableTable/EditableCell.js.map +1 -1
  203. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  204. package/dist/esm/components/EditableTable/EditableTable.js +3 -1
  205. package/dist/esm/components/EditableTable/EditableTable.js.map +1 -1
  206. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  207. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  208. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  209. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  210. package/dist/esm/components/EditableTable/cellTypes/audio/Edit.js +4 -0
  211. package/dist/esm/components/EditableTable/cellTypes/audio/Edit.js.map +1 -0
  212. package/dist/esm/components/EditableTable/cellTypes/audio/Edit.uni.driver.js +11 -0
  213. package/dist/esm/components/EditableTable/cellTypes/audio/Edit.uni.driver.js.map +1 -0
  214. package/dist/esm/components/EditableTable/cellTypes/audio/View.js +4 -0
  215. package/dist/esm/components/EditableTable/cellTypes/audio/View.js.map +1 -0
  216. package/dist/esm/components/EditableTable/cellTypes/audio/View.uni.driver.js +12 -0
  217. package/dist/esm/components/EditableTable/cellTypes/audio/View.uni.driver.js.map +1 -0
  218. package/dist/esm/components/EditableTable/cellTypes/audio/index.js +17 -0
  219. package/dist/esm/components/EditableTable/cellTypes/audio/index.js.map +1 -0
  220. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  221. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  222. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  223. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  224. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  225. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  226. package/dist/esm/components/EditableTable/cellTypes/index.js +3 -1
  227. package/dist/esm/components/EditableTable/cellTypes/index.js.map +1 -1
  228. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  229. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  230. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  231. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  232. package/dist/esm/components/EditableTable/cellTypes/reference/Edit.js +11 -4
  233. package/dist/esm/components/EditableTable/cellTypes/reference/Edit.js.map +1 -1
  234. package/dist/esm/components/EditableTable/cellTypes/reference/Edit.uni.driver.js +7 -0
  235. package/dist/esm/components/EditableTable/cellTypes/reference/Edit.uni.driver.js.map +1 -1
  236. package/dist/esm/components/EditableTable/cellTypes/reference/ReferenceEditWrapper.js +19 -0
  237. package/dist/esm/components/EditableTable/cellTypes/reference/ReferenceEditWrapper.js.map +1 -0
  238. package/dist/esm/components/EditableTable/cellTypes/reference/index.js +2 -0
  239. package/dist/esm/components/EditableTable/cellTypes/reference/index.js.map +1 -1
  240. package/dist/esm/components/EditableTable/cellTypes/reference/openCollectionContext.js +13 -0
  241. package/dist/esm/components/EditableTable/cellTypes/reference/openCollectionContext.js.map +1 -0
  242. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  243. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  244. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  245. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  246. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  247. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  248. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  249. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  250. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  251. package/dist/esm/components/EditableTable/types.js.map +1 -1
  252. package/dist/esm/components/EditableTable/useAddRow.js +1 -0
  253. package/dist/esm/components/EditableTable/useAddRow.js.map +1 -1
  254. package/dist/esm/components/EditableTable/useOpenCollectionOverlay.js +59 -0
  255. package/dist/esm/components/EditableTable/useOpenCollectionOverlay.js.map +1 -0
  256. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  257. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  258. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  259. package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
  260. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  261. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  262. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  263. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  264. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  265. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  266. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  267. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  268. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  269. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  270. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  271. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  272. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  273. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  274. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  275. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  276. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  277. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  278. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  279. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  280. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  281. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  282. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  283. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  284. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  285. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  286. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  287. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  288. package/dist/esm/components/common.st.css.js +2 -2
  289. package/dist/esm/dashboard/WixPatternsDashboardBaseProvider.js +2 -1
  290. package/dist/esm/dashboard/WixPatternsDashboardBaseProvider.js.map +1 -1
  291. package/dist/esm/giza/WixPatternsGizaProvider.js +2 -2
  292. package/dist/esm/giza/WixPatternsGizaProvider.js.map +1 -1
  293. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  294. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  295. package/dist/esm/state/CollectionViewsQueryCompareHelper.js +7 -0
  296. package/dist/esm/state/CollectionViewsQueryCompareHelper.js.map +1 -1
  297. package/dist/esm/state/CollectionViewsState.js +13 -0
  298. package/dist/esm/state/CollectionViewsState.js.map +1 -1
  299. package/dist/esm/state/CustomColumnsHistoryState.js +3 -0
  300. package/dist/esm/state/CustomColumnsHistoryState.js.map +1 -1
  301. package/dist/esm/state/CustomColumnsState.js +3 -0
  302. package/dist/esm/state/CustomColumnsState.js.map +1 -1
  303. package/dist/esm/state/EditableTable/EditableTableState.js +3 -0
  304. package/dist/esm/state/EditableTable/EditableTableState.js.map +1 -1
  305. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  306. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  307. package/dist/esm/state/ToolbarCollectionState.js +53 -0
  308. package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
  309. package/dist/esm/styles.global.css +2 -2
  310. package/dist/esm/version.js +1 -1
  311. package/dist/types/bm/buildBMCairoEssentials.d.ts.map +1 -1
  312. package/dist/types/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.d.ts.map +1 -1
  313. package/dist/types/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.d.ts.map +1 -1
  314. package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts.map +1 -1
  315. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
  316. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  317. package/dist/types/components/EditableTable/EditableCell.d.ts.map +1 -1
  318. package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts +2 -0
  319. package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts.map +1 -1
  320. package/dist/types/components/EditableTable/EditableTable.d.ts.map +1 -1
  321. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +4 -0
  322. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
  323. package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
  324. package/dist/types/components/EditableTable/cellTypes/audio/Edit.d.ts +4 -0
  325. package/dist/types/components/EditableTable/cellTypes/audio/Edit.d.ts.map +1 -0
  326. package/dist/types/components/EditableTable/cellTypes/audio/Edit.uni.driver.d.ts +18 -0
  327. package/dist/types/components/EditableTable/cellTypes/audio/Edit.uni.driver.d.ts.map +1 -0
  328. package/dist/types/components/EditableTable/cellTypes/audio/View.d.ts +4 -0
  329. package/dist/types/components/EditableTable/cellTypes/audio/View.d.ts.map +1 -0
  330. package/dist/types/components/EditableTable/cellTypes/audio/View.uni.driver.d.ts +16 -0
  331. package/dist/types/components/EditableTable/cellTypes/audio/View.uni.driver.d.ts.map +1 -0
  332. package/dist/types/components/EditableTable/cellTypes/audio/index.d.ts +5 -0
  333. package/dist/types/components/EditableTable/cellTypes/audio/index.d.ts.map +1 -0
  334. package/dist/types/components/EditableTable/cellTypes/index.d.ts +2 -1
  335. package/dist/types/components/EditableTable/cellTypes/index.d.ts.map +1 -1
  336. package/dist/types/components/EditableTable/cellTypes/reference/Edit.d.ts.map +1 -1
  337. package/dist/types/components/EditableTable/cellTypes/reference/Edit.uni.driver.d.ts +2 -0
  338. package/dist/types/components/EditableTable/cellTypes/reference/Edit.uni.driver.d.ts.map +1 -1
  339. package/dist/types/components/EditableTable/cellTypes/reference/ReferenceEditWrapper.d.ts +13 -0
  340. package/dist/types/components/EditableTable/cellTypes/reference/ReferenceEditWrapper.d.ts.map +1 -0
  341. package/dist/types/components/EditableTable/cellTypes/reference/index.d.ts.map +1 -1
  342. package/dist/types/components/EditableTable/cellTypes/reference/openCollectionContext.d.ts +14 -0
  343. package/dist/types/components/EditableTable/cellTypes/reference/openCollectionContext.d.ts.map +1 -0
  344. package/dist/types/components/EditableTable/cellTypes/reference/types.d.ts +3 -4
  345. package/dist/types/components/EditableTable/cellTypes/reference/types.d.ts.map +1 -1
  346. package/dist/types/components/EditableTable/cellTypes/select/Edit.st.css.d.ts.map +1 -1
  347. package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
  348. package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
  349. package/dist/types/components/EditableTable/types.d.ts +18 -1
  350. package/dist/types/components/EditableTable/types.d.ts.map +1 -1
  351. package/dist/types/components/EditableTable/useAddRow.d.ts.map +1 -1
  352. package/dist/types/components/EditableTable/useOpenCollectionOverlay.d.ts +20 -0
  353. package/dist/types/components/EditableTable/useOpenCollectionOverlay.d.ts.map +1 -0
  354. package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
  355. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  356. package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts +4 -0
  357. package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts.map +1 -1
  358. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  359. package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
  360. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  361. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  362. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  363. package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
  364. package/dist/types/components/SkeletonCard/SkeletonCard.st.css.d.ts.map +1 -1
  365. package/dist/types/dashboard/WixPatternsDashboardBaseProvider.d.ts +1 -1
  366. package/dist/types/dashboard/WixPatternsDashboardBaseProvider.d.ts.map +1 -1
  367. package/dist/types/giza/WixPatternsGizaProvider.d.ts.map +1 -1
  368. package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
  369. package/dist/types/state/CollectionViewsQueryCompareHelper.d.ts.map +1 -1
  370. package/dist/types/state/CollectionViewsState.d.ts.map +1 -1
  371. package/dist/types/state/CustomColumnsHistoryState.d.ts.map +1 -1
  372. package/dist/types/state/CustomColumnsState.d.ts.map +1 -1
  373. package/dist/types/state/EditableTable/EditableTableState.d.ts +1 -0
  374. package/dist/types/state/EditableTable/EditableTableState.d.ts.map +1 -1
  375. package/dist/types/state/EditableTable/types.d.ts +8 -1
  376. package/dist/types/state/EditableTable/types.d.ts.map +1 -1
  377. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  378. package/dist/types/state/ToolbarCollectionState.d.ts +9 -0
  379. package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
  380. package/dist/types/testkit/jsdom.d.ts +8 -0
  381. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  382. package/dist/types/testkit/playwright.d.ts +4 -0
  383. package/dist/types/testkit/playwright.d.ts.map +1 -1
  384. package/dist/types/testkit/puppeteer.d.ts +4 -0
  385. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  386. package/dist/types/version.d.ts +1 -1
  387. package/package.json +6 -6
  388. package/src/bm/buildBMCairoEssentials.ts +12 -1
  389. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  390. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  391. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  392. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  393. package/src/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
  394. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  395. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  396. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  397. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  398. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  399. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  400. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  401. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  402. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  403. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  404. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  405. package/src/components/EditableTable/EditableCell.tsx +38 -22
  406. package/src/components/EditableTable/EditableTable.tsx +2 -0
  407. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  408. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  409. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  410. package/src/components/EditableTable/cellTypes/audio/Edit.tsx +22 -0
  411. package/src/components/EditableTable/cellTypes/audio/Edit.uni.driver.ts +14 -0
  412. package/src/components/EditableTable/cellTypes/audio/View.tsx +7 -0
  413. package/src/components/EditableTable/cellTypes/audio/View.uni.driver.ts +13 -0
  414. package/src/components/EditableTable/cellTypes/audio/index.ts +18 -0
  415. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  416. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  417. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  418. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  419. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  420. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  421. package/src/components/EditableTable/cellTypes/index.ts +3 -0
  422. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  423. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  424. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  425. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  426. package/src/components/EditableTable/cellTypes/reference/Edit.tsx +14 -4
  427. package/src/components/EditableTable/cellTypes/reference/Edit.uni.driver.ts +10 -0
  428. package/src/components/EditableTable/cellTypes/reference/ReferenceEditWrapper.tsx +29 -0
  429. package/src/components/EditableTable/cellTypes/reference/index.ts +2 -0
  430. package/src/components/EditableTable/cellTypes/reference/openCollectionContext.ts +18 -0
  431. package/src/components/EditableTable/cellTypes/reference/types.ts +3 -4
  432. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  433. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  434. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  435. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  436. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  437. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  438. package/src/components/EditableTable/types.ts +23 -1
  439. package/src/components/EditableTable/useAddRow.ts +2 -0
  440. package/src/components/EditableTable/useOpenCollectionOverlay.ts +77 -0
  441. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  442. package/src/components/Fade/Fade.st.css.ts +2 -2
  443. package/src/components/Heading/Heading.st.css.ts +2 -2
  444. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  445. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  446. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  447. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  448. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  449. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  450. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  451. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  452. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  453. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  454. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  455. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  456. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  457. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  458. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  459. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  460. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  461. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  462. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  463. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  464. package/src/components/common.st.css.ts +2 -2
  465. package/src/dashboard/WixPatternsDashboardBaseProvider.tsx +9 -2
  466. package/src/giza/WixPatternsGizaProvider.tsx +16 -6
  467. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  468. package/src/state/CollectionViewsQueryCompareHelper.ts +9 -0
  469. package/src/state/CollectionViewsState.ts +13 -0
  470. package/src/state/CustomColumnsHistoryState.ts +3 -0
  471. package/src/state/CustomColumnsState.ts +3 -0
  472. package/src/state/EditableTable/EditableTableState.ts +4 -0
  473. package/src/state/EditableTable/types.ts +9 -0
  474. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  475. package/src/state/ToolbarCollectionState.ts +69 -0
  476. package/src/styles.global.css +2 -2
  477. package/src/version.ts +1 -1
@@ -252,6 +252,9 @@ class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanel
252
252
  if (!newLayout || !prevLayout || newLayout === prevLayout) {
253
253
  return;
254
254
  }
255
+ if (this.table._cacheRestoredLayout === newLayout) {
256
+ return;
257
+ }
255
258
  // Views path is handled by CollectionViewsState's own reaction.
256
259
  if (this.table.viewsProps) {
257
260
  return;
@@ -1 +1 @@
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":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AAIA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,GAAA,GAAAL,OAAA;AAMA,IAAAM,4BAAA,GAAAN,OAAA;AAeA;AACA;AACO,MAAMO,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,gBAAgB;AAC3C,MAAME,8BAA8B,GAAAD,OAAA,CAAAC,8BAAA,GAAG,4BAA4B;AAE1E,MAAMC,4BAA4B,GAAIC,MAA4B,IAChEA,MAAM,KAAK,aAAa,GACpBF,8BAA8B,GAC9BF,kBAAkB;AAExB,MAAMK,qBAAqB,GAAIC,mBAA4B,IACzDC,KAAK,CAACC,OAAO,CAACF,mBAAmB,CAAC,GAC7BA,mBAAmB,GACpB,IAAI;AAaH,MAAMG,kBAAkB,SAGrBC,wDAA2B,CAAO;EAmB1CC,WAAWA,CAACC,MAAsC,EAAE;IAClD,KAAK,CAAC;MACJC,SAAS,EAAED,MAAM,CAACC,SAAS;MAC3BC,SAAS,EAAE,CACTF,MAAM,CAACC,SAAS,CAACE,WAAW,CAACC,WAAW,EACxCJ,MAAM,CAACK,KAAK,CAACC,UAAU,CAACJ,SAAS,EACjC,eAAe,CAChB,CACEK,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG;IACb,CAAC,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,0CApBH,IAAIC,GAAG,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,oBAES,IAAIE,kBAAS,CAAC,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,oBAExB,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAEE,IAAIG,oBAAY,CAAC,CAAC;IAgBlC,IAAI,CAACT,KAAK,GAAGL,MAAM,CAACK,KAAK;IAEzB,IAAIL,MAAM,CAACe,WAAW,EAAE;MACtB,MAAM;QAAEC;MAA8B,CAAC,GAAGhB,MAAM,CAACe,WAAW;MAC5D,IAAI,CAACA,WAAW,GAAG,IAAIC,6BAA6B,CAAC;QACnDC,aAAa,EAAE,IAAI;QACnBC,UAAU,EAAE;UACV,IAAIC,OAAOA,CAAA,EAAG;YACZ,OAAOnB,MAAM,CAACK,KAAK,CAACc,OAAO;UAC7B,CAAC;UACDC,eAAe,EAAEpB,MAAM,CAACK,KAAK,CAACe;QAChC,CAAC;QACDC,UAAU,EAAErB,MAAM,CAACe,WAAW;QAC9BO,kBAAkB,EAAEtB,MAAM,CAACsB;MAC7B,CAAC,CAAC;IACJ;IAEA,IAAI,CAACC,oBAAoB,GAAG,IAAI,CAAClB,KAAK,CAACC,UAAU,CAACkB,iBAAiB,GAC/D,IAAIC,oDAAyB,CAAC;MAC5BR,aAAa,EAAE,IAAI;MACnBS,OAAO,EAAE1B,MAAM,CAACC,SAAS,CAACyB;IAC5B,CAAC,CAAC,GACF,IAAI;IAER,IAAI,CAACC,mBAAmB,CAAC,CAAC;IAC1B,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,oBAAoB,EAAEC,YAAM,CAACC,KAAK;MAClCC,iBAAiB,EAAEC,cAAQ;MAC3BC,sBAAsB,EAAED,cAAQ;MAChCE,IAAI,EAAEL;IACR,CAAC,CAAC;EACJ;EAEA,IAAIM,cAAcA,CAAA,EAAa;IAC7B,MAAM;MAAErB,WAAW;MAAEV;IAAM,CAAC,GAAG,IAAI;IACnC,MAAM;MAAEc,OAAO;MAAEkB;IAAmB,CAAC,GAAGhC,KAAK;IAE7C,IAAIgC,kBAAkB,YAAlBA,kBAAkB,CAAEtB,WAAW,IAAIA,WAAW,EAAE;MAClD,OAAOA,WAAW,CAACqB,cAAc;IACnC;IAEA,OAAOjB,OAAO;EAChB;EAEA,IAAIe,sBAAsBA,CAAA,EAAG;IAC3B,MAAM;MACJE,cAAc;MACd/B,KAAK,EAAE;QACLe,eAAe,EAAE;UAAEkB,KAAK,EAAElB;QAAgB;MAC5C;IACF,CAAC,GAAG,IAAI;IAER,OAAOgB,cAAc,CAAC7B,MAAM,CAAEgC,MAAM,IAClCnB,eAAe,CAACoB,IAAI,CACjBC,cAAc,IACbA,cAAc,CAACC,EAAE,KAAKH,MAAM,CAACG,EAAE,IAAID,cAAc,CAACE,UACtD,CACF,CAAC;EACH;EAEA,MAAMd,oBAAoBA,CAAA,EAAG;IAAA,IAAAe,kBAAA;IAC3B,MAAM;MAAEvC;IAAM,CAAC,GAAG,IAAI;IACtB,MAAM;MAAEwC,WAAW;MAAEC;IAAW,CAAC,GAAGzC,KAAK;;IAEzC;IACA,IAAIyC,UAAU,EAAE;MACd;IACF;IAEA,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB,MAAMF,WAAW,CAACG,OAAO,CACvBzD,4BAA4B,EAAAqD,kBAAA,GAACvC,KAAK,CAAC4C,WAAW,qBAAjBL,kBAAA,CAAmBM,QAAQ,CAAC,EACzD7C,KAAK,CAACe,eAAe,CAACkB,KACxB,CAAC;EACH;EAEQa,4BAA4BA,CAAA,EAAG;IACrC,MAAM;MAAE9C;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAACe,eAAe,CAACgC,MAAM,CAACC,EAAE,CAAC,SAAS,EAAE,IAAI,CAACxB,oBAAoB,CAAC;IAErE,OAAO,MAAM;MACXxB,KAAK,CAACe,eAAe,CAACgC,MAAM,CAACE,GAAG,CAAC,SAAS,EAAE,IAAI,CAACzB,oBAAoB,CAAC;IACxE,CAAC;EACH;EAEA0B,eAAeA,CAAA,EAAG;IAChB,MAAM;MACJlD,KAAK,EAAE;QAAEc,OAAO;QAAEC,eAAe;QAAEoC,eAAe;QAAEnB;MAAmB,CAAC;MACxEoB;IACF,CAAC,GAAG,IAAI;IAER,MAAMC,aAAa,GACjB,CAACD,qBAAqB,IAAI,CAAC,CAACrC,eAAe,CAACkB,KAAK,CAACqB,MAAM;IAE1D,MAAMC,0BAA0B,GAAG,CAAC,GAAGxC,eAAe,CAACkB,KAAK,CAAC;IAE7D,IAAI,CAAAD,kBAAkB,oBAAlBA,kBAAkB,CAAEtB,WAAW,KAAI,IAAI,EAAE;MAC3C,OAAO,CACL,GAAG6C,0BAA0B,CAACrD,MAAM,CAAEsD,CAAC,IACrC1C,OAAO,CAAC2C,KAAK,CAAEC,CAAC,IAAKF,CAAC,CAACnB,EAAE,KAAKqB,CAAC,CAACrB,EAAE,CACpC,CAAC,EACD,GAAGvB,OAAO,CAAC6C,GAAG,CAAED,CAAC,IAAK;QACpB,MAAME,QAAQ,GAAG7C,eAAe,CAACkB,KAAK,CAAC4B,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACnB,EAAE,KAAKqB,CAAC,CAACrB,EAAE,CAAC;QACjE,IAAIuB,QAAQ,IAAI,IAAI,EAAE;UACpB,OAAOT,eAAe,CAACO,CAAC,CAAC;QAC3B;QAEA,OAAO;UACL,GAAGE,QAAQ;UACXtB,UAAU,EACRoB,CAAC,CAACI,QAAQ,KAAK,KAAK,IACpBJ,CAAC,CAACK,gCAAgC,IAClCH,QAAQ,CAACtB;QACb,CAAC;MACH,CAAC,CAAC,CACH;IACH;IAEA,MAAM0B,WAAW,GAAGlD,OAAO,CACxBZ,MAAM,CAAEwD,CAAC,IAAK3C,eAAe,CAACkB,KAAK,CAACwB,KAAK,CAAED,CAAC,IAAKA,CAAC,CAACnB,EAAE,KAAKqB,CAAC,CAACrB,EAAE,CAAC,CAAC,CAChEsB,GAAG,CAAED,CAAC,IACLP,eAAe,CAAC;MACd,GAAGO,CAAC;MACJL,aAAa,EAAEA,aAAa,IAAIK,CAAC,CAACL;IACpC,CAAC,CACH,CAAC;;IAEH;IACAW,WAAW,CAACC,OAAO,CAAEC,CAAC,IAAK;MACzB,MAAMC,aAAa,GAAGrD,OAAO,CAACsD,SAAS,CAAEV,CAAC,IAAKA,CAAC,CAACrB,EAAE,KAAK6B,CAAC,CAAC7B,EAAE,CAAC;MAC7D,MAAMgC,OAAO,GAAGF,aAAa,GAAG,CAAC,GAAGrD,OAAO,CAACqD,aAAa,GAAG,CAAC,CAAC,CAAC9B,EAAE,GAAG,IAAI;MACxE,MAAMiC,UAAU,GACdD,OAAO,IAAI,IAAI,GACXd,0BAA0B,CAACa,SAAS,CAAEV,CAAC,IAAKA,CAAC,CAACrB,EAAE,KAAKgC,OAAO,CAAC,GAAG,CAAC,GACjEF,aAAa,KAAK,CAAC,GACnB,CAAC,GACDZ,0BAA0B,CAACD,MAAM;MACvCC,0BAA0B,CAACgB,MAAM,CAACD,UAAU,EAAE,CAAC,EAAEJ,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,IAAI,CAACd,qBAAqB,GAAG,IAAI;IACjC,OAAOG,0BAA0B;EACnC;EAEAiB,qBAAqBA,CAAC;IAAEC;EAAyC,CAAC,EAAE;IAClE,MAAM;MACJ/D,WAAW;MACXV,KAAK,EAAE;QACLe,eAAe,EAAE;UAAEkB,KAAK,EAAElB;QAAgB;MAC5C;IACF,CAAC,GAAG,IAAI;IAER,IAAIL,WAAW,IAAI,IAAI,EAAE;MACvB,OAAO+D,aAAa;IACtB;IAEA,MAAM;MAAEC,eAAe,EAAEC;IAAuB,CAAC,GAC/CjE,WAAW,CAACkE,+BAA+B;IAE7C,IAAI,CAACD,sBAAsB,CAACrB,MAAM,EAAE;MAClC,OAAOmB,aAAa;IACtB;IAEA,OAAO/D,WAAW,CAACkE,+BAA+B,CAACF,eAAe,CAACxE,MAAM,CACtEgC,MAAM,IACLnB,eAAe,CAACoB,IAAI,CACjBC,cAAc,IACbA,cAAc,CAACC,EAAE,KAAKH,MAAM,CAACG,EAAE,IAAID,cAAc,CAACE,UACtD,CACJ,CAAC,CAACgB,MAAM;EACV;EAEA,IAAI3B,iBAAiBA,CAAA,EAAG;IACtB,MAAM;MACJkD,MAAM;MACN7E,KAAK,EAAE;QACLe,eAAe,EAAE;UAAEkB;QAAM;MAC3B;IACF,CAAC,GAAG,IAAI;IAER,OAAOA,KAAK,CAAC0B,GAAG,CAAC,CAAC;MAAEtB;IAAG,CAAC,MAAM;MAC5BA,EAAE;MACFC,UAAU,EAAEuC,MAAM,CAACC,SAAS,CAACzC,EAAE;IACjC,CAAC,CAAC,CAAC;EACL;EAEA,IAAI0C,gBAAgBA,CAAA,EAAG;IACrB,MAAM;MACJpD,iBAAiB;MACjB3B,KAAK,EAAE;QACLe,eAAe,EAAE;UAAEkB;QAAM;MAC3B;IACF,CAAC,GAAG,IAAI;IAER,IAAIA,KAAK,CAACqB,MAAM,KAAK3B,iBAAiB,CAAC2B,MAAM,EAAE;MAC7C,OAAO,IAAI;IACb;IAEA,KAAK,IAAI0B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG/C,KAAK,CAACqB,MAAM,EAAE0B,CAAC,EAAE,EAAE;MACrC,MAAMC,CAAC,GAAGhD,KAAK,CAAC+C,CAAC,CAAC;MAClB,MAAME,CAAC,GAAGvD,iBAAiB,CAACqD,CAAC,CAAC;MAE9B,IAAIC,CAAC,CAAC5C,EAAE,KAAK6C,CAAC,CAAC7C,EAAE,IAAI4C,CAAC,CAAC3C,UAAU,KAAK4C,CAAC,CAAC5C,UAAU,EAAE;QAClD,OAAO,IAAI;MACb;IACF;IAEA,OAAO,KAAK;EACd;EAEAR,IAAIA,CAAA,EAAG;IAAA,IAAAqD,iBAAA,EAAAC,qBAAA;IACL,MAAM;MAAEpF;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAACqF,6BAA6B,GAAG,IAAI;IAE1C,MAAMC,SAAS,GAAG,CAChB,IAAAC,cAAQ,EACN,MAAM,IAAI,CAACvF,KAAK,CAACe,eAAe,CAACkB,KAAK,EACtC,MAAOlB,eAAe,IAAK;MACzB,MAAM;QAAE8D,MAAM;QAAEW;MAAkB,CAAC,GAAG,IAAI;MAE1CX,MAAM,CAACY,KAAK,CAAC,CAAC;MACdZ,MAAM,CAACa,YAAY,CACjB3E,eAAe,CAAC4C,GAAG,CAAC,CAAC;QAAEtB,EAAE;QAAEC;MAAW,CAAC,MAAM;QAC3CL,KAAK,EAAE;UAAEI;QAAG,CAAC;QACbsD,MAAM,EAAErD,UAAU,GAAGuC,MAAM,CAACe,WAAW,GAAGf,MAAM,CAACgB;MACnD,CAAC,CAAC,CACJ,CAAC;MACD,MAAML,iBAAiB,CAACM,eAAe,CAAC,CAAC;IAC3C,CAAC,EACD;MACEC,eAAe,EAAE;IACnB,CACF,CAAC,EACD,IAAAR,cAAQ,EACN,MAAM,IAAI,CAACV,MAAM,CAACmB,cAAc,EAChC,MAAM;MACJ,MAAM;QACJhG,KAAK,EAAE;UAAEe;QAAgB;MAC3B,CAAC,GAAG,IAAI;MAER,IAAI,CAAC,IAAI,CAACgE,gBAAgB,EAAE;QAC1B;MACF;MAEAhE,eAAe,CAACkF,QAAQ,CAAC,IAAI,CAACtE,iBAAiB,EAAE;QAC/CuE,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS;MACnD,CAAC,CAAC;IACJ,CACF,CAAC,EAED,IAAI,CAACpD,4BAA4B,CAAC,CAAC,EACnC,IAAI,CAAC0C,iBAAiB,CAAC1D,IAAI,CAAC,CAAC,GAAAqD,iBAAA,GAC7B,IAAI,CAACzE,WAAW,qBAAhByE,iBAAA,CAAkBrD,IAAI,CAAC,CAAC,GAAAsD,qBAAA,GACxB,IAAI,CAAClE,oBAAoB,qBAAzBkE,qBAAA,CAA2BtD,IAAI,CAAC,CAAC,EACjC,IAAAyD,cAAQ,EACN;MAAA,IAAAY,qBAAA;MAAA,QAAAA,qBAAA,GAAM,IAAI,CAACnG,KAAK,CAAC4C,WAAW,qBAAtBuD,qBAAA,CAAwBtD,QAAQ;IAAA,GACtC,OAAOuD,SAAS,EAAEC,UAAU,KAAK;MAC/B,IAAI,CAACD,SAAS,IAAI,CAACC,UAAU,IAAID,SAAS,KAAKC,UAAU,EAAE;QACzD;MACF;MACA;MACA,IAAI,IAAI,CAACrG,KAAK,CAACyC,UAAU,EAAE;QACzB;MACF;MACA,MAAM6D,MAAM,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAAC,CAAC;MACnD,IAAID,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,CAACtG,KAAK,CAACe,eAAe,CAACyF,KAAK,CAAC,CAAC;MACpC,CAAC,MAAM;QACL,MAAM,IAAI,CAACC,iBAAiB,CAAC,CAAC;MAChC;IACF,CACF,CAAC,CACF;IAED,OAAO,MAAM;MACXnB,SAAS,CAACrB,OAAO,CAAEyC,QAAQ,IAAKA,QAAQ,oBAARA,QAAQ,CAAG,CAAC,CAAC;IAC/C,CAAC;EACH;EAEA,MAAMH,uBAAuBA,CAAA,EAAG;IAC9B,MAAM;MAAE/D;IAAY,CAAC,GAAG,IAAI,CAACxC,KAAK;IAClC,IAAI;MAAA,IAAA2G,sBAAA;MACF,MAAMC,WAAW,GAAG,MAAMxH,qBAAqB,CAC7C,MAAMoD,WAAW,CAACqE,OAAO,CACvB3H,4BAA4B,EAAAyH,sBAAA,GAAC,IAAI,CAAC3G,KAAK,CAAC4C,WAAW,qBAAtB+D,sBAAA,CAAwB9D,QAAQ,CAC/D,CACF,CAAC;MACD,IAAI,CAACH,QAAQ,GAAGkE,WAAW,IAAI,IAAI;MACnC,OAAOA,WAAW;IACpB,CAAC,CAAC,OAAOE,CAAC,EAAE;MACV,IAAIA,CAAC,YAAYC,KAAK,IAAID,CAAC,CAACE,OAAO,KAAK,8BAA8B,EAAE;QACtE,OAAO,IAAI;MACb;MAEA,MAAMF,CAAC;IACT;EACF;EAEAG,UAAUA,CAAA,EAAG;IACX,MAAM;MACJC,QAAQ;MACRlH,KAAK,EAAE;QACLmH,KAAK,EAAE;UAAEC;QAAY;MACvB;IACF,CAAC,GAAG,IAAI;IACRF,QAAQ,CAACG,OAAO,CAAC,YAAY;MAC3B,IAAI;QACF,MAAMC,2BAA2B,GAC/B,IAAI,CAACvE,MAAM,CAACwE,SAAS,CAAC,oBAAoB,CAAC;QAC7C,MAAMC,OAAO,CAACC,GAAG,CAACH,2BAA2B,CAAC3D,GAAG,CAAE+D,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,IAAI,CAACjB,iBAAiB,CAAC,CAAC;MAChC,CAAC,CAAC,OAAOK,CAAC,EAAE;QACVa,OAAO,CAACC,KAAK,CAACd,CAAC,CAAC;MAClB;IACF,CAAC,CAAC;IAEFM,WAAW,CAACnD,OAAO,CAAEhE,UAAU,IAAK;MAClC,IAAIA,UAAU,CAAC4H,KAAK,CAACC,sBAAsB,EAAE;QAC3C7H,UAAU,CAAC8H,KAAK,CAACC,WAAW,CAC1B,oBAAoB,EACpB,MAAMd,QAAQ,CAACvB,MAAM,CAACsC,OACxB,CAAC;MACH;IACF,CAAC,CAAC;EACJ;EAEA,MAAMxB,iBAAiBA,CAAA,EAAG;IAAA,IAAAyB,qBAAA;IACxB,MAAM;MACJlI,KAAK,EAAE;QACLyC,UAAU;QACV3B,OAAO;QACPC,eAAe;QACfiB,kBAAkB;QAClBmB;MACF;IACF,CAAC,GAAG,IAAI;IAER,IAAIV,UAAU,EAAE;MACd;IACF;IAEA,IACET,kBAAkB,aAAAkG,qBAAA,GAAlBlG,kBAAkB,CAAEd,oBAAoB,aAAxCgH,qBAAA,CAA0CC,6BAA6B,EACvE;MACA;IACF;IAEA,MAAMC,mBAAmB,GAAG,MAAM,IAAI,CAAC7B,uBAAuB,CAAC,CAAC;IAEhE,IAAI6B,mBAAmB,IAAI,IAAI,EAAE;MAC/B;IACF;IAEA,MAAMC,0BAA0B,GAAGvH,OAAO,CAAC6C,GAAG,CAAE2E,WAAW,IAAK;MAC9D,MAAM1E,QAAQ,GAAGwE,mBAAmB,CAACvE,IAAI,CACtCH,CAAC,IAAK,CAAAA,CAAC,oBAADA,CAAC,CAAErB,EAAE,MAAKiG,WAAW,CAACjG,EAC/B,CAAC;;MAED;MACA,IAAIuB,QAAQ,IAAI,IAAI,EAAE;QACpB,OAAOT,eAAe,CAACmF,WAAW,CAAC;MACrC;;MAEA;MACA,MAAM;QAAEjG,EAAE;QAAEkG,IAAI;QAAEzE,QAAQ;QAAEC;MAAiC,CAAC,GAC5DuE,WAAW;MAEb,OAAO;QACLjG,EAAE;QACFkG,IAAI;QACJjG,UAAU,EACR8F,mBAAmB,CAACjG,IAAI,CACrBuB,CAAC,IAAK,CAAAA,CAAC,oBAADA,CAAC,CAAErB,EAAE,MAAKA,EAAE,IAAI,CAAAqB,CAAC,oBAADA,CAAC,CAAEpB,UAAU,MAAK,KAC3C,CAAC,IACD,CAACwB,QAAQ,IACTC,gCAAgC,KAAK;MACzC,CAAC;IACH,CAAC,CAAC;IAEFhD,eAAe,CAACkF,QAAQ,CACtBjE,kBAAkB,YAAlBA,kBAAkB,CAAEtB,WAAW,GAC3B2H,0BAA0B,CAACG,IAAI,CAC7B,IAAAC,kCAAgB,EAACL,mBAAmB,EAAGtB,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAEzE,EAAE,CACpD,CAAC,GACDgG,0BACN,CAAC;EACH;EAEAK,6BAA6BA,CAAC;IAC5BC;EAGF,CAAC,EAAE;IACD,IAAI,IAAI,CAACC,8BAA8B,CAACC,GAAG,CAACF,UAAU,CAAC,EAAE;MACvD;IACF;IACA,IAAI,CAACC,8BAA8B,CAACE,GAAG,CAACH,UAAU,EAAE,IAAI,CAAC;IACzD,IAAI,CAAC3I,KAAK,CAAC+I,QAAQ,CACjB,IAAAC,wBAAe,EAACC,oCAAgC,CAAC,CAAC;MAChDN;IACF,CAAC,CACH,CAAC;EACH;EAEA,IAAIO,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAAClJ,KAAK,CAACkJ,kBAAkB;EACtC;EAEA,IAAIC,uBAAuBA,CAAA,EAAG;IAC5B,OAAO,IAAI,CAACnJ,KAAK,CAACmJ,uBAAuB;EAC3C;EAEA,IAAIC,mBAAmBA,CAAA,EAAG;IACxB,OAAO,IAAI,CAACpJ,KAAK,CAACqJ,SAAS,CAACC,UAAU;EACxC;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAACvJ,KAAK,CAAC+I,QAAQ,CACjB,IAAAC,wBAAe,EAACQ,yBAAqB,CAAC,CAAC;MACrCC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,gBAAgB;MACzBC,MAAM,EAAE;IACV,CAAC,CACH,CAAC;IACD,IAAI,CAAC3J,KAAK,CAACqJ,SAAS,CAACO,KAAK,CAAC,CAAC;EAC9B;AACF;AAAC5K,OAAA,CAAAQ,kBAAA,GAAAA,kBAAA","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","_cacheRestoredLayout","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 if (this.table._cacheRestoredLayout === newLayout) {\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":[]}
@@ -31,6 +31,9 @@ class EditableTableState {
31
31
  (0, _defineProperty2.default)(this, "onAddItemActionComplete", items => {
32
32
  return this.tableState.onAddItemActionComplete(items);
33
33
  });
34
+ (0, _defineProperty2.default)(this, "onAddItemClick", origin => {
35
+ this.toolbar.toolbarBIReporter.onAddItemClick(origin);
36
+ });
34
37
  (0, _defineProperty2.default)(this, "sort", (columnId, {
35
38
  forceDirection,
36
39
  multiple
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_bexCore","_ToolbarCollectionState","_TableState","_CellInteractionState","_CellValueState","_ClipboardState","_MutationState","_FieldActionsState","EditableTableState","constructor","params","_params$extraCellType","_params$permissions","_defineProperty2","default","ConditionalModalState","items","tableState","onAddItemActionComplete","columnId","forceDirection","multiple","collection","sort","id","clearResult","toolbar","ToolbarCollectionState","container","componentType","TableState","cellValue","CellValueState","Map","extraCellTypes","map","ct","type","cellInteraction","CellInteractionState","editingValue","cell","commitHandler","clipboard","ClipboardState","mutation","MutationState","mutations","createOptimisticActions","fieldActions","FieldActionsState","translate","permissions","showToast","refresh","makeObservable","addItemDisabled","observable","updateItemDisabled","removeItemDisabled","_allColumns","ref","editableColumns","computed","_columnMap","init","action","confirmDeleteItems","keyedItems","visibleColumns","itemsToRenderCount","c","_getKeyedItem","key","getKeyedItem","_toIndices","pos","row","findIndex","ki","rowKey","col","_toPosition","visibleIds","length","find","filter","undefined","columns","_buildCellTypeMap","addItem","afterItemKey","duplicateItem","deleteItems","rowKeys","t","deleteConfirmModal","open","theme","title","content","primaryButtonText","secondaryButtonText","primaryButtonOnClick","resolveCellTypeByColumnId","getCellDisplayValue","getCellValidation","isCellEditable","clearCells","cells","handleCellClick","shiftKey","isEditing","isCellEditing","commitEdit","get","res","editOnClick","val","focusCell","startEdit","column","resolved","toggleValue","showEditWhenFocused","value","selectionAnchor","selectRange","handleCellDoubleClick","exports"],"sources":["../../../../src/state/EditableTable/EditableTableState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport {\n CollectionOptimisticActions,\n CollectionState,\n ConditionalModalState,\n FiltersMap,\n SortOrder,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport type { MessageModalLayoutProps } from '@wix/design-system';\nimport type { KeyedItem } from '@wix/bex-core';\nimport { ToolbarCollectionState } from '../ToolbarCollectionState';\nimport { TableState } from '../TableState';\nimport { ICollectionComponentState } from '../ICollectionComponentState';\nimport { CellInteractionState } from './CellInteractionState';\nimport { CellValueState } from './CellValueState';\nimport { ClipboardState } from './ClipboardState';\nimport { MutationState } from './MutationState';\nimport { FieldActionsState } from '../FieldActionsState';\nimport type { EditableTableMutationHandlers } from './MutationState';\nimport type { Cell, CellType, EditableColumn, ValidationResult } from './types';\nimport type { FieldActions } from '../../types/SchemaConfig';\nimport type { FieldActionPermissions } from '../../components/FieldActions';\n\nexport type EditableTableFieldActionsPermissions = FieldActionPermissions;\n\nexport interface EditableTablePermissions {\n addItemDisabled?: boolean;\n updateItemDisabled?: boolean;\n removeItemDisabled?: boolean;\n fieldActions?: EditableTableFieldActionsPermissions;\n}\n\nexport interface EditableTableStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T, F>;\n readonly permissions?: EditableTablePermissions;\n readonly mutations: EditableTableMutationHandlers<T>;\n readonly fieldActions?: FieldActions;\n readonly refresh?: () => Promise<void>;\n readonly createOptimisticActions: (\n collection: CollectionState<T, F>,\n ) => CollectionOptimisticActions<T, F>;\n /**\n * Additional cell types to register alongside the built-in ones.\n * Augment `CellTypeConfigMap` to use these types on `EditableColumn.cellType`.\n */\n readonly extraCellTypes?: CellType[];\n}\n\nexport interface EditableTableStatePublicAPI<T, F extends FiltersMap> {\n /** Underlying CollectionState instance */\n readonly collection: CollectionState<T, F>;\n /** Underlying ToolbarCollectionState instance */\n readonly toolbar: ToolbarCollectionState<T, F>;\n /** Reset active filters & sorting and adds new items to the collection */\n onAddItemActionComplete(items: T[]): void;\n /** Sort by column */\n sort: (\n columnId: string,\n params?: { forceDirection?: SortOrder; multiple?: boolean },\n ) => void;\n}\n\nexport class EditableTableState<T, F extends FiltersMap>\n implements ICollectionComponentState, EditableTableStatePublicAPI<T, F>\n{\n readonly toolbar: ToolbarCollectionState<T, F>;\n readonly tableState: TableState<T, F>;\n\n readonly cellInteraction: CellInteractionState<T, F>;\n readonly cellValue: CellValueState<T, F>;\n readonly clipboard: ClipboardState<T, F>;\n readonly mutation: MutationState<T, F>;\n readonly deleteConfirmModal = new ConditionalModalState<\n Partial<MessageModalLayoutProps>\n >();\n readonly fieldActions: FieldActionsState;\n\n addItemDisabled = false;\n updateItemDisabled = false;\n removeItemDisabled = false;\n\n _allColumns: EditableColumn<T>[] = [];\n\n constructor(params: EditableTableStateParams<T, F>) {\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.collection,\n container: params.container,\n componentType: 'EditableTable',\n });\n\n this.tableState = new TableState({\n collection: params.collection,\n container: params.container,\n toolbar: this.toolbar,\n });\n\n this.cellValue = new CellValueState<T, F>(\n this,\n new Map(params.extraCellTypes?.map((ct) => [ct.type, ct])),\n );\n\n this.cellInteraction = new CellInteractionState<T, F>(\n (editingValue, cell) => {\n this.cellValue.commitHandler(editingValue, cell);\n },\n this,\n );\n this.clipboard = new ClipboardState<T, F>(this);\n this.mutation = new MutationState<T, F>(\n this,\n params.mutations,\n params.createOptimisticActions,\n );\n this.fieldActions = new FieldActionsState(\n params.collection.translate,\n params.fieldActions,\n params.permissions?.fieldActions,\n params.collection.showToast,\n params.refresh,\n );\n\n makeObservable(this, {\n addItemDisabled: observable,\n updateItemDisabled: observable,\n removeItemDisabled: observable,\n _allColumns: observable.ref,\n editableColumns: computed,\n _columnMap: computed,\n init: action,\n confirmDeleteItems: action,\n });\n\n if (params.permissions) {\n this.addItemDisabled = params.permissions.addItemDisabled ?? false;\n this.updateItemDisabled = params.permissions.updateItemDisabled ?? false;\n this.removeItemDisabled = params.permissions.removeItemDisabled ?? false;\n }\n }\n\n get collection() {\n return this.tableState.collection;\n }\n\n get keyedItems() {\n return this.tableState.keyedItems;\n }\n\n get visibleColumns() {\n return this.tableState.visibleColumns;\n }\n\n get itemsToRenderCount() {\n return this.tableState.itemsToRenderCount;\n }\n\n get _columnMap(): Map<string, EditableColumn<T>> {\n return new Map(this._allColumns.map((c) => [c.id, c]));\n }\n\n _getKeyedItem(key: string): KeyedItem<T> | undefined | null {\n return this.collection.getKeyedItem(key);\n }\n\n _toIndices(pos: Cell): { row: number; col: number } | null {\n const row = this.keyedItems.findIndex((ki) => ki.key === pos.rowKey);\n const col = this.editableColumns.findIndex((c) => c.id === pos.columnId);\n return row === -1 || col === -1 ? null : { row, col };\n }\n\n _toPosition(row: number, col: number): Cell | null {\n const ki = this.keyedItems[row];\n const c = this.editableColumns[col];\n return ki && c ? { rowKey: ki.key, columnId: c.id } : null;\n }\n\n onAddItemActionComplete = (items: T[]) => {\n return this.tableState.onAddItemActionComplete(items);\n };\n\n get editableColumns(): EditableColumn<T>[] {\n const visibleIds = this.visibleColumns.map((c) => c.id);\n if (!visibleIds.length) {\n return this._allColumns;\n }\n return visibleIds\n .map((id) => this._allColumns.find((c) => c.id === id))\n .filter((c): c is EditableColumn<T> => c !== undefined);\n }\n\n init(columns: EditableColumn<T>[]) {\n this._allColumns = columns;\n this.cellValue._buildCellTypeMap();\n return this.mutation.init();\n }\n\n addItem(afterItemKey?: string): string {\n return this.mutation.addItem(afterItemKey);\n }\n\n duplicateItem(rowKey: string) {\n this.mutation.duplicateItem(rowKey);\n }\n\n deleteItems(rowKeys: string[]) {\n this.mutation.deleteItems(rowKeys);\n }\n\n confirmDeleteItems(rowKeys: string[]) {\n const { translate: t } = this.collection;\n this.deleteConfirmModal.open({\n theme: 'destructive',\n title: t('cairo.deleteModal.title'),\n content: t('cairo.deleteModal.body'),\n primaryButtonText: t('cairo.delete.button'),\n secondaryButtonText: t('cairo.cancel.button'),\n primaryButtonOnClick: () => {\n this.deleteItems(rowKeys);\n },\n });\n }\n\n resolveCellTypeByColumnId(columnId: string) {\n return this.cellValue.resolveCellTypeByColumnId(columnId);\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n return this.cellValue.getCellDisplayValue(rowKey, columnId);\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n return this.cellValue.getCellValidation(rowKey, columnId);\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n return this.cellValue.isCellEditable(rowKey, columnId);\n }\n\n clearCells(cells: Cell[]) {\n this.cellValue.clearCells(cells);\n }\n\n handleCellClick(rowKey: string, columnId: string, shiftKey: boolean) {\n if (this.cellInteraction.isEditing) {\n if (this.cellInteraction.isCellEditing(rowKey, columnId)) {\n // Click landed inside the active editor — let the editor handle it.\n return;\n }\n // Shift-click while editing: ignore — extending a range selection during\n // an active edit is not a meaningful action.\n if (shiftKey) {\n return;\n }\n // Plain click on a different cell: commit the edit and move focus.\n this.cellInteraction.commitEdit();\n\n // If the target cell wants edit-on-click, enter edit directly.\n const col = this._columnMap.get(columnId);\n const res = col ? this.resolveCellTypeByColumnId(col.id) : null;\n if (res?.editOnClick) {\n const val = this.getCellDisplayValue(rowKey, columnId);\n if (res.editOnClick(val) && this.isCellEditable(rowKey, columnId)) {\n this.cellInteraction.focusCell(rowKey, columnId);\n this.cellInteraction.startEdit(rowKey, columnId, 'click');\n return;\n }\n }\n\n this.cellInteraction.focusCell(rowKey, columnId);\n return;\n }\n\n const column = this._columnMap.get(columnId);\n const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;\n if (resolved?.toggleValue || resolved?.showEditWhenFocused) {\n // Toggle/showEditWhenFocused cells: click focuses the cell and shows the\n // EditComponent affordance. Keyboard navigation remains active.\n this.cellInteraction.focusCell(rowKey, columnId);\n return;\n }\n\n if (resolved?.editOnClick) {\n const value = this.getCellDisplayValue(rowKey, columnId);\n if (\n resolved.editOnClick(value) &&\n this.isCellEditable(rowKey, columnId)\n ) {\n this.cellInteraction.focusCell(rowKey, columnId);\n this.cellInteraction.startEdit(rowKey, columnId, 'click');\n return;\n }\n }\n\n if (shiftKey && this.cellInteraction.selectionAnchor) {\n this.cellInteraction.selectRange(this.cellInteraction.selectionAnchor, {\n rowKey,\n columnId,\n });\n } else {\n this.cellInteraction.focusCell(rowKey, columnId);\n }\n }\n\n handleCellDoubleClick(rowKey: string, columnId: string) {\n if (this.updateItemDisabled) {\n return;\n }\n const column = this._columnMap.get(columnId);\n const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;\n // Toggle-value cells (e.g. boolean) activate on single click, not double-click.\n // Entering edit mode on double-click would apply the editing box-shadow\n // without any EditComponent being shown, causing a visual border glitch.\n if (resolved?.toggleValue || resolved?.showEditWhenFocused) {\n return;\n }\n if (this.isCellEditable(rowKey, columnId)) {\n this.cellInteraction.startEdit(rowKey, columnId, 'doubleClick');\n }\n }\n\n sort = (\n columnId: string,\n {\n forceDirection,\n multiple,\n }: { forceDirection?: SortOrder; multiple?: boolean } = {},\n ) => {\n this.collection.sort(\n { id: columnId },\n { forceDirection, clearResult: true, multiple },\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_bexCore","_ToolbarCollectionState","_TableState","_CellInteractionState","_CellValueState","_ClipboardState","_MutationState","_FieldActionsState","EditableTableState","constructor","params","_params$extraCellType","_params$permissions","_defineProperty2","default","ConditionalModalState","items","tableState","onAddItemActionComplete","origin","toolbar","toolbarBIReporter","onAddItemClick","columnId","forceDirection","multiple","collection","sort","id","clearResult","ToolbarCollectionState","container","componentType","TableState","cellValue","CellValueState","Map","extraCellTypes","map","ct","type","cellInteraction","CellInteractionState","editingValue","cell","commitHandler","clipboard","ClipboardState","mutation","MutationState","mutations","createOptimisticActions","fieldActions","FieldActionsState","translate","permissions","showToast","refresh","makeObservable","addItemDisabled","observable","updateItemDisabled","removeItemDisabled","_allColumns","ref","editableColumns","computed","_columnMap","init","action","confirmDeleteItems","keyedItems","visibleColumns","itemsToRenderCount","c","_getKeyedItem","key","getKeyedItem","_toIndices","pos","row","findIndex","ki","rowKey","col","_toPosition","visibleIds","length","find","filter","undefined","columns","_buildCellTypeMap","addItem","afterItemKey","duplicateItem","deleteItems","rowKeys","t","deleteConfirmModal","open","theme","title","content","primaryButtonText","secondaryButtonText","primaryButtonOnClick","resolveCellTypeByColumnId","getCellDisplayValue","getCellValidation","isCellEditable","clearCells","cells","handleCellClick","shiftKey","isEditing","isCellEditing","commitEdit","get","res","editOnClick","val","focusCell","startEdit","column","resolved","toggleValue","showEditWhenFocused","value","selectionAnchor","selectRange","handleCellDoubleClick","exports"],"sources":["../../../../src/state/EditableTable/EditableTableState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport {\n CollectionOptimisticActions,\n CollectionState,\n ConditionalModalState,\n FiltersMap,\n SortOrder,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport type { MessageModalLayoutProps } from '@wix/design-system';\nimport type { KeyedItem } from '@wix/bex-core';\nimport { ToolbarCollectionState } from '../ToolbarCollectionState';\nimport { TableState } from '../TableState';\nimport { ICollectionComponentState } from '../ICollectionComponentState';\nimport { CellInteractionState } from './CellInteractionState';\nimport { CellValueState } from './CellValueState';\nimport { ClipboardState } from './ClipboardState';\nimport { MutationState } from './MutationState';\nimport { FieldActionsState } from '../FieldActionsState';\nimport type { EditableTableMutationHandlers } from './MutationState';\nimport type { Cell, CellType, EditableColumn, ValidationResult } from './types';\nimport type { FieldActions } from '../../types/SchemaConfig';\nimport type { FieldActionPermissions } from '../../components/FieldActions';\n\nexport type EditableTableFieldActionsPermissions = FieldActionPermissions;\n\nexport interface EditableTablePermissions {\n addItemDisabled?: boolean;\n updateItemDisabled?: boolean;\n removeItemDisabled?: boolean;\n fieldActions?: EditableTableFieldActionsPermissions;\n}\n\nexport interface EditableTableStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T, F>;\n readonly permissions?: EditableTablePermissions;\n readonly mutations: EditableTableMutationHandlers<T>;\n readonly fieldActions?: FieldActions;\n readonly refresh?: () => Promise<void>;\n readonly createOptimisticActions: (\n collection: CollectionState<T, F>,\n ) => CollectionOptimisticActions<T, F>;\n /**\n * Additional cell types to register alongside the built-in ones.\n * Augment `CellTypeConfigMap` to use these types on `EditableColumn.cellType`.\n */\n readonly extraCellTypes?: CellType[];\n}\n\nexport interface EditableTableStatePublicAPI<T, F extends FiltersMap> {\n /** Underlying CollectionState instance */\n readonly collection: CollectionState<T, F>;\n /** Underlying ToolbarCollectionState instance */\n readonly toolbar: ToolbarCollectionState<T, F>;\n /** Reset active filters & sorting and adds new items to the collection */\n onAddItemActionComplete(items: T[]): void;\n /** Sort by column */\n sort: (\n columnId: string,\n params?: { forceDirection?: SortOrder; multiple?: boolean },\n ) => void;\n}\n\nexport class EditableTableState<T, F extends FiltersMap>\n implements ICollectionComponentState, EditableTableStatePublicAPI<T, F>\n{\n readonly toolbar: ToolbarCollectionState<T, F>;\n readonly tableState: TableState<T, F>;\n\n readonly cellInteraction: CellInteractionState<T, F>;\n readonly cellValue: CellValueState<T, F>;\n readonly clipboard: ClipboardState<T, F>;\n readonly mutation: MutationState<T, F>;\n readonly deleteConfirmModal = new ConditionalModalState<\n Partial<MessageModalLayoutProps>\n >();\n readonly fieldActions: FieldActionsState;\n\n addItemDisabled = false;\n updateItemDisabled = false;\n removeItemDisabled = false;\n\n _allColumns: EditableColumn<T>[] = [];\n\n constructor(params: EditableTableStateParams<T, F>) {\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.collection,\n container: params.container,\n componentType: 'EditableTable',\n });\n\n this.tableState = new TableState({\n collection: params.collection,\n container: params.container,\n toolbar: this.toolbar,\n });\n\n this.cellValue = new CellValueState<T, F>(\n this,\n new Map(params.extraCellTypes?.map((ct) => [ct.type, ct])),\n );\n\n this.cellInteraction = new CellInteractionState<T, F>(\n (editingValue, cell) => {\n this.cellValue.commitHandler(editingValue, cell);\n },\n this,\n );\n this.clipboard = new ClipboardState<T, F>(this);\n this.mutation = new MutationState<T, F>(\n this,\n params.mutations,\n params.createOptimisticActions,\n );\n this.fieldActions = new FieldActionsState(\n params.collection.translate,\n params.fieldActions,\n params.permissions?.fieldActions,\n params.collection.showToast,\n params.refresh,\n );\n\n makeObservable(this, {\n addItemDisabled: observable,\n updateItemDisabled: observable,\n removeItemDisabled: observable,\n _allColumns: observable.ref,\n editableColumns: computed,\n _columnMap: computed,\n init: action,\n confirmDeleteItems: action,\n });\n\n if (params.permissions) {\n this.addItemDisabled = params.permissions.addItemDisabled ?? false;\n this.updateItemDisabled = params.permissions.updateItemDisabled ?? false;\n this.removeItemDisabled = params.permissions.removeItemDisabled ?? false;\n }\n }\n\n get collection() {\n return this.tableState.collection;\n }\n\n get keyedItems() {\n return this.tableState.keyedItems;\n }\n\n get visibleColumns() {\n return this.tableState.visibleColumns;\n }\n\n get itemsToRenderCount() {\n return this.tableState.itemsToRenderCount;\n }\n\n get _columnMap(): Map<string, EditableColumn<T>> {\n return new Map(this._allColumns.map((c) => [c.id, c]));\n }\n\n _getKeyedItem(key: string): KeyedItem<T> | undefined | null {\n return this.collection.getKeyedItem(key);\n }\n\n _toIndices(pos: Cell): { row: number; col: number } | null {\n const row = this.keyedItems.findIndex((ki) => ki.key === pos.rowKey);\n const col = this.editableColumns.findIndex((c) => c.id === pos.columnId);\n return row === -1 || col === -1 ? null : { row, col };\n }\n\n _toPosition(row: number, col: number): Cell | null {\n const ki = this.keyedItems[row];\n const c = this.editableColumns[col];\n return ki && c ? { rowKey: ki.key, columnId: c.id } : null;\n }\n\n onAddItemActionComplete = (items: T[]) => {\n return this.tableState.onAddItemActionComplete(items);\n };\n\n onAddItemClick = (origin?: string) => {\n this.toolbar.toolbarBIReporter.onAddItemClick(origin);\n };\n\n get editableColumns(): EditableColumn<T>[] {\n const visibleIds = this.visibleColumns.map((c) => c.id);\n if (!visibleIds.length) {\n return this._allColumns;\n }\n return visibleIds\n .map((id) => this._allColumns.find((c) => c.id === id))\n .filter((c): c is EditableColumn<T> => c !== undefined);\n }\n\n init(columns: EditableColumn<T>[]) {\n this._allColumns = columns;\n this.cellValue._buildCellTypeMap();\n return this.mutation.init();\n }\n\n addItem(afterItemKey?: string): string {\n return this.mutation.addItem(afterItemKey);\n }\n\n duplicateItem(rowKey: string) {\n this.mutation.duplicateItem(rowKey);\n }\n\n deleteItems(rowKeys: string[]) {\n this.mutation.deleteItems(rowKeys);\n }\n\n confirmDeleteItems(rowKeys: string[]) {\n const { translate: t } = this.collection;\n this.deleteConfirmModal.open({\n theme: 'destructive',\n title: t('cairo.deleteModal.title'),\n content: t('cairo.deleteModal.body'),\n primaryButtonText: t('cairo.delete.button'),\n secondaryButtonText: t('cairo.cancel.button'),\n primaryButtonOnClick: () => {\n this.deleteItems(rowKeys);\n },\n });\n }\n\n resolveCellTypeByColumnId(columnId: string) {\n return this.cellValue.resolveCellTypeByColumnId(columnId);\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n return this.cellValue.getCellDisplayValue(rowKey, columnId);\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n return this.cellValue.getCellValidation(rowKey, columnId);\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n return this.cellValue.isCellEditable(rowKey, columnId);\n }\n\n clearCells(cells: Cell[]) {\n this.cellValue.clearCells(cells);\n }\n\n handleCellClick(rowKey: string, columnId: string, shiftKey: boolean) {\n if (this.cellInteraction.isEditing) {\n if (this.cellInteraction.isCellEditing(rowKey, columnId)) {\n // Click landed inside the active editor — let the editor handle it.\n return;\n }\n // Shift-click while editing: ignore — extending a range selection during\n // an active edit is not a meaningful action.\n if (shiftKey) {\n return;\n }\n // Plain click on a different cell: commit the edit and move focus.\n this.cellInteraction.commitEdit();\n\n // If the target cell wants edit-on-click, enter edit directly.\n const col = this._columnMap.get(columnId);\n const res = col ? this.resolveCellTypeByColumnId(col.id) : null;\n if (res?.editOnClick) {\n const val = this.getCellDisplayValue(rowKey, columnId);\n if (res.editOnClick(val) && this.isCellEditable(rowKey, columnId)) {\n this.cellInteraction.focusCell(rowKey, columnId);\n this.cellInteraction.startEdit(rowKey, columnId, 'click');\n return;\n }\n }\n\n this.cellInteraction.focusCell(rowKey, columnId);\n return;\n }\n\n const column = this._columnMap.get(columnId);\n const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;\n if (resolved?.toggleValue || resolved?.showEditWhenFocused) {\n // Toggle/showEditWhenFocused cells: click focuses the cell and shows the\n // EditComponent affordance. Keyboard navigation remains active.\n this.cellInteraction.focusCell(rowKey, columnId);\n return;\n }\n\n if (resolved?.editOnClick) {\n const value = this.getCellDisplayValue(rowKey, columnId);\n if (\n resolved.editOnClick(value) &&\n this.isCellEditable(rowKey, columnId)\n ) {\n this.cellInteraction.focusCell(rowKey, columnId);\n this.cellInteraction.startEdit(rowKey, columnId, 'click');\n return;\n }\n }\n\n if (shiftKey && this.cellInteraction.selectionAnchor) {\n this.cellInteraction.selectRange(this.cellInteraction.selectionAnchor, {\n rowKey,\n columnId,\n });\n } else {\n this.cellInteraction.focusCell(rowKey, columnId);\n }\n }\n\n handleCellDoubleClick(rowKey: string, columnId: string) {\n if (this.updateItemDisabled) {\n return;\n }\n const column = this._columnMap.get(columnId);\n const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;\n // Toggle-value cells (e.g. boolean) activate on single click, not double-click.\n // Entering edit mode on double-click would apply the editing box-shadow\n // without any EditComponent being shown, causing a visual border glitch.\n if (resolved?.toggleValue || resolved?.showEditWhenFocused) {\n return;\n }\n if (this.isCellEditable(rowKey, columnId)) {\n this.cellInteraction.startEdit(rowKey, columnId, 'doubleClick');\n }\n }\n\n sort = (\n columnId: string,\n {\n forceDirection,\n multiple,\n }: { forceDirection?: SortOrder; multiple?: boolean } = {},\n ) => {\n this.collection.sort(\n { id: columnId },\n { forceDirection, clearResult: true, multiple },\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../../src/state/EditableTable/types.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport type { 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":[]}
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 CellEditWrapperProps,\n} from '../../components/EditableTable/types';\n\nexport interface RichTextCellTypeConfig {\n textStyle?: RichTextStyleVariables;\n}\n\nexport interface Cell {\n rowKey: string;\n columnId: string;\n}\n\nexport interface CellBorder {\n top: boolean;\n bottom: boolean;\n left: boolean;\n right: boolean;\n}\n\nexport type ValidationRule =\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 /** Optional wrapper component the cell type defines to own behavior that must\n * outlive the inline editor. EditableCell mounts it around the cell content\n * and keeps it mounted across the edit↔view transition (e.g. a reference cell\n * navigating to an overlay and refreshing the table on return). The wrapper\n * hands anything the editor needs down via its own context. */\n EditWrapper?: ComponentType<CellEditWrapperProps>;\n\n /** 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 audio: 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_ = "FormPageHeader347568306";
8
+ var _namespace_ = "FormPageHeader3320704560";
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": "FormPageHeader347568306__root"
15
+ "root": "FormPageHeader3320704560__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_ = \"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":[]}
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_ = \"FormPageHeader3320704560\";\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\":\"FormPageHeader3320704560__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":[]}
@@ -9,6 +9,7 @@ var _bexCore = require("@wix/bex-core");
9
9
  var _model = require("../model");
10
10
  exports.ViewType = _model.ViewType;
11
11
  var _simplifyColumns = require("./simplifyColumns");
12
+ var _indexOfCompareFn = require("./indexOfCompareFn");
12
13
  var _ToolbarBIReporter = require("./ToolbarBIReporter");
13
14
  var _SidePanelsState = require("./SidePanelsState");
14
15
  var _RectState = require("./RectState");
@@ -88,6 +89,13 @@ class ToolbarCollectionState {
88
89
  (0, _defineProperty2.default)(this, "AddApplyFiltersButton", void 0);
89
90
  (0, _defineProperty2.default)(this, "tabs", void 0);
90
91
  (0, _defineProperty2.default)(this, "layoutState", void 0);
92
+ // Per-layout in-memory scratchpad of uncommitted column edits.
93
+ (0, _defineProperty2.default)(this, "_layoutColumnsCache", {});
94
+ // Set by the coordinator on cache-hit so per-flow reactions skip the same transition.
95
+ (0, _defineProperty2.default)(this, "_cacheRestoredLayout", void 0);
96
+ // Set by `_onSelectViewAndRefresh` when a view-select changes layout, so the coordinator
97
+ // skips flush/restore — the view-select already loaded the correct columns.
98
+ (0, _defineProperty2.default)(this, "_skipNextLayoutCoordinator", false);
91
99
  (0, _defineProperty2.default)(this, "_searchExpanded", false);
92
100
  (0, _defineProperty2.default)(this, "forceRenderIndexes", undefined);
93
101
  /**
@@ -604,7 +612,25 @@ class ToolbarCollectionState {
604
612
 
605
613
  // should be initialized before collection.init() so the sort query will be updated before the time of the first request.
606
614
  this._initDefaultSortableColumn(hasMultiLevelSorting);
607
- const disposers = [collectionDataExtension == null ? void 0 : collectionDataExtension.init(), // dataExtensionState should be initialized and beforeInitialFetch promise listener registered before customColumnsState?._tableInit() because custom columns might use data extensions
615
+ const disposers = [
616
+ // Must be registered before the per-flow layout reactions so the
617
+ // `_cacheRestoredLayout` gate they read is set first (mobx fires
618
+ // reactions in creation order).
619
+ (0, _mobx.reaction)(() => {
620
+ var _this$layoutState;
621
+ return (_this$layoutState = this.layoutState) == null ? void 0 : _this$layoutState.viewType;
622
+ }, (next, prev) => {
623
+ if (!next || !prev || next === prev) {
624
+ return;
625
+ }
626
+ if (this._skipNextLayoutCoordinator) {
627
+ this._skipNextLayoutCoordinator = false;
628
+ this._cacheRestoredLayout = next;
629
+ return;
630
+ }
631
+ this._flushColumnsToCache(prev);
632
+ this._cacheRestoredLayout = this._tryRestoreColumnsFromCache(next) ? next : undefined;
633
+ }), collectionDataExtension == null ? void 0 : collectionDataExtension.init(), // dataExtensionState should be initialized and beforeInitialFetch promise listener registered before customColumnsState?._tableInit() because custom columns might use data extensions
608
634
  customColumnsState == null ? void 0 : customColumnsState._tableInit(), viewsState == null ? void 0 : viewsState.init(), columnSizesState == null ? void 0 : columnSizesState.init(),
609
635
  // register table feature first as they might register to the collection `beforeInitialFetch`
610
636
  ...tableFeatures.map(t => t.init()), (0, _mobx.reaction)(() => this.selectedOrderedColumnsOrAll, columns => {
@@ -712,6 +738,43 @@ class ToolbarCollectionState {
712
738
  query.sort.setSortQuery(hasMultiLevelSorting ? sortQuery : sortQuery.slice(0, 1));
713
739
  }
714
740
  }
741
+ _flushColumnsToCache(layout) {
742
+ this._layoutColumnsCache[layout] = this.selectedColumns.value.map(({
743
+ id,
744
+ isSelected
745
+ }) => ({
746
+ id,
747
+ isSelected
748
+ }));
749
+ }
750
+ _tryRestoreColumnsFromCache(layout) {
751
+ var _this$customColumnsSt;
752
+ const cached = this._layoutColumnsCache[layout];
753
+ if (!cached) {
754
+ return false;
755
+ }
756
+ // Merge against current columns — mirrors `_fetchFromStorage`.
757
+ const merged = this.columns.map(column => {
758
+ const cachedEntry = cached.find(c => c.id === column.id);
759
+ if (cachedEntry == null) {
760
+ return this._toStoredColumn(column);
761
+ }
762
+ const {
763
+ id,
764
+ hideable,
765
+ hiddenFromCustomColumnsSelection
766
+ } = column;
767
+ return {
768
+ id,
769
+ isSelected: cachedEntry.isSelected || !hideable || hiddenFromCustomColumnsSelection === true
770
+ };
771
+ });
772
+ this.selectedColumns.setValue((_this$customColumnsSt = this.customColumnsState) != null && _this$customColumnsSt.dragAndDrop ? merged.sort((0, _indexOfCompareFn.indexOfCompareFn)(cached, e => e == null ? void 0 : e.id)) : merged);
773
+ return true;
774
+ }
775
+ _clearColumnsCache() {
776
+ this._layoutColumnsCache = {};
777
+ }
715
778
  _adjustSortWithNewColumns(tableColumns) {
716
779
  const {
717
780
  collection: {