@wix/auto-patterns 1.13.0 → 1.15.0
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/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +1 -2
- package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
- package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateTime.js +0 -1
- package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
- package/dist/cjs/components/AutoPatternsRoute/AutoPatternsPage.js +2 -3
- package/dist/cjs/components/AutoPatternsRoute/AutoPatternsPage.js.map +1 -1
- package/dist/cjs/components/filters/DynamicCollectionFilter.js +5 -11
- package/dist/cjs/components/filters/DynamicCollectionFilter.js.map +1 -1
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js +51 -88
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/cjs/dataSourceAdapters/cms/fetchCmsData.js +43 -0
- package/dist/cjs/dataSourceAdapters/cms/fetchCmsData.js.map +1 -0
- package/dist/cjs/dataSourceAdapters/cms/filterUtils.js +15 -15
- package/dist/cjs/dataSourceAdapters/cms/filterUtils.js.map +1 -1
- package/dist/cjs/dataSourceAdapters/cms/sortUtils.js +2 -2
- package/dist/cjs/dataSourceAdapters/cms/sortUtils.js.map +1 -1
- package/dist/cjs/dataSourceAdapters/factory.js +0 -20
- package/dist/cjs/dataSourceAdapters/factory.js.map +1 -1
- package/dist/cjs/hooks/useActionCell.js +19 -10
- package/dist/cjs/hooks/useActionCell.js.map +1 -1
- package/dist/cjs/hooks/useBulkActionToolbar.js +9 -14
- package/dist/cjs/hooks/useBulkActionToolbar.js.map +1 -1
- package/dist/cjs/hooks/useCollectionPageActions.js +8 -13
- package/dist/cjs/hooks/useCollectionPageActions.js.map +1 -1
- package/dist/cjs/hooks/useEntityPageMoreActions.js +2 -1
- package/dist/cjs/hooks/useEntityPageMoreActions.js.map +1 -1
- package/dist/cjs/hooks/useFetchData.js +9 -29
- package/dist/cjs/hooks/useFetchData.js.map +1 -1
- package/dist/cjs/hooks/useFilters.js +2 -2
- package/dist/cjs/hooks/useFilters.js.map +1 -1
- package/dist/cjs/hooks/useGridFeatures.js +3 -4
- package/dist/cjs/hooks/useGridFeatures.js.map +1 -1
- package/dist/cjs/hooks/useTableFeatures.js +3 -4
- package/dist/cjs/hooks/useTableFeatures.js.map +1 -1
- package/dist/cjs/hooks/useTableGridSwitchFeatures.js +3 -4
- package/dist/cjs/hooks/useTableGridSwitchFeatures.js.map +1 -1
- package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
- package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
- package/dist/cjs/providers/SchemaContext.js +29 -6
- package/dist/cjs/providers/SchemaContext.js.map +1 -1
- package/dist/cjs/types/CollectionPageConfig.js.map +1 -1
- package/dist/cjs/types/EntityPageConfig.js.map +1 -1
- package/dist/cjs/types/actions/actionCell.js.map +1 -1
- package/dist/cjs/types/actions/base.js.map +1 -1
- package/dist/cjs/types/actions/bulkActions.js.map +1 -1
- package/dist/cjs/types/actions/collectionPageActions.js.map +1 -1
- package/dist/cjs/types/actions/entityPageActions.js.map +1 -1
- package/dist/cjs/types/index.js +6 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/providers.js +4 -0
- package/dist/cjs/types/providers.js.map +1 -0
- package/dist/cjs/types/types.js.map +1 -1
- package/dist/cjs/utils/actions/groupActions.js +29 -0
- package/dist/cjs/utils/actions/groupActions.js.map +1 -0
- package/dist/cjs/utils/actions/index.js +6 -6
- package/dist/cjs/utils/actions/index.js.map +1 -1
- package/dist/cjs/utils/actions/types.js.map +1 -1
- package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +1 -2
- package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js +0 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
- package/dist/esm/components/AutoPatternsRoute/AutoPatternsPage.js +1 -2
- package/dist/esm/components/AutoPatternsRoute/AutoPatternsPage.js.map +1 -1
- package/dist/esm/components/filters/DynamicCollectionFilter.js +4 -10
- package/dist/esm/components/filters/DynamicCollectionFilter.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +54 -88
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/fetchCmsData.js +42 -0
- package/dist/esm/dataSourceAdapters/cms/fetchCmsData.js.map +1 -0
- package/dist/esm/dataSourceAdapters/cms/filterUtils.js +15 -15
- package/dist/esm/dataSourceAdapters/cms/filterUtils.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/sortUtils.js +2 -2
- package/dist/esm/dataSourceAdapters/cms/sortUtils.js.map +1 -1
- package/dist/esm/dataSourceAdapters/factory.js +1 -21
- package/dist/esm/dataSourceAdapters/factory.js.map +1 -1
- package/dist/esm/hooks/useActionCell.js +20 -11
- package/dist/esm/hooks/useActionCell.js.map +1 -1
- package/dist/esm/hooks/useBulkActionToolbar.js +9 -14
- package/dist/esm/hooks/useBulkActionToolbar.js.map +1 -1
- package/dist/esm/hooks/useCollectionPageActions.js +7 -12
- package/dist/esm/hooks/useCollectionPageActions.js.map +1 -1
- package/dist/esm/hooks/useEntityPageMoreActions.js +3 -2
- package/dist/esm/hooks/useEntityPageMoreActions.js.map +1 -1
- package/dist/esm/hooks/useFetchData.js +9 -29
- package/dist/esm/hooks/useFetchData.js.map +1 -1
- package/dist/esm/hooks/useFilters.js +2 -2
- package/dist/esm/hooks/useFilters.js.map +1 -1
- package/dist/esm/hooks/useGridFeatures.js +3 -4
- package/dist/esm/hooks/useGridFeatures.js.map +1 -1
- package/dist/esm/hooks/useTableFeatures.js +3 -4
- package/dist/esm/hooks/useTableFeatures.js.map +1 -1
- package/dist/esm/hooks/useTableGridSwitchFeatures.js +3 -4
- package/dist/esm/hooks/useTableGridSwitchFeatures.js.map +1 -1
- package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
- package/dist/esm/providers/SchemaContext.js +28 -5
- package/dist/esm/providers/SchemaContext.js.map +1 -1
- package/dist/esm/types/CollectionPageConfig.js.map +1 -1
- package/dist/esm/types/EntityPageConfig.js.map +1 -1
- package/dist/esm/types/actions/actionCell.js.map +1 -1
- package/dist/esm/types/actions/base.js.map +1 -1
- package/dist/esm/types/actions/bulkActions.js.map +1 -1
- package/dist/esm/types/actions/collectionPageActions.js.map +1 -1
- package/dist/esm/types/actions/entityPageActions.js.map +1 -1
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/providers.js +2 -0
- package/dist/esm/types/providers.js.map +1 -0
- package/dist/esm/types/types.js.map +1 -1
- package/dist/esm/utils/actions/groupActions.js +25 -0
- package/dist/esm/utils/actions/groupActions.js.map +1 -0
- package/dist/esm/utils/actions/index.js +1 -2
- package/dist/esm/utils/actions/index.js.map +1 -1
- package/dist/esm/utils/actions/types.js.map +1 -1
- package/dist/types/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.d.ts.map +1 -1
- package/dist/types/components/AutoPatternsEntityPage/Fields/DateTime.d.ts.map +1 -1
- package/dist/types/components/AutoPatternsRoute/AutoPatternsPage.d.ts.map +1 -1
- package/dist/types/components/filters/DynamicCollectionFilter.d.ts.map +1 -1
- package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts +1 -10
- package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -1
- package/dist/types/dataSourceAdapters/cms/fetchCmsData.d.ts +13 -0
- package/dist/types/dataSourceAdapters/cms/fetchCmsData.d.ts.map +1 -0
- package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts +9 -7
- package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts.map +1 -1
- package/dist/types/dataSourceAdapters/cms/sortUtils.d.ts +2 -2
- package/dist/types/dataSourceAdapters/cms/sortUtils.d.ts.map +1 -1
- package/dist/types/dataSourceAdapters/factory.d.ts +1 -11
- package/dist/types/dataSourceAdapters/factory.d.ts.map +1 -1
- package/dist/types/hooks/useActionCell.d.ts.map +1 -1
- package/dist/types/hooks/useBulkActionToolbar.d.ts.map +1 -1
- package/dist/types/hooks/useCollectionPageActions.d.ts.map +1 -1
- package/dist/types/hooks/useEntityPageHeaderTexts.d.ts.map +1 -1
- package/dist/types/hooks/useEntityPageMoreActions.d.ts.map +1 -1
- package/dist/types/hooks/useFetchData.d.ts +13 -7
- package/dist/types/hooks/useFetchData.d.ts.map +1 -1
- package/dist/types/hooks/useFilters.d.ts +1 -1
- package/dist/types/hooks/useGridFeatures.d.ts.map +1 -1
- package/dist/types/hooks/useTableFeatures.d.ts.map +1 -1
- package/dist/types/hooks/useTableGridSwitchFeatures.d.ts.map +1 -1
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts +2 -3
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
- package/dist/types/providers/SchemaContext.d.ts +3 -4
- package/dist/types/providers/SchemaContext.d.ts.map +1 -1
- package/dist/types/types/CollectionPageConfig.d.ts +2 -7
- package/dist/types/types/CollectionPageConfig.d.ts.map +1 -1
- package/dist/types/types/EntityPageConfig.d.ts +3 -4
- package/dist/types/types/EntityPageConfig.d.ts.map +1 -1
- package/dist/types/types/actions/actionCell.d.ts +3 -3
- package/dist/types/types/actions/actionCell.d.ts.map +1 -1
- package/dist/types/types/actions/base.d.ts +3 -7
- package/dist/types/types/actions/base.d.ts.map +1 -1
- package/dist/types/types/actions/bulkActions.d.ts +13 -14
- package/dist/types/types/actions/bulkActions.d.ts.map +1 -1
- package/dist/types/types/actions/collectionPageActions.d.ts +13 -13
- package/dist/types/types/actions/collectionPageActions.d.ts.map +1 -1
- package/dist/types/types/actions/entityPageActions.d.ts +2 -3
- package/dist/types/types/actions/entityPageActions.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/providers.d.ts +11 -0
- package/dist/types/types/providers.d.ts.map +1 -0
- package/dist/types/types/types.d.ts +25 -1
- package/dist/types/types/types.d.ts.map +1 -1
- package/dist/types/utils/actions/groupActions.d.ts +3 -0
- package/dist/types/utils/actions/groupActions.d.ts.map +1 -0
- package/dist/types/utils/actions/index.d.ts +1 -2
- package/dist/types/utils/actions/index.d.ts.map +1 -1
- package/dist/types/utils/actions/types.d.ts +1 -4
- package/dist/types/utils/actions/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/cjs/utils/actions/customModalAction.js +0 -22
- package/dist/cjs/utils/actions/customModalAction.js.map +0 -1
- package/dist/esm/utils/actions/customModalAction.js +0 -17
- package/dist/esm/utils/actions/customModalAction.js.map +0 -1
- package/dist/types/utils/actions/customModalAction.d.ts +0 -5
- package/dist/types/utils/actions/customModalAction.d.ts.map +0 -1
package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js
CHANGED
|
@@ -73,8 +73,7 @@ const AutoPatternsCollectionPageContent = ({
|
|
|
73
73
|
}
|
|
74
74
|
return componentToRender ? /*#__PURE__*/_react.default.createElement(_providers.SchemaProvider, {
|
|
75
75
|
key: `${sharedConfig.collection.collectionId}-${index}`,
|
|
76
|
-
|
|
77
|
-
entityTypeSource: sharedConfig.collection.entityTypeSource,
|
|
76
|
+
collection: sharedConfig.collection,
|
|
78
77
|
__self: void 0,
|
|
79
78
|
__source: {
|
|
80
79
|
fileName: _jsxFileName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_AutoPatternsTable","_AutoPatternsGrid","_AutoPatternsTableGridSwitch","_providers","_jsxFileName","AutoPatternsCollectionPageContent","configuration","components","default","createElement","Fragment","map","component","index","_layout$find","_layout$find2","layout","sharedConfig","length","tableConfig","find","item","type","table","gridConfig","grid","componentToRender","config","AutoPatternsTableGridSwitch","__self","__source","fileName","lineNumber","columnNumber","AutoPatternsTable","AutoPatternsGrid","SchemaProvider","key","collection","collectionId","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_AutoPatternsTable","_AutoPatternsGrid","_AutoPatternsTableGridSwitch","_providers","_jsxFileName","AutoPatternsCollectionPageContent","configuration","components","default","createElement","Fragment","map","component","index","_layout$find","_layout$find2","layout","sharedConfig","length","tableConfig","find","item","type","table","gridConfig","grid","componentToRender","config","AutoPatternsTableGridSwitch","__self","__source","fileName","lineNumber","columnNumber","AutoPatternsTable","AutoPatternsGrid","SchemaProvider","key","collection","collectionId","filter","Boolean","exports"],"sources":["../../../../src/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.tsx"],"sourcesContent":["import React from 'react';\nimport { AutoPatternsTable } from '../AutoPatternsTable';\nimport { CollectionPageConfig } from '../../types';\nimport { AutoPatternsGrid } from '../AutoPatternsGrid';\nimport { AutoPatternsTableGridSwitch } from '../AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch';\nimport { SchemaProvider } from '../../providers';\n\nexport interface AutoPatternsCollectionPageContentProps {\n configuration: CollectionPageConfig;\n}\n\nexport const AutoPatternsCollectionPageContent = ({\n configuration,\n}: AutoPatternsCollectionPageContentProps) => {\n const { components } = configuration;\n return (\n <>\n {components\n .map((component, index) => {\n const { layout, ...sharedConfig } = component;\n\n if (!layout?.length) {\n return null;\n }\n\n const tableConfig = layout.find(\n (item) => item.type === 'Table',\n )?.table;\n const gridConfig = layout.find((item) => item.type === 'Grid')?.grid;\n\n let componentToRender = null;\n\n if (tableConfig && gridConfig) {\n const config = {\n ...sharedConfig,\n ...tableConfig,\n ...gridConfig,\n };\n componentToRender = (\n <AutoPatternsTableGridSwitch configuration={config} />\n );\n } else if (tableConfig) {\n const config = { ...sharedConfig, ...tableConfig };\n componentToRender = <AutoPatternsTable configuration={config} />;\n } else if (gridConfig) {\n const config = { ...sharedConfig, ...gridConfig };\n componentToRender = <AutoPatternsGrid configuration={config} />;\n }\n\n return componentToRender ? (\n <SchemaProvider\n key={`${sharedConfig.collection.collectionId}-${index}`}\n collection={sharedConfig.collection}\n >\n {componentToRender}\n </SchemaProvider>\n ) : null;\n })\n .filter(Boolean)}\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_patterns","_form","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DateTime","props","_pageState$entity","_field$validation2","field","dataHook","inputRef","translate","container","useWixPatternsContainer","useSelector","initTask","status","pageState","useEntityPageContext","controller","useController","name","id","control","form","defaultValue","entity","rules","validate","v","_field$validation","validation","required","undefined","date","useMemo","value","d","Date","isNaN","getTime","dateStatusMessage","setDateStatusMessage","useState","timeStatusMessage","setTimeStatusMessage","ref","useRef","dateRef","timeRef","dateValue","setDateValue","getDate","timeValue","setTimeValue","useEffect","current","focus","invalid","createElement","FormField","label","displayName","__self","__source","fileName","lineNumber","columnNumber","Layout","Cell","span","DatePicker","internalRef","_internalRef$state","state","width","onChange","onValidate","validationType","newValue","format","dateWithNewDate","_value","setFullYear","getFullYear","setMonth","getMonth","setDate","toISOString","_field$validation3","dateFormat","fieldState","error","statusMessage","TimeInput","onInvalid","dateWithNewTime","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","_field$validation4","exports"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/DateTime.tsx"],"sourcesContent":["import React, { useRef, useMemo, useState, useEffect } from 'react';\nimport {\n Cell,\n DatePicker,\n FormField,\n Layout,\n TimeInput,\n} from '@wix/design-system';\nimport { BaseInputProps, BaseInputRef } from './types';\nimport {\n useWixPatternsContainer,\n useSelector,\n useEntityPageContext,\n} from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\n\nexport interface DateTimeProps extends BaseInputProps<string | null> {}\n\nexport const DateTime = (props: DateTimeProps) => {\n const { field, dataHook, inputRef } = props;\n const { translate: t, ...container } = useWixPatternsContainer();\n useSelector(() => container.initTask.status);\n const pageState = useEntityPageContext();\n\n const controller = useController({\n name: field?.id ?? '',\n control: pageState.form.control,\n defaultValue: (pageState.entity as any)?.[field?.id ?? ''],\n rules: {\n validate: (v) => {\n if (\n field?.validation?.required &&\n (v === null || v === undefined || v === '')\n ) {\n return t('cairo.fieldValidation.requiredField');\n }\n return true;\n },\n },\n });\n\n const date = useMemo(() => {\n if (!controller.field.value) {\n return undefined;\n }\n const d = new Date(controller.field.value);\n return isNaN(d.getTime()) ? undefined : d;\n }, [controller.field.value]);\n\n const [dateStatusMessage, setDateStatusMessage] = useState('');\n const [timeStatusMessage, setTimeStatusMessage] = useState('');\n\n const ref = useRef<BaseInputRef>({});\n const dateRef = useRef<BaseInputRef>({});\n const timeRef = useRef<BaseInputRef>({});\n const [dateValue, setDateValue] = useState<number | string | undefined>(\n date?.getDate(),\n );\n const [timeValue, setTimeValue] = useState<number | string | undefined>(\n date?.getTime(),\n );\n\n useEffect(() => {\n ref.current.focus = () => {\n if (dateRef.current.invalid) {\n return dateRef.current.focus?.();\n }\n\n return timeRef.current.focus?.();\n };\n\n inputRef?.(ref.current);\n }, [inputRef]);\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n dataHook={dataHook}\n >\n <Layout>\n <Cell span={6}>\n <DatePicker\n ref={(internalRef) => {\n dateRef.current.focus = () =>\n // TODO: PR to WSR needed to expose as public API\n // @ts-expect-error\n internalRef?.state?.inputRef?.focus?.();\n }}\n width=\"100%\"\n value={date}\n // onChange is triggered only when you have valid, non-empty value. and onValidate is triggered on every change so we use onValidate\n onChange={() => {}}\n onValidate={({ validationType, value: newValue, format }) => {\n if (validationType === 'valid') {\n const dateWithNewDate = date\n ? new Date(date)\n : new Date(newValue);\n const _value = new Date(newValue);\n dateWithNewDate.setFullYear(_value.getFullYear());\n dateWithNewDate.setMonth(_value.getMonth());\n dateWithNewDate.setDate(_value.getDate());\n controller.field.onChange(dateWithNewDate.toISOString());\n setDateValue(new Date(newValue).getDate());\n setDateStatusMessage('');\n dateRef.current.invalid = false;\n } else if (validationType === 'formatError' && newValue === '') {\n if (field.validation?.required) {\n setDateStatusMessage(\n t('cairo.fieldValidation.requiredField'),\n );\n dateRef.current.invalid = true;\n } else {\n setDateStatusMessage('');\n dateRef.current.invalid = false;\n }\n setDateValue(newValue);\n if (!timeValue) {\n controller.field.onChange(null);\n }\n } else {\n setDateStatusMessage(\n t('cairo.customFields.fieldType.date.invalid.value', {\n dateFormat: format ?? '',\n }),\n );\n dateRef.current.invalid = true;\n }\n\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n status={\n controller.fieldState.error || dateStatusMessage\n ? 'error'\n : undefined\n }\n statusMessage={controller.fieldState.error || dateStatusMessage}\n dataHook={`datetime-date-${field.id}`}\n />\n </Cell>\n <Cell span={6}>\n <TimeInput\n ref={(internalRef) => {\n timeRef.current.focus = () => internalRef?.focus();\n }}\n dataHook={`datetime-time-${field.id}`}\n value={date ?? null}\n status={\n controller.fieldState.error || timeStatusMessage\n ? 'error'\n : undefined\n }\n statusMessage={controller.fieldState.error || timeStatusMessage}\n onInvalid={() => {\n timeRef.current.invalid = true;\n setTimeStatusMessage(\n t('cairo.customFields.fieldType.dateAndTime.invalid.value'),\n );\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n onChange={({ date: newValue }) => {\n debugger;\n timeRef.current.invalid = false;\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n\n if (newValue) {\n const dateWithNewTime = date ? new Date(date) : newValue;\n dateWithNewTime.setHours(newValue.getHours());\n dateWithNewTime.setMinutes(newValue.getMinutes());\n dateWithNewTime.setSeconds(newValue.getSeconds());\n dateWithNewTime.setMilliseconds(newValue.getMilliseconds());\n controller.field.onChange(dateWithNewTime.toISOString());\n setTimeStatusMessage('');\n setDateStatusMessage('');\n } else {\n if (!newValue) {\n setTimeValue('');\n if (field.validation?.required) {\n setTimeStatusMessage(\n t('cairo.fieldValidation.requiredField'),\n );\n timeRef.current.invalid = true;\n } else {\n setTimeStatusMessage('');\n timeRef.current.invalid = false;\n }\n if (!ref.current.invalid) {\n if (!dateValue) {\n controller.field.onChange(null);\n }\n }\n }\n }\n }}\n />\n </Cell>\n </Layout>\n </FormField>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_patterns","_form","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DateTime","props","_pageState$entity","_field$validation2","field","dataHook","inputRef","translate","container","useWixPatternsContainer","useSelector","initTask","status","pageState","useEntityPageContext","controller","useController","name","id","control","form","defaultValue","entity","rules","validate","v","_field$validation","validation","required","undefined","date","useMemo","value","d","Date","isNaN","getTime","dateStatusMessage","setDateStatusMessage","useState","timeStatusMessage","setTimeStatusMessage","ref","useRef","dateRef","timeRef","dateValue","setDateValue","getDate","timeValue","setTimeValue","useEffect","current","focus","invalid","createElement","FormField","label","displayName","__self","__source","fileName","lineNumber","columnNumber","Layout","Cell","span","DatePicker","internalRef","_internalRef$state","state","width","onChange","onValidate","validationType","newValue","format","dateWithNewDate","_value","setFullYear","getFullYear","setMonth","getMonth","setDate","toISOString","_field$validation3","dateFormat","fieldState","error","statusMessage","TimeInput","onInvalid","dateWithNewTime","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","_field$validation4","exports"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/DateTime.tsx"],"sourcesContent":["import React, { useRef, useMemo, useState, useEffect } from 'react';\nimport {\n Cell,\n DatePicker,\n FormField,\n Layout,\n TimeInput,\n} from '@wix/design-system';\nimport { BaseInputProps, BaseInputRef } from './types';\nimport {\n useWixPatternsContainer,\n useSelector,\n useEntityPageContext,\n} from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\n\nexport interface DateTimeProps extends BaseInputProps<string | null> {}\n\nexport const DateTime = (props: DateTimeProps) => {\n const { field, dataHook, inputRef } = props;\n const { translate: t, ...container } = useWixPatternsContainer();\n useSelector(() => container.initTask.status);\n const pageState = useEntityPageContext();\n\n const controller = useController({\n name: field?.id ?? '',\n control: pageState.form.control,\n defaultValue: (pageState.entity as any)?.[field?.id ?? ''],\n rules: {\n validate: (v) => {\n if (\n field?.validation?.required &&\n (v === null || v === undefined || v === '')\n ) {\n return t('cairo.fieldValidation.requiredField');\n }\n return true;\n },\n },\n });\n\n const date = useMemo(() => {\n if (!controller.field.value) {\n return undefined;\n }\n const d = new Date(controller.field.value);\n return isNaN(d.getTime()) ? undefined : d;\n }, [controller.field.value]);\n\n const [dateStatusMessage, setDateStatusMessage] = useState('');\n const [timeStatusMessage, setTimeStatusMessage] = useState('');\n\n const ref = useRef<BaseInputRef>({});\n const dateRef = useRef<BaseInputRef>({});\n const timeRef = useRef<BaseInputRef>({});\n const [dateValue, setDateValue] = useState<number | string | undefined>(\n date?.getDate(),\n );\n const [timeValue, setTimeValue] = useState<number | string | undefined>(\n date?.getTime(),\n );\n\n useEffect(() => {\n ref.current.focus = () => {\n if (dateRef.current.invalid) {\n return dateRef.current.focus?.();\n }\n\n return timeRef.current.focus?.();\n };\n\n inputRef?.(ref.current);\n }, [inputRef]);\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n dataHook={dataHook}\n >\n <Layout>\n <Cell span={6}>\n <DatePicker\n ref={(internalRef) => {\n dateRef.current.focus = () =>\n // TODO: PR to WSR needed to expose as public API\n // @ts-expect-error\n internalRef?.state?.inputRef?.focus?.();\n }}\n width=\"100%\"\n value={date}\n // onChange is triggered only when you have valid, non-empty value. and onValidate is triggered on every change so we use onValidate\n onChange={() => {}}\n onValidate={({ validationType, value: newValue, format }) => {\n if (validationType === 'valid') {\n const dateWithNewDate = date\n ? new Date(date)\n : new Date(newValue);\n const _value = new Date(newValue);\n dateWithNewDate.setFullYear(_value.getFullYear());\n dateWithNewDate.setMonth(_value.getMonth());\n dateWithNewDate.setDate(_value.getDate());\n controller.field.onChange(dateWithNewDate.toISOString());\n setDateValue(new Date(newValue).getDate());\n setDateStatusMessage('');\n dateRef.current.invalid = false;\n } else if (validationType === 'formatError' && newValue === '') {\n if (field.validation?.required) {\n setDateStatusMessage(\n t('cairo.fieldValidation.requiredField'),\n );\n dateRef.current.invalid = true;\n } else {\n setDateStatusMessage('');\n dateRef.current.invalid = false;\n }\n setDateValue(newValue);\n if (!timeValue) {\n controller.field.onChange(null);\n }\n } else {\n setDateStatusMessage(\n t('cairo.customFields.fieldType.date.invalid.value', {\n dateFormat: format ?? '',\n }),\n );\n dateRef.current.invalid = true;\n }\n\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n status={\n controller.fieldState.error || dateStatusMessage\n ? 'error'\n : undefined\n }\n statusMessage={controller.fieldState.error || dateStatusMessage}\n dataHook={`datetime-date-${field.id}`}\n />\n </Cell>\n <Cell span={6}>\n <TimeInput\n ref={(internalRef) => {\n timeRef.current.focus = () => internalRef?.focus();\n }}\n dataHook={`datetime-time-${field.id}`}\n value={date ?? null}\n status={\n controller.fieldState.error || timeStatusMessage\n ? 'error'\n : undefined\n }\n statusMessage={controller.fieldState.error || timeStatusMessage}\n onInvalid={() => {\n timeRef.current.invalid = true;\n setTimeStatusMessage(\n t('cairo.customFields.fieldType.dateAndTime.invalid.value'),\n );\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n onChange={({ date: newValue }) => {\n timeRef.current.invalid = false;\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n\n if (newValue) {\n const dateWithNewTime = date ? new Date(date) : newValue;\n dateWithNewTime.setHours(newValue.getHours());\n dateWithNewTime.setMinutes(newValue.getMinutes());\n dateWithNewTime.setSeconds(newValue.getSeconds());\n dateWithNewTime.setMilliseconds(newValue.getMilliseconds());\n controller.field.onChange(dateWithNewTime.toISOString());\n setTimeStatusMessage('');\n setDateStatusMessage('');\n } else {\n if (!newValue) {\n setTimeValue('');\n if (field.validation?.required) {\n setTimeStatusMessage(\n t('cairo.fieldValidation.requiredField'),\n );\n timeRef.current.invalid = true;\n } else {\n setTimeStatusMessage('');\n timeRef.current.invalid = false;\n }\n if (!ref.current.invalid) {\n if (!dateValue) {\n controller.field.onChange(null);\n }\n }\n }\n }\n }}\n />\n </Cell>\n </Layout>\n </FormField>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -33,8 +33,7 @@ const AutoPatternsPage = ({
|
|
|
33
33
|
case 'entityPage':
|
|
34
34
|
if (entityPage) {
|
|
35
35
|
return /*#__PURE__*/_react.default.createElement(_SchemaContext.SchemaProvider, {
|
|
36
|
-
|
|
37
|
-
entityTypeSource: entityPage.entityTypeSource,
|
|
36
|
+
collection: entityPage,
|
|
38
37
|
__self: void 0,
|
|
39
38
|
__source: {
|
|
40
39
|
fileName: _jsxFileName,
|
|
@@ -46,7 +45,7 @@ const AutoPatternsPage = ({
|
|
|
46
45
|
__self: void 0,
|
|
47
46
|
__source: {
|
|
48
47
|
fileName: _jsxFileName,
|
|
49
|
-
lineNumber:
|
|
48
|
+
lineNumber: 24,
|
|
50
49
|
columnNumber: 13
|
|
51
50
|
}
|
|
52
51
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_AutoPatternsCollectionPage","_AutoPatternsEntityPage","_SchemaContext","_jsxFileName","AutoPatternsPage","pageConfig","type","collectionPage","entityPage","default","createElement","AutoPatternsCollectionPage","configuration","__self","__source","fileName","lineNumber","columnNumber","SchemaProvider","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_AutoPatternsCollectionPage","_AutoPatternsEntityPage","_SchemaContext","_jsxFileName","AutoPatternsPage","pageConfig","type","collectionPage","entityPage","default","createElement","AutoPatternsCollectionPage","configuration","__self","__source","fileName","lineNumber","columnNumber","SchemaProvider","collection","AutoPatternsEntityPage","exports"],"sources":["../../../../src/components/AutoPatternsRoute/AutoPatternsPage.tsx"],"sourcesContent":["import React from 'react';\nimport { PageConfig } from '../../types';\nimport { AutoPatternsCollectionPage } from '../AutoPatternsCollectionPage';\nimport { AutoPatternsEntityPage } from '../AutoPatternsEntityPage';\nimport { SchemaProvider } from '../../providers/SchemaContext';\n\nexport interface AutoPatternsPageProps {\n pageConfig: PageConfig;\n}\n\nexport const AutoPatternsPage = ({ pageConfig }: AutoPatternsPageProps) => {\n const { type, collectionPage, entityPage } = pageConfig;\n\n switch (type) {\n case 'collectionPage':\n if (collectionPage) {\n return <AutoPatternsCollectionPage configuration={collectionPage} />;\n }\n break;\n case 'entityPage':\n if (entityPage) {\n return (\n <SchemaProvider collection={entityPage}>\n <AutoPatternsEntityPage configuration={entityPage} />\n </SchemaProvider>\n );\n }\n break;\n default:\n break;\n }\n\n return null;\n};\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAA+D,IAAAI,YAAA;AAMxD,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC;AAAkC,CAAC,KAAK;EACzE,MAAM;IAAEC,IAAI;IAAEC,cAAc;IAAEC;EAAW,CAAC,GAAGH,UAAU;EAEvD,QAAQC,IAAI;IACV,KAAK,gBAAgB;MACnB,IAAIC,cAAc,EAAE;QAClB,oBAAOV,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACV,2BAAA,CAAAW,0BAA0B;UAACC,aAAa,EAAEL,cAAe;UAAAM,MAAA;UAAAC,QAAA;YAAAC,QAAA,EAAAZ,YAAA;YAAAa,UAAA;YAAAC,YAAA;UAAA;QAAA,CAAE,CAAC;MACtE;MACA;IACF,KAAK,YAAY;MACf,IAAIT,UAAU,EAAE;QACd,oBACEX,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACR,cAAA,CAAAgB,cAAc;UAACC,UAAU,EAAEX,UAAW;UAAAK,MAAA;UAAAC,QAAA;YAAAC,QAAA,EAAAZ,YAAA;YAAAa,UAAA;YAAAC,YAAA;UAAA;QAAA,gBACrCpB,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACT,uBAAA,CAAAmB,sBAAsB;UAACR,aAAa,EAAEJ,UAAW;UAAAK,MAAA;UAAAC,QAAA;YAAAC,QAAA,EAAAZ,YAAA;YAAAa,UAAA;YAAAC,YAAA;UAAA;QAAA,CAAE,CACtC,CAAC;MAErB;MACA;IACF;MACE;EACJ;EAEA,OAAO,IAAI;AACb,CAAC;AAACI,OAAA,CAAAjB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _patterns = require("@wix/patterns");
|
|
9
9
|
var _providers = require("../../providers");
|
|
10
|
-
var
|
|
10
|
+
var _fetchCmsData = require("../../dataSourceAdapters/cms/fetchCmsData");
|
|
11
11
|
var _jsxFileName = "/home/builduser/work/73d19ce3378ce4dd/packages/auto-patterns/dist/cjs/components/filters/DynamicCollectionFilter.tsx";
|
|
12
12
|
const DynamicCollectionFilter = ({
|
|
13
13
|
filter,
|
|
@@ -26,16 +26,10 @@ const DynamicCollectionFilter = ({
|
|
|
26
26
|
total: 0
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
const {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
collectionId,
|
|
33
|
-
entityTypeSource: 'cms',
|
|
34
|
-
schema: referencedSchema,
|
|
35
|
-
visibleFieldIds: [referencedSchema.displayField],
|
|
36
|
-
filtersMapping: {}
|
|
29
|
+
const result = await (0, _fetchCmsData.fetchCmsData)(collectionId, query, referencedSchema.fields, {
|
|
30
|
+
searchableFieldIds: [referencedSchema.displayField],
|
|
31
|
+
filterFieldMapping: {}
|
|
37
32
|
});
|
|
38
|
-
const result = await fetchFilterData(query);
|
|
39
33
|
return {
|
|
40
34
|
items: result.items.map(item => ({
|
|
41
35
|
id: item[referencedSchema.idField],
|
|
@@ -54,7 +48,7 @@ const DynamicCollectionFilter = ({
|
|
|
54
48
|
__self: void 0,
|
|
55
49
|
__source: {
|
|
56
50
|
fileName: _jsxFileName,
|
|
57
|
-
lineNumber:
|
|
51
|
+
lineNumber: 52,
|
|
58
52
|
columnNumber: 5
|
|
59
53
|
}
|
|
60
54
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_patterns","_providers","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_patterns","_providers","_fetchCmsData","_jsxFileName","DynamicCollectionFilter","filter","collectionId","component","FilterComponent","filterProps","getSchema","useSchemaRegistry","referencedSchema","fetchData","React","useCallback","query","items","total","result","fetchCmsData","fields","searchableFieldIds","displayField","filterFieldMapping","map","item","id","idField","name","collection","useFilterCollection","queryName","default","createElement","_extends2","__self","__source","fileName","lineNumber","columnNumber","exports"],"sources":["../../../../src/components/filters/DynamicCollectionFilter.tsx"],"sourcesContent":["import React from 'react';\nimport { Filter, useFilterCollection } from '@wix/patterns';\nimport { useSchemaRegistry } from '../../providers';\nimport { fetchCmsData } from '../../dataSourceAdapters/cms/fetchCmsData';\n\ninterface DynamicCollectionFilterProps {\n filter: Filter<any>;\n collectionId: string;\n component: React.ElementType;\n componentName?: string;\n [key: string]: any;\n}\n\nexport const DynamicCollectionFilter: React.FC<\n DynamicCollectionFilterProps\n> = ({ filter, collectionId, component: FilterComponent, ...filterProps }) => {\n const { getSchema } = useSchemaRegistry();\n const referencedSchema = getSchema(collectionId);\n\n const fetchData = React.useCallback(\n async (query) => {\n if (!referencedSchema) {\n return { items: [], total: 0 };\n }\n\n const result = await fetchCmsData(\n collectionId,\n query,\n referencedSchema.fields,\n {\n searchableFieldIds: [referencedSchema.displayField],\n filterFieldMapping: {},\n },\n );\n\n return {\n items: result.items.map((item: any) => ({\n id: item[referencedSchema.idField],\n name: item[referencedSchema.displayField],\n })),\n };\n },\n [collectionId, referencedSchema],\n );\n\n const collection = useFilterCollection(filter, {\n queryName: `filter-collection-${collectionId}`,\n fetchData,\n });\n\n return (\n <FilterComponent filter={filter} collection={collection} {...filterProps} />\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAAyE,IAAAI,YAAA;AAUlE,MAAMC,uBAEZ,GAAGA,CAAC;EAAEC,MAAM;EAAEC,YAAY;EAAEC,SAAS,EAAEC,eAAe;EAAE,GAAGC;AAAY,CAAC,KAAK;EAC5E,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,4BAAiB,EAAC,CAAC;EACzC,MAAMC,gBAAgB,GAAGF,SAAS,CAACJ,YAAY,CAAC;EAEhD,MAAMO,SAAS,GAAGC,cAAK,CAACC,WAAW,CACjC,MAAOC,KAAK,IAAK;IACf,IAAI,CAACJ,gBAAgB,EAAE;MACrB,OAAO;QAAEK,KAAK,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAE,CAAC;IAChC;IAEA,MAAMC,MAAM,GAAG,MAAM,IAAAC,0BAAY,EAC/Bd,YAAY,EACZU,KAAK,EACLJ,gBAAgB,CAACS,MAAM,EACvB;MACEC,kBAAkB,EAAE,CAACV,gBAAgB,CAACW,YAAY,CAAC;MACnDC,kBAAkB,EAAE,CAAC;IACvB,CACF,CAAC;IAED,OAAO;MACLP,KAAK,EAAEE,MAAM,CAACF,KAAK,CAACQ,GAAG,CAAEC,IAAS,KAAM;QACtCC,EAAE,EAAED,IAAI,CAACd,gBAAgB,CAACgB,OAAO,CAAC;QAClCC,IAAI,EAAEH,IAAI,CAACd,gBAAgB,CAACW,YAAY;MAC1C,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EACD,CAACjB,YAAY,EAAEM,gBAAgB,CACjC,CAAC;EAED,MAAMkB,UAAU,GAAG,IAAAC,6BAAmB,EAAC1B,MAAM,EAAE;IAC7C2B,SAAS,EAAE,qBAAqB1B,YAAY,EAAE;IAC9CO;EACF,CAAC,CAAC;EAEF,oBACEhB,MAAA,CAAAoC,OAAA,CAAAC,aAAA,CAAC1B,eAAe,MAAA2B,SAAA,CAAAF,OAAA;IAAC5B,MAAM,EAAEA,MAAO;IAACyB,UAAU,EAAEA;EAAW,GAAKrB,WAAW;IAAA2B,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAnC,YAAA;MAAAoC,UAAA;MAAAC,YAAA;IAAA;EAAA,EAAG,CAAC;AAEhF,CAAC;AAACC,OAAA,CAAArC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.CmsFieldTypeToPatternsFieldType = void 0;
|
|
5
|
-
exports.createCmsDataProvider = createCmsDataProvider;
|
|
6
5
|
exports.fetchCmsSchema = fetchCmsSchema;
|
|
7
6
|
var _data = require("@wix/data");
|
|
8
|
-
var
|
|
9
|
-
var _sortUtils = require("./sortUtils");
|
|
7
|
+
var _fetchCmsData = require("./fetchCmsData");
|
|
10
8
|
const CmsFieldTypeToPatternsFieldType = exports.CmsFieldTypeToPatternsFieldType = {
|
|
11
9
|
[_data.collections.Type.TEXT]: 'SHORT_TEXT',
|
|
12
10
|
[_data.collections.Type.DATE]: 'DATE',
|
|
@@ -26,55 +24,56 @@ const CmsFieldTypeToPatternsFieldType = exports.CmsFieldTypeToPatternsFieldType
|
|
|
26
24
|
async function fetchCmsSchema(collectionId) {
|
|
27
25
|
var _schema$fields$find;
|
|
28
26
|
const schema = await _data.collections.getDataCollection(collectionId);
|
|
29
|
-
|
|
27
|
+
const transformedFields = schema.fields.reduce((acc, field) => {
|
|
28
|
+
var _field$capabilities, _field$capabilities2, _field$typeMetadata;
|
|
29
|
+
if (!field.key) {
|
|
30
|
+
return acc;
|
|
31
|
+
}
|
|
32
|
+
const fieldType = field.type ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT' : 'SHORT_TEXT';
|
|
33
|
+
const baseField = {
|
|
34
|
+
id: field.key,
|
|
35
|
+
displayName: field.displayName || '',
|
|
36
|
+
validation: {
|
|
37
|
+
numberRange: field.numberRange ? {
|
|
38
|
+
min: field.numberRange.min ?? undefined,
|
|
39
|
+
max: field.numberRange.max ?? undefined
|
|
40
|
+
} : undefined,
|
|
41
|
+
stringLengthRange: field.stringLengthRange ? {
|
|
42
|
+
minLength: field.stringLengthRange.minLength ?? undefined,
|
|
43
|
+
maxLength: field.stringLengthRange.maxLength ?? undefined
|
|
44
|
+
} : undefined,
|
|
45
|
+
required: field.required ?? false
|
|
46
|
+
},
|
|
47
|
+
capabilities: {
|
|
48
|
+
supportedQueryOperators: ((_field$capabilities = field.capabilities) == null ? void 0 : _field$capabilities.queryOperators) || [],
|
|
49
|
+
sortable: ((_field$capabilities2 = field.capabilities) == null ? void 0 : _field$capabilities2.sortable) || false
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
if (fieldType === 'REFERENCE' && (_field$typeMetadata = field.typeMetadata) != null && (_field$typeMetadata = _field$typeMetadata.reference) != null && _field$typeMetadata.referencedCollectionId) {
|
|
53
|
+
const referenceField = {
|
|
54
|
+
...baseField,
|
|
55
|
+
type: 'REFERENCE',
|
|
56
|
+
referenceMetadata: {
|
|
57
|
+
referencedCollectionId: field.typeMetadata.reference.referencedCollectionId
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
acc[field.key] = referenceField;
|
|
61
|
+
} else {
|
|
62
|
+
const nonReferenceType = fieldType === 'REFERENCE' ? 'SHORT_TEXT' : fieldType;
|
|
63
|
+
const nonReferenceField = {
|
|
64
|
+
...baseField,
|
|
65
|
+
type: nonReferenceType
|
|
66
|
+
};
|
|
67
|
+
acc[field.key] = nonReferenceField;
|
|
68
|
+
}
|
|
69
|
+
return acc;
|
|
70
|
+
}, {});
|
|
71
|
+
const schemaConfig = {
|
|
30
72
|
id: collectionId,
|
|
31
73
|
displayField: schema.displayField ?? '_id',
|
|
32
74
|
idField: '_id',
|
|
33
75
|
imageField: (_schema$fields$find = schema.fields.find(field => field.type === 'IMAGE')) == null ? void 0 : _schema$fields$find.key,
|
|
34
|
-
fields:
|
|
35
|
-
var _field$capabilities, _field$capabilities2, _field$typeMetadata;
|
|
36
|
-
if (!field.key) {
|
|
37
|
-
return acc;
|
|
38
|
-
}
|
|
39
|
-
const fieldType = field.type ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT' : 'SHORT_TEXT';
|
|
40
|
-
const baseField = {
|
|
41
|
-
id: field.key,
|
|
42
|
-
displayName: field.displayName || '',
|
|
43
|
-
validation: {
|
|
44
|
-
numberRange: field.numberRange ? {
|
|
45
|
-
min: field.numberRange.min ?? undefined,
|
|
46
|
-
max: field.numberRange.max ?? undefined
|
|
47
|
-
} : undefined,
|
|
48
|
-
stringLengthRange: field.stringLengthRange ? {
|
|
49
|
-
minLength: field.stringLengthRange.minLength ?? undefined,
|
|
50
|
-
maxLength: field.stringLengthRange.maxLength ?? undefined
|
|
51
|
-
} : undefined,
|
|
52
|
-
required: field.required ?? false
|
|
53
|
-
},
|
|
54
|
-
capabilities: {
|
|
55
|
-
supportedQueryOperators: ((_field$capabilities = field.capabilities) == null ? void 0 : _field$capabilities.queryOperators) || [],
|
|
56
|
-
sortable: ((_field$capabilities2 = field.capabilities) == null ? void 0 : _field$capabilities2.sortable) || false
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
if (fieldType === 'REFERENCE' && (_field$typeMetadata = field.typeMetadata) != null && (_field$typeMetadata = _field$typeMetadata.reference) != null && _field$typeMetadata.referencedCollectionId) {
|
|
60
|
-
const referenceField = {
|
|
61
|
-
...baseField,
|
|
62
|
-
type: 'REFERENCE',
|
|
63
|
-
referenceMetadata: {
|
|
64
|
-
referencedCollectionId: field.typeMetadata.reference.referencedCollectionId
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
acc[field.key] = referenceField;
|
|
68
|
-
} else {
|
|
69
|
-
const nonReferenceType = fieldType === 'REFERENCE' ? 'SHORT_TEXT' : fieldType;
|
|
70
|
-
const nonReferenceField = {
|
|
71
|
-
...baseField,
|
|
72
|
-
type: nonReferenceType
|
|
73
|
-
};
|
|
74
|
-
acc[field.key] = nonReferenceField;
|
|
75
|
-
}
|
|
76
|
-
return acc;
|
|
77
|
-
}, {}),
|
|
76
|
+
fields: transformedFields,
|
|
78
77
|
actions: {
|
|
79
78
|
get: entityId => {
|
|
80
79
|
return _data.items.get(collectionId, entityId);
|
|
@@ -90,48 +89,12 @@ async function fetchCmsSchema(collectionId) {
|
|
|
90
89
|
},
|
|
91
90
|
bulkDelete: entityIds => {
|
|
92
91
|
return _data.items.bulkRemove(collectionId, entityIds);
|
|
92
|
+
},
|
|
93
|
+
find: async (query, options = {}) => {
|
|
94
|
+
return (0, _fetchCmsData.fetchCmsData)(collectionId, query, transformedFields, options);
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
97
|
};
|
|
96
|
-
|
|
97
|
-
function createCmsDataProvider({
|
|
98
|
-
collectionId,
|
|
99
|
-
schema,
|
|
100
|
-
visibleFieldIds,
|
|
101
|
-
filtersMapping
|
|
102
|
-
}) {
|
|
103
|
-
return {
|
|
104
|
-
fetchData: async query => {
|
|
105
|
-
let dataQuery = _data.items.query(collectionId);
|
|
106
|
-
dataQuery = (0, _filterUtils.addSearchToDataQuery)({
|
|
107
|
-
dataQuery,
|
|
108
|
-
query,
|
|
109
|
-
schema,
|
|
110
|
-
visibleFieldIds
|
|
111
|
-
});
|
|
112
|
-
dataQuery = (0, _filterUtils.addFiltersToDataQuery)({
|
|
113
|
-
dataQuery,
|
|
114
|
-
query,
|
|
115
|
-
schema,
|
|
116
|
-
filtersMapping
|
|
117
|
-
});
|
|
118
|
-
dataQuery = (0, _sortUtils.addSortToDataQuery)({
|
|
119
|
-
dataQuery,
|
|
120
|
-
query,
|
|
121
|
-
schema
|
|
122
|
-
});
|
|
123
|
-
const referenceFieldIds = Object.values(schema.fields).filter(field => !!field && field.type === 'REFERENCE' && visibleFieldIds.includes(field.id)).map(field => field.id);
|
|
124
|
-
if (referenceFieldIds.length > 0) {
|
|
125
|
-
dataQuery = dataQuery.include(...referenceFieldIds);
|
|
126
|
-
}
|
|
127
|
-
const res = await dataQuery.skip(query.offset).limit(query.limit).find({
|
|
128
|
-
returnTotalCount: true
|
|
129
|
-
});
|
|
130
|
-
return {
|
|
131
|
-
items: res.items,
|
|
132
|
-
total: res.totalCount ?? 0
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
};
|
|
98
|
+
return schemaConfig;
|
|
136
99
|
}
|
|
137
100
|
//# sourceMappingURL=cmsAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_filterUtils","_sortUtils","CmsFieldTypeToPatternsFieldType","exports","collections","Type","TEXT","DATE","DATETIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","IMAGE","fetchCmsSchema","collectionId","_schema$fields$find","schema","getDataCollection","id","displayField","idField","imageField","fields","find","field","type","key","reduce","acc","_field$capabilities","_field$capabilities2","_field$typeMetadata","fieldType","baseField","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","typeMetadata","reference","referencedCollectionId","referenceField","referenceMetadata","nonReferenceType","nonReferenceField","actions","get","entityId","items","create","entity","insert","update","delete","remove","bulkDelete","entityIds","bulkRemove","createCmsDataProvider","visibleFieldIds","filtersMapping","fetchData","query","dataQuery","addSearchToDataQuery","addFiltersToDataQuery","addSortToDataQuery","referenceFieldIds","Object","values","filter","includes","map","length","include","res","skip","offset","limit","returnTotalCount","total","totalCount"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType, Filter } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { ComputedQuery, CollectionConfig } from '@wix/patterns';\nimport { addFiltersToDataQuery, addSearchToDataQuery } from './filterUtils';\nimport { addSortToDataQuery } from './sortUtils';\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'SHORT_TEXT',\n [collections.Type.OBJECT]: 'LONG_TEXT',\n [collections.Type.RICH_TEXT]: 'LONG_TEXT',\n [collections.Type.RICH_CONTENT]: 'SHORT_TEXT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<SchemaConfig> {\n const schema = await collections.getDataCollection(collectionId);\n\n return {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n imageField: schema.fields.find((field) => field.type === 'IMAGE')?.key,\n fields: schema.fields.reduce<Record<string, Field>>((acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n if (\n fieldType === 'REFERENCE' &&\n field.typeMetadata?.reference?.referencedCollectionId\n ) {\n const referenceField: Field = {\n ...baseField,\n type: 'REFERENCE',\n referenceMetadata: {\n referencedCollectionId:\n field.typeMetadata.reference.referencedCollectionId,\n },\n };\n acc[field.key] = referenceField;\n } else {\n const nonReferenceType =\n fieldType === 'REFERENCE' ? 'SHORT_TEXT' : fieldType;\n const nonReferenceField: Field = {\n ...baseField,\n type: nonReferenceType,\n };\n acc[field.key] = nonReferenceField;\n }\n\n return acc;\n }, {}),\n actions: {\n get: (entityId: string) => {\n return items.get(collectionId, entityId);\n },\n create: (entity) => {\n return items.insert(collectionId, entity);\n },\n update: (entity) => {\n return items.update(collectionId, entity);\n },\n delete: (entityId) => {\n return items.remove(collectionId, entityId);\n },\n bulkDelete: (entityIds) => {\n return items.bulkRemove(collectionId, entityIds);\n },\n },\n };\n}\n\nexport function createCmsDataProvider({\n collectionId,\n schema,\n visibleFieldIds,\n filtersMapping,\n}: {\n collectionId: string;\n schema: SchemaConfig;\n visibleFieldIds: string[];\n filtersMapping?: Record<string, Filter>;\n}): { fetchData: CollectionConfig<any, any>['fetchData'] } {\n return {\n fetchData: async (query: ComputedQuery<any>) => {\n let dataQuery = items.query(collectionId);\n dataQuery = addSearchToDataQuery({\n dataQuery,\n query,\n schema,\n visibleFieldIds,\n });\n dataQuery = addFiltersToDataQuery({\n dataQuery,\n query,\n schema,\n filtersMapping,\n });\n dataQuery = addSortToDataQuery({\n dataQuery,\n query,\n schema,\n });\n\n const referenceFieldIds = Object.values(schema.fields)\n .filter(\n (field): field is Field =>\n !!field &&\n field.type === 'REFERENCE' &&\n visibleFieldIds.includes(field.id),\n )\n .map((field) => field.id);\n\n if (referenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...referenceFieldIds);\n }\n\n const res = await dataQuery\n .skip(query.offset)\n .limit(query.limit)\n .find({ returnTotalCount: true });\n\n return {\n items: res.items,\n total: res.totalCount ?? 0,\n };\n },\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEO,MAAMG,+BAEZ,GAAAC,OAAA,CAAAD,+BAAA,GAAG;EACF,CAACE,iBAAW,CAACC,IAAI,CAACC,IAAI,GAAG,YAAY;EACrC,CAACF,iBAAW,CAACC,IAAI,CAACE,IAAI,GAAG,MAAM;EAC/B,CAACH,iBAAW,CAACC,IAAI,CAACG,QAAQ,GAAG,UAAU;EACvC,CAACJ,iBAAW,CAACC,IAAI,CAACI,MAAM,GAAG,QAAQ;EACnC,CAACL,iBAAW,CAACC,IAAI,CAACK,OAAO,GAAG,SAAS;EACrC,CAACN,iBAAW,CAACC,IAAI,CAACM,GAAG,GAAG,KAAK;EAC7B,CAACP,iBAAW,CAACC,IAAI,CAACO,OAAO,GAAG,YAAY;EACxC,CAACR,iBAAW,CAACC,IAAI,CAACQ,MAAM,GAAG,WAAW;EACtC,CAACT,iBAAW,CAACC,IAAI,CAACS,SAAS,GAAG,WAAW;EACzC,CAACV,iBAAW,CAACC,IAAI,CAACU,YAAY,GAAG,YAAY;EAC7C,CAACX,iBAAW,CAACC,IAAI,CAACW,KAAK,GAAG,OAAO;EACjC,CAACZ,iBAAW,CAACC,IAAI,CAACY,YAAY,GAAG,OAAO;EACxC,CAACb,iBAAW,CAACC,IAAI,CAACa,SAAS,GAAG,WAAW;EACzC,CAACd,iBAAW,CAACC,IAAI,CAACc,KAAK,GAAG;AAC5B,CAAC;AAEM,eAAeC,cAAcA,CAClCC,YAAoB,EACG;EAAA,IAAAC,mBAAA;EACvB,MAAMC,MAAM,GAAG,MAAMnB,iBAAW,CAACoB,iBAAiB,CAACH,YAAY,CAAC;EAEhE,OAAO;IACLI,EAAE,EAAEJ,YAAY;IAChBK,YAAY,EAAEH,MAAM,CAACG,YAAY,IAAI,KAAK;IAC1CC,OAAO,EAAE,KAAK;IACdC,UAAU,GAAAN,mBAAA,GAAEC,MAAM,CAACM,MAAM,CAACC,IAAI,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,KAAK,OAAO,CAAC,qBAArDV,mBAAA,CAAuDW,GAAG;IACtEJ,MAAM,EAAEN,MAAM,CAACM,MAAM,CAACK,MAAM,CAAwB,CAACC,GAAG,EAAEJ,KAAK,KAAK;MAAA,IAAAK,mBAAA,EAAAC,oBAAA,EAAAC,mBAAA;MAClE,IAAI,CAACP,KAAK,CAACE,GAAG,EAAE;QACd,OAAOE,GAAG;MACZ;MAEA,MAAMI,SAAS,GAAGR,KAAK,CAACC,IAAI,GACxB9B,+BAA+B,CAAC6B,KAAK,CAACC,IAAI,CAAC,IAAI,YAAY,GAC3D,YAAY;MAChB,MAAMQ,SAAS,GAAG;QAChBf,EAAE,EAAEM,KAAK,CAACE,GAAG;QACbQ,WAAW,EAAEV,KAAK,CAACU,WAAW,IAAI,EAAE;QACpCC,UAAU,EAAE;UACVC,WAAW,EAAEZ,KAAK,CAACY,WAAW,GAC1B;YACEC,GAAG,EAAEb,KAAK,CAACY,WAAW,CAACC,GAAG,IAAIC,SAAS;YACvCC,GAAG,EAAEf,KAAK,CAACY,WAAW,CAACG,GAAG,IAAID;UAChC,CAAC,GACDA,SAAS;UACbE,iBAAiB,EAAEhB,KAAK,CAACgB,iBAAiB,GACtC;YACEC,SAAS,EAAEjB,KAAK,CAACgB,iBAAiB,CAACC,SAAS,IAAIH,SAAS;YACzDI,SAAS,EAAElB,KAAK,CAACgB,iBAAiB,CAACE,SAAS,IAAIJ;UAClD,CAAC,GACDA,SAAS;UACbK,QAAQ,EAAEnB,KAAK,CAACmB,QAAQ,IAAI;QAC9B,CAAC;QACDC,YAAY,EAAE;UACZC,uBAAuB,EAAE,EAAAhB,mBAAA,GAAAL,KAAK,CAACoB,YAAY,qBAAlBf,mBAAA,CAAoBiB,cAAc,KAAI,EAAE;UACjEC,QAAQ,EAAE,EAAAjB,oBAAA,GAAAN,KAAK,CAACoB,YAAY,qBAAlBd,oBAAA,CAAoBiB,QAAQ,KAAI;QAC5C;MACF,CAAC;MAED,IACEf,SAAS,KAAK,WAAW,KAAAD,mBAAA,GACzBP,KAAK,CAACwB,YAAY,cAAAjB,mBAAA,GAAlBA,mBAAA,CAAoBkB,SAAS,aAA7BlB,mBAAA,CAA+BmB,sBAAsB,EACrD;QACA,MAAMC,cAAqB,GAAG;UAC5B,GAAGlB,SAAS;UACZR,IAAI,EAAE,WAAW;UACjB2B,iBAAiB,EAAE;YACjBF,sBAAsB,EACpB1B,KAAK,CAACwB,YAAY,CAACC,SAAS,CAACC;UACjC;QACF,CAAC;QACDtB,GAAG,CAACJ,KAAK,CAACE,GAAG,CAAC,GAAGyB,cAAc;MACjC,CAAC,MAAM;QACL,MAAME,gBAAgB,GACpBrB,SAAS,KAAK,WAAW,GAAG,YAAY,GAAGA,SAAS;QACtD,MAAMsB,iBAAwB,GAAG;UAC/B,GAAGrB,SAAS;UACZR,IAAI,EAAE4B;QACR,CAAC;QACDzB,GAAG,CAACJ,KAAK,CAACE,GAAG,CAAC,GAAG4B,iBAAiB;MACpC;MAEA,OAAO1B,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IACN2B,OAAO,EAAE;MACPC,GAAG,EAAGC,QAAgB,IAAK;QACzB,OAAOC,WAAK,CAACF,GAAG,CAAC1C,YAAY,EAAE2C,QAAQ,CAAC;MAC1C,CAAC;MACDE,MAAM,EAAGC,MAAM,IAAK;QAClB,OAAOF,WAAK,CAACG,MAAM,CAAC/C,YAAY,EAAE8C,MAAM,CAAC;MAC3C,CAAC;MACDE,MAAM,EAAGF,MAAM,IAAK;QAClB,OAAOF,WAAK,CAACI,MAAM,CAAChD,YAAY,EAAE8C,MAAM,CAAC;MAC3C,CAAC;MACDG,MAAM,EAAGN,QAAQ,IAAK;QACpB,OAAOC,WAAK,CAACM,MAAM,CAAClD,YAAY,EAAE2C,QAAQ,CAAC;MAC7C,CAAC;MACDQ,UAAU,EAAGC,SAAS,IAAK;QACzB,OAAOR,WAAK,CAACS,UAAU,CAACrD,YAAY,EAAEoD,SAAS,CAAC;MAClD;IACF;EACF,CAAC;AACH;AAEO,SAASE,qBAAqBA,CAAC;EACpCtD,YAAY;EACZE,MAAM;EACNqD,eAAe;EACfC;AAMF,CAAC,EAA0D;EACzD,OAAO;IACLC,SAAS,EAAE,MAAOC,KAAyB,IAAK;MAC9C,IAAIC,SAAS,GAAGf,WAAK,CAACc,KAAK,CAAC1D,YAAY,CAAC;MACzC2D,SAAS,GAAG,IAAAC,iCAAoB,EAAC;QAC/BD,SAAS;QACTD,KAAK;QACLxD,MAAM;QACNqD;MACF,CAAC,CAAC;MACFI,SAAS,GAAG,IAAAE,kCAAqB,EAAC;QAChCF,SAAS;QACTD,KAAK;QACLxD,MAAM;QACNsD;MACF,CAAC,CAAC;MACFG,SAAS,GAAG,IAAAG,6BAAkB,EAAC;QAC7BH,SAAS;QACTD,KAAK;QACLxD;MACF,CAAC,CAAC;MAEF,MAAM6D,iBAAiB,GAAGC,MAAM,CAACC,MAAM,CAAC/D,MAAM,CAACM,MAAM,CAAC,CACnD0D,MAAM,CACJxD,KAAK,IACJ,CAAC,CAACA,KAAK,IACPA,KAAK,CAACC,IAAI,KAAK,WAAW,IAC1B4C,eAAe,CAACY,QAAQ,CAACzD,KAAK,CAACN,EAAE,CACrC,CAAC,CACAgE,GAAG,CAAE1D,KAAK,IAAKA,KAAK,CAACN,EAAE,CAAC;MAE3B,IAAI2D,iBAAiB,CAACM,MAAM,GAAG,CAAC,EAAE;QAChCV,SAAS,GAAGA,SAAS,CAACW,OAAO,CAAC,GAAGP,iBAAiB,CAAC;MACrD;MAEA,MAAMQ,GAAG,GAAG,MAAMZ,SAAS,CACxBa,IAAI,CAACd,KAAK,CAACe,MAAM,CAAC,CAClBC,KAAK,CAAChB,KAAK,CAACgB,KAAK,CAAC,CAClBjE,IAAI,CAAC;QAAEkE,gBAAgB,EAAE;MAAK,CAAC,CAAC;MAEnC,OAAO;QACL/B,KAAK,EAAE2B,GAAG,CAAC3B,KAAK;QAChBgC,KAAK,EAAEL,GAAG,CAACM,UAAU,IAAI;MAC3B,CAAC;IACH;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_data","require","_fetchCmsData","CmsFieldTypeToPatternsFieldType","exports","collections","Type","TEXT","DATE","DATETIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","IMAGE","fetchCmsSchema","collectionId","_schema$fields$find","schema","getDataCollection","transformedFields","fields","reduce","acc","field","_field$capabilities","_field$capabilities2","_field$typeMetadata","key","fieldType","type","baseField","id","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","typeMetadata","reference","referencedCollectionId","referenceField","referenceMetadata","nonReferenceType","nonReferenceField","schemaConfig","displayField","idField","imageField","find","actions","get","entityId","items","create","entity","insert","update","delete","remove","bulkDelete","entityIds","bulkRemove","query","options","fetchCmsData"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType } from '../../types';\nimport { ComputedQuery } from '@wix/patterns';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'SHORT_TEXT',\n [collections.Type.OBJECT]: 'LONG_TEXT',\n [collections.Type.RICH_TEXT]: 'LONG_TEXT',\n [collections.Type.RICH_CONTENT]: 'SHORT_TEXT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<SchemaConfig> {\n const schema = await collections.getDataCollection(collectionId);\n\n const transformedFields = schema.fields.reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n if (\n fieldType === 'REFERENCE' &&\n field.typeMetadata?.reference?.referencedCollectionId\n ) {\n const referenceField: Field = {\n ...baseField,\n type: 'REFERENCE',\n referenceMetadata: {\n referencedCollectionId:\n field.typeMetadata.reference.referencedCollectionId,\n },\n };\n acc[field.key] = referenceField;\n } else {\n const nonReferenceType =\n fieldType === 'REFERENCE' ? 'SHORT_TEXT' : fieldType;\n const nonReferenceField: Field = {\n ...baseField,\n type: nonReferenceType,\n };\n acc[field.key] = nonReferenceField;\n }\n\n return acc;\n },\n {},\n );\n\n const schemaConfig: SchemaConfig = {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n imageField: schema.fields.find((field) => field.type === 'IMAGE')?.key,\n fields: transformedFields,\n actions: {\n get: (entityId: string) => {\n return items.get(collectionId, entityId);\n },\n create: (entity) => {\n return items.insert(collectionId, entity);\n },\n update: (entity) => {\n return items.update(collectionId, entity);\n },\n delete: (entityId) => {\n return items.remove(collectionId, entityId);\n },\n bulkDelete: (entityIds) => {\n return items.bulkRemove(collectionId, entityIds);\n },\n find: async (\n query: ComputedQuery<any>,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n ) => {\n return fetchCmsData(collectionId, query, transformedFields, options);\n },\n },\n };\n\n return schemaConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.fetchCmsData = fetchCmsData;
|
|
5
|
+
var _data = require("@wix/data");
|
|
6
|
+
var _filterUtils = require("./filterUtils");
|
|
7
|
+
var _sortUtils = require("./sortUtils");
|
|
8
|
+
async function fetchCmsData(collectionId, query, fields, options = {}) {
|
|
9
|
+
const {
|
|
10
|
+
searchableFieldIds = [],
|
|
11
|
+
filterFieldMapping
|
|
12
|
+
} = options;
|
|
13
|
+
let dataQuery = _data.items.query(collectionId);
|
|
14
|
+
dataQuery = (0, _filterUtils.addSearchToDataQuery)({
|
|
15
|
+
dataQuery,
|
|
16
|
+
query,
|
|
17
|
+
fields,
|
|
18
|
+
searchableFieldIds
|
|
19
|
+
});
|
|
20
|
+
dataQuery = (0, _filterUtils.addFiltersToDataQuery)({
|
|
21
|
+
dataQuery,
|
|
22
|
+
query,
|
|
23
|
+
fields,
|
|
24
|
+
filterFieldMapping
|
|
25
|
+
});
|
|
26
|
+
dataQuery = (0, _sortUtils.addSortToDataQuery)({
|
|
27
|
+
dataQuery,
|
|
28
|
+
query,
|
|
29
|
+
fields
|
|
30
|
+
});
|
|
31
|
+
const referenceFieldIds = Object.values(fields).filter(field => !!field && field.type === 'REFERENCE' && searchableFieldIds.includes(field.id)).map(field => field.id);
|
|
32
|
+
if (referenceFieldIds.length > 0) {
|
|
33
|
+
dataQuery = dataQuery.include(...referenceFieldIds);
|
|
34
|
+
}
|
|
35
|
+
const res = await dataQuery.skip(query.offset).limit(query.limit).find({
|
|
36
|
+
returnTotalCount: true
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
items: res.items,
|
|
40
|
+
total: res.totalCount ?? 0
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=fetchCmsData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_data","require","_filterUtils","_sortUtils","fetchCmsData","collectionId","query","fields","options","searchableFieldIds","filterFieldMapping","dataQuery","items","addSearchToDataQuery","addFiltersToDataQuery","addSortToDataQuery","referenceFieldIds","Object","values","filter","field","type","includes","id","map","length","include","res","skip","offset","limit","find","returnTotalCount","total","totalCount"],"sources":["../../../../src/dataSourceAdapters/cms/fetchCmsData.ts"],"sourcesContent":["import { ComputedQuery } from '@wix/patterns';\nimport { items } from '@wix/data';\nimport { Field } from '../../types';\nimport { addFiltersToDataQuery, addSearchToDataQuery } from './filterUtils';\nimport { addSortToDataQuery } from './sortUtils';\n\nexport async function fetchCmsData(\n collectionId: string,\n query: ComputedQuery<any>,\n fields: Record<string, Field | undefined>,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n) {\n const { searchableFieldIds = [], filterFieldMapping } = options;\n\n let dataQuery = items.query(collectionId);\n dataQuery = addSearchToDataQuery({\n dataQuery,\n query,\n fields,\n searchableFieldIds,\n });\n dataQuery = addFiltersToDataQuery({\n dataQuery,\n query,\n fields,\n filterFieldMapping,\n });\n dataQuery = addSortToDataQuery({\n dataQuery,\n query,\n fields,\n });\n\n const referenceFieldIds = Object.values(fields)\n .filter(\n (field): field is Field =>\n !!field &&\n field.type === 'REFERENCE' &&\n searchableFieldIds.includes(field.id),\n )\n .map((field) => field.id);\n\n if (referenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...referenceFieldIds);\n }\n\n const res = await dataQuery\n .skip(query.offset)\n .limit(query.limit)\n .find({ returnTotalCount: true });\n\n return {\n items: res.items,\n total: res.totalCount ?? 0,\n };\n}\n"],"mappings":";;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEO,eAAeG,YAAYA,CAChCC,YAAoB,EACpBC,KAAyB,EACzBC,MAAyC,EACzCC,OAGC,GAAG,CAAC,CAAC,EACN;EACA,MAAM;IAAEC,kBAAkB,GAAG,EAAE;IAAEC;EAAmB,CAAC,GAAGF,OAAO;EAE/D,IAAIG,SAAS,GAAGC,WAAK,CAACN,KAAK,CAACD,YAAY,CAAC;EACzCM,SAAS,GAAG,IAAAE,iCAAoB,EAAC;IAC/BF,SAAS;IACTL,KAAK;IACLC,MAAM;IACNE;EACF,CAAC,CAAC;EACFE,SAAS,GAAG,IAAAG,kCAAqB,EAAC;IAChCH,SAAS;IACTL,KAAK;IACLC,MAAM;IACNG;EACF,CAAC,CAAC;EACFC,SAAS,GAAG,IAAAI,6BAAkB,EAAC;IAC7BJ,SAAS;IACTL,KAAK;IACLC;EACF,CAAC,CAAC;EAEF,MAAMS,iBAAiB,GAAGC,MAAM,CAACC,MAAM,CAACX,MAAM,CAAC,CAC5CY,MAAM,CACJC,KAAK,IACJ,CAAC,CAACA,KAAK,IACPA,KAAK,CAACC,IAAI,KAAK,WAAW,IAC1BZ,kBAAkB,CAACa,QAAQ,CAACF,KAAK,CAACG,EAAE,CACxC,CAAC,CACAC,GAAG,CAAEJ,KAAK,IAAKA,KAAK,CAACG,EAAE,CAAC;EAE3B,IAAIP,iBAAiB,CAACS,MAAM,GAAG,CAAC,EAAE;IAChCd,SAAS,GAAGA,SAAS,CAACe,OAAO,CAAC,GAAGV,iBAAiB,CAAC;EACrD;EAEA,MAAMW,GAAG,GAAG,MAAMhB,SAAS,CACxBiB,IAAI,CAACtB,KAAK,CAACuB,MAAM,CAAC,CAClBC,KAAK,CAACxB,KAAK,CAACwB,KAAK,CAAC,CAClBC,IAAI,CAAC;IAAEC,gBAAgB,EAAE;EAAK,CAAC,CAAC;EAEnC,OAAO;IACLpB,KAAK,EAAEe,GAAG,CAACf,KAAK;IAChBqB,KAAK,EAAEN,GAAG,CAACO,UAAU,IAAI;EAC3B,CAAC;AACH","ignoreList":[]}
|
|
@@ -18,8 +18,8 @@ function getOperatorForFilter(prop) {
|
|
|
18
18
|
}
|
|
19
19
|
return undefined;
|
|
20
20
|
}
|
|
21
|
-
const isSupportedOperator = (
|
|
22
|
-
const field =
|
|
21
|
+
const isSupportedOperator = (fields, filterProp, filterKey) => {
|
|
22
|
+
const field = fields[filterKey];
|
|
23
23
|
if (!field) {
|
|
24
24
|
return false;
|
|
25
25
|
}
|
|
@@ -33,10 +33,10 @@ const isSupportedOperator = (schema, filterProp, filterKey) => {
|
|
|
33
33
|
function addFiltersToDataQuery({
|
|
34
34
|
dataQuery,
|
|
35
35
|
query,
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
fields,
|
|
37
|
+
filterFieldMapping
|
|
38
38
|
}) {
|
|
39
|
-
if (!
|
|
39
|
+
if (!filterFieldMapping) {
|
|
40
40
|
return dataQuery;
|
|
41
41
|
}
|
|
42
42
|
let dataQueryWithFilters = dataQuery;
|
|
@@ -44,13 +44,13 @@ function addFiltersToDataQuery({
|
|
|
44
44
|
filters
|
|
45
45
|
} = query;
|
|
46
46
|
for (const fieldKey in filters) {
|
|
47
|
-
const fieldId =
|
|
47
|
+
const fieldId = filterFieldMapping[fieldKey].fieldId;
|
|
48
48
|
const filter = filters[fieldKey];
|
|
49
49
|
if (filter) {
|
|
50
50
|
if (Array.isArray(filter)) {
|
|
51
|
-
var
|
|
51
|
+
var _fields$fieldId;
|
|
52
52
|
const filterArray = filter;
|
|
53
|
-
if (((
|
|
53
|
+
if (((_fields$fieldId = fields[fieldId]) == null ? void 0 : _fields$fieldId.type) === 'BOOLEAN') {
|
|
54
54
|
if (filterArray.some(item => item.id === _constants.BooleanFilters.checked)) {
|
|
55
55
|
dataQueryWithFilters = dataQueryWithFilters.eq(fieldId, true);
|
|
56
56
|
} else {
|
|
@@ -65,7 +65,7 @@ function addFiltersToDataQuery({
|
|
|
65
65
|
const filterObj = filter;
|
|
66
66
|
for (const filterProp in filterObj) {
|
|
67
67
|
const operator = getOperatorForFilter(filterProp);
|
|
68
|
-
if (operator && typeof dataQuery[operator] === 'function' && isSupportedOperator(
|
|
68
|
+
if (operator && typeof dataQuery[operator] === 'function' && isSupportedOperator(fields, filterProp, fieldId)) {
|
|
69
69
|
const value = filterObj[filterProp];
|
|
70
70
|
if (value !== undefined && value !== null) {
|
|
71
71
|
dataQueryWithFilters = dataQueryWithFilters[operator](fieldId, value);
|
|
@@ -81,13 +81,13 @@ const TEXT_FIELD_TYPES = ['LONG_TEXT', 'SHORT_TEXT'];
|
|
|
81
81
|
function addSearchToDataQuery({
|
|
82
82
|
dataQuery,
|
|
83
83
|
query,
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
fields,
|
|
85
|
+
searchableFieldIds
|
|
86
86
|
}) {
|
|
87
|
-
const searchableFields = Object.keys(
|
|
88
|
-
const field =
|
|
89
|
-
const
|
|
90
|
-
return
|
|
87
|
+
const searchableFields = Object.keys(fields).filter(fieldId => {
|
|
88
|
+
const field = fields[fieldId];
|
|
89
|
+
const isFieldSearchable = searchableFieldIds.includes(fieldId);
|
|
90
|
+
return isFieldSearchable && field && TEXT_FIELD_TYPES.includes(field.type);
|
|
91
91
|
});
|
|
92
92
|
if (query.search && searchableFields.length > 0) {
|
|
93
93
|
let searchFilter = null;
|