@payloadcms/ui 3.0.0-beta.90 → 3.0.0-beta.92
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/elements/AddNewRelation/index.d.ts.map +1 -1
- package/dist/elements/AddNewRelation/index.js +1 -1
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AddNewRelation/index.scss +14 -4
- package/dist/elements/AppHeader/index.js +41 -80
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/Autosave/index.js +148 -231
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Button/index.js +86 -218
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Collapsible/index.js +44 -62
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/Collapsible/index.scss +15 -28
- package/dist/elements/CopyToClipboard/index.js +20 -54
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/Dropzone/index.js +59 -119
- package/dist/elements/Dropzone/index.js.map +1 -1
- package/dist/elements/EditMany/index.js +124 -230
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditUpload/index.js +133 -206
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/ListControls/index.js +82 -188
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/Nav/context.js +47 -83
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/SaveButton/index.js +30 -81
- package/dist/elements/SaveButton/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.js +54 -116
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.js +21 -77
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/Upload/index.js +130 -280
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-C4FLUUO7.js → CodeEditor-MTP455NO.js} +2 -2
- package/dist/exports/client/chunk-NJHSEGFB.js +14 -0
- package/dist/exports/client/{chunk-UGBVRIVY.js.map → chunk-NJHSEGFB.js.map} +2 -2
- package/dist/exports/client/index.d.ts +1 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +19 -19
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Relationship/index.js +318 -504
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +192 -422
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.scss +19 -1
- package/dist/forms/Submit/index.js +12 -28
- package/dist/forms/Submit/index.js.map +1 -1
- package/dist/hooks/useDelay.js +15 -48
- package/dist/hooks/useDelay.js.map +1 -1
- package/dist/hooks/useDelayedRender.js +32 -71
- package/dist/hooks/useDelayedRender.js.map +1 -1
- package/dist/hooks/useIntersect.js +14 -20
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/collections.js +8 -6
- package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
- package/dist/providers/Preferences/index.js +1 -3
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Selection/index.js +102 -190
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/scss/app.scss +6 -6
- package/dist/scss/type.scss +4 -4
- package/dist/styles.css +1 -1
- package/package.json +9 -9
- package/dist/exports/client/chunk-UGBVRIVY.js +0 -14
- /package/dist/exports/client/{CodeEditor-C4FLUUO7.js.map → CodeEditor-MTP455NO.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","qs","Fragment","useCallback","useEffect","useMemo","useState","AddNewRelation","Button","DraggableSortable","FileDetails","useListDrawer","useConfig","useLocale","useTranslation","FieldLabel","baseClass","UploadComponentHasMany","props","$","canCreate","field","t0","fieldHookResult","t1","readOnly","_path","admin","t2","hasMany","label","relationTo","components","t3","isSortable","Label","filterOptions","filterOptionsFromProps","setValue","value","i18n","t","config","t4","collections","routes","t5","serverURL","api","t6","bb0","t7","t8","id","t9","not_in","t10","t11","t12","undefined","Symbol","for","fileDocs","setFileDocs","missingFiles","setMissingFiles","code","language","length","query","depth","draft","locale","where","and","in","fetchFile","response","fetch","body","stringify","credentials","headers","method","ok","json","docs","moveItemInArray","array","moveFromIndex","moveToIndex","newArray","item","splice","moveFromIndex_0","moveToIndex_0","updatedArray","moveRow","index","updatedArray_0","removeItem","t13","map","_temp","t14","collectionSlugs","ListDrawer","ListDrawerToggler","t15","t16","coll","slug","collection_0","find","t17","selections","selectedIDs","Object","entries","reduce","acc","t18","key","value_0","onBulkSelect","t20","t21","t22","_jsx","className","join","children","buttonStyle","el","icon","iconPosition","iconStyle","unstyled","t23","t24","selection","docID","_jsxs","ids","onDragEnd","t19","moveFromIndex_1","moveToIndex_1","Boolean","index_0","doc_0","doc","uploadConfig","collection","upload","collectionSlug","rowIndex","disabled","onClick","type","enableRowSelections","onSelect"],"sources":["../../../../src/fields/Upload/HasMany/index.tsx"],"sourcesContent":["'use client'\nimport type { FilterOptionsResult, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { useSelection } from '../../../providers/Selection/index.js'\nimport type { UploadFieldPropsWithContext } from '../HasOne/index.js'\n\nimport { AddNewRelation } from '../../../elements/AddNewRelation/index.js'\nimport { Button } from '../../../elements/Button/index.js'\nimport { DraggableSortable } from '../../../elements/DraggableSortable/index.js'\nimport { FileDetails } from '../../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../../elements/ListDrawer/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { FieldLabel } from '../../FieldLabel/index.js'\n\nconst baseClass = 'upload upload--has-many'\n\nimport './index.scss'\n\nexport const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string[]>> = (props) => {\n const {\n canCreate,\n field,\n field: {\n _path,\n admin: {\n components: { Label },\n isSortable,\n },\n hasMany,\n label,\n relationTo,\n },\n fieldHookResult: { filterOptions: filterOptionsFromProps, setValue, value },\n readOnly,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n if (typeof relationTo === 'string') {\n return {\n ...filterOptionsFromProps,\n [relationTo]: {\n ...((filterOptionsFromProps?.[relationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[relationTo] as any)?.id || {}),\n not_in: (filterOptionsFromProps?.[relationTo] as any)?.id?.not_in || value,\n },\n },\n }\n }\n }, [value, relationTo, filterOptionsFromProps])\n\n const [fileDocs, setFileDocs] = useState([])\n const [missingFiles, setMissingFiles] = useState(false)\n\n const { code } = useLocale()\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value.length !== 0) {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: value,\n },\n },\n ],\n },\n }\n\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n setFileDocs(json.docs)\n } else {\n setMissingFiles(true)\n setFileDocs([])\n }\n }\n\n void fetchFile()\n }\n }, [value, relationTo, api, serverURL, i18n, code])\n\n function moveItemInArray<T>(array: T[], moveFromIndex: number, moveToIndex: number): T[] {\n const newArray = [...array]\n const [item] = newArray.splice(moveFromIndex, 1)\n\n newArray.splice(moveToIndex, 0, item)\n\n return newArray\n }\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n const updatedArray = moveItemInArray(value, moveFromIndex, moveToIndex)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const removeItem = useCallback(\n (index: number) => {\n const updatedArray = [...value]\n updatedArray.splice(index, 1)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const [ListDrawer, ListDrawerToggler] = useListDrawer({\n collectionSlugs:\n typeof relationTo === 'string'\n ? [relationTo]\n : collections.map((collection) => collection.slug),\n filterOptions,\n })\n\n const collection = collections.find((coll) => coll.slug === relationTo)\n\n const onBulkSelect = useCallback(\n (selections: ReturnType<typeof useSelection>['selected']) => {\n const selectedIDs = Object.entries(selections).reduce(\n (acc, [key, value]) => (value ? [...acc, key] : acc),\n [] as string[],\n )\n if (value?.length) setValue([...value, ...selectedIDs])\n else setValue(selectedIDs)\n },\n [setValue, value],\n )\n\n return (\n <Fragment>\n <div className={[baseClass].join(' ')}>\n <FieldLabel Label={Label} field={field} label={label} />\n\n <div>\n {missingFiles || !value?.length ? (\n <div className={[`${baseClass}__no-data`].join(' ')}>\n {t('version:noRowsFound', { label: relationTo })}\n </div>\n ) : (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={value}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {Boolean(value.length) &&\n value.map((id, index) => {\n const doc = fileDocs.find((doc) => doc.id === id)\n const uploadConfig = collection?.upload\n\n if (!doc) {\n return null\n }\n\n return (\n <FileDetails\n collectionSlug={relationTo}\n doc={doc}\n hasMany={true}\n isSortable={isSortable}\n key={id}\n removeItem={removeItem}\n rowIndex={index}\n uploadConfig={uploadConfig}\n />\n )\n })}\n </DraggableSortable>\n )}\n </div>\n\n <div className={[`${baseClass}__controls`].join(' ')}>\n <div className={[`${baseClass}__buttons`].join(' ')}>\n {canCreate && (\n <div className={[`${baseClass}__add-new`].join(' ')}>\n <AddNewRelation\n Button={\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addNew')}\n </Button>\n }\n hasMany={hasMany}\n path={_path}\n relationTo={relationTo}\n setValue={setValue}\n unstyled\n value={value}\n />\n </div>\n )}\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <div>\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n </div>\n </ListDrawerToggler>\n </div>\n <button className={`${baseClass}__clear-all`} onClick={() => setValue([])} type=\"button\">\n Clear all\n </button>\n </div>\n </div>\n <ListDrawer\n enableRowSelections\n onBulkSelect={onBulkSelect}\n onSelect={(selection) => {\n if (value?.length) setValue([...value, selection.docID])\n else setValue([selection.docID])\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["qs","Fragment","useCallback","useEffect","useMemo","useState","AddNewRelation","Button","DraggableSortable","FileDetails","useListDrawer","useConfig","useLocale","useTranslation","FieldLabel","baseClass","UploadComponentHasMany","props","canCreate","field","_path","admin","components","Label","isSortable","hasMany","label","relationTo","fieldHookResult","filterOptions","filterOptionsFromProps","setValue","value","readOnly","i18n","t","config","collections","routes","api","serverURL","id","not_in","fileDocs","setFileDocs","missingFiles","setMissingFiles","code","length","query","depth","draft","locale","where","and","in","fetchFile","response","fetch","body","stringify","credentials","headers","language","method","ok","json","docs","moveItemInArray","array","moveFromIndex","moveToIndex","newArray","item","splice","moveRow","updatedArray","removeItem","index","ListDrawer","ListDrawerToggler","collectionSlugs","map","collection","slug","find","coll","labels","joinWithCommaAndOr","items","or","join","slice","forEach","includes","push","singular","onBulkSelect","selections","selectedIDs","Object","entries","reduce","acc","key","_jsxs","className","_jsx","ids","onDragEnd","Boolean","doc","uploadConfig","upload","collectionSlug","rowIndex","buttonStyle","el","icon","iconPosition","iconStyle","path","unstyled","disabled","onClick","type","enableRowSelections","onSelect","selection","docID"],"sources":["../../../../src/fields/Upload/HasMany/index.tsx"],"sourcesContent":["'use client'\nimport type { FilterOptionsResult, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { useSelection } from '../../../providers/Selection/index.js'\nimport type { UploadFieldPropsWithContext } from '../HasOne/index.js'\n\nimport { AddNewRelation } from '../../../elements/AddNewRelation/index.js'\nimport { Button } from '../../../elements/Button/index.js'\nimport { DraggableSortable } from '../../../elements/DraggableSortable/index.js'\nimport { FileDetails } from '../../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../../elements/ListDrawer/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { FieldLabel } from '../../FieldLabel/index.js'\n\nconst baseClass = 'upload upload--has-many'\n\nimport './index.scss'\n\nexport const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string[]>> = (props) => {\n const {\n canCreate,\n field,\n field: {\n _path,\n admin: {\n components: { Label },\n isSortable,\n },\n hasMany,\n label,\n relationTo,\n },\n fieldHookResult: { filterOptions: filterOptionsFromProps, setValue, value },\n readOnly,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n if (typeof relationTo === 'string') {\n return {\n ...filterOptionsFromProps,\n [relationTo]: {\n ...((filterOptionsFromProps?.[relationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[relationTo] as any)?.id || {}),\n not_in: (filterOptionsFromProps?.[relationTo] as any)?.id?.not_in || value,\n },\n },\n }\n }\n }, [value, relationTo, filterOptionsFromProps])\n\n const [fileDocs, setFileDocs] = useState([])\n const [missingFiles, setMissingFiles] = useState(false)\n\n const { code } = useLocale()\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value.length !== 0) {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: value,\n },\n },\n ],\n },\n }\n\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n setFileDocs(json.docs)\n } else {\n setMissingFiles(true)\n setFileDocs([])\n }\n }\n\n void fetchFile()\n }\n }, [value, relationTo, api, serverURL, i18n, code])\n\n function moveItemInArray<T>(array: T[], moveFromIndex: number, moveToIndex: number): T[] {\n const newArray = [...array]\n const [item] = newArray.splice(moveFromIndex, 1)\n\n newArray.splice(moveToIndex, 0, item)\n\n return newArray\n }\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n const updatedArray = moveItemInArray(value, moveFromIndex, moveToIndex)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const removeItem = useCallback(\n (index: number) => {\n const updatedArray = [...value]\n updatedArray.splice(index, 1)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const [ListDrawer, ListDrawerToggler] = useListDrawer({\n collectionSlugs:\n typeof relationTo === 'string'\n ? [relationTo]\n : collections.map((collection) => collection.slug),\n filterOptions,\n })\n\n const collection = collections.find((coll) => coll.slug === relationTo)\n\n // Get the labels of the collections that the relation is to\n const labels = useMemo(() => {\n function joinWithCommaAndOr(items: string[]): string {\n const or = t('general:or')\n\n if (items.length === 0) return ''\n if (items.length === 1) return items[0]\n if (items.length === 2) return items.join(` ${or} `)\n\n return items.slice(0, -1).join(', ') + ` ${or} ` + items[items.length - 1]\n }\n\n const labels = []\n\n collections.forEach((collection) => {\n if (relationTo.includes(collection.slug)) {\n labels.push(collection.labels?.singular || collection.slug)\n }\n })\n\n return joinWithCommaAndOr(labels)\n }, [collections, relationTo, t])\n\n const onBulkSelect = useCallback(\n (selections: ReturnType<typeof useSelection>['selected']) => {\n const selectedIDs = Object.entries(selections).reduce(\n (acc, [key, value]) => (value ? [...acc, key] : acc),\n [] as string[],\n )\n if (value?.length) setValue([...value, ...selectedIDs])\n else setValue(selectedIDs)\n },\n [setValue, value],\n )\n\n return (\n <Fragment>\n <div className={[baseClass].join(' ')}>\n <FieldLabel Label={Label} field={field} label={label} />\n\n <div>\n {missingFiles || !value?.length ? (\n <div className={[`${baseClass}__no-data`].join(' ')}>\n {t('version:noRowsSelected', { label: labels })}\n </div>\n ) : (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={value}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {Boolean(value.length) &&\n value.map((id, index) => {\n const doc = fileDocs.find((doc) => doc.id === id)\n const uploadConfig = collection?.upload\n\n if (!doc) {\n return null\n }\n\n return (\n <FileDetails\n collectionSlug={relationTo}\n doc={doc}\n hasMany={true}\n isSortable={isSortable}\n key={id}\n removeItem={removeItem}\n rowIndex={index}\n uploadConfig={uploadConfig}\n />\n )\n })}\n </DraggableSortable>\n )}\n </div>\n\n <div className={[`${baseClass}__controls`].join(' ')}>\n <div className={[`${baseClass}__buttons`].join(' ')}>\n {canCreate && (\n <div className={[`${baseClass}__add-new`].join(' ')}>\n <AddNewRelation\n Button={\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addNew')}\n </Button>\n }\n hasMany={hasMany}\n path={_path}\n relationTo={relationTo}\n setValue={setValue}\n unstyled\n value={value}\n />\n </div>\n )}\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <div>\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n </div>\n </ListDrawerToggler>\n </div>\n {Boolean(value.length) && (\n <button\n className={`${baseClass}__clear-all`}\n onClick={() => setValue([])}\n type=\"button\"\n >\n {t('general:clearAll')}\n </button>\n )}\n </div>\n </div>\n <ListDrawer\n enableRowSelections\n onBulkSelect={onBulkSelect}\n onSelect={(selection) => {\n if (value?.length) setValue([...value, selection.docID])\n else setValue([selection.docID])\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,13 +6,23 @@
|
|
|
6
6
|
|
|
7
7
|
&__controls {
|
|
8
8
|
display: flex;
|
|
9
|
+
flex-wrap: wrap;
|
|
9
10
|
gap: base(2);
|
|
10
11
|
margin-top: base(1);
|
|
12
|
+
|
|
13
|
+
@include extra-small-break {
|
|
14
|
+
gap: base(1);
|
|
15
|
+
}
|
|
11
16
|
}
|
|
12
17
|
|
|
13
18
|
&__buttons {
|
|
14
19
|
display: flex;
|
|
20
|
+
flex-wrap: wrap;
|
|
15
21
|
gap: base(1);
|
|
22
|
+
|
|
23
|
+
& .relationship-add-new__add-button {
|
|
24
|
+
padding: 0;
|
|
25
|
+
}
|
|
16
26
|
}
|
|
17
27
|
|
|
18
28
|
&__add-new {
|
|
@@ -27,6 +37,12 @@
|
|
|
27
37
|
font-family: inherit;
|
|
28
38
|
color: inherit;
|
|
29
39
|
cursor: pointer;
|
|
40
|
+
margin-inline-start: auto;
|
|
41
|
+
color: var(--theme-elevation-800);
|
|
42
|
+
|
|
43
|
+
@include extra-small-break {
|
|
44
|
+
margin-inline-start: 0;
|
|
45
|
+
}
|
|
30
46
|
}
|
|
31
47
|
|
|
32
48
|
&__draggable-rows {
|
|
@@ -37,8 +53,10 @@
|
|
|
37
53
|
|
|
38
54
|
&__no-data {
|
|
39
55
|
background: var(--theme-elevation-50);
|
|
40
|
-
padding:
|
|
56
|
+
padding: 1rem 0.75rem;
|
|
41
57
|
border-radius: 3px;
|
|
58
|
+
color: var(--theme-elevation-700);
|
|
59
|
+
text-align: center;
|
|
42
60
|
}
|
|
43
61
|
}
|
|
44
62
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
4
|
import React, { forwardRef } from 'react';
|
|
6
5
|
import { Button } from '../../elements/Button/index.js';
|
|
@@ -8,43 +7,28 @@ import { useForm, useFormInitializing, useFormProcessing } from '../Form/context
|
|
|
8
7
|
import './index.scss';
|
|
9
8
|
const baseClass = 'form-submit';
|
|
10
9
|
export const FormSubmit = /*#__PURE__*/forwardRef((props, ref) => {
|
|
11
|
-
const $ = _c(7);
|
|
12
10
|
const {
|
|
13
|
-
type
|
|
11
|
+
type = 'submit',
|
|
14
12
|
buttonId: id,
|
|
15
13
|
children,
|
|
16
14
|
disabled: disabledFromProps
|
|
17
15
|
} = props;
|
|
18
|
-
const type = t0 === undefined ? "submit" : t0;
|
|
19
16
|
const processing = useFormProcessing();
|
|
20
17
|
const initializing = useFormInitializing();
|
|
21
18
|
const {
|
|
22
19
|
disabled
|
|
23
20
|
} = useForm();
|
|
24
21
|
const canSave = !(disabledFromProps || initializing || processing || disabled);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
})
|
|
37
|
-
});
|
|
38
|
-
$[0] = canSave;
|
|
39
|
-
$[1] = ref;
|
|
40
|
-
$[2] = props;
|
|
41
|
-
$[3] = id;
|
|
42
|
-
$[4] = type;
|
|
43
|
-
$[5] = children;
|
|
44
|
-
$[6] = t1;
|
|
45
|
-
} else {
|
|
46
|
-
t1 = $[6];
|
|
47
|
-
}
|
|
48
|
-
return t1;
|
|
22
|
+
return /*#__PURE__*/_jsx("div", {
|
|
23
|
+
className: baseClass,
|
|
24
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
25
|
+
ref: ref,
|
|
26
|
+
...props,
|
|
27
|
+
disabled: canSave ? undefined : true,
|
|
28
|
+
id: id,
|
|
29
|
+
type: type,
|
|
30
|
+
children: children
|
|
31
|
+
})
|
|
32
|
+
});
|
|
49
33
|
});
|
|
50
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","forwardRef","Button","useForm","useFormInitializing","useFormProcessing","baseClass","FormSubmit","props","ref","type","buttonId","id","children","disabled","disabledFromProps","processing","initializing","canSave","_jsx","className","undefined"],"sources":["../../../src/forms/Submit/index.tsx"],"sourcesContent":["'use client'\nimport React, { forwardRef } from 'react'\n\nimport type { Props } from '../../elements/Button/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useForm, useFormInitializing, useFormProcessing } from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'form-submit'\n\nexport const FormSubmit = forwardRef<HTMLButtonElement, Props>((props, ref) => {\n const { type = 'submit', buttonId: id, children, disabled: disabledFromProps } = props\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { disabled } = useForm()\n\n const canSave = !(disabledFromProps || initializing || processing || disabled)\n\n return (\n <div className={baseClass}>\n <Button ref={ref} {...props} disabled={canSave ? undefined : true} id={id} type={type}>\n {children}\n </Button>\n </div>\n )\n})\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,UAAU,QAAQ;AAIlC,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,EAAEC,mBAAmB,EAAEC,iBAAiB,QAAQ;AAChE,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,gBAAaN,UAAA,CAAqC,CAACO,KAAA,EAAOC,GAAA;EACrE,MAAM;IAAEC,IAAA,GAAO,QAAQ;IAAEC,QAAA,EAAUC,EAAE;IAAEC,QAAQ;IAAEC,QAAA,EAAUC;EAAiB,CAAE,GAAGP,KAAA;EACjF,MAAMQ,UAAA,GAAaX,iBAAA;EACnB,MAAMY,YAAA,GAAeb,mBAAA;EACrB,MAAM;IAAEU;EAAQ,CAAE,GAAGX,OAAA;EAErB,MAAMe,OAAA,GAAU,EAAEH,iBAAA,IAAqBE,YAAA,IAAgBD,UAAA,IAAcF,QAAO;EAE5E,oBACEK,IAAA,CAAC;IAAIC,SAAA,EAAWd,SAAA;cACd,aAAAa,IAAA,CAACjB,MAAA;MAAOO,GAAA,EAAKA,GAAA;MAAM,GAAGD,KAAK;MAAEM,QAAA,EAAUI,OAAA,GAAUG,SAAA,GAAY;MAAMT,EAAA,EAAIA,EAAA;MAAIF,IAAA,EAAMA,IAAA;gBAC9EG;;;AAIT","ignoreList":[]}
|
package/dist/hooks/useDelay.js
CHANGED
|
@@ -1,57 +1,24 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import * as React from 'react';
|
|
5
|
-
export const useDelay = (delay,
|
|
6
|
-
const $ = _c(9);
|
|
7
|
-
const triggerOnMount = t0 === undefined ? false : t0;
|
|
4
|
+
export const useDelay = (delay, triggerOnMount = false) => {
|
|
8
5
|
const [hasDelayed, setHasDelayed] = React.useState(false);
|
|
9
6
|
const triggerTimeoutRef = React.useRef(undefined);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
const triggerDelay = React.useCallback(() => {
|
|
8
|
+
setHasDelayed(false);
|
|
9
|
+
clearTimeout(triggerTimeoutRef.current);
|
|
10
|
+
triggerTimeoutRef.current = setTimeout(() => {
|
|
11
|
+
setHasDelayed(true);
|
|
12
|
+
}, delay);
|
|
13
|
+
return () => {
|
|
14
14
|
clearTimeout(triggerTimeoutRef.current);
|
|
15
|
-
triggerTimeoutRef.current = setTimeout(() => {
|
|
16
|
-
setHasDelayed(true);
|
|
17
|
-
}, delay);
|
|
18
|
-
return () => {
|
|
19
|
-
clearTimeout(triggerTimeoutRef.current);
|
|
20
|
-
};
|
|
21
15
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
let t3;
|
|
30
|
-
if ($[2] !== triggerOnMount || $[3] !== triggerDelay) {
|
|
31
|
-
t2 = () => {
|
|
32
|
-
if (triggerOnMount) {
|
|
33
|
-
triggerDelay();
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
t3 = [triggerDelay, triggerOnMount];
|
|
37
|
-
$[2] = triggerOnMount;
|
|
38
|
-
$[3] = triggerDelay;
|
|
39
|
-
$[4] = t2;
|
|
40
|
-
$[5] = t3;
|
|
41
|
-
} else {
|
|
42
|
-
t2 = $[4];
|
|
43
|
-
t3 = $[5];
|
|
44
|
-
}
|
|
45
|
-
React.useEffect(t2, t3);
|
|
46
|
-
let t4;
|
|
47
|
-
if ($[6] !== hasDelayed || $[7] !== triggerDelay) {
|
|
48
|
-
t4 = [hasDelayed, triggerDelay];
|
|
49
|
-
$[6] = hasDelayed;
|
|
50
|
-
$[7] = triggerDelay;
|
|
51
|
-
$[8] = t4;
|
|
52
|
-
} else {
|
|
53
|
-
t4 = $[8];
|
|
54
|
-
}
|
|
55
|
-
return t4;
|
|
16
|
+
}, [delay]);
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
if (triggerOnMount) {
|
|
19
|
+
triggerDelay();
|
|
20
|
+
}
|
|
21
|
+
}, [triggerDelay, triggerOnMount]);
|
|
22
|
+
return [hasDelayed, triggerDelay];
|
|
56
23
|
};
|
|
57
24
|
//# sourceMappingURL=useDelay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDelay.js","names":["
|
|
1
|
+
{"version":3,"file":"useDelay.js","names":["React","useDelay","delay","triggerOnMount","hasDelayed","setHasDelayed","useState","triggerTimeoutRef","useRef","undefined","triggerDelay","useCallback","clearTimeout","current","setTimeout","useEffect"],"sources":["../../src/hooks/useDelay.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\ntype Result = [boolean, () => void]\nexport const useDelay = (delay: number, triggerOnMount = false): Result => {\n const [hasDelayed, setHasDelayed] = React.useState(false)\n const triggerTimeoutRef = React.useRef<NodeJS.Timeout>(undefined)\n\n const triggerDelay = React.useCallback(() => {\n setHasDelayed(false)\n clearTimeout(triggerTimeoutRef.current)\n triggerTimeoutRef.current = setTimeout(() => {\n setHasDelayed(true)\n }, delay)\n\n return () => {\n clearTimeout(triggerTimeoutRef.current)\n }\n }, [delay])\n\n React.useEffect(() => {\n if (triggerOnMount) {\n triggerDelay()\n }\n }, [triggerDelay, triggerOnMount])\n\n return [hasDelayed, triggerDelay]\n}\n"],"mappings":"AAAA;;AACA,YAAYA,KAAA,MAAW;AAGvB,OAAO,MAAMC,QAAA,GAAWA,CAACC,KAAA,EAAeC,cAAA,GAAiB,KAAK;EAC5D,MAAM,CAACC,UAAA,EAAYC,aAAA,CAAc,GAAGL,KAAA,CAAMM,QAAQ,CAAC;EACnD,MAAMC,iBAAA,GAAoBP,KAAA,CAAMQ,MAAM,CAAiBC,SAAA;EAEvD,MAAMC,YAAA,GAAeV,KAAA,CAAMW,WAAW,CAAC;IACrCN,aAAA,CAAc;IACdO,YAAA,CAAaL,iBAAA,CAAkBM,OAAO;IACtCN,iBAAA,CAAkBM,OAAO,GAAGC,UAAA,CAAW;MACrCT,aAAA,CAAc;IAChB,GAAGH,KAAA;IAEH,OAAO;MACLU,YAAA,CAAaL,iBAAA,CAAkBM,OAAO;IACxC;EACF,GAAG,CAACX,KAAA,CAAM;EAEVF,KAAA,CAAMe,SAAS,CAAC;IACd,IAAIZ,cAAA,EAAgB;MAClBO,YAAA;IACF;EACF,GAAG,CAACA,YAAA,EAAcP,cAAA,CAAe;EAEjC,OAAO,CAACC,UAAA,EAAYM,YAAA,CAAa;AACnC","ignoreList":[]}
|
|
@@ -1,83 +1,44 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import * as React from 'react';
|
|
5
4
|
import { useDelay } from './useDelay.js';
|
|
6
|
-
export const useDelayedRender =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
show
|
|
14
|
-
} = t0;
|
|
5
|
+
export const useDelayedRender = ({
|
|
6
|
+
delayBeforeShow,
|
|
7
|
+
inTimeout,
|
|
8
|
+
minShowTime,
|
|
9
|
+
outTimeout,
|
|
10
|
+
show
|
|
11
|
+
}) => {
|
|
15
12
|
const totalMountTime = inTimeout + minShowTime + outTimeout;
|
|
16
13
|
const [hasDelayed, triggerDelay] = useDelay(delayBeforeShow);
|
|
17
14
|
const [isMounted, setIsMounted] = React.useState(false);
|
|
18
15
|
const [isUnmounting, setIsUnmounting] = React.useState(false);
|
|
19
16
|
const onMountTimestampRef = React.useRef(0);
|
|
20
17
|
const unmountTimeoutRef = React.useRef(undefined);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (shouldUnmount) {
|
|
47
|
-
const totalTimeMounted = Date.now() - onMountTimestampRef.current;
|
|
48
|
-
const remainingTime = totalMountTime - totalTimeMounted;
|
|
49
|
-
clearTimeout(unmountTimeoutRef.current);
|
|
50
|
-
unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
t3 = [isMounted, show, unmount, totalMountTime, hasDelayed];
|
|
55
|
-
$[2] = hasDelayed;
|
|
56
|
-
$[3] = isMounted;
|
|
57
|
-
$[4] = show;
|
|
58
|
-
$[5] = totalMountTime;
|
|
59
|
-
$[6] = unmount;
|
|
60
|
-
$[7] = t2;
|
|
61
|
-
$[8] = t3;
|
|
62
|
-
} else {
|
|
63
|
-
t2 = $[7];
|
|
64
|
-
t3 = $[8];
|
|
65
|
-
}
|
|
66
|
-
React.useEffect(t2, t3);
|
|
67
|
-
let t4;
|
|
68
|
-
if ($[9] !== isMounted || $[10] !== isUnmounting || $[11] !== triggerDelay) {
|
|
69
|
-
t4 = {
|
|
70
|
-
isMounted,
|
|
71
|
-
isUnmounting,
|
|
72
|
-
triggerDelayedRender: triggerDelay
|
|
73
|
-
};
|
|
74
|
-
$[9] = isMounted;
|
|
75
|
-
$[10] = isUnmounting;
|
|
76
|
-
$[11] = triggerDelay;
|
|
77
|
-
$[12] = t4;
|
|
78
|
-
} else {
|
|
79
|
-
t4 = $[12];
|
|
80
|
-
}
|
|
81
|
-
return t4;
|
|
18
|
+
const unmount = React.useCallback(() => {
|
|
19
|
+
setIsUnmounting(true);
|
|
20
|
+
unmountTimeoutRef.current = setTimeout(() => {
|
|
21
|
+
setIsMounted(false);
|
|
22
|
+
setIsUnmounting(false);
|
|
23
|
+
}, outTimeout);
|
|
24
|
+
}, [setIsUnmounting, outTimeout]);
|
|
25
|
+
React.useEffect(() => {
|
|
26
|
+
const shouldMount = hasDelayed && !isMounted && show;
|
|
27
|
+
const shouldUnmount = isMounted && !show;
|
|
28
|
+
if (shouldMount) {
|
|
29
|
+
onMountTimestampRef.current = Date.now();
|
|
30
|
+
setIsMounted(true);
|
|
31
|
+
} else if (shouldUnmount) {
|
|
32
|
+
const totalTimeMounted = Date.now() - onMountTimestampRef.current;
|
|
33
|
+
const remainingTime = totalMountTime - totalTimeMounted;
|
|
34
|
+
clearTimeout(unmountTimeoutRef.current);
|
|
35
|
+
unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime));
|
|
36
|
+
}
|
|
37
|
+
}, [isMounted, show, unmount, totalMountTime, hasDelayed]);
|
|
38
|
+
return {
|
|
39
|
+
isMounted,
|
|
40
|
+
isUnmounting,
|
|
41
|
+
triggerDelayedRender: triggerDelay
|
|
42
|
+
};
|
|
82
43
|
};
|
|
83
44
|
//# sourceMappingURL=useDelayedRender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDelayedRender.js","names":["
|
|
1
|
+
{"version":3,"file":"useDelayedRender.js","names":["React","useDelay","useDelayedRender","delayBeforeShow","inTimeout","minShowTime","outTimeout","show","totalMountTime","hasDelayed","triggerDelay","isMounted","setIsMounted","useState","isUnmounting","setIsUnmounting","onMountTimestampRef","useRef","unmountTimeoutRef","undefined","unmount","useCallback","current","setTimeout","useEffect","shouldMount","shouldUnmount","Date","now","totalTimeMounted","remainingTime","clearTimeout","Math","max","triggerDelayedRender"],"sources":["../../src/hooks/useDelayedRender.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { useDelay } from './useDelay.js'\n\ntype DelayedRenderProps = {\n /** Time in ms to wait before \"mounting\" the component. */\n delayBeforeShow: number\n /** Time in ms for the \"enter\" phase of the transition, after delay completes. */\n inTimeout: number\n /** Min time in ms for the \"entered\" phase of the transition. */\n minShowTime: number\n /** Time in ms for the exit phase of the transition. */\n outTimeout: number\n /** `true` starts the mount process.\n * `false` starts the unmount process.\n * */\n show: boolean\n}\ntype useDelayedRenderT = (props: DelayedRenderProps) => {\n /** `true` if the component has mounted after the timeout. */\n isMounted: boolean\n /** `true` if the component is unmounting. */\n isUnmounting: boolean\n /** Call this function to trigger the timeout delay before rendering. */\n triggerDelayedRender: () => void\n}\nexport const useDelayedRender: useDelayedRenderT = ({\n delayBeforeShow,\n inTimeout,\n minShowTime,\n outTimeout,\n show,\n}) => {\n const totalMountTime = inTimeout + minShowTime + outTimeout\n const [hasDelayed, triggerDelay] = useDelay(delayBeforeShow)\n const [isMounted, setIsMounted] = React.useState(false)\n const [isUnmounting, setIsUnmounting] = React.useState(false)\n const onMountTimestampRef = React.useRef(0)\n const unmountTimeoutRef: React.RefObject<NodeJS.Timeout | undefined> = React.useRef(undefined)\n\n const unmount = React.useCallback(() => {\n setIsUnmounting(true)\n unmountTimeoutRef.current = setTimeout(() => {\n setIsMounted(false)\n setIsUnmounting(false)\n }, outTimeout)\n }, [setIsUnmounting, outTimeout])\n\n React.useEffect(() => {\n const shouldMount = hasDelayed && !isMounted && show\n const shouldUnmount = isMounted && !show\n\n if (shouldMount) {\n onMountTimestampRef.current = Date.now()\n setIsMounted(true)\n } else if (shouldUnmount) {\n const totalTimeMounted = Date.now() - onMountTimestampRef.current\n const remainingTime = totalMountTime - totalTimeMounted\n clearTimeout(unmountTimeoutRef.current)\n unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime))\n }\n }, [isMounted, show, unmount, totalMountTime, hasDelayed])\n\n return {\n isMounted,\n isUnmounting,\n triggerDelayedRender: triggerDelay,\n }\n}\n"],"mappings":"AAAA;;AACA,YAAYA,KAAA,MAAW;AAEvB,SAASC,QAAQ,QAAQ;AAwBzB,OAAO,MAAMC,gBAAA,GAAsCA,CAAC;EAClDC,eAAe;EACfC,SAAS;EACTC,WAAW;EACXC,UAAU;EACVC;AAAI,CACL;EACC,MAAMC,cAAA,GAAiBJ,SAAA,GAAYC,WAAA,GAAcC,UAAA;EACjD,MAAM,CAACG,UAAA,EAAYC,YAAA,CAAa,GAAGT,QAAA,CAASE,eAAA;EAC5C,MAAM,CAACQ,SAAA,EAAWC,YAAA,CAAa,GAAGZ,KAAA,CAAMa,QAAQ,CAAC;EACjD,MAAM,CAACC,YAAA,EAAcC,eAAA,CAAgB,GAAGf,KAAA,CAAMa,QAAQ,CAAC;EACvD,MAAMG,mBAAA,GAAsBhB,KAAA,CAAMiB,MAAM,CAAC;EACzC,MAAMC,iBAAA,GAAiElB,KAAA,CAAMiB,MAAM,CAACE,SAAA;EAEpF,MAAMC,OAAA,GAAUpB,KAAA,CAAMqB,WAAW,CAAC;IAChCN,eAAA,CAAgB;IAChBG,iBAAA,CAAkBI,OAAO,GAAGC,UAAA,CAAW;MACrCX,YAAA,CAAa;MACbG,eAAA,CAAgB;IAClB,GAAGT,UAAA;EACL,GAAG,CAACS,eAAA,EAAiBT,UAAA,CAAW;EAEhCN,KAAA,CAAMwB,SAAS,CAAC;IACd,MAAMC,WAAA,GAAchB,UAAA,IAAc,CAACE,SAAA,IAAaJ,IAAA;IAChD,MAAMmB,aAAA,GAAgBf,SAAA,IAAa,CAACJ,IAAA;IAEpC,IAAIkB,WAAA,EAAa;MACfT,mBAAA,CAAoBM,OAAO,GAAGK,IAAA,CAAKC,GAAG;MACtChB,YAAA,CAAa;IACf,OAAO,IAAIc,aAAA,EAAe;MACxB,MAAMG,gBAAA,GAAmBF,IAAA,CAAKC,GAAG,KAAKZ,mBAAA,CAAoBM,OAAO;MACjE,MAAMQ,aAAA,GAAgBtB,cAAA,GAAiBqB,gBAAA;MACvCE,YAAA,CAAab,iBAAA,CAAkBI,OAAO;MACtCJ,iBAAA,CAAkBI,OAAO,GAAGC,UAAA,CAAWH,OAAA,EAASY,IAAA,CAAKC,GAAG,CAAC,GAAGH,aAAA;IAC9D;EACF,GAAG,CAACnB,SAAA,EAAWJ,IAAA,EAAMa,OAAA,EAASZ,cAAA,EAAgBC,UAAA,CAAW;EAEzD,OAAO;IACLE,SAAA;IACAG,YAAA;IACAoB,oBAAA,EAAsBxB;EACxB;AACF","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { useEffect, useRef, useState } from 'react';
|
|
5
5
|
export const useIntersect = (t0, disable) => {
|
|
6
|
-
const $ = _c(
|
|
6
|
+
const $ = _c(14);
|
|
7
7
|
let t1;
|
|
8
8
|
if ($[0] !== t0) {
|
|
9
9
|
t1 = t0 === undefined ? {} : t0;
|
|
@@ -42,7 +42,8 @@ export const useIntersect = (t0, disable) => {
|
|
|
42
42
|
}
|
|
43
43
|
const observer = useRef(t5);
|
|
44
44
|
let t6;
|
|
45
|
-
|
|
45
|
+
let t7;
|
|
46
|
+
if ($[7] !== disable || $[8] !== node) {
|
|
46
47
|
t6 = () => {
|
|
47
48
|
if (disable) {
|
|
48
49
|
return;
|
|
@@ -56,31 +57,24 @@ export const useIntersect = (t0, disable) => {
|
|
|
56
57
|
}
|
|
57
58
|
return () => currentObserver.disconnect();
|
|
58
59
|
};
|
|
59
|
-
$[7] = disable;
|
|
60
|
-
$[8] = observer;
|
|
61
|
-
$[9] = node;
|
|
62
|
-
$[10] = t6;
|
|
63
|
-
} else {
|
|
64
|
-
t6 = $[10];
|
|
65
|
-
}
|
|
66
|
-
let t7;
|
|
67
|
-
if ($[11] !== node || $[12] !== disable) {
|
|
68
60
|
t7 = [node, disable];
|
|
69
|
-
$[
|
|
70
|
-
$[
|
|
71
|
-
$[
|
|
61
|
+
$[7] = disable;
|
|
62
|
+
$[8] = node;
|
|
63
|
+
$[9] = t6;
|
|
64
|
+
$[10] = t7;
|
|
72
65
|
} else {
|
|
73
|
-
|
|
66
|
+
t6 = $[9];
|
|
67
|
+
t7 = $[10];
|
|
74
68
|
}
|
|
75
69
|
useEffect(t6, t7);
|
|
76
70
|
let t8;
|
|
77
|
-
if ($[
|
|
71
|
+
if ($[11] !== entry || $[12] !== node) {
|
|
78
72
|
t8 = [setNode, entry, node];
|
|
79
|
-
$[
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
73
|
+
$[11] = entry;
|
|
74
|
+
$[12] = node;
|
|
75
|
+
$[13] = t8;
|
|
82
76
|
} else {
|
|
83
|
-
t8 = $[
|
|
77
|
+
t8 = $[13];
|
|
84
78
|
}
|
|
85
79
|
return t8;
|
|
86
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","t1","undefined","root","t2","rootMargin","t3","threshold","t4","entry","updateEntry","node","setNode","t5","window","IntersectionObserver","t6","ent","observer","current","currentObserver","disconnect","observe","
|
|
1
|
+
{"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","t1","undefined","root","t2","rootMargin","t3","threshold","t4","entry","updateEntry","node","setNode","t5","window","IntersectionObserver","t6","ent","observer","t7","current","currentObserver","disconnect","observe","t8"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) currentObserver.observe(node)\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAQ5C,OAAO,MAAMC,YAAA,GAAeA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAF,EAAA;IAC1BG,EAAA,GAAAH,EAAuD,KAAAI,SAAA,QAAvDJ,EAAuD;IAAAE,CAAA,MAAAF,EAAA;IAAAE,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAvD;IAAAG,IAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC;EAAA,IAAAP,EAAuD;EAArD,MAAAE,IAAA,GAAAC,EAAW,KAAAF,SAAA,UAAXE,EAAW;EAAE,MAAAC,UAAA,GAAAC,EAAkB,KAAAJ,SAAA,GAAL,KAAK,GAAlBI,EAAkB;EAAE,MAAAC,SAAA,GAAAC,EAAa,KAAAN,SAAA,OAAbM,EAAa;EAGhD,OAAAC,KAAA,EAAAC,WAAA,IAA6Bd,QAAA;EAC7B,OAAAe,IAAA,EAAAC,OAAA,IAAwBhB,QAAA,KAAS;EAAA,IAAAiB,EAAA;EAAA,IAAAb,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAK,UAAA,IAAAL,CAAA,QAAAO,SAAA;IAG/BM,EAAA,UAAAC,MAAA,KAAkB,eAAe,0BAAAA,MAA0B,KAAWf,OAAA,OAAAe,MAAA,CAAAC,oBAAA,CAAAC,EAAA;MACjC,OAAAC,GAAA,IAAAD,EAAK;MAAA,OAAKN,WAAA,CAAYO,GAAA;IAAA;MAAAd,IAAA;MAAAE,UAAA;MAAAE;IAAA,SAKvD;IAAAP,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAPN,MAAAkB,QAAA,GAAiBvB,MAAA,CACfkB,EAMI;EAAA,IAAAG,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAnB,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAW,IAAA;IAGIK,EAAA,GAAAA,CAAA;MAAA,IACJjB,OAAA;QAAA;MAAA;MAGJ;QAAAqB,OAAA,EAAAC;MAAA,IAAqCH,QAAA;MACrCG,eAAA,CAAAC,UAAA,CAA0B;MAAA,IAEtBX,IAAA;QAAMU,eAAA,CAAAE,OAAA,CAAwBZ,IAAA;MAAA;MAAA,aAErBU,eAAA,CAAAC,UAAA,CAA0B;IAAA;IACtCH,EAAA,IAACR,IAAA,EAAMZ,OAAA;IAAQC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAW,IAAA;IAAAX,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,OAAAmB,EAAA;EAAA;IAAAH,EAAA,GAAAhB,CAAA;IAAAmB,EAAA,GAAAnB,CAAA;EAAA;EAVlBN,SAAA,CAAUsB,EAUV,EAAGG,EAAe;EAAA,IAAAK,EAAA;EAAA,IAAAxB,CAAA,SAAAS,KAAA,IAAAT,CAAA,SAAAW,IAAA;IAEXa,EAAA,IAACZ,OAAA,EAASH,KAAA,EAAOE,IAAA;IAAKX,CAAA,OAAAS,KAAA;IAAAT,CAAA,OAAAW,IAAA;IAAAX,CAAA,OAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAAA,OAAtBwB,EAAsB;AAAA,CAC/B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/providers/Config/createClientConfig/collections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EAErB,aAAa,EACb,SAAS,EAET,OAAO,EACP,yBAAyB,
|
|
1
|
+
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/providers/Config/createClientConfig/collections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EAErB,aAAa,EACb,SAAS,EAET,OAAO,EACP,yBAAyB,EAI1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA8B9B,eAAO,MAAM,4BAA4B,yHAStC;IACD,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,UAAU,EAAE,yBAAyB,CAAA;IACrC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,sBAkTH,CAAA;AAED,eAAO,MAAM,6BAA6B,2HASvC;IACD,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,iBAAiB,EAAE,sBAAsB,EAAE,CAAA;IAC3C,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,sBAAsB,EAiBzB,CAAA"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { deepCopyObjectSimple } from 'payload';
|
|
2
2
|
import { createClientFields } from './fields.js';
|
|
3
|
+
const serverOnlyCollectionProperties = ['hooks', 'access', 'endpoints', 'custom'];
|
|
4
|
+
const serverOnlyUploadProperties = ['adminThumbnail', 'externalFileHeaderFilter', 'handlers', 'modifyResponseHeaders', 'withMetadata'];
|
|
5
|
+
const serverOnlyCollectionAdminProperties = ['hidden', 'preview'];
|
|
3
6
|
export const createClientCollectionConfig = ({
|
|
4
7
|
DefaultEditView,
|
|
5
8
|
DefaultListView,
|
|
@@ -18,17 +21,17 @@ export const createClientCollectionConfig = ({
|
|
|
18
21
|
importMap,
|
|
19
22
|
payload
|
|
20
23
|
});
|
|
21
|
-
const serverOnlyCollectionProperties = ['hooks', 'access', 'endpoints', 'custom'];
|
|
22
24
|
serverOnlyCollectionProperties.forEach(key => {
|
|
23
25
|
if (key in clientCollection) {
|
|
24
26
|
delete clientCollection[key];
|
|
25
27
|
}
|
|
26
28
|
});
|
|
27
29
|
if ('upload' in clientCollection && typeof clientCollection.upload === 'object') {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
serverOnlyUploadProperties.forEach(key => {
|
|
31
|
+
if (key in clientCollection.upload) {
|
|
32
|
+
delete clientCollection.upload[key];
|
|
33
|
+
}
|
|
34
|
+
});
|
|
32
35
|
if ('imageSizes' in clientCollection.upload && clientCollection.upload.imageSizes.length) {
|
|
33
36
|
clientCollection.upload.imageSizes = clientCollection.upload.imageSizes.map(size => {
|
|
34
37
|
const sanitizedSize = {
|
|
@@ -53,7 +56,6 @@ export const createClientCollectionConfig = ({
|
|
|
53
56
|
}
|
|
54
57
|
});
|
|
55
58
|
}
|
|
56
|
-
const serverOnlyCollectionAdminProperties = ['hidden', 'preview'];
|
|
57
59
|
serverOnlyCollectionAdminProperties.forEach(key => {
|
|
58
60
|
if (key in clientCollection.admin) {
|
|
59
61
|
delete clientCollection.admin[key];
|