@griddo/ax 11.10.11-rc.0 → 11.10.11

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 (1116) hide show
  1. package/README.md +56 -3
  2. package/config/env.js +56 -56
  3. package/config/getHttpsConfig.js +32 -32
  4. package/config/griddo-config/cx-polyfills/builder.ssr.js +1 -2
  5. package/config/griddo-config/index.js +71 -71
  6. package/config/griddo-config/ssrHelpers.js +21 -23
  7. package/config/jest/componentsMock.js +1633 -1633
  8. package/config/jest/cssTransform.js +7 -7
  9. package/config/jest/fileMock.js +1 -1
  10. package/config/jest/fileTransform.js +13 -13
  11. package/config/jest/setup.js +9 -9
  12. package/config/jest/test-utils.js +11 -11
  13. package/config/modules.js +94 -92
  14. package/config/paths.js +73 -73
  15. package/config/pnpTs.js +8 -8
  16. package/config/webpack/persistentCache/createEnvironmentHash.js +3 -3
  17. package/config/webpack.config.js +624 -624
  18. package/config/webpackDevServer.config.js +111 -111
  19. package/config/webpackSchemas.config.js +50 -50
  20. package/package.json +219 -227
  21. package/public/fonts/fonts.css +216 -168
  22. package/public/manifest.json +6 -6
  23. package/scripts/build.js +114 -114
  24. package/scripts/griddo-sync-schemas.js +115 -115
  25. package/scripts/griddo.js +24 -24
  26. package/scripts/start.js +73 -73
  27. package/src/GlobalStore.tsx +62 -62
  28. package/src/Style/index.tsx +11 -8
  29. package/src/__mocks__/axios/ReferenceField.ts +455 -455
  30. package/src/__mocks__/axios/Roles.ts +6 -7
  31. package/src/__mocks__/axios/SitesList.ts +107 -107
  32. package/src/__mocks__/axios/SitesListCategories.ts +22 -22
  33. package/src/__mocks__/axios/SitesListDataPack.ts +148 -168
  34. package/src/__mocks__/axios/SitesListOptions.ts +15 -15
  35. package/src/__mocks__/axios/UserList.ts +525 -525
  36. package/src/__mocks__/mockedAxios.ts +2203 -2203
  37. package/src/__mocks__/reducers/structuredData.tsx +4 -5
  38. package/src/__mocks__/store/GenericStore.ts +26 -26
  39. package/src/__mocks__/store/ReferenceField.ts +1663 -1663
  40. package/src/__mocks__/store/Roles.ts +1045 -1045
  41. package/src/__mocks__/store/SitesList.ts +733 -733
  42. package/src/__mocks__/store/UserList.ts +468 -468
  43. package/src/__mocks__/store/UsersCreate.ts +287 -287
  44. package/src/__tests__/components/ActionMenu/ActionMenu.test.tsx +230 -230
  45. package/src/__tests__/components/Avatar/Avatar.test.tsx +107 -107
  46. package/src/__tests__/components/Breadcrumb/Breadcrumb.test.tsx +83 -83
  47. package/src/__tests__/components/Browser/Browser.test.tsx +174 -174
  48. package/src/__tests__/components/BulkSelectionOptions/BulkSelectionOptions.test.tsx +147 -147
  49. package/src/__tests__/components/CategoryCell/CategoryCell.test.tsx +40 -40
  50. package/src/__tests__/components/ConfigPanel/ConfigPanel.test.tsx +206 -206
  51. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/ConnectedField.test.tsx +147 -147
  52. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/NavConnectedField/NavConnectedField.test.tsx +134 -134
  53. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/Field/Field.test.tsx +92 -92
  54. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/PageConnectedField.test.tsx +360 -360
  55. package/src/__tests__/components/ConfigPanel/Form/ConnectedField/PageConnectedField/TemplateManager/TemplateManager.test.tsx +121 -121
  56. package/src/__tests__/components/ConfigPanel/Form/Form.test.tsx +198 -198
  57. package/src/__tests__/components/ConfigPanel/GlobalPageForm/GlobalPageForm.test.tsx +198 -198
  58. package/src/__tests__/components/ConfigPanel/Header/Header.test.tsx +115 -115
  59. package/src/__tests__/components/ConfigPanel/NavigationForm/Field/Field.test.tsx +174 -174
  60. package/src/__tests__/components/ConfigPanel/NavigationForm/NavigationForm.test.tsx +66 -66
  61. package/src/__tests__/components/ConfigPanel/PreviewForm/PreviewForm.test.tsx +62 -62
  62. package/src/__tests__/components/DragAndDrop/DragAndDrop.test.tsx +68 -68
  63. package/src/__tests__/components/ElementsTooltip/ElementsTooltip.test.tsx +79 -79
  64. package/src/__tests__/components/EmptyState/EmptyState.test.tsx +49 -49
  65. package/src/__tests__/components/ErrorCenter/ErrorCenter.test.tsx +164 -164
  66. package/src/__tests__/components/ErrorToast/ErrorToast.test.tsx +42 -42
  67. package/src/__tests__/components/FieldContainer/FieldContainer.test.tsx +57 -57
  68. package/src/__tests__/components/Fields/AnalyticsField/AnalyticsField.test.tsx +64 -64
  69. package/src/__tests__/components/Fields/AnalyticsField/PageAnalytics/PageAnalytics.test.tsx +171 -171
  70. package/src/__tests__/components/Fields/AnalyticsField/StructuredDataAnalytics/StructuredDataAnalytics.test.tsx +105 -105
  71. package/src/__tests__/components/Fields/ArrayFieldGroup/ArrayFieldGroup.test.tsx +238 -238
  72. package/src/__tests__/components/Fields/AsyncCheckGroup/AsyncCheckGroup.test.tsx +89 -87
  73. package/src/__tests__/components/Fields/AsyncSelect/AsyncSelect.test.tsx +238 -238
  74. package/src/__tests__/components/Fields/Button/Button.test.tsx +100 -100
  75. package/src/__tests__/components/Fields/CheckField/CheckField.test.tsx +138 -138
  76. package/src/__tests__/components/Fields/CheckGroup/CheckGroup.test.tsx +331 -331
  77. package/src/__tests__/components/Fields/ColorPicker/ColorPicker.test.tsx +170 -171
  78. package/src/__tests__/components/Fields/ComponentArray/ComponentArray.test.tsx +111 -111
  79. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/MixableComponentArray.test.tsx +248 -248
  80. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/PasteModuleButton/PasteModuleButton.test.tsx +84 -84
  81. package/src/__tests__/components/Fields/ComponentArray/SameComponentArray/SameComponentArray.test.tsx +164 -164
  82. package/src/__tests__/components/Fields/ComponentContainer/ComponentContainer.test.tsx +480 -480
  83. package/src/__tests__/components/Fields/ConditionalField/ConditionalField.test.tsx +67 -67
  84. package/src/__tests__/components/Fields/DateField/DateField.test.tsx +49 -49
  85. package/src/__tests__/components/Fields/FieldGroup/FieldGroup.test.tsx +46 -46
  86. package/src/__tests__/components/Fields/FieldsDivider/FieldsDivider.test.tsx +10 -10
  87. package/src/__tests__/components/Fields/FileField/FileField.test.tsx +96 -96
  88. package/src/__tests__/components/Fields/HeadingField/HeadingField.test.tsx +54 -54
  89. package/src/__tests__/components/Fields/HiddenField/HiddenField.test.tsx +43 -43
  90. package/src/__tests__/components/Fields/ImageField/ImageField.test.tsx +450 -450
  91. package/src/__tests__/components/Fields/IntegrationsField/IntegrationsField.test.tsx +412 -412
  92. package/src/__tests__/components/Fields/MultiCheckSelect/MultiCheckSelect.test.tsx +36 -36
  93. package/src/__tests__/components/Fields/MultiCheckSelectGroup/MultiCheckSelectGroup.test.tsx +100 -100
  94. package/src/__tests__/components/Fields/NoteField/NoteField.test.tsx +36 -36
  95. package/src/__tests__/components/Fields/NumberField/NumberField.test.tsx +87 -87
  96. package/src/__tests__/components/Fields/RadioField/RadioField.test.tsx +79 -79
  97. package/src/__tests__/components/Fields/ReferenceField/ReferenceField.test.tsx +404 -406
  98. package/src/__tests__/components/Fields/RichText/RichText.test.tsx +20 -20
  99. package/src/__tests__/components/Fields/Select/Select.test.tsx +38 -38
  100. package/src/__tests__/components/Fields/SliderField/SliderField.test.tsx +45 -45
  101. package/src/__tests__/components/Fields/SummaryButton/SummaryButton.test.tsx +35 -35
  102. package/src/__tests__/components/Fields/TagField/TagField.test.tsx +119 -119
  103. package/src/__tests__/components/Fields/TextArea/TextArea.test.tsx +45 -45
  104. package/src/__tests__/components/Fields/TextField/TextField.test.tsx +126 -126
  105. package/src/__tests__/components/Fields/TimeField/HourInput/HourInput.test.tsx +121 -121
  106. package/src/__tests__/components/Fields/TimeField/TimeField.test.tsx +80 -80
  107. package/src/__tests__/components/Fields/ToggleField/ToggleField.test.tsx +107 -107
  108. package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +129 -129
  109. package/src/__tests__/components/Fields/TranslateButton/TranslateButton.test.tsx +215 -215
  110. package/src/__tests__/components/Fields/UniqueCheck/UniqueCheck.test.tsx +24 -24
  111. package/src/__tests__/components/Fields/UrlField/UrlField.test.tsx +395 -395
  112. package/src/__tests__/components/Fields/VisualUniqueSelection/ImageSelection/ImageSelection.test.tsx +60 -60
  113. package/src/__tests__/components/Fields/VisualUniqueSelection/ScrollableSelection/ScrollableSelection.test.tsx +125 -125
  114. package/src/__tests__/components/Fields/VisualUniqueSelection/VisualUniqueSelection.test.tsx +30 -30
  115. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.test.tsx +98 -98
  116. package/src/__tests__/components/FieldsBehavior/FieldsBehavior.test.tsx +135 -135
  117. package/src/__tests__/components/Flag/Flag.test.tsx +46 -46
  118. package/src/__tests__/components/FloatingMenu/FloatingMenu.test.tsx +693 -693
  119. package/src/__tests__/components/FloatingPanel/FloatingPanel.test.tsx +132 -132
  120. package/src/__tests__/components/GuardModal/GuardModal.test.tsx +12 -12
  121. package/src/__tests__/components/Icon/Icon.test.tsx +51 -51
  122. package/src/__tests__/components/IconAction/IconAction.test.tsx +74 -74
  123. package/src/__tests__/components/Image/Image.test.tsx +27 -27
  124. package/src/__tests__/components/InformativeMenu/InformativeMenu.test.tsx +70 -70
  125. package/src/__tests__/components/LanguageMenu/LanguageMenu.test.tsx +196 -196
  126. package/src/__tests__/components/Lists/Lists.test.tsx +40 -40
  127. package/src/__tests__/components/Loader/Loader.test.tsx +41 -41
  128. package/src/__tests__/components/Loading/Loading.test.tsx +9 -9
  129. package/src/__tests__/components/Login/Login.test.tsx +223 -223
  130. package/src/__tests__/components/Login/RecoveryModal/RecoveryModal.test.tsx +160 -160
  131. package/src/__tests__/components/MainWrapper/AppBar/AppBar.test.tsx +503 -503
  132. package/src/__tests__/components/MainWrapper/MainWrapper.test.tsx +122 -122
  133. package/src/__tests__/components/MenuItem/MenuItem.test.tsx +123 -123
  134. package/src/__tests__/components/Modal/Modal.test.tsx +294 -294
  135. package/src/__tests__/components/Nav/Nav.test.tsx +41 -41
  136. package/src/__tests__/components/Notification/Notification.test.tsx +186 -186
  137. package/src/__tests__/components/Notification/SubNotification/Subnotification.test.tsx +32 -32
  138. package/src/__tests__/components/Pagination/Pagination.test.tsx +222 -222
  139. package/src/__tests__/components/ProgressBar/ProgressBar.test.tsx +12 -12
  140. package/src/__tests__/components/ReorderArrows/ReorderArrows.test.tsx +67 -67
  141. package/src/__tests__/components/ResizePanel/ResizePanel.test.tsx +135 -145
  142. package/src/__tests__/components/SearchField/SearchField.test.tsx +354 -354
  143. package/src/__tests__/components/SideModal/SideModal.test.tsx +321 -321
  144. package/src/__tests__/components/SubNav/SubNav.test.tsx +21 -21
  145. package/src/__tests__/components/TableCounter/TableCounter.test.tsx +35 -35
  146. package/src/__tests__/components/TableFilters/CategoryFilter/CategoryFilter.test.tsx +223 -223
  147. package/src/__tests__/components/TableFilters/CustomizeFilters/CustomizeFilters.test.tsx +115 -115
  148. package/src/__tests__/components/TableFilters/DateFilter/DateFilter.test.tsx +129 -129
  149. package/src/__tests__/components/TableFilters/LiveFilter/LiveFilter.test.tsx +280 -280
  150. package/src/__tests__/components/TableFilters/NameFilter/NameFilter.test.tsx +178 -178
  151. package/src/__tests__/components/TableFilters/RoleFilter/RoleFilter.test.tsx +147 -147
  152. package/src/__tests__/components/TableFilters/SiteFilter/SiteFilter.test.tsx +297 -297
  153. package/src/__tests__/components/TableFilters/StatusFilter/StatusFilter.test.tsx +178 -178
  154. package/src/__tests__/components/TableFilters/TranslationsFilter/TranslationsFilter.test.tsx +138 -138
  155. package/src/__tests__/components/TableFilters/TypeFilter/TypeFilter.test.tsx +147 -147
  156. package/src/__tests__/components/TableFilters/UsersFilter/UsersFilter.test.tsx +135 -135
  157. package/src/__tests__/components/TableList/TableList.test.tsx +95 -95
  158. package/src/__tests__/components/Tabs/Tabs.test.tsx +187 -187
  159. package/src/__tests__/components/Tag/Tag.test.tsx +121 -121
  160. package/src/__tests__/components/Toast/Toast.test.tsx +87 -87
  161. package/src/__tests__/modules/Settings/Integrations/Integrations.test.tsx +143 -143
  162. package/src/__tests__/modules/Sites/Sites.test.tsx +238 -238
  163. package/src/__tests__/modules/Sites/SitesList/ListView/BulkHeader/BulkHeader.test.tsx +34 -34
  164. package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +917 -917
  165. package/src/__tests__/modules/Users/Roles/BulkHeader/BulkHeader.test.tsx +133 -133
  166. package/src/__tests__/modules/Users/Roles/Roles.test.tsx +589 -589
  167. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RoleItem/RoleItem.test.tsx +75 -75
  168. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RolesModal.test.tsx +137 -137
  169. package/src/__tests__/modules/Users/UserCreate/SiteItem/SiteItem.test.tsx +153 -153
  170. package/src/__tests__/modules/Users/UserCreate/UserCreate.test.tsx +260 -260
  171. package/src/__tests__/modules/Users/UserList/UserItem/UserItem.test.tsx +363 -363
  172. package/src/__tests__/modules/Users/UserList/UserList.test.tsx +264 -264
  173. package/src/api/analytics.tsx +64 -64
  174. package/src/api/checkgroups.tsx +36 -36
  175. package/src/api/config.tsx +10 -10
  176. package/src/api/dataPack.tsx +127 -127
  177. package/src/api/domains.tsx +12 -12
  178. package/src/api/files.tsx +137 -137
  179. package/src/api/folders.tsx +39 -39
  180. package/src/api/forms.tsx +164 -164
  181. package/src/api/global.tsx +55 -55
  182. package/src/api/images.tsx +160 -160
  183. package/src/api/index.tsx +24 -24
  184. package/src/api/integrations.tsx +112 -112
  185. package/src/api/languages.tsx +50 -50
  186. package/src/api/logs.tsx +60 -60
  187. package/src/api/menus.tsx +21 -21
  188. package/src/api/navigation.tsx +158 -158
  189. package/src/api/pages.tsx +212 -212
  190. package/src/api/redirects.tsx +62 -62
  191. package/src/api/roles.tsx +51 -51
  192. package/src/api/schemas.tsx +7 -7
  193. package/src/api/selects.tsx +37 -37
  194. package/src/api/sites.tsx +302 -302
  195. package/src/api/social.tsx +24 -24
  196. package/src/api/structuredData.tsx +269 -269
  197. package/src/api/users.tsx +106 -106
  198. package/src/api/utils.tsx +157 -159
  199. package/src/components/ActionMenu/index.tsx +48 -48
  200. package/src/components/Avatar/index.tsx +9 -9
  201. package/src/components/BackFolder/index.tsx +14 -14
  202. package/src/components/BackFolder/style.tsx +3 -3
  203. package/src/components/Breadcrumb/index.tsx +27 -27
  204. package/src/components/Breadcrumb/style.tsx +10 -10
  205. package/src/components/Browser/index.tsx +193 -193
  206. package/src/components/BrowserContent/index.tsx +75 -75
  207. package/src/components/BulkSelectionOptions/index.tsx +41 -41
  208. package/src/components/Button/index.tsx +86 -86
  209. package/src/components/Button/style.tsx +1 -1
  210. package/src/components/CategoryCell/index.tsx +13 -13
  211. package/src/components/Circle/index.tsx +4 -4
  212. package/src/components/ConfigPanel/Form/ConnectedField/NavConnectedField/index.tsx +146 -146
  213. package/src/components/ConfigPanel/Form/ConnectedField/PageConnectedField/Field/index.tsx +106 -106
  214. package/src/components/ConfigPanel/Form/ConnectedField/PageConnectedField/TemplateManager/index.tsx +150 -150
  215. package/src/components/ConfigPanel/Form/ConnectedField/PageConnectedField/index.tsx +243 -243
  216. package/src/components/ConfigPanel/Form/ConnectedField/index.tsx +3 -3
  217. package/src/components/ConfigPanel/Form/index.tsx +144 -144
  218. package/src/components/ConfigPanel/GlobalPageForm/index.tsx +169 -169
  219. package/src/components/ConfigPanel/Header/index.tsx +124 -124
  220. package/src/components/ConfigPanel/NavigationForm/Field/index.tsx +141 -140
  221. package/src/components/ConfigPanel/NavigationForm/Field/style.tsx +21 -27
  222. package/src/components/ConfigPanel/NavigationForm/index.tsx +14 -14
  223. package/src/components/ConfigPanel/NavigationForm/style.tsx +5 -5
  224. package/src/components/ConfigPanel/PreviewForm/index.tsx +22 -22
  225. package/src/components/ConfigPanel/index.tsx +116 -116
  226. package/src/components/DragAndDrop/index.tsx +47 -47
  227. package/src/components/ElementsTooltip/index.tsx +65 -65
  228. package/src/components/EmptyState/index.tsx +17 -17
  229. package/src/components/ErrorCenter/index.tsx +58 -58
  230. package/src/components/ErrorPage/index.tsx +98 -98
  231. package/src/components/ErrorPage/style.tsx +13 -13
  232. package/src/components/ErrorToast/index.tsx +4 -4
  233. package/src/components/ErrorToast/style.tsx +11 -11
  234. package/src/components/ExportButton/index.tsx +40 -40
  235. package/src/components/FieldContainer/index.tsx +63 -63
  236. package/src/components/Fields/AIReferenceField/AIConfigPanel/index.tsx +139 -139
  237. package/src/components/Fields/AIReferenceField/index.tsx +73 -73
  238. package/src/components/Fields/AIReferenceField/style.tsx +1 -1
  239. package/src/components/Fields/AnalyticsField/PageAnalytics/atoms.tsx +70 -70
  240. package/src/components/Fields/AnalyticsField/PageAnalytics/index.tsx +131 -131
  241. package/src/components/Fields/AnalyticsField/StructuredDataAnalytics/atoms.tsx +67 -67
  242. package/src/components/Fields/AnalyticsField/StructuredDataAnalytics/index.tsx +63 -63
  243. package/src/components/Fields/AnalyticsField/index.tsx +23 -23
  244. package/src/components/Fields/AnalyticsField/utils.tsx +6 -6
  245. package/src/components/Fields/ArrayFieldGroup/ArrayFieldInline/index.tsx +71 -71
  246. package/src/components/Fields/ArrayFieldGroup/ArrayFieldItem/index.tsx +105 -105
  247. package/src/components/Fields/ArrayFieldGroup/index.tsx +108 -108
  248. package/src/components/Fields/AsyncCheckGroup/index.tsx +210 -210
  249. package/src/components/Fields/AsyncSelect/index.tsx +180 -180
  250. package/src/components/Fields/AsyncSelect/style.tsx +6 -6
  251. package/src/components/Fields/CheckField/index.tsx +76 -76
  252. package/src/components/Fields/CheckField/style.tsx +33 -33
  253. package/src/components/Fields/CheckGroup/index.tsx +48 -48
  254. package/src/components/Fields/CheckGroup/style.tsx +2 -2
  255. package/src/components/Fields/ColorPicker/Picker/index.tsx +60 -60
  256. package/src/components/Fields/ColorPicker/Picker/style.tsx +14 -14
  257. package/src/components/Fields/ColorPicker/helpers.tsx +31 -26
  258. package/src/components/Fields/ColorPicker/index.tsx +120 -120
  259. package/src/components/Fields/ColorPicker/style.tsx +11 -11
  260. package/src/components/Fields/ComponentArray/BulkHeader/index.tsx +32 -32
  261. package/src/components/Fields/ComponentArray/MixableComponentArray/AddItemButton/index.tsx +27 -27
  262. package/src/components/Fields/ComponentArray/MixableComponentArray/PasteModuleButton/index.tsx +53 -53
  263. package/src/components/Fields/ComponentArray/MixableComponentArray/index.tsx +352 -353
  264. package/src/components/Fields/ComponentArray/SameComponentArray/AddItemButton/index.tsx +8 -8
  265. package/src/components/Fields/ComponentArray/SameComponentArray/index.tsx +241 -242
  266. package/src/components/Fields/ComponentArray/helpers.tsx +66 -66
  267. package/src/components/Fields/ComponentArray/index.tsx +3 -3
  268. package/src/components/Fields/ComponentContainer/EmptyContainer/index.tsx +36 -36
  269. package/src/components/Fields/ComponentContainer/atoms.tsx +12 -12
  270. package/src/components/Fields/ComponentContainer/index.tsx +258 -258
  271. package/src/components/Fields/ComponentContainer/style.tsx +20 -20
  272. package/src/components/Fields/ConditionalField/index.tsx +20 -20
  273. package/src/components/Fields/DateField/DatePickerInput/index.tsx +54 -54
  274. package/src/components/Fields/DateField/index.tsx +127 -127
  275. package/src/components/Fields/FieldGroup/index.tsx +18 -18
  276. package/src/components/Fields/FieldsDivider/index.tsx +9 -9
  277. package/src/components/Fields/FileField/index.tsx +100 -100
  278. package/src/components/Fields/FileField/style.tsx +11 -11
  279. package/src/components/Fields/FormCategorySelect/index.tsx +30 -30
  280. package/src/components/Fields/FormContainer/FormModal/index.tsx +190 -190
  281. package/src/components/Fields/FormContainer/FormModal/style.tsx +16 -16
  282. package/src/components/Fields/FormContainer/index.tsx +73 -73
  283. package/src/components/Fields/FormFieldArray/index.tsx +5 -5
  284. package/src/components/Fields/HeadingField/index.tsx +39 -39
  285. package/src/components/Fields/HiddenField/index.tsx +18 -18
  286. package/src/components/Fields/ImageField/index.tsx +194 -194
  287. package/src/components/Fields/ImageField/style.tsx +18 -18
  288. package/src/components/Fields/IntegrationsField/IntegrationItem/CustomPanel/index.tsx +82 -82
  289. package/src/components/Fields/IntegrationsField/IntegrationItem/CustomPanel/style.tsx +1 -1
  290. package/src/components/Fields/IntegrationsField/IntegrationItem/VariablesPanel/helpers.ts +24 -24
  291. package/src/components/Fields/IntegrationsField/IntegrationItem/VariablesPanel/index.tsx +97 -98
  292. package/src/components/Fields/IntegrationsField/IntegrationItem/VariablesPanel/style.tsx +1 -1
  293. package/src/components/Fields/IntegrationsField/IntegrationItem/atoms.tsx +15 -15
  294. package/src/components/Fields/IntegrationsField/IntegrationItem/index.tsx +114 -114
  295. package/src/components/Fields/IntegrationsField/PasteIntegrationButton/index.tsx +15 -15
  296. package/src/components/Fields/IntegrationsField/SideModal/SideModalOption/index.tsx +38 -38
  297. package/src/components/Fields/IntegrationsField/SideModal/index.tsx +40 -40
  298. package/src/components/Fields/IntegrationsField/index.tsx +119 -119
  299. package/src/components/Fields/LinkField/index.tsx +112 -112
  300. package/src/components/Fields/MultiCheckSelect/index.tsx +77 -77
  301. package/src/components/Fields/MultiCheckSelect/style.tsx +2 -2
  302. package/src/components/Fields/MultiCheckSelectGroup/index.tsx +68 -68
  303. package/src/components/Fields/NoteField/index.tsx +10 -10
  304. package/src/components/Fields/NumberField/index.tsx +89 -89
  305. package/src/components/Fields/NumberField/style.tsx +2 -2
  306. package/src/components/Fields/RadioField/index.tsx +30 -30
  307. package/src/components/Fields/RadioField/style.tsx +12 -12
  308. package/src/components/Fields/RadioGroup/index.tsx +43 -43
  309. package/src/components/Fields/RadioGroup/style.tsx +4 -4
  310. package/src/components/Fields/ReferenceField/AutoPanel/AutoItem/index.tsx +380 -380
  311. package/src/components/Fields/ReferenceField/AutoPanel/AutoItem/style.tsx +20 -20
  312. package/src/components/Fields/ReferenceField/AutoPanel/index.tsx +513 -513
  313. package/src/components/Fields/ReferenceField/AutoPanel/style.tsx +25 -25
  314. package/src/components/Fields/ReferenceField/Context/index.tsx +87 -87
  315. package/src/components/Fields/ReferenceField/ItemList/Item/index.tsx +45 -45
  316. package/src/components/Fields/ReferenceField/ItemList/Item/style.tsx +13 -13
  317. package/src/components/Fields/ReferenceField/ItemList/index.tsx +124 -124
  318. package/src/components/Fields/ReferenceField/ManualPanel/Item/index.tsx +25 -25
  319. package/src/components/Fields/ReferenceField/ManualPanel/index.tsx +227 -227
  320. package/src/components/Fields/ReferenceField/ManualPanel/style.tsx +10 -10
  321. package/src/components/Fields/ReferenceField/index.tsx +236 -236
  322. package/src/components/Fields/ReferenceField/style.tsx +12 -12
  323. package/src/components/Fields/RichText/index.tsx +123 -112
  324. package/src/components/Fields/RichText/style.tsx +1 -1
  325. package/src/components/Fields/RichText/utils.tsx +23 -23
  326. package/src/components/Fields/Select/index.tsx +70 -70
  327. package/src/components/Fields/Select/style.tsx +6 -6
  328. package/src/components/Fields/SliderField/index.tsx +50 -50
  329. package/src/components/Fields/SummaryButton/index.tsx +53 -53
  330. package/src/components/Fields/TagsField/index.tsx +49 -49
  331. package/src/components/Fields/TextArea/index.tsx +48 -47
  332. package/src/components/Fields/TextField/index.tsx +122 -123
  333. package/src/components/Fields/TextField/style.tsx +9 -9
  334. package/src/components/Fields/TimeField/HourInput/index.tsx +82 -82
  335. package/src/components/Fields/TimeField/HourInput/utils.tsx +23 -23
  336. package/src/components/Fields/TimeField/index.tsx +45 -45
  337. package/src/components/Fields/ToggleField/index.tsx +31 -31
  338. package/src/components/Fields/TranslateButton/index.tsx +137 -137
  339. package/src/components/Fields/UniqueCheck/index.tsx +30 -30
  340. package/src/components/Fields/UrlField/index.tsx +232 -232
  341. package/src/components/Fields/UrlField/utils.tsx +78 -78
  342. package/src/components/Fields/VisualOption/index.tsx +26 -26
  343. package/src/components/Fields/VisualOption/style.tsx +4 -4
  344. package/src/components/Fields/VisualUniqueSelection/ImageSelection/index.tsx +31 -31
  345. package/src/components/Fields/VisualUniqueSelection/ImageSelection/style.tsx +1 -1
  346. package/src/components/Fields/VisualUniqueSelection/ScrollableSelection/index.tsx +73 -73
  347. package/src/components/Fields/VisualUniqueSelection/index.tsx +3 -3
  348. package/src/components/Fields/VisualUniqueSelection/utils.tsx +13 -13
  349. package/src/components/Fields/Wysiwyg/config.tsx +95 -95
  350. package/src/components/Fields/Wysiwyg/helpers.tsx +69 -69
  351. package/src/components/Fields/Wysiwyg/index.tsx +81 -81
  352. package/src/components/Fields/Wysiwyg/languages.js +132 -132
  353. package/src/components/Fields/Wysiwyg/style.tsx +37 -37
  354. package/src/components/Fields/index.tsx +45 -45
  355. package/src/components/FieldsBehavior/index.tsx +114 -114
  356. package/src/components/FieldsBehavior/style.tsx +15 -15
  357. package/src/components/FileGallery/FolderItem/index.tsx +24 -24
  358. package/src/components/FileGallery/FolderItem/style.tsx +1 -1
  359. package/src/components/FileGallery/GalleryPanel/DetailPanel/index.tsx +133 -133
  360. package/src/components/FileGallery/GalleryPanel/DetailPanel/style.tsx +12 -12
  361. package/src/components/FileGallery/GalleryPanel/index.tsx +25 -25
  362. package/src/components/FileGallery/GalleryPanel/style.tsx +2 -2
  363. package/src/components/FileGallery/GridItem/index.tsx +32 -32
  364. package/src/components/FileGallery/index.tsx +310 -310
  365. package/src/components/FileGallery/style.tsx +22 -22
  366. package/src/components/FilterTagsBar/index.tsx +48 -48
  367. package/src/components/FilterTagsBar/style.tsx +1 -1
  368. package/src/components/Flag/components/Ca_ES.js +11 -11
  369. package/src/components/Flag/components/De_DE.js +13 -7
  370. package/src/components/Flag/components/En_GB.js +16 -16
  371. package/src/components/Flag/components/Es_ES.js +73 -61
  372. package/src/components/Flag/components/Eu_ES.js +16 -13
  373. package/src/components/Flag/components/Fr_FR.js +13 -7
  374. package/src/components/Flag/components/It_IT.js +13 -7
  375. package/src/components/Flag/components/Pt_PT.js +33 -27
  376. package/src/components/Flag/index.tsx +24 -24
  377. package/src/components/FloatingButton/index.tsx +20 -20
  378. package/src/components/FloatingMenu/index.tsx +121 -122
  379. package/src/components/FloatingPanel/index.tsx +55 -55
  380. package/src/components/FloatingPanel/style.tsx +3 -3
  381. package/src/components/Gallery/FolderItem/index.tsx +24 -24
  382. package/src/components/Gallery/FolderItem/style.tsx +1 -1
  383. package/src/components/Gallery/GalleryPanel/DetailPanel/index.tsx +138 -138
  384. package/src/components/Gallery/GalleryPanel/DetailPanel/style.tsx +13 -13
  385. package/src/components/Gallery/GalleryPanel/index.tsx +40 -40
  386. package/src/components/Gallery/GalleryPanel/style.tsx +2 -2
  387. package/src/components/Gallery/index.tsx +347 -348
  388. package/src/components/Gallery/style.tsx +24 -24
  389. package/src/components/GuardModal/index.tsx +34 -34
  390. package/src/components/GuardModal/style.tsx +3 -3
  391. package/src/components/Icon/components/Active.js +9 -9
  392. package/src/components/Icon/components/Add.js +4 -4
  393. package/src/components/Icon/components/AddCircle.js +7 -7
  394. package/src/components/Icon/components/Alert.js +10 -10
  395. package/src/components/Icon/components/Back.js +6 -6
  396. package/src/components/Icon/components/BulletList.js +10 -10
  397. package/src/components/Icon/components/Button.js +9 -4
  398. package/src/components/Icon/components/Calendar.js +9 -9
  399. package/src/components/Icon/components/CancelEvent.js +6 -6
  400. package/src/components/Icon/components/Category.js +6 -6
  401. package/src/components/Icon/components/Change.js +9 -9
  402. package/src/components/Icon/components/Close.js +7 -7
  403. package/src/components/Icon/components/ClosePanel.js +8 -8
  404. package/src/components/Icon/components/CodeBody.js +8 -8
  405. package/src/components/Icon/components/CodeHead.js +8 -8
  406. package/src/components/Icon/components/CodeHeadBody.js +8 -8
  407. package/src/components/Icon/components/Collapsed.js +10 -10
  408. package/src/components/Icon/components/ColorPicker.js +8 -8
  409. package/src/components/Icon/components/Compose.js +8 -8
  410. package/src/components/Icon/components/Copy.js +9 -9
  411. package/src/components/Icon/components/Copy2.js +9 -9
  412. package/src/components/Icon/components/Data.js +9 -9
  413. package/src/components/Icon/components/DataAdd.js +15 -15
  414. package/src/components/Icon/components/Deactivate.js +8 -8
  415. package/src/components/Icon/components/Delete.js +7 -4
  416. package/src/components/Icon/components/Desktop.js +8 -8
  417. package/src/components/Icon/components/Disabled.js +8 -8
  418. package/src/components/Icon/components/Done.js +5 -5
  419. package/src/components/Icon/components/DownArrow.js +4 -4
  420. package/src/components/Icon/components/Download.js +3 -3
  421. package/src/components/Icon/components/Drag.js +9 -9
  422. package/src/components/Icon/components/Duplicate.js +7 -7
  423. package/src/components/Icon/components/Edit.js +7 -7
  424. package/src/components/Icon/components/Empty.js +8 -8
  425. package/src/components/Icon/components/EmptyCheck.js +10 -10
  426. package/src/components/Icon/components/Extend.js +10 -10
  427. package/src/components/Icon/components/File.js +8 -8
  428. package/src/components/Icon/components/Filter.js +5 -5
  429. package/src/components/Icon/components/Form.js +8 -8
  430. package/src/components/Icon/components/FullArrowDown.js +4 -4
  431. package/src/components/Icon/components/FullArrowLeft.js +4 -4
  432. package/src/components/Icon/components/FullArrowRight.js +4 -4
  433. package/src/components/Icon/components/FullArrowUp.js +4 -4
  434. package/src/components/Icon/components/Grid.js +10 -10
  435. package/src/components/Icon/components/Grid2.js +10 -10
  436. package/src/components/Icon/components/HeroCard.js +10 -7
  437. package/src/components/Icon/components/Hide.js +16 -13
  438. package/src/components/Icon/components/History.js +9 -9
  439. package/src/components/Icon/components/Home.js +8 -3
  440. package/src/components/Icon/components/Ia.js +8 -8
  441. package/src/components/Icon/components/Image.js +7 -4
  442. package/src/components/Icon/components/Info.js +9 -9
  443. package/src/components/Icon/components/Laptop.js +9 -4
  444. package/src/components/Icon/components/LeftArrow.js +4 -4
  445. package/src/components/Icon/components/Link.js +9 -9
  446. package/src/components/Icon/components/Lock.js +7 -7
  447. package/src/components/Icon/components/Log.js +7 -7
  448. package/src/components/Icon/components/Map.js +9 -6
  449. package/src/components/Icon/components/Menu.js +4 -9
  450. package/src/components/Icon/components/Microsoft.js +6 -6
  451. package/src/components/Icon/components/Modified.js +9 -9
  452. package/src/components/Icon/components/Modules.js +8 -8
  453. package/src/components/Icon/components/More.js +10 -10
  454. package/src/components/Icon/components/NewFolder.js +6 -6
  455. package/src/components/Icon/components/Offline.js +8 -8
  456. package/src/components/Icon/components/OfflinePending.js +10 -10
  457. package/src/components/Icon/components/OpenOutside.js +10 -10
  458. package/src/components/Icon/components/OpenPanel.js +8 -8
  459. package/src/components/Icon/components/OutOfSection.js +8 -3
  460. package/src/components/Icon/components/Page.js +7 -7
  461. package/src/components/Icon/components/Paste.js +7 -7
  462. package/src/components/Icon/components/Phone.js +8 -8
  463. package/src/components/Icon/components/PhotoLibrary.js +7 -7
  464. package/src/components/Icon/components/Power.js +9 -9
  465. package/src/components/Icon/components/Preview.js +8 -8
  466. package/src/components/Icon/components/Project.js +9 -4
  467. package/src/components/Icon/components/QrCode.js +6 -6
  468. package/src/components/Icon/components/Question.js +10 -10
  469. package/src/components/Icon/components/Refresh.js +6 -6
  470. package/src/components/Icon/components/RightArrow.js +4 -4
  471. package/src/components/Icon/components/Scheduled.js +8 -8
  472. package/src/components/Icon/components/Search.js +9 -9
  473. package/src/components/Icon/components/SendEmail.js +8 -8
  474. package/src/components/Icon/components/Settings.js +15 -15
  475. package/src/components/Icon/components/Share.js +6 -6
  476. package/src/components/Icon/components/Subsection.js +8 -3
  477. package/src/components/Icon/components/Success.js +10 -10
  478. package/src/components/Icon/components/SuccessSolid.js +10 -10
  479. package/src/components/Icon/components/Tablet.js +8 -8
  480. package/src/components/Icon/components/Translate.js +6 -6
  481. package/src/components/Icon/components/Unlink.js +9 -9
  482. package/src/components/Icon/components/UpArrow.js +4 -4
  483. package/src/components/Icon/components/UploadFile.js +8 -8
  484. package/src/components/Icon/components/UploadPending.js +8 -8
  485. package/src/components/Icon/components/UrlLink.js +8 -8
  486. package/src/components/Icon/components/User.js +9 -9
  487. package/src/components/Icon/components/Users.js +8 -8
  488. package/src/components/Icon/components/Video.js +9 -9
  489. package/src/components/Icon/components/View.js +8 -8
  490. package/src/components/Icon/components/Warning.js +10 -10
  491. package/src/components/Icon/components/Web.js +10 -10
  492. package/src/components/Icon/components/Working.js +6 -6
  493. package/src/components/Icon/index.tsx +37 -37
  494. package/src/components/IconAction/index.tsx +27 -27
  495. package/src/components/IconAction/style.tsx +4 -4
  496. package/src/components/Image/index.tsx +21 -21
  497. package/src/components/Image/utils.ts +31 -31
  498. package/src/components/InformativeMenu/index.tsx +20 -20
  499. package/src/components/InformativeMenu/style.tsx +3 -3
  500. package/src/components/LanguageMenu/index.tsx +58 -58
  501. package/src/components/LanguageMenu/style.tsx +10 -10
  502. package/src/components/Lists/index.tsx +10 -10
  503. package/src/components/Loader/components/Circle.js +15 -8
  504. package/src/components/Loader/components/Dots.js +13 -13
  505. package/src/components/Loader/index.tsx +28 -28
  506. package/src/components/Loading/index.tsx +9 -9
  507. package/src/components/Login/LoginForm/RecoveryModal/index.tsx +64 -64
  508. package/src/components/Login/LoginForm/index.tsx +107 -107
  509. package/src/components/Login/LoginSSO/index.tsx +60 -60
  510. package/src/components/Login/LoginSSO/style.tsx +12 -12
  511. package/src/components/Login/LoginSlider/index.tsx +50 -50
  512. package/src/components/Login/index.tsx +69 -69
  513. package/src/components/MainWrapper/AppBar/atoms.tsx +39 -39
  514. package/src/components/MainWrapper/AppBar/index.tsx +282 -282
  515. package/src/components/MainWrapper/AppBar/style.tsx +24 -24
  516. package/src/components/MainWrapper/AppBar/utils.tsx +10 -14
  517. package/src/components/MainWrapper/index.tsx +50 -50
  518. package/src/components/MenuGroup/index.tsx +68 -68
  519. package/src/components/MenuGroup/style.tsx +5 -5
  520. package/src/components/MenuItem/index.tsx +47 -47
  521. package/src/components/Modal/index.tsx +83 -83
  522. package/src/components/Modal/style.tsx +20 -20
  523. package/src/components/Nav/index.tsx +33 -33
  524. package/src/components/Nav/style.tsx +1 -1
  525. package/src/components/Notification/SubNotification/index.tsx +18 -18
  526. package/src/components/Notification/index.tsx +82 -82
  527. package/src/components/OcassionalToast/index.tsx +11 -11
  528. package/src/components/PageFinder/SelectionListItem/index.tsx +29 -29
  529. package/src/components/PageFinder/index.tsx +278 -278
  530. package/src/components/PageFinder/style.tsx +12 -12
  531. package/src/components/Pagination/index.tsx +49 -44
  532. package/src/components/Pagination/style.tsx +4 -8
  533. package/src/components/ProgressBar/index.tsx +11 -11
  534. package/src/components/ProgressBar/style.tsx +4 -4
  535. package/src/components/ReorderArrows/index.tsx +25 -25
  536. package/src/components/ReorderArrows/style.tsx +3 -3
  537. package/src/components/ResizePanel/ResizeHandle/index.tsx +51 -19
  538. package/src/components/ResizePanel/index.tsx +40 -39
  539. package/src/components/ResizePanel/style.tsx +5 -5
  540. package/src/components/RestoreModal/index.tsx +37 -37
  541. package/src/components/ScheduleModal/index.tsx +84 -84
  542. package/src/components/SearchField/index.tsx +120 -120
  543. package/src/components/SearchField/style.tsx +10 -10
  544. package/src/components/SearchTagsBar/index.tsx +31 -31
  545. package/src/components/SearchTagsBar/style.tsx +1 -1
  546. package/src/components/SideModal/SideModalOption/index.tsx +42 -42
  547. package/src/components/SideModal/index.tsx +193 -194
  548. package/src/components/SideModal/style.tsx +15 -15
  549. package/src/components/SubNav/index.tsx +6 -6
  550. package/src/components/TableCounter/index.tsx +4 -4
  551. package/src/components/TableFilters/CategoryFilter/index.tsx +106 -107
  552. package/src/components/TableFilters/CheckGroupFilter/index.tsx +95 -95
  553. package/src/components/TableFilters/CustomizeFilters/index.tsx +41 -41
  554. package/src/components/TableFilters/DateFilter/index.tsx +38 -38
  555. package/src/components/TableFilters/LastAccessFilter/index.tsx +38 -38
  556. package/src/components/TableFilters/LiveFilter/index.tsx +100 -102
  557. package/src/components/TableFilters/NameFilter/index.tsx +48 -48
  558. package/src/components/TableFilters/PermissionsFilter/index.tsx +37 -37
  559. package/src/components/TableFilters/RoleFilter/index.tsx +50 -50
  560. package/src/components/TableFilters/SiteFilter/index.tsx +73 -73
  561. package/src/components/TableFilters/StateFilter/index.tsx +53 -53
  562. package/src/components/TableFilters/StatusFilter/index.tsx +40 -40
  563. package/src/components/TableFilters/TranslationsFilter/index.tsx +48 -49
  564. package/src/components/TableFilters/TypeFilter/index.tsx +50 -51
  565. package/src/components/TableFilters/UsersFilter/index.tsx +42 -42
  566. package/src/components/TableFilters/index.tsx +15 -15
  567. package/src/components/TableList/TableItem/style.tsx +4 -4
  568. package/src/components/TableList/index.tsx +44 -44
  569. package/src/components/TableList/style.tsx +14 -14
  570. package/src/components/Tabs/index.tsx +58 -58
  571. package/src/components/Tabs/style.tsx +6 -6
  572. package/src/components/Tag/index.tsx +50 -50
  573. package/src/components/Tag/style.tsx +1 -1
  574. package/src/components/Toast/index.tsx +39 -39
  575. package/src/components/Toast/style.tsx +1 -1
  576. package/src/components/Tooltip/index.tsx +109 -109
  577. package/src/components/Tooltip/style.tsx +8 -8
  578. package/src/components/index.tsx +175 -175
  579. package/src/containers/ActivityLog/actions.tsx +212 -212
  580. package/src/containers/ActivityLog/interfaces.tsx +4 -4
  581. package/src/containers/ActivityLog/reducer.tsx +11 -11
  582. package/src/containers/Analytics/actions.tsx +77 -77
  583. package/src/containers/Analytics/interfaces.tsx +2 -2
  584. package/src/containers/Analytics/reducer.tsx +14 -14
  585. package/src/containers/App/actions.tsx +191 -191
  586. package/src/containers/App/constants.tsx +12 -12
  587. package/src/containers/App/index.tsx +1 -4
  588. package/src/containers/App/interfaces.tsx +44 -44
  589. package/src/containers/App/reducer.tsx +97 -97
  590. package/src/containers/Domains/actions.tsx +41 -41
  591. package/src/containers/Domains/interfaces.tsx +2 -2
  592. package/src/containers/Domains/reducer.tsx +8 -8
  593. package/src/containers/FileDrive/actions.tsx +326 -326
  594. package/src/containers/FileDrive/constants.tsx +10 -10
  595. package/src/containers/FileDrive/index.tsx +1 -4
  596. package/src/containers/FileDrive/interfaces.tsx +27 -27
  597. package/src/containers/FileDrive/reducer.tsx +43 -43
  598. package/src/containers/Forms/actions.tsx +717 -717
  599. package/src/containers/Forms/constants.tsx +21 -21
  600. package/src/containers/Forms/interfaces.tsx +45 -45
  601. package/src/containers/Forms/reducer.tsx +67 -67
  602. package/src/containers/Forms/utils.tsx +27 -27
  603. package/src/containers/Gallery/actions.tsx +398 -397
  604. package/src/containers/Gallery/constants.tsx +13 -13
  605. package/src/containers/Gallery/index.tsx +1 -4
  606. package/src/containers/Gallery/interfaces.tsx +48 -48
  607. package/src/containers/Gallery/reducer.tsx +74 -74
  608. package/src/containers/Integrations/actions.tsx +165 -165
  609. package/src/containers/Integrations/constants.tsx +3 -3
  610. package/src/containers/Integrations/interfaces.tsx +12 -12
  611. package/src/containers/Integrations/reducer.tsx +17 -17
  612. package/src/containers/Navigation/Defaults/actions.tsx +735 -735
  613. package/src/containers/Navigation/Defaults/interfaces.tsx +54 -54
  614. package/src/containers/Navigation/Defaults/reducer.tsx +71 -71
  615. package/src/containers/Navigation/Defaults/utils.tsx +60 -60
  616. package/src/containers/Navigation/Menu/actions.tsx +233 -233
  617. package/src/containers/Navigation/Menu/index.tsx +2 -5
  618. package/src/containers/Navigation/Menu/interfaces.tsx +20 -20
  619. package/src/containers/Navigation/Menu/reducer.tsx +39 -39
  620. package/src/containers/Navigation/index.tsx +3 -8
  621. package/src/containers/PageEditor/actions.tsx +1344 -1344
  622. package/src/containers/PageEditor/interfaces.tsx +80 -80
  623. package/src/containers/PageEditor/reducer.tsx +102 -102
  624. package/src/containers/PageEditor/utils.tsx +128 -128
  625. package/src/containers/Redirects/actions.tsx +151 -151
  626. package/src/containers/Redirects/constants.tsx +12 -12
  627. package/src/containers/Redirects/interfaces.tsx +8 -8
  628. package/src/containers/Redirects/reducer.tsx +21 -21
  629. package/src/containers/Settings/DataPacks/actions.tsx +388 -388
  630. package/src/containers/Settings/DataPacks/constants.tsx +9 -9
  631. package/src/containers/Settings/DataPacks/index.tsx +1 -4
  632. package/src/containers/Settings/DataPacks/interfaces.tsx +23 -15
  633. package/src/containers/Settings/DataPacks/reducer.tsx +37 -37
  634. package/src/containers/Settings/Languages/actions.tsx +49 -49
  635. package/src/containers/Settings/Languages/reducer.tsx +19 -19
  636. package/src/containers/Settings/Social/actions.tsx +43 -43
  637. package/src/containers/Settings/Social/index.tsx +1 -4
  638. package/src/containers/Settings/Social/interfaces.tsx +2 -2
  639. package/src/containers/Settings/Social/reducer.tsx +6 -6
  640. package/src/containers/Settings/index.tsx +1 -8
  641. package/src/containers/Sites/actions.tsx +641 -641
  642. package/src/containers/Sites/constants.tsx +5 -5
  643. package/src/containers/Sites/index.tsx +1 -4
  644. package/src/containers/Sites/interfaces.tsx +54 -54
  645. package/src/containers/Sites/reducer.tsx +90 -90
  646. package/src/containers/StructuredData/actions.tsx +662 -662
  647. package/src/containers/StructuredData/constants.tsx +27 -27
  648. package/src/containers/StructuredData/index.tsx +1 -4
  649. package/src/containers/StructuredData/interfaces.tsx +53 -53
  650. package/src/containers/StructuredData/reducer.tsx +75 -75
  651. package/src/containers/StructuredData/utils.tsx +40 -40
  652. package/src/containers/Users/actions.tsx +302 -302
  653. package/src/containers/Users/index.tsx +1 -4
  654. package/src/containers/Users/interfaces.tsx +18 -18
  655. package/src/containers/Users/reducer.tsx +37 -37
  656. package/src/forms/editor.tsx +194 -194
  657. package/src/forms/elements.tsx +200 -200
  658. package/src/forms/errors.tsx +43 -43
  659. package/src/forms/fields.tsx +83 -83
  660. package/src/forms/index.tsx +66 -66
  661. package/src/forms/validators.tsx +467 -467
  662. package/src/guards/error/index.tsx +51 -51
  663. package/src/guards/restricted/index.tsx +9 -9
  664. package/src/guards/routeLeaving/index.tsx +53 -53
  665. package/src/guards/routeLeaving/style.tsx +2 -2
  666. package/src/helpers/arrays.tsx +13 -13
  667. package/src/helpers/containerEvaluations.tsx +53 -53
  668. package/src/helpers/customColumns.tsx +33 -33
  669. package/src/helpers/dataPacks.tsx +8 -8
  670. package/src/helpers/dates.tsx +52 -53
  671. package/src/helpers/environment.tsx +3 -3
  672. package/src/helpers/files.tsx +52 -52
  673. package/src/helpers/forms.tsx +9 -9
  674. package/src/helpers/imageResize.tsx +197 -167
  675. package/src/helpers/images.tsx +75 -75
  676. package/src/helpers/index.tsx +192 -192
  677. package/src/helpers/objects.tsx +117 -118
  678. package/src/helpers/parseTheme.js +274 -274
  679. package/src/helpers/requests.tsx +19 -19
  680. package/src/helpers/schemas.tsx +120 -120
  681. package/src/helpers/strings.tsx +103 -103
  682. package/src/helpers/structuredData.tsx +17 -17
  683. package/src/helpers/themes.tsx +56 -56
  684. package/src/helpers/thumbnails.tsx +47 -47
  685. package/src/hooks/bulk.tsx +133 -135
  686. package/src/hooks/content.tsx +93 -93
  687. package/src/hooks/forms.tsx +115 -115
  688. package/src/hooks/iframe.ts +48 -48
  689. package/src/hooks/index.tsx +20 -20
  690. package/src/hooks/location.tsx +5 -5
  691. package/src/hooks/modals.tsx +38 -38
  692. package/src/hooks/network.tsx +21 -20
  693. package/src/hooks/resize.ts +51 -51
  694. package/src/hooks/users.tsx +22 -22
  695. package/src/hooks/window.ts +10 -10
  696. package/src/index.tsx +16 -19
  697. package/src/modules/ActivityLog/DetailModal/index.tsx +81 -81
  698. package/src/modules/ActivityLog/DownloadModal/index.tsx +84 -84
  699. package/src/modules/ActivityLog/ItemGroup/index.tsx +14 -14
  700. package/src/modules/ActivityLog/ItemLog/EventItem/index.tsx +136 -136
  701. package/src/modules/ActivityLog/ItemLog/index.tsx +11 -11
  702. package/src/modules/ActivityLog/ItemLogUser/UserItem/EventItem/index.tsx +139 -139
  703. package/src/modules/ActivityLog/ItemLogUser/UserItem/index.tsx +33 -33
  704. package/src/modules/ActivityLog/ItemLogUser/index.tsx +12 -12
  705. package/src/modules/ActivityLog/LogFilters/ContentFilter/index.tsx +59 -59
  706. package/src/modules/ActivityLog/LogFilters/DateFilter/index.tsx +64 -64
  707. package/src/modules/ActivityLog/LogFilters/EventFilter/index.tsx +57 -57
  708. package/src/modules/ActivityLog/LogFilters/OrderFilter/index.tsx +36 -36
  709. package/src/modules/ActivityLog/LogFilters/UserFilter/index.tsx +59 -59
  710. package/src/modules/ActivityLog/TableHeader/index.tsx +52 -52
  711. package/src/modules/ActivityLog/TableHeader/style.tsx +9 -9
  712. package/src/modules/ActivityLog/constants.tsx +6 -6
  713. package/src/modules/ActivityLog/hooks.tsx +45 -46
  714. package/src/modules/ActivityLog/index.tsx +287 -287
  715. package/src/modules/ActivityLog/utils.tsx +20 -20
  716. package/src/modules/Analytics/DimensionItem/index.tsx +49 -49
  717. package/src/modules/Analytics/DimensionItem/style.tsx +2 -2
  718. package/src/modules/Analytics/DimensionPanel/index.tsx +129 -129
  719. package/src/modules/Analytics/DimensionPanel/style.tsx +1 -1
  720. package/src/modules/Analytics/GroupItem/index.tsx +61 -51
  721. package/src/modules/Analytics/GroupItem/style.tsx +5 -14
  722. package/src/modules/Analytics/GroupPanel/index.tsx +172 -172
  723. package/src/modules/Analytics/GroupPanel/style.tsx +2 -12
  724. package/src/modules/Analytics/GroupPanel/utils.tsx +17 -17
  725. package/src/modules/Analytics/index.tsx +180 -181
  726. package/src/modules/Analytics/style.tsx +9 -9
  727. package/src/modules/App/Routing/Logout/index.tsx +12 -12
  728. package/src/modules/App/Routing/NavMenu/NavItem/NavSubItem/index.tsx +16 -16
  729. package/src/modules/App/Routing/NavMenu/NavItem/NavSubItem/style.tsx +5 -5
  730. package/src/modules/App/Routing/NavMenu/NavItem/index.tsx +93 -93
  731. package/src/modules/App/Routing/NavMenu/NavItem/style.tsx +2 -2
  732. package/src/modules/App/Routing/NavMenu/context.tsx +2 -2
  733. package/src/modules/App/Routing/NavMenu/index.tsx +219 -219
  734. package/src/modules/App/Routing/NavMenu/style.tsx +1 -1
  735. package/src/modules/App/Routing/PrivateRoute/index.tsx +15 -15
  736. package/src/modules/App/Routing/index.tsx +106 -106
  737. package/src/modules/App/index.tsx +18 -18
  738. package/src/modules/Categories/CategoriesList/BulkHeader/TableHeader/index.tsx +35 -35
  739. package/src/modules/Categories/CategoriesList/BulkHeader/index.tsx +40 -40
  740. package/src/modules/Categories/CategoriesList/CategoryItem/index.tsx +284 -284
  741. package/src/modules/Categories/CategoriesList/CategoryItem/style.tsx +14 -14
  742. package/src/modules/Categories/CategoriesList/CategoryNav/NavItem/index.tsx +42 -42
  743. package/src/modules/Categories/CategoriesList/CategoryNav/index.tsx +28 -28
  744. package/src/modules/Categories/CategoriesList/CategoryNav/style.tsx +5 -5
  745. package/src/modules/Categories/CategoriesList/CategoryPanel/Form/index.tsx +97 -97
  746. package/src/modules/Categories/CategoriesList/CategoryPanel/index.tsx +181 -181
  747. package/src/modules/Categories/CategoriesList/atoms.tsx +66 -66
  748. package/src/modules/Categories/CategoriesList/helpers.tsx +106 -106
  749. package/src/modules/Categories/CategoriesList/hooks.tsx +54 -54
  750. package/src/modules/Categories/CategoriesList/index.tsx +465 -466
  751. package/src/modules/Categories/CategoriesList/style.tsx +9 -9
  752. package/src/modules/Categories/CategoriesList/utils.tsx +19 -19
  753. package/src/modules/Categories/index.tsx +6 -6
  754. package/src/modules/Content/BulkHeader/TableHeader/index.tsx +141 -141
  755. package/src/modules/Content/BulkHeader/TableHeader/style.tsx +13 -13
  756. package/src/modules/Content/BulkHeader/index.tsx +99 -99
  757. package/src/modules/Content/ContentFilters/index.tsx +83 -83
  758. package/src/modules/Content/ContentFilters/utils.tsx +53 -53
  759. package/src/modules/Content/OptionTable/index.tsx +205 -205
  760. package/src/modules/Content/OptionTable/store.tsx +19 -19
  761. package/src/modules/Content/PageImporter/index.tsx +122 -122
  762. package/src/modules/Content/PageImporter/style.tsx +15 -15
  763. package/src/modules/Content/PageItem/index.tsx +700 -700
  764. package/src/modules/Content/PageItem/style.tsx +24 -24
  765. package/src/modules/Content/atoms.tsx +103 -103
  766. package/src/modules/Content/hooks.tsx +99 -99
  767. package/src/modules/Content/index.tsx +1056 -1055
  768. package/src/modules/Content/style.tsx +8 -8
  769. package/src/modules/Content/utils.tsx +164 -164
  770. package/src/modules/CreatePass/index.tsx +64 -64
  771. package/src/modules/CreatePass/style.tsx +8 -9
  772. package/src/modules/FileDrive/Breadcrumb/index.tsx +27 -27
  773. package/src/modules/FileDrive/Breadcrumb/style.tsx +7 -7
  774. package/src/modules/FileDrive/BulkGridHeader/GridHeader/index.tsx +23 -23
  775. package/src/modules/FileDrive/BulkGridHeader/index.tsx +20 -20
  776. package/src/modules/FileDrive/BulkGridHeader/style.tsx +1 -1
  777. package/src/modules/FileDrive/BulkListHeader/TableHeader/index.tsx +34 -34
  778. package/src/modules/FileDrive/BulkListHeader/TableHeader/style.tsx +9 -9
  779. package/src/modules/FileDrive/BulkListHeader/index.tsx +30 -30
  780. package/src/modules/FileDrive/BulkListHeader/style.tsx +1 -1
  781. package/src/modules/FileDrive/FileDragAndDrop/index.tsx +255 -255
  782. package/src/modules/FileDrive/FileDragAndDrop/style.tsx +32 -32
  783. package/src/modules/FileDrive/FileFilters/SortBy/index.tsx +54 -54
  784. package/src/modules/FileDrive/FileFilters/Type/index.tsx +58 -59
  785. package/src/modules/FileDrive/FileFilters/Usage/index.tsx +46 -46
  786. package/src/modules/FileDrive/FileModal/DetailPanel/UsageContent/Item/index.tsx +17 -17
  787. package/src/modules/FileDrive/FileModal/DetailPanel/UsageContent/Item/style.tsx +0 -1
  788. package/src/modules/FileDrive/FileModal/DetailPanel/UsageContent/ItemGroup/index.tsx +27 -27
  789. package/src/modules/FileDrive/FileModal/DetailPanel/UsageContent/index.tsx +110 -110
  790. package/src/modules/FileDrive/FileModal/DetailPanel/index.tsx +179 -179
  791. package/src/modules/FileDrive/FileModal/index.tsx +176 -176
  792. package/src/modules/FileDrive/FileModal/style.tsx +12 -12
  793. package/src/modules/FileDrive/FolderItem/index.tsx +158 -158
  794. package/src/modules/FileDrive/FolderItem/style.tsx +1 -1
  795. package/src/modules/FileDrive/FolderTree/MenuItem/index.tsx +64 -64
  796. package/src/modules/FileDrive/FolderTree/MenuList/index.tsx +21 -21
  797. package/src/modules/FileDrive/FolderTree/index.tsx +43 -43
  798. package/src/modules/FileDrive/GridItem/index.tsx +168 -168
  799. package/src/modules/FileDrive/ListItem/index.tsx +182 -182
  800. package/src/modules/FileDrive/ListItem/style.tsx +12 -12
  801. package/src/modules/FileDrive/UploadItem/index.tsx +19 -19
  802. package/src/modules/FileDrive/UploadItem/style.tsx +1 -1
  803. package/src/modules/FileDrive/atoms.tsx +156 -156
  804. package/src/modules/FileDrive/hooks.tsx +82 -82
  805. package/src/modules/FileDrive/index.tsx +821 -822
  806. package/src/modules/FileDrive/style.tsx +28 -28
  807. package/src/modules/FileDrive/utils.tsx +11 -11
  808. package/src/modules/Forms/FormCategoriesList/BulkHeader/TableHeader/index.tsx +29 -29
  809. package/src/modules/Forms/FormCategoriesList/BulkHeader/index.tsx +24 -24
  810. package/src/modules/Forms/FormCategoriesList/CategoryItem/index.tsx +111 -111
  811. package/src/modules/Forms/FormCategoriesList/CategoryItem/style.tsx +9 -9
  812. package/src/modules/Forms/FormCategoriesList/CategoryPanel/Form/index.tsx +34 -34
  813. package/src/modules/Forms/FormCategoriesList/CategoryPanel/index.tsx +85 -85
  814. package/src/modules/Forms/FormCategoriesList/atoms.tsx +21 -21
  815. package/src/modules/Forms/FormCategoriesList/hooks.tsx +54 -54
  816. package/src/modules/Forms/FormCategoriesList/index.tsx +245 -245
  817. package/src/modules/Forms/FormCategoriesList/style.tsx +10 -10
  818. package/src/modules/Forms/FormEditor/Editor/FormConfigPanel/Form/ConnectedField/Field/index.tsx +91 -91
  819. package/src/modules/Forms/FormEditor/Editor/FormConfigPanel/Form/ConnectedField/TemplateManager/index.tsx +85 -85
  820. package/src/modules/Forms/FormEditor/Editor/FormConfigPanel/Form/ConnectedField/index.tsx +98 -98
  821. package/src/modules/Forms/FormEditor/Editor/FormConfigPanel/Form/index.tsx +70 -70
  822. package/src/modules/Forms/FormEditor/Editor/FormConfigPanel/Header/index.tsx +117 -117
  823. package/src/modules/Forms/FormEditor/Editor/FormConfigPanel/index.tsx +73 -73
  824. package/src/modules/Forms/FormEditor/Editor/SideModal/SectionOption/index.tsx +9 -9
  825. package/src/modules/Forms/FormEditor/Editor/SideModal/SideModalOption/index.tsx +18 -18
  826. package/src/modules/Forms/FormEditor/Editor/SideModal/index.tsx +91 -91
  827. package/src/modules/Forms/FormEditor/Editor/SideModal/style.tsx +13 -13
  828. package/src/modules/Forms/FormEditor/Editor/index.tsx +141 -141
  829. package/src/modules/Forms/FormEditor/PageBrowser/index.tsx +69 -69
  830. package/src/modules/Forms/FormEditor/index.tsx +372 -372
  831. package/src/modules/Forms/FormList/BulkHeader/TableHeader/index.tsx +131 -131
  832. package/src/modules/Forms/FormList/BulkHeader/index.tsx +52 -52
  833. package/src/modules/Forms/FormList/FormItem/index.tsx +366 -366
  834. package/src/modules/Forms/FormList/FormItem/style.tsx +11 -11
  835. package/src/modules/Forms/FormList/Summary/index.tsx +41 -41
  836. package/src/modules/Forms/FormList/TemplateModal/index.tsx +92 -92
  837. package/src/modules/Forms/FormList/TemplateModal/style.tsx +9 -9
  838. package/src/modules/Forms/FormList/hooks.tsx +91 -91
  839. package/src/modules/Forms/FormList/index.tsx +442 -442
  840. package/src/modules/Forms/FormUseModal/FormUseItem/index.tsx +29 -29
  841. package/src/modules/Forms/FormUseModal/index.tsx +262 -262
  842. package/src/modules/Forms/FormUseModal/utils.tsx +92 -92
  843. package/src/modules/Forms/FormsMenu/MenuGroup/index.tsx +43 -43
  844. package/src/modules/Forms/FormsMenu/index.tsx +65 -65
  845. package/src/modules/Forms/atoms.tsx +182 -182
  846. package/src/modules/Forms/utils.tsx +15 -15
  847. package/src/modules/FramePreview/index.tsx +139 -129
  848. package/src/modules/GlobalEditor/Editor/index.tsx +111 -111
  849. package/src/modules/GlobalEditor/PageBrowser/index.tsx +65 -65
  850. package/src/modules/GlobalEditor/Preview/index.tsx +7 -7
  851. package/src/modules/GlobalEditor/index.tsx +738 -738
  852. package/src/modules/GlobalSettings/Robots/Item/RobotsPanel/index.tsx +49 -49
  853. package/src/modules/GlobalSettings/Robots/Item/index.tsx +14 -14
  854. package/src/modules/GlobalSettings/Robots/index.tsx +92 -93
  855. package/src/modules/GlobalSettings/index.tsx +21 -21
  856. package/src/modules/Login/constants.tsx +2 -2
  857. package/src/modules/Login/index.tsx +112 -112
  858. package/src/modules/MediaGallery/Breadcrumb/index.tsx +27 -27
  859. package/src/modules/MediaGallery/Breadcrumb/style.tsx +7 -7
  860. package/src/modules/MediaGallery/BulkGridHeader/GridHeader/index.tsx +23 -23
  861. package/src/modules/MediaGallery/BulkGridHeader/index.tsx +20 -20
  862. package/src/modules/MediaGallery/BulkGridHeader/style.tsx +1 -1
  863. package/src/modules/MediaGallery/BulkListHeader/TableHeader/index.tsx +32 -32
  864. package/src/modules/MediaGallery/BulkListHeader/index.tsx +27 -27
  865. package/src/modules/MediaGallery/BulkListHeader/style.tsx +1 -1
  866. package/src/modules/MediaGallery/FolderItem/index.tsx +169 -169
  867. package/src/modules/MediaGallery/FolderItem/style.tsx +1 -1
  868. package/src/modules/MediaGallery/FolderTree/MenuItem/index.tsx +64 -64
  869. package/src/modules/MediaGallery/FolderTree/MenuList/index.tsx +22 -22
  870. package/src/modules/MediaGallery/FolderTree/index.tsx +43 -43
  871. package/src/modules/MediaGallery/GridItem/index.tsx +133 -133
  872. package/src/modules/MediaGallery/ImageDragAndDrop/index.tsx +267 -260
  873. package/src/modules/MediaGallery/ImageDragAndDrop/style.tsx +32 -32
  874. package/src/modules/MediaGallery/ImageFilters/Orientation/index.tsx +47 -47
  875. package/src/modules/MediaGallery/ImageFilters/SortBy/index.tsx +54 -54
  876. package/src/modules/MediaGallery/ImageFilters/Type/index.tsx +48 -48
  877. package/src/modules/MediaGallery/ImageFilters/Usage/index.tsx +53 -53
  878. package/src/modules/MediaGallery/ImageModal/DetailPanel/UsageContent/Item/index.tsx +20 -20
  879. package/src/modules/MediaGallery/ImageModal/DetailPanel/UsageContent/ItemGroup/index.tsx +29 -29
  880. package/src/modules/MediaGallery/ImageModal/DetailPanel/UsageContent/index.tsx +201 -202
  881. package/src/modules/MediaGallery/ImageModal/DetailPanel/index.tsx +179 -179
  882. package/src/modules/MediaGallery/ImageModal/index.tsx +150 -150
  883. package/src/modules/MediaGallery/ImageModal/style.tsx +11 -11
  884. package/src/modules/MediaGallery/ListItem/index.tsx +164 -164
  885. package/src/modules/MediaGallery/ListItem/style.tsx +12 -12
  886. package/src/modules/MediaGallery/UploadItem/index.tsx +19 -19
  887. package/src/modules/MediaGallery/UploadItem/style.tsx +1 -1
  888. package/src/modules/MediaGallery/atoms.tsx +156 -156
  889. package/src/modules/MediaGallery/hooks.tsx +88 -88
  890. package/src/modules/MediaGallery/index.tsx +890 -890
  891. package/src/modules/MediaGallery/style.tsx +28 -28
  892. package/src/modules/MediaGallery/utils.tsx +11 -11
  893. package/src/modules/Navigation/Defaults/BulkHeader/TableHeader/index.tsx +30 -30
  894. package/src/modules/Navigation/Defaults/BulkHeader/index.tsx +26 -26
  895. package/src/modules/Navigation/Defaults/DefaultsEditor/Editor/DefaultsBrowser/index.tsx +37 -37
  896. package/src/modules/Navigation/Defaults/DefaultsEditor/Editor/index.tsx +101 -101
  897. package/src/modules/Navigation/Defaults/DefaultsEditor/index.tsx +261 -261
  898. package/src/modules/Navigation/Defaults/Item/atoms.tsx +34 -34
  899. package/src/modules/Navigation/Defaults/Item/index.tsx +241 -241
  900. package/src/modules/Navigation/Defaults/Item/style.tsx +9 -9
  901. package/src/modules/Navigation/Defaults/Nav/index.tsx +21 -21
  902. package/src/modules/Navigation/Defaults/Nav/style.tsx +9 -9
  903. package/src/modules/Navigation/Defaults/ReplaceNavModal/index.tsx +180 -180
  904. package/src/modules/Navigation/Defaults/ReplaceNavModal/style.tsx +15 -15
  905. package/src/modules/Navigation/Defaults/atoms.tsx +17 -17
  906. package/src/modules/Navigation/Defaults/index.tsx +301 -301
  907. package/src/modules/Navigation/Defaults/style.tsx +7 -7
  908. package/src/modules/Navigation/Menus/List/Nav/index.tsx +37 -37
  909. package/src/modules/Navigation/Menus/List/Nav/style.tsx +3 -4
  910. package/src/modules/Navigation/Menus/List/Table/ConfigPanel/Form/index.tsx +49 -49
  911. package/src/modules/Navigation/Menus/List/Table/ConfigPanel/index.tsx +33 -33
  912. package/src/modules/Navigation/Menus/List/Table/Header/index.tsx +29 -29
  913. package/src/modules/Navigation/Menus/List/Table/Header/style.tsx +2 -2
  914. package/src/modules/Navigation/Menus/List/Table/Item/atoms.tsx +54 -54
  915. package/src/modules/Navigation/Menus/List/Table/Item/index.tsx +149 -149
  916. package/src/modules/Navigation/Menus/List/Table/SidePanel/Form/ConnectedField/index.tsx +22 -22
  917. package/src/modules/Navigation/Menus/List/Table/SidePanel/Form/index.tsx +71 -71
  918. package/src/modules/Navigation/Menus/List/Table/SidePanel/index.tsx +87 -87
  919. package/src/modules/Navigation/Menus/List/Table/SidePanel/style.tsx +1 -1
  920. package/src/modules/Navigation/Menus/List/Table/helpers.tsx +103 -103
  921. package/src/modules/Navigation/Menus/List/Table/index.tsx +170 -170
  922. package/src/modules/Navigation/Menus/List/Table/style.tsx +1 -7
  923. package/src/modules/Navigation/Menus/List/helpers.tsx +36 -36
  924. package/src/modules/Navigation/Menus/List/index.tsx +50 -50
  925. package/src/modules/Navigation/Menus/index.tsx +38 -38
  926. package/src/modules/PageEditor/Editor/index.tsx +153 -153
  927. package/src/modules/PageEditor/PageBrowser/index.tsx +73 -73
  928. package/src/modules/PageEditor/Preview/index.tsx +5 -5
  929. package/src/modules/PageEditor/atoms.tsx +58 -58
  930. package/src/modules/PageEditor/index.tsx +805 -805
  931. package/src/modules/PublicPreview/index.tsx +48 -48
  932. package/src/modules/Redirects/BulkHeader/TableHeader/index.tsx +51 -51
  933. package/src/modules/Redirects/BulkHeader/index.tsx +56 -56
  934. package/src/modules/Redirects/RedirectItem/index.tsx +141 -141
  935. package/src/modules/Redirects/RedirectItem/style.tsx +1 -10
  936. package/src/modules/Redirects/RedirectPanel/index.tsx +90 -90
  937. package/src/modules/Redirects/atoms.tsx +185 -185
  938. package/src/modules/Redirects/hooks.tsx +63 -63
  939. package/src/modules/Redirects/index.tsx +397 -397
  940. package/src/modules/Redirects/style.tsx +24 -24
  941. package/src/modules/Redirects/utils.tsx +10 -7
  942. package/src/modules/ResetPass/index.tsx +69 -69
  943. package/src/modules/ResetPass/style.tsx +8 -9
  944. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/Filter/index.tsx +31 -31
  945. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/Filter/style.tsx +3 -7
  946. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SidePanel/DetailPanel/Item/index.tsx +14 -12
  947. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SidePanel/DetailPanel/Item/style.tsx +3 -9
  948. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SidePanel/DetailPanel/index.tsx +28 -28
  949. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SidePanel/DetailPanel/style.tsx +11 -11
  950. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SidePanel/EmptyPanel/index.tsx +8 -8
  951. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SidePanel/EmptyPanel/style.tsx +2 -6
  952. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SidePanel/MultiplePanel/index.tsx +18 -18
  953. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SidePanel/index.tsx +12 -12
  954. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SidePanel/style.tsx +3 -5
  955. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SortFilter/index.tsx +32 -32
  956. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/SortFilter/style.tsx +3 -7
  957. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/index.tsx +113 -113
  958. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/style.tsx +36 -24
  959. package/src/modules/Settings/ContentTypes/DataPacks/Config/Card/index.tsx +9 -9
  960. package/src/modules/Settings/ContentTypes/DataPacks/Config/Card/style.tsx +6 -6
  961. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/ConfigPanel/IntegrationsField/index.tsx +31 -31
  962. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/ConfigPanel/NavigationField/index.tsx +102 -102
  963. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/ConfigPanel/NavigationField/style.tsx +17 -21
  964. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/ConfigPanel/index.tsx +33 -33
  965. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/TemplateBrowser/index.tsx +33 -33
  966. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/index.tsx +6 -6
  967. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/index.tsx +45 -45
  968. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/style.tsx +3 -7
  969. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/index.tsx +35 -35
  970. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/style.tsx +7 -14
  971. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/index.tsx +219 -219
  972. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/style.tsx +2 -2
  973. package/src/modules/Settings/ContentTypes/DataPacks/Config/index.tsx +61 -61
  974. package/src/modules/Settings/ContentTypes/DataPacks/Config/style.tsx +6 -7
  975. package/src/modules/Settings/ContentTypes/DataPacks/Item/index.tsx +102 -102
  976. package/src/modules/Settings/ContentTypes/DataPacks/Item/style.tsx +10 -18
  977. package/src/modules/Settings/ContentTypes/DataPacks/List/index.tsx +15 -15
  978. package/src/modules/Settings/ContentTypes/DataPacks/List/style.tsx +1 -3
  979. package/src/modules/Settings/ContentTypes/DataPacks/Nav/index.tsx +65 -65
  980. package/src/modules/Settings/ContentTypes/DataPacks/Nav/style.tsx +11 -18
  981. package/src/modules/Settings/ContentTypes/DataPacks/hooks.tsx +12 -12
  982. package/src/modules/Settings/ContentTypes/DataPacks/index.tsx +220 -220
  983. package/src/modules/Settings/ContentTypes/DataPacks/style.tsx +4 -9
  984. package/src/modules/Settings/ContentTypes/index.tsx +5 -5
  985. package/src/modules/Settings/Globals/NavigationModules/SideModal/SideModalOption/index.tsx +16 -16
  986. package/src/modules/Settings/Globals/NavigationModules/SideModal/index.tsx +85 -85
  987. package/src/modules/Settings/Globals/NavigationModules/index.tsx +69 -69
  988. package/src/modules/Settings/Globals/constants.tsx +436 -436
  989. package/src/modules/Settings/Globals/index.tsx +198 -194
  990. package/src/modules/Settings/Integrations/BulkHeader/TableHeader/index.tsx +102 -102
  991. package/src/modules/Settings/Integrations/BulkHeader/TableHeader/style.tsx +8 -8
  992. package/src/modules/Settings/Integrations/BulkHeader/index.tsx +40 -40
  993. package/src/modules/Settings/Integrations/IntegrationForm/VariableItem/index.tsx +69 -69
  994. package/src/modules/Settings/Integrations/IntegrationForm/VariablePanel/index.tsx +118 -118
  995. package/src/modules/Settings/Integrations/IntegrationForm/index.tsx +275 -275
  996. package/src/modules/Settings/Integrations/IntegrationForm/style.tsx +11 -11
  997. package/src/modules/Settings/Integrations/IntegrationItem/CopyModal/index.tsx +31 -31
  998. package/src/modules/Settings/Integrations/IntegrationItem/index.tsx +278 -278
  999. package/src/modules/Settings/Integrations/IntegrationItem/style.tsx +21 -21
  1000. package/src/modules/Settings/Integrations/atoms.tsx +32 -32
  1001. package/src/modules/Settings/Integrations/hooks.tsx +67 -67
  1002. package/src/modules/Settings/Integrations/index.tsx +327 -327
  1003. package/src/modules/Settings/Integrations/style.tsx +10 -10
  1004. package/src/modules/Settings/Integrations/utils.tsx +27 -27
  1005. package/src/modules/Settings/Languages/LanguagePanel/Form/ConnectedField/index.tsx +24 -24
  1006. package/src/modules/Settings/Languages/LanguagePanel/Form/index.tsx +41 -41
  1007. package/src/modules/Settings/Languages/LanguagePanel/index.tsx +59 -59
  1008. package/src/modules/Settings/Languages/Table/Header/index.tsx +20 -20
  1009. package/src/modules/Settings/Languages/Table/Header/style.tsx +2 -2
  1010. package/src/modules/Settings/Languages/Table/Item/index.tsx +61 -61
  1011. package/src/modules/Settings/Languages/Table/index.tsx +11 -11
  1012. package/src/modules/Settings/Languages/index.tsx +36 -36
  1013. package/src/modules/Settings/Languages/style.tsx +1 -1
  1014. package/src/modules/Settings/SeoAnalyticsSettings/Analytics/atoms.tsx +129 -129
  1015. package/src/modules/Settings/SeoAnalyticsSettings/Analytics/index.tsx +118 -118
  1016. package/src/modules/Settings/SeoAnalyticsSettings/Analytics/style.tsx +14 -14
  1017. package/src/modules/Settings/SeoAnalyticsSettings/index.tsx +21 -21
  1018. package/src/modules/Settings/Social/index.tsx +93 -93
  1019. package/src/modules/Settings/Social/style.tsx +1 -1
  1020. package/src/modules/Settings/index.tsx +30 -29
  1021. package/src/modules/Sites/SitesList/GridView/GridHeaderFilter/index.tsx +53 -53
  1022. package/src/modules/Sites/SitesList/GridView/GridSiteItem/index.tsx +179 -179
  1023. package/src/modules/Sites/SitesList/ListView/BulkHeader/TableHeader/index.tsx +57 -57
  1024. package/src/modules/Sites/SitesList/ListView/BulkHeader/index.tsx +66 -66
  1025. package/src/modules/Sites/SitesList/ListView/ListSiteItem/index.tsx +205 -205
  1026. package/src/modules/Sites/SitesList/ListView/ListSiteItem/style.tsx +12 -12
  1027. package/src/modules/Sites/SitesList/RecentSiteItem/index.tsx +27 -27
  1028. package/src/modules/Sites/SitesList/SiteModal/index.tsx +67 -67
  1029. package/src/modules/Sites/SitesList/atoms.tsx +29 -29
  1030. package/src/modules/Sites/SitesList/hooks.tsx +98 -98
  1031. package/src/modules/Sites/SitesList/index.tsx +412 -412
  1032. package/src/modules/Sites/SitesList/style.tsx +26 -26
  1033. package/src/modules/Sites/SitesList/utils.tsx +21 -21
  1034. package/src/modules/Sites/index.tsx +60 -60
  1035. package/src/modules/StructuredData/Form/ConnectedField/index.tsx +85 -85
  1036. package/src/modules/StructuredData/Form/index.tsx +464 -464
  1037. package/src/modules/StructuredData/StructuredDataList/BulkHeader/TableHeader/index.tsx +143 -143
  1038. package/src/modules/StructuredData/StructuredDataList/BulkHeader/TableHeader/style.tsx +13 -13
  1039. package/src/modules/StructuredData/StructuredDataList/BulkHeader/index.tsx +96 -96
  1040. package/src/modules/StructuredData/StructuredDataList/ContentFilters/index.tsx +51 -51
  1041. package/src/modules/StructuredData/StructuredDataList/ContentFilters/utils.tsx +42 -42
  1042. package/src/modules/StructuredData/StructuredDataList/GlobalPageItem/atoms.tsx +109 -109
  1043. package/src/modules/StructuredData/StructuredDataList/GlobalPageItem/index.tsx +507 -507
  1044. package/src/modules/StructuredData/StructuredDataList/GlobalPageItem/style.tsx +22 -22
  1045. package/src/modules/StructuredData/StructuredDataList/GlobalPageItem/utils.tsx +11 -11
  1046. package/src/modules/StructuredData/StructuredDataList/OptionTable/index.tsx +102 -102
  1047. package/src/modules/StructuredData/StructuredDataList/OptionTable/store.tsx +19 -19
  1048. package/src/modules/StructuredData/StructuredDataList/OptionTable/style.tsx +1 -1
  1049. package/src/modules/StructuredData/StructuredDataList/StructuredDataItem/index.tsx +298 -298
  1050. package/src/modules/StructuredData/StructuredDataList/StructuredDataItem/style.tsx +12 -12
  1051. package/src/modules/StructuredData/StructuredDataList/StructuredDataItem/utils.tsx +48 -48
  1052. package/src/modules/StructuredData/StructuredDataList/atoms.tsx +65 -65
  1053. package/src/modules/StructuredData/StructuredDataList/hooks.tsx +108 -108
  1054. package/src/modules/StructuredData/StructuredDataList/index.tsx +782 -782
  1055. package/src/modules/StructuredData/StructuredDataList/utils.tsx +161 -161
  1056. package/src/modules/StructuredData/index.tsx +8 -8
  1057. package/src/modules/Users/Profile/atoms.tsx +32 -32
  1058. package/src/modules/Users/Profile/index.tsx +82 -82
  1059. package/src/modules/Users/Roles/BulkHeader/TableHeader/index.tsx +50 -50
  1060. package/src/modules/Users/Roles/BulkHeader/TableHeader/style.tsx +1 -1
  1061. package/src/modules/Users/Roles/BulkHeader/index.tsx +60 -60
  1062. package/src/modules/Users/Roles/RoleItem/index.tsx +80 -80
  1063. package/src/modules/Users/Roles/RoleItem/style.tsx +13 -13
  1064. package/src/modules/Users/Roles/SideModal/index.tsx +64 -64
  1065. package/src/modules/Users/Roles/SideModal/style.tsx +20 -21
  1066. package/src/modules/Users/Roles/hooks.tsx +74 -74
  1067. package/src/modules/Users/Roles/index.tsx +218 -218
  1068. package/src/modules/Users/Roles/utils.tsx +7 -7
  1069. package/src/modules/Users/UserCreate/OptionItem/index.tsx +32 -32
  1070. package/src/modules/Users/UserCreate/OptionItem/style.tsx +5 -5
  1071. package/src/modules/Users/UserCreate/SiteItem/RolesModal/RoleItem/index.tsx +32 -32
  1072. package/src/modules/Users/UserCreate/SiteItem/RolesModal/index.tsx +124 -123
  1073. package/src/modules/Users/UserCreate/SiteItem/RolesModal/style.tsx +12 -12
  1074. package/src/modules/Users/UserCreate/SiteItem/index.tsx +101 -101
  1075. package/src/modules/Users/UserCreate/SiteItem/style.tsx +5 -5
  1076. package/src/modules/Users/UserCreate/index.tsx +315 -315
  1077. package/src/modules/Users/UserCreate/style.tsx +20 -20
  1078. package/src/modules/Users/UserEdit/index.tsx +159 -159
  1079. package/src/modules/Users/UserEdit/style.tsx +2 -2
  1080. package/src/modules/Users/UserForm/atoms.tsx +100 -100
  1081. package/src/modules/Users/UserForm/helpers.tsx +4 -4
  1082. package/src/modules/Users/UserForm/index.tsx +494 -494
  1083. package/src/modules/Users/UserForm/style.tsx +18 -18
  1084. package/src/modules/Users/UserList/BulkHeader/TableHeader/index.tsx +86 -86
  1085. package/src/modules/Users/UserList/BulkHeader/index.tsx +62 -62
  1086. package/src/modules/Users/UserList/UserItem/index.tsx +231 -231
  1087. package/src/modules/Users/UserList/UserItem/style.tsx +15 -15
  1088. package/src/modules/Users/UserList/hooks.tsx +73 -73
  1089. package/src/modules/Users/UserList/index.tsx +312 -312
  1090. package/src/modules/Users/UserList/style.tsx +3 -3
  1091. package/src/modules/Users/UserList/utils.tsx +6 -6
  1092. package/src/modules/Users/index.tsx +36 -36
  1093. package/src/react-app-env.d.ts +36 -36
  1094. package/src/routes/index.tsx +15 -15
  1095. package/src/routes/multisite.tsx +205 -205
  1096. package/src/routes/publicRoutes.tsx +5 -5
  1097. package/src/routes/site.tsx +260 -260
  1098. package/src/schemas/index.tsx +1 -1
  1099. package/src/schemas/pages/FormPage.tsx +48 -48
  1100. package/src/schemas/pages/GlobalPage.tsx +208 -208
  1101. package/src/schemas/pages/Page.tsx +278 -278
  1102. package/src/serviceWorker.ts +99 -109
  1103. package/src/themes/theme.json +370 -370
  1104. package/src/types/files.tsx +72 -72
  1105. package/src/types/forms.tsx +54 -54
  1106. package/src/types/index.tsx +794 -794
  1107. package/src/types/logs.tsx +4 -4
  1108. package/tsconfig.json +21 -35
  1109. package/tsconfig.paths.json +20 -20
  1110. package/scripts/start/build-dev.sh +0 -2
  1111. package/scripts/start/build.sh +0 -2
  1112. package/scripts/start/check-node-version.sh +0 -2
  1113. package/scripts/start/start-dev.sh +0 -2
  1114. package/scripts/start/start-local.sh +0 -2
  1115. package/scripts/start/start-staging.sh +0 -2
  1116. package/scripts/start/start-test.sh +0 -2
