@wix/patterns-cms 1.10.0 → 1.14.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__/transformCmsSchema.spec.js +9 -0
- package/dist/cjs/adapter/__tests__/transformCmsSchema.spec.js.map +1 -1
- package/dist/cjs/adapter/__tests__/useCmsSchemaSource.spec.js +142 -0
- package/dist/cjs/adapter/__tests__/useCmsSchemaSource.spec.js.map +1 -0
- package/dist/cjs/adapter/createCmsBackend.js +2 -0
- package/dist/cjs/adapter/createCmsBackend.js.map +1 -1
- package/dist/cjs/adapter/index.js +5 -3
- package/dist/cjs/adapter/index.js.map +1 -1
- package/dist/cjs/adapter/listCmsCollections.js +15 -0
- package/dist/cjs/adapter/listCmsCollections.js.map +1 -0
- package/dist/cjs/adapter/transformCmsSchema.js +4 -1
- package/dist/cjs/adapter/transformCmsSchema.js.map +1 -1
- package/dist/cjs/adapter/useCmsSchemaSource.js +72 -0
- package/dist/cjs/adapter/useCmsSchemaSource.js.map +1 -0
- package/dist/cjs/testkit/cmsFetchMocks.js +166 -0
- package/dist/cjs/testkit/cmsFetchMocks.js.map +1 -0
- package/dist/cjs/testkit/index.js +10 -0
- package/dist/cjs/testkit/index.js.map +1 -0
- package/dist/esm/adapter/__tests__/transformCmsSchema.spec.js +5 -0
- package/dist/esm/adapter/__tests__/transformCmsSchema.spec.js.map +1 -1
- package/dist/esm/adapter/__tests__/useCmsSchemaSource.spec.js +117 -0
- package/dist/esm/adapter/__tests__/useCmsSchemaSource.spec.js.map +1 -0
- package/dist/esm/adapter/createCmsBackend.js.map +1 -1
- package/dist/esm/adapter/index.js +2 -1
- package/dist/esm/adapter/index.js.map +1 -1
- package/dist/esm/adapter/listCmsCollections.js +13 -0
- package/dist/esm/adapter/listCmsCollections.js.map +1 -0
- package/dist/esm/adapter/transformCmsSchema.js +4 -1
- package/dist/esm/adapter/transformCmsSchema.js.map +1 -1
- package/dist/esm/adapter/useCmsSchemaSource.js +56 -0
- package/dist/esm/adapter/useCmsSchemaSource.js.map +1 -0
- package/dist/esm/testkit/cmsFetchMocks.js +116 -0
- package/dist/esm/testkit/cmsFetchMocks.js.map +1 -0
- package/dist/esm/testkit/index.js +2 -0
- package/dist/esm/testkit/index.js.map +1 -0
- package/dist/types/adapter/__tests__/useCmsSchemaSource.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/useCmsSchemaSource.spec.d.ts.map +1 -0
- package/dist/types/adapter/createCmsBackend.d.ts +4 -2
- package/dist/types/adapter/createCmsBackend.d.ts.map +1 -1
- package/dist/types/adapter/index.d.ts +2 -1
- package/dist/types/adapter/index.d.ts.map +1 -1
- package/dist/types/adapter/listCmsCollections.d.ts +7 -0
- package/dist/types/adapter/listCmsCollections.d.ts.map +1 -0
- package/dist/types/adapter/transformCmsSchema.d.ts.map +1 -1
- package/dist/types/adapter/useCmsSchemaSource.d.ts +19 -0
- package/dist/types/adapter/useCmsSchemaSource.d.ts.map +1 -0
- package/dist/types/testkit/cmsFetchMocks.d.ts +48 -0
- package/dist/types/testkit/cmsFetchMocks.d.ts.map +1 -0
- package/dist/types/testkit/index.d.ts +2 -0
- package/dist/types/testkit/index.d.ts.map +1 -0
- package/package.json +21 -6
- package/testkit/package.json +6 -0
- package/dist/cjs/adapter/__tests__/createCmsSchemaSource.spec.js +0 -38
- package/dist/cjs/adapter/__tests__/createCmsSchemaSource.spec.js.map +0 -1
- package/dist/cjs/adapter/createCmsSchemaSource.js +0 -43
- package/dist/cjs/adapter/createCmsSchemaSource.js.map +0 -1
- package/dist/esm/adapter/__tests__/createCmsSchemaSource.spec.js +0 -41
- package/dist/esm/adapter/__tests__/createCmsSchemaSource.spec.js.map +0 -1
- package/dist/esm/adapter/createCmsSchemaSource.js +0 -41
- package/dist/esm/adapter/createCmsSchemaSource.js.map +0 -1
- package/dist/types/adapter/__tests__/createCmsSchemaSource.spec.d.ts +0 -2
- package/dist/types/adapter/__tests__/createCmsSchemaSource.spec.d.ts.map +0 -1
- package/dist/types/adapter/createCmsSchemaSource.d.ts +0 -12
- package/dist/types/adapter/createCmsSchemaSource.d.ts.map +0 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.mockCmsCollection = mockCmsCollection;
|
|
5
|
+
exports.mockCmsItems = mockCmsItems;
|
|
6
|
+
var _fetchMock = require("@wix/sdk-testkit/fetch-mock");
|
|
7
|
+
var _meta = require("@wix/data/meta");
|
|
8
|
+
var _data = require("@wix/data");
|
|
9
|
+
var _bexCore = require("@wix/bex-core");
|
|
10
|
+
var _cmsFieldTypeMap = require("../adapter/cmsFieldTypeMap");
|
|
11
|
+
var itemsApi = _interopRequireWildcard(require("@wix/wix-data-items-sdk/build/cjs/src/data-items-api-client"));
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
+
// The query endpoint's request options aren't exposed on any public entry, so
|
|
14
|
+
// reach into the items SDK internals to derive its URL (no @wix/data/meta entry).
|
|
15
|
+
// eslint-disable-next-line no-restricted-imports
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Mock the collection schema (`getDataCollection`) either from explicit CMS fields
|
|
19
|
+
* or straight from a schema source — a `createInMemorySchemaSource` becomes the
|
|
20
|
+
* single source of truth for the schema, its contract fields converted back to CMS
|
|
21
|
+
* fields (types with no CMS mapping fall back to text — enough to render).
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
function toCmsFields(fields, idField) {
|
|
25
|
+
return Object.values(fields).filter(field => field != null).map(field => ({
|
|
26
|
+
key: field.id,
|
|
27
|
+
displayName: field.displayName,
|
|
28
|
+
type: _cmsFieldTypeMap.PatternsFieldTypeToCmsFieldType[field.type] ?? _data.collections.Type.TEXT,
|
|
29
|
+
...(field.id === idField ? {
|
|
30
|
+
systemField: true
|
|
31
|
+
} : {})
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
function collectionResponse(collectionId, fields, displayField) {
|
|
35
|
+
return {
|
|
36
|
+
referencedCollections: [],
|
|
37
|
+
collection: {
|
|
38
|
+
id: collectionId,
|
|
39
|
+
collectionType: _data.collections.CollectionType.WIX_APP,
|
|
40
|
+
pagingModes: [_data.collections.PagingMode.OFFSET],
|
|
41
|
+
plugins: [],
|
|
42
|
+
displayField,
|
|
43
|
+
fields
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Routes the collection schema (`getDataCollection`) that `useCmsSchemaSource`
|
|
50
|
+
* loads. `@wix/data` issues real fetch calls; the caller's fetch-mock instance
|
|
51
|
+
* intercepts them by URL.
|
|
52
|
+
*/
|
|
53
|
+
function mockCmsCollection(fetchMock, options) {
|
|
54
|
+
if ('source' in options) {
|
|
55
|
+
const {
|
|
56
|
+
source
|
|
57
|
+
} = options;
|
|
58
|
+
const [url] = (0, _fetchMock.when)(_meta.collections.getDataCollection()).withParams({
|
|
59
|
+
dataCollectionId: source.collectionId
|
|
60
|
+
}).reply(undefined);
|
|
61
|
+
fetchMock.route(url, async () => {
|
|
62
|
+
const {
|
|
63
|
+
schema
|
|
64
|
+
} = await source.loadSchema();
|
|
65
|
+
return collectionResponse(source.collectionId, toCmsFields(schema.fields, schema.idField), schema.displayField);
|
|
66
|
+
});
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const {
|
|
70
|
+
collectionId,
|
|
71
|
+
fields,
|
|
72
|
+
displayField = 'name'
|
|
73
|
+
} = options;
|
|
74
|
+
const [url, data] = (0, _fetchMock.when)(_meta.collections.getDataCollection()).withParams({
|
|
75
|
+
dataCollectionId: collectionId
|
|
76
|
+
}).reply(collectionResponse(collectionId, fields, displayField));
|
|
77
|
+
fetchMock.route(url, data);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// The items-query endpoint has no `@wix/data/meta` entry, so derive its URL from
|
|
81
|
+
// the wix-data-items SDK request options.
|
|
82
|
+
function queryDataItemsMeta() {
|
|
83
|
+
return {
|
|
84
|
+
getUrl: context =>
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
86
|
+
itemsApi.reqOptions(itemsApi.queryDataItemsRequestOptions, {})(context).url,
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
|
+
httpMethod: itemsApi.queryDataItemsRequestOptions.method,
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
90
|
+
path: itemsApi.queryDataItemsRequestOptions.httpPath,
|
|
91
|
+
pathParams: {},
|
|
92
|
+
__requestType: null,
|
|
93
|
+
__originalRequestType: null,
|
|
94
|
+
__responseType: null,
|
|
95
|
+
__originalResponseType: null
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// A resolver reads a page of rows for a decoded query — this is exactly a schema
|
|
100
|
+
// source's derived fetch (`sourceFetchData`), so an in-memory source wires
|
|
101
|
+
// straight in. A plain array is normalized to one below.
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* What `mockCmsItems` serves: either plain rows or a resolver that returns a page
|
|
105
|
+
* per query (a schema source's derived fetch is exactly a resolver).
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Mock the rows either from explicit items/resolver or straight from a schema
|
|
110
|
+
* source — pass `{ source }` and a `createInMemorySchemaSource` becomes the single
|
|
111
|
+
* source of truth for the rows too.
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
// The @wix/data query is sent as a base64 `.r` search param; decode it back to
|
|
115
|
+
// the offset/limit a resolver expects.
|
|
116
|
+
|
|
117
|
+
function decodeOffsetQuery(opts) {
|
|
118
|
+
var _JSON$parse, _query$paging, _query$paging2;
|
|
119
|
+
const raw = opts.queryParams.get('.r');
|
|
120
|
+
const query = raw ? (_JSON$parse = JSON.parse(atob(raw))) == null ? void 0 : _JSON$parse.query : undefined;
|
|
121
|
+
return {
|
|
122
|
+
offset: (query == null || (_query$paging = query.paging) == null ? void 0 : _query$paging.offset) ?? 0,
|
|
123
|
+
limit: (query == null || (_query$paging2 = query.paging) == null ? void 0 : _query$paging2.limit) ?? 100
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function toResolver(items) {
|
|
127
|
+
if (typeof items === 'function') {
|
|
128
|
+
return items;
|
|
129
|
+
}
|
|
130
|
+
// Plain array: slice by the requested page, report the full count as total.
|
|
131
|
+
return async query => {
|
|
132
|
+
const offset = query.offset ?? 0;
|
|
133
|
+
const limit = query.limit ?? items.length;
|
|
134
|
+
const page = items.slice(offset, offset + limit);
|
|
135
|
+
return {
|
|
136
|
+
items: page,
|
|
137
|
+
total: items.length,
|
|
138
|
+
hasNext: offset + page.length < items.length
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Routes the collection's rows (`items.query(...).find()`). Pass plain rows, or a
|
|
145
|
+
* resolver `(query) => Promise<{ items, total }>` — the latter is a schema source's
|
|
146
|
+
* `sourceFetchData(source)`, so an in-memory source drives paging per request.
|
|
147
|
+
*/
|
|
148
|
+
function mockCmsItems(fetchMock, options) {
|
|
149
|
+
const resolve = 'source' in options ? (0, _bexCore.sourceFetchData)(options.source) : toResolver(options.items);
|
|
150
|
+
const [url] = (0, _fetchMock.when)(queryDataItemsMeta()).reply(null);
|
|
151
|
+
fetchMock.route(url, async opts => {
|
|
152
|
+
const {
|
|
153
|
+
items: page,
|
|
154
|
+
total
|
|
155
|
+
} = await resolve(decodeOffsetQuery(opts));
|
|
156
|
+
return {
|
|
157
|
+
dataItems: page.map(data => ({
|
|
158
|
+
data
|
|
159
|
+
})),
|
|
160
|
+
pagingMetadata: {
|
|
161
|
+
total
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=cmsFetchMocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_fetchMock","require","_meta","_data","_bexCore","_cmsFieldTypeMap","itemsApi","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toCmsFields","fields","idField","values","filter","field","map","key","id","displayName","type","PatternsFieldTypeToCmsFieldType","collections","Type","TEXT","systemField","collectionResponse","collectionId","displayField","referencedCollections","collection","collectionType","CollectionType","WIX_APP","pagingModes","PagingMode","OFFSET","plugins","mockCmsCollection","fetchMock","options","source","url","when","collectionsMeta","getDataCollection","withParams","dataCollectionId","reply","undefined","route","schema","loadSchema","data","queryDataItemsMeta","getUrl","context","reqOptions","queryDataItemsRequestOptions","httpMethod","method","path","httpPath","pathParams","__requestType","__originalRequestType","__responseType","__originalResponseType","decodeOffsetQuery","opts","_JSON$parse","_query$paging","_query$paging2","raw","queryParams","query","JSON","parse","atob","offset","paging","limit","toResolver","items","length","page","slice","total","hasNext","mockCmsItems","resolve","sourceFetchData","dataItems","pagingMetadata"],"sources":["../../../src/testkit/cmsFetchMocks.ts"],"sourcesContent":["import { when } from '@wix/sdk-testkit/fetch-mock';\nimport { collections as collectionsMeta } from '@wix/data/meta';\nimport { collections } from '@wix/data';\nimport { sourceFetchData } from '@wix/bex-core';\nimport type { Schema, SchemaSource } from '@wix/bex-core';\nimport { PatternsFieldTypeToCmsFieldType } from '../adapter/cmsFieldTypeMap';\n// The query endpoint's request options aren't exposed on any public entry, so\n// reach into the items SDK internals to derive its URL (no @wix/data/meta entry).\n// eslint-disable-next-line no-restricted-imports\nimport * as itemsApi from '@wix/wix-data-items-sdk/build/cjs/src/data-items-api-client';\nimport type { FetchMock } from 'fetch-mock';\n\nexport type WixDataFields = NonNullable<\n collections.GetDataCollectionResponse['collection']\n>['fields'];\n\n/**\n * Mock the collection schema (`getDataCollection`) either from explicit CMS fields\n * or straight from a schema source — a `createInMemorySchemaSource` becomes the\n * single source of truth for the schema, its contract fields converted back to CMS\n * fields (types with no CMS mapping fall back to text — enough to render).\n */\nexport type MockCmsCollectionOptions<\n T extends Record<string, unknown> = Record<string, unknown>,\n> =\n | { collectionId: string; fields: WixDataFields; displayField?: string }\n | { source: SchemaSource<T> };\n\nfunction toCmsFields(fields: Schema['fields'], idField: string): WixDataFields {\n return Object.values(fields)\n .filter((field): field is NonNullable<typeof field> => field != null)\n .map((field) => ({\n key: field.id,\n displayName: field.displayName,\n type:\n PatternsFieldTypeToCmsFieldType[field.type] ?? collections.Type.TEXT,\n ...(field.id === idField ? { systemField: true } : {}),\n }));\n}\n\nfunction collectionResponse(\n collectionId: string,\n fields: WixDataFields,\n displayField: string,\n): collections.GetDataCollectionResponse {\n return {\n referencedCollections: [],\n collection: {\n id: collectionId,\n collectionType: collections.CollectionType.WIX_APP,\n pagingModes: [collections.PagingMode.OFFSET],\n plugins: [],\n displayField,\n fields,\n },\n } as collections.GetDataCollectionResponse;\n}\n\n/**\n * Routes the collection schema (`getDataCollection`) that `useCmsSchemaSource`\n * loads. `@wix/data` issues real fetch calls; the caller's fetch-mock instance\n * intercepts them by URL.\n */\nexport function mockCmsCollection<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(fetchMock: FetchMock, options: MockCmsCollectionOptions<T>): void {\n if ('source' in options) {\n const { source } = options;\n const [url] = when(collectionsMeta.getDataCollection())\n .withParams({ dataCollectionId: source.collectionId })\n .reply(undefined);\n\n fetchMock.route(url, async () => {\n const { schema } = await source.loadSchema();\n return collectionResponse(\n source.collectionId,\n toCmsFields(schema.fields, schema.idField),\n schema.displayField,\n );\n });\n return;\n }\n\n const { collectionId, fields, displayField = 'name' } = options;\n const [url, data] = when(collectionsMeta.getDataCollection())\n .withParams({ dataCollectionId: collectionId })\n .reply(collectionResponse(collectionId, fields, displayField));\n\n fetchMock.route(url, data);\n}\n\n// The items-query endpoint has no `@wix/data/meta` entry, so derive its URL from\n// the wix-data-items SDK request options.\nfunction queryDataItemsMeta() {\n return {\n getUrl: (context: unknown) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (itemsApi.reqOptions as any)(\n itemsApi.queryDataItemsRequestOptions,\n {},\n )(context).url,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n httpMethod: (itemsApi.queryDataItemsRequestOptions as any).method,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n path: (itemsApi.queryDataItemsRequestOptions as any).httpPath,\n pathParams: {},\n __requestType: null,\n __originalRequestType: null,\n __responseType: null,\n __originalResponseType: null,\n };\n}\n\n// A resolver reads a page of rows for a decoded query — this is exactly a schema\n// source's derived fetch (`sourceFetchData`), so an in-memory source wires\n// straight in. A plain array is normalized to one below.\ntype ItemsResolver<T> = ReturnType<typeof sourceFetchData<T>>;\ntype OffsetQuery<T> = Parameters<ItemsResolver<T>>[0];\n\n/**\n * What `mockCmsItems` serves: either plain rows or a resolver that returns a page\n * per query (a schema source's derived fetch is exactly a resolver).\n */\nexport type CmsItems<T extends Record<string, unknown>> =\n | T[]\n | ItemsResolver<T>;\n\n/**\n * Mock the rows either from explicit items/resolver or straight from a schema\n * source — pass `{ source }` and a `createInMemorySchemaSource` becomes the single\n * source of truth for the rows too.\n */\nexport type MockCmsItemsOptions<T extends Record<string, unknown>> =\n | { items: CmsItems<T> }\n | { source: SchemaSource<T> };\n\n// The @wix/data query is sent as a base64 `.r` search param; decode it back to\n// the offset/limit a resolver expects.\ninterface QueryCall {\n queryParams: { get(name: string): string | null };\n}\n\nfunction decodeOffsetQuery<T extends Record<string, unknown>>(\n opts: QueryCall,\n): OffsetQuery<T> {\n const raw = opts.queryParams.get('.r');\n const query = raw ? JSON.parse(atob(raw))?.query : undefined;\n return {\n offset: query?.paging?.offset ?? 0,\n limit: query?.paging?.limit ?? 100,\n } as OffsetQuery<T>;\n}\n\nfunction toResolver<T extends Record<string, unknown>>(\n items: CmsItems<T>,\n): ItemsResolver<T> {\n if (typeof items === 'function') {\n return items;\n }\n // Plain array: slice by the requested page, report the full count as total.\n return (async (query: OffsetQuery<T>) => {\n const offset = query.offset ?? 0;\n const limit = query.limit ?? items.length;\n const page = items.slice(offset, offset + limit);\n return {\n items: page,\n total: items.length,\n hasNext: offset + page.length < items.length,\n };\n }) as ItemsResolver<T>;\n}\n\n/**\n * Routes the collection's rows (`items.query(...).find()`). Pass plain rows, or a\n * resolver `(query) => Promise<{ items, total }>` — the latter is a schema source's\n * `sourceFetchData(source)`, so an in-memory source drives paging per request.\n */\nexport function mockCmsItems<T extends Record<string, unknown>>(\n fetchMock: FetchMock,\n options: MockCmsItemsOptions<T>,\n): void {\n const resolve =\n 'source' in options\n ? sourceFetchData(options.source)\n : toResolver(options.items);\n const [url] = when(queryDataItemsMeta()).reply(null);\n\n fetchMock.route(url, async (opts: QueryCall) => {\n const { items: page, total } = await resolve(decodeOffsetQuery<T>(opts));\n return {\n dataItems: page.map((data) => ({ data })),\n pagingMetadata: { total },\n };\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
var _cmsFetchMocks = require("./cmsFetchMocks");
|
|
5
|
+
Object.keys(_cmsFetchMocks).forEach(function (key) {
|
|
6
|
+
if (key === "default" || key === "__esModule") return;
|
|
7
|
+
if (key in exports && exports[key] === _cmsFetchMocks[key]) return;
|
|
8
|
+
exports[key] = _cmsFetchMocks[key];
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_cmsFetchMocks","require","Object","keys","forEach","key","exports"],"sources":["../../../src/testkit/index.ts"],"sourcesContent":["export * from './cmsFetchMocks';\n"],"mappings":";;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,cAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,cAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,cAAA,CAAAK,GAAA;AAAA","ignoreList":[]}
|
|
@@ -99,6 +99,11 @@ describe('transformCmsSchema', () => {
|
|
|
99
99
|
expect(schema.fields.secret?.helpText).toBe('A hint');
|
|
100
100
|
expect(schema.fields.secret?.isSystem).toBe(true);
|
|
101
101
|
});
|
|
102
|
+
it('treats the manual-sort field as system even when not flagged by @wix/data', () => {
|
|
103
|
+
const key = '_manualSort_48382113-d33d-415b-b416-b65642f65483';
|
|
104
|
+
const schema = transformCmsSchema(makeCollection([makeField({ key, systemField: false })]));
|
|
105
|
+
expect(schema.fields[key]?.isSystem).toBe(true);
|
|
106
|
+
});
|
|
102
107
|
it('maps validation ranges and required', () => {
|
|
103
108
|
const schema = transformCmsSchema(makeCollection([
|
|
104
109
|
makeField({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformCmsSchema.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/transformCmsSchema.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transformCmsSchema.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/transformCmsSchema.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { defineSchemaSource } from '@wix/bex-core';
|
|
2
|
+
import { collections } from '@wix/data';
|
|
3
|
+
import { cmsSchemaSourceInput } from '../useCmsSchemaSource';
|
|
4
|
+
import { fetchUserPermissions } from '../fetchUserPermissions';
|
|
5
|
+
import { fetchExternalDbConnections } from '../fetchExternalDbConnections';
|
|
6
|
+
// loadCmsSchema imports errorHandler at evaluation time; stub it so importing
|
|
7
|
+
// the source builder is side-effect free.
|
|
8
|
+
jest.mock('@wix/essentials', () => ({
|
|
9
|
+
errorHandler: {
|
|
10
|
+
withErrorHandler: (fn) => fn(),
|
|
11
|
+
},
|
|
12
|
+
}));
|
|
13
|
+
// Keep @wix/data real (cmsFieldTypeMap reads `collections.Type` at evaluation
|
|
14
|
+
// time) and stub only the collection fetch, so loadSchema runs the real
|
|
15
|
+
// loader + transform against a fixed collection.
|
|
16
|
+
jest.mock('@wix/data', () => {
|
|
17
|
+
const actual = jest.requireActual('@wix/data');
|
|
18
|
+
return {
|
|
19
|
+
...actual,
|
|
20
|
+
collections: {
|
|
21
|
+
...actual.collections,
|
|
22
|
+
getDataCollection: jest.fn(),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
jest.mock('../fetchUserPermissions', () => ({
|
|
27
|
+
fetchUserPermissions: jest.fn(),
|
|
28
|
+
}));
|
|
29
|
+
jest.mock('../fetchExternalDbConnections', () => ({
|
|
30
|
+
fetchExternalDbConnections: jest.fn(),
|
|
31
|
+
}));
|
|
32
|
+
const getDataCollection = collections.getDataCollection;
|
|
33
|
+
const fetchUserPermissionsMock = fetchUserPermissions;
|
|
34
|
+
const fetchExternalDbConnectionsMock = fetchExternalDbConnections;
|
|
35
|
+
const httpClient = {};
|
|
36
|
+
// A collection with one reference field pointing at "Camels".
|
|
37
|
+
const collectionWithReference = () => ({
|
|
38
|
+
_id: 'Products',
|
|
39
|
+
collectionType: 'NATIVE',
|
|
40
|
+
displayField: 'title',
|
|
41
|
+
capabilities: { dataOperations: ['SAVE', 'UPDATE', 'REMOVE'] },
|
|
42
|
+
permissions: {
|
|
43
|
+
read: 'ANYONE',
|
|
44
|
+
insert: 'SITE_MEMBER',
|
|
45
|
+
update: 'SITE_MEMBER',
|
|
46
|
+
remove: 'SITE_MEMBER',
|
|
47
|
+
},
|
|
48
|
+
plugins: [],
|
|
49
|
+
fields: [
|
|
50
|
+
{
|
|
51
|
+
key: 'title',
|
|
52
|
+
type: collections.Type.TEXT,
|
|
53
|
+
systemField: false,
|
|
54
|
+
encrypted: false,
|
|
55
|
+
plugins: [],
|
|
56
|
+
displayName: 'Title',
|
|
57
|
+
capabilities: { queryOperators: [], sortable: true },
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
key: 'supplier',
|
|
61
|
+
type: collections.Type.REFERENCE,
|
|
62
|
+
systemField: false,
|
|
63
|
+
encrypted: false,
|
|
64
|
+
plugins: [],
|
|
65
|
+
displayName: 'Supplier',
|
|
66
|
+
capabilities: { queryOperators: [], sortable: false },
|
|
67
|
+
typeMetadata: { reference: { referencedCollectionId: 'Camels' } },
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
});
|
|
71
|
+
describe('useCmsSchemaSource', () => {
|
|
72
|
+
beforeEach(() => {
|
|
73
|
+
jest.clearAllMocks();
|
|
74
|
+
getDataCollection.mockResolvedValue(collectionWithReference());
|
|
75
|
+
fetchUserPermissionsMock.mockResolvedValue([]);
|
|
76
|
+
fetchExternalDbConnectionsMock.mockResolvedValue([]);
|
|
77
|
+
});
|
|
78
|
+
it('declares the creatable types in display order — labels come from the standard names in the UI', () => {
|
|
79
|
+
const source = defineSchemaSource(cmsSchemaSourceInput({
|
|
80
|
+
collectionId: 'Pokemon',
|
|
81
|
+
httpClient,
|
|
82
|
+
}));
|
|
83
|
+
expect(source.creatableFieldTypes).toEqual([
|
|
84
|
+
{ patternsType: 'SHORT_TEXT' },
|
|
85
|
+
{ patternsType: 'NUMBER' },
|
|
86
|
+
{ patternsType: 'BOOLEAN' },
|
|
87
|
+
{ patternsType: 'DATE' },
|
|
88
|
+
]);
|
|
89
|
+
});
|
|
90
|
+
it('builds an offset source keyed by the collectionId', () => {
|
|
91
|
+
const source = defineSchemaSource(cmsSchemaSourceInput({
|
|
92
|
+
collectionId: 'Pokemon',
|
|
93
|
+
httpClient,
|
|
94
|
+
}));
|
|
95
|
+
expect(source.collectionId).toBe('Pokemon');
|
|
96
|
+
expect(source.paginationMode).toBe('offset');
|
|
97
|
+
});
|
|
98
|
+
it('auto-builds a reference source per reference field once the schema loads', async () => {
|
|
99
|
+
const source = defineSchemaSource(cmsSchemaSourceInput({ collectionId: 'Products', httpClient }));
|
|
100
|
+
// Nothing is wired until the schema (and its reference fields) is known.
|
|
101
|
+
expect(source.references).toEqual({});
|
|
102
|
+
await source.loadSchema();
|
|
103
|
+
expect(source.references.Camels).toBeDefined();
|
|
104
|
+
expect(source.references.Camels.collectionId).toBe('Camels');
|
|
105
|
+
});
|
|
106
|
+
it('keeps a seeded reference source instead of auto-building it', async () => {
|
|
107
|
+
const seeded = defineSchemaSource(cmsSchemaSourceInput({ collectionId: 'Camels', httpClient }));
|
|
108
|
+
const source = defineSchemaSource(cmsSchemaSourceInput({
|
|
109
|
+
collectionId: 'Products',
|
|
110
|
+
httpClient,
|
|
111
|
+
references: { Camels: seeded },
|
|
112
|
+
}));
|
|
113
|
+
await source.loadSchema();
|
|
114
|
+
expect(source.references.Camels).toBe(seeded);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
//# sourceMappingURL=useCmsSchemaSource.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCmsSchemaSource.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/useCmsSchemaSource.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCmsBackend.js","sourceRoot":"","sources":["../../../src/adapter/createCmsBackend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"createCmsBackend.js","sourceRoot":"","sources":["../../../src/adapter/createCmsBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { createCmsSchemaLoader, fetchCmsCollection, } from './loadCmsSchema';
|
|
2
|
-
export {
|
|
2
|
+
export { useCmsSchemaSource, } from './useCmsSchemaSource';
|
|
3
|
+
export { listCmsCollections, } from './listCmsCollections';
|
|
3
4
|
export { transformCmsSchema, } from './transformCmsSchema';
|
|
4
5
|
export { createCmsBackend } from './createCmsBackend';
|
|
5
6
|
export { createCmsFieldActions } from './createCmsFieldActions';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,qBAAqB,GAGtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { collections } from '@wix/data';
|
|
2
|
+
import { errorHandler } from '@wix/essentials';
|
|
3
|
+
/** Lists the site's CMS collections — for collection pickers. */
|
|
4
|
+
export async function listCmsCollections() {
|
|
5
|
+
const response = await errorHandler.withErrorHandler(async () => collections.listDataCollections(), {});
|
|
6
|
+
return (response.collections ?? [])
|
|
7
|
+
.map((collection) => ({
|
|
8
|
+
id: collection._id ?? '',
|
|
9
|
+
displayName: collection.displayName ?? collection._id ?? '',
|
|
10
|
+
}))
|
|
11
|
+
.filter((collection) => collection.id !== '');
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=listCmsCollections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listCmsCollections.js","sourceRoot":"","sources":["../../../src/adapter/listCmsCollections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAO/C,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAClD,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,mBAAmB,EAAE,EAC7C,EAAE,CACH,CAAC;IACF,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;SAChC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpB,EAAE,EAAE,UAAU,CAAC,GAAG,IAAI,EAAE;QACxB,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,GAAG,IAAI,EAAE;KAC5D,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -17,7 +17,10 @@ export function transformCmsSchema(schema, options = {}) {
|
|
|
17
17
|
isPrimary: field.key === schema.displayField,
|
|
18
18
|
isPii: field.encrypted ?? false,
|
|
19
19
|
helpText: field.description ?? undefined,
|
|
20
|
-
|
|
20
|
+
// `@wix/data` does not flag the manual-sort field (`_manualSort_<id>`)
|
|
21
|
+
// as `systemField`, but it is internal and must not surface as an
|
|
22
|
+
// editable field — treat it as system, matching auto-patterns.
|
|
23
|
+
isSystem: (field.systemField ?? false) || field.key.startsWith('_manualSort'),
|
|
21
24
|
validation: {
|
|
22
25
|
numberRange: field.numberRange
|
|
23
26
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformCmsSchema.js","sourceRoot":"","sources":["../../../src/adapter/transformCmsSchema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,qBAAqB,GAEtB,MAAM,kBAAkB,CAAC;AAS1B,sFAAsF;AACtF,MAAM,UAAU,kBAAkB,CAChC,MAAkC,EAClC,UAAqC,EAAE;IAEvC,MAAM,EAAE,eAAe,GAAG,EAAE,EAAE,qBAAqB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IACrE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAa,CAAC;IAE1C,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CACpD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACd,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI;YAC1B,CAAC,CAAC,+BAA+B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS;YAC1D,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,SAAS,GAAG;YAChB,EAAE,EAAE,KAAK,CAAC,GAAG;YACb,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;YACpC,SAAS,EAAE,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,YAAY;YAC5C,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;YAC/B,QAAQ,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;YACxC,QAAQ,
|
|
1
|
+
{"version":3,"file":"transformCmsSchema.js","sourceRoot":"","sources":["../../../src/adapter/transformCmsSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useSchemaSource, useWixPatternsContainer } from '@wix/bex-core/react';
|
|
2
|
+
import { defineSchemaSource } from '@wix/bex-core';
|
|
3
|
+
import { createCmsSchemaLoader, } from './loadCmsSchema';
|
|
4
|
+
// The field types the add/edit modal offers, in display order. These are the
|
|
5
|
+
// only types @wix/data can create (see PatternsFieldTypeToCmsFieldType).
|
|
6
|
+
const CMS_CREATABLE_TYPES = [
|
|
7
|
+
{ patternsType: 'SHORT_TEXT' },
|
|
8
|
+
{ patternsType: 'NUMBER' },
|
|
9
|
+
{ patternsType: 'BOOLEAN' },
|
|
10
|
+
{ patternsType: 'DATE' },
|
|
11
|
+
];
|
|
12
|
+
export function cmsSchemaSourceInput(deps) {
|
|
13
|
+
const { collectionId, references: seedReferences, ...loaderDeps } = deps;
|
|
14
|
+
const loader = createCmsSchemaLoader(loaderDeps);
|
|
15
|
+
// Reference fields are wired automatically: when the schema loads, each
|
|
16
|
+
// REFERENCE / MULTI_REFERENCE field's referencedCollectionId gets a child CMS
|
|
17
|
+
// source (same loader deps) added to `references`, so entity-page reference
|
|
18
|
+
// inputs can query the referenced collection with no manual wiring. The object
|
|
19
|
+
// is shared with the resolved source; seeded entries win over auto-built ones.
|
|
20
|
+
const references = { ...seedReferences };
|
|
21
|
+
const loadSchema = async () => {
|
|
22
|
+
const loaded = await loader(collectionId);
|
|
23
|
+
Object.values(loaded.schema.fields).forEach((field) => {
|
|
24
|
+
if (field?.type !== 'REFERENCE' && field?.type !== 'MULTI_REFERENCE') {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const referencedCollectionId = field.referenceMetadata.referencedCollectionId;
|
|
28
|
+
if (referencedCollectionId && !references[referencedCollectionId]) {
|
|
29
|
+
references[referencedCollectionId] = defineSchemaSource(cmsSchemaSourceInput({
|
|
30
|
+
collectionId: referencedCollectionId,
|
|
31
|
+
...loaderDeps,
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return loaded;
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
collectionId,
|
|
39
|
+
loadSchema,
|
|
40
|
+
creatableFieldTypes: CMS_CREATABLE_TYPES,
|
|
41
|
+
references,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A ready-to-use `SchemaSource` for a CMS collection: wraps the CMS schema
|
|
46
|
+
* loader and supplies the CMS field types. Pass it to a `@wix/patterns/schema`
|
|
47
|
+
* collection hook.
|
|
48
|
+
*/
|
|
49
|
+
export function useCmsSchemaSource(deps) {
|
|
50
|
+
const container = useWixPatternsContainer();
|
|
51
|
+
return useSchemaSource(cmsSchemaSourceInput({
|
|
52
|
+
...deps,
|
|
53
|
+
httpClient: deps.httpClient ?? container.httpClient,
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=useCmsSchemaSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCmsSchemaSource.js","sourceRoot":"","sources":["../../../src/adapter/useCmsSchemaSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAMnD,OAAO,EACL,qBAAqB,GAEtB,MAAM,iBAAiB,CAAC;AAEzB,6EAA6E;AAC7E,yEAAyE;AACzE,MAAM,mBAAmB,GAAyB;IAChD,EAAE,YAAY,EAAE,YAAY,EAAE;IAC9B,EAAE,YAAY,EAAE,QAAQ,EAAE;IAC1B,EAAE,YAAY,EAAE,SAAS,EAAE;IAC3B,EAAE,YAAY,EAAE,MAAM,EAAE;CACzB,CAAC;AAaF,MAAM,UAAU,oBAAoB,CAGlC,IAA4E;IAE5E,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IACzE,MAAM,MAAM,GAAG,qBAAqB,CAAI,UAAU,CAAC,CAAC;IAEpD,wEAAwE;IACxE,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,MAAM,UAAU,GAAsC,EAAE,GAAG,cAAc,EAAE,CAAC;IAE5E,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACpD,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,EAAE,IAAI,KAAK,iBAAiB,EAAE;gBACpE,OAAO;aACR;YACD,MAAM,sBAAsB,GAC1B,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;YACjD,IAAI,sBAAsB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;gBACjE,UAAU,CAAC,sBAAsB,CAAC,GAAG,kBAAkB,CACrD,oBAAoB,CAAC;oBACnB,YAAY,EAAE,sBAAsB;oBACpC,GAAG,UAAU;iBACd,CAAC,CACH,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,UAAU;QACV,mBAAmB,EAAE,mBAAmB;QACxC,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAEhC,IAA4B;IAC5B,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAC;IAC5C,OAAO,eAAe,CACpB,oBAAoB,CAAI;QACtB,GAAG,IAAI;QACP,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU;KACpD,CAAC,CACH,CAAC;AACJ,CAAC"}
|