@wix/patterns 1.472.0 → 1.474.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 (421) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  4. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  9. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  10. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  11. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  12. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  14. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  16. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  20. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  22. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbars/ToolbarState.js +15 -4
  24. package/dist/cjs/components/CollectionToolbars/ToolbarState.js.map +1 -1
  25. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  26. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  29. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  30. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  31. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  32. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  33. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  34. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  35. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  36. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  38. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  39. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
  40. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  41. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  42. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  43. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  44. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  45. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  46. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  47. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  48. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  49. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  50. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  51. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  52. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  53. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  54. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  55. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  56. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  57. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  58. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  59. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  60. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  61. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  62. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  64. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  65. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  66. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  67. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  68. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  69. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  70. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  71. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  72. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  73. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  74. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  76. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  78. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  79. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  80. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  81. package/dist/cjs/components/EntityPage/EntityPage.js +10 -5
  82. package/dist/cjs/components/EntityPage/EntityPage.js.map +1 -1
  83. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  84. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  85. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  86. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  87. package/dist/cjs/components/FormPageHeader/FormPageHeader.js.map +1 -1
  88. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  89. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  90. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  91. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  92. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  93. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  94. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  95. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  96. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  97. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  98. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  99. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  100. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  101. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  102. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  103. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  104. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  105. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  106. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  107. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  108. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  109. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  110. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  111. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  112. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  113. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  114. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  115. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  116. package/dist/cjs/components/SchemaSource/tableSchemaSource.js +3 -0
  117. package/dist/cjs/components/SchemaSource/tableSchemaSource.js.map +1 -1
  118. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  119. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  120. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +10 -10
  121. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  122. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  123. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  124. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  125. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  126. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +6 -6
  127. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  128. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  129. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  130. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  131. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  132. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  133. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  134. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  135. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  136. package/dist/cjs/components/common.st.css.js +4 -4
  137. package/dist/cjs/components/common.st.css.js.map +1 -1
  138. package/dist/cjs/state/CollectionPage/CollectionPageActionsBar.js +9 -12
  139. package/dist/cjs/state/CollectionPage/CollectionPageActionsBar.js.map +1 -1
  140. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  141. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  142. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js +4 -4
  143. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
  144. package/dist/cjs/state/EditableTable/EditableTableState.js +3 -0
  145. package/dist/cjs/state/EditableTable/EditableTableState.js.map +1 -1
  146. package/dist/cjs/state/EditableTable/EditableTableStateBIReporter.js +162 -0
  147. package/dist/cjs/state/EditableTable/EditableTableStateBIReporter.js.map +1 -0
  148. package/dist/cjs/state/EntityPage/EntityPageState.js +5 -0
  149. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  150. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  151. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  152. package/dist/cjs/state/RectState.js +19 -4
  153. package/dist/cjs/state/RectState.js.map +1 -1
  154. package/dist/cjs/state/Toolbar/ToolbarResponsiveState.js +6 -2
  155. package/dist/cjs/state/Toolbar/ToolbarResponsiveState.js.map +1 -1
  156. package/dist/cjs/state/ToolbarCollectionState.js +6 -5
  157. package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
  158. package/dist/cjs/styles.global.css +2 -2
  159. package/dist/cjs/version.js +1 -1
  160. package/dist/cjs/version.js.map +1 -1
  161. package/dist/docs/EntityPage.Header.md +1 -1
  162. package/dist/docs/SettingsPage.Header.md +1 -1
  163. package/dist/docs/index.json +66 -55
  164. package/dist/docs/useSchemaSource.md +149 -0
  165. package/dist/dts-bundle/components/EntityPage.d.ts +1 -1
  166. package/dist/dts-bundle/components/SettingsPage.d.ts +1 -1
  167. package/dist/dts-bundle/index.json +15 -15
  168. package/dist/dts-bundle/index.txt +5 -5
  169. package/dist/dts-bundle/types/EntityPageState.d.ts +5 -0
  170. package/dist/dts-bundle/types/SchemaSource.d.ts +12 -1
  171. package/dist/dts-bundle/types/TableGridSwitchState.d.ts +2 -0
  172. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  173. package/dist/esm/components/CardContainer/CardContainer.st.css.js.map +1 -1
  174. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  175. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  176. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  177. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  178. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  179. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  180. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  181. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  182. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  183. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  184. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  185. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  186. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  187. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  188. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  189. package/dist/esm/components/CollectionToolbars/ToolbarState.js +12 -4
  190. package/dist/esm/components/CollectionToolbars/ToolbarState.js.map +1 -1
  191. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  192. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  193. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  194. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  195. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  196. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  197. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  198. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  199. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
  200. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  201. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  202. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  203. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  204. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  205. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  206. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  207. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  208. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  209. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  210. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  211. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  212. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  213. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  214. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  215. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  216. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  217. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  218. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  219. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  220. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  221. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  222. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  223. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  224. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  225. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  226. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  227. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  228. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  229. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  230. package/dist/esm/components/EntityPage/EntityPage.js +5 -1
  231. package/dist/esm/components/EntityPage/EntityPage.js.map +1 -1
  232. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  233. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  234. package/dist/esm/components/FormPageHeader/FormPageHeader.js.map +1 -1
  235. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  236. package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
  237. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  238. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  239. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  240. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  241. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  242. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  243. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  244. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  245. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  246. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  247. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  248. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  249. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  250. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  251. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  252. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  253. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  254. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  255. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  256. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  257. package/dist/esm/components/SchemaSource/tableSchemaSource.js +3 -0
  258. package/dist/esm/components/SchemaSource/tableSchemaSource.js.map +1 -1
  259. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  260. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  261. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  262. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  263. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  264. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  265. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  266. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  267. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  268. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  269. package/dist/esm/components/common.st.css.js +2 -2
  270. package/dist/esm/state/CollectionPage/CollectionPageActionsBar.js +1 -1
  271. package/dist/esm/state/CollectionPage/CollectionPageActionsBar.js.map +1 -1
  272. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  273. package/dist/esm/state/CollectionPage/TitleBadges.st.css.js +2 -2
  274. package/dist/esm/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
  275. package/dist/esm/state/EditableTable/EditableTableState.js +2 -0
  276. package/dist/esm/state/EditableTable/EditableTableState.js.map +1 -1
  277. package/dist/esm/state/EditableTable/EditableTableStateBIReporter.js +135 -0
  278. package/dist/esm/state/EditableTable/EditableTableStateBIReporter.js.map +1 -0
  279. package/dist/esm/state/EntityPage/EntityPageState.js +5 -0
  280. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  281. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  282. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  283. package/dist/esm/state/RectState.js +18 -4
  284. package/dist/esm/state/RectState.js.map +1 -1
  285. package/dist/esm/state/Toolbar/ToolbarResponsiveState.js +3 -2
  286. package/dist/esm/state/Toolbar/ToolbarResponsiveState.js.map +1 -1
  287. package/dist/esm/state/ToolbarCollectionState.js +1 -0
  288. package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
  289. package/dist/esm/styles.global.css +2 -2
  290. package/dist/esm/version.js +1 -1
  291. package/dist/examples/useSchemaSource/cms-collection.tsx +40 -0
  292. package/dist/examples/useSchemaSource/extra-columns-and-data.tsx +73 -0
  293. package/dist/examples/useSchemaSource/your-own-source.tsx +173 -0
  294. package/dist/types/components/CardContainer/CardContainer.st.css.d.ts.map +1 -1
  295. package/dist/types/components/CmsFieldManagement/CmsFieldForm.st.css.d.ts.map +1 -1
  296. package/dist/types/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.d.ts.map +1 -1
  297. package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
  298. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
  299. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
  300. package/dist/types/components/CollectionToolbars/ToolbarState.d.ts.map +1 -1
  301. package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
  302. package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
  303. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -1
  304. package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
  305. package/dist/types/components/EditableTable/cellTypes/number/View.st.css.d.ts.map +1 -1
  306. package/dist/types/components/EditableTable/cellTypes/object/Edit.st.css.d.ts.map +1 -1
  307. package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
  308. package/dist/types/components/EditableTable/cellTypes/select/Edit.st.css.d.ts.map +1 -1
  309. package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
  310. package/dist/types/components/EditableTable/cellTypes/time/Edit.st.css.d.ts.map +1 -1
  311. package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
  312. package/dist/types/components/EntityPage/EntityPage.d.ts.map +1 -1
  313. package/dist/types/components/FormPageHeader/FormPageHeader.d.ts +1 -1
  314. package/dist/types/components/FormPageHeader/FormPageHeader.d.ts.map +1 -1
  315. package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
  316. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  317. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  318. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  319. package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
  320. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  321. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  322. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  323. package/dist/types/components/SchemaSource/tableSchemaSource.d.ts.map +1 -1
  324. package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
  325. package/dist/types/state/CollectionPage/CollectionPageActionsBar.d.ts.map +1 -1
  326. package/dist/types/state/CollectionPage/TitleBadges.st.css.d.ts.map +1 -1
  327. package/dist/types/state/EditableTable/EditableTableState.d.ts +2 -0
  328. package/dist/types/state/EditableTable/EditableTableState.d.ts.map +1 -1
  329. package/dist/types/state/EditableTable/EditableTableStateBIReporter.d.ts +71 -0
  330. package/dist/types/state/EditableTable/EditableTableStateBIReporter.d.ts.map +1 -0
  331. package/dist/types/state/EntityPage/EntityPageState.d.ts +1 -0
  332. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  333. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  334. package/dist/types/state/RectState.d.ts +4 -1
  335. package/dist/types/state/RectState.d.ts.map +1 -1
  336. package/dist/types/state/Toolbar/ToolbarResponsiveState.d.ts.map +1 -1
  337. package/dist/types/state/ToolbarCollectionState.d.ts +3 -0
  338. package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
  339. package/dist/types/version.d.ts +1 -1
  340. package/package.json +7 -7
  341. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  342. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  343. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  344. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  345. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  346. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  347. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  348. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  349. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  350. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  351. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  352. package/src/components/CollectionToolbars/ToolbarState.ts +13 -7
  353. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  354. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  355. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  356. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  357. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  358. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  359. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  360. package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
  361. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  362. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  363. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  364. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  365. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  366. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  367. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  368. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  369. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  370. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  371. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  372. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  373. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  374. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  375. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  376. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  377. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  378. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  379. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  380. package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
  381. package/src/components/EntityPage/EntityPage.tsx +6 -1
  382. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  383. package/src/components/Fade/Fade.st.css.ts +2 -2
  384. package/src/components/FormPageHeader/FormPageHeader.tsx +4 -1
  385. package/src/components/Heading/Heading.st.css.ts +2 -2
  386. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  387. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  388. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  389. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  390. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  391. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  392. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  393. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  394. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  395. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  396. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  397. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  398. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  399. package/src/components/SchemaSource/tableSchemaSource.ts +3 -0
  400. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  401. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  402. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  403. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  404. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  405. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  406. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  407. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  408. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  409. package/src/components/common.st.css.ts +2 -2
  410. package/src/state/CollectionPage/CollectionPageActionsBar.tsx +1 -8
  411. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  412. package/src/state/CollectionPage/TitleBadges.st.css.ts +2 -2
  413. package/src/state/EditableTable/EditableTableState.ts +4 -0
  414. package/src/state/EditableTable/EditableTableStateBIReporter.ts +258 -0
  415. package/src/state/EntityPage/EntityPageState.ts +6 -0
  416. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  417. package/src/state/RectState.ts +27 -4
  418. package/src/state/Toolbar/ToolbarResponsiveState.ts +4 -2
  419. package/src/state/ToolbarCollectionState.ts +1 -0
  420. package/src/styles.global.css +2 -2
  421. package/src/version.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_bexCore","require","_bi","editOriginOf","trigger","undefined","EditableTableStateBIReporter","constructor","state","_defineProperty2","default","_state","reportBi","toolbar","hasValueChanged","cell","editingValue","Object","is","cellValue","getCellDisplayValue","rowKey","columnId","cellEditStarted","withoutDefaults","editableTableCellEditStarted","_cellParams","origin","cellEditCommitted","params","editableTableCellEditCommitted","isValid","getCellValidation","valid","cellEditCancelled","editableTableCellEditCancelled","clipboardAction","editableTableClipboardAction","actionName","numItems","numColumns","isExternalSource","menuOpened","cellParams","editableTableMenuOpened","menuType","isOpened","key","fieldType","_fieldTypeOf","itemIndex","rowCreationStart","newItemCreationStart","rowCreationEnd","newItemCreationEnd","resultType","itemId","itemIds","JSON","stringify","deleteModalShown","rowKeys","wixPatternsDeleteModalShownSrc144Evid10","_deleteModalParams","deleteModalCtaClicked","wixPatternsDeleteModalCtaClickedSrc144Evid11","ctaName","length","isSelectAll","collection","result","items","location","modalName","tryAgainClicked","cairoTryAgainClicked","loaction","_this$_state$_toIndic","_toIndices","row","_column$field","column","_columnMap","get","field","type","cellType","exports"],"sources":["../../../../src/state/EditableTable/EditableTableStateBIReporter.ts"],"sourcesContent":["import { withoutDefaults } from '@wix/bex-core';\nimport type { Field, FiltersMap } from '@wix/bex-core';\nimport {\n cairoTryAgainClicked,\n editableTableCellEditCancelled,\n editableTableCellEditCommitted,\n editableTableCellEditStarted,\n editableTableClipboardAction,\n editableTableMenuOpened,\n newItemCreationEnd,\n newItemCreationStart,\n wixPatternsDeleteModalCtaClickedSrc144Evid11,\n wixPatternsDeleteModalShownSrc144Evid10,\n} from '@wix/bex-core/bi';\nimport type { EditTrigger } from '../../components/EditableTable/types';\nimport type { EditableTableState } from './EditableTableState';\nimport type { Cell } from './types';\n\n/** Catalog 144:21 `actionName` values — lowercase, matching the Eventor plan. */\nexport type ClipboardActionName = 'copy' | 'cut' | 'paste' | 'clear';\nexport type ClipboardOrigin = 'Keyboard' | 'Context Menu';\nexport type MenuType = 'Cell Context Menu' | 'Column Header';\n\n/** Where a new row was asked for. `Card CTA` is the add-row button and keeps its\n * original name so it stays comparable with data already collected. The context\n * menu entries reported nothing before. */\nexport type RowCreationOrigin =\n | 'Card CTA'\n | 'Row Context Menu - Above'\n | 'Row Context Menu - Below'\n | 'Row Context Menu - Duplicate';\n\n/** Catalog spells these in English, unlocalised. */\nexport type DeleteModalCta = 'Delete' | 'Cancel' | 'X';\n\n/** Catalog 144:141 `actionName` values for the failed-write toast retry. */\nexport type RetryActionName = 'Create' | 'Duplicate' | 'Update' | 'Delete';\n\n/** How the user got into edit mode. `Toggle` never enters it — a toggle cell\n * writes straight through, and reports a commit on its own. */\nexport type CellEditOrigin =\n | 'Click'\n | 'Double Click'\n | 'Enter'\n | 'Typing'\n | 'Toggle';\n\nfunction editOriginOf(trigger: EditTrigger | null): CellEditOrigin | undefined {\n if (trigger === null) {\n return undefined;\n }\n if (typeof trigger === 'object') {\n return 'Typing';\n }\n switch (trigger) {\n case 'click':\n return 'Click';\n case 'doubleClick':\n return 'Double Click';\n case 'enter':\n return 'Enter';\n default:\n return undefined;\n }\n}\n\ninterface CellBiParams {\n key: string;\n fieldType?: string;\n itemId: string;\n itemIndex?: number;\n}\n\nexport class EditableTableStateBIReporter<T, F extends FiltersMap> {\n private readonly _state: EditableTableState<T, F>;\n\n constructor(state: EditableTableState<T, F>) {\n this._state = state;\n }\n\n get reportBi() {\n return this._state.toolbar.reportBi;\n }\n\n /** Whether committing `editingValue` would actually change the cell. Call\n * before the write — afterwards the stored value is the new one. */\n hasValueChanged(cell: Cell, editingValue: unknown): boolean {\n if (editingValue === undefined) {\n return false;\n }\n // The displayed value includes uncommitted drafts and pending cells, so a\n // re-edit to what the user already sees is not a change.\n return !Object.is(\n this._state.cellValue.getCellDisplayValue(cell.rowKey, cell.columnId),\n editingValue,\n );\n }\n\n cellEditStarted(cell: Cell, trigger: EditTrigger | null) {\n this.reportBi(\n withoutDefaults(editableTableCellEditStarted)({\n ...this._cellParams(cell),\n origin: editOriginOf(trigger),\n }),\n );\n }\n\n cellEditCommitted(\n cell: Cell,\n params: {\n /** Absent for a toggle cell, which never enters edit mode. */\n trigger?: EditTrigger | null;\n origin?: CellEditOrigin;\n hasValueChanged: boolean;\n },\n ) {\n this.reportBi(\n withoutDefaults(editableTableCellEditCommitted)({\n ...this._cellParams(cell),\n origin: params.origin ?? editOriginOf(params.trigger ?? null),\n hasValueChanged: params.hasValueChanged,\n isValid: this._state.cellValue.getCellValidation(\n cell.rowKey,\n cell.columnId,\n ).valid,\n }),\n );\n }\n\n cellEditCancelled(cell: Cell, params: { hasValueChanged: boolean }) {\n this.reportBi(\n withoutDefaults(editableTableCellEditCancelled)({\n ...this._cellParams(cell),\n hasValueChanged: params.hasValueChanged,\n }),\n );\n }\n\n clipboardAction(params: {\n actionName: ClipboardActionName;\n origin: ClipboardOrigin;\n numItems: number;\n numColumns: number;\n isExternalSource?: boolean;\n }) {\n this.reportBi(\n withoutDefaults(editableTableClipboardAction)({\n actionName: params.actionName,\n origin: params.origin,\n numItems: params.numItems,\n numColumns: params.numColumns,\n isExternalSource: params.isExternalSource,\n }),\n );\n }\n\n menuOpened(params: {\n menuType: MenuType;\n isOpened: boolean;\n cell?: Cell | null;\n key?: string;\n }) {\n const cellParams = params.cell ? this._cellParams(params.cell) : undefined;\n this.reportBi(\n withoutDefaults(editableTableMenuOpened)({\n menuType: params.menuType,\n isOpened: params.isOpened,\n key: params.key ?? cellParams?.key,\n fieldType: params.key\n ? this._fieldTypeOf(params.key)\n : cellParams?.fieldType,\n itemIndex: cellParams?.itemIndex,\n }),\n );\n }\n\n rowCreationStart(origin: RowCreationOrigin) {\n this.reportBi(withoutDefaults(newItemCreationStart)({ origin }));\n }\n\n rowCreationEnd(params: {\n origin: RowCreationOrigin;\n /** Catalog 144:107: `success` or `dismissed` (create did not land). */\n resultType: 'success' | 'dismissed';\n itemIds?: string[];\n }) {\n this.reportBi(\n withoutDefaults(newItemCreationEnd)({\n origin: params.origin,\n resultType: params.resultType,\n itemId: params.itemIds ? JSON.stringify(params.itemIds) : undefined,\n }),\n );\n }\n\n deleteModalShown(rowKeys: string[]) {\n this.reportBi(\n withoutDefaults(wixPatternsDeleteModalShownSrc144Evid10)({\n ...this._deleteModalParams(rowKeys),\n }),\n );\n }\n\n deleteModalCtaClicked(params: {\n ctaName: DeleteModalCta;\n rowKeys: string[];\n }) {\n this.reportBi(\n withoutDefaults(wixPatternsDeleteModalCtaClickedSrc144Evid11)({\n ...this._deleteModalParams(params.rowKeys),\n ctaName: params.ctaName,\n }),\n );\n }\n\n /** Shared fields for 144:10/11 — location is the row context menu, not bulk toolbar. */\n private _deleteModalParams(rowKeys: string[]) {\n const numItems = rowKeys.length;\n return {\n numItems,\n // Catalog: isSelectAll is true when numItems equals the list size.\n isSelectAll:\n numItems > 0 && numItems === this._state.collection.result.items.length,\n location: 'Row Context Menu',\n modalName: 'Delete rows',\n itemId: numItems === 1 ? rowKeys[0] : undefined,\n };\n }\n\n tryAgainClicked(actionName: RetryActionName) {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName,\n // Schema spells the field this way.\n loaction: 'toast',\n }),\n );\n }\n\n /** Column key, field type, and row identity used on every cell-level event. */\n private _cellParams(cell: Cell): CellBiParams {\n return {\n key: cell.columnId,\n fieldType: this._fieldTypeOf(cell.columnId),\n itemId: cell.rowKey,\n itemIndex: this._state._toIndices(cell)?.row,\n };\n }\n\n /** The schema field type where the column came from a source, otherwise the\n * registered cell type. */\n private _fieldTypeOf(columnId: string): string | undefined {\n const column = this._state._columnMap.get(columnId) as\n | { field?: Field; cellType?: string }\n | undefined;\n return column?.field?.type ?? column?.cellType;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -108,6 +108,8 @@ class EntityPageState {
108
108
  _loadedSchema: _mobx.observable.ref,
109
109
  setLoadedSchema: _mobx.action,
110
110
  customColumnsState: _mobx.observable.ref,
111
+ actionsBarConfig: _mobx.observable.ref,
112
+ setActionsBarConfig: _mobx.action,
111
113
  holdSave: _mobx.action,
112
114
  isSaveHeld: _mobx.computed,
113
115
  isFormDirty: _mobx.computed,
@@ -174,6 +176,9 @@ class EntityPageState {
174
176
  get schema() {
175
177
  return this._schema;
176
178
  }
179
+ setActionsBarConfig(actionsBarConfig) {
180
+ this.actionsBarConfig = actionsBarConfig;
181
+ }
177
182
  setLoadedSchema(loadedSchema) {
178
183
  this._loadedSchema = loadedSchema;
179
184
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","_schemaFieldsContainer","_EntityPageStateBIReporter","_events","_EntityPageDeleteActionState","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","observable","set","deep","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","_isNewEntity","isNewEntity","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","_parentReferrer","parentReferrer","container","deleteActionState","EntityPageDeleteActionState","deleteAction","getEntity","entity","getLoadedSchema","loadedSchema","onDeleted","action","deletedCollectionItem","handleEntityDeleted","emitDelete","events","emit","emitDeleteError","err","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","ref","setEntity","_schema","setSchema","_loadedSchema","setLoadedSchema","customColumnsState","holdSave","isSaveHeld","computed","isFormDirty","_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","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","_isExistingEntity","isRouteKnown","undefined","updatedEntity","entityStringKey","navigateToParentWithState","entityObject","navigate","state","navigateTo","pageId","referrer","_showErrorToast","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","_deletedEntity","hold","_saveHolds","add","delete","size","submitTask","isLoading","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 type { LoadedSchema } 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';\nimport {\n EntityPageDeleteAction,\n EntityPageDeleteActionState,\n} from './EntityPageDeleteActionState';\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 * Enables deleting the loaded entity from the entity page. Pass `true` for a\n * schema-backed page to use the source backend, or an object to customize the\n * action and to provide a delete handler for manually wired pages.\n */\n deleteAction?: EntityPageDeleteAction<T>;\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 * Referrer forwarded to the parent page on back, cancel and save, so callers\n * can carry navigation context across the transition.\n *\n * Only used for parentPageId navigations; Patterns Router keeps its context\n * in router state.\n *\n * Forwarded by the BM and Giza providers. Dropped by the dashboard provider,\n * whose SDK Destination has no referrer field.\n */\n parentReferrer?: 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 * Whether the page was opened to create a new entity rather than to edit an\n * existing one. Decides how a save is announced to the parent page — created\n * vs updated — so a new item seeded with local defaults is still announced\n * as created. Pass a getter when the route can change while the page stays\n * mounted. When omitted, the announcement follows whether an entity was\n * loaded.\n */\n isNewEntity?: boolean | (() => boolean);\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 _loadedSchema: LoadedSchema<T> | null = null;\n private readonly _isNewEntity?: boolean | (() => boolean);\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n private readonly _parentReferrer?: 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 // Shallow: a deep set would wrap the token objects, and release could not\n // find them again.\n private readonly _saveHolds = observable.set<object>([], { deep: false });\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 readonly deleteActionState: EntityPageDeleteActionState<T>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n delete: () => void;\n deleteError: (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._isNewEntity = params.isNewEntity;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this._parentReferrer = params.parentReferrer;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n this.deleteActionState = new EntityPageDeleteActionState<T>({\n container: this.container,\n deleteAction: params.deleteAction,\n schemaSource: this.schemaSource,\n getEntity: () => this.entity,\n getLoadedSchema: () => this.loadedSchema,\n transformEntityToCollectionItem: this.transformEntityToCollectionItem,\n onDeleted: action((deletedCollectionItem) =>\n this.handleEntityDeleted(deletedCollectionItem),\n ),\n emitDelete: () => this.events.emit('delete'),\n emitDeleteError: (err) => this.events.emit('deleteError', err),\n });\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 _loadedSchema: observable.ref,\n setLoadedSchema: action,\n customColumnsState: observable.ref,\n holdSave: action,\n isSaveHeld: computed,\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 // A fields card can mirror a newer value while these promises settle.\n if (loadedSchema && !this.loadedSchema) {\n this.setLoadedSchema(loadedSchema);\n }\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 setLoadedSchema(loadedSchema: LoadedSchema<T> | null) {\n this._loadedSchema = loadedSchema;\n }\n\n get loadedSchema(): LoadedSchema<T> | null {\n return this._loadedSchema;\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 private get _isExistingEntity(): boolean {\n const isNewEntity =\n typeof this._isNewEntity === 'function'\n ? this._isNewEntity()\n : this._isNewEntity;\n const isRouteKnown = isNewEntity !== undefined;\n return isRouteKnown ? !isNewEntity : !!this._entity;\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._isExistingEntity\n ? '_updatedEntity'\n : '_createdEntity';\n this.navigateToParentWithState({ [entityStringKey]: updatedEntity });\n }\n\n navigateToParentWithState(entityObject: Record<string, unknown>) {\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n ...(this._parentReferrer !== undefined && {\n referrer: this._parentReferrer,\n }),\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 private handleEntityDeleted(deletedCollectionItem: any) {\n this.isSubmitSuccessful = true;\n this.navigateToParentWithState({ _deletedEntity: deletedCollectionItem });\n }\n\n /**\n * Blocks `handleSubmit` until the returned release is called (idempotent).\n * For features whose form fields are not mounted yet — react-hook-form only\n * validates mounted controls, so a save in that window would skip their\n * required-field validation.\n */\n holdSave(): () => void {\n const hold = {};\n this._saveHolds.add(hold);\n return action(() => {\n this._saveHolds.delete(hold);\n });\n }\n\n get isSaveHeld(): boolean {\n return this._saveHolds.size > 0;\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading || this.isSaveHeld) {\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","_EntityPageDeleteActionState","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","observable","set","deep","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","_isNewEntity","isNewEntity","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","_parentReferrer","parentReferrer","container","deleteActionState","EntityPageDeleteActionState","deleteAction","getEntity","entity","getLoadedSchema","loadedSchema","onDeleted","action","deletedCollectionItem","handleEntityDeleted","emitDelete","events","emit","emitDeleteError","err","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","ref","setEntity","_schema","setSchema","_loadedSchema","setLoadedSchema","customColumnsState","actionsBarConfig","setActionsBarConfig","holdSave","isSaveHeld","computed","isFormDirty","_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","Promise","all","loadSchema","status","promise","schema","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","_this$actionsBarConfi","reportButtonClick","ctaName","additionalInfo","cancelCta","biAdditionalInfo","navigateToParent","_isExistingEntity","isRouteKnown","undefined","updatedEntity","entityStringKey","navigateToParentWithState","entityObject","navigate","state","navigateTo","pageId","referrer","_showErrorToast","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","_deletedEntity","hold","_saveHolds","add","delete","size","submitTask","isLoading","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 type { LoadedSchema } 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';\nimport {\n EntityPageDeleteAction,\n EntityPageDeleteActionState,\n} from './EntityPageDeleteActionState';\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 * Enables deleting the loaded entity from the entity page. Pass `true` for a\n * schema-backed page to use the source backend, or an object to customize the\n * action and to provide a delete handler for manually wired pages.\n */\n deleteAction?: EntityPageDeleteAction<T>;\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 * Referrer forwarded to the parent page on back, cancel and save, so callers\n * can carry navigation context across the transition.\n *\n * Only used for parentPageId navigations; Patterns Router keeps its context\n * in router state.\n *\n * Forwarded by the BM and Giza providers. Dropped by the dashboard provider,\n * whose SDK Destination has no referrer field.\n */\n parentReferrer?: 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 * Whether the page was opened to create a new entity rather than to edit an\n * existing one. Decides how a save is announced to the parent page — created\n * vs updated — so a new item seeded with local defaults is still announced\n * as created. Pass a getter when the route can change while the page stays\n * mounted. When omitted, the announcement follows whether an entity was\n * loaded.\n */\n isNewEntity?: boolean | (() => boolean);\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 _loadedSchema: LoadedSchema<T> | null = null;\n private readonly _isNewEntity?: boolean | (() => boolean);\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n private readonly _parentReferrer?: 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 // Shallow: a deep set would wrap the token objects, and release could not\n // find them again.\n private readonly _saveHolds = observable.set<object>([], { deep: false });\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 readonly deleteActionState: EntityPageDeleteActionState<T>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n delete: () => void;\n deleteError: (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._isNewEntity = params.isNewEntity;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this._parentReferrer = params.parentReferrer;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n this.deleteActionState = new EntityPageDeleteActionState<T>({\n container: this.container,\n deleteAction: params.deleteAction,\n schemaSource: this.schemaSource,\n getEntity: () => this.entity,\n getLoadedSchema: () => this.loadedSchema,\n transformEntityToCollectionItem: this.transformEntityToCollectionItem,\n onDeleted: action((deletedCollectionItem) =>\n this.handleEntityDeleted(deletedCollectionItem),\n ),\n emitDelete: () => this.events.emit('delete'),\n emitDeleteError: (err) => this.events.emit('deleteError', err),\n });\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 _loadedSchema: observable.ref,\n setLoadedSchema: action,\n customColumnsState: observable.ref,\n actionsBarConfig: observable.ref,\n setActionsBarConfig: action,\n holdSave: action,\n isSaveHeld: computed,\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 // A fields card can mirror a newer value while these promises settle.\n if (loadedSchema && !this.loadedSchema) {\n this.setLoadedSchema(loadedSchema);\n }\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 setActionsBarConfig(actionsBarConfig?: ActionsBarConfig) {\n this.actionsBarConfig = actionsBarConfig;\n }\n\n setLoadedSchema(loadedSchema: LoadedSchema<T> | null) {\n this._loadedSchema = loadedSchema;\n }\n\n get loadedSchema(): LoadedSchema<T> | null {\n return this._loadedSchema;\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 private get _isExistingEntity(): boolean {\n const isNewEntity =\n typeof this._isNewEntity === 'function'\n ? this._isNewEntity()\n : this._isNewEntity;\n const isRouteKnown = isNewEntity !== undefined;\n return isRouteKnown ? !isNewEntity : !!this._entity;\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._isExistingEntity\n ? '_updatedEntity'\n : '_createdEntity';\n this.navigateToParentWithState({ [entityStringKey]: updatedEntity });\n }\n\n navigateToParentWithState(entityObject: Record<string, unknown>) {\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n ...(this._parentReferrer !== undefined && {\n referrer: this._parentReferrer,\n }),\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 private handleEntityDeleted(deletedCollectionItem: any) {\n this.isSubmitSuccessful = true;\n this.navigateToParentWithState({ _deletedEntity: deletedCollectionItem });\n }\n\n /**\n * Blocks `handleSubmit` until the returned release is called (idempotent).\n * For features whose form fields are not mounted yet — react-hook-form only\n * validates mounted controls, so a save in that window would skip their\n * required-field validation.\n */\n holdSave(): () => void {\n const hold = {};\n this._saveHolds.add(hold);\n return action(() => {\n this._saveHolds.delete(hold);\n });\n }\n\n get isSaveHeld(): boolean {\n return this._saveHolds.size > 0;\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading || this.isSaveHeld) {\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":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAUA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,sBAAA,GAAAF,OAAA;AAEA,IAAAG,0BAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAIA,IAAAK,4BAAA,GAAAL,OAAA;AAkIO,MAAMM,eAAe,CAE5B;EAqCE;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,eAAeA,CAAA,EAA2C;IAC5D,OAAO,IAAAC,wCAAiB,EAAC,IAAI,CAACC,YAAY,CAAC;EAC7C;EAkBAC,WAAWA,CAACC,MAAmC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBAxD7B,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBACC,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,yBACW,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAQ5C;AACF;AACA;AACA;AACA;AACA;AACA;IANE,IAAAD,gBAAA,CAAAC,OAAA,kBAOiC,IAAI;IAErC;AACF;AACA;IAFE,IAAAD,gBAAA,CAAAC,OAAA,8BAG0D,IAAI;IAE9D;IACA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBAC8BC,gBAAU,CAACC,GAAG,CAAS,EAAE,EAAE;MAAEC,IAAI,EAAE;IAAM,CAAC,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBAkB3B,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAKhC,IAAII,oBAAY,CAAC,CAAC;IAQlC,IAAI,CAACC,KAAK,GAAGP,MAAM,CAACO,KAAK;IACzB,IAAI,CAACC,MAAM,GAAGR,MAAM,CAACQ,MAAM;IAC3B,IAAI,CAACC,gBAAgB,GAAGT,MAAM,CAACS,gBAAgB;IAC/C,IAAI,CAACC,cAAc,GAAGV,MAAM,CAACU,cAAc;IAC3C,IAAI,CAACC,QAAQ,GAAG,IAAIC,sBAAa,CAAI;MAAEC,IAAI,EAAEb,MAAM,CAACa;IAAK,CAAC,CAAC;IAC3D,IAAI,CAACC,aAAa,GAAGd,MAAM,CAACe,YAAY;IACxC,IAAI,CAACC,YAAY,GAAGhB,MAAM,CAACiB,WAAW;IACtC,IAAI,CAACC,+BAA+B,GAClClB,MAAM,CAACkB,+BAA+B,KAAMC,QAAW,IAAKA,QAAQ,CAAC;IACvE,IAAI,CAACC,WAAW,GAAGpB,MAAM,CAACqB,UAAU;IACpC,IAAI,CAACC,eAAe,GAAGtB,MAAM,CAACuB,cAAc;IAC5C,IAAI,CAACzB,YAAY,GAAGE,MAAM,CAACF,YAAY;IAEvC,IAAI,CAAC0B,SAAS,GAAGxB,MAAM,CAACwB,SAAS;IACjC,IAAI,CAACC,iBAAiB,GAAG,IAAIC,wDAA2B,CAAI;MAC1DF,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBG,YAAY,EAAE3B,MAAM,CAAC2B,YAAY;MACjC7B,YAAY,EAAE,IAAI,CAACA,YAAY;MAC/B8B,SAAS,EAAEA,CAAA,KAAM,IAAI,CAACC,MAAM;MAC5BC,eAAe,EAAEA,CAAA,KAAM,IAAI,CAACC,YAAY;MACxCb,+BAA+B,EAAE,IAAI,CAACA,+BAA+B;MACrEc,SAAS,EAAE,IAAAC,YAAM,EAAEC,qBAAqB,IACtC,IAAI,CAACC,mBAAmB,CAACD,qBAAqB,CAChD,CAAC;MACDE,UAAU,EAAEA,CAAA,KAAM,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,QAAQ,CAAC;MAC5CC,eAAe,EAAGC,GAAG,IAAK,IAAI,CAACH,MAAM,CAACC,IAAI,CAAC,aAAa,EAAEE,GAAG;IAC/D,CAAC,CAAC;IAEF,IAAI,CAACC,YAAY,GAAGzC,MAAM,CAAC0C,WAAW,IAAI,IAAI;IAE9C,IAAI,IAAI,CAACD,YAAY,EAAE;MAAA,IAAAE,qBAAA;MACrB,IAAI,CAACC,OAAO,IAAAD,qBAAA,GAAG,IAAI,CAACF,YAAY,CAACI,YAAY,cAAAF,qBAAA,GAA9BA,qBAAA,CAAgCG,aAAa,qBAA7CH,qBAAA,CAA+Cd,MAAM;IACtE;IAEA,IAAI,CAACkB,QAAQ,GAAG,IAAI,CAACvB,SAAS,CAACwB,cAAc,CAAC;MAC5CC,aAAa,EAAE,aAAa;MAC5BC,QAAQ,EAAE,QAAQ;MAClBC,KAAK,EAAEC,MAAM,CAACC,QAAQ,CAACC;IACzB,CAAC,CAAC;IAEF,IAAI,CAACC,EAAE,GAAG,IAAIC,oDAAyB,CAAC;MACtCT,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBU,eAAe,EAAE;IACnB,CAAC,CAAC;IACF,IAAI,CAACF,EAAE,CAACG,IAAI,CAAC,CAAC;IAEd,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,YAAY,EAAE3B,YAAM;MACpBW,OAAO,EAAEzC,gBAAU,CAAC0D,GAAG;MACvBC,SAAS,EAAE7B,YAAM;MACjB8B,OAAO,EAAE5D,gBAAU,CAAC0D,GAAG;MACvBG,SAAS,EAAE/B,YAAM;MACjBgC,aAAa,EAAE9D,gBAAU,CAAC0D,GAAG;MAC7BK,eAAe,EAAEjC,YAAM;MACvBkC,kBAAkB,EAAEhE,gBAAU,CAAC0D,GAAG;MAClCO,gBAAgB,EAAEjE,gBAAU,CAAC0D,GAAG;MAChCQ,mBAAmB,EAAEpC,YAAM;MAC3BqC,QAAQ,EAAErC,YAAM;MAChBsC,UAAU,EAAEC,cAAQ;MACpBC,WAAW,EAAED,cAAQ;MACrBE,aAAa,EAAEF;IACjB,CAAC,CAAC;EACJ;EAEAd,IAAIA,CAAA,EAAG;IACL,IAAI,CAACiB,gBAAgB,CAAC,CAAC;IACvB,MAAM;MACJhE,QAAQ,EAAE;QAAEiE;MAAS,CAAC;MACtBpD;IACF,CAAC,GAAG,IAAI;IACR,MAAM;MAAEqD;IAAe,CAAC,GAAGrD,SAAS;IAEpC,MAAMsD,0BAA0B,GAAGD,cAAc,oBAAdA,cAAc,CAC/C,IAAA5C,YAAM,EAAE8C,KAAY,IAAK;MACvB,IAAI,IAAAC,uBAAc,EAAC,CAAC,EAAE;QACpB;MACF;MAEA,MAAM;QAAEnE;MAAK,CAAC,GAAG,IAAI;MACrB;MACA,IACEA,IAAI,CAACoE,SAAS,CAACC,kBAAkB,IACjC,IAAI,CAACvE,QAAQ,CAACwE,mBAAmB,IACjC,CAAC,IAAI,CAACV,WAAW,EACjB;QACA;MACF;MACAM,KAAK,CAACK,cAAc,CAAC,CAAC;MACtB,IAAI,CAAC7B,EAAE,CAAC8B,oBAAoB,CAAC,CAAC;IAChC,CAAC,CACH,CAAC;IAEDT,QAAQ,CAACU,OAAO,CAAC,YAAY;MAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,sBAAA,EAAAC,kBAAA,EAAAC,QAAA;MAC3B;MACA;MACA,CAAAJ,qBAAA,OAAI,CAAC3F,eAAe,aAApB2F,qBAAA,CAAsB7B,IAAI,CAAC,CAAC;MAE5B,MAAM,CAACkC,IAAI,EAAE7D,YAAY,CAAC,GAAG,MAAM8D,OAAO,CAACC,GAAG,CAAC,CAC7C,IAAI,CAACvF,KAAK,CAAC,CAAC,GAAAiF,kBAAA,GACZ,IAAI,CAAC1F,YAAY,qBAAjB0F,kBAAA,CAAmBO,UAAU,CAAC,CAAC,EAC/BvE,SAAS,CAACoD,QAAQ,CAACoB,MAAM,CAACC,OAAO,GAAAR,sBAAA,GACjC,IAAI,CAAC7F,eAAe,qBAApB6F,sBAAA,CAAsBb,QAAQ,CAACoB,MAAM,CAACC,OAAO,CAC9C,CAAC;MAEF,IAAI,CAACnC,SAAS,CAAC8B,IAAI,CAAC/D,MAAM,IAAI,IAAI,CAAC;MACnC;MACA,IAAIE,YAAY,IAAI,CAAC,IAAI,CAACA,YAAY,EAAE;QACtC,IAAI,CAACmC,eAAe,CAACnC,YAAY,CAAC;MACpC;MACA,IAAIA,YAAY,IAAI,CAAC,IAAI,CAACmE,MAAM,EAAE;QAChC,IAAI,CAAClC,SAAS,CAACjC,YAAY,CAACmE,MAAM,CAAC;MACrC;MACA,CAAAR,kBAAA,IAAAC,QAAA,OAAI,CAACpC,EAAE,EAAC4C,SAAS,aAAjBT,kBAAA,CAAAU,IAAA,CAAAT,QAAoB,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXb,0BAA0B,YAA1BA,0BAA0B,CAAEuB,MAAM,CAAC,CAAC;IACtC,CAAC;EACH;EAEAC,UAAUA,CAAA,EAAG;IACX,IAAI,CAAC3F,QAAQ,CAAC2F,UAAU,CAAC,CAAC;EAC5B;EAEAxC,SAASA,CAACyC,SAAmB,EAAE;IAC7B,IAAI,CAAC3D,OAAO,GAAG2D,SAAS;EAC1B;EAEA,IAAI1E,MAAMA,CAAA,EAAa;IACrB,OAAO,IAAI,CAACe,OAAO;EACrB;EAEAoB,SAASA,CAACkC,MAAqB,EAAE;IAC/B,IAAI,CAACnC,OAAO,GAAGmC,MAAM;EACvB;EAEA,IAAIA,MAAMA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAACnC,OAAO;EACrB;EAEAM,mBAAmBA,CAACD,gBAAmC,EAAE;IACvD,IAAI,CAACA,gBAAgB,GAAGA,gBAAgB;EAC1C;EAEAF,eAAeA,CAACnC,YAAoC,EAAE;IACpD,IAAI,CAACkC,aAAa,GAAGlC,YAAY;EACnC;EAEA,IAAIA,YAAYA,CAAA,EAA2B;IACzC,OAAO,IAAI,CAACkC,aAAa;EAC3B;EAEA,IAAIuC,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC7F,QAAQ,CAAC6F,UAAU;EACjC;EAEA,IAAI3F,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACF,QAAQ,CAACE,IAAI;EAC3B;EAEA,IAAIqE,kBAAkBA,CAACuB,IAAa,EAAE;IACpC,IAAI,CAAC9F,QAAQ,CAACuE,kBAAkB,GAAGuB,IAAI;EACzC;EAEA,IAAIhC,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAAC9D,QAAQ,CAAC+F,OAAO;EAC9B;;EAEA;EACA,IAAIC,YAAYA,CAACC,GAAY,EAAE;IAC7B,IAAI,CAACjG,QAAQ,CAACgG,YAAY,GAAGC,GAAG;EAClC;EAEA,IAAIlC,aAAaA,CAAA,EAAG;IAClB,OAAO,CAAC,CAAC,IAAI,CAACjC,YAAY;EAC5B;EAEAoE,QAAQA,CAAA,EAAG;IAAA,IAAAC,qBAAA;IACT,IAAI,CAACvD,EAAE,CAACwD,iBAAiB,CAAC;MACxBC,OAAO,EAAE,QAAQ;MACjBC,cAAc,GAAAH,qBAAA,GAAE,IAAI,CAAC1C,gBAAgB,cAAA0C,qBAAA,GAArBA,qBAAA,CAAuBI,SAAS,qBAAhCJ,qBAAA,CAAkCK;IACpD,CAAC,CAAC;IACF,IAAI,CAACC,gBAAgB,CAAC,CAAC;EACzB;EAEA,IAAYC,iBAAiBA,CAAA,EAAY;IACvC,MAAMpG,WAAW,GACf,OAAO,IAAI,CAACD,YAAY,KAAK,UAAU,GACnC,IAAI,CAACA,YAAY,CAAC,CAAC,GACnB,IAAI,CAACA,YAAY;IACvB,MAAMsG,YAAY,GAAGrG,WAAW,KAAKsG,SAAS;IAC9C,OAAOD,YAAY,GAAG,CAACrG,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC2B,OAAO;EACrD;EAEAwE,gBAAgBA,CAACI,aAAmB,EAAE;IACpC,MAAMC,eAAe,GAAG,IAAI,CAACJ,iBAAiB,GAC1C,gBAAgB,GAChB,gBAAgB;IACpB,IAAI,CAACK,yBAAyB,CAAC;MAAE,CAACD,eAAe,GAAGD;IAAc,CAAC,CAAC;EACtE;EAEAE,yBAAyBA,CAACC,YAAqC,EAAE;IAC/D,IAAI,IAAI,CAACjD,aAAa,EAAE;MACtB,IAAI,CAACjC,YAAY,CAAEmF,QAAQ,CAAC,IAAI,CAACxG,WAAW,EAAG;QAAEyG,KAAK,EAAEF;MAAa,CAAC,CAAC;IACzE,CAAC,MAAM;MACL,IAAI,CAACnG,SAAS,CAACsG,UAAU,CAAE;QACzBC,MAAM,EAAE,IAAI,CAACjH,aAAc;QAC3B,IAAI,IAAI,CAACQ,eAAe,KAAKiG,SAAS,IAAI;UACxCS,QAAQ,EAAE,IAAI,CAAC1G;QACjB,CAAC;MACH,CAAC,CAAC;IACJ;EACF;EAEA2G,eAAeA,CAACzF,GAAQ,EAAE0F,CAA4B,EAAE;IAAA,IAAAC,oBAAA,EAAAC,qBAAA,EAAAC,eAAA;IACtD,MAAMC,UAAU,IAAAH,oBAAA,GAAG,IAAI,CAACzH,cAAc,qBAAnByH,oBAAA,CAAA/B,IAAA,KAAI,EAAkB5D,GAAG,EAAE;MAC5C+F,KAAK,EAAEA,CAAA,KAAM,IAAI,CAAC3E,YAAY,CAACsE,CAAC;IAClC,CAAC,CAAC;IACF,MAAMM,OAAO,GACX,OAAOF,UAAU,KAAK,QAAQ,GAAGA,UAAU,GAAGA,UAAU,oBAAVA,UAAU,CAAEE,OAAO;IACnE,MAAMC,YAAY,GAChB,OAAOH,UAAU,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAAA,UAAU,oBAAVA,UAAU,CAAEI,QAAQ,MAAK,KAAK;IACxE,MAAMzG,MAAM,GACV,OAAOqG,UAAU,KAAK,QAAQ,GAAGf,SAAS,GAAGe,UAAU,oBAAVA,UAAU,CAAErG,MAAM;IAEjE,CAAAmG,qBAAA,IAAAC,eAAA,OAAI,CAAC7G,SAAS,EAACmH,SAAS,aAAxBP,qBAAA,CAAAhC,IAAA,CAAAiC,eAAA,EAA2B;MACzBO,IAAI,EAAE,OAAO;MACbC,MAAM,EAAE,oCAAoC;MAC5CL,OAAO,EACLA,OAAO,IACP,IAAI,CAAChH,SAAS,CAACsH,SAAS,CACtB,CAAAtG,GAAG,oBAAHA,GAAG,CAAEuG,IAAI,MAAK,aAAa,GACvB,sDAAsD,GACtD,wDACN,CAAC;MACH9G,MAAM,EACJA,MAAM,IAAIwG,YAAY,GAClB;QACEO,MAAM,EAAE,MAAM;QACdC,IAAI,EACF,CAAAhH,MAAM,oBAANA,MAAM,CAAEgH,IAAI,KAAI,IAAI,CAACzH,SAAS,CAACsH,SAAS,CAAC,mBAAmB,CAAC;QAC/DI,OAAO,EAAEA,CAAA,KAAM;UACb,IAAIjH,MAAM,YAANA,MAAM,CAAEiH,OAAO,EAAE;YACnBjH,MAAM,CAACiH,OAAO,CAAC,CAAC;UAClB,CAAC,MAAM;YACL,IAAI,CAAC3F,EAAE,CAAC4F,kBAAkB,CAAC,CAAC;YAC5B,IAAI,CAACvF,YAAY,CAACsE,CAAC,CAAC;UACtB;QACF,CAAC;QACDkB,kBAAkB,EAAE;MACtB,CAAC,GACD7B;IACR,CAAC,CAAC;EACJ;EAEA8B,iBAAiBA,CAAA,EAAG;IAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,gBAAA;IAClB,MAAMhB,OAAO,GACX,OAAO,IAAI,CAAC/H,gBAAgB,KAAK,QAAQ,GACrC,IAAI,CAACA,gBAAgB,IAAA6I,qBAAA,GACrB,IAAI,CAAC7I,gBAAgB,qBAArB6I,qBAAA,CAAuBd,OAAO;IAEpC,CAAAe,sBAAA,IAAAC,gBAAA,OAAI,CAAChI,SAAS,EAACmH,SAAS,aAAxBY,sBAAA,CAAAnD,IAAA,CAAAoD,gBAAA,EAA2B;MACzBZ,IAAI,EAAE,SAAS;MACfC,MAAM,EAAE,sCAAsC;MAC9CL,OAAO,EACLA,OAAO,IAAI,IAAI,CAAChH,SAAS,CAACsH,SAAS,CAAC,gCAAgC;IACxE,CAAC,CAAC;EACJ;EAEQ3G,mBAAmBA,CAACD,qBAA0B,EAAE;IACtD,IAAI,CAACgD,kBAAkB,GAAG,IAAI;IAC9B,IAAI,CAACwC,yBAAyB,CAAC;MAAE+B,cAAc,EAAEvH;IAAsB,CAAC,CAAC;EAC3E;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEoC,QAAQA,CAAA,EAAe;IACrB,MAAMoF,IAAI,GAAG,CAAC,CAAC;IACf,IAAI,CAACC,UAAU,CAACC,GAAG,CAACF,IAAI,CAAC;IACzB,OAAO,IAAAzH,YAAM,EAAC,MAAM;MAClB,IAAI,CAAC0H,UAAU,CAACE,MAAM,CAACH,IAAI,CAAC;IAC9B,CAAC,CAAC;EACJ;EAEA,IAAInF,UAAUA,CAAA,EAAY;IACxB,OAAO,IAAI,CAACoF,UAAU,CAACG,IAAI,GAAG,CAAC;EACjC;EAEA,MAAMlG,YAAYA,CAACsE,CAA4B,EAAE;IAC/C,IAAI,IAAI,CAACvH,QAAQ,CAACoJ,UAAU,CAAC/D,MAAM,CAACgE,SAAS,IAAI,IAAI,CAACzF,UAAU,EAAE;MAChE;IACF;IAEA,IAAI,CAAClC,MAAM,CAACC,IAAI,CAAC,MAAM,CAAC;IAExB,MAAM;MAAE2H,OAAO;MAAErE,IAAI,EAAEsE;IAAgB,CAAC,GAAG,MAAM,IAAI,CAACvJ,QAAQ,CAACwJ,QAAQ,CAAC,CAAC;IAEzE,IAAI,CAACF,OAAO,EAAE;MAAA,IAAAG,sBAAA;MACZ,IAAI,CAAC7G,EAAE,CAACwD,iBAAiB,CAAC;QACxBC,OAAO,EAAE,MAAM;QACfiD,OAAO,EAAE,KAAK;QACdhD,cAAc,GAAAmD,sBAAA,GAAE,IAAI,CAAChG,gBAAgB,cAAAgG,sBAAA,GAArBA,sBAAA,CAAuBC,OAAO,qBAA9BD,sBAAA,CAAgCjD;MAClD,CAAC,CAAC;MACF;IACF;IAEA,MAAM;MACJtG,IAAI;MACJF,QAAQ,EAAE;QAAEoJ;MAAW,CAAC;MACxBxG;IACF,CAAC,GAAG,IAAI;IAERwG,UAAU,CAACO,GAAG,CAAC,YAAY;MACzB,IAAIC,WAA0B;MAC9B,IAAIC,gBAAgB,GAAG,KAAK;MAE5B,MAAM3J,IAAI,CAAC+C,YAAY,CACrB,YAAY;QAAA,IAAA6G,sBAAA;QACVlH,EAAE,CAACwD,iBAAiB,CAAC;UACnBC,OAAO,EAAE,MAAM;UACfiD,OAAO,EAAE,IAAI;UACbhD,cAAc,GAAAwD,sBAAA,GAAE,IAAI,CAACrG,gBAAgB,cAAAqG,sBAAA,GAArBA,sBAAA,CAAuBJ,OAAO,qBAA9BI,sBAAA,CAAgCtD;QAClD,CAAC,CAAC;QACF,IAAI;UACF,IAAI,CAAC,IAAI,CAACX,UAAU,EAAE;YACpB,MAAMkE,YAAY,GAAG,MAAM,IAAI,CAAClK,MAAM,CAAC;cACrC0J;YACF,CAAC,CAAC;YACFK,WAAW,GAAGG,YAAY,oBAAZA,YAAY,CAAElD,aAAa;UAC3C;UACA,IAAI,CAAC6B,iBAAiB,CAAC,CAAC;UACxBmB,gBAAgB,GAAG,IAAI,CAAC,CAAC;UACzB;UACA,IAAI,CAACtF,kBAAkB,GAAG,IAAI;QAChC,CAAC,CAAC,OAAO1C,GAAG,EAAE;UACZ,IAAI,CAACyF,eAAe,CAACzF,GAAG,EAAE0F,CAAC,CAAC;UAC5B,IAAI,CAAC1G,SAAS,CAACmJ,YAAY,CAACC,gBAAgB,CAACpI,GAAG,CAAC;UACjD,IAAI,CAACH,MAAM,CAACC,IAAI,CAAC,WAAW,EAAEE,GAAG,CAAC;UAClC3B,IAAI,CAACgK,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC;MACF,CAAC,EACD,MAAM;QAAA,IAAAC,sBAAA;QACJvH,EAAE,CAACwD,iBAAiB,CAAC;UACnBC,OAAO,EAAE,MAAM;UACfiD,OAAO,EAAE,KAAK;UACdhD,cAAc,GAAA6D,sBAAA,GAAE,IAAI,CAAC1G,gBAAgB,cAAA0G,sBAAA,GAArBA,sBAAA,CAAuBT,OAAO,qBAA9BS,sBAAA,CAAgC3D;QAClD,CAAC,CAAC;MACJ,CAAC,CAAE;MACL,CAAC,CAACe,CAAC,CAAC;MAEJ,IAAI,CAACsC,gBAAgB,EAAE;QACrB;MACF;MACA,MAAMO,eAAe,GACnBR,WAAW,IAAI,IAAI,CAACrJ,+BAA+B,GAC/C,IAAI,CAACA,+BAA+B,CAACqJ,WAAW,CAAC,GACjDA,WAAW;MACjB,IAAI,CAACnD,gBAAgB,CAAC2D,eAAe,CAAC;IACxC,CAAC,CAAC;IACF,MAAM,IAAI,CAACpK,QAAQ,CAACoJ,UAAU,CAAC/D,MAAM,CAACC,OAAO;EAC/C;EAEA,IAAIrB,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACjE,QAAQ,CAACiE,QAAQ;EAC/B;EAEA,IAAImF,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACpJ,QAAQ,CAACoJ,UAAU;EACjC;EAEQpF,gBAAgBA,CAAA,EAAG;IACzB,IAAI,IAAI,CAACD,aAAa,EAAE;MACtB,IAAI,IAAI,CAACtD,WAAW,KAAKmG,SAAS,EAAE;QAClC,MAAM,IAAIyD,KAAK,CAAC,6CAA6C,CAAC;MAChE;IACF,CAAC,MAAM;MACL,IAAI,IAAI,CAAClK,aAAa,KAAKyG,SAAS,EAAE;QACpC,MAAM,IAAIyD,KAAK,CAAC,+CAA+C,CAAC;MAClE;MAEA,IAAI,CAAC,IAAI,CAACxJ,SAAS,CAACsG,UAAU,EAAE;QAC9B,MAAM,IAAIkD,KAAK,CAAC,iDAAiD,CAAC;MACpE;IACF;EACF;AACF;AAACC,OAAA,CAAAtL,eAAA,GAAAA,eAAA","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_ = "FormPageHeader201697252";
8
+ var _namespace_ = "FormPageHeader3244011802";
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": "FormPageHeader201697252__root"
15
+ "root": "FormPageHeader3244011802__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_ = \"FormPageHeader201697252\";\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\":\"FormPageHeader201697252__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,yBAAyB;AAC3C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAA+B,CAAC;AACtD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"FormPageHeader3244011802\";\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\":\"FormPageHeader3244011802__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":[]}
@@ -23,15 +23,28 @@ class RectState {
23
23
  (0, _defineProperty2.default)(this, "_syncDebounced", void 0);
24
24
  (0, _defineProperty2.default)(this, "container", void 0);
25
25
  (0, _defineProperty2.default)(this, "element", void 0);
26
+ (0, _defineProperty2.default)(this, "_animationFrameHandle", void 0);
26
27
  (0, _defineProperty2.default)(this, "rect", (0, _mobx.observable)(emptyRect()));
28
+ (0, _defineProperty2.default)(this, "_requestSync", () => {
29
+ this._cancelRequestedSync();
30
+ this._animationFrameHandle = this.container.window.requestAnimationFrame(() => {
31
+ this._animationFrameHandle = undefined;
32
+ this._sync();
33
+ });
34
+ });
27
35
  this.container = params.container;
28
36
  (0, _mobx.makeObservable)(this, {
29
37
  _sync: _mobx.action.bound
30
38
  });
31
- this._syncThrottled = this.container.lodash.throttle(() => {
32
- window.requestAnimationFrame(this._sync);
33
- }, 200);
34
- this._syncDebounced = () => window.requestAnimationFrame(this._sync);
39
+ this._syncThrottled = this.container.lodash.throttle(this._requestSync, 200);
40
+ this._syncDebounced = this._requestSync;
41
+ }
42
+ _cancelRequestedSync() {
43
+ if (this._animationFrameHandle === undefined) {
44
+ return;
45
+ }
46
+ this.container.window.cancelAnimationFrame(this._animationFrameHandle);
47
+ this._animationFrameHandle = undefined;
35
48
  }
36
49
  _readRect() {
37
50
  const {
@@ -99,6 +112,8 @@ class RectState {
99
112
  const disposers = [(0, _bexCore.addResizeObserver)(element, this._syncDebounced)];
100
113
  return (0, _mobx.action)(() => {
101
114
  disposers.forEach(d => d == null ? void 0 : d());
115
+ this._syncThrottled.cancel();
116
+ this._cancelRequestedSync();
102
117
  Object.assign(this.rect, emptyRect());
103
118
  if (scrollElement) {
104
119
  scrollElement.removeEventListener('scroll', this._syncThrottled);
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_bexCore","emptyRect","bottom","undefined","height","left","right","top","width","exports","RectState","constructor","params","_defineProperty2","default","observable","container","makeObservable","_sync","action","bound","_syncThrottled","lodash","throttle","window","requestAnimationFrame","_syncDebounced","_readRect","element","process","env","NODE_ENV","matches","matchMedia","y","x","r","getBoundingClientRect","rect","Object","assign","init","scrollElement","addEventListener","disposers","addResizeObserver","forEach","d","removeEventListener"],"sources":["../../../src/state/RectState.ts"],"sourcesContent":["import { action, makeObservable, observable } from 'mobx';\nimport { addResizeObserver, WixPatternsContainer } from '@wix/bex-core';\n\nexport interface Rect {\n bottom: number;\n height: number;\n left: number;\n right: number;\n top: number;\n width: number;\n // x: number;\n // y: number;\n}\n\nexport interface EmptyRect {\n bottom: undefined;\n height: undefined;\n left: undefined;\n right: undefined;\n top: undefined;\n width: undefined;\n // x: undefined;\n // y: undefined;\n}\n\nexport const emptyRect = () => ({\n bottom: undefined,\n height: undefined,\n left: undefined,\n right: undefined,\n top: undefined,\n width: undefined,\n // x: undefined,\n // y: undefined,\n});\n\nexport interface RectStateParams {\n container: WixPatternsContainer;\n}\n\nexport class RectState {\n readonly _syncThrottled;\n readonly _syncDebounced;\n readonly container;\n\n element?: Element | null | undefined;\n\n readonly rect = observable<Rect | EmptyRect>(emptyRect());\n\n constructor(params: RectStateParams) {\n this.container = params.container;\n\n makeObservable(this, {\n _sync: action.bound,\n });\n\n this._syncThrottled = this.container.lodash.throttle(() => {\n window.requestAnimationFrame(this._sync);\n }, 200);\n\n this._syncDebounced = () => window.requestAnimationFrame(this._sync);\n }\n\n _readRect() {\n const {\n element,\n container: { window },\n } = this;\n\n if (element == null) {\n return {};\n }\n\n if (process.env.NODE_ENV === 'test') {\n const { matches } = window.matchMedia('(min-width: 768px)');\n return matches\n ? {\n height: 600,\n width: 840,\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n y: 0,\n x: 0,\n }\n : {\n height: 600,\n width: 610,\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n y: 0,\n x: 0,\n };\n }\n\n const r = element.getBoundingClientRect();\n return {\n bottom: r.bottom,\n height: r.height,\n left: r.left,\n right: r.right,\n top: r.top,\n width: r.width,\n x: r.x,\n y: r.y,\n };\n }\n\n _sync() {\n const { rect } = this;\n Object.assign(rect, this._readRect());\n }\n\n init({ scrollElement }: { scrollElement?: Element | null } = {}) {\n const { element } = this;\n if (element) {\n this._syncThrottled();\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', this._syncThrottled);\n }\n\n const disposers = [addResizeObserver(element, this._syncDebounced)];\n\n return action(() => {\n disposers.forEach((d) => d?.());\n Object.assign(this.rect, emptyRect());\n\n if (scrollElement) {\n scrollElement.removeEventListener('scroll', this._syncThrottled);\n }\n });\n }\n\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_bexCore","emptyRect","bottom","undefined","height","left","right","top","width","exports","RectState","constructor","params","_defineProperty2","default","observable","_cancelRequestedSync","_animationFrameHandle","container","window","requestAnimationFrame","_sync","makeObservable","action","bound","_syncThrottled","lodash","throttle","_requestSync","_syncDebounced","cancelAnimationFrame","_readRect","element","process","env","NODE_ENV","matches","matchMedia","y","x","r","getBoundingClientRect","rect","Object","assign","init","scrollElement","addEventListener","disposers","addResizeObserver","forEach","d","cancel","removeEventListener"],"sources":["../../../src/state/RectState.ts"],"sourcesContent":["import { action, makeObservable, observable } from 'mobx';\nimport { addResizeObserver, WixPatternsContainer } from '@wix/bex-core';\n\nexport interface Rect {\n bottom: number;\n height: number;\n left: number;\n right: number;\n top: number;\n width: number;\n // x: number;\n // y: number;\n}\n\nexport interface EmptyRect {\n bottom: undefined;\n height: undefined;\n left: undefined;\n right: undefined;\n top: undefined;\n width: undefined;\n // x: undefined;\n // y: undefined;\n}\n\nexport const emptyRect = () => ({\n bottom: undefined,\n height: undefined,\n left: undefined,\n right: undefined,\n top: undefined,\n width: undefined,\n // x: undefined,\n // y: undefined,\n});\n\nexport interface RectStateParams {\n container: WixPatternsContainer;\n}\n\nexport class RectState {\n readonly _syncThrottled;\n readonly _syncDebounced;\n readonly container;\n\n element?: Element | null | undefined;\n _animationFrameHandle?: number;\n\n readonly rect = observable<Rect | EmptyRect>(emptyRect());\n\n constructor(params: RectStateParams) {\n this.container = params.container;\n\n makeObservable(this, {\n _sync: action.bound,\n });\n\n this._syncThrottled = this.container.lodash.throttle(\n this._requestSync,\n 200,\n );\n\n this._syncDebounced = this._requestSync;\n }\n\n _requestSync = () => {\n this._cancelRequestedSync();\n this._animationFrameHandle = this.container.window.requestAnimationFrame(\n () => {\n this._animationFrameHandle = undefined;\n this._sync();\n },\n );\n };\n\n _cancelRequestedSync() {\n if (this._animationFrameHandle === undefined) {\n return;\n }\n\n this.container.window.cancelAnimationFrame(this._animationFrameHandle);\n this._animationFrameHandle = undefined;\n }\n\n _readRect() {\n const {\n element,\n container: { window },\n } = this;\n\n if (element == null) {\n return {};\n }\n\n if (process.env.NODE_ENV === 'test') {\n const { matches } = window.matchMedia('(min-width: 768px)');\n return matches\n ? {\n height: 600,\n width: 840,\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n y: 0,\n x: 0,\n }\n : {\n height: 600,\n width: 610,\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n y: 0,\n x: 0,\n };\n }\n\n const r = element.getBoundingClientRect();\n return {\n bottom: r.bottom,\n height: r.height,\n left: r.left,\n right: r.right,\n top: r.top,\n width: r.width,\n x: r.x,\n y: r.y,\n };\n }\n\n _sync() {\n const { rect } = this;\n Object.assign(rect, this._readRect());\n }\n\n init({ scrollElement }: { scrollElement?: Element | null } = {}) {\n const { element } = this;\n if (element) {\n this._syncThrottled();\n\n if (scrollElement) {\n scrollElement.addEventListener('scroll', this._syncThrottled);\n }\n\n const disposers = [addResizeObserver(element, this._syncDebounced)];\n\n return action(() => {\n disposers.forEach((d) => d?.());\n this._syncThrottled.cancel();\n this._cancelRequestedSync();\n Object.assign(this.rect, emptyRect());\n\n if (scrollElement) {\n scrollElement.removeEventListener('scroll', this._syncThrottled);\n }\n });\n }\n\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -145,7 +145,11 @@ class ToolbarResponsiveState {
145
145
  if (responsiveDisabled) {
146
146
  return () => {};
147
147
  }
148
- this._recomputeThrottled = this.container.lodash.throttle(() => {
148
+ const {
149
+ window,
150
+ lodash
151
+ } = this.container;
152
+ this._recomputeThrottled = lodash.throttle(() => {
149
153
  this._rafId = window.requestAnimationFrame(() => {
150
154
  (0, _mobx.runInAction)(() => this._applyTargetState());
151
155
  });
@@ -162,7 +166,7 @@ class ToolbarResponsiveState {
162
166
  var _this$_recomputeThrot3;
163
167
  disposers.forEach(d => d == null ? void 0 : d());
164
168
  (_this$_recomputeThrot3 = this._recomputeThrottled) == null || _this$_recomputeThrot3.cancel();
165
- cancelAnimationFrame(this._rafId);
169
+ window.cancelAnimationFrame(this._rafId);
166
170
  };
167
171
  }
168
172
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","_ToolbarResponsivePriorityState","_computeResponsiveTargetState","_toolbarResponsiveConstants","EXPAND_THRESHOLD_BUFFER","ToolbarResponsiveState","container","toolbar","constructor","params","_defineProperty2","default","actions","ToolbarResponsivePriorityState","responsive","filters","search","expandedWidth","SEARCH_EXPANDED_WIDTH","collapsedWidth","SEARCH_COLLAPSED_WIDTH","_groups","makeObservable","_shouldOverflow","observable","ref","_overflowHiddenContentWidth","responsiveDisabled","computed","_applyTargetState","action","_syncedProps","internalExperiments","useResponsiveLayout","enabled","_scheduleRecompute","_this$_recomputeThrot","_recomputeThrottled","call","_computeResponsiveInput","_this$leftGroupState","el","_measurementElement","contentEl","_contentElement","leftGroupExcess","leftGroupState","getExcessWidth","containerWidth","clientWidth","contentWidth","scrollWidth","groups","map","g","currentlyShrunk","_shouldShrink","groupsTotal","overflowableIndices","_overflowableGroupIndices","nonOverflowedTotal","reduce","sum","i","includes","OVERFLOW_BUTTON_WIDTH","hiddenContentAdjustment","availableWidth","input","result","computeResponsiveTargetState","expandThresholdBuffer","currentlyOverflowing","overflowButtonWidth","overflowableGroupIndices","forEach","shouldShrink","shouldOverflow","init","lodash","throttle","_rafId","window","requestAnimationFrame","runInAction","containerEl","toolbarRect","element","_this$_recomputeThrot2","cancel","disposers","addResizeObserver","_this$_recomputeThrot3","d","cancelAnimationFrame","exports"],"sources":["../../../../src/state/Toolbar/ToolbarResponsiveState.ts"],"sourcesContent":["import { addResizeObserver } from '@wix/bex-core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { ToolbarResponsivePriorityState } from './ToolbarResponsivePriorityState';\nimport { ToolbarState } from '../../components/CollectionToolbars/ToolbarState';\nimport { ToolbarLeftGroupState } from './ToolbarLeftGroupState';\nimport { computeResponsiveTargetState } from './computeResponsiveTargetState';\nimport {\n OVERFLOW_BUTTON_WIDTH,\n SEARCH_COLLAPSED_WIDTH,\n SEARCH_EXPANDED_WIDTH,\n} from './toolbarResponsiveConstants';\n\nexport interface ToolbarResponsiveStateParams {\n readonly toolbar: ToolbarState<any, any>;\n}\n\n// Buffer (in px) added to the expand threshold to prevent flickering near the\n// expand/collapse boundary. Tuned to ~2-3x the inter-element gap (SP2 = 12px) --\n// large enough to absorb measurement rounding and flex reflow, small enough that\n// the dead zone per group isn't visually noticeable during gradual resizing.\nconst EXPAND_THRESHOLD_BUFFER = 30;\n\nexport class ToolbarResponsiveState {\n readonly actions: ToolbarResponsivePriorityState;\n readonly search: ToolbarResponsivePriorityState;\n readonly filters: ToolbarResponsivePriorityState;\n\n private readonly _groups: ToolbarResponsivePriorityState[];\n\n _shouldOverflow = false;\n\n _measurementElement: Element | null = null;\n _contentElement: Element | null = null;\n\n // Width of non-group content that is removed from the DOM during overflow\n // (e.g., tableGridSwitchButton). Must be accounted for in the exit-overflow\n // calculation to prevent flicker.\n _overflowHiddenContentWidth = 0;\n\n readonly toolbar: ToolbarState<any, any>;\n\n leftGroupState: ToolbarLeftGroupState<any, any> | null = null;\n\n get container() {\n return this.toolbar.toolbar.container;\n }\n\n constructor(params: ToolbarResponsiveStateParams) {\n this.toolbar = params.toolbar;\n\n this.actions = new ToolbarResponsivePriorityState({\n responsive: this,\n });\n\n this.filters = new ToolbarResponsivePriorityState({\n responsive: this,\n });\n\n this.search = new ToolbarResponsivePriorityState({\n responsive: this,\n expandedWidth: SEARCH_EXPANDED_WIDTH,\n collapsedWidth: SEARCH_COLLAPSED_WIDTH,\n });\n\n this._groups = [this.actions, this.filters, this.search];\n\n makeObservable(this, {\n _shouldOverflow: observable.ref,\n _overflowHiddenContentWidth: observable.ref,\n responsiveDisabled: computed,\n _applyTargetState: action,\n });\n }\n\n get responsiveDisabled() {\n const {\n toolbar: {\n toolbar: { _syncedProps },\n },\n container: { internalExperiments },\n } = this;\n\n return (\n !_syncedProps?.useResponsiveLayout ||\n !internalExperiments?.enabled('specs.cairo.EnableResponsiveToolbar11420')\n );\n }\n\n _scheduleRecompute() {\n if (this.responsiveDisabled) {\n return;\n }\n this._recomputeThrottled?.();\n }\n\n private _computeResponsiveInput() {\n const el = this._measurementElement;\n const contentEl = this._contentElement;\n if (!el || !contentEl) {\n return null;\n }\n\n // The left group (title/tabs/views) has flex:1 and absorbs freed space when\n // right-side items shrink. Account for its excess width so the algorithm sees\n // the true available space and can expand items back when the container grows.\n const leftGroupExcess = this.leftGroupState?.getExcessWidth() ?? 0;\n const containerWidth = el.clientWidth + leftGroupExcess;\n const contentWidth = contentEl.scrollWidth;\n\n const groups = this._groups.map((g) => ({\n expandedWidth: g.expandedWidth,\n collapsedWidth: g.collapsedWidth,\n currentlyShrunk: g._shouldShrink,\n }));\n\n // When overflowing, the overflowable groups are removed from the DOM and\n // replaced by the overflow button. Compute groupsTotal to reflect what the\n // algorithm expects (all groups at their current widths) so that\n // availableWidth = containerWidth - nonGroupContent is accurate.\n let groupsTotal: number;\n if (this._shouldOverflow) {\n // contentWidth includes the overflow button but not the overflowable groups.\n // groupsTotal must match: only non-overflowed groups + overflow button.\n const overflowableIndices =\n ToolbarResponsiveState._overflowableGroupIndices;\n const nonOverflowedTotal = groups.reduce(\n (sum, g, i) =>\n overflowableIndices.includes(i)\n ? sum\n : sum + (g.currentlyShrunk ? g.collapsedWidth : g.expandedWidth),\n 0,\n );\n groupsTotal = nonOverflowedTotal + OVERFLOW_BUTTON_WIDTH;\n } else {\n groupsTotal = groups.reduce(\n (sum, g) =>\n sum + (g.currentlyShrunk ? g.collapsedWidth : g.expandedWidth),\n 0,\n );\n }\n\n // nonGroupContent that is hidden during overflow but would reappear on exit.\n // Must be added back so the algorithm doesn't overestimate available space.\n const hiddenContentAdjustment = this._shouldOverflow\n ? this._overflowHiddenContentWidth\n : 0;\n\n return {\n availableWidth:\n containerWidth - (contentWidth - groupsTotal) - hiddenContentAdjustment,\n groups,\n };\n }\n\n // Indices of groups that can be absorbed into the overflow menu.\n // actions = 0, filters = 1 (search = 2 stays visible).\n private static readonly _overflowableGroupIndices = [0, 1];\n\n _applyTargetState() {\n const input = this._computeResponsiveInput();\n if (!input) {\n return;\n }\n\n const result = computeResponsiveTargetState({\n ...input,\n expandThresholdBuffer: EXPAND_THRESHOLD_BUFFER,\n currentlyOverflowing: this._shouldOverflow,\n overflowButtonWidth: OVERFLOW_BUTTON_WIDTH,\n overflowableGroupIndices:\n ToolbarResponsiveState._overflowableGroupIndices,\n });\n\n this._groups.forEach((g, i) => {\n g._shouldShrink = result.groups[i].shouldShrink;\n });\n this._shouldOverflow = result.shouldOverflow;\n }\n\n private _recomputeThrottled?: ReturnType<\n typeof this.container.lodash.throttle\n >;\n private _rafId = 0;\n\n init() {\n const { responsiveDisabled } = this;\n\n if (responsiveDisabled) {\n return () => {};\n }\n\n this._recomputeThrottled = this.container.lodash.throttle(() => {\n this._rafId = window.requestAnimationFrame(() => {\n runInAction(() => this._applyTargetState());\n });\n }, 200);\n\n const containerEl = this.toolbar.toolbar.toolbarRect.element;\n if (!containerEl) {\n return () => {\n this._recomputeThrottled?.cancel();\n };\n }\n\n const disposers = [\n addResizeObserver(containerEl, this._recomputeThrottled),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n this._recomputeThrottled?.cancel();\n cancelAnimationFrame(this._rafId);\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","_ToolbarResponsivePriorityState","_computeResponsiveTargetState","_toolbarResponsiveConstants","EXPAND_THRESHOLD_BUFFER","ToolbarResponsiveState","container","toolbar","constructor","params","_defineProperty2","default","actions","ToolbarResponsivePriorityState","responsive","filters","search","expandedWidth","SEARCH_EXPANDED_WIDTH","collapsedWidth","SEARCH_COLLAPSED_WIDTH","_groups","makeObservable","_shouldOverflow","observable","ref","_overflowHiddenContentWidth","responsiveDisabled","computed","_applyTargetState","action","_syncedProps","internalExperiments","useResponsiveLayout","enabled","_scheduleRecompute","_this$_recomputeThrot","_recomputeThrottled","call","_computeResponsiveInput","_this$leftGroupState","el","_measurementElement","contentEl","_contentElement","leftGroupExcess","leftGroupState","getExcessWidth","containerWidth","clientWidth","contentWidth","scrollWidth","groups","map","g","currentlyShrunk","_shouldShrink","groupsTotal","overflowableIndices","_overflowableGroupIndices","nonOverflowedTotal","reduce","sum","i","includes","OVERFLOW_BUTTON_WIDTH","hiddenContentAdjustment","availableWidth","input","result","computeResponsiveTargetState","expandThresholdBuffer","currentlyOverflowing","overflowButtonWidth","overflowableGroupIndices","forEach","shouldShrink","shouldOverflow","init","window","lodash","throttle","_rafId","requestAnimationFrame","runInAction","containerEl","toolbarRect","element","_this$_recomputeThrot2","cancel","disposers","addResizeObserver","_this$_recomputeThrot3","d","cancelAnimationFrame","exports"],"sources":["../../../../src/state/Toolbar/ToolbarResponsiveState.ts"],"sourcesContent":["import { addResizeObserver } from '@wix/bex-core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { ToolbarResponsivePriorityState } from './ToolbarResponsivePriorityState';\nimport { ToolbarState } from '../../components/CollectionToolbars/ToolbarState';\nimport { ToolbarLeftGroupState } from './ToolbarLeftGroupState';\nimport { computeResponsiveTargetState } from './computeResponsiveTargetState';\nimport {\n OVERFLOW_BUTTON_WIDTH,\n SEARCH_COLLAPSED_WIDTH,\n SEARCH_EXPANDED_WIDTH,\n} from './toolbarResponsiveConstants';\n\nexport interface ToolbarResponsiveStateParams {\n readonly toolbar: ToolbarState<any, any>;\n}\n\n// Buffer (in px) added to the expand threshold to prevent flickering near the\n// expand/collapse boundary. Tuned to ~2-3x the inter-element gap (SP2 = 12px) --\n// large enough to absorb measurement rounding and flex reflow, small enough that\n// the dead zone per group isn't visually noticeable during gradual resizing.\nconst EXPAND_THRESHOLD_BUFFER = 30;\n\nexport class ToolbarResponsiveState {\n readonly actions: ToolbarResponsivePriorityState;\n readonly search: ToolbarResponsivePriorityState;\n readonly filters: ToolbarResponsivePriorityState;\n\n private readonly _groups: ToolbarResponsivePriorityState[];\n\n _shouldOverflow = false;\n\n _measurementElement: Element | null = null;\n _contentElement: Element | null = null;\n\n // Width of non-group content that is removed from the DOM during overflow\n // (e.g., tableGridSwitchButton). Must be accounted for in the exit-overflow\n // calculation to prevent flicker.\n _overflowHiddenContentWidth = 0;\n\n readonly toolbar: ToolbarState<any, any>;\n\n leftGroupState: ToolbarLeftGroupState<any, any> | null = null;\n\n get container() {\n return this.toolbar.toolbar.container;\n }\n\n constructor(params: ToolbarResponsiveStateParams) {\n this.toolbar = params.toolbar;\n\n this.actions = new ToolbarResponsivePriorityState({\n responsive: this,\n });\n\n this.filters = new ToolbarResponsivePriorityState({\n responsive: this,\n });\n\n this.search = new ToolbarResponsivePriorityState({\n responsive: this,\n expandedWidth: SEARCH_EXPANDED_WIDTH,\n collapsedWidth: SEARCH_COLLAPSED_WIDTH,\n });\n\n this._groups = [this.actions, this.filters, this.search];\n\n makeObservable(this, {\n _shouldOverflow: observable.ref,\n _overflowHiddenContentWidth: observable.ref,\n responsiveDisabled: computed,\n _applyTargetState: action,\n });\n }\n\n get responsiveDisabled() {\n const {\n toolbar: {\n toolbar: { _syncedProps },\n },\n container: { internalExperiments },\n } = this;\n\n return (\n !_syncedProps?.useResponsiveLayout ||\n !internalExperiments?.enabled('specs.cairo.EnableResponsiveToolbar11420')\n );\n }\n\n _scheduleRecompute() {\n if (this.responsiveDisabled) {\n return;\n }\n this._recomputeThrottled?.();\n }\n\n private _computeResponsiveInput() {\n const el = this._measurementElement;\n const contentEl = this._contentElement;\n if (!el || !contentEl) {\n return null;\n }\n\n // The left group (title/tabs/views) has flex:1 and absorbs freed space when\n // right-side items shrink. Account for its excess width so the algorithm sees\n // the true available space and can expand items back when the container grows.\n const leftGroupExcess = this.leftGroupState?.getExcessWidth() ?? 0;\n const containerWidth = el.clientWidth + leftGroupExcess;\n const contentWidth = contentEl.scrollWidth;\n\n const groups = this._groups.map((g) => ({\n expandedWidth: g.expandedWidth,\n collapsedWidth: g.collapsedWidth,\n currentlyShrunk: g._shouldShrink,\n }));\n\n // When overflowing, the overflowable groups are removed from the DOM and\n // replaced by the overflow button. Compute groupsTotal to reflect what the\n // algorithm expects (all groups at their current widths) so that\n // availableWidth = containerWidth - nonGroupContent is accurate.\n let groupsTotal: number;\n if (this._shouldOverflow) {\n // contentWidth includes the overflow button but not the overflowable groups.\n // groupsTotal must match: only non-overflowed groups + overflow button.\n const overflowableIndices =\n ToolbarResponsiveState._overflowableGroupIndices;\n const nonOverflowedTotal = groups.reduce(\n (sum, g, i) =>\n overflowableIndices.includes(i)\n ? sum\n : sum + (g.currentlyShrunk ? g.collapsedWidth : g.expandedWidth),\n 0,\n );\n groupsTotal = nonOverflowedTotal + OVERFLOW_BUTTON_WIDTH;\n } else {\n groupsTotal = groups.reduce(\n (sum, g) =>\n sum + (g.currentlyShrunk ? g.collapsedWidth : g.expandedWidth),\n 0,\n );\n }\n\n // nonGroupContent that is hidden during overflow but would reappear on exit.\n // Must be added back so the algorithm doesn't overestimate available space.\n const hiddenContentAdjustment = this._shouldOverflow\n ? this._overflowHiddenContentWidth\n : 0;\n\n return {\n availableWidth:\n containerWidth - (contentWidth - groupsTotal) - hiddenContentAdjustment,\n groups,\n };\n }\n\n // Indices of groups that can be absorbed into the overflow menu.\n // actions = 0, filters = 1 (search = 2 stays visible).\n private static readonly _overflowableGroupIndices = [0, 1];\n\n _applyTargetState() {\n const input = this._computeResponsiveInput();\n if (!input) {\n return;\n }\n\n const result = computeResponsiveTargetState({\n ...input,\n expandThresholdBuffer: EXPAND_THRESHOLD_BUFFER,\n currentlyOverflowing: this._shouldOverflow,\n overflowButtonWidth: OVERFLOW_BUTTON_WIDTH,\n overflowableGroupIndices:\n ToolbarResponsiveState._overflowableGroupIndices,\n });\n\n this._groups.forEach((g, i) => {\n g._shouldShrink = result.groups[i].shouldShrink;\n });\n this._shouldOverflow = result.shouldOverflow;\n }\n\n private _recomputeThrottled?: ReturnType<\n typeof this.container.lodash.throttle\n >;\n private _rafId = 0;\n\n init() {\n const { responsiveDisabled } = this;\n\n if (responsiveDisabled) {\n return () => {};\n }\n\n const { window, lodash } = this.container;\n\n this._recomputeThrottled = lodash.throttle(() => {\n this._rafId = window.requestAnimationFrame(() => {\n runInAction(() => this._applyTargetState());\n });\n }, 200);\n\n const containerEl = this.toolbar.toolbar.toolbarRect.element;\n if (!containerEl) {\n return () => {\n this._recomputeThrottled?.cancel();\n };\n }\n\n const disposers = [\n addResizeObserver(containerEl, this._recomputeThrottled),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n this._recomputeThrottled?.cancel();\n window.cancelAnimationFrame(this._rafId);\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -544,7 +544,7 @@ class ToolbarCollectionState {
544
544
  return (columnSizesState == null ? void 0 : columnSizesState.mergeSizes(baseColumns)) ?? baseColumns;
545
545
  }
546
546
  _commonDynamicBiParams(query = this.collection.result.originQuery) {
547
- var _viewsState$views$cur, _viewsState$views, _viewsState$views2;
547
+ var _this$collectionField2, _viewsState$views$cur, _viewsState$views, _viewsState$views2;
548
548
  const {
549
549
  collection,
550
550
  viewsState
@@ -552,6 +552,7 @@ class ToolbarCollectionState {
552
552
  return {
553
553
  componentType: this.componentType,
554
554
  ...collection._commonDynamicBiParams(query),
555
+ ...((_this$collectionField2 = this.collectionFieldsSource) == null || (_this$collectionField2 = _this$collectionField2.schemaSource) == null ? void 0 : _this$collectionField2.schemaParams()),
555
556
  currentTab: this.getCurrentTabName(),
556
557
  ...(viewsState && {
557
558
  currentView: (_viewsState$views$cur = viewsState.views.currentView) == null ? void 0 : _viewsState$views$cur.id
@@ -604,7 +605,7 @@ class ToolbarCollectionState {
604
605
  hasMultiLevelSorting,
605
606
  skipFilterListeners
606
607
  }) {
607
- var _this$collectionField2;
608
+ var _this$collectionField3;
608
609
  const {
609
610
  collection,
610
611
  multi,
@@ -657,7 +658,7 @@ class ToolbarCollectionState {
657
658
  }
658
659
  this._flushColumnsToCache(prev);
659
660
  this._cacheRestoredLayout = this._tryRestoreColumnsFromCache(next) ? next : undefined;
660
- }), (_this$collectionField2 = this.collectionFieldsSource) == null ? void 0 : _this$collectionField2.init(), // the fields source should be initialized and its beforeInitialFetch promise listener registered before customColumnsState?._tableInit() because custom columns might use data extensions
661
+ }), (_this$collectionField3 = this.collectionFieldsSource) == null ? void 0 : _this$collectionField3.init(), // the fields source should be initialized and its beforeInitialFetch promise listener registered before customColumnsState?._tableInit() because custom columns might use data extensions
661
662
  customColumnsState == null ? void 0 : customColumnsState._tableInit(), viewsState == null ? void 0 : viewsState.init(), columnSizesState == null ? void 0 : columnSizesState.init(),
662
663
  // register table feature first as they might register to the collection `beforeInitialFetch`
663
664
  ...tableFeatures.map(t => t.init()), (0, _mobx.reaction)(() => this.selectedOrderedColumnsOrAll, columns => {
@@ -686,9 +687,9 @@ class ToolbarCollectionState {
686
687
  }
687
688
  });
688
689
  try {
689
- var _tagsCollectionState$, _this$collectionField3;
690
+ var _tagsCollectionState$, _this$collectionField4;
690
691
  await Promise.all([multi.initTask.status.promise, tagsCollectionState == null || (_tagsCollectionState$ = tagsCollectionState.initTask.status.promise) == null ? void 0 : _tagsCollectionState$.catch(() => null), // resilience to failed request
691
- (_this$collectionField3 = this.collectionFieldsSource) == null || (_this$collectionField3 = _this$collectionField3.initTask.status.promise) == null ? void 0 : _this$collectionField3.catch(() => null), // resilience to failed request
692
+ (_this$collectionField4 = this.collectionFieldsSource) == null || (_this$collectionField4 = _this$collectionField4.initTask.status.promise) == null ? void 0 : _this$collectionField4.catch(() => null), // resilience to failed request
692
693
  customColumnsState == null ? void 0 : customColumnsState.initTask.status.promise, columnSizesState == null ? void 0 : columnSizesState.initTask.status.promise, ...tableFeatures.map(t => {
693
694
  var _t$initTask;
694
695
  return (_t$initTask = t.initTask) == null ? void 0 : _t$initTask.status.promise;