@wix/auto-patterns 1.2.0 → 1.4.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.
Files changed (86) hide show
  1. package/dist/cjs/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js +31 -7
  2. package/dist/cjs/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js.map +1 -1
  3. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +86 -16
  4. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  5. package/dist/cjs/config/ConfigFactory.js +1 -1
  6. package/dist/cjs/config/ConfigFactory.js.map +1 -1
  7. package/dist/cjs/config/cms/CmsCompositeConfig.js +76 -0
  8. package/dist/cjs/config/cms/CmsCompositeConfig.js.map +1 -0
  9. package/dist/cjs/config/cms/filterUtils.js +82 -0
  10. package/dist/cjs/config/cms/filterUtils.js.map +1 -0
  11. package/dist/cjs/config/cms/sortUtils.js +32 -0
  12. package/dist/cjs/config/cms/sortUtils.js.map +1 -0
  13. package/dist/cjs/hooks/useColumns.js +98 -19
  14. package/dist/cjs/hooks/useColumns.js.map +1 -1
  15. package/dist/cjs/hooks/useEmptyStates.js +55 -0
  16. package/dist/cjs/hooks/useEmptyStates.js.map +1 -0
  17. package/dist/cjs/hooks/useFeatures.js +10 -1
  18. package/dist/cjs/hooks/useFeatures.js.map +1 -1
  19. package/dist/cjs/hooks/useFetchData.js +23 -0
  20. package/dist/cjs/hooks/useFetchData.js.map +1 -0
  21. package/dist/cjs/hooks/useFilters.js +103 -78
  22. package/dist/cjs/hooks/useFilters.js.map +1 -1
  23. package/dist/cjs/hooks/useTableProps.js +13 -1
  24. package/dist/cjs/hooks/useTableProps.js.map +1 -1
  25. package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
  26. package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
  27. package/dist/cjs/types.js +1 -9
  28. package/dist/cjs/types.js.map +1 -1
  29. package/dist/esm/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js +10 -3
  30. package/dist/esm/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js.map +1 -1
  31. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +58 -13
  32. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  33. package/dist/esm/config/ConfigFactory.js +1 -1
  34. package/dist/esm/config/ConfigFactory.js.map +1 -1
  35. package/dist/esm/config/cms/CmsCompositeConfig.js +70 -0
  36. package/dist/esm/config/cms/CmsCompositeConfig.js.map +1 -0
  37. package/dist/esm/config/cms/filterUtils.js +79 -0
  38. package/dist/esm/config/cms/filterUtils.js.map +1 -0
  39. package/dist/esm/config/cms/sortUtils.js +29 -0
  40. package/dist/esm/config/cms/sortUtils.js.map +1 -0
  41. package/dist/esm/hooks/useColumns.js +98 -19
  42. package/dist/esm/hooks/useColumns.js.map +1 -1
  43. package/dist/esm/hooks/useEmptyStates.js +41 -0
  44. package/dist/esm/hooks/useEmptyStates.js.map +1 -0
  45. package/dist/esm/hooks/useFeatures.js +4 -2
  46. package/dist/esm/hooks/useFeatures.js.map +1 -1
  47. package/dist/esm/hooks/useFetchData.js +18 -0
  48. package/dist/esm/hooks/useFetchData.js.map +1 -0
  49. package/dist/esm/hooks/useFilters.js +101 -76
  50. package/dist/esm/hooks/useFilters.js.map +1 -1
  51. package/dist/esm/hooks/useTableProps.js +13 -1
  52. package/dist/esm/hooks/useTableProps.js.map +1 -1
  53. package/dist/esm/providers/PatternsWizardOverridesContext.js +1 -1
  54. package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
  55. package/dist/esm/types.js +0 -8
  56. package/dist/esm/types.js.map +1 -1
  57. package/dist/types/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.d.ts.map +1 -1
  58. package/dist/types/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.d.ts.map +1 -1
  59. package/dist/types/config/cms/CmsCompositeConfig.d.ts +7 -0
  60. package/dist/types/config/cms/CmsCompositeConfig.d.ts.map +1 -0
  61. package/dist/types/config/cms/filterUtils.d.ts +16 -0
  62. package/dist/types/config/cms/filterUtils.d.ts.map +1 -0
  63. package/dist/types/config/cms/sortUtils.d.ts +9 -0
  64. package/dist/types/config/cms/sortUtils.d.ts.map +1 -0
  65. package/dist/types/hooks/useColumns.d.ts.map +1 -1
  66. package/dist/types/hooks/useEmptyStates.d.ts +5 -0
  67. package/dist/types/hooks/useEmptyStates.d.ts.map +1 -0
  68. package/dist/types/hooks/useFeatures.d.ts +1 -0
  69. package/dist/types/hooks/useFeatures.d.ts.map +1 -1
  70. package/dist/types/hooks/useFetchData.d.ts +4 -0
  71. package/dist/types/hooks/useFetchData.d.ts.map +1 -0
  72. package/dist/types/hooks/useFilters.d.ts +2 -1
  73. package/dist/types/hooks/useFilters.d.ts.map +1 -1
  74. package/dist/types/hooks/useTableProps.d.ts +9 -4
  75. package/dist/types/hooks/useTableProps.d.ts.map +1 -1
  76. package/dist/types/providers/PatternsWizardOverridesContext.d.ts +7 -2
  77. package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
  78. package/dist/types/types.d.ts +88 -28
  79. package/dist/types/types.d.ts.map +1 -1
  80. package/package.json +14 -14
  81. package/dist/cjs/config/CmsCompositeConfig.js +0 -85
  82. package/dist/cjs/config/CmsCompositeConfig.js.map +0 -1
  83. package/dist/esm/config/CmsCompositeConfig.js +0 -80
  84. package/dist/esm/config/CmsCompositeConfig.js.map +0 -1
  85. package/dist/types/config/CmsCompositeConfig.d.ts +0 -6
  86. package/dist/types/config/CmsCompositeConfig.d.ts.map +0 -1
