@wix/patterns-cms 1.17.0 → 1.18.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/adapter/__tests__/cmsFieldActions.spec.js +59 -27
- package/dist/cjs/adapter/__tests__/cmsFieldActions.spec.js.map +1 -1
- package/dist/cjs/adapter/__tests__/useCmsSchemaSource.spec.js +34 -2
- package/dist/cjs/adapter/__tests__/useCmsSchemaSource.spec.js.map +1 -1
- package/dist/cjs/adapter/createCmsFieldActions.js +35 -3
- package/dist/cjs/adapter/createCmsFieldActions.js.map +1 -1
- package/dist/cjs/adapter/fieldSettings/CmsFieldSettings.js +359 -0
- package/dist/cjs/adapter/fieldSettings/CmsFieldSettings.js.map +1 -0
- package/dist/cjs/adapter/fieldSettings/CmsFieldSettingsState.js +144 -0
- package/dist/cjs/adapter/fieldSettings/CmsFieldSettingsState.js.map +1 -0
- package/dist/cjs/adapter/fieldSettings/createCmsFieldSettings.js +29 -0
- package/dist/cjs/adapter/fieldSettings/createCmsFieldSettings.js.map +1 -0
- package/dist/cjs/adapter/useCmsSchemaSource.js +70 -56
- package/dist/cjs/adapter/useCmsSchemaSource.js.map +1 -1
- package/dist/esm/adapter/__tests__/cmsFieldActions.spec.js +50 -23
- package/dist/esm/adapter/__tests__/cmsFieldActions.spec.js.map +1 -1
- package/dist/esm/adapter/__tests__/useCmsSchemaSource.spec.js +24 -2
- package/dist/esm/adapter/__tests__/useCmsSchemaSource.spec.js.map +1 -1
- package/dist/esm/adapter/createCmsFieldActions.js +28 -3
- package/dist/esm/adapter/createCmsFieldActions.js.map +1 -1
- package/dist/esm/adapter/fieldSettings/CmsFieldSettings.js +45 -0
- package/dist/esm/adapter/fieldSettings/CmsFieldSettings.js.map +1 -0
- package/dist/esm/adapter/fieldSettings/CmsFieldSettingsState.js +136 -0
- package/dist/esm/adapter/fieldSettings/CmsFieldSettingsState.js.map +1 -0
- package/dist/esm/adapter/fieldSettings/createCmsFieldSettings.js +13 -0
- package/dist/esm/adapter/fieldSettings/createCmsFieldSettings.js.map +1 -0
- package/dist/esm/adapter/useCmsSchemaSource.js +71 -59
- package/dist/esm/adapter/useCmsSchemaSource.js.map +1 -1
- package/dist/types/adapter/createCmsFieldActions.d.ts.map +1 -1
- package/dist/types/adapter/fieldSettings/CmsFieldSettings.d.ts +12 -0
- package/dist/types/adapter/fieldSettings/CmsFieldSettings.d.ts.map +1 -0
- package/dist/types/adapter/fieldSettings/CmsFieldSettingsState.d.ts +53 -0
- package/dist/types/adapter/fieldSettings/CmsFieldSettingsState.d.ts.map +1 -0
- package/dist/types/adapter/fieldSettings/createCmsFieldSettings.d.ts +3 -0
- package/dist/types/adapter/fieldSettings/createCmsFieldSettings.d.ts.map +1 -0
- package/dist/types/adapter/useCmsSchemaSource.d.ts.map +1 -1
- package/package.json +9 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_mobx","require","CHARACTERS_CEILING","exports","MAX_CHARACTERS_FLOOR","MIN_CHARACTERS_FLOOR","MIN_CHARACTERS_FLOOR_WHEN_REQUIRED","CHARACTERS_LIMIT_TYPES","VALUE_RANGE_TYPES","showsRequired","fieldType","Boolean","showsCharactersLimit","some","type","showsValueRange","clamp","value","min","max","undefined","Math","maxBelowMin","CmsFieldSettingsState","constructor","_defineProperty2","default","makeObservable","required","observable","ref","charactersLimit","minCharacters","maxCharacters","valueRange","minValue","maxValue","helpText","minCharactersFloor","computed","rangeError","valueRangeError","setRequired","action","bound","setCharactersLimit","setMinCharacters","setMaxCharacters","setValueRange","setMinValue","setMaxValue","setHelpText","normalizeMinCharacters","normalizeMaxCharacters","setValues","hasError","getValues","limit","range","characters","minLength","maxLength","values","field","_field$validation","_field$validation2","_field$validation3","validation","stringLengthRange","numberRange"],"sources":["../../../../src/adapter/fieldSettings/CmsFieldSettingsState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { Field, PatternsFieldType } from '@wix/patterns';\n\n/**\n * What the CMS settings section hands back to `createCmsFieldActions`. Cairo\n * carries it as an opaque value, so this shape is ours alone.\n */\nexport interface CmsFieldSettings {\n helpText: string;\n required: boolean;\n /** Absent ⇒ no character limit, or a type that can't have one. */\n characters?: { minLength?: number; maxLength?: number };\n /** Absent ⇒ no value range, or a type that can't have one. */\n values?: { min?: number; max?: number };\n}\n\n/** @wix/data rejects a character limit above this. */\nexport const CHARACTERS_CEILING = 256_000;\nexport const MAX_CHARACTERS_FLOOR = 1;\nconst MIN_CHARACTERS_FLOOR = 0;\n/** A required field has to hold at least one character. */\nconst MIN_CHARACTERS_FLOOR_WHEN_REQUIRED = 1;\n\n/** Only text fields carry a character limit — the only type `@wix/data` stores a\n * `stringLengthRange` for. */\nconst CHARACTERS_LIMIT_TYPES: PatternsFieldType[] = ['SHORT_TEXT'];\n\n/** Only number fields carry a value range — `@wix/data`'s `numberRange`. */\nconst VALUE_RANGE_TYPES: PatternsFieldType[] = ['NUMBER'];\n\nexport const showsRequired = (fieldType?: string) => Boolean(fieldType);\n\nexport const showsCharactersLimit = (fieldType?: string) =>\n CHARACTERS_LIMIT_TYPES.some((type) => type === fieldType);\n\nexport const showsValueRange = (fieldType?: string) =>\n VALUE_RANGE_TYPES.some((type) => type === fieldType);\n\nconst clamp = (value: number | undefined, min: number, max: number) =>\n value == null ? undefined : Math.min(Math.max(value, min), max);\n\nconst maxBelowMin = (min?: number, max?: number) =>\n min == null || max == null || min <= max\n ? undefined\n : 'Max has to be higher than min.';\n\nexport class CmsFieldSettingsState {\n required = false;\n charactersLimit = false;\n minCharacters: number | undefined = undefined;\n maxCharacters: number | undefined = undefined;\n valueRange = false;\n minValue: number | undefined = undefined;\n maxValue: number | undefined = undefined;\n helpText = '';\n\n constructor() {\n makeObservable(this, {\n required: observable.ref,\n charactersLimit: observable.ref,\n minCharacters: observable.ref,\n maxCharacters: observable.ref,\n valueRange: observable.ref,\n minValue: observable.ref,\n maxValue: observable.ref,\n helpText: observable.ref,\n minCharactersFloor: computed,\n rangeError: computed,\n valueRangeError: computed,\n setRequired: action.bound,\n setCharactersLimit: action.bound,\n setMinCharacters: action.bound,\n setMaxCharacters: action.bound,\n setValueRange: action.bound,\n setMinValue: action.bound,\n setMaxValue: action.bound,\n setHelpText: action.bound,\n normalizeMinCharacters: action.bound,\n normalizeMaxCharacters: action.bound,\n setValues: action.bound,\n });\n }\n\n get minCharactersFloor() {\n return this.required\n ? MIN_CHARACTERS_FLOOR_WHEN_REQUIRED\n : MIN_CHARACTERS_FLOOR;\n }\n\n get rangeError() {\n return maxBelowMin(this.minCharacters, this.maxCharacters);\n }\n\n get valueRangeError() {\n return maxBelowMin(this.minValue, this.maxValue);\n }\n\n setRequired(value: boolean) {\n this.required = value;\n this.normalizeMinCharacters();\n }\n\n setCharactersLimit(value: boolean) {\n this.charactersLimit = value;\n }\n\n setMinCharacters(value: number | undefined) {\n this.minCharacters = value;\n }\n\n setMaxCharacters(value: number | undefined) {\n this.maxCharacters = value;\n }\n\n setValueRange(value: boolean) {\n this.valueRange = value;\n }\n\n setMinValue(value: number | undefined) {\n this.minValue = value;\n }\n\n setMaxValue(value: number | undefined) {\n this.maxValue = value;\n }\n\n setHelpText(value: string) {\n this.helpText = value;\n }\n\n normalizeMinCharacters() {\n this.minCharacters = clamp(\n this.minCharacters,\n this.minCharactersFloor,\n CHARACTERS_CEILING,\n );\n }\n\n normalizeMaxCharacters() {\n this.maxCharacters = clamp(\n this.maxCharacters,\n MAX_CHARACTERS_FLOOR,\n CHARACTERS_CEILING,\n );\n }\n\n hasError(fieldType?: string) {\n return (\n (showsCharactersLimit(fieldType) &&\n this.charactersLimit &&\n Boolean(this.rangeError)) ||\n (showsValueRange(fieldType) &&\n this.valueRange &&\n Boolean(this.valueRangeError))\n );\n }\n\n getValues(fieldType?: string): CmsFieldSettings {\n // A toggle can be on with both inputs empty — that's still no limit.\n const limit =\n showsCharactersLimit(fieldType) &&\n this.charactersLimit &&\n (this.minCharacters !== undefined || this.maxCharacters !== undefined);\n const range =\n showsValueRange(fieldType) &&\n this.valueRange &&\n (this.minValue !== undefined || this.maxValue !== undefined);\n return {\n helpText: this.helpText,\n required: showsRequired(fieldType) ? this.required : false,\n characters: limit\n ? { minLength: this.minCharacters, maxLength: this.maxCharacters }\n : undefined,\n values: range ? { min: this.minValue, max: this.maxValue } : undefined,\n };\n }\n\n setValues(field?: Field) {\n const characters = field?.validation?.stringLengthRange;\n const values = field?.validation?.numberRange;\n this.helpText = field?.helpText ?? '';\n this.required = field?.validation?.required ?? false;\n this.minCharacters = characters?.minLength;\n this.maxCharacters = characters?.maxLength;\n this.charactersLimit =\n characters?.minLength != null || characters?.maxLength != null;\n this.minValue = values?.min;\n this.maxValue = values?.max;\n this.valueRange = values?.min != null || values?.max != null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.createCmsFieldSettings = void 0;
|
|
6
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _CmsFieldSettings = require("./CmsFieldSettings");
|
|
9
|
+
var _CmsFieldSettingsState = require("./CmsFieldSettingsState");
|
|
10
|
+
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/patterns-cms/dist/cjs/adapter/fieldSettings/createCmsFieldSettings.tsx";
|
|
11
|
+
const createCmsFieldSettings = () => {
|
|
12
|
+
const state = new _CmsFieldSettingsState.CmsFieldSettingsState();
|
|
13
|
+
return {
|
|
14
|
+
Component: props => /*#__PURE__*/_react.default.createElement(_CmsFieldSettings.CmsFieldSettings, (0, _extends2.default)({}, props, {
|
|
15
|
+
state: state,
|
|
16
|
+
__self: void 0,
|
|
17
|
+
__source: {
|
|
18
|
+
fileName: _jsxFileName,
|
|
19
|
+
lineNumber: 10,
|
|
20
|
+
columnNumber: 27
|
|
21
|
+
}
|
|
22
|
+
})),
|
|
23
|
+
hasError: fieldType => state.hasError(fieldType),
|
|
24
|
+
getValues: fieldType => state.getValues(fieldType),
|
|
25
|
+
setValues: state.setValues
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
exports.createCmsFieldSettings = createCmsFieldSettings;
|
|
29
|
+
//# sourceMappingURL=createCmsFieldSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_CmsFieldSettings","_CmsFieldSettingsState","_jsxFileName","createCmsFieldSettings","state","CmsFieldSettingsState","Component","props","default","createElement","CmsFieldSettings","_extends2","__self","__source","fileName","lineNumber","columnNumber","hasError","fieldType","getValues","setValues","exports"],"sources":["../../../../src/adapter/fieldSettings/createCmsFieldSettings.tsx"],"sourcesContent":["import React from 'react';\nimport type { FieldSettingsSection } from '@wix/patterns/schema';\nimport { CmsFieldSettings } from './CmsFieldSettings';\nimport { CmsFieldSettingsState } from './CmsFieldSettingsState';\n\nexport const createCmsFieldSettings = (): FieldSettingsSection => {\n const state = new CmsFieldSettingsState();\n\n return {\n Component: (props) => <CmsFieldSettings {...props} state={state} />,\n hasError: (fieldType) => state.hasError(fieldType),\n getValues: (fieldType) => state.getValues(fieldType),\n setValues: state.setValues,\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AAAgE,IAAAG,YAAA;AAEzD,MAAMC,sBAAsB,GAAGA,CAAA,KAA4B;EAChE,MAAMC,KAAK,GAAG,IAAIC,4CAAqB,CAAC,CAAC;EAEzC,OAAO;IACLC,SAAS,EAAGC,KAAK,iBAAKV,MAAA,CAAAW,OAAA,CAAAC,aAAA,CAACT,iBAAA,CAAAU,gBAAgB,MAAAC,SAAA,CAAAH,OAAA,MAAKD,KAAK;MAAEH,KAAK,EAAEA,KAAM;MAAAQ,MAAA;MAAAC,QAAA;QAAAC,QAAA,EAAAZ,YAAA;QAAAa,UAAA;QAAAC,YAAA;MAAA;IAAA,EAAE,CAAC;IACnEC,QAAQ,EAAGC,SAAS,IAAKd,KAAK,CAACa,QAAQ,CAACC,SAAS,CAAC;IAClDC,SAAS,EAAGD,SAAS,IAAKd,KAAK,CAACe,SAAS,CAACD,SAAS,CAAC;IACpDE,SAAS,EAAEhB,KAAK,CAACgB;EACnB,CAAC;AACH,CAAC;AAACC,OAAA,CAAAlB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -6,39 +6,9 @@ exports.useCmsSchemaSource = useCmsSchemaSource;
|
|
|
6
6
|
var _patterns = require("@wix/patterns");
|
|
7
7
|
var _schema = require("@wix/patterns/schema");
|
|
8
8
|
var _loadCmsSchema = require("./loadCmsSchema");
|
|
9
|
-
|
|
10
|
-
// only types @wix/data can create (see PatternsFieldTypeToCmsFieldType). The
|
|
11
|
-
// subtitles and group labels are plain strings until this package gets its own
|
|
12
|
-
// translations.
|
|
13
|
-
//
|
|
14
|
-
// Only text-like types can be encrypted, so the rest turn the PII toggle off.
|
|
15
|
-
|
|
9
|
+
var _createCmsFieldSettings = require("./fieldSettings/createCmsFieldSettings");
|
|
16
10
|
const ESSENTIALS = 'Essentials';
|
|
17
11
|
const TIME_AND_LOCATION = 'Time and location';
|
|
18
|
-
const CMS_CREATABLE_TYPES = [{
|
|
19
|
-
patternsType: 'SHORT_TEXT',
|
|
20
|
-
label: 'Text',
|
|
21
|
-
subtitle: 'Titles, paragraph',
|
|
22
|
-
group: ESSENTIALS
|
|
23
|
-
}, {
|
|
24
|
-
patternsType: 'NUMBER',
|
|
25
|
-
label: 'Number',
|
|
26
|
-
subtitle: 'ID, rating, order number',
|
|
27
|
-
group: ESSENTIALS,
|
|
28
|
-
supportsPii: false
|
|
29
|
-
}, {
|
|
30
|
-
patternsType: 'BOOLEAN',
|
|
31
|
-
label: 'Boolean',
|
|
32
|
-
subtitle: 'Yes or no, true or false',
|
|
33
|
-
group: ESSENTIALS,
|
|
34
|
-
supportsPii: false
|
|
35
|
-
}, {
|
|
36
|
-
patternsType: 'DATE',
|
|
37
|
-
label: 'Date',
|
|
38
|
-
subtitle: 'Date of event, date added',
|
|
39
|
-
group: TIME_AND_LOCATION,
|
|
40
|
-
supportsPii: false
|
|
41
|
-
}];
|
|
42
12
|
function cmsSchemaSourceInput(deps) {
|
|
43
13
|
const {
|
|
44
14
|
collectionId,
|
|
@@ -82,37 +52,81 @@ function cmsSchemaSourceInput(deps) {
|
|
|
82
52
|
});
|
|
83
53
|
return loaded;
|
|
84
54
|
};
|
|
55
|
+
|
|
56
|
+
// `read: 'ANYONE'` means any site visitor can read the collection's items, so
|
|
57
|
+
// encrypting the field alone doesn't keep it private.
|
|
58
|
+
const piiWarning = () => {
|
|
59
|
+
var _collection;
|
|
60
|
+
if (((_collection = collection) == null || (_collection = _collection.permissions) == null ? void 0 : _collection.read) !== 'ANYONE') {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
const name = collection.displayName || collectionId;
|
|
64
|
+
return {
|
|
65
|
+
text: `"${name}" collection is viewable by everyone. Update permissions so this field isn't exposed.`,
|
|
66
|
+
action: onEditCollectionPermissions && {
|
|
67
|
+
label: 'Update collection permissions',
|
|
68
|
+
onClick: onEditCollectionPermissions
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// One section for all the types: it holds the values the modal collects, and
|
|
74
|
+
// the modal shows whichever one the picked type carries.
|
|
75
|
+
const settingsSection = (0, _createCmsFieldSettings.createCmsFieldSettings)();
|
|
76
|
+
|
|
77
|
+
// The field types the add/edit modal offers, in display order. These are the
|
|
78
|
+
// only types @wix/data can create (see PatternsFieldTypeToCmsFieldType). The
|
|
79
|
+
// subtitles and group labels are plain strings until this package gets its own
|
|
80
|
+
// translations.
|
|
81
|
+
//
|
|
82
|
+
// Only text-like types can be encrypted, so the rest turn the PII toggle off —
|
|
83
|
+
// and with it the warning, which is why only Text carries one.
|
|
84
|
+
const types = [{
|
|
85
|
+
patternsType: 'SHORT_TEXT',
|
|
86
|
+
label: 'Text',
|
|
87
|
+
subtitle: 'Titles, paragraph',
|
|
88
|
+
group: ESSENTIALS,
|
|
89
|
+
piiWarning,
|
|
90
|
+
settingsSection
|
|
91
|
+
}, {
|
|
92
|
+
patternsType: 'NUMBER',
|
|
93
|
+
label: 'Number',
|
|
94
|
+
subtitle: 'ID, rating, order number',
|
|
95
|
+
group: ESSENTIALS,
|
|
96
|
+
supportsPii: false,
|
|
97
|
+
settingsSection
|
|
98
|
+
}, {
|
|
99
|
+
patternsType: 'BOOLEAN',
|
|
100
|
+
label: 'Boolean',
|
|
101
|
+
subtitle: 'Yes or no, true or false',
|
|
102
|
+
group: ESSENTIALS,
|
|
103
|
+
supportsPii: false,
|
|
104
|
+
settingsSection
|
|
105
|
+
}, {
|
|
106
|
+
patternsType: 'DATE',
|
|
107
|
+
label: 'Date',
|
|
108
|
+
subtitle: 'Date of event, date added',
|
|
109
|
+
group: TIME_AND_LOCATION,
|
|
110
|
+
supportsPii: false,
|
|
111
|
+
settingsSection
|
|
112
|
+
}];
|
|
85
113
|
return {
|
|
86
114
|
collectionId,
|
|
87
115
|
loadSchema,
|
|
88
|
-
creatableFieldTypes: CMS_CREATABLE_TYPES,
|
|
89
116
|
references,
|
|
90
117
|
fieldTypes,
|
|
91
|
-
// A CMS field marked PII is stored encrypted. Per-type opt-outs live
|
|
92
|
-
//
|
|
118
|
+
// A CMS field marked PII is stored encrypted. Per-type opt-outs live on the
|
|
119
|
+
// type entries below.
|
|
93
120
|
supportsPii: true,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
text: `"${name}" collection is viewable by everyone. Update permissions so this field isn't exposed.`,
|
|
104
|
-
action: onEditCollectionPermissions && {
|
|
105
|
-
label: 'Update collection permissions',
|
|
106
|
-
onClick: onEditCollectionPermissions
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
},
|
|
110
|
-
// Plain strings until this package gets its own translations. CMS names it
|
|
111
|
-
// "field" (not "custom field") and shows no subtitle.
|
|
112
|
-
fieldModalText: {
|
|
113
|
-
addTitle: 'Add a field',
|
|
114
|
-
editTitle: 'Edit field',
|
|
115
|
-
settingsLabel: 'Additional settings'
|
|
121
|
+
fieldModal: {
|
|
122
|
+
// Plain strings until this package gets its own translations. CMS names it
|
|
123
|
+
// "field" (not "custom field") and shows no subtitle.
|
|
124
|
+
text: {
|
|
125
|
+
addTitle: 'Add a field',
|
|
126
|
+
editTitle: 'Edit field',
|
|
127
|
+
settingsLabel: 'Additional settings'
|
|
128
|
+
},
|
|
129
|
+
types
|
|
116
130
|
}
|
|
117
131
|
};
|
|
118
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_patterns","require","_schema","_loadCmsSchema","ESSENTIALS","TIME_AND_LOCATION","CMS_CREATABLE_TYPES","patternsType","label","subtitle","group","supportsPii","cmsSchemaSourceInput","deps","collectionId","references","seedReferences","fieldTypes","onEditCollectionPermissions","loaderDeps","collection","loader","createCmsSchemaLoader","onCollectionLoaded","loaded","loadSchema","Object","values","schema","fields","forEach","field","type","referencedCollectionId","referenceMetadata","defineSchemaSource","creatableFieldTypes","piiWarning","_collection","permissions","read","undefined","name","displayName","text","action","onClick","fieldModalText","addTitle","editTitle","settingsLabel","useCmsSchemaSource","container","useWixPatternsContainer","useSchemaSource","httpClient"],"sources":["../../../src/adapter/useCmsSchemaSource.ts"],"sourcesContent":["import type { collections } from '@wix/data';\nimport { useWixPatternsContainer } from '@wix/patterns';\nimport type { FieldTypeDefinition } from '@wix/patterns';\nimport { defineSchemaSource, useSchemaSource } from '@wix/patterns/schema';\nimport type {\n CreatableFieldType,\n SchemaSource,\n SchemaSourceInput,\n} from '@wix/patterns/schema';\nimport {\n createCmsSchemaLoader,\n type CreateCmsSchemaLoaderDeps,\n} from './loadCmsSchema';\n\n// The field types the add/edit modal offers, in display order. These are the\n// only types @wix/data can create (see PatternsFieldTypeToCmsFieldType). The\n// subtitles and group labels are plain strings until this package gets its own\n// translations.\n//\n// Only text-like types can be encrypted, so the rest turn the PII toggle off.\n\nconst ESSENTIALS = 'Essentials';\nconst TIME_AND_LOCATION = 'Time and location';\n\nconst CMS_CREATABLE_TYPES: CreatableFieldType[] = [\n {\n patternsType: 'SHORT_TEXT',\n label: 'Text',\n subtitle: 'Titles, paragraph',\n group: ESSENTIALS,\n },\n {\n patternsType: 'NUMBER',\n label: 'Number',\n subtitle: 'ID, rating, order number',\n group: ESSENTIALS,\n supportsPii: false,\n },\n {\n patternsType: 'BOOLEAN',\n label: 'Boolean',\n subtitle: 'Yes or no, true or false',\n group: ESSENTIALS,\n supportsPii: false,\n },\n {\n patternsType: 'DATE',\n label: 'Date',\n subtitle: 'Date of event, date added',\n group: TIME_AND_LOCATION,\n supportsPii: false,\n },\n];\n\nexport interface UseCmsSchemaSourceDeps\n extends Omit<CreateCmsSchemaLoaderDeps, 'httpClient' | 'onCollectionLoaded'> {\n collectionId: string;\n /** Default: the patterns container's client. */\n httpClient?: CreateCmsSchemaLoaderDeps['httpClient'];\n /** Seed sources for referenced collections, keyed by referenced collection\n * id. Usually unnecessary — reference fields are resolved automatically from\n * the loaded schema. Provide an entry only to override the auto-built one. */\n references?: Record<string, SchemaSource<any>>;\n /** Consumer-defined field types, resolved by fields with `type: 'CUSTOM'`. */\n fieldTypes?: FieldTypeDefinition[];\n /** Opens the host's collection-permissions UI. Without it the PII warning\n * shows its text but no action. */\n onEditCollectionPermissions?: () => void;\n}\n\nexport function cmsSchemaSourceInput<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(\n deps: UseCmsSchemaSourceDeps & Pick<CreateCmsSchemaLoaderDeps, 'httpClient'>,\n): SchemaSourceInput<T> {\n const {\n collectionId,\n references: seedReferences,\n fieldTypes,\n onEditCollectionPermissions,\n ...loaderDeps\n } = deps;\n\n // Who can read the collection isn't part of the source-neutral schema, so the\n // raw collection is kept for the PII warning below.\n let collection: collections.DataCollection | undefined;\n const loader = createCmsSchemaLoader<T>({\n ...loaderDeps,\n onCollectionLoaded: (loaded) => {\n collection = loaded;\n },\n });\n\n // Reference fields are wired automatically: when the schema loads, each\n // REFERENCE / MULTI_REFERENCE field's referencedCollectionId gets a child CMS\n // source (same loader deps) added to `references`, so entity-page reference\n // inputs can query the referenced collection with no manual wiring. The object\n // is shared with the resolved source; seeded entries win over auto-built ones.\n const references: Record<string, SchemaSource<any>> = { ...seedReferences };\n\n const loadSchema = async () => {\n const loaded = await loader(collectionId);\n Object.values(loaded.schema.fields).forEach((field) => {\n if (field?.type !== 'REFERENCE' && field?.type !== 'MULTI_REFERENCE') {\n return;\n }\n const referencedCollectionId =\n field.referenceMetadata.referencedCollectionId;\n if (referencedCollectionId && !references[referencedCollectionId]) {\n references[referencedCollectionId] = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: referencedCollectionId,\n ...loaderDeps,\n }),\n );\n }\n });\n return loaded;\n };\n\n return {\n collectionId,\n loadSchema,\n creatableFieldTypes: CMS_CREATABLE_TYPES,\n references,\n fieldTypes,\n // A CMS field marked PII is stored encrypted. Per-type opt-outs live in\n // CMS_CREATABLE_TYPES.\n supportsPii: true,\n // `read: 'ANYONE'` means any site visitor can read the collection's items,\n // so encrypting the field alone doesn't keep it private.\n piiWarning: () => {\n if (collection?.permissions?.read !== 'ANYONE') {\n return undefined;\n }\n const name = collection.displayName || collectionId;\n return {\n text: `\"${name}\" collection is viewable by everyone. Update permissions so this field isn't exposed.`,\n action: onEditCollectionPermissions && {\n label: 'Update collection permissions',\n onClick: onEditCollectionPermissions,\n },\n };\n },\n // Plain strings until this package gets its own translations. CMS names it\n // \"field\" (not \"custom field\") and shows no subtitle.\n fieldModalText: {\n addTitle: 'Add a field',\n editTitle: 'Edit field',\n settingsLabel: 'Additional settings',\n },\n };\n}\n\n/**\n * A ready-to-use `SchemaSource` for a CMS collection: wraps the CMS schema\n * loader and supplies the CMS field types. Pass it to a `@wix/patterns/schema`\n * collection hook.\n */\nexport function useCmsSchemaSource<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(deps: UseCmsSchemaSourceDeps): SchemaSource<T> {\n const container = useWixPatternsContainer();\n return useSchemaSource<T>(\n cmsSchemaSourceInput<T>({\n ...deps,\n httpClient: deps.httpClient ?? container.httpClient,\n }),\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_patterns","require","_schema","_loadCmsSchema","_createCmsFieldSettings","ESSENTIALS","TIME_AND_LOCATION","cmsSchemaSourceInput","deps","collectionId","references","seedReferences","fieldTypes","onEditCollectionPermissions","loaderDeps","collection","loader","createCmsSchemaLoader","onCollectionLoaded","loaded","loadSchema","Object","values","schema","fields","forEach","field","type","referencedCollectionId","referenceMetadata","defineSchemaSource","piiWarning","_collection","permissions","read","undefined","name","displayName","text","action","label","onClick","settingsSection","createCmsFieldSettings","types","patternsType","subtitle","group","supportsPii","fieldModal","addTitle","editTitle","settingsLabel","useCmsSchemaSource","container","useWixPatternsContainer","useSchemaSource","httpClient"],"sources":["../../../src/adapter/useCmsSchemaSource.ts"],"sourcesContent":["import type { collections } from '@wix/data';\nimport { useWixPatternsContainer } from '@wix/patterns';\nimport type { FieldTypeDefinition } from '@wix/patterns';\nimport { defineSchemaSource, useSchemaSource } from '@wix/patterns/schema';\nimport type {\n FieldTypeOption,\n SchemaSource,\n SchemaSourceInput,\n} from '@wix/patterns/schema';\nimport {\n createCmsSchemaLoader,\n type CreateCmsSchemaLoaderDeps,\n} from './loadCmsSchema';\nimport { createCmsFieldSettings } from './fieldSettings/createCmsFieldSettings';\n\nconst ESSENTIALS = 'Essentials';\nconst TIME_AND_LOCATION = 'Time and location';\n\nexport interface UseCmsSchemaSourceDeps\n extends Omit<CreateCmsSchemaLoaderDeps, 'httpClient' | 'onCollectionLoaded'> {\n collectionId: string;\n /** Default: the patterns container's client. */\n httpClient?: CreateCmsSchemaLoaderDeps['httpClient'];\n /** Seed sources for referenced collections, keyed by referenced collection\n * id. Usually unnecessary — reference fields are resolved automatically from\n * the loaded schema. Provide an entry only to override the auto-built one. */\n references?: Record<string, SchemaSource<any>>;\n /** Consumer-defined field types, resolved by fields with `type: 'CUSTOM'`. */\n fieldTypes?: FieldTypeDefinition[];\n /** Opens the host's collection-permissions UI. Without it the PII warning\n * shows its text but no action. */\n onEditCollectionPermissions?: () => void;\n}\n\nexport function cmsSchemaSourceInput<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(\n deps: UseCmsSchemaSourceDeps & Pick<CreateCmsSchemaLoaderDeps, 'httpClient'>,\n): SchemaSourceInput<T> {\n const {\n collectionId,\n references: seedReferences,\n fieldTypes,\n onEditCollectionPermissions,\n ...loaderDeps\n } = deps;\n\n // Who can read the collection isn't part of the source-neutral schema, so the\n // raw collection is kept for the PII warning below.\n let collection: collections.DataCollection | undefined;\n const loader = createCmsSchemaLoader<T>({\n ...loaderDeps,\n onCollectionLoaded: (loaded) => {\n collection = loaded;\n },\n });\n\n // Reference fields are wired automatically: when the schema loads, each\n // REFERENCE / MULTI_REFERENCE field's referencedCollectionId gets a child CMS\n // source (same loader deps) added to `references`, so entity-page reference\n // inputs can query the referenced collection with no manual wiring. The object\n // is shared with the resolved source; seeded entries win over auto-built ones.\n const references: Record<string, SchemaSource<any>> = { ...seedReferences };\n\n const loadSchema = async () => {\n const loaded = await loader(collectionId);\n Object.values(loaded.schema.fields).forEach((field) => {\n if (field?.type !== 'REFERENCE' && field?.type !== 'MULTI_REFERENCE') {\n return;\n }\n const referencedCollectionId =\n field.referenceMetadata.referencedCollectionId;\n if (referencedCollectionId && !references[referencedCollectionId]) {\n references[referencedCollectionId] = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: referencedCollectionId,\n ...loaderDeps,\n }),\n );\n }\n });\n return loaded;\n };\n\n // `read: 'ANYONE'` means any site visitor can read the collection's items, so\n // encrypting the field alone doesn't keep it private.\n const piiWarning = () => {\n if (collection?.permissions?.read !== 'ANYONE') {\n return undefined;\n }\n const name = collection.displayName || collectionId;\n return {\n text: `\"${name}\" collection is viewable by everyone. Update permissions so this field isn't exposed.`,\n action: onEditCollectionPermissions && {\n label: 'Update collection permissions',\n onClick: onEditCollectionPermissions,\n },\n };\n };\n\n // One section for all the types: it holds the values the modal collects, and\n // the modal shows whichever one the picked type carries.\n const settingsSection = createCmsFieldSettings();\n\n // The field types the add/edit modal offers, in display order. These are the\n // only types @wix/data can create (see PatternsFieldTypeToCmsFieldType). The\n // subtitles and group labels are plain strings until this package gets its own\n // translations.\n //\n // Only text-like types can be encrypted, so the rest turn the PII toggle off —\n // and with it the warning, which is why only Text carries one.\n const types: FieldTypeOption[] = [\n {\n patternsType: 'SHORT_TEXT',\n label: 'Text',\n subtitle: 'Titles, paragraph',\n group: ESSENTIALS,\n piiWarning,\n settingsSection,\n },\n {\n patternsType: 'NUMBER',\n label: 'Number',\n subtitle: 'ID, rating, order number',\n group: ESSENTIALS,\n supportsPii: false,\n settingsSection,\n },\n {\n patternsType: 'BOOLEAN',\n label: 'Boolean',\n subtitle: 'Yes or no, true or false',\n group: ESSENTIALS,\n supportsPii: false,\n settingsSection,\n },\n {\n patternsType: 'DATE',\n label: 'Date',\n subtitle: 'Date of event, date added',\n group: TIME_AND_LOCATION,\n supportsPii: false,\n settingsSection,\n },\n ];\n\n return {\n collectionId,\n loadSchema,\n references,\n fieldTypes,\n // A CMS field marked PII is stored encrypted. Per-type opt-outs live on the\n // type entries below.\n supportsPii: true,\n fieldModal: {\n // Plain strings until this package gets its own translations. CMS names it\n // \"field\" (not \"custom field\") and shows no subtitle.\n text: {\n addTitle: 'Add a field',\n editTitle: 'Edit field',\n settingsLabel: 'Additional settings',\n },\n types,\n },\n };\n}\n\n/**\n * A ready-to-use `SchemaSource` for a CMS collection: wraps the CMS schema\n * loader and supplies the CMS field types. Pass it to a `@wix/patterns/schema`\n * collection hook.\n */\nexport function useCmsSchemaSource<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(deps: UseCmsSchemaSourceDeps): SchemaSource<T> {\n const container = useWixPatternsContainer();\n return useSchemaSource<T>(\n cmsSchemaSourceInput<T>({\n ...deps,\n httpClient: deps.httpClient ?? container.httpClient,\n }),\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ jest.mock('@wix/data', () => {
|
|
|
8
8
|
...actual.collections,
|
|
9
9
|
createDataCollectionField: jest.fn(),
|
|
10
10
|
patchDataCollectionField: jest.fn(),
|
|
11
|
+
updateDataCollectionField: jest.fn(),
|
|
11
12
|
deleteDataCollectionField: jest.fn(),
|
|
12
13
|
patchDataCollection: jest.fn(),
|
|
13
14
|
updateDataCollection: jest.fn(),
|
|
@@ -25,6 +26,7 @@ jest.mock('@wix/data', () => {
|
|
|
25
26
|
// Re-typing each mock with the call shape the adapter uses unblocks both.
|
|
26
27
|
const createDataCollectionField = collections.createDataCollectionField;
|
|
27
28
|
const patchDataCollectionField = collections.patchDataCollectionField;
|
|
29
|
+
const updateDataCollectionField = collections.updateDataCollectionField;
|
|
28
30
|
const deleteDataCollectionField = collections.deleteDataCollectionField;
|
|
29
31
|
const patchDataCollection = collections.patchDataCollection;
|
|
30
32
|
// updateDataCollection resolves with the updated collection directly (not
|
|
@@ -65,6 +67,9 @@ describe('createCmsFieldActions', () => {
|
|
|
65
67
|
patchDataCollectionField.mockResolvedValue({
|
|
66
68
|
dataCollection: makeCollection([]),
|
|
67
69
|
});
|
|
70
|
+
updateDataCollectionField.mockResolvedValue({
|
|
71
|
+
dataCollection: makeCollection([]),
|
|
72
|
+
});
|
|
68
73
|
updateDataCollection.mockImplementation(async (dataCollection) => dataCollection);
|
|
69
74
|
});
|
|
70
75
|
describe('addField', () => {
|
|
@@ -199,35 +204,52 @@ describe('createCmsFieldActions', () => {
|
|
|
199
204
|
expect(updateDataCollection).not.toHaveBeenCalled();
|
|
200
205
|
});
|
|
201
206
|
});
|
|
207
|
+
// editField sends the whole field definition through updateDataCollectionField,
|
|
208
|
+
// not a patch: patchDataCollectionField rejects `required` and the range props.
|
|
209
|
+
// Every assertion here is on the merged result — the existing field minus its
|
|
210
|
+
// read-only props, with the update applied on top.
|
|
202
211
|
describe('editField', () => {
|
|
203
|
-
it('
|
|
212
|
+
it('changes displayName and keeps the rest of the field definition', async () => {
|
|
204
213
|
const actions = createCmsFieldActions(COLLECTION_ID, () => makeCollection([makeField({ key: 'name' })]));
|
|
205
214
|
await actions.editField('name', { displayName: 'Renamed' });
|
|
206
|
-
expect(
|
|
207
|
-
|
|
208
|
-
|
|
215
|
+
expect(updateDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {
|
|
216
|
+
field: {
|
|
217
|
+
key: 'name',
|
|
218
|
+
displayName: 'Renamed',
|
|
219
|
+
type: collections.Type.TEXT,
|
|
220
|
+
encrypted: false,
|
|
221
|
+
},
|
|
209
222
|
});
|
|
210
223
|
});
|
|
211
224
|
it('maps isPii to encrypted and helpText to description', async () => {
|
|
212
225
|
const actions = createCmsFieldActions(COLLECTION_ID, () => makeCollection([makeField({ key: 'name' })]));
|
|
213
226
|
await actions.editField('name', { isPii: true, helpText: 'hint' });
|
|
214
|
-
expect(
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
227
|
+
expect(updateDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {
|
|
228
|
+
field: {
|
|
229
|
+
key: 'name',
|
|
230
|
+
displayName: 'Source Field',
|
|
231
|
+
type: collections.Type.TEXT,
|
|
232
|
+
encrypted: true,
|
|
233
|
+
description: 'hint',
|
|
234
|
+
},
|
|
218
235
|
});
|
|
219
236
|
});
|
|
220
|
-
it('includes numberRange
|
|
237
|
+
it('includes numberRange only when the source CMS field is NUMBER', async () => {
|
|
221
238
|
const actions = createCmsFieldActions(COLLECTION_ID, () => makeCollection([
|
|
222
239
|
makeField({ key: 'age', type: collections.Type.NUMBER }),
|
|
223
240
|
]));
|
|
224
241
|
await actions.editField('age', {
|
|
225
242
|
validation: { required: true, numberRange: { min: 0, max: 100 } },
|
|
226
243
|
});
|
|
227
|
-
expect(
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
244
|
+
expect(updateDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {
|
|
245
|
+
field: {
|
|
246
|
+
key: 'age',
|
|
247
|
+
displayName: 'Source Field',
|
|
248
|
+
type: collections.Type.NUMBER,
|
|
249
|
+
encrypted: false,
|
|
250
|
+
required: true,
|
|
251
|
+
numberRange: { min: 0, max: 100 },
|
|
252
|
+
},
|
|
231
253
|
});
|
|
232
254
|
});
|
|
233
255
|
it('omits numberRange when the source CMS field is not NUMBER', async () => {
|
|
@@ -237,11 +259,11 @@ describe('createCmsFieldActions', () => {
|
|
|
237
259
|
await actions.editField('name', {
|
|
238
260
|
validation: { required: true, numberRange: { min: 0, max: 100 } },
|
|
239
261
|
});
|
|
240
|
-
const [,
|
|
241
|
-
expect(
|
|
242
|
-
expect(
|
|
262
|
+
const [, { field }] = updateDataCollectionField.mock.calls[0];
|
|
263
|
+
expect(field).not.toHaveProperty('numberRange');
|
|
264
|
+
expect(field).toMatchObject({ key: 'name', required: true });
|
|
243
265
|
});
|
|
244
|
-
it('includes stringLengthRange
|
|
266
|
+
it('includes stringLengthRange only when the source CMS field is TEXT', async () => {
|
|
245
267
|
const actions = createCmsFieldActions(COLLECTION_ID, () => makeCollection([
|
|
246
268
|
makeField({ key: 'name', type: collections.Type.TEXT }),
|
|
247
269
|
]));
|
|
@@ -251,10 +273,15 @@ describe('createCmsFieldActions', () => {
|
|
|
251
273
|
stringLengthRange: { minLength: 1, maxLength: 30 },
|
|
252
274
|
},
|
|
253
275
|
});
|
|
254
|
-
expect(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
276
|
+
expect(updateDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {
|
|
277
|
+
field: {
|
|
278
|
+
key: 'name',
|
|
279
|
+
displayName: 'Source Field',
|
|
280
|
+
type: collections.Type.TEXT,
|
|
281
|
+
encrypted: false,
|
|
282
|
+
required: false,
|
|
283
|
+
stringLengthRange: { minLength: 1, maxLength: 30 },
|
|
284
|
+
},
|
|
258
285
|
});
|
|
259
286
|
});
|
|
260
287
|
it('omits stringLengthRange when the source CMS field is not TEXT', async () => {
|
|
@@ -267,8 +294,8 @@ describe('createCmsFieldActions', () => {
|
|
|
267
294
|
stringLengthRange: { minLength: 1, maxLength: 30 },
|
|
268
295
|
},
|
|
269
296
|
});
|
|
270
|
-
const [,
|
|
271
|
-
expect(
|
|
297
|
+
const [, { field }] = updateDataCollectionField.mock.calls[0];
|
|
298
|
+
expect(field).not.toHaveProperty('stringLengthRange');
|
|
272
299
|
});
|
|
273
300
|
});
|
|
274
301
|
describe('renameField', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmsFieldActions.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/cmsFieldActions.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmsFieldActions.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/cmsFieldActions.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,14 +76,23 @@ describe('useCmsSchemaSource', () => {
|
|
|
76
76
|
fetchUserPermissionsMock.mockResolvedValue([]);
|
|
77
77
|
fetchExternalDbConnectionsMock.mockResolvedValue([]);
|
|
78
78
|
});
|
|
79
|
-
it('declares the
|
|
79
|
+
it('declares the field type options in display order, with CMS labels, subtitles and groups', () => {
|
|
80
80
|
const source = defineSchemaSource(cmsSchemaSourceInput({
|
|
81
81
|
collectionId: 'Pokemon',
|
|
82
82
|
httpClient,
|
|
83
83
|
}));
|
|
84
84
|
const essentials = 'Essentials';
|
|
85
85
|
const timeAndLocation = 'Time and location';
|
|
86
|
-
|
|
86
|
+
// Only the copy each type shows in the picker; the settings section and the
|
|
87
|
+
// PII warning they also carry have their own tests.
|
|
88
|
+
const display = source.fieldModal.types.map(({ patternsType, label, subtitle, group, supportsPii }) => ({
|
|
89
|
+
patternsType,
|
|
90
|
+
label,
|
|
91
|
+
subtitle,
|
|
92
|
+
group,
|
|
93
|
+
supportsPii,
|
|
94
|
+
}));
|
|
95
|
+
expect(display).toEqual([
|
|
87
96
|
{
|
|
88
97
|
patternsType: 'SHORT_TEXT',
|
|
89
98
|
label: 'Text',
|
|
@@ -113,6 +122,19 @@ describe('useCmsSchemaSource', () => {
|
|
|
113
122
|
},
|
|
114
123
|
]);
|
|
115
124
|
});
|
|
125
|
+
it('gives every type the same settings section, so the modal keeps one set of inputs', () => {
|
|
126
|
+
const source = defineSchemaSource(cmsSchemaSourceInput({ collectionId: 'Pokemon', httpClient }));
|
|
127
|
+
const sections = source.fieldModal.types.map((t) => t.settingsSection);
|
|
128
|
+
expect(sections.every((section) => section === sections[0])).toBe(true);
|
|
129
|
+
expect(sections[0]).toBeDefined();
|
|
130
|
+
});
|
|
131
|
+
it('warns about PII only on the type that can be marked PII', () => {
|
|
132
|
+
const source = defineSchemaSource(cmsSchemaSourceInput({ collectionId: 'Pokemon', httpClient }));
|
|
133
|
+
const withWarning = source.fieldModal.types
|
|
134
|
+
.filter((t) => t.piiWarning)
|
|
135
|
+
.map((t) => t.patternsType);
|
|
136
|
+
expect(withWarning).toEqual(['SHORT_TEXT']);
|
|
137
|
+
});
|
|
116
138
|
it('builds an offset source keyed by the collectionId', () => {
|
|
117
139
|
const source = defineSchemaSource(cmsSchemaSourceInput({
|
|
118
140
|
collectionId: 'Pokemon',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCmsSchemaSource.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/useCmsSchemaSource.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useCmsSchemaSource.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/useCmsSchemaSource.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,15 @@ const waitForCopyTask = async (taskId) => {
|
|
|
28
28
|
throw err;
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
|
+
const applyCmsFieldSettings = (cmsField, settings) => {
|
|
32
|
+
if (!settings) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
cmsField.description = settings.helpText || undefined;
|
|
36
|
+
cmsField.required = settings.required;
|
|
37
|
+
cmsField.stringLengthRange = settings.characters;
|
|
38
|
+
cmsField.numberRange = settings.values;
|
|
39
|
+
};
|
|
31
40
|
/**
|
|
32
41
|
* Builds the `FieldActions` for a CMS collection over `@wix/data`. `getCollection`
|
|
33
42
|
* returns the current raw collection snapshot (for existing keys + source field types).
|
|
@@ -90,6 +99,10 @@ export function createCmsFieldActions(collectionId, getCollection) {
|
|
|
90
99
|
}
|
|
91
100
|
return patch;
|
|
92
101
|
};
|
|
102
|
+
const writableFieldProps = (source) => {
|
|
103
|
+
const { systemField, capabilities, condition, ...writable } = source;
|
|
104
|
+
return writable;
|
|
105
|
+
};
|
|
93
106
|
/**
|
|
94
107
|
* Clones a CMS field for duplication: drops `systemField`/`capabilities` and clears
|
|
95
108
|
* `referencingFieldKey` so the duplicate gets its own backing reference field.
|
|
@@ -113,8 +126,9 @@ export function createCmsFieldActions(collectionId, getCollection) {
|
|
|
113
126
|
return cloned;
|
|
114
127
|
};
|
|
115
128
|
return {
|
|
116
|
-
addField: async (field) => {
|
|
129
|
+
addField: async (field, settings) => {
|
|
117
130
|
const cmsField = toCmsField(field, getFieldKey(existingFieldKeys(), field.displayName));
|
|
131
|
+
applyCmsFieldSettings(cmsField, settings);
|
|
118
132
|
const { dataCollection } = await collections.createDataCollectionField(collectionId, { field: cmsField });
|
|
119
133
|
return fieldsAfterMutation(dataCollection);
|
|
120
134
|
},
|
|
@@ -136,8 +150,19 @@ export function createCmsFieldActions(collectionId, getCollection) {
|
|
|
136
150
|
});
|
|
137
151
|
return fieldsAfterMutation(dataCollection);
|
|
138
152
|
},
|
|
139
|
-
editField: async (fieldId, updates) => {
|
|
140
|
-
const
|
|
153
|
+
editField: async (fieldId, updates, settings) => {
|
|
154
|
+
const existingField = findCmsField(fieldId);
|
|
155
|
+
if (!existingField?.type) {
|
|
156
|
+
throw new Error(`Field ${fieldId} not found`);
|
|
157
|
+
}
|
|
158
|
+
const field = {
|
|
159
|
+
...writableFieldProps(existingField),
|
|
160
|
+
...buildFieldPatch(fieldId, updates),
|
|
161
|
+
key: fieldId,
|
|
162
|
+
type: existingField.type,
|
|
163
|
+
};
|
|
164
|
+
applyCmsFieldSettings(field, settings);
|
|
165
|
+
const { dataCollection } = await collections.updateDataCollectionField(collectionId, { field });
|
|
141
166
|
return fieldsAfterMutation(dataCollection);
|
|
142
167
|
},
|
|
143
168
|
deleteField: async (fieldId) => {
|