@wix/patterns 1.431.0 → 1.432.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 (525) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  4. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  9. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
  10. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  11. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  12. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  14. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  16. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  20. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  22. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbar/PrimaryActionButton.js +0 -1
  24. package/dist/cjs/components/CollectionToolbar/PrimaryActionButton.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/CustomColumnsPanel/ColumnListTableListItem.js +2 -2
  32. package/dist/cjs/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
  33. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.js +30 -25
  34. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.js.map +1 -1
  35. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.js +172 -0
  36. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.js.map +1 -0
  37. package/dist/cjs/components/CustomFieldModal/CustomFieldFormV2.js +86 -22
  38. package/dist/cjs/components/CustomFieldModal/CustomFieldFormV2.js.map +1 -1
  39. package/dist/cjs/components/CustomFieldModal/CustomFieldFormV2Permissions.js +296 -0
  40. package/dist/cjs/components/CustomFieldModal/CustomFieldFormV2Permissions.js.map +1 -0
  41. package/dist/cjs/components/CustomFieldModal/CustomFieldModal.js +11 -8
  42. package/dist/cjs/components/CustomFieldModal/CustomFieldModal.js.map +1 -1
  43. package/dist/cjs/components/CustomFieldModal/CustomFieldModal.uni.driver.js +9 -0
  44. package/dist/cjs/components/CustomFieldModal/CustomFieldModal.uni.driver.js.map +1 -1
  45. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdownV2.js +19 -12
  46. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdownV2.js.map +1 -1
  47. package/dist/cjs/components/CustomFieldsPanel/FieldManagementModals.js +5 -6
  48. package/dist/cjs/components/CustomFieldsPanel/FieldManagementModals.js.map +1 -1
  49. package/dist/cjs/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.js +5 -5
  50. package/dist/cjs/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.js.map +1 -1
  51. package/dist/cjs/components/DataExtension/dataExtensionFieldManagement.js +2 -0
  52. package/dist/cjs/components/DataExtension/dataExtensionFieldManagement.js.map +1 -1
  53. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  54. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  55. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  56. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  57. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  58. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  59. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  60. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  61. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  62. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
  64. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  65. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  66. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  67. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  68. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  69. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  70. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  71. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  72. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  73. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  74. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  76. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  78. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  79. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  80. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  81. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  82. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  83. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  84. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  85. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  86. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  87. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  88. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  89. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  90. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  91. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  92. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  93. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  94. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  95. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  96. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  97. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  98. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  99. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  100. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  101. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  102. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  103. package/dist/cjs/components/EntityPage/EntityPageColumnsPanelEntry.js +32 -0
  104. package/dist/cjs/components/EntityPage/EntityPageColumnsPanelEntry.js.map +1 -0
  105. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  106. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  107. package/dist/cjs/components/EntityPage/EntityPageSidePanels.js +52 -0
  108. package/dist/cjs/components/EntityPage/EntityPageSidePanels.js.map +1 -0
  109. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  110. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  111. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  112. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  113. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  114. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  115. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  116. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  117. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  118. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  119. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  120. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  121. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  122. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  123. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  124. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  125. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  126. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  127. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  128. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  129. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  130. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  131. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  132. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  133. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  134. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  135. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  136. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  137. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  138. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  139. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +4 -0
  140. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  141. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  142. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  143. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +9 -9
  144. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  145. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  146. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  147. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  148. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  149. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +4 -4
  150. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  151. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  152. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  153. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  154. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  155. package/dist/cjs/components/ToolbarCollection/useToolbarCollectionSyncProps.js +15 -17
  156. package/dist/cjs/components/ToolbarCollection/useToolbarCollectionSyncProps.js.map +1 -1
  157. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  158. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  159. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  160. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  161. package/dist/cjs/components/common.st.css.js +4 -4
  162. package/dist/cjs/components/common.st.css.js.map +1 -1
  163. package/dist/cjs/schema/EntityPageFieldsCard.js +42 -12
  164. package/dist/cjs/schema/EntityPageFieldsCard.js.map +1 -1
  165. package/dist/cjs/schema/entityPageFieldManagement.js +45 -0
  166. package/dist/cjs/schema/entityPageFieldManagement.js.map +1 -0
  167. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  168. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  169. package/dist/cjs/state/CustomColumnsEntityPageState.js +8 -3
  170. package/dist/cjs/state/CustomColumnsEntityPageState.js.map +1 -1
  171. package/dist/cjs/state/CustomColumnsPanelStateBase.js +4 -1
  172. package/dist/cjs/state/CustomColumnsPanelStateBase.js.map +1 -1
  173. package/dist/cjs/state/CustomColumnsState.js +1 -1
  174. package/dist/cjs/state/CustomColumnsState.js.map +1 -1
  175. package/dist/cjs/state/EntityPage/EntityPageState.js +19 -1
  176. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  177. package/dist/cjs/state/EntityPageFieldsCardState.js +49 -18
  178. package/dist/cjs/state/EntityPageFieldsCardState.js.map +1 -1
  179. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  180. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  181. package/dist/cjs/state/ManageFieldsSource.js +4 -0
  182. package/dist/cjs/state/ManageFieldsSource.js.map +1 -0
  183. package/dist/cjs/state/SidePanelsState.js +11 -0
  184. package/dist/cjs/state/SidePanelsState.js.map +1 -1
  185. package/dist/cjs/styles.global.css +2 -2
  186. package/dist/cjs/version.js +1 -1
  187. package/dist/cjs/version.js.map +1 -1
  188. package/dist/docs/EntityPageState.md +2 -0
  189. package/dist/docs/index.json +32 -32
  190. package/dist/docs/useEntity.md +2 -0
  191. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  192. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  193. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  194. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  195. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  196. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
  197. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  198. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  199. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  200. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  201. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  202. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  203. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  204. package/dist/esm/components/CollectionToolbar/PrimaryActionButton.js +1 -1
  205. package/dist/esm/components/CollectionToolbar/PrimaryActionButton.js.map +1 -1
  206. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  207. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  208. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  209. package/dist/esm/components/CustomColumnsPanel/ColumnListTableListItem.js +2 -2
  210. package/dist/esm/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
  211. package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.js +11 -7
  212. package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.js.map +1 -1
  213. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.js +32 -0
  214. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.js.map +1 -0
  215. package/dist/esm/components/CustomFieldModal/CustomFieldFormV2.js +27 -6
  216. package/dist/esm/components/CustomFieldModal/CustomFieldFormV2.js.map +1 -1
  217. package/dist/esm/components/CustomFieldModal/CustomFieldFormV2Permissions.js +64 -0
  218. package/dist/esm/components/CustomFieldModal/CustomFieldFormV2Permissions.js.map +1 -0
  219. package/dist/esm/components/CustomFieldModal/CustomFieldModal.js +3 -1
  220. package/dist/esm/components/CustomFieldModal/CustomFieldModal.js.map +1 -1
  221. package/dist/esm/components/CustomFieldModal/CustomFieldModal.uni.driver.js +10 -1
  222. package/dist/esm/components/CustomFieldModal/CustomFieldModal.uni.driver.js.map +1 -1
  223. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdownV2.js +12 -12
  224. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdownV2.js.map +1 -1
  225. package/dist/esm/components/CustomFieldsPanel/FieldManagementModals.js +3 -4
  226. package/dist/esm/components/CustomFieldsPanel/FieldManagementModals.js.map +1 -1
  227. package/dist/esm/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.js +1 -1
  228. package/dist/esm/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.js.map +1 -1
  229. package/dist/esm/components/DataExtension/dataExtensionFieldManagement.js +2 -0
  230. package/dist/esm/components/DataExtension/dataExtensionFieldManagement.js.map +1 -1
  231. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  232. package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
  233. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  234. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  235. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  236. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  237. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  238. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  239. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  240. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
  241. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  242. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  243. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  244. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  245. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  246. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  247. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  248. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  249. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  250. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  251. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  252. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  253. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  254. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  255. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  256. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  257. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  258. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  259. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  260. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  261. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  262. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  263. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  264. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  265. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  266. package/dist/esm/components/EntityPage/EntityPageColumnsPanelEntry.js +16 -0
  267. package/dist/esm/components/EntityPage/EntityPageColumnsPanelEntry.js.map +1 -0
  268. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  269. package/dist/esm/components/EntityPage/EntityPageSidePanels.js +20 -0
  270. package/dist/esm/components/EntityPage/EntityPageSidePanels.js.map +1 -0
  271. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  272. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  273. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  274. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  275. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  276. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  277. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  278. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  279. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  280. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  281. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  282. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  283. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  284. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  285. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  286. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  287. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  288. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  289. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  290. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  291. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  292. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  293. package/dist/esm/components/SchemaSource/schemaFieldManagement.js +4 -0
  294. package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  295. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  296. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  297. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  298. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  299. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  300. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  301. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  302. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  303. package/dist/esm/components/ToolbarCollection/useToolbarCollectionSyncProps.js +16 -13
  304. package/dist/esm/components/ToolbarCollection/useToolbarCollectionSyncProps.js.map +1 -1
  305. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  306. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  307. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  308. package/dist/esm/components/common.st.css.js +2 -2
  309. package/dist/esm/schema/EntityPageFieldsCard.js +26 -4
  310. package/dist/esm/schema/EntityPageFieldsCard.js.map +1 -1
  311. package/dist/esm/schema/entityPageFieldManagement.js +34 -0
  312. package/dist/esm/schema/entityPageFieldManagement.js.map +1 -0
  313. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  314. package/dist/esm/state/CustomColumnsEntityPageState.js +14 -3
  315. package/dist/esm/state/CustomColumnsEntityPageState.js.map +1 -1
  316. package/dist/esm/state/CustomColumnsPanelStateBase.js +1 -1
  317. package/dist/esm/state/CustomColumnsPanelStateBase.js.map +1 -1
  318. package/dist/esm/state/CustomColumnsState.js +1 -1
  319. package/dist/esm/state/CustomColumnsState.js.map +1 -1
  320. package/dist/esm/state/EntityPage/EntityPageState.js +19 -1
  321. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  322. package/dist/esm/state/EntityPageFieldsCardState.js +34 -18
  323. package/dist/esm/state/EntityPageFieldsCardState.js.map +1 -1
  324. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  325. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  326. package/dist/esm/state/ManageFieldsSource.js +2 -0
  327. package/dist/esm/state/ManageFieldsSource.js.map +1 -0
  328. package/dist/esm/state/SidePanelsState.js +11 -0
  329. package/dist/esm/state/SidePanelsState.js.map +1 -1
  330. package/dist/esm/styles.global.css +2 -2
  331. package/dist/esm/version.js +1 -1
  332. package/dist/types/components/CmsFieldManagement/CmsFieldModal.st.css.d.ts.map +1 -1
  333. package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
  334. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +28 -28
  335. package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +11 -11
  336. package/dist/types/components/CollectionToolbar/PrimaryActionButton.d.ts.map +1 -1
  337. package/dist/types/components/CustomColumnsPanel/CustomColumnsPanel.d.ts.map +1 -1
  338. package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.d.ts +15 -0
  339. package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.d.ts.map +1 -0
  340. package/dist/types/components/CustomFieldModal/CustomFieldFormV2.d.ts.map +1 -1
  341. package/dist/types/components/CustomFieldModal/CustomFieldFormV2Permissions.d.ts +10 -0
  342. package/dist/types/components/CustomFieldModal/CustomFieldFormV2Permissions.d.ts.map +1 -0
  343. package/dist/types/components/CustomFieldModal/CustomFieldModal.d.ts.map +1 -1
  344. package/dist/types/components/CustomFieldModal/CustomFieldModal.uni.driver.d.ts +7 -3
  345. package/dist/types/components/CustomFieldModal/CustomFieldModal.uni.driver.d.ts.map +1 -1
  346. package/dist/types/components/CustomFieldModal/CustomFieldTypeDropdownV2.d.ts.map +1 -1
  347. package/dist/types/components/CustomFieldsPanel/FieldManagementModals.d.ts +5 -6
  348. package/dist/types/components/CustomFieldsPanel/FieldManagementModals.d.ts.map +1 -1
  349. package/dist/types/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.d.ts +3 -3
  350. package/dist/types/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.d.ts.map +1 -1
  351. package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.uni.driver.d.ts +9 -5
  352. package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.uni.driver.d.ts.map +1 -1
  353. package/dist/types/components/DataExtension/dataExtensionFieldManagement.d.ts.map +1 -1
  354. package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
  355. package/dist/types/components/DropdownFilter/CollectionDropdownFilter.uni.driver.d.ts +1 -1
  356. package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts +1 -1
  357. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +37 -33
  358. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
  359. package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
  360. package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
  361. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
  362. package/dist/types/components/EditableTable/cellTypes/array/Edit.st.css.d.ts.map +1 -1
  363. package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
  364. package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
  365. package/dist/types/components/EditableTable/cellTypes/date/View.st.css.d.ts.map +1 -1
  366. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -1
  367. package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
  368. package/dist/types/components/EditableTable/cellTypes/reference/Edit.uni.driver.d.ts +1 -1
  369. package/dist/types/components/EntityPage/EntityPageColumnsPanelEntry.d.ts +10 -0
  370. package/dist/types/components/EntityPage/EntityPageColumnsPanelEntry.d.ts.map +1 -0
  371. package/dist/types/components/EntityPage/EntityPageSidePanels.d.ts +16 -0
  372. package/dist/types/components/EntityPage/EntityPageSidePanels.d.ts.map +1 -0
  373. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  374. package/dist/types/components/FiltersPanel/FiltersPanel.uni.driver.d.ts +4 -4
  375. package/dist/types/components/Grid/Grid.uni.driver.d.ts +13 -13
  376. package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +38 -38
  377. package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +13 -13
  378. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +2 -2
  379. package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts +2 -2
  380. package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +11 -11
  381. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  382. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  383. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +47 -54
  384. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  385. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  386. package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
  387. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  388. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  389. package/dist/types/components/PickerModal/PickerModal.uni.driver.d.ts +1 -1
  390. package/dist/types/components/PickerModal/PickerModalLayout.uni.driver.d.ts +1 -1
  391. package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
  392. package/dist/types/components/SummaryBar/SummaryBar.uni.driver.d.ts +1 -1
  393. package/dist/types/components/Table/Table.uni.driver.d.ts +35 -31
  394. package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
  395. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +46 -42
  396. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  397. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +49 -45
  398. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
  399. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  400. package/dist/types/components/TabsFilter/TabsFilter.uni.driver.d.ts +1 -1
  401. package/dist/types/components/ToolbarCollection/useToolbarCollectionSyncProps.d.ts.map +1 -1
  402. package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
  403. package/dist/types/schema/EntityPageFieldsCard.d.ts +12 -4
  404. package/dist/types/schema/EntityPageFieldsCard.d.ts.map +1 -1
  405. package/dist/types/schema/entityPageFieldManagement.d.ts +16 -0
  406. package/dist/types/schema/entityPageFieldManagement.d.ts.map +1 -0
  407. package/dist/types/state/CustomColumnsEntityPageState.d.ts +10 -2
  408. package/dist/types/state/CustomColumnsEntityPageState.d.ts.map +1 -1
  409. package/dist/types/state/CustomColumnsPanelStateBase.d.ts +4 -3
  410. package/dist/types/state/CustomColumnsPanelStateBase.d.ts.map +1 -1
  411. package/dist/types/state/CustomColumnsState.d.ts +1 -1
  412. package/dist/types/state/CustomColumnsState.d.ts.map +1 -1
  413. package/dist/types/state/EntityPage/EntityPageState.d.ts +14 -0
  414. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  415. package/dist/types/state/EntityPageFieldsCardState.d.ts +18 -4
  416. package/dist/types/state/EntityPageFieldsCardState.d.ts.map +1 -1
  417. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  418. package/dist/types/state/ManageFieldsSource.d.ts +21 -0
  419. package/dist/types/state/ManageFieldsSource.d.ts.map +1 -0
  420. package/dist/types/state/SidePanelsState.d.ts +8 -0
  421. package/dist/types/state/SidePanelsState.d.ts.map +1 -1
  422. package/dist/types/testkit/enzyme.d.ts +236 -216
  423. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  424. package/dist/types/testkit/jsdom.d.ts +291 -263
  425. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  426. package/dist/types/testkit/playwright.d.ts +273 -249
  427. package/dist/types/testkit/playwright.d.ts.map +1 -1
  428. package/dist/types/testkit/puppeteer.d.ts +284 -260
  429. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  430. package/dist/types/version.d.ts +1 -1
  431. package/package.json +6 -6
  432. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  433. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  434. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  435. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  436. package/src/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
  437. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  438. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  439. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  440. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  441. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  442. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  443. package/src/components/CollectionToolbar/PrimaryActionButton.tsx +0 -1
  444. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  445. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  446. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  447. package/src/components/CustomColumnsPanel/ColumnListTableListItem.tsx +2 -2
  448. package/src/components/CustomColumnsPanel/CustomColumnsPanel.tsx +12 -9
  449. package/src/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.tsx +115 -0
  450. package/src/components/CustomFieldModal/CustomFieldFormV2.tsx +52 -4
  451. package/src/components/CustomFieldModal/CustomFieldFormV2Permissions.tsx +212 -0
  452. package/src/components/CustomFieldModal/CustomFieldModal.tsx +3 -1
  453. package/src/components/CustomFieldModal/CustomFieldModal.uni.driver.ts +14 -0
  454. package/src/components/CustomFieldModal/CustomFieldTypeDropdownV2.tsx +13 -10
  455. package/src/components/CustomFieldsPanel/FieldManagementModals.tsx +4 -9
  456. package/src/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.tsx +2 -6
  457. package/src/components/DataExtension/dataExtensionFieldManagement.ts +4 -0
  458. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  459. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  460. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  461. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  462. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  463. package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
  464. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  465. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  466. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  467. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  468. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  469. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  470. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  471. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  472. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  473. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  474. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  475. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  476. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  477. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  478. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  479. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  480. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  481. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  482. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  483. package/src/components/EntityPage/EntityPageColumnsPanelEntry.tsx +21 -0
  484. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  485. package/src/components/EntityPage/EntityPageSidePanels.tsx +36 -0
  486. package/src/components/Fade/Fade.st.css.ts +2 -2
  487. package/src/components/Heading/Heading.st.css.ts +2 -2
  488. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  489. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  490. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  491. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  492. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  493. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  494. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  495. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  496. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  497. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  498. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  499. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  500. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  501. package/src/components/SchemaSource/schemaFieldManagement.ts +4 -0
  502. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  503. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  504. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  505. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  506. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  507. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  508. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  509. package/src/components/ToolbarCollection/useToolbarCollectionSyncProps.ts +19 -18
  510. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  511. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  512. package/src/components/common.st.css.ts +2 -2
  513. package/src/schema/EntityPageFieldsCard.tsx +39 -6
  514. package/src/schema/entityPageFieldManagement.ts +44 -0
  515. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  516. package/src/state/CustomColumnsEntityPageState.ts +23 -4
  517. package/src/state/CustomColumnsPanelStateBase.ts +4 -6
  518. package/src/state/CustomColumnsState.ts +1 -1
  519. package/src/state/EntityPage/EntityPageState.ts +23 -1
  520. package/src/state/EntityPageFieldsCardState.ts +53 -17
  521. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  522. package/src/state/ManageFieldsSource.ts +24 -0
  523. package/src/state/SidePanelsState.ts +15 -0
  524. package/src/styles.global.css +2 -2
  525. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","CustomColumnsPanelStateBase","constructor","params","_defineProperty2","default","SelectState","keyGetter","column","id","action","value","searchValue","columnsCollection","refreshAllPages","select","onColumnClick","toggle","isChecked","container","CollectionState","events","queryName","fetchData","items","filteredColumns","filter","hiddenFromCustomColumnsSelection","filters","itemKey","item","itemName","name","initBaseObservables","makeObservable","observable","setSearchValue","bound","orderedColumns","computed","isFieldsEditable","trim","searchLower","toLowerCase","title","includes","exports"],"sources":["../../../src/state/CustomColumnsPanelStateBase.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n SelectState,\n TransitionState,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { Column } from '../model';\nimport { CustomColumnsActionName } from './CustomColumnsState';\nimport type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';\nimport type { CollectionFieldsSourceState } from './CollectionFieldsSourceState';\n\nexport interface CustomColumnsPanelStateBaseParams {\n container: WixPatternsContainer;\n queryName: string;\n}\n\nexport abstract class CustomColumnsPanelStateBase<\n T = unknown,\n F extends FiltersMap = FiltersMap,\n> {\n readonly container: WixPatternsContainer;\n readonly columnsCollection: CollectionState<Column, FiltersMap>;\n\n readonly select = new SelectState<{ id: string }>({\n keyGetter: (column) => column.id,\n });\n\n searchValue = '';\n\n onColumnClick?: (column: Column, checked: boolean) => unknown;\n\n constructor(params: CustomColumnsPanelStateBaseParams) {\n this.container = params.container;\n\n this.columnsCollection = new CollectionState({\n ...this.container,\n events: {},\n queryName: params.queryName,\n fetchData: async () => {\n const items = this.filteredColumns.filter(\n (column) => column.hiddenFromCustomColumnsSelection !== true,\n );\n return { items };\n },\n filters: {},\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n });\n }\n\n protected initBaseObservables() {\n makeObservable(this, {\n searchValue: observable,\n setSearchValue: action.bound,\n orderedColumns: computed,\n filteredColumns: computed,\n });\n }\n\n abstract get orderedColumns(): Column[];\n\n abstract get showFieldTypeIcons(): boolean;\n\n /** Whether the panel manages schema fields rather than picking columns —\n * drives its title and subtitle. Sources that carry their own field\n * management report it through `collectionFieldsSource` instead. */\n get isFieldsEditable(): boolean {\n return false;\n }\n\n abstract get collectionFieldsSource():\n | CollectionFieldsSourceState\n | null\n | undefined;\n\n abstract get sidePanelTransition(): TransitionState<string> | undefined;\n\n abstract get dragAndDrop(): CustomColumnsDragAndDropState<T, F> | undefined;\n\n abstract customizeColumnsInSidePanelBi(params: {\n actionName: CustomColumnsActionName;\n }): void;\n\n abstract onClose(): void;\n\n abstract init(): () => void;\n\n get filteredColumns(): Column[] {\n const { orderedColumns, searchValue } = this;\n\n if (!searchValue.trim()) {\n return orderedColumns;\n }\n\n const searchLower = searchValue.toLowerCase();\n return orderedColumns.filter((column) => {\n const name =\n column.name ||\n (typeof column.title === 'string' ? column.title : column.id);\n return name.toLowerCase().includes(searchLower);\n });\n }\n\n setSearchValue = action((value: string) => {\n this.searchValue = value;\n this.columnsCollection.refreshAllPages();\n });\n\n onColumnCheckboxToggle = action((column: Column) => {\n const { select, onColumnClick } = this;\n select.toggle(column);\n onColumnClick?.(column, select.isChecked(column.id));\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAOA,IAAAC,KAAA,GAAAD,OAAA;AAWO,MAAeE,2BAA2B,CAG/C;EAYAC,WAAWA,CAACC,MAAyC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBARrC,IAAIC,oBAAW,CAAiB;MAChDC,SAAS,EAAGC,MAAM,IAAKA,MAAM,CAACC;IAChC,CAAC,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,uBAEY,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,0BA4EC,IAAAK,YAAM,EAAEC,KAAa,IAAK;MACzC,IAAI,CAACC,WAAW,GAAGD,KAAK;MACxB,IAAI,CAACE,iBAAiB,CAACC,eAAe,CAAC,CAAC;IAC1C,CAAC,CAAC;IAAA,IAAAV,gBAAA,CAAAC,OAAA,kCAEuB,IAAAK,YAAM,EAAEF,MAAc,IAAK;MAClD,MAAM;QAAEO,MAAM;QAAEC;MAAc,CAAC,GAAG,IAAI;MACtCD,MAAM,CAACE,MAAM,CAACT,MAAM,CAAC;MACrBQ,aAAa,YAAbA,aAAa,CAAGR,MAAM,EAAEO,MAAM,CAACG,SAAS,CAACV,MAAM,CAACC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC;IAhFA,IAAI,CAACU,SAAS,GAAGhB,MAAM,CAACgB,SAAS;IAEjC,IAAI,CAACN,iBAAiB,GAAG,IAAIO,wBAAe,CAAC;MAC3C,GAAG,IAAI,CAACD,SAAS;MACjBE,MAAM,EAAE,CAAC,CAAC;MACVC,SAAS,EAAEnB,MAAM,CAACmB,SAAS;MAC3BC,SAAS,EAAE,MAAAA,CAAA,KAAY;QACrB,MAAMC,KAAK,GAAG,IAAI,CAACC,eAAe,CAACC,MAAM,CACtClB,MAAM,IAAKA,MAAM,CAACmB,gCAAgC,KAAK,IAC1D,CAAC;QACD,OAAO;UAAEH;QAAM,CAAC;MAClB,CAAC;MACDI,OAAO,EAAE,CAAC,CAAC;MACXC,OAAO,EAAGC,IAAI,IAAKA,IAAI,CAACrB,EAAE;MAC1BsB,QAAQ,EAAGD,IAAI,IAAKA,IAAI,CAACE;IAC3B,CAAC,CAAC;EACJ;EAEUC,mBAAmBA,CAAA,EAAG;IAC9B,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBtB,WAAW,EAAEuB,gBAAU;MACvBC,cAAc,EAAE1B,YAAM,CAAC2B,KAAK;MAC5BC,cAAc,EAAEC,cAAQ;MACxBd,eAAe,EAAEc;IACnB,CAAC,CAAC;EACJ;EAMA;AACF;AACA;EACE,IAAIC,gBAAgBA,CAAA,EAAY;IAC9B,OAAO,KAAK;EACd;EAmBA,IAAIf,eAAeA,CAAA,EAAa;IAC9B,MAAM;MAAEa,cAAc;MAAE1B;IAAY,CAAC,GAAG,IAAI;IAE5C,IAAI,CAACA,WAAW,CAAC6B,IAAI,CAAC,CAAC,EAAE;MACvB,OAAOH,cAAc;IACvB;IAEA,MAAMI,WAAW,GAAG9B,WAAW,CAAC+B,WAAW,CAAC,CAAC;IAC7C,OAAOL,cAAc,CAACZ,MAAM,CAAElB,MAAM,IAAK;MACvC,MAAMwB,IAAI,GACRxB,MAAM,CAACwB,IAAI,KACV,OAAOxB,MAAM,CAACoC,KAAK,KAAK,QAAQ,GAAGpC,MAAM,CAACoC,KAAK,GAAGpC,MAAM,CAACC,EAAE,CAAC;MAC/D,OAAOuB,IAAI,CAACW,WAAW,CAAC,CAAC,CAACE,QAAQ,CAACH,WAAW,CAAC;IACjD,CAAC,CAAC;EACJ;AAYF;AAACI,OAAA,CAAA7C,2BAAA,GAAAA,2BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","CustomColumnsPanelStateBase","constructor","params","_defineProperty2","default","SelectState","keyGetter","column","id","action","value","searchValue","columnsCollection","refreshAllPages","select","onColumnClick","toggle","isChecked","container","CollectionState","events","queryName","fetchData","items","filteredColumns","filter","hiddenFromCustomColumnsSelection","filters","itemKey","item","itemName","name","initBaseObservables","makeObservable","observable","setSearchValue","bound","orderedColumns","computed","isFieldsEditable","trim","searchLower","toLowerCase","title","includes","exports"],"sources":["../../../src/state/CustomColumnsPanelStateBase.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n SelectState,\n TransitionState,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { Column } from '../model';\nimport { CustomColumnsActionName } from './CustomColumnsState';\nimport type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';\nimport type { ManageFieldsSource } from './ManageFieldsSource';\n\nexport interface CustomColumnsPanelStateBaseParams {\n container: WixPatternsContainer;\n queryName: string;\n}\n\nexport abstract class CustomColumnsPanelStateBase<\n T = unknown,\n F extends FiltersMap = FiltersMap,\n> {\n readonly container: WixPatternsContainer;\n readonly columnsCollection: CollectionState<Column, FiltersMap>;\n\n readonly select = new SelectState<{ id: string }>({\n keyGetter: (column) => column.id,\n });\n\n searchValue = '';\n\n onColumnClick?: (column: Column, checked: boolean) => unknown;\n\n constructor(params: CustomColumnsPanelStateBaseParams) {\n this.container = params.container;\n\n this.columnsCollection = new CollectionState({\n ...this.container,\n events: {},\n queryName: params.queryName,\n fetchData: async () => {\n const items = this.filteredColumns.filter(\n (column) => column.hiddenFromCustomColumnsSelection !== true,\n );\n return { items };\n },\n filters: {},\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n });\n }\n\n protected initBaseObservables() {\n makeObservable(this, {\n searchValue: observable,\n setSearchValue: action.bound,\n orderedColumns: computed,\n filteredColumns: computed,\n });\n }\n\n abstract get orderedColumns(): Column[];\n\n abstract get showFieldTypeIcons(): boolean;\n\n /** Whether the panel manages schema fields rather than picking columns —\n * drives its title and subtitle. Sources that carry their own field\n * management report it through `manageFieldsSource` instead. */\n get isFieldsEditable(): boolean {\n return false;\n }\n\n /** Add / edit / delete field, when the surface offers it. */\n abstract get manageFieldsSource(): ManageFieldsSource | null | undefined;\n\n abstract get sidePanelTransition(): TransitionState<string> | undefined;\n\n abstract get dragAndDrop(): CustomColumnsDragAndDropState<T, F> | undefined;\n\n abstract customizeColumnsInSidePanelBi(params: {\n actionName: CustomColumnsActionName;\n }): void;\n\n abstract onClose(): void;\n\n abstract init(): () => void;\n\n get filteredColumns(): Column[] {\n const { orderedColumns, searchValue } = this;\n\n if (!searchValue.trim()) {\n return orderedColumns;\n }\n\n const searchLower = searchValue.toLowerCase();\n return orderedColumns.filter((column) => {\n const name =\n column.name ||\n (typeof column.title === 'string' ? column.title : column.id);\n return name.toLowerCase().includes(searchLower);\n });\n }\n\n setSearchValue = action((value: string) => {\n this.searchValue = value;\n this.columnsCollection.refreshAllPages();\n });\n\n onColumnCheckboxToggle = action((column: Column) => {\n const { select, onColumnClick } = this;\n select.toggle(column);\n onColumnClick?.(column, select.isChecked(column.id));\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAOA,IAAAC,KAAA,GAAAD,OAAA;AAWO,MAAeE,2BAA2B,CAG/C;EAYAC,WAAWA,CAACC,MAAyC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBARrC,IAAIC,oBAAW,CAAiB;MAChDC,SAAS,EAAGC,MAAM,IAAKA,MAAM,CAACC;IAChC,CAAC,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,uBAEY,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,0BA0EC,IAAAK,YAAM,EAAEC,KAAa,IAAK;MACzC,IAAI,CAACC,WAAW,GAAGD,KAAK;MACxB,IAAI,CAACE,iBAAiB,CAACC,eAAe,CAAC,CAAC;IAC1C,CAAC,CAAC;IAAA,IAAAV,gBAAA,CAAAC,OAAA,kCAEuB,IAAAK,YAAM,EAAEF,MAAc,IAAK;MAClD,MAAM;QAAEO,MAAM;QAAEC;MAAc,CAAC,GAAG,IAAI;MACtCD,MAAM,CAACE,MAAM,CAACT,MAAM,CAAC;MACrBQ,aAAa,YAAbA,aAAa,CAAGR,MAAM,EAAEO,MAAM,CAACG,SAAS,CAACV,MAAM,CAACC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC;IA9EA,IAAI,CAACU,SAAS,GAAGhB,MAAM,CAACgB,SAAS;IAEjC,IAAI,CAACN,iBAAiB,GAAG,IAAIO,wBAAe,CAAC;MAC3C,GAAG,IAAI,CAACD,SAAS;MACjBE,MAAM,EAAE,CAAC,CAAC;MACVC,SAAS,EAAEnB,MAAM,CAACmB,SAAS;MAC3BC,SAAS,EAAE,MAAAA,CAAA,KAAY;QACrB,MAAMC,KAAK,GAAG,IAAI,CAACC,eAAe,CAACC,MAAM,CACtClB,MAAM,IAAKA,MAAM,CAACmB,gCAAgC,KAAK,IAC1D,CAAC;QACD,OAAO;UAAEH;QAAM,CAAC;MAClB,CAAC;MACDI,OAAO,EAAE,CAAC,CAAC;MACXC,OAAO,EAAGC,IAAI,IAAKA,IAAI,CAACrB,EAAE;MAC1BsB,QAAQ,EAAGD,IAAI,IAAKA,IAAI,CAACE;IAC3B,CAAC,CAAC;EACJ;EAEUC,mBAAmBA,CAAA,EAAG;IAC9B,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBtB,WAAW,EAAEuB,gBAAU;MACvBC,cAAc,EAAE1B,YAAM,CAAC2B,KAAK;MAC5BC,cAAc,EAAEC,cAAQ;MACxBd,eAAe,EAAEc;IACnB,CAAC,CAAC;EACJ;EAMA;AACF;AACA;EACE,IAAIC,gBAAgBA,CAAA,EAAY;IAC9B,OAAO,KAAK;EACd;;EAEA;;EAeA,IAAIf,eAAeA,CAAA,EAAa;IAC9B,MAAM;MAAEa,cAAc;MAAE1B;IAAY,CAAC,GAAG,IAAI;IAE5C,IAAI,CAACA,WAAW,CAAC6B,IAAI,CAAC,CAAC,EAAE;MACvB,OAAOH,cAAc;IACvB;IAEA,MAAMI,WAAW,GAAG9B,WAAW,CAAC+B,WAAW,CAAC,CAAC;IAC7C,OAAOL,cAAc,CAACZ,MAAM,CAAElB,MAAM,IAAK;MACvC,MAAMwB,IAAI,GACRxB,MAAM,CAACwB,IAAI,KACV,OAAOxB,MAAM,CAACoC,KAAK,KAAK,QAAQ,GAAGpC,MAAM,CAACoC,KAAK,GAAGpC,MAAM,CAACC,EAAE,CAAC;MAC/D,OAAOuB,IAAI,CAACW,WAAW,CAAC,CAAC,CAACE,QAAQ,CAACH,WAAW,CAAC;IACjD,CAAC,CAAC;EACJ;AAYF;AAACI,OAAA,CAAA7C,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -368,7 +368,7 @@ class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanel
368
368
  get showFieldTypeIcons() {
369
369
  return this.table.showFieldTypeIcons;
370
370
  }
371
- get collectionFieldsSource() {
371
+ get manageFieldsSource() {
372
372
  return this.table.collectionFieldsSource;
373
373
  }
374
374
  get sidePanelTransition() {
@@ -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","_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","collectionFieldsSource","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 { CustomColumnsPanelStateBase } from './CustomColumnsPanelStateBase';\n\nexport type { CustomColumnsDragAndDropState };\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 collectionFieldsSource() {\n return this.table.collectionFieldsSource;\n }\n\n get sidePanelTransition() {\n return this.table.sidePanel.transition;\n }\n\n onClose() {\n this.table.reportBi(\n withoutDefaults(cairoFiltersPanelUsed)({\n isOpened: false,\n feature: 'Custom Columns',\n origin: 'X Button',\n }),\n );\n this.table.sidePanel.close();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","_CustomColumnsHistoryState","_indexOfCompareFn","_events","_bi","_CustomColumnsPanelStateBase","CUSTOM_COLUMNS_KEY","exports","SPREADSHEET_CUSTOM_COLUMNS_KEY","getCustomColumnsKeyForLayout","layout","asStoredColumnsOrNull","customColumnsResult","Array","isArray","CustomColumnsState","CustomColumnsPanelStateBase","constructor","params","container","queryName","environment","componentId","table","collection","filter","Boolean","join","_defineProperty2","default","Map","TaskState","EventEmitter","dragAndDrop","CustomColumnsDragAndDropState","customColumns","dataSource","columns","selectedColumns","components","modalsContainerRef","customColumnsHistory","persistQueryToUrl","CustomColumnsHistoryState","history","initBaseObservables","makeObservable","persistCustomColumns","action","bound","toSelectedColumns","computed","selectedOrderedColumns","init","orderedColumns","customColumnsState","value","column","some","selectedColumn","id","isSelected","_table$layoutState","dataCapsule","viewsProps","_touched","setItem","layoutState","viewType","registerSelectedColumnChange","events","on","off","mergeNewColumns","_toStoredColumn","_didFirstColumnsMerge","defaultHidden","length","mergeTargetSelectedColumns","s","every","c","map","existing","find","hideable","hiddenFromCustomColumnsSelection","diffColumns","forEach","d","originalIndex","findIndex","afterId","afterIndex","splice","getStickyColumnsCount","stickyColumns","reorderDisabled","reorderDisabledColumns","orderedColumnsByReorderDisabled","select","isChecked","selectionChanged","i","a","b","_this$dragAndDrop","_this$customColumnsHi","customColumnsStateInitialized","disposers","reaction","columnsCollection","clear","forceSetMany","status","finalStatus","startStatus","refreshAllPages","fireImmediately","selectedValues","setValue","emitEvents","_this$table$layoutSta","newLayout","prevLayout","_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","manageFieldsSource","collectionFieldsSource","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 { CustomColumnsPanelStateBase } from './CustomColumnsPanelStateBase';\n\nexport type { CustomColumnsDragAndDropState };\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 manageFieldsSource() {\n return this.table.collectionFieldsSource;\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;AAKA,IAAAM,4BAAA,GAAAN,OAAA;AAcA;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,IAAI,IAAI,CAACrG,KAAK,CAACsG,oBAAoB,KAAKF,SAAS,EAAE;QACjD;MACF;MACA;MACA,IAAI,IAAI,CAACpG,KAAK,CAACyC,UAAU,EAAE;QACzB;MACF;MACA,MAAM8D,MAAM,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAAC,CAAC;MACnD,IAAID,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,CAACvG,KAAK,CAACe,eAAe,CAAC0F,KAAK,CAAC,CAAC;MACpC,CAAC,MAAM;QACL,MAAM,IAAI,CAACC,iBAAiB,CAAC,CAAC;MAChC;IACF,CACF,CAAC,CACF;IAED,OAAO,MAAM;MACXpB,SAAS,CAACrB,OAAO,CAAE0C,QAAQ,IAAKA,QAAQ,oBAARA,QAAQ,CAAG,CAAC,CAAC;IAC/C,CAAC;EACH;EAEA,MAAMH,uBAAuBA,CAAA,EAAG;IAC9B,MAAM;MAAEhE;IAAY,CAAC,GAAG,IAAI,CAACxC,KAAK;IAClC,IAAI;MAAA,IAAA4G,sBAAA;MACF,MAAMC,WAAW,GAAG,MAAMzH,qBAAqB,CAC7C,MAAMoD,WAAW,CAACsE,OAAO,CACvB5H,4BAA4B,EAAA0H,sBAAA,GAAC,IAAI,CAAC5G,KAAK,CAAC4C,WAAW,qBAAtBgE,sBAAA,CAAwB/D,QAAQ,CAC/D,CACF,CAAC;MACD,IAAI,CAACH,QAAQ,GAAGmE,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;MACRnH,KAAK,EAAE;QACLoH,KAAK,EAAE;UAAEC;QAAY;MACvB;IACF,CAAC,GAAG,IAAI;IACRF,QAAQ,CAACG,OAAO,CAAC,YAAY;MAC3B,IAAI;QACF,MAAMC,2BAA2B,GAC/B,IAAI,CAACxE,MAAM,CAACyE,SAAS,CAAC,oBAAoB,CAAC;QAC7C,MAAMC,OAAO,CAACC,GAAG,CAACH,2BAA2B,CAAC5D,GAAG,CAAEgE,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,CAACpD,OAAO,CAAEhE,UAAU,IAAK;MAClC,IAAIA,UAAU,CAAC6H,KAAK,CAACC,sBAAsB,EAAE;QAC3C9H,UAAU,CAAC+H,KAAK,CAACC,WAAW,CAC1B,oBAAoB,EACpB,MAAMd,QAAQ,CAACxB,MAAM,CAACuC,OACxB,CAAC;MACH;IACF,CAAC,CAAC;EACJ;EAEA,MAAMxB,iBAAiBA,CAAA,EAAG;IAAA,IAAAyB,qBAAA;IACxB,MAAM;MACJnI,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,aAAAmG,qBAAA,GAAlBnG,kBAAkB,CAAEd,oBAAoB,aAAxCiH,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,GAAGxH,OAAO,CAAC6C,GAAG,CAAE4E,WAAW,IAAK;MAC9D,MAAM3E,QAAQ,GAAGyE,mBAAmB,CAACxE,IAAI,CACtCH,CAAC,IAAK,CAAAA,CAAC,oBAADA,CAAC,CAAErB,EAAE,MAAKkG,WAAW,CAAClG,EAC/B,CAAC;;MAED;MACA,IAAIuB,QAAQ,IAAI,IAAI,EAAE;QACpB,OAAOT,eAAe,CAACoF,WAAW,CAAC;MACrC;;MAEA;MACA,MAAM;QAAElG,EAAE;QAAEmG,IAAI;QAAE1E,QAAQ;QAAEC;MAAiC,CAAC,GAC5DwE,WAAW;MAEb,OAAO;QACLlG,EAAE;QACFmG,IAAI;QACJlG,UAAU,EACR+F,mBAAmB,CAAClG,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,GAC3B4H,0BAA0B,CAACG,IAAI,CAC7B,IAAAC,kCAAgB,EAACL,mBAAmB,EAAGtB,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAE1E,EAAE,CACpD,CAAC,GACDiG,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,CAAC5I,KAAK,CAACgJ,QAAQ,CACjB,IAAAC,wBAAe,EAACC,oCAAgC,CAAC,CAAC;MAChDN;IACF,CAAC,CACH,CAAC;EACH;EAEA,IAAIO,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACnJ,KAAK,CAACmJ,kBAAkB;EACtC;EAEA,IAAIC,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACpJ,KAAK,CAACqJ,sBAAsB;EAC1C;EAEA,IAAIC,mBAAmBA,CAAA,EAAG;IACxB,OAAO,IAAI,CAACtJ,KAAK,CAACuJ,SAAS,CAACC,UAAU;EACxC;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAACzJ,KAAK,CAACgJ,QAAQ,CACjB,IAAAC,wBAAe,EAACS,yBAAqB,CAAC,CAAC;MACrCC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,gBAAgB;MACzBC,MAAM,EAAE;IACV,CAAC,CACH,CAAC;IACD,IAAI,CAAC7J,KAAK,CAACuJ,SAAS,CAACO,KAAK,CAAC,CAAC;EAC9B;AACF;AAAC9K,OAAA,CAAAQ,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -30,6 +30,18 @@ class EntityPageState {
30
30
  (0, _defineProperty2.default)(this, "_parentPageId", void 0);
31
31
  (0, _defineProperty2.default)(this, "_parentPath", void 0);
32
32
  (0, _defineProperty2.default)(this, "actionsBarConfig", void 0);
33
+ /**
34
+ * The page's side-panel host, the way a table's lives on its toolbar.
35
+ * Attached by the first feature that needs one, through
36
+ * `SidePanelsState.setOnPage` — so a page with no panels neither builds nor
37
+ * bundles the side-panel code. Everything on the page shares this host, which
38
+ * is what keeps one panel open at a time.
39
+ */
40
+ (0, _defineProperty2.default)(this, "panels", null);
41
+ /** The fields card's "Manage fields" state, set by the card that owns it —
42
+ * the panel is rendered by the host with no props and reads it from here,
43
+ * as a table's panel reads `toolbar.customColumnsState`. */
44
+ (0, _defineProperty2.default)(this, "customColumnsState", null);
33
45
  (0, _defineProperty2.default)(this, "schemaSource", void 0);
34
46
  (0, _defineProperty2.default)(this, "container", void 0);
35
47
  (0, _defineProperty2.default)(this, "reportBI", void 0);
@@ -70,6 +82,7 @@ class EntityPageState {
70
82
  setEntity: _mobx.action,
71
83
  _schema: _mobx.observable.ref,
72
84
  setSchema: _mobx.action,
85
+ customColumnsState: _mobx.observable.ref,
73
86
  isFormDirty: _mobx.computed,
74
87
  _withinRouter: _mobx.computed
75
88
  });
@@ -106,7 +119,12 @@ class EntityPageState {
106
119
  (_this$fieldsContainer = this.fieldsContainer) == null || _this$fieldsContainer.init();
107
120
  const [data, loadedSchema] = await Promise.all([this.fetch(), (_this$schemaSource = this.schemaSource) == null ? void 0 : _this$schemaSource.loadSchema(), container.initTask.status.promise, (_this$fieldsContainer2 = this.fieldsContainer) == null ? void 0 : _this$fieldsContainer2.initTask.status.promise]);
108
121
  this.setEntity(data.entity ?? null);
109
- if (loadedSchema) {
122
+ // Don't overwrite a schema something already set. A fields card mirrors the
123
+ // schema its field mutations merge into, and `loadSchema` is memoized — so
124
+ // setting it here again would put the pre-mutation fields map back and drop
125
+ // a field the server already has. Nothing is lost by keeping the newer one:
126
+ // this only ever re-sets the very same object (e.g. on `retryFetch`).
127
+ if (loadedSchema && !this.schema) {
110
128
  this.setSchema(loadedSchema.schema);
111
129
  }
112
130
  (_this$bi$appLoaded = (_this$bi = this.bi).appLoaded) == null || _this$bi$appLoaded.call(_this$bi);
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","_schemaFieldsContainer","_EntityPageStateBIReporter","_events","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","entity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","observable","ref","setEntity","_schema","setSchema","isFormDirty","computed","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","isMobileDevice","formState","isSubmitSuccessful","_isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$fieldsContainer","_this$schemaSource","_this$fieldsContainer2","_this$bi$appLoaded","_this$bi","data","loadedSchema","Promise","all","loadSchema","status","promise","schema","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","_this$actionsBarConfi","reportButtonClick","ctaName","additionalInfo","actionsBarConfig","cancelCta","biAdditionalInfo","navigateToParent","updatedEntity","entityStringKey","entityObject","navigate","state","navigateTo","pageId","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","undefined","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","isLoading","events","emit","isValid","widgetsFormData","validate","_this$actionsBarConfi2","saveCta","run","savedEntity","submitSuccessful","_this$actionsBarConfi3","onSaveResult","errorMonitor","captureException","setError","_this$actionsBarConfi4","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n WixPatternsContainer,\n ActionsBarConfig,\n isMobileDevice,\n SchemaSource,\n Schema,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport type { PatternsFieldsAppContainer } from '@wix/patterns-fields/providers';\nimport { fieldsContainerOf } from '../../model/schemaFieldsContainer';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\nimport { WixPatternsRouterState } from '../WixPatternsRouterState';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\ninterface EntityPageStateParamsBase<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns An object with a `message` and an `action` object. Alternatively, it can return an object with an optional `message` and a `tryAgain` flag, or a string message.\n * The previous return types are still supported but are now deprecated.\n */\n saveErrorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) =>\n | {\n message?: string;\n /**\n * @deprecated use `action` instead\n */\n tryAgain?: boolean;\n action?: { text: string; onClick: () => void };\n }\n | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n form: UseFormReturn<V>;\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n\n /**\n * An object representing the router state\n */\n routerState?: WixPatternsRouterState | null;\n\n /**\n * An optional object to override the actions bar.\n */\n actionsBarConfig?: ActionsBarConfig;\n\n /**\n * An optional schema source describing how to load the schema and access\n * the entity's data. When present, the page can read fields from the source\n * instead of relying only on hand-wired fetch/onSave callbacks.\n */\n schemaSource?: SchemaSource<T>;\n}\n\nexport type EntityPageStateParams<\n T,\n V extends FieldValues = FieldValues,\n> = EntityPageStateParamsBase<T, V>;\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n _schema: Schema | null = null;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n actionsBarConfig?: EntityPageStateParams<T>['actionsBarConfig'];\n\n readonly schemaSource?: SchemaSource<T>;\n\n /**\n * The container the page's field renderers are built with — the one the schema\n * carries, so a table on the same schema shares it. Initialized in `init()`\n * below, next to the schema load the fields also wait on; the schema-entry\n * EntityPage puts it in React context.\n */\n get fieldsContainer(): PatternsFieldsAppContainer | undefined {\n return fieldsContainerOf(this.schemaSource);\n }\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _routerState: WixPatternsRouterState | null = null;\n\n readonly formPage: FormPageState<V>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n\n this._routerState = params.routerState ?? null;\n\n if (this._routerState) {\n this._entity = this._routerState.currentState?._chosenEntity?.entity;\n }\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _entity: observable.ref,\n setEntity: action,\n _schema: observable.ref,\n setSchema: action,\n isFormDirty: computed,\n _withinRouter: computed,\n });\n }\n\n init() {\n this._checkPageParams();\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event: Event) => {\n if (isMobileDevice()) {\n return;\n }\n\n const { form } = this;\n // Check both react-hook-form's state AND the explicitly set flag\n if (\n form.formState.isSubmitSuccessful ||\n this.formPage._isSubmitSuccessful ||\n !this.isFormDirty\n ) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n // The field renderers can't translate until this resolves, so the page\n // waits on it alongside the fetch. Idempotent.\n this.fieldsContainer?.init();\n\n const [data, loadedSchema] = await Promise.all([\n this.fetch(),\n this.schemaSource?.loadSchema(),\n container.initTask.status.promise,\n this.fieldsContainer?.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n if (loadedSchema) {\n this.setSchema(loadedSchema.schema);\n }\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n setSchema(schema: Schema | null) {\n this._schema = schema;\n }\n\n get schema(): Schema | null {\n return this._schema;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this.formPage.isSubmitSuccessful = flag;\n }\n\n get isFormDirty() {\n return this.formPage.isDirty;\n }\n\n // backwards compatibility\n set _isFormDirty(val: boolean) {\n this.formPage._isFormDirty = val;\n }\n\n get _withinRouter() {\n return !!this._routerState;\n }\n\n onCancel() {\n this.bi.reportButtonClick({\n ctaName: 'Cancel',\n additionalInfo: this.actionsBarConfig?.cancelCta?.biAdditionalInfo,\n });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: updatedEntity };\n\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n retry: () => this.handleSubmit(e),\n });\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n const action =\n typeof errorToast === 'string' ? undefined : errorToast?.action;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action:\n action || showTryAgain\n ? {\n uiType: 'LINK',\n text:\n action?.text ?? this.container.translate('cairo.toast.retry'),\n onClick: () => {\n if (action?.onClick) {\n action.onClick();\n } else {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n }\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: widgetsFormData } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n return;\n }\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n let submitSuccessful = false;\n\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: true,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n try {\n if (!this.isFetching) {\n const onSaveResult = await this.onSave({\n widgetsFormData,\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n submitSuccessful = true; // Mark as successful locally\n // Explicitly set isSubmitSuccessful to prevent onBeforeUnload from triggering\n this.isSubmitSuccessful = true;\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n }, // can be used to report validation errors\n )(e);\n\n if (!submitSuccessful) {\n return;\n }\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.formPage.submitTask.status.promise;\n }\n\n get initTask() {\n return this.formPage.initTask;\n }\n\n get submitTask() {\n return this.formPage.submitTask;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","_schemaFieldsContainer","_EntityPageStateBIReporter","_events","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","entity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","observable","ref","setEntity","_schema","setSchema","customColumnsState","isFormDirty","computed","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","isMobileDevice","formState","isSubmitSuccessful","_isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$fieldsContainer","_this$schemaSource","_this$fieldsContainer2","_this$bi$appLoaded","_this$bi","data","loadedSchema","Promise","all","loadSchema","status","promise","schema","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","_this$actionsBarConfi","reportButtonClick","ctaName","additionalInfo","actionsBarConfig","cancelCta","biAdditionalInfo","navigateToParent","updatedEntity","entityStringKey","entityObject","navigate","state","navigateTo","pageId","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","undefined","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","isLoading","events","emit","isValid","widgetsFormData","validate","_this$actionsBarConfi2","saveCta","run","savedEntity","submitSuccessful","_this$actionsBarConfi3","onSaveResult","errorMonitor","captureException","setError","_this$actionsBarConfi4","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n WixPatternsContainer,\n ActionsBarConfig,\n isMobileDevice,\n SchemaSource,\n Schema,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport type { PatternsFieldsAppContainer } from '@wix/patterns-fields/providers';\nimport { fieldsContainerOf } from '../../model/schemaFieldsContainer';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\nimport { WixPatternsRouterState } from '../WixPatternsRouterState';\nimport type { SidePanelsState } from '../SidePanelsState';\nimport type { CustomColumnsEntityPageState } from '../CustomColumnsEntityPageState';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\ninterface EntityPageStateParamsBase<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns An object with a `message` and an `action` object. Alternatively, it can return an object with an optional `message` and a `tryAgain` flag, or a string message.\n * The previous return types are still supported but are now deprecated.\n */\n saveErrorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) =>\n | {\n message?: string;\n /**\n * @deprecated use `action` instead\n */\n tryAgain?: boolean;\n action?: { text: string; onClick: () => void };\n }\n | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n form: UseFormReturn<V>;\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n\n /**\n * An object representing the router state\n */\n routerState?: WixPatternsRouterState | null;\n\n /**\n * An optional object to override the actions bar.\n */\n actionsBarConfig?: ActionsBarConfig;\n\n /**\n * An optional schema source describing how to load the schema and access\n * the entity's data. When present, the page can read fields from the source\n * instead of relying only on hand-wired fetch/onSave callbacks.\n */\n schemaSource?: SchemaSource<T>;\n}\n\nexport type EntityPageStateParams<\n T,\n V extends FieldValues = FieldValues,\n> = EntityPageStateParamsBase<T, V>;\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n _schema: Schema | null = null;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n actionsBarConfig?: EntityPageStateParams<T>['actionsBarConfig'];\n\n /**\n * The page's side-panel host, the way a table's lives on its toolbar.\n * Attached by the first feature that needs one, through\n * `SidePanelsState.setOnPage` — so a page with no panels neither builds nor\n * bundles the side-panel code. Everything on the page shares this host, which\n * is what keeps one panel open at a time.\n */\n panels: SidePanelsState | null = null;\n\n /** The fields card's \"Manage fields\" state, set by the card that owns it —\n * the panel is rendered by the host with no props and reads it from here,\n * as a table's panel reads `toolbar.customColumnsState`. */\n customColumnsState: CustomColumnsEntityPageState | null = null;\n\n readonly schemaSource?: SchemaSource<T>;\n\n /**\n * The container the page's field renderers are built with — the one the schema\n * carries, so a table on the same schema shares it. Initialized in `init()`\n * below, next to the schema load the fields also wait on; the schema-entry\n * EntityPage puts it in React context.\n */\n get fieldsContainer(): PatternsFieldsAppContainer | undefined {\n return fieldsContainerOf(this.schemaSource);\n }\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _routerState: WixPatternsRouterState | null = null;\n\n readonly formPage: FormPageState<V>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n\n this._routerState = params.routerState ?? null;\n\n if (this._routerState) {\n this._entity = this._routerState.currentState?._chosenEntity?.entity;\n }\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _entity: observable.ref,\n setEntity: action,\n _schema: observable.ref,\n setSchema: action,\n customColumnsState: observable.ref,\n isFormDirty: computed,\n _withinRouter: computed,\n });\n }\n\n init() {\n this._checkPageParams();\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event: Event) => {\n if (isMobileDevice()) {\n return;\n }\n\n const { form } = this;\n // Check both react-hook-form's state AND the explicitly set flag\n if (\n form.formState.isSubmitSuccessful ||\n this.formPage._isSubmitSuccessful ||\n !this.isFormDirty\n ) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n // The field renderers can't translate until this resolves, so the page\n // waits on it alongside the fetch. Idempotent.\n this.fieldsContainer?.init();\n\n const [data, loadedSchema] = await Promise.all([\n this.fetch(),\n this.schemaSource?.loadSchema(),\n container.initTask.status.promise,\n this.fieldsContainer?.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n // Don't overwrite a schema something already set. A fields card mirrors the\n // schema its field mutations merge into, and `loadSchema` is memoized — so\n // setting it here again would put the pre-mutation fields map back and drop\n // a field the server already has. Nothing is lost by keeping the newer one:\n // this only ever re-sets the very same object (e.g. on `retryFetch`).\n if (loadedSchema && !this.schema) {\n this.setSchema(loadedSchema.schema);\n }\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n setSchema(schema: Schema | null) {\n this._schema = schema;\n }\n\n get schema(): Schema | null {\n return this._schema;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this.formPage.isSubmitSuccessful = flag;\n }\n\n get isFormDirty() {\n return this.formPage.isDirty;\n }\n\n // backwards compatibility\n set _isFormDirty(val: boolean) {\n this.formPage._isFormDirty = val;\n }\n\n get _withinRouter() {\n return !!this._routerState;\n }\n\n onCancel() {\n this.bi.reportButtonClick({\n ctaName: 'Cancel',\n additionalInfo: this.actionsBarConfig?.cancelCta?.biAdditionalInfo,\n });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: updatedEntity };\n\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n retry: () => this.handleSubmit(e),\n });\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n const action =\n typeof errorToast === 'string' ? undefined : errorToast?.action;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action:\n action || showTryAgain\n ? {\n uiType: 'LINK',\n text:\n action?.text ?? this.container.translate('cairo.toast.retry'),\n onClick: () => {\n if (action?.onClick) {\n action.onClick();\n } else {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n }\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: widgetsFormData } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n return;\n }\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n let submitSuccessful = false;\n\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: true,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n try {\n if (!this.isFetching) {\n const onSaveResult = await this.onSave({\n widgetsFormData,\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n submitSuccessful = true; // Mark as successful locally\n // Explicitly set isSubmitSuccessful to prevent onBeforeUnload from triggering\n this.isSubmitSuccessful = true;\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n }, // can be used to report validation errors\n )(e);\n\n if (!submitSuccessful) {\n return;\n }\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.formPage.submitTask.status.promise;\n }\n\n get initTask() {\n return this.formPage.initTask;\n }\n\n get submitTask() {\n return this.formPage.submitTask;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,6 @@ var _mobx = require("mobx");
8
8
  var _bexCore = require("@wix/bex-core");
9
9
  var _resolveEntityPageFields = require("./EntityPage/resolveEntityPageFields");
10
10
  var _SchemaCardState = require("./SchemaCard/SchemaCardState");
11
- var _SidePanelsState = require("./SidePanelsState");
12
11
  var _CustomColumnsEntityPageState = require("./CustomColumnsEntityPageState");
13
12
  /**
14
13
  * Owns the card's field layout: which of the page's schema fields are visible
@@ -22,46 +21,74 @@ class EntityPageFieldsCardState {
22
21
  constructor(params) {
23
22
  (0, _defineProperty2.default)(this, "cardState", void 0);
24
23
  (0, _defineProperty2.default)(this, "panelState", void 0);
24
+ /** Holds the loaded schema for the card. The page loads the same (memoized)
25
+ * schema into its own copy; this one is also what the field mutations merge
26
+ * their result into, so an added or renamed field shows up with no reload. */
27
+ (0, _defineProperty2.default)(this, "sourceState", void 0);
28
+ /** Add / edit / delete field, when the page has a source and the panel is on. */
29
+ (0, _defineProperty2.default)(this, "manageFieldsSource", void 0);
25
30
  /** The source's schema load. Owned here rather than read off the page state,
26
31
  * because this state's `init()` runs before the page's (child effects run
27
32
  * first) and the stored layout must not be read before the fields exist. */
28
33
  (0, _defineProperty2.default)(this, "loadTask", new _bexCore.TaskState());
29
- (0, _defineProperty2.default)(this, "_loadedSchema", null);
30
34
  (0, _defineProperty2.default)(this, "params", void 0);
31
35
  this.params = params;
32
36
  (0, _mobx.makeObservable)(this, {
33
- _loadedSchema: _mobx.observable.ref,
34
37
  schema: _mobx.computed,
35
38
  declaredFields: _mobx.computed,
36
39
  visibleFieldIds: _mobx.computed,
37
40
  canManageFields: _mobx.computed
38
41
  });
42
+ const {
43
+ schemaSource
44
+ } = params.pageState;
45
+ this.sourceState = schemaSource ? new _bexCore.SourceState({
46
+ container: params.container,
47
+ source: schemaSource
48
+ }) : undefined;
39
49
  this.cardState = new _SchemaCardState.SchemaCardState({
40
50
  fields: () => this.declaredFields,
41
51
  persistencyKey: params.persistencyKey,
42
52
  container: params.container
43
53
  });
44
- if (params.showManageFields ?? true) {
54
+ const {
55
+ panels
56
+ } = params.pageState;
57
+ if ((params.showManageFields ?? true) && panels) {
58
+ var _params$pageState$sch;
59
+ this.manageFieldsSource = this.sourceState && (params.fieldManagement == null ? void 0 : params.fieldManagement({
60
+ sourceState: this.sourceState,
61
+ closeSidePanel: panels.closeSidePanel
62
+ }));
45
63
  this.panelState = new _CustomColumnsEntityPageState.CustomColumnsEntityPageState({
46
64
  container: params.container,
47
- panels: new _SidePanelsState.SidePanelsState({
48
- container: params.container,
49
- panelGroupName: 'entity-page'
50
- }),
65
+ // The page's host, so this panel and anything else on the page take
66
+ // turns rather than stacking.
67
+ panels,
68
+ // Namespaces the panel's column collection, the way a table's is
69
+ // namespaced by its collection.
70
+ collectionId: (_params$pageState$sch = params.pageState.schemaSource) == null ? void 0 : _params$pageState$sch.collectionId,
51
71
  fieldsState: this.cardState.fieldsState,
52
- schema: () => this.params.pageState.schema,
72
+ schema: () => this.schema,
73
+ manageFieldsSource: this.manageFieldsSource,
53
74
  isFieldsEditable: true,
54
75
  showFieldTypeIcons: true,
55
76
  dragAndDrop: params.dragAndDrop,
56
77
  modalsContainerRef: params.modalsContainerRef
57
78
  });
79
+
80
+ // Where the registered panel reads it from — it renders with no props.
81
+ params.pageState.customColumnsState = this.panelState;
58
82
  }
59
83
  }
60
84
 
61
- /** The same object the page ends up with: the source memoizes its load, so
62
- * both read one result. */
85
+ /** The page's schema, or this state's own copy until the page has one — this
86
+ * load resolves first, since the page also waits for the entity fetch. They
87
+ * are the same object (the source memoizes its load), and after a field
88
+ * mutation the page holds the merged one, which `init` mirrors to it. */
63
89
  get schema() {
64
- return this._loadedSchema ?? this.params.pageState.schema;
90
+ var _this$sourceState;
91
+ return this.params.pageState.schema ?? ((_this$sourceState = this.sourceState) == null ? void 0 : _this$sourceState.schema) ?? null;
65
92
  }
66
93
 
67
94
  /** The fields the card offers — empty until the schema loads. A required
@@ -106,11 +133,8 @@ class EntityPageFieldsCardState {
106
133
  // `loadSchema` is memoized on the source, so this shares the one fetch the
107
134
  // page and the collection already make.
108
135
  this.loadTask.runOnce(async () => {
109
- var _this$params$pageStat;
110
- const loaded = await ((_this$params$pageStat = this.params.pageState.schemaSource) == null ? void 0 : _this$params$pageStat.loadSchema());
111
- (0, _mobx.runInAction)(() => {
112
- this._loadedSchema = (loaded == null ? void 0 : loaded.schema) ?? null;
113
- });
136
+ var _this$sourceState2;
137
+ await ((_this$sourceState2 = this.sourceState) == null ? void 0 : _this$sourceState2.load());
114
138
  });
115
139
  // The card renders its fields regardless; a failed load leaves the page
116
140
  // itself showing the error.
@@ -122,7 +146,14 @@ class EntityPageFieldsCardState {
122
146
  (0, _bexCore.addEventListener)(this.cardState.fieldsState.events, 'beforeInitialFetch', () => {
123
147
  var _this$loadTask$status2;
124
148
  return (_this$loadTask$status2 = this.loadTask.status.promise) == null ? void 0 : _this$loadTask$status2.catch(() => {});
125
- }), this.cardState.init()];
149
+ }),
150
+ // A field added, edited or deleted from the panel merges into this
151
+ // state's schema. The page renders its fields from its own copy, so give
152
+ // it the merged one — otherwise the change only shows after a reload.
153
+ (0, _mobx.reaction)(() => {
154
+ var _this$sourceState3;
155
+ return (_this$sourceState3 = this.sourceState) == null ? void 0 : _this$sourceState3.schema;
156
+ }, schema => schema && this.params.pageState.setSchema(schema)), this.cardState.init()];
126
157
  return () => {
127
158
  disposers.forEach(dispose => dispose == null ? void 0 : dispose());
128
159
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_bexCore","_resolveEntityPageFields","_SchemaCardState","_SidePanelsState","_CustomColumnsEntityPageState","EntityPageFieldsCardState","constructor","params","_defineProperty2","default","TaskState","makeObservable","_loadedSchema","observable","ref","schema","computed","declaredFields","visibleFieldIds","canManageFields","cardState","SchemaCardState","fields","persistencyKey","container","showManageFields","panelState","CustomColumnsEntityPageState","panels","SidePanelsState","panelGroupName","fieldsState","pageState","isFieldsEditable","showFieldTypeIcons","dragAndDrop","modalsContainerRef","resolveEntityPageFields","idField","fieldIds","map","field","_field$validation","id","hideable","validation","required","length","orderedFields","filter","isFieldVisible","openManageFields","_this$panelState","toggleSidePanel","init","_this$loadTask$status","loadTask","runOnce","_this$params$pageStat","loaded","schemaSource","loadSchema","runInAction","status","promise","catch","disposers","addEventListener","events","_this$loadTask$status2","forEach","dispose","exports"],"sources":["../../../src/state/EntityPageFieldsCardState.ts"],"sourcesContent":["import { computed, makeObservable, observable, runInAction } from 'mobx';\nimport {\n addEventListener,\n TaskState,\n type Schema,\n type WixPatternsContainer,\n} from '@wix/bex-core';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { resolveEntityPageFields } from './EntityPage/resolveEntityPageFields';\nimport type { EntityPageState } from './EntityPage/EntityPageState';\nimport { SchemaCardState } from './SchemaCard/SchemaCardState';\nimport type { SchemaViewConfig } from './SchemaCard/SchemaFieldsState';\nimport { SidePanelsState } from './SidePanelsState';\nimport { CustomColumnsEntityPageState } from './CustomColumnsEntityPageState';\n\nexport interface EntityPageFieldsCardStateParams {\n pageState: EntityPageState<any, any>;\n container: WixPatternsContainer;\n /** Namespace the per-user show/hide and order are stored under. */\n persistencyKey: string;\n /** Field ids to offer, in order. Omitted ⇒ every editable schema field. */\n fieldIds?: string[];\n /** Whether to build the manage-fields panel. Default: `true`. */\n showManageFields?: boolean;\n /** Passed in rather than imported so this stays free of component imports. */\n dragAndDrop?: typeof CustomColumnsDragAndDrop;\n modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\n/**\n * Owns the card's field layout: which of the page's schema fields are visible\n * and in what order, plus the panel that edits them.\n *\n * The schema loads after this state is created, so `init()` awaits the source's\n * load and everything below reads the result through computeds — the states are\n * built once, on the first render, and fill in when the schema arrives.\n */\nexport class EntityPageFieldsCardState {\n readonly cardState: SchemaCardState;\n readonly panelState?: CustomColumnsEntityPageState;\n /** The source's schema load. Owned here rather than read off the page state,\n * because this state's `init()` runs before the page's (child effects run\n * first) and the stored layout must not be read before the fields exist. */\n readonly loadTask = new TaskState();\n _loadedSchema: Schema | null = null;\n private readonly params: EntityPageFieldsCardStateParams;\n\n constructor(params: EntityPageFieldsCardStateParams) {\n this.params = params;\n\n makeObservable(this, {\n _loadedSchema: observable.ref,\n schema: computed,\n declaredFields: computed,\n visibleFieldIds: computed,\n canManageFields: computed,\n });\n\n this.cardState = new SchemaCardState({\n fields: () => this.declaredFields,\n persistencyKey: params.persistencyKey,\n container: params.container,\n });\n\n if (params.showManageFields ?? true) {\n this.panelState = new CustomColumnsEntityPageState({\n container: params.container,\n panels: new SidePanelsState({\n container: params.container,\n panelGroupName: 'entity-page',\n }),\n fieldsState: this.cardState.fieldsState,\n schema: () => this.params.pageState.schema,\n isFieldsEditable: true,\n showFieldTypeIcons: true,\n dragAndDrop: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n }\n }\n\n /** The same object the page ends up with: the source memoizes its load, so\n * both read one result. */\n get schema(): Schema | null {\n return this._loadedSchema ?? this.params.pageState.schema;\n }\n\n /** The fields the card offers — empty until the schema loads. A required\n * field is not hideable: hiding it would leave the form invalid with nothing\n * on screen to fix. */\n get declaredFields(): SchemaViewConfig[] {\n const { schema } = this;\n if (!schema) {\n return [];\n }\n return resolveEntityPageFields(\n schema.fields,\n schema.idField,\n this.params.fieldIds,\n ).map((field) => ({\n id: field.id,\n hideable: !field.validation?.required,\n }));\n }\n\n /** What the card renders. Before the schema loads this is whatever the card\n * was asked for, which is also what the fields show a skeleton for. */\n get visibleFieldIds(): string[] | undefined {\n if (!this.declaredFields.length) {\n return this.params.fieldIds;\n }\n const { fieldsState } = this.cardState;\n return fieldsState.orderedFields\n .filter((field) => fieldsState.isFieldVisible(field.id))\n .map((field) => field.id);\n }\n\n get canManageFields(): boolean {\n return !!this.panelState && this.declaredFields.length > 0;\n }\n\n openManageFields() {\n this.panelState?.panels.toggleSidePanel('customColumns');\n }\n\n init() {\n // `loadSchema` is memoized on the source, so this shares the one fetch the\n // page and the collection already make.\n this.loadTask.runOnce(async () => {\n const loaded = await this.params.pageState.schemaSource?.loadSchema();\n runInAction(() => {\n this._loadedSchema = loaded?.schema ?? null;\n });\n });\n // The card renders its fields regardless; a failed load leaves the page\n // itself showing the error.\n this.loadTask.status.promise?.catch(() => null);\n\n const disposers: (void | (() => void))[] = [\n // Hold the stored-layout read until the schema is in, so a saved\n // show/hide and order survives a reload. Registered before the card\n // state's init below, which is what collects the listeners.\n addEventListener(\n this.cardState.fieldsState.events,\n 'beforeInitialFetch',\n () => this.loadTask.status.promise?.catch(() => {}),\n ),\n this.cardState.init(),\n ];\n\n return () => {\n disposers.forEach((dispose) => dispose?.());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_bexCore","_resolveEntityPageFields","_SchemaCardState","_CustomColumnsEntityPageState","EntityPageFieldsCardState","constructor","params","_defineProperty2","default","TaskState","makeObservable","schema","computed","declaredFields","visibleFieldIds","canManageFields","schemaSource","pageState","sourceState","SourceState","container","source","undefined","cardState","SchemaCardState","fields","persistencyKey","panels","showManageFields","_params$pageState$sch","manageFieldsSource","fieldManagement","closeSidePanel","panelState","CustomColumnsEntityPageState","collectionId","fieldsState","isFieldsEditable","showFieldTypeIcons","dragAndDrop","modalsContainerRef","customColumnsState","_this$sourceState","resolveEntityPageFields","idField","fieldIds","map","field","_field$validation","id","hideable","validation","required","length","orderedFields","filter","isFieldVisible","openManageFields","_this$panelState","toggleSidePanel","init","_this$loadTask$status","loadTask","runOnce","_this$sourceState2","load","status","promise","catch","disposers","addEventListener","events","_this$loadTask$status2","reaction","_this$sourceState3","setSchema","forEach","dispose","exports"],"sources":["../../../src/state/EntityPageFieldsCardState.ts"],"sourcesContent":["import { computed, makeObservable, reaction } from 'mobx';\nimport {\n addEventListener,\n SourceState,\n TaskState,\n type Schema,\n type WixPatternsContainer,\n} from '@wix/bex-core';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { resolveEntityPageFields } from './EntityPage/resolveEntityPageFields';\nimport type { EntityPageState } from './EntityPage/EntityPageState';\nimport { SchemaCardState } from './SchemaCard/SchemaCardState';\nimport type { SchemaViewConfig } from './SchemaCard/SchemaFieldsState';\nimport type { ManageFieldsSource } from './ManageFieldsSource';\nimport { CustomColumnsEntityPageState } from './CustomColumnsEntityPageState';\n\nexport interface EntityPageFieldsCardStateParams {\n pageState: EntityPageState<any, any>;\n container: WixPatternsContainer;\n /** Namespace the per-user show/hide and order are stored under. */\n persistencyKey: string;\n /** Field ids to offer, in order. Omitted ⇒ every editable schema field. */\n fieldIds?: string[];\n /** Whether to build the manage-fields panel. Default: `true`. */\n showManageFields?: boolean;\n /** Passed in rather than imported so this stays free of component imports. */\n dragAndDrop?: typeof CustomColumnsDragAndDrop;\n /** Builds add / edit / delete field over the page's source. Passed in for the\n * same reason as `dragAndDrop`. Omitted ⇒ the panel only shows and reorders. */\n fieldManagement?: (params: {\n sourceState: SourceState<any>;\n closeSidePanel: () => void;\n }) => ManageFieldsSource;\n modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\n/**\n * Owns the card's field layout: which of the page's schema fields are visible\n * and in what order, plus the panel that edits them.\n *\n * The schema loads after this state is created, so `init()` awaits the source's\n * load and everything below reads the result through computeds — the states are\n * built once, on the first render, and fill in when the schema arrives.\n */\nexport class EntityPageFieldsCardState {\n readonly cardState: SchemaCardState;\n readonly panelState?: CustomColumnsEntityPageState;\n /** Holds the loaded schema for the card. The page loads the same (memoized)\n * schema into its own copy; this one is also what the field mutations merge\n * their result into, so an added or renamed field shows up with no reload. */\n readonly sourceState?: SourceState<any>;\n /** Add / edit / delete field, when the page has a source and the panel is on. */\n readonly manageFieldsSource?: ManageFieldsSource;\n /** The source's schema load. Owned here rather than read off the page state,\n * because this state's `init()` runs before the page's (child effects run\n * first) and the stored layout must not be read before the fields exist. */\n readonly loadTask = new TaskState();\n private readonly params: EntityPageFieldsCardStateParams;\n\n constructor(params: EntityPageFieldsCardStateParams) {\n this.params = params;\n\n makeObservable(this, {\n schema: computed,\n declaredFields: computed,\n visibleFieldIds: computed,\n canManageFields: computed,\n });\n\n const { schemaSource } = params.pageState;\n this.sourceState = schemaSource\n ? new SourceState({ container: params.container, source: schemaSource })\n : undefined;\n\n this.cardState = new SchemaCardState({\n fields: () => this.declaredFields,\n persistencyKey: params.persistencyKey,\n container: params.container,\n });\n\n const { panels } = params.pageState;\n\n if ((params.showManageFields ?? true) && panels) {\n this.manageFieldsSource =\n this.sourceState &&\n params.fieldManagement?.({\n sourceState: this.sourceState,\n closeSidePanel: panels.closeSidePanel,\n });\n this.panelState = new CustomColumnsEntityPageState({\n container: params.container,\n // The page's host, so this panel and anything else on the page take\n // turns rather than stacking.\n panels,\n // Namespaces the panel's column collection, the way a table's is\n // namespaced by its collection.\n collectionId: params.pageState.schemaSource?.collectionId,\n fieldsState: this.cardState.fieldsState,\n schema: () => this.schema,\n manageFieldsSource: this.manageFieldsSource,\n isFieldsEditable: true,\n showFieldTypeIcons: true,\n dragAndDrop: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n\n // Where the registered panel reads it from — it renders with no props.\n params.pageState.customColumnsState = this.panelState;\n }\n }\n\n /** The page's schema, or this state's own copy until the page has one — this\n * load resolves first, since the page also waits for the entity fetch. They\n * are the same object (the source memoizes its load), and after a field\n * mutation the page holds the merged one, which `init` mirrors to it. */\n get schema(): Schema | null {\n return this.params.pageState.schema ?? this.sourceState?.schema ?? null;\n }\n\n /** The fields the card offers — empty until the schema loads. A required\n * field is not hideable: hiding it would leave the form invalid with nothing\n * on screen to fix. */\n get declaredFields(): SchemaViewConfig[] {\n const { schema } = this;\n if (!schema) {\n return [];\n }\n return resolveEntityPageFields(\n schema.fields,\n schema.idField,\n this.params.fieldIds,\n ).map((field) => ({\n id: field.id,\n hideable: !field.validation?.required,\n }));\n }\n\n /** What the card renders. Before the schema loads this is whatever the card\n * was asked for, which is also what the fields show a skeleton for. */\n get visibleFieldIds(): string[] | undefined {\n if (!this.declaredFields.length) {\n return this.params.fieldIds;\n }\n const { fieldsState } = this.cardState;\n return fieldsState.orderedFields\n .filter((field) => fieldsState.isFieldVisible(field.id))\n .map((field) => field.id);\n }\n\n get canManageFields(): boolean {\n return !!this.panelState && this.declaredFields.length > 0;\n }\n\n openManageFields() {\n this.panelState?.panels.toggleSidePanel('customColumns');\n }\n\n init() {\n // `loadSchema` is memoized on the source, so this shares the one fetch the\n // page and the collection already make.\n this.loadTask.runOnce(async () => {\n await this.sourceState?.load();\n });\n // The card renders its fields regardless; a failed load leaves the page\n // itself showing the error.\n this.loadTask.status.promise?.catch(() => null);\n\n const disposers: (void | (() => void))[] = [\n // Hold the stored-layout read until the schema is in, so a saved\n // show/hide and order survives a reload. Registered before the card\n // state's init below, which is what collects the listeners.\n addEventListener(\n this.cardState.fieldsState.events,\n 'beforeInitialFetch',\n () => this.loadTask.status.promise?.catch(() => {}),\n ),\n // A field added, edited or deleted from the panel merges into this\n // state's schema. The page renders its fields from its own copy, so give\n // it the merged one — otherwise the change only shows after a reload.\n reaction(\n () => this.sourceState?.schema,\n (schema) => schema && this.params.pageState.setSchema(schema),\n ),\n this.cardState.init(),\n ];\n\n return () => {\n disposers.forEach((dispose) => dispose?.());\n };\n }\n}\n"],"mappings":"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","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_ = "FormPageHeader2220546149";
8
+ var _namespace_ = "FormPageHeader282119022";
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": "FormPageHeader2220546149__root"
15
+ "root": "FormPageHeader282119022__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_ = \"FormPageHeader2220546149\";\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\":\"FormPageHeader2220546149__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAgC,CAAC;AACvD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"FormPageHeader282119022\";\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\":\"FormPageHeader282119022__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":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=ManageFieldsSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/state/ManageFieldsSource.ts"],"sourcesContent":["import type { CustomFieldOrigin, FieldsSource } from '@wix/bex-core';\nimport type {\n CustomFieldsPanelState,\n FieldActionsMenuBuilder,\n} from './CustomFields/CustomFieldsPanelState';\n\n/**\n * The field management the manage-fields panel and its modals read: the fields,\n * the per-field menu, and the add/edit modal.\n *\n * A collection page's `CollectionFieldsSourceState` is one of these. An entity\n * page has no toolbar to build that from, so it assembles the same pieces itself\n * (`schema/entityPageFieldManagement.ts`).\n */\nexport interface ManageFieldsSource {\n readonly fieldsSource: FieldsSource;\n readonly customFieldsPanel: CustomFieldsPanelState;\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n readonly openFieldModal: (opts?: {\n fieldId?: string;\n origin?: CustomFieldOrigin;\n customOrigin?: string;\n }) => void;\n}\n"],"mappings":"","ignoreList":[]}