@@ -2,33 +2,33 @@ import React, { useRef, useEffect, useState, useCallback, useLayoutEffect } from
2
2
  import { connect } from "react-redux";
3
3
 
4
4
  import {
5
- Button,
6
- EmptyState,
7
- ErrorToast,
8
- Icon,
9
- IconAction,
10
- MainWrapper,
11
- TableList,
12
- Loading,
13
- Tooltip,
14
- Toast,
15
- Modal,
16
- Tabs,
17
- BackFolder,
18
- SearchField,
19
- SearchTagsBar,
20
- FilterTagsBar,
5
+ Button,
6
+ EmptyState,
7
+ ErrorToast,
8
+ Icon,
9
+ IconAction,
10
+ MainWrapper,
11
+ TableList,
12
+ Loading,
13
+ Tooltip,
14
+ Toast,
15
+ Modal,
16
+ Tabs,
17
+ BackFolder,
18
+ SearchField,
19
+ SearchTagsBar,
20
+ FilterTagsBar,
21
21
  } from "@ax/components";
22
22
  import {
23
- IBulkAction,
24
- IFolder,
25
- IFolderTree,
26
- IGetFolderParams,
27
- IImage,
28
- IImageFolder,
29
- IQueryValue,
30
- IRootState,
31
- ISite,
23
+ IBulkAction,
24
+ IFolder,
25
+ IFolderTree,
26
+ IGetFolderParams,
27
+ IImage,
28
+ IImageFolder,
29
+ IQueryValue,
30
+ IRootState,
31
+ ISite,
32
32
  } from "@ax/types";
