@payloadcms/ui 3.0.0-alpha.0 → 3.0.0-alpha.2

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 (419) hide show
  1. package/dist/@types/assets.d.js +3 -0
  2. package/dist/config.js +13 -0
  3. package/dist/elements/ArrayAction/index.js +120 -0
  4. package/dist/elements/ArrayAction/types.js +6 -0
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +207 -0
  7. package/dist/elements/Autosave/types.js +6 -0
  8. package/dist/elements/Banner/index.js +52 -0
  9. package/dist/elements/Banner/types.js +6 -0
  10. package/dist/elements/Button/index.js +166 -0
  11. package/dist/elements/Button/types.js +6 -0
  12. package/dist/elements/Card/index.js +46 -0
  13. package/dist/elements/Card/types.js +6 -0
  14. package/dist/elements/CodeEditor/CodeEditor.js +53 -0
  15. package/dist/elements/CodeEditor/index.js +68 -0
  16. package/dist/elements/CodeEditor/types.js +6 -0
  17. package/dist/elements/Collapsible/index.js +128 -0
  18. package/dist/elements/Collapsible/provider.js +90 -0
  19. package/dist/elements/Collapsible/types.js +6 -0
  20. package/dist/elements/ColumnSelector/index.js +109 -0
  21. package/dist/elements/ColumnSelector/types.js +6 -0
  22. package/dist/elements/CopyToClipboard/index.js +98 -0
  23. package/dist/elements/CopyToClipboard/types.js +6 -0
  24. package/dist/elements/DatePicker/DatePicker.js +147 -0
  25. package/dist/elements/DatePicker/index.js +63 -0
  26. package/dist/elements/DatePicker/types.js +6 -0
  27. package/dist/elements/DeleteDocument/index.js +178 -0
  28. package/dist/elements/DeleteDocument/types.js +6 -0
  29. package/dist/elements/DeleteMany/index.js +176 -0
  30. package/dist/elements/DeleteMany/types.js +6 -0
  31. package/dist/elements/DocumentControls/index.d.ts +2 -2
  32. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  33. package/dist/elements/DocumentControls/index.js +159 -0
  34. package/dist/elements/DocumentDrawer/DrawerContent.js +219 -0
  35. package/dist/elements/DocumentDrawer/index.js +185 -0
  36. package/dist/elements/DocumentDrawer/types.js +6 -0
  37. package/dist/elements/DocumentFields/index.js +55 -0
  38. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +23 -0
  39. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +42 -0
  40. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +105 -0
  41. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +48 -0
  42. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +24 -0
  43. package/dist/elements/DocumentHeader/Tabs/index.js +84 -0
  44. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +27 -0
  45. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +75 -0
  46. package/dist/elements/DocumentHeader/index.js +81 -0
  47. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +82 -0
  48. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +6 -0
  49. package/dist/elements/DraggableSortable/index.js +96 -0
  50. package/dist/elements/DraggableSortable/types.js +6 -0
  51. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +32 -0
  52. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +6 -0
  53. package/dist/elements/Drawer/index.js +156 -0
  54. package/dist/elements/Drawer/types.js +6 -0
  55. package/dist/elements/Drawer/useDrawerSlug.js +23 -0
  56. package/dist/elements/Dropzone/index.js +117 -0
  57. package/dist/elements/DuplicateDocument/index.js +217 -0
  58. package/dist/elements/DuplicateDocument/types.js +6 -0
  59. package/dist/elements/EditMany/index.js +274 -0
  60. package/dist/elements/EditMany/types.js +6 -0
  61. package/dist/elements/EditUpload/index.js +390 -0
  62. package/dist/elements/ErrorPill/index.js +37 -0
  63. package/dist/elements/ErrorPill/types.js +6 -0
  64. package/dist/elements/FieldSelect/index.js +138 -0
  65. package/dist/elements/FileDetails/FileMeta/index.js +96 -0
  66. package/dist/elements/FileDetails/FileMeta/types.js +6 -0
  67. package/dist/elements/FileDetails/index.js +59 -0
  68. package/dist/elements/FileDetails/types.js +6 -0
  69. package/dist/elements/GenerateConfirmation/index.js +72 -0
  70. package/dist/elements/GenerateConfirmation/types.js +6 -0
  71. package/dist/elements/GetFilterOptions/index.js +57 -0
  72. package/dist/elements/Gutter/index.js +72 -0
  73. package/dist/elements/Hamburger/index.js +54 -0
  74. package/dist/elements/Header/index.d.ts.map +1 -1
  75. package/dist/elements/Header/index.js +140 -0
  76. package/dist/elements/HydrateClientUser/index.js +28 -0
  77. package/dist/elements/IDLabel/index.js +28 -0
  78. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +21 -0
  79. package/dist/elements/ListControls/index.js +149 -0
  80. package/dist/elements/ListControls/types.js +6 -0
  81. package/dist/elements/ListDrawer/DrawerContent.js +315 -0
  82. package/dist/elements/ListDrawer/index.js +198 -0
  83. package/dist/elements/ListDrawer/types.js +6 -0
  84. package/dist/elements/ListSelection/index.js +83 -0
  85. package/dist/elements/Loading/index.js +103 -0
  86. package/dist/elements/LoadingOverlay/index.js +130 -0
  87. package/dist/elements/LoadingOverlay/reducer.js +49 -0
  88. package/dist/elements/LoadingOverlay/types.js +6 -0
  89. package/dist/elements/Localizer/LocalizerLabel/index.js +43 -0
  90. package/dist/elements/Localizer/index.js +121 -0
  91. package/dist/elements/Logout/index.d.ts.map +1 -1
  92. package/dist/elements/Logout/index.js +49 -0
  93. package/dist/elements/Nav/NavHamburger/index.js +34 -0
  94. package/dist/elements/Nav/NavToggler/index.js +53 -0
  95. package/dist/elements/Nav/NavWrapper/index.js +34 -0
  96. package/dist/elements/Nav/context.js +150 -0
  97. package/dist/elements/Nav/index.d.ts.map +1 -1
  98. package/dist/elements/Nav/index.js +106 -0
  99. package/dist/elements/NavGroup/index.js +129 -0
  100. package/dist/elements/Pagination/ClickableArrow/index.js +36 -0
  101. package/dist/elements/Pagination/ClickableArrow/types.js +6 -0
  102. package/dist/elements/Pagination/Page/index.js +33 -0
  103. package/dist/elements/Pagination/Page/types.js +6 -0
  104. package/dist/elements/Pagination/Separator/index.js +22 -0
  105. package/dist/elements/Pagination/index.js +126 -0
  106. package/dist/elements/Pagination/types.js +6 -0
  107. package/dist/elements/PerPage/index.d.ts.map +1 -1
  108. package/dist/elements/PerPage/index.js +115 -0
  109. package/dist/elements/Pill/index.js +93 -0
  110. package/dist/elements/Pill/types.js +6 -0
  111. package/dist/elements/Popup/PopupButtonList/index.d.ts +2 -2
  112. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  113. package/dist/elements/Popup/PopupButtonList/index.js +118 -0
  114. package/dist/elements/Popup/PopupTrigger/index.js +51 -0
  115. package/dist/elements/Popup/PopupTrigger/types.js +6 -0
  116. package/dist/elements/Popup/index.js +193 -0
  117. package/dist/elements/Popup/types.js +6 -0
  118. package/dist/elements/PreviewButton/index.js +129 -0
  119. package/dist/elements/PreviewSizes/index.js +163 -0
  120. package/dist/elements/Publish/index.js +153 -0
  121. package/dist/elements/PublishMany/index.js +169 -0
  122. package/dist/elements/PublishMany/types.js +6 -0
  123. package/dist/elements/ReactSelect/ClearIndicator/index.js +31 -0
  124. package/dist/elements/ReactSelect/Control/index.js +49 -0
  125. package/dist/elements/ReactSelect/MultiValue/index.js +55 -0
  126. package/dist/elements/ReactSelect/MultiValueLabel/index.js +34 -0
  127. package/dist/elements/ReactSelect/MultiValueRemove/index.js +48 -0
  128. package/dist/elements/ReactSelect/SingleValue/index.js +30 -0
  129. package/dist/elements/ReactSelect/ValueContainer/index.js +29 -0
  130. package/dist/elements/ReactSelect/index.js +177 -0
  131. package/dist/elements/ReactSelect/types.js +6 -0
  132. package/dist/elements/RenderCustomComponent/index.js +28 -0
  133. package/dist/elements/RenderCustomComponent/types.js +6 -0
  134. package/dist/elements/RenderTitle/index.js +42 -0
  135. package/dist/elements/RenderTitle/types.js +6 -0
  136. package/dist/elements/Save/index.js +103 -0
  137. package/dist/elements/SaveDraft/index.js +147 -0
  138. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  139. package/dist/elements/SearchFilter/index.js +139 -0
  140. package/dist/elements/SearchFilter/types.js +6 -0
  141. package/dist/elements/SelectAll/index.js +35 -0
  142. package/dist/elements/SelectRow/index.js +31 -0
  143. package/dist/elements/ShimmerEffect/index.js +96 -0
  144. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  145. package/dist/elements/SortColumn/index.js +139 -0
  146. package/dist/elements/SortColumn/types.js +6 -0
  147. package/dist/elements/SortComplex/index.d.ts.map +1 -1
  148. package/dist/elements/SortComplex/index.js +157 -0
  149. package/dist/elements/SortComplex/types.js +6 -0
  150. package/dist/elements/Status/index.js +202 -0
  151. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  152. package/dist/elements/StayLoggedIn/index.js +57 -0
  153. package/dist/elements/StayLoggedIn/types.js +6 -0
  154. package/dist/elements/StepNav/SetStepNav.js +25 -0
  155. package/dist/elements/StepNav/index.d.ts.map +1 -1
  156. package/dist/elements/StepNav/index.js +127 -0
  157. package/dist/elements/StepNav/types.js +6 -0
  158. package/dist/elements/Table/TableCellProvider/index.js +47 -0
  159. package/dist/elements/Table/index.js +63 -0
  160. package/dist/elements/Table/types.js +6 -0
  161. package/dist/elements/TableColumns/buildColumns.js +77 -0
  162. package/dist/elements/TableColumns/columnReducer.js +47 -0
  163. package/dist/elements/TableColumns/index.js +199 -0
  164. package/dist/elements/Thumbnail/index.js +89 -0
  165. package/dist/elements/Thumbnail/types.js +6 -0
  166. package/dist/elements/ThumbnailCard/index.js +54 -0
  167. package/dist/elements/ThumbnailCard/types.js +6 -0
  168. package/dist/elements/Tooltip/index.js +114 -0
  169. package/dist/elements/Tooltip/types.js +6 -0
  170. package/dist/elements/Translation/index.js +81 -0
  171. package/dist/elements/UnpublishMany/index.js +169 -0
  172. package/dist/elements/UnpublishMany/types.js +6 -0
  173. package/dist/elements/Upload/index.js +250 -0
  174. package/dist/elements/Upload/types.js +6 -0
  175. package/dist/elements/ViewDescription/index.js +38 -0
  176. package/dist/elements/ViewDescription/types.js +21 -0
  177. package/dist/elements/WhereBuilder/Condition/Date/index.js +32 -0
  178. package/dist/elements/WhereBuilder/Condition/Date/types.js +6 -0
  179. package/dist/elements/WhereBuilder/Condition/Number/index.js +33 -0
  180. package/dist/elements/WhereBuilder/Condition/Number/types.js +6 -0
  181. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +337 -0
  182. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +98 -0
  183. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +6 -0
  184. package/dist/elements/WhereBuilder/Condition/Select/index.js +96 -0
  185. package/dist/elements/WhereBuilder/Condition/Select/types.js +6 -0
  186. package/dist/elements/WhereBuilder/Condition/Text/index.js +33 -0
  187. package/dist/elements/WhereBuilder/Condition/Text/types.js +6 -0
  188. package/dist/elements/WhereBuilder/Condition/index.js +203 -0
  189. package/dist/elements/WhereBuilder/Condition/types.js +6 -0
  190. package/dist/elements/WhereBuilder/field-types.js +185 -0
  191. package/dist/elements/WhereBuilder/index.js +235 -0
  192. package/dist/elements/WhereBuilder/reducer.js +88 -0
  193. package/dist/elements/WhereBuilder/transformWhereQuery.js +57 -0
  194. package/dist/elements/WhereBuilder/types.js +6 -0
  195. package/dist/elements/WhereBuilder/validateWhereQuery.js +46 -0
  196. package/dist/exports/assets.js +27 -0
  197. package/dist/exports/elements.js +226 -0
  198. package/dist/exports/forms.js +158 -0
  199. package/dist/exports/graphics.js +27 -0
  200. package/dist/exports/hooks.js +55 -0
  201. package/dist/exports/icons.js +82 -0
  202. package/dist/exports/index.js +28 -0
  203. package/dist/exports/providers.js +116 -0
  204. package/dist/exports/templates.js +22 -0
  205. package/dist/exports/types.js +6 -0
  206. package/dist/exports/utilities.js +62 -0
  207. package/dist/forms/Error/index.js +43 -0
  208. package/dist/forms/FieldDescription/index.js +38 -0
  209. package/dist/forms/FieldDescription/types.js +6 -0
  210. package/dist/forms/FieldPathProvider/index.js +44 -0
  211. package/dist/forms/FieldPathProvider/types.js +6 -0
  212. package/dist/forms/Form/buildFieldSchemaMap.js +54 -0
  213. package/dist/forms/Form/buildInitialState.js +26 -0
  214. package/dist/forms/Form/context.js +84 -0
  215. package/dist/forms/Form/createNestedFieldPath.js +25 -0
  216. package/dist/forms/Form/errorMessages.js +15 -0
  217. package/dist/forms/Form/fieldReducer.js +286 -0
  218. package/dist/forms/Form/getDataByPath.js +29 -0
  219. package/dist/forms/Form/getSiblingData.js +50 -0
  220. package/dist/forms/Form/index.js +565 -0
  221. package/dist/forms/Form/initContextState.js +45 -0
  222. package/dist/forms/Form/mergeServerFormState.js +45 -0
  223. package/dist/forms/Form/reduceFieldsToValues.js +34 -0
  224. package/dist/forms/Form/rows.js +53 -0
  225. package/dist/forms/Form/types.js +6 -0
  226. package/dist/forms/Label/index.js +36 -0
  227. package/dist/forms/NullifyField/index.js +103 -0
  228. package/dist/forms/RenderFields/RenderField.js +30 -0
  229. package/dist/forms/RenderFields/index.js +66 -0
  230. package/dist/forms/RenderFields/types.js +6 -0
  231. package/dist/forms/RowLabel/index.js +50 -0
  232. package/dist/forms/RowLabel/types.js +21 -0
  233. package/dist/forms/Submit/index.js +75 -0
  234. package/dist/forms/WatchChildErrors/buildPathSegments.js +37 -0
  235. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +35 -0
  236. package/dist/forms/WatchChildErrors/getNestedFieldState.js +28 -0
  237. package/dist/forms/WatchChildErrors/index.js +41 -0
  238. package/dist/forms/fields/Array/ArrayRow.js +87 -0
  239. package/dist/forms/fields/Array/index.js +305 -0
  240. package/dist/forms/fields/Array/types.js +6 -0
  241. package/dist/forms/fields/Blocks/BlockRow.js +101 -0
  242. package/dist/forms/fields/Blocks/BlocksDrawer/BlockSearch/index.js +37 -0
  243. package/dist/forms/fields/Blocks/BlocksDrawer/index.js +134 -0
  244. package/dist/forms/fields/Blocks/BlocksDrawer/types.js +6 -0
  245. package/dist/forms/fields/Blocks/RowActions.js +52 -0
  246. package/dist/forms/fields/Blocks/SectionTitle/index.js +54 -0
  247. package/dist/forms/fields/Blocks/SectionTitle/types.js +6 -0
  248. package/dist/forms/fields/Blocks/index.js +317 -0
  249. package/dist/forms/fields/Blocks/types.js +6 -0
  250. package/dist/forms/fields/Checkbox/Input.js +56 -0
  251. package/dist/forms/fields/Checkbox/index.js +134 -0
  252. package/dist/forms/fields/Checkbox/types.js +6 -0
  253. package/dist/forms/fields/Code/index.js +115 -0
  254. package/dist/forms/fields/Code/types.js +6 -0
  255. package/dist/forms/fields/Collapsible/index.js +169 -0
  256. package/dist/forms/fields/Collapsible/types.js +6 -0
  257. package/dist/forms/fields/ConfirmPassword/index.js +112 -0
  258. package/dist/forms/fields/ConfirmPassword/types.js +6 -0
  259. package/dist/forms/fields/DateTime/index.js +115 -0
  260. package/dist/forms/fields/DateTime/types.js +6 -0
  261. package/dist/forms/fields/Email/index.js +121 -0
  262. package/dist/forms/fields/Email/types.js +6 -0
  263. package/dist/forms/fields/Group/index.js +127 -0
  264. package/dist/forms/fields/Group/provider.js +74 -0
  265. package/dist/forms/fields/Group/types.js +6 -0
  266. package/dist/forms/fields/HiddenInput/index.js +88 -0
  267. package/dist/forms/fields/HiddenInput/types.js +6 -0
  268. package/dist/forms/fields/JSON/index.js +137 -0
  269. package/dist/forms/fields/JSON/types.js +6 -0
  270. package/dist/forms/fields/Number/index.js +212 -0
  271. package/dist/forms/fields/Number/types.js +6 -0
  272. package/dist/forms/fields/Password/index.js +116 -0
  273. package/dist/forms/fields/Password/types.js +6 -0
  274. package/dist/forms/fields/Point/index.js +147 -0
  275. package/dist/forms/fields/Point/types.js +6 -0
  276. package/dist/forms/fields/RadioGroup/Radio/index.js +45 -0
  277. package/dist/forms/fields/RadioGroup/index.js +147 -0
  278. package/dist/forms/fields/RadioGroup/types.js +6 -0
  279. package/dist/forms/fields/Relationship/AddNew/index.js +216 -0
  280. package/dist/forms/fields/Relationship/AddNew/types.js +6 -0
  281. package/dist/forms/fields/Relationship/AddNew/useRelatedCollections.js +27 -0
  282. package/dist/forms/fields/Relationship/createRelationMap.js +59 -0
  283. package/dist/forms/fields/Relationship/findOptionsByValue.js +45 -0
  284. package/dist/forms/fields/Relationship/index.js +509 -0
  285. package/dist/forms/fields/Relationship/optionsReducer.js +126 -0
  286. package/dist/forms/fields/Relationship/select-components/MultiValueLabel/index.js +109 -0
  287. package/dist/forms/fields/Relationship/select-components/SingleValue/index.js +108 -0
  288. package/dist/forms/fields/Relationship/types.js +6 -0
  289. package/dist/forms/fields/RichText/index.js +16 -0
  290. package/dist/forms/fields/RichText/types.js +6 -0
  291. package/dist/forms/fields/Row/index.js +42 -0
  292. package/dist/forms/fields/Row/provider.js +74 -0
  293. package/dist/forms/fields/Row/types.js +6 -0
  294. package/dist/forms/fields/Select/index.js +183 -0
  295. package/dist/forms/fields/Select/types.js +6 -0
  296. package/dist/forms/fields/Tabs/Tab/index.js +85 -0
  297. package/dist/forms/fields/Tabs/index.js +167 -0
  298. package/dist/forms/fields/Tabs/provider.js +74 -0
  299. package/dist/forms/fields/Tabs/types.js +6 -0
  300. package/dist/forms/fields/Text/index.js +194 -0
  301. package/dist/forms/fields/Text/types.js +6 -0
  302. package/dist/forms/fields/Textarea/index.js +133 -0
  303. package/dist/forms/fields/Textarea/types.js +6 -0
  304. package/dist/forms/fields/UI/index.js +16 -0
  305. package/dist/forms/fields/Upload/Input.js +3 -0
  306. package/dist/forms/fields/Upload/index.js +210 -0
  307. package/dist/forms/fields/Upload/types.js +6 -0
  308. package/dist/forms/fields/getFilterOptionsQuery.js +39 -0
  309. package/dist/forms/fields/index.js +67 -0
  310. package/dist/forms/fields/shared.js +29 -0
  311. package/dist/forms/useField/index.js +169 -0
  312. package/dist/forms/useField/types.js +6 -0
  313. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.js +335 -0
  314. package/dist/forms/utilities/buildStateFromSchema/buildStateFromSchema.spec.js +76 -0
  315. package/dist/forms/utilities/buildStateFromSchema/index.js +35 -0
  316. package/dist/forms/utilities/buildStateFromSchema/iterateFields.js +48 -0
  317. package/dist/forms/withCondition/WatchCondition.js +66 -0
  318. package/dist/forms/withCondition/index.js +33 -0
  319. package/dist/graphics/Account/Default/index.js +43 -0
  320. package/dist/graphics/Account/Gravatar/index.js +42 -0
  321. package/dist/graphics/Account/index.js +50 -0
  322. package/dist/graphics/DefaultBlockImage/index.js +84 -0
  323. package/dist/graphics/ExternalLink/index.js +34 -0
  324. package/dist/graphics/File/index.js +36 -0
  325. package/dist/graphics/Icon/index.js +64 -0
  326. package/dist/graphics/Logo/index.js +60 -0
  327. package/dist/graphics/Search/index.js +42 -0
  328. package/dist/hooks/useAdminThumbnail.js +17 -0
  329. package/dist/hooks/useDebounce.js +31 -0
  330. package/dist/hooks/useDebouncedCallback.js +29 -0
  331. package/dist/hooks/useDebouncedEffect.js +32 -0
  332. package/dist/hooks/useDelay.js +82 -0
  333. package/dist/hooks/useDelayedRender.js +97 -0
  334. package/dist/hooks/useHotkey.js +129 -0
  335. package/dist/hooks/useIntersect.js +39 -0
  336. package/dist/hooks/usePayloadAPI.js +94 -0
  337. package/dist/hooks/useResize.js +59 -0
  338. package/dist/hooks/useThrottledEffect.js +31 -0
  339. package/dist/hooks/useThumbnail.js +57 -0
  340. package/dist/hooks/useUseAsTitle.js +19 -0
  341. package/dist/icons/Calendar/index.js +48 -0
  342. package/dist/icons/Check/index.js +34 -0
  343. package/dist/icons/Chevron/index.js +36 -0
  344. package/dist/icons/CloseMenu/index.js +39 -0
  345. package/dist/icons/CodeBlock/index.js +32 -0
  346. package/dist/icons/Copy/index.js +33 -0
  347. package/dist/icons/DragHandle/index.js +57 -0
  348. package/dist/icons/Edit/index.js +37 -0
  349. package/dist/icons/Line/index.js +30 -0
  350. package/dist/icons/Link/index.js +33 -0
  351. package/dist/icons/LogOut/index.js +37 -0
  352. package/dist/icons/Menu/index.js +45 -0
  353. package/dist/icons/MinimizeMaximize/index.js +87 -0
  354. package/dist/icons/More/index.js +42 -0
  355. package/dist/icons/Plus/index.js +36 -0
  356. package/dist/icons/Search/index.js +36 -0
  357. package/dist/icons/Swap/index.js +43 -0
  358. package/dist/icons/X/index.js +41 -0
  359. package/dist/index.js +20 -0
  360. package/dist/providers/ActionsProvider/index.js +89 -0
  361. package/dist/providers/Auth/HydrateClientUser/index.js +28 -0
  362. package/dist/providers/Auth/index.js +373 -0
  363. package/dist/providers/Auth/types.js +6 -0
  364. package/dist/providers/ClientFunction/index.js +65 -0
  365. package/dist/providers/ComponentMapProvider/index.js +98 -0
  366. package/dist/providers/Config/index.js +70 -0
  367. package/dist/providers/CustomProvider/index.js +38 -0
  368. package/dist/providers/DocumentEvents/index.js +77 -0
  369. package/dist/providers/DocumentEvents/types.js +6 -0
  370. package/dist/providers/DocumentInfo/SetDocumentInfo/index.js +34 -0
  371. package/dist/providers/DocumentInfo/index.js +353 -0
  372. package/dist/providers/DocumentInfo/types.js +6 -0
  373. package/dist/providers/EditDepth/index.js +71 -0
  374. package/dist/providers/FormQueryParams/index.js +77 -0
  375. package/dist/providers/ListInfo/index.js +78 -0
  376. package/dist/providers/ListInfo/types.js +6 -0
  377. package/dist/providers/Locale/index.js +122 -0
  378. package/dist/providers/OperationProvider/index.js +71 -0
  379. package/dist/providers/Params/index.js +72 -0
  380. package/dist/providers/Portal/index.js +20 -0
  381. package/dist/providers/Preferences/index.js +184 -0
  382. package/dist/providers/Root/index.js +103 -0
  383. package/dist/providers/SearchParams/index.js +119 -0
  384. package/dist/providers/SearchParams/types.js +6 -0
  385. package/dist/providers/SelectionProvider/index.js +218 -0
  386. package/dist/providers/Theme/index.js +123 -0
  387. package/dist/providers/Theme/types.js +6 -0
  388. package/dist/providers/Theme/utilities.js +35 -0
  389. package/dist/providers/Translation/index.js +92 -0
  390. package/dist/templates/Default/NavHamburger/index.js +28 -0
  391. package/dist/templates/Default/Wrapper/index.js +32 -0
  392. package/dist/templates/Default/index.js +88 -0
  393. package/dist/templates/Default/types.js +6 -0
  394. package/dist/templates/Minimal/index.js +34 -0
  395. package/dist/templates/Minimal/types.js +6 -0
  396. package/dist/utilities/api.js +98 -0
  397. package/dist/utilities/arraysHaveSameStrings.js +28 -0
  398. package/dist/utilities/buildComponentMap/index.js +101 -0
  399. package/dist/utilities/buildComponentMap/mapFields.js +318 -0
  400. package/dist/utilities/buildComponentMap/types.js +6 -0
  401. package/dist/utilities/buildFieldSchemaMap/index.js +36 -0
  402. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +94 -0
  403. package/dist/utilities/buildFieldSchemaMap/types.js +6 -0
  404. package/dist/utilities/canUseDOM.js +13 -0
  405. package/dist/utilities/findLocaleFromCode.js +18 -0
  406. package/dist/utilities/formatDate/getSupportedDateLocale.js +21 -0
  407. package/dist/utilities/formatDate/index.js +78 -0
  408. package/dist/utilities/formatDocTitle.js +33 -0
  409. package/dist/utilities/formatFields.js +14 -0
  410. package/dist/utilities/getFormState.js +28 -0
  411. package/dist/utilities/getOffsetTop.js +26 -0
  412. package/dist/utilities/getRequestLanguage.js +17 -0
  413. package/dist/utilities/getSupportedMonacoLocale.js +26 -0
  414. package/dist/utilities/groupNavItems.js +61 -0
  415. package/dist/utilities/scrollToID.js +22 -0
  416. package/dist/utilities/setsAreEqual.js +17 -0
  417. package/dist/utilities/withMergedProps/index.js +27 -0
  418. package/dist/views/Global/RenderCustomView.js +3 -0
  419. package/package.json +5 -5
