@wix/auto-patterns 1.23.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +12 -323
- package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
- package/dist/cjs/components/AutoPatternsEntityPage/EditModeEntityPage.js +172 -0
- package/dist/cjs/components/AutoPatternsEntityPage/EditModeEntityPage.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js +78 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js +119 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js +79 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/index.js +16 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/index.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js +77 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js +109 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewModeEntityPage.js +198 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewModeEntityPage.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/index.js +12 -0
- package/dist/cjs/components/AutoPatternsEntityPage/index.js.map +1 -1
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js +2 -1
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/cjs/hooks/useActionCell.js +2 -1
- package/dist/cjs/hooks/useActionCell.js.map +1 -1
- package/dist/cjs/hooks/useBulkActionToolbar.js +2 -1
- package/dist/cjs/hooks/useBulkActionToolbar.js.map +1 -1
- package/dist/cjs/hooks/useCollectionPageActions.js +2 -1
- package/dist/cjs/hooks/useCollectionPageActions.js.map +1 -1
- package/dist/cjs/hooks/useEntityPageActions.js +106 -0
- package/dist/cjs/hooks/useEntityPageActions.js.map +1 -0
- package/dist/cjs/hooks/useEntityPageMoreActions.js +11 -1
- package/dist/cjs/hooks/useEntityPageMoreActions.js.map +1 -1
- package/dist/cjs/hooks/useNavigateEditEntityAction.js +50 -0
- package/dist/cjs/hooks/useNavigateEditEntityAction.js.map +1 -0
- package/dist/cjs/hooks/useNavigationUtils.js +12 -1
- package/dist/cjs/hooks/useNavigationUtils.js.map +1 -1
- package/dist/cjs/providers/ErrorContext.js +6 -3
- package/dist/cjs/providers/ErrorContext.js.map +1 -1
- package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
- package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
- package/dist/cjs/types/EntityPageConfig.js.map +1 -1
- package/dist/cjs/types/actions/actionCell.js.map +1 -1
- package/dist/cjs/types/actions/entityPageActions.js.map +1 -1
- package/dist/cjs/utils/actions/types.js.map +1 -1
- package/dist/docs/action_cell.md +11 -6
- package/dist/docs/app_config_structure.md +49 -4
- package/dist/docs/auto-patterns-guide.md +311 -43
- package/dist/docs/bulk_actions.md +7 -2
- package/dist/docs/collection_page_actions.md +14 -4
- package/dist/docs/entity_page.md +65 -1
- package/dist/docs/entity_page_actions.md +13 -11
- package/dist/docs/entity_page_view_actions.md +137 -0
- package/dist/docs/index.md +6 -2
- package/dist/docs/pages_configuration.md +1 -11
- package/dist/docs/sdk_utilities.md +11 -4
- package/dist/docs/wix_fqdn_custom_data_source.md +25 -5
- package/dist/esm/components/AutoPatternsCollectionComponent/AutoPatternsCollectionComponent.js +4 -3
- package/dist/esm/components/AutoPatternsCollectionComponent/AutoPatternsCollectionComponent.js.map +1 -1
- package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +2 -1
- package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +9 -196
- package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/EditModeEntityPage.js +115 -0
- package/dist/esm/components/AutoPatternsEntityPage/EditModeEntityPage.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateInput.js +10 -6
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateInput.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js +23 -16
- package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/FormFieldInput.js +3 -2
- package/dist/esm/components/AutoPatternsEntityPage/Fields/FormFieldInput.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/ImageInput.js +9 -6
- package/dist/esm/components/AutoPatternsEntityPage/Fields/ImageInput.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/LongText.js +8 -6
- package/dist/esm/components/AutoPatternsEntityPage/Fields/LongText.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/Number.js +10 -8
- package/dist/esm/components/AutoPatternsEntityPage/Fields/Number.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/ShortText.js +12 -10
- package/dist/esm/components/AutoPatternsEntityPage/Fields/ShortText.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/Fields/Url.js +8 -6
- package/dist/esm/components/AutoPatternsEntityPage/Fields/Url.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js +33 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js +70 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js +48 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/index.js +3 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/index.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/SkeletonEntity.js +7 -4
- package/dist/esm/components/AutoPatternsEntityPage/SkeletonEntity.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js +31 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js +66 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewModeEntityPage.js +111 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewModeEntityPage.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/index.js +2 -0
- package/dist/esm/components/AutoPatternsEntityPage/index.js.map +1 -1
- package/dist/esm/components/ModalRenderer.js +2 -1
- package/dist/esm/components/ModalRenderer.js.map +1 -1
- package/dist/esm/components/modals/actions/BulkDeleteModal.js +12 -7
- package/dist/esm/components/modals/actions/BulkDeleteModal.js.map +1 -1
- package/dist/esm/components/modals/actions/CreateModal.js +11 -6
- package/dist/esm/components/modals/actions/CreateModal.js.map +1 -1
- package/dist/esm/components/modals/actions/EditModal.js +11 -6
- package/dist/esm/components/modals/actions/EditModal.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +6 -4
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/filterUtils.js +2 -1
- package/dist/esm/dataSourceAdapters/cms/filterUtils.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/sortUtils.js +2 -2
- package/dist/esm/dataSourceAdapters/cms/sortUtils.js.map +1 -1
- package/dist/esm/hooks/useActionCell.js +14 -9
- package/dist/esm/hooks/useActionCell.js.map +1 -1
- package/dist/esm/hooks/useBaseTableFeatures.js +2 -1
- package/dist/esm/hooks/useBaseTableFeatures.js.map +1 -1
- package/dist/esm/hooks/useBulkActionToolbar.js +4 -3
- package/dist/esm/hooks/useBulkActionToolbar.js.map +1 -1
- package/dist/esm/hooks/useCollectionPageActions.js +5 -4
- package/dist/esm/hooks/useCollectionPageActions.js.map +1 -1
- package/dist/esm/hooks/useCollectionPageOnRowClickActions.js +1 -1
- package/dist/esm/hooks/useCollectionPageOnRowClickActions.js.map +1 -1
- package/dist/esm/hooks/useColumns.js +12 -7
- package/dist/esm/hooks/useColumns.js.map +1 -1
- package/dist/esm/hooks/useCommonCollectionFeatures.js +8 -7
- package/dist/esm/hooks/useCommonCollectionFeatures.js.map +1 -1
- package/dist/esm/hooks/useEmptyStates.js +6 -5
- package/dist/esm/hooks/useEmptyStates.js.map +1 -1
- package/dist/esm/hooks/useEntityPageActions.js +83 -0
- package/dist/esm/hooks/useEntityPageActions.js.map +1 -0
- package/dist/esm/hooks/useEntityPageMoreActions.js +12 -2
- package/dist/esm/hooks/useEntityPageMoreActions.js.map +1 -1
- package/dist/esm/hooks/useFilters.js +7 -7
- package/dist/esm/hooks/useFilters.js.map +1 -1
- package/dist/esm/hooks/useNavigateEditEntityAction.js +46 -0
- package/dist/esm/hooks/useNavigateEditEntityAction.js.map +1 -0
- package/dist/esm/hooks/useNavigationUtils.js +15 -3
- package/dist/esm/hooks/useNavigationUtils.js.map +1 -1
- package/dist/esm/hooks/usePagePath.js +4 -3
- package/dist/esm/hooks/usePagePath.js.map +1 -1
- package/dist/esm/hooks/useTableFeatures.js +2 -1
- package/dist/esm/hooks/useTableFeatures.js.map +1 -1
- package/dist/esm/providers/ErrorContext.js +4 -1
- package/dist/esm/providers/ErrorContext.js.map +1 -1
- package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
- package/dist/esm/providers/SchemaContext.js +3 -2
- package/dist/esm/providers/SchemaContext.js.map +1 -1
- package/dist/esm/providers/SchemaRegistryContext.js +1 -1
- package/dist/esm/providers/SchemaRegistryContext.js.map +1 -1
- package/dist/esm/types/EntityPageConfig.js.map +1 -1
- package/dist/esm/types/actions/actionCell.js.map +1 -1
- package/dist/esm/types/actions/entityPageActions.js.map +1 -1
- package/dist/esm/utils/actions/customAction.js +2 -1
- package/dist/esm/utils/actions/customAction.js.map +1 -1
- package/dist/esm/utils/actions/deleteAction.js +10 -5
- package/dist/esm/utils/actions/deleteAction.js.map +1 -1
- package/dist/esm/utils/actions/types.js.map +1 -1
- package/dist/esm/utils/filterCreators.js +11 -11
- package/dist/esm/utils/filterCreators.js.map +1 -1
- package/dist/types/components/AutoPatternsEntityPage/AutoPatternsEntityPage.d.ts.map +1 -1
- package/dist/types/components/AutoPatternsEntityPage/EditModeEntityPage.d.ts +6 -0
- package/dist/types/components/AutoPatternsEntityPage/EditModeEntityPage.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.d.ts +11 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.d.ts +13 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.d.ts +8 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/index.d.ts +3 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/index.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.d.ts +8 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.d.ts +8 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewModeEntityPage.d.ts +8 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewModeEntityPage.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/index.d.ts +2 -0
- package/dist/types/components/AutoPatternsEntityPage/index.d.ts.map +1 -1
- package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -1
- package/dist/types/hooks/useActionCell.d.ts.map +1 -1
- package/dist/types/hooks/useEntityPageActions.d.ts +9 -0
- package/dist/types/hooks/useEntityPageActions.d.ts.map +1 -0
- package/dist/types/hooks/useEntityPageHeaderTexts.d.ts.map +1 -1
- package/dist/types/hooks/useEntityPageMoreActions.d.ts +2 -2
- package/dist/types/hooks/useEntityPageMoreActions.d.ts.map +1 -1
- package/dist/types/hooks/useNavigateEditEntityAction.d.ts +6 -0
- package/dist/types/hooks/useNavigateEditEntityAction.d.ts.map +1 -0
- package/dist/types/hooks/useNavigationUtils.d.ts +1 -0
- package/dist/types/hooks/useNavigationUtils.d.ts.map +1 -1
- package/dist/types/providers/ErrorContext.d.ts +7 -0
- package/dist/types/providers/ErrorContext.d.ts.map +1 -1
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts +2 -2
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
- package/dist/types/types/EntityPageConfig.d.ts +20 -4
- package/dist/types/types/EntityPageConfig.d.ts.map +1 -1
- package/dist/types/types/actions/actionCell.d.ts +7 -1
- package/dist/types/types/actions/actionCell.d.ts.map +1 -1
- package/dist/types/types/actions/entityPageActions.d.ts +24 -5
- package/dist/types/types/actions/entityPageActions.d.ts.map +1 -1
- package/dist/types/utils/actions/customAction.d.ts +1 -1
- package/dist/types/utils/actions/customAction.d.ts.map +1 -1
- package/dist/types/utils/actions/resolveAction.d.ts +1 -0
- package/dist/types/utils/actions/resolveAction.d.ts.map +1 -1
- package/dist/types/utils/actions/types.d.ts +2 -1
- package/dist/types/utils/actions/types.d.ts.map +1 -1
- package/package.json +16 -15
- package/dist/docs/config_schema.md +0 -184
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/auto-patterns",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Matvey Oklander",
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
"*.{js,ts}": "yarn lint"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@babel/runtime": "^7.
|
|
37
|
+
"@babel/runtime": "^7.28.2",
|
|
38
38
|
"@wix/data": "^1.0.222",
|
|
39
|
-
"@wix/wix-ui-icons-common": "^3.
|
|
39
|
+
"@wix/wix-ui-icons-common": "^3.84.1",
|
|
40
40
|
"ejs": "^3.1.10",
|
|
41
41
|
"lodash": "^4.17.21"
|
|
42
42
|
},
|
|
@@ -50,20 +50,20 @@
|
|
|
50
50
|
"@types/jest": "^27.5.2",
|
|
51
51
|
"@types/lodash": "^4.17.20",
|
|
52
52
|
"@types/node": "^16.18.126",
|
|
53
|
-
"@types/node-fetch": "^2.6.
|
|
53
|
+
"@types/node-fetch": "^2.6.13",
|
|
54
54
|
"@types/react": "^16.14.65",
|
|
55
55
|
"@wix/crm": "^1.0.385",
|
|
56
|
-
"@wix/design-system": "^1.
|
|
57
|
-
"@wix/eslint-config-yoshi": "^6.
|
|
58
|
-
"@wix/fe-essentials-standalone": "^1.
|
|
59
|
-
"@wix/jest-yoshi-preset": "^6.
|
|
60
|
-
"@wix/patterns": "^1.
|
|
61
|
-
"@wix/sdk": "^1.15.
|
|
56
|
+
"@wix/design-system": "^1.211.1",
|
|
57
|
+
"@wix/eslint-config-yoshi": "^6.155.0",
|
|
58
|
+
"@wix/fe-essentials-standalone": "^1.1380.0",
|
|
59
|
+
"@wix/jest-yoshi-preset": "^6.155.0",
|
|
60
|
+
"@wix/patterns": "^1.253.0",
|
|
61
|
+
"@wix/sdk": "^1.15.26",
|
|
62
62
|
"@wix/sdk-testkit": ">=0.1.6",
|
|
63
|
-
"@wix/wix-data-items-common": "^1.0.
|
|
64
|
-
"@wix/wix-data-items-sdk": "^1.0.
|
|
65
|
-
"@wix/yoshi-flow-library": "^6.
|
|
66
|
-
"@wix/yoshi-style-dependencies": "^6.
|
|
63
|
+
"@wix/wix-data-items-common": "^1.0.211",
|
|
64
|
+
"@wix/wix-data-items-sdk": "^1.0.403",
|
|
65
|
+
"@wix/yoshi-flow-library": "^6.155.0",
|
|
66
|
+
"@wix/yoshi-style-dependencies": "^6.155.0",
|
|
67
67
|
"chance": "^1.1.13",
|
|
68
68
|
"date-fns": "^2.30.0",
|
|
69
69
|
"express": "^4.21.2",
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"peerDependencies": {
|
|
78
78
|
"@wix/dashboard": "^1.3.33",
|
|
79
79
|
"@wix/design-system": "^1.204.0",
|
|
80
|
+
"@wix/essentials": "^0.1.26",
|
|
80
81
|
"@wix/patterns": "^1.239.0",
|
|
81
82
|
"react": "^16.8.0",
|
|
82
83
|
"react-router-dom": "^6.0.0 || ^7.0.0"
|
|
@@ -125,5 +126,5 @@
|
|
|
125
126
|
"wallaby": {
|
|
126
127
|
"autoDetect": true
|
|
127
128
|
},
|
|
128
|
-
"falconPackageHash": "
|
|
129
|
+
"falconPackageHash": "119b38014c45a67246d7f9e40fc3b9aa80010c9acbcf25504fff365c"
|
|
129
130
|
}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
## SchemaConfig Usage
|
|
2
|
-
|
|
3
|
-
SchemaConfig provides complete collection metadata and server actions. Essential for dynamic operations and accessing collection structure information.
|
|
4
|
-
|
|
5
|
-
### TypeScript Interface Definition
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
export interface SchemaConfig {
|
|
9
|
-
id: string;
|
|
10
|
-
fields: Record<string, Field | undefined>;
|
|
11
|
-
displayField: string;
|
|
12
|
-
idField: string;
|
|
13
|
-
actions: {
|
|
14
|
-
get: (entityId: string) => Promise<any>;
|
|
15
|
-
create: (newEntity: Partial<any>) => Promise<any>;
|
|
16
|
-
update: (updatedEntity: any) => Promise<any>;
|
|
17
|
-
delete: (entityId: string) => Promise<any>;
|
|
18
|
-
bulkDelete: (entityIds: string[]) => Promise<any>;
|
|
19
|
-
find: (
|
|
20
|
-
query: ComputedQuery<any>,
|
|
21
|
-
options?: {
|
|
22
|
-
searchableFieldIds?: string[];
|
|
23
|
-
filterFieldMapping?: Record<string, { fieldId: string }>;
|
|
24
|
-
},
|
|
25
|
-
) => Promise<{ items: any[]; total: number }>;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Supporting Type Definitions
|
|
31
|
-
|
|
32
|
-
```typescript
|
|
33
|
-
export type PatternsFieldType =
|
|
34
|
-
| 'SHORT_TEXT'
|
|
35
|
-
| 'LONG_TEXT'
|
|
36
|
-
| 'NUMBER'
|
|
37
|
-
| 'BOOLEAN'
|
|
38
|
-
| 'DATE'
|
|
39
|
-
| 'DATETIME'
|
|
40
|
-
| 'URL'
|
|
41
|
-
| 'ARRAY'
|
|
42
|
-
| 'REFERENCE'
|
|
43
|
-
| 'IMAGE';
|
|
44
|
-
|
|
45
|
-
interface BaseField {
|
|
46
|
-
id: string;
|
|
47
|
-
displayName: string;
|
|
48
|
-
validation?: {
|
|
49
|
-
numberRange?: NumberRange;
|
|
50
|
-
stringLengthRange?: StringLengthRange;
|
|
51
|
-
required: boolean;
|
|
52
|
-
};
|
|
53
|
-
capabilities: {
|
|
54
|
-
supportedQueryOperators: QueryOperator[];
|
|
55
|
-
sortable: boolean;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export interface ReferenceField extends BaseField {
|
|
60
|
-
type: 'REFERENCE';
|
|
61
|
-
referenceMetadata: {
|
|
62
|
-
referencedCollectionId: string;
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export interface NonReferenceField extends BaseField {
|
|
67
|
-
type: Exclude<PatternsFieldType, 'REFERENCE'>;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export type Field = ReferenceField | NonReferenceField;
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Key Properties
|
|
74
|
-
|
|
75
|
-
• **id** - `string`
|
|
76
|
-
- Collection identifier (e.g., "WixPets")
|
|
77
|
-
- Example: `schema.id === "WixPets"`
|
|
78
|
-
|
|
79
|
-
• **idField** - `string`
|
|
80
|
-
- Primary key field name (usually "_id")
|
|
81
|
-
- Required for all update/delete operations
|
|
82
|
-
- Example: `const id = item[schema.idField]`
|
|
83
|
-
|
|
84
|
-
• **displayField** - `string`
|
|
85
|
-
- Main field for displaying items (name, title, etc.)
|
|
86
|
-
- Used in UI components for item identification
|
|
87
|
-
- Example: `const label = item[schema.displayField]`
|
|
88
|
-
|
|
89
|
-
• **fields** - `Record<string, Field | undefined>`
|
|
90
|
-
- Complete field definitions with types and metadata
|
|
91
|
-
- Useful for dynamic form generation or validation
|
|
92
|
-
- Each field contains type information, validation rules, and capabilities
|
|
93
|
-
- Example: `schema.fields.name.type === 'SHORT_TEXT'`
|
|
94
|
-
|
|
95
|
-
• **actions** - Server operation functions
|
|
96
|
-
- Pre-configured API calls for CRUD operations
|
|
97
|
-
- Use with optimistic actions for best UX
|
|
98
|
-
- All actions return Promises and handle server communication
|
|
99
|
-
- Example: `await schema.actions.update(item)`
|
|
100
|
-
|
|
101
|
-
### Available Schema Actions
|
|
102
|
-
|
|
103
|
-
#### Individual Entity Operations
|
|
104
|
-
- **schema.actions.get(entityId)** - Retrieve a single entity by ID
|
|
105
|
-
- **schema.actions.create(newEntity)** - Create a new entity
|
|
106
|
-
- **schema.actions.update(updatedEntity)** - Update an existing entity
|
|
107
|
-
- **schema.actions.delete(entityId)** - Delete a single entity by ID
|
|
108
|
-
|
|
109
|
-
#### Bulk Operations
|
|
110
|
-
- **schema.actions.bulkDelete(entityIds)** - Delete multiple entities by their IDs
|
|
111
|
-
|
|
112
|
-
#### Query Operations
|
|
113
|
-
- **schema.actions.find(query, options)** - Search and filter entities
|
|
114
|
-
- `query`: ComputedQuery object with filtering and sorting criteria
|
|
115
|
-
- `options.searchableFieldIds`: Array of field IDs that support text search
|
|
116
|
-
- `options.filterFieldMapping`: Maps filter IDs to actual field IDs for complex filtering
|
|
117
|
-
- Returns: `{ items: any[], total: number }`
|
|
118
|
-
|
|
119
|
-
### Field Type Information
|
|
120
|
-
|
|
121
|
-
Each field in the `fields` record contains:
|
|
122
|
-
|
|
123
|
-
- **id**: Unique field identifier
|
|
124
|
-
- **displayName**: Human-readable field name
|
|
125
|
-
- **type**: One of the supported `PatternsFieldType` values
|
|
126
|
-
- **validation**: Optional validation rules including:
|
|
127
|
-
- `numberRange`: Min/max values for numeric fields
|
|
128
|
-
- `stringLengthRange`: Min/max length for text fields
|
|
129
|
-
- `required`: Whether the field is mandatory
|
|
130
|
-
- **capabilities**: Field behavior configuration:
|
|
131
|
-
- `supportedQueryOperators`: Array of operators this field supports for filtering
|
|
132
|
-
- `sortable`: Whether this field can be used for sorting
|
|
133
|
-
|
|
134
|
-
### Reference Fields
|
|
135
|
-
|
|
136
|
-
Reference fields have additional metadata:
|
|
137
|
-
- **referenceMetadata.referencedCollectionId**: ID of the collection being referenced
|
|
138
|
-
- Used for establishing relationships between different collections
|
|
139
|
-
|
|
140
|
-
### Schema Validation Checklist
|
|
141
|
-
|
|
142
|
-
Before using schema in operations:
|
|
143
|
-
|
|
144
|
-
✓ Check if schema exists: `if (!schema) return;`
|
|
145
|
-
✓ Verify required fields exist on items
|
|
146
|
-
✓ Use `schema.idField` for ID operations
|
|
147
|
-
✓ Use `schema.displayField` for UI display
|
|
148
|
-
✓ Use `schema.actions` for server operations
|
|
149
|
-
✓ Check field capabilities before applying filters or sorting
|
|
150
|
-
|
|
151
|
-
### Common Usage Patterns
|
|
152
|
-
|
|
153
|
-
- **ActionCell**: Use `schema.actions.update()` or `schema.actions.delete()` for single item operations
|
|
154
|
-
- **BulkActions**: Use `schema.actions.bulkDelete()` for multiple items
|
|
155
|
-
- **Dynamic UI**: Use `schema.fields` to build forms or validate data
|
|
156
|
-
- **Error Messages**: Use `schema.displayField` to create meaningful user feedback
|
|
157
|
-
- **Field Validation**: Use `schema.fields[fieldId].validation` for form validation rules
|
|
158
|
-
- **Query Building**: Use `schema.fields[fieldId].capabilities.supportedQueryOperators` to build dynamic filters
|
|
159
|
-
|
|
160
|
-
### Example Usage
|
|
161
|
-
|
|
162
|
-
```typescript
|
|
163
|
-
// Using schema for dynamic operations
|
|
164
|
-
const handleUpdateEntity = async (updatedItem: any) => {
|
|
165
|
-
const schema = sdk.getSchema(collectionId);
|
|
166
|
-
|
|
167
|
-
if (!schema) {
|
|
168
|
-
throw new Error('Schema not available');
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// Validate required fields
|
|
172
|
-
const nameField = schema.fields.name;
|
|
173
|
-
if (nameField?.validation?.required && !updatedItem.name) {
|
|
174
|
-
throw new Error(`${nameField.displayName} is required`);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
// Perform update
|
|
178
|
-
await schema.actions.update(updatedItem);
|
|
179
|
-
|
|
180
|
-
// Show success message using display field
|
|
181
|
-
const displayValue = updatedItem[schema.displayField];
|
|
182
|
-
console.log(`Updated ${displayValue} successfully`);
|
|
183
|
-
};
|
|
184
|
-
```
|