33
33
  import { useBulkSelection, useIsDirty, useModal, usePermission, useResizable, useToast } from "@ax/hooks";
34
34
  import { galleryActions } from "@ax/containers/Gallery";
@@ -54,889 +54,889 @@ import UploadItem from "./UploadItem";
54
54
  import * as S from "./style";
55
55
 
56
56
  const MediaGallery = (props: IProps) => {
57
- const {
58
- currentFolderContent,
59
- currentFolderID,
60
- currentSiteInfo,
61
- getFolderContent,
62
- getFoldersTree,
63
- updateCurrentFolder,
64
- createNewFolder,
65
- deleteFolder,
66
- deleteImage,
67
- moveImage,
68
- updateDisplayMode,
69
- updateTab,
70
- downloadImages,
71
- uploadImage,
72
- breadcrumb,
73
- isLoading,
74
- isSaving,
75
- displayMode,
76
- selectedTab,
77
- foldersTree,
78
- isUploading,
79
- } = props;
80
-
81
- const initState: IImageFolder = { images: { items: [], totalItems: 0, currentPage: 1 }, folders: [] };
82
- const { images, folders } = currentFolderContent || initState;
83
- const { items, totalItems } = images;
84
-
85
- const itemsPerPage = 50;
86
- const firstPage = 1;
87
- const lastPage = Math.ceil(totalItems / itemsPerPage);
88
- const [page, setPage] = useState(firstPage);
89
- const [isPanelOpen, setPanelOpen] = useState(false);
90
- const [fileSelected, setFileSelected] = useState<IImage | null>(null);
91
- const [selectedFolder, setSelectedFolder] = useState<number | null>(currentFolderID || null);
92
- const imagesIds: number[] = (items && items.map((image) => image.id)) || [];
93
- const [galleryItems, setGalleryItems] = useState<number[]>(imagesIds);
94
- const [galleryDelete, setGalleryDelete] = useState(true);
95
- const [progressItems, setProgressItems] = useState<IProgressState>({
96
- tab: selectedTab,
97
- folder: currentFolderID,
98
- items: [],
99
- });
100
- const [wrapperWidth, setWrapperWidth] = useState<number>();
101
- const [isLoadingMore, setIsLoadingMore] = useState(false);
102
- const tableRef = useRef<HTMLDivElement>(null);
103
- const contentRef = useRef<HTMLDivElement>(null);
104
- const wrapperRef = useRef<HTMLDivElement>(null);
105
- const { isOpen: isNewOpen, toggleModal: toggleNewModal } = useModal();
106
- const { isOpen: isUploadOpen, toggleModal: toggleUploadModal } = useModal();
107
- const { isOpen: isDeleteOpen, toggleModal: toggleDeleteModal } = useModal();
108
- const { isOpen: isMoveOpen, toggleModal: toggleMoveModal } = useModal();
109
- const { isOpen: isSaveOpen, toggleModal: toggleSaveModal } = useModal();
110
- const { isOpen, toggleModal } = useModal();
111
- const { isVisible, toggleToast, setIsVisible, state: toastState } = useToast();
112
- const [ref] = useResizable();
113
-
114
- const initFolderState = { name: "", folderID: currentFolderID };
115
- const [folderForm, setFolderForm] = useState<IFolderFormState>(initFolderState);
116
- const { setFiltersSelection, resetFilterQuery, filterValues, filterQuery } = useFilterQuery();
117
- const { sortedListStatus, setSortedListStatus } = useSortedListStatus();
118
- const [searchQuery, setSearchQuery] = useState<string>("");
119
- const isSearching = searchQuery.length > 0;
120
-
121
- const initImageState: IImageFormState = { title: "", alt: "", tags: [] };
122
- const [fileForm, setFileForm] = useState(initImageState);
123
- const { isDirty, resetDirty } = useIsDirty(fileForm);
124
-
125
- const isSiteView = !!currentSiteInfo;
126
- const isTabGlobal = selectedTab === "global";
127
- const siteID: number | "global" = !isSiteView || isTabGlobal ? "global" : currentSiteInfo.id;
128
- const hasFolders = !!folders?.length;
129
- const isRoot = !breadcrumb.length;
130
- const isGrid = displayMode === "grid";
131
- const validFormats = ["jpeg", "jpg", "png", "svg", "gif"];
132
-
133
- const allowedToAccessGlobalFromSite = usePermission("mediaGallery.accessToGlobalGalleryFromSite");
134
-
135
- const allowedToAddSiteFile = usePermission("mediaGallery.addImages");
136
- const allowedToAddGlobalFile = usePermission("global.mediaGallery.addGlobalImages");
137
- const allowedToAddGlobalFileFromSite = false;
138
- const allowedToAddFile = !isSiteView
139
- ? allowedToAddGlobalFile
140
- : isTabGlobal
141
- ? allowedToAddGlobalFileFromSite
142
- : allowedToAddSiteFile;
143
-
144
- const allowedToEditSiteFile = usePermission("mediaGallery.editImages");
145
- const allowedToEditGlobalFile = usePermission("global.mediaGallery.editGlobalImages");
146
- const allowedToEditGlobalFileFromSite = false;
147
- const allowedToEditFile = !isSiteView
148
- ? allowedToEditGlobalFile
149
- : isTabGlobal
150
- ? allowedToEditGlobalFileFromSite
151
- : allowedToEditSiteFile;
152
-
153
- const allowedToDeleteSiteFile = usePermission("mediaGallery.deleteImages");
154
- const allowedToDeleteGlobalFile = usePermission("global.mediaGallery.deleteGlobalImages");
155
- const allowedToDeleteGlobalFileFromSite = false;
156
-
157
- const allowedToDeleteFile = !isSiteView
158
- ? allowedToDeleteGlobalFile
159
- : isTabGlobal
160
- ? allowedToDeleteGlobalFileFromSite
161
- : allowedToDeleteSiteFile;
162
-
163
- const getParams = useCallback(() => {
164
- const params: IGetFolderParams = {
165
- siteID,
166
- folderID: currentFolderID,
167
- search: searchQuery,
168
- query: filterQuery,
169
- loading: isGrid && page > 1 ? false : true,
170
- thumbHeight: 188,
171
- pagination: true,
172
- page,
173
- itemsPerPage,
174
- infinite: isGrid && page > 1 ? true : false,
175
- };
176
-
177
- return params;
178
- }, [currentFolderID, searchQuery, filterQuery, siteID, page, isGrid]);
179
-
180
- useLayoutEffect(() => {
181
- return () => {
182
- updateCurrentFolder(null);
183
- updateTab("site");
184
- setPage(firstPage);
185
- };
186
- // eslint-disable-next-line react-hooks/exhaustive-deps
187
- }, []);
188
-
189
- useEffect(() => {
190
- const handleGetContent = async () => {
191
- const params = getParams();
192
- await getFolderContent(params);
193
- setIsLoadingMore(false);
194
- };
195
- const handleGetTree = async () => await getFoldersTree(siteID);
196
-
197
- handleGetContent();
198
- handleGetTree();
199
- resetDirty();
200
- // eslint-disable-next-line react-hooks/exhaustive-deps
201
- }, [getParams, selectedTab]);
202
-
203
- useEffect(() => {
204
- const imagesIds: number[] = items?.map((image) => image.id) || [];
205
- setGalleryItems(imagesIds);
206
- // eslint-disable-next-line react-hooks/exhaustive-deps
207
- }, [images]);
208
-
209
- useEffect(() => {
210
- if (!foldersTree.length && isPanelOpen) {
211
- setPanelOpen(false);
212
- }
213
- // eslint-disable-next-line react-hooks/exhaustive-deps
214
- }, [foldersTree]);
215
-
216
- useEffect(() => {
217
- const handleResize = () => {
218
- if (wrapperRef.current) {
219
- setWrapperWidth(wrapperRef.current.offsetWidth);
220
- }
221
- };
222
- handleResize();
223
-
224
- window.addEventListener("resize", handleResize);
225
- return () => window.removeEventListener("resize", handleResize);
226
- // eslint-disable-next-line react-hooks/exhaustive-deps
227
- }, [wrapperRef.current]);
228
-
229
- const onScroll = () => {
230
- if (contentRef.current && isGrid) {
231
- const { scrollTop, scrollHeight, clientHeight } = contentRef.current;
232
- if (
233
- scrollTop + clientHeight + 100 >= scrollHeight &&
234
- items.length < totalItems &&
235
- page < lastPage &&
236
- !isLoadingMore
237
- ) {
238
- setIsLoadingMore(true);
239
- setPage((currentPage) => currentPage + 1);
240
- }
241
- }
242
- };
243
-
244
- const {
245
- resetBulkSelection,
246
- selectedItems,
247
- isSelected,
248
- areItemsSelected,
249
- checkState,
250
- addToBulkSelection,
251
- selectAllItems,
252
- setHoverCheck,
253
- } = useBulkSelection(imagesIds);
254
-
255
- const handleSelectedTab = (tab: "site" | "global") => {
256
- if (tab !== selectedTab) {
257
- setSearchQuery("");
258
- updateCurrentFolder(null);
259
- updateTab(tab);
260
- setPage(firstPage);
261
- }
262
- };
263
-
264
- const handleNewFolder = () => {
265
- setFolderForm(initFolderState);
266
- !isNewOpen && toggleNewModal();
267
- };
268
-
269
- const changeDisplayMode = (mode: "grid" | "list") => updateDisplayMode(mode);
270
-
271
- const selectItems = () => (checkState.isAllSelected ? resetBulkSelection() : selectAllItems());
272
-
273
- const handleBackClick = () => {
274
- const parentID = breadcrumb.length >= 2 ? breadcrumb[breadcrumb.length - 2].id : null;
275
- resetBulkSelection();
276
- setPage(firstPage);
277
- updateCurrentFolder(parentID);
278
- };
279
-
280
- const togglePanel = () => setPanelOpen(!isPanelOpen);
281
-
282
- const handleCreateNewFolder = async () => {
283
- const siteID: number | null = !isSiteView || isTabGlobal ? null : currentSiteInfo.id;
284
- const params = getParams();
285
- const isCreated = await createNewFolder(
286
- {
287
- site: siteID,
288
- folderName: folderForm.name,
289
- parentId: folderForm.folderID,
290
- },
291
- params
292
- );
293
- if (isCreated) {
294
- isNewOpen && toggleNewModal();
295
- toggleToast("1 new folder created");
296
- }
297
- };
298
-
299
- const handleDeleteFolder = async (folder: IFolder) => {
300
- const params = getParams();
301
- const isDeleted = await deleteFolder(folder, params);
302
- if (isDeleted) {
303
- toggleToast("1 folder deleted");
304
- }
305
- };
306
-
307
- const handleClick = (file: IImage) => {
308
- setFileSelected(file);
309
- toggleModal();
310
- };
311
-
312
- const handleUpload = async (files: IImage[]) => {
313
- setFileSelected(files[0]);
314
- isUploadOpen && toggleUploadModal();
315
- toggleModal();
316
- const params = getParams();
317
- await getFolderContent(params);
318
- };
319
-
320
- const uploadMultipleFiles = async (files: File[]) => {
321
- try {
322
- let index = 0;
323
- while (files.length) {
324
- const handleProgress = (progress: number) => {
325
- setProgressItems((prevState) => ({
326
- ...prevState,
327
- items: [...prevState.items.slice(0, index), progress, ...prevState.items.slice(index + 1)],
328
- }));
329
- };
330
-
331
- const file = files.shift();
332
- file && (await uploadImage(file, siteID || "global", handleProgress, true, currentFolderID));
333
- index = index + 1;
334
- }
335
- } catch (error) {
336
- console.log(error);
337
- }
338
- };
339
-
340
- const handleMultipleUpload = async (files: File[]) => {
341
- isUploadOpen && toggleUploadModal();
342
-
343
- const initialProgress = files.map(() => 0);
344
- setProgressItems({ tab: selectedTab, folder: currentFolderID, items: initialProgress });
345
-
346
- await uploadMultipleFiles(files);
347
-
348
- setProgressItems((prevState) => ({ ...prevState, items: [] }));
349
-
350
- updateTab(selectedTab);
351
- updateCurrentFolder(currentFolderID);
352
-
353
- const params = getParams();
354
- await getFolderContent(params);
355
- };
356
-
357
- const handleCloseModal = () => {
358
- if (isDirty) {
359
- toggleSaveModal();
360
- } else {
361
- resetFileModal();
362
- }
363
- };
364
-
365
- const resetFileModal = () => {
366
- setFileSelected(null);
367
- setGalleryItems(imagesIds);
368
- setGalleryDelete(true);
369
- resetDirty();
370
- toggleModal();
371
- };
372
-
373
- const handleDeleteFile = async (imageID: number) => {
374
- const params = getParams();
375
- const resetedParams = { ...params, page: firstPage, infinite: false, loading: true };
376
- const isDeleted = await deleteImage(imageID, resetedParams);
377
- if (isDeleted) {
378
- toggleToast("1 Image deleted");
379
- isOpen && handleCloseModal();
380
- }
381
- };
382
-
383
- const handleBulkDeleteFile = async () => {
384
- const params = getParams();
385
- const resetedParams = { ...params, page: firstPage, infinite: false, loading: true };
386
- const isDeleted = await deleteImage(selectedItems.all, resetedParams);
387
- if (isDeleted) {
388
- toggleToast(`${selectedItems.all.length} Image${selectedItems.all.length > 1 ? "s" : ""} deleted`);
389
- resetBulkSelection();
390
- }
391
- toggleDeleteModal();
392
- };
393
-
394
- const handleMoveImage = async (imageID: number, folderID: number | "root") => {
395
- const params = getParams();
396
- const resetedParams = { ...params, page: firstPage, infinite: false, loading: true };
397
- const isMoved = await moveImage(imageID, folderID, resetedParams);
398
- if (isMoved) {
399
- toggleToast("1 Image moved to a folder");
400
- }
401
- };
402
-
403
- const handleBulkMoveFile = async () => {
404
- const params = getParams();
405
- const resetedParams = { ...params, page: firstPage, infinite: false, loading: true };
406
- const isMoved = await moveImage(selectedItems.all, selectedFolder || "root", resetedParams);
407
- if (isMoved) {
408
- toggleMoveModal();
409
- toggleToast(`${selectedItems.all.length} Image${selectedItems.all.length > 1 ? "s" : ""} moved to a folder`);
410
- setSelectedFolder(0);
411
- resetBulkSelection();
412
- }
413
- };
414
-
415
- const handleBulkEditFile = () => {
416
- const currentFile = items.find((file: IImage) => file.id === selectedItems.all[0]);
417
- if (currentFile) {
418
- setGalleryItems(selectedItems.all);
419
- setFileSelected(currentFile);
420
- setGalleryDelete(false);
421
- toggleModal();
422
- }
423
- };
424
-
425
- const handleModalClose = () => {
426
- setSelectedFolder(0);
427
- isMoveOpen && toggleMoveModal();
428
- };
429
-
430
- const handleSelectFile = (id: number) => {
431
- const currentFile = items.find((file: IImage) => file.id === id);
432
- if (currentFile) {
433
- setFileSelected(currentFile);
434
- }
435
- };
436
-
437
- const handleDownloadBulk = async () => {
438
- const fileName = isSiteView ? `${currentSiteInfo.name}-images.zip` : "global-images.zip";
439
- await downloadImages(selectedItems.all, true, fileName);
440
- resetBulkSelection();
441
- };
442
-
443
- const handleUpdateCurrentFolder = (folderID: number | null) => {
444
- setSearchQuery("");
445
- resetBulkSelection();
446
- setPage(firstPage);
447
- updateCurrentFolder(folderID);
448
- };
449
-
450
- const handleDownload = async (imageID: number, fileName: string) => await downloadImages(imageID, false, fileName);
451
-
452
- const sortItems = (orderPointer: IQueryValue[], isAscending: boolean) => {
453
- setPage(firstPage);
454
- const sortedState = getSortedListStatus(orderPointer[0].value.toString(), isAscending);
455
- setSortedListStatus(sortedState);
456
- setFiltersSelection("order", orderPointer, isAscending);
457
- };
458
-
459
- const filterItems = (filterPointer: string, filtersSelected: IQueryValue[]) => {
460
- setPage(firstPage);
461
- setFiltersSelection(filterPointer, filtersSelected);
462
- };
463
-
464
- const handleSearch = (query: string) => {
465
- setSearchQuery(query);
466
- setPage(firstPage);
467
- };
468
-
469
- let bulkActions: IBulkAction[] = [];
470
-
471
- if (allowedToEditFile) {
472
- bulkActions = [
473
- {
474
- icon: "edit",
475
- text: "edit",
476
- action: handleBulkEditFile,
477
- },
478
- {
479
- icon: "change",
480
- text: "Move to",
481
- action: toggleMoveModal,
482
- },
483
- ];
484
- }
485
-
486
- bulkActions = [
487
- ...bulkActions,
488
- {
489
- icon: "download",
490
- text: "download",
491
- action: handleDownloadBulk,
492
- },
493
- ];
494
-
495
- if (allowedToDeleteFile) {
496
- bulkActions = [
497
- ...bulkActions,
498
- {
499
- icon: "delete",
500
- text: "delete",
501
- action: toggleDeleteModal,
502
- },
503
- ];
504
- }
505
-
506
- const Header = (
507
- <BulkListHeader
508
- showBulk={areItemsSelected(imagesIds)}
509
- checkState={checkState}
510
- selectAllItems={selectItems}
511
- totalItems={totalItems}
512
- selectItems={selectItems}
513
- bulkActions={bulkActions}
514
- setHoverCheck={setHoverCheck}
515
- />
516
- );
517
-
518
- const isCurrentUploadingFolder = progressItems.tab === selectedTab && progressItems.folder === currentFolderID;
519
-
520
- const gridList = (
521
- <S.GridWrapper>
522
- {isCurrentUploadingFolder &&
523
- progressItems.items.map((progress: number, index: number) => (
524
- <UploadItem uploadPercentage={progress} grid={true} key={index} />
525
- ))}
526
- {items &&
527
- items.map((image: IImage) => {
528
- const isItemSelected = isSelected(image.id);
529
- return (
530
- <GridItem
531
- image={image}
532
- isSelected={isItemSelected}
533
- onChange={addToBulkSelection}
534
- key={`${image.name}${image.id}`}
535
- onClick={handleClick}
536
- onDelete={handleDeleteFile}
537
- onMove={handleMoveImage}
538
- currentFolderID={currentFolderID}
539
- isAllowedToDelete={allowedToDeleteFile}
540
- isAllowedToEdit={allowedToEditFile}
541
- isAllowedToMove={!isRoot || (isRoot && (folders.length > 0 || isSearching))}
542
- />
543
- );
544
- })}
545
- </S.GridWrapper>
546
- );
547
-
548
- const pagination = {
549
- setPage,
550
- itemsPerPage,
551
- totalItems,
552
- currPage: page,
553
- };
554
-
555
- const listTable = (
556
- <TableList
557
- tableHeader={Header}
558
- pagination={pagination}
559
- hasFixedHeader={true}
560
- tableRef={tableRef}
561
- className="no-padding"
562
- >
563
- <>
564
- {isCurrentUploadingFolder &&
565
- progressItems.items.map((progress: number, index: number) => (
566
- <UploadItem uploadPercentage={progress} grid={false} key={index} />
567
- ))}
568
- {items &&
569
- items.map((image: IImage) => {
570
- const isItemSelected = isSelected(image.id);
571
- return (
572
- <ListItem
573
- image={image}
574
- isSelected={isItemSelected}
575
- onChange={addToBulkSelection}
576
- key={`${image.name}${image.id}`}
577
- onClick={handleClick}
578
- onDelete={handleDeleteFile}
579
- onMove={handleMoveImage}
580
- currentFolderID={currentFolderID}
581
- isAllowedToDelete={allowedToDeleteFile}
582
- isAllowedToEdit={allowedToEditFile}
583
- isAllowedToMove={!isRoot || (isRoot && (folders.length > 0 || isSearching))}
584
- hoverCheck={checkState.hoverCheck}
585
- />
586
- );
587
- })}
588
- </>
589
- </TableList>
590
- );
591
-
592
- const rightButtonProps = allowedToAddFile
593
- ? {
594
- label: "Upload",
595
- action: () => toggleUploadModal(),
596
- disabled: isUploading,
597
- }
598
- : undefined;
599
-
600
- const emptyProps = {
601
- message: allowedToAddFile ? (
602
- <>
603
- To start using images in your site, upload as many
604
- <br />
605
- images as you need
606
- </>
607
- ) : (
608
- ""
609
- ),
610
- button: allowedToAddFile ? "Upload image" : undefined,
611
- action: () => toggleUploadModal(),
612
- };
613
-
614
- const emptySearchStateProps = {
615
- icon: "search",
616
- title: "Oh! No Results Found",
617
- message: "We couldn’t find what you are looking for. Please, try another search.",
618
- };
619
-
620
- const mainNewModalAction = {
621
- title: isSaving ? "Saving..." : "Create New Folder",
622
- onClick: () => handleCreateNewFolder(),
623
- disabled: folderForm.name.trim().length === 0 || isSaving,
624
- };
625
-
626
- const secondaryNewModalAction = { title: "Cancel", onClick: toggleNewModal };
627
-
628
- const mainDeleteModalAction = {
629
- title: "Delete images",
630
- onClick: () => handleBulkDeleteFile(),
631
- };
632
-
633
- const secondaryDeleteModalAction = { title: "Cancel", onClick: toggleDeleteModal };
634
-
635
- const mainMoveModalAction = {
636
- title: "Move",
637
- onClick: () => handleBulkMoveFile(),
638
- };
639
-
640
- const secondaryMoveModalAction = { title: "Cancel", onClick: handleModalClose };
641
-
642
- const handleMainAction = () => {
643
- toggleSaveModal();
644
- resetFileModal();
645
- };
646
-
647
- const mainSaveModalAction = {
648
- title: "Yes, discard changes",
649
- onClick: () => handleMainAction(),
650
- };
651
-
652
- const secondarySaveModalAction = { title: "Cancel", onClick: toggleSaveModal };
653
-
654
- const foldersIcon = isPanelOpen ? <Icon name="closePanel" size="24" /> : <Icon name="openPanel" size="24" />;
655
-
656
- const tabs = ["site", "global"];
657
-
658
- const NewFolderButton = () =>
659
- (isSiteView && isTabGlobal) || !allowedToAddFile ? (
660
- <></>
661
- ) : (
662
- <S.ButtonWrapper>
663
- <Button type="button" onClick={handleNewFolder} buttonStyle="line" icon="NewFolder">
664
- New Folder
665
- </Button>
666
- </S.ButtonWrapper>
667
- );
668
-
669
- const filters = (
670
- <S.Filters>
671
- <Orientation filterItems={filterItems} />
672
- <Type filterItems={filterItems} />
673
- <SortBy sortItems={sortItems} sortedState={sortedListStatus} />
674
- <UsageFilter filterItems={filterItems} value={filterValues["usage"]} />
675
- </S.Filters>
676
- );
677
-
678
- return (
679
- <MainWrapper backLink={false} title="Media Gallery" rightButton={rightButtonProps}>
680
- <S.Wrapper ref={wrapperRef}>
681
- <S.FolderPanel
682
- isOpen={isPanelOpen}
683
- ref={ref}
684
- style={{ width: isPanelOpen ? "240px" : "0" }}
685
- maxWidth={wrapperWidth}
686
- >
687
- <S.FolderPanelContent>
688
- <FolderTree
689
- folderID={currentFolderID || 0}
690
- onClick={handleUpdateCurrentFolder}
691
- title="Folders"
692
- createAction={allowedToAddFile ? handleNewFolder : undefined}
693
- />
694
- </S.FolderPanelContent>
695
- <S.ResizeHandle className="resizer" />
696
- </S.FolderPanel>
697
- <S.ContentWrapper ref={contentRef} onScroll={onScroll}>
698
- <ErrorToast />
699
- <S.FiltersBar isSite={isSiteView && allowedToAccessGlobalFromSite}>
700
- {isSiteView && allowedToAccessGlobalFromSite && (
701
- <S.TabsWrapper>
702
- <Tabs tabs={tabs} active={selectedTab} setSelectedTab={handleSelectedTab} noMargins />
703
- </S.TabsWrapper>
704
- )}
705
- {!isSiteView && filters}
706
- <S.DisplayModeWrapper>
707
- <IconAction icon="Grid2" onClick={() => changeDisplayMode("grid")} active={displayMode === "grid"} />
708
- <IconAction icon="BulletList" onClick={() => changeDisplayMode("list")} active={displayMode === "list"} />
709
- </S.DisplayModeWrapper>
710
- </S.FiltersBar>
711
- <S.FiltersBar isSite={false}>
712
- {isSiteView && filters}
713
- <S.SearchWrapper>
714
- <SearchField onChange={handleSearch} placeholder="Search" value={searchQuery} focus={false} />
715
- </S.SearchWrapper>
716
- </S.FiltersBar>
717
- {isLoading ? (
718
- <Loading />
719
- ) : (
720
- <S.FolderContent>
721
- <S.SearchTags>
722
- <SearchTagsBar query={searchQuery} setQuery={handleSearch} />
723
- <FilterTagsBar
724
- filters={filterValues}
725
- setFilters={setFiltersSelection}
726
- labels={{ orientation: "Orientation", format: "Media type", usage: "Usage" }}
727
- resetFilters={resetFilterQuery}
728
- />
729
- </S.SearchTags>
730
- {!isRoot && <Breadcrumb breadcrumb={breadcrumb} onClick={handleUpdateCurrentFolder} />}
731
- {(hasFolders || !isRoot) && (
732
- <S.SectionWrapper>
733
- <S.SectionHeader>
734
- <S.SectionTitle>
735
- <div>Folders</div>
736
- <S.FoldersIconWrapper onClick={togglePanel}>
737
- <Tooltip content="Open folder panel">{foldersIcon}</Tooltip>
738
- </S.FoldersIconWrapper>
739
- </S.SectionTitle>
740
- <NewFolderButton />
741
- </S.SectionHeader>
742
- <S.FoldersWrapper>
743
- {!isRoot && <BackFolder onClick={handleBackClick} />}
744
- <S.FoldersGrid>
745
- {folders.map((folder: IFolder) => (
746
- <FolderItem
747
- folder={folder}
748
- onClick={handleUpdateCurrentFolder}
749
- onDelete={handleDeleteFolder}
750
- key={`${folder.folderName}${folder.id}`}
751
- toggleToast={toggleToast}
752
- isAllowedToDelete={allowedToDeleteFile}
753
- isAllowedToEdit={allowedToEditFile}
754
- isAllowedToMove={!isRoot || (isRoot && (folders.length > 1 || isSearching))}
755
- getParams={getParams}
756
- />
757
- ))}
758
- </S.FoldersGrid>
759
- </S.FoldersWrapper>
760
- </S.SectionWrapper>
761
- )}
762
- <S.BigSectionWrapper>
763
- <S.SectionHeader>
764
- {totalItems > 0 && <S.SectionTitle>Media</S.SectionTitle>}
765
- {totalItems > 0 && isGrid && (
766
- <BulkGridHeader
767
- showBulk={areItemsSelected(imagesIds)}
768
- checkState={checkState}
769
- selectAllItems={selectItems}
770
- totalItems={totalItems}
771
- selectItems={selectItems}
772
- bulkActions={bulkActions}
773
- />
774
- )}
775
- {!hasFolders && isRoot && !isSearching && <NewFolderButton />}
776
- </S.SectionHeader>
777
- {(totalItems > 0 || progressItems.items.length > 0) && (
778
- <S.DocumentsWrapper>{isGrid ? gridList : listTable}</S.DocumentsWrapper>
779
- )}
780
- {totalItems === 0 && progressItems.items.length == 0 && !hasFolders && (
781
- <S.EmptyStateWrapper data-testid="empty-state" margin={!isRoot}>
782
- {isSearching && <EmptyState {...emptySearchStateProps} />}
783
- {!isSearching && isRoot && <EmptyState {...emptyProps} />}
784
- </S.EmptyStateWrapper>
785
- )}
786
- </S.BigSectionWrapper>
787
- </S.FolderContent>
788
- )}
789
- </S.ContentWrapper>
790
- </S.Wrapper>
791
- {isNewOpen && (
792
- <NewFolderModal
793
- isOpen={isNewOpen}
794
- toggleModal={toggleNewModal}
795
- mainModalAction={mainNewModalAction}
796
- secondaryModalAction={secondaryNewModalAction}
797
- form={folderForm}
798
- setForm={setFolderForm}
799
- />
800
- )}
801
- <Modal isOpen={isUploadOpen} hide={toggleUploadModal} size="XL" title="Upload media">
802
- {isUploadOpen && (
803
- <ImageDragAndDrop
804
- validFormats={validFormats}
805
- folderID={currentFolderID}
806
- handleUpload={handleUpload}
807
- handleMultipleUpload={handleMultipleUpload}
808
- siteID={siteID}
809
- getParams={getParams}
810
- />
811
- )}
812
- </Modal>
813
- <Modal isOpen={isOpen} hide={handleCloseModal} size="XL" title="Image details">
814
- {isOpen && fileSelected && (
815
- <ImageModal
816
- image={fileSelected}
817
- onDelete={handleDeleteFile}
818
- items={galleryItems}
819
- setFile={handleSelectFile}
820
- activeDelete={galleryDelete && allowedToDeleteFile}
821
- setFileSelected={setFileSelected}
822
- isAllowedToEdit={allowedToEditFile}
823
- handleDownload={handleDownload}
824
- form={fileForm}
825
- setForm={setFileForm}
826
- isDirty={isDirty}
827
- resetDirty={resetDirty}
828
- getParams={getParams}
829
- />
830
- )}
831
- </Modal>
832
- {isDeleteOpen && (
833
- <DeleteFileModal
834
- isOpen={isDeleteOpen}
835
- toggleModal={toggleDeleteModal}
836
- mainModalAction={mainDeleteModalAction}
837
- secondaryModalAction={secondaryDeleteModalAction}
838
- title="these images"
839
- />
840
- )}
841
- {isMoveOpen && (
842
- <MoveItemModal
843
- isOpen={isMoveOpen}
844
- toggleModal={handleModalClose}
845
- mainModalAction={mainMoveModalAction}
846
- secondaryModalAction={secondaryMoveModalAction}
847
- folder={selectedFolder}
848
- setFolder={setSelectedFolder}
849
- />
850
- )}
851
- {isSaveOpen && (
852
- <NotSavedModal
853
- isOpen={isSaveOpen}
854
- toggleModal={toggleSaveModal}
855
- mainModalAction={mainSaveModalAction}
856
- secondaryModalAction={secondarySaveModalAction}
857
- />
858
- )}
859
- {isVisible && <Toast setIsVisible={setIsVisible} message={toastState} />}
860
- </MainWrapper>
861
- );
57
+ const {
58
+ currentFolderContent,
59
+ currentFolderID,
60
+ currentSiteInfo,
61
+ getFolderContent,
62
+ getFoldersTree,
63
+ updateCurrentFolder,
64
+ createNewFolder,
65
+ deleteFolder,
66
+ deleteImage,
67
+ moveImage,
68
+ updateDisplayMode,
69
+ updateTab,
70
+ downloadImages,
71
+ uploadImage,
72
+ breadcrumb,
73
+ isLoading,
74
+ isSaving,
75
+ displayMode,
76
+ selectedTab,
77
+ foldersTree,
78
+ isUploading,
79
+ } = props;
80
+
81
+ const initState: IImageFolder = { images: { items: [], totalItems: 0, currentPage: 1 }, folders: [] };
82
+ const { images, folders } = currentFolderContent || initState;
83
+ const { items, totalItems } = images;
84
+
85
+ const itemsPerPage = 50;
86
+ const firstPage = 1;
87
+ const lastPage = Math.ceil(totalItems / itemsPerPage);
88
+ const [page, setPage] = useState(firstPage);
89
+ const [isPanelOpen, setPanelOpen] = useState(false);
90
+ const [fileSelected, setFileSelected] = useState<IImage | null>(null);
91
+ const [selectedFolder, setSelectedFolder] = useState<number | null>(currentFolderID || null);
92
+ const imagesIds: number[] = (items && items.map((image) => image.id)) || [];
93
+ const [galleryItems, setGalleryItems] = useState<number[]>(imagesIds);
94
+ const [galleryDelete, setGalleryDelete] = useState(true);
95
+ const [progressItems, setProgressItems] = useState<IProgressState>({
96
+ tab: selectedTab,
97
+ folder: currentFolderID,
98
+ items: [],
99
+ });
100
+ const [wrapperWidth, setWrapperWidth] = useState<number>();
101
+ const [isLoadingMore, setIsLoadingMore] = useState(false);
102
+ const tableRef = useRef<HTMLDivElement>(null);
103
+ const contentRef = useRef<HTMLDivElement>(null);
104
+ const wrapperRef = useRef<HTMLDivElement>(null);
105
+ const { isOpen: isNewOpen, toggleModal: toggleNewModal } = useModal();
106
+ const { isOpen: isUploadOpen, toggleModal: toggleUploadModal } = useModal();
107
+ const { isOpen: isDeleteOpen, toggleModal: toggleDeleteModal } = useModal();
108
+ const { isOpen: isMoveOpen, toggleModal: toggleMoveModal } = useModal();
109
+ const { isOpen: isSaveOpen, toggleModal: toggleSaveModal } = useModal();
110
+ const { isOpen, toggleModal } = useModal();
111
+ const { isVisible, toggleToast, setIsVisible, state: toastState } = useToast();
112
+ const [ref] = useResizable();
113
+
114
+ const initFolderState = { name: "", folderID: currentFolderID };
115
+ const [folderForm, setFolderForm] = useState<IFolderFormState>(initFolderState);
116
+ const { setFiltersSelection, resetFilterQuery, filterValues, filterQuery } = useFilterQuery();
117
+ const { sortedListStatus, setSortedListStatus } = useSortedListStatus();
118
+ const [searchQuery, setSearchQuery] = useState<string>("");
119
+ const isSearching = searchQuery.length > 0;
120
+
121
+ const initImageState: IImageFormState = { title: "", alt: "", tags: [] };
122
+ const [fileForm, setFileForm] = useState(initImageState);
123
+ const { isDirty, resetDirty } = useIsDirty(fileForm);
124
+
125
+ const isSiteView = !!currentSiteInfo;
126
+ const isTabGlobal = selectedTab === "global";
127
+ const siteID: number | "global" = !isSiteView || isTabGlobal ? "global" : currentSiteInfo.id;
128
+ const hasFolders = !!folders?.length;
129
+ const isRoot = !breadcrumb.length;
130
+ const isGrid = displayMode === "grid";
131
+ const validFormats = ["jpeg", "jpg", "png", "svg", "gif"];
132
+
133
+ const allowedToAccessGlobalFromSite = usePermission("mediaGallery.accessToGlobalGalleryFromSite");
134
+
135
+ const allowedToAddSiteFile = usePermission("mediaGallery.addImages");
136
+ const allowedToAddGlobalFile = usePermission("global.mediaGallery.addGlobalImages");
137
+ const allowedToAddGlobalFileFromSite = false;
138
+ const allowedToAddFile = !isSiteView
139
+ ? allowedToAddGlobalFile
140
+ : isTabGlobal
141
+ ? allowedToAddGlobalFileFromSite
142
+ : allowedToAddSiteFile;
143
+
144
+ const allowedToEditSiteFile = usePermission("mediaGallery.editImages");
145
+ const allowedToEditGlobalFile = usePermission("global.mediaGallery.editGlobalImages");
146
+ const allowedToEditGlobalFileFromSite = false;
147
+ const allowedToEditFile = !isSiteView
148
+ ? allowedToEditGlobalFile
149
+ : isTabGlobal
150
+ ? allowedToEditGlobalFileFromSite
151
+ : allowedToEditSiteFile;
152
+
153
+ const allowedToDeleteSiteFile = usePermission("mediaGallery.deleteImages");
154
+ const allowedToDeleteGlobalFile = usePermission("global.mediaGallery.deleteGlobalImages");
155
+ const allowedToDeleteGlobalFileFromSite = false;
156
+
157
+ const allowedToDeleteFile = !isSiteView
158
+ ? allowedToDeleteGlobalFile
159
+ : isTabGlobal
160
+ ? allowedToDeleteGlobalFileFromSite
161
+ : allowedToDeleteSiteFile;
162
+
163
+ const getParams = useCallback(() => {
164
+ const params: IGetFolderParams = {
165
+ siteID,
166
+ folderID: currentFolderID,
167
+ search: searchQuery,
168
+ query: filterQuery,
169
+ loading: isGrid && page > 1 ? false : true,
170
+ thumbHeight: 188,
171
+ pagination: true,
172
+ page,
173
+ itemsPerPage,
174
+ infinite: isGrid && page > 1 ? true : false,
175
+ };
176
+
177
+ return params;
178
+ }, [currentFolderID, searchQuery, filterQuery, siteID, page, isGrid]);
179
+
180
+ // biome-ignore lint/correctness/useExhaustiveDependencies: TODO: fix this
181
+ useLayoutEffect(() => {
182
+ return () => {
183
+ updateCurrentFolder(null);
184
+ updateTab("site");
185
+ setPage(firstPage);
186
+ };
187
+ }, []);
188
+
189
+ // biome-ignore lint/correctness/useExhaustiveDependencies: TODO: fix this
190
+ useEffect(() => {
191
+ const handleGetContent = async () => {
192
+ const params = getParams();
193
+ await getFolderContent(params);
194
+ setIsLoadingMore(false);
195
+ };
196
+ const handleGetTree = async () => await getFoldersTree(siteID);
197
+
198
+ handleGetContent();
199
+ handleGetTree();
200
+ resetDirty();
201
+ }, [getParams, selectedTab]);
202
+
203
+ // biome-ignore lint/correctness/useExhaustiveDependencies: TODO: fix this
204
+ useEffect(() => {
205
+ const imagesIds: number[] = items?.map((image) => image.id) || [];
206
+ setGalleryItems(imagesIds);
207
+ }, [images]);
208
+
209
+ // biome-ignore lint/correctness/useExhaustiveDependencies: TODO: fix this
210
+ useEffect(() => {
211
+ if (!foldersTree.length && isPanelOpen) {
212
+ setPanelOpen(false);
213
+ }
214
+ }, [foldersTree]);
215
+
216
+ // biome-ignore lint/correctness/useExhaustiveDependencies: TODO: fix this
217
+ useEffect(() => {
218
+ const handleResize = () => {
219
+ if (wrapperRef.current) {
220
+ setWrapperWidth(wrapperRef.current.offsetWidth);
221
+ }
222
+ };
223
+ handleResize();
224
+
225
+ window.addEventListener("resize", handleResize);
226
+ return () => window.removeEventListener("resize", handleResize);
227
+ }, [wrapperRef.current]);
228
+
229
+ const onScroll = () => {
230
+ if (contentRef.current && isGrid) {
231
+ const { scrollTop, scrollHeight, clientHeight } = contentRef.current;
232
+ if (
233
+ scrollTop + clientHeight + 100 >= scrollHeight &&
234
+ items.length < totalItems &&
235
+ page < lastPage &&
236
+ !isLoadingMore
237
+ ) {
238
+ setIsLoadingMore(true);
239
+ setPage((currentPage) => currentPage + 1);
240
+ }
241
+ }
242
+ };
243
+
244
+ const {
245
+ resetBulkSelection,
246
+ selectedItems,
247
+ isSelected,
248
+ areItemsSelected,
249
+ checkState,
250
+ addToBulkSelection,
251
+ selectAllItems,
252
+ setHoverCheck,
253
+ } = useBulkSelection(imagesIds);
254
+
255
+ const handleSelectedTab = (tab: "site" | "global") => {
256
+ if (tab !== selectedTab) {
257
+ setSearchQuery("");
258
+ updateCurrentFolder(null);
259
+ updateTab(tab);
260
+ setPage(firstPage);
261
+ }
262
+ };
263
+
264
+ const handleNewFolder = () => {
265
+ setFolderForm(initFolderState);
266
+ !isNewOpen && toggleNewModal();
267
+ };
268
+
269
+ const changeDisplayMode = (mode: "grid" | "list") => updateDisplayMode(mode);
270
+
271
+ const selectItems = () => (checkState.isAllSelected ? resetBulkSelection() : selectAllItems());
272
+
273
+ const handleBackClick = () => {
274
+ const parentID = breadcrumb.length >= 2 ? breadcrumb[breadcrumb.length - 2].id : null;
275
+ resetBulkSelection();
276
+ setPage(firstPage);
277
+ updateCurrentFolder(parentID);
278
+ };
279
+
280
+ const togglePanel = () => setPanelOpen(!isPanelOpen);
281
+
282
+ const handleCreateNewFolder = async () => {
283
+ const siteID: number | null = !isSiteView || isTabGlobal ? null : currentSiteInfo.id;
284
+ const params = getParams();
285
+ const isCreated = await createNewFolder(
286
+ {
287
+ site: siteID,
288
+ folderName: folderForm.name,
289
+ parentId: folderForm.folderID,
290
+ },
291
+ params,
292
+ );
293
+ if (isCreated) {
294
+ isNewOpen && toggleNewModal();
295
+ toggleToast("1 new folder created");
296
+ }
297
+ };
298
+
299
+ const handleDeleteFolder = async (folder: IFolder) => {
300
+ const params = getParams();
301
+ const isDeleted = await deleteFolder(folder, params);
302
+ if (isDeleted) {
303
+ toggleToast("1 folder deleted");
304
+ }
305
+ };
306
+
307
+ const handleClick = (file: IImage) => {
308
+ setFileSelected(file);
309
+ toggleModal();
310
+ };
311
+
312
+ const handleUpload = async (files: IImage[]) => {
313
+ setFileSelected(files[0]);
314
+ isUploadOpen && toggleUploadModal();
315
+ toggleModal();
316
+ const params = getParams();
317
+ await getFolderContent(params);
318
+ };
319
+
320
+ const uploadMultipleFiles = async (files: File[]) => {
321
+ try {
322
+ let index = 0;
323
+ while (files.length) {
324
+ const handleProgress = (progress: number) => {
325
+ setProgressItems((prevState) => ({
326
+ ...prevState,
327
+ items: [...prevState.items.slice(0, index), progress, ...prevState.items.slice(index + 1)],
328
+ }));
329
+ };
330
+
331
+ const file = files.shift();
332
+ file && (await uploadImage(file, siteID || "global", handleProgress, true, currentFolderID));
333
+ index = index + 1;
334
+ }
335
+ } catch (error) {
336
+ console.log(error);
337
+ }
338
+ };
339
+
340
+ const handleMultipleUpload = async (files: File[]) => {
341
+ isUploadOpen && toggleUploadModal();
342
+
343
+ const initialProgress = files.map(() => 0);
344
+ setProgressItems({ tab: selectedTab, folder: currentFolderID, items: initialProgress });
345
+
346
+ await uploadMultipleFiles(files);
347
+
348
+ setProgressItems((prevState) => ({ ...prevState, items: [] }));
349
+
350
+ updateTab(selectedTab);
351
+ updateCurrentFolder(currentFolderID);
352
+
353
+ const params = getParams();
354
+ await getFolderContent(params);
355
+ };
356
+
357
+ const handleCloseModal = () => {
358
+ if (isDirty) {
359
+ toggleSaveModal();
360
+ } else {
361
+ resetFileModal();
362
+ }
363
+ };
364
+
365
+ const resetFileModal = () => {
366
+ setFileSelected(null);
367
+ setGalleryItems(imagesIds);
368
+ setGalleryDelete(true);
369
+ resetDirty();
370
+ toggleModal();
371
+ };
372
+
373
+ const handleDeleteFile = async (imageID: number) => {
374
+ const params = getParams();
375
+ const resetedParams = { ...params, page: firstPage, infinite: false, loading: true };
376
+ const isDeleted = await deleteImage(imageID, resetedParams);
377
+ if (isDeleted) {
378
+ toggleToast("1 Image deleted");
379
+ isOpen && handleCloseModal();
380
+ }
381
+ };
382
+
383
+ const handleBulkDeleteFile = async () => {
384
+ const params = getParams();
385
+ const resetedParams = { ...params, page: firstPage, infinite: false, loading: true };
386
+ const isDeleted = await deleteImage(selectedItems.all, resetedParams);
387
+ if (isDeleted) {
388
+ toggleToast(`${selectedItems.all.length} Image${selectedItems.all.length > 1 ? "s" : ""} deleted`);
389
+ resetBulkSelection();
390
+ }
391
+ toggleDeleteModal();
392
+ };
393
+
394
+ const handleMoveImage = async (imageID: number, folderID: number | "root") => {
395
+ const params = getParams();
396
+ const resetedParams = { ...params, page: firstPage, infinite: false, loading: true };
397
+ const isMoved = await moveImage(imageID, folderID, resetedParams);
398
+ if (isMoved) {
399
+ toggleToast("1 Image moved to a folder");
400
+ }
401
+ };
402
+
403
+ const handleBulkMoveFile = async () => {
404
+ const params = getParams();
405
+ const resetedParams = { ...params, page: firstPage, infinite: false, loading: true };
406
+ const isMoved = await moveImage(selectedItems.all, selectedFolder || "root", resetedParams);
407
+ if (isMoved) {
408
+ toggleMoveModal();
409
+ toggleToast(`${selectedItems.all.length} Image${selectedItems.all.length > 1 ? "s" : ""} moved to a folder`);
410
+ setSelectedFolder(0);
411
+ resetBulkSelection();
412
+ }
413
+ };
414
+
415
+ const handleBulkEditFile = () => {
416
+ const currentFile = items.find((file: IImage) => file.id === selectedItems.all[0]);
417
+ if (currentFile) {
418
+ setGalleryItems(selectedItems.all);
419
+ setFileSelected(currentFile);
420
+ setGalleryDelete(false);
421
+ toggleModal();
422
+ }
423
+ };
424
+
425
+ const handleModalClose = () => {
426
+ setSelectedFolder(0);
427
+ isMoveOpen && toggleMoveModal();
428
+ };
429
+
430
+ const handleSelectFile = (id: number) => {
431
+ const currentFile = items.find((file: IImage) => file.id === id);
432
+ if (currentFile) {
433
+ setFileSelected(currentFile);
434
+ }
435
+ };
436
+
437
+ const handleDownloadBulk = async () => {
438
+ const fileName = isSiteView ? `${currentSiteInfo.name}-images.zip` : "global-images.zip";
439
+ await downloadImages(selectedItems.all, true, fileName);
440
+ resetBulkSelection();
441
+ };
442
+
443
+ const handleUpdateCurrentFolder = (folderID: number | null) => {
444
+ setSearchQuery("");
445
+ resetBulkSelection();
446
+ setPage(firstPage);
447
+ updateCurrentFolder(folderID);
448
+ };
449
+
450
+ const handleDownload = async (imageID: number, fileName: string) => await downloadImages(imageID, false, fileName);
451
+
452
+ const sortItems = (orderPointer: IQueryValue[], isAscending: boolean) => {
453
+ setPage(firstPage);
454
+ const sortedState = getSortedListStatus(orderPointer[0].value.toString(), isAscending);
455
+ setSortedListStatus(sortedState);
456
+ setFiltersSelection("order", orderPointer, isAscending);
457
+ };
458
+
459
+ const filterItems = (filterPointer: string, filtersSelected: IQueryValue[]) => {
460
+ setPage(firstPage);
461
+ setFiltersSelection(filterPointer, filtersSelected);
462
+ };
463
+
464
+ const handleSearch = (query: string) => {
465
+ setSearchQuery(query);
466
+ setPage(firstPage);
467
+ };
468
+
469
+ let bulkActions: IBulkAction[] = [];
470
+
471
+ if (allowedToEditFile) {
472
+ bulkActions = [
473
+ {
474
+ icon: "edit",
475
+ text: "edit",
476
+ action: handleBulkEditFile,
477
+ },
478
+ {
479
+ icon: "change",
480
+ text: "Move to",
481
+ action: toggleMoveModal,
482
+ },
483
+ ];
484
+ }
485
+
486
+ bulkActions = [
487
+ ...bulkActions,
488
+ {
489
+ icon: "download",
490
+ text: "download",
491
+ action: handleDownloadBulk,
492
+ },
493
+ ];
494
+
495
+ if (allowedToDeleteFile) {
496
+ bulkActions = [
497
+ ...bulkActions,
498
+ {
499
+ icon: "delete",
500
+ text: "delete",
501
+ action: toggleDeleteModal,
502
+ },
503
+ ];
504
+ }
505
+
506
+ const Header = (
507
+ <BulkListHeader
508
+ showBulk={areItemsSelected(imagesIds)}
509
+ checkState={checkState}
510
+ selectAllItems={selectItems}
511
+ totalItems={totalItems}
512
+ selectItems={selectItems}
513
+ bulkActions={bulkActions}
514
+ setHoverCheck={setHoverCheck}
515
+ />
516
+ );
517
+
518
+ const isCurrentUploadingFolder = progressItems.tab === selectedTab && progressItems.folder === currentFolderID;
519
+
520
+ const gridList = (
521
+ <S.GridWrapper>
522
+ {isCurrentUploadingFolder &&
523
+ progressItems.items.map((progress: number, index: number) => (
524
+ <UploadItem uploadPercentage={progress} grid={true} key={index} />
525
+ ))}
526
+ {items &&
527
+ items.map((image: IImage) => {
528
+ const isItemSelected = isSelected(image.id);
529
+ return (
530
+ <GridItem
531
+ image={image}
532
+ isSelected={isItemSelected}
533
+ onChange={addToBulkSelection}
534
+ key={`${image.name}${image.id}`}
535
+ onClick={handleClick}
536
+ onDelete={handleDeleteFile}
537
+ onMove={handleMoveImage}
538
+ currentFolderID={currentFolderID}
539
+ isAllowedToDelete={allowedToDeleteFile}
540
+ isAllowedToEdit={allowedToEditFile}
541
+ isAllowedToMove={!isRoot || (isRoot && (folders.length > 0 || isSearching))}
542
+ />
543
+ );
544
+ })}
545
+ </S.GridWrapper>
546
+ );
547
+
548
+ const pagination = {
549
+ setPage,
550
+ itemsPerPage,
551
+ totalItems,
552
+ currPage: page,
553
+ };
554
+
555
+ const listTable = (
556
+ <TableList
557
+ tableHeader={Header}
558
+ pagination={pagination}
559
+ hasFixedHeader={true}
560
+ tableRef={tableRef}
561
+ className="no-padding"
562
+ >
563
+ <>
564
+ {isCurrentUploadingFolder &&
565
+ progressItems.items.map((progress: number, index: number) => (
566
+ <UploadItem uploadPercentage={progress} grid={false} key={index} />
567
+ ))}
568
+ {items &&
569
+ items.map((image: IImage) => {
570
+ const isItemSelected = isSelected(image.id);
571
+ return (
572
+ <ListItem
573
+ image={image}
574
+ isSelected={isItemSelected}
575
+ onChange={addToBulkSelection}
576
+ key={`${image.name}${image.id}`}
577
+ onClick={handleClick}
578
+ onDelete={handleDeleteFile}
579
+ onMove={handleMoveImage}
580
+ currentFolderID={currentFolderID}
581
+ isAllowedToDelete={allowedToDeleteFile}
582
+ isAllowedToEdit={allowedToEditFile}
583
+ isAllowedToMove={!isRoot || (isRoot && (folders.length > 0 || isSearching))}
584
+ hoverCheck={checkState.hoverCheck}
585
+ />
586
+ );
587
+ })}
588
+ </>
589
+ </TableList>
590
+ );
591
+
592
+ const rightButtonProps = allowedToAddFile
593
+ ? {
594
+ label: "Upload",
595
+ action: () => toggleUploadModal(),
596
+ disabled: isUploading,
597
+ }
598
+ : undefined;
599
+
600
+ const emptyProps = {
601
+ message: allowedToAddFile ? (
602
+ <>
603
+ To start using images in your site, upload as many
604
+ <br />
605
+ images as you need
606
+ </>
607
+ ) : (
608
+ ""
609
+ ),
610
+ button: allowedToAddFile ? "Upload image" : undefined,
611
+ action: () => toggleUploadModal(),
612
+ };
613
+
614
+ const emptySearchStateProps = {
615
+ icon: "search",
616
+ title: "Oh! No Results Found",
617
+ message: "We couldn’t find what you are looking for. Please, try another search.",
618
+ };
619
+
620
+ const mainNewModalAction = {
621
+ title: isSaving ? "Saving..." : "Create New Folder",
622
+ onClick: () => handleCreateNewFolder(),
623
+ disabled: folderForm.name.trim().length === 0 || isSaving,
624
+ };
625
+
626
+ const secondaryNewModalAction = { title: "Cancel", onClick: toggleNewModal };
627
+
628
+ const mainDeleteModalAction = {
629
+ title: "Delete images",
630
+ onClick: () => handleBulkDeleteFile(),
631
+ };
632
+
633
+ const secondaryDeleteModalAction = { title: "Cancel", onClick: toggleDeleteModal };
634
+
635
+ const mainMoveModalAction = {
636
+ title: "Move",
637
+ onClick: () => handleBulkMoveFile(),
638
+ };
639
+
640
+ const secondaryMoveModalAction = { title: "Cancel", onClick: handleModalClose };
641
+
642
+ const handleMainAction = () => {
643
+ toggleSaveModal();
644
+ resetFileModal();
645
+ };
646
+
647
+ const mainSaveModalAction = {
648
+ title: "Yes, discard changes",
649
+ onClick: () => handleMainAction(),
650
+ };
651
+
652
+ const secondarySaveModalAction = { title: "Cancel", onClick: toggleSaveModal };
653
+
654
+ const foldersIcon = isPanelOpen ? <Icon name="closePanel" size="24" /> : <Icon name="openPanel" size="24" />;
655
+
656
+ const tabs = ["site", "global"];
657
+
658
+ const NewFolderButton = () =>
659
+ (isSiteView && isTabGlobal) || !allowedToAddFile ? (
660
+ <></>
661
+ ) : (
662
+ <S.ButtonWrapper>
663
+ <Button type="button" onClick={handleNewFolder} buttonStyle="line" icon="NewFolder">
664
+ New Folder
665
+ </Button>
666
+ </S.ButtonWrapper>
667
+ );
668
+
669
+ const filters = (
670
+ <S.Filters>
671
+ <Orientation filterItems={filterItems} />
672
+ <Type filterItems={filterItems} />
673
+ <SortBy sortItems={sortItems} sortedState={sortedListStatus} />
674
+ <UsageFilter filterItems={filterItems} value={filterValues["usage"]} />
675
+ </S.Filters>
676
+ );
677
+
678
+ return (
679
+ <MainWrapper backLink={false} title="Media Gallery" rightButton={rightButtonProps}>
680
+ <S.Wrapper ref={wrapperRef}>
681
+ <S.FolderPanel
682
+ isOpen={isPanelOpen}
683
+ ref={ref}
684
+ style={{ width: isPanelOpen ? "240px" : "0" }}
685
+ maxWidth={wrapperWidth}
686
+ >
687
+ <S.FolderPanelContent>
688
+ <FolderTree
689
+ folderID={currentFolderID || 0}
690
+ onClick={handleUpdateCurrentFolder}
691
+ title="Folders"
692
+ createAction={allowedToAddFile ? handleNewFolder : undefined}
693
+ />
694
+ </S.FolderPanelContent>
695
+ <S.ResizeHandle className="resizer" />
696
+ </S.FolderPanel>
697
+ <S.ContentWrapper ref={contentRef} onScroll={onScroll}>
698
+ <ErrorToast />
699
+ <S.FiltersBar isSite={isSiteView && allowedToAccessGlobalFromSite}>
700
+ {isSiteView && allowedToAccessGlobalFromSite && (
701
+ <S.TabsWrapper>
702
+ <Tabs tabs={tabs} active={selectedTab} setSelectedTab={handleSelectedTab} noMargins />
703
+ </S.TabsWrapper>
704
+ )}
705
+ {!isSiteView && filters}
706
+ <S.DisplayModeWrapper>
707
+ <IconAction icon="Grid2" onClick={() => changeDisplayMode("grid")} active={displayMode === "grid"} />
708
+ <IconAction icon="BulletList" onClick={() => changeDisplayMode("list")} active={displayMode === "list"} />
709
+ </S.DisplayModeWrapper>
710
+ </S.FiltersBar>
711
+ <S.FiltersBar isSite={false}>
712
+ {isSiteView && filters}
713
+ <S.SearchWrapper>
714
+ <SearchField onChange={handleSearch} placeholder="Search" value={searchQuery} focus={false} />
715
+ </S.SearchWrapper>
716
+ </S.FiltersBar>
717
+ {isLoading ? (
718
+ <Loading />
719
+ ) : (
720
+ <S.FolderContent>
721
+ <S.SearchTags>
722
+ <SearchTagsBar query={searchQuery} setQuery={handleSearch} />
723
+ <FilterTagsBar
724
+ filters={filterValues}
725
+ setFilters={setFiltersSelection}
726
+ labels={{ orientation: "Orientation", format: "Media type", usage: "Usage" }}
727
+ resetFilters={resetFilterQuery}
728
+ />
729
+ </S.SearchTags>
730
+ {!isRoot && <Breadcrumb breadcrumb={breadcrumb} onClick={handleUpdateCurrentFolder} />}
731
+ {(hasFolders || !isRoot) && (
732
+ <S.SectionWrapper>
733
+ <S.SectionHeader>
734
+ <S.SectionTitle>
735
+ <div>Folders</div>
736
+ <S.FoldersIconWrapper onClick={togglePanel}>
737
+ <Tooltip content="Open folder panel">{foldersIcon}</Tooltip>
738
+ </S.FoldersIconWrapper>
739
+ </S.SectionTitle>
740
+ <NewFolderButton />
741
+ </S.SectionHeader>
742
+ <S.FoldersWrapper>
743
+ {!isRoot && <BackFolder onClick={handleBackClick} />}
744
+ <S.FoldersGrid>
745
+ {folders.map((folder: IFolder) => (
746
+ <FolderItem
747
+ folder={folder}
748
+ onClick={handleUpdateCurrentFolder}
749
+ onDelete={handleDeleteFolder}
750
+ key={`${folder.folderName}${folder.id}`}
751
+ toggleToast={toggleToast}
752
+ isAllowedToDelete={allowedToDeleteFile}
753
+ isAllowedToEdit={allowedToEditFile}
754
+ isAllowedToMove={!isRoot || (isRoot && (folders.length > 1 || isSearching))}
755
+ getParams={getParams}
756
+ />
757
+ ))}
758
+ </S.FoldersGrid>
759
+ </S.FoldersWrapper>
760
+ </S.SectionWrapper>
761
+ )}
762
+ <S.BigSectionWrapper>
763
+ <S.SectionHeader>
764
+ {totalItems > 0 && <S.SectionTitle>Media</S.SectionTitle>}
765
+ {totalItems > 0 && isGrid && (
766
+ <BulkGridHeader
767
+ showBulk={areItemsSelected(imagesIds)}
768
+ checkState={checkState}
769
+ selectAllItems={selectItems}
770
+ totalItems={totalItems}
771
+ selectItems={selectItems}
772
+ bulkActions={bulkActions}
773
+ />
774
+ )}
775
+ {!hasFolders && isRoot && !isSearching && <NewFolderButton />}
776
+ </S.SectionHeader>
777
+ {(totalItems > 0 || progressItems.items.length > 0) && (
778
+ <S.DocumentsWrapper>{isGrid ? gridList : listTable}</S.DocumentsWrapper>
779
+ )}
780
+ {totalItems === 0 && progressItems.items.length == 0 && !hasFolders && (
781
+ <S.EmptyStateWrapper data-testid="empty-state" margin={!isRoot}>
782
+ {isSearching && <EmptyState {...emptySearchStateProps} />}
783
+ {!isSearching && isRoot && <EmptyState {...emptyProps} />}
784
+ </S.EmptyStateWrapper>
785
+ )}
786
+ </S.BigSectionWrapper>
787
+ </S.FolderContent>
788
+ )}
789
+ </S.ContentWrapper>
790
+ </S.Wrapper>
791
+ {isNewOpen && (
792
+ <NewFolderModal
793
+ isOpen={isNewOpen}
794
+ toggleModal={toggleNewModal}
795
+ mainModalAction={mainNewModalAction}
796
+ secondaryModalAction={secondaryNewModalAction}
797
+ form={folderForm}
798
+ setForm={setFolderForm}
799
+ />
800
+ )}
801
+ <Modal isOpen={isUploadOpen} hide={toggleUploadModal} size="XL" title="Upload media">
802
+ {isUploadOpen && (
803
+ <ImageDragAndDrop
804
+ validFormats={validFormats}
805
+ folderID={currentFolderID}
806
+ handleUpload={handleUpload}
807
+ handleMultipleUpload={handleMultipleUpload}
808
+ siteID={siteID}
809
+ getParams={getParams}
810
+ />
811
+ )}
812
+ </Modal>
813
+ <Modal isOpen={isOpen} hide={handleCloseModal} size="XL" title="Image details">
814
+ {isOpen && fileSelected && (
815
+ <ImageModal
816
+ image={fileSelected}
817
+ onDelete={handleDeleteFile}
818
+ items={galleryItems}
819
+ setFile={handleSelectFile}
820
+ activeDelete={galleryDelete && allowedToDeleteFile}
821
+ setFileSelected={setFileSelected}
822
+ isAllowedToEdit={allowedToEditFile}
823
+ handleDownload={handleDownload}
824
+ form={fileForm}
825
+ setForm={setFileForm}
826
+ isDirty={isDirty}
827
+ resetDirty={resetDirty}
828
+ getParams={getParams}
829
+ />
830
+ )}
831
+ </Modal>
832
+ {isDeleteOpen && (
833
+ <DeleteFileModal
834
+ isOpen={isDeleteOpen}
835
+ toggleModal={toggleDeleteModal}
836
+ mainModalAction={mainDeleteModalAction}
837
+ secondaryModalAction={secondaryDeleteModalAction}
838
+ title="these images"
839
+ />
840
+ )}
841
+ {isMoveOpen && (
842
+ <MoveItemModal
843
+ isOpen={isMoveOpen}
844
+ toggleModal={handleModalClose}
845
+ mainModalAction={mainMoveModalAction}
846
+ secondaryModalAction={secondaryMoveModalAction}
847
+ folder={selectedFolder}
848
+ setFolder={setSelectedFolder}
849
+ />
850
+ )}
851
+ {isSaveOpen && (
852
+ <NotSavedModal
853
+ isOpen={isSaveOpen}
854
+ toggleModal={toggleSaveModal}
855
+ mainModalAction={mainSaveModalAction}
856
+ secondaryModalAction={secondarySaveModalAction}
857
+ />
858
+ )}
859
+ {isVisible && <Toast setIsVisible={setIsVisible} message={toastState} />}
860
+ </MainWrapper>
861
+ );
862
862
  };
