@wix/auto-patterns 1.1.0 → 1.3.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 (149) hide show
  1. package/dist/cjs/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js +36 -17
  2. package/dist/cjs/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js.map +1 -1
  3. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +85 -14
  4. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  5. package/dist/cjs/config/CompositeConfig.js +4 -0
  6. package/dist/cjs/config/CompositeConfig.js.map +1 -0
  7. package/dist/cjs/config/ConfigFactory.js +12 -0
  8. package/dist/cjs/config/ConfigFactory.js.map +1 -0
  9. package/dist/cjs/config/cms/CmsCompositeConfig.js +75 -0
  10. package/dist/cjs/config/cms/CmsCompositeConfig.js.map +1 -0
  11. package/dist/cjs/config/cms/filterUtils.js +82 -0
  12. package/dist/cjs/config/cms/filterUtils.js.map +1 -0
  13. package/dist/cjs/config/cms/sortUtils.js +32 -0
  14. package/dist/cjs/config/cms/sortUtils.js.map +1 -0
  15. package/dist/cjs/config/constants.js +9 -0
  16. package/dist/cjs/config/constants.js.map +1 -0
  17. package/dist/cjs/config/index.js +10 -0
  18. package/dist/cjs/config/index.js.map +1 -0
  19. package/dist/cjs/hooks/useColumns.js +100 -21
  20. package/dist/cjs/hooks/useColumns.js.map +1 -1
  21. package/dist/cjs/hooks/useEmptyStates.js +55 -0
  22. package/dist/cjs/hooks/useEmptyStates.js.map +1 -0
  23. package/dist/cjs/hooks/useFeatures.js +14 -5
  24. package/dist/cjs/hooks/useFeatures.js.map +1 -1
  25. package/dist/cjs/hooks/useFetchData.js +23 -0
  26. package/dist/cjs/hooks/useFetchData.js.map +1 -0
  27. package/dist/cjs/hooks/useFilters.js +123 -182
  28. package/dist/cjs/hooks/useFilters.js.map +1 -1
  29. package/dist/cjs/hooks/useTableProps.js +13 -1
  30. package/dist/cjs/hooks/useTableProps.js.map +1 -1
  31. package/dist/cjs/providers/ConfigContext.js +43 -0
  32. package/dist/cjs/providers/ConfigContext.js.map +1 -0
  33. package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
  34. package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
  35. package/dist/cjs/providers/index.js +4 -4
  36. package/dist/cjs/providers/index.js.map +1 -1
  37. package/dist/cjs/types.js +1 -9
  38. package/dist/cjs/types.js.map +1 -1
  39. package/dist/esm/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js +15 -13
  40. package/dist/esm/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js.map +1 -1
  41. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +58 -12
  42. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  43. package/dist/esm/config/CompositeConfig.js +2 -0
  44. package/dist/esm/config/CompositeConfig.js.map +1 -0
  45. package/dist/esm/config/ConfigFactory.js +8 -0
  46. package/dist/esm/config/ConfigFactory.js.map +1 -0
  47. package/dist/esm/config/cms/CmsCompositeConfig.js +69 -0
  48. package/dist/esm/config/cms/CmsCompositeConfig.js.map +1 -0
  49. package/dist/esm/config/cms/filterUtils.js +79 -0
  50. package/dist/esm/config/cms/filterUtils.js.map +1 -0
  51. package/dist/esm/config/cms/sortUtils.js +29 -0
  52. package/dist/esm/config/cms/sortUtils.js.map +1 -0
  53. package/dist/esm/config/constants.js +5 -0
  54. package/dist/esm/config/constants.js.map +1 -0
  55. package/dist/esm/config/index.js +2 -0
  56. package/dist/esm/config/index.js.map +1 -0
  57. package/dist/esm/hooks/useColumns.js +101 -22
  58. package/dist/esm/hooks/useColumns.js.map +1 -1
  59. package/dist/esm/hooks/useEmptyStates.js +41 -0
  60. package/dist/esm/hooks/useEmptyStates.js.map +1 -0
  61. package/dist/esm/hooks/useFeatures.js +9 -7
  62. package/dist/esm/hooks/useFeatures.js.map +1 -1
  63. package/dist/esm/hooks/useFetchData.js +18 -0
  64. package/dist/esm/hooks/useFetchData.js.map +1 -0
  65. package/dist/esm/hooks/useFilters.js +121 -180
  66. package/dist/esm/hooks/useFilters.js.map +1 -1
  67. package/dist/esm/hooks/useTableProps.js +13 -1
  68. package/dist/esm/hooks/useTableProps.js.map +1 -1
  69. package/dist/esm/providers/ConfigContext.js +29 -0
  70. package/dist/esm/providers/ConfigContext.js.map +1 -0
  71. package/dist/esm/providers/PatternsWizardOverridesContext.js +1 -1
  72. package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
  73. package/dist/esm/providers/index.js +1 -1
  74. package/dist/esm/providers/index.js.map +1 -1
  75. package/dist/esm/types.js +0 -8
  76. package/dist/esm/types.js.map +1 -1
  77. package/dist/types/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.d.ts +2 -3
  78. package/dist/types/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.d.ts.map +1 -1
  79. package/dist/types/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.d.ts.map +1 -1
  80. package/dist/types/config/CompositeConfig.d.ts +8 -0
  81. package/dist/types/config/CompositeConfig.d.ts.map +1 -0
  82. package/dist/types/config/ConfigFactory.d.ts +4 -0
  83. package/dist/types/config/ConfigFactory.d.ts.map +1 -0
  84. package/dist/types/config/cms/CmsCompositeConfig.d.ts +7 -0
  85. package/dist/types/config/cms/CmsCompositeConfig.d.ts.map +1 -0
  86. package/dist/types/config/cms/filterUtils.d.ts +16 -0
  87. package/dist/types/config/cms/filterUtils.d.ts.map +1 -0
  88. package/dist/types/config/cms/sortUtils.d.ts +9 -0
  89. package/dist/types/config/cms/sortUtils.d.ts.map +1 -0
  90. package/dist/types/config/constants.d.ts +4 -0
  91. package/dist/types/config/constants.d.ts.map +1 -0
  92. package/dist/types/config/index.d.ts +2 -0
  93. package/dist/types/config/index.d.ts.map +1 -0
  94. package/dist/types/hooks/useColumns.d.ts.map +1 -1
  95. package/dist/types/hooks/useEmptyStates.d.ts +5 -0
  96. package/dist/types/hooks/useEmptyStates.d.ts.map +1 -0
  97. package/dist/types/hooks/useFeatures.d.ts +1 -0
  98. package/dist/types/hooks/useFeatures.d.ts.map +1 -1
  99. package/dist/types/hooks/useFetchData.d.ts +4 -0
  100. package/dist/types/hooks/useFetchData.d.ts.map +1 -0
  101. package/dist/types/hooks/useFilters.d.ts +4 -7
  102. package/dist/types/hooks/useFilters.d.ts.map +1 -1
  103. package/dist/types/hooks/useTableProps.d.ts +9 -4
  104. package/dist/types/hooks/useTableProps.d.ts.map +1 -1
  105. package/dist/types/providers/ConfigContext.d.ts +11 -0
  106. package/dist/types/providers/ConfigContext.d.ts.map +1 -0
  107. package/dist/types/providers/PatternsWizardOverridesContext.d.ts +7 -2
  108. package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
  109. package/dist/types/providers/index.d.ts +1 -1
  110. package/dist/types/providers/index.d.ts.map +1 -1
  111. package/dist/types/types.d.ts +106 -28
  112. package/dist/types/types.d.ts.map +1 -1
  113. package/package.json +14 -14
  114. package/dist/cjs/providers/PatternsWizardContext.js +0 -48
  115. package/dist/cjs/providers/PatternsWizardContext.js.map +0 -1
  116. package/dist/cjs/schemas/cms.js +0 -37
  117. package/dist/cjs/schemas/cms.js.map +0 -1
  118. package/dist/cjs/schemas/index.js +0 -10
  119. package/dist/cjs/schemas/index.js.map +0 -1
  120. package/dist/cjs/schemas/schemaHandler.js +0 -4
  121. package/dist/cjs/schemas/schemaHandler.js.map +0 -1
  122. package/dist/cjs/schemas/schemaHandlerFactory.js +0 -15
  123. package/dist/cjs/schemas/schemaHandlerFactory.js.map +0 -1
  124. package/dist/cjs/utils.js +0 -76
  125. package/dist/cjs/utils.js.map +0 -1
  126. package/dist/esm/providers/PatternsWizardContext.js +0 -34
  127. package/dist/esm/providers/PatternsWizardContext.js.map +0 -1
  128. package/dist/esm/schemas/cms.js +0 -31
  129. package/dist/esm/schemas/cms.js.map +0 -1
  130. package/dist/esm/schemas/index.js +0 -2
  131. package/dist/esm/schemas/index.js.map +0 -1
  132. package/dist/esm/schemas/schemaHandler.js +0 -2
  133. package/dist/esm/schemas/schemaHandler.js.map +0 -1
  134. package/dist/esm/schemas/schemaHandlerFactory.js +0 -10
  135. package/dist/esm/schemas/schemaHandlerFactory.js.map +0 -1
  136. package/dist/esm/utils.js +0 -33
  137. package/dist/esm/utils.js.map +0 -1
  138. package/dist/types/providers/PatternsWizardContext.d.ts +0 -17
  139. package/dist/types/providers/PatternsWizardContext.d.ts.map +0 -1
  140. package/dist/types/schemas/cms.d.ts +0 -21
  141. package/dist/types/schemas/cms.d.ts.map +0 -1
  142. package/dist/types/schemas/index.d.ts +0 -2
  143. package/dist/types/schemas/index.d.ts.map +0 -1
  144. package/dist/types/schemas/schemaHandler.d.ts +0 -7
  145. package/dist/types/schemas/schemaHandler.d.ts.map +0 -1
  146. package/dist/types/schemas/schemaHandlerFactory.d.ts +0 -4
  147. package/dist/types/schemas/schemaHandlerFactory.d.ts.map +0 -1
  148. package/dist/types/utils.d.ts +0 -5
  149. package/dist/types/utils.d.ts.map +0 -1
