@payloadcms/ui 3.0.0-alpha.0 → 3.0.0-alpha.1
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.
- package/dist/@types/assets.d.js +3 -0
- package/dist/config.js +13 -0
- package/dist/elements/ArrayAction/index.js +120 -0
- package/dist/elements/ArrayAction/types.js +6 -0
- package/dist/elements/Autosave/index.js +210 -0
- package/dist/elements/Autosave/types.js +6 -0
- package/dist/elements/Banner/index.js +52 -0
- package/dist/elements/Banner/types.js +6 -0
- package/dist/elements/Button/index.js +166 -0
- package/dist/elements/Button/types.js +6 -0
- package/dist/elements/Card/index.js +46 -0
- package/dist/elements/Card/types.js +6 -0
- package/dist/elements/CodeEditor/CodeEditor.js +53 -0
- package/dist/elements/CodeEditor/index.js +68 -0
- package/dist/elements/CodeEditor/types.js +6 -0
- package/dist/elements/Collapsible/index.js +128 -0
- package/dist/elements/Collapsible/provider.js +90 -0
- package/dist/elements/Collapsible/types.js +6 -0
- package/dist/elements/ColumnSelector/index.js +109 -0
- package/dist/elements/ColumnSelector/types.js +6 -0
- package/dist/elements/CopyToClipboard/index.js +98 -0
- package/dist/elements/CopyToClipboard/types.js +6 -0
- package/dist/elements/DatePicker/DatePicker.js +147 -0
- package/dist/elements/DatePicker/index.js +63 -0
- package/dist/elements/DatePicker/types.js +6 -0
- package/dist/elements/DeleteDocument/index.js +178 -0
- package/dist/elements/DeleteDocument/types.js +6 -0
- package/dist/elements/DeleteMany/index.js +176 -0
- package/dist/elements/DeleteMany/types.js +6 -0
- package/dist/elements/DocumentControls/index.js +159 -0
- package/dist/elements/DocumentDrawer/DrawerContent.js +219 -0
- package/dist/elements/DocumentDrawer/index.js +185 -0
- package/dist/elements/DocumentDrawer/types.js +6 -0
- package/dist/elements/DocumentFields/index.js +55 -0
- package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +23 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +42 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +105 -0
- package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +48 -0
- package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +24 -0
- package/dist/elements/DocumentHeader/Tabs/index.js +84 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +27 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js +75 -0
- package/dist/elements/DocumentHeader/index.js +81 -0
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +82 -0
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +6 -0
- package/dist/elements/DraggableSortable/index.js +96 -0
- package/dist/elements/DraggableSortable/types.js +6 -0
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js +32 -0
- package/dist/elements/DraggableSortable/useDraggableSortable/types.js +6 -0
- package/dist/elements/Drawer/index.js +156 -0
- package/dist/elements/Drawer/types.js +6 -0
- package/dist/elements/Drawer/useDrawerSlug.js +23 -0
- package/dist/elements/Dropzone/index.js +117 -0
- package/dist/elements/DuplicateDocument/index.js +217 -0
- package/dist/elements/DuplicateDocument/types.js +6 -0
- package/dist/elements/EditMany/index.js +274 -0
- package/dist/elements/EditMany/types.js +6 -0
- package/dist/elements/EditUpload/index.js +390 -0
- package/dist/elements/ErrorPill/index.js +37 -0
- package/dist/elements/ErrorPill/types.js +6 -0
- package/dist/elements/FieldSelect/index.js +138 -0
- package/dist/elements/FileDetails/FileMeta/index.js +96 -0
- package/dist/elements/FileDetails/FileMeta/types.js +6 -0
- package/dist/elements/FileDetails/index.js +59 -0
- package/dist/elements/FileDetails/types.js +6 -0
- package/dist/elements/GenerateConfirmation/index.js +72 -0
- package/dist/elements/GenerateConfirmation/types.js +6 -0
- package/dist/elements/GetFilterOptions/index.js +57 -0
- package/dist/elements/Gutter/index.js +72 -0
- package/dist/elements/Hamburger/index.js +54 -0
- package/dist/elements/Header/index.js +141 -0
- package/dist/elements/HydrateClientUser/index.js +28 -0
- package/dist/elements/IDLabel/index.js +28 -0
- package/dist/elements/ListControls/getTextFieldsToBeSearched.js +21 -0
- package/dist/elements/ListControls/index.js +149 -0
- package/dist/elements/ListControls/types.js +6 -0
- package/dist/elements/ListDrawer/DrawerContent.js +315 -0
- package/dist/elements/ListDrawer/index.js +198 -0
- package/dist/elements/ListDrawer/types.js +6 -0
- package/dist/elements/ListSelection/index.js +83 -0
- package/dist/elements/Loading/index.js +103 -0
- package/dist/elements/LoadingOverlay/index.js +130 -0
- package/dist/elements/LoadingOverlay/reducer.js +49 -0
- package/dist/elements/LoadingOverlay/types.js +6 -0
- package/dist/elements/Localizer/LocalizerLabel/index.js +43 -0
- package/dist/elements/Localizer/index.js +121 -0
- package/dist/elements/Logout/index.js +50 -0
- package/dist/elements/Nav/NavHamburger/index.js +34 -0
- package/dist/elements/Nav/NavToggler/index.js +53 -0
- package/dist/elements/Nav/NavWrapper/index.js +34 -0
- package/dist/elements/Nav/context.js +150 -0
- package/dist/elements/Nav/index.js +107 -0
- package/dist/elements/NavGroup/index.js +129 -0
- package/dist/elements/Pagination/ClickableArrow/index.js +36 -0
- package/dist/elements/Pagination/ClickableArrow/types.js +6 -0
- package/dist/elements/Pagination/Page/index.js +33 -0
- package/dist/elements/Pagination/Page/types.js +6 -0
- package/dist/elements/Pagination/Separator/index.js +22 -0
- package/dist/elements/Pagination/index.js +126 -0
- package/dist/elements/Pagination/types.js +6 -0
- package/dist/elements/PerPage/index.js +115 -0
- package/dist/elements/Pill/index.js +93 -0
- package/dist/elements/Pill/types.js +6 -0
- package/dist/elements/Popup/PopupButtonList/index.js +118 -0
- package/dist/elements/Popup/PopupTrigger/index.js +51 -0
- package/dist/elements/Popup/PopupTrigger/types.js +6 -0
- package/dist/elements/Popup/index.js +193 -0
- package/dist/elements/Popup/types.js +6 -0
- package/dist/elements/PreviewButton/index.js +129 -0
- package/dist/elements/PreviewSizes/index.js +163 -0
- package/dist/elements/Publish/index.js +153 -0
- package/dist/elements/PublishMany/index.js +169 -0
- package/dist/elements/PublishMany/types.js +6 -0
- package/dist/elements/ReactSelect/ClearIndicator/index.js +31 -0
- package/dist/elements/ReactSelect/Control/index.js +49 -0
- package/dist/elements/ReactSelect/MultiValue/index.js +55 -0
- package/dist/elements/ReactSelect/MultiValueLabel/index.js +34 -0
- package/dist/elements/ReactSelect/MultiValueRemove/index.js +48 -0
- package/dist/elements/ReactSelect/SingleValue/index.js +30 -0
- package/dist/elements/ReactSelect/ValueContainer/index.js +29 -0
- package/dist/elements/ReactSelect/index.js +177 -0
- package/dist/elements/ReactSelect/types.js +6 -0
- package/dist/elements/RenderCustomComponent/index.js +28 -0
- package/dist/elements/RenderCustomComponent/types.js +6 -0
- package/dist/elements/RenderTitle/index.js +42 -0
- package/dist/elements/RenderTitle/types.js +6 -0
- package/dist/elements/Save/index.js +103 -0
- package/dist/elements/SaveDraft/index.js +147 -0
- package/dist/elements/SearchFilter/index.js +138 -0
- package/dist/elements/SearchFilter/types.js +6 -0
- package/dist/elements/SelectAll/index.js +35 -0
- package/dist/elements/SelectRow/index.js +31 -0
- package/dist/elements/ShimmerEffect/index.js +96 -0
- package/dist/elements/SortColumn/index.js +138 -0
- package/dist/elements/SortColumn/types.js +6 -0
- package/dist/elements/SortComplex/index.js +156 -0
- package/dist/elements/SortComplex/types.js +6 -0
- package/dist/elements/Status/index.js +202 -0
- package/dist/elements/StayLoggedIn/index.js +57 -0
- package/dist/elements/StayLoggedIn/types.js +6 -0
- package/dist/elements/StepNav/SetStepNav.js +25 -0
- package/dist/elements/StepNav/index.js +129 -0
- package/dist/elements/StepNav/types.js +6 -0
- package/dist/elements/Table/TableCellProvider/index.js +47 -0
- package/dist/elements/Table/index.js +63 -0
- package/dist/elements/Table/types.js +6 -0
- package/dist/elements/TableColumns/buildColumns.js +77 -0
- package/dist/elements/TableColumns/columnReducer.js +47 -0
- package/dist/elements/TableColumns/index.js +199 -0
- package/dist/elements/Thumbnail/index.js +89 -0
- package/dist/elements/Thumbnail/types.js +6 -0
- package/dist/elements/ThumbnailCard/index.js +54 -0
- package/dist/elements/ThumbnailCard/types.js +6 -0
- package/dist/elements/Tooltip/index.js +114 -0
- package/dist/elements/Tooltip/types.js +6 -0
- package/dist/elements/Translation/index.js +81 -0
- package/dist/elements/UnpublishMany/index.js +169 -0
- package/dist/elements/UnpublishMany/types.js +6 -0
- package/dist/elements/Upload/index.js +250 -0
- package/dist/elements/Upload/types.js +6 -0
- package/dist/elements/ViewDescription/index.js +38 -0
- package/dist/elements/ViewDescription/types.js +21 -0
- package/dist/elements/WhereBuilder/Condition/Date/index.js +32 -0
- package/dist/elements/WhereBuilder/Condition/Date/types.js +6 -0
- package/dist/elements/WhereBuilder/Condition/Number/index.js +33 -0
- package/dist/elements/WhereBuilder/Condition/Number/types.js +6 -0
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +337 -0
- package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +98 -0
- package/dist/elements/WhereBuilder/Condition/Relationship/types.js +6 -0
- package/dist/elements/WhereBuilder/Condition/Select/index.js +96 -0
- package/dist/elements/WhereBuilder/Condition/Select/types.js +6 -0
- package/dist/elements/WhereBuilder/Condition/Text/index.js +33 -0
- package/dist/elements/WhereBuilder/Condition/Text/types.js +6 -0
- package/dist/elements/WhereBuilder/Condition/index.js +203 -0
- package/dist/elements/WhereBuilder/Condition/types.js +6 -0
- package/dist/elements/WhereBuilder/field-types.js +185 -0
- package/dist/elements/WhereBuilder/index.js +235 -0
- package/dist/elements/WhereBuilder/reducer.js +88 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.js +57 -0
- package/dist/elements/WhereBuilder/types.js +6 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.js +46 -0
- package/dist/exports/assets.js +27 -0
- package/dist/exports/elements.js +226 -0
- package/dist/exports/forms.js +158 -0
- package/dist/exports/graphics.js +27 -0
- package/dist/exports/hooks.js +55 -0
- package/dist/exports/icons.js +82 -0
- package/dist/exports/index.js +28 -0
- package/dist/exports/providers.js +116 -0
- package/dist/exports/templates.js +22 -0
- package/dist/exports/types.js +6 -0
- package/dist/exports/utilities.js +62 -0
- package/dist/forms/Error/index.js +43 -0
- package/dist/forms/FieldDescription/index.js +38 -0
- package/dist/forms/FieldDescription/types.js +6 -0
- package/dist/forms/FieldPathProvider/index.js +44 -0
- package/dist/forms/FieldPathProvider/types.js +6 -0
- package/dist/forms/Form/buildFieldSchemaMap.js +54 -0
- package/dist/forms/Form/buildInitialState.js +26 -0
- package/dist/forms/Form/context.js +84 -0
- package/dist/forms/Form/createNestedFieldPath.js +25 -0
- package/dist/forms/Form/errorMessages.js +15 -0
- package/dist/forms/Form/fieldReducer.js +286 -0
- package/dist/forms/Form/getDataByPath.js +29 -0
- package/dist/forms/Form/getSiblingData.js +50 -0
- package/dist/forms/Form/index.js +565 -0
- package/dist/forms/Form/initContextState.js +45 -0
- package/dist/forms/Form/mergeServerFormState.js +45 -0
- package/dist/forms/Form/reduceFieldsToValues.js +34 -0
- package/dist/forms/Form/rows.js +53 -0
- package/dist/forms/Form/types.js +6 -0
- package/dist/forms/Label/index.js +36 -0
- package/dist/forms/NullifyField/index.js +103 -0
- package/dist/forms/RenderFields/RenderField.js +30 -0
- package/dist/forms/RenderFields/index.js +66 -0
- package/dist/forms/RenderFields/types.js +6 -0
- package/dist/forms/RowLabel/index.js +50 -0
- package/dist/forms/RowLabel/types.js +21 -0
- package/dist/forms/Submit/index.js +75 -0
- package/dist/forms/WatchChildErrors/buildPathSegments.js +37 -0
- package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +35 -0
- package/dist/forms/WatchChildErrors/getNestedFieldState.js +28 -0
- package/dist/forms/WatchChildErrors/index.js +41 -0
- package/dist/forms/fields/Array/ArrayRow.js +87 -0
- package/dist/forms/fields/Array/index.js +305 -0
- package/dist/forms/fields/Array/types.js +6 -0
- package/dist/forms/fields/Blocks/BlockRow.js +101 -0
- package/dist/forms/fields/Blocks/BlocksDrawer/BlockSearch/index.js +37 -0
- package/dist/forms/fields/Blocks/BlocksDrawer/index.js +134 -0
- package/dist/forms/fields/Blocks/BlocksDrawer/types.js +6 -0
- package/dist/forms/fields/Blocks/RowActions.js +52 -0
- package/dist/forms/fields/Blocks/SectionTitle/index.js +54 -0
- package/dist/forms/fields/Blocks/SectionTitle/types.js +6 -0
- package/dist/forms/fields/Blocks/index.js +317 -0
- package/dist/forms/fields/Blocks/types.js +6 -0
- package/dist/forms/fields/Checkbox/Input.js +56 -0
- package/dist/forms/fields/Checkbox/index.js +134 -0
- package/dist/forms/fields/Checkbox/types.js +6 -0
- package/dist/forms/fields/Code/index.js +115 -0
- package/dist/forms/fields/Code/types.js +6 -0
- package/dist/forms/fields/Collapsible/index.js +169 -0
- package/dist/forms/fields/Collapsible/types.js +6 -0
- package/dist/forms/fields/ConfirmPassword/index.js +112 -0
- package/dist/forms/fields/ConfirmPassword/types.js +6 -0
- package/dist/forms/fields/DateTime/index.js +115 -0
- package/dist/forms/fields/DateTime/types.js +6 -0
- package/dist/forms/fields/Email/index.js +121 -0
- package/dist/forms/fields/Email/types.js +6 -0
- package/dist/forms/fields/Group/index.js +127 -0
- package/dist/forms/fields/Group/provider.js +74 -0
- package/dist/forms/fields/Group/types.js +6 -0
- package/dist/forms/fields/HiddenInput/index.js +88 -0
- package/dist/forms/fields/HiddenInput/types.js +6 -0
- package/dist/forms/fields/JSON/index.js +137 -0
- package/dist/forms/fields/JSON/types.js +6 -0
- package/dist/forms/fields/Number/index.js +212 -0
- package/dist/forms/fields/Number/types.js +6 -0
- package/dist/forms/fields/Password/index.js +116 -0
- package/dist/forms/fields/Password/types.js +6 -0
- package/dist/forms/fields/Point/index.js +147 -0
- package/dist/forms/fields/Point/types.js +6 -0
- package/dist/forms/fields/RadioGroup/Radio/index.js +45 -0
- package/dist/forms/fields/RadioGroup/index.js +147 -0
- package/dist/forms/fields/RadioGroup/types.js +6 -0
- package/dist/forms/fields/Relationship/AddNew/index.js +216 -0
- package/dist/forms/fields/Relationship/AddNew/types.js +6 -0
- package/dist/forms/fields/Relationship/AddNew/useRelatedCollections.js +27 -0
- package/dist/forms/fields/Relationship/createRelationMap.js +59 -0
- package/dist/forms/fields/Relationship/findOptionsByValue.js +45 -0
- package/dist/forms/fields/Relationship/index.js +509 -0
- package/dist/forms/fields/Relationship/optionsReducer.js +126 -0
- package/dist/forms/fields/Relationship/select-components/MultiValueLabel/index.js +109 -0
- package/dist/forms/fields/Relationship/select-components/SingleValue/index.js +108 -0
- package/dist/forms/fields/Relationship/types.js +6 -0
- package/dist/forms/fields/RichText/index.js +16 -0
- package/dist/forms/fields/RichText/types.js +6 -0
- package/dist/forms/fields/Row/index.js +42 -0
- package/dist/forms/fields/Row/provider.js +74 -0
- package/dist/forms/fields/Row/types.js +6 -0
- package/dist/forms/fields/Select/index.js +183 -0
- package/dist/forms/fields/Select/types.js +6 -0
- package/dist/forms/fields/Tabs/Tab/index.js +85 -0
- package/dist/forms/fields/Tabs/index.js +167 -0
- package/dist/forms/fields/Tabs/provider.js +74 -0
- package/dist/forms/fields/Tabs/types.js +6 -0
- package/dist/forms/fields/Text/index.js +194 -0
- package/dist/forms/fields/Text/types.js +6 -0
- package/dist/forms/fields/Textarea/index.js +133 -0
- package/dist/forms/fields/Textarea/types.js +6 -0
- package/dist/forms/fields/UI/index.js +16 -0
- package/dist/forms/fields/Upload/Input.js +3 -0
- package/dist/forms/fields/Upload/index.js +210 -0
- package/dist/forms/fields/Upload/types.js +6 -0
- package/dist/forms/fields/getFilterOptionsQuery.js +39 -0
- package/dist/forms/fields/index.js +67 -0
- package/dist/forms/fields/shared.js +29 -0
- package/dist/forms/useField/index.js +169 -0
- package/dist/forms/useField/types.js +6 -0
- package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.js +335 -0
- package/dist/forms/utilities/buildStateFromSchema/buildStateFromSchema.spec.js +76 -0
- package/dist/forms/utilities/buildStateFromSchema/index.js +35 -0
- package/dist/forms/utilities/buildStateFromSchema/iterateFields.js +48 -0
- package/dist/forms/withCondition/WatchCondition.js +66 -0
- package/dist/forms/withCondition/index.js +33 -0
- package/dist/graphics/Account/Default/index.js +43 -0
- package/dist/graphics/Account/Gravatar/index.js +42 -0
- package/dist/graphics/Account/index.js +50 -0
- package/dist/graphics/DefaultBlockImage/index.js +84 -0
- package/dist/graphics/ExternalLink/index.js +34 -0
- package/dist/graphics/File/index.js +36 -0
- package/dist/graphics/Icon/index.js +64 -0
- package/dist/graphics/Logo/index.js +60 -0
- package/dist/graphics/Search/index.js +42 -0
- package/dist/hooks/useAdminThumbnail.js +17 -0
- package/dist/hooks/useDebounce.js +31 -0
- package/dist/hooks/useDebouncedCallback.js +29 -0
- package/dist/hooks/useDebouncedEffect.js +32 -0
- package/dist/hooks/useDelay.js +82 -0
- package/dist/hooks/useDelayedRender.js +97 -0
- package/dist/hooks/useHotkey.js +129 -0
- package/dist/hooks/useIntersect.js +39 -0
- package/dist/hooks/usePayloadAPI.js +94 -0
- package/dist/hooks/useResize.js +59 -0
- package/dist/hooks/useThrottledEffect.js +31 -0
- package/dist/hooks/useThumbnail.js +57 -0
- package/dist/hooks/useUseAsTitle.js +19 -0
- package/dist/icons/Calendar/index.js +48 -0
- package/dist/icons/Check/index.js +34 -0
- package/dist/icons/Chevron/index.js +36 -0
- package/dist/icons/CloseMenu/index.js +39 -0
- package/dist/icons/CodeBlock/index.js +32 -0
- package/dist/icons/Copy/index.js +33 -0
- package/dist/icons/DragHandle/index.js +57 -0
- package/dist/icons/Edit/index.js +37 -0
- package/dist/icons/Line/index.js +30 -0
- package/dist/icons/Link/index.js +33 -0
- package/dist/icons/LogOut/index.js +37 -0
- package/dist/icons/Menu/index.js +45 -0
- package/dist/icons/MinimizeMaximize/index.js +87 -0
- package/dist/icons/More/index.js +42 -0
- package/dist/icons/Plus/index.js +36 -0
- package/dist/icons/Search/index.js +36 -0
- package/dist/icons/Swap/index.js +43 -0
- package/dist/icons/X/index.js +41 -0
- package/dist/index.js +20 -0
- package/dist/providers/ActionsProvider/index.js +89 -0
- package/dist/providers/Auth/HydrateClientUser/index.js +28 -0
- package/dist/providers/Auth/index.js +373 -0
- package/dist/providers/Auth/types.js +6 -0
- package/dist/providers/ClientFunction/index.js +65 -0
- package/dist/providers/ComponentMapProvider/index.js +98 -0
- package/dist/providers/Config/index.js +70 -0
- package/dist/providers/CustomProvider/index.js +38 -0
- package/dist/providers/DocumentEvents/index.js +77 -0
- package/dist/providers/DocumentEvents/types.js +6 -0
- package/dist/providers/DocumentInfo/SetDocumentInfo/index.js +34 -0
- package/dist/providers/DocumentInfo/index.js +353 -0
- package/dist/providers/DocumentInfo/types.js +6 -0
- package/dist/providers/EditDepth/index.js +71 -0
- package/dist/providers/FormQueryParams/index.js +77 -0
- package/dist/providers/ListInfo/index.js +78 -0
- package/dist/providers/ListInfo/types.js +6 -0
- package/dist/providers/Locale/index.js +122 -0
- package/dist/providers/OperationProvider/index.js +71 -0
- package/dist/providers/Params/index.js +72 -0
- package/dist/providers/Portal/index.js +20 -0
- package/dist/providers/Preferences/index.js +184 -0
- package/dist/providers/Root/index.js +103 -0
- package/dist/providers/SearchParams/index.js +119 -0
- package/dist/providers/SearchParams/types.js +6 -0
- package/dist/providers/SelectionProvider/index.js +218 -0
- package/dist/providers/Theme/index.js +123 -0
- package/dist/providers/Theme/types.js +6 -0
- package/dist/providers/Theme/utilities.js +35 -0
- package/dist/providers/Translation/index.js +92 -0
- package/dist/templates/Default/NavHamburger/index.js +28 -0
- package/dist/templates/Default/Wrapper/index.js +32 -0
- package/dist/templates/Default/index.js +88 -0
- package/dist/templates/Default/types.js +6 -0
- package/dist/templates/Minimal/index.js +34 -0
- package/dist/templates/Minimal/types.js +6 -0
- package/dist/utilities/api.js +98 -0
- package/dist/utilities/arraysHaveSameStrings.js +28 -0
- package/dist/utilities/buildComponentMap/index.js +101 -0
- package/dist/utilities/buildComponentMap/mapFields.js +318 -0
- package/dist/utilities/buildComponentMap/types.js +6 -0
- package/dist/utilities/buildFieldSchemaMap/index.js +36 -0
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js +94 -0
- package/dist/utilities/buildFieldSchemaMap/types.js +6 -0
- package/dist/utilities/canUseDOM.js +13 -0
- package/dist/utilities/findLocaleFromCode.js +18 -0
- package/dist/utilities/formatDate/getSupportedDateLocale.js +21 -0
- package/dist/utilities/formatDate/index.js +78 -0
- package/dist/utilities/formatDocTitle.js +33 -0
- package/dist/utilities/formatFields.js +14 -0
- package/dist/utilities/getFormState.js +28 -0
- package/dist/utilities/getOffsetTop.js +26 -0
- package/dist/utilities/getRequestLanguage.js +17 -0
- package/dist/utilities/getSupportedMonacoLocale.js +26 -0
- package/dist/utilities/groupNavItems.js +61 -0
- package/dist/utilities/scrollToID.js +22 -0
- package/dist/utilities/setsAreEqual.js +17 -0
- package/dist/utilities/withMergedProps/index.js +27 -0
- package/dist/views/Global/RenderCustomView.js +3 -0
- package/package.json +3 -3
|
@@ -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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
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Publish", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function() {
|
|
9
|
+
return Publish;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
const _qs = /*#__PURE__*/ _interop_require_default(require("qs"));
|
|
13
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
14
|
+
const _RenderCustomComponent = require("../../elements/RenderCustomComponent");
|
|
15
|
+
const _context = require("../../forms/Form/context");
|
|
16
|
+
const _Submit = /*#__PURE__*/ _interop_require_default(require("../../forms/Submit"));
|
|
17
|
+
const _Config = require("../../providers/Config");
|
|
18
|
+
const _DocumentInfo = require("../../providers/DocumentInfo");
|
|
19
|
+
const _Locale = require("../../providers/Locale");
|
|
20
|
+
const _Translation = require("../../providers/Translation");
|
|
21
|
+
function _interop_require_default(obj) {
|
|
22
|
+
return obj && obj.__esModule ? obj : {
|
|
23
|
+
default: obj
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
27
|
+
if (typeof WeakMap !== "function") return null;
|
|
28
|
+
var cacheBabelInterop = new WeakMap();
|
|
29
|
+
var cacheNodeInterop = new WeakMap();
|
|
30
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
31
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
32
|
+
})(nodeInterop);
|
|
33
|
+
}
|
|
34
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
35
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
36
|
+
return obj;
|
|
37
|
+
}
|
|
38
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
39
|
+
return {
|
|
40
|
+
default: obj
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
44
|
+
if (cache && cache.has(obj)) {
|
|
45
|
+
return cache.get(obj);
|
|
46
|
+
}
|
|
47
|
+
var newObj = {
|
|
48
|
+
__proto__: null
|
|
49
|
+
};
|
|
50
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
51
|
+
for(var key in obj){
|
|
52
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
53
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
54
|
+
if (desc && (desc.get || desc.set)) {
|
|
55
|
+
Object.defineProperty(newObj, key, desc);
|
|
56
|
+
} else {
|
|
57
|
+
newObj[key] = obj[key];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
newObj.default = obj;
|
|
62
|
+
if (cache) {
|
|
63
|
+
cache.set(obj, newObj);
|
|
64
|
+
}
|
|
65
|
+
return newObj;
|
|
66
|
+
}
|
|
67
|
+
const DefaultPublishButton = ({ id, canPublish, disabled, label, publish })=>{
|
|
68
|
+
if (!canPublish) return null;
|
|
69
|
+
return /*#__PURE__*/ _react.default.createElement(_Submit.default, {
|
|
70
|
+
buttonId: id,
|
|
71
|
+
disabled: disabled,
|
|
72
|
+
onClick: publish,
|
|
73
|
+
size: "small",
|
|
74
|
+
type: "button"
|
|
75
|
+
}, label);
|
|
76
|
+
};
|
|
77
|
+
const Publish = ({ CustomComponent })=>{
|
|
78
|
+
const { code } = (0, _Locale.useLocale)();
|
|
79
|
+
const { id, collectionSlug, globalSlug, publishedDoc, unpublishedVersions } = (0, _DocumentInfo.useDocumentInfo)();
|
|
80
|
+
const [hasPublishPermission, setHasPublishPermission] = _react.default.useState(false);
|
|
81
|
+
const { getData, submit } = (0, _context.useForm)();
|
|
82
|
+
const modified = (0, _context.useFormModified)();
|
|
83
|
+
const { routes: { api }, serverURL } = (0, _Config.useConfig)();
|
|
84
|
+
const { t } = (0, _Translation.useTranslation)();
|
|
85
|
+
const hasNewerVersions = unpublishedVersions?.totalDocs > 0;
|
|
86
|
+
const canPublish = modified || hasNewerVersions || !publishedDoc;
|
|
87
|
+
const publish = (0, _react.useCallback)(()=>{
|
|
88
|
+
void submit({
|
|
89
|
+
overrides: {
|
|
90
|
+
_status: 'published'
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}, [
|
|
94
|
+
submit
|
|
95
|
+
]);
|
|
96
|
+
_react.default.useEffect(()=>{
|
|
97
|
+
const fetchPublishAccess = async ()=>{
|
|
98
|
+
let docAccessURL;
|
|
99
|
+
let operation = 'update';
|
|
100
|
+
const params = {
|
|
101
|
+
locale: code || undefined
|
|
102
|
+
};
|
|
103
|
+
if (globalSlug) {
|
|
104
|
+
docAccessURL = `/globals/${globalSlug}/access`;
|
|
105
|
+
} else if (collectionSlug) {
|
|
106
|
+
if (!id) operation = 'create';
|
|
107
|
+
docAccessURL = `/${collectionSlug}/access${id ? `/${id}` : ''}`;
|
|
108
|
+
}
|
|
109
|
+
if (docAccessURL) {
|
|
110
|
+
const data = getData();
|
|
111
|
+
const res = await fetch(`${serverURL}${api}${docAccessURL}?${_qs.default.stringify(params)}`, {
|
|
112
|
+
body: JSON.stringify({
|
|
113
|
+
...data,
|
|
114
|
+
_status: 'published'
|
|
115
|
+
}),
|
|
116
|
+
credentials: 'include',
|
|
117
|
+
headers: {
|
|
118
|
+
'Content-Type': 'application/json'
|
|
119
|
+
},
|
|
120
|
+
method: 'post'
|
|
121
|
+
});
|
|
122
|
+
const json = await res.json();
|
|
123
|
+
const result = Boolean(json?.[operation]?.permission);
|
|
124
|
+
setHasPublishPermission(result);
|
|
125
|
+
} else {
|
|
126
|
+
setHasPublishPermission(true);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
void fetchPublishAccess();
|
|
130
|
+
}, [
|
|
131
|
+
api,
|
|
132
|
+
code,
|
|
133
|
+
collectionSlug,
|
|
134
|
+
getData,
|
|
135
|
+
globalSlug,
|
|
136
|
+
id,
|
|
137
|
+
serverURL
|
|
138
|
+
]);
|
|
139
|
+
return /*#__PURE__*/ _react.default.createElement(_RenderCustomComponent.RenderCustomComponent, {
|
|
140
|
+
CustomComponent: CustomComponent,
|
|
141
|
+
DefaultComponent: DefaultPublishButton,
|
|
142
|
+
componentProps: {
|
|
143
|
+
id: 'action-save',
|
|
144
|
+
DefaultButton: DefaultPublishButton,
|
|
145
|
+
canPublish: hasPublishPermission,
|
|
146
|
+
disabled: !canPublish,
|
|
147
|
+
label: t('version:publishChanges'),
|
|
148
|
+
publish
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9QdWJsaXNoL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgQ3VzdG9tUHVibGlzaEJ1dHRvblByb3BzLCBEZWZhdWx0UHVibGlzaEJ1dHRvblByb3BzIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHFzIGZyb20gJ3FzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IFJlbmRlckN1c3RvbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL1JlbmRlckN1c3RvbUNvbXBvbmVudCdcbmltcG9ydCB7IHVzZUZvcm0sIHVzZUZvcm1Nb2RpZmllZCB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vY29udGV4dCdcbmltcG9ydCBGb3JtU3VibWl0IGZyb20gJy4uLy4uL2Zvcm1zL1N1Ym1pdCdcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9Db25maWcnXG5pbXBvcnQgeyB1c2VEb2N1bWVudEluZm8gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvRG9jdW1lbnRJbmZvJ1xuaW1wb3J0IHsgdXNlTG9jYWxlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL0xvY2FsZSdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL1RyYW5zbGF0aW9uJ1xuXG5jb25zdCBEZWZhdWx0UHVibGlzaEJ1dHRvbjogUmVhY3QuRkM8RGVmYXVsdFB1Ymxpc2hCdXR0b25Qcm9wcz4gPSAoe1xuICBpZCxcbiAgY2FuUHVibGlzaCxcbiAgZGlzYWJsZWQsXG4gIGxhYmVsLFxuICBwdWJsaXNoLFxufSkgPT4ge1xuICBpZiAoIWNhblB1Ymxpc2gpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybVN1Ym1pdCBidXR0b25JZD17aWR9IGRpc2FibGVkPXtkaXNhYmxlZH0gb25DbGljaz17cHVibGlzaH0gc2l6ZT1cInNtYWxsXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAge2xhYmVsfVxuICAgIDwvRm9ybVN1Ym1pdD5cbiAgKVxufVxuXG50eXBlIFByb3BzID0ge1xuICBDdXN0b21Db21wb25lbnQ/OiBDdXN0b21QdWJsaXNoQnV0dG9uUHJvcHNcbn1cblxuZXhwb3J0IGNvbnN0IFB1Ymxpc2g6IFJlYWN0LkZDPFByb3BzPiA9ICh7IEN1c3RvbUNvbXBvbmVudCB9KSA9PiB7XG4gIGNvbnN0IHsgY29kZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyBpZCwgY29sbGVjdGlvblNsdWcsIGdsb2JhbFNsdWcsIHB1Ymxpc2hlZERvYywgdW5wdWJsaXNoZWRWZXJzaW9ucyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcbiAgY29uc3QgW2hhc1B1Ymxpc2hQZXJtaXNzaW9uLCBzZXRIYXNQdWJsaXNoUGVybWlzc2lvbl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyBnZXREYXRhLCBzdWJtaXQgfSA9IHVzZUZvcm0oKVxuICBjb25zdCBtb2RpZmllZCA9IHVzZUZvcm1Nb2RpZmllZCgpXG4gIGNvbnN0IHtcbiAgICByb3V0ZXM6IHsgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpXG5cbiAgY29uc3QgaGFzTmV3ZXJWZXJzaW9ucyA9IHVucHVibGlzaGVkVmVyc2lvbnM/LnRvdGFsRG9jcyA+IDBcbiAgY29uc3QgY2FuUHVibGlzaCA9IG1vZGlmaWVkIHx8IGhhc05ld2VyVmVyc2lvbnMgfHwgIXB1Ymxpc2hlZERvY1xuXG4gIGNvbnN0IHB1Ymxpc2ggPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgdm9pZCBzdWJtaXQoe1xuICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgIF9zdGF0dXM6ICdwdWJsaXNoZWQnLFxuICAgICAgfSxcbiAgICB9KVxuICB9LCBbc3VibWl0XSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGZldGNoUHVibGlzaEFjY2VzcyA9IGFzeW5jICgpID0+IHtcbiAgICAgIGxldCBkb2NBY2Nlc3NVUkw6IHN0cmluZ1xuICAgICAgbGV0IG9wZXJhdGlvbiA9ICd1cGRhdGUnXG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgbG9jYWxlOiBjb2RlIHx8IHVuZGVmaW5lZCxcbiAgICAgIH1cbiAgICAgIGlmIChnbG9iYWxTbHVnKSB7XG4gICAgICAgIGRvY0FjY2Vzc1VSTCA9IGAvZ2xvYmFscy8ke2dsb2JhbFNsdWd9L2FjY2Vzc2BcbiAgICAgIH0gZWxzZSBpZiAoY29sbGVjdGlvblNsdWcpIHtcbiAgICAgICAgaWYgKCFpZCkgb3BlcmF0aW9uID0gJ2NyZWF0ZSdcbiAgICAgICAgZG9jQWNjZXNzVVJMID0gYC8ke2NvbGxlY3Rpb25TbHVnfS9hY2Nlc3Mke2lkID8gYC8ke2lkfWAgOiAnJ31gXG4gICAgICB9XG5cbiAgICAgIGlmIChkb2NBY2Nlc3NVUkwpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGdldERhdGEoKVxuXG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGAke3NlcnZlclVSTH0ke2FwaX0ke2RvY0FjY2Vzc1VSTH0/JHtxcy5zdHJpbmdpZnkocGFyYW1zKX1gLCB7XG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgIF9zdGF0dXM6ICdwdWJsaXNoZWQnLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBqc29uID0gYXdhaXQgcmVzLmpzb24oKVxuICAgICAgICBjb25zdCByZXN1bHQgPSBCb29sZWFuKGpzb24/LltvcGVyYXRpb25dPy5wZXJtaXNzaW9uKVxuICAgICAgICBzZXRIYXNQdWJsaXNoUGVybWlzc2lvbihyZXN1bHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRIYXNQdWJsaXNoUGVybWlzc2lvbih0cnVlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHZvaWQgZmV0Y2hQdWJsaXNoQWNjZXNzKClcbiAgfSwgW2FwaSwgY29kZSwgY29sbGVjdGlvblNsdWcsIGdldERhdGEsIGdsb2JhbFNsdWcsIGlkLCBzZXJ2ZXJVUkxdKVxuXG4gIHJldHVybiAoXG4gICAgPFJlbmRlckN1c3RvbUNvbXBvbmVudFxuICAgICAgQ3VzdG9tQ29tcG9uZW50PXtDdXN0b21Db21wb25lbnR9XG4gICAgICBEZWZhdWx0Q29tcG9uZW50PXtEZWZhdWx0UHVibGlzaEJ1dHRvbn1cbiAgICAgIGNvbXBvbmVudFByb3BzPXt7XG4gICAgICAgIGlkOiAnYWN0aW9uLXNhdmUnLFxuICAgICAgICBEZWZhdWx0QnV0dG9uOiBEZWZhdWx0UHVibGlzaEJ1dHRvbixcbiAgICAgICAgY2FuUHVibGlzaDogaGFzUHVibGlzaFBlcm1pc3Npb24sXG4gICAgICAgIGRpc2FibGVkOiAhY2FuUHVibGlzaCxcbiAgICAgICAgbGFiZWw6IHQoJ3ZlcnNpb246cHVibGlzaENoYW5nZXMnKSxcbiAgICAgICAgcHVibGlzaCxcbiAgICAgIH19XG4gICAgLz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlB1Ymxpc2giLCJEZWZhdWx0UHVibGlzaEJ1dHRvbiIsImlkIiwiY2FuUHVibGlzaCIsImRpc2FibGVkIiwibGFiZWwiLCJwdWJsaXNoIiwiRm9ybVN1Ym1pdCIsImJ1dHRvbklkIiwib25DbGljayIsInNpemUiLCJ0eXBlIiwiQ3VzdG9tQ29tcG9uZW50IiwiY29kZSIsInVzZUxvY2FsZSIsImNvbGxlY3Rpb25TbHVnIiwiZ2xvYmFsU2x1ZyIsInB1Ymxpc2hlZERvYyIsInVucHVibGlzaGVkVmVyc2lvbnMiLCJ1c2VEb2N1bWVudEluZm8iLCJoYXNQdWJsaXNoUGVybWlzc2lvbiIsInNldEhhc1B1Ymxpc2hQZXJtaXNzaW9uIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsImdldERhdGEiLCJzdWJtaXQiLCJ1c2VGb3JtIiwibW9kaWZpZWQiLCJ1c2VGb3JtTW9kaWZpZWQiLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJ1c2VDb25maWciLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJoYXNOZXdlclZlcnNpb25zIiwidG90YWxEb2NzIiwidXNlQ2FsbGJhY2siLCJvdmVycmlkZXMiLCJfc3RhdHVzIiwidXNlRWZmZWN0IiwiZmV0Y2hQdWJsaXNoQWNjZXNzIiwiZG9jQWNjZXNzVVJMIiwib3BlcmF0aW9uIiwicGFyYW1zIiwibG9jYWxlIiwidW5kZWZpbmVkIiwiZGF0YSIsInJlcyIsImZldGNoIiwicXMiLCJzdHJpbmdpZnkiLCJib2R5IiwiSlNPTiIsImNyZWRlbnRpYWxzIiwiaGVhZGVycyIsIm1ldGhvZCIsImpzb24iLCJyZXN1bHQiLCJCb29sZWFuIiwicGVybWlzc2lvbiIsIlJlbmRlckN1c3RvbUNvbXBvbmVudCIsIkRlZmF1bHRDb21wb25lbnQiLCJjb21wb25lbnRQcm9wcyIsIkRlZmF1bHRCdXR0b24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkFrQ2FBOzs7ZUFBQUE7OzsyREEvQkU7K0RBQ29CO3VDQUVHO3lCQUNHOytEQUNsQjt3QkFDRzs4QkFDTTt3QkFDTjs2QkFDSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0IsTUFBTUMsdUJBQTRELENBQUMsRUFDakVDLEVBQUUsRUFDRkMsVUFBVSxFQUNWQyxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsT0FBTyxFQUNSO0lBQ0MsSUFBSSxDQUFDSCxZQUFZLE9BQU87SUFFeEIscUJBQ0UsNkJBQUNJLGVBQVU7UUFBQ0MsVUFBVU47UUFBSUUs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
|