@wix/auto-patterns 1.9.0 → 1.10.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 (118) hide show
  1. package/README.md +50 -0
  2. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +35 -6
  3. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  4. package/dist/cjs/components/AutoPatternsEntityPage/Fields/ImageInput.js +2 -0
  5. package/dist/cjs/components/AutoPatternsEntityPage/Fields/ImageInput.js.map +1 -1
  6. package/dist/cjs/components/AutoPatternsGrid/AutoPatternsGrid.js +26 -15
  7. package/dist/cjs/components/AutoPatternsGrid/AutoPatternsGrid.js.map +1 -1
  8. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTable.js +29 -15
  9. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTable.js.map +1 -1
  10. package/dist/cjs/components/AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch.js +27 -0
  11. package/dist/cjs/components/AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch.js.map +1 -0
  12. package/dist/cjs/components/DynamicIcon.js +45 -9
  13. package/dist/cjs/components/DynamicIcon.js.map +1 -1
  14. package/dist/cjs/hooks/useBaseGridFeatures.js +39 -0
  15. package/dist/cjs/hooks/useBaseGridFeatures.js.map +1 -0
  16. package/dist/cjs/hooks/useBaseTableFeatures.js +39 -0
  17. package/dist/cjs/hooks/useBaseTableFeatures.js.map +1 -0
  18. package/dist/cjs/hooks/useCollectionPageActions.js +5 -3
  19. package/dist/cjs/hooks/useCollectionPageActions.js.map +1 -1
  20. package/dist/cjs/hooks/useColumns.js +14 -3
  21. package/dist/cjs/hooks/useColumns.js.map +1 -1
  22. package/dist/cjs/hooks/useGridFeatures.js +5 -19
  23. package/dist/cjs/hooks/useGridFeatures.js.map +1 -1
  24. package/dist/cjs/hooks/usePagePath.js +1 -1
  25. package/dist/cjs/hooks/usePagePath.js.map +1 -1
  26. package/dist/cjs/hooks/useTableFeatures.js +9 -16
  27. package/dist/cjs/hooks/useTableFeatures.js.map +1 -1
  28. package/dist/cjs/hooks/useTableGridSwitchFeatures.js +81 -0
  29. package/dist/cjs/hooks/useTableGridSwitchFeatures.js.map +1 -0
  30. package/dist/cjs/types/CollectionPageConfig.js.map +1 -1
  31. package/dist/cjs/types/actions/bulkActions.js.map +1 -1
  32. package/dist/cjs/types/actions/collectionPageActions.js.map +1 -1
  33. package/dist/cjs/types/wix-icons.d.js +2 -0
  34. package/dist/cjs/types/wix-icons.d.js.map +1 -0
  35. package/dist/cjs/utils/generated-icon-imports.js +1438 -0
  36. package/dist/cjs/utils/generated-icon-imports.js.map +1 -0
  37. package/dist/cjs/utils/media/getImageUrl.js +3 -0
  38. package/dist/cjs/utils/media/getImageUrl.js.map +1 -1
  39. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +19 -2
  40. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  41. package/dist/esm/components/AutoPatternsEntityPage/Fields/ImageInput.js +2 -0
  42. package/dist/esm/components/AutoPatternsEntityPage/Fields/ImageInput.js.map +1 -1
  43. package/dist/esm/components/AutoPatternsGrid/AutoPatternsGrid.js +25 -8
  44. package/dist/esm/components/AutoPatternsGrid/AutoPatternsGrid.js.map +1 -1
  45. package/dist/esm/components/AutoPatternsTable/AutoPatternsTable.js +28 -8
  46. package/dist/esm/components/AutoPatternsTable/AutoPatternsTable.js.map +1 -1
  47. package/dist/esm/components/AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch.js +14 -0
  48. package/dist/esm/components/AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch.js.map +1 -0
  49. package/dist/esm/components/DynamicIcon.js +13 -4
  50. package/dist/esm/components/DynamicIcon.js.map +1 -1
  51. package/dist/esm/hooks/useBaseGridFeatures.js +34 -0
  52. package/dist/esm/hooks/useBaseGridFeatures.js.map +1 -0
  53. package/dist/esm/hooks/useBaseTableFeatures.js +24 -0
  54. package/dist/esm/hooks/useBaseTableFeatures.js.map +1 -0
  55. package/dist/esm/hooks/useCollectionPageActions.js +3 -1
  56. package/dist/esm/hooks/useCollectionPageActions.js.map +1 -1
  57. package/dist/esm/hooks/useColumns.js +9 -4
  58. package/dist/esm/hooks/useColumns.js.map +1 -1
  59. package/dist/esm/hooks/useGridFeatures.js +5 -19
  60. package/dist/esm/hooks/useGridFeatures.js.map +1 -1
  61. package/dist/esm/hooks/usePagePath.js +1 -1
  62. package/dist/esm/hooks/usePagePath.js.map +1 -1
  63. package/dist/esm/hooks/useTableFeatures.js +10 -7
  64. package/dist/esm/hooks/useTableFeatures.js.map +1 -1
  65. package/dist/esm/hooks/useTableGridSwitchFeatures.js +79 -0
  66. package/dist/esm/hooks/useTableGridSwitchFeatures.js.map +1 -0
  67. package/dist/esm/types/CollectionPageConfig.js.map +1 -1
  68. package/dist/esm/types/actions/bulkActions.js.map +1 -1
  69. package/dist/esm/types/actions/collectionPageActions.js.map +1 -1
  70. package/dist/esm/types/wix-icons.d.js +2 -0
  71. package/dist/esm/types/wix-icons.d.js.map +1 -0
  72. package/dist/esm/utils/generated-icon-imports.js +1432 -0
  73. package/dist/esm/utils/generated-icon-imports.js.map +1 -0
  74. package/dist/esm/utils/media/getImageUrl.js +3 -0
  75. package/dist/esm/utils/media/getImageUrl.js.map +1 -1
  76. package/dist/types/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.d.ts.map +1 -1
  77. package/dist/types/components/AutoPatternsEntityPage/Fields/ImageInput.d.ts.map +1 -1
  78. package/dist/types/components/AutoPatternsGrid/AutoPatternsGrid.d.ts +2 -2
  79. package/dist/types/components/AutoPatternsGrid/AutoPatternsGrid.d.ts.map +1 -1
  80. package/dist/types/components/AutoPatternsTable/AutoPatternsTable.d.ts +2 -2
  81. package/dist/types/components/AutoPatternsTable/AutoPatternsTable.d.ts.map +1 -1
  82. package/dist/types/components/AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch.d.ts +7 -0
  83. package/dist/types/components/AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch.d.ts.map +1 -0
  84. package/dist/types/components/DynamicIcon.d.ts.map +1 -1
  85. package/dist/types/hooks/useBaseGridFeatures.d.ts +13 -0
  86. package/dist/types/hooks/useBaseGridFeatures.d.ts.map +1 -0
  87. package/dist/types/hooks/useBaseTableFeatures.d.ts +9 -0
  88. package/dist/types/hooks/useBaseTableFeatures.d.ts.map +1 -0
  89. package/dist/types/hooks/useCollectionPageActions.d.ts.map +1 -1
  90. package/dist/types/hooks/useColumns.d.ts.map +1 -1
  91. package/dist/types/hooks/useGridFeatures.d.ts.map +1 -1
  92. package/dist/types/hooks/useTableFeatures.d.ts +6 -6
  93. package/dist/types/hooks/useTableFeatures.d.ts.map +1 -1
  94. package/dist/types/hooks/useTableGridSwitchFeatures.d.ts +23 -0
  95. package/dist/types/hooks/useTableGridSwitchFeatures.d.ts.map +1 -0
  96. package/dist/types/types/CollectionPageConfig.d.ts +4 -1
  97. package/dist/types/types/CollectionPageConfig.d.ts.map +1 -1
  98. package/dist/types/types/actions/bulkActions.d.ts +1 -1
  99. package/dist/types/types/actions/bulkActions.d.ts.map +1 -1
  100. package/dist/types/types/actions/collectionPageActions.d.ts +11 -0
  101. package/dist/types/types/actions/collectionPageActions.d.ts.map +1 -1
  102. package/dist/types/utils/generated-icon-imports.d.ts +4 -0
  103. package/dist/types/utils/generated-icon-imports.d.ts.map +1 -0
  104. package/dist/types/utils/media/getImageUrl.d.ts +1 -1
  105. package/dist/types/utils/media/getImageUrl.d.ts.map +1 -1
  106. package/package.json +6 -3
  107. package/dist/cjs/components/AutoPatternsGrid/AutoPatternsGridContent.js +0 -44
  108. package/dist/cjs/components/AutoPatternsGrid/AutoPatternsGridContent.js.map +0 -1
  109. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTableContent.js +0 -54
  110. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTableContent.js.map +0 -1
  111. package/dist/esm/components/AutoPatternsGrid/AutoPatternsGridContent.js +0 -32
  112. package/dist/esm/components/AutoPatternsGrid/AutoPatternsGridContent.js.map +0 -1
  113. package/dist/esm/components/AutoPatternsTable/AutoPatternsTableContent.js +0 -42
  114. package/dist/esm/components/AutoPatternsTable/AutoPatternsTableContent.js.map +0 -1
  115. package/dist/types/components/AutoPatternsGrid/AutoPatternsGridContent.d.ts +0 -7
  116. package/dist/types/components/AutoPatternsGrid/AutoPatternsGridContent.d.ts.map +0 -1
  117. package/dist/types/components/AutoPatternsTable/AutoPatternsTableContent.d.ts +0 -7
  118. package/dist/types/components/AutoPatternsTable/AutoPatternsTableContent.d.ts.map +0 -1
@@ -5,6 +5,9 @@ exports.getImageUrl = void 0;
5
5
  exports.isAbsoluteUrl = isAbsoluteUrl;
6
6
  var _sdk = require("@wix/sdk");
