@blaze-cms/react-page-builder 0.146.0-node18-core-styles-tooltips.20 → 0.146.0-node18-tooltips.19

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 (72) hide show
  1. package/CHANGELOG.md +25 -63
  2. package/lib/components/ContentGroup/ContentGroup.js +41 -10
  3. package/lib/components/ContentGroup/ContentGroup.js.map +1 -1
  4. package/lib/components/ContentGroup/ContentGroupAccordion.js +175 -0
  5. package/lib/components/ContentGroup/ContentGroupAccordion.js.map +1 -0
  6. package/lib/components/ContentGroup/constants.js +13 -1
  7. package/lib/components/ContentGroup/constants.js.map +1 -1
  8. package/lib/components/ContentGroup/helpers/get-structured-data-properties.js +40 -0
  9. package/lib/components/ContentGroup/helpers/get-structured-data-properties.js.map +1 -0
  10. package/lib/components/Menu/Menu.js +1 -4
  11. package/lib/components/Menu/Menu.js.map +1 -1
  12. package/lib/components/Menu/MenuContext.js +1 -2
  13. package/lib/components/Menu/MenuContext.js.map +1 -1
  14. package/lib/components/MenuItem/MenuItemRender.js +12 -27
  15. package/lib/components/MenuItem/MenuItemRender.js.map +1 -1
  16. package/lib/components/MenuItem/helpers/index.js +0 -14
  17. package/lib/components/MenuItem/helpers/index.js.map +1 -1
  18. package/lib/components/SearchContent/SearchContent.js +4 -3
  19. package/lib/components/SearchContent/SearchContent.js.map +1 -1
  20. package/lib/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js +0 -1
  21. package/lib/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js.map +1 -1
  22. package/lib-es/components/ContentGroup/ContentGroup.js +25 -10
  23. package/lib-es/components/ContentGroup/ContentGroup.js.map +1 -1
  24. package/lib-es/components/ContentGroup/ContentGroupAccordion.js +138 -0
  25. package/lib-es/components/ContentGroup/ContentGroupAccordion.js.map +1 -0
  26. package/lib-es/components/ContentGroup/constants.js +12 -1
  27. package/lib-es/components/ContentGroup/constants.js.map +1 -1
  28. package/lib-es/components/ContentGroup/helpers/get-structured-data-properties.js +33 -0
  29. package/lib-es/components/ContentGroup/helpers/get-structured-data-properties.js.map +1 -0
  30. package/lib-es/components/Menu/Menu.js +1 -4
  31. package/lib-es/components/Menu/Menu.js.map +1 -1
  32. package/lib-es/components/Menu/MenuContext.js +1 -2
  33. package/lib-es/components/Menu/MenuContext.js.map +1 -1
  34. package/lib-es/components/MenuItem/MenuItemRender.js +11 -25
  35. package/lib-es/components/MenuItem/MenuItemRender.js.map +1 -1
  36. package/lib-es/components/MenuItem/helpers/index.js +1 -3
  37. package/lib-es/components/MenuItem/helpers/index.js.map +1 -1
  38. package/lib-es/components/SearchContent/SearchContent.js +4 -3
  39. package/lib-es/components/SearchContent/SearchContent.js.map +1 -1
  40. package/lib-es/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js +0 -1
  41. package/lib-es/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js.map +1 -1
  42. package/package.json +10 -10
  43. package/src/components/ContentGroup/ContentGroup.js +37 -13
  44. package/src/components/ContentGroup/ContentGroupAccordion.js +163 -0
  45. package/src/components/ContentGroup/constants.js +14 -1
  46. package/src/components/ContentGroup/helpers/get-structured-data-properties.js +36 -0
  47. package/src/components/Menu/Menu.js +1 -3
  48. package/src/components/Menu/MenuContext.js +1 -1
  49. package/src/components/MenuItem/MenuItemRender.js +12 -40
  50. package/src/components/MenuItem/helpers/index.js +1 -3
  51. package/src/components/SearchContent/SearchContent.js +6 -5
  52. package/src/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js +3 -1
  53. package/tests/unit/src/components/ContentGroup/ContentGroup.test.js +32 -2
  54. package/tests/unit/src/components/ContentGroup/ContentGroupAccordion.test.js +283 -0
  55. package/tests/unit/src/components/ContentGroup/__snapshots__/ContentGroup.test.js.snap +2 -2
  56. package/tests/unit/src/components/ContentGroup/__snapshots__/ContentGroupAccordion.test.js.snap +243 -0
  57. package/tests/unit/src/components/ContentGroup/helpers/get-structured-data-properties.test.js +105 -0
  58. package/tests/unit/src/components/MenuItem/MenuItem.test.js +0 -5
  59. package/tests/unit/src/components/MenuItem/MenuItemRender.test.js +3 -11
  60. package/lib/components/MenuItem/helpers/has-active-child.js +0 -19
  61. package/lib/components/MenuItem/helpers/has-active-child.js.map +0 -1
  62. package/lib/components/MenuItem/helpers/isUrlPathMatch.js +0 -18
  63. package/lib/components/MenuItem/helpers/isUrlPathMatch.js.map +0 -1
  64. package/lib-es/components/MenuItem/helpers/has-active-child.js +0 -5
  65. package/lib-es/components/MenuItem/helpers/has-active-child.js.map +0 -1
  66. package/lib-es/components/MenuItem/helpers/isUrlPathMatch.js +0 -8
  67. package/lib-es/components/MenuItem/helpers/isUrlPathMatch.js.map +0 -1
  68. package/src/components/MenuItem/helpers/has-active-child.js +0 -10
  69. package/src/components/MenuItem/helpers/isUrlPathMatch.js +0 -10
  70. package/tests/unit/src/components/MenuItem/helpers/constants.js +0 -73
  71. package/tests/unit/src/components/MenuItem/helpers/has-active-child.test.js +0 -35
  72. package/tests/unit/src/components/MenuItem/helpers/is-url-path-match.test.js +0 -53