863
863
 
864
864
  interface IProps {
865
- isLoading: boolean;
866
- isSaving: boolean;
867
- currentFolderContent: IImageFolder | null;
868
- currentFolderID: number | null;
869
- currentSiteInfo: ISite | null;
870
- breadcrumb: IFolderTree[];
871
- displayMode: "grid" | "list";
872
- selectedTab: "site" | "global";
873
- foldersTree: IFolderTree[];
874
- isUploading: boolean;
875
- getFolderContent(params: IGetFolderParams): Promise<void>;
876
- getFoldersTree(siteID: number | "global"): Promise<void>;
877
- updateCurrentFolder(folderID: number | null): void;
878
- createNewFolder(
879
- data: { folderName: string; site: number | null; parentId: number | null },
880
- params: IGetFolderParams
881
- ): Promise<boolean>;
882
- deleteFolder(folder: IFolder, params: IGetFolderParams): Promise<boolean>;
883
- deleteImage(imageID: number | number[], params: IGetFolderParams): Promise<boolean>;
884
- moveImage(imageID: number | number[], folderID: number | "root", params: IGetFolderParams): Promise<boolean>;
885
- updateDisplayMode(displayMode: "grid" | "list"): Promise<void>;
886
- updateTab(tab: "site" | "global"): Promise<void>;
887
- downloadImages(imageID: number | number[], zip: boolean, fileName?: string): Promise<void>;
888
- uploadImage: (
889
- imageFiles: File | File[],
890
- site: number | string,
891
- setProgress?: (progress: number) => void,
892
- visible?: boolean,
893
- folderID?: number | null
894
- ) => Promise<IImage | null>;
865
+ isLoading: boolean;
866
+ isSaving: boolean;
867
+ currentFolderContent: IImageFolder | null;
868
+ currentFolderID: number | null;
869
+ currentSiteInfo: ISite | null;
870
+ breadcrumb: IFolderTree[];
871
+ displayMode: "grid" | "list";
872
+ selectedTab: "site" | "global";
873
+ foldersTree: IFolderTree[];
874
+ isUploading: boolean;
875
+ getFolderContent(params: IGetFolderParams): Promise<void>;
876
+ getFoldersTree(siteID: number | "global"): Promise<void>;
877
+ updateCurrentFolder(folderID: number | null): void;
878
+ createNewFolder(
879
+ data: { folderName: string; site: number | null; parentId: number | null },
880
+ params: IGetFolderParams,
881
+ ): Promise<boolean>;
882
+ deleteFolder(folder: IFolder, params: IGetFolderParams): Promise<boolean>;
883
+ deleteImage(imageID: number | number[], params: IGetFolderParams): Promise<boolean>;
884
+ moveImage(imageID: number | number[], folderID: number | "root", params: IGetFolderParams): Promise<boolean>;
885
+ updateDisplayMode(displayMode: "grid" | "list"): Promise<void>;
886
+ updateTab(tab: "site" | "global"): Promise<void>;
887
+ downloadImages(imageID: number | number[], zip: boolean, fileName?: string): Promise<void>;
888
+ uploadImage: (
889
+ imageFiles: File | File[],
890
+ site: number | string,
891
+ setProgress?: (progress: number) => void,
892
+ visible?: boolean,
893
+ folderID?: number | null,
894
+ ) => Promise<IImage | null>;
895
895
  }
