@payloadcms/ui 4.0.0-internal.183b315 → 4.0.0-internal.293e026
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/css/colors.css +107 -60
- package/dist/elements/Chip/index.css +1 -1
- package/dist/elements/Combobox/index.css +8 -8
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +4 -2
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/index.css +5 -0
- package/dist/elements/DatePicker/index.js +1 -1
- package/dist/elements/DatePicker/index.js.map +1 -1
- package/dist/elements/GroupByControl/index.d.ts.map +1 -1
- package/dist/elements/GroupByControl/index.js +3 -0
- package/dist/elements/GroupByControl/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +1 -1
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListSelection/index.css +1 -1
- package/dist/elements/Pill/index.css +1 -1
- package/dist/elements/PillSelector/index.css +1 -1
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +27 -10
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.css +53 -52
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +68 -9
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +6 -1
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +1 -2
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/elements/TimezonePicker/index.css +73 -24
- package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
- package/dist/elements/TimezonePicker/index.js +31 -4
- package/dist/elements/TimezonePicker/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.css +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +3 -0
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- 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 +1 -1
- package/dist/exports/client/index.js.map +3 -3
- package/dist/exports/shared/index.js +1 -1
- package/dist/exports/shared/index.js.map +2 -2
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +6 -11
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Group/index.css +1 -1
- package/dist/fields/Join/index.js +1 -1
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +3 -3
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/icons/Dots/index.css +4 -4
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +1 -8
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Theme/index.d.ts +17 -2
- package/dist/providers/Theme/index.d.ts.map +1 -1
- package/dist/providers/Theme/index.js +122 -73
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/copyDataFromLocale.js +1 -1
- package/dist/utilities/copyDataFromLocale.js.map +1 -1
- package/dist/utilities/renderTable.js +1 -1
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.js +3 -0
- package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
- package/dist/views/List/index.js +2 -2
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/Verify/index.client.d.ts +4 -0
- package/dist/views/Verify/index.client.d.ts.map +1 -1
- package/dist/views/Verify/index.client.js +81 -0
- package/dist/views/Verify/index.client.js.map +1 -1
- package/dist/views/Verify/index.css +38 -0
- package/dist/views/Verify/index.d.ts +1 -1
- package/dist/views/Verify/index.d.ts.map +1 -1
- package/dist/views/Verify/index.js +13 -19
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -2
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +3 -3
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
- package/package.json +4 -4
- package/dist/views/Unauthorized/index.scss +0 -14
- package/dist/views/Verify/index.scss +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","names":["getBlockSelect","getDefaultValue","stripUnselectedFields","fieldAffectsData","tabHasName","iterateFields","defaultValuePromise","id","data","field","locale","req","select","selectMode","siblingData","user","shouldContinue","siblingDoc","name","defaultValue","value","err","payload","logger","error","msg","type","rows","Array","isArray","promises","arraySelect","forEach","row","push","fields","undefined","Promise","all","blockTypeToMatch","blockType","block","blocks","blockReferences","find","slug","blockSelect","blockSelectMode","groupData","groupSelect","tabSiblingData","isNamedTab","tabSelect","tabs","map","tab"],"sources":["../../../../src/forms/fieldSchemasToFormState/calculateDefaultValues/promise.ts"],"sourcesContent":["import type {\n Data,\n Field,\n FlattenedBlock,\n PayloadRequest,\n SelectMode,\n SelectType,\n TabAsField,\n TypedUser,\n} from 'payload'\n\nimport { getBlockSelect, getDefaultValue, stripUnselectedFields } from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nimport { iterateFields } from './iterateFields.js'\n\ntype Args<T> = {\n data: T\n field: Field | TabAsField\n id?: number | string\n locale: string | undefined\n req: PayloadRequest\n select?: SelectType\n selectMode?: SelectMode\n siblingData: Data\n user: TypedUser\n}\n\n// TODO: Make this works for rich text subfields\nexport const defaultValuePromise = async <T>({\n id,\n data,\n field,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n}: Args<T>): Promise<void> => {\n const shouldContinue = stripUnselectedFields({\n field,\n select,\n selectMode,\n siblingDoc: siblingData,\n })\n\n if (!shouldContinue) {\n return\n }\n\n if (fieldAffectsData(field)) {\n if (\n typeof siblingData[field.name] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n try {\n siblingData[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale,\n req,\n user,\n value: siblingData[field.name],\n })\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error calculating default value for field: ${field.name}`,\n })\n }\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n const arraySelect = select?.[field.name]\n\n rows.forEach((row) => {\n promises.push(\n iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n siblingData: row,\n user,\n }),\n )\n })\n\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n\n rows.forEach((row) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n if (block) {\n row.blockType = blockTypeToMatch\n\n promises.push(\n iterateFields({\n id,\n data,\n fields: block.fields,\n locale,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n siblingData: row,\n user,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'collapsible':\n case 'row': {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n\n break\n }\n case 'group': {\n if (fieldAffectsData(field)) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n siblingData: groupData,\n user,\n })\n } else {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n }\n\n break\n }\n\n case 'tab': {\n let tabSiblingData\n\n const isNamedTab = tabHasName(field)\n\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n tabSiblingData = siblingData\n tabSelect = select\n }\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: tabSelect,\n selectMode,\n siblingData: tabSiblingData,\n user,\n })\n\n break\n }\n\n case 'tabs': {\n await iterateFields({\n id,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"promise.js","names":["getBlockSelect","getDefaultValue","stripUnselectedFields","fieldAffectsData","tabHasName","iterateFields","defaultValuePromise","id","data","field","locale","req","select","selectMode","siblingData","user","shouldContinue","siblingDoc","name","defaultValue","value","err","payload","logger","error","msg","type","rows","Array","isArray","promises","arraySelect","forEach","row","push","fields","undefined","Promise","all","blockTypeToMatch","blockType","block","blocks","find","slug","blockSelect","blockSelectMode","groupData","groupSelect","tabSiblingData","isNamedTab","tabSelect","tabs","map","tab"],"sources":["../../../../src/forms/fieldSchemasToFormState/calculateDefaultValues/promise.ts"],"sourcesContent":["import type {\n Data,\n Field,\n FlattenedBlock,\n PayloadRequest,\n SelectMode,\n SelectType,\n TabAsField,\n TypedUser,\n} from 'payload'\n\nimport { getBlockSelect, getDefaultValue, stripUnselectedFields } from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nimport { iterateFields } from './iterateFields.js'\n\ntype Args<T> = {\n data: T\n field: Field | TabAsField\n id?: number | string\n locale: string | undefined\n req: PayloadRequest\n select?: SelectType\n selectMode?: SelectMode\n siblingData: Data\n user: TypedUser\n}\n\n// TODO: Make this works for rich text subfields\nexport const defaultValuePromise = async <T>({\n id,\n data,\n field,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n}: Args<T>): Promise<void> => {\n const shouldContinue = stripUnselectedFields({\n field,\n select,\n selectMode,\n siblingDoc: siblingData,\n })\n\n if (!shouldContinue) {\n return\n }\n\n if (fieldAffectsData(field)) {\n if (\n typeof siblingData[field.name] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n try {\n siblingData[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale,\n req,\n user,\n value: siblingData[field.name],\n })\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error calculating default value for field: ${field.name}`,\n })\n }\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n const arraySelect = select?.[field.name]\n\n rows.forEach((row) => {\n promises.push(\n iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n siblingData: row,\n user,\n }),\n )\n })\n\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n\n rows.forEach((row) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n (field.blocks.find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n if (block) {\n row.blockType = blockTypeToMatch\n\n promises.push(\n iterateFields({\n id,\n data,\n fields: block.fields,\n locale,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n siblingData: row,\n user,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'collapsible':\n case 'row': {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n\n break\n }\n case 'group': {\n if (fieldAffectsData(field)) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n siblingData: groupData,\n user,\n })\n } else {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n }\n\n break\n }\n\n case 'tab': {\n let tabSiblingData\n\n const isNamedTab = tabHasName(field)\n\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n tabSiblingData = siblingData\n tabSelect = select\n }\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: tabSelect,\n selectMode,\n siblingData: tabSiblingData,\n user,\n })\n\n break\n }\n\n case 'tabs': {\n await iterateFields({\n id,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -121,7 +121,7 @@ export const renderField = ({
|
|
|
121
121
|
}
|
|
122
122
|
row.lastRenderedPath = rowPath;
|
|
123
123
|
const blockTypeToMatch = row.blockType;
|
|
124
|
-
const blockConfig = req.payload.blocks[blockTypeToMatch] ??
|
|
124
|
+
const blockConfig = req.payload.blocks[blockTypeToMatch] ?? fieldConfig.blocks.find(block => typeof block !== 'string' && block.slug === blockTypeToMatch);
|
|
125
125
|
if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {
|
|
126
126
|
if (!fieldState.rows[rowIndex]?.customComponents) {
|
|
127
127
|
fieldState.rows[rowIndex].customComponents = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","RenderServerComponent","FieldDescription","WatchCondition","defaultUIFieldComponentKeys","renderField","id","clientFieldSchemaMap","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","forceCreateClientField","formState","indexPath","lastRenderedPath","mockRSCs","operation","parentPath","parentSchemaPath","path","permissions","preferences","readOnly","readOnlyFromProps","renderAllFields","req","schemaPath","siblingData","hasBeforeOrAfterInput","admin","components","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","customComponents","includes","serverProps","user","value","name","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","blockReferences","find","block","slug","Label","Object","keys","length","description","editor","Error","Field","_jsx","FieldComponent","sanitizedEditorConfig","editorConfig","undefined","Description","t","AfterInput","afterInput","BeforeInput","beforeInput"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n ClientField,\n FieldPaths,\n FlattenedBlock,\n ServerComponentProps,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, MissingEditorProp } from 'payload'\nimport { fieldIsHiddenOrDisabled } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n forceCreateClientField,\n formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n readOnly: readOnlyFromProps,\n renderAllFields,\n req,\n schemaPath,\n siblingData,\n}) => {\n // Fields with beforeInput/afterInput need custom components created, so they require render\n const hasBeforeOrAfterInput =\n fieldConfig.admin?.components &&\n ('beforeInput' in fieldConfig.admin.components || 'afterInput' in fieldConfig.admin.components)\n\n const requiresRender =\n renderAllFields || !lastRenderedPath || lastRenderedPath !== path || hasBeforeOrAfterInput\n\n if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {\n return\n }\n\n const clientField =\n clientFieldSchemaMap && !forceCreateClientField\n ? (clientFieldSchemaMap.get(schemaPath) as ClientField)\n : createClientField({\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n field: clientField,\n path,\n permissions,\n readOnly:\n readOnlyFromProps === true\n ? true\n : typeof permissions === 'boolean'\n ? !permissions\n : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n value: 'name' in fieldConfig && data?.[fieldConfig.name],\n }\n\n switch (fieldConfig.type) {\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!row.customComponents) {\n row.customComponents = {}\n }\n\n row.customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n\n case 'blocks': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n const blockTypeToMatch: string = row.blockType\n\n const blockConfig =\n req.payload.blocks[blockTypeToMatch] ??\n ((fieldConfig.blockReferences ?? fieldConfig.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {\n if (!fieldState.rows[rowIndex]?.customComponents) {\n fieldState.rows[rowIndex].customComponents = {}\n }\n\n fieldState.rows[rowIndex].customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: blockConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n blockType: row.blockType,\n rowLabel: `${getTranslation(blockConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n }\n\n if (!requiresRender) {\n return\n }\n\n /**\n * Set the `lastRenderedPath` equal to the new path of the field, this will prevent it from being rendered again\n */\n fieldState.lastRenderedPath = path\n\n if (fieldIsHiddenOrDisabled(clientField)) {\n return\n }\n\n /**\n * Only create the `customComponents` object if needed.\n * This will prevent unnecessary data from being transferred to the client.\n */\n if (fieldConfig.admin) {\n if (\n (Object.keys(fieldConfig.admin.components || {}).length > 0 ||\n fieldConfig.type === 'richText' ||\n ('description' in fieldConfig.admin &&\n typeof fieldConfig.admin.description === 'function')) &&\n !fieldState?.customComponents\n ) {\n fieldState.customComponents = {}\n }\n }\n\n switch (fieldConfig.type) {\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps: {\n ...serverProps,\n // Manually inject lexical-specific `sanitizedEditorConfig` server prop, in order to reduce the size of the field schema.\n // Otherwise, the editorConfig would be included twice - once on the top-level, and once as part of the `FieldComponent` server props.\n sanitizedEditorConfig:\n 'editorConfig' in fieldConfig.editor ? fieldConfig.editor.editorConfig : undefined,\n },\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n\n const Component = fieldConfig.admin.components[key]\n\n fieldState.customComponents[key] = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component,\n importMap: req.payload.importMap,\n key: `field.admin.components.${key}`,\n serverProps,\n })\n : 'Mock'\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if (\n 'description' in fieldConfig.admin &&\n typeof fieldConfig.admin?.description === 'function'\n ) {\n fieldState.customComponents.Description = !mockRSCs ? (\n <FieldDescription\n description={fieldConfig.admin?.description({\n i18n: req.i18n,\n t: req.i18n.t,\n })}\n path={path}\n />\n ) : (\n 'Mock'\n )\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.afterInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.afterInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.beforeInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.beforeInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Description,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Description',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Error,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Error',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Label',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","RenderServerComponent","FieldDescription","WatchCondition","defaultUIFieldComponentKeys","renderField","id","clientFieldSchemaMap","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","forceCreateClientField","formState","indexPath","lastRenderedPath","mockRSCs","operation","parentPath","parentSchemaPath","path","permissions","preferences","readOnly","readOnlyFromProps","renderAllFields","req","schemaPath","siblingData","hasBeforeOrAfterInput","admin","components","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","customComponents","includes","serverProps","user","value","name","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","find","block","slug","Label","Object","keys","length","description","editor","Error","Field","_jsx","FieldComponent","sanitizedEditorConfig","editorConfig","undefined","Description","t","AfterInput","afterInput","BeforeInput","beforeInput"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n ClientField,\n FieldPaths,\n FlattenedBlock,\n ServerComponentProps,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, MissingEditorProp } from 'payload'\nimport { fieldIsHiddenOrDisabled } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n forceCreateClientField,\n formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n readOnly: readOnlyFromProps,\n renderAllFields,\n req,\n schemaPath,\n siblingData,\n}) => {\n // Fields with beforeInput/afterInput need custom components created, so they require render\n const hasBeforeOrAfterInput =\n fieldConfig.admin?.components &&\n ('beforeInput' in fieldConfig.admin.components || 'afterInput' in fieldConfig.admin.components)\n\n const requiresRender =\n renderAllFields || !lastRenderedPath || lastRenderedPath !== path || hasBeforeOrAfterInput\n\n if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {\n return\n }\n\n const clientField =\n clientFieldSchemaMap && !forceCreateClientField\n ? (clientFieldSchemaMap.get(schemaPath) as ClientField)\n : createClientField({\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n field: clientField,\n path,\n permissions,\n readOnly:\n readOnlyFromProps === true\n ? true\n : typeof permissions === 'boolean'\n ? !permissions\n : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n value: 'name' in fieldConfig && data?.[fieldConfig.name],\n }\n\n switch (fieldConfig.type) {\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!row.customComponents) {\n row.customComponents = {}\n }\n\n row.customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n\n case 'blocks': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n const blockTypeToMatch: string = row.blockType\n\n const blockConfig =\n req.payload.blocks[blockTypeToMatch] ??\n (fieldConfig.blocks.find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {\n if (!fieldState.rows[rowIndex]?.customComponents) {\n fieldState.rows[rowIndex].customComponents = {}\n }\n\n fieldState.rows[rowIndex].customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: blockConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n blockType: row.blockType,\n rowLabel: `${getTranslation(blockConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n }\n\n if (!requiresRender) {\n return\n }\n\n /**\n * Set the `lastRenderedPath` equal to the new path of the field, this will prevent it from being rendered again\n */\n fieldState.lastRenderedPath = path\n\n if (fieldIsHiddenOrDisabled(clientField)) {\n return\n }\n\n /**\n * Only create the `customComponents` object if needed.\n * This will prevent unnecessary data from being transferred to the client.\n */\n if (fieldConfig.admin) {\n if (\n (Object.keys(fieldConfig.admin.components || {}).length > 0 ||\n fieldConfig.type === 'richText' ||\n ('description' in fieldConfig.admin &&\n typeof fieldConfig.admin.description === 'function')) &&\n !fieldState?.customComponents\n ) {\n fieldState.customComponents = {}\n }\n }\n\n switch (fieldConfig.type) {\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps: {\n ...serverProps,\n // Manually inject lexical-specific `sanitizedEditorConfig` server prop, in order to reduce the size of the field schema.\n // Otherwise, the editorConfig would be included twice - once on the top-level, and once as part of the `FieldComponent` server props.\n sanitizedEditorConfig:\n 'editorConfig' in fieldConfig.editor ? fieldConfig.editor.editorConfig : undefined,\n },\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n\n const Component = fieldConfig.admin.components[key]\n\n fieldState.customComponents[key] = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component,\n importMap: req.payload.importMap,\n key: `field.admin.components.${key}`,\n serverProps,\n })\n : 'Mock'\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if (\n 'description' in fieldConfig.admin &&\n typeof fieldConfig.admin?.description === 'function'\n ) {\n fieldState.customComponents.Description = !mockRSCs ? (\n <FieldDescription\n description={fieldConfig.admin?.description({\n i18n: req.i18n,\n t: req.i18n.t,\n })}\n path={path}\n />\n ) : (\n 'Mock'\n )\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.afterInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.afterInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.beforeInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.beforeInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Description,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Description',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Error,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Error',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Label',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
justify-content: center;
|
|
7
7
|
flex-direction: column;
|
|
8
8
|
gap: 2px;
|
|
9
|
-
background-color: var(--
|
|
9
|
+
background-color: var(--color-bg-secondary);
|
|
10
10
|
border-radius: var(--button-radius);
|
|
11
|
-
height:
|
|
12
|
-
width:
|
|
11
|
+
height: var(--spacer-4);
|
|
12
|
+
width: var(--spacer-4);
|
|
13
13
|
|
|
14
14
|
&:hover {
|
|
15
|
-
background-color: var(--
|
|
15
|
+
background-color: var(--color-bg-secondary-hover);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
&.dots--no-background {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAWnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAgMtD,CAAA"}
|
|
@@ -8,7 +8,6 @@ import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
|
|
|
8
8
|
import { useEffectEvent } from '../../hooks/useEffectEvent.js';
|
|
9
9
|
import { useRouteTransition } from '../../providers/RouteTransition/index.js';
|
|
10
10
|
import { parseSearchParams } from '../../utilities/parseSearchParams.js';
|
|
11
|
-
import { useConfig } from '../Config/index.js';
|
|
12
11
|
import { useRouter, useSearchParams } from '../RouterAdapter/index.js';
|
|
13
12
|
import { ListQueryContext, ListQueryModifiedContext } from './context.js';
|
|
14
13
|
import { mergeQuery } from './mergeQuery.js';
|
|
@@ -32,12 +31,6 @@ export const ListQueryProvider = ({
|
|
|
32
31
|
startRouteTransition
|
|
33
32
|
} = useRouteTransition();
|
|
34
33
|
const [modified, setModified] = useState(false);
|
|
35
|
-
const {
|
|
36
|
-
getEntityConfig
|
|
37
|
-
} = useConfig();
|
|
38
|
-
const collectionConfig = getEntityConfig({
|
|
39
|
-
collectionSlug
|
|
40
|
-
});
|
|
41
34
|
const contextRef = useRef({});
|
|
42
35
|
contextRef.current.modified = modified;
|
|
43
36
|
const {
|
|
@@ -168,7 +161,7 @@ export const ListQueryProvider = ({
|
|
|
168
161
|
handleSortChange,
|
|
169
162
|
handleWhereChange,
|
|
170
163
|
hasActiveFilters,
|
|
171
|
-
isGroupingBy: Boolean(
|
|
164
|
+
isGroupingBy: Boolean(query?.groupBy),
|
|
172
165
|
orderableFieldName,
|
|
173
166
|
query,
|
|
174
167
|
refineListData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["transformWhereQuery","validateWhereQuery","qs","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useConfig","useRouter","useSearchParams","ListQueryContext","ListQueryModifiedContext","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","getEntityConfig","collectionConfig","contextRef","current","onQueryChangeFromContext","queryFromURL","setQuery","limit","sort","refineListData","incomingQuery","newQuery","defaults","search","stringify","columns","JSON","queryByGroup","window","location","replace","scroll","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","where","syncPropsToURL","history","replaceState","hasActiveFilters","normalizedWhere","or","some","orGroup","and","andGroup","field","Object","keys","operatorObj","operator","Boolean","_jsx","value","defaultLimit","isGroupingBy","admin","groupBy"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { type ListQuery, type Where } from 'payload'\nimport { transformWhereQuery, validateWhereQuery } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { useRouter, useSearchParams } from '../RouterAdapter/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const { getEntityConfig } = useConfig()\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const contextRef = useRef({} as IListQueryContext)\n contextRef.current.modified = modified\n\n const { onQueryChange: onQueryChangeFromContext } = useListDrawerContext()\n const onQueryChange = onQueryChangeFromContext || onQueryChangeFromProps\n\n const queryFromURL = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return queryFromURL\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery, modified?: boolean) => {\n setModified(modified ?? true)\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n if (modifySearchParams) {\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n if (window.location.search !== search) {\n startRouteTransition(() => router.replace(search, { scroll: false }))\n }\n } else if (typeof onQueryChange === 'function') {\n onQueryChange(newQuery)\n }\n\n setQuery(newQuery)\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n /**\n * The server component may pass props to this client component, e.g. from\n * fetching the query from preferences.\n * This effect is responsible for syncing the props back to the URL, without\n * triggering a re-render.\n */\n const syncPropsToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n // Important: do not use router.replace here to avoid re-rendering.\n window.history.replaceState(null, '', search)\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams && queryFromProps) {\n syncPropsToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n const hasActiveFilters = useMemo(() => {\n if (!query?.where) {\n return false\n }\n\n // Normalize flat/invalid where queries (e.g. `{ title: { equals } }`) into the\n // `or/and` structure so they are detected the same way the WhereBuilder reads them.\n const normalizedWhere = validateWhereQuery(query.where)\n ? query.where\n : transformWhereQuery(query.where)\n\n return (normalizedWhere.or ?? []).some((orGroup) =>\n (orGroup.and ?? []).some((andGroup) => {\n const field = Object.keys(andGroup)[0]\n if (!field) {\n return false\n }\n const operatorObj = andGroup[field]\n if (!operatorObj || typeof operatorObj !== 'object') {\n return false\n }\n const operator = Object.keys(operatorObj)[0]\n return Boolean(operator) && (operatorObj as Record<string, unknown>)[operator] !== undefined\n }),\n )\n }, [query?.where])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n defaultLimit: data?.limit,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n hasActiveFilters,\n isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n setModified,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["transformWhereQuery","validateWhereQuery","qs","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useRouter","useSearchParams","ListQueryContext","ListQueryModifiedContext","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","contextRef","current","onQueryChangeFromContext","queryFromURL","setQuery","limit","sort","refineListData","incomingQuery","newQuery","defaults","search","stringify","columns","JSON","queryByGroup","window","location","replace","scroll","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","where","syncPropsToURL","history","replaceState","hasActiveFilters","normalizedWhere","or","some","orGroup","and","andGroup","field","Object","keys","operatorObj","operator","Boolean","_jsx","value","defaultLimit","isGroupingBy","groupBy"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { type ListQuery, type Where } from 'payload'\nimport { transformWhereQuery, validateWhereQuery } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useRouter, useSearchParams } from '../RouterAdapter/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const contextRef = useRef({} as IListQueryContext)\n contextRef.current.modified = modified\n\n const { onQueryChange: onQueryChangeFromContext } = useListDrawerContext()\n const onQueryChange = onQueryChangeFromContext || onQueryChangeFromProps\n\n const queryFromURL = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return queryFromURL\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery, modified?: boolean) => {\n setModified(modified ?? true)\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n if (modifySearchParams) {\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n if (window.location.search !== search) {\n startRouteTransition(() => router.replace(search, { scroll: false }))\n }\n } else if (typeof onQueryChange === 'function') {\n onQueryChange(newQuery)\n }\n\n setQuery(newQuery)\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n /**\n * The server component may pass props to this client component, e.g. from\n * fetching the query from preferences.\n * This effect is responsible for syncing the props back to the URL, without\n * triggering a re-render.\n */\n const syncPropsToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n // Important: do not use router.replace here to avoid re-rendering.\n window.history.replaceState(null, '', search)\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams && queryFromProps) {\n syncPropsToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n const hasActiveFilters = useMemo(() => {\n if (!query?.where) {\n return false\n }\n\n // Normalize flat/invalid where queries (e.g. `{ title: { equals } }`) into the\n // `or/and` structure so they are detected the same way the WhereBuilder reads them.\n const normalizedWhere = validateWhereQuery(query.where)\n ? query.where\n : transformWhereQuery(query.where)\n\n return (normalizedWhere.or ?? []).some((orGroup) =>\n (orGroup.and ?? []).some((andGroup) => {\n const field = Object.keys(andGroup)[0]\n if (!field) {\n return false\n }\n const operatorObj = andGroup[field]\n if (!operatorObj || typeof operatorObj !== 'object') {\n return false\n }\n const operator = Object.keys(operatorObj)[0]\n return Boolean(operator) && (operatorObj as Record<string, unknown>)[operator] !== undefined\n }),\n )\n }, [query?.where])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n defaultLimit: data?.limit,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n hasActiveFilters,\n isGroupingBy: Boolean(query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n setModified,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,11 +3,26 @@ export type Theme = 'dark' | 'light';
|
|
|
3
3
|
export type ThemeContext = {
|
|
4
4
|
autoMode: boolean;
|
|
5
5
|
highContrastMode: boolean;
|
|
6
|
-
setHighContrastMode: (isHighContrast: boolean
|
|
7
|
-
|
|
6
|
+
setHighContrastMode: (isHighContrast: boolean, options?: {
|
|
7
|
+
scoped?: boolean;
|
|
8
|
+
}) => void;
|
|
9
|
+
setTheme: (theme: 'auto' | Theme, options?: {
|
|
10
|
+
scoped?: boolean;
|
|
11
|
+
}) => void;
|
|
8
12
|
theme: Theme;
|
|
9
13
|
};
|
|
10
14
|
export declare const defaultTheme: Theme;
|
|
15
|
+
/**
|
|
16
|
+
* Provides theme context to its children.
|
|
17
|
+
*
|
|
18
|
+
* At the root (no parent ThemeProvider): reads/writes cookies, responds to
|
|
19
|
+
* OS preference, owns setTheme and setHighContrastMode.
|
|
20
|
+
*
|
|
21
|
+
* When nested inside another ThemeProvider (e.g. inside a Popup): acts as a
|
|
22
|
+
* scoped visual the `theme` prop sets the local theme, but setThemeoverride
|
|
23
|
+
* and setHighContrastMode bubble up through each level to the root provider so
|
|
24
|
+
* mutations always affect the global user preference.
|
|
25
|
+
*/
|
|
11
26
|
export declare const ThemeProvider: React.FC<{
|
|
12
27
|
children?: React.ReactNode;
|
|
13
28
|
highContrastMode?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Theme/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAInF,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAEpC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Theme/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAInF,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAEpC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACtF,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACzE,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AA4DD,eAAO,MAAM,YAAY,EAAE,KAAe,CAAA;AAE1C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAwFA,CAAA;AAED,eAAO,MAAM,QAAQ,QAAO,YAA8C,CAAA"}
|
|
@@ -11,7 +11,7 @@ const initialContext = {
|
|
|
11
11
|
setTheme: () => null,
|
|
12
12
|
theme: 'light'
|
|
13
13
|
};
|
|
14
|
-
const Context = /*#__PURE__*/createContext(
|
|
14
|
+
const Context = /*#__PURE__*/createContext(undefined);
|
|
15
15
|
function setCookie(cname, cvalue, exdays) {
|
|
16
16
|
const d = new Date();
|
|
17
17
|
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
|
|
@@ -38,27 +38,64 @@ const detectHighContrastMode = cookieKey => {
|
|
|
38
38
|
return isHighContrast;
|
|
39
39
|
};
|
|
40
40
|
export const defaultTheme = 'light';
|
|
41
|
+
/**
|
|
42
|
+
* Provides theme context to its children.
|
|
43
|
+
*
|
|
44
|
+
* At the root (no parent ThemeProvider): reads/writes cookies, responds to
|
|
45
|
+
* OS preference, owns setTheme and setHighContrastMode.
|
|
46
|
+
*
|
|
47
|
+
* When nested inside another ThemeProvider (e.g. inside a Popup): acts as a
|
|
48
|
+
* scoped visual the `theme` prop sets the local theme, but setThemeoverride
|
|
49
|
+
* and setHighContrastMode bubble up through each level to the root provider so
|
|
50
|
+
* mutations always affect the global user preference.
|
|
51
|
+
*/
|
|
41
52
|
export const ThemeProvider = t0 => {
|
|
42
|
-
const $ = _c(
|
|
53
|
+
const $ = _c(30);
|
|
43
54
|
const {
|
|
44
55
|
children,
|
|
45
56
|
highContrastMode: initialHighContrastMode,
|
|
46
|
-
theme:
|
|
57
|
+
theme: themeOverride
|
|
47
58
|
} = t0;
|
|
59
|
+
const outerContext = use(Context);
|
|
60
|
+
const isScoped = outerContext !== undefined;
|
|
48
61
|
const {
|
|
49
62
|
config
|
|
50
63
|
} = useConfig();
|
|
51
64
|
const preselectedTheme = config.admin.theme;
|
|
52
65
|
const themeCookieKey = `${config.cookiePrefix || "payload"}-theme`;
|
|
53
66
|
const contrastCookieKey = `${config.cookiePrefix || "payload"}-high-contrast-mode`;
|
|
54
|
-
const [theme, setThemeState] = useState(
|
|
55
|
-
const [autoMode, setAutoMode] = useState(
|
|
56
|
-
const [highContrastMode, setHighContrastModeState] = useState(initialHighContrastMode ?? false);
|
|
67
|
+
const [theme, setThemeState] = useState(themeOverride ?? defaultTheme);
|
|
68
|
+
const [autoMode, setAutoMode] = useState(!isScoped);
|
|
69
|
+
const [highContrastMode, setHighContrastModeState] = useState(isScoped ? outerContext.highContrastMode ?? false : initialHighContrastMode ?? false);
|
|
57
70
|
let t1;
|
|
58
|
-
|
|
59
|
-
if ($[0] !== preselectedTheme || $[1] !== themeCookieKey) {
|
|
71
|
+
if ($[0] !== isScoped || $[1] !== outerContext) {
|
|
60
72
|
t1 = () => {
|
|
61
|
-
if (
|
|
73
|
+
if (isScoped) {
|
|
74
|
+
setHighContrastModeState(outerContext.highContrastMode);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
$[0] = isScoped;
|
|
78
|
+
$[1] = outerContext;
|
|
79
|
+
$[2] = t1;
|
|
80
|
+
} else {
|
|
81
|
+
t1 = $[2];
|
|
82
|
+
}
|
|
83
|
+
const t2 = outerContext?.highContrastMode;
|
|
84
|
+
let t3;
|
|
85
|
+
if ($[3] !== isScoped || $[4] !== t2) {
|
|
86
|
+
t3 = [isScoped, t2];
|
|
87
|
+
$[3] = isScoped;
|
|
88
|
+
$[4] = t2;
|
|
89
|
+
$[5] = t3;
|
|
90
|
+
} else {
|
|
91
|
+
t3 = $[5];
|
|
92
|
+
}
|
|
93
|
+
useEffect(t1, t3);
|
|
94
|
+
let t4;
|
|
95
|
+
let t5;
|
|
96
|
+
if ($[6] !== isScoped || $[7] !== preselectedTheme || $[8] !== themeCookieKey) {
|
|
97
|
+
t4 = () => {
|
|
98
|
+
if (isScoped || preselectedTheme !== "all") {
|
|
62
99
|
return;
|
|
63
100
|
}
|
|
64
101
|
const {
|
|
@@ -68,75 +105,87 @@ export const ThemeProvider = t0 => {
|
|
|
68
105
|
setThemeState(detectedTheme);
|
|
69
106
|
setAutoMode(isAutoMode);
|
|
70
107
|
};
|
|
71
|
-
|
|
72
|
-
$[
|
|
73
|
-
$[
|
|
74
|
-
$[
|
|
75
|
-
$[
|
|
108
|
+
t5 = [isScoped, preselectedTheme, themeCookieKey];
|
|
109
|
+
$[6] = isScoped;
|
|
110
|
+
$[7] = preselectedTheme;
|
|
111
|
+
$[8] = themeCookieKey;
|
|
112
|
+
$[9] = t4;
|
|
113
|
+
$[10] = t5;
|
|
76
114
|
} else {
|
|
77
|
-
|
|
78
|
-
|
|
115
|
+
t4 = $[9];
|
|
116
|
+
t5 = $[10];
|
|
79
117
|
}
|
|
80
|
-
useEffect(
|
|
81
|
-
let
|
|
82
|
-
let
|
|
83
|
-
if ($[
|
|
84
|
-
|
|
118
|
+
useEffect(t4, t5);
|
|
119
|
+
let t6;
|
|
120
|
+
let t7;
|
|
121
|
+
if ($[11] !== contrastCookieKey || $[12] !== isScoped) {
|
|
122
|
+
t6 = () => {
|
|
123
|
+
if (isScoped) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
85
126
|
setHighContrastModeState(detectHighContrastMode(contrastCookieKey));
|
|
86
127
|
};
|
|
87
|
-
|
|
88
|
-
$[
|
|
89
|
-
$[
|
|
90
|
-
$[
|
|
128
|
+
t7 = [isScoped, contrastCookieKey];
|
|
129
|
+
$[11] = contrastCookieKey;
|
|
130
|
+
$[12] = isScoped;
|
|
131
|
+
$[13] = t6;
|
|
132
|
+
$[14] = t7;
|
|
91
133
|
} else {
|
|
92
|
-
|
|
93
|
-
|
|
134
|
+
t6 = $[13];
|
|
135
|
+
t7 = $[14];
|
|
94
136
|
}
|
|
95
|
-
useEffect(
|
|
96
|
-
let
|
|
97
|
-
if ($[
|
|
98
|
-
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
setAutoMode(true);
|
|
110
|
-
setThemeState(themeFromOS);
|
|
111
|
-
}
|
|
137
|
+
useEffect(t6, t7);
|
|
138
|
+
let t8;
|
|
139
|
+
if ($[15] !== isScoped || $[16] !== outerContext || $[17] !== themeCookieKey) {
|
|
140
|
+
t8 = (themeToSet, options) => {
|
|
141
|
+
if (isScoped && !options?.scoped) {
|
|
142
|
+
outerContext.setTheme(themeToSet, options);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const resolvedTheme = themeToSet === "auto" ? window.matchMedia?.("(prefers-color-scheme: dark)").matches ? "dark" : "light" : themeToSet;
|
|
146
|
+
setThemeState(resolvedTheme);
|
|
147
|
+
setAutoMode(themeToSet === "auto");
|
|
148
|
+
if (!isScoped) {
|
|
149
|
+
setCookie(themeCookieKey, themeToSet, themeToSet === "auto" ? -1 : 365);
|
|
150
|
+
document.documentElement.setAttribute("data-theme", resolvedTheme);
|
|
112
151
|
}
|
|
113
152
|
};
|
|
114
|
-
$[
|
|
115
|
-
$[
|
|
153
|
+
$[15] = isScoped;
|
|
154
|
+
$[16] = outerContext;
|
|
155
|
+
$[17] = themeCookieKey;
|
|
156
|
+
$[18] = t8;
|
|
116
157
|
} else {
|
|
117
|
-
|
|
158
|
+
t8 = $[18];
|
|
118
159
|
}
|
|
119
|
-
const setTheme =
|
|
120
|
-
let
|
|
121
|
-
if ($[
|
|
122
|
-
|
|
160
|
+
const setTheme = t8;
|
|
161
|
+
let t9;
|
|
162
|
+
if ($[19] !== contrastCookieKey || $[20] !== isScoped || $[21] !== outerContext) {
|
|
163
|
+
t9 = (isHighContrast, options_0) => {
|
|
164
|
+
if (isScoped && !options_0?.scoped) {
|
|
165
|
+
outerContext.setHighContrastMode(isHighContrast, options_0);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
123
168
|
setHighContrastModeState(isHighContrast);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
169
|
+
if (!isScoped) {
|
|
170
|
+
setCookie(contrastCookieKey, String(isHighContrast), 365);
|
|
171
|
+
if (isHighContrast) {
|
|
172
|
+
document.documentElement.setAttribute("data-enhanced-contrast", "");
|
|
173
|
+
} else {
|
|
174
|
+
document.documentElement.removeAttribute("data-enhanced-contrast");
|
|
175
|
+
}
|
|
129
176
|
}
|
|
130
177
|
};
|
|
131
|
-
$[
|
|
132
|
-
$[
|
|
178
|
+
$[19] = contrastCookieKey;
|
|
179
|
+
$[20] = isScoped;
|
|
180
|
+
$[21] = outerContext;
|
|
181
|
+
$[22] = t9;
|
|
133
182
|
} else {
|
|
134
|
-
|
|
183
|
+
t9 = $[22];
|
|
135
184
|
}
|
|
136
|
-
const setHighContrastMode =
|
|
137
|
-
let
|
|
138
|
-
if ($[
|
|
139
|
-
|
|
185
|
+
const setHighContrastMode = t9;
|
|
186
|
+
let t10;
|
|
187
|
+
if ($[23] !== autoMode || $[24] !== children || $[25] !== highContrastMode || $[26] !== setHighContrastMode || $[27] !== setTheme || $[28] !== theme) {
|
|
188
|
+
t10 = _jsx(Context, {
|
|
140
189
|
value: {
|
|
141
190
|
autoMode,
|
|
142
191
|
highContrastMode,
|
|
@@ -146,17 +195,17 @@ export const ThemeProvider = t0 => {
|
|
|
146
195
|
},
|
|
147
196
|
children
|
|
148
197
|
});
|
|
149
|
-
$[
|
|
150
|
-
$[
|
|
151
|
-
$[
|
|
152
|
-
$[
|
|
153
|
-
$[
|
|
154
|
-
$[
|
|
155
|
-
$[
|
|
198
|
+
$[23] = autoMode;
|
|
199
|
+
$[24] = children;
|
|
200
|
+
$[25] = highContrastMode;
|
|
201
|
+
$[26] = setHighContrastMode;
|
|
202
|
+
$[27] = setTheme;
|
|
203
|
+
$[28] = theme;
|
|
204
|
+
$[29] = t10;
|
|
156
205
|
} else {
|
|
157
|
-
|
|
206
|
+
t10 = $[29];
|
|
158
207
|
}
|
|
159
|
-
return
|
|
208
|
+
return t10;
|
|
160
209
|
};
|
|
161
|
-
export const useTheme = () => use(Context);
|
|
210
|
+
export const useTheme = () => use(Context) ?? initialContext;
|
|
162
211
|
//# sourceMappingURL=index.js.map
|