@blaze-cms/react-page-builder 0.146.0-node18-core-styles-tooltips.3 → 0.146.0-node18-core-styles-tooltips.5

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 (30) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/lib/components/Button.js +57 -11
  3. package/lib/components/Button.js.map +1 -1
  4. package/lib/components/List/ListFactory.js.map +1 -1
  5. package/lib/components/MenuItem/MenuItemRender.js +17 -5
  6. package/lib/components/MenuItem/MenuItemRender.js.map +1 -1
  7. package/lib/hooks/helpers/StoreImages.js +61 -41
  8. package/lib/hooks/helpers/StoreImages.js.map +1 -1
  9. package/lib/variants/LiveBlogList/LiveBlogList.js +45 -48
  10. package/lib/variants/LiveBlogList/LiveBlogList.js.map +1 -1
  11. package/lib-es/components/Button.js +12 -7
  12. package/lib-es/components/Button.js.map +1 -1
  13. package/lib-es/components/List/ListFactory.js +1 -1
  14. package/lib-es/components/List/ListFactory.js.map +1 -1
  15. package/lib-es/components/MenuItem/MenuItemRender.js +16 -3
  16. package/lib-es/components/MenuItem/MenuItemRender.js.map +1 -1
  17. package/lib-es/hooks/helpers/StoreImages.js +44 -30
  18. package/lib-es/hooks/helpers/StoreImages.js.map +1 -1
  19. package/lib-es/variants/LiveBlogList/LiveBlogList.js +41 -51
  20. package/lib-es/variants/LiveBlogList/LiveBlogList.js.map +1 -1
  21. package/package.json +3 -3
  22. package/src/components/Button.js +13 -9
  23. package/src/components/List/ListFactory.js +1 -1
  24. package/src/components/MenuItem/MenuItemRender.js +17 -3
  25. package/src/hooks/helpers/StoreImages.js +33 -31
  26. package/src/variants/LiveBlogList/LiveBlogList.js +50 -46
  27. package/tests/unit/src/components/MenuItem/MenuItemRender.test.js +25 -2
  28. package/tests/unit/src/components/MenuItem/__snapshots__/MenuItem.test.js.snap +1 -0
  29. package/tests/unit/src/variants/LiveBlogList/LiveBlogList.test.js +121 -0
  30. package/tests/unit/src/variants/LiveBlogList/constants.js +10 -0
@@ -13,8 +13,6 @@ Object.defineProperty(exports, "__esModule", {
13
13
  value: true
14
14
  });
15
15
  exports["default"] = void 0;
16
- require("core-js/modules/es.array.concat.js");
17
- require("core-js/modules/web.timers.js");
18
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
17
  var _react = _interopRequireWildcard(require("react"));
20
18
  var _dayjs = _interopRequireDefault(require("dayjs"));
@@ -25,11 +23,13 @@ var _bs = require("react-icons/bs");
25
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
26
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
27
25
  _dayjs["default"].extend(_relativeTime["default"]);