896
896
 
897
897
  export interface IFolderFormState {
898
- name: string;
899
- folderID: number | null;
898
+ name: string;
899
+ folderID: number | null;
900
900
  }
901
901
 
902
902
  export interface IImageFormState {
903
- title: string;
904
- alt: string;
905
- tags: string[];
903
+ title: string;
904
+ alt: string;
905
+ tags: string[];
906
906
  }
907
907
 
908
908
  interface IProgressState {
909
- tab: "global" | "site";
910
- folder: number | null;
911
- items: number[];
909
+ tab: "global" | "site";
910
+ folder: number | null;
911
+ items: number[];
912
912
  }
913
913
 
914
914
  const mapDispatchToProps = {
915
- getSiteImages: galleryActions.getSiteImages,
916
- getFolderContent: galleryActions.getFolderContent,
917
- getFoldersTree: galleryActions.getFoldersTree,
918
- updateCurrentFolder: galleryActions.updateCurrentFolder,
919
- createNewFolder: galleryActions.createNewFolder,
920
- deleteFolder: galleryActions.deleteFolder,
921
- deleteImage: galleryActions.deleteImage,
922
- moveImage: galleryActions.moveImage,
923
- updateDisplayMode: galleryActions.updateDisplayMode,
924
- updateTab: galleryActions.updateTab,
925
- downloadImages: galleryActions.downloadImages,
926
- uploadImage: galleryActions.uploadImage,
915
+ getSiteImages: galleryActions.getSiteImages,
916
+ getFolderContent: galleryActions.getFolderContent,
917
+ getFoldersTree: galleryActions.getFoldersTree,
918
+ updateCurrentFolder: galleryActions.updateCurrentFolder,
919
+ createNewFolder: galleryActions.createNewFolder,
920
+ deleteFolder: galleryActions.deleteFolder,
921
+ deleteImage: galleryActions.deleteImage,
922
+ moveImage: galleryActions.moveImage,
923
+ updateDisplayMode: galleryActions.updateDisplayMode,
924
+ updateTab: galleryActions.updateTab,
925
+ downloadImages: galleryActions.downloadImages,
926
+ uploadImage: galleryActions.uploadImage,
927
927
  };