@@ -0,0 +1,138 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { useEffect, useMemo, useState } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import classnames from 'classnames';
5
+ import { useRouter } from 'next/router';
6
+ import { VscChevronUp, VscChevronDown } from 'react-icons/vsc';
7
+ import { CONTENT_GROUP, OPEN_STATES } from './constants';
8
+ const ContentGroupAccordion = ({
9
+ name,
10
+ groupSections,
11
+ sectionsData,
12
+ VariantComponent,
13
+ openState,
14
+ groupSectionProps,
15
+ groupSectionTitleProps,
16
+ groupContentWrapperProps,
17
+ groupContentProps
18
+ }) => {
19
+ const router = useRouter();
20
+ const {
21
+ asPath
22
+ } = router;
23
+ const sectionPairs = useMemo(() => sectionsData.map(([sectionName, sectionLabel]) => ({
24
+ sectionName,
25
+ sectionLabel,
26
+ panelId: `${sectionName}-panel`
27
+ })), [sectionsData]);
28
+ const sectionNames = useMemo(() => sectionPairs.map(p => p.sectionName), [sectionPairs]);
29
+ const baseInitialOpen = useMemo(() => {
30
+ if (openState === OPEN_STATES.ALL_OPEN) return new Set(sectionNames);
31
+ if (openState === OPEN_STATES.ALL_CLOSED && sectionNames.length) return new Set();
32
+ return new Set([sectionNames[0]]);
33
+ }, [openState, sectionNames]);
34
+ const [openSet, setOpenSet] = useState(baseInitialOpen);
35
+ useEffect(() => {
36
+ const rawHash = (asPath.split('#')[1] || '').trim();
37
+ if (rawHash && sectionNames.includes(rawHash) && !openSet.has(rawHash)) {
38
+ setOpenSet(prev => {
39
+ const next = new Set(prev);
40
+ next.add(rawHash);
41
+ return next;
42
+ });
43
+ }
44
+ },
45
+ // eslint-disable-next-line react-hooks/exhaustive-deps
46
+ [asPath, sectionNames]);
47
+ const WrapperComponent = VariantComponent || 'div';
48
+ const baseClass = `${CONTENT_GROUP}-accordion`;
49
+ const itemsClass = `${baseClass}__items`;
50
+ const itemClass = `${baseClass}__item`;
51
+ const headerBtnClass = `${baseClass}__header-btn`;
52
+ const panelClass = `${baseClass}__panel`;
53
+ const headingClass = `${baseClass}__heading`;
54
+ const titleClass = `${baseClass}__title`;
55
+ const chevronClass = `${baseClass}__chevron`;
56
+ const chevronIconClass = `${baseClass}__chevron-icon`;
57
+ const onToggle = sectionName => {
58
+ setOpenSet(prev => {
59
+ const next = new Set(prev);
60
+ const willOpen = !next.has(sectionName);
61
+ if (willOpen) next.add(sectionName);else next.delete(sectionName);
62
+ const baseUrl = asPath.split('#')[0];
63
+ const newUrl = willOpen ? `${baseUrl}#${sectionName}` : baseUrl;
64
+ router.replace(`/Resolver`, newUrl, {
65
+ shallow: true,
66
+ scroll: false
67
+ });
68
+ return next;
69
+ });
70
+ };
71
+ return /*#__PURE__*/React.createElement("div", {
72
+ className: baseClass
73
+ }, /*#__PURE__*/React.createElement("div", {
74
+ className: itemsClass,
75
+ "aria-label": name
76
+ }, groupSections.map((groupSection, index) => {
77
+ const {
78
+ sectionName,
79
+ sectionLabel,
80
+ panelId
81
+ } = sectionPairs[index];
82
+ const isOpen = openSet.has(sectionName);
83
+ return /*#__PURE__*/React.createElement("div", _extends({
84
+ key: sectionName,
85
+ className: classnames(itemClass, {
86
+ [`${itemClass}--open`]: isOpen
87
+ })
88
+ }, groupSectionProps), /*#__PURE__*/React.createElement("h3", {
89
+ className: headingClass
90
+ }, /*#__PURE__*/React.createElement("button", {
91
+ id: sectionName,
92
+ type: "button",
93
+ className: classnames(headerBtnClass, {
94
+ [`${headerBtnClass}--open`]: isOpen
95
+ }),
96
+ "aria-expanded": isOpen,
97
+ "aria-controls": panelId,
98
+ onClick: () => onToggle(sectionName)
99
+ }, /*#__PURE__*/React.createElement("span", _extends({
100
+ className: titleClass
101
+ }, groupSectionTitleProps), sectionLabel), /*#__PURE__*/React.createElement("span", {
102
+ "aria-hidden": "true",
103
+ className: chevronClass
104
+ }, isOpen ? /*#__PURE__*/React.createElement(VscChevronUp, {
105
+ className: chevronIconClass
106
+ }) : /*#__PURE__*/React.createElement(VscChevronDown, {
107
+ className: chevronIconClass
108
+ })))), /*#__PURE__*/React.createElement(WrapperComponent, _extends({
109
+ id: panelId,
110
+ role: "region",
111
+ "aria-labelledby": sectionName,
112
+ className: panelClass,
113
+ hidden: !isOpen,
114
+ "data-section": sectionName
115
+ }, groupContentWrapperProps), /*#__PURE__*/React.createElement("div", groupContentProps, groupSection)));
116
+ })));
117
+ };
118
+ ContentGroupAccordion.propTypes = {
119
+ name: PropTypes.string.isRequired,
120
+ groupSections: PropTypes.array.isRequired,
121
+ sectionsData: PropTypes.array.isRequired,
122
+ VariantComponent: PropTypes.oneOfType([PropTypes.func, PropTypes.elementType]),
123
+ openState: PropTypes.oneOf(Object.values(OPEN_STATES)),
124
+ groupSectionProps: PropTypes.object,
125
+ groupSectionTitleProps: PropTypes.object,
126
+ groupContentWrapperProps: PropTypes.object,
127
+ groupContentProps: PropTypes.object
128
+ };
129
+ ContentGroupAccordion.defaultProps = {
130
+ VariantComponent: null,
131
+ openState: OPEN_STATES.ALL_CLOSED,
132
+ groupSectionProps: {},
133
+ groupSectionTitleProps: {},
134
+ groupContentWrapperProps: {},
135
+ groupContentProps: {}
136
+ };
137
+ export default ContentGroupAccordion;
138
+ //# sourceMappingURL=ContentGroupAccordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentGroupAccordion.js","names":["React","useEffect","useMemo","useState","PropTypes","classnames","useRouter","VscChevronUp","VscChevronDown","CONTENT_GROUP","OPEN_STATES","ContentGroupAccordion","name","groupSections","sectionsData","VariantComponent","openState","groupSectionProps","groupSectionTitleProps","groupContentWrapperProps","groupContentProps","router","asPath","sectionPairs","map","sectionName","sectionLabel","panelId","sectionNames","p","baseInitialOpen","ALL_OPEN","Set","ALL_CLOSED","length","openSet","setOpenSet","rawHash","split","trim","includes","has","prev","next","add","WrapperComponent","baseClass","itemsClass","itemClass","headerBtnClass","panelClass","headingClass","titleClass","chevronClass","chevronIconClass","onToggle","willOpen","delete","baseUrl","newUrl","replace","shallow","scroll","createElement","className","groupSection","index","isOpen","_extends","key","id","type","onClick","role","hidden","propTypes","string","isRequired","array","oneOfType","func","elementType","oneOf","Object","values","object","defaultProps"],"sources":["../../../src/components/ContentGroup/ContentGroupAccordion.js"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { useRouter } from 'next/router';\nimport { VscChevronUp, VscChevronDown } from 'react-icons/vsc';\nimport { CONTENT_GROUP, OPEN_STATES } from './constants';\n\nconst ContentGroupAccordion = ({\n name,\n groupSections,\n sectionsData,\n VariantComponent,\n openState,\n groupSectionProps,\n groupSectionTitleProps,\n groupContentWrapperProps,\n groupContentProps\n}) => {\n const router = useRouter();\n const { asPath } = router;\n\n const sectionPairs = useMemo(\n () =>\n sectionsData.map(([sectionName, sectionLabel]) => ({\n sectionName,\n sectionLabel,\n panelId: `${sectionName}-panel`\n })),\n [sectionsData]\n );\n\n const sectionNames = useMemo(() => sectionPairs.map(p => p.sectionName), [sectionPairs]);\n\n const baseInitialOpen = useMemo(\n () => {\n if (openState === OPEN_STATES.ALL_OPEN) return new Set(sectionNames);\n if (openState === OPEN_STATES.ALL_CLOSED && sectionNames.length) return new Set();\n\n return new Set([sectionNames[0]]);\n },\n [openState, sectionNames]\n );\n\n const [openSet, setOpenSet] = useState(baseInitialOpen);\n\n useEffect(\n () => {\n const rawHash = (asPath.split('#')[1] || '').trim();\n if (rawHash && sectionNames.includes(rawHash) && !openSet.has(rawHash)) {\n setOpenSet(prev => {\n const next = new Set(prev);\n next.add(rawHash);\n return next;\n });\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [asPath, sectionNames]\n );\n\n const WrapperComponent = VariantComponent || 'div';\n\n const baseClass = `${CONTENT_GROUP}-accordion`;\n const itemsClass = `${baseClass}__items`;\n const itemClass = `${baseClass}__item`;\n const headerBtnClass = `${baseClass}__header-btn`;\n const panelClass = `${baseClass}__panel`;\n const headingClass = `${baseClass}__heading`;\n const titleClass = `${baseClass}__title`;\n const chevronClass = `${baseClass}__chevron`;\n const chevronIconClass = `${baseClass}__chevron-icon`;\n\n const onToggle = sectionName => {\n setOpenSet(prev => {\n const next = new Set(prev);\n const willOpen = !next.has(sectionName);\n\n if (willOpen) next.add(sectionName);\n else next.delete(sectionName);\n\n const baseUrl = asPath.split('#')[0];\n const newUrl = willOpen ? `${baseUrl}#${sectionName}` : baseUrl;\n\n router.replace(`/Resolver`, newUrl, { shallow: true, scroll: false });\n\n return next;\n });\n };\n\n return (\n <div className={baseClass}>\n <div className={itemsClass} aria-label={name}>\n {groupSections.map((groupSection, index) => {\n const { sectionName, sectionLabel, panelId } = sectionPairs[index];\n const isOpen = openSet.has(sectionName);\n\n return (\n <div\n key={sectionName}\n className={classnames(itemClass, { [`${itemClass}--open`]: isOpen })}\n {...groupSectionProps}>\n <h3 className={headingClass}>\n <button\n id={sectionName}\n type=\"button\"\n className={classnames(headerBtnClass, { [`${headerBtnClass}--open`]: isOpen })}\n aria-expanded={isOpen}\n aria-controls={panelId}\n onClick={() => onToggle(sectionName)}>\n <span className={titleClass} {...groupSectionTitleProps}>\n {sectionLabel}\n </span>\n\n <span aria-hidden=\"true\" className={chevronClass}>\n {isOpen ? (\n <VscChevronUp className={chevronIconClass} />\n ) : (\n <VscChevronDown className={chevronIconClass} />\n )}\n </span>\n </button>\n </h3>\n\n <WrapperComponent\n id={panelId}\n role=\"region\"\n aria-labelledby={sectionName}\n className={panelClass}\n hidden={!isOpen}\n data-section={sectionName}\n {...groupContentWrapperProps}>\n <div {...groupContentProps}>{groupSection}</div>\n </WrapperComponent>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nContentGroupAccordion.propTypes = {\n name: PropTypes.string.isRequired,\n groupSections: PropTypes.array.isRequired,\n sectionsData: PropTypes.array.isRequired,\n VariantComponent: PropTypes.oneOfType([PropTypes.func, PropTypes.elementType]),\n openState: PropTypes.oneOf(Object.values(OPEN_STATES)),\n groupSectionProps: PropTypes.object,\n groupSectionTitleProps: PropTypes.object,\n groupContentWrapperProps: PropTypes.object,\n groupContentProps: PropTypes.object\n};\n\nContentGroupAccordion.defaultProps = {\n VariantComponent: null,\n openState: OPEN_STATES.ALL_CLOSED,\n groupSectionProps: {},\n groupSectionTitleProps: {},\n groupContentWrapperProps: {},\n groupContentProps: {}\n};\n\nexport default ContentGroupAccordion;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC3D,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,YAAY,EAAEC,cAAc,QAAQ,iBAAiB;AAC9D,SAASC,aAAa,EAAEC,WAAW,QAAQ,aAAa;AAExD,MAAMC,qBAAqB,GAAGA,CAAC;EAC7BC,IAAI;EACJC,aAAa;EACbC,YAAY;EACZC,gBAAgB;EAChBC,SAAS;EACTC,iBAAiB;EACjBC,sBAAsB;EACtBC,wBAAwB;EACxBC;AACF,CAAC,KAAK;EACJ,MAAMC,MAAM,GAAGf,SAAS,CAAC,CAAC;EAC1B,MAAM;IAAEgB;EAAO,CAAC,GAAGD,MAAM;EAEzB,MAAME,YAAY,GAAGrB,OAAO,CAC1B,MACEY,YAAY,CAACU,GAAG,CAAC,CAAC,CAACC,WAAW,EAAEC,YAAY,CAAC,MAAM;IACjDD,WAAW;IACXC,YAAY;IACZC,OAAO,EAAE,GAAGF,WAAW;EACzB,CAAC,CAAC,CAAC,EACL,CAACX,YAAY,CACf,CAAC;EAED,MAAMc,YAAY,GAAG1B,OAAO,CAAC,MAAMqB,YAAY,CAACC,GAAG,CAACK,CAAC,IAAIA,CAAC,CAACJ,WAAW,CAAC,EAAE,CAACF,YAAY,CAAC,CAAC;EAExF,MAAMO,eAAe,GAAG5B,OAAO,CAC7B,MAAM;IACJ,IAAIc,SAAS,KAAKN,WAAW,CAACqB,QAAQ,EAAE,OAAO,IAAIC,GAAG,CAACJ,YAAY,CAAC;IACpE,IAAIZ,SAAS,KAAKN,WAAW,CAACuB,UAAU,IAAIL,YAAY,CAACM,MAAM,EAAE,OAAO,IAAIF,GAAG,CAAC,CAAC;IAEjF,OAAO,IAAIA,GAAG,CAAC,CAACJ,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;EACnC,CAAC,EACD,CAACZ,SAAS,EAAEY,YAAY,CAC1B,CAAC;EAED,MAAM,CAACO,OAAO,EAAEC,UAAU,CAAC,GAAGjC,QAAQ,CAAC2B,eAAe,CAAC;EAEvD7B,SAAS,CACP,MAAM;IACJ,MAAMoC,OAAO,GAAG,CAACf,MAAM,CAACgB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAEC,IAAI,CAAC,CAAC;IACnD,IAAIF,OAAO,IAAIT,YAAY,CAACY,QAAQ,CAACH,OAAO,CAAC,IAAI,CAACF,OAAO,CAACM,GAAG,CAACJ,OAAO,CAAC,EAAE;MACtED,UAAU,CAACM,IAAI,IAAI;QACjB,MAAMC,IAAI,GAAG,IAAIX,GAAG,CAACU,IAAI,CAAC;QAC1BC,IAAI,CAACC,GAAG,CAACP,OAAO,CAAC;QACjB,OAAOM,IAAI;MACb,CAAC,CAAC;IACJ;EACF,CAAC;EACD;EACA,CAACrB,MAAM,EAAEM,YAAY,CACvB,CAAC;EAED,MAAMiB,gBAAgB,GAAG9B,gBAAgB,IAAI,KAAK;EAElD,MAAM+B,SAAS,GAAG,GAAGrC,aAAa,YAAY;EAC9C,MAAMsC,UAAU,GAAG,GAAGD,SAAS,SAAS;EACxC,MAAME,SAAS,GAAG,GAAGF,SAAS,QAAQ;EACtC,MAAMG,cAAc,GAAG,GAAGH,SAAS,cAAc;EACjD,MAAMI,UAAU,GAAG,GAAGJ,SAAS,SAAS;EACxC,MAAMK,YAAY,GAAG,GAAGL,SAAS,WAAW;EAC5C,MAAMM,UAAU,GAAG,GAAGN,SAAS,SAAS;EACxC,MAAMO,YAAY,GAAG,GAAGP,SAAS,WAAW;EAC5C,MAAMQ,gBAAgB,GAAG,GAAGR,SAAS,gBAAgB;EAErD,MAAMS,QAAQ,GAAG9B,WAAW,IAAI;IAC9BW,UAAU,CAACM,IAAI,IAAI;MACjB,MAAMC,IAAI,GAAG,IAAIX,GAAG,CAACU,IAAI,CAAC;MAC1B,MAAMc,QAAQ,GAAG,CAACb,IAAI,CAACF,GAAG,CAAChB,WAAW,CAAC;MAEvC,IAAI+B,QAAQ,EAAEb,IAAI,CAACC,GAAG,CAACnB,WAAW,CAAC,CAAC,KAC/BkB,IAAI,CAACc,MAAM,CAAChC,WAAW,CAAC;MAE7B,MAAMiC,OAAO,GAAGpC,MAAM,CAACgB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MACpC,MAAMqB,MAAM,GAAGH,QAAQ,GAAG,GAAGE,OAAO,IAAIjC,WAAW,EAAE,GAAGiC,OAAO;MAE/DrC,MAAM,CAACuC,OAAO,CAAC,WAAW,EAAED,MAAM,EAAE;QAAEE,OAAO,EAAE,IAAI;QAAEC,MAAM,EAAE;MAAM,CAAC,CAAC;MAErE,OAAOnB,IAAI;IACb,CAAC,CAAC;EACJ,CAAC;EAED,oBACE3C,KAAA,CAAA+D,aAAA;IAAKC,SAAS,EAAElB;EAAU,gBACxB9C,KAAA,CAAA+D,aAAA;IAAKC,SAAS,EAAEjB,UAAW;IAAC,cAAYnC;EAAK,GAC1CC,aAAa,CAACW,GAAG,CAAC,CAACyC,YAAY,EAAEC,KAAK,KAAK;IAC1C,MAAM;MAAEzC,WAAW;MAAEC,YAAY;MAAEC;IAAQ,CAAC,GAAGJ,YAAY,CAAC2C,KAAK,CAAC;IAClE,MAAMC,MAAM,GAAGhC,OAAO,CAACM,GAAG,CAAChB,WAAW,CAAC;IAEvC,oBACEzB,KAAA,CAAA+D,aAAA,QAAAK,QAAA;MACEC,GAAG,EAAE5C,WAAY;MACjBuC,SAAS,EAAE3D,UAAU,CAAC2C,SAAS,EAAE;QAAE,CAAC,GAAGA,SAAS,QAAQ,GAAGmB;MAAO,CAAC;IAAE,GACjElD,iBAAiB,gBACrBjB,KAAA,CAAA+D,aAAA;MAAIC,SAAS,EAAEb;IAAa,gBAC1BnD,KAAA,CAAA+D,aAAA;MACEO,EAAE,EAAE7C,WAAY;MAChB8C,IAAI,EAAC,QAAQ;MACbP,SAAS,EAAE3D,UAAU,CAAC4C,cAAc,EAAE;QAAE,CAAC,GAAGA,cAAc,QAAQ,GAAGkB;MAAO,CAAC,CAAE;MAC/E,iBAAeA,MAAO;MACtB,iBAAexC,OAAQ;MACvB6C,OAAO,EAAEA,CAAA,KAAMjB,QAAQ,CAAC9B,WAAW;IAAE,gBACrCzB,KAAA,CAAA+D,aAAA,SAAAK,QAAA;MAAMJ,SAAS,EAAEZ;IAAW,GAAKlC,sBAAsB,GACpDQ,YACG,CAAC,eAEP1B,KAAA,CAAA+D,aAAA;MAAM,eAAY,MAAM;MAACC,SAAS,EAAEX;IAAa,GAC9Cc,MAAM,gBACLnE,KAAA,CAAA+D,aAAA,CAACxD,YAAY;MAACyD,SAAS,EAAEV;IAAiB,CAAE,CAAC,gBAE7CtD,KAAA,CAAA+D,aAAA,CAACvD,cAAc;MAACwD,SAAS,EAAEV;IAAiB,CAAE,CAE5C,CACA,CACN,CAAC,eAELtD,KAAA,CAAA+D,aAAA,CAAClB,gBAAgB,EAAAuB,QAAA;MACfE,EAAE,EAAE3C,OAAQ;MACZ8C,IAAI,EAAC,QAAQ;MACb,mBAAiBhD,WAAY;MAC7BuC,SAAS,EAAEd,UAAW;MACtBwB,MAAM,EAAE,CAACP,MAAO;MAChB,gBAAc1C;IAAY,GACtBN,wBAAwB,gBAC5BnB,KAAA,CAAA+D,aAAA,QAAS3C,iBAAiB,EAAG6C,YAAkB,CAC/B,CACf,CAAC;EAEV,CAAC,CACE,CACF,CAAC;AAEV,CAAC;AAEDtD,qBAAqB,CAACgE,SAAS,GAAG;EAChC/D,IAAI,EAAER,SAAS,CAACwE,MAAM,CAACC,UAAU;EACjChE,aAAa,EAAET,SAAS,CAAC0E,KAAK,CAACD,UAAU;EACzC/D,YAAY,EAAEV,SAAS,CAAC0E,KAAK,CAACD,UAAU;EACxC9D,gBAAgB,EAAEX,SAAS,CAAC2E,SAAS,CAAC,CAAC3E,SAAS,CAAC4E,IAAI,EAAE5E,SAAS,CAAC6E,WAAW,CAAC,CAAC;EAC9EjE,SAAS,EAAEZ,SAAS,CAAC8E,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC1E,WAAW,CAAC,CAAC;EACtDO,iBAAiB,EAAEb,SAAS,CAACiF,MAAM;EACnCnE,sBAAsB,EAAEd,SAAS,CAACiF,MAAM;EACxClE,wBAAwB,EAAEf,SAAS,CAACiF,MAAM;EAC1CjE,iBAAiB,EAAEhB,SAAS,CAACiF;AAC/B,CAAC;AAED1E,qBAAqB,CAAC2E,YAAY,GAAG;EACnCvE,gBAAgB,EAAE,IAAI;EACtBC,SAAS,EAAEN,WAAW,CAACuB,UAAU;EACjChB,iBAAiB,EAAE,CAAC,CAAC;EACrBC,sBAAsB,EAAE,CAAC,CAAC;EAC1BC,wBAAwB,EAAE,CAAC,CAAC;EAC5BC,iBAAiB,EAAE,CAAC;AACtB,CAAC;AAED,eAAeT,qBAAqB","ignoreList":[]}
@@ -3,5 +3,16 @@ const TABS = 'tabs';
3
3
  const SIDEPANEL = 'sidepanel';