@@ -1,7 +1,8 @@
1
- import React from 'react';
1
+ import React, { useState } from 'react';
2
2
  import { CollectionPage } from '@wix/patterns/page';
3
3
  import { AutoPatternsCollectionPageContent } from '../AutoPatternsCollectionPageContent';
4
- import { PatternsWizardProvider, usePatternsWizardOverridesContext } from '../../providers';
4
+ import { usePatternsWizardOverridesContext, ConfigProvider } from '../../providers';
5
+ import { PrimaryActions, SecondaryActions } from '@wix/patterns';
5
6
  export const AutoPatternsCollectionPage = _ref => {
6
7
  let {
7
8
  configuration
@@ -11,19 +12,20 @@ export const AutoPatternsCollectionPage = _ref => {
11
12
  pageSubtitle
12
13
  } = configuration;
13
14
  const context = usePatternsWizardOverridesContext();
14
- return /*#__PURE__*/React.createElement(PatternsWizardProvider, {
15
- value: {
16
- configuration
17
- }
15
+ const primaryActionProps = context == null || context.usePagePrimaryAction == null ? void 0 : context.usePagePrimaryAction();
16
+ const secondaryActionProps = context == null || context.usePageSecondaryAction == null ? void 0 : context.usePageSecondaryAction();
17
+ const [_, setScrollableRef] = useState(null);
18
+ return /*#__PURE__*/React.createElement(ConfigProvider, {
19
+ page: configuration
18
20
  }, /*#__PURE__*/React.createElement(CollectionPage, {
19
- height: "100vh"
21
+ height: "100vh",
22
+ dataHook: "auto-patterns-page",
23
+ scrollableContentRef: setScrollableRef
20
24
  }, /*#__PURE__*/React.createElement(CollectionPage.Header, {
21
- title: {
22
- text: pageTitle
23
- },
24
- subtitle: {
25
- text: pageSubtitle
26
- }
25
+ title: pageTitle,
26
+ subtitle: pageSubtitle,
27
+ primaryAction: primaryActionProps ? /*#__PURE__*/React.createElement(PrimaryActions, primaryActionProps) : undefined,
28
+ secondaryActions: secondaryActionProps ? /*#__PURE__*/React.createElement(SecondaryActions, secondaryActionProps) : undefined
27
29
  }), /*#__PURE__*/React.createElement(CollectionPage.Content, null, context != null && context.HeaderAddon ? /*#__PURE__*/React.createElement(context.HeaderAddon, null) : null, /*#__PURE__*/React.createElement(AutoPatternsCollectionPageContent, null))));
28
30
  };
29
31
  //# sourceMappingURL=AutoPatternsCollectionPage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","CollectionPage","AutoPatternsCollectionPageContent","PatternsWizardProvider","usePatternsWizardOverridesContext","AutoPatternsCollectionPage","_ref","configuration","pageTitle","pageSubtitle","context","createElement","value","height","Header","title","text","subtitle","Content","HeaderAddon"],"sources":["../../../../src/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.tsx"],"sourcesContent":["import React from 'react';\nimport { CollectionPage } from '@wix/patterns/page';\nimport { AutoPatternsCollectionPageContent } from '../AutoPatternsCollectionPageContent';\nimport {\n PatternsWizardProvider,\n usePatternsWizardOverridesContext,\n} from '../../providers';\nimport { SchemaConfig, ProjectConfig } from '../../types';\n\nexport interface AutoPatternsCollectionPageProps {\n configuration: ProjectConfig;\n schema?: SchemaConfig;\n}\n\nexport const AutoPatternsCollectionPage: React.FC<\n AutoPatternsCollectionPageProps\n> = ({ configuration }) => {\n const { pageTitle, pageSubtitle } = configuration;\n const context = usePatternsWizardOverridesContext();\n return (\n <PatternsWizardProvider value={{ configuration }}>\n <CollectionPage height=\"100vh\">\n <CollectionPage.Header\n title={{ text: pageTitle }}\n subtitle={{ text: pageSubtitle }}\n />\n <CollectionPage.Content>\n {context?.HeaderAddon ? <context.HeaderAddon /> : null}\n <AutoPatternsCollectionPageContent />\n </CollectionPage.Content>\n </CollectionPage>\n </PatternsWizardProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,oBAAoB;AACnD,SAASC,iCAAiC,QAAQ,sCAAsC;AACxF,SACEC,sBAAsB,EACtBC,iCAAiC,QAC5B,iBAAiB;AAQxB,OAAO,MAAMC,0BAEZ,GAAGC,IAAA,IAAuB;EAAA,IAAtB;IAAEC;EAAc,CAAC,GAAAD,IAAA;EACpB,MAAM;IAAEE,SAAS;IAAEC;EAAa,CAAC,GAAGF,aAAa;EACjD,MAAMG,OAAO,GAAGN,iCAAiC,CAAC,CAAC;EACnD,oBACEJ,KAAA,CAAAW,aAAA,CAACR,sBAAsB;IAACS,KAAK,EAAE;MAAEL;IAAc;EAAE,gBAC/CP,KAAA,CAAAW,aAAA,CAACV,cAAc;IAACY,MAAM,EAAC;EAAO,gBAC5Bb,KAAA,CAAAW,aAAA,CAACV,cAAc,CAACa,MAAM;IACpBC,KAAK,EAAE;MAAEC,IAAI,EAAER;IAAU,CAAE;IAC3BS,QAAQ,EAAE;MAAED,IAAI,EAAEP;IAAa;EAAE,CAClC,CAAC,eACFT,KAAA,CAAAW,aAAA,CAACV,cAAc,CAACiB,OAAO,QACpBR,OAAO,YAAPA,OAAO,CAAES,WAAW,gBAAGnB,KAAA,CAAAW,aAAA,CAACD,OAAO,CAACS,WAAW,MAAE,CAAC,GAAG,IAAI,eACtDnB,KAAA,CAAAW,aAAA,CAACT,iCAAiC,MAAE,CACd,CACV,CACM,CAAC;AAE7B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","CollectionPage","AutoPatternsCollectionPageContent","usePatternsWizardOverridesContext","ConfigProvider","PrimaryActions","SecondaryActions","AutoPatternsCollectionPage","_ref","configuration","pageTitle","pageSubtitle","context","primaryActionProps","usePagePrimaryAction","secondaryActionProps","usePageSecondaryAction","_","setScrollableRef","createElement","page","height","dataHook","scrollableContentRef","Header","title","subtitle","primaryAction","undefined","secondaryActions","Content","HeaderAddon"],"sources":["../../../../src/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { CollectionPage } from '@wix/patterns/page';\nimport { AutoPatternsCollectionPageContent } from '../AutoPatternsCollectionPageContent';\nimport {\n usePatternsWizardOverridesContext,\n ConfigProvider,\n} from '../../providers';\nimport { PageConfig } from '../../types';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface AutoPatternsCollectionPageProps {\n configuration: PageConfig;\n}\n\nexport const AutoPatternsCollectionPage: React.FC<\n AutoPatternsCollectionPageProps\n> = ({ configuration }) => {\n const { pageTitle, pageSubtitle } = configuration;\n const context = usePatternsWizardOverridesContext();\n const primaryActionProps = context?.usePagePrimaryAction?.();\n const secondaryActionProps = context?.usePageSecondaryAction?.();\n const [_, setScrollableRef] = useState<HTMLElement | null>(null);\n\n return (\n <ConfigProvider page={configuration}>\n <CollectionPage\n height=\"100vh\"\n dataHook=\"auto-patterns-page\"\n scrollableContentRef={setScrollableRef}\n >\n <CollectionPage.Header\n title={pageTitle}\n subtitle={pageSubtitle}\n primaryAction={\n primaryActionProps ? (\n <PrimaryActions {...primaryActionProps} />\n ) : undefined\n }\n secondaryActions={\n secondaryActionProps ? (\n <SecondaryActions {...secondaryActionProps} />\n ) : undefined\n }\n />\n <CollectionPage.Content>\n {context?.HeaderAddon ? <context.HeaderAddon /> : null}\n <AutoPatternsCollectionPageContent />\n </CollectionPage.Content>\n </CollectionPage>\n </ConfigProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,cAAc,QAAQ,oBAAoB;AACnD,SAASC,iCAAiC,QAAQ,sCAAsC;AACxF,SACEC,iCAAiC,EACjCC,cAAc,QACT,iBAAiB;AAExB,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,eAAe;AAMhE,OAAO,MAAMC,0BAEZ,GAAGC,IAAA,IAAuB;EAAA,IAAtB;IAAEC;EAAc,CAAC,GAAAD,IAAA;EACpB,MAAM;IAAEE,SAAS;IAAEC;EAAa,CAAC,GAAGF,aAAa;EACjD,MAAMG,OAAO,GAAGT,iCAAiC,CAAC,CAAC;EACnD,MAAMU,kBAAkB,GAAGD,OAAO,YAAPA,OAAO,CAAEE,oBAAoB,oBAA7BF,OAAO,CAAEE,oBAAoB,CAAG,CAAC;EAC5D,MAAMC,oBAAoB,GAAGH,OAAO,YAAPA,OAAO,CAAEI,sBAAsB,oBAA/BJ,OAAO,CAAEI,sBAAsB,CAAG,CAAC;EAChE,MAAM,CAACC,CAAC,EAAEC,gBAAgB,CAAC,GAAGlB,QAAQ,CAAqB,IAAI,CAAC;EAEhE,oBACED,KAAA,CAAAoB,aAAA,CAACf,cAAc;IAACgB,IAAI,EAAEX;EAAc,gBAClCV,KAAA,CAAAoB,aAAA,CAAClB,cAAc;IACboB,MAAM,EAAC,OAAO;IACdC,QAAQ,EAAC,oBAAoB;IAC7BC,oBAAoB,EAAEL;EAAiB,gBAEvCnB,KAAA,CAAAoB,aAAA,CAAClB,cAAc,CAACuB,MAAM;IACpBC,KAAK,EAAEf,SAAU;IACjBgB,QAAQ,EAAEf,YAAa;IACvBgB,aAAa,EACXd,kBAAkB,gBAChBd,KAAA,CAAAoB,aAAA,CAACd,cAAc,EAAKQ,kBAAqB,CAAC,GACxCe,SACL;IACDC,gBAAgB,EACdd,oBAAoB,gBAClBhB,KAAA,CAAAoB,aAAA,CAACb,gBAAgB,EAAKS,oBAAuB,CAAC,GAC5Ca;EACL,CACF,CAAC,eACF7B,KAAA,CAAAoB,aAAA,CAAClB,cAAc,CAAC6B,OAAO,QACpBlB,OAAO,YAAPA,OAAO,CAAEmB,WAAW,gBAAGhC,KAAA,CAAAoB,aAAA,CAACP,OAAO,CAACmB,WAAW,MAAE,CAAC,GAAG,IAAI,eACtDhC,KAAA,CAAAoB,aAAA,CAACjB,iCAAiC,MAAE,CACd,CACV,CACF,CAAC;AAErB,CAAC","ignoreList":[]}
@@ -1,32 +1,43 @@
1
1
  import React from 'react';
2
- import { CollectionToolbarFilters, Table, useTableCollection } from '@wix/patterns';
2
+ import { CollectionToolbarFilters, Table, ToolbarTitle, useTableCollection } from '@wix/patterns';
3
3
  import { useTableProps } from '../../hooks';
4
- import { usePatternsWizardContext, usePatternsWizardOverridesContext } from '../../providers';
4
+ import { usePatternsWizardOverridesContext, useConfig } from '../../providers';
5
5
  import { Edit } from '@wix/wix-ui-icons-common';
6
+ import { Box, Text, TextButton } from '@wix/design-system';
6
7
  export const AutoPatternsCollectionPageContent = () => {
7
- const wizardContext = usePatternsWizardContext();
8
+ var _toolbarTitle$subtitl, _toolbarTitle$subtitl2, _toolbarTitle$subtitl3, _toolbarTitle$subtitl4, _toolbarTitle$subtitl5, _toolbarTitle$subtitl6, _toolbarTitle$subtitl7;
9
+ const config = useConfig();
8
10
  const {
9
- schemaHandler,
10
- configuration: {
11
+ page: {
11
12
  pageTitle,
12
13
  collectionId,
13
14
  entityId,
14
15
  entityName,
15
- actions: secondaryActions = []
16
+ actions: secondaryActions = [],
17
+ search,
18
+ toolbarTitle,
19
+ limit,
20
+ persistQueryToUrl,
21
+ disableAutoSelectAllCount,
22
+ selectionConsistencyMode
16
23
  }
17
- } = wizardContext;
24
+ } = config;
18
25
  const context = usePatternsWizardOverridesContext();
19
26
  const {
20
27
  columns,
21
28
  views,
22
29
  dataExtension,
30
+ customColumns,
23
31
  filters: {
24
32
  filters,
25
- components
26
- }
33
+ components,
34
+ collectionToolbarFiltersProps
35
+ },
36
+ emptyState,
37
+ fetchData
27
38
  } = useTableProps();
28
39
  const tableState = useTableCollection({
29
- queryName: `${collectionId}-${pageTitle}`,
40
+ queryName: `${collectionId}-${pageTitle.text}`,
30
41
  itemKey: item => item[`${entityId}`],
31
42
  itemName: item => item[`${entityName}`],
32
43
  filters,
@@ -37,7 +48,11 @@ export const AutoPatternsCollectionPageContent = () => {
37
48
  } = _ref;
38
49
  return String(err);
39
50
  },
40
- ...schemaHandler.getCollectionConfig()
51
+ fetchData,
52
+ limit,
53
+ persistQueryToUrl,
54
+ disableAutoSelectAllCount,
55
+ selectionConsistencyMode
41
56
  });
42
57
  const secondaryActionComponents = React.useMemo(() => {
43
58
  if (secondaryActions.length === 0) {
@@ -55,15 +70,46 @@ export const AutoPatternsCollectionPageContent = () => {
55
70
  }));
56
71
  }, [secondaryActions, context == null ? void 0 : context.actions]);
57
72
  return /*#__PURE__*/React.createElement(Table, {
73
+ search: (search == null ? void 0 : search.shown) !== false,
74
+ title: toolbarTitle && /*#__PURE__*/React.createElement(ToolbarTitle, {
75
+ title: toolbarTitle.title,
76
+ subtitle: {
77
+ text: ((_toolbarTitle$subtitl = toolbarTitle.subtitle) == null ? void 0 : _toolbarTitle$subtitl.text) ?? '',
78
+ learnMore: (_toolbarTitle$subtitl2 = toolbarTitle.subtitle) == null ? void 0 : _toolbarTitle$subtitl2.learnMore,
79
+ info: ((_toolbarTitle$subtitl3 = toolbarTitle.subtitle) == null ? void 0 : _toolbarTitle$subtitl3.info) && {
80
+ content: /*#__PURE__*/React.createElement(Box, {
81
+ direction: "vertical",
82
+ gap: "6px"
83
+ }, /*#__PURE__*/React.createElement(Text, {
84
+ dataHook: "toolbar-title-subtitle-info-content",
85
+ light: true,
86
+ size: "small"
87
+ }, (_toolbarTitle$subtitl4 = toolbarTitle.subtitle) == null || (_toolbarTitle$subtitl4 = _toolbarTitle$subtitl4.info) == null ? void 0 : _toolbarTitle$subtitl4.content.text), ((_toolbarTitle$subtitl5 = toolbarTitle.subtitle) == null || (_toolbarTitle$subtitl5 = _toolbarTitle$subtitl5.info) == null ? void 0 : _toolbarTitle$subtitl5.content.link) && /*#__PURE__*/React.createElement(TextButton, {
88
+ dataHook: "toolbar-title-subtitle-info-link",
89
+ size: "small",
90
+ underline: "always",
91
+ skin: "light",
92
+ as: "a",
93
+ rel: "noopener",
94
+ target: "_blank",
95
+ href: (_toolbarTitle$subtitl6 = toolbarTitle.subtitle) == null || (_toolbarTitle$subtitl6 = _toolbarTitle$subtitl6.info) == null ? void 0 : _toolbarTitle$subtitl6.content.link.url
96
+ }, (_toolbarTitle$subtitl7 = toolbarTitle.subtitle) == null || (_toolbarTitle$subtitl7 = _toolbarTitle$subtitl7.info) == null ? void 0 : _toolbarTitle$subtitl7.content.link.label))
97
+ }
98
+ },
99
+ itemsLimit: toolbarTitle.itemsLimit,
100
+ showTotal: toolbarTitle.showTotal
101
+ }),
58
102
  dataHook: "auto-patterns-table",
59
103
  state: tableState,
60
104
  columns: columns,
61
105
  views: views,
62
106
  dataExtension: dataExtension,
107
+ customColumns: customColumns,
63
108
  actionCell: item => ({
64
109
  secondaryActions: secondaryActionComponents == null ? void 0 : secondaryActionComponents.map(action => action(item))
65
110
  }),
66
- filters: components.length > 0 ? /*#__PURE__*/React.createElement(CollectionToolbarFilters, null, components) : undefined
111
+ filters: components.length > 0 ? /*#__PURE__*/React.createElement(CollectionToolbarFilters, collectionToolbarFiltersProps, components) : undefined,
112
+ emptyState: emptyState
67
113
  });
68
114
  };