28
- var LiveBlogList = function LiveBlogList(props) {
29
- var children = props.children,
30
- date = props.date,
31
- published = props.published,
32
- featured = props.featured;
26
+ var COLLAPSE_HEIGHT = 380;
27
+ var LiveBlogList = function LiveBlogList(_ref) {
28
+ var children = _ref.children,
29
+ date = _ref.date,
30
+ published = _ref.published,
31
+ featured = _ref.featured,
32
+ alternativeHeadline = _ref.alternativeHeadline;
33
33
  var _useState = (0, _react.useState)(false),
34
34
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
35
35
  isExpanded = _useState2[0],
@@ -40,69 +40,66 @@ var LiveBlogList = function LiveBlogList(props) {
40
40
  setShouldShowButton = _useState4[1];
41
41
  var _useState5 = (0, _react.useState)({
42
42
  displayedDate: ' ',
43
- displayTime: ''
43
+ displayedTime: ''
44
44
  }),
45
45
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
46
46
  _useState6$ = _useState6[0],
47
47
  displayedDate = _useState6$.displayedDate,
48
48
  displayedTime = _useState6$.displayedTime,
49
49
  setDisplayedDate = _useState6[1];
50
- var usedDate = date || published;
50
+ var usedDate = date;
51
51
  var contentRef = (0, _react.useRef)(null);
52
52
  (0, _react.useEffect)(function () {
53
- var timeout = setTimeout(function () {
54
- if (contentRef.current) {
55
- var contentHeight = contentRef.current.scrollHeight;
56
- if (contentHeight > 380) {
57
- setShouldShowButton(true);
58
- }
59
- }
60
- }, 500); // delay to wait for content load
61
- // todo: change to use mutation observer
62
-
63
- return function () {
64
- clearTimeout(timeout);
53
+ var el = contentRef.current;
54
+ if (!el) return;
55
+ var check = function check() {
56
+ return setShouldShowButton(el.scrollHeight > COLLAPSE_HEIGHT);
65
57
  };
58
+ if (typeof ResizeObserver !== 'undefined') {
59
+ check();
60
+ var ro = new ResizeObserver(check);
61
+ ro.observe(el);
62
+ return function () {
63
+ return ro.disconnect();
64
+ };
65
+ }
66
+ check();
66
67
  }, [children]);
67
68
  (0, _react.useEffect)(function () {
68
- // delay setting time so no SSR issues based on timezone
69
- var newDate = '';
70
- if (usedDate) {
71
- var diffInDays = (0, _dayjs["default"])().diff((0, _dayjs["default"])(usedDate), 'day');
72
- if (diffInDays < 1) {
73
- newDate = (0, _dayjs["default"])(usedDate).fromNow();
74
- } else if (diffInDays < 365) {
75
- newDate = (0, _dayjs["default"])(usedDate).format('DD MMM');
76
- } else {
77
- newDate = (0, _dayjs["default"])(usedDate).format('DD MMM YYYY');
78
- }
79
- setDisplayedDate({
80
- displayedDate: newDate,
81
- displayedTime: (0, _dayjs["default"])(usedDate).format('HH:mm')
82
- });
83
- }
84
- }, [date, published, usedDate]);
69
+ if (!usedDate) return;
70
+ var days = (0, _dayjs["default"])().diff((0, _dayjs["default"])(usedDate), 'day');
71
+ var lessThanAYear = days < 365;
72
+ var newDate;
73
+ if (days < 1) newDate = (0, _dayjs["default"])(usedDate).fromNow();else if (lessThanAYear) newDate = (0, _dayjs["default"])(usedDate).format('DD MMM');else newDate = (0, _dayjs["default"])(usedDate).format('DD MMM YYYY');
74
+ setDisplayedDate({
75
+ displayedDate: newDate,
76
+ displayedTime: lessThanAYear ? (0, _dayjs["default"])(usedDate).format('HH:mm') : null
77
+ });
78
+ }, [usedDate]);
85
79
  var toggleExpanded = function toggleExpanded() {
86
- setIsExpanded(!isExpanded);
80
+ return setIsExpanded(function (value) {
81
+ return !value;
82
+ });
87
83
  };
88
84
  var isCollapsed = !isExpanded;
89
- var baseClass = 'live-blog-container';
90
- var modifier = featured ? " ".concat(baseClass, "--featured") : '';
91
- var className = "".concat(baseClass).concat(modifier);
85
+ var showHeader = usedDate || alternativeHeadline || featured;
92
86
  return /*#__PURE__*/_react["default"].createElement("div", {
93
- className: className
94
- }, usedDate && /*#__PURE__*/_react["default"].createElement("div", {
87
+ className: "live-blog-container".concat(featured ? ' live-blog-container--featured' : '')
88
+ }, showHeader && /*#__PURE__*/_react["default"].createElement("div", {
95
89
  className: "live-blog-date"
96
- }, featured && /*#__PURE__*/_react["default"].createElement(_bs.BsPinAngleFill, null), /*#__PURE__*/_react["default"].createElement("span", {
90
+ }, featured && /*#__PURE__*/_react["default"].createElement(_bs.BsPinAngleFill, null), usedDate && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
97
91
  className: "live-blog-date--date"
98
- }, displayedDate), /*#__PURE__*/_react["default"].createElement("span", {
92
+ }, displayedDate), displayedTime && /*#__PURE__*/_react["default"].createElement("span", {
99
93
  className: "live-blog-date--time"
100
- }, displayedTime)), /*#__PURE__*/_react["default"].createElement("div", {
94
+ }, displayedTime)), alternativeHeadline && /*#__PURE__*/_react["default"].createElement("span", {
95
+ className: "live-blog-date--headline"
96
+ }, alternativeHeadline)), /*#__PURE__*/_react["default"].createElement("div", {
101
97
  ref: contentRef,
102
- className: "live-blog-content ".concat(isCollapsed ? 'live-blog-content--collapsed' : 'live-blog-content--opened')
98
+ className: "live-blog-content ".concat(isCollapsed ? 'live-blog-content--collapsed collapsed' : 'live-blog-content--opened opened')
103
99
  }, children), shouldShowButton && /*#__PURE__*/_react["default"].createElement("div", {
104
100
  className: "live-blog-button-wrapper"
105
101
  }, /*#__PURE__*/_react["default"].createElement(_button["default"], {
102
+ "aria-label": isExpanded ? 'Show Less' : 'Show More',
106
103
  className: "live-blog-toggle",
107
104
  onClick: toggleExpanded,
108
105
  type: "button"
@@ -1 +1 @@
1
- {"version":3,"file":"LiveBlogList.js","names":["_react","_interopRequireWildcard","require","_dayjs","_interopRequireDefault","_relativeTime","_button","_fa","_bs","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","dayjs","extend","relativeTime","LiveBlogList","props","children","date","published","featured","_useState","useState","_useState2","_slicedToArray2","isExpanded","setIsExpanded","_useState3","_useState4","shouldShowButton","setShouldShowButton","_useState5","displayedDate","displayTime","_useState6","_useState6$","displayedTime","setDisplayedDate","usedDate","contentRef","useRef","useEffect","timeout","setTimeout","current","contentHeight","scrollHeight","clearTimeout","newDate","diffInDays","diff","fromNow","format","toggleExpanded","isCollapsed","baseClass","modifier","concat","className","createElement","BsPinAngleFill","ref","onClick","type","Fragment","FaMinus","FaPlus","_default","exports"],"sources":["../../../src/variants/LiveBlogList/LiveBlogList.js"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport Button from '@blaze-react/button';\nimport { FaPlus, FaMinus } from 'react-icons/fa';\nimport { BsPinAngleFill } from 'react-icons/bs';\n\ndayjs.extend(relativeTime);\n\nconst LiveBlogList = props => {\n const { children, date, published, featured } = props;\n const [isExpanded, setIsExpanded] = useState(false);\n const [shouldShowButton, setShouldShowButton] = useState(false);\n const [{ displayedDate, displayedTime }, setDisplayedDate] = useState({\n displayedDate: '&nbsp;',\n displayTime: ''\n });\n const usedDate = date || published;\n\n const contentRef = useRef(null);\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n if (contentRef.current) {\n const contentHeight = contentRef.current.scrollHeight;\n if (contentHeight > 380) {\n setShouldShowButton(true);\n }\n }\n }, 500); // delay to wait for content load\n // todo: change to use mutation observer\n\n return () => {\n clearTimeout(timeout);\n };\n }, [children]);\n\n useEffect(() => {\n // delay setting time so no SSR issues based on timezone\n let newDate = '';\n if (usedDate) {\n const diffInDays = dayjs().diff(dayjs(usedDate), 'day');\n if (diffInDays < 1) {\n newDate = dayjs(usedDate).fromNow();\n } else if (diffInDays < 365) {\n newDate = dayjs(usedDate).format('DD MMM');\n } else {\n newDate = dayjs(usedDate).format('DD MMM YYYY');\n }\n setDisplayedDate({\n displayedDate: newDate,\n displayedTime: dayjs(usedDate).format('HH:mm')\n });\n }\n }, [date, published, usedDate]);\n\n const toggleExpanded = () => {\n setIsExpanded(!isExpanded);\n };\n\n const isCollapsed = !isExpanded;\n const baseClass = 'live-blog-container';\n const modifier = featured ? ` ${baseClass}--featured` : '';\n const className = `${baseClass}${modifier}`;\n\n return (\n <div className={className}>\n {usedDate && (\n <div className=\"live-blog-date\">\n {featured && <BsPinAngleFill />}\n <span className=\"live-blog-date--date\">{displayedDate}</span>\n <span className=\"live-blog-date--time\">{displayedTime}</span>\n </div>\n )}\n\n <div\n ref={contentRef}\n className={`live-blog-content ${\n isCollapsed ? 'live-blog-content--collapsed' : 'live-blog-content--opened'\n }`}>\n {children}\n </div>\n\n {shouldShowButton && (\n <div className=\"live-blog-button-wrapper\">\n <Button className=\"live-blog-toggle\" onClick={toggleExpanded} type=\"button\">\n {isExpanded ? (\n <>\n <FaMinus className=\"toggle-icon\" /> Show Less\n </>\n ) : (\n <>\n <FaPlus className=\"toggle-icon\" /> Show More\n </>\n )}\n </Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default LiveBlogList;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,GAAA,GAAAL,OAAA;AACA,IAAAM,GAAA,GAAAN,OAAA;AAAgD,SAAAO,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEhDW,iBAAK,CAACC,MAAM,CAACC,wBAAY,CAAC;AAE1B,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK,EAAI;EAC5B,IAAQC,QAAQ,GAAgCD,KAAK,CAA7CC,QAAQ;IAAEC,IAAI,GAA0BF,KAAK,CAAnCE,IAAI;IAAEC,SAAS,GAAeH,KAAK,CAA7BG,SAAS;IAAEC,QAAQ,GAAKJ,KAAK,CAAlBI,QAAQ;EAC3C,IAAAC,SAAA,GAAoC,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAA5CI,UAAU,GAAAF,UAAA;IAAEG,aAAa,GAAAH,UAAA;EAChC,IAAAI,UAAA,GAAgD,IAAAL,eAAQ,EAAC,KAAK,CAAC;IAAAM,UAAA,OAAAJ,eAAA,aAAAG,UAAA;IAAxDE,gBAAgB,GAAAD,UAAA;IAAEE,mBAAmB,GAAAF,UAAA;EAC5C,IAAAG,UAAA,GAA6D,IAAAT,eAAQ,EAAC;MACpEU,aAAa,EAAE,QAAQ;MACvBC,WAAW,EAAE;IACf,CAAC,CAAC;IAAAC,UAAA,OAAAV,eAAA,aAAAO,UAAA;IAAAI,WAAA,GAAAD,UAAA;IAHOF,aAAa,GAAAG,WAAA,CAAbH,aAAa;IAAEI,aAAa,GAAAD,WAAA,CAAbC,aAAa;IAAIC,gBAAgB,GAAAH,UAAA;EAIzD,IAAMI,QAAQ,GAAGpB,IAAI,IAAIC,SAAS;EAElC,IAAMoB,UAAU,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAE/B,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,OAAO,GAAGC,UAAU,CAAC,YAAM;MAC/B,IAAIJ,UAAU,CAACK,OAAO,EAAE;QACtB,IAAMC,aAAa,GAAGN,UAAU,CAACK,OAAO,CAACE,YAAY;QACrD,IAAID,aAAa,GAAG,GAAG,EAAE;UACvBf,mBAAmB,CAAC,IAAI,CAAC;QAC3B;MACF;IACF,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACT;;IAEA,OAAO,YAAM;MACXiB,YAAY,CAACL,OAAO,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,CAACzB,QAAQ,CAAC,CAAC;EAEd,IAAAwB,gBAAS,EAAC,YAAM;IACd;IACA,IAAIO,OAAO,GAAG,EAAE;IAChB,IAAIV,QAAQ,EAAE;MACZ,IAAMW,UAAU,GAAG,IAAArC,iBAAK,EAAC,CAAC,CAACsC,IAAI,CAAC,IAAAtC,iBAAK,EAAC0B,QAAQ,CAAC,EAAE,KAAK,CAAC;MACvD,IAAIW,UAAU,GAAG,CAAC,EAAE;QAClBD,OAAO,GAAG,IAAApC,iBAAK,EAAC0B,QAAQ,CAAC,CAACa,OAAO,CAAC,CAAC;MACrC,CAAC,MAAM,IAAIF,UAAU,GAAG,GAAG,EAAE;QAC3BD,OAAO,GAAG,IAAApC,iBAAK,EAAC0B,QAAQ,CAAC,CAACc,MAAM,CAAC,QAAQ,CAAC;MAC5C,CAAC,MAAM;QACLJ,OAAO,GAAG,IAAApC,iBAAK,EAAC0B,QAAQ,CAAC,CAACc,MAAM,CAAC,aAAa,CAAC;MACjD;MACAf,gBAAgB,CAAC;QACfL,aAAa,EAAEgB,OAAO;QACtBZ,aAAa,EAAE,IAAAxB,iBAAK,EAAC0B,QAAQ,CAAC,CAACc,MAAM,CAAC,OAAO;MAC/C,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAAClC,IAAI,EAAEC,SAAS,EAAEmB,QAAQ,CAAC,CAAC;EAE/B,IAAMe,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IAC3B3B,aAAa,CAAC,CAACD,UAAU,CAAC;EAC5B,CAAC;EAED,IAAM6B,WAAW,GAAG,CAAC7B,UAAU;EAC/B,IAAM8B,SAAS,GAAG,qBAAqB;EACvC,IAAMC,QAAQ,GAAGpC,QAAQ,OAAAqC,MAAA,CAAOF,SAAS,kBAAe,EAAE;EAC1D,IAAMG,SAAS,MAAAD,MAAA,CAAMF,SAAS,EAAAE,MAAA,CAAGD,QAAQ,CAAE;EAE3C,oBACEzE,MAAA,YAAA4E,aAAA;IAAKD,SAAS,EAAEA;EAAU,GACvBpB,QAAQ,iBACPvD,MAAA,YAAA4E,aAAA;IAAKD,SAAS,EAAC;EAAgB,GAC5BtC,QAAQ,iBAAIrC,MAAA,YAAA4E,aAAA,CAACpE,GAAA,CAAAqE,cAAc,MAAE,CAAC,eAC/B7E,MAAA,YAAA4E,aAAA;IAAMD,SAAS,EAAC;EAAsB,GAAE1B,aAAoB,CAAC,eAC7DjD,MAAA,YAAA4E,aAAA;IAAMD,SAAS,EAAC;EAAsB,GAAEtB,aAAoB,CACzD,CACN,eAEDrD,MAAA,YAAA4E,aAAA;IACEE,GAAG,EAAEtB,UAAW;IAChBmB,SAAS,uBAAAD,MAAA,CACPH,WAAW,GAAG,8BAA8B,GAAG,2BAA2B;EACzE,GACFrC,QACE,CAAC,EAELY,gBAAgB,iBACf9C,MAAA,YAAA4E,aAAA;IAAKD,SAAS,EAAC;EAA0B,gBACvC3E,MAAA,YAAA4E,aAAA,CAACtE,OAAA,WAAM;IAACqE,SAAS,EAAC,kBAAkB;IAACI,OAAO,EAAET,cAAe;IAACU,IAAI,EAAC;EAAQ,GACxEtC,UAAU,gBACT1C,MAAA,YAAA4E,aAAA,CAAA5E,MAAA,YAAAiF,QAAA,qBACEjF,MAAA,YAAA4E,aAAA,CAACrE,GAAA,CAAA2E,OAAO;IAACP,SAAS,EAAC;EAAa,CAAE,CAAC,cACnC,CAAC,gBAEH3E,MAAA,YAAA4E,aAAA,CAAA5E,MAAA,YAAAiF,QAAA,qBACEjF,MAAA,YAAA4E,aAAA,CAACrE,GAAA,CAAA4E,MAAM;IAACR,SAAS,EAAC;EAAa,CAAE,CAAC,cAClC,CAEE,CACL,CAEJ,CAAC;AAEV,CAAC;AAAC,IAAAS,QAAA,GAAAC,OAAA,cAEarD,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"LiveBlogList.js","names":["_react","_interopRequireWildcard","require","_dayjs","_interopRequireDefault","_relativeTime","_button","_fa","_bs","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","dayjs","extend","relativeTime","COLLAPSE_HEIGHT","LiveBlogList","_ref","children","date","published","featured","alternativeHeadline","_useState","useState","_useState2","_slicedToArray2","isExpanded","setIsExpanded","_useState3","_useState4","shouldShowButton","setShouldShowButton","_useState5","displayedDate","displayedTime","_useState6","_useState6$","setDisplayedDate","usedDate","contentRef","useRef","useEffect","el","current","check","scrollHeight","ResizeObserver","ro","observe","disconnect","days","diff","lessThanAYear","newDate","fromNow","format","toggleExpanded","value","isCollapsed","showHeader","createElement","className","concat","BsPinAngleFill","Fragment","ref","onClick","type","FaMinus","FaPlus","_default","exports"],"sources":["../../../src/variants/LiveBlogList/LiveBlogList.js"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport Button from '@blaze-react/button';\nimport { FaPlus, FaMinus } from 'react-icons/fa';\nimport { BsPinAngleFill } from 'react-icons/bs';\n\ndayjs.extend(relativeTime);\n\nconst COLLAPSE_HEIGHT = 380;\n\nconst LiveBlogList = ({ children, date, published, featured, alternativeHeadline }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const [shouldShowButton, setShouldShowButton] = useState(false);\n const [{ displayedDate, displayedTime }, setDisplayedDate] = useState({\n displayedDate: '&nbsp;',\n displayedTime: ''\n });\n const usedDate = date;\n const contentRef = useRef(null);\n\n useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n\n const check = () => setShouldShowButton(el.scrollHeight > COLLAPSE_HEIGHT);\n\n if (typeof ResizeObserver !== 'undefined') {\n check();\n const ro = new ResizeObserver(check);\n ro.observe(el);\n return () => ro.disconnect();\n }\n check();\n }, [children]);\n\n useEffect(() => {\n if (!usedDate) return;\n const days = dayjs().diff(dayjs(usedDate), 'day');\n const lessThanAYear = days < 365;\n\n let newDate;\n if (days < 1) newDate = dayjs(usedDate).fromNow();\n else if (lessThanAYear) newDate = dayjs(usedDate).format('DD MMM');\n else newDate = dayjs(usedDate).format('DD MMM YYYY');\n\n setDisplayedDate({\n displayedDate: newDate,\n displayedTime: lessThanAYear ? dayjs(usedDate).format('HH:mm') : null\n });\n }, [usedDate]);\n\n const toggleExpanded = () => setIsExpanded(value => !value);\n const isCollapsed = !isExpanded;\n const showHeader = usedDate || alternativeHeadline || featured;\n\n return (\n <div className={`live-blog-container${featured ? ' live-blog-container--featured' : ''}`}>\n {showHeader && (\n <div className=\"live-blog-date\">\n {featured && <BsPinAngleFill />}\n {usedDate && (\n <>\n <span className=\"live-blog-date--date\">{displayedDate}</span>\n {displayedTime && <span className=\"live-blog-date--time\">{displayedTime}</span>}\n </>\n )}\n {alternativeHeadline && (\n <span className=\"live-blog-date--headline\">{alternativeHeadline}</span>\n )}\n </div>\n )}\n\n <div\n ref={contentRef}\n className={`live-blog-content ${\n isCollapsed\n ? 'live-blog-content--collapsed collapsed'\n : 'live-blog-content--opened opened'\n }`}>\n {children}\n </div>\n\n {shouldShowButton && (\n <div className=\"live-blog-button-wrapper\">\n <Button\n aria-label={isExpanded ? 'Show Less' : 'Show More'}\n className=\"live-blog-toggle\"\n onClick={toggleExpanded}\n type=\"button\">\n {isExpanded ? (\n <>\n <FaMinus className=\"toggle-icon\" /> Show Less\n </>\n ) : (\n <>\n <FaPlus className=\"toggle-icon\" /> Show More\n </>\n )}\n </Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default LiveBlogList;\n"],"mappings":"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","ignoreList":[]}
@@ -53,14 +53,19 @@ const Button = props => {
53
53
  if (!text && !icon) return false;
54
54
  return !!(url || hasChildren(children));
55
55
  };
56
- const logout = () => {
57
- handleLogout(client);
58
- if (hasChildren(children)) return setShowChildren(true);
59
- if (!urlToUse) return router.reload();
60
- return urlToUse.startsWith('/') ? router.push('/Resolver', urlToUse) : window.location.href = urlToUse;
56
+ const logout = async () => {
57
+ await handleLogout(client);
58
+ if (hasChildren(children)) {
59
+ setShowChildren(true);
60
+ return;
61
+ }
62
+ if (!urlToUse) {
63
+ return router.reload();
64
+ }
65
+ window.location.href = urlToUse;
61
66
  };
62
- const handleClick = () => {
63
- if (isLogoutButton) logout();
67
+ const handleClick = async () => {
68
+ if (isLogoutButton) await logout();
64
69
  if (!url && !isLogoutButton) setShowChildren(!showChildren);
65
70
  };
66
71
  if (!checkIfButtonShouldRender()) return null;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["React","useState","Fragment","useEffect","useCookies","useRouter","classnames","BlazeButton","handleLogout","useApolloClient","PropTypes","bool","string","useStringTemplate","ClickWrapper","BlazeLink","withTitle","getClassModifiers","LOGOUT","renderChildren","updateChildrensParent","hasChildren","getClickWrapperOptions","Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","parent","otherProps","_objectWithoutProperties","_excluded","client","router","isLogoutButton","cookies","blaze_auth","blazeCookie","showChildren","setShowChildren","data","textToUse","afterClickTextToUse","urlToUse","asPath","checkIfButtonShouldRender","logout","reload","startsWith","push","window","location","href","handleClick","buttonType","modifiers","_objectSpread","currentProps","title","DynamicButton","itemId","itemEntity","renderedChildren","onClose","shouldUseClickWrapper","wrapperProps","Wrapper","contentClassName","createElement","className","_extends","onClick","propTypes","object","size","oneOfType","arrayOf","node","defaultProps"],"sources":["../../src/components/Button.js"],"sourcesContent":["import React, { useState, Fragment, useEffect } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useRouter } from 'next/router';\nimport classnames from 'classnames';\nimport BlazeButton from '@blaze-react/button';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes, { bool, string } from 'prop-types';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport ClickWrapper from './ClickWrapper';\nimport BlazeLink from './BlazeLink';\nimport { withTitle } from '../HOC';\nimport { getClassModifiers } from '../utils';\nimport { LOGOUT } from '../constants';\nimport {\n renderChildren,\n updateChildrensParent,\n hasChildren,\n getClickWrapperOptions\n} from '../helpers';\n\nconst Button = props => {\n const {\n type,\n text,\n url,\n icon,\n name,\n style,\n children,\n clickAction,\n childSeoVisibility,\n afterClickText,\n parent,\n ...otherProps\n } = props;\n const client = useApolloClient();\n const router = useRouter();\n const isLogoutButton = clickAction === LOGOUT;\n const [cookies] = useCookies();\n const { blaze_auth: blazeCookie } = cookies;\n const [showChildren, setShowChildren] = useState(false);\n const {\n data: [textToUse, afterClickTextToUse, urlToUse]\n } = useStringTemplate(parent, [text, afterClickText, url]);\n\n useEffect(() => {\n setShowChildren(false);\n }, [router.asPath]);\n\n const checkIfButtonShouldRender = () => {\n if (isLogoutButton) return !!blazeCookie;\n if (!text && !icon) return false;\n return !!(url || hasChildren(children));\n };\n\n const logout = () => {\n handleLogout(client);\n if (hasChildren(children)) return setShowChildren(true);\n\n if (!urlToUse) return router.reload();\n\n return urlToUse.startsWith('/')\n ? router.push('/Resolver', urlToUse)\n : (window.location.href = urlToUse);\n };\n\n const handleClick = () => {\n if (isLogoutButton) logout();\n if (!url && !isLogoutButton) setShowChildren(!showChildren);\n };\n\n if (!checkIfButtonShouldRender()) return null;\n\n const buttonType = !text && icon ? 'icon' : type;\n const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });\n const currentProps = url ? { href: urlToUse, title: name } : { name };\n const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;\n updateChildrensParent(children, parent.itemId, parent.itemEntity);\n\n const renderedChildren = renderChildren(children, { onClose: handleClick });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const contentClassName = classnames('button__content', {\n 'button__content--show': showChildren\n });\n\n return (\n <Wrapper {...wrapperProps}>\n {childSeoVisibility && <div className={contentClassName}>{renderedChildren}</div>}\n {!childSeoVisibility && showChildren && renderedChildren}\n <DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>\n {icon && <i className={icon} />}\n {showChildren ? afterClickTextToUse : textToUse}\n </DynamicButton>\n </Wrapper>\n );\n};\n\nButton.propTypes = {\n parent: PropTypes.object,\n clickAction: PropTypes.string,\n text: PropTypes.string,\n afterClickText: string,\n name: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n size: PropTypes.string,\n icon: PropTypes.string,\n style: PropTypes.string,\n childSeoVisibility: bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nButton.defaultProps = {\n parent: {},\n clickAction: '',\n text: '',\n afterClickText: '',\n name: '',\n type: '',\n url: null,\n size: '',\n icon: '',\n style: '',\n children: [],\n childSeoVisibility: false\n};\n\nexport default withTitle(Button);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Button.js","names":["React","useState","Fragment","useEffect","useCookies","useRouter","classnames","BlazeButton","handleLogout","useApolloClient","PropTypes","bool","string","useStringTemplate","ClickWrapper","BlazeLink","withTitle","getClassModifiers","LOGOUT","renderChildren","updateChildrensParent","hasChildren","getClickWrapperOptions","Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","parent","otherProps","_objectWithoutProperties","_excluded","client","router","isLogoutButton","cookies","blaze_auth","blazeCookie","showChildren","setShowChildren","data","textToUse","afterClickTextToUse","urlToUse","asPath","checkIfButtonShouldRender","logout","reload","window","location","href","handleClick","buttonType","modifiers","_objectSpread","currentProps","title","DynamicButton","itemId","itemEntity","renderedChildren","onClose","shouldUseClickWrapper","wrapperProps","Wrapper","contentClassName","createElement","className","_extends","onClick","propTypes","object","size","oneOfType","arrayOf","node","defaultProps"],"sources":["../../src/components/Button.js"],"sourcesContent":["import React, { useState, Fragment, useEffect } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useRouter } from 'next/router';\nimport classnames from 'classnames';\nimport BlazeButton from '@blaze-react/button';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes, { bool, string } from 'prop-types';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport ClickWrapper from './ClickWrapper';\nimport BlazeLink from './BlazeLink';\nimport { withTitle } from '../HOC';\nimport { getClassModifiers } from '../utils';\nimport { LOGOUT } from '../constants';\nimport {\n renderChildren,\n updateChildrensParent,\n hasChildren,\n getClickWrapperOptions\n} from '../helpers';\n\nconst Button = props => {\n const {\n type,\n text,\n url,\n icon,\n name,\n style,\n children,\n clickAction,\n childSeoVisibility,\n afterClickText,\n parent,\n ...otherProps\n } = props;\n const client = useApolloClient();\n const router = useRouter();\n const isLogoutButton = clickAction === LOGOUT;\n const [cookies] = useCookies();\n const { blaze_auth: blazeCookie } = cookies;\n const [showChildren, setShowChildren] = useState(false);\n const {\n data: [textToUse, afterClickTextToUse, urlToUse]\n } = useStringTemplate(parent, [text, afterClickText, url]);\n\n useEffect(() => {\n setShowChildren(false);\n }, [router.asPath]);\n\n const checkIfButtonShouldRender = () => {\n if (isLogoutButton) return !!blazeCookie;\n if (!text && !icon) return false;\n return !!(url || hasChildren(children));\n };\n\n const logout = async () => {\n await handleLogout(client);\n\n if (hasChildren(children)) {\n setShowChildren(true);\n return;\n }\n\n if (!urlToUse) {\n return router.reload();\n }\n\n window.location.href = urlToUse;\n };\n\n const handleClick = async () => {\n if (isLogoutButton) await logout();\n if (!url && !isLogoutButton) setShowChildren(!showChildren);\n };\n\n if (!checkIfButtonShouldRender()) return null;\n\n const buttonType = !text && icon ? 'icon' : type;\n const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });\n const currentProps = url ? { href: urlToUse, title: name } : { name };\n const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;\n updateChildrensParent(children, parent.itemId, parent.itemEntity);\n\n const renderedChildren = renderChildren(children, { onClose: handleClick });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const contentClassName = classnames('button__content', {\n 'button__content--show': showChildren\n });\n\n return (\n <Wrapper {...wrapperProps}>\n {childSeoVisibility && <div className={contentClassName}>{renderedChildren}</div>}\n {!childSeoVisibility && showChildren && renderedChildren}\n <DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>\n {icon && <i className={icon} />}\n {showChildren ? afterClickTextToUse : textToUse}\n </DynamicButton>\n </Wrapper>\n );\n};\n\nButton.propTypes = {\n parent: PropTypes.object,\n clickAction: PropTypes.string,\n text: PropTypes.string,\n afterClickText: string,\n name: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n size: PropTypes.string,\n icon: PropTypes.string,\n style: PropTypes.string,\n childSeoVisibility: bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nButton.defaultProps = {\n parent: {},\n clickAction: '',\n text: '',\n afterClickText: '',\n name: '',\n type: '',\n url: null,\n size: '',\n icon: '',\n style: '',\n children: [],\n childSeoVisibility: false\n};\n\nexport default withTitle(Button);\n"],"mappings":"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","ignoreList":[]}
@@ -32,7 +32,7 @@ const ListFactory = props => {
32
32
  operator: filterOperator,
33
33
  sortProperties,
34
34
  itemListName,
35
- VariantComponent // extracted from props
35
+ VariantComponent
36
36
  } = props;
37
37
  const {
38
38
  isPreview
@@ -1 +1 @@
1
- {"version":3,"file":"ListFactory.js","names":["React","useContext","useQuery","parseUrl","PropTypes","useRouter","MainContext","generateSingleItemQuery","getItemList","ListBuilder","AZ_LIST_TYPE","getAzQueryFilter","getSortProps","hasRequiredItemListDetails","getListSpecificSearchFilter","getListQuery","getGenericProps","getRequiredSchemas","checkForError","getUnpublishedEntityName","getPaginationIndex","getSearchFilterType","getElasticsearchOperator","buildSearchValuesText","getQueryFilters","getInheritedFilters","getQueryProps","getItemListId","getItemListIds","useGetEntitySchemasAsObj","AND_OPERATOR","TEXT_SEARCH","ID","AND","FULL","VariantContext","createContext","ListFactory","props","entity","legacyEntity","entities","parent","name","filterByProperty","filterBy","omitWrappers","type","sortby","defaultSortBy","sort","defaultSort","allSearchFilters","operator","filterOperator","sortProperties","itemListName","VariantComponent","isPreview","router","asPath","parsedQuery","replace","searchFilter","hasListSpecificFilters","query","url","itemListId","queryItemListId","updatedQuery","isTextSearchFilterApplied","search_term","length","querySort","querySortBy","sortbyFilters","updatedSortProperties","itemEntity","parentEntity","itemId","parentId","updatedParentEntity","paginationIndex","azFilter","entitiesToUse","filterEntity","data","mainSchemas","loading","schemasLoading","error","schemasError","currentSchema","filterEntitySchema","requiredSchema","requiredSchemaLoading","requiredSchemaError","inheritedFilters","queryProps","actions","getAction","get","getPublished","entityData","itemQueryError","itemQueryLoading","variables","id","skip","itemListData","itemListError","itemListLoading","errorsToCheck","hasErr","errMsg","itemListIds","isCard","includes","isAZ","genericProps","textFilter","shouldApplyTextFilter","propsToDisplay","valuesText","valuesAnd","valuesOr","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","_objectSpread","createElement","Provider","value","propTypes","object","isRequired","string","array","bool","func","defaultProps"],"sources":["../../../src/components/List/ListFactory.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { generateSingleItemQuery, getItemList } from '../../application/query';\nimport ListBuilder from './ListBuilder';\nimport { AZ_LIST_TYPE } from './constants';\nimport {\n getAzQueryFilter,\n getSortProps,\n hasRequiredItemListDetails,\n getListSpecificSearchFilter,\n getListQuery\n} from './helpers';\nimport {\n getGenericProps,\n getRequiredSchemas,\n checkForError,\n getUnpublishedEntityName,\n getPaginationIndex,\n getSearchFilterType,\n getElasticsearchOperator,\n buildSearchValuesText,\n getQueryFilters,\n getInheritedFilters,\n getQueryProps\n} from '../../helpers';\nimport { getItemListId, getItemListIds } from '../ItemList/helpers';\nimport { useGetEntitySchemasAsObj } from '../../hooks';\nimport { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';\n\nexport const VariantContext = React.createContext(null);\n\nconst ListFactory = props => {\n const {\n entity: legacyEntity,\n entities,\n parent,\n name,\n filterByProperty,\n filterBy,\n omitWrappers,\n type,\n sortby: defaultSortBy,\n sort: defaultSort,\n allSearchFilters,\n operator: filterOperator,\n sortProperties,\n itemListName,\n VariantComponent // extracted from props\n } = props;\n const { isPreview } = useContext(MainContext);\n const router = useRouter();\n const { asPath } = router;\n const parsedQuery = asPath.replace(/%5D/g, ']').replace(/%5B/g, '[');\n const [searchFilter, hasListSpecificFilters] = getListSpecificSearchFilter(\n allSearchFilters,\n name\n );\n const { query, url, query: { itemListId: queryItemListId } = {} } = parseUrl(parsedQuery);\n const updatedQuery = getListQuery(query, hasListSpecificFilters, name);\n const isTextSearchFilterApplied = !!(\n updatedQuery.search_term &&\n searchFilter &&\n getSearchFilterType(searchFilter, TEXT_SEARCH).length\n );\n\n const { sort: querySort, sortby: querySortBy } = updatedQuery;\n\n const { sortbyFilters, updatedSortProperties } = getSortProps({\n querySort,\n sortProperties,\n defaultSort,\n querySortBy,\n defaultSortBy,\n isTextSearchFilterApplied\n });\n\n const itemListId = getItemListId(itemListName, queryItemListId);\n const { itemEntity: parentEntity, itemId: parentId } = parent;\n const updatedParentEntity = getUnpublishedEntityName(parentEntity);\n const paginationIndex = getPaginationIndex(updatedQuery, name);\n const azFilter = getAzQueryFilter(updatedQuery, name);\n\n const entitiesToUse = entities && entities.length ? entities : [legacyEntity];\n const [filterEntity] = entitiesToUse;\n const {\n data: mainSchemas = {},\n loading: schemasLoading,\n error: schemasError\n } = useGetEntitySchemasAsObj([updatedParentEntity, ...entitiesToUse]);\n\n const { [updatedParentEntity]: currentSchema = {}, [filterEntity]: filterEntitySchema = {} } =\n mainSchemas;\n\n const {\n data: requiredSchema = {},\n loading: requiredSchemaLoading,\n error: requiredSchemaError\n } = useGetEntitySchemasAsObj(\n getRequiredSchemas([...filterByProperty, ...sortbyFilters], filterEntitySchema),\n schemasLoading\n );\n const inheritedFilters = getInheritedFilters(filterBy, filterByProperty);\n const queryProps = getQueryProps(inheritedFilters, currentSchema, filterEntitySchema);\n const { actions = {} } = currentSchema || {};\n const getAction = isPreview ? actions.get : actions.getPublished;\n\n const {\n data: { entityData = {} } = {},\n error: itemQueryError,\n loading: itemQueryLoading\n } = useQuery(generateSingleItemQuery(getAction, queryProps), {\n variables: { id: parentId },\n skip: schemasLoading || (!inheritedFilters.length && queryProps === ID)\n });\n\n const {\n data: itemListData = {},\n error: itemListError,\n loading: itemListLoading\n } = useQuery(getItemList, {\n variables: { id: itemListId },\n skip: !itemListId\n });\n\n if (!hasRequiredItemListDetails({ itemListName, router, itemListId, queryItemListId })) return '';\n\n const errorsToCheck = [schemasError, requiredSchemaError, itemQueryError, itemListError];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (requiredSchemaLoading || schemasLoading || itemQueryLoading || itemListLoading) return '';\n if (hasErr) return errMsg;\n\n const itemListIds = getItemListIds(itemListData);\n const isCard = !type.includes(FULL);\n const isAZ = type.includes(AZ_LIST_TYPE);\n const genericProps = getGenericProps(props);\n const [textFilter] = getSearchFilterType(searchFilter, TEXT_SEARCH);\n const shouldApplyTextFilter = textFilter && textFilter.propsToDisplay.length;\n const operator = shouldApplyTextFilter ? getElasticsearchOperator(textFilter) : AND_OPERATOR;\n const valuesText = shouldApplyTextFilter\n ? buildSearchValuesText(textFilter, updatedQuery, name)\n : [];\n const { valuesAnd, valuesOr } = getQueryFilters(searchFilter, updatedQuery, name);\n\n const searchValues = {\n searchValuesText: valuesText,\n searchValuesCheckboxSelectRange: valuesAnd,\n searchValuesCheckboxOr: valuesOr\n };\n const listProps = {\n ...props,\n ...genericProps,\n query: updatedQuery,\n url,\n isCard,\n isAZ,\n router,\n sort: null,\n sortby: null,\n sortProperties: updatedSortProperties,\n azFilter,\n searchValues,\n filterEntitySchema,\n requiredSchema,\n currentSchema,\n omitWrappers,\n operator,\n paginationIndex,\n entityData,\n inheritedFilters,\n filterOperator,\n itemListIds,\n entities: entitiesToUse,\n mainSchemas\n };\n\n return (\n <VariantContext.Provider value={VariantComponent}>\n <ListBuilder {...listProps} />\n </VariantContext.Provider>\n );\n};\n\nListFactory.propTypes = {\n parent: PropTypes.object.isRequired,\n type: PropTypes.string.isRequired,\n entity: PropTypes.string,\n entities: PropTypes.array,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n omitWrappers: PropTypes.bool,\n operator: PropTypes.string,\n name: PropTypes.string,\n sortby: PropTypes.array,\n sort: PropTypes.string,\n allSearchFilters: PropTypes.array,\n sortProperties: PropTypes.array,\n itemListName: PropTypes.string,\n VariantComponent: PropTypes.func\n};\n\nListFactory.defaultProps = {\n entity: '',\n entities: [],\n filterBy: [],\n filterByProperty: [],\n omitWrappers: false,\n name: '',\n sortby: [],\n sortProperties: [],\n sort: '',\n operator: AND,\n allSearchFilters: [],\n itemListName: '',\n VariantComponent: null\n};\n\nexport default ListFactory;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ListFactory.js","names":["React","useContext","useQuery","parseUrl","PropTypes","useRouter","MainContext","generateSingleItemQuery","getItemList","ListBuilder","AZ_LIST_TYPE","getAzQueryFilter","getSortProps","hasRequiredItemListDetails","getListSpecificSearchFilter","getListQuery","getGenericProps","getRequiredSchemas","checkForError","getUnpublishedEntityName","getPaginationIndex","getSearchFilterType","getElasticsearchOperator","buildSearchValuesText","getQueryFilters","getInheritedFilters","getQueryProps","getItemListId","getItemListIds","useGetEntitySchemasAsObj","AND_OPERATOR","TEXT_SEARCH","ID","AND","FULL","VariantContext","createContext","ListFactory","props","entity","legacyEntity","entities","parent","name","filterByProperty","filterBy","omitWrappers","type","sortby","defaultSortBy","sort","defaultSort","allSearchFilters","operator","filterOperator","sortProperties","itemListName","VariantComponent","isPreview","router","asPath","parsedQuery","replace","searchFilter","hasListSpecificFilters","query","url","itemListId","queryItemListId","updatedQuery","isTextSearchFilterApplied","search_term","length","querySort","querySortBy","sortbyFilters","updatedSortProperties","itemEntity","parentEntity","itemId","parentId","updatedParentEntity","paginationIndex","azFilter","entitiesToUse","filterEntity","data","mainSchemas","loading","schemasLoading","error","schemasError","currentSchema","filterEntitySchema","requiredSchema","requiredSchemaLoading","requiredSchemaError","inheritedFilters","queryProps","actions","getAction","get","getPublished","entityData","itemQueryError","itemQueryLoading","variables","id","skip","itemListData","itemListError","itemListLoading","errorsToCheck","hasErr","errMsg","itemListIds","isCard","includes","isAZ","genericProps","textFilter","shouldApplyTextFilter","propsToDisplay","valuesText","valuesAnd","valuesOr","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","_objectSpread","createElement","Provider","value","propTypes","object","isRequired","string","array","bool","func","defaultProps"],"sources":["../../../src/components/List/ListFactory.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { generateSingleItemQuery, getItemList } from '../../application/query';\nimport ListBuilder from './ListBuilder';\nimport { AZ_LIST_TYPE } from './constants';\nimport {\n getAzQueryFilter,\n getSortProps,\n hasRequiredItemListDetails,\n getListSpecificSearchFilter,\n getListQuery\n} from './helpers';\nimport {\n getGenericProps,\n getRequiredSchemas,\n checkForError,\n getUnpublishedEntityName,\n getPaginationIndex,\n getSearchFilterType,\n getElasticsearchOperator,\n buildSearchValuesText,\n getQueryFilters,\n getInheritedFilters,\n getQueryProps\n} from '../../helpers';\nimport { getItemListId, getItemListIds } from '../ItemList/helpers';\nimport { useGetEntitySchemasAsObj } from '../../hooks';\nimport { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';\n\nexport const VariantContext = React.createContext(null);\n\nconst ListFactory = props => {\n const {\n entity: legacyEntity,\n entities,\n parent,\n name,\n filterByProperty,\n filterBy,\n omitWrappers,\n type,\n sortby: defaultSortBy,\n sort: defaultSort,\n allSearchFilters,\n operator: filterOperator,\n sortProperties,\n itemListName,\n VariantComponent\n } = props;\n const { isPreview } = useContext(MainContext);\n const router = useRouter();\n const { asPath } = router;\n const parsedQuery = asPath.replace(/%5D/g, ']').replace(/%5B/g, '[');\n const [searchFilter, hasListSpecificFilters] = getListSpecificSearchFilter(\n allSearchFilters,\n name\n );\n const { query, url, query: { itemListId: queryItemListId } = {} } = parseUrl(parsedQuery);\n const updatedQuery = getListQuery(query, hasListSpecificFilters, name);\n const isTextSearchFilterApplied = !!(\n updatedQuery.search_term &&\n searchFilter &&\n getSearchFilterType(searchFilter, TEXT_SEARCH).length\n );\n\n const { sort: querySort, sortby: querySortBy } = updatedQuery;\n\n const { sortbyFilters, updatedSortProperties } = getSortProps({\n querySort,\n sortProperties,\n defaultSort,\n querySortBy,\n defaultSortBy,\n isTextSearchFilterApplied\n });\n\n const itemListId = getItemListId(itemListName, queryItemListId);\n const { itemEntity: parentEntity, itemId: parentId } = parent;\n const updatedParentEntity = getUnpublishedEntityName(parentEntity);\n const paginationIndex = getPaginationIndex(updatedQuery, name);\n const azFilter = getAzQueryFilter(updatedQuery, name);\n\n const entitiesToUse = entities && entities.length ? entities : [legacyEntity];\n const [filterEntity] = entitiesToUse;\n const {\n data: mainSchemas = {},\n loading: schemasLoading,\n error: schemasError\n } = useGetEntitySchemasAsObj([updatedParentEntity, ...entitiesToUse]);\n\n const { [updatedParentEntity]: currentSchema = {}, [filterEntity]: filterEntitySchema = {} } =\n mainSchemas;\n\n const {\n data: requiredSchema = {},\n loading: requiredSchemaLoading,\n error: requiredSchemaError\n } = useGetEntitySchemasAsObj(\n getRequiredSchemas([...filterByProperty, ...sortbyFilters], filterEntitySchema),\n schemasLoading\n );\n const inheritedFilters = getInheritedFilters(filterBy, filterByProperty);\n const queryProps = getQueryProps(inheritedFilters, currentSchema, filterEntitySchema);\n const { actions = {} } = currentSchema || {};\n const getAction = isPreview ? actions.get : actions.getPublished;\n\n const {\n data: { entityData = {} } = {},\n error: itemQueryError,\n loading: itemQueryLoading\n } = useQuery(generateSingleItemQuery(getAction, queryProps), {\n variables: { id: parentId },\n skip: schemasLoading || (!inheritedFilters.length && queryProps === ID)\n });\n\n const {\n data: itemListData = {},\n error: itemListError,\n loading: itemListLoading\n } = useQuery(getItemList, {\n variables: { id: itemListId },\n skip: !itemListId\n });\n\n if (!hasRequiredItemListDetails({ itemListName, router, itemListId, queryItemListId })) return '';\n\n const errorsToCheck = [schemasError, requiredSchemaError, itemQueryError, itemListError];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (requiredSchemaLoading || schemasLoading || itemQueryLoading || itemListLoading) return '';\n if (hasErr) return errMsg;\n\n const itemListIds = getItemListIds(itemListData);\n const isCard = !type.includes(FULL);\n const isAZ = type.includes(AZ_LIST_TYPE);\n const genericProps = getGenericProps(props);\n const [textFilter] = getSearchFilterType(searchFilter, TEXT_SEARCH);\n const shouldApplyTextFilter = textFilter && textFilter.propsToDisplay.length;\n const operator = shouldApplyTextFilter ? getElasticsearchOperator(textFilter) : AND_OPERATOR;\n const valuesText = shouldApplyTextFilter\n ? buildSearchValuesText(textFilter, updatedQuery, name)\n : [];\n const { valuesAnd, valuesOr } = getQueryFilters(searchFilter, updatedQuery, name);\n\n const searchValues = {\n searchValuesText: valuesText,\n searchValuesCheckboxSelectRange: valuesAnd,\n searchValuesCheckboxOr: valuesOr\n };\n const listProps = {\n ...props,\n ...genericProps,\n query: updatedQuery,\n url,\n isCard,\n isAZ,\n router,\n sort: null,\n sortby: null,\n sortProperties: updatedSortProperties,\n azFilter,\n searchValues,\n filterEntitySchema,\n requiredSchema,\n currentSchema,\n omitWrappers,\n operator,\n paginationIndex,\n entityData,\n inheritedFilters,\n filterOperator,\n itemListIds,\n entities: entitiesToUse,\n mainSchemas\n };\n\n return (\n <VariantContext.Provider value={VariantComponent}>\n <ListBuilder {...listProps} />\n </VariantContext.Provider>\n );\n};\n\nListFactory.propTypes = {\n parent: PropTypes.object.isRequired,\n type: PropTypes.string.isRequired,\n entity: PropTypes.string,\n entities: PropTypes.array,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n omitWrappers: PropTypes.bool,\n operator: PropTypes.string,\n name: PropTypes.string,\n sortby: PropTypes.array,\n sort: PropTypes.string,\n allSearchFilters: PropTypes.array,\n sortProperties: PropTypes.array,\n itemListName: PropTypes.string,\n VariantComponent: PropTypes.func\n};\n\nListFactory.defaultProps = {\n entity: '',\n entities: [],\n filterBy: [],\n filterByProperty: [],\n omitWrappers: false,\n name: '',\n sortby: [],\n sortProperties: [],\n sort: '',\n operator: AND,\n allSearchFilters: [],\n itemListName: '',\n VariantComponent: null\n};\n\nexport default ListFactory;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,QAAQ,QAAQ,cAAc;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,uBAAuB,EAAEC,WAAW,QAAQ,yBAAyB;AAC9E,OAAOC,WAAW,MAAM,eAAe;AACvC,SAASC,YAAY,QAAQ,aAAa;AAC1C,SACEC,gBAAgB,EAChBC,YAAY,EACZC,0BAA0B,EAC1BC,2BAA2B,EAC3BC,YAAY,QACP,WAAW;AAClB,SACEC,eAAe,EACfC,kBAAkB,EAClBC,aAAa,EACbC,wBAAwB,EACxBC,kBAAkB,EAClBC,mBAAmB,EACnBC,wBAAwB,EACxBC,qBAAqB,EACrBC,eAAe,EACfC,mBAAmB,EACnBC,aAAa,QACR,eAAe;AACtB,SAASC,aAAa,EAAEC,cAAc,QAAQ,qBAAqB;AACnE,SAASC,wBAAwB,QAAQ,aAAa;AACtD,SAASC,YAAY,EAAEC,WAAW,EAAEC,EAAE,EAAEC,GAAG,EAAEC,IAAI,QAAQ,iBAAiB;AAE1E,OAAO,MAAMC,cAAc,GAAGnC,KAAK,CAACoC,aAAa,CAAC,IAAI,CAAC;AAEvD,MAAMC,WAAW,GAAGC,KAAK,IAAI;EAC3B,MAAM;IACJC,MAAM,EAAEC,YAAY;IACpBC,QAAQ;IACRC,MAAM;IACNC,IAAI;IACJC,gBAAgB;IAChBC,QAAQ;IACRC,YAAY;IACZC,IAAI;IACJC,MAAM,EAAEC,aAAa;IACrBC,IAAI,EAAEC,WAAW;IACjBC,gBAAgB;IAChBC,QAAQ,EAAEC,cAAc;IACxBC,cAAc;IACdC,YAAY;IACZC;EACF,CAAC,GAAGnB,KAAK;EACT,MAAM;IAAEoB;EAAU,CAAC,GAAGzD,UAAU,CAACK,WAAW,CAAC;EAC7C,MAAMqD,MAAM,GAAGtD,SAAS,CAAC,CAAC;EAC1B,MAAM;IAAEuD;EAAO,CAAC,GAAGD,MAAM;EACzB,MAAME,WAAW,GAAGD,MAAM,CAACE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;EACpE,MAAM,CAACC,YAAY,EAAEC,sBAAsB,CAAC,GAAGlD,2BAA2B,CACxEsC,gBAAgB,EAChBT,IACF,CAAC;EACD,MAAM;IAAEsB,KAAK;IAAEC,GAAG;IAAED,KAAK,EAAE;MAAEE,UAAU,EAAEC;IAAgB,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGjE,QAAQ,CAAC0D,WAAW,CAAC;EACzF,MAAMQ,YAAY,GAAGtD,YAAY,CAACkD,KAAK,EAAED,sBAAsB,EAAErB,IAAI,CAAC;EACtE,MAAM2B,yBAAyB,GAAG,CAAC,EACjCD,YAAY,CAACE,WAAW,IACxBR,YAAY,IACZ1C,mBAAmB,CAAC0C,YAAY,EAAEhC,WAAW,CAAC,CAACyC,MAAM,CACtD;EAED,MAAM;IAAEtB,IAAI,EAAEuB,SAAS;IAAEzB,MAAM,EAAE0B;EAAY,CAAC,GAAGL,YAAY;EAE7D,MAAM;IAAEM,aAAa;IAAEC;EAAsB,CAAC,GAAGhE,YAAY,CAAC;IAC5D6D,SAAS;IACTlB,cAAc;IACdJ,WAAW;IACXuB,WAAW;IACXzB,aAAa;IACbqB;EACF,CAAC,CAAC;EAEF,MAAMH,UAAU,GAAGxC,aAAa,CAAC6B,YAAY,EAAEY,eAAe,CAAC;EAC/D,MAAM;IAAES,UAAU,EAAEC,YAAY;IAAEC,MAAM,EAAEC;EAAS,CAAC,GAAGtC,MAAM;EAC7D,MAAMuC,mBAAmB,GAAG9D,wBAAwB,CAAC2D,YAAY,CAAC;EAClE,MAAMI,eAAe,GAAG9D,kBAAkB,CAACiD,YAAY,EAAE1B,IAAI,CAAC;EAC9D,MAAMwC,QAAQ,GAAGxE,gBAAgB,CAAC0D,YAAY,EAAE1B,IAAI,CAAC;EAErD,MAAMyC,aAAa,GAAG3C,QAAQ,IAAIA,QAAQ,CAAC+B,MAAM,GAAG/B,QAAQ,GAAG,CAACD,YAAY,CAAC;EAC7E,MAAM,CAAC6C,YAAY,CAAC,GAAGD,aAAa;EACpC,MAAM;IACJE,IAAI,EAAEC,WAAW,GAAG,CAAC,CAAC;IACtBC,OAAO,EAAEC,cAAc;IACvBC,KAAK,EAAEC;EACT,CAAC,GAAG9D,wBAAwB,CAAC,CAACoD,mBAAmB,EAAE,GAAGG,aAAa,CAAC,CAAC;EAErE,MAAM;IAAE,CAACH,mBAAmB,GAAGW,aAAa,GAAG,CAAC,CAAC;IAAE,CAACP,YAAY,GAAGQ,kBAAkB,GAAG,CAAC;EAAE,CAAC,GAC1FN,WAAW;EAEb,MAAM;IACJD,IAAI,EAAEQ,cAAc,GAAG,CAAC,CAAC;IACzBN,OAAO,EAAEO,qBAAqB;IAC9BL,KAAK,EAAEM;EACT,CAAC,GAAGnE,wBAAwB,CAC1BZ,kBAAkB,CAAC,CAAC,GAAG2B,gBAAgB,EAAE,GAAG+B,aAAa,CAAC,EAAEkB,kBAAkB,CAAC,EAC/EJ,cACF,CAAC;EACD,MAAMQ,gBAAgB,GAAGxE,mBAAmB,CAACoB,QAAQ,EAAED,gBAAgB,CAAC;EACxE,MAAMsD,UAAU,GAAGxE,aAAa,CAACuE,gBAAgB,EAAEL,aAAa,EAAEC,kBAAkB,CAAC;EACrF,MAAM;IAAEM,OAAO,GAAG,CAAC;EAAE,CAAC,GAAGP,aAAa,IAAI,CAAC,CAAC;EAC5C,MAAMQ,SAAS,GAAG1C,SAAS,GAAGyC,OAAO,CAACE,GAAG,GAAGF,OAAO,CAACG,YAAY;EAEhE,MAAM;IACJhB,IAAI,EAAE;MAAEiB,UAAU,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC,CAAC;IAC9Bb,KAAK,EAAEc,cAAc;IACrBhB,OAAO,EAAEiB;EACX,CAAC,GAAGvG,QAAQ,CAACK,uBAAuB,CAAC6F,SAAS,EAAEF,UAAU,CAAC,EAAE;IAC3DQ,SAAS,EAAE;MAAEC,EAAE,EAAE3B;IAAS,CAAC;IAC3B4B,IAAI,EAAEnB,cAAc,IAAK,CAACQ,gBAAgB,CAACzB,MAAM,IAAI0B,UAAU,KAAKlE;EACtE,CAAC,CAAC;EAEF,MAAM;IACJsD,IAAI,EAAEuB,YAAY,GAAG,CAAC,CAAC;IACvBnB,KAAK,EAAEoB,aAAa;IACpBtB,OAAO,EAAEuB;EACX,CAAC,GAAG7G,QAAQ,CAACM,WAAW,EAAE;IACxBkG,SAAS,EAAE;MAAEC,EAAE,EAAExC;IAAW,CAAC;IAC7ByC,IAAI,EAAE,CAACzC;EACT,CAAC,CAAC;EAEF,IAAI,CAACtD,0BAA0B,CAAC;IAAE2C,YAAY;IAAEG,MAAM;IAAEQ,UAAU;IAAEC;EAAgB,CAAC,CAAC,EAAE,OAAO,EAAE;EAEjG,MAAM4C,aAAa,GAAG,CAACrB,YAAY,EAAEK,mBAAmB,EAAEQ,cAAc,EAAEM,aAAa,CAAC;EACxF,MAAM;IAAEG,MAAM;IAAEC;EAAO,CAAC,GAAGhG,aAAa,CAAC8F,aAAa,CAAC;EAEvD,IAAIjB,qBAAqB,IAAIN,cAAc,IAAIgB,gBAAgB,IAAIM,eAAe,EAAE,OAAO,EAAE;EAC7F,IAAIE,MAAM,EAAE,OAAOC,MAAM;EAEzB,MAAMC,WAAW,GAAGvF,cAAc,CAACiF,YAAY,CAAC;EAChD,MAAMO,MAAM,GAAG,CAACrE,IAAI,CAACsE,QAAQ,CAACnF,IAAI,CAAC;EACnC,MAAMoF,IAAI,GAAGvE,IAAI,CAACsE,QAAQ,CAAC3G,YAAY,CAAC;EACxC,MAAM6G,YAAY,GAAGvG,eAAe,CAACsB,KAAK,CAAC;EAC3C,MAAM,CAACkF,UAAU,CAAC,GAAGnG,mBAAmB,CAAC0C,YAAY,EAAEhC,WAAW,CAAC;EACnE,MAAM0F,qBAAqB,GAAGD,UAAU,IAAIA,UAAU,CAACE,cAAc,CAAClD,MAAM;EAC5E,MAAMnB,QAAQ,GAAGoE,qBAAqB,GAAGnG,wBAAwB,CAACkG,UAAU,CAAC,GAAG1F,YAAY;EAC5F,MAAM6F,UAAU,GAAGF,qBAAqB,GACpClG,qBAAqB,CAACiG,UAAU,EAAEnD,YAAY,EAAE1B,IAAI,CAAC,GACrD,EAAE;EACN,MAAM;IAAEiF,SAAS;IAAEC;EAAS,CAAC,GAAGrG,eAAe,CAACuC,YAAY,EAAEM,YAAY,EAAE1B,IAAI,CAAC;EAEjF,MAAMmF,YAAY,GAAG;IACnBC,gBAAgB,EAAEJ,UAAU;IAC5BK,+BAA+B,EAAEJ,SAAS;IAC1CK,sBAAsB,EAAEJ;EAC1B,CAAC;EACD,MAAMK,SAAS,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACV7F,KAAK,GACLiF,YAAY;IACftD,KAAK,EAAEI,YAAY;IACnBH,GAAG;IACHkD,MAAM;IACNE,IAAI;IACJ3D,MAAM;IACNT,IAAI,EAAE,IAAI;IACVF,MAAM,EAAE,IAAI;IACZO,cAAc,EAAEqB,qBAAqB;IACrCO,QAAQ;IACR2C,YAAY;IACZjC,kBAAkB;IAClBC,cAAc;IACdF,aAAa;IACb9C,YAAY;IACZO,QAAQ;IACR6B,eAAe;IACfqB,UAAU;IACVN,gBAAgB;IAChB3C,cAAc;IACd6D,WAAW;IACX1E,QAAQ,EAAE2C,aAAa;IACvBG;EAAW,EACZ;EAED,oBACEvF,KAAA,CAAAoI,aAAA,CAACjG,cAAc,CAACkG,QAAQ;IAACC,KAAK,EAAE7E;EAAiB,gBAC/CzD,KAAA,CAAAoI,aAAA,CAAC3H,WAAW,EAAKyH,SAAY,CACN,CAAC;AAE9B,CAAC;AAED7F,WAAW,CAACkG,SAAS,GAAG;EACtB7F,MAAM,EAAEtC,SAAS,CAACoI,MAAM,CAACC,UAAU;EACnC1F,IAAI,EAAE3C,SAAS,CAACsI,MAAM,CAACD,UAAU;EACjClG,MAAM,EAAEnC,SAAS,CAACsI,MAAM;EACxBjG,QAAQ,EAAErC,SAAS,CAACuI,KAAK;EACzB9F,QAAQ,EAAEzC,SAAS,CAACuI,KAAK;EACzB/F,gBAAgB,EAAExC,SAAS,CAACuI,KAAK;EACjC7F,YAAY,EAAE1C,SAAS,CAACwI,IAAI;EAC5BvF,QAAQ,EAAEjD,SAAS,CAACsI,MAAM;EAC1B/F,IAAI,EAAEvC,SAAS,CAACsI,MAAM;EACtB1F,MAAM,EAAE5C,SAAS,CAACuI,KAAK;EACvBzF,IAAI,EAAE9C,SAAS,CAACsI,MAAM;EACtBtF,gBAAgB,EAAEhD,SAAS,CAACuI,KAAK;EACjCpF,cAAc,EAAEnD,SAAS,CAACuI,KAAK;EAC/BnF,YAAY,EAAEpD,SAAS,CAACsI,MAAM;EAC9BjF,gBAAgB,EAAErD,SAAS,CAACyI;AAC9B,CAAC;AAEDxG,WAAW,CAACyG,YAAY,GAAG;EACzBvG,MAAM,EAAE,EAAE;EACVE,QAAQ,EAAE,EAAE;EACZI,QAAQ,EAAE,EAAE;EACZD,gBAAgB,EAAE,EAAE;EACpBE,YAAY,EAAE,KAAK;EACnBH,IAAI,EAAE,EAAE;EACRK,MAAM,EAAE,EAAE;EACVO,cAAc,EAAE,EAAE;EAClBL,IAAI,EAAE,EAAE;EACRG,QAAQ,EAAEpB,GAAG;EACbmB,gBAAgB,EAAE,EAAE;EACpBI,YAAY,EAAE,EAAE;EAChBC,gBAAgB,EAAE;AACpB,CAAC;AAED,eAAepB,WAAW","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
1
2
  import React, { useState, useContext, useEffect } from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
  import { FaChevronDown, FaChevronUp } from 'react-icons/fa';
@@ -35,6 +36,7 @@ const MenuItemRender = ({
35
36
  const isActive = router ? isUrlPathMatch(router.asPath, urlToUse) : false;
36
37
  const isActiveParent = router ? hasActiveChild(router.asPath, children) : false;
37
38
  const shouldPreOpen = openActiveSubmenus && isActiveParent && isClickEvent;
39
+ const hasValidChildren = hasChildren(children);
38
40
  const [displayChildren, setDisplayChildren] = useState(shouldPreOpen);
39
41
  useEffect(() => {
40
42
  if (!showMobileMenu && !shouldPreOpen) setDisplayChildren(false);
@@ -58,7 +60,11 @@ const MenuItemRender = ({
58
60
  }
59
61
  }
60
62
  };
61
- const hasValidChildren = hasChildren(children);
63
+ const handleMobileClick = () => {
64
+ if (!urlToUse && hasValidChildren) {
65
+ setDisplayChildren(!displayChildren);
66
+ }
67
+ };
62
68
  const menuItemLinkClassname = classnames('menu--item--link', {
63
69
  'menu--item--link--active': isActive,
64
70
  'menu--item--link--active-parent': isActiveParent
@@ -68,7 +74,10 @@ const MenuItemRender = ({
68
74
  onMouseEnter: handleItemEvent,
69
75
  onMouseLeave: handleItemEvent
70
76
  }, /*#__PURE__*/React.createElement("div", {
71
- className: menuItemLinkClassname
77
+ className: menuItemLinkClassname,
78
+ onClick: handleMobileClick,
79
+ role: !urlToUse && hasValidChildren ? 'button' : undefined,
80
+ tabIndex: !urlToUse && hasValidChildren ? 0 : undefined
72
81
  }, urlToUse ? /*#__PURE__*/React.createElement(BlazeLink, {
73
82
  href: urlToUse
74
83
  }, textToUse) : /*#__PURE__*/React.createElement("span", {
@@ -77,7 +86,11 @@ const MenuItemRender = ({
77
86
  }, textToUse), hasValidChildren && /*#__PURE__*/React.createElement("i", {
78
87
  role: "button",
79
88
  className: "menu--item--link--icon",
80
- onClick: () => setDisplayChildren(!displayChildren)
89
+ onClick: e => {
90
+ e.stopPropagation();
91
+ setDisplayChildren(!displayChildren);
92
+ },
93
+ tabIndex: 0
81
94
  }, displayChildren ? /*#__PURE__*/React.createElement(FaChevronUp, null) : /*#__PURE__*/React.createElement(FaChevronDown, null))), hasValidChildren && /*#__PURE__*/React.createElement("div", {
82
95
  className: `menu--item-children ${childrenDisplayClass}`
83
96
  }, children));
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemRender.js","names":["React","useState","useContext","useEffect","PropTypes","FaChevronDown","FaChevronUp","classnames","useRouter","useStringTemplate","HOVER","MOUSE_ENTER","MOUSE_LEAVE","HIDDEN","CLICK","hasChildren","BlazeLink","MenuContext","injectHelperIntoTemplate","isUrlPathMatch","hasActiveChild","MenuItemRender","children","eventType","text","modifier","url","parent","router","showMobileMenu","openActiveSubmenus","isHoverEvent","isClickEvent","loading","loadingText","data","textToUse","loadingUrl","urlToUse","isActive","asPath","isActiveParent","shouldPreOpen","displayChildren","setDisplayChildren","childrenDisplayClass","handleItemEvent","type","hasValidChildren","menuItemLinkClassname","createElement","className","onMouseEnter","onMouseLeave","href","role","onClick","propTypes","string","isRequired","object","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/MenuItem/MenuItemRender.js"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport classnames from 'classnames';\nimport { useRouter } from 'next/router';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN, CLICK } from '../../constants';\nimport { hasChildren } from '../../helpers';\nimport BlazeLink from '../BlazeLink';\nimport MenuContext from '../Menu/MenuContext';\nimport { injectHelperIntoTemplate, isUrlPathMatch, hasActiveChild } from './helpers';\n\nconst MenuItemRender = ({ children, eventType, text, modifier, url, parent }) => {\n const router = useRouter();\n const { showMobileMenu, openActiveSubmenus } = useContext(MenuContext);\n\n const isHoverEvent = eventType === HOVER;\n const isClickEvent = eventType === CLICK;\n\n const {\n loading: loadingText,\n data: [textToUse]\n } = useStringTemplate(parent, [text]);\n const {\n loading: loadingUrl,\n data: [urlToUse]\n } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);\n\n const isActive = router ? isUrlPathMatch(router.asPath, urlToUse) : false;\n const isActiveParent = router ? hasActiveChild(router.asPath, children) : false;\n const shouldPreOpen = openActiveSubmenus && isActiveParent && isClickEvent;\n\n const [displayChildren, setDisplayChildren] = useState(shouldPreOpen);\n\n useEffect(() => {\n if (!showMobileMenu && !shouldPreOpen) setDisplayChildren(false);\n }, [\n children,\n isClickEvent,\n loadingUrl,\n openActiveSubmenus,\n router,\n shouldPreOpen,\n showMobileMenu\n ]);\n\n useEffect(() => {\n if (isHoverEvent) {\n setDisplayChildren(false);\n }\n }, [router.asPath, isHoverEvent]);\n\n if (loadingUrl || loadingText) return '';\n\n const childrenDisplayClass = displayChildren ? '' : HIDDEN;\n\n const handleItemEvent = ({ type }) => {\n if (isHoverEvent) {\n if (type === MOUSE_ENTER) {\n setDisplayChildren(true);\n }\n if (type === MOUSE_LEAVE) {\n setDisplayChildren(false);\n }\n }\n };\n\n const hasValidChildren = hasChildren(children);\n\n const menuItemLinkClassname = classnames('menu--item--link', {\n 'menu--item--link--active': isActive,\n 'menu--item--link--active-parent': isActiveParent\n });\n\n return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div className={menuItemLinkClassname}>\n {urlToUse ? (\n <BlazeLink href={urlToUse}>{textToUse}</BlazeLink>\n ) : (\n <span role=\"button\" onClick={handleItemEvent}>\n {textToUse}\n </span>\n )}\n {hasValidChildren && (\n <i\n role=\"button\"\n className=\"menu--item--link--icon\"\n onClick={() => setDisplayChildren(!displayChildren)}>\n {displayChildren ? <FaChevronUp /> : <FaChevronDown />}\n </i>\n )}\n </div>\n\n {hasValidChildren && (\n <div className={`menu--item-children ${childrenDisplayClass}`}>{children}</div>\n )}\n </li>\n );\n};\n\nMenuItemRender.propTypes = {\n modifier: PropTypes.string,\n text: PropTypes.string,\n url: PropTypes.string,\n eventType: PropTypes.string.isRequired,\n parent: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenuItemRender.defaultProps = {\n url: '',\n modifier: '',\n text: '',\n children: null,\n parent: {}\n};\n\nexport default MenuItemRender;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MenuItemRender.js","names":["React","useState","useContext","useEffect","PropTypes","FaChevronDown","FaChevronUp","classnames","useRouter","useStringTemplate","HOVER","MOUSE_ENTER","MOUSE_LEAVE","HIDDEN","CLICK","hasChildren","BlazeLink","MenuContext","injectHelperIntoTemplate","isUrlPathMatch","hasActiveChild","MenuItemRender","children","eventType","text","modifier","url","parent","router","showMobileMenu","openActiveSubmenus","isHoverEvent","isClickEvent","loading","loadingText","data","textToUse","loadingUrl","urlToUse","isActive","asPath","isActiveParent","shouldPreOpen","hasValidChildren","displayChildren","setDisplayChildren","childrenDisplayClass","handleItemEvent","type","handleMobileClick","menuItemLinkClassname","createElement","className","onMouseEnter","onMouseLeave","onClick","role","undefined","tabIndex","href","e","stopPropagation","propTypes","string","isRequired","object","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/MenuItem/MenuItemRender.js"],"sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport classnames from 'classnames';\nimport { useRouter } from 'next/router';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN, CLICK } from '../../constants';\nimport { hasChildren } from '../../helpers';\nimport BlazeLink from '../BlazeLink';\nimport MenuContext from '../Menu/MenuContext';\nimport { injectHelperIntoTemplate, isUrlPathMatch, hasActiveChild } from './helpers';\n\nconst MenuItemRender = ({ children, eventType, text, modifier, url, parent }) => {\n const router = useRouter();\n const { showMobileMenu, openActiveSubmenus } = useContext(MenuContext);\n\n const isHoverEvent = eventType === HOVER;\n const isClickEvent = eventType === CLICK;\n\n const {\n loading: loadingText,\n data: [textToUse]\n } = useStringTemplate(parent, [text]);\n const {\n loading: loadingUrl,\n data: [urlToUse]\n } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);\n\n const isActive = router ? isUrlPathMatch(router.asPath, urlToUse) : false;\n const isActiveParent = router ? hasActiveChild(router.asPath, children) : false;\n const shouldPreOpen = openActiveSubmenus && isActiveParent && isClickEvent;\n const hasValidChildren = hasChildren(children);\n\n const [displayChildren, setDisplayChildren] = useState(shouldPreOpen);\n\n useEffect(() => {\n if (!showMobileMenu && !shouldPreOpen) setDisplayChildren(false);\n }, [\n children,\n isClickEvent,\n loadingUrl,\n openActiveSubmenus,\n router,\n shouldPreOpen,\n showMobileMenu\n ]);\n\n useEffect(() => {\n if (isHoverEvent) {\n setDisplayChildren(false);\n }\n }, [router.asPath, isHoverEvent]);\n\n if (loadingUrl || loadingText) return '';\n\n const childrenDisplayClass = displayChildren ? '' : HIDDEN;\n\n const handleItemEvent = ({ type }) => {\n if (isHoverEvent) {\n if (type === MOUSE_ENTER) {\n setDisplayChildren(true);\n }\n if (type === MOUSE_LEAVE) {\n setDisplayChildren(false);\n }\n }\n };\n\n const handleMobileClick = () => {\n if (!urlToUse && hasValidChildren) {\n setDisplayChildren(!displayChildren);\n }\n };\n\n const menuItemLinkClassname = classnames('menu--item--link', {\n 'menu--item--link--active': isActive,\n 'menu--item--link--active-parent': isActiveParent\n });\n\n return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div\n className={menuItemLinkClassname}\n onClick={handleMobileClick}\n role={!urlToUse && hasValidChildren ? 'button' : undefined}\n tabIndex={!urlToUse && hasValidChildren ? 0 : undefined}>\n {urlToUse ? (\n <BlazeLink href={urlToUse}>{textToUse}</BlazeLink>\n ) : (\n <span role=\"button\" onClick={handleItemEvent}>\n {textToUse}\n </span>\n )}\n {hasValidChildren && (\n <i\n role=\"button\"\n className=\"menu--item--link--icon\"\n onClick={e => {\n e.stopPropagation();\n setDisplayChildren(!displayChildren);\n }}\n tabIndex={0}>\n {displayChildren ? <FaChevronUp /> : <FaChevronDown />}\n </i>\n )}\n </div>\n\n {hasValidChildren && (\n <div className={`menu--item-children ${childrenDisplayClass}`}>{children}</div>\n )}\n </li>\n );\n};\n\nMenuItemRender.propTypes = {\n modifier: PropTypes.string,\n text: PropTypes.string,\n url: PropTypes.string,\n eventType: PropTypes.string.isRequired,\n parent: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenuItemRender.defaultProps = {\n url: '',\n modifier: '',\n text: '',\n children: null,\n parent: {}\n};\n\nexport default MenuItemRender;\n"],"mappings":"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","ignoreList":[]}
@@ -1,41 +1,55 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
3
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
4
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
5
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
6
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
7
+ var _images = /*#__PURE__*/new WeakMap();
8
+ var _pageBuilderID = /*#__PURE__*/new WeakMap();
9
+ var _handlers = /*#__PURE__*/new WeakMap();
2
10
  class StoreImages {
3
11
  constructor() {
4
- _defineProperty(this, "removeDuplicated", (images, key) => {
5
- this.images = images.map(item => item[key]).map((item, index, final) => final.indexOf(item) === index && index).filter(item => images[item]).map(item => images[item]);
12
+ _classPrivateFieldInitSpec(this, _images, []);
13
+ _classPrivateFieldInitSpec(this, _pageBuilderID, null);
14
+ _classPrivateFieldInitSpec(this, _handlers, {
15
+ toggleModal: () => {},
16
+ onSelect: () => {}
6
17
  });
7
- _defineProperty(this, "handleSelectedImage", imageId => {
8
- const index = this.images.findIndex(image => image.imageId === imageId);
9
- if (index !== -1) {
10
- this.setSelectedImage(index);
11
- }
12
- });
13
- _defineProperty(this, "setHandlers", ({
14
- toggleModal = this.toggleModal,
15
- setSelectedImage = this.setSelectedImage
16
- }) => {
17
- this.toggleModal = toggleModal;
18
- this.setSelectedImage = setSelectedImage;
18
+ _defineProperty(this, "toggleModal", () => {
19
+ _classPrivateFieldGet(_handlers, this).toggleModal();
19
20
  });
20
- _defineProperty(this, "addImages", (images, options = {}) => {
21
- if (!images.length) return this.images;
22
- const {
23
- pageBuilderID
24
- } = options;
25
- if (pageBuilderID !== this.id) {
26
- this.resetImages();
27
- this.id = pageBuilderID;
28
- }
29
- this.removeDuplicated(this.images.concat(images), 'imageId');
30
- return this.images;
21
+ _defineProperty(this, "handleSelectedImage", imageId => {
22
+ const idx = _classPrivateFieldGet(_images, this).findIndex(img => img.imageId === imageId);
23
+ if (idx !== -1) _classPrivateFieldGet(_handlers, this).onSelect(idx);
31
24
  });
32
- this.images = [];
33
- this.id = null;
34
- this.toggleModal = () => {};
35
- this.setSelectedImage = () => {};
25
+ }
26
+ get images() {
27
+ return [..._classPrivateFieldGet(_images, this)];
36
28
  }
37
29
  resetImages() {
38
- this.images = [];
30
+ _classPrivateFieldSet(_images, this, []);
31
+ }
32
+ setHandlers({
33
+ toggleModal,
34
+ setSelectedImage
35
+ }) {
36
+ if (typeof toggleModal === 'function') _classPrivateFieldGet(_handlers, this).toggleModal = toggleModal;
37
+ if (typeof setSelectedImage === 'function') _classPrivateFieldGet(_handlers, this).onSelect = setSelectedImage;
38
+ }
39
+ addImages(newImages, {
40
+ pageBuilderID
41
+ } = {}, handlers = {}) {
42
+ if (!Array.isArray(newImages) || newImages.length === 0) {
43
+ return this.images;
44
+ }
45
+ if (pageBuilderID != null && pageBuilderID !== _classPrivateFieldGet(_pageBuilderID, this)) {
46
+ this.resetImages();
47
+ _classPrivateFieldSet(_pageBuilderID, this, pageBuilderID);
48
+ }
49
+ const merged = _classPrivateFieldGet(_images, this).concat(newImages);
50
+ _classPrivateFieldSet(_images, this, Array.from(new Map(merged.map(img => [img.imageId, img])).values()));
51
+ this.setHandlers(handlers);
52
+ return this.images;
39
53
  }
40
54
  }
41
55
  export default new StoreImages();
@@ -1 +1 @@
1
- {"version":3,"file":"StoreImages.js","names":["StoreImages","constructor","_defineProperty","images","key","map","item","index","final","indexOf","filter","imageId","findIndex","image","setSelectedImage","toggleModal","options","length","pageBuilderID","id","resetImages","removeDuplicated","concat"],"sources":["../../../src/hooks/helpers/StoreImages.js"],"sourcesContent":["class StoreImages {\n constructor() {\n this.images = [];\n this.id = null;\n this.toggleModal = () => {};\n this.setSelectedImage = () => {};\n }\n\n resetImages() {\n this.images = [];\n }\n\n removeDuplicated = (images, key) => {\n this.images = images\n .map(item => item[key])\n .map((item, index, final) => final.indexOf(item) === index && index)\n .filter(item => images[item])\n .map(item => images[item]);\n };\n\n handleSelectedImage = imageId => {\n const index = this.images.findIndex(image => image.imageId === imageId);\n if (index !== -1) {\n this.setSelectedImage(index);\n }\n };\n\n setHandlers = ({ toggleModal = this.toggleModal, setSelectedImage = this.setSelectedImage }) => {\n this.toggleModal = toggleModal;\n this.setSelectedImage = setSelectedImage;\n };\n\n addImages = (images, options = {}) => {\n if (!images.length) return this.images;\n\n const { pageBuilderID } = options;\n\n if (pageBuilderID !== this.id) {\n this.resetImages();\n this.id = pageBuilderID;\n }\n\n this.removeDuplicated(this.images.concat(images), 'imageId');\n\n return this.images;\n };\n}\n\nexport default new StoreImages();\n"],"mappings":";AAAA,MAAMA,WAAW,CAAC;EAChBC,WAAWA,CAAA,EAAG;IAAAC,eAAA,2BAWK,CAACC,MAAM,EAAEC,GAAG,KAAK;MAClC,IAAI,CAACD,MAAM,GAAGA,MAAM,CACjBE,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACF,GAAG,CAAC,CAAC,CACtBC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,EAAEC,KAAK,KAAKA,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,KAAKC,KAAK,IAAIA,KAAK,CAAC,CACnEG,MAAM,CAACJ,IAAI,IAAIH,MAAM,CAACG,IAAI,CAAC,CAAC,CAC5BD,GAAG,CAACC,IAAI,IAAIH,MAAM,CAACG,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAAJ,eAAA,8BAEqBS,OAAO,IAAI;MAC/B,MAAMJ,KAAK,GAAG,IAAI,CAACJ,MAAM,CAACS,SAAS,CAACC,KAAK,IAAIA,KAAK,CAACF,OAAO,KAAKA,OAAO,CAAC;MACvE,IAAIJ,KAAK,KAAK,CAAC,CAAC,EAAE;QAChB,IAAI,CAACO,gBAAgB,CAACP,KAAK,CAAC;MAC9B;IACF,CAAC;IAAAL,eAAA,sBAEa,CAAC;MAAEa,WAAW,GAAG,IAAI,CAACA,WAAW;MAAED,gBAAgB,GAAG,IAAI,CAACA;IAAiB,CAAC,KAAK;MAC9F,IAAI,CAACC,WAAW,GAAGA,WAAW;MAC9B,IAAI,CAACD,gBAAgB,GAAGA,gBAAgB;IAC1C,CAAC;IAAAZ,eAAA,oBAEW,CAACC,MAAM,EAAEa,OAAO,GAAG,CAAC,CAAC,KAAK;MACpC,IAAI,CAACb,MAAM,CAACc,MAAM,EAAE,OAAO,IAAI,CAACd,MAAM;MAEtC,MAAM;QAAEe;MAAc,CAAC,GAAGF,OAAO;MAEjC,IAAIE,aAAa,KAAK,IAAI,CAACC,EAAE,EAAE;QAC7B,IAAI,CAACC,WAAW,CAAC,CAAC;QAClB,IAAI,CAACD,EAAE,GAAGD,aAAa;MACzB;MAEA,IAAI,CAACG,gBAAgB,CAAC,IAAI,CAAClB,MAAM,CAACmB,MAAM,CAACnB,MAAM,CAAC,EAAE,SAAS,CAAC;MAE5D,OAAO,IAAI,CAACA,MAAM;IACpB,CAAC;IA3CC,IAAI,CAACA,MAAM,GAAG,EAAE;IAChB,IAAI,CAACgB,EAAE,GAAG,IAAI;IACd,IAAI,CAACJ,WAAW,GAAG,MAAM,CAAC,CAAC;IAC3B,IAAI,CAACD,gBAAgB,GAAG,MAAM,CAAC,CAAC;EAClC;EAEAM,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACjB,MAAM,GAAG,EAAE;EAClB;AAoCF;AAEA,eAAe,IAAIH,WAAW,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"StoreImages.js","names":["StoreImages","constructor","_classPrivateFieldInitSpec","_images","_pageBuilderID","_handlers","toggleModal","onSelect","_defineProperty","_classPrivateFieldGet","imageId","idx","findIndex","img","images","resetImages","_classPrivateFieldSet","setHandlers","setSelectedImage","addImages","newImages","pageBuilderID","handlers","Array","isArray","length","merged","concat","from","Map","map","values"],"sources":["../../../src/hooks/helpers/StoreImages.js"],"sourcesContent":["class StoreImages {\n #images = [];\n\n #pageBuilderID = null;\n\n #handlers = {\n toggleModal: () => {},\n onSelect: () => {}\n };\n\n get images() {\n return [...this.#images];\n }\n\n resetImages() {\n this.#images = [];\n }\n\n setHandlers({ toggleModal, setSelectedImage }) {\n if (typeof toggleModal === 'function') this.#handlers.toggleModal = toggleModal;\n if (typeof setSelectedImage === 'function') this.#handlers.onSelect = setSelectedImage;\n }\n\n addImages(newImages, { pageBuilderID } = {}, handlers = {}) {\n if (!Array.isArray(newImages) || newImages.length === 0) {\n return this.images;\n }\n\n if (pageBuilderID != null && pageBuilderID !== this.#pageBuilderID) {\n this.resetImages();\n this.#pageBuilderID = pageBuilderID;\n }\n\n const merged = this.#images.concat(newImages);\n this.#images = Array.from(new Map(merged.map(img => [img.imageId, img])).values());\n\n this.setHandlers(handlers);\n return this.images;\n }\n\n toggleModal = () => {\n this.#handlers.toggleModal();\n };\n\n handleSelectedImage = imageId => {\n const idx = this.#images.findIndex(img => img.imageId === imageId);\n if (idx !== -1) this.#handlers.onSelect(idx);\n };\n}\n\nexport default new StoreImages();\n"],"mappings":";;;;;;;;;AAAA,MAAMA,WAAW,CAAC;EAAAC,YAAA;IAChBC,0BAAA,OAAAC,OAAO,EAAG,EAAE;IAEZD,0BAAA,OAAAE,cAAc,EAAG,IAAI;IAErBF,0BAAA,OAAAG,SAAS,EAAG;MACVC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;MACrBC,QAAQ,EAAEA,CAAA,KAAM,CAAC;IACnB,CAAC;IAACC,eAAA,sBAgCY,MAAM;MAClBC,qBAAA,CAAKJ,SAAS,EAAd,IAAa,CAAC,CAACC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAAAE,eAAA,8BAEqBE,OAAO,IAAI;MAC/B,MAAMC,GAAG,GAAGF,qBAAA,CAAKN,OAAO,EAAZ,IAAW,CAAC,CAACS,SAAS,CAACC,GAAG,IAAIA,GAAG,CAACH,OAAO,KAAKA,OAAO,CAAC;MAClE,IAAIC,GAAG,KAAK,CAAC,CAAC,EAAEF,qBAAA,CAAKJ,SAAS,EAAd,IAAa,CAAC,CAACE,QAAQ,CAACI,GAAG,CAAC;IAC9C,CAAC;EAAA;EArCD,IAAIG,MAAMA,CAAA,EAAG;IACX,OAAO,CAAC,GAAGL,qBAAA,CAAKN,OAAO,EAAZ,IAAW,CAAC,CAAC;EAC1B;EAEAY,WAAWA,CAAA,EAAG;IACZC,qBAAA,CAAKb,OAAO,EAAZ,IAAI,EAAW,EAAJ,CAAC;EACd;EAEAc,WAAWA,CAAC;IAAEX,WAAW;IAAEY;EAAiB,CAAC,EAAE;IAC7C,IAAI,OAAOZ,WAAW,KAAK,UAAU,EAAEG,qBAAA,CAAKJ,SAAS,EAAd,IAAa,CAAC,CAACC,WAAW,GAAGA,WAAW;IAC/E,IAAI,OAAOY,gBAAgB,KAAK,UAAU,EAAET,qBAAA,CAAKJ,SAAS,EAAd,IAAa,CAAC,CAACE,QAAQ,GAAGW,gBAAgB;EACxF;EAEAC,SAASA,CAACC,SAAS,EAAE;IAAEC;EAAc,CAAC,GAAG,CAAC,CAAC,EAAEC,QAAQ,GAAG,CAAC,CAAC,EAAE;IAC1D,IAAI,CAACC,KAAK,CAACC,OAAO,CAACJ,SAAS,CAAC,IAAIA,SAAS,CAACK,MAAM,KAAK,CAAC,EAAE;MACvD,OAAO,IAAI,CAACX,MAAM;IACpB;IAEA,IAAIO,aAAa,IAAI,IAAI,IAAIA,aAAa,KAAKZ,qBAAA,CAAKL,cAAc,EAAnB,IAAkB,CAAC,EAAE;MAClE,IAAI,CAACW,WAAW,CAAC,CAAC;MAClBC,qBAAA,CAAKZ,cAAc,EAAnB,IAAI,EAAkBiB,aAAJ,CAAC;IACrB;IAEA,MAAMK,MAAM,GAAGjB,qBAAA,CAAKN,OAAO,EAAZ,IAAW,CAAC,CAACwB,MAAM,CAACP,SAAS,CAAC;IAC7CJ,qBAAA,CAAKb,OAAO,EAAZ,IAAI,EAAWoB,KAAK,CAACK,IAAI,CAAC,IAAIC,GAAG,CAACH,MAAM,CAACI,GAAG,CAACjB,GAAG,IAAI,CAACA,GAAG,CAACH,OAAO,EAAEG,GAAG,CAAC,CAAC,CAAC,CAACkB,MAAM,CAAC,CAAC,CAAtE,CAAC;IAEZ,IAAI,CAACd,WAAW,CAACK,QAAQ,CAAC;IAC1B,OAAO,IAAI,CAACR,MAAM;EACpB;AAUF;AAEA,eAAe,IAAId,WAAW,CAAC,CAAC","ignoreList":[]}