@webiny/app-headless-cms-common 5.43.2 → 6.0.0-alpha.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/Fields/ErrorBoundary.js +32 -52
- package/Fields/ErrorBoundary.js.map +1 -1
- package/Fields/FieldElement.js +43 -52
- package/Fields/FieldElement.js.map +1 -1
- package/Fields/FieldElementError.js +6 -13
- package/Fields/FieldElementError.js.map +1 -1
- package/Fields/Fields.js +29 -39
- package/Fields/Fields.js.map +1 -1
- package/Fields/Label.js +7 -31
- package/Fields/Label.js.map +1 -1
- package/Fields/index.js +3 -38
- package/Fields/index.js.map +1 -1
- package/Fields/useBind.js +59 -64
- package/Fields/useBind.js.map +1 -1
- package/Fields/useRenderPlugins.js +4 -12
- package/Fields/useRenderPlugins.js.map +1 -1
- package/ModelFieldProvider/ModelFieldContext.d.ts +1 -1
- package/ModelFieldProvider/ModelFieldContext.js +16 -21
- package/ModelFieldProvider/ModelFieldContext.js.map +1 -1
- package/ModelFieldProvider/index.js +2 -27
- package/ModelFieldProvider/index.js.map +1 -1
- package/ModelFieldProvider/useModelField.js +15 -23
- package/ModelFieldProvider/useModelField.js.map +1 -1
- package/ModelProvider/ModelContext.js +7 -13
- package/ModelProvider/ModelContext.js.map +1 -1
- package/ModelProvider/index.js +2 -27
- package/ModelProvider/index.js.map +1 -1
- package/ModelProvider/useModel.js +6 -12
- package/ModelProvider/useModel.js.map +1 -1
- package/constants.js +1 -7
- package/constants.js.map +1 -1
- package/createFieldsList.js +23 -26
- package/createFieldsList.js.map +1 -1
- package/createValidationContainer.js +11 -16
- package/createValidationContainer.js.map +1 -1
- package/createValidators.js +18 -28
- package/createValidators.js.map +1 -1
- package/entries.graphql.js +292 -70
- package/entries.graphql.js.map +1 -1
- package/getModelTitleFieldId.js +1 -7
- package/getModelTitleFieldId.js.map +1 -1
- package/index.js +10 -115
- package/index.js.map +1 -1
- package/package.json +12 -13
- package/prepareFormData.js +22 -41
- package/prepareFormData.js.map +1 -1
- package/types/index.d.ts +7 -1
- package/types/index.js +54 -38
- package/types/index.js.map +1 -1
- package/types/model.js +1 -5
- package/types/shared.js +1 -5
- package/types/validation.js +1 -5
package/createFieldsList.js
CHANGED
|
@@ -1,32 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
})
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
inputFields = _ref.fields,
|
|
14
|
-
graphQLTypePrefix = _ref.graphQLTypePrefix;
|
|
15
|
-
var fieldPlugins = _plugins.plugins.byType("cms-editor-field-type").reduce(function (acc, item) {
|
|
16
|
-
return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, acc), {}, (0, _defineProperty2.default)({}, item.field.type, item.field));
|
|
17
|
-
}, {});
|
|
18
|
-
var typePrefix = graphQLTypePrefix ?? model.singularApiName;
|
|
19
|
-
var fields = inputFields.map(function (field) {
|
|
1
|
+
import { plugins } from "@webiny/plugins";
|
|
2
|
+
export function createFieldsList({
|
|
3
|
+
model,
|
|
4
|
+
fields: inputFields,
|
|
5
|
+
graphQLTypePrefix
|
|
6
|
+
}) {
|
|
7
|
+
const fieldPlugins = plugins.byType("cms-editor-field-type").reduce((acc, item) => ({
|
|
8
|
+
...acc,
|
|
9
|
+
[item.field.type]: item.field
|
|
10
|
+
}), {});
|
|
11
|
+
const typePrefix = graphQLTypePrefix ?? model.singularApiName;
|
|
12
|
+
const fields = inputFields.map(field => {
|
|
20
13
|
if (!fieldPlugins[field.type]) {
|
|
21
|
-
console.log(
|
|
14
|
+
console.log(`Unknown field plugin for field type "${field.type}".`);
|
|
22
15
|
return null;
|
|
23
16
|
}
|
|
24
|
-
|
|
17
|
+
const {
|
|
18
|
+
graphql
|
|
19
|
+
} = fieldPlugins[field.type];
|
|
25
20
|
if (graphql && graphql.queryField) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
const {
|
|
22
|
+
queryField
|
|
23
|
+
} = graphql;
|
|
24
|
+
const selection = typeof queryField === "string" ? queryField : queryField({
|
|
25
|
+
model,
|
|
26
|
+
field,
|
|
30
27
|
graphQLTypePrefix: typePrefix
|
|
31
28
|
});
|
|
32
29
|
|
|
@@ -36,7 +33,7 @@ function createFieldsList(_ref) {
|
|
|
36
33
|
if (selection === null) {
|
|
37
34
|
return null;
|
|
38
35
|
}
|
|
39
|
-
return
|
|
36
|
+
return `${field.fieldId} ${selection}`;
|
|
40
37
|
}
|
|
41
38
|
return field.fieldId;
|
|
42
39
|
}).filter(Boolean);
|
package/createFieldsList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["plugins","createFieldsList","model","fields","inputFields","graphQLTypePrefix","fieldPlugins","byType","reduce","acc","item","field","type","typePrefix","singularApiName","map","console","log","graphql","queryField","selection","fieldId","filter","Boolean","length","push","join"],"sources":["createFieldsList.ts"],"sourcesContent":["import { CmsModel, CmsModelField, CmsModelFieldTypePlugin } from \"~/types\";\nimport { plugins } from \"@webiny/plugins\";\n\ninterface CreateFieldsListParams {\n model: CmsModel;\n fields: CmsModelField[];\n graphQLTypePrefix?: string;\n}\n\nexport function createFieldsList({\n model,\n fields: inputFields,\n graphQLTypePrefix\n}: CreateFieldsListParams): string {\n const fieldPlugins: Record<string, CmsModelFieldTypePlugin[\"field\"]> = plugins\n .byType<CmsModelFieldTypePlugin>(\"cms-editor-field-type\")\n .reduce((acc, item) => ({ ...acc, [item.field.type]: item.field }), {});\n\n const typePrefix = graphQLTypePrefix ?? model.singularApiName;\n\n const fields = inputFields\n .map(field => {\n if (!fieldPlugins[field.type]) {\n console.log(`Unknown field plugin for field type \"${field.type}\".`);\n return null;\n }\n const { graphql } = fieldPlugins[field.type];\n\n if (graphql && graphql.queryField) {\n const { queryField } = graphql;\n const selection =\n typeof queryField === \"string\"\n ? queryField\n : queryField({ model, field, graphQLTypePrefix: typePrefix });\n\n /**\n * If field type plugin returns `null`, we don't include the field in the selection.\n */\n if (selection === null) {\n return null;\n }\n\n return `${field.fieldId} ${selection}`;\n }\n\n return field.fieldId;\n })\n .filter(Boolean);\n /**\n * If there are no fields, let's always load the `_empty` field.\n */\n if (fields.length === 0) {\n fields.push(\"_empty\");\n }\n return fields.join(\"\\n\");\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,iBAAiB;AAQzC,OAAO,SAASC,gBAAgBA,CAAC;EAC7BC,KAAK;EACLC,MAAM,EAAEC,WAAW;EACnBC;AACoB,CAAC,EAAU;EAC/B,MAAMC,YAA8D,GAAGN,OAAO,CACzEO,MAAM,CAA0B,uBAAuB,CAAC,CACxDC,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,MAAM;IAAE,GAAGD,GAAG;IAAE,CAACC,IAAI,CAACC,KAAK,CAACC,IAAI,GAAGF,IAAI,CAACC;EAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAE3E,MAAME,UAAU,GAAGR,iBAAiB,IAAIH,KAAK,CAACY,eAAe;EAE7D,MAAMX,MAAM,GAAGC,WAAW,CACrBW,GAAG,CAACJ,KAAK,IAAI;IACV,IAAI,CAACL,YAAY,CAACK,KAAK,CAACC,IAAI,CAAC,EAAE;MAC3BI,OAAO,CAACC,GAAG,CAAC,wCAAwCN,KAAK,CAACC,IAAI,IAAI,CAAC;MACnE,OAAO,IAAI;IACf;IACA,MAAM;MAAEM;IAAQ,CAAC,GAAGZ,YAAY,CAACK,KAAK,CAACC,IAAI,CAAC;IAE5C,IAAIM,OAAO,IAAIA,OAAO,CAACC,UAAU,EAAE;MAC/B,MAAM;QAAEA;MAAW,CAAC,GAAGD,OAAO;MAC9B,MAAME,SAAS,GACX,OAAOD,UAAU,KAAK,QAAQ,GACxBA,UAAU,GACVA,UAAU,CAAC;QAAEjB,KAAK;QAAES,KAAK;QAAEN,iBAAiB,EAAEQ;MAAW,CAAC,CAAC;;MAErE;AAChB;AACA;MACgB,IAAIO,SAAS,KAAK,IAAI,EAAE;QACpB,OAAO,IAAI;MACf;MAEA,OAAO,GAAGT,KAAK,CAACU,OAAO,IAAID,SAAS,EAAE;IAC1C;IAEA,OAAOT,KAAK,CAACU,OAAO;EACxB,CAAC,CAAC,CACDC,MAAM,CAACC,OAAO,CAAC;EACpB;AACJ;AACA;EACI,IAAIpB,MAAM,CAACqB,MAAM,KAAK,CAAC,EAAE;IACrBrB,MAAM,CAACsB,IAAI,CAAC,QAAQ,CAAC;EACzB;EACA,OAAOtB,MAAM,CAACuB,IAAI,CAAC,IAAI,CAAC;AAC5B","ignoreList":[]}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.createValidationContainer = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _ModelFieldProvider = require("./ModelFieldProvider");
|
|
10
|
-
var ValidationContainerStyles = {
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { useModelField } from "./ModelFieldProvider";
|
|
3
|
+
const ValidationContainerStyles = {
|
|
11
4
|
display: "inherit"
|
|
12
5
|
};
|
|
13
|
-
|
|
14
|
-
return function ValidationContainer(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
export const createValidationContainer = path => {
|
|
7
|
+
return function ValidationContainer({
|
|
8
|
+
children
|
|
9
|
+
}) {
|
|
10
|
+
const {
|
|
11
|
+
field
|
|
12
|
+
} = useModelField();
|
|
18
13
|
if (field.multipleValues === undefined) {
|
|
19
14
|
field.multipleValues = false;
|
|
20
15
|
}
|
|
21
|
-
return /*#__PURE__*/
|
|
16
|
+
return /*#__PURE__*/React.createElement("hcms-field-validation", {
|
|
22
17
|
style: ValidationContainerStyles,
|
|
23
18
|
"data-path": path,
|
|
24
19
|
"data-field-type": field.type,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","useModelField","ValidationContainerStyles","display","createValidationContainer","path","ValidationContainer","children","field","multipleValues","undefined","createElement","style","type","String","renderer","name"],"sources":["createValidationContainer.tsx"],"sourcesContent":["import React from \"react\";\nimport { useModelField } from \"./ModelFieldProvider\";\n\ndeclare global {\n // eslint-disable-next-line\n namespace JSX {\n interface IntrinsicElements {\n \"hcms-field-validation\": {\n \"data-path\": string;\n \"data-field-type\": string;\n \"data-field-multiple-values\": string;\n \"data-field-renderer\": string;\n style: React.CSSProperties;\n children: React.ReactNode;\n };\n }\n }\n}\n\nconst ValidationContainerStyles = { display: \"inherit\" };\n\nexport const createValidationContainer = (path: string) => {\n return function ValidationContainer({ children }: { children: React.ReactNode }) {\n const { field } = useModelField();\n\n if (field.multipleValues === undefined) {\n field.multipleValues = false;\n }\n\n return (\n <hcms-field-validation\n style={ValidationContainerStyles}\n data-path={path}\n data-field-type={field.type}\n data-field-multiple-values={String(field.multipleValues)}\n data-field-renderer={String(field.renderer.name)}\n >\n {children}\n </hcms-field-validation>\n );\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa;AAkBtB,MAAMC,yBAAyB,GAAG;EAAEC,OAAO,EAAE;AAAU,CAAC;AAExD,OAAO,MAAMC,yBAAyB,GAAIC,IAAY,IAAK;EACvD,OAAO,SAASC,mBAAmBA,CAAC;IAAEC;EAAwC,CAAC,EAAE;IAC7E,MAAM;MAAEC;IAAM,CAAC,GAAGP,aAAa,CAAC,CAAC;IAEjC,IAAIO,KAAK,CAACC,cAAc,KAAKC,SAAS,EAAE;MACpCF,KAAK,CAACC,cAAc,GAAG,KAAK;IAChC;IAEA,oBACIT,KAAA,CAAAW,aAAA;MACIC,KAAK,EAAEV,yBAA0B;MACjC,aAAWG,IAAK;MAChB,mBAAiBG,KAAK,CAACK,IAAK;MAC5B,8BAA4BC,MAAM,CAACN,KAAK,CAACC,cAAc,CAAE;MACzD,uBAAqBK,MAAM,CAACN,KAAK,CAACO,QAAQ,CAACC,IAAI;IAAE,GAEhDT,QACkB,CAAC;EAEhC,CAAC;AACL,CAAC","ignoreList":[]}
|
package/createValidators.js
CHANGED
|
@@ -1,32 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
exports.createValidators = void 0;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
-
var _plugins = require("@webiny/plugins");
|
|
10
|
-
var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
|
|
11
|
-
var createValidators = exports.createValidators = function createValidators(field, validation) {
|
|
12
|
-
var validatorPlugins = _plugins.plugins.byType("cms-model-field-validator");
|
|
13
|
-
return validation.reduce(function (collection, item) {
|
|
1
|
+
import { plugins } from "@webiny/plugins";
|
|
2
|
+
import camelCase from "lodash/camelCase";
|
|
3
|
+
export const createValidators = (field, validation) => {
|
|
4
|
+
const validatorPlugins = plugins.byType("cms-model-field-validator");
|
|
5
|
+
return validation.reduce((collection, item) => {
|
|
14
6
|
if (typeof item === "function") {
|
|
15
|
-
return [
|
|
7
|
+
return [...collection, item];
|
|
16
8
|
}
|
|
17
|
-
|
|
18
|
-
return plugin.validator.name === item.name;
|
|
19
|
-
});
|
|
9
|
+
const validatorPlugin = validatorPlugins.find(plugin => plugin.validator.name === item.name);
|
|
20
10
|
if (!validatorPlugin || typeof validatorPlugin.validator.validate !== "function") {
|
|
21
11
|
return collection;
|
|
22
12
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
const validator = async value => {
|
|
14
|
+
let isInvalid;
|
|
15
|
+
let message = item.message;
|
|
26
16
|
try {
|
|
27
|
-
|
|
17
|
+
const result = await validatorPlugin.validator.validate(value, {
|
|
28
18
|
validator: item,
|
|
29
|
-
field
|
|
19
|
+
field
|
|
30
20
|
});
|
|
31
21
|
isInvalid = result === false;
|
|
32
22
|
} catch (e) {
|
|
@@ -36,14 +26,14 @@ var createValidators = exports.createValidators = function createValidators(fiel
|
|
|
36
26
|
}
|
|
37
27
|
}
|
|
38
28
|
if (isInvalid) {
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
let interpolated = message || "Invalid value.";
|
|
30
|
+
const getVariableValues = validatorPlugin.validator.getVariableValues;
|
|
41
31
|
if (typeof getVariableValues === "function") {
|
|
42
|
-
|
|
32
|
+
const variables = getVariableValues({
|
|
43
33
|
validator: item
|
|
44
34
|
});
|
|
45
|
-
Object.keys(variables).forEach(
|
|
46
|
-
|
|
35
|
+
Object.keys(variables).forEach(key => {
|
|
36
|
+
const regex = new RegExp(`\{${key}\}`, "g");
|
|
47
37
|
interpolated = interpolated.replace(regex, variables[key]);
|
|
48
38
|
});
|
|
49
39
|
}
|
|
@@ -53,7 +43,7 @@ var createValidators = exports.createValidators = function createValidators(fiel
|
|
|
53
43
|
/**
|
|
54
44
|
* We need to set the validator name because it will be used as the reference to skip, if necessary.
|
|
55
45
|
*/
|
|
56
|
-
validator.validatorName = (
|
|
46
|
+
validator.validatorName = camelCase(validatorPlugin.validator.name);
|
|
57
47
|
collection.push(validator);
|
|
58
48
|
return collection;
|
|
59
49
|
}, []);
|
package/createValidators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["plugins","camelCase","createValidators","field","validation","validatorPlugins","byType","reduce","collection","item","validatorPlugin","find","plugin","validator","name","validate","value","isInvalid","message","result","e","interpolated","getVariableValues","variables","Object","keys","forEach","key","regex","RegExp","replace","Error","validatorName","push"],"sources":["createValidators.ts"],"sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { CmsModelField, CmsModelFieldValidator, CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { Validator } from \"@webiny/validation/types\";\nimport camelCase from \"lodash/camelCase\";\n\nexport const createValidators = (\n field: CmsModelField,\n validation: (CmsModelFieldValidator | Validator)[]\n): Validator[] => {\n const validatorPlugins = plugins.byType<CmsModelFieldValidatorPlugin>(\n \"cms-model-field-validator\"\n );\n\n return validation.reduce<Validator[]>((collection, item) => {\n if (typeof item === \"function\") {\n return [...collection, item];\n }\n\n const validatorPlugin = validatorPlugins.find(\n plugin => plugin.validator.name === item.name\n );\n\n if (!validatorPlugin || typeof validatorPlugin.validator.validate !== \"function\") {\n return collection;\n }\n\n const validator = async (value: any | any[]) => {\n let isInvalid;\n let message = item.message;\n try {\n const result = await validatorPlugin.validator.validate(value, {\n validator: item,\n field\n });\n\n isInvalid = result === false;\n } catch (e) {\n isInvalid = true;\n if (e.message && !item.message) {\n message = e.message;\n }\n }\n\n if (isInvalid) {\n let interpolated = message || \"Invalid value.\";\n\n const getVariableValues = validatorPlugin.validator.getVariableValues;\n if (typeof getVariableValues === \"function\") {\n const variables = getVariableValues({ validator: item });\n\n Object.keys(variables).forEach(key => {\n const regex = new RegExp(`\\{${key}\\}`, \"g\");\n interpolated = interpolated.replace(regex, variables[key]);\n });\n }\n\n throw new Error(interpolated);\n }\n };\n /**\n * We need to set the validator name because it will be used as the reference to skip, if necessary.\n */\n validator.validatorName = camelCase(validatorPlugin.validator.name);\n\n collection.push(validator);\n return collection;\n }, [] as Validator[]);\n};\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,iBAAiB;AAGzC,OAAOC,SAAS,MAAM,kBAAkB;AAExC,OAAO,MAAMC,gBAAgB,GAAGA,CAC5BC,KAAoB,EACpBC,UAAkD,KACpC;EACd,MAAMC,gBAAgB,GAAGL,OAAO,CAACM,MAAM,CACnC,2BACJ,CAAC;EAED,OAAOF,UAAU,CAACG,MAAM,CAAc,CAACC,UAAU,EAAEC,IAAI,KAAK;IACxD,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;MAC5B,OAAO,CAAC,GAAGD,UAAU,EAAEC,IAAI,CAAC;IAChC;IAEA,MAAMC,eAAe,GAAGL,gBAAgB,CAACM,IAAI,CACzCC,MAAM,IAAIA,MAAM,CAACC,SAAS,CAACC,IAAI,KAAKL,IAAI,CAACK,IAC7C,CAAC;IAED,IAAI,CAACJ,eAAe,IAAI,OAAOA,eAAe,CAACG,SAAS,CAACE,QAAQ,KAAK,UAAU,EAAE;MAC9E,OAAOP,UAAU;IACrB;IAEA,MAAMK,SAAS,GAAG,MAAOG,KAAkB,IAAK;MAC5C,IAAIC,SAAS;MACb,IAAIC,OAAO,GAAGT,IAAI,CAACS,OAAO;MAC1B,IAAI;QACA,MAAMC,MAAM,GAAG,MAAMT,eAAe,CAACG,SAAS,CAACE,QAAQ,CAACC,KAAK,EAAE;UAC3DH,SAAS,EAAEJ,IAAI;UACfN;QACJ,CAAC,CAAC;QAEFc,SAAS,GAAGE,MAAM,KAAK,KAAK;MAChC,CAAC,CAAC,OAAOC,CAAC,EAAE;QACRH,SAAS,GAAG,IAAI;QAChB,IAAIG,CAAC,CAACF,OAAO,IAAI,CAACT,IAAI,CAACS,OAAO,EAAE;UAC5BA,OAAO,GAAGE,CAAC,CAACF,OAAO;QACvB;MACJ;MAEA,IAAID,SAAS,EAAE;QACX,IAAII,YAAY,GAAGH,OAAO,IAAI,gBAAgB;QAE9C,MAAMI,iBAAiB,GAAGZ,eAAe,CAACG,SAAS,CAACS,iBAAiB;QACrE,IAAI,OAAOA,iBAAiB,KAAK,UAAU,EAAE;UACzC,MAAMC,SAAS,GAAGD,iBAAiB,CAAC;YAAET,SAAS,EAAEJ;UAAK,CAAC,CAAC;UAExDe,MAAM,CAACC,IAAI,CAACF,SAAS,CAAC,CAACG,OAAO,CAACC,GAAG,IAAI;YAClC,MAAMC,KAAK,GAAG,IAAIC,MAAM,CAAC,KAAKF,GAAG,IAAI,EAAE,GAAG,CAAC;YAC3CN,YAAY,GAAGA,YAAY,CAACS,OAAO,CAACF,KAAK,EAAEL,SAAS,CAACI,GAAG,CAAC,CAAC;UAC9D,CAAC,CAAC;QACN;QAEA,MAAM,IAAII,KAAK,CAACV,YAAY,CAAC;MACjC;IACJ,CAAC;IACD;AACR;AACA;IACQR,SAAS,CAACmB,aAAa,GAAG/B,SAAS,CAACS,eAAe,CAACG,SAAS,CAACC,IAAI,CAAC;IAEnEN,UAAU,CAACyB,IAAI,CAACpB,SAAS,CAAC;IAC1B,OAAOL,UAAU;EACrB,CAAC,EAAE,EAAiB,CAAC;AACzB,CAAC","ignoreList":[]}
|