@@ -0,0 +1,193 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return _default;
10
+ }
11
+ });
12
+ const _windowinfo = require("@faceless-ui/window-info");
13
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
14
+ const _useIntersect = require("../../hooks/useIntersect");
15
+ const _PopupTrigger = require("./PopupTrigger");
16
+ require("./index.scss");
17
+ function _getRequireWildcardCache(nodeInterop) {
18
+ if (typeof WeakMap !== "function") return null;
19
+ var cacheBabelInterop = new WeakMap();
20
+ var cacheNodeInterop = new WeakMap();
21
+ return (_getRequireWildcardCache = function(nodeInterop) {
22
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
23
+ })(nodeInterop);
24
+ }
25
+ function _interop_require_wildcard(obj, nodeInterop) {
26
+ if (!nodeInterop && obj && obj.__esModule) {
27
+ return obj;
28
+ }
29
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
30
+ return {
31
+ default: obj
32
+ };
33
+ }
34
+ var cache = _getRequireWildcardCache(nodeInterop);
35
+ if (cache && cache.has(obj)) {
36
+ return cache.get(obj);
37
+ }
38
+ var newObj = {
39
+ __proto__: null
40
+ };
41
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
42
+ for(var key in obj){
43
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
44
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
45
+ if (desc && (desc.get || desc.set)) {
46
+ Object.defineProperty(newObj, key, desc);
47
+ } else {
48
+ newObj[key] = obj[key];
49
+ }
50
+ }
51
+ }
52
+ newObj.default = obj;
53
+ if (cache) {
54
+ cache.set(obj, newObj);
55
+ }
56
+ return newObj;
57
+ }
58
+ const baseClass = 'popup';
59
+ const Popup = (props)=>{
60
+ const { boundingRef, button, buttonClassName, buttonType = 'default', caret = true, children, className, forceOpen, horizontalAlign: horizontalAlignFromProps = 'left', initActive = false, onToggleOpen, render, showOnHover = false, showScrollbar = false, size = 'medium', verticalAlign: verticalAlignFromProps = 'top' } = props;
61
+ const { height: windowHeight, width: windowWidth } = (0, _windowinfo.useWindowInfo)();
62
+ const [intersectionRef, intersectionEntry] = (0, _useIntersect.useIntersect)({
63
+ root: boundingRef?.current || null,
64
+ rootMargin: '-100px 0px 0px 0px',
65
+ threshold: 1
66
+ });
67
+ const contentRef = (0, _react.useRef)(null);
68
+ const [active, setActive] = (0, _react.useState)(initActive);
69
+ const [verticalAlign, setVerticalAlign] = (0, _react.useState)(verticalAlignFromProps);
70
+ const [horizontalAlign, setHorizontalAlign] = (0, _react.useState)(horizontalAlignFromProps);
71
+ const setPosition = (0, _react.useCallback)(({ horizontal = false, vertical = false })=>{
72
+ if (contentRef.current) {
73
+ const bounds = contentRef.current.getBoundingClientRect();
74
+ const { bottom: contentBottomPos, left: contentLeftPos, right: contentRightPos, top: contentTopPos } = bounds;
75
+ let boundingTopPos = 100;
76
+ let boundingRightPos = document.documentElement.clientWidth;
77
+ let boundingBottomPos = document.documentElement.clientHeight;
78
+ let boundingLeftPos = 0;
79
+ if (boundingRef?.current) {
80
+ ({ bottom: boundingBottomPos, left: boundingLeftPos, right: boundingRightPos, top: boundingTopPos } = boundingRef.current.getBoundingClientRect());
81
+ }
82
+ if (horizontal) {
83
+ if (contentRightPos > boundingRightPos && contentLeftPos > boundingLeftPos) {
84
+ setHorizontalAlign('right');
85
+ } else if (contentLeftPos < boundingLeftPos && contentRightPos < boundingRightPos) {
86
+ setHorizontalAlign('left');
87
+ }
88
+ }
89
+ if (vertical) {
90
+ if (contentTopPos < boundingTopPos && contentBottomPos < boundingBottomPos) {
91
+ setVerticalAlign('bottom');
92
+ } else if (contentBottomPos > boundingBottomPos && contentTopPos > boundingTopPos) {
93
+ setVerticalAlign('top');
94
+ }
95
+ }
96
+ }
97
+ }, [
98
+ boundingRef
99
+ ]);
100
+ const handleClickOutside = (0, _react.useCallback)((e)=>{
101
+ if (contentRef.current.contains(e.target)) {
102
+ return;
103
+ }
104
+ setActive(false);
105
+ }, [
106
+ contentRef
107
+ ]);
108
+ (0, _react.useEffect)(()=>{
109
+ setPosition({
110
+ horizontal: true
111
+ });
112
+ }, [
113
+ intersectionEntry,
114
+ setPosition,
115
+ windowWidth
116
+ ]);
117
+ (0, _react.useEffect)(()=>{
118
+ setPosition({
119
+ vertical: true
120
+ });
121
+ }, [
122
+ intersectionEntry,
123
+ setPosition,
124
+ windowHeight
125
+ ]);
126
+ (0, _react.useEffect)(()=>{
127
+ if (typeof onToggleOpen === 'function') onToggleOpen(active);
128
+ if (active) {
129
+ document.addEventListener('mousedown', handleClickOutside);
130
+ } else {
131
+ document.removeEventListener('mousedown', handleClickOutside);
132
+ }
133
+ return ()=>{
134
+ document.removeEventListener('mousedown', handleClickOutside);
135
+ };
136
+ }, [
137
+ active,
138
+ handleClickOutside,
139
+ onToggleOpen
140
+ ]);
141
+ (0, _react.useEffect)(()=>{
142
+ setActive(forceOpen);
143
+ }, [
144
+ forceOpen
145
+ ]);
146
+ const classes = [
147
+ baseClass,
148
+ className,
149
+ `${baseClass}--size-${size}`,
150
+ `${baseClass}--v-align-${verticalAlign}`,
151
+ `${baseClass}--h-align-${horizontalAlign}`,
152
+ active && `${baseClass}--active`,
153
+ showScrollbar && `${baseClass}--show-scrollbar`
154
+ ].filter(Boolean).join(' ');
155
+ return /*#__PURE__*/ _react.default.createElement("div", {
156
+ className: classes
157
+ }, /*#__PURE__*/ _react.default.createElement("div", {
158
+ className: `${baseClass}__trigger-wrap`
159
+ }, showOnHover ? /*#__PURE__*/ _react.default.createElement("div", {
160
+ className: `${baseClass}__on-hover-watch`,
161
+ onMouseEnter: ()=>setActive(true),
162
+ onMouseLeave: ()=>setActive(false)
163
+ }, /*#__PURE__*/ _react.default.createElement(_PopupTrigger.PopupTrigger, {
164
+ active,
165
+ button,
166
+ buttonType,
167
+ className: buttonClassName,
168
+ setActive
169
+ })) : /*#__PURE__*/ _react.default.createElement(_PopupTrigger.PopupTrigger, {
170
+ active,
171
+ button,
172
+ buttonType,
173
+ className: buttonClassName,
174
+ setActive
175
+ })), /*#__PURE__*/ _react.default.createElement("div", {
176
+ className: `${baseClass}__content`,
177
+ ref: contentRef
178
+ }, /*#__PURE__*/ _react.default.createElement("div", {
179
+ className: `${baseClass}__hide-scrollbar`,
180
+ ref: intersectionRef
181
+ }, /*#__PURE__*/ _react.default.createElement("div", {
182
+ className: `${baseClass}__scroll-container`
183
+ }, /*#__PURE__*/ _react.default.createElement("div", {
184
+ className: `${baseClass}__scroll-content`
185
+ }, render && render({
186
+ close: ()=>setActive(false)
187
+ }), children && children))), caret && /*#__PURE__*/ _react.default.createElement("div", {
188
+ className: `${baseClass}__caret`
189
+ })));
190
+ };
191
+ const _default = Popup;
192
+
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9Qb3B1cC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyB1c2VXaW5kb3dJbmZvIH0gZnJvbSAnQGZhY2VsZXNzLXVpL3dpbmRvdy1pbmZvJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUludGVyc2VjdCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUludGVyc2VjdCdcbmltcG9ydCB7IFBvcHVwVHJpZ2dlciB9IGZyb20gJy4vUG9wdXBUcmlnZ2VyJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdwb3B1cCdcblxuY29uc3QgUG9wdXA6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgYm91bmRpbmdSZWYsXG4gICAgYnV0dG9uLFxuICAgIGJ1dHRvbkNsYXNzTmFtZSxcbiAgICBidXR0b25UeXBlID0gJ2RlZmF1bHQnLFxuICAgIGNhcmV0ID0gdHJ1ZSxcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgZm9yY2VPcGVuLFxuICAgIGhvcml6b250YWxBbGlnbjogaG9yaXpvbnRhbEFsaWduRnJvbVByb3BzID0gJ2xlZnQnLFxuICAgIGluaXRBY3RpdmUgPSBmYWxzZSxcbiAgICBvblRvZ2dsZU9wZW4sXG4gICAgcmVuZGVyLFxuICAgIHNob3dPbkhvdmVyID0gZmFsc2UsXG4gICAgc2hvd1Njcm9sbGJhciA9IGZhbHNlLFxuICAgIHNpemUgPSAnbWVkaXVtJyxcbiAgICB2ZXJ0aWNhbEFsaWduOiB2ZXJ0aWNhbEFsaWduRnJvbVByb3BzID0gJ3RvcCcsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHsgaGVpZ2h0OiB3aW5kb3dIZWlnaHQsIHdpZHRoOiB3aW5kb3dXaWR0aCB9ID0gdXNlV2luZG93SW5mbygpXG4gIGNvbnN0IFtpbnRlcnNlY3Rpb25SZWYsIGludGVyc2VjdGlvbkVudHJ5XSA9IHVzZUludGVyc2VjdCh7XG4gICAgcm9vdDogYm91bmRpbmdSZWY/LmN1cnJlbnQgfHwgbnVsbCxcbiAgICByb290TWFyZ2luOiAnLTEwMHB4IDBweCAwcHggMHB4JyxcbiAgICB0aHJlc2hvbGQ6IDEsXG4gIH0pXG5cbiAgY29uc3QgY29udGVudFJlZiA9IHVzZVJlZihudWxsKVxuICBjb25zdCBbYWN0aXZlLCBzZXRBY3RpdmVdID0gdXNlU3RhdGUoaW5pdEFjdGl2ZSlcbiAgY29uc3QgW3ZlcnRpY2FsQWxpZ24sIHNldFZlcnRpY2FsQWxpZ25dID0gdXNlU3RhdGUodmVydGljYWxBbGlnbkZyb21Qcm9wcylcbiAgY29uc3QgW2hvcml6b250YWxBbGlnbiwgc2V0SG9yaXpvbnRhbEFsaWduXSA9IHVzZVN0YXRlKGhvcml6b250YWxBbGlnbkZyb21Qcm9wcylcblxuICBjb25zdCBzZXRQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgICh7IGhvcml6b250YWwgPSBmYWxzZSwgdmVydGljYWwgPSBmYWxzZSB9KSA9PiB7XG4gICAgICBpZiAoY29udGVudFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IGNvbnRlbnRSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBib3R0b206IGNvbnRlbnRCb3R0b21Qb3MsXG4gICAgICAgICAgbGVmdDogY29udGVudExlZnRQb3MsXG4gICAgICAgICAgcmlnaHQ6IGNvbnRlbnRSaWdodFBvcyxcbiAgICAgICAgICB0b3A6IGNvbnRlbnRUb3BQb3MsXG4gICAgICAgIH0gPSBib3VuZHNcblxuICAgICAgICBsZXQgYm91bmRpbmdUb3BQb3MgPSAxMDBcbiAgICAgICAgbGV0IGJvdW5kaW5nUmlnaHRQb3MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICAgICAgbGV0IGJvdW5kaW5nQm90dG9tUG9zID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodFxuICAgICAgICBsZXQgYm91bmRpbmdMZWZ0UG9zID0gMFxuXG4gICAgICAgIGlmIChib3VuZGluZ1JlZj8uY3VycmVudCkge1xuICAgICAgICAgIDsoe1xuICAgICAgICAgICAgYm90dG9tOiBib3VuZGluZ0JvdHRvbVBvcyxcbiAgICAgICAgICAgIGxlZnQ6IGJvdW5kaW5nTGVmdFBvcyxcbiAgICAgICAgICAgIHJpZ2h0OiBib3VuZGluZ1JpZ2h0UG9zLFxuICAgICAgICAgICAgdG9wOiBib3VuZGluZ1RvcFBvcyxcbiAgICAgICAgICB9ID0gYm91bmRpbmdSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChob3Jpem9udGFsKSB7XG4gICAgICAgICAgaWYgKGNvbnRlbnRSaWdodFBvcyA+IGJvdW5kaW5nUmlnaHRQb3MgJiYgY29udGVudExlZnRQb3MgPiBib3VuZGluZ0xlZnRQb3MpIHtcbiAgICAgICAgICAgIHNldEhvcml6b250YWxBbGlnbigncmlnaHQnKVxuICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudExlZnRQb3MgPCBib3VuZGluZ0xlZnRQb3MgJiYgY29udGVudFJpZ2h0UG9zIDwgYm91bmRpbmdSaWdodFBvcykge1xuICAgICAgICAgICAgc2V0SG9yaXpvbnRhbEFsaWduKCdsZWZ0JylcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmVydGljYWwpIHtcbiAgICAgICAgICBpZiAoY29udGVudFRvcFBvcyA8IGJvdW5kaW5nVG9wUG9zICYmIGNvbnRlbnRCb3R0b21Qb3MgPCBib3VuZGluZ0JvdHRvbVBvcykge1xuICAgICAgICAgICAgc2V0VmVydGljYWxBbGlnbignYm90dG9tJylcbiAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRCb3R0b21Qb3MgPiBib3VuZGluZ0JvdHRvbVBvcyAmJiBjb250ZW50VG9wUG9zID4gYm91bmRpbmdUb3BQb3MpIHtcbiAgICAgICAgICAgIHNldFZlcnRpY2FsQWxpZ24oJ3RvcCcpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbYm91bmRpbmdSZWZdLFxuICApXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gdXNlQ2FsbGJhY2soXG4gICAgKGUpID0+IHtcbiAgICAgIGlmIChjb250ZW50UmVmLmN1cnJlbnQuY29udGFpbnMoZS50YXJnZXQpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRBY3RpdmUoZmFsc2UpXG4gICAgfSxcbiAgICBbY29udGVudFJlZl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFBvc2l0aW9uKHsgaG9yaXpvbnRhbDogdHJ1ZSB9KVxuICB9LCBbaW50ZXJzZWN0aW9uRW50cnksIHNldFBvc2l0aW9uLCB3aW5kb3dXaWR0aF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRQb3NpdGlvbih7IHZlcnRpY2FsOiB0cnVlIH0pXG4gIH0sIFtpbnRlcnNlY3Rpb25FbnRyeSwgc2V0UG9zaXRpb24sIHdpbmRvd0hlaWdodF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIG9uVG9nZ2xlT3BlbiA9PT0gJ2Z1bmN0aW9uJykgb25Ub2dnbGVPcGVuKGFjdGl2ZSlcblxuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbYWN0aXZlLCBoYW5kbGVDbGlja091dHNpZGUsIG9uVG9nZ2xlT3Blbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRBY3RpdmUoZm9yY2VPcGVuKVxuICB9LCBbZm9yY2VPcGVuXSlcblxuICBjb25zdCBjbGFzc2VzID0gW1xuICAgIGJhc2VDbGFzcyxcbiAgICBjbGFzc05hbWUsXG4gICAgYCR7YmFzZUNsYXNzfS0tc2l6ZS0ke3NpemV9YCxcbiAgICBgJHtiYXNlQ2xhc3N9LS12LWFsaWduLSR7dmVydGljYWxBbGlnbn1gLFxuICAgIGAke2Jhc2VDbGFzc30tLWgtYWxpZ24tJHtob3Jpem9udGFsQWxpZ259YCxcbiAgICBhY3RpdmUgJiYgYCR7YmFzZUNsYXNzfS0tYWN0aXZlYCxcbiAgICBzaG93U2Nyb2xsYmFyICYmIGAke2Jhc2VDbGFzc30tLXNob3ctc2Nyb2xsYmFyYCxcbiAgXVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAuam9pbignICcpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlc30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdHJpZ2dlci13cmFwYH0+XG4gICAgICAgIHtzaG93T25Ib3ZlciA/IChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX29uLWhvdmVyLXdhdGNoYH1cbiAgICAgICAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gc2V0QWN0aXZlKHRydWUpfVxuICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXsoKSA9PiBzZXRBY3RpdmUoZmFsc2UpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxQb3B1cFRyaWdnZXJcbiAgICAgICAgICAgICAgey4uLnsgYWN0aXZlLCBidXR0b24sIGJ1dHRvblR5cGUsIGNsYXNzTmFtZTogYnV0dG9uQ2xhc3NOYW1lLCBzZXRBY3RpdmUgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFBvcHVwVHJpZ2dlclxuICAgICAgICAgICAgey4uLnsgYWN0aXZlLCBidXR0b24sIGJ1dHRvblR5cGUsIGNsYXNzTmFtZTogYnV0dG9uQ2xhc3NOYW1lLCBzZXRBY3RpdmUgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jb250ZW50YH0gcmVmPXtjb250ZW50UmVmfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hpZGUtc2Nyb2xsYmFyYH0gcmVmPXtpbnRlcnNlY3Rpb25SZWZ9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zY3JvbGwtY29udGFpbmVyYH0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2Nyb2xsLWNvbnRlbnRgfT5cbiAgICAgICAgICAgICAge3JlbmRlciAmJiByZW5kZXIoeyBjbG9zZTogKCkgPT4gc2V0QWN0aXZlKGZhbHNlKSB9KX1cbiAgICAgICAgICAgICAge2NoaWxkcmVuICYmIGNoaWxkcmVufVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHtjYXJldCAmJiA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY2FyZXRgfSAvPn1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IFBvcHVwXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwiUG9wdXAiLCJwcm9wcyIsImJvdW5kaW5nUmVmIiwiYnV0dG9uIiwiYnV0dG9uQ2xhc3NOYW1lIiwiYnV0dG9uVHlwZSIsImNhcmV0IiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJmb3JjZU9wZW4iLCJob3Jpem9udGFsQWxpZ24iLCJob3Jpem9udGFsQWxpZ25Gcm9tUHJvcHMiLCJpbml0QWN0aXZlIiwib25Ub2dnbGVPcGVuIiwicmVuZGVyIiwic2hvd09uSG92ZXIiLCJzaG93U2Nyb2xsYmFyIiwic2l6ZSIsInZlcnRpY2FsQWxpZ24iLCJ2ZXJ0aWNhbEFsaWduRnJvbVByb3BzIiwiaGVpZ2h0Iiwid2luZG93SGVpZ2h0Iiwid2lkdGgiLCJ3aW5kb3dXaWR0aCIsInVzZVdpbmRvd0luZm8iLCJpbnRlcnNlY3Rpb25SZWYiLCJpbnRlcnNlY3Rpb25FbnRyeSIsInVzZUludGVyc2VjdCIsInJvb3QiLCJjdXJyZW50Iiwicm9vdE1hcmdpbiIsInRocmVzaG9sZCIsImNvbnRlbnRSZWYiLCJ1c2VSZWYiLCJhY3RpdmUiLCJzZXRBY3RpdmUiLCJ1c2VTdGF0ZSIsInNldFZlcnRpY2FsQWxpZ24iLCJzZXRIb3Jpem9udGFsQWxpZ24iLCJzZXRQb3NpdGlvbiIsInVzZUNhbGxiYWNrIiwiaG9yaXpvbnRhbCIsInZlcnRpY2FsIiwiYm91bmRzIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiYm90dG9tIiwiY29udGVudEJvdHRvbVBvcyIsImxlZnQiLCJjb250ZW50TGVmdFBvcyIsInJpZ2h0IiwiY29udGVudFJpZ2h0UG9zIiwidG9wIiwiY29udGVudFRvcFBvcyIsImJvdW5kaW5nVG9wUG9zIiwiYm91bmRpbmdSaWdodFBvcyIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiY2xpZW50V2lkdGgiLCJib3VuZGluZ0JvdHRvbVBvcyIsImNsaWVudEhlaWdodCIsImJvdW5kaW5nTGVmdFBvcyIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImUiLCJjb250YWlucyIsInRhcmdldCIsInVzZUVmZmVjdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2xhc3NlcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiZGl2Iiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwiUG9wdXBUcmlnZ2VyIiwicmVmIiwiY2xvc2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkErS0E7OztlQUFBOzs7NEJBOUs4QjsrREFDa0M7OEJBSW5DOzhCQUNBO1FBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLFFBQXlCLENBQUNDO0lBQzlCLE1BQU0sRUFDSkMsV0FBVyxFQUNYQyxNQUFNLEVBQ05DLGVBQWUsRUFDZkMsYUFBYSxTQUFTLEVBQ3RCQyxRQUFRLElBQUksRUFDWkMsUUFBUSxFQUNSQyxTQUFTLEVBQ1RDLFNBQVMsRUFDVEMsaUJBQWlCQywyQkFBMkIsTUFBTSxFQUNsREMsYUFBYSxLQUFLLEVBQ2xCQyxZQUFZLEVBQ1pDLE1BQU0sRUFDTkMsY0FBYyxLQUFLLEVBQ25CQyxnQkFBZ0IsS0FBSyxFQUNyQkMsT0FBTyxRQUFRLEVBQ2ZDLGVBQWVDLHlCQUF5QixLQUFLLEVBQzlDLEdBQUdsQjtJQUVKLE1BQU0sRUFBRW1CLFFBQVFDLFlBQVksRUFBRUMsT0FBT0MsV0FBVyxFQUFFLEdBQUdDLElBQUFBLHlCQUFhO0lBQ2xFLE1BQU0sQ0FBQ0MsaUJBQWlCQyxrQkFBa0IsR0FBR0MsSUFBQUEsMEJBQVksRUFBQztRQUN4REMsTUFBTTFCLGFBQWEyQixXQUFXO1FBQzlCQyxZQUFZO1FBQ1pDLFdBQVc7SUFDYjtJQUVBLE1BQU1DLGFBQWFDLElBQUFBLGFBQU0sRUFBQztJQUMxQixNQUFNLENBQUNDLFFBQVFDLFVBQVUsR0FBR0MsSUFBQUEsZUFBUSxFQUFDeEI7SUFDckMsTUFBTSxDQUFDTSxlQUFlbUIsaUJBQWlCLEdBQUdELElBQUFBLGVBQVEsRUFBQ2pCO0lBQ25ELE1BQU0sQ0FBQ1QsaUJBQWlCNEIsbUJBQW1CLEdBQUdGLElBQUFBLGVBQVEsRUFBQ3pCO0lBRXZELE1BQU00QixjQUFjQyxJQUFBQSxrQkFBVyxFQUM3QixDQUFDLEVBQUVDLGFBQWEsS0FBSyxFQUFFQyxXQUFXLEtBQUssRUFBRTtRQUN2QyxJQUFJVixXQUFXSCxPQUFPLEVBQUU7WUFDdEIsTUFBTWMsU0FBU1gsV0FBV0gsT0FBTyxDQUFDZSxxQkFBcUI7WUFFdkQsTUFBTSxFQUNKQyxRQUFRQyxnQkFBZ0IsRUFDeEJDLE1BQU1DLGNBQWMsRUFDcEJDLE9BQU9DLGVBQWUsRUFDdEJDLEtBQUtDLGFBQWEsRUFDbkIsR0FBR1Q7WUFFSixJQUFJVSxpQkFBaUI7WUFDckIsSUFBSUMsbUJBQW1CQyxTQUFTQyxlQUFlLENBQUNDLFdBQVc7WUFDM0QsSUFBSUMsb0JBQW9CSCxTQUFTQyxlQUFlLENBQUNHLFlBQVk7WUFDN0QsSUFBSUMsa0JBQWtCO1lBRXRCLElBQUkxRCxhQUFhMkIsU0FBUztnQkFDdEIsQ0FBQSxFQUNBZ0IsUUFBUWEsaUJBQWlCLEVBQ3pCWCxNQUFNYSxlQUFlLEVBQ3JCWCxPQUFPSyxnQkFBZ0IsRUFDdkJILEtBQUtFLGNBQWMsRUFDcEIsR0FBR25ELFlBQVkyQixPQUFPLENBQUNlLHFCQUFxQixFQUFDO1lBQ2hEO1lBRUEsSUFBSUgsWUFBWTtnQkFDZCxJQUFJUyxrQkFBa0JJLG9CQUFvQk4saUJBQWlCWSxpQkFBaUI7b0JBQzFFdEIsbUJBQW1CO2dCQUNyQixPQUFPLElBQUlVLGlCQUFpQlksbUJBQW1CVixrQkFBa0JJLGtCQUFrQjtvQkFDakZoQixtQkFBbUI7Z0JBQ3JCO1lBQ0Y7WUFFQSxJQUFJSSxVQUFVO2dCQUNaLElBQUlVLGdCQUFnQkMsa0JBQWtCUCxtQkFBbUJZLG1CQUFtQjtvQkFDMUVyQixpQkFBaUI7Z0JBQ25CLE9BQU8sSUFBSVMsbUJBQW1CWSxxQkFBcUJOLGdCQUFnQkMsZ0JBQWdCO29CQUNqRmhCLGlCQUFpQjtnQkFDbkI7WUFDRjtRQUNGO0lBQ0YsR0FDQTtRQUFDbkM7S0FBWTtJQUdmLE1BQU0yRCxxQkFBcUJyQixJQUFBQSxrQkFBVyxFQUNwQyxDQUFDc0I7UUFDQyxJQUFJOUIsV0FBV0gsT0FBTyxDQUFDa0MsUUFBUSxDQUFDRCxFQUFFRSxNQUFNLEdBQUc7WUFDekM7UUFDRjtRQUVBN0IsVUFBVTtJQUNaLEdBQ0E7UUFBQ0g7S0FBVztJQUdkaUMsSUFBQUEsZ0JBQVMsRUFBQztRQUNSMUIsWUFBWTtZQUFFRSxZQUFZO1FBQUs7SUFDakMsR0FBRztRQUFDZjtRQUFtQmE7UUFBYWhCO0tBQVk7SUFFaEQwQyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IxQixZQUFZO1lBQUVHLFVBQVU7UUFBSztJQUMvQixHQUFHO1FBQUNoQjtRQUFtQmE7UUFBYWxCO0tBQWE7SUFFakQ0QyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSSxPQUFPcEQsaUJBQWlCLFlBQVlBLGFBQWFxQjtRQUVyRCxJQUFJQSxRQUFRO1lBQ1ZxQixTQUFTVyxnQkFBZ0IsQ0FBQyxhQUFhTDtRQUN6QyxPQUFPO1lBQ0xOLFNBQVNZLG1CQUFtQixDQUFDLGFBQWFOO1FBQzVDO1FBRUEsT0FBTztZQUNMTixTQUFTWSxtQkFBbUIsQ0FBQyxhQUFhTjtRQUM1QztJQUNGLEdBQUc7UUFBQzNCO1FBQVEyQjtRQUFvQmhEO0tBQWE7SUFFN0NvRCxJQUFBQSxnQkFBUyxFQUFDO1FBQ1I5QixVQUFVMUI7SUFDWixHQUFHO1FBQUNBO0tBQVU7SUFFZCxNQUFNMkQsVUFBVTtRQUNkckU7UUFDQVM7UUFDQSxDQUFDLEVBQUVULFVBQVUsT0FBTyxFQUFFa0IsS0FBSyxDQUFDO1FBQzVCLENBQUMsRUFBRWxCLFVBQVUsVUFBVSxFQUFFbUIsY0FBYyxDQUFDO1FBQ3hDLENBQUMsRUFBRW5CLFVBQVUsVUFBVSxFQUFFVyxnQkFBZ0IsQ0FBQztRQUMxQ3dCLFVBQVUsQ0FBQyxFQUFFbkMsVUFBVSxRQUFRLENBQUM7UUFDaENpQixpQkFBaUIsQ0FBQyxFQUFFakIsVUFBVSxnQkFBZ0IsQ0FBQztLQUNoRCxDQUNFc0UsTUFBTSxDQUFDQyxTQUNQQyxJQUFJLENBQUM7SUFFUixxQkFDRSw2QkFBQ0M7UUFBSWhFLFdBQVc0RDtxQkFDZCw2QkFBQ0k7UUFBSWhFLFdBQVcsQ0FBQyxFQUFFVCxVQUFVLGNBQWMsQ0FBQztPQUN6Q2dCLDRCQUNDLDZCQUFDeUQ7UUFDQ2hFLFdBQVcsQ0FBQyxFQUFFVCxVQUFVLGdCQUFnQixDQUFDO1FBQ3pDMEUsY0FBYyxJQUFNdEMsVUFBVTtRQUM5QnVDLGNBQWMsSUFBTXZDLFVBQVU7cUJBRTlCLDZCQUFDd0MsMEJBQVksRUFDUDtRQUFFekM7UUFBUS9CO1FBQVFFO1FBQVlHLFdBQVdKO1FBQWlCK0I7SUFBVSxvQkFJNUUsNkJBQUN3QywwQkFBWSxFQUNQO1FBQUV6QztRQUFRL0I7UUFBUUU7UUFBWUcsV0FBV0o7UUFBaUIrQjtJQUFVLG1CQUs5RSw2QkFBQ3FDO1FBQUloRSxXQUFXLENBQUMsRUFBRVQsVUFBVSxTQUFTLENBQUM7UUFBRTZFLEtBQUs1QztxQkFDNUMsNkJBQUN3QztRQUFJaEUsV0FBVyxDQUFDLEVBQUVULFVBQVUsZ0JBQWdCLENBQUM7UUFBRTZFLEtBQUtuRDtxQkFDbkQsNkJBQUMrQztRQUFJaEUsV0FBVyxDQUFDLEVBQUVULFVBQVUsa0JBQWtCLENBQUM7cUJBQzlDLDZCQUFDeUU7UUFBSWhFLFdBQVcsQ0FBQyxFQUFFVCxVQUFVLGdCQUFnQixDQUFDO09BQzNDZSxVQUFVQSxPQUFPO1FBQUUrRCxPQUFPLElBQU0xQyxVQUFVO0lBQU8sSUFDakQ1QixZQUFZQSxhQUtsQkQsdUJBQVMsNkJBQUNrRTtRQUFJaEUsV0FBVyxDQUFDLEVBQUVULFVBQVUsT0FBTyxDQUFDOztBQUl2RDtNQUVBLFdBQWVDIn0=
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,129 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return _default;
10
+ }
11
+ });
12
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
+ const _reacttoastify = require("react-toastify");
14
+ const _RenderCustomComponent = require("../../elements/RenderCustomComponent");
15
+ const _Auth = require("../../providers/Auth");
16
+ const _Config = require("../../providers/Config");
17
+ const _DocumentInfo = require("../../providers/DocumentInfo");
18
+ const _Locale = require("../../providers/Locale");
19
+ const _Translation = require("../../providers/Translation");
20
+ const _Button = require("../Button");
21
+ function _getRequireWildcardCache(nodeInterop) {
22
+ if (typeof WeakMap !== "function") return null;
23
+ var cacheBabelInterop = new WeakMap();
24
+ var cacheNodeInterop = new WeakMap();
25
+ return (_getRequireWildcardCache = function(nodeInterop) {
26
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
27
+ })(nodeInterop);
28
+ }
29
+ function _interop_require_wildcard(obj, nodeInterop) {
30
+ if (!nodeInterop && obj && obj.__esModule) {
31
+ return obj;
32
+ }
33
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
34
+ return {
35
+ default: obj
36
+ };
37
+ }
38
+ var cache = _getRequireWildcardCache(nodeInterop);
39
+ if (cache && cache.has(obj)) {
40
+ return cache.get(obj);
41
+ }
42
+ var newObj = {
43
+ __proto__: null
44
+ };
45
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
46
+ for(var key in obj){
47
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
48
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
49
+ if (desc && (desc.get || desc.set)) {
50
+ Object.defineProperty(newObj, key, desc);
51
+ } else {
52
+ newObj[key] = obj[key];
53
+ }
54
+ }
55
+ }
56
+ newObj.default = obj;
57
+ if (cache) {
58
+ cache.set(obj, newObj);
59
+ }
60
+ return newObj;
61
+ }
62
+ const baseClass = 'preview-btn';
63
+ const DefaultPreviewButton = ({ disabled, label, preview })=>{
64
+ return /*#__PURE__*/ _react.default.createElement(_Button.Button, {
65
+ buttonStyle: "secondary",
66
+ className: baseClass,
67
+ disabled: disabled,
68
+ onClick: preview,
69
+ size: "small"
70
+ }, label);
71
+ };
72
+ const PreviewButton = ({ CustomComponent, generatePreviewURL })=>{
73
+ const { id, collectionSlug, globalSlug } = (0, _DocumentInfo.useDocumentInfo)();
74
+ const [isLoading, setIsLoading] = (0, _react.useState)(false);
75
+ const { code: locale } = (0, _Locale.useLocale)();
76
+ const { token } = (0, _Auth.useAuth)();
77
+ const { routes: { api }, serverURL } = (0, _Config.useConfig)();
78
+ const { t } = (0, _Translation.useTranslation)();
79
+ const isGeneratingPreviewURL = (0, _react.useRef)(false);
80
+ // we need to regenerate the preview URL every time the button is clicked
81
+ // to do this we need to fetch the document data fresh from the API
82
+ // this will ensure the latest data is used when generating the preview URL
83
+ const preview = (0, _react.useCallback)(async ()=>{
84
+ if (!generatePreviewURL || isGeneratingPreviewURL.current) return;
85
+ isGeneratingPreviewURL.current = true;
86
+ try {
87
+ setIsLoading(true);
88
+ let url = `${serverURL}${api}`;
89
+ if (collectionSlug) url = `${url}/${collectionSlug}/${id}`;
90
+ if (globalSlug) url = `${url}/globals/${globalSlug}`;
91
+ const data = await fetch(`${url}?draft=true&locale=${locale}&fallback-locale=null`).then((res)=>res.json());
92
+ const previewURL = await generatePreviewURL(data, {
93
+ locale,
94
+ token
95
+ });
96
+ if (!previewURL) throw new Error();
97
+ setIsLoading(false);
98
+ isGeneratingPreviewURL.current = false;
99
+ window.open(previewURL, '_blank');
100
+ } catch (err) {
101
+ setIsLoading(false);
102
+ isGeneratingPreviewURL.current = false;
103
+ _reacttoastify.toast.error(t('error:previewing'));
104
+ }
105
+ }, [
106
+ serverURL,
107
+ api,
108
+ collectionSlug,
109
+ globalSlug,
110
+ id,
111
+ generatePreviewURL,
112
+ locale,
113
+ token,
114
+ t
115
+ ]);
116
+ return /*#__PURE__*/ _react.default.createElement(_RenderCustomComponent.RenderCustomComponent, {
117
+ CustomComponent: CustomComponent,
118
+ DefaultComponent: DefaultPreviewButton,
119
+ componentProps: {
120
+ DefaultButton: DefaultPreviewButton,
121
+ disabled: isLoading || !generatePreviewURL,
122
+ label: isLoading ? t('general:loading') : t('version:preview'),
123
+ preview
124
+ }
125
+ });
126
+ };
127
+ const _default = PreviewButton;
128
+
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9QcmV2aWV3QnV0dG9uL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVQcmV2aWV3VVJMIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7IEN1c3RvbVByZXZpZXdCdXR0b25Qcm9wcywgRGVmYXVsdFByZXZpZXdCdXR0b25Qcm9wcyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdyZWFjdC10b2FzdGlmeSdcblxuaW1wb3J0IHsgUmVuZGVyQ3VzdG9tQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvUmVuZGVyQ3VzdG9tQ29tcG9uZW50J1xuaW1wb3J0IHsgdXNlQXV0aCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9BdXRoJ1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL0NvbmZpZydcbmltcG9ydCB7IHVzZURvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9Eb2N1bWVudEluZm8nXG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvTG9jYWxlJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVHJhbnNsYXRpb24nXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdwcmV2aWV3LWJ0bidcblxuY29uc3QgRGVmYXVsdFByZXZpZXdCdXR0b246IFJlYWN0LkZDPERlZmF1bHRQcmV2aWV3QnV0dG9uUHJvcHM+ID0gKHtcbiAgZGlzYWJsZWQsXG4gIGxhYmVsLFxuICBwcmV2aWV3LFxufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxCdXR0b25cbiAgICAgIGJ1dHRvblN0eWxlPVwic2Vjb25kYXJ5XCJcbiAgICAgIGNsYXNzTmFtZT17YmFzZUNsYXNzfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17cHJldmlld31cbiAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgPlxuICAgICAge2xhYmVsfVxuICAgIDwvQnV0dG9uPlxuICApXG59XG5cbnR5cGUgUHJvcHMgPSB7XG4gIEN1c3RvbUNvbXBvbmVudD86IEN1c3RvbVByZXZpZXdCdXR0b25Qcm9wc1xuICBnZW5lcmF0ZVByZXZpZXdVUkw/OiBHZW5lcmF0ZVByZXZpZXdVUkxcbn1cblxuY29uc3QgUHJldmlld0J1dHRvbjogUmVhY3QuRkM8UHJvcHM+ID0gKHsgQ3VzdG9tQ29tcG9uZW50LCBnZW5lcmF0ZVByZXZpZXdVUkwgfSkgPT4ge1xuICBjb25zdCB7IGlkLCBjb2xsZWN0aW9uU2x1ZywgZ2xvYmFsU2x1ZyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCB7IHRva2VuIH0gPSB1c2VBdXRoKClcbiAgY29uc3Qge1xuICAgIHJvdXRlczogeyBhcGkgfSxcbiAgICBzZXJ2ZXJVUkwsXG4gIH0gPSB1c2VDb25maWcoKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgaXNHZW5lcmF0aW5nUHJldmlld1VSTCA9IHVzZVJlZihmYWxzZSlcblxuICAvLyB3ZSBuZWVkIHRvIHJlZ2VuZXJhdGUgdGhlIHByZXZpZXcgVVJMIGV2ZXJ5IHRpbWUgdGhlIGJ1dHRvbiBpcyBjbGlja2VkXG4gIC8vIHRvIGRvIHRoaXMgd2UgbmVlZCB0byBmZXRjaCB0aGUgZG9jdW1lbnQgZGF0YSBmcmVzaCBmcm9tIHRoZSBBUElcbiAgLy8gdGhpcyB3aWxsIGVuc3VyZSB0aGUgbGF0ZXN0IGRhdGEgaXMgdXNlZCB3aGVuIGdlbmVyYXRpbmcgdGhlIHByZXZpZXcgVVJMXG4gIGNvbnN0IHByZXZpZXcgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFnZW5lcmF0ZVByZXZpZXdVUkwgfHwgaXNHZW5lcmF0aW5nUHJldmlld1VSTC5jdXJyZW50KSByZXR1cm5cbiAgICBpc0dlbmVyYXRpbmdQcmV2aWV3VVJMLmN1cnJlbnQgPSB0cnVlXG5cbiAgICB0cnkge1xuICAgICAgc2V0SXNMb2FkaW5nKHRydWUpXG5cbiAgICAgIGxldCB1cmwgPSBgJHtzZXJ2ZXJVUkx9JHthcGl9YFxuICAgICAgaWYgKGNvbGxlY3Rpb25TbHVnKSB1cmwgPSBgJHt1cmx9LyR7Y29sbGVjdGlvblNsdWd9LyR7aWR9YFxuICAgICAgaWYgKGdsb2JhbFNsdWcpIHVybCA9IGAke3VybH0vZ2xvYmFscy8ke2dsb2JhbFNsdWd9YFxuXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2goYCR7dXJsfT9kcmFmdD10cnVlJmxvY2FsZT0ke2xvY2FsZX0mZmFsbGJhY2stbG9jYWxlPW51bGxgKS50aGVuKFxuICAgICAgICAocmVzKSA9PiByZXMuanNvbigpLFxuICAgICAgKVxuICAgICAgY29uc3QgcHJldmlld1VSTCA9IGF3YWl0IGdlbmVyYXRlUHJldmlld1VSTChkYXRhLCB7IGxvY2FsZSwgdG9rZW4gfSlcbiAgICAgIGlmICghcHJldmlld1VSTCkgdGhyb3cgbmV3IEVycm9yKClcbiAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICAgIGlzR2VuZXJhdGluZ1ByZXZpZXdVUkwuY3VycmVudCA9IGZhbHNlXG4gICAgICB3aW5kb3cub3BlbihwcmV2aWV3VVJMLCAnX2JsYW5rJylcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICAgIGlzR2VuZXJhdGluZ1ByZXZpZXdVUkwuY3VycmVudCA9IGZhbHNlXG4gICAgICB0b2FzdC5lcnJvcih0KCdlcnJvcjpwcmV2aWV3aW5nJykpXG4gICAgfVxuICB9LCBbc2VydmVyVVJMLCBhcGksIGNvbGxlY3Rpb25TbHVnLCBnbG9iYWxTbHVnLCBpZCwgZ2VuZXJhdGVQcmV2aWV3VVJMLCBsb2NhbGUsIHRva2VuLCB0XSlcblxuICByZXR1cm4gKFxuICAgIDxSZW5kZXJDdXN0b21Db21wb25lbnRcbiAgICAgIEN1c3RvbUNvbXBvbmVudD17Q3VzdG9tQ29tcG9uZW50fVxuICAgICAgRGVmYXVsdENvbXBvbmVudD17RGVmYXVsdFByZXZpZXdCdXR0b259XG4gICAgICBjb21wb25lbnRQcm9wcz17e1xuICAgICAgICBEZWZhdWx0QnV0dG9uOiBEZWZhdWx0UHJldmlld0J1dHRvbixcbiAgICAgICAgZGlzYWJsZWQ6IGlzTG9hZGluZyB8fCAhZ2VuZXJhdGVQcmV2aWV3VVJMLFxuICAgICAgICBsYWJlbDogaXNMb2FkaW5nID8gdCgnZ2VuZXJhbDpsb2FkaW5nJykgOiB0KCd2ZXJzaW9uOnByZXZpZXcnKSxcbiAgICAgICAgcHJldmlldyxcbiAgICAgIH19XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBQcmV2aWV3QnV0dG9uXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwiRGVmYXVsdFByZXZpZXdCdXR0b24iLCJkaXNhYmxlZCIsImxhYmVsIiwicHJldmlldyIsIkJ1dHRvbiIsImJ1dHRvblN0eWxlIiwiY2xhc3NOYW1lIiwib25DbGljayIsInNpemUiLCJQcmV2aWV3QnV0dG9uIiwiQ3VzdG9tQ29tcG9uZW50IiwiZ2VuZXJhdGVQcmV2aWV3VVJMIiwiaWQiLCJjb2xsZWN0aW9uU2x1ZyIsImdsb2JhbFNsdWciLCJ1c2VEb2N1bWVudEluZm8iLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJ1c2VTdGF0ZSIsImNvZGUiLCJsb2NhbGUiLCJ1c2VMb2NhbGUiLCJ0b2tlbiIsInVzZUF1dGgiLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJ1c2VDb25maWciLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJpc0dlbmVyYXRpbmdQcmV2aWV3VVJMIiwidXNlUmVmIiwidXNlQ2FsbGJhY2siLCJjdXJyZW50IiwidXJsIiwiZGF0YSIsImZldGNoIiwidGhlbiIsInJlcyIsImpzb24iLCJwcmV2aWV3VVJMIiwiRXJyb3IiLCJ3aW5kb3ciLCJvcGVuIiwiZXJyIiwidG9hc3QiLCJlcnJvciIsIlJlbmRlckN1c3RvbUNvbXBvbmVudCIsIkRlZmF1bHRDb21wb25lbnQiLCJjb21wb25lbnRQcm9wcyIsIkRlZmF1bHRCdXR0b24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkFnR0E7OztlQUFBOzs7K0RBNUZxRDsrQkFDL0I7dUNBRWdCO3NCQUNkO3dCQUNFOzhCQUNNO3dCQUNOOzZCQUNLO3dCQUNSOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdkIsTUFBTUEsWUFBWTtBQUVsQixNQUFNQyx1QkFBNEQsQ0FBQyxFQUNqRUMsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLE9BQU8sRUFDUjtJQUNDLHFCQUNFLDZCQUFDQyxjQUFNO1FBQ0xDLGFBQVk7UUFDWkMsV0FBV1A7UUFDWEUsVUFBVUE7UUFDVk0sU0FBU0o7UUFDVEssTUFBSztPQUVKTjtBQUdQO0FBT0EsTUFBTU8sZ0JBQWlDLENBQUMsRUFBRUMsZUFBZSxFQUFFQyxrQkFBa0IsRUFBRTtJQUM3RSxNQUFNLEVBQUVDLEVBQUUsRUFBRUMsY0FBYyxFQUFFQyxVQUFVLEVBQUUsR0FBR0MsSUFBQUEsNkJBQWU7SUFFMUQsTUFBTSxDQUFDQyxXQUFXQyxhQUFhLEdBQUdDLElBQUFBLGVBQVEsRUFBQztJQUMzQyxNQUFNLEVBQUVDLE1BQU1DLE1BQU0sRUFBRSxHQUFHQyxJQUFBQSxpQkFBUztJQUNsQyxNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUFHQyxJQUFBQSxhQUFPO0lBQ3pCLE1BQU0sRUFDSkMsUUFBUSxFQUFFQyxHQUFHLEVBQUUsRUFDZkMsU0FBUyxFQUNWLEdBQUdDLElBQUFBLGlCQUFTO0lBQ2IsTUFBTSxFQUFFQyxDQUFDLEVBQUUsR0FBR0MsSUFBQUEsMkJBQWM7SUFDNUIsTUFBTUMseUJBQXlCQyxJQUFBQSxhQUFNLEVBQUM7SUFFdEMseUVBQXlFO0lBQ3pFLG1FQUFtRTtJQUNuRSwyRUFBMkU7SUFDM0UsTUFBTTVCLFVBQVU2QixJQUFBQSxrQkFBVyxFQUFDO1FBQzFCLElBQUksQ0FBQ3JCLHNCQUFzQm1CLHVCQUF1QkcsT0FBTyxFQUFFO1FBQzNESCx1QkFBdUJHLE9BQU8sR0FBRztRQUVqQyxJQUFJO1lBQ0ZoQixhQUFhO1lBRWIsSUFBSWlCLE1BQU0sQ0FBQyxFQUFFUixVQUFVLEVBQUVELElBQUksQ0FBQztZQUM5QixJQUFJWixnQkFBZ0JxQixNQUFNLENBQUMsRUFBRUEsSUFBSSxDQUFDLEVBQUVyQixlQUFlLENBQUMsRUFBRUQsR0FBRyxDQUFDO1lBQzFELElBQUlFLFlBQVlvQixNQUFNLENBQUMsRUFBRUEsSUFBSSxTQUFTLEVBQUVwQixXQUFXLENBQUM7WUFFcEQsTUFBTXFCLE9BQU8sTUFBTUMsTUFBTSxDQUFDLEVBQUVGLElBQUksbUJBQW1CLEVBQUVkLE9BQU8scUJBQXFCLENBQUMsRUFBRWlCLElBQUksQ0FDdEYsQ0FBQ0MsTUFBUUEsSUFBSUMsSUFBSTtZQUVuQixNQUFNQyxhQUFhLE1BQU03QixtQkFBbUJ3QixNQUFNO2dCQUFFZjtnQkFBUUU7WUFBTTtZQUNsRSxJQUFJLENBQUNrQixZQUFZLE1BQU0sSUFBSUM7WUFDM0J4QixhQUFhO1lBQ2JhLHVCQUF1QkcsT0FBTyxHQUFHO1lBQ2pDUyxPQUFPQyxJQUFJLENBQUNILFlBQVk7UUFDMUIsRUFBRSxPQUFPSSxLQUFLO1lBQ1ozQixhQUFhO1lBQ2JhLHVCQUF1QkcsT0FBTyxHQUFHO1lBQ2pDWSxvQkFBSyxDQUFDQyxLQUFLLENBQUNsQixFQUFFO1FBQ2hCO0lBQ0YsR0FBRztRQUFDRjtRQUFXRDtRQUFLWjtRQUFnQkM7UUFBWUY7UUFBSUQ7UUFBb0JTO1FBQVFFO1FBQU9NO0tBQUU7SUFFekYscUJBQ0UsNkJBQUNtQiw0Q0FBcUI7UUFDcEJyQyxpQkFBaUJBO1FBQ2pCc0Msa0JBQWtCaEQ7UUFDbEJpRCxnQkFBZ0I7WUFDZEMsZUFBZWxEO1lBQ2ZDLFVBQVVlLGFBQWEsQ0FBQ0w7WUFDeEJULE9BQU9jLFlBQVlZLEVBQUUscUJBQXFCQSxFQUFFO1lBQzVDekI7UUFDRjs7QUFHTjtNQUVBLFdBQWVNIn0=
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
12
+ const _FileMeta = /*#__PURE__*/ _interop_require_default(require("../FileDetails/FileMeta"));
13
+ require("./index.scss");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ function _getRequireWildcardCache(nodeInterop) {
20
+ if (typeof WeakMap !== "function") return null;
21
+ var cacheBabelInterop = new WeakMap();
22
+ var cacheNodeInterop = new WeakMap();
23
+ return (_getRequireWildcardCache = function(nodeInterop) {
24
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
25
+ })(nodeInterop);
26
+ }
27
+ function _interop_require_wildcard(obj, nodeInterop) {
28
+ if (!nodeInterop && obj && obj.__esModule) {
29
+ return obj;
30
+ }
31
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
32
+ return {
33
+ default: obj
34
+ };
35
+ }
36
+ var cache = _getRequireWildcardCache(nodeInterop);
37
+ if (cache && cache.has(obj)) {
38
+ return cache.get(obj);
39
+ }
40
+ var newObj = {
41
+ __proto__: null
42
+ };
43
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
44
+ for(var key in obj){
45
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
46
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
47
+ if (desc && (desc.get || desc.set)) {
48
+ Object.defineProperty(newObj, key, desc);
49
+ } else {
50
+ newObj[key] = obj[key];
51
+ }
52
+ }
53
+ }
54
+ newObj.default = obj;
55
+ if (cache) {
56
+ cache.set(obj, newObj);
57
+ }
58
+ return newObj;
59
+ }
60
+ const baseClass = 'preview-sizes';
61
+ const sortSizes = (sizes, imageSizes)=>{
62
+ if (!imageSizes || imageSizes.length === 0) return sizes;
63
+ const orderedSizes = {};
64
+ imageSizes.forEach(({ name })=>{
65
+ if (sizes[name]) {
66
+ orderedSizes[name] = sizes[name];
67
+ }
68
+ });
69
+ return orderedSizes;
70
+ };
71
+ const PreviewSizeCard = ({ name, active, meta, onClick, previewSrc })=>{
72
+ return /*#__PURE__*/ _react.default.createElement("div", {
73
+ className: [
74
+ `${baseClass}__sizeOption`,
75
+ active && `${baseClass}--selected`
76
+ ].filter(Boolean).join(' '),
77
+ onClick: typeof onClick === 'function' ? onClick : undefined,
78
+ onKeyDown: (e)=>{
79
+ if (typeof onClick !== 'function') return;
80
+ if (e.key === 'Enter') onClick();
81
+ },
82
+ role: "button",
83
+ tabIndex: 0
84
+ }, /*#__PURE__*/ _react.default.createElement("div", {
85
+ className: `${baseClass}__image`
86
+ }, /*#__PURE__*/ _react.default.createElement("img", {
87
+ alt: meta.filename,
88
+ src: previewSrc
89
+ })), /*#__PURE__*/ _react.default.createElement("div", {
90
+ className: `${baseClass}__sizeMeta`
91
+ }, /*#__PURE__*/ _react.default.createElement("div", {
92
+ className: `${baseClass}__sizeName`
93
+ }, name), /*#__PURE__*/ _react.default.createElement(_FileMeta.default, meta)));
94
+ };
95
+ const PreviewSizes = ({ doc, imageCacheTag, uploadConfig })=>{
96
+ const { imageSizes } = uploadConfig;
97
+ const { sizes } = doc;
98
+ const [orderedSizes, setOrderedSizes] = (0, _react.useState)(()=>sortSizes(sizes, imageSizes));
99
+ const [selectedSize, setSelectedSize] = (0, _react.useState)(null);
100
+ const generateImageUrl = (doc)=>{
101
+ if (!doc.filename) return null;
102
+ if (doc.url) return `${doc.url}${imageCacheTag ? `?${imageCacheTag}` : ''}`;
103
+ };
104
+ (0, _react.useEffect)(()=>{
105
+ setOrderedSizes(sortSizes(sizes, imageSizes));
106
+ }, [
107
+ sizes,
108
+ imageSizes,
109
+ imageCacheTag
110
+ ]);
111
+ const mainPreviewSrc = selectedSize ? generateImageUrl(doc.sizes[selectedSize]) : generateImageUrl(doc);
112
+ const originalImage = (0, _react.useMemo)(()=>({
113
+ filename: doc.filename,
114
+ filesize: doc.filesize,
115
+ height: doc.height,
116
+ mimeType: doc.mimeType,
117
+ url: doc.url,
118
+ width: doc.width
119
+ }), [
120
+ doc
121
+ ]);
122
+ const originalFilename = 'Original';
123
+ return /*#__PURE__*/ _react.default.createElement("div", {
124
+ className: baseClass
125
+ }, /*#__PURE__*/ _react.default.createElement("div", {
126
+ className: `${baseClass}__imageWrap`
127
+ }, /*#__PURE__*/ _react.default.createElement("div", {
128
+ className: `${baseClass}__meta`
129
+ }, /*#__PURE__*/ _react.default.createElement("div", {
130
+ className: `${baseClass}__sizeName`
131
+ }, selectedSize || originalFilename), /*#__PURE__*/ _react.default.createElement(_FileMeta.default, selectedSize ? orderedSizes[selectedSize] : originalImage)), /*#__PURE__*/ _react.default.createElement("img", {
132
+ alt: doc.filename,
133
+ className: `${baseClass}__preview`,
134
+ src: mainPreviewSrc
135
+ })), /*#__PURE__*/ _react.default.createElement("div", {
136
+ className: `${baseClass}__listWrap`
137
+ }, /*#__PURE__*/ _react.default.createElement("div", {
138
+ className: `${baseClass}__list`
139
+ }, /*#__PURE__*/ _react.default.createElement(PreviewSizeCard, {
140
+ active: !selectedSize,
141
+ meta: originalImage,
142
+ name: originalFilename,
143
+ onClick: ()=>setSelectedSize(null),
144
+ previewSrc: generateImageUrl(doc)
145
+ }), Object.entries(orderedSizes).map(([key, val])=>{
146
+ const selected = selectedSize === key;
147
+ const previewSrc = generateImageUrl(val);
148
+ if (previewSrc) {
149
+ return /*#__PURE__*/ _react.default.createElement(PreviewSizeCard, {
150
+ active: selected,
151
+ key: key,
152
+ meta: val,
153
+ name: key,
154
+ onClick: ()=>setSelectedSize(key),
155
+ previewSrc: previewSrc
156
+ });
157
+ }
158
+ return null;
159
+ }))));
160
+ };
161
+ const _default = PreviewSizes;
162
+
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9QcmV2aWV3U2l6ZXMvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRGF0YSxcbiAgRmlsZVNpemUsXG4gIFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsXG4gIFNhbml0aXplZFVwbG9hZENvbmZpZyxcbn0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IEZpbGVNZXRhIGZyb20gJy4uL0ZpbGVEZXRhaWxzL0ZpbGVNZXRhJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdwcmV2aWV3LXNpemVzJ1xuXG50eXBlIEZpbGVJbmZvID0gRmlsZVNpemUgJiB7XG4gIHVybDogc3RyaW5nXG59XG50eXBlIEZpbGVzU2l6ZXNXaXRoVXJsID0ge1xuICBba2V5OiBzdHJpbmddOiBGaWxlSW5mb1xufVxuXG5jb25zdCBzb3J0U2l6ZXMgPSAoc2l6ZXM6IEZpbGVzU2l6ZXNXaXRoVXJsLCBpbWFnZVNpemVzOiBTYW5pdGl6ZWRVcGxvYWRDb25maWdbJ2ltYWdlU2l6ZXMnXSkgPT4ge1xuICBpZiAoIWltYWdlU2l6ZXMgfHwgaW1hZ2VTaXplcy5sZW5ndGggPT09IDApIHJldHVybiBzaXplc1xuXG4gIGNvbnN0IG9yZGVyZWRTaXplczogRmlsZXNTaXplc1dpdGhVcmwgPSB7fVxuXG4gIGltYWdlU2l6ZXMuZm9yRWFjaCgoeyBuYW1lIH0pID0+IHtcbiAgICBpZiAoc2l6ZXNbbmFtZV0pIHtcbiAgICAgIG9yZGVyZWRTaXplc1tuYW1lXSA9IHNpemVzW25hbWVdXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBvcmRlcmVkU2l6ZXNcbn1cblxudHlwZSBQcmV2aWV3U2l6ZUNhcmRQcm9wcyA9IHtcbiAgYWN0aXZlOiBib29sZWFuXG4gIG1ldGE6IEZpbGVJbmZvXG4gIG5hbWU6IHN0cmluZ1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZFxuICBwcmV2aWV3U3JjOiBzdHJpbmdcbn1cbmNvbnN0IFByZXZpZXdTaXplQ2FyZDogUmVhY3QuRkM8UHJldmlld1NpemVDYXJkUHJvcHM+ID0gKHtcbiAgbmFtZSxcbiAgYWN0aXZlLFxuICBtZXRhLFxuICBvbkNsaWNrLFxuICBwcmV2aWV3U3JjLFxufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17W2Ake2Jhc2VDbGFzc31fX3NpemVPcHRpb25gLCBhY3RpdmUgJiYgYCR7YmFzZUNsYXNzfS0tc2VsZWN0ZWRgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBvbkNsaWNrPXt0eXBlb2Ygb25DbGljayA9PT0gJ2Z1bmN0aW9uJyA/IG9uQ2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb25DbGljayAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuXG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykgb25DbGljaygpXG4gICAgICB9fVxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICB0YWJJbmRleD17MH1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faW1hZ2VgfT5cbiAgICAgICAgPGltZyBhbHQ9e21ldGEuZmlsZW5hbWV9IHNyYz17cHJldmlld1NyY30gLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NpemVNZXRhYH0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaXplTmFtZWB9PntuYW1lfTwvZGl2PlxuICAgICAgICA8RmlsZU1ldGEgey4uLm1ldGF9IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBQcmV2aWV3U2l6ZXM6IFJlYWN0LkZDPHtcbiAgZG9jOiBEYXRhICYge1xuICAgIHNpemVzPzogRmlsZXNTaXplc1dpdGhVcmxcbiAgfVxuICBpbWFnZUNhY2hlVGFnPzogc3RyaW5nXG4gIHVwbG9hZENvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1sndXBsb2FkJ11cbn0+ID0gKHsgZG9jLCBpbWFnZUNhY2hlVGFnLCB1cGxvYWRDb25maWcgfSkgPT4ge1xuICBjb25zdCB7IGltYWdlU2l6ZXMgfSA9IHVwbG9hZENvbmZpZ1xuICBjb25zdCB7IHNpemVzIH0gPSBkb2NcblxuICBjb25zdCBbb3JkZXJlZFNpemVzLCBzZXRPcmRlcmVkU2l6ZXNdID0gdXNlU3RhdGU8RmlsZXNTaXplc1dpdGhVcmw+KCgpID0+XG4gICAgc29ydFNpemVzKHNpemVzLCBpbWFnZVNpemVzKSxcbiAgKVxuICBjb25zdCBbc2VsZWN0ZWRTaXplLCBzZXRTZWxlY3RlZFNpemVdID0gdXNlU3RhdGU8bnVsbCB8IHN0cmluZz4obnVsbClcblxuICBjb25zdCBnZW5lcmF0ZUltYWdlVXJsID0gKGRvYykgPT4ge1xuICAgIGlmICghZG9jLmZpbGVuYW1lKSByZXR1cm4gbnVsbFxuICAgIGlmIChkb2MudXJsKSByZXR1cm4gYCR7ZG9jLnVybH0ke2ltYWdlQ2FjaGVUYWcgPyBgPyR7aW1hZ2VDYWNoZVRhZ31gIDogJyd9YFxuICB9XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0T3JkZXJlZFNpemVzKHNvcnRTaXplcyhzaXplcywgaW1hZ2VTaXplcykpXG4gIH0sIFtzaXplcywgaW1hZ2VTaXplcywgaW1hZ2VDYWNoZVRhZ10pXG5cbiAgY29uc3QgbWFpblByZXZpZXdTcmMgPSBzZWxlY3RlZFNpemVcbiAgICA/IGdlbmVyYXRlSW1hZ2VVcmwoZG9jLnNpemVzW3NlbGVjdGVkU2l6ZV0pXG4gICAgOiBnZW5lcmF0ZUltYWdlVXJsKGRvYylcblxuICBjb25zdCBvcmlnaW5hbEltYWdlID0gdXNlTWVtbyhcbiAgICAoKTogRmlsZUluZm8gPT4gKHtcbiAgICAgIGZpbGVuYW1lOiBkb2MuZmlsZW5hbWUsXG4gICAgICBmaWxlc2l6ZTogZG9jLmZpbGVzaXplLFxuICAgICAgaGVpZ2h0OiBkb2MuaGVpZ2h0LFxuICAgICAgbWltZVR5cGU6IGRvYy5taW1lVHlwZSxcbiAgICAgIHVybDogZG9jLnVybCxcbiAgICAgIHdpZHRoOiBkb2Mud2lkdGgsXG4gICAgfSksXG4gICAgW2RvY10sXG4gIClcbiAgY29uc3Qgb3JpZ2luYWxGaWxlbmFtZSA9ICdPcmlnaW5hbCdcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ltYWdlV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbWV0YWB9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaXplTmFtZWB9PntzZWxlY3RlZFNpemUgfHwgb3JpZ2luYWxGaWxlbmFtZX08L2Rpdj5cbiAgICAgICAgICA8RmlsZU1ldGEgey4uLihzZWxlY3RlZFNpemUgPyBvcmRlcmVkU2l6ZXNbc2VsZWN0ZWRTaXplXSA6IG9yaWdpbmFsSW1hZ2UpfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGltZyBhbHQ9e2RvYy5maWxlbmFtZX0gY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19wcmV2aWV3YH0gc3JjPXttYWluUHJldmlld1NyY30gLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2xpc3RXcmFwYH0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19saXN0YH0+XG4gICAgICAgICAgPFByZXZpZXdTaXplQ2FyZFxuICAgICAgICAgICAgYWN0aXZlPXshc2VsZWN0ZWRTaXplfVxuICAgICAgICAgICAgbWV0YT17b3JpZ2luYWxJbWFnZX1cbiAgICAgICAgICAgIG5hbWU9e29yaWdpbmFsRmlsZW5hbWV9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZFNpemUobnVsbCl9XG4gICAgICAgICAgICBwcmV2aWV3U3JjPXtnZW5lcmF0ZUltYWdlVXJsKGRvYyl9XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIHtPYmplY3QuZW50cmllcyhvcmRlcmVkU2l6ZXMpLm1hcCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZFNpemUgPT09IGtleVxuICAgICAgICAgICAgY29uc3QgcHJldmlld1NyYyA9IGdlbmVyYXRlSW1hZ2VVcmwodmFsKVxuXG4gICAgICAgICAgICBpZiAocHJldmlld1NyYykge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxQcmV2aWV3U2l6ZUNhcmRcbiAgICAgICAgICAgICAgICAgIGFjdGl2ZT17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgIG1ldGE9e3ZhbH1cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2tleX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNlbGVjdGVkU2l6ZShrZXkpfVxuICAgICAgICAgICAgICAgICAgcHJldmlld1NyYz17cHJldmlld1NyY31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbmV4cG9ydCBkZWZhdWx0IFByZXZpZXdTaXplc1xuIl0sIm5hbWVzIjpbImJhc2VDbGFzcyIsInNvcnRTaXplcyIsInNpemVzIiwiaW1hZ2VTaXplcyIsImxlbmd0aCIsIm9yZGVyZWRTaXplcyIsImZvckVhY2giLCJuYW1lIiwiUHJldmlld1NpemVDYXJkIiwiYWN0aXZlIiwibWV0YSIsIm9uQ2xpY2siLCJwcmV2aWV3U3JjIiwiZGl2IiwiY2xhc3NOYW1lIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJ1bmRlZmluZWQiLCJvbktleURvd24iLCJlIiwia2V5Iiwicm9sZSIsInRhYkluZGV4IiwiaW1nIiwiYWx0IiwiZmlsZW5hbWUiLCJzcmMiLCJGaWxlTWV0YSIsIlByZXZpZXdTaXplcyIsImRvYyIsImltYWdlQ2FjaGVUYWciLCJ1cGxvYWRDb25maWciLCJzZXRPcmRlcmVkU2l6ZXMiLCJ1c2VTdGF0ZSIsInNlbGVjdGVkU2l6ZSIsInNldFNlbGVjdGVkU2l6ZSIsImdlbmVyYXRlSW1hZ2VVcmwiLCJ1cmwiLCJ1c2VFZmZlY3QiLCJtYWluUHJldmlld1NyYyIsIm9yaWdpbmFsSW1hZ2UiLCJ1c2VNZW1vIiwiZmlsZXNpemUiLCJoZWlnaHQiLCJtaW1lVHlwZSIsIndpZHRoIiwib3JpZ2luYWxGaWxlbmFtZSIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJ2YWwiLCJzZWxlY3RlZCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkE0SkE7OztlQUFBOzs7K0RBckpvRDtpRUFFL0I7UUFDZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQSxZQUFZO0FBU2xCLE1BQU1DLFlBQVksQ0FBQ0MsT0FBMEJDO0lBQzNDLElBQUksQ0FBQ0EsY0FBY0EsV0FBV0MsTUFBTSxLQUFLLEdBQUcsT0FBT0Y7SUFFbkQsTUFBTUcsZUFBa0MsQ0FBQztJQUV6Q0YsV0FBV0csT0FBTyxDQUFDLENBQUMsRUFBRUMsSUFBSSxFQUFFO1FBQzFCLElBQUlMLEtBQUssQ0FBQ0ssS0FBSyxFQUFFO1lBQ2ZGLFlBQVksQ0FBQ0UsS0FBSyxHQUFHTCxLQUFLLENBQUNLLEtBQUs7UUFDbEM7SUFDRjtJQUVBLE9BQU9GO0FBQ1Q7QUFTQSxNQUFNRyxrQkFBa0QsQ0FBQyxFQUN2REQsSUFB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