69
115
  //# sourceMappingURL=AutoPatternsCollectionPageContent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","CollectionToolbarFilters","Table","useTableCollection","useTableProps","usePatternsWizardContext","usePatternsWizardOverridesContext","Edit","AutoPatternsCollectionPageContent","wizardContext","schemaHandler","configuration","pageTitle","collectionId","entityId","entityName","actions","secondaryActions","context","columns","views","dataExtension","filters","components","tableState","queryName","itemKey","item","itemName","toExtendedFields","extendedFields","fetchErrorMessage","_ref","err","String","getCollectionConfig","secondaryActionComponents","useMemo","length","undefined","map","action","icon","createElement","text","onClick","_context$actions","_context$actions$acti","id","call","dataHook","state","actionCell"],"sources":["../../../../src/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.tsx"],"sourcesContent":["import React from 'react';\nimport {\n CollectionToolbarFilters,\n Table,\n useTableCollection,\n} from '@wix/patterns';\nimport { useTableProps } from '../../hooks';\nimport {\n usePatternsWizardContext,\n usePatternsWizardOverridesContext,\n} from '../../providers';\nimport { Edit } from '@wix/wix-ui-icons-common';\n\nexport const AutoPatternsCollectionPageContent: React.FC = () => {\n const wizardContext = usePatternsWizardContext();\n const {\n schemaHandler,\n configuration: {\n pageTitle,\n collectionId,\n entityId,\n entityName,\n actions: secondaryActions = [],\n },\n } = wizardContext;\n\n const context = usePatternsWizardOverridesContext();\n\n const {\n columns,\n views,\n dataExtension,\n filters: { filters, components },\n } = useTableProps();\n\n const tableState = useTableCollection<any>({\n queryName: `${collectionId}-${pageTitle}`,\n itemKey: (item) => item[`${entityId}`],\n itemName: (item) => item[`${entityName}`],\n filters,\n toExtendedFields: (item) => item.extendedFields,\n fetchErrorMessage: ({ err }) => String(err),\n ...schemaHandler.getCollectionConfig(),\n });\n\n const secondaryActionComponents = React.useMemo(() => {\n if (secondaryActions.length === 0) {\n return undefined;\n }\n\n return secondaryActions.map((action) => (item: any) => ({\n icon: <Edit />,\n text: action.text,\n onClick: () => {\n context?.actions?.[action.id]?.({ item });\n },\n }));\n }, [secondaryActions, context?.actions]);\n\n return (\n <Table\n dataHook=\"auto-patterns-table\"\n state={tableState}\n columns={columns}\n views={views}\n dataExtension={dataExtension}\n actionCell={(item) => ({\n secondaryActions: secondaryActionComponents?.map((action) =>\n action(item),\n ),\n })}\n filters={\n components.length > 0 ? (\n <CollectionToolbarFilters>{components}</CollectionToolbarFilters>\n ) : undefined\n }\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,wBAAwB,EACxBC,KAAK,EACLC,kBAAkB,QACb,eAAe;AACtB,SAASC,aAAa,QAAQ,aAAa;AAC3C,SACEC,wBAAwB,EACxBC,iCAAiC,QAC5B,iBAAiB;AACxB,SAASC,IAAI,QAAQ,0BAA0B;AAE/C,OAAO,MAAMC,iCAA2C,GAAGA,CAAA,KAAM;EAC/D,MAAMC,aAAa,GAAGJ,wBAAwB,CAAC,CAAC;EAChD,MAAM;IACJK,aAAa;IACbC,aAAa,EAAE;MACbC,SAAS;MACTC,YAAY;MACZC,QAAQ;MACRC,UAAU;MACVC,OAAO,EAAEC,gBAAgB,GAAG;IAC9B;EACF,CAAC,GAAGR,aAAa;EAEjB,MAAMS,OAAO,GAAGZ,iCAAiC,CAAC,CAAC;EAEnD,MAAM;IACJa,OAAO;IACPC,KAAK;IACLC,aAAa;IACbC,OAAO,EAAE;MAAEA,OAAO;MAAEC;IAAW;EACjC,CAAC,GAAGnB,aAAa,CAAC,CAAC;EAEnB,MAAMoB,UAAU,GAAGrB,kBAAkB,CAAM;IACzCsB,SAAS,EAAE,GAAGZ,YAAY,IAAID,SAAS,EAAE;IACzCc,OAAO,EAAGC,IAAI,IAAKA,IAAI,CAAC,GAAGb,QAAQ,EAAE,CAAC;IACtCc,QAAQ,EAAGD,IAAI,IAAKA,IAAI,CAAC,GAAGZ,UAAU,EAAE,CAAC;IACzCO,OAAO;IACPO,gBAAgB,EAAGF,IAAI,IAAKA,IAAI,CAACG,cAAc;IAC/CC,iBAAiB,EAAEC,IAAA;MAAA,IAAC;QAAEC;MAAI,CAAC,GAAAD,IAAA;MAAA,OAAKE,MAAM,CAACD,GAAG,CAAC;IAAA;IAC3C,GAAGvB,aAAa,CAACyB,mBAAmB,CAAC;EACvC,CAAC,CAAC;EAEF,MAAMC,yBAAyB,GAAGpC,KAAK,CAACqC,OAAO,CAAC,MAAM;IACpD,IAAIpB,gBAAgB,CAACqB,MAAM,KAAK,CAAC,EAAE;MACjC,OAAOC,SAAS;IAClB;IAEA,OAAOtB,gBAAgB,CAACuB,GAAG,CAAEC,MAAM,IAAMd,IAAS,KAAM;MACtDe,IAAI,eAAE1C,KAAA,CAAA2C,aAAA,CAACpC,IAAI,MAAE,CAAC;MACdqC,IAAI,EAAEH,MAAM,CAACG,IAAI;MACjBC,OAAO,EAAEA,CAAA,KAAM;QAAA,IAAAC,gBAAA,EAAAC,qBAAA;QACb7B,OAAO,aAAA4B,gBAAA,GAAP5B,OAAO,CAAEF,OAAO,cAAA+B,qBAAA,GAAhBD,gBAAA,CAAmBL,MAAM,CAACO,EAAE,CAAC,aAA7BD,qBAAA,CAAAE,IAAA,CAAAH,gBAAA,EAAgC;UAAEnB;QAAK,CAAC,CAAC;MAC3C;IACF,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,CAACV,gBAAgB,EAAEC,OAAO,oBAAPA,OAAO,CAAEF,OAAO,CAAC,CAAC;EAExC,oBACEhB,KAAA,CAAA2C,aAAA,CAACzC,KAAK;IACJgD,QAAQ,EAAC,qBAAqB;IAC9BC,KAAK,EAAE3B,UAAW;IAClBL,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAEA,KAAM;IACbC,aAAa,EAAEA,aAAc;IAC7B+B,UAAU,EAAGzB,IAAI,KAAM;MACrBV,gBAAgB,EAAEmB,yBAAyB,oBAAzBA,yBAAyB,CAAEI,GAAG,CAAEC,MAAM,IACtDA,MAAM,CAACd,IAAI,CACb;IACF,CAAC,CAAE;IACHL,OAAO,EACLC,UAAU,CAACe,MAAM,GAAG,CAAC,gBACnBtC,KAAA,CAAA2C,aAAA,CAAC1C,wBAAwB,QAAEsB,UAAqC,CAAC,GAC/DgB;EACL,CACF,CAAC;AAEN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","CollectionToolbarFilters","Table","ToolbarTitle","useTableCollection","useTableProps","usePatternsWizardOverridesContext","useConfig","Edit","Box","Text","TextButton","AutoPatternsCollectionPageContent","_toolbarTitle$subtitl","_toolbarTitle$subtitl2","_toolbarTitle$subtitl3","_toolbarTitle$subtitl4","_toolbarTitle$subtitl5","_toolbarTitle$subtitl6","_toolbarTitle$subtitl7","config","page","pageTitle","collectionId","entityId","entityName","actions","secondaryActions","search","toolbarTitle","limit","persistQueryToUrl","disableAutoSelectAllCount","selectionConsistencyMode","context","columns","views","dataExtension","customColumns","filters","components","collectionToolbarFiltersProps","emptyState","fetchData","tableState","queryName","text","itemKey","item","itemName","toExtendedFields","extendedFields","fetchErrorMessage","_ref","err","String","secondaryActionComponents","useMemo","length","undefined","map","action","icon","createElement","onClick","_context$actions","_context$actions$acti","id","call","shown","title","subtitle","learnMore","info","content","direction","gap","dataHook","light","size","link","underline","skin","as","rel","target","href","url","label","itemsLimit","showTotal","state","actionCell"],"sources":["../../../../src/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.tsx"],"sourcesContent":["import React from 'react';\nimport {\n CollectionToolbarFilters,\n Table,\n ToolbarTitle,\n useTableCollection,\n} from '@wix/patterns';\nimport { useTableProps } from '../../hooks';\nimport { usePatternsWizardOverridesContext, useConfig } from '../../providers';\nimport { Edit } from '@wix/wix-ui-icons-common';\nimport { Box, Text, TextButton } from '@wix/design-system';\n\nexport const AutoPatternsCollectionPageContent: React.FC = () => {\n const config = useConfig();\n\n const {\n page: {\n pageTitle,\n collectionId,\n entityId,\n entityName,\n actions: secondaryActions = [],\n search,\n toolbarTitle,\n limit,\n persistQueryToUrl,\n disableAutoSelectAllCount,\n selectionConsistencyMode,\n },\n } = config;\n const context = usePatternsWizardOverridesContext();\n\n const {\n columns,\n views,\n dataExtension,\n customColumns,\n filters: { filters, components, collectionToolbarFiltersProps },\n emptyState,\n fetchData,\n } = useTableProps();\n\n const tableState = useTableCollection<any>({\n queryName: `${collectionId}-${pageTitle.text}`,\n itemKey: (item) => item[`${entityId}`],\n itemName: (item) => item[`${entityName}`],\n filters,\n toExtendedFields: (item) => item.extendedFields,\n fetchErrorMessage: ({ err }) => String(err),\n fetchData,\n limit,\n persistQueryToUrl,\n disableAutoSelectAllCount,\n selectionConsistencyMode,\n });\n\n const secondaryActionComponents = React.useMemo(() => {\n if (secondaryActions.length === 0) {\n return undefined;\n }\n\n return secondaryActions.map((action) => (item: any) => ({\n icon: <Edit />,\n text: action.text,\n onClick: () => {\n context?.actions?.[action.id]?.({ item });\n },\n }));\n }, [secondaryActions, context?.actions]);\n return (\n <Table\n search={search?.shown !== false}\n title={\n toolbarTitle && (\n <ToolbarTitle\n title={toolbarTitle.title}\n subtitle={{\n text: toolbarTitle.subtitle?.text ?? '',\n learnMore: toolbarTitle.subtitle?.learnMore,\n info: toolbarTitle.subtitle?.info && {\n content: (\n <Box direction=\"vertical\" gap=\"6px\">\n <Text\n dataHook=\"toolbar-title-subtitle-info-content\"\n light\n size=\"small\"\n >\n {toolbarTitle.subtitle?.info?.content.text}\n </Text>\n {toolbarTitle.subtitle?.info?.content.link && (\n <TextButton\n dataHook=\"toolbar-title-subtitle-info-link\"\n size=\"small\"\n underline=\"always\"\n skin=\"light\"\n as=\"a\"\n rel=\"noopener\"\n target=\"_blank\"\n href={toolbarTitle.subtitle?.info?.content.link.url}\n >\n {toolbarTitle.subtitle?.info?.content.link.label}\n </TextButton>\n )}\n </Box>\n ),\n },\n }}\n itemsLimit={toolbarTitle.itemsLimit}\n showTotal={toolbarTitle.showTotal}\n />\n )\n }\n dataHook=\"auto-patterns-table\"\n state={tableState}\n columns={columns}\n views={views}\n dataExtension={dataExtension}\n customColumns={customColumns}\n actionCell={(item) => ({\n secondaryActions: secondaryActionComponents?.map((action) =>\n action(item),\n ),\n })}\n filters={\n components.length > 0 ? (\n <CollectionToolbarFilters {...collectionToolbarFiltersProps}>\n {components}\n </CollectionToolbarFilters>\n ) : undefined\n }\n emptyState={emptyState}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CompositeConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/config/CompositeConfig.ts"],"sourcesContent":["import { SchemaConfig, PageConfig } from '../types';\nimport { CollectionConfig } from '@wix/patterns';\n\nexport interface CompositeConfig {\n page: PageConfig;\n schema: SchemaConfig;\n collection: Pick<CollectionConfig<any, any>, 'fetchData'>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import { getCmsCompositeConfig } from './cms/CmsCompositeConfig';