package/dist/esm/types.js CHANGED
@@ -4,14 +4,6 @@ export let CollectionTypeEnum = /*#__PURE__*/function (CollectionTypeEnum) {
4
4
  CollectionTypeEnum["TABLE_GRID_SWITCH"] = "TableGridSwitch";
5
5
  return CollectionTypeEnum;
6
6
  }({});
7
- export let SupportedValueTypeEnum = /*#__PURE__*/function (SupportedValueTypeEnum) {
8
- SupportedValueTypeEnum["STRING"] = "STRING";
9
- SupportedValueTypeEnum["NUMBER"] = "NUMBER";
10
- SupportedValueTypeEnum["BOOLEAN"] = "BOOLEAN";
11
- SupportedValueTypeEnum["DATE"] = "DATE";
12
- SupportedValueTypeEnum["ENUM"] = "ENUM";
13
- return SupportedValueTypeEnum;
14
- }({});
15
7
  export let ComponentTypeEnum = /*#__PURE__*/function (ComponentTypeEnum) {
16
8
  ComponentTypeEnum["SINGLE"] = "single";
17
9
  ComponentTypeEnum["MULTI_SELECT"] = "multi-select";
@@ -1 +1 @@
1
- {"version":3,"names":["CollectionTypeEnum","SupportedValueTypeEnum","ComponentTypeEnum"],"sources":["../../src/types.ts"],"sourcesContent":["export enum CollectionTypeEnum {\n TABLE = 'Table',\n GRID = 'Grid',\n TABLE_GRID_SWITCH = 'TableGridSwitch',\n}\n\nexport enum SupportedValueTypeEnum {\n STRING = 'STRING',\n NUMBER = 'NUMBER',\n BOOLEAN = 'BOOLEAN',\n DATE = 'DATE',\n ENUM = 'ENUM',\n}\n\nexport interface Column {\n id: string;\n name: string;\n type: SupportedValueTypeEnum;\n width?: string;\n}\n\nexport interface FilterValue {\n id: string;\n value: string;\n system?: boolean;\n deletable?: boolean;\n}\n\nexport enum ComponentTypeEnum {\n SINGLE = 'single',\n MULTI_SELECT = 'multi-select',\n RADIO_GROUP = 'radio-group',\n NUMBER = 'number',\n DATE_RANGE = 'date-range',\n}\n\nexport interface FieldDefinition {\n id: string;\n name: string;\n description?: string;\n path: string;\n type?: SupportedValueTypeEnum;\n schemaName?: string;\n enums?: string[];\n}\n\nexport interface Filter {\n id: string;\n displayName: string;\n componentType: ComponentTypeEnum;\n definition: FieldDefinition;\n numberConfig?: {\n min?: number;\n max?: number;\n decimal?: boolean;\n };\n static?: {\n values: FilterValue[];\n };\n}\n\nexport interface CollectionConfig {\n type: CollectionTypeEnum;\n grid?: GridCollectionConfig;\n}\n\nexport interface GridCollectionConfig {\n renderItem: {\n title: string;\n subtitle?: string;\n primaryActionProps?: {\n label: string;\n // onClick: () => void;\n };\n secondaryActionProps?: {\n label: string;\n // onClick: () => void;\n };\n };\n imagePlacement?: 'top' | 'side';\n renderAddItem?: boolean;\n sections?: {\n title: string;\n action?: {\n label: string;\n // onClick: () => void;\n };\n };\n dragAndDrop?: boolean;\n}\n\ninterface Action {\n id: string;\n text: string;\n icon: string;\n}\nexport interface PageConfig {\n pageTitle: { text: string; hideTotal?: boolean };\n pageSubtitle?: {\n text: string;\n learnMore?: {\n url: string;\n label?: string;\n };\n };\n viewType: string;\n collectionId: string;\n entityTypeSource: EntityTypeSource;\n entityId: string;\n entityName: string;\n columns: Column[];\n collectionConfig: CollectionConfig;\n entitySchemaName: string;\n filters?: Filter[];\n actions?: Action[];\n views?: {\n enabled: boolean;\n };\n customFields?: {\n enabled: boolean;\n };\n optimisticActions?: {\n enabled: boolean;\n };\n}\n\nexport interface ProjectDTO {\n key: string;\n id: string;\n userId: string;\n createdAt: Date;\n updatedAt: Date;\n config: PageConfig;\n}\n\nexport interface PatternsWizardBaseProps {\n configuration: PageConfig;\n}\n\nexport type EntityProps = { [key: string]: any };\n\nexport interface IMenuItem<T extends EntityProps = {}> {\n item: T;\n}\nexport interface IColumnValue<T> {\n value: T;\n}\n\nexport type EntityTypeSource = 'cms';\n\nexport type QueryOperator =\n | 'CONTAINS'\n | 'ENDS_WITH'\n | 'EQ'\n | 'EXISTS'\n | 'GT'\n | 'GTE'\n | 'HAS_ALL'\n | 'HAS_SOME'\n | 'LT'\n | 'LTE'\n | 'NE'\n | 'STARTS_WITH'\n | 'URLIZED';\n\nexport interface Field {\n id: string;\n type: string;\n capabilities: {\n supportedQueryOperators: QueryOperator[];\n sortable: boolean;\n };\n}\n\n// TODO: fill this out\nexport interface SchemaConfig {\n fields: Field[];\n}\n"],"mappings":"AAAA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAM9B,WAAYC,sBAAsB,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAsBlC,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;;AAkJ7B","ignoreList":[]}
1
+ {"version":3,"names":["CollectionTypeEnum","ComponentTypeEnum"],"sources":["../../src/types.ts"],"sourcesContent":["import {\n CollectionToolbarFiltersProps,\n PrimaryActions,\n SecondaryActions,\n} from '@wix/patterns';\nimport { DateRangeFilterMode, DateRangeOptions } from '@wix/patterns/core';\n\nexport enum CollectionTypeEnum {\n TABLE = 'Table',\n GRID = 'Grid',\n TABLE_GRID_SWITCH = 'TableGridSwitch',\n}\n\nexport type PatternsColumnType =\n | 'STRING'\n | 'NUMBER'\n | 'BOOLEAN'\n | 'DATE'\n | 'DATETIME'\n | 'ARRAY'\n | 'ENUM';\n\nexport interface Column {\n id: string;\n name: string;\n width?: string;\n sortable?: boolean;\n defaultSortOrder?: 'asc' | 'desc';\n sortMode?: 'asc' | 'desc';\n defaultHidden?: boolean;\n hiddenFromCustomColumnsSelection?: boolean;\n hideable?: boolean;\n reorderDisabled?: boolean;\n}\n\nexport interface EmptyState {\n title?: string;\n subtitle?: string;\n image?: {\n id: string;\n };\n addNewCta?: {\n id?: string;\n text?: string;\n };\n customCta?: {\n id?: string;\n };\n}\n\nexport interface FetchData {\n id: string;\n}\n\nexport interface FilterValue {\n id: string;\n value: string;\n system?: boolean;\n deletable?: boolean;\n}\n\nexport enum ComponentTypeEnum {\n SINGLE = 'single',\n MULTI_SELECT = 'multi-select',\n RADIO_GROUP = 'radio-group',\n NUMBER = 'number',\n DATE_RANGE = 'date-range',\n}\n\nexport interface FiltersConfig {\n items: Filter[];\n maxToolbarFilters?: CollectionToolbarFiltersProps['inline'];\n panelTitle?: string;\n}\n\nexport interface Filter {\n fieldId: string;\n displayName?: string;\n accordionItemProps?: {\n initiallyOpen?: boolean;\n sectionTitle?: string;\n };\n toolbarTagProps?: {\n label: string;\n };\n componentType?: ComponentTypeEnum;\n numberConfig?: {\n min?: number;\n max?: number;\n decimal?: boolean;\n };\n dateConfig?: {\n mode?: DateRangeFilterMode;\n dateRangeOptions?: DateRangeOptions;\n filterByTime?: boolean;\n };\n static?: {\n values: FilterValue[];\n };\n}\n\nexport interface CollectionConfig {\n type: CollectionTypeEnum;\n grid?: GridCollectionConfig;\n}\n\nexport interface GridCollectionConfig {\n renderItem: {\n title: string;\n subtitle?: string;\n primaryActionProps?: {\n label: string;\n // onClick: () => void;\n };\n secondaryActionProps?: {\n label: string;\n // onClick: () => void;\n };\n };\n imagePlacement?: 'top' | 'side';\n renderAddItem?: boolean;\n sections?: {\n title: string;\n action?: {\n label: string;\n // onClick: () => void;\n };\n };\n dragAndDrop?: boolean;\n}\n\ninterface Action {\n id: string;\n text: string;\n icon: string;\n}\n\ninterface ToolbarTitle {\n title: string;\n subtitle?: {\n text: string;\n info?: {\n content: {\n text: string;\n link?: {\n url: string;\n label: string;\n };\n };\n };\n learnMore?: {\n url: string;\n label?: string;\n };\n };\n showTotal?: boolean;\n itemsLimit?: number;\n}\n\nexport interface PageConfig {\n pageTitle: { text: string; hideTotal?: boolean };\n pageSubtitle?: {\n text: string;\n learnMore?: {\n url: string;\n label?: string;\n };\n };\n search?: { shown?: boolean };\n toolbarTitle?: ToolbarTitle;\n limit?: number;\n persistQueryToUrl?: boolean;\n disableAutoSelectAllCount?: boolean;\n selectionConsistencyMode?: 'preserve' | 'clear';\n collectionId: string;\n entityTypeSource: EntityTypeSource;\n columns: Column[];\n filters?: FiltersConfig;\n actions?: Action[];\n emptyState?: EmptyState;\n fetchData?: FetchData;\n views?: {\n enabled: boolean;\n };\n customFields?: {\n enabled: boolean;\n };\n customColumns?: {\n enabled: boolean;\n };\n optimisticActions?: {\n enabled: boolean;\n };\n}\n\nexport interface ProjectDTO {\n key: string;\n id: string;\n userId: string;\n createdAt: Date;\n updatedAt: Date;\n config: PageConfig;\n}\n\nexport interface PatternsWizardBaseProps {\n configuration: PageConfig;\n}\n\nexport type EntityProps = { [key: string]: any };\n\nexport interface IMenuItem<T extends EntityProps = {}> {\n item: T;\n}\nexport interface IColumnValue<T> {\n value: T;\n}\n\nexport type EntityTypeSource = 'cms';\n\nexport type QueryOperator =\n | 'CONTAINS'\n | 'ENDS_WITH'\n | 'EQ'\n | 'EXISTS'\n | 'GT'\n | 'GTE'\n | 'HAS_ALL'\n | 'HAS_SOME'\n | 'LT'\n | 'LTE'\n | 'NE'\n | 'STARTS_WITH'\n | 'URLIZED';\n\nexport interface Field {\n id: string;\n displayName: string;\n type: PatternsColumnType;\n capabilities: {\n supportedQueryOperators: QueryOperator[];\n sortable: boolean;\n };\n}\n\n// TODO: fill this out\nexport interface SchemaConfig {\n fields: Record<string, Field | undefined>;\n displayField: string;\n}\n\nexport type PagePrimaryActionProps = React.ComponentProps<\n typeof PrimaryActions\n>;\n\nexport type PageSecondaryActionProps = React.ComponentProps<\n typeof SecondaryActions\n>;\n"],"mappings":"AAOA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAsD9B,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;;AAuL7B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AutoPatternsCollectionPage.d.ts","sourceRoot":"","sources":["../../../../src/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAC/C,+BAA+B,CAehC,CAAC"}
1
+ {"version":3,"file":"AutoPatternsCollectionPage.d.ts","sourceRoot":"","sources":["../../../../src/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAOxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAC/C,+BAA+B,CAoChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AutoPatternsCollectionPageContent.d.ts","sourceRoot":"","sources":["../../../../src/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,eAAO,MAAM,iCAAiC,EAAE,KAAK,CAAC,EAkErD,CAAC"}
1
+ {"version":3,"file":"AutoPatternsCollectionPageContent.d.ts","sourceRoot":"","sources":["../../../../src/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,eAAO,MAAM,iCAAiC,EAAE,KAAK,CAAC,EAuHrD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { PageConfig, SchemaConfig, PatternsColumnType } from '../../types';
2
+ import { collections } from '@wix/data';
3
+ import { CompositeConfig } from '../CompositeConfig';
4
+ export declare const CmsColumnTypeToPatternsColumnType: Partial<Record<collections.Type, PatternsColumnType>>;
5
+ export declare function fetchCmsSchema(config: PageConfig): Promise<SchemaConfig>;
6
+ export declare function getCmsCompositeConfig(config: PageConfig): Promise<CompositeConfig>;
7
+ //# sourceMappingURL=CmsCompositeConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CmsCompositeConfig.d.ts","sourceRoot":"","sources":["../../../../src/config/cms/CmsCompositeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,YAAY,EACZ,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAS,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrD,eAAO,MAAM,iCAAiC,EAAE,OAAO,CACrD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAQ7C,CAAC;AAEF,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,eAAe,CAAC,CAmC1B"}
@@ -0,0 +1,16 @@
1
+ import { ComputedQuery } from '@wix/patterns';
2
+ import { items } from '@wix/data';
3
+ import { Column, SchemaConfig } from '../../types';
4
+ export type CmsOperatorMethod = 'ge' | 'le';
5
+ export declare function addFiltersToDataQuery({ dataQuery, query, schema, }: {
6
+ dataQuery: items.WixDataQuery;
7
+ query: ComputedQuery<any>;
8
+ schema: SchemaConfig;
9
+ }): items.WixDataQuery;
10
+ export declare function addSearchToDataQuery({ dataQuery, query, schema, columns, }: {
11
+ dataQuery: items.WixDataQuery;
12
+ query: ComputedQuery<any>;
13
+ schema: SchemaConfig;
14
+ columns: Column[];
15
+ }): items.WixDataQuery;
16
+ //# sourceMappingURL=filterUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterUtils.d.ts","sourceRoot":"","sources":["../../../../src/config/cms/filterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AAqC5C,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,KAAK,EACL,MAAM,GACP,EAAE;IACD,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,YAAY,CAAC;CACtB,sBA2BA;AAED,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,KAAK,EACL,MAAM,EACN,OAAO,GACR,EAAE;IACD,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,sBAwBA"}
@@ -0,0 +1,9 @@
1
+ import { items } from '@wix/data';
2
+ import { SchemaConfig } from '../../types';
3
+ import { ComputedQuery } from '@wix/patterns';
4
+ export declare function addSortToDataQuery({ dataQuery, query, schema, }: {
5
+ dataQuery: items.WixDataQuery;
6
+ query: ComputedQuery<any>;
7
+ schema: SchemaConfig;
8
+ }): items.WixDataQuery;
9
+ //# sourceMappingURL=sortUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortUtils.d.ts","sourceRoot":"","sources":["../../../../src/config/cms/sortUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,KAAK,EACL,MAAM,GACP,EAAE;IACD,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,YAAY,CAAC;CACtB,sBAkBA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useColumns.d.ts","sourceRoot":"","sources":["../../../src/hooks/useColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,eAAO,MAAM,UAAU,QAAO,YAAY,GAAG,CAAC,EAmB7C,CAAC"}
1
+ {"version":3,"file":"useColumns.d.ts","sourceRoot":"","sources":["../../../src/hooks/useColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,eAAO,MAAM,UAAU,QAAO,YAAY,GAAG,CAAC,EAwC7C,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const useEmptyStates: () => {
3
+ emptyState: React.JSX.Element;
4
+ };
5
+ //# sourceMappingURL=useEmptyStates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEmptyStates.d.ts","sourceRoot":"","sources":["../../../src/hooks/useEmptyStates.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,eAAO,MAAM,cAAc;;CAqD1B,CAAC"}
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  export declare const useFeatures: () => {
3
3
  views: React.JSX.Element | undefined;
4
4
  dataExtension: React.JSX.Element | undefined;
5
+ customColumns: React.JSX.Element | undefined;
5
6
  filters: import("./useFilters").ReturnValue;
6
7
  };
7
8
  //# sourceMappingURL=useFeatures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFeatures.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFeatures.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,eAAO,MAAM,WAAW;;;;CAUvB,CAAC"}
1
+ {"version":3,"file":"useFeatures.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFeatures.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,eAAO,MAAM,WAAW;;;;;CAWvB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const useFetchData: () => {
2
+ fetchData: (query: import("@wix/bex-core").ComputedQuery<any>) => Promise<import("@wix/bex-core").DataResultRaw<any>>;
3
+ };
4
+ //# sourceMappingURL=useFetchData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFetchData.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;CAexB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { PageConfig } from '../types';
3
- import { Filter } from '@wix/patterns';
3
+ import { CollectionToolbarFiltersProps, Filter } from '@wix/patterns';
4
4
  export interface FilterOptions {
5
5
  key: string;
6
6
  filter: Filter<any>;
@@ -16,6 +16,7 @@ export interface ReturnValue {
16
16
  [key: string]: Filter<any>;
17
17
  };
18
18
  components: React.JSX.Element[];
19
+ collectionToolbarFiltersProps: Pick<CollectionToolbarFiltersProps, 'inline' | 'panelTitle' | 'useNewFilters'>;
19
20
  }
20
21
  export declare const useFilters: (config: PageConfig) => ReturnValue;
21
22
  //# sourceMappingURL=useFilters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFilters.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFilters.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAGL,MAAM,EAQP,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC;IAC7B,cAAc,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC;IACxC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,WAAY,UAAU,gBA0H5C,CAAC"}
1
+ {"version":3,"file":"useFilters.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFilters.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,6BAA6B,EAG7B,MAAM,EAIP,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC;IAC7B,cAAc,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC;IACxC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAChC,6BAA6B,EAAE,IAAI,CACjC,6BAA6B,EAC7B,QAAQ,GAAG,YAAY,GAAG,eAAe,CAC1C,CAAC;CACH;AAED,eAAO,MAAM,UAAU,WAAY,UAAU,gBA6J5C,CAAC"}
@@ -1,8 +1,13 @@
1
1
  /// <reference types="react" />
2
+ import { ReturnValue } from './useFilters';
3
+ import { CollectionConfig, TableColumn } from '@wix/patterns';
2
4
  export declare const useTableProps: () => {
3
- columns: import("@wix/patterns").TableColumn<any>[];
4
- views: import("react").JSX.Element | undefined;
5
- dataExtension: import("react").JSX.Element | undefined;
6
- filters: import("./useFilters").ReturnValue;
5
+ columns: TableColumn<any>[];
6
+ views?: JSX.Element | undefined;
7
+ dataExtension?: JSX.Element | undefined;
8
+ filters: ReturnValue;
9
+ emptyState: JSX.Element;
10
+ customColumns?: JSX.Element | undefined;
11
+ fetchData: CollectionConfig<any, any>['fetchData'];
7
12
  };
8
13
  //# sourceMappingURL=useTableProps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTableProps.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTableProps.ts"],"names":[],"mappings":";AAGA,eAAO,MAAM,aAAa;;;;;CAUzB,CAAC"}
1
+ {"version":3,"file":"useTableProps.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTableProps.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE9D,eAAO,MAAM,aAAa;aACf,YAAY,GAAG,CAAC,EAAE;;;aAGlB,WAAW;gBACR,WAAW;;eAEZ,iBAAiB,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC;CAgBnD,CAAC"}
@@ -1,9 +1,14 @@
1
- import React, { ReactNode } from 'react';
2
- import { IColumnValue, IMenuItem } from '../types';
1
+ import React, { ReactNode } from "react";
2
+ import { IColumnValue, IMenuItem, PagePrimaryActionProps, PageSecondaryActionProps } from "../types";
3
+ import { CollectionConfig } from '@wix/patterns';
3
4
  export interface PatternsWizardOverridesContextProps {
4
5
  actions?: Record<string, (props: IMenuItem<any>) => void>;
5
6
  columns?: Record<string, (props: IColumnValue<any>) => void>;
6
7
  HeaderAddon?: React.FC;
8
+ emptyState?: Record<string, () => void>;
9
+ usePagePrimaryAction?: () => PagePrimaryActionProps;
10
+ usePageSecondaryAction?: () => PageSecondaryActionProps;
11
+ fetchData?: Record<string, CollectionConfig<any, any>['fetchData']>;
7
12
  }
8
13
  export declare const PatternsWizardOverridesProvider: React.FC<{
9
14
  children: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"PatternsWizardOverridesContext.d.ts","sourceRoot":"","sources":["../../../src/providers/PatternsWizardOverridesContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,mCAAmC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7D,WAAW,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;CACxB;AAMD,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CAAC;IACrD,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,mCAAmC,CAAC;CAC5C,CAMA,CAAC;AAEF,eAAO,MAAM,iCAAiC,QAC1C,mCAAmC,GACnC,SAEH,CAAC"}
1
+ {"version":3,"file":"PatternsWizardOverridesContext.d.ts","sourceRoot":"","sources":["../../../src/providers/PatternsWizardOverridesContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,SAAS,EACT,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,mCAAmC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7D,WAAW,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;IACxC,oBAAoB,CAAC,EAAE,MAAM,sBAAsB,CAAC;IACpD,sBAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;CACrE;AAMD,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CAAC;IACrD,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,mCAAmC,CAAC;CAC5C,CAMA,CAAC;AAEF,eAAO,MAAM,iCAAiC,QAC1C,mCAAmC,GACnC,SAEH,CAAC"}
@@ -1,20 +1,40 @@
1
+ /// <reference types="react" />
2
+ import { CollectionToolbarFiltersProps, PrimaryActions, SecondaryActions } from '@wix/patterns';
3
+ import { DateRangeFilterMode, DateRangeOptions } from '@wix/patterns/core';
1
4
  export declare enum CollectionTypeEnum {
2
5
  TABLE = "Table",
3
6
  GRID = "Grid",
4
7
  TABLE_GRID_SWITCH = "TableGridSwitch"
5
8
  }
6
- export declare enum SupportedValueTypeEnum {
7
- STRING = "STRING",
8
- NUMBER = "NUMBER",
9
- BOOLEAN = "BOOLEAN",
10
- DATE = "DATE",
11
- ENUM = "ENUM"
12
- }
9
+ export type PatternsColumnType = 'STRING' | 'NUMBER' | 'BOOLEAN' | 'DATE' | 'DATETIME' | 'ARRAY' | 'ENUM';
13
10
  export interface Column {
14
11
  id: string;
15
12
  name: string;
16
- type: SupportedValueTypeEnum;
17
13
  width?: string;
14
+ sortable?: boolean;
15
+ defaultSortOrder?: 'asc' | 'desc';
16
+ sortMode?: 'asc' | 'desc';
17
+ defaultHidden?: boolean;
18
+ hiddenFromCustomColumnsSelection?: boolean;
19
+ hideable?: boolean;
20
+ reorderDisabled?: boolean;
21
+ }
22
+ export interface EmptyState {
23
+ title?: string;
24
+ subtitle?: string;
25
+ image?: {
26
+ id: string;
27
+ };
28
+ addNewCta?: {
29
+ id?: string;
30
+ text?: string;
31
+ };
32
+ customCta?: {
33
+ id?: string;
34
+ };
35
+ }
36
+ export interface FetchData {
37
+ id: string;
18
38
  }
19
39
  export interface FilterValue {
20
40
  id: string;
@@ -29,25 +49,32 @@ export declare enum ComponentTypeEnum {
29
49
  NUMBER = "number",
30
50
  DATE_RANGE = "date-range"
31
51
  }
32
- export interface FieldDefinition {
33
- id: string;
34
- name: string;
35
- description?: string;
36
- path: string;
37
- type?: SupportedValueTypeEnum;
38
- schemaName?: string;
39
- enums?: string[];
52
+ export interface FiltersConfig {
53
+ items: Filter[];
54
+ maxToolbarFilters?: CollectionToolbarFiltersProps['inline'];
55
+ panelTitle?: string;
40
56
  }
41
57
  export interface Filter {
42
- id: string;
43
- displayName: string;
44
- componentType: ComponentTypeEnum;
45
- definition: FieldDefinition;
58
+ fieldId: string;
59
+ displayName?: string;
60
+ accordionItemProps?: {
61
+ initiallyOpen?: boolean;
62
+ sectionTitle?: string;
63
+ };
64
+ toolbarTagProps?: {
65
+ label: string;
66
+ };
67
+ componentType?: ComponentTypeEnum;
46
68
  numberConfig?: {
47
69
  min?: number;
48
70
  max?: number;
49
71
  decimal?: boolean;
50
72
  };
73
+ dateConfig?: {
74
+ mode?: DateRangeFilterMode;
75
+ dateRangeOptions?: DateRangeOptions;
76
+ filterByTime?: boolean;
77
+ };
51
78
  static?: {
52
79
  values: FilterValue[];
53
80
  };
@@ -82,6 +109,27 @@ interface Action {
82
109
  text: string;
83
110
  icon: string;
84
111
  }
112
+ interface ToolbarTitle {
113
+ title: string;
114
+ subtitle?: {
115
+ text: string;
116
+ info?: {
117
+ content: {
118
+ text: string;
119
+ link?: {
120
+ url: string;
121
+ label: string;
122
+ };
123
+ };
124
+ };
125
+ learnMore?: {
126
+ url: string;
127
+ label?: string;
128
+ };
129
+ };
130
+ showTotal?: boolean;
131
+ itemsLimit?: number;
132
+ }
85
133
  export interface PageConfig {
86
134
  pageTitle: {
87
135
  text: string;
@@ -94,22 +142,30 @@ export interface PageConfig {
94
142
  label?: string;
95
143
  };
96
144
  };
97
- viewType: string;
145
+ search?: {
146
+ shown?: boolean;
147
+ };
148
+ toolbarTitle?: ToolbarTitle;
149
+ limit?: number;
150
+ persistQueryToUrl?: boolean;
151
+ disableAutoSelectAllCount?: boolean;
152
+ selectionConsistencyMode?: 'preserve' | 'clear';
98
153
  collectionId: string;
99
154
  entityTypeSource: EntityTypeSource;
100
- entityId: string;
101
- entityName: string;
102
155
  columns: Column[];
103
- collectionConfig: CollectionConfig;
104
- entitySchemaName: string;
105
- filters?: Filter[];
156
+ filters?: FiltersConfig;
106
157
  actions?: Action[];
158
+ emptyState?: EmptyState;
159
+ fetchData?: FetchData;
107
160
  views?: {
108
161
  enabled: boolean;
109
162
  };
110
163
  customFields?: {
111
164
  enabled: boolean;
112
165
  };
166
+ customColumns?: {
167
+ enabled: boolean;
168
+ };
113
169
  optimisticActions?: {
114
170
  enabled: boolean;
115
171
  };
@@ -138,14 +194,18 @@ export type EntityTypeSource = 'cms';
138
194
  export type QueryOperator = 'CONTAINS' | 'ENDS_WITH' | 'EQ' | 'EXISTS' | 'GT' | 'GTE' | 'HAS_ALL' | 'HAS_SOME' | 'LT' | 'LTE' | 'NE' | 'STARTS_WITH' | 'URLIZED';
139
195
  export interface Field {
140
196
  id: string;
141
- type: string;
197
+ displayName: string;
198
+ type: PatternsColumnType;
142
199
  capabilities: {
143
200
  supportedQueryOperators: QueryOperator[];
144
201
  sortable: boolean;
145
202
  };
146
203
  }
147
204
  export interface SchemaConfig {
148
- fields: Field[];
205
+ fields: Record<string, Field | undefined>;
206
+ displayField: string;
149
207
  }
208
+ export type PagePrimaryActionProps = React.ComponentProps<typeof PrimaryActions>;
209
+ export type PageSecondaryActionProps = React.ComponentProps<typeof SecondaryActions>;
150
210
  export {};
151
211
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/auto-patterns",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "license": "UNLICENSED",
5
5
  "author": {
6
6
  "name": "Matvey Oklander",
@@ -30,8 +30,8 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@babel/runtime": "^7.0.0",
33
- "@wix/data": "^1.0.215",
34
- "@wix/wix-ui-icons-common": "^3.68.0",
33
+ "@wix/data": "^1.0.222",
34
+ "@wix/wix-ui-icons-common": "^3.70.0",
35
35
  "lodash": "^4.17.21"
36
36
  },
37
37
  "publishConfig": {
@@ -45,18 +45,18 @@
45
45
  "@types/node": "^16.0.0",
46
46
  "@types/node-fetch": "^2.6.12",
47
47
  "@types/react": "^16.9.15",
48
- "@wix/crm": "^1.0.93",
49
- "@wix/design-system": "^1.176.2",
50
- "@wix/eslint-config-yoshi": "^6.0.0",
51
- "@wix/fe-essentials-standalone": "^1.1289.0",
52
- "@wix/jest-yoshi-preset": "^6.0.0",
53
- "@wix/patterns": "^1.192.0",
48
+ "@wix/crm": "^1.0.377",
49
+ "@wix/design-system": "^1.182.0",
50
+ "@wix/eslint-config-yoshi": "^6.135.0",
51
+ "@wix/fe-essentials-standalone": "^1.1305.0",
52
+ "@wix/jest-yoshi-preset": "^6.135.0",
53
+ "@wix/patterns": "^1.198.0",
54
54
  "@wix/sdk": "^1.15.16",
55
55
  "@wix/sdk-testkit": ">=0.1.2",
56
- "@wix/wix-data-items-common": "^1.0.125",
57
- "@wix/wix-data-items-sdk": "^1.0.301",
58
- "@wix/yoshi-flow-library": "^6.0.0",
59
- "@wix/yoshi-style-dependencies": "^6.0.0",
56
+ "@wix/wix-data-items-common": "^1.0.131",
57
+ "@wix/wix-data-items-sdk": "^1.0.309",
58
+ "@wix/yoshi-flow-library": "^6.135.0",
59
+ "@wix/yoshi-style-dependencies": "^6.135.0",
60
60
  "chance": "^1.0.0",
61
61
  "date-fns": "^2.30.0",
62
62
  "express": "^4.17.2",
@@ -115,5 +115,5 @@
115
115
  "wallaby": {
116
116
  "autoDetect": true
117
117
  },
118
- "falconPackageHash": "6089607257383208e6a720571b7a37df526cacd0f1387aed76413c4d"
118
+ "falconPackageHash": "1d6c80c09db6f95f4887191ff446da74d8641039faaffb5d03b23772"
119
119
  }
@@ -1,85 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.fetchCmsSchema = fetchCmsSchema;
5
- exports.getCmsCompositeConfig = getCmsCompositeConfig;
6
- var _data = require("@wix/data");
7
- var _constants = require("./constants");
8
- const FilterPropToMethod = {
9
- from: 'ge',
10
- to: 'le'
11
- };
12
- function isValidFilterProp(prop) {
13
- return Object.prototype.hasOwnProperty.call(FilterPropToMethod, prop);
14
- }
15
- function getOperatorForFilter(prop) {
16
- if (isValidFilterProp(prop)) {
17
- return FilterPropToMethod[prop];
18
- }
19
- return undefined;
20
- }
21
- const isSupportedOperator = (schema, filterProp, filterKey) => {
22
- const field = schema.fields.find(f => f.id === filterKey);
23
- if (!field) {
24
- return false;
25
- }
26
- if (!isValidFilterProp(filterProp)) {
27
- return false;
28
- }
29
- const operator = _constants.FilterPropToOperator[filterProp];
30
- const supportedOperators = field.capabilities.supportedQueryOperators;
31
- return supportedOperators.includes(operator);
32
- };
33
- async function fetchCmsSchema(config) {
34
- const schema = await _data.collections.getDataCollection(config.collectionId);
35
- return {
36
- fields: schema.fields.map(field => {
37
- var _field$capabilities, _field$capabilities2;
38
- return {
39
- id: field.key,
40
- type: field.type,
41
- capabilities: {
42
- supportedQueryOperators: ((_field$capabilities = field.capabilities) == null ? void 0 : _field$capabilities.queryOperators) || [],
43
- sortable: ((_field$capabilities2 = field.capabilities) == null ? void 0 : _field$capabilities2.sortable) || false
44
- }
45
- };
46
- })
47
- };
48
- }
49
- async function getCmsCompositeConfig(config) {
50
- const schema = await fetchCmsSchema(config);
51
- const collection = {
52
- fetchData: async query => {
53
- let dataQuery = _data.items.query(config.collectionId);
54
- const {
55
- filters
56
- } = query;
57
- for (const key in filters) {
58
- const filter = filters[key];
59
- if (filter && typeof filter === 'object') {
60
- const filterObj = filter;
61
- for (const prop in filterObj) {
62
- const operator = getOperatorForFilter(prop);
63
- if (operator && typeof dataQuery[operator] === 'function' && isSupportedOperator(schema, prop, key)) {
64
- const value = filterObj[prop];
65
- if (value) {
66
- dataQuery = dataQuery[operator](key, value);
67
- }
68
- }
69
- }
70
- }
71
- }
72
- const res = await dataQuery.find();
73
- return {
74
- items: res.items,
75
- total: res.totalCount
76
- };
77
- }
78
- };
79
- return {
80
- page: config,
81
- schema,
82
- collection
83
- };
84
- }
85
- //# sourceMappingURL=CmsCompositeConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_data","require","_constants","FilterPropToMethod","from","to","isValidFilterProp","prop","Object","prototype","hasOwnProperty","call","getOperatorForFilter","undefined","isSupportedOperator","schema","filterProp","filterKey","field","fields","find","f","id","operator","FilterPropToOperator","supportedOperators","capabilities","supportedQueryOperators","includes","fetchCmsSchema","config","collections","getDataCollection","collectionId","map","_field$capabilities","_field$capabilities2","key","type","queryOperators","sortable","getCmsCompositeConfig","collection","fetchData","query","dataQuery","items","filters","filter","filterObj","value","res","total","totalCount","page"],"sources":["../../../src/config/CmsCompositeConfig.ts"],"sourcesContent":["import { PageConfig, SchemaConfig } from '../types';\nimport { collections, items } from '@wix/data';\nimport { CompositeConfig } from './CompositeConfig';\nimport { FilterProp, FilterPropToOperator } from './constants';\nimport { ComputedQuery } from '@wix/patterns';\n\nexport type CmsOperatorMethod = 'ge' | 'le';\n\nconst FilterPropToMethod: Record<FilterProp, CmsOperatorMethod> = {\n from: 'ge',\n to: 'le',\n};\n\nfunction isValidFilterProp(prop: string): prop is FilterProp {\n return Object.prototype.hasOwnProperty.call(FilterPropToMethod, prop);\n}\n\nfunction getOperatorForFilter(prop: string): CmsOperatorMethod | undefined {\n if (isValidFilterProp(prop)) {\n return FilterPropToMethod[prop];\n }\n return undefined;\n}\n\nconst isSupportedOperator = (\n schema: SchemaConfig,\n filterProp: string,\n filterKey: string,\n) => {\n const field = schema.fields.find((f) => f.id === filterKey);\n if (!field) {\n return false;\n }\n\n if (!isValidFilterProp(filterProp)) {\n return false;\n }\n\n const operator = FilterPropToOperator[filterProp];\n const supportedOperators = field.capabilities.supportedQueryOperators;\n return supportedOperators.includes(operator);\n};\n\nexport async function fetchCmsSchema(\n config: PageConfig,\n): Promise<SchemaConfig> {\n const schema = await collections.getDataCollection(config.collectionId);\n return {\n fields: schema.fields.map((field) => ({\n id: field.key as string,\n type: field.type as string,\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n })),\n };\n}\n\nexport async function getCmsCompositeConfig(\n config: PageConfig,\n): Promise<CompositeConfig> {\n const schema = await fetchCmsSchema(config);\n\n const collection = {\n fetchData: async (query: ComputedQuery<any>) => {\n let dataQuery = items.query(config.collectionId);\n const { filters } = query;\n for (const key in filters) {\n const filter = filters[key];\n if (filter && typeof filter === 'object') {\n const filterObj = filter as Record<string, any>;\n for (const prop in filterObj) {\n const operator = getOperatorForFilter(prop);\n if (\n operator &&\n typeof dataQuery[operator] === 'function' &&\n isSupportedOperator(schema, prop, key)\n ) {\n const value = filterObj[prop];\n if (value) {\n dataQuery = dataQuery[operator](key, value);\n }\n }\n }\n }\n }\n\n const res = await dataQuery.find();\n return {\n items: res.items,\n total: res.totalCount,\n };\n },\n };\n\n return { page: config, schema, collection };\n}\n"],"mappings":";;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAKA,MAAME,kBAAyD,GAAG;EAChEC,IAAI,EAAE,IAAI;EACVC,EAAE,EAAE;AACN,CAAC;AAED,SAASC,iBAAiBA,CAACC,IAAY,EAAsB;EAC3D,OAAOC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACR,kBAAkB,EAAEI,IAAI,CAAC;AACvE;AAEA,SAASK,oBAAoBA,CAACL,IAAY,EAAiC;EACzE,IAAID,iBAAiB,CAACC,IAAI,CAAC,EAAE;IAC3B,OAAOJ,kBAAkB,CAACI,IAAI,CAAC;EACjC;EACA,OAAOM,SAAS;AAClB;AAEA,MAAMC,mBAAmB,GAAGA,CAC1BC,MAAoB,EACpBC,UAAkB,EAClBC,SAAiB,KACd;EACH,MAAMC,KAAK,GAAGH,MAAM,CAACI,MAAM,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKL,SAAS,CAAC;EAC3D,IAAI,CAACC,KAAK,EAAE;IACV,OAAO,KAAK;EACd;EAEA,IAAI,CAACZ,iBAAiB,CAACU,UAAU,CAAC,EAAE;IAClC,OAAO,KAAK;EACd;EAEA,MAAMO,QAAQ,GAAGC,+BAAoB,CAACR,UAAU,CAAC;EACjD,MAAMS,kBAAkB,GAAGP,KAAK,CAACQ,YAAY,CAACC,uBAAuB;EACrE,OAAOF,kBAAkB,CAACG,QAAQ,CAACL,QAAQ,CAAC;AAC9C,CAAC;AAEM,eAAeM,cAAcA,CAClCC,MAAkB,EACK;EACvB,MAAMf,MAAM,GAAG,MAAMgB,iBAAW,CAACC,iBAAiB,CAACF,MAAM,CAACG,YAAY,CAAC;EACvE,OAAO;IACLd,MAAM,EAAEJ,MAAM,CAACI,MAAM,CAACe,GAAG,CAAEhB,KAAK;MAAA,IAAAiB,mBAAA,EAAAC,oBAAA;MAAA,OAAM;QACpCd,EAAE,EAAEJ,KAAK,CAACmB,GAAa;QACvBC,IAAI,EAAEpB,KAAK,CAACoB,IAAc;QAC1BZ,YAAY,EAAE;UACZC,uBAAuB,EAAE,EAAAQ,mBAAA,GAAAjB,KAAK,CAACQ,YAAY,qBAAlBS,mBAAA,CAAoBI,cAAc,KAAI,EAAE;UACjEC,QAAQ,EAAE,EAAAJ,oBAAA,GAAAlB,KAAK,CAACQ,YAAY,qBAAlBU,oBAAA,CAAoBI,QAAQ,KAAI;QAC5C;MACF,CAAC;IAAA,CAAC;EACJ,CAAC;AACH;AAEO,eAAeC,qBAAqBA,CACzCX,MAAkB,EACQ;EAC1B,MAAMf,MAAM,GAAG,MAAMc,cAAc,CAACC,MAAM,CAAC;EAE3C,MAAMY,UAAU,GAAG;IACjBC,SAAS,EAAE,MAAOC,KAAyB,IAAK;MAC9C,IAAIC,SAAS,GAAGC,WAAK,CAACF,KAAK,CAACd,MAAM,CAACG,YAAY,CAAC;MAChD,MAAM;QAAEc;MAAQ,CAAC,GAAGH,KAAK;MACzB,KAAK,MAAMP,GAAG,IAAIU,OAAO,EAAE;QACzB,MAAMC,MAAM,GAAGD,OAAO,CAACV,GAAG,CAAC;QAC3B,IAAIW,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;UACxC,MAAMC,SAAS,GAAGD,MAA6B;UAC/C,KAAK,MAAMzC,IAAI,IAAI0C,SAAS,EAAE;YAC5B,MAAM1B,QAAQ,GAAGX,oBAAoB,CAACL,IAAI,CAAC;YAC3C,IACEgB,QAAQ,IACR,OAAOsB,SAAS,CAACtB,QAAQ,CAAC,KAAK,UAAU,IACzCT,mBAAmB,CAACC,MAAM,EAAER,IAAI,EAAE8B,GAAG,CAAC,EACtC;cACA,MAAMa,KAAK,GAAGD,SAAS,CAAC1C,IAAI,CAAC;cAC7B,IAAI2C,KAAK,EAAE;gBACTL,SAAS,GAAGA,SAAS,CAACtB,QAAQ,CAAC,CAACc,GAAG,EAAEa,KAAK,CAAC;cAC7C;YACF;UACF;QACF;MACF;MAEA,MAAMC,GAAG,GAAG,MAAMN,SAAS,CAACzB,IAAI,CAAC,CAAC;MAClC,OAAO;QACL0B,KAAK,EAAEK,GAAG,CAACL,KAAK;QAChBM,KAAK,EAAED,GAAG,CAACE;MACb,CAAC;IACH;EACF,CAAC;EAED,OAAO;IAAEC,IAAI,EAAExB,MAAM;IAAEf,MAAM;IAAE2B;EAAW,CAAC;AAC7C","ignoreList":[]}