4
4
  const CONTENT_GROUP = 'content-group';
5
5
  const PANEL = 'panel';
6
- export { TAB, TABS, SIDEPANEL, CONTENT_GROUP, PANEL };
6
+ const FAQ_PAGE = 'https://schema.org/FAQPage';
7
+ const CONTENT_GROUP_TYPES = Object.freeze({
8
+ TAB: 'tab',
9
+ SIDEPANEL: 'sidepanel',
10
+ ACCORDION: 'accordion'
11
+ });
12
+ const OPEN_STATES = Object.freeze({
13
+ FIRST_OPEN: 'first_open',
14
+ ALL_CLOSED: 'all_closed',
15
+ ALL_OPEN: 'all_open'
16
+ });
17
+ export { TAB, TABS, SIDEPANEL, CONTENT_GROUP, PANEL, CONTENT_GROUP_TYPES, OPEN_STATES, FAQ_PAGE };
7
18
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["TAB","TABS","SIDEPANEL","CONTENT_GROUP","PANEL"],"sources":["../../../src/components/ContentGroup/constants.js"],"sourcesContent":["const TAB = 'tab';\nconst TABS = 'tabs';\nconst SIDEPANEL = 'sidepanel';\nconst CONTENT_GROUP = 'content-group';\nconst PANEL = 'panel';\n\nexport { TAB, TABS, SIDEPANEL, CONTENT_GROUP, PANEL };\n"],"mappings":"AAAA,MAAMA,GAAG,GAAG,KAAK;AACjB,MAAMC,IAAI,GAAG,MAAM;AACnB,MAAMC,SAAS,GAAG,WAAW;AAC7B,MAAMC,aAAa,GAAG,eAAe;AACrC,MAAMC,KAAK,GAAG,OAAO;AAErB,SAASJ,GAAG,EAAEC,IAAI,EAAEC,SAAS,EAAEC,aAAa,EAAEC,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["TAB","TABS","SIDEPANEL","CONTENT_GROUP","PANEL","FAQ_PAGE","CONTENT_GROUP_TYPES","Object","freeze","ACCORDION","OPEN_STATES","FIRST_OPEN","ALL_CLOSED","ALL_OPEN"],"sources":["../../../src/components/ContentGroup/constants.js"],"sourcesContent":["const TAB = 'tab';\nconst TABS = 'tabs';\nconst SIDEPANEL = 'sidepanel';\nconst CONTENT_GROUP = 'content-group';\nconst PANEL = 'panel';\nconst FAQ_PAGE = 'https://schema.org/FAQPage';\n\nconst CONTENT_GROUP_TYPES = Object.freeze({\n TAB: 'tab',\n SIDEPANEL: 'sidepanel',\n ACCORDION: 'accordion'\n});\n\nconst OPEN_STATES = Object.freeze({\n FIRST_OPEN: 'first_open',\n ALL_CLOSED: 'all_closed',\n ALL_OPEN: 'all_open'\n});\n\nexport { TAB, TABS, SIDEPANEL, CONTENT_GROUP, PANEL, CONTENT_GROUP_TYPES, OPEN_STATES, FAQ_PAGE };\n"],"mappings":"AAAA,MAAMA,GAAG,GAAG,KAAK;AACjB,MAAMC,IAAI,GAAG,MAAM;AACnB,MAAMC,SAAS,GAAG,WAAW;AAC7B,MAAMC,aAAa,GAAG,eAAe;AACrC,MAAMC,KAAK,GAAG,OAAO;AACrB,MAAMC,QAAQ,GAAG,4BAA4B;AAE7C,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,MAAM,CAAC;EACxCR,GAAG,EAAE,KAAK;EACVE,SAAS,EAAE,WAAW;EACtBO,SAAS,EAAE;AACb,CAAC,CAAC;AAEF,MAAMC,WAAW,GAAGH,MAAM,CAACC,MAAM,CAAC;EAChCG,UAAU,EAAE,YAAY;EACxBC,UAAU,EAAE,YAAY;EACxBC,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,SAASb,GAAG,EAAEC,IAAI,EAAEC,SAAS,EAAEC,aAAa,EAAEC,KAAK,EAAEE,mBAAmB,EAAEI,WAAW,EAAEL,QAAQ","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ const getStructuredDataProperties = isFaqContent => {
2
+ const properties = {
3
+ topWrapperProps: {},
4
+ groupSectionProps: {},
5
+ groupSectionTitleProps: {},
6
+ groupContentWrapperProps: {},
7
+ groupContentProps: {}
8
+ };
9
+ if (!isFaqContent) return properties;
10
+ properties.topWrapperProps = {
11
+ itemScope: true,
12
+ itemType: 'https://schema.org/FAQPage'
13
+ };
14
+ properties.groupSectionProps = {
15
+ itemScope: true,
16
+ itemProp: 'mainEntity',
17
+ itemType: 'https://schema.org/Question'
18
+ };
19
+ properties.groupSectionTitleProps = {
20
+ itemProp: 'name'
21
+ };
22
+ properties.groupContentWrapperProps = {
23
+ itemScope: true,
24
+ itemProp: 'acceptedAnswer',
25
+ itemType: 'https://schema.org/Answer'
26
+ };
27
+ properties.groupContentProps = {
28
+ itemProp: 'text'
29
+ };
30
+ return properties;
31
+ };
32
+ export default getStructuredDataProperties;
33
+ //# sourceMappingURL=get-structured-data-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-structured-data-properties.js","names":["getStructuredDataProperties","isFaqContent","properties","topWrapperProps","groupSectionProps","groupSectionTitleProps","groupContentWrapperProps","groupContentProps","itemScope","itemType","itemProp"],"sources":["../../../../src/components/ContentGroup/helpers/get-structured-data-properties.js"],"sourcesContent":["const getStructuredDataProperties = isFaqContent => {\n const properties = {\n topWrapperProps: {},\n groupSectionProps: {},\n groupSectionTitleProps: {},\n groupContentWrapperProps: {},\n groupContentProps: {}\n };\n if (!isFaqContent) return properties;\n\n properties.topWrapperProps = {\n itemScope: true,\n itemType: 'https://schema.org/FAQPage'\n };\n properties.groupSectionProps = {\n itemScope: true,\n itemProp: 'mainEntity',\n itemType: 'https://schema.org/Question'\n };\n properties.groupSectionTitleProps = {\n itemProp: 'name'\n };\n properties.groupContentWrapperProps = {\n itemScope: true,\n itemProp: 'acceptedAnswer',\n itemType: 'https://schema.org/Answer'\n };\n\n properties.groupContentProps = {\n itemProp: 'text'\n };\n\n return properties;\n};\n\nexport default getStructuredDataProperties;\n"],"mappings":"AAAA,MAAMA,2BAA2B,GAAGC,YAAY,IAAI;EAClD,MAAMC,UAAU,GAAG;IACjBC,eAAe,EAAE,CAAC,CAAC;IACnBC,iBAAiB,EAAE,CAAC,CAAC;IACrBC,sBAAsB,EAAE,CAAC,CAAC;IAC1BC,wBAAwB,EAAE,CAAC,CAAC;IAC5BC,iBAAiB,EAAE,CAAC;EACtB,CAAC;EACD,IAAI,CAACN,YAAY,EAAE,OAAOC,UAAU;EAEpCA,UAAU,CAACC,eAAe,GAAG;IAC3BK,SAAS,EAAE,IAAI;IACfC,QAAQ,EAAE;EACZ,CAAC;EACDP,UAAU,CAACE,iBAAiB,GAAG;IAC7BI,SAAS,EAAE,IAAI;IACfE,QAAQ,EAAE,YAAY;IACtBD,QAAQ,EAAE;EACZ,CAAC;EACDP,UAAU,CAACG,sBAAsB,GAAG;IAClCK,QAAQ,EAAE;EACZ,CAAC;EACDR,UAAU,CAACI,wBAAwB,GAAG;IACpCE,SAAS,EAAE,IAAI;IACfE,QAAQ,EAAE,gBAAgB;IAC1BD,QAAQ,EAAE;EACZ,CAAC;EAEDP,UAAU,CAACK,iBAAiB,GAAG;IAC7BG,QAAQ,EAAE;EACZ,CAAC;EAED,OAAOR,UAAU;AACnB,CAAC;AAED,eAAeF,2BAA2B","ignoreList":[]}
@@ -10,7 +10,6 @@ import BlazeLink from '../BlazeLink';
10
10
  const Menu = ({
11
11
  children,
12
12
  collapse,
13
- openActiveSubmenus,
14
13
  modifier,
15
14
  mobileMenuModifier,
16
15
  mobileMenuChildrenModifier,
@@ -46,8 +45,7 @@ const Menu = ({
46
45
  });
47
46
  return /*#__PURE__*/React.createElement(MenuContext.Provider, {
48
47
  value: {
49
- showMobileMenu,
50
- openActiveSubmenus
48
+ showMobileMenu
51
49
  }
52
50
  }, /*#__PURE__*/React.createElement("div", {
53
51
  className: menuWrapperClasses
@@ -85,7 +83,6 @@ const Menu = ({
85
83
  };
86
84
  Menu.propTypes = {
87
85
  collapse: PropTypes.bool.isRequired,
88
- openActiveSubmenus: PropTypes.bool.isRequired,
89
86
  logoOnMobile: PropTypes.bool.isRequired,
90
87
  logoOnDesktop: PropTypes.bool,
91
88
  logoOnMobileUrl: PropTypes.string,
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","names":["React","useState","useEffect","PropTypes","BlazeButton","classnames","useRouter","MdMenu","MdClose","Link","MenuContext","BlazeLink","Menu","children","collapse","openActiveSubmenus","modifier","mobileMenuModifier","mobileMenuChildrenModifier","mobileIconAlignment","mobileButtonModifier","hamburgerIconModifier","logoOnMobile","logoOnDesktop","logoOnMobileUrl","logoOnMobileAlt","logoOnMobileModifier","logoOnDesktopModifier","closeIconModifier","router","showMobileMenu","setShowMobileMenu","handleRouteChange","events","on","off","shouldDisplayChildren","childModifiers","isMobileMenuExpanded","menuWrapperClasses","createElement","Provider","value","className","onClick","label","href","name","src","alt","propTypes","bool","isRequired","string","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/Menu/Menu.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeButton from '@blaze-react/button';\nimport classnames from 'classnames';\nimport { useRouter } from 'next/router';\nimport { MdMenu, MdClose } from 'react-icons/md';\nimport { Link } from '@blaze-cms/nextjs-components';\nimport MenuContext from './MenuContext';\nimport BlazeLink from '../BlazeLink';\n\nconst Menu = ({\n children,\n collapse,\n openActiveSubmenus,\n modifier,\n mobileMenuModifier,\n mobileMenuChildrenModifier,\n mobileIconAlignment,\n mobileButtonModifier,\n hamburgerIconModifier,\n logoOnMobile,\n logoOnDesktop,\n logoOnMobileUrl,\n logoOnMobileAlt,\n logoOnMobileModifier,\n logoOnDesktopModifier,\n closeIconModifier\n}) => {\n const router = useRouter();\n const [showMobileMenu, setShowMobileMenu] = useState(false);\n\n useEffect(() => {\n const handleRouteChange = () => setShowMobileMenu(false);\n router.events.on('routeChangeStart', handleRouteChange);\n\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n }, [router.events]);\n\n const shouldDisplayChildren = collapse ? showMobileMenu : true;\n\n const childModifiers = classnames({\n [mobileMenuChildrenModifier]: shouldDisplayChildren,\n [modifier]: !showMobileMenu\n });\n\n const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';\n const menuWrapperClasses = classnames('menu--wrapper', {\n 'menu--wrapper--mobile-open': showMobileMenu,\n 'menu--wrapper--mobile-closed': collapse && !showMobileMenu\n });\n\n return (\n <MenuContext.Provider value={{ showMobileMenu, openActiveSubmenus }}>\n <div className={menuWrapperClasses}>\n {collapse && (\n <div className=\"menu--mobile-wrapper\">\n <div\n className={`flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`}>\n <BlazeButton\n className={`menu--mobile-button ${mobileButtonModifier}`}\n onClick={() => setShowMobileMenu(!showMobileMenu)}\n label={showMobileMenu ? 'Close mobile menu' : 'Open mobile menu'}>\n <i>\n {showMobileMenu ? (\n <MdClose className={closeIconModifier} />\n ) : (\n <MdMenu className={hamburgerIconModifier} />\n )}\n </i>\n </BlazeButton>\n </div>\n </div>\n )}\n {logoOnMobile && !showMobileMenu && (\n <Link href=\"/\" name=\"mobile menu\">\n <img src={logoOnMobileUrl} alt={logoOnMobileAlt} className={logoOnMobileModifier} />\n </Link>\n )}\n\n <div className=\"menu--desktop-wrapper\">\n <ul className={childModifiers}>\n {logoOnDesktop && (\n <BlazeLink href=\"/\" className=\"\">\n <img\n src={logoOnMobileUrl}\n alt={logoOnMobileAlt}\n className={logoOnDesktopModifier}\n />\n </BlazeLink>\n )}\n {children}\n </ul>\n </div>\n </div>\n </MenuContext.Provider>\n );\n};\n\nMenu.propTypes = {\n collapse: PropTypes.bool.isRequired,\n openActiveSubmenus: PropTypes.bool.isRequired,\n logoOnMobile: PropTypes.bool.isRequired,\n logoOnDesktop: PropTypes.bool,\n logoOnMobileUrl: PropTypes.string,\n logoOnMobileAlt: PropTypes.string,\n logoOnMobileModifier: PropTypes.string,\n logoOnDesktopModifier: PropTypes.string,\n hamburgerIconModifier: PropTypes.string,\n closeIconModifier: PropTypes.string,\n mobileButtonModifier: PropTypes.string,\n mobileMenuModifier: PropTypes.string,\n mobileMenuChildrenModifier: PropTypes.string,\n modifier: PropTypes.string,\n mobileIconAlignment: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenu.defaultProps = {\n logoOnDesktop: false,\n logoOnMobileUrl: '',\n logoOnMobileAlt: '',\n logoOnMobileModifier: '',\n logoOnDesktopModifier: '',\n hamburgerIconModifier: '',\n closeIconModifier: '',\n mobileButtonModifier: '',\n mobileIconAlignment: '',\n mobileMenuModifier: '',\n mobileMenuChildrenModifier: '',\n modifier: '',\n children: []\n};\n\nexport default Menu;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Menu.js","names":["React","useState","useEffect","PropTypes","BlazeButton","classnames","useRouter","MdMenu","MdClose","Link","MenuContext","BlazeLink","Menu","children","collapse","modifier","mobileMenuModifier","mobileMenuChildrenModifier","mobileIconAlignment","mobileButtonModifier","hamburgerIconModifier","logoOnMobile","logoOnDesktop","logoOnMobileUrl","logoOnMobileAlt","logoOnMobileModifier","logoOnDesktopModifier","closeIconModifier","router","showMobileMenu","setShowMobileMenu","handleRouteChange","events","on","off","shouldDisplayChildren","childModifiers","isMobileMenuExpanded","menuWrapperClasses","createElement","Provider","value","className","onClick","label","href","name","src","alt","propTypes","bool","isRequired","string","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/Menu/Menu.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeButton from '@blaze-react/button';\nimport classnames from 'classnames';\nimport { useRouter } from 'next/router';\nimport { MdMenu, MdClose } from 'react-icons/md';\nimport { Link } from '@blaze-cms/nextjs-components';\nimport MenuContext from './MenuContext';\nimport BlazeLink from '../BlazeLink';\n\nconst Menu = ({\n children,\n collapse,\n modifier,\n mobileMenuModifier,\n mobileMenuChildrenModifier,\n mobileIconAlignment,\n mobileButtonModifier,\n hamburgerIconModifier,\n logoOnMobile,\n logoOnDesktop,\n logoOnMobileUrl,\n logoOnMobileAlt,\n logoOnMobileModifier,\n logoOnDesktopModifier,\n closeIconModifier\n}) => {\n const router = useRouter();\n const [showMobileMenu, setShowMobileMenu] = useState(false);\n\n useEffect(() => {\n const handleRouteChange = () => setShowMobileMenu(false);\n router.events.on('routeChangeStart', handleRouteChange);\n\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n }, [router.events]);\n\n const shouldDisplayChildren = collapse ? showMobileMenu : true;\n\n const childModifiers = classnames({\n [mobileMenuChildrenModifier]: shouldDisplayChildren,\n [modifier]: !showMobileMenu\n });\n\n const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';\n const menuWrapperClasses = classnames('menu--wrapper', {\n 'menu--wrapper--mobile-open': showMobileMenu,\n 'menu--wrapper--mobile-closed': collapse && !showMobileMenu\n });\n\n return (\n <MenuContext.Provider value={{ showMobileMenu }}>\n <div className={menuWrapperClasses}>\n {collapse && (\n <div className=\"menu--mobile-wrapper\">\n <div\n className={`flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`}>\n <BlazeButton\n className={`menu--mobile-button ${mobileButtonModifier}`}\n onClick={() => setShowMobileMenu(!showMobileMenu)}\n label={showMobileMenu ? 'Close mobile menu' : 'Open mobile menu'}>\n <i>\n {showMobileMenu ? (\n <MdClose className={closeIconModifier} />\n ) : (\n <MdMenu className={hamburgerIconModifier} />\n )}\n </i>\n </BlazeButton>\n </div>\n </div>\n )}\n {logoOnMobile && !showMobileMenu && (\n <Link href=\"/\" name=\"mobile menu\">\n <img src={logoOnMobileUrl} alt={logoOnMobileAlt} className={logoOnMobileModifier} />\n </Link>\n )}\n\n <div className=\"menu--desktop-wrapper\">\n <ul className={childModifiers}>\n {logoOnDesktop && (\n <BlazeLink href=\"/\" className=\"\">\n <img\n src={logoOnMobileUrl}\n alt={logoOnMobileAlt}\n className={logoOnDesktopModifier}\n />\n </BlazeLink>\n )}\n {children}\n </ul>\n </div>\n </div>\n </MenuContext.Provider>\n );\n};\n\nMenu.propTypes = {\n collapse: PropTypes.bool.isRequired,\n logoOnMobile: PropTypes.bool.isRequired,\n logoOnDesktop: PropTypes.bool,\n logoOnMobileUrl: PropTypes.string,\n logoOnMobileAlt: PropTypes.string,\n logoOnMobileModifier: PropTypes.string,\n logoOnDesktopModifier: PropTypes.string,\n hamburgerIconModifier: PropTypes.string,\n closeIconModifier: PropTypes.string,\n mobileButtonModifier: PropTypes.string,\n mobileMenuModifier: PropTypes.string,\n mobileMenuChildrenModifier: PropTypes.string,\n modifier: PropTypes.string,\n mobileIconAlignment: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenu.defaultProps = {\n logoOnDesktop: false,\n logoOnMobileUrl: '',\n logoOnMobileAlt: '',\n logoOnMobileModifier: '',\n logoOnDesktopModifier: '',\n hamburgerIconModifier: '',\n closeIconModifier: '',\n mobileButtonModifier: '',\n mobileIconAlignment: '',\n mobileMenuModifier: '',\n mobileMenuChildrenModifier: '',\n modifier: '',\n children: []\n};\n\nexport default Menu;\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  const MenuContext = React.createContext({
3
- showMobileMenu: false,
4
- openActiveSubmenus: false
3
+ showMobileMenu: false
5
4
  });
6
5
  export default MenuContext;
7
6
  //# sourceMappingURL=MenuContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuContext.js","names":["React","MenuContext","createContext","showMobileMenu","openActiveSubmenus"],"sources":["../../../src/components/Menu/MenuContext.js"],"sourcesContent":["import React from 'react';\n\nconst MenuContext = React.createContext({ showMobileMenu: false, openActiveSubmenus: false });\n\nexport default MenuContext;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,MAAMC,WAAW,GAAGD,KAAK,CAACE,aAAa,CAAC;EAAEC,cAAc,EAAE,KAAK;EAAEC,kBAAkB,EAAE;AAAM,CAAC,CAAC;AAE7F,eAAeH,WAAW","ignoreList":[]}
1
+ {"version":3,"file":"MenuContext.js","names":["React","MenuContext","createContext","showMobileMenu"],"sources":["../../../src/components/Menu/MenuContext.js"],"sourcesContent":["import React from 'react';\n\nconst MenuContext = React.createContext({ showMobileMenu: false });\n\nexport default MenuContext;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,MAAMC,WAAW,GAAGD,KAAK,CAACE,aAAa,CAAC;EAAEC,cAAc,EAAE;AAAM,CAAC,CAAC;AAElE,eAAeF,WAAW","ignoreList":[]}
@@ -1,15 +1,13 @@
1
- /* eslint-disable jsx-a11y/no-static-element-interactions */
2
1
  import React, { useState, useContext, useEffect } from 'react';
3
2
  import PropTypes from 'prop-types';
4
3
  import { FaChevronDown, FaChevronUp } from 'react-icons/fa';
5
- import classnames from 'classnames';
6
4
  import { useRouter } from 'next/router';
7
5
  import { useStringTemplate } from '@blaze-cms/utils-handlebars';
8
- import { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN, CLICK } from '../../constants';
6
+ import { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN } from '../../constants';
9
7
  import { hasChildren } from '../../helpers';
10
8
  import BlazeLink from '../BlazeLink';
11
9
  import MenuContext from '../Menu/MenuContext';
12
- import { injectHelperIntoTemplate, isUrlPathMatch, hasActiveChild } from './helpers';
10
+ import { injectHelperIntoTemplate } from './helpers';
13
11
  const MenuItemRender = ({
14
12
  children,
15
13
  eventType,
@@ -18,13 +16,10 @@ const MenuItemRender = ({
18
16
  url,
19
17
  parent
20
18
  }) => {
21
- const router = useRouter();
19
+ const [displayChildren, setDisplayChildren] = useState(false);
22
20
  const {
23
- showMobileMenu,
24
- openActiveSubmenus
21
+ showMobileMenu
25
22
  } = useContext(MenuContext);
26
- const isHoverEvent = eventType === HOVER;
27
- const isClickEvent = eventType === CLICK;
28
23
  const {
29
24
  loading: loadingText,
30
25
  data: [textToUse]
@@ -33,21 +28,19 @@ const MenuItemRender = ({
33
28
  loading: loadingUrl,
34
29
  data: [urlToUse]
35
30
  } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);
36
- const isActive = router ? isUrlPathMatch(router.asPath, urlToUse) : false;
37
- const isActiveParent = router ? hasActiveChild(router.asPath, children) : false;
38
- const shouldPreOpen = openActiveSubmenus && isActiveParent && isClickEvent;
31
+ const router = useRouter();
32
+ const isHoverEvent = eventType === HOVER;
33
+ const childrenDisplayClass = displayChildren ? '' : HIDDEN;
39
34
  const hasValidChildren = hasChildren(children);
40
- const [displayChildren, setDisplayChildren] = useState(shouldPreOpen);
41
35
  useEffect(() => {
42
- if (!showMobileMenu && !shouldPreOpen) setDisplayChildren(false);
43
- }, [children, isClickEvent, loadingUrl, openActiveSubmenus, router, shouldPreOpen, showMobileMenu]);
36
+ if (!showMobileMenu) setDisplayChildren(false);
37
+ }, [showMobileMenu]);
44
38
  useEffect(() => {
45
39
  if (isHoverEvent) {
46
40
  setDisplayChildren(false);
47
41
  }
48
42
  }, [router.asPath, isHoverEvent]);
49
43
  if (loadingUrl || loadingText) return '';
50
- const childrenDisplayClass = displayChildren ? '' : HIDDEN;
51
44
  const handleItemEvent = ({
52
45
  type
53
46
  }) => {
@@ -65,25 +58,18 @@ const MenuItemRender = ({
65
58
  setDisplayChildren(!displayChildren);
66
59
  }
67
60
  };
68
- const menuItemLinkClassname = classnames('menu--item--link', {
69
- 'menu--item--link--active': isActive,
70
- 'menu--item--link--active-parent': isActiveParent
71
- });
72
61
  return /*#__PURE__*/React.createElement("li", {
73
62
  className: modifier,
74
63
  onMouseEnter: handleItemEvent,
75
64
  onMouseLeave: handleItemEvent
76
65
  }, /*#__PURE__*/React.createElement("div", {
77
- className: menuItemLinkClassname,
66
+ className: "menu--item--link",
78
67
  onClick: handleMobileClick,
79
68
  role: !urlToUse && hasValidChildren ? 'button' : undefined,
80
69
  tabIndex: !urlToUse && hasValidChildren ? 0 : undefined
81
70
  }, urlToUse ? /*#__PURE__*/React.createElement(BlazeLink, {
82
71
  href: urlToUse
83
- }, textToUse) : /*#__PURE__*/React.createElement("span", {
84
- role: "button",
85
- onClick: handleItemEvent
86
- }, textToUse), hasValidChildren && /*#__PURE__*/React.createElement("i", {
72
+ }, textToUse) : /*#__PURE__*/React.createElement("span", null, textToUse), hasValidChildren && /*#__PURE__*/React.createElement("i", {
87
73
  role: "button",
88
74
  className: "menu--item--link--icon",
89
75
  onClick: e => {
@@ -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","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
+ {"version":3,"file":"MenuItemRender.js","names":["React","useState","useContext","useEffect","PropTypes","FaChevronDown","FaChevronUp","useRouter","useStringTemplate","HOVER","MOUSE_ENTER","MOUSE_LEAVE","HIDDEN","hasChildren","BlazeLink","MenuContext","injectHelperIntoTemplate","MenuItemRender","children","eventType","text","modifier","url","parent","displayChildren","setDisplayChildren","showMobileMenu","loading","loadingText","data","textToUse","loadingUrl","urlToUse","router","isHoverEvent","childrenDisplayClass","hasValidChildren","asPath","handleItemEvent","type","handleMobileClick","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":["import React, { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport { useRouter } from 'next/router';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN } from '../../constants';\nimport { hasChildren } from '../../helpers';\nimport BlazeLink from '../BlazeLink';\nimport MenuContext from '../Menu/MenuContext';\nimport { injectHelperIntoTemplate } from './helpers';\n\nconst MenuItemRender = ({ children, eventType, text, modifier, url, parent }) => {\n const [displayChildren, setDisplayChildren] = useState(false);\n const { showMobileMenu } = useContext(MenuContext);\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 router = useRouter();\n const isHoverEvent = eventType === HOVER;\n const childrenDisplayClass = displayChildren ? '' : HIDDEN;\n const hasValidChildren = hasChildren(children);\n\n useEffect(() => {\n if (!showMobileMenu) setDisplayChildren(false);\n }, [showMobileMenu]);\n\n useEffect(() => {\n if (isHoverEvent) {\n setDisplayChildren(false);\n }\n }, [router.asPath, isHoverEvent]);\n\n if (loadingUrl || loadingText) return '';\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 return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div\n className=\"menu--item--link\"\n onClick={handleMobileClick}\n role={!urlToUse && hasValidChildren ? 'button' : undefined}\n tabIndex={!urlToUse && hasValidChildren ? 0 : undefined}>\n {urlToUse ? <BlazeLink href={urlToUse}>{textToUse}</BlazeLink> : <span>{textToUse}</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,5 +1,3 @@
1
1
  import injectHelperIntoTemplate from './inject-helper-into-template';
2
- import isUrlPathMatch from './isUrlPathMatch';
3
- import hasActiveChild from './has-active-child';
4
- export { injectHelperIntoTemplate, isUrlPathMatch, hasActiveChild };
2
+ export { injectHelperIntoTemplate };
5
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["injectHelperIntoTemplate","isUrlPathMatch","hasActiveChild"],"sources":["../../../../src/components/MenuItem/helpers/index.js"],"sourcesContent":["import injectHelperIntoTemplate from './inject-helper-into-template';\nimport isUrlPathMatch from './isUrlPathMatch';\nimport hasActiveChild from './has-active-child';\n\nexport { injectHelperIntoTemplate, isUrlPathMatch, hasActiveChild };\n"],"mappings":"AAAA,OAAOA,wBAAwB,MAAM,+BAA+B;AACpE,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,cAAc,MAAM,oBAAoB;AAE/C,SAASF,wBAAwB,EAAEC,cAAc,EAAEC,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["injectHelperIntoTemplate"],"sources":["../../../../src/components/MenuItem/helpers/index.js"],"sourcesContent":["import injectHelperIntoTemplate from './inject-helper-into-template';\n\nexport { injectHelperIntoTemplate };\n"],"mappings":"AAAA,OAAOA,wBAAwB,MAAM,+BAA+B;AAEpE,SAASA,wBAAwB","ignoreList":[]}
@@ -54,9 +54,10 @@ const SearchContent = props => {
54
54
  const handleClickOutside = event => {
55
55
  if (searchContentRef.current && !searchContentRef.current.contains(event.target)) {
56
56
  setShowResults(false);
57
- if (collapsedSearch) {
58
- setCollapsed(true);
59
- setSearchTerm('');
57
+ setSearchTerm('');
58
+ if (collapsedSearch) setCollapsed(true);
59
+ if (document.activeElement && document.activeElement instanceof HTMLElement) {
60
+ document.activeElement.blur();
60
61
  }
61
62
  }
62
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SearchContent.js","names":["React","useState","useEffect","useRef","PropTypes","useRouter","useDebounceSearch","SearchContentResults","SearchContentToggleIcon","useAppSyncEventHook","SearchContent","props","entities","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","placeholder","modifier","collapsedSearch","searchUrl","navigateToSingleSearchResult","searchContentRef","collapsed","setCollapsed","showResults","setShowResults","router","runHook","eventName","returnFunction","results","searchTerm","setSearchTerm","debouncedSearchTerm","initialSearchTerm","resultKeys","queryHook","handleRouteChange","events","on","off","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener","responsiveClasses","handleNavigation","e","url","preventDefault","push","handleKeyDown","key","value","length","handleIconClick","isCloseIcon","className","filter","Boolean","join","searchModifier","createElement","ref","onClick","useCloseIcon","type","name","onChange","onKeyDown","onFocus","handleClick","propTypes","string","bool","array","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/SearchContent.js"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useDebounceSearch } from '@blaze-cms/plugin-search-ui';\nimport SearchContentResults from './SearchContentResults';\nimport SearchContentToggleIcon from './SearchContentToggleIcon';\nimport { useAppSyncEventHook } from '../../hooks';\n\nconst SearchContent = props => {\n const {\n entities,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile,\n placeholder,\n modifier,\n collapsedSearch,\n searchUrl,\n navigateToSingleSearchResult\n } = props;\n const searchContentRef = useRef(null);\n const [collapsed, setCollapsed] = useState(collapsedSearch);\n const [showResults, setShowResults] = useState(false);\n const router = useRouter();\n\n const { runHook } = useAppSyncEventHook({\n eventName: 'searchcontent:query-variables',\n props,\n returnFunction: true\n });\n\n const { results, searchTerm, setSearchTerm, debouncedSearchTerm } = useDebounceSearch({\n entities,\n initialSearchTerm: '',\n resultKeys: 'id, name, image { url }, url',\n queryHook: runHook\n });\n\n useEffect(() => {\n const handleRouteChange = () => {\n setSearchTerm('');\n setShowResults(false);\n if (collapsedSearch) setCollapsed(true);\n };\n router.events.on('routeChangeStart', handleRouteChange);\n\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n }, [collapsedSearch, router.events, setSearchTerm]);\n\n useEffect(() => {\n const handleClickOutside = event => {\n if (searchContentRef.current && !searchContentRef.current.contains(event.target)) {\n setShowResults(false);\n if (collapsedSearch) {\n setCollapsed(true);\n setSearchTerm('');\n }\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [collapsedSearch, setSearchTerm]);\n\n const responsiveClasses = isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop;\n\n const handleNavigation = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyDown = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n if (navigateToSingleSearchResult && results && results.length === 1 && results[0].url) {\n router.push(results[0].url);\n } else {\n router.push(`${searchUrl || '/search'}?search_term=${e.target.value}`);\n }\n }\n };\n\n const handleIconClick = () => {\n const isCloseIcon = collapsedSearch ? !collapsed : debouncedSearchTerm;\n\n if (collapsedSearch) setCollapsed(!collapsed);\n\n if (isCloseIcon) {\n setSearchTerm('');\n setShowResults(false);\n } else {\n setShowResults(true);\n }\n };\n\n const className = ['search-content', modifier, responsiveClasses].filter(Boolean).join(' ');\n const searchModifier = collapsed ? 'search-content--collapse' : 'search-content--expanded';\n\n return (\n <div className={className} ref={searchContentRef}>\n <div className={`${searchModifier}__wrapper`}>\n <label className={`${searchModifier}__label`}>\n <span className={`${searchModifier}__icon_wrapper`}>\n <SearchContentToggleIcon\n searchTerm={debouncedSearchTerm}\n onClick={handleIconClick}\n useCloseIcon={collapsedSearch ? !collapsed : debouncedSearchTerm}\n />\n </span>\n {!collapsed && (\n <input\n className={`${searchModifier}__input`}\n type=\"text\"\n name=\"search\"\n placeholder={placeholder}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n onKeyDown={handleKeyDown}\n onFocus={() => setShowResults(true)}\n data-testid=\"search-content-input\"\n />\n )}\n </label>\n </div>\n {showResults && (\n <SearchContentResults\n results={results}\n debouncedSearchTerm={debouncedSearchTerm}\n handleClick={handleNavigation}\n />\n )}\n </div>\n );\n};\n\nSearchContent.propTypes = {\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n entities: PropTypes.array.isRequired,\n modifier: PropTypes.string,\n collapsedSearch: PropTypes.bool,\n searchUrl: PropTypes.string,\n navigateToSingleSearchResult: PropTypes.bool\n};\n\nSearchContent.defaultProps = {\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n modifier: '',\n collapsedSearch: false,\n searchUrl: '',\n navigateToSingleSearchResult: false\n};\n\nexport default SearchContent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SearchContent.js","names":["React","useState","useEffect","useRef","PropTypes","useRouter","useDebounceSearch","SearchContentResults","SearchContentToggleIcon","useAppSyncEventHook","SearchContent","props","entities","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","placeholder","modifier","collapsedSearch","searchUrl","navigateToSingleSearchResult","searchContentRef","collapsed","setCollapsed","showResults","setShowResults","router","runHook","eventName","returnFunction","results","searchTerm","setSearchTerm","debouncedSearchTerm","initialSearchTerm","resultKeys","queryHook","handleRouteChange","events","on","off","handleClickOutside","event","current","contains","target","document","activeElement","HTMLElement","blur","addEventListener","removeEventListener","responsiveClasses","handleNavigation","e","url","preventDefault","push","handleKeyDown","key","value","length","handleIconClick","isCloseIcon","className","filter","Boolean","join","searchModifier","createElement","ref","onClick","useCloseIcon","type","name","onChange","onKeyDown","onFocus","handleClick","propTypes","string","bool","array","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/SearchContent.js"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useDebounceSearch } from '@blaze-cms/plugin-search-ui';\nimport SearchContentResults from './SearchContentResults';\nimport SearchContentToggleIcon from './SearchContentToggleIcon';\nimport { useAppSyncEventHook } from '../../hooks';\n\nconst SearchContent = props => {\n const {\n entities,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile,\n placeholder,\n modifier,\n collapsedSearch,\n searchUrl,\n navigateToSingleSearchResult\n } = props;\n\n const searchContentRef = useRef(null);\n const [collapsed, setCollapsed] = useState(collapsedSearch);\n const [showResults, setShowResults] = useState(false);\n const router = useRouter();\n\n const { runHook } = useAppSyncEventHook({\n eventName: 'searchcontent:query-variables',\n props,\n returnFunction: true\n });\n\n const { results, searchTerm, setSearchTerm, debouncedSearchTerm } = useDebounceSearch({\n entities,\n initialSearchTerm: '',\n resultKeys: 'id, name, image { url }, url',\n queryHook: runHook\n });\n\n useEffect(() => {\n const handleRouteChange = () => {\n setSearchTerm('');\n setShowResults(false);\n if (collapsedSearch) setCollapsed(true);\n };\n router.events.on('routeChangeStart', handleRouteChange);\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n }, [collapsedSearch, router.events, setSearchTerm]);\n\n useEffect(() => {\n const handleClickOutside = event => {\n if (searchContentRef.current && !searchContentRef.current.contains(event.target)) {\n setShowResults(false);\n setSearchTerm('');\n if (collapsedSearch) setCollapsed(true);\n\n if (document.activeElement && document.activeElement instanceof HTMLElement) {\n document.activeElement.blur();\n }\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [collapsedSearch, setSearchTerm]);\n\n const responsiveClasses = isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop;\n\n const handleNavigation = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyDown = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n if (navigateToSingleSearchResult && results && results.length === 1 && results[0].url) {\n router.push(results[0].url);\n } else {\n router.push(`${searchUrl || '/search'}?search_term=${e.target.value}`);\n }\n }\n };\n\n const handleIconClick = () => {\n const isCloseIcon = collapsedSearch ? !collapsed : debouncedSearchTerm;\n\n if (collapsedSearch) setCollapsed(!collapsed);\n\n if (isCloseIcon) {\n setSearchTerm('');\n setShowResults(false);\n } else {\n setShowResults(true);\n }\n };\n\n const className = ['search-content', modifier, responsiveClasses].filter(Boolean).join(' ');\n const searchModifier = collapsed ? 'search-content--collapse' : 'search-content--expanded';\n\n return (\n <div className={className} ref={searchContentRef}>\n <div className={`${searchModifier}__wrapper`}>\n <label className={`${searchModifier}__label`}>\n <span className={`${searchModifier}__icon_wrapper`}>\n <SearchContentToggleIcon\n searchTerm={debouncedSearchTerm}\n onClick={handleIconClick}\n useCloseIcon={collapsedSearch ? !collapsed : debouncedSearchTerm}\n />\n </span>\n {!collapsed && (\n <input\n className={`${searchModifier}__input`}\n type=\"text\"\n name=\"search\"\n placeholder={placeholder}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n onKeyDown={handleKeyDown}\n onFocus={() => setShowResults(true)}\n data-testid=\"search-content-input\"\n />\n )}\n </label>\n </div>\n {showResults && (\n <SearchContentResults\n results={results}\n debouncedSearchTerm={debouncedSearchTerm}\n handleClick={handleNavigation}\n />\n )}\n </div>\n );\n};\n\nSearchContent.propTypes = {\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n entities: PropTypes.array.isRequired,\n modifier: PropTypes.string,\n collapsedSearch: PropTypes.bool,\n searchUrl: PropTypes.string,\n navigateToSingleSearchResult: PropTypes.bool\n};\n\nSearchContent.defaultProps = {\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n modifier: '',\n collapsedSearch: false,\n searchUrl: '',\n navigateToSingleSearchResult: false\n};\n\nexport default SearchContent;\n"],"mappings":"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","ignoreList":[]}
@@ -59,7 +59,6 @@ const addEditorModeEventListeners = ({
59
59
  return;
60
60
  }
61
61
  }
62
- childNode.classList.remove(EDITOR_MODE_HIGHLIGHT_CLASS);
63
62
  setLogoProps(null);
64
63
  };
65
64
  childNode.addEventListener('click', click); // todo: remove listener and trigger on icon click
@@ -1 +1 @@
1
- {"version":3,"file":"add-editor-mode-event-listeners.js","names":["getComponentId","EDITOR_MODE_HIGHLIGHT_CLASS","EDITOR_MODE_ICON_CLASS","addEditorModeEventListeners","ref","name","adminHref","type","setLogoProps","current","parentNode","listeners","siblings","children","foundChildren","foundStart","child","getAttribute","push","cleanUpFunctions","Object","values","map","childNode","componentId","clickItemId","click","e","stopPropagation","preventDefault","window","open","mouseenter","document","querySelectorAll","forEach","node","classList","remove","add","id","onClick","mouseleave","toElement","icon","closest","addEventListener","nodeCleanup","events","entries","event","handler","removeEventListener","unmount","fn"],"sources":["../../../../src/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js"],"sourcesContent":["import { getComponentId } from '../../../helpers';\nimport { EDITOR_MODE_HIGHLIGHT_CLASS, EDITOR_MODE_ICON_CLASS } from '../constants';\n\nconst addEditorModeEventListeners = ({ ref, name, adminHref, type, setLogoProps }) => {\n // ignore start tags and if parent not found\n if (type !== 'end' || !ref.current || !ref.current.parentNode) return;\n\n const listeners = [];\n\n const siblings = ref.current.parentNode.children;\n\n const foundChildren = [];\n let foundStart = false;\n // eslint-disable-next-line no-restricted-syntax, no-unused-vars\n for (const child of siblings) {\n if (!foundStart) {\n // find start tag\n if (child.getAttribute('pb-component-name') === name) {\n foundStart = true;\n }\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (child === ref.current) {\n // end tag found\n break;\n }\n\n foundChildren.push(child); // all nodes between start and end tags - PB component nodes\n }\n\n const cleanUpFunctions = Object.values(siblings).map(childNode => {\n const componentId = getComponentId(name);\n const clickItemId = `click-${componentId}`;\n const click = e => {\n e.stopPropagation();\n e.preventDefault();\n window.open(`${adminHref}#${componentId}`, adminHref);\n };\n const mouseenter = e => {\n e.stopPropagation();\n document.querySelectorAll(`.${EDITOR_MODE_HIGHLIGHT_CLASS}`).forEach(node => {\n node.classList.remove(EDITOR_MODE_HIGHLIGHT_CLASS);\n });\n childNode.classList.add(EDITOR_MODE_HIGHLIGHT_CLASS);\n\n setLogoProps({\n id: clickItemId,\n 'aria-label': `Edit ${name}`,\n childNode,\n onClick: click\n });\n };\n const mouseleave = e => {\n e.stopPropagation();\n if (e.toElement) {\n const icon = e.toElement.closest(`.${EDITOR_MODE_ICON_CLASS}`);\n if (icon && icon.id === clickItemId) {\n e.stopPropagation();\n return;\n }\n }\n childNode.classList.remove(EDITOR_MODE_HIGHLIGHT_CLASS);\n setLogoProps(null);\n };\n\n childNode.addEventListener('click', click); // todo: remove listener and trigger on icon click\n childNode.addEventListener('mouseenter', mouseenter);\n childNode.addEventListener('mouseleave', mouseleave);\n\n listeners.push([childNode, { click, mouseenter, mouseleave }]);\n\n const nodeCleanup = () => {\n listeners.forEach(([, events]) => {\n Object.entries(events).forEach(([event, handler]) => {\n childNode.removeEventListener(event, handler);\n });\n });\n };\n\n return nodeCleanup;\n });\n\n const unmount = () => {\n cleanUpFunctions.forEach(fn => fn());\n };\n\n return unmount;\n};\n\nexport default addEditorModeEventListeners;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"add-editor-mode-event-listeners.js","names":["getComponentId","EDITOR_MODE_HIGHLIGHT_CLASS","EDITOR_MODE_ICON_CLASS","addEditorModeEventListeners","ref","name","adminHref","type","setLogoProps","current","parentNode","listeners","siblings","children","foundChildren","foundStart","child","getAttribute","push","cleanUpFunctions","Object","values","map","childNode","componentId","clickItemId","click","e","stopPropagation","preventDefault","window","open","mouseenter","document","querySelectorAll","forEach","node","classList","remove","add","id","onClick","mouseleave","toElement","icon","closest","addEventListener","nodeCleanup","events","entries","event","handler","removeEventListener","unmount","fn"],"sources":["../../../../src/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js"],"sourcesContent":["import { getComponentId } from '../../../helpers';\nimport { EDITOR_MODE_HIGHLIGHT_CLASS, EDITOR_MODE_ICON_CLASS } from '../constants';\n\nconst addEditorModeEventListeners = ({ ref, name, adminHref, type, setLogoProps }) => {\n // ignore start tags and if parent not found\n if (type !== 'end' || !ref.current || !ref.current.parentNode) return;\n\n const listeners = [];\n\n const siblings = ref.current.parentNode.children;\n\n const foundChildren = [];\n let foundStart = false;\n // eslint-disable-next-line no-restricted-syntax, no-unused-vars\n for (const child of siblings) {\n if (!foundStart) {\n // find start tag\n if (child.getAttribute('pb-component-name') === name) {\n foundStart = true;\n }\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (child === ref.current) {\n // end tag found\n break;\n }\n\n foundChildren.push(child); // all nodes between start and end tags - PB component nodes\n }\n\n const cleanUpFunctions = Object.values(siblings).map(childNode => {\n const componentId = getComponentId(name);\n const clickItemId = `click-${componentId}`;\n const click = e => {\n e.stopPropagation();\n e.preventDefault();\n window.open(`${adminHref}#${componentId}`, adminHref);\n };\n\n const mouseenter = e => {\n e.stopPropagation();\n\n document.querySelectorAll(`.${EDITOR_MODE_HIGHLIGHT_CLASS}`).forEach(node => {\n node.classList.remove(EDITOR_MODE_HIGHLIGHT_CLASS);\n });\n childNode.classList.add(EDITOR_MODE_HIGHLIGHT_CLASS);\n\n setLogoProps({\n id: clickItemId,\n 'aria-label': `Edit ${name}`,\n childNode,\n onClick: click\n });\n };\n\n const mouseleave = e => {\n e.stopPropagation();\n if (e.toElement) {\n const icon = e.toElement.closest(`.${EDITOR_MODE_ICON_CLASS}`);\n if (icon && icon.id === clickItemId) {\n e.stopPropagation();\n return;\n }\n }\n setLogoProps(null);\n };\n\n childNode.addEventListener('click', click); // todo: remove listener and trigger on icon click\n childNode.addEventListener('mouseenter', mouseenter);\n childNode.addEventListener('mouseleave', mouseleave);\n\n listeners.push([childNode, { click, mouseenter, mouseleave }]);\n\n const nodeCleanup = () => {\n listeners.forEach(([, events]) => {\n Object.entries(events).forEach(([event, handler]) => {\n childNode.removeEventListener(event, handler);\n });\n });\n };\n\n return nodeCleanup;\n });\n\n const unmount = () => {\n cleanUpFunctions.forEach(fn => fn());\n };\n\n return unmount;\n};\n\nexport default addEditorModeEventListeners;\n"],"mappings":"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","ignoreList":[]}