@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.
- 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.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +207 -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.d.ts +2 -2
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/elements/Header/index.js +140 -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.d.ts.map +1 -1
- package/dist/elements/Logout/index.js +49 -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.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +106 -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.d.ts.map +1 -1
- 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.d.ts +2 -2
- package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/elements/SearchFilter/index.js +139 -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.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +139 -0
- package/dist/elements/SortColumn/types.js +6 -0
- package/dist/elements/SortComplex/index.d.ts.map +1 -1
- package/dist/elements/SortComplex/index.js +157 -0
- package/dist/elements/SortComplex/types.js +6 -0
- package/dist/elements/Status/index.js +202 -0
- package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +127 -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 +5 -5
|
@@ -0,0 +1,317 @@
|
|
|
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 _translations = require("@payloadcms/translations");
|
|
13
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
14
|
+
const _Banner = /*#__PURE__*/ _interop_require_default(require("../../../elements/Banner"));
|
|
15
|
+
const _Button = require("../../../elements/Button");
|
|
16
|
+
const _DraggableSortable = /*#__PURE__*/ _interop_require_default(require("../../../elements/DraggableSortable"));
|
|
17
|
+
const _DraggableSortableItem = /*#__PURE__*/ _interop_require_default(require("../../../elements/DraggableSortable/DraggableSortableItem"));
|
|
18
|
+
const _Drawer = require("../../../elements/Drawer");
|
|
19
|
+
const _useDrawerSlug = require("../../../elements/Drawer/useDrawerSlug");
|
|
20
|
+
const _ErrorPill = require("../../../elements/ErrorPill");
|
|
21
|
+
const _Config = require("../../../providers/Config");
|
|
22
|
+
const _DocumentInfo = require("../../../providers/DocumentInfo");
|
|
23
|
+
const _Locale = require("../../../providers/Locale");
|
|
24
|
+
const _Translation = require("../../../providers/Translation");
|
|
25
|
+
const _scrollToID = require("../../../utilities/scrollToID");
|
|
26
|
+
const _context = require("../../Form/context");
|
|
27
|
+
const _Label = /*#__PURE__*/ _interop_require_default(require("../../Label"));
|
|
28
|
+
const _NullifyField = require("../../NullifyField");
|
|
29
|
+
const _useField = /*#__PURE__*/ _interop_require_default(require("../../useField"));
|
|
30
|
+
const _shared = require("../shared");
|
|
31
|
+
const _BlockRow = require("./BlockRow");
|
|
32
|
+
const _BlocksDrawer = require("./BlocksDrawer");
|
|
33
|
+
require("./index.scss");
|
|
34
|
+
function _interop_require_default(obj) {
|
|
35
|
+
return obj && obj.__esModule ? obj : {
|
|
36
|
+
default: obj
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
40
|
+
if (typeof WeakMap !== "function") return null;
|
|
41
|
+
var cacheBabelInterop = new WeakMap();
|
|
42
|
+
var cacheNodeInterop = new WeakMap();
|
|
43
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
44
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
45
|
+
})(nodeInterop);
|
|
46
|
+
}
|
|
47
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
48
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
49
|
+
return obj;
|
|
50
|
+
}
|
|
51
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
52
|
+
return {
|
|
53
|
+
default: obj
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
57
|
+
if (cache && cache.has(obj)) {
|
|
58
|
+
return cache.get(obj);
|
|
59
|
+
}
|
|
60
|
+
var newObj = {
|
|
61
|
+
__proto__: null
|
|
62
|
+
};
|
|
63
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
64
|
+
for(var key in obj){
|
|
65
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
66
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
67
|
+
if (desc && (desc.get || desc.set)) {
|
|
68
|
+
Object.defineProperty(newObj, key, desc);
|
|
69
|
+
} else {
|
|
70
|
+
newObj[key] = obj[key];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
newObj.default = obj;
|
|
75
|
+
if (cache) {
|
|
76
|
+
cache.set(obj, newObj);
|
|
77
|
+
}
|
|
78
|
+
return newObj;
|
|
79
|
+
}
|
|
80
|
+
const baseClass = 'blocks-field';
|
|
81
|
+
const BlocksField = (props)=>{
|
|
82
|
+
const { i18n, t } = (0, _Translation.useTranslation)();
|
|
83
|
+
const { name, Description, Error, Label: LabelFromProps, className, forceRender = false, indexPath, label, localized, path: pathFromProps, permissions, readOnly, required, validate } = props;
|
|
84
|
+
const Label = LabelFromProps || /*#__PURE__*/ _react.default.createElement(_Label.default, {
|
|
85
|
+
label: label,
|
|
86
|
+
required: required
|
|
87
|
+
});
|
|
88
|
+
const minRows = 'minRows' in props ? props.minRows : 0;
|
|
89
|
+
const maxRows = 'maxRows' in props ? props.maxRows : undefined;
|
|
90
|
+
const blocks = 'blocks' in props ? props.blocks : undefined;
|
|
91
|
+
const labelsFromProps = 'labels' in props ? props.labels : undefined;
|
|
92
|
+
const { setDocFieldPreferences } = (0, _DocumentInfo.useDocumentInfo)();
|
|
93
|
+
const { dispatchFields, setModified } = (0, _context.useForm)();
|
|
94
|
+
const { code: locale } = (0, _Locale.useLocale)();
|
|
95
|
+
const { localization } = (0, _Config.useConfig)();
|
|
96
|
+
const drawerSlug = (0, _useDrawerSlug.useDrawerSlug)('blocks-drawer');
|
|
97
|
+
const submitted = (0, _context.useFormSubmitted)();
|
|
98
|
+
const labels = {
|
|
99
|
+
plural: t('fields:blocks'),
|
|
100
|
+
singular: t('fields:block'),
|
|
101
|
+
...labelsFromProps
|
|
102
|
+
};
|
|
103
|
+
const editingDefaultLocale = (()=>{
|
|
104
|
+
if (localization && localization.fallback) {
|
|
105
|
+
const defaultLocale = localization.defaultLocale || 'en';
|
|
106
|
+
return locale === defaultLocale;
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
})();
|
|
110
|
+
const memoizedValidate = (0, _react.useCallback)((value, options)=>{
|
|
111
|
+
// alternative locales can be null
|
|
112
|
+
if (!editingDefaultLocale && value === null) {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
if (typeof validate === 'function') {
|
|
116
|
+
return validate(value, {
|
|
117
|
+
...options,
|
|
118
|
+
maxRows,
|
|
119
|
+
minRows,
|
|
120
|
+
required
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}, [
|
|
124
|
+
maxRows,
|
|
125
|
+
minRows,
|
|
126
|
+
required,
|
|
127
|
+
validate,
|
|
128
|
+
editingDefaultLocale
|
|
129
|
+
]);
|
|
130
|
+
const { path, rows = [], schemaPath, showError, valid, value } = (0, _useField.default)({
|
|
131
|
+
hasRows: true,
|
|
132
|
+
path: pathFromProps || name,
|
|
133
|
+
validate: memoizedValidate
|
|
134
|
+
});
|
|
135
|
+
const addRow = (0, _react.useCallback)(async (rowIndex, blockType)=>{
|
|
136
|
+
dispatchFields({
|
|
137
|
+
blockType,
|
|
138
|
+
path,
|
|
139
|
+
rowIndex,
|
|
140
|
+
type: 'ADD_ROW'
|
|
141
|
+
});
|
|
142
|
+
setModified(true);
|
|
143
|
+
setTimeout(()=>{
|
|
144
|
+
(0, _scrollToID.scrollToID)(`${path}-row-${rowIndex + 1}`);
|
|
145
|
+
}, 0);
|
|
146
|
+
}, [
|
|
147
|
+
path,
|
|
148
|
+
setModified
|
|
149
|
+
]);
|
|
150
|
+
const duplicateRow = (0, _react.useCallback)((rowIndex)=>{
|
|
151
|
+
dispatchFields({
|
|
152
|
+
path,
|
|
153
|
+
rowIndex,
|
|
154
|
+
type: 'DUPLICATE_ROW'
|
|
155
|
+
});
|
|
156
|
+
setModified(true);
|
|
157
|
+
setTimeout(()=>{
|
|
158
|
+
(0, _scrollToID.scrollToID)(`${path}-row-${rowIndex + 1}`);
|
|
159
|
+
}, 0);
|
|
160
|
+
}, [
|
|
161
|
+
dispatchFields,
|
|
162
|
+
path,
|
|
163
|
+
setModified
|
|
164
|
+
]);
|
|
165
|
+
const removeRow = (0, _react.useCallback)((rowIndex)=>{
|
|
166
|
+
dispatchFields({
|
|
167
|
+
path,
|
|
168
|
+
rowIndex,
|
|
169
|
+
type: 'REMOVE_ROW'
|
|
170
|
+
});
|
|
171
|
+
setModified(true);
|
|
172
|
+
}, [
|
|
173
|
+
path,
|
|
174
|
+
dispatchFields,
|
|
175
|
+
setModified
|
|
176
|
+
]);
|
|
177
|
+
const moveRow = (0, _react.useCallback)((moveFromIndex, moveToIndex)=>{
|
|
178
|
+
dispatchFields({
|
|
179
|
+
moveFromIndex,
|
|
180
|
+
moveToIndex,
|
|
181
|
+
path,
|
|
182
|
+
type: 'MOVE_ROW'
|
|
183
|
+
});
|
|
184
|
+
setModified(true);
|
|
185
|
+
}, [
|
|
186
|
+
dispatchFields,
|
|
187
|
+
path,
|
|
188
|
+
setModified
|
|
189
|
+
]);
|
|
190
|
+
const toggleCollapseAll = (0, _react.useCallback)((collapsed)=>{
|
|
191
|
+
dispatchFields({
|
|
192
|
+
collapsed,
|
|
193
|
+
path,
|
|
194
|
+
setDocFieldPreferences,
|
|
195
|
+
type: 'SET_ALL_ROWS_COLLAPSED'
|
|
196
|
+
});
|
|
197
|
+
}, [
|
|
198
|
+
dispatchFields,
|
|
199
|
+
path,
|
|
200
|
+
setDocFieldPreferences
|
|
201
|
+
]);
|
|
202
|
+
const setCollapse = (0, _react.useCallback)((rowID, collapsed)=>{
|
|
203
|
+
dispatchFields({
|
|
204
|
+
collapsed,
|
|
205
|
+
path,
|
|
206
|
+
rowID,
|
|
207
|
+
setDocFieldPreferences,
|
|
208
|
+
type: 'SET_ROW_COLLAPSED'
|
|
209
|
+
});
|
|
210
|
+
}, [
|
|
211
|
+
dispatchFields,
|
|
212
|
+
path,
|
|
213
|
+
setDocFieldPreferences
|
|
214
|
+
]);
|
|
215
|
+
const hasMaxRows = maxRows && rows.length >= maxRows;
|
|
216
|
+
const fieldErrorCount = rows.reduce((total, row)=>total + (row?.errorPaths?.size || 0), 0);
|
|
217
|
+
const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0;
|
|
218
|
+
const showMinRows = rows.length < minRows || required && rows.length === 0;
|
|
219
|
+
const showRequired = readOnly && rows.length === 0;
|
|
220
|
+
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
221
|
+
className: [
|
|
222
|
+
_shared.fieldBaseClass,
|
|
223
|
+
baseClass,
|
|
224
|
+
className,
|
|
225
|
+
fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`
|
|
226
|
+
].filter(Boolean).join(' '),
|
|
227
|
+
id: `field-${path.replace(/\./g, '__')}`
|
|
228
|
+
}, showError && /*#__PURE__*/ _react.default.createElement("div", {
|
|
229
|
+
className: `${baseClass}__error-wrap`
|
|
230
|
+
}, Error), /*#__PURE__*/ _react.default.createElement("header", {
|
|
231
|
+
className: `${baseClass}__header`
|
|
232
|
+
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
233
|
+
className: `${baseClass}__header-wrap`
|
|
234
|
+
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
235
|
+
className: `${baseClass}__heading-with-error`
|
|
236
|
+
}, /*#__PURE__*/ _react.default.createElement("h3", null, Label), fieldHasErrors && fieldErrorCount > 0 && /*#__PURE__*/ _react.default.createElement(_ErrorPill.ErrorPill, {
|
|
237
|
+
count: fieldErrorCount,
|
|
238
|
+
i18n: i18n,
|
|
239
|
+
withMessage: true
|
|
240
|
+
})), rows.length > 0 && /*#__PURE__*/ _react.default.createElement("ul", {
|
|
241
|
+
className: `${baseClass}__header-actions`
|
|
242
|
+
}, /*#__PURE__*/ _react.default.createElement("li", null, /*#__PURE__*/ _react.default.createElement("button", {
|
|
243
|
+
className: `${baseClass}__header-action`,
|
|
244
|
+
onClick: ()=>toggleCollapseAll(true),
|
|
245
|
+
type: "button"
|
|
246
|
+
}, t('fields:collapseAll'))), /*#__PURE__*/ _react.default.createElement("li", null, /*#__PURE__*/ _react.default.createElement("button", {
|
|
247
|
+
className: `${baseClass}__header-action`,
|
|
248
|
+
onClick: ()=>toggleCollapseAll(false),
|
|
249
|
+
type: "button"
|
|
250
|
+
}, t('fields:showAll'))))), Description), /*#__PURE__*/ _react.default.createElement(_NullifyField.NullifyLocaleField, {
|
|
251
|
+
fieldValue: value,
|
|
252
|
+
localized: localized,
|
|
253
|
+
path: path
|
|
254
|
+
}), (rows.length > 0 || !valid && (showRequired || showMinRows)) && /*#__PURE__*/ _react.default.createElement(_DraggableSortable.default, {
|
|
255
|
+
className: `${baseClass}__rows`,
|
|
256
|
+
ids: rows.map((row)=>row.id),
|
|
257
|
+
onDragEnd: ({ moveFromIndex, moveToIndex })=>moveRow(moveFromIndex, moveToIndex)
|
|
258
|
+
}, rows.map((row, i)=>{
|
|
259
|
+
const { blockType } = row;
|
|
260
|
+
const blockToRender = blocks.find((block)=>block.slug === blockType);
|
|
261
|
+
if (blockToRender) {
|
|
262
|
+
return /*#__PURE__*/ _react.default.createElement(_DraggableSortableItem.default, {
|
|
263
|
+
disabled: readOnly,
|
|
264
|
+
id: row.id,
|
|
265
|
+
key: row.id
|
|
266
|
+
}, (draggableSortableItemProps)=>/*#__PURE__*/ _react.default.createElement(_BlockRow.BlockRow, {
|
|
267
|
+
...draggableSortableItemProps,
|
|
268
|
+
addRow: addRow,
|
|
269
|
+
block: blockToRender,
|
|
270
|
+
blocks: blocks,
|
|
271
|
+
duplicateRow: duplicateRow,
|
|
272
|
+
forceRender: forceRender,
|
|
273
|
+
hasMaxRows: hasMaxRows,
|
|
274
|
+
indexPath: indexPath,
|
|
275
|
+
labels: labels,
|
|
276
|
+
moveRow: moveRow,
|
|
277
|
+
path: path,
|
|
278
|
+
permissions: permissions,
|
|
279
|
+
readOnly: readOnly,
|
|
280
|
+
removeRow: removeRow,
|
|
281
|
+
row: row,
|
|
282
|
+
rowCount: rows.length,
|
|
283
|
+
rowIndex: i,
|
|
284
|
+
schemaPath: schemaPath,
|
|
285
|
+
setCollapse: setCollapse
|
|
286
|
+
}));
|
|
287
|
+
}
|
|
288
|
+
return null;
|
|
289
|
+
}), !editingDefaultLocale && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, showMinRows && /*#__PURE__*/ _react.default.createElement(_Banner.default, {
|
|
290
|
+
type: "error"
|
|
291
|
+
}, t('validation:requiresAtLeast', {
|
|
292
|
+
count: minRows,
|
|
293
|
+
label: (0, _translations.getTranslation)(minRows === 1 || typeof minRows === 'undefined' ? labels.singular : labels.plural, i18n)
|
|
294
|
+
})), showRequired && /*#__PURE__*/ _react.default.createElement(_Banner.default, null, t('validation:fieldHasNo', {
|
|
295
|
+
label: (0, _translations.getTranslation)(labels.plural, i18n)
|
|
296
|
+
})))), !readOnly && !hasMaxRows && /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, /*#__PURE__*/ _react.default.createElement(_Drawer.DrawerToggler, {
|
|
297
|
+
className: `${baseClass}__drawer-toggler`,
|
|
298
|
+
slug: drawerSlug
|
|
299
|
+
}, /*#__PURE__*/ _react.default.createElement(_Button.Button, {
|
|
300
|
+
buttonStyle: "icon-label",
|
|
301
|
+
el: "span",
|
|
302
|
+
icon: "plus",
|
|
303
|
+
iconPosition: "left",
|
|
304
|
+
iconStyle: "with-border"
|
|
305
|
+
}, t('fields:addLabel', {
|
|
306
|
+
label: (0, _translations.getTranslation)(labels.singular, i18n)
|
|
307
|
+
}))), /*#__PURE__*/ _react.default.createElement(_BlocksDrawer.BlocksDrawer, {
|
|
308
|
+
addRow: addRow,
|
|
309
|
+
addRowIndex: rows?.length || 0,
|
|
310
|
+
blocks: blocks,
|
|
311
|
+
drawerSlug: drawerSlug,
|
|
312
|
+
labels: labels
|
|
313
|
+
})));
|
|
314
|
+
};
|
|
315
|
+
const _default = BlocksField;
|
|
316
|
+
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvQmxvY2tzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IEJhbm5lciBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9CYW5uZXInXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9CdXR0b24nXG5pbXBvcnQgRHJhZ2dhYmxlU29ydGFibGUgZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvRHJhZ2dhYmxlU29ydGFibGUnXG5pbXBvcnQgRHJhZ2dhYmxlU29ydGFibGVJdGVtIGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL0RyYWdnYWJsZVNvcnRhYmxlL0RyYWdnYWJsZVNvcnRhYmxlSXRlbSdcbmltcG9ydCB7IERyYXdlclRvZ2dsZXIgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9EcmF3ZXInXG5pbXBvcnQgeyB1c2VEcmF3ZXJTbHVnIH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvRHJhd2VyL3VzZURyYXdlclNsdWcnXG5pbXBvcnQgeyBFcnJvclBpbGwgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9FcnJvclBpbGwnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9Mb2NhbGUnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9UcmFuc2xhdGlvbidcbmltcG9ydCB7IHNjcm9sbFRvSUQgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvc2Nyb2xsVG9JRCdcbmltcG9ydCB7IHVzZUZvcm0sIHVzZUZvcm1TdWJtaXR0ZWQgfSBmcm9tICcuLi8uLi9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgTGFiZWxDb21wIGZyb20gJy4uLy4uL0xhYmVsJ1xuaW1wb3J0IHsgTnVsbGlmeUxvY2FsZUZpZWxkIH0gZnJvbSAnLi4vLi4vTnVsbGlmeUZpZWxkJ1xuaW1wb3J0IHVzZUZpZWxkIGZyb20gJy4uLy4uL3VzZUZpZWxkJ1xuaW1wb3J0IHsgZmllbGRCYXNlQ2xhc3MgfSBmcm9tICcuLi9zaGFyZWQnXG5pbXBvcnQgeyBCbG9ja1JvdyB9IGZyb20gJy4vQmxvY2tSb3cnXG5pbXBvcnQgeyBCbG9ja3NEcmF3ZXIgfSBmcm9tICcuL0Jsb2Nrc0RyYXdlcidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnYmxvY2tzLWZpZWxkJ1xuXG5jb25zdCBCbG9ja3NGaWVsZDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IHtcbiAgICBuYW1lLFxuICAgIERlc2NyaXB0aW9uLFxuICAgIEVycm9yLFxuICAgIExhYmVsOiBMYWJlbEZyb21Qcm9wcyxcbiAgICBjbGFzc05hbWUsXG4gICAgZm9yY2VSZW5kZXIgPSBmYWxzZSxcbiAgICBpbmRleFBhdGgsXG4gICAgbGFiZWwsXG4gICAgbG9jYWxpemVkLFxuICAgIHBhdGg6IHBhdGhGcm9tUHJvcHMsXG4gICAgcGVybWlzc2lvbnMsXG4gICAgcmVhZE9ubHksXG4gICAgcmVxdWlyZWQsXG4gICAgdmFsaWRhdGUsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IExhYmVsID0gTGFiZWxGcm9tUHJvcHMgfHwgPExhYmVsQ29tcCBsYWJlbD17bGFiZWx9IHJlcXVpcmVkPXtyZXF1aXJlZH0gLz5cblxuICBjb25zdCBtaW5Sb3dzID0gJ21pblJvd3MnIGluIHByb3BzID8gcHJvcHMubWluUm93cyA6IDBcbiAgY29uc3QgbWF4Um93cyA9ICdtYXhSb3dzJyBpbiBwcm9wcyA/IHByb3BzLm1heFJvd3MgOiB1bmRlZmluZWRcbiAgY29uc3QgYmxvY2tzID0gJ2Jsb2NrcycgaW4gcHJvcHMgPyBwcm9wcy5ibG9ja3MgOiB1bmRlZmluZWRcbiAgY29uc3QgbGFiZWxzRnJvbVByb3BzID0gJ2xhYmVscycgaW4gcHJvcHMgPyBwcm9wcy5sYWJlbHMgOiB1bmRlZmluZWRcblxuICBjb25zdCB7IHNldERvY0ZpZWxkUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG4gIGNvbnN0IHsgZGlzcGF0Y2hGaWVsZHMsIHNldE1vZGlmaWVkIH0gPSB1c2VGb3JtKClcbiAgY29uc3QgeyBjb2RlOiBsb2NhbGUgfSA9IHVzZUxvY2FsZSgpXG4gIGNvbnN0IHsgbG9jYWxpemF0aW9uIH0gPSB1c2VDb25maWcoKVxuICBjb25zdCBkcmF3ZXJTbHVnID0gdXNlRHJhd2VyU2x1ZygnYmxvY2tzLWRyYXdlcicpXG4gIGNvbnN0IHN1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuXG4gIGNvbnN0IGxhYmVscyA9IHtcbiAgICBwbHVyYWw6IHQoJ2ZpZWxkczpibG9ja3MnKSxcbiAgICBzaW5ndWxhcjogdCgnZmllbGRzOmJsb2NrJyksXG4gICAgLi4ubGFiZWxzRnJvbVByb3BzLFxuICB9XG5cbiAgY29uc3QgZWRpdGluZ0RlZmF1bHRMb2NhbGUgPSAoKCkgPT4ge1xuICAgIGlmIChsb2NhbGl6YXRpb24gJiYgbG9jYWxpemF0aW9uLmZhbGxiYWNrKSB7XG4gICAgICBjb25zdCBkZWZhdWx0TG9jYWxlID0gbG9jYWxpemF0aW9uLmRlZmF1bHRMb2NhbGUgfHwgJ2VuJ1xuICAgICAgcmV0dXJuIGxvY2FsZSA9PT0gZGVmYXVsdExvY2FsZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0pKClcblxuICBjb25zdCBtZW1vaXplZFZhbGlkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgICAvLyBhbHRlcm5hdGl2ZSBsb2NhbGVzIGNhbiBiZSBudWxsXG4gICAgICBpZiAoIWVkaXRpbmdEZWZhdWx0TG9jYWxlICYmIHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZSh2YWx1ZSwgeyAuLi5vcHRpb25zLCBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW21heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB2YWxpZGF0ZSwgZWRpdGluZ0RlZmF1bHRMb2NhbGVdLFxuICApXG5cbiAgY29uc3Qge1xuICAgIHBhdGgsXG4gICAgcm93cyA9IFtdLFxuICAgIHNjaGVtYVBhdGgsXG4gICAgc2hvd0Vycm9yLFxuICAgIHZhbGlkLFxuICAgIHZhbHVlLFxuICB9ID0gdXNlRmllbGQ8bnVtYmVyPih7XG4gICAgaGFzUm93czogdHJ1ZSxcbiAgICBwYXRoOiBwYXRoRnJvbVByb3BzIHx8IG5hbWUsXG4gICAgdmFsaWRhdGU6IG1lbW9pemVkVmFsaWRhdGUsXG4gIH0pXG5cbiAgY29uc3QgYWRkUm93ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHJvd0luZGV4OiBudW1iZXIsIGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgIGJsb2NrVHlwZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcm93SW5kZXgsXG4gICAgICAgIHR5cGU6ICdBRERfUk9XJyxcbiAgICAgIH0pXG5cbiAgICAgIHNldE1vZGlmaWVkKHRydWUpXG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0lEKGAke3BhdGh9LXJvdy0ke3Jvd0luZGV4ICsgMX1gKVxuICAgICAgfSwgMClcbiAgICB9LFxuICAgIFtwYXRoLCBzZXRNb2RpZmllZF0sXG4gIClcblxuICBjb25zdCBkdXBsaWNhdGVSb3cgPSB1c2VDYWxsYmFjayhcbiAgICAocm93SW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBwYXRoLCByb3dJbmRleCwgdHlwZTogJ0RVUExJQ0FURV9ST1cnIH0pXG4gICAgICBzZXRNb2RpZmllZCh0cnVlKVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2Nyb2xsVG9JRChgJHtwYXRofS1yb3ctJHtyb3dJbmRleCArIDF9YClcbiAgICAgIH0sIDApXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHMsIHBhdGgsIHNldE1vZGlmaWVkXSxcbiAgKVxuXG4gIGNvbnN0IHJlbW92ZVJvdyA9IHVzZUNhbGxiYWNrKFxuICAgIChyb3dJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJvd0luZGV4LFxuICAgICAgICB0eXBlOiAnUkVNT1ZFX1JPVycsXG4gICAgICB9KVxuXG4gICAgICBzZXRNb2RpZmllZCh0cnVlKVxuICAgIH0sXG4gICAgW3BhdGgsIGRpc3BhdGNoRmllbGRzLCBzZXRNb2RpZmllZF0sXG4gIClcblxuICBjb25zdCBtb3ZlUm93ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1vdmVGcm9tSW5kZXg6IG51bWJlciwgbW92ZVRvSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBtb3ZlRnJvbUluZGV4LCBtb3ZlVG9JbmRleCwgcGF0aCwgdHlwZTogJ01PVkVfUk9XJyB9KVxuICAgICAgc2V0TW9kaWZpZWQodHJ1ZSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgcGF0aCwgc2V0TW9kaWZpZWRdLFxuICApXG5cbiAgY29uc3QgdG9nZ2xlQ29sbGFwc2VBbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoY29sbGFwc2VkOiBib29sZWFuKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IGNvbGxhcHNlZCwgcGF0aCwgc2V0RG9jRmllbGRQcmVmZXJlbmNlcywgdHlwZTogJ1NFVF9BTExfUk9XU19DT0xMQVBTRUQnIH0pXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHMsIHBhdGgsIHNldERvY0ZpZWxkUHJlZmVyZW5jZXNdLFxuICApXG5cbiAgY29uc3Qgc2V0Q29sbGFwc2UgPSB1c2VDYWxsYmFjayhcbiAgICAocm93SUQ6IHN0cmluZywgY29sbGFwc2VkOiBib29sZWFuKSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IGNvbGxhcHNlZCwgcGF0aCwgcm93SUQsIHNldERvY0ZpZWxkUHJlZmVyZW5jZXMsIHR5cGU6ICdTRVRfUk9XX0NPTExBUFNFRCcgfSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgcGF0aCwgc2V0RG9jRmllbGRQcmVmZXJlbmNlc10sXG4gIClcblxuICBjb25zdCBoYXNNYXhSb3dzID0gbWF4Um93cyAmJiByb3dzLmxlbmd0aCA+PSBtYXhSb3dzXG5cbiAgY29uc3QgZmllbGRFcnJvckNvdW50ID0gcm93cy5yZWR1Y2UoKHRvdGFsLCByb3cpID0+IHRvdGFsICsgKHJvdz8uZXJyb3JQYXRocz8uc2l6ZSB8fCAwKSwgMClcbiAgY29uc3QgZmllbGRIYXNFcnJvcnMgPSBzdWJtaXR0ZWQgJiYgZmllbGRFcnJvckNvdW50ICsgKHZhbGlkID8gMCA6IDEpID4gMFxuXG4gIGNvbnN0IHNob3dNaW5Sb3dzID0gcm93cy5sZW5ndGggPCBtaW5Sb3dzIHx8IChyZXF1aXJlZCAmJiByb3dzLmxlbmd0aCA9PT0gMClcbiAgY29uc3Qgc2hvd1JlcXVpcmVkID0gcmVhZE9ubHkgJiYgcm93cy5sZW5ndGggPT09IDBcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17W1xuICAgICAgICBmaWVsZEJhc2VDbGFzcyxcbiAgICAgICAgYmFzZUNsYXNzLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIGZpZWxkSGFzRXJyb3JzID8gYCR7YmFzZUNsYXNzfS0taGFzLWVycm9yYCA6IGAke2Jhc2VDbGFzc30tLWhhcy1uby1lcnJvcmAsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgIGlkPXtgZmllbGQtJHtwYXRoLnJlcGxhY2UoL1xcLi9nLCAnX18nKX1gfVxuICAgID5cbiAgICAgIHtzaG93RXJyb3IgJiYgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Vycm9yLXdyYXBgfT57RXJyb3J9PC9kaXY+fVxuICAgICAgPGhlYWRlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hlYWRlcmB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyLXdyYXBgfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGluZy13aXRoLWVycm9yYH0+XG4gICAgICAgICAgICA8aDM+e0xhYmVsfTwvaDM+XG4gICAgICAgICAgICB7ZmllbGRIYXNFcnJvcnMgJiYgZmllbGRFcnJvckNvdW50ID4gMCAmJiAoXG4gICAgICAgICAgICAgIDxFcnJvclBpbGwgY291bnQ9e2ZpZWxkRXJyb3JDb3VudH0gaTE4bj17aTE4bn0gd2l0aE1lc3NhZ2UgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAge3Jvd3MubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8dWwgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItYWN0aW9uc2B9PlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItYWN0aW9uYH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZUNvbGxhcHNlQWxsKHRydWUpfVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3QoJ2ZpZWxkczpjb2xsYXBzZUFsbCcpfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItYWN0aW9uYH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZUNvbGxhcHNlQWxsKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt0KCdmaWVsZHM6c2hvd0FsbCcpfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge0Rlc2NyaXB0aW9ufVxuICAgICAgPC9oZWFkZXI+XG4gICAgICA8TnVsbGlmeUxvY2FsZUZpZWxkIGZpZWxkVmFsdWU9e3ZhbHVlfSBsb2NhbGl6ZWQ9e2xvY2FsaXplZH0gcGF0aD17cGF0aH0gLz5cbiAgICAgIHsocm93cy5sZW5ndGggPiAwIHx8ICghdmFsaWQgJiYgKHNob3dSZXF1aXJlZCB8fCBzaG93TWluUm93cykpKSAmJiAoXG4gICAgICAgIDxEcmFnZ2FibGVTb3J0YWJsZVxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcm93c2B9XG4gICAgICAgICAgaWRzPXtyb3dzLm1hcCgocm93KSA9PiByb3cuaWQpfVxuICAgICAgICAgIG9uRHJhZ0VuZD17KHsgbW92ZUZyb21JbmRleCwgbW92ZVRvSW5kZXggfSkgPT4gbW92ZVJvdyhtb3ZlRnJvbUluZGV4LCBtb3ZlVG9JbmRleCl9XG4gICAgICAgID5cbiAgICAgICAgICB7cm93cy5tYXAoKHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9ja1R5cGUgfSA9IHJvd1xuICAgICAgICAgICAgY29uc3QgYmxvY2tUb1JlbmRlciA9IGJsb2Nrcy5maW5kKChibG9jaykgPT4gYmxvY2suc2x1ZyA9PT0gYmxvY2tUeXBlKVxuXG4gICAgICAgICAgICBpZiAoYmxvY2tUb1JlbmRlcikge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxEcmFnZ2FibGVTb3J0YWJsZUl0ZW0gZGlzYWJsZWQ9e3JlYWRPbmx5fSBpZD17cm93LmlkfSBrZXk9e3Jvdy5pZH0+XG4gICAgICAgICAgICAgICAgICB7KGRyYWdnYWJsZVNvcnRhYmxlSXRlbVByb3BzKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxCbG9ja1Jvd1xuICAgICAgICAgICAgICAgICAgICAgIHsuLi5kcmFnZ2FibGVTb3J0YWJsZUl0ZW1Qcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICBhZGRSb3c9e2FkZFJvd31cbiAgICAgICAgICAgICAgICAgICAgICBibG9jaz17YmxvY2tUb1JlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICBibG9ja3M9e2Jsb2Nrc31cbiAgICAgICAgICAgICAgICAgICAgICBkdXBsaWNhdGVSb3c9e2R1cGxpY2F0ZVJvd31cbiAgICAgICAgICAgICAgICAgICAgICBmb3JjZVJlbmRlcj17Zm9yY2VSZW5kZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgaGFzTWF4Um93cz17aGFzTWF4Um93c31cbiAgICAgICAgICAgICAgICAgICAgICBpbmRleFBhdGg9e2luZGV4UGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHM9e2xhYmVsc31cbiAgICAgICAgICAgICAgICAgICAgICBtb3ZlUm93PXttb3ZlUm93fVxuICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnM9e3Blcm1pc3Npb25zfVxuICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICByZW1vdmVSb3c9e3JlbW92ZVJvd31cbiAgICAgICAgICAgICAgICAgICAgICByb3c9e3Jvd31cbiAgICAgICAgICAgICAgICAgICAgICByb3dDb3VudD17cm93cy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgICAgICAgcm93SW5kZXg9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1hUGF0aD17c2NoZW1hUGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICBzZXRDb2xsYXBzZT17c2V0Q29sbGFwc2V9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvRHJhZ2dhYmxlU29ydGFibGVJdGVtPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgeyFlZGl0aW5nRGVmYXVsdExvY2FsZSAmJiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgIHtzaG93TWluUm93cyAmJiAoXG4gICAgICAgICAgICAgICAgPEJhbm5lciB0eXBlPVwiZXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgIHt0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnQ6IG1pblJvd3MsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXRUcmFuc2xhdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICBtaW5Sb3dzID09PSAxIHx8IHR5cGVvZiBtaW5Sb3dzID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBsYWJlbHMuc2luZ3VsYXJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbGFiZWxzLnBsdXJhbCxcbiAgICAgICAgICAgICAgICAgICAgICBpMThuLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9CYW5uZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtzaG93UmVxdWlyZWQgJiYgKFxuICAgICAgICAgICAgICAgIDxCYW5uZXI+XG4gICAgICAgICAgICAgICAgICB7dCgndmFsaWRhdGlvbjpmaWVsZEhhc05vJywgeyBsYWJlbDogZ2V0VHJhbnNsYXRpb24obGFiZWxzLnBsdXJhbCwgaTE4bikgfSl9XG4gICAgICAgICAgICAgICAgPC9CYW5uZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRHJhZ2dhYmxlU29ydGFibGU+XG4gICAgICApfVxuICAgICAgeyFyZWFkT25seSAmJiAhaGFzTWF4Um93cyAmJiAoXG4gICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICA8RHJhd2VyVG9nZ2xlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2RyYXdlci10b2dnbGVyYH0gc2x1Zz17ZHJhd2VyU2x1Z30+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwiaWNvbi1sYWJlbFwiXG4gICAgICAgICAgICAgIGVsPVwic3BhblwiXG4gICAgICAgICAgICAgIGljb249XCJwbHVzXCJcbiAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgIGljb25TdHlsZT1cIndpdGgtYm9yZGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3QoJ2ZpZWxkczphZGRMYWJlbCcsIHsgbGFiZWw6IGdldFRyYW5zbGF0aW9uKGxhYmVscy5zaW5ndWxhciwgaTE4bikgfSl9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0RyYXdlclRvZ2dsZXI+XG4gICAgICAgICAgPEJsb2Nrc0RyYXdlclxuICAgICAgICAgICAgYWRkUm93PXthZGRSb3d9XG4gICAgICAgICAgICBhZGRSb3dJbmRleD17cm93cz8ubGVuZ3RoIHx8IDB9XG4gICAgICAgICAgICBibG9ja3M9e2Jsb2Nrc31cbiAgICAgICAgICAgIGRyYXdlclNsdWc9e2RyYXdlclNsdWd9XG4gICAgICAgICAgICBsYWJlbHM9e2xhYmVsc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBCbG9ja3NGaWVsZFxuIl0sIm5hbWVzIjpbImJhc2VDbGFzcyIsIkJsb2Nrc0ZpZWxkIiwicHJvcHMiLCJpMThuIiwidCIsInVzZVRyYW5zbGF0aW9uIiwibmFtZSIsIkRlc2NyaXB0aW9uIiwiRXJyb3IiLCJMYWJlbCIsIkxhYmVsRnJvbVByb3BzIiwiY2xhc3NOYW1lIiwiZm9yY2VSZW5kZXIiLCJpbmRleFBhdGgiLCJsYWJlbCIsImxvY2FsaXplZCIsInBhdGgiLCJwYXRoRnJvbVByb3BzIiwicGVybWlzc2lvbnMiLCJyZWFkT25seSIsInJlcXVpcmVkIiwidmFsaWRhdGUiLCJMYWJlbENvbXAiLCJtaW5Sb3dzIiwibWF4Um93cyIsInVuZGVmaW5lZCIsImJsb2NrcyIsImxhYmVsc0Zyb21Qcm9wcyIsImxhYmVscyIsInNldERvY0ZpZWxkUHJlZmVyZW5jZXMiLCJ1c2VEb2N1bWVudEluZm8iLCJkaXNwYXRjaEZpZWxkcyIsInNldE1vZGlmaWVkIiwidXNlRm9ybSIsImNvZGUiLCJsb2NhbGUiLCJ1c2VMb2NhbGUiLCJsb2NhbGl6YXRpb24iLCJ1c2VDb25maWciLCJkcmF3ZXJTbHVnIiwidXNlRHJhd2VyU2x1ZyIsInN1Ym1pdHRlZCIsInVzZUZvcm1TdWJtaXR0ZWQiLCJwbHVyYWwiLCJzaW5ndWxhciIsImVkaXRpbmdEZWZhdWx0TG9jYWxlIiwiZmFsbGJhY2siLCJkZWZhdWx0TG9jYWxlIiwibWVtb2l6ZWRWYWxpZGF0ZSIsInVzZUNhbGxiYWNrIiwidmFsdWUiLCJvcHRpb25zIiwicm93cyIsInNjaGVtYVBhdGgiLCJzaG93RXJyb3IiLCJ2YWxpZCIsInVzZUZpZWxkIiwiaGFzUm93cyIsImFkZFJvdyIsInJvd0luZGV4IiwiYmxvY2tUeXBlIiwidHlwZSIsInNldFRpbWVvdXQiLCJzY3JvbGxUb0lEIiwiZHVwbGljYXRlUm93IiwicmVtb3ZlUm93IiwibW92ZVJvdyIsIm1vdmVGcm9tSW5kZXgiLCJtb3ZlVG9JbmRleCIsInRvZ2dsZUNvbGxhcHNlQWxsIiwiY29sbGFwc2VkIiwic2V0Q29sbGFwc2UiLCJyb3dJRCIsImhhc01heFJvd3MiLCJsZW5ndGgiLCJmaWVsZEVycm9yQ291bnQiLCJyZWR1Y2UiLCJ0b3RhbCIsInJvdyIsImVycm9yUGF0aHMiLCJzaXplIiwiZmllbGRIYXNFcnJvcnMiLCJzaG93TWluUm93cyIsInNob3dSZXF1aXJlZCIsImRpdiIsImZpZWxkQmFzZUNsYXNzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJpZCIsInJlcGxhY2UiLCJoZWFkZXIiLCJoMyIsIkVycm9yUGlsbCIsImNvdW50Iiwid2l0aE1lc3NhZ2UiLCJ1bCIsImxpIiwiYnV0dG9uIiwib25DbGljayIsIk51bGxpZnlMb2NhbGVGaWVsZCIsImZpZWxkVmFsdWUiLCJEcmFnZ2FibGVTb3J0YWJsZSIsImlkcyIsIm1hcCIsIm9uRHJhZ0VuZCIsImkiLCJibG9ja1RvUmVuZGVyIiwiZmluZCIsImJsb2NrIiwic2x1ZyIsIkRyYWdnYWJsZVNvcnRhYmxlSXRlbSIsImRpc2FibGVkIiwia2V5IiwiZHJhZ2dhYmxlU29ydGFibGVJdGVtUHJvcHMiLCJCbG9ja1JvdyIsInJvd0NvdW50IiwiUmVhY3QiLCJGcmFnbWVudCIsIkJhbm5lciIsImdldFRyYW5zbGF0aW9uIiwiRHJhd2VyVG9nZ2xlciIsIkJ1dHRvbiIsImJ1dHRvblN0eWxlIiwiZWwiLCJpY29uIiwiaWNvblBvc2l0aW9uIiwiaWNvblN0eWxlIiwiQmxvY2tzRHJhd2VyIiwiYWRkUm93SW5kZXgiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkE0VEE7OztlQUFBOzs7OEJBM1QrQjsrREFDYzsrREFJMUI7d0JBQ0k7MEVBQ087OEVBQ0k7d0JBQ0o7K0JBQ0E7MkJBQ0o7d0JBQ0E7OEJBQ007d0JBQ047NkJBQ0s7NEJBQ0o7eUJBQ2U7OERBQ3BCOzhCQUNhO2lFQUNkO3dCQUNVOzBCQUNOOzhCQUNJO1FBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1BLFlBQVk7QUFFbEIsTUFBTUMsY0FBK0IsQ0FBQ0M7SUFDcEMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLENBQUMsRUFBRSxHQUFHQyxJQUFBQSwyQkFBYztJQUVsQyxNQUFNLEVBQ0pDLElBQUksRUFDSkMsV0FBVyxFQUNYQyxLQUFLLEVBQ0xDLE9BQU9DLGNBQWMsRUFDckJDLFNBQVMsRUFDVEMsY0FBYyxLQUFLLEVBQ25CQyxTQUFTLEVBQ1RDLEtBQUssRUFDTEMsU0FBUyxFQUNUQyxNQUFNQyxhQUFhLEVBQ25CQyxXQUFXLEVBQ1hDLFFBQVEsRUFDUkMsUUFBUSxFQUNSQyxRQUFRLEVBQ1QsR0FBR25CO0lBRUosTUFBTU8sUUFBUUMsZ0NBQWtCLDZCQUFDWSxjQUFTO1FBQUNSLE9BQU9BO1FBQU9NLFVBQVVBOztJQUVuRSxNQUFNRyxVQUFVLGFBQWFyQixRQUFRQSxNQUFNcUIsT0FBTyxHQUFHO0lBQ3JELE1BQU1DLFVBQVUsYUFBYXRCLFFBQVFBLE1BQU1zQixPQUFPLEdBQUdDO0lBQ3JELE1BQU1DLFNBQVMsWUFBWXhCLFFBQVFBLE1BQU13QixNQUFNLEdBQUdEO0lBQ2xELE1BQU1FLGtCQUFrQixZ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
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
function _export(target, all) {
|
|
7
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
CheckboxInput: function() {
|
|
14
|
+
return CheckboxInput;
|
|
15
|
+
},
|
|
16
|
+
inputBaseClass: function() {
|
|
17
|
+
return inputBaseClass;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
|
21
|
+
const _ = require("../../..");
|
|
22
|
+
function _interop_require_default(obj) {
|
|
23
|
+
return obj && obj.__esModule ? obj : {
|
|
24
|
+
default: obj
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const inputBaseClass = 'checkbox-input';
|
|
28
|
+
const CheckboxInput = ({ id, name, AfterInput, BeforeInput, Label, checked, className, inputRef, onToggle, partialChecked, readOnly, required })=>{
|
|
29
|
+
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
30
|
+
className: [
|
|
31
|
+
className,
|
|
32
|
+
inputBaseClass,
|
|
33
|
+
checked && `${inputBaseClass}--checked`,
|
|
34
|
+
readOnly && `${inputBaseClass}--read-only`
|
|
35
|
+
].filter(Boolean).join(' ')
|
|
36
|
+
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
37
|
+
className: `${inputBaseClass}__input`
|
|
38
|
+
}, BeforeInput, /*#__PURE__*/ _react.default.createElement("input", {
|
|
39
|
+
"aria-label": "",
|
|
40
|
+
defaultChecked: Boolean(checked),
|
|
41
|
+
disabled: readOnly,
|
|
42
|
+
id: id,
|
|
43
|
+
name: name,
|
|
44
|
+
onInput: onToggle,
|
|
45
|
+
ref: inputRef,
|
|
46
|
+
required: required,
|
|
47
|
+
type: "checkbox"
|
|
48
|
+
}), /*#__PURE__*/ _react.default.createElement("span", {
|
|
49
|
+
className: [
|
|
50
|
+
`${inputBaseClass}__icon`,
|
|
51
|
+
!checked && partialChecked ? 'check' : 'partial'
|
|
52
|
+
].filter(Boolean).join(' ')
|
|
53
|
+
}, checked && /*#__PURE__*/ _react.default.createElement(_.Check, null), !checked && partialChecked && /*#__PURE__*/ _react.default.createElement(_.Line, null)), AfterInput), Label);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvQ2hlY2tib3gvSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBDaGVjaywgTGluZSB9IGZyb20gJy4uLy4uLy4uJ1xuXG50eXBlIFByb3BzID0ge1xuICBBZnRlcklucHV0PzogUmVhY3QuUmVhY3ROb2RlXG4gIEJlZm9yZUlucHV0PzogUmVhY3QuUmVhY3ROb2RlXG4gIExhYmVsPzogUmVhY3QuUmVhY3ROb2RlXG4gIGNoZWNrZWQ/OiBib29sZWFuXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBpZD86IHN0cmluZ1xuICBpbnB1dFJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PlxuICBuYW1lPzogc3RyaW5nXG4gIG9uVG9nZ2xlOiAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkXG4gIHBhcnRpYWxDaGVja2VkPzogYm9vbGVhblxuICByZWFkT25seT86IGJvb2xlYW5cbiAgcmVxdWlyZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBpbnB1dEJhc2VDbGFzcyA9ICdjaGVja2JveC1pbnB1dCdcblxuZXhwb3J0IGNvbnN0IENoZWNrYm94SW5wdXQ6IFJlYWN0LkZDPFByb3BzPiA9ICh7XG4gIGlkLFxuICBuYW1lLFxuICBBZnRlcklucHV0LFxuICBCZWZvcmVJbnB1dCxcbiAgTGFiZWwsXG4gIGNoZWNrZWQsXG4gIGNsYXNzTmFtZSxcbiAgaW5wdXRSZWYsXG4gIG9uVG9nZ2xlLFxuICBwYXJ0aWFsQ2hlY2tlZCxcbiAgcmVhZE9ubHksXG4gIHJlcXVpcmVkLFxufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17W1xuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIGlucHV0QmFzZUNsYXNzLFxuICAgICAgICBjaGVja2VkICYmIGAke2lucHV0QmFzZUNsYXNzfS0tY2hlY2tlZGAsXG4gICAgICAgIHJlYWRPbmx5ICYmIGAke2lucHV0QmFzZUNsYXNzfS0tcmVhZC1vbmx5YCxcbiAgICAgIF1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtpbnB1dEJhc2VDbGFzc31fX2lucHV0YH0+XG4gICAgICAgIHtCZWZvcmVJbnB1dH1cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlwiXG4gICAgICAgICAgZGVmYXVsdENoZWNrZWQ9e0Jvb2xlYW4oY2hlY2tlZCl9XG4gICAgICAgICAgZGlzYWJsZWQ9e3JlYWRPbmx5fVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIG9uSW5wdXQ9e29uVG9nZ2xlfVxuICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3NOYW1lPXtbYCR7aW5wdXRCYXNlQ2xhc3N9X19pY29uYCwgIWNoZWNrZWQgJiYgcGFydGlhbENoZWNrZWQgPyAnY2hlY2snIDogJ3BhcnRpYWwnXVxuICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGVja2VkICYmIDxDaGVjayAvPn1cbiAgICAgICAgICB7IWNoZWNrZWQgJiYgcGFydGlhbENoZWNrZWQgJiYgPExpbmUgLz59XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAge0FmdGVySW5wdXR9XG4gICAgICA8L2Rpdj5cbiAgICAgIHtMYWJlbH1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkNoZWNrYm94SW5wdXQiLCJpbnB1dEJhc2VDbGFzcyIsImlkIiwibmFtZSIsIkFmdGVySW5wdXQiLCJCZWZvcmVJbnB1dCIsIkxhYmVsIiwiY2hlY2tlZCIsImNsYXNzTmFtZSIsImlucHV0UmVmIiwib25Ub2dnbGUiLCJwYXJ0aWFsQ2hlY2tlZCIsInJlYWRPbmx5IiwicmVxdWlyZWQiLCJkaXYiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImlucHV0IiwiYXJpYS1sYWJlbCIsImRlZmF1bHRDaGVja2VkIiwiZGlzYWJsZWQiLCJvbklucHV0IiwicmVmIiwidHlwZSIsInNwYW4iLCJDaGVjayIsIkxpbmUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFzQmFBLGFBQWE7ZUFBYkE7O0lBRkFDLGNBQWM7ZUFBZEE7Ozs4REFuQks7a0JBRVU7Ozs7OztBQWlCckIsTUFBTUEsaUJBQWlCO0FBRXZCLE1BQU1ELGdCQUFpQyxDQUFDLEVBQzdDRSxFQUFFLEVBQ0ZDLElBQUksRUFDSkMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLEtBQUssRUFDTEMsT0FBTyxFQUNQQyxTQUFTLEVBQ1RDLFFBQVEsRUFDUkMsUUFBUSxFQUNSQyxjQUFjLEVBQ2RDLFFBQVEsRUFDUkMsUUFBUSxFQUNUO0lBQ0MscUJBQ0UsNkJBQUNDO1FBQ0NOLFdBQVc7WUFDVEE7WUFDQVA7WUFDQU0sV0FBVyxDQUFDLEVBQUVOLGVBQWUsU0FBUyxDQUFDO1lBQ3ZDVyxZQUFZLENBQUMsRUFBRVgsZUFBZSxXQUFXLENBQUM7U0FDM0MsQ0FDRWMsTUFBTSxDQUFDQyxTQUNQQyxJQUFJLENBQUM7cUJBRVIsNkJBQUNIO1FBQUlOLFdBQVcsQ0FBQyxFQUFFUCxlQUFlLE9BQU8sQ0FBQztPQUN2Q0ksMkJBQ0QsNkJBQUNhO1FBQ0NDLGNBQVc7UUFDWEMsZ0JBQWdCSixRQUFRVDtRQUN4QmMsVUFBVVQ7UUFDVlYsSUFBSUE7UUFDSkMsTUFBTUE7UUFDTm1CLFNBQVNaO1FBQ1RhLEtBQUtkO1FBQ0xJLFVBQVVBO1FBQ1ZXLE1BQUs7c0JBRVAsNkJBQUNDO1FBQ0NqQixXQUFXO1lBQUMsQ0FBQyxFQUFFUCxlQUFlLE1BQU0sQ0FBQztZQUFFLENBQUNNLFdBQVdJLGlCQUFpQixVQUFVO1NBQVUsQ0FDckZJLE1BQU0sQ0FBQ0MsU0FDUEMsSUFBSSxDQUFDO09BRVBWLHlCQUFXLDZCQUFDbUIsT0FBSyxTQUNqQixDQUFDbkIsV0FBV0ksZ0NBQWtCLDZCQUFDZ0IsTUFBSSxVQUVyQ3ZCLGFBRUZFO0FBR1AifQ==
|
|
@@ -0,0 +1,134 @@
|
|
|
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 _context = require("../../Form/context");
|
|
14
|
+
const _Label = /*#__PURE__*/ _interop_require_default(require("../../Label"));
|
|
15
|
+
const _useField = /*#__PURE__*/ _interop_require_default(require("../../useField"));
|
|
16
|
+
const _withCondition = require("../../withCondition");
|
|
17
|
+
const _shared = require("../shared");
|
|
18
|
+
const _Input = require("./Input");
|
|
19
|
+
require("./index.scss");
|
|
20
|
+
function _interop_require_default(obj) {
|
|
21
|
+
return obj && obj.__esModule ? obj : {
|
|
22
|
+
default: obj
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
26
|
+
if (typeof WeakMap !== "function") return null;
|
|
27
|
+
var cacheBabelInterop = new WeakMap();
|
|
28
|
+
var cacheNodeInterop = new WeakMap();
|
|
29
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
30
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
31
|
+
})(nodeInterop);
|
|
32
|
+
}
|
|
33
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
34
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
35
|
+
return obj;
|
|
36
|
+
}
|
|
37
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
38
|
+
return {
|
|
39
|
+
default: obj
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
43
|
+
if (cache && cache.has(obj)) {
|
|
44
|
+
return cache.get(obj);
|
|
45
|
+
}
|
|
46
|
+
var newObj = {
|
|
47
|
+
__proto__: null
|
|
48
|
+
};
|
|
49
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
50
|
+
for(var key in obj){
|
|
51
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
52
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
53
|
+
if (desc && (desc.get || desc.set)) {
|
|
54
|
+
Object.defineProperty(newObj, key, desc);
|
|
55
|
+
} else {
|
|
56
|
+
newObj[key] = obj[key];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
newObj.default = obj;
|
|
61
|
+
if (cache) {
|
|
62
|
+
cache.set(obj, newObj);
|
|
63
|
+
}
|
|
64
|
+
return newObj;
|
|
65
|
+
}
|
|
66
|
+
const baseClass = 'checkbox';
|
|
67
|
+
const Checkbox = (props)=>{
|
|
68
|
+
const { id, name, AfterInput, BeforeInput, Description, Error, Label: LabelFromProps, checked: checkedFromProps, className, disableFormData, label, onChange: onChangeFromProps, partialChecked, path: pathFromProps, readOnly, required, style, validate, width } = props;
|
|
69
|
+
const { uuid } = (0, _context.useForm)();
|
|
70
|
+
const Label = LabelFromProps || /*#__PURE__*/ _react.default.createElement(_Label.default, {
|
|
71
|
+
label: label,
|
|
72
|
+
required: required
|
|
73
|
+
});
|
|
74
|
+
const memoizedValidate = (0, _react.useCallback)((value, options)=>{
|
|
75
|
+
if (typeof validate === 'function') {
|
|
76
|
+
return validate(value, {
|
|
77
|
+
...options,
|
|
78
|
+
required
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}, [
|
|
82
|
+
validate,
|
|
83
|
+
required
|
|
84
|
+
]);
|
|
85
|
+
const { path, setValue, showError, value } = (0, _useField.default)({
|
|
86
|
+
disableFormData,
|
|
87
|
+
path: pathFromProps || name,
|
|
88
|
+
validate: memoizedValidate
|
|
89
|
+
});
|
|
90
|
+
const onToggle = (0, _react.useCallback)(()=>{
|
|
91
|
+
if (!readOnly) {
|
|
92
|
+
setValue(!value);
|
|
93
|
+
if (typeof onChangeFromProps === 'function') onChangeFromProps(!value);
|
|
94
|
+
}
|
|
95
|
+
}, [
|
|
96
|
+
onChangeFromProps,
|
|
97
|
+
readOnly,
|
|
98
|
+
setValue,
|
|
99
|
+
value
|
|
100
|
+
]);
|
|
101
|
+
const checked = checkedFromProps || Boolean(value);
|
|
102
|
+
const fieldID = id || `field-${path?.replace(/\./g, '__')}${uuid ? `-${uuid}` : ''}`;
|
|
103
|
+
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
104
|
+
className: [
|
|
105
|
+
_shared.fieldBaseClass,
|
|
106
|
+
baseClass,
|
|
107
|
+
showError && 'error',
|
|
108
|
+
className,
|
|
109
|
+
value && `${baseClass}--checked`,
|
|
110
|
+
readOnly && `${baseClass}--read-only`
|
|
111
|
+
].filter(Boolean).join(' '),
|
|
112
|
+
style: {
|
|
113
|
+
...style,
|
|
114
|
+
width
|
|
115
|
+
}
|
|
116
|
+
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
117
|
+
className: `${baseClass}__error-wrap`
|
|
118
|
+
}, Error), /*#__PURE__*/ _react.default.createElement(_Input.CheckboxInput, {
|
|
119
|
+
AfterInput: AfterInput,
|
|
120
|
+
BeforeInput: BeforeInput,
|
|
121
|
+
Label: Label,
|
|
122
|
+
checked: checked,
|
|
123
|
+
id: fieldID,
|
|
124
|
+
inputRef: null,
|
|
125
|
+
name: path,
|
|
126
|
+
onToggle: onToggle,
|
|
127
|
+
partialChecked: partialChecked,
|
|
128
|
+
readOnly: readOnly,
|
|
129
|
+
required: required
|
|
130
|
+
}), Description);
|
|
131
|
+
};
|
|
132
|
+
const _default = (0, _withCondition.withCondition)(Checkbox);
|
|
133
|
+
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvQ2hlY2tib3gvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBDbGllbnRWYWxpZGF0ZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gJy4uLy4uL0Zvcm0vY29udGV4dCdcbmltcG9ydCBMYWJlbENvbXAgZnJvbSAnLi4vLi4vTGFiZWwnXG5pbXBvcnQgdXNlRmllbGQgZnJvbSAnLi4vLi4vdXNlRmllbGQnXG5pbXBvcnQgeyB3aXRoQ29uZGl0aW9uIH0gZnJvbSAnLi4vLi4vd2l0aENvbmRpdGlvbidcbmltcG9ydCB7IGZpZWxkQmFzZUNsYXNzIH0gZnJvbSAnLi4vc2hhcmVkJ1xuaW1wb3J0IHsgQ2hlY2tib3hJbnB1dCB9IGZyb20gJy4vSW5wdXQnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2NoZWNrYm94J1xuXG5jb25zdCBDaGVja2JveDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBuYW1lLFxuICAgIEFmdGVySW5wdXQsXG4gICAgQmVmb3JlSW5wdXQsXG4gICAgRGVzY3JpcHRpb24sXG4gICAgRXJyb3IsXG4gICAgTGFiZWw6IExhYmVsRnJvbVByb3BzLFxuICAgIGNoZWNrZWQ6IGNoZWNrZWRGcm9tUHJvcHMsXG4gICAgY2xhc3NOYW1lLFxuICAgIGRpc2FibGVGb3JtRGF0YSxcbiAgICBsYWJlbCxcbiAgICBvbkNoYW5nZTogb25DaGFuZ2VGcm9tUHJvcHMsXG4gICAgcGFydGlhbENoZWNrZWQsXG4gICAgcGF0aDogcGF0aEZyb21Qcm9wcyxcbiAgICByZWFkT25seSxcbiAgICByZXF1aXJlZCxcbiAgICBzdHlsZSxcbiAgICB2YWxpZGF0ZSxcbiAgICB3aWR0aCxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgeyB1dWlkIH0gPSB1c2VGb3JtKClcblxuICBjb25zdCBMYWJlbCA9IExhYmVsRnJvbVByb3BzIHx8IDxMYWJlbENvbXAgbGFiZWw9e2xhYmVsfSByZXF1aXJlZD17cmVxdWlyZWR9IC8+XG5cbiAgY29uc3QgbWVtb2l6ZWRWYWxpZGF0ZTogQ2xpZW50VmFsaWRhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlKHZhbHVlLCB7IC4uLm9wdGlvbnMsIHJlcXVpcmVkIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbdmFsaWRhdGUsIHJlcXVpcmVkXSxcbiAgKVxuXG4gIGNvbnN0IHsgcGF0aCwgc2V0VmFsdWUsIHNob3dFcnJvciwgdmFsdWUgfSA9IHVzZUZpZWxkKHtcbiAgICBkaXNhYmxlRm9ybURhdGEsXG4gICAgcGF0aDogcGF0aEZyb21Qcm9wcyB8fCBuYW1lLFxuICAgIHZhbGlkYXRlOiBtZW1vaXplZFZhbGlkYXRlLFxuICB9KVxuXG4gIGNvbnN0IG9uVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghcmVhZE9ubHkpIHtcbiAgICAgIHNldFZhbHVlKCF2YWx1ZSlcbiAgICAgIGlmICh0eXBlb2Ygb25DaGFuZ2VGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIG9uQ2hhbmdlRnJvbVByb3BzKCF2YWx1ZSlcbiAgICB9XG4gIH0sIFtvbkNoYW5nZUZyb21Qcm9wcywgcmVhZE9ubHksIHNldFZhbHVlLCB2YWx1ZV0pXG5cbiAgY29uc3QgY2hlY2tlZCA9IGNoZWNrZWRGcm9tUHJvcHMgfHwgQm9vbGVhbih2YWx1ZSlcblxuICBjb25zdCBmaWVsZElEID0gaWQgfHwgYGZpZWxkLSR7cGF0aD8ucmVwbGFjZSgvXFwuL2csICdfXycpfSR7dXVpZCA/IGAtJHt1dWlkfWAgOiAnJ31gXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgZmllbGRCYXNlQ2xhc3MsXG4gICAgICAgIGJhc2VDbGFzcyxcbiAgICAgICAgc2hvd0Vycm9yICYmICdlcnJvcicsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgdmFsdWUgJiYgYCR7YmFzZUNsYXNzfS0tY2hlY2tlZGAsXG4gICAgICAgIHJlYWRPbmx5ICYmIGAke2Jhc2VDbGFzc30tLXJlYWQtb25seWAsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIC4uLnN0eWxlLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Vycm9yLXdyYXBgfT57RXJyb3J9PC9kaXY+XG4gICAgICA8Q2hlY2tib3hJbnB1dFxuICAgICAgICBBZnRlcklucHV0PXtBZnRlcklucHV0fVxuICAgICAgICBCZWZvcmVJbnB1dD17QmVmb3JlSW5wdXR9XG4gICAgICAgIExhYmVsPXtMYWJlbH1cbiAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgICAgaWQ9e2ZpZWxkSUR9XG4gICAgICAgIGlucHV0UmVmPXtudWxsfVxuICAgICAgICBuYW1lPXtwYXRofVxuICAgICAgICBvblRvZ2dsZT17b25Ub2dnbGV9XG4gICAgICAgIHBhcnRpYWxDaGVja2VkPXtwYXJ0aWFsQ2hlY2tlZH1cbiAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAvPlxuICAgICAge0Rlc2NyaXB0aW9ufVxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhDb25kaXRpb24oQ2hlY2tib3gpXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwiQ2hlY2tib3giLCJwcm9wcyIsImlkIiwibmFtZSIsIkFmdGVySW5wdXQiLCJCZWZvcmVJbnB1dCIsIkRlc2NyaXB0aW9uIiwiRXJyb3IiLCJMYWJlbCIsIkxhYmVsRnJvbVByb3BzIiwiY2hlY2tlZCIsImNoZWNrZWRGcm9tUHJvcHMiLCJjbGFzc05hbWUiLCJkaXNhYmxlRm9ybURhdGEiLCJsYWJlbCIsIm9uQ2hhbmdlIiwib25DaGFuZ2VGcm9tUHJvcHMiLCJwYXJ0aWFsQ2hlY2tlZCIsInBhdGgiLCJwYXRoRnJvbVByb3BzIiwicmVhZE9ubHkiLCJyZXF1aXJlZCIsInN0eWxlIiwidmFsaWRhdGUiLCJ3aWR0aCIsInV1aWQiLCJ1c2VGb3JtIiwiTGFiZWxDb21wIiwibWVtb2l6ZWRWYWxpZGF0ZSIsInVzZUNhbGxiYWNrIiwidmFsdWUiLCJvcHRpb25zIiwic2V0VmFsdWUiLCJzaG93RXJyb3IiLCJ1c2VGaWVsZCIsIm9uVG9nZ2xlIiwiQm9vbGVhbiIsImZpZWxkSUQiLCJyZXBsYWNlIiwiZGl2IiwiZmllbGRCYXNlQ2xhc3MiLCJmaWx0ZXIiLCJqb2luIiwiQ2hlY2tib3hJbnB1dCIsImlucHV0UmVmIiwid2l0aENvbmRpdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQTBHQTs7O2VBQUE7OzsrREF2R21DO3lCQUlYOzhEQUNGO2lFQUNEOytCQUNTO3dCQUNDO3VCQUNEO1FBQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1BLFlBQVk7QUFFbEIsTUFBTUMsV0FBNEIsQ0FBQ0M7SUFDakMsTUFBTSxFQUNKQyxFQUFFLEVBQ0ZDLElBQUksRUFDSkMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsS0FBSyxFQUNMQyxPQUFPQyxjQUFjLEVBQ3JCQyxTQUFTQyxnQkFBZ0IsRUFDekJDLFNBQVMsRUFDVEMsZUFBZSxFQUNmQyxLQUFLLEVBQ0xDLFVBQVVDLGlCQUFpQixFQUMzQkMsY0FBYyxFQUNkQyxNQUFNQyxhQUFhLEVBQ25CQyxRQUFRLEVBQ1JDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyxRQUFRLEVBQ1JDLEtBQUssRUFDTixHQUFHdkI7SUFFSixNQUFNLEVBQUV3QixJQUFJLEVBQUUsR0FBR0MsSUFBQUEsZ0JBQU87SUFFeEIsTUFBTWxCLFFBQVFDLGdDQUFrQiw2QkFBQ2tCLGNBQVM7UUFBQ2IsT0FBT0E7UUFBT08sVUFBVUE7O0lBRW5FLE1BQU1PLG1CQUFtQ0MsSUFBQUEsa0JBQVcsRUFDbEQsQ0FBQ0MsT0FBT0M7UUFDTixJQUFJLE9BQU9SLGFBQWEsWUFBWTtZQUNsQyxPQUFPQSxTQUFTTyxPQUFPO2dCQUFFLEdBQUdDLE9BQU87Z0JBQUVWO1lBQVM7UUFDaEQ7SUFDRixHQUNBO1FBQUNFO1FBQVVGO0tBQVM7SUFHdEIsTUFBTSxFQUFFSCxJQUFJLEVBQUVjLFFBQVEsRUFBRUMsU0FBUyxFQUFFSCxLQUFLLEVBQUUsR0FBR0ksSUFBQUEsaUJBQVEsRUFBQztRQUNwRHJCO1FBQ0FLLE1BQU1DLGlCQUFpQmhCO1FBQ3ZCb0IsVUFBVUs7SUFDWjtJQUVBLE1BQU1PLFdBQVdOLElBQUFBLGtCQUFXLEVBQUM7UUFDM0IsSUFBSSxDQUFDVCxVQUFVO1lBQ2JZLFNBQVMsQ0FBQ0Y7WUFDVixJQUFJLE9BQU9kLHNCQUFzQixZQUFZQSxrQkFBa0IsQ0FBQ2M7UUFDbEU7SUFDRixHQUFHO1FBQUNkO1FBQW1CSTtRQUFVWTtRQUFVRjtLQUFNO0lBRWpELE1BQU1wQixVQUFVQyxvQkFBb0J5QixRQUFRTjtJQUU1QyxNQUFNTyxVQUFVbkMsTUFBTSxDQUFDLE1BQU0sRUFBRWdCLE1BQU1vQixRQUFRLE9BQU8sTUFBTSxFQUFFYixPQUFPLENBQUMsQ0FBQyxFQUFFQSxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7SUFFcEYscUJBQ0UsNkJBQUNjO1FBQ0MzQixXQUFXO1lBQ1Q0QixzQkFBYztZQUNkekM7WUFDQWtDLGFBQWE7WUFDYnJCO1lBQ0FrQixTQUFTLENBQUMsRUFBRS9CLFVBQVUsU0FBUyxDQUFDO1lBQ2hDcUIsWUFBWSxDQUFDLEVBQUVyQixVQUFVLFdBQVcsQ0FBQztTQUN0QyxDQUNFMEMsTUFBTSxDQUFDTCxTQUNQTSxJQUFJLENBQUM7UUFDUnBCLE9BQU87WUFDTCxHQUFHQSxLQUFLO1lBQ1JFO1FBQ0Y7cUJBRUEsNkJBQUNlO1FBQUkzQixXQUFXLENBQUMsRUFBRWIsVUFBVSxZQUFZLENBQUM7T0FBR1Esc0JBQzdDLDZCQUFDb0Msb0JBQWE7UUFDWnZDLFlBQVlBO1FBQ1pDLGFBQWFBO1FBQ2JHLE9BQU9BO1FBQ1BFLFNBQVNBO1FBQ1RSLElBQUltQztRQUNKTyxVQUFVO1FBQ1Z6QyxNQUFNZTtRQUNOaUIsVUFBVUE7UUFDVmxCLGdCQUFnQkE7UUFDaEJHLFVBQVVBO1FBQ1ZDLFVBQVVBO1FBRVhmO0FBR1A7TUFFQSxXQUFldUMsSUFBQUEsNEJBQWEsRUFBQzdDIn0=
|