928
928
 
929
929
  const mapStateToProps = (state: IRootState) => ({
930
- isLoading: state.app.isLoading,
931
- isSaving: state.app.isSaving,
932
- currentFolderContent: state.gallery.currentFolderContent,
933
- currentFolderID: state.gallery.currentFolderID,
934
- breadcrumb: state.gallery.breadcrumb,
935
- currentSiteInfo: state.sites.currentSiteInfo,
936
- displayMode: state.gallery.displayMode,
937
- selectedTab: state.gallery.selectedTab,
938
- foldersTree: state.gallery.foldersTree,
939
- isUploading: state.gallery.isUploading,
930
+ isLoading: state.app.isLoading,
931
+ isSaving: state.app.isSaving,
932
+ currentFolderContent: state.gallery.currentFolderContent,
933
+ currentFolderID: state.gallery.currentFolderID,
934
+ breadcrumb: state.gallery.breadcrumb,
935
+ currentSiteInfo: state.sites.currentSiteInfo,
936
+ displayMode: state.gallery.displayMode,
937
+ selectedTab: state.gallery.selectedTab,
938
+ foldersTree: state.gallery.foldersTree,
939
+ isUploading: state.gallery.isUploading,
940
940
  });
941
941
 
942
942
  export default connect(mapStateToProps, mapDispatchToProps)(MediaGallery);