7
7
  const getImageUrl = image => {
8
+ if (!image) {
9
+ return undefined;
10
+ }
8
11
  if (isAbsoluteUrl(image)) {
9
12
  return image;
10
13
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_sdk","require","getImageUrl","image","isAbsoluteUrl","media","url","exports","parsed","URL","protocol","host"],"sources":["../../../../src/utils/media/getImageUrl.ts"],"sourcesContent":["import { media } from '@wix/sdk';\n\nexport const getImageUrl = (image: string) => {\n if (isAbsoluteUrl(image)) {\n return image;\n }\n\n return media.getImageUrl(image).url;\n};\n\nexport function isAbsoluteUrl(url: string): boolean {\n try {\n const parsed = new URL(url);\n return !!parsed.protocol && !!parsed.host;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAEO,MAAMC,WAAW,GAAIC,KAAa,IAAK;EAC5C,IAAIC,aAAa,CAACD,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK;EACd;EAEA,OAAOE,UAAK,CAACH,WAAW,CAACC,KAAK,CAAC,CAACG,GAAG;AACrC,CAAC;AAACC,OAAA,CAAAL,WAAA,GAAAA,WAAA;AAEK,SAASE,aAAaA,CAACE,GAAW,EAAW;EAClD,IAAI;IACF,MAAME,MAAM,GAAG,IAAIC,GAAG,CAACH,GAAG,CAAC;IAC3B,OAAO,CAAC,CAACE,MAAM,CAACE,QAAQ,IAAI,CAAC,CAACF,MAAM,CAACG,IAAI;EAC3C,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_sdk","require","getImageUrl","image","undefined","isAbsoluteUrl","media","url","exports","parsed","URL","protocol","host"],"sources":["../../../../src/utils/media/getImageUrl.ts"],"sourcesContent":["import { media } from '@wix/sdk';\n\nexport const getImageUrl = (image: string | undefined | null) => {\n if (!image) {\n return undefined;\n }\n\n if (isAbsoluteUrl(image)) {\n return image;\n }\n\n return media.getImageUrl(image).url;\n};\n\nexport function isAbsoluteUrl(url: string): boolean {\n try {\n const parsed = new URL(url);\n return !!parsed.protocol && !!parsed.host;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAEO,MAAMC,WAAW,GAAIC,KAAgC,IAAK;EAC/D,IAAI,CAACA,KAAK,EAAE;IACV,OAAOC,SAAS;EAClB;EAEA,IAAIC,aAAa,CAACF,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK;EACd;EAEA,OAAOG,UAAK,CAACJ,WAAW,CAACC,KAAK,CAAC,CAACI,GAAG;AACrC,CAAC;AAACC,OAAA,CAAAN,WAAA,GAAAA,WAAA;AAEK,SAASG,aAAaA,CAACE,GAAW,EAAW;EAClD,IAAI;IACF,MAAME,MAAM,GAAG,IAAIC,GAAG,CAACH,GAAG,CAAC;IAC3B,OAAO,CAAC,CAACE,MAAM,CAACE,QAAQ,IAAI,CAAC,CAACF,MAAM,CAACG,IAAI;EAC3C,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF","ignoreList":[]}
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
2
  import { AutoPatternsTable } from '../AutoPatternsTable';
3
3
  import { AutoPatternsGrid } from '../AutoPatternsGrid';
4
+ import { AutoPatternsTableGridSwitch } from '../AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch';
5
+ import { SchemaProvider } from '../../providers';
4
6
  export const AutoPatternsCollectionPageContent = _ref => {
5
7
  let {
6
8
  configuration
@@ -16,7 +18,6 @@ export const AutoPatternsCollectionPageContent = _ref => {
16
18
  case 'Table':
17
19
  if (component.table) {
18
20
  return /*#__PURE__*/React.createElement(AutoPatternsTable, {
19
- key: component.table.collection.collectionId,
20
21
  configuration: component.table
21
22
  });
22
23
  }
@@ -24,14 +25,30 @@ export const AutoPatternsCollectionPageContent = _ref => {
24
25
  case 'Grid':
25
26
  if (component.grid) {
26
27
  return /*#__PURE__*/React.createElement(AutoPatternsGrid, {
27
- key: component.grid.collection.collectionId,
28
28
  configuration: component.grid
29
29
  });
30
30
  }
31
31
  return null;
32
+ case 'TableGridSwitch':
33
+ if (component.tableGridSwitch) {
34
+ return /*#__PURE__*/React.createElement(AutoPatternsTableGridSwitch, {
35
+ configuration: component.tableGridSwitch
36
+ });
37
+ }
38
+ return null;
32
39
  default:
33
40
  return null;
34
41
  }
42
+ }).map(element => {
43
+ if (element == null) {
44
+ return null;
45
+ }
46
+ const configuration = element.props.configuration;
47
+ return /*#__PURE__*/React.createElement(SchemaProvider, {
48
+ key: configuration.collection.collectionId,
49
+ collectionId: configuration.collection.collectionId,
50
+ entityTypeSource: configuration.collection.entityTypeSource
51
+ }, element);
35
52
  }));
36
53
  };
37
54
  //# sourceMappingURL=AutoPatternsCollectionPageContent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","AutoPatternsTable","AutoPatternsGrid","AutoPatternsCollectionPageContent","_ref","configuration","components","createElement","Fragment","map","component","type","table","key","collection","collectionId","grid"],"sources":["../../../../src/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.tsx"],"sourcesContent":["import React from 'react';\nimport { AutoPatternsTable } from '../AutoPatternsTable';\nimport { CollectionPageConfig } from '../../types';\nimport { AutoPatternsGrid } from '../AutoPatternsGrid';\n\nexport interface AutoPatternsCollectionPageContentProps {\n configuration: CollectionPageConfig;\n}\n\nexport const AutoPatternsCollectionPageContent = ({\n configuration,\n}: AutoPatternsCollectionPageContentProps) => {\n const { components } = configuration;\n return (\n <>\n {components.map((component) => {\n const { type } = component;\n switch (type) {\n case 'Table':\n if (component.table) {\n return (\n <AutoPatternsTable\n key={component.table.collection.collectionId}\n configuration={component.table}\n />\n );\n }\n return null;\n case 'Grid':\n if (component.grid) {\n return (\n <AutoPatternsGrid\n key={component.grid.collection.collectionId}\n configuration={component.grid}\n />\n );\n }\n return null;\n default:\n return null;\n }\n })}\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,iBAAiB,QAAQ,sBAAsB;AAExD,SAASC,gBAAgB,QAAQ,qBAAqB;AAMtD,OAAO,MAAMC,iCAAiC,GAAGC,IAAA,IAEH;EAAA,IAFI;IAChDC;EACsC,CAAC,GAAAD,IAAA;EACvC,MAAM;IAAEE;EAAW,CAAC,GAAGD,aAAa;EACpC,oBACEL,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAQ,QAAA,QACGF,UAAU,CAACG,GAAG,CAAEC,SAAS,IAAK;IAC7B,MAAM;MAAEC;IAAK,CAAC,GAAGD,SAAS;IAC1B,QAAQC,IAAI;MACV,KAAK,OAAO;QACV,IAAID,SAAS,CAACE,KAAK,EAAE;UACnB,oBACEZ,KAAA,CAAAO,aAAA,CAACN,iBAAiB;YAChBY,GAAG,EAAEH,SAAS,CAACE,KAAK,CAACE,UAAU,CAACC,YAAa;YAC7CV,aAAa,EAAEK,SAAS,CAACE;UAAM,CAChC,CAAC;QAEN;QACA,OAAO,IAAI;MACb,KAAK,MAAM;QACT,IAAIF,SAAS,CAACM,IAAI,EAAE;UAClB,oBACEhB,KAAA,CAAAO,aAAA,CAACL,gBAAgB;YACfW,GAAG,EAAEH,SAAS,CAACM,IAAI,CAACF,UAAU,CAACC,YAAa;YAC5CV,aAAa,EAAEK,SAAS,CAACM;UAAK,CAC/B,CAAC;QAEN;QACA,OAAO,IAAI;MACb;QACE,OAAO,IAAI;IACf;EACF,CAAC,CACD,CAAC;AAEP,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","AutoPatternsTable","AutoPatternsGrid","AutoPatternsTableGridSwitch","SchemaProvider","AutoPatternsCollectionPageContent","_ref","configuration","components","createElement","Fragment","map","component","type","table","grid","tableGridSwitch","element","props","key","collection","collectionId","entityTypeSource"],"sources":["../../../../src/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.tsx"],"sourcesContent":["import React, { ReactElement } from 'react';\nimport { AutoPatternsTable } from '../AutoPatternsTable';\nimport {\n BaseCollectionComponentConfig,\n CollectionPageConfig,\n} from '../../types';\nimport { AutoPatternsGrid } from '../AutoPatternsGrid';\nimport { AutoPatternsTableGridSwitch } from '../AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch';\nimport { SchemaProvider } from '../../providers';\n\nexport interface AutoPatternsCollectionPageContentProps {\n configuration: CollectionPageConfig;\n}\n\nexport const AutoPatternsCollectionPageContent = ({\n configuration,\n}: AutoPatternsCollectionPageContentProps) => {\n const { components } = configuration;\n return (\n <>\n {components\n .map(\n (\n component,\n ): ReactElement<{\n configuration: BaseCollectionComponentConfig;\n }> | null => {\n const { type } = component;\n switch (type) {\n case 'Table':\n if (component.table) {\n return <AutoPatternsTable configuration={component.table} />;\n }\n return null;\n case 'Grid':\n if (component.grid) {\n return <AutoPatternsGrid configuration={component.grid} />;\n }\n return null;\n case 'TableGridSwitch':\n if (component.tableGridSwitch) {\n return (\n <AutoPatternsTableGridSwitch\n configuration={component.tableGridSwitch}\n />\n );\n }\n return null;\n default:\n return null;\n }\n },\n )\n .map((element) => {\n if (element == null) {\n return null;\n }\n\n const configuration = element.props.configuration;\n\n return (\n <SchemaProvider\n key={configuration.collection.collectionId}\n collectionId={configuration.collection.collectionId}\n entityTypeSource={configuration.collection.entityTypeSource}\n >\n {element}\n </SchemaProvider>\n );\n })}\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAwB,OAAO;AAC3C,SAASC,iBAAiB,QAAQ,sBAAsB;AAKxD,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,2BAA2B,QAAQ,4DAA4D;AACxG,SAASC,cAAc,QAAQ,iBAAiB;AAMhD,OAAO,MAAMC,iCAAiC,GAAGC,IAAA,IAEH;EAAA,IAFI;IAChDC;EACsC,CAAC,GAAAD,IAAA;EACvC,MAAM;IAAEE;EAAW,CAAC,GAAGD,aAAa;EACpC,oBACEP,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAU,QAAA,QACGF,UAAU,CACRG,GAAG,CAEAC,SAAS,IAGE;IACX,MAAM;MAAEC;IAAK,CAAC,GAAGD,SAAS;IAC1B,QAAQC,IAAI;MACV,KAAK,OAAO;QACV,IAAID,SAAS,CAACE,KAAK,EAAE;UACnB,oBAAOd,KAAA,CAAAS,aAAA,CAACR,iBAAiB;YAACM,aAAa,EAAEK,SAAS,CAACE;UAAM,CAAE,CAAC;QAC9D;QACA,OAAO,IAAI;MACb,KAAK,MAAM;QACT,IAAIF,SAAS,CAACG,IAAI,EAAE;UAClB,oBAAOf,KAAA,CAAAS,aAAA,CAACP,gBAAgB;YAACK,aAAa,EAAEK,SAAS,CAACG;UAAK,CAAE,CAAC;QAC5D;QACA,OAAO,IAAI;MACb,KAAK,iBAAiB;QACpB,IAAIH,SAAS,CAACI,eAAe,EAAE;UAC7B,oBACEhB,KAAA,CAAAS,aAAA,CAACN,2BAA2B;YAC1BI,aAAa,EAAEK,SAAS,CAACI;UAAgB,CAC1C,CAAC;QAEN;QACA,OAAO,IAAI;MACb;QACE,OAAO,IAAI;IACf;EACF,CACF,CAAC,CACAL,GAAG,CAAEM,OAAO,IAAK;IAChB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACnB,OAAO,IAAI;IACb;IAEA,MAAMV,aAAa,GAAGU,OAAO,CAACC,KAAK,CAACX,aAAa;IAEjD,oBACEP,KAAA,CAAAS,aAAA,CAACL,cAAc;MACbe,GAAG,EAAEZ,aAAa,CAACa,UAAU,CAACC,YAAa;MAC3CA,YAAY,EAAEd,aAAa,CAACa,UAAU,CAACC,YAAa;MACpDC,gBAAgB,EAAEf,aAAa,CAACa,UAAU,CAACE;IAAiB,GAE3DL,OACa,CAAC;EAErB,CAAC,CACH,CAAC;AAEP,CAAC","ignoreList":[]}
@@ -57,6 +57,8 @@ export const ImageInput = props => {
57
57
  onUpdateImage: () => openMedia(),
58
58
  updateImageInfo: t('cairo.replace-image.tooltip'),
59
59
  removeImageInfo: t('cairo.table.advanced-sorting.remove.button.tooltip'),
60
+ height: "120px",
61
+ width: "25%",
60
62
  fit: "cover",
61
63
  onRemoveImage: () => controller.field.onChange(null)
62
64
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["React","FormField","ImageViewer","useEntityPageContext","useSelector","useWixPatternsContainer","useController","getImageUrl","dashboard","ImageInput","props","_pageState$entity","_field$validation2","_controller$fieldStat","field","dataHook","translate","t","container","initTask","status","pageState","openMedia","_chosenMediaItems$ite","chosenMediaItems","openMediaManager","multiSelect","category","newImage","items","media","image","controller","onChange","error","console","name","id","control","form","defaultValue","entity","rules","validate","value","_field$validation","validation","required","undefined","imageUrl","createElement","label","displayName","fieldState","statusMessage","message","onAddImage","onUpdateImage","updateImageInfo","removeImageInfo","fit","onRemoveImage"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/ImageInput.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField, ImageViewer } from '@wix/design-system';\nimport { BaseInputProps } from './types';\nimport {\n useEntityPageContext,\n useSelector,\n useWixPatternsContainer,\n} from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\nimport { getImageUrl } from '../../../utils/media/getImageUrl';\nimport { dashboard } from '@wix/dashboard';\n\nexport interface ImageInputProps extends BaseInputProps<string> {}\n\nexport const ImageInput = (props: ImageInputProps) => {\n const { field, dataHook } = props;\n\n const { translate: t, ...container } = useWixPatternsContainer();\n useSelector(() => container.initTask.status);\n\n const pageState = useEntityPageContext();\n\n async function openMedia() {\n try {\n const chosenMediaItems = await dashboard.openMediaManager({\n multiSelect: false,\n category: 'IMAGE',\n });\n\n const newImage = chosenMediaItems?.items[0]?.media?.image?.image;\n\n controller.field.onChange(newImage);\n } catch (error) {\n console.error('Error opening Media Manager or no files selected:', error);\n }\n }\n\n const controller = useController({\n name: field?.id ?? '',\n control: pageState.form.control,\n defaultValue: (pageState.entity as any)?.[field?.id ?? ''],\n rules: {\n validate: (value) => {\n if (\n field.validation?.required &&\n (value === null || value === undefined || value === '')\n ) {\n return t('cairo.fieldValidation.requiredField');\n }\n\n return true;\n },\n },\n });\n\n const imageUrl =\n controller.field.value && getImageUrl(controller.field.value);\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n status={controller.fieldState.error ? 'error' : undefined}\n statusMessage={controller.fieldState.error?.message}\n dataHook={dataHook}\n >\n <ImageViewer\n imageUrl={imageUrl}\n dataHook={`image-${field.id}`}\n onAddImage={() => openMedia()}\n onUpdateImage={() => openMedia()}\n updateImageInfo={t('cairo.replace-image.tooltip')}\n removeImageInfo={t(\n 'cairo.table.advanced-sorting.remove.button.tooltip',\n )}\n fit=\"cover\"\n onRemoveImage={() => controller.field.onChange(null)}\n />\n </FormField>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","FormField","ImageViewer","useEntityPageContext","useSelector","useWixPatternsContainer","useController","getImageUrl","dashboard","ImageInput","props","_pageState$entity","_field$validation2","_controller$fieldStat","field","dataHook","translate","t","container","initTask","status","pageState","openMedia","_chosenMediaItems$ite","chosenMediaItems","openMediaManager","multiSelect","category","newImage","items","media","image","controller","onChange","error","console","name","id","control","form","defaultValue","entity","rules","validate","value","_field$validation","validation","required","undefined","imageUrl","createElement","label","displayName","fieldState","statusMessage","message","onAddImage","onUpdateImage","updateImageInfo","removeImageInfo","height","width","fit","onRemoveImage"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/ImageInput.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField, ImageViewer } from '@wix/design-system';\nimport { BaseInputProps } from './types';\nimport {\n useEntityPageContext,\n useSelector,\n useWixPatternsContainer,\n} from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\nimport { getImageUrl } from '../../../utils/media/getImageUrl';\nimport { dashboard } from '@wix/dashboard';\n\nexport interface ImageInputProps extends BaseInputProps<string> {}\n\nexport const ImageInput = (props: ImageInputProps) => {\n const { field, dataHook } = props;\n\n const { translate: t, ...container } = useWixPatternsContainer();\n useSelector(() => container.initTask.status);\n\n const pageState = useEntityPageContext();\n\n async function openMedia() {\n try {\n const chosenMediaItems = await dashboard.openMediaManager({\n multiSelect: false,\n category: 'IMAGE',\n });\n\n const newImage = chosenMediaItems?.items[0]?.media?.image?.image;\n\n controller.field.onChange(newImage);\n } catch (error) {\n console.error('Error opening Media Manager or no files selected:', error);\n }\n }\n\n const controller = useController({\n name: field?.id ?? '',\n control: pageState.form.control,\n defaultValue: (pageState.entity as any)?.[field?.id ?? ''],\n rules: {\n validate: (value) => {\n if (\n field.validation?.required &&\n (value === null || value === undefined || value === '')\n ) {\n return t('cairo.fieldValidation.requiredField');\n }\n\n return true;\n },\n },\n });\n\n const imageUrl =\n controller.field.value && getImageUrl(controller.field.value);\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n status={controller.fieldState.error ? 'error' : undefined}\n statusMessage={controller.fieldState.error?.message}\n dataHook={dataHook}\n >\n <ImageViewer\n imageUrl={imageUrl}\n dataHook={`image-${field.id}`}\n onAddImage={() => openMedia()}\n onUpdateImage={() => openMedia()}\n updateImageInfo={t('cairo.replace-image.tooltip')}\n removeImageInfo={t(\n 'cairo.table.advanced-sorting.remove.button.tooltip',\n )}\n height=\"120px\"\n width=\"25%\"\n fit=\"cover\"\n onRemoveImage={() => controller.field.onChange(null)}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,WAAW,QAAQ,oBAAoB;AAE3D,SACEC,oBAAoB,EACpBC,WAAW,EACXC,uBAAuB,QAClB,eAAe;AACtB,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,WAAW,QAAQ,kCAAkC;AAC9D,SAASC,SAAS,QAAQ,gBAAgB;AAI1C,OAAO,MAAMC,UAAU,GAAIC,KAAsB,IAAK;EAAA,IAAAC,iBAAA,EAAAC,kBAAA,EAAAC,qBAAA;EACpD,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGL,KAAK;EAEjC,MAAM;IAAEM,SAAS,EAAEC,CAAC;IAAE,GAAGC;EAAU,CAAC,GAAGb,uBAAuB,CAAC,CAAC;EAChED,WAAW,CAAC,MAAMc,SAAS,CAACC,QAAQ,CAACC,MAAM,CAAC;EAE5C,MAAMC,SAAS,GAAGlB,oBAAoB,CAAC,CAAC;EAExC,eAAemB,SAASA,CAAA,EAAG;IACzB,IAAI;MAAA,IAAAC,qBAAA;MACF,MAAMC,gBAAgB,GAAG,MAAMhB,SAAS,CAACiB,gBAAgB,CAAC;QACxDC,WAAW,EAAE,KAAK;QAClBC,QAAQ,EAAE;MACZ,CAAC,CAAC;MAEF,MAAMC,QAAQ,GAAGJ,gBAAgB,aAAAD,qBAAA,GAAhBC,gBAAgB,CAAEK,KAAK,CAAC,CAAC,CAAC,cAAAN,qBAAA,GAA1BA,qBAAA,CAA4BO,KAAK,cAAAP,qBAAA,GAAjCA,qBAAA,CAAmCQ,KAAK,qBAAxCR,qBAAA,CAA0CQ,KAAK;MAEhEC,UAAU,CAAClB,KAAK,CAACmB,QAAQ,CAACL,QAAQ,CAAC;IACrC,CAAC,CAAC,OAAOM,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,mDAAmD,EAAEA,KAAK,CAAC;IAC3E;EACF;EAEA,MAAMF,UAAU,GAAG1B,aAAa,CAAC;IAC/B8B,IAAI,EAAE,CAAAtB,KAAK,oBAALA,KAAK,CAAEuB,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAEjB,SAAS,CAACkB,IAAI,CAACD,OAAO;IAC/BE,YAAY,GAAA7B,iBAAA,GAAGU,SAAS,CAACoB,MAAM,qBAAjB9B,iBAAA,CAA4B,CAAAG,KAAK,oBAALA,KAAK,CAAEuB,EAAE,KAAI,EAAE,CAAC;IAC1DK,KAAK,EAAE;MACLC,QAAQ,EAAGC,KAAK,IAAK;QAAA,IAAAC,iBAAA;QACnB,IACE,CAAAA,iBAAA,GAAA/B,KAAK,CAACgC,UAAU,aAAhBD,iBAAA,CAAkBE,QAAQ,KACzBH,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKI,SAAS,IAAIJ,KAAK,KAAK,EAAE,CAAC,EACvD;UACA,OAAO3B,CAAC,CAAC,qCAAqC,CAAC;QACjD;QAEA,OAAO,IAAI;MACb;IACF;EACF,CAAC,CAAC;EAEF,MAAMgC,QAAQ,GACZjB,UAAU,CAAClB,KAAK,CAAC8B,KAAK,IAAIrC,WAAW,CAACyB,UAAU,CAAClB,KAAK,CAAC8B,KAAK,CAAC;EAE/D,oBACE5C,KAAA,CAAAkD,aAAA,CAACjD,SAAS;IACRkD,KAAK,EAAErC,KAAK,CAACsC,WAAY;IACzBL,QAAQ,GAAAnC,kBAAA,GAAEE,KAAK,CAACgC,UAAU,qBAAhBlC,kBAAA,CAAkBmC,QAAS;IACrC3B,MAAM,EAAEY,UAAU,CAACqB,UAAU,CAACnB,KAAK,GAAG,OAAO,GAAGc,SAAU;IAC1DM,aAAa,GAAAzC,qBAAA,GAAEmB,UAAU,CAACqB,UAAU,CAACnB,KAAK,qBAA3BrB,qBAAA,CAA6B0C,OAAQ;IACpDxC,QAAQ,EAAEA;EAAS,gBAEnBf,KAAA,CAAAkD,aAAA,CAAChD,WAAW;IACV+C,QAAQ,EAAEA,QAAS;IACnBlC,QAAQ,EAAE,SAASD,KAAK,CAACuB,EAAE,EAAG;IAC9BmB,UAAU,EAAEA,CAAA,KAAMlC,SAAS,CAAC,CAAE;IAC9BmC,aAAa,EAAEA,CAAA,KAAMnC,SAAS,CAAC,CAAE;IACjCoC,eAAe,EAAEzC,CAAC,CAAC,6BAA6B,CAAE;IAClD0C,eAAe,EAAE1C,CAAC,CAChB,oDACF,CAAE;IACF2C,MAAM,EAAC,OAAO;IACdC,KAAK,EAAC,KAAK;IACXC,GAAG,EAAC,OAAO;IACXC,aAAa,EAAEA,CAAA,KAAM/B,UAAU,CAAClB,KAAK,CAACmB,QAAQ,CAAC,IAAI;EAAE,CACtD,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
@@ -1,15 +1,32 @@
1
1
  import React from 'react';
2
- import { AutoPatternsGridContent } from './AutoPatternsGridContent';
3
- import { SchemaProvider } from '../../providers/SchemaContext';
2
+ import { Grid } from '@wix/patterns';
3
+ import { useGridFeatures } from '../../hooks';
4
4
  export const AutoPatternsGrid = _ref => {
5
5
  let {
6
6
  configuration
7
7
  } = _ref;
8
- return /*#__PURE__*/React.createElement(SchemaProvider, {
9
- collectionId: configuration.collection.collectionId,
10
- entityTypeSource: configuration.collection.entityTypeSource
11
- }, /*#__PURE__*/React.createElement(AutoPatternsGridContent, {
12
- configuration: configuration
13
- }));
8
+ const {
9
+ state,
10
+ search,
11
+ title,
12
+ emptyState,
13
+ filters,
14
+ actionCell,
15
+ renderItem,
16
+ imagePlacement,
17
+ preset
18
+ } = useGridFeatures(configuration);
19
+ return /*#__PURE__*/React.createElement(Grid, {
20
+ dataHook: "auto-patterns-grid",
21
+ search: search,
22
+ title: title,
23
+ state: state,
24
+ actionCell: actionCell,
25
+ filters: filters,
26
+ emptyState: emptyState,
27
+ imagePlacement: imagePlacement,
28
+ preset: preset,
29
+ renderItem: renderItem
30
+ });
14
31
  };
15
32
  //# sourceMappingURL=AutoPatternsGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","AutoPatternsGridContent","SchemaProvider","AutoPatternsGrid","_ref","configuration","createElement","collectionId","collection","entityTypeSource"],"sources":["../../../../src/components/AutoPatternsGrid/AutoPatternsGrid.tsx"],"sourcesContent":["import React from 'react';\nimport { GridConfig } from '../../types';\nimport { AutoPatternsGridContent } from './AutoPatternsGridContent';\nimport { SchemaProvider } from '../../providers/SchemaContext';\n\nexport interface AutoPatternsGridProps {\n configuration: GridConfig;\n}\n\nexport const AutoPatternsGrid = ({ configuration }: AutoPatternsGridProps) => {\n return (\n <SchemaProvider\n collectionId={configuration.collection.collectionId}\n entityTypeSource={configuration.collection.entityTypeSource}\n >\n <AutoPatternsGridContent configuration={configuration} />\n </SchemaProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,uBAAuB,QAAQ,2BAA2B;AACnE,SAASC,cAAc,QAAQ,+BAA+B;AAM9D,OAAO,MAAMC,gBAAgB,GAAGC,IAAA,IAA8C;EAAA,IAA7C;IAAEC;EAAqC,CAAC,GAAAD,IAAA;EACvE,oBACEJ,KAAA,CAAAM,aAAA,CAACJ,cAAc;IACbK,YAAY,EAAEF,aAAa,CAACG,UAAU,CAACD,YAAa;IACpDE,gBAAgB,EAAEJ,aAAa,CAACG,UAAU,CAACC;EAAiB,gBAE5DT,KAAA,CAAAM,aAAA,CAACL,uBAAuB;IAACI,aAAa,EAAEA;EAAc,CAAE,CAC1C,CAAC;AAErB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Grid","useGridFeatures","AutoPatternsGrid","_ref","configuration","state","search","title","emptyState","filters","actionCell","renderItem","imagePlacement","preset","createElement","dataHook"],"sources":["../../../../src/components/AutoPatternsGrid/AutoPatternsGrid.tsx"],"sourcesContent":["import React from 'react';\nimport { Grid } from '@wix/patterns';\nimport { GridConfig } from '../../types';\nimport { useGridFeatures } from '../../hooks';\n\nexport interface AutoPatternsGridContentProps {\n configuration: GridConfig;\n}\n\nexport const AutoPatternsGrid = ({\n configuration,\n}: AutoPatternsGridContentProps) => {\n const {\n state,\n search,\n title,\n emptyState,\n filters,\n actionCell,\n renderItem,\n imagePlacement,\n preset,\n } = useGridFeatures(configuration);\n\n return (\n <Grid\n dataHook=\"auto-patterns-grid\"\n search={search}\n title={title}\n state={state}\n actionCell={actionCell}\n filters={filters}\n emptyState={emptyState}\n imagePlacement={imagePlacement}\n preset={preset}\n renderItem={renderItem}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,eAAe;AAEpC,SAASC,eAAe,QAAQ,aAAa;AAM7C,OAAO,MAAMC,gBAAgB,GAAGC,IAAA,IAEI;EAAA,IAFH;IAC/BC;EAC4B,CAAC,GAAAD,IAAA;EAC7B,MAAM;IACJE,KAAK;IACLC,MAAM;IACNC,KAAK;IACLC,UAAU;IACVC,OAAO;IACPC,UAAU;IACVC,UAAU;IACVC,cAAc;IACdC;EACF,CAAC,GAAGZ,eAAe,CAACG,aAAa,CAAC;EAElC,oBACEL,KAAA,CAAAe,aAAA,CAACd,IAAI;IACHe,QAAQ,EAAC,oBAAoB;IAC7BT,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbF,KAAK,EAAEA,KAAM;IACbK,UAAU,EAAEA,UAAW;IACvBD,OAAO,EAAEA,OAAQ;IACjBD,UAAU,EAAEA,UAAW;IACvBI,cAAc,EAAEA,cAAe;IAC/BC,MAAM,EAAEA,MAAO;IACfF,UAAU,EAAEA;EAAW,CACxB,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -1,15 +1,35 @@
1
1
  import React from 'react';
2
- import { AutoPatternsTableContent } from './AutoPatternsTableContent';
3
- import { SchemaProvider } from '../../providers/SchemaContext';
2
+ import { Table } from '@wix/patterns';
3
+ import { useTableFeatures } from '../../hooks';
4
4
  export const AutoPatternsTable = _ref => {
5
5
  let {
6
6
  configuration
7
7
  } = _ref;
8
- return /*#__PURE__*/React.createElement(SchemaProvider, {
9
- collectionId: configuration.collection.collectionId,
10
- entityTypeSource: configuration.collection.entityTypeSource
11
- }, /*#__PURE__*/React.createElement(AutoPatternsTableContent, {
12
- configuration: configuration
13
- }));
8
+ const {
9
+ state,
10
+ columns,
11
+ customColumns,
12
+ search,
13
+ title,
14
+ emptyState,
15
+ filters,
16
+ actionCell,
17
+ bulkActionToolbar,
18
+ onRowClick
19
+ } = useTableFeatures(configuration);
20
+ return /*#__PURE__*/React.createElement(Table, {
21
+ dataHook: "auto-patterns-table",
22
+ search: search,
23
+ title: title,
24
+ state: state,
25
+ columns: columns,
26
+ customColumns: customColumns,
27
+ actionCell: actionCell,
28
+ filters: filters,
29
+ emptyState: emptyState,
30
+ bulkActionToolbar: bulkActionToolbar,
31
+ onRowClick: onRowClick,
32
+ horizontalScroll: true
33
+ });
14
34
  };
15
35
  //# sourceMappingURL=AutoPatternsTable.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","AutoPatternsTableContent","SchemaProvider","AutoPatternsTable","_ref","configuration","createElement","collectionId","collection","entityTypeSource"],"sources":["../../../../src/components/AutoPatternsTable/AutoPatternsTable.tsx"],"sourcesContent":["import React from 'react';\nimport { TableConfig } from '../../types';\n\nimport { AutoPatternsTableContent } from './AutoPatternsTableContent';\nimport { SchemaProvider } from '../../providers/SchemaContext';\n\nexport interface AutoPatternsTableProps {\n configuration: TableConfig;\n}\n\nexport const AutoPatternsTable = ({\n configuration,\n}: AutoPatternsTableProps) => {\n return (\n <SchemaProvider\n collectionId={configuration.collection.collectionId}\n entityTypeSource={configuration.collection.entityTypeSource}\n >\n <AutoPatternsTableContent configuration={configuration} />\n </SchemaProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,cAAc,QAAQ,+BAA+B;AAM9D,OAAO,MAAMC,iBAAiB,GAAGC,IAAA,IAEH;EAAA,IAFI;IAChCC;EACsB,CAAC,GAAAD,IAAA;EACvB,oBACEJ,KAAA,CAAAM,aAAA,CAACJ,cAAc;IACbK,YAAY,EAAEF,aAAa,CAACG,UAAU,CAACD,YAAa;IACpDE,gBAAgB,EAAEJ,aAAa,CAACG,UAAU,CAACC;EAAiB,gBAE5DT,KAAA,CAAAM,aAAA,CAACL,wBAAwB;IAACI,aAAa,EAAEA;EAAc,CAAE,CAC3C,CAAC;AAErB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Table","useTableFeatures","AutoPatternsTable","_ref","configuration","state","columns","customColumns","search","title","emptyState","filters","actionCell","bulkActionToolbar","onRowClick","createElement","dataHook","horizontalScroll"],"sources":["../../../../src/components/AutoPatternsTable/AutoPatternsTable.tsx"],"sourcesContent":["import React from 'react';\nimport { Table } from '@wix/patterns';\nimport { TableConfig } from '../../types';\nimport { useTableFeatures } from '../../hooks';\n\nexport interface AutoPatternsTableContentProps {\n configuration: TableConfig;\n}\n\nexport const AutoPatternsTable = ({\n configuration,\n}: AutoPatternsTableContentProps) => {\n const {\n state,\n columns,\n customColumns,\n search,\n title,\n emptyState,\n filters,\n actionCell,\n bulkActionToolbar,\n onRowClick,\n } = useTableFeatures(configuration);\n\n return (\n <Table\n dataHook=\"auto-patterns-table\"\n search={search}\n title={title}\n state={state}\n columns={columns}\n customColumns={customColumns}\n actionCell={actionCell}\n filters={filters}\n emptyState={emptyState}\n bulkActionToolbar={bulkActionToolbar}\n onRowClick={onRowClick}\n horizontalScroll\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,KAAK,QAAQ,eAAe;AAErC,SAASC,gBAAgB,QAAQ,aAAa;AAM9C,OAAO,MAAMC,iBAAiB,GAAGC,IAAA,IAEI;EAAA,IAFH;IAChCC;EAC6B,CAAC,GAAAD,IAAA;EAC9B,MAAM;IACJE,KAAK;IACLC,OAAO;IACPC,aAAa;IACbC,MAAM;IACNC,KAAK;IACLC,UAAU;IACVC,OAAO;IACPC,UAAU;IACVC,iBAAiB;IACjBC;EACF,CAAC,GAAGb,gBAAgB,CAACG,aAAa,CAAC;EAEnC,oBACEL,KAAA,CAAAgB,aAAA,CAACf,KAAK;IACJgB,QAAQ,EAAC,qBAAqB;IAC9BR,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbJ,KAAK,EAAEA,KAAM;IACbC,OAAO,EAAEA,OAAQ;IACjBC,aAAa,EAAEA,aAAc;IAC7BK,UAAU,EAAEA,UAAW;IACvBD,OAAO,EAAEA,OAAQ;IACjBD,UAAU,EAAEA,UAAW;IACvBG,iBAAiB,EAAEA,iBAAkB;IACrCC,UAAU,EAAEA,UAAW;IACvBG,gBAAgB;EAAA,CACjB,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { TableGridSwitch } from '@wix/patterns';
4
+ import { useTableGridSwitchFeatures } from '../../hooks/useTableGridSwitchFeatures';
5
+ export const AutoPatternsTableGridSwitch = _ref => {
6
+ let {
7
+ configuration
8
+ } = _ref;
9
+ const props = useTableGridSwitchFeatures(configuration);
10
+ return /*#__PURE__*/React.createElement(TableGridSwitch, _extends({
11
+ dataHook: "auto-patterns-table-grid-switch"
12
+ }, props));
13
+ };
14
+ //# sourceMappingURL=AutoPatternsTableGridSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","TableGridSwitch","useTableGridSwitchFeatures","AutoPatternsTableGridSwitch","_ref","configuration","props","createElement","_extends","dataHook"],"sources":["../../../../src/components/AutoPatternsTableGridSwitch/AutoPatternsTableGridSwitch.tsx"],"sourcesContent":["import React from 'react';\nimport { TableGridSwitch } from '@wix/patterns';\nimport { TableGridSwitchConfig } from '../../types';\nimport { useTableGridSwitchFeatures } from '../../hooks/useTableGridSwitchFeatures';\n\nexport interface AutoPatternsTableGridSwitchProps {\n configuration: TableGridSwitchConfig;\n}\n\nexport const AutoPatternsTableGridSwitch = ({\n configuration,\n}: AutoPatternsTableGridSwitchProps) => {\n const props = useTableGridSwitchFeatures(configuration);\n return (\n <TableGridSwitch dataHook=\"auto-patterns-table-grid-switch\" {...props} />\n );\n};\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,eAAe;AAE/C,SAASC,0BAA0B,QAAQ,wCAAwC;AAMnF,OAAO,MAAMC,2BAA2B,GAAGC,IAAA,IAEH;EAAA,IAFI;IAC1CC;EACgC,CAAC,GAAAD,IAAA;EACjC,MAAME,KAAK,GAAGJ,0BAA0B,CAACG,aAAa,CAAC;EACvD,oBACEL,KAAA,CAAAO,aAAA,CAACN,eAAe,EAAAO,QAAA;IAACC,QAAQ,EAAC;EAAiC,GAAKH,KAAK,CAAG,CAAC;AAE7E,CAAC","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  import React, { lazy, memo, Suspense } from 'react';
2
+ import { iconImports } from '../utils/generated-icon-imports';
2
3
  export const DynamicIcon = /*#__PURE__*/memo(_ref => {
3
4
  let {
4
5
  icon
@@ -15,10 +16,18 @@ export const DynamicIcon = /*#__PURE__*/memo(_ref => {
15
16
  if (!icon) {
16
17
  return null;
17
18
  }
18
- const ImportedIconComponent = /*#__PURE__*/lazy(() => import(`@wix/wix-ui-icons-common/dist/esm/general/dist/components/${icon}.js`).catch(() => {
19
- const defaultIconName = 'Edit';
20
- return import(`@wix/wix-ui-icons-common/dist/esm/general/dist/components/${defaultIconName}.js`).catch(() => null);
21
- }));
19
+ const iconLoader = iconImports[icon];
20
+ if (!iconLoader) {
21
+ const defaultIconLoader = iconImports.Edit;
22
+ if (!defaultIconLoader) {
23
+ return /*#__PURE__*/React.createElement(FallbackIcon, null);
24
+ }
25
+ const DefaultIconComponent = /*#__PURE__*/lazy(defaultIconLoader);
26
+ return /*#__PURE__*/React.createElement(Suspense, {
27
+ fallback: /*#__PURE__*/React.createElement(FallbackIcon, null)
28
+ }, /*#__PURE__*/React.createElement(DefaultIconComponent, null));
29
+ }
30
+ const ImportedIconComponent = /*#__PURE__*/lazy(iconLoader);
22
31
  return /*#__PURE__*/React.createElement(Suspense, {
23
32
  fallback: /*#__PURE__*/React.createElement(FallbackIcon, null)
24
33
  }, /*#__PURE__*/React.createElement(ImportedIconComponent, null));
@@ -1 +1 @@
1
- {"version":3,"names":["React","lazy","memo","Suspense","DynamicIcon","_ref","icon","process","env","NODE_ENV","createElement","style","height","width","ImportedIconComponent","catch","defaultIconName","fallback","FallbackIcon"],"sources":["../../../src/components/DynamicIcon.tsx"],"sourcesContent":["import React, { lazy, memo, Suspense } from 'react';\n\nexport const DynamicIcon = memo(({ icon }: { icon: string | undefined }) => {\n if (process.env.NODE_ENV === 'test') {\n return <div data-hook=\"icon-fallback\" style={{ height: 18, width: 18 }} />;\n }\n\n if (!icon) {\n return null;\n }\n\n const ImportedIconComponent = lazy(() =>\n import(\n `@wix/wix-ui-icons-common/dist/esm/general/dist/components/${icon}.js`\n ).catch(() => {\n const defaultIconName = 'Edit';\n return import(\n `@wix/wix-ui-icons-common/dist/esm/general/dist/components/${defaultIconName}.js`\n ).catch(() => null);\n }),\n );\n\n return (\n <Suspense fallback={<FallbackIcon />}>\n <ImportedIconComponent />\n </Suspense>\n );\n});\n\nexport const FallbackIcon = memo(() => (\n <div data-hook=\"icon-fallback\" style={{ height: 18, width: 18 }} />\n));\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,OAAO,MAAMC,WAAW,gBAAGF,IAAI,CAACG,IAAA,IAA4C;EAAA,IAA3C;IAAEC;EAAmC,CAAC,GAAAD,IAAA;EACrE,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;IACnC,oBAAOT,KAAA,CAAAU,aAAA;MAAK,aAAU,eAAe;MAACC,KAAK,EAAE;QAAEC,MAAM,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAG;IAAE,CAAE,CAAC;EAC5E;EAEA,IAAI,CAACP,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EAEA,MAAMQ,qBAAqB,gBAAGb,IAAI,CAAC,MACjC,MAAM,CACJ,6DAA6DK,IAAI,KACnE,CAAC,CAACS,KAAK,CAAC,MAAM;IACZ,MAAMC,eAAe,GAAG,MAAM;IAC9B,OAAO,MAAM,CACX,6DAA6DA,eAAe,KAC9E,CAAC,CAACD,KAAK,CAAC,MAAM,IAAI,CAAC;EACrB,CAAC,CACH,CAAC;EAED,oBACEf,KAAA,CAAAU,aAAA,CAACP,QAAQ;IAACc,QAAQ,eAAEjB,KAAA,CAAAU,aAAA,CAACQ,YAAY,MAAE;EAAE,gBACnClB,KAAA,CAAAU,aAAA,CAACI,qBAAqB,MAAE,CAChB,CAAC;AAEf,CAAC,CAAC;AAEF,OAAO,MAAMI,YAAY,gBAAGhB,IAAI,CAAC,mBAC/BF,KAAA,CAAAU,aAAA;EAAK,aAAU,eAAe;EAACC,KAAK,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,KAAK,EAAE;EAAG;AAAE,CAAE,CACnE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","lazy","memo","Suspense","iconImports","DynamicIcon","_ref","icon","process","env","NODE_ENV","createElement","style","height","width","iconLoader","defaultIconLoader","Edit","FallbackIcon","DefaultIconComponent","fallback","ImportedIconComponent"],"sources":["../../../src/components/DynamicIcon.tsx"],"sourcesContent":["import React, { lazy, memo, Suspense } from 'react';\nimport { iconImports } from '../utils/generated-icon-imports';\n\nexport const DynamicIcon = memo(({ icon }: { icon: string | undefined }) => {\n if (process.env.NODE_ENV === 'test') {\n return <div data-hook=\"icon-fallback\" style={{ height: 18, width: 18 }} />;\n }\n\n if (!icon) {\n return null;\n }\n\n const iconLoader = iconImports[icon];\n\n if (!iconLoader) {\n const defaultIconLoader = iconImports.Edit;\n if (!defaultIconLoader) {\n return <FallbackIcon />;\n }\n\n const DefaultIconComponent = lazy(defaultIconLoader);\n return (\n <Suspense fallback={<FallbackIcon />}>\n <DefaultIconComponent />\n </Suspense>\n );\n }\n\n const ImportedIconComponent = lazy(iconLoader);\n\n return (\n <Suspense fallback={<FallbackIcon />}>\n <ImportedIconComponent />\n </Suspense>\n );\n});\n\nexport const FallbackIcon = memo(() => (\n <div data-hook=\"icon-fallback\" style={{ height: 18, width: 18 }} />\n));\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,OAAO;AACnD,SAASC,WAAW,QAAQ,iCAAiC;AAE7D,OAAO,MAAMC,WAAW,gBAAGH,IAAI,CAACI,IAAA,IAA4C;EAAA,IAA3C;IAAEC;EAAmC,CAAC,GAAAD,IAAA;EACrE,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;IACnC,oBAAOV,KAAA,CAAAW,aAAA;MAAK,aAAU,eAAe;MAACC,KAAK,EAAE;QAAEC,MAAM,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAG;IAAE,CAAE,CAAC;EAC5E;EAEA,IAAI,CAACP,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EAEA,MAAMQ,UAAU,GAAGX,WAAW,CAACG,IAAI,CAAC;EAEpC,IAAI,CAACQ,UAAU,EAAE;IACf,MAAMC,iBAAiB,GAAGZ,WAAW,CAACa,IAAI;IAC1C,IAAI,CAACD,iBAAiB,EAAE;MACtB,oBAAOhB,KAAA,CAAAW,aAAA,CAACO,YAAY,MAAE,CAAC;IACzB;IAEA,MAAMC,oBAAoB,gBAAGlB,IAAI,CAACe,iBAAiB,CAAC;IACpD,oBACEhB,KAAA,CAAAW,aAAA,CAACR,QAAQ;MAACiB,QAAQ,eAAEpB,KAAA,CAAAW,aAAA,CAACO,YAAY,MAAE;IAAE,gBACnClB,KAAA,CAAAW,aAAA,CAACQ,oBAAoB,MAAE,CACf,CAAC;EAEf;EAEA,MAAME,qBAAqB,gBAAGpB,IAAI,CAACc,UAAU,CAAC;EAE9C,oBACEf,KAAA,CAAAW,aAAA,CAACR,QAAQ;IAACiB,QAAQ,eAAEpB,KAAA,CAAAW,aAAA,CAACO,YAAY,MAAE;EAAE,gBACnClB,KAAA,CAAAW,aAAA,CAACU,qBAAqB,MAAE,CAChB,CAAC;AAEf,CAAC,CAAC;AAEF,OAAO,MAAMH,YAAY,gBAAGhB,IAAI,CAAC,mBAC/BF,KAAA,CAAAW,aAAA;EAAK,aAAU,eAAe;EAACC,KAAK,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,KAAK,EAAE;EAAG;AAAE,CAAE,CACnE,CAAC","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ import { useMemo } from 'react';
2
+ import { getImageUrl } from '../utils/media/getImageUrl';
3
+ import { useSchema } from '../providers';
4
+ export const useBaseGridFeatures = configuration => {
5
+ const {
6
+ item
7
+ } = configuration;
8
+ const schema = useSchema();
9
+ const {
10
+ titleFieldId,
11
+ subtitleFieldId,
12
+ imageFieldId,
13
+ imagePlacement,
14
+ cardContentMode: preset
15
+ } = item;
16
+ const visibleFieldIds = useMemo(() => [titleFieldId, subtitleFieldId, imageFieldId].filter(Boolean), [titleFieldId, subtitleFieldId, imageFieldId]);
17
+ const renderItem = useMemo(() => gridItem => ({
18
+ id: gridItem[schema.idField],
19
+ title: `${gridItem[titleFieldId]}`,
20
+ ...(subtitleFieldId ? {
21
+ subtitle: `${gridItem[subtitleFieldId] ?? ''}`
22
+ } : {}),
23
+ ...(imageFieldId ? {
24
+ backgroundImageUrl: getImageUrl(gridItem[imageFieldId])
25
+ } : {})
26
+ }), [titleFieldId, subtitleFieldId, imageFieldId, schema.idField]);
27
+ return {
28
+ imagePlacement,
29
+ preset,
30
+ renderItem,
31
+ visibleFieldIds
32
+ };
33
+ };
34
+ //# sourceMappingURL=useBaseGridFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","getImageUrl","useSchema","useBaseGridFeatures","configuration","item","schema","titleFieldId","subtitleFieldId","imageFieldId","imagePlacement","cardContentMode","preset","visibleFieldIds","filter","Boolean","renderItem","gridItem","id","idField","title","subtitle","backgroundImageUrl"],"sources":["../../../src/hooks/useBaseGridFeatures.tsx"],"sourcesContent":["import { GridConfig } from '../types';\nimport { useMemo } from 'react';\nimport { getImageUrl } from '../utils/media/getImageUrl';\nimport { useSchema } from '../providers';\n\nexport const useBaseGridFeatures = (configuration: GridConfig) => {\n const { item } = configuration;\n\n const schema = useSchema();\n\n const {\n titleFieldId,\n subtitleFieldId,\n imageFieldId,\n imagePlacement,\n cardContentMode: preset,\n } = item;\n\n const visibleFieldIds = useMemo(\n () =>\n [titleFieldId, subtitleFieldId, imageFieldId].filter(Boolean) as string[],\n [titleFieldId, subtitleFieldId, imageFieldId],\n );\n\n const renderItem = useMemo(\n () => (gridItem: any) => ({\n id: gridItem[schema.idField],\n title: `${gridItem[titleFieldId]}`,\n ...(subtitleFieldId\n ? { subtitle: `${gridItem[subtitleFieldId] ?? ''}` }\n : {}),\n ...(imageFieldId\n ? { backgroundImageUrl: getImageUrl(gridItem[imageFieldId]) }\n : {}),\n }),\n [titleFieldId, subtitleFieldId, imageFieldId, schema.idField],\n );\n\n return {\n imagePlacement,\n preset,\n renderItem,\n visibleFieldIds,\n };\n};\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,SAAS,QAAQ,cAAc;AAExC,OAAO,MAAMC,mBAAmB,GAAIC,aAAyB,IAAK;EAChE,MAAM;IAAEC;EAAK,CAAC,GAAGD,aAAa;EAE9B,MAAME,MAAM,GAAGJ,SAAS,CAAC,CAAC;EAE1B,MAAM;IACJK,YAAY;IACZC,eAAe;IACfC,YAAY;IACZC,cAAc;IACdC,eAAe,EAAEC;EACnB,CAAC,GAAGP,IAAI;EAER,MAAMQ,eAAe,GAAGb,OAAO,CAC7B,MACE,CAACO,YAAY,EAAEC,eAAe,EAAEC,YAAY,CAAC,CAACK,MAAM,CAACC,OAAO,CAAa,EAC3E,CAACR,YAAY,EAAEC,eAAe,EAAEC,YAAY,CAC9C,CAAC;EAED,MAAMO,UAAU,GAAGhB,OAAO,CACxB,MAAOiB,QAAa,KAAM;IACxBC,EAAE,EAAED,QAAQ,CAACX,MAAM,CAACa,OAAO,CAAC;IAC5BC,KAAK,EAAE,GAAGH,QAAQ,CAACV,YAAY,CAAC,EAAE;IAClC,IAAIC,eAAe,GACf;MAAEa,QAAQ,EAAE,GAAGJ,QAAQ,CAACT,eAAe,CAAC,IAAI,EAAE;IAAG,CAAC,GAClD,CAAC,CAAC,CAAC;IACP,IAAIC,YAAY,GACZ;MAAEa,kBAAkB,EAAErB,WAAW,CAACgB,QAAQ,CAACR,YAAY,CAAC;IAAE,CAAC,GAC3D,CAAC,CAAC;EACR,CAAC,CAAC,EACF,CAACF,YAAY,EAAEC,eAAe,EAAEC,YAAY,EAAEH,MAAM,CAACa,OAAO,CAC9D,CAAC;EAED,OAAO;IACLT,cAAc;IACdE,MAAM;IACNI,UAAU;IACVH;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import React, { useMemo } from 'react';
2
+ import { useColumns } from './useColumns';
3
+ import { CustomColumns } from '@wix/patterns';
4
+ import { useNavigation } from './useNavigationUtils';
5
+ export const useBaseTableFeatures = configuration => {
6
+ var _configuration$custom;
7
+ const {
8
+ navigateToEntityPage
9
+ } = useNavigation();
10
+ const columns = useColumns(configuration.columns);
11
+ const visibleFieldIds = useMemo(() => configuration.columns.map(column => column.id), [configuration]);
12
+ const entityPageId = configuration.entityPageId;
13
+ const onRowClick = item => navigateToEntityPage({
14
+ item,
15
+ entityPageId
16
+ });
17
+ return {
18
+ columns,
19
+ visibleFieldIds,
20
+ onRowClick,
21
+ customColumns: (_configuration$custom = configuration.customColumns) != null && _configuration$custom.enabled ? /*#__PURE__*/React.createElement(CustomColumns, null) : undefined
22
+ };
23
+ };
24
+ //# sourceMappingURL=useBaseTableFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","useColumns","CustomColumns","useNavigation","useBaseTableFeatures","configuration","_configuration$custom","navigateToEntityPage","columns","visibleFieldIds","map","column","id","entityPageId","onRowClick","item","customColumns","enabled","createElement","undefined"],"sources":["../../../src/hooks/useBaseTableFeatures.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { TableConfig } from '../types';\nimport { useColumns } from './useColumns';\nimport { CustomColumns } from '@wix/patterns';\nimport { useNavigation } from './useNavigationUtils';\n\nexport const useBaseTableFeatures = (configuration: TableConfig) => {\n const { navigateToEntityPage } = useNavigation();\n\n const columns = useColumns(configuration.columns);\n const visibleFieldIds = useMemo(\n () => configuration.columns.map((column) => column.id),\n [configuration],\n );\n\n const entityPageId = configuration.entityPageId;\n\n const onRowClick = (item: any) =>\n navigateToEntityPage({\n item,\n entityPageId,\n });\n\n return {\n columns,\n visibleFieldIds,\n onRowClick,\n customColumns: configuration.customColumns?.enabled ? (\n <CustomColumns />\n ) : undefined,\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AAEtC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,aAAa,QAAQ,eAAe;AAC7C,SAASC,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,MAAMC,oBAAoB,GAAIC,aAA0B,IAAK;EAAA,IAAAC,qBAAA;EAClE,MAAM;IAAEC;EAAqB,CAAC,GAAGJ,aAAa,CAAC,CAAC;EAEhD,MAAMK,OAAO,GAAGP,UAAU,CAACI,aAAa,CAACG,OAAO,CAAC;EACjD,MAAMC,eAAe,GAAGT,OAAO,CAC7B,MAAMK,aAAa,CAACG,OAAO,CAACE,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACC,EAAE,CAAC,EACtD,CAACP,aAAa,CAChB,CAAC;EAED,MAAMQ,YAAY,GAAGR,aAAa,CAACQ,YAAY;EAE/C,MAAMC,UAAU,GAAIC,IAAS,IAC3BR,oBAAoB,CAAC;IACnBQ,IAAI;IACJF;EACF,CAAC,CAAC;EAEJ,OAAO;IACLL,OAAO;IACPC,eAAe;IACfK,UAAU;IACVE,aAAa,EAAE,CAAAV,qBAAA,GAAAD,aAAa,CAACW,aAAa,aAA3BV,qBAAA,CAA6BW,OAAO,gBACjDlB,KAAA,CAAAmB,aAAA,CAAChB,aAAa,MAAE,CAAC,GACfiB;EACN,CAAC;AACH,CAAC","ignoreList":[]}
@@ -16,7 +16,9 @@ export const useCollectionPageActions = _ref => {
16
16
  const buildAction = actionConfig => {
17
17
  let actionToResolve = null;
18
18
  const baseParams = {
19
- actionParams: {},
19
+ actionParams: {
20
+ collectionId: actionConfig.collection.collectionId
21
+ },
20
22
  sdk
21
23
  };
22
24
  switch (actionConfig.type) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","useActionsSDK","createAction","customAction","customModalAction","resolveAction","resolveIcon","PrimaryActions","SecondaryActions","useCollectionPageActions","_ref","collectionPageActions","sdk","collectionId","buildCollectionPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","tooltip","icon","resolvedActionProps","prefixIcon","disabledDescription","handleActionsType","actions","single","item","subItems","multi","items","map","filter","length","label","primaryActions","secondaryActions","createElement","undefined"],"sources":["../../../src/hooks/useCollectionPageActions.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport {\n CollectionPageActionConfig,\n CollectionPageConfig,\n CollectionPagePrimaryActions,\n CollectionPageSecondaryActions,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n createAction,\n customAction,\n customModalAction,\n resolveAction,\n resolveIcon,\n} from '../utils/actions';\nimport { IconElement } from '@wix/design-system';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface UseCollectionPageActionsParams {\n collectionPageActions: CollectionPageConfig['actions'];\n}\n\nexport const useCollectionPageActions = ({\n collectionPageActions,\n}: UseCollectionPageActionsParams) => {\n const sdk = useActionsSDK({\n collectionId: '',\n });\n\n const buildCollectionPageActions = useCallback(() => {\n if (!collectionPageActions) {\n return;\n }\n\n const buildAction = (actionConfig: CollectionPageActionConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: {},\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'create':\n actionToResolve = createAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'customModal':\n actionToResolve = customModalAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { tooltip, icon, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n prefixIcon: icon as IconElement,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const handleActionsType = (\n actions: CollectionPagePrimaryActions | CollectionPageSecondaryActions,\n ) => {\n if (actions.type === 'single') {\n return buildAction(actions.single.item);\n }\n\n if (actions.type === 'multi') {\n const subItems = actions.multi.items\n .map(buildAction)\n .filter((action) => action !== null);\n if (!subItems.length) {\n return null;\n }\n\n return {\n label: actions.multi.label,\n prefixIcon: resolveIcon(actions.multi.icon) as IconElement,\n subItems,\n };\n }\n\n return null;\n };\n\n const primaryActions =\n collectionPageActions?.primaryActions &&\n handleActionsType(collectionPageActions.primaryActions);\n\n const secondaryActions =\n collectionPageActions?.secondaryActions &&\n handleActionsType(collectionPageActions.secondaryActions);\n\n if (!primaryActions && !secondaryActions) {\n return;\n }\n\n return {\n primaryActions: primaryActions ? (\n <PrimaryActions {...primaryActions} />\n ) : undefined,\n secondaryActions: secondaryActions ? (\n <SecondaryActions {...secondaryActions} />\n ) : undefined,\n };\n }, [collectionPageActions, sdk]);\n\n const actions = useMemo(() => {\n return {\n primaryActions: undefined,\n secondaryActions: undefined,\n };\n }, []);\n\n if (\n !collectionPageActions?.primaryActions &&\n !collectionPageActions?.secondaryActions\n ) {\n return { ...actions };\n }\n\n return buildCollectionPageActions() ?? { ...actions };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","useActionsSDK","createAction","customAction","customModalAction","resolveAction","resolveIcon","PrimaryActions","SecondaryActions","useCollectionPageActions","_ref","collectionPageActions","sdk","collectionId","buildCollectionPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","collection","type","action","resolvedAction","tooltip","icon","resolvedActionProps","prefixIcon","disabledDescription","handleActionsType","actions","single","item","subItems","multi","items","map","filter","length","label","primaryActions","secondaryActions","createElement","undefined"],"sources":["../../../src/hooks/useCollectionPageActions.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport {\n CollectionPageActionConfig,\n CollectionPageConfig,\n CollectionPagePrimaryActions,\n CollectionPageSecondaryActions,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n createAction,\n customAction,\n customModalAction,\n resolveAction,\n resolveIcon,\n} from '../utils/actions';\nimport { IconElement } from '@wix/design-system';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface UseCollectionPageActionsParams {\n collectionPageActions: CollectionPageConfig['actions'];\n}\n\nexport const useCollectionPageActions = ({\n collectionPageActions,\n}: UseCollectionPageActionsParams) => {\n const sdk = useActionsSDK({\n collectionId: '',\n });\n\n const buildCollectionPageActions = useCallback(() => {\n if (!collectionPageActions) {\n return;\n }\n\n const buildAction = (actionConfig: CollectionPageActionConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: {\n collectionId: actionConfig.collection.collectionId,\n },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'create':\n actionToResolve = createAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'customModal':\n actionToResolve = customModalAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { tooltip, icon, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n prefixIcon: icon as IconElement,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const handleActionsType = (\n actions: CollectionPagePrimaryActions | CollectionPageSecondaryActions,\n ) => {\n if (actions.type === 'single') {\n return buildAction(actions.single.item);\n }\n\n if (actions.type === 'multi') {\n const subItems = actions.multi.items\n .map(buildAction)\n .filter((action) => action !== null);\n if (!subItems.length) {\n return null;\n }\n\n return {\n label: actions.multi.label,\n prefixIcon: resolveIcon(actions.multi.icon) as IconElement,\n subItems,\n };\n }\n\n return null;\n };\n\n const primaryActions =\n collectionPageActions?.primaryActions &&\n handleActionsType(collectionPageActions.primaryActions);\n\n const secondaryActions =\n collectionPageActions?.secondaryActions &&\n handleActionsType(collectionPageActions.secondaryActions);\n\n if (!primaryActions && !secondaryActions) {\n return;\n }\n\n return {\n primaryActions: primaryActions ? (\n <PrimaryActions {...primaryActions} />\n ) : undefined,\n secondaryActions: secondaryActions ? (\n <SecondaryActions {...secondaryActions} />\n ) : undefined,\n };\n }, [collectionPageActions, sdk]);\n\n const actions = useMemo(() => {\n return {\n primaryActions: undefined,\n secondaryActions: undefined,\n };\n }, []);\n\n if (\n !collectionPageActions?.primaryActions &&\n !collectionPageActions?.secondaryActions\n ) {\n return { ...actions };\n }\n\n return buildCollectionPageActions() ?? { ...actions };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { usePatternsWizardOverridesContext, useSchema, useSchemaRegistry } from '../providers';
3
3
  import { camelCase, get } from 'lodash';
4
- import { Avatar, Box } from '@wix/design-system';
4
+ import { Avatar, Box, Image } from '@wix/design-system';
5
5
  import { getImageUrl } from '../utils/media/getImageUrl';
6
6
  export const useColumns = columns => {
7
7
  const {
@@ -71,6 +71,13 @@ export const useColumns = columns => {
71
71
  }
72
72
  }
73
73
  return itemValue;
74
+ case 'IMAGE':
75
+ const imageUrl = getImageUrl(itemValue);
76
+ return /*#__PURE__*/React.createElement(Image, {
77
+ src: imageUrl,
78
+ width: "48px",
79
+ dataHook: "auto-patterns-image"
80
+ });
74
81
  default:
75
82
  return itemValue;
76
83
  }
@@ -85,9 +92,7 @@ export const useColumns = columns => {
85
92
  const baseColumnConfig = {
86
93
  id: column.id,
87
94
  title: column.name || fieldDefinition.displayName,
88
- ...(column.width ? {
89
- width: column.width
90
- } : {}),
95
+ width: column.width,
91
96
  ...createSortConfiguration(column, sortable),
92
97
  ...createCustomColumnConfiguration(column),
93
98
  render: item => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","usePatternsWizardOverridesContext","useSchema","useSchemaRegistry","camelCase","get","Avatar","Box","getImageUrl","useColumns","columns","fields","getSchema","overrides","existingColumns","filter","column","id","createRenderer","fieldDefinition","itemValue","type","Date","toLocaleDateString","date","toLocaleString","join","referenceMetadata","referencedCollectionId","refSchema","nameValue","imageValue","displayField","imageField","imageUrl","createElement","gap","verticalAlign","size","name","imgProps","src","map","_fieldDefinition$capa","sortable","capabilities","baseColumnConfig","title","displayName","width","createSortConfiguration","createCustomColumnConfiguration","render","item","_overrides$columns","_overrides$columns$ca","call","value","Boolean","sortableColumnConfig","defaultSortOrder","sortMode","undefined","reorderDisabled","hiddenFromCustomColumnsSelection","hideable","defaultHidden"],"sources":["../../../src/hooks/useColumns.tsx"],"sourcesContent":["import React from 'react';\nimport { TableColumn } from '@wix/patterns';\nimport {\n usePatternsWizardOverridesContext,\n useSchema,\n useSchemaRegistry,\n} from '../providers';\nimport { Column, Field } from '../types';\nimport { camelCase, get } from 'lodash';\nimport { Avatar, Box } from '@wix/design-system';\nimport { getImageUrl } from '../utils/media/getImageUrl';\n\nexport const useColumns = (columns: Column[]) => {\n const { fields } = useSchema();\n const { getSchema } = useSchemaRegistry();\n const overrides = usePatternsWizardOverridesContext();\n\n const existingColumns = columns.filter((column) => {\n return !!fields[column.id];\n });\n\n const createRenderer = (fieldDefinition: Field, itemValue: any) => {\n if (itemValue == null) {\n return '';\n }\n\n switch (fieldDefinition.type) {\n case 'BOOLEAN':\n return itemValue ? '✔' : '✖';\n case 'DATE':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleDateString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleDateString();\n }\n return itemValue;\n case 'DATETIME':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleString();\n }\n return itemValue;\n case 'ARRAY':\n // We assume that the array contains strings\n // If the array contains objects, we need to handle it differently\n return itemValue.join(', ');\n case 'REFERENCE':\n if (fieldDefinition.referenceMetadata && getSchema) {\n const { referencedCollectionId } = fieldDefinition.referenceMetadata;\n const refSchema = getSchema(referencedCollectionId);\n\n if (refSchema) {\n let nameValue: string | undefined;\n let imageValue: string | undefined;\n const displayField = refSchema.displayField;\n if (typeof itemValue === 'object' && itemValue !== null) {\n nameValue = itemValue[displayField] || '';\n imageValue =\n refSchema.imageField && itemValue[refSchema.imageField];\n }\n\n const imageUrl = imageValue && getImageUrl(imageValue);\n return (\n <Box gap=\"SP2\" verticalAlign=\"middle\">\n {imageUrl && (\n <Avatar\n size=\"size24\"\n name={nameValue}\n imgProps={{ src: imageUrl }}\n />\n )}\n <div>{nameValue}</div>\n </Box>\n );\n }\n }\n\n return itemValue;\n default:\n return itemValue;\n }\n };\n\n return existingColumns\n .map((column) => {\n const fieldDefinition = fields[column.id];\n if (!fieldDefinition) {\n return null;\n }\n const sortable =\n column.sortable && fieldDefinition?.capabilities?.sortable;\n\n const baseColumnConfig = {\n id: column.id,\n title: column.name || fieldDefinition.displayName,\n ...(column.width ? { width: column.width } : {}),\n ...createSortConfiguration(column, sortable),\n ...createCustomColumnConfiguration(column),\n render: (item: any) => {\n const itemValue = get(item, column.id);\n return (\n overrides?.columns?.[camelCase(column.id)]?.({\n value: itemValue,\n }) ?? createRenderer(fieldDefinition, itemValue)\n );\n },\n };\n\n return baseColumnConfig;\n })\n .filter(Boolean) as TableColumn<any>[];\n};\n\nconst createSortConfiguration = (\n column: Column,\n sortable?: boolean,\n): Partial<TableColumn<any>> => {\n if (!sortable) {\n return {};\n }\n const sortableColumnConfig = {\n sortable,\n defaultSortOrder: column.defaultSortOrder,\n };\n\n // default sort mode is ['asc', 'desc', undefined]\n // so if sort mode is 'desc' -> we want to override the default\n // and set it to ['desc', 'asc', undefined]\n if (column.sortMode && column.sortMode === 'desc') {\n return {\n ...sortableColumnConfig,\n sortMode: ['desc', 'asc', undefined],\n };\n }\n return {\n ...sortableColumnConfig,\n };\n};\n\nconst createCustomColumnConfiguration = (\n column: Column,\n): Partial<TableColumn<any>> => {\n const reorderDisabled = !!column.reorderDisabled;\n\n if (column.hiddenFromCustomColumnsSelection) {\n return { hiddenFromCustomColumnsSelection: true };\n }\n if (column.hideable === false) {\n return {\n hideable: false,\n reorderDisabled,\n };\n }\n return {\n defaultHidden: !!column.defaultHidden,\n reorderDisabled,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","usePatternsWizardOverridesContext","useSchema","useSchemaRegistry","camelCase","get","Avatar","Box","Image","getImageUrl","useColumns","columns","fields","getSchema","overrides","existingColumns","filter","column","id","createRenderer","fieldDefinition","itemValue","type","Date","toLocaleDateString","date","toLocaleString","join","referenceMetadata","referencedCollectionId","refSchema","nameValue","imageValue","displayField","imageField","imageUrl","createElement","gap","verticalAlign","size","name","imgProps","src","width","dataHook","map","_fieldDefinition$capa","sortable","capabilities","baseColumnConfig","title","displayName","createSortConfiguration","createCustomColumnConfiguration","render","item","_overrides$columns","_overrides$columns$ca","call","value","Boolean","sortableColumnConfig","defaultSortOrder","sortMode","undefined","reorderDisabled","hiddenFromCustomColumnsSelection","hideable","defaultHidden"],"sources":["../../../src/hooks/useColumns.tsx"],"sourcesContent":["import React from 'react';\nimport { TableColumn } from '@wix/patterns';\nimport {\n usePatternsWizardOverridesContext,\n useSchema,\n useSchemaRegistry,\n} from '../providers';\nimport { Column, Field } from '../types';\nimport { camelCase, get } from 'lodash';\nimport { Avatar, Box, Image } from '@wix/design-system';\nimport { getImageUrl } from '../utils/media/getImageUrl';\n\nexport const useColumns = (columns: Column[]) => {\n const { fields } = useSchema();\n const { getSchema } = useSchemaRegistry();\n const overrides = usePatternsWizardOverridesContext();\n\n const existingColumns = columns.filter((column) => {\n return !!fields[column.id];\n });\n\n const createRenderer = (fieldDefinition: Field, itemValue: any) => {\n if (itemValue == null) {\n return '';\n }\n\n switch (fieldDefinition.type) {\n case 'BOOLEAN':\n return itemValue ? '✔' : '✖';\n case 'DATE':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleDateString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleDateString();\n }\n return itemValue;\n case 'DATETIME':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleString();\n }\n return itemValue;\n case 'ARRAY':\n // We assume that the array contains strings\n // If the array contains objects, we need to handle it differently\n return itemValue.join(', ');\n case 'REFERENCE':\n if (fieldDefinition.referenceMetadata && getSchema) {\n const { referencedCollectionId } = fieldDefinition.referenceMetadata;\n const refSchema = getSchema(referencedCollectionId);\n\n if (refSchema) {\n let nameValue: string | undefined;\n let imageValue: string | undefined;\n const displayField = refSchema.displayField;\n if (typeof itemValue === 'object' && itemValue !== null) {\n nameValue = itemValue[displayField] || '';\n imageValue =\n refSchema.imageField && itemValue[refSchema.imageField];\n }\n\n const imageUrl = imageValue && getImageUrl(imageValue);\n return (\n <Box gap=\"SP2\" verticalAlign=\"middle\">\n {imageUrl && (\n <Avatar\n size=\"size24\"\n name={nameValue}\n imgProps={{ src: imageUrl }}\n />\n )}\n <div>{nameValue}</div>\n </Box>\n );\n }\n }\n\n return itemValue;\n case 'IMAGE':\n const imageUrl = getImageUrl(itemValue);\n\n return (\n <Image src={imageUrl} width=\"48px\" dataHook=\"auto-patterns-image\" />\n );\n default:\n return itemValue;\n }\n };\n\n return existingColumns\n .map((column) => {\n const fieldDefinition = fields[column.id];\n if (!fieldDefinition) {\n return null;\n }\n const sortable =\n column.sortable && fieldDefinition?.capabilities?.sortable;\n\n const baseColumnConfig = {\n id: column.id,\n title: column.name || fieldDefinition.displayName,\n width: column.width,\n ...createSortConfiguration(column, sortable),\n ...createCustomColumnConfiguration(column),\n render: (item: any) => {\n const itemValue = get(item, column.id);\n return (\n overrides?.columns?.[camelCase(column.id)]?.({\n value: itemValue,\n }) ?? createRenderer(fieldDefinition, itemValue)\n );\n },\n };\n\n return baseColumnConfig;\n })\n .filter(Boolean) as TableColumn<any>[];\n};\n\nconst createSortConfiguration = (\n column: Column,\n sortable?: boolean,\n): Partial<TableColumn<any>> => {\n if (!sortable) {\n return {};\n }\n const sortableColumnConfig = {\n sortable,\n defaultSortOrder: column.defaultSortOrder,\n };\n\n // default sort mode is ['asc', 'desc', undefined]\n // so if sort mode is 'desc' -> we want to override the default\n // and set it to ['desc', 'asc', undefined]\n if (column.sortMode && column.sortMode === 'desc') {\n return {\n ...sortableColumnConfig,\n sortMode: ['desc', 'asc', undefined],\n };\n }\n return {\n ...sortableColumnConfig,\n };\n};\n\nconst createCustomColumnConfiguration = (\n column: Column,\n): Partial<TableColumn<any>> => {\n const reorderDisabled = !!column.reorderDisabled;\n\n if (column.hiddenFromCustomColumnsSelection) {\n return { hiddenFromCustomColumnsSelection: true };\n }\n if (column.hideable === false) {\n return {\n hideable: false,\n reorderDisabled,\n };\n }\n return {\n defaultHidden: !!column.defaultHidden,\n reorderDisabled,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -2,13 +2,11 @@ import { useFetchData } from './useFetchData';
2
2
  import { useGridCollection } from '@wix/patterns';
3
3
  import { useCommonCollectionFeatures } from './useCommonCollectionFeatures';
4
4
  import { useFilters } from './useFilters';
5
- import { useMemo } from 'react';
6
5
  import { useSchema } from '../providers/SchemaContext';
7
6
  import { useAutoPatternsOptimisticActions } from './useAutoPatternsOptimisticActions';
8
- import { getImageUrl } from '../utils/media/getImageUrl';
7
+ import { useBaseGridFeatures } from './useBaseGridFeatures';
9
8
  export const useGridFeatures = configuration => {
10
9
  const {
11
- item,
12
10
  collection
13
11
  } = configuration;
14
12
  const {
@@ -19,18 +17,16 @@ export const useGridFeatures = configuration => {
19
17
  selectionConsistencyMode
20
18
  } = collection;
21
19
  const {
22
- titleFieldId,
23
- subtitleFieldId,
24
- imageFieldId,
20
+ renderItem,
25
21
  imagePlacement,
26
- cardContentMode: preset
27
- } = item;
22
+ preset,
23
+ visibleFieldIds
24
+ } = useBaseGridFeatures(configuration);
28
25
  const {
29
26
  filterComponent,
30
27
  filtersObject,
31
28
  filtersMapping
32
29
  } = useFilters(configuration.filters);
33
- const visibleFieldIds = useMemo(() => [titleFieldId, subtitleFieldId, imageFieldId].filter(Boolean), [titleFieldId, subtitleFieldId, imageFieldId]);
34
30
  const {
35
31
  fetchData
36
32
  } = useFetchData({
@@ -63,16 +59,6 @@ export const useGridFeatures = configuration => {
63
59
  optimisticActions,
64
60
  collectionType: 'Grid'
65
61
  });
66
- const renderItem = useMemo(() => gridItem => ({
67
- id: gridItem[schema.idField],
68
- title: `${gridItem[titleFieldId]}`,
69
- ...(subtitleFieldId ? {
70
- subtitle: `${gridItem[subtitleFieldId] ?? ''}`
71
- } : {}),
72
- ...(imageFieldId ? {
73
- backgroundImageUrl: getImageUrl(gridItem[imageFieldId])
74
- } : {})
75
- }), [titleFieldId, subtitleFieldId, imageFieldId, schema.idField]);
76
62
  return {
77
63
  ...commonFeatures,
78
64
  state,