2
+ export async function getCompositeConfig(config) {
3
+ if (config.entityTypeSource === 'cms') {
4
+ return getCmsCompositeConfig(config);
5
+ }
6
+ throw new Error(`Unsupported source type: ${config.entityTypeSource}`);
7
+ }
8
+ //# sourceMappingURL=ConfigFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getCmsCompositeConfig","getCompositeConfig","config","entityTypeSource","Error"],"sources":["../../../src/config/ConfigFactory.ts"],"sourcesContent":["import { PageConfig } from '../types';\nimport { getCmsCompositeConfig } from './cms/CmsCompositeConfig';\nimport { CompositeConfig } from './CompositeConfig';\n\nexport async function getCompositeConfig(\n config: PageConfig,\n): Promise<CompositeConfig> {\n if (config.entityTypeSource === 'cms') {\n return getCmsCompositeConfig(config);\n }\n throw new Error(`Unsupported source type: ${config.entityTypeSource}`);\n}\n"],"mappings":"AACA,SAASA,qBAAqB,QAAQ,0BAA0B;AAGhE,OAAO,eAAeC,kBAAkBA,CACtCC,MAAkB,EACQ;EAC1B,IAAIA,MAAM,CAACC,gBAAgB,KAAK,KAAK,EAAE;IACrC,OAAOH,qBAAqB,CAACE,MAAM,CAAC;EACtC;EACA,MAAM,IAAIE,KAAK,CAAC,4BAA4BF,MAAM,CAACC,gBAAgB,EAAE,CAAC;AACxE","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ import { collections, items } from '@wix/data';
2
+ import { addFiltersToDataQuery, addSearchToDataQuery } from './filterUtils';
3
+ import { addSortToDataQuery } from './sortUtils';
4
+ export const CmsColumnTypeToPatternsColumnType = {
5
+ [collections.Type.TEXT]: 'STRING',
6
+ [collections.Type.ARRAY]: 'ARRAY',
7
+ [collections.Type.DATE]: 'DATE',
8
+ [collections.Type.DATETIME]: 'DATETIME',
9
+ [collections.Type.NUMBER]: 'NUMBER',
10
+ [collections.Type.BOOLEAN]: 'BOOLEAN'
11
+ };
12
+ export async function fetchCmsSchema(config) {
13
+ const schema = await collections.getDataCollection(config.collectionId);
14
+ return {
15
+ fields: schema.fields.reduce((acc, field) => {
16
+ var _field$capabilities, _field$capabilities2;
17
+ if (!field.key) {
18
+ return acc;
19
+ }
20
+ acc[field.key] = {
21
+ id: field.key,
22
+ type: field.type ? CmsColumnTypeToPatternsColumnType[field.type] || 'STRING' : 'STRING',
23
+ displayName: field.displayName || '',
24
+ capabilities: {
25
+ supportedQueryOperators: ((_field$capabilities = field.capabilities) == null ? void 0 : _field$capabilities.queryOperators) || [],
26
+ sortable: ((_field$capabilities2 = field.capabilities) == null ? void 0 : _field$capabilities2.sortable) || false
27
+ }
28
+ };
29
+ return acc;
30
+ }, {})
31
+ };
32
+ }
33
+ export async function getCmsCompositeConfig(config) {
34
+ const schema = await fetchCmsSchema(config);
35
+ const collection = {
36
+ fetchData: async query => {
37
+ let dataQuery = items.query(config.collectionId);
38
+ dataQuery = addSearchToDataQuery({
39
+ dataQuery,
40
+ query,
41
+ schema,
42
+ columns: config.columns
43
+ });
44
+ dataQuery = addFiltersToDataQuery({
45
+ dataQuery,
46
+ query,
47
+ schema
48
+ });
49
+ dataQuery = addSortToDataQuery({
50
+ dataQuery,
51
+ query,
52
+ schema
53
+ });
54
+ const res = await dataQuery.skip(query.offset).limit(query.limit).find({
55
+ returnTotalCount: true
56
+ });
57
+ return {
58
+ items: res.items,
59
+ total: res.totalCount
60
+ };
61
+ }
62
+ };
63
+ return {
64
+ page: config,
65
+ schema,
66
+ collection
67
+ };
68
+ }
69
+ //# sourceMappingURL=CmsCompositeConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["collections","items","addFiltersToDataQuery","addSearchToDataQuery","addSortToDataQuery","CmsColumnTypeToPatternsColumnType","Type","TEXT","ARRAY","DATE","DATETIME","NUMBER","BOOLEAN","fetchCmsSchema","config","schema","getDataCollection","collectionId","fields","reduce","acc","field","_field$capabilities","_field$capabilities2","key","id","type","displayName","capabilities","supportedQueryOperators","queryOperators","sortable","getCmsCompositeConfig","collection","fetchData","query","dataQuery","columns","res","skip","offset","limit","find","returnTotalCount","total","totalCount","page"],"sources":["../../../../src/config/cms/CmsCompositeConfig.ts"],"sourcesContent":["import {\n Field,\n PageConfig,\n SchemaConfig,\n PatternsColumnType,\n} from '../../types';\nimport { collections, items } from '@wix/data';\nimport { CompositeConfig } from '../CompositeConfig';\nimport { ComputedQuery } from '@wix/patterns';\nimport { addFiltersToDataQuery, addSearchToDataQuery } from './filterUtils';\nimport { addSortToDataQuery } from './sortUtils';\n\nexport const CmsColumnTypeToPatternsColumnType: Partial<\n Record<collections.Type, PatternsColumnType>\n> = {\n [collections.Type.TEXT]: 'STRING',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\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.reduce((acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n acc[field.key] = {\n id: field.key,\n type: field.type\n ? CmsColumnTypeToPatternsColumnType[field.type] || 'STRING'\n : 'STRING',\n displayName: field.displayName || '',\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n return acc;\n }, {} as Record<string, Field>),\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 dataQuery = addSearchToDataQuery({\n dataQuery,\n query,\n schema,\n columns: config.columns,\n });\n dataQuery = addFiltersToDataQuery({\n dataQuery,\n query,\n schema,\n });\n dataQuery = addSortToDataQuery({\n dataQuery,\n query,\n schema,\n });\n const res = await dataQuery\n .skip(query.offset)\n .limit(query.limit)\n .find({ returnTotalCount: true });\n\n return {\n items: res.items,\n total: res.totalCount,\n };\n },\n };\n\n return { page: config, schema, collection };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ import { items } from '@wix/data';
2
+ import { FilterPropToOperator } from '../constants';
3
+ const FilterPropToMethod = {
4
+ from: 'ge',
5
+ to: 'le'
6
+ };
7
+ function isValidFilterProp(prop) {
8
+ return prop in FilterPropToMethod;
9
+ }
10
+ function getOperatorForFilter(prop) {
11
+ if (isValidFilterProp(prop)) {
12
+ return FilterPropToMethod[prop];
13
+ }
14
+ return undefined;
15
+ }
16
+ const isSupportedOperator = (schema, filterProp, filterKey) => {
17
+ const field = schema.fields[filterKey];
18
+ if (!field) {
19
+ return false;
20
+ }
21
+ if (!isValidFilterProp(filterProp)) {
22
+ return false;
23
+ }
24
+ const operator = FilterPropToOperator[filterProp];
25
+ const supportedOperators = field.capabilities.supportedQueryOperators;
26
+ return supportedOperators.includes(operator);
27
+ };
28
+ export function addFiltersToDataQuery(_ref) {
29
+ let {
30
+ dataQuery,
31
+ query,
32
+ schema
33
+ } = _ref;
34
+ let dataQueryWithFilters = dataQuery;
35
+ const {
36
+ filters
37
+ } = query;
38
+ for (const fieldKey in filters) {
39
+ const filter = filters[fieldKey];
40
+ if (filter && typeof filter === 'object') {
41
+ const filterObj = filter;
42
+ for (const filterProp in filterObj) {
43
+ const operator = getOperatorForFilter(filterProp);
44
+ if (operator && typeof dataQuery[operator] === 'function' && isSupportedOperator(schema, filterProp, fieldKey)) {
45
+ const value = filterObj[filterProp];
46
+ if (value !== undefined && value !== null) {
47
+ dataQueryWithFilters = dataQueryWithFilters[operator](fieldKey, value);
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ return dataQueryWithFilters;
54
+ }
55
+ export function addSearchToDataQuery(_ref2) {
56
+ let {
57
+ dataQuery,
58
+ query,
59
+ schema,
60
+ columns
61
+ } = _ref2;
62
+ const searchableFields = Object.keys(schema.fields).filter(key => {
63
+ const field = schema.fields[key];
64
+ const column = columns.find(col => col.id === key);
65
+ return column && field && field.type === 'STRING';
66
+ });
67
+ if (query.search && searchableFields.length > 0) {
68
+ let searchFilter = null;
69
+ searchableFields.forEach(field => {
70
+ const currentFilter = items.filter().contains(field, query.search);
71
+ searchFilter = searchFilter ? searchFilter.or(currentFilter) : currentFilter;
72
+ });
73
+ if (searchFilter) {
74
+ dataQuery = dataQuery.and(searchFilter);
75
+ }
76
+ }
77
+ return dataQuery;
78
+ }
79
+ //# sourceMappingURL=filterUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["items","FilterPropToOperator","FilterPropToMethod","from","to","isValidFilterProp","prop","getOperatorForFilter","undefined","isSupportedOperator","schema","filterProp","filterKey","field","fields","operator","supportedOperators","capabilities","supportedQueryOperators","includes","addFiltersToDataQuery","_ref","dataQuery","query","dataQueryWithFilters","filters","fieldKey","filter","filterObj","value","addSearchToDataQuery","_ref2","columns","searchableFields","Object","keys","key","column","find","col","id","type","search","length","searchFilter","forEach","currentFilter","contains","or","and"],"sources":["../../../../src/config/cms/filterUtils.ts"],"sourcesContent":["import { ComputedQuery } from '@wix/patterns';\nimport { items } from '@wix/data';\nimport { Column, SchemaConfig } from '../../types';\nimport { FilterProp, FilterPropToOperator } from '../constants';\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 prop in FilterPropToMethod;\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[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 function addFiltersToDataQuery({\n dataQuery,\n query,\n schema,\n}: {\n dataQuery: items.WixDataQuery;\n query: ComputedQuery<any>;\n schema: SchemaConfig;\n}) {\n let dataQueryWithFilters = dataQuery;\n const { filters } = query;\n for (const fieldKey in filters) {\n const filter = filters[fieldKey];\n if (filter && typeof filter === 'object') {\n const filterObj = filter as Record<string, any>;\n for (const filterProp in filterObj) {\n const operator = getOperatorForFilter(filterProp);\n if (\n operator &&\n typeof dataQuery[operator] === 'function' &&\n isSupportedOperator(schema, filterProp, fieldKey)\n ) {\n const value = filterObj[filterProp];\n if (value !== undefined && value !== null) {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n fieldKey,\n value,\n );\n }\n }\n }\n }\n }\n\n return dataQueryWithFilters;\n}\n\nexport function addSearchToDataQuery({\n dataQuery,\n query,\n schema,\n columns,\n}: {\n dataQuery: items.WixDataQuery;\n query: ComputedQuery<any>;\n schema: SchemaConfig;\n columns: Column[];\n}) {\n const searchableFields = Object.keys(schema.fields).filter((key) => {\n const field = schema.fields[key];\n const column = columns.find((col) => col.id === key);\n\n return column && field && field.type === 'STRING';\n });\n\n if (query.search && searchableFields.length > 0) {\n let searchFilter: items.WixDataFilter | null = null;\n\n searchableFields.forEach((field) => {\n const currentFilter = items.filter().contains(field, query.search!);\n searchFilter = searchFilter\n ? searchFilter.or(currentFilter)\n : currentFilter;\n });\n\n if (searchFilter) {\n dataQuery = dataQuery.and(searchFilter);\n }\n }\n\n return dataQuery;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ export function addSortToDataQuery(_ref) {
2
+ let {
3
+ dataQuery,
4
+ query,
5
+ schema
6
+ } = _ref;
7
+ let dataQueryWithSort = dataQuery;
8
+ const {
9
+ sort
10
+ } = query;
11
+ sort == null || sort.forEach(sortField => {
12
+ const {
13
+ fieldName,
14
+ order
15
+ } = sortField;
16
+ if (fieldName && order) {
17
+ const fieldDefinition = schema.fields[fieldName];
18
+ if (fieldDefinition != null && fieldDefinition.capabilities.sortable) {
19
+ if (order === 'asc') {
20
+ dataQueryWithSort = dataQueryWithSort.ascending(fieldName);
21
+ } else if (order === 'desc') {
22
+ dataQueryWithSort = dataQueryWithSort.descending(fieldName);
23
+ }
24
+ }
25
+ }
26
+ });
27
+ return dataQueryWithSort;
28
+ }
29
+ //# sourceMappingURL=sortUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["addSortToDataQuery","_ref","dataQuery","query","schema","dataQueryWithSort","sort","forEach","sortField","fieldName","order","fieldDefinition","fields","capabilities","sortable","ascending","descending"],"sources":["../../../../src/config/cms/sortUtils.ts"],"sourcesContent":["import { items } from '@wix/data';\nimport { SchemaConfig } from '../../types';\nimport { ComputedQuery } from '@wix/patterns';\n\nexport function addSortToDataQuery({\n dataQuery,\n query,\n schema,\n}: {\n dataQuery: items.WixDataQuery;\n query: ComputedQuery<any>;\n schema: SchemaConfig;\n}) {\n let dataQueryWithSort = dataQuery;\n const { sort } = query;\n sort?.forEach((sortField) => {\n const { fieldName, order } = sortField;\n if (fieldName && order) {\n const fieldDefinition = schema.fields[fieldName];\n if (fieldDefinition?.capabilities.sortable) {\n if (order === 'asc') {\n dataQueryWithSort = dataQueryWithSort.ascending(fieldName);\n } else if (order === 'desc') {\n dataQueryWithSort = dataQueryWithSort.descending(fieldName);\n }\n }\n }\n });\n\n return dataQueryWithSort;\n}\n"],"mappings":"AAIA,OAAO,SAASA,kBAAkBA,CAAAC,IAAA,EAQ/B;EAAA,IARgC;IACjCC,SAAS;IACTC,KAAK;IACLC;EAKF,CAAC,GAAAH,IAAA;EACC,IAAII,iBAAiB,GAAGH,SAAS;EACjC,MAAM;IAAEI;EAAK,CAAC,GAAGH,KAAK;EACtBG,IAAI,YAAJA,IAAI,CAAEC,OAAO,CAAEC,SAAS,IAAK;IAC3B,MAAM;MAAEC,SAAS;MAAEC;IAAM,CAAC,GAAGF,SAAS;IACtC,IAAIC,SAAS,IAAIC,KAAK,EAAE;MACtB,MAAMC,eAAe,GAAGP,MAAM,CAACQ,MAAM,CAACH,SAAS,CAAC;MAChD,IAAIE,eAAe,YAAfA,eAAe,CAAEE,YAAY,CAACC,QAAQ,EAAE;QAC1C,IAAIJ,KAAK,KAAK,KAAK,EAAE;UACnBL,iBAAiB,GAAGA,iBAAiB,CAACU,SAAS,CAACN,SAAS,CAAC;QAC5D,CAAC,MAAM,IAAIC,KAAK,KAAK,MAAM,EAAE;UAC3BL,iBAAiB,GAAGA,iBAAiB,CAACW,UAAU,CAACP,SAAS,CAAC;QAC7D;MACF;IACF;EACF,CAAC,CAAC;EAEF,OAAOJ,iBAAiB;AAC1B","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ export const FilterPropToOperator = {
2
+ from: 'GTE',
3
+ to: 'LTE'
4
+ };
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FilterPropToOperator","from","to"],"sources":["../../../src/config/constants.ts"],"sourcesContent":["import { QueryOperator } from '../types';\n\nexport type FilterProp = 'from' | 'to';\n\nexport const FilterPropToOperator: Record<FilterProp, QueryOperator> = {\n from: 'GTE',\n to: 'LTE',\n};\n"],"mappings":"AAIA,OAAO,MAAMA,oBAAuD,GAAG;EACrEC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE;AACN,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from './CompositeConfig';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/config/index.ts"],"sourcesContent":["export * from './CompositeConfig';\n"],"mappings":"AAAA,cAAc,mBAAmB","ignoreList":[]}
@@ -1,36 +1,115 @@
1
- import { usePatternsWizardContext, usePatternsWizardOverridesContext } from '../providers';
2
- import { SupportedValueTypeEnum } from '../types';
1
+ import { useConfig, usePatternsWizardOverridesContext } from '../providers';
3
2
  import { camelCase, get } from 'lodash';
4
3
  export const useColumns = () => {
5
4
  const {
6
- configuration: {
5
+ page: {
7
6
  columns = []
7
+ },
8
+ schema: {
9
+ fields
8
10
  }
9
- } = usePatternsWizardContext();
11
+ } = useConfig();
10
12
  const overrides = usePatternsWizardOverridesContext();
11
- return columns.map(column => ({
12
- id: column.id,
13
- title: column.name,
14
- ...(column.width ? {
15
- width: column.width
16
- } : {}),
17
- render: item => {
18
- var _overrides$columns, _overrides$columns$ca;
19
- const itemValue = get(item, column.id);
20
- return (overrides == null || (_overrides$columns = overrides.columns) == null || (_overrides$columns$ca = _overrides$columns[camelCase(column.id)]) == null ? void 0 : _overrides$columns$ca.call(_overrides$columns, {
21
- value: itemValue
22
- })) ?? createRenderer(column, itemValue);
13
+ const existingColumns = columns.filter(column => {
14
+ return !!fields[column.id];
15
+ });
16
+ return existingColumns.map(column => {
17
+ var _fieldDefinition$capa;
18
+ const fieldDefinition = fields[column.id];
19
+ if (!fieldDefinition) {
20
+ return null;
23
21
  }
24
- }));
22
+ const sortable = column.sortable && (fieldDefinition == null || (_fieldDefinition$capa = fieldDefinition.capabilities) == null ? void 0 : _fieldDefinition$capa.sortable);
23
+ const baseColumnConfig = {
24
+ id: column.id,
25
+ title: column.name || fieldDefinition.displayName,
26
+ ...(column.width ? {
27
+ width: column.width
28
+ } : {}),
29
+ ...createSortConfiguration(column, sortable),
30
+ ...createCustomColumnConfiguration(column),
31
+ render: item => {
32
+ var _overrides$columns, _overrides$columns$ca;
33
+ const itemValue = get(item, column.id);
34
+ return (overrides == null || (_overrides$columns = overrides.columns) == null || (_overrides$columns$ca = _overrides$columns[camelCase(column.id)]) == null ? void 0 : _overrides$columns$ca.call(_overrides$columns, {
35
+ value: itemValue
36
+ })) ?? createRenderer(fieldDefinition, itemValue);
37
+ }
38
+ };
39
+ return baseColumnConfig;
40
+ }).filter(Boolean);
25
41
  };
26
- const createRenderer = (column, itemValue) => {
27
- switch (column.type) {
28
- case SupportedValueTypeEnum.BOOLEAN:
42
+ const createRenderer = (fieldDefinition, itemValue) => {
43
+ if (itemValue == null) {
44
+ return '';
45
+ }
46
+ switch (fieldDefinition.type) {
47
+ case 'BOOLEAN':
29
48
  return itemValue ? '✔' : '✖';
30
- case SupportedValueTypeEnum.DATE:
31
- return itemValue ? new Date(itemValue).toLocaleString() : '';
49
+ case 'DATE':
50
+ if (itemValue instanceof Date) {
51
+ return itemValue.toLocaleDateString();
52
+ }
53
+ if (typeof itemValue === 'string') {
54
+ const date = new Date(itemValue);
55
+ return date.toLocaleDateString();
56
+ }
57
+ return itemValue;
58
+ case 'DATETIME':
59
+ if (itemValue instanceof Date) {
60
+ return itemValue.toLocaleString();
61
+ }
62
+ if (typeof itemValue === 'string') {
63
+ const date = new Date(itemValue);
64
+ return date.toLocaleString();
65
+ }
66
+ return itemValue;
67
+ case 'ARRAY':
68
+ // We assume that the array contains strings
69
+ // If the array contains objects, we need to handle it differently
70
+ return itemValue.join(', ');
32
71
  default:
33
72
  return itemValue;
34
73
  }
35
74
  };
75
+ const createSortConfiguration = (column, sortable) => {
76
+ if (!sortable) {
77
+ return {};
78
+ }
79
+ const sortableColumnConfig = {
80
+ sortable,
81
+ defaultSortOrder: column.defaultSortOrder
82
+ };
83
+
84
+ // default sort mode is ['asc', 'desc', undefined]
85
+ // so if sort mode is 'desc' -> we want to override the default
86
+ // and set it to ['desc', 'asc', undefined]
87
+ if (column.sortMode && column.sortMode === 'desc') {
88
+ return {
89
+ ...sortableColumnConfig,
90
+ sortMode: ['desc', 'asc', undefined]
91
+ };
92
+ }
93
+ return {
94
+ ...sortableColumnConfig
95
+ };
96
+ };
97
+ const createCustomColumnConfiguration = column => {
98
+ const reorderDisabled = !!column.reorderDisabled;
99
+ if (column.hiddenFromCustomColumnsSelection) {
100
+ return {
101
+ hiddenFromCustomColumnsSelection: true
102
+ };
103
+ }
104
+ if (column.hideable === false) {
105
+ return {
106
+ hideable: false,
107
+ reorderDisabled
108
+ };
109
+ }
110
+ return {
111
+ defaultHidden: !!column.defaultHidden,
112
+ reorderDisabled
113
+ };
114
+ };
36
115
  //# sourceMappingURL=useColumns.js.map