@blaze-cms/react-page-builder 0.146.0-node18-core-styles-tooltips.30 → 0.146.0-node18-core-styles-tooltips.32
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.
- package/CHANGELOG.md +20 -0
- package/lib/components/DataSummary/DataSummaryFactory.js +2 -1
- package/lib/components/DataSummary/DataSummaryFactory.js.map +1 -1
- package/lib/components/DataSummary/helpers/get-record-id.js +23 -0
- package/lib/components/DataSummary/helpers/get-record-id.js.map +1 -0
- package/lib/components/DataSummary/helpers/index.js +7 -0
- package/lib/components/DataSummary/helpers/index.js.map +1 -1
- package/lib/components/MenuItem/helpers/inject-helper-into-template.js +17 -2
- package/lib/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -1
- package/lib-es/components/DataSummary/DataSummaryFactory.js +3 -2
- package/lib-es/components/DataSummary/DataSummaryFactory.js.map +1 -1
- package/lib-es/components/DataSummary/helpers/get-record-id.js +14 -0
- package/lib-es/components/DataSummary/helpers/get-record-id.js.map +1 -0
- package/lib-es/components/DataSummary/helpers/index.js +2 -1
- package/lib-es/components/DataSummary/helpers/index.js.map +1 -1
- package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js +14 -2
- package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -1
- package/package.json +4 -4
- package/src/components/DataSummary/DataSummaryFactory.js +4 -2
- package/src/components/DataSummary/helpers/get-record-id.js +14 -0
- package/src/components/DataSummary/helpers/index.js +3 -1
- package/src/components/MenuItem/helpers/inject-helper-into-template.js +12 -2
- package/tests/unit/src/components/DataSummary/__snapshots__/DataSummaryFactory.test.js.snap +1 -5
- package/tests/unit/src/components/DataSummary/helpers/get-record-id.test.js +108 -0
- package/tests/unit/src/components/MenuItem/helpers/inject-helper-into-template.test.js +44 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,26 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.146.0-node18-core-styles-tooltips.32](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-core-styles-tooltips.31...v0.146.0-node18-core-styles-tooltips.32) (2025-11-26)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.146.0-node18-core-styles-tooltips.31](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-core-styles-tooltips.30...v0.146.0-node18-core-styles-tooltips.31) (2025-11-26)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* added handlebar prop validation ([#5014](https://github.com/thebyte9/blaze/issues/5014)) ([f949bc5](https://github.com/thebyte9/blaze/commit/f949bc5d949d9a33c7aef8485e1fe13f48e79d28))
|
|
20
|
+
* fixed lint on handlebar inject test ([#5018](https://github.com/thebyte9/blaze/issues/5018)) ([c57f06c](https://github.com/thebyte9/blaze/commit/c57f06c03b095dd4e5f0683d9fcf94a22d80c592))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
6
26
|
# [0.146.0-node18-core-styles-tooltips.30](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-core-styles-tooltips.29...v0.146.0-node18-core-styles-tooltips.30) (2025-11-25)
|
|
7
27
|
|
|
8
28
|
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
@@ -46,8 +46,10 @@ var DataSummaryFactory = function DataSummaryFactory(_ref) {
|
|
|
46
46
|
data = _useQuery.data,
|
|
47
47
|
error = _useQuery.error,
|
|
48
48
|
loading = _useQuery.loading;
|
|
49
|
+
var recordId = (0, _helpers2.getRecordId)(entityForQuery, dataRecordId, parent);
|
|
49
50
|
var _useContext = (0, _react.useContext)(_nextjsComponents.MainContext),
|
|
50
51
|
isPreview = _useContext.isPreview;
|
|
52
|
+
if (!recordId) return null;
|
|
51
53
|
if (loading) return '';
|
|
52
54
|
if (error) return error.message;
|
|
53
55
|
if (!data) return null;
|
|
@@ -56,7 +58,6 @@ var DataSummaryFactory = function DataSummaryFactory(_ref) {
|
|
|
56
58
|
var linkProps = (0, _helpers2.getLinkProps)(propsToDisplay);
|
|
57
59
|
var propsQueryString = (0, _helpers.buildPropsQuery)(data, propsToDisplayValues, null, linkProps);
|
|
58
60
|
var dataSummaryQuery = (0, _helpers2.getDataSummaryQuery)(data, isPreview, propsQueryString);
|
|
59
|
-
var recordId = dataRecordId[0] || parent.itemId;
|
|
60
61
|
var isSlider = variant === 'slideSummary';
|
|
61
62
|
return /*#__PURE__*/_react["default"].createElement(_DataSummaryRender["default"], {
|
|
62
63
|
recordId: recordId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSummaryFactory.js","names":["_react","_interopRequireWildcard","require","_client","_propTypes","_interopRequireDefault","_nextjsComponents","_query","_helpers","_helpers2","_DataSummaryRender","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DataSummaryFactory","_ref","entity","dataRecordId","propsToDisplay","type","useSelectedEntity","elementTitle","modifier","headingStyle","loopProperties","loopLimit","variant","VariantComponent","parent","entityForQuery","itemEntity","_useQuery","useQuery","getSingleEntitySchema","variables","id","data","error","loading","_useContext","useContext","MainContext","isPreview","message","length","propsToDisplayValues","checkPropsToUse","linkProps","getLinkProps","propsQueryString","buildPropsQuery","dataSummaryQuery","getDataSummaryQuery","
|
|
1
|
+
{"version":3,"file":"DataSummaryFactory.js","names":["_react","_interopRequireWildcard","require","_client","_propTypes","_interopRequireDefault","_nextjsComponents","_query","_helpers","_helpers2","_DataSummaryRender","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DataSummaryFactory","_ref","entity","dataRecordId","propsToDisplay","type","useSelectedEntity","elementTitle","modifier","headingStyle","loopProperties","loopLimit","variant","VariantComponent","parent","entityForQuery","itemEntity","_useQuery","useQuery","getSingleEntitySchema","variables","id","data","error","loading","recordId","getRecordId","_useContext","useContext","MainContext","isPreview","message","length","propsToDisplayValues","checkPropsToUse","linkProps","getLinkProps","propsQueryString","buildPropsQuery","dataSummaryQuery","getDataSummaryQuery","isSlider","createElement","query","htmlTag","propTypes","PropTypes","object","isRequired","string","array","bool","number","func","defaultProps","_default","exports"],"sources":["../../../src/components/DataSummary/DataSummaryFactory.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { getSingleEntitySchema } from '../../application/query';\nimport { buildPropsQuery, checkPropsToUse } from '../../helpers';\nimport { getDataSummaryQuery, getLinkProps, getRecordId } from './helpers';\nimport DataSummaryRender from './DataSummaryRender';\n\nconst DataSummaryFactory = ({\n entity,\n dataRecordId,\n propsToDisplay,\n type,\n useSelectedEntity,\n elementTitle,\n modifier,\n headingStyle,\n loopProperties,\n loopLimit,\n variant,\n VariantComponent,\n parent\n}) => {\n const entityForQuery = useSelectedEntity ? entity : parent.itemEntity;\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entityForQuery }\n });\n\n const recordId = getRecordId(entityForQuery, dataRecordId, parent);\n const { isPreview } = useContext(MainContext);\n\n if (!recordId) return null;\n if (loading) return '';\n if (error) return error.message;\n if (!data) return null;\n if (!propsToDisplay || !propsToDisplay.length) return null;\n const propsToDisplayValues = checkPropsToUse(propsToDisplay);\n const linkProps = getLinkProps(propsToDisplay);\n const propsQueryString = buildPropsQuery(data, propsToDisplayValues, null, linkProps);\n const dataSummaryQuery = getDataSummaryQuery(data, isPreview, propsQueryString);\n const isSlider = variant === 'slideSummary';\n\n return (\n <DataSummaryRender\n recordId={recordId}\n propsToDisplay={propsToDisplay}\n loopProperties={loopProperties}\n loopLimit={loopLimit}\n query={dataSummaryQuery}\n type={type}\n elementTitle={elementTitle}\n modifier={modifier}\n htmlTag={headingStyle}\n variant={variant}\n VariantComponent={VariantComponent}\n isSlider={isSlider}\n />\n );\n};\n\nDataSummaryFactory.propTypes = {\n parent: PropTypes.object.isRequired,\n type: PropTypes.string,\n dataRecordId: PropTypes.array,\n propsToDisplay: PropTypes.array,\n entity: PropTypes.string,\n useSelectedEntity: PropTypes.bool,\n elementTitle: PropTypes.string,\n modifier: PropTypes.string,\n headingStyle: PropTypes.string,\n loopProperties: PropTypes.array,\n loopLimit: PropTypes.number,\n variant: PropTypes.string,\n VariantComponent: PropTypes.func\n};\n\nDataSummaryFactory.defaultProps = {\n type: 'text',\n dataRecordId: [],\n propsToDisplay: [],\n useSelectedEntity: true,\n entity: '',\n elementTitle: '',\n modifier: '',\n headingStyle: 'h2',\n loopProperties: [],\n loopLimit: 0,\n variant: null,\n VariantComponent: null\n};\n\nexport default DataSummaryFactory;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _coreAuthUi = require("@blaze-cms/core-auth-ui");
|
|
11
|
+
var getRecordId = function getRecordId(entityForQuery, dataRecordId, parent) {
|
|
12
|
+
var _dataRecordId = (0, _slicedToArray2["default"])(dataRecordId, 1),
|
|
13
|
+
recordId = _dataRecordId[0];
|
|
14
|
+
var foundUserId;
|
|
15
|
+
if (entityForQuery === 'user' && !recordId) {
|
|
16
|
+
var _checkIfLoggedIn = (0, _coreAuthUi.checkIfLoggedIn)(),
|
|
17
|
+
userId = _checkIfLoggedIn.id;
|
|
18
|
+
foundUserId = userId;
|
|
19
|
+
}
|
|
20
|
+
return foundUserId || recordId || parent && parent.itemId;
|
|
21
|
+
};
|
|
22
|
+
var _default = exports["default"] = getRecordId;
|
|
23
|
+
//# sourceMappingURL=get-record-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-record-id.js","names":["_coreAuthUi","require","getRecordId","entityForQuery","dataRecordId","parent","_dataRecordId","_slicedToArray2","recordId","foundUserId","_checkIfLoggedIn","checkIfLoggedIn","userId","id","itemId","_default","exports"],"sources":["../../../../src/components/DataSummary/helpers/get-record-id.js"],"sourcesContent":["import { checkIfLoggedIn } from '@blaze-cms/core-auth-ui';\n\nconst getRecordId = (entityForQuery, dataRecordId, parent) => {\n const [recordId] = dataRecordId;\n let foundUserId;\n\n if (entityForQuery === 'user' && !recordId) {\n const { id: userId } = checkIfLoggedIn();\n foundUserId = userId;\n }\n return foundUserId || recordId || (parent && parent.itemId);\n};\n\nexport default getRecordId;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,cAAc,EAAEC,YAAY,EAAEC,MAAM,EAAK;EAC5D,IAAAC,aAAA,OAAAC,eAAA,aAAmBH,YAAY;IAAxBI,QAAQ,GAAAF,aAAA;EACf,IAAIG,WAAW;EAEf,IAAIN,cAAc,KAAK,MAAM,IAAI,CAACK,QAAQ,EAAE;IAC1C,IAAAE,gBAAA,GAAuB,IAAAC,2BAAe,EAAC,CAAC;MAA5BC,MAAM,GAAAF,gBAAA,CAAVG,EAAE;IACVJ,WAAW,GAAGG,MAAM;EACtB;EACA,OAAOH,WAAW,IAAID,QAAQ,IAAKH,MAAM,IAAIA,MAAM,CAACS,MAAO;AAC7D,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEad,WAAW","ignoreList":[]}
|
|
@@ -41,6 +41,12 @@ Object.defineProperty(exports, "getLinkToPublishedContent", {
|
|
|
41
41
|
return _getLinkToPublishedContent["default"];
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
|
+
Object.defineProperty(exports, "getRecordId", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function get() {
|
|
47
|
+
return _getRecordId["default"];
|
|
48
|
+
}
|
|
49
|
+
});
|
|
44
50
|
Object.defineProperty(exports, "parseBooleanValues", {
|
|
45
51
|
enumerable: true,
|
|
46
52
|
get: function get() {
|
|
@@ -61,4 +67,5 @@ var _buildLoopPropsContent = _interopRequireDefault(require("./build-loop-props-
|
|
|
61
67
|
var _parseBooleanValues = _interopRequireDefault(require("./parse-boolean-values"));
|
|
62
68
|
var _getLinkBasedOnValue = _interopRequireDefault(require("./get-link-based-on-value"));
|
|
63
69
|
var _getLinkProps = _interopRequireDefault(require("./get-link-props"));
|
|
70
|
+
var _getRecordId = _interopRequireDefault(require("./get-record-id"));
|
|
64
71
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_getDataSummaryQuery","_interopRequireDefault","require","_buildPropsToDisplayWithContent","_getLinkToPublishedContent","_stripSummaryPropsContent","_buildLoopPropsContent","_parseBooleanValues","_getLinkBasedOnValue","_getLinkProps"],"sources":["../../../../src/components/DataSummary/helpers/index.js"],"sourcesContent":["import getDataSummaryQuery from './get-data-summary-query';\nimport buildPropsToDisplayWithContent from './build-props-to-display-with-content';\nimport getLinkToPublishedContent from './get-link-to-published-content';\nimport stripSummaryPropsContent from './strip-summary-props-content';\nimport buildLoopPropsContent from './build-loop-props-content';\nimport parseBooleanValues from './parse-boolean-values';\nimport getLinkBasedOnValue from './get-link-based-on-value';\nimport getLinkProps from './get-link-props';\n\nexport {\n getDataSummaryQuery,\n buildPropsToDisplayWithContent,\n getLinkToPublishedContent,\n stripSummaryPropsContent,\n buildLoopPropsContent,\n parseBooleanValues,\n getLinkBasedOnValue,\n getLinkProps\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_getDataSummaryQuery","_interopRequireDefault","require","_buildPropsToDisplayWithContent","_getLinkToPublishedContent","_stripSummaryPropsContent","_buildLoopPropsContent","_parseBooleanValues","_getLinkBasedOnValue","_getLinkProps","_getRecordId"],"sources":["../../../../src/components/DataSummary/helpers/index.js"],"sourcesContent":["import getDataSummaryQuery from './get-data-summary-query';\nimport buildPropsToDisplayWithContent from './build-props-to-display-with-content';\nimport getLinkToPublishedContent from './get-link-to-published-content';\nimport stripSummaryPropsContent from './strip-summary-props-content';\nimport buildLoopPropsContent from './build-loop-props-content';\nimport parseBooleanValues from './parse-boolean-values';\nimport getLinkBasedOnValue from './get-link-based-on-value';\nimport getLinkProps from './get-link-props';\nimport getRecordId from './get-record-id';\n\nexport {\n getDataSummaryQuery,\n buildPropsToDisplayWithContent,\n getLinkToPublishedContent,\n stripSummaryPropsContent,\n buildLoopPropsContent,\n parseBooleanValues,\n getLinkBasedOnValue,\n getLinkProps,\n getRecordId\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,+BAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,0BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,yBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,sBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,mBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,oBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,aAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,YAAA,GAAAT,sBAAA,CAAAC,OAAA","ignoreList":[]}
|
|
@@ -5,12 +5,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
|
+
require("core-js/modules/es.array.concat.js");
|
|
8
9
|
require("core-js/modules/es.regexp.exec.js");
|
|
9
10
|
require("core-js/modules/es.string.replace.js");
|
|
11
|
+
require("core-js/modules/es.string.starts-with.js");
|
|
12
|
+
require("core-js/modules/es.string.trim.js");
|
|
10
13
|
var injectHelperIntoTemplate = function injectHelperIntoTemplate(template, helper) {
|
|
11
14
|
if (!helper || !template) return template;
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
|
|
16
|
+
// Inject helper into triple-stash expressions unless they are block/closing tags
|
|
17
|
+
var result = template.replace(/{{{([^{}]+)}}}/g, function (match, inner) {
|
|
18
|
+
var trimmed = inner.trim();
|
|
19
|
+
if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else
|
|
20
|
+
return "{{{".concat(helper, " ").concat(inner, "}}}");
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// Inject helper into double-stash expressions (excluding triple) unless block/closing tags
|
|
24
|
+
result = result.replace(/{{([^{}]+)}}(?!})/g, function (match, inner) {
|
|
25
|
+
var trimmed = inner.trim();
|
|
26
|
+
if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else
|
|
27
|
+
return "{{".concat(helper, " ").concat(inner, "}}");
|
|
28
|
+
});
|
|
14
29
|
return result;
|
|
15
30
|
};
|
|
16
31
|
var _default = exports["default"] = injectHelperIntoTemplate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-helper-into-template.js","names":["injectHelperIntoTemplate","template","helper","result","replace","concat","_default","exports"],"sources":["../../../../src/components/MenuItem/helpers/inject-helper-into-template.js"],"sourcesContent":["const injectHelperIntoTemplate = (template, helper) => {\n if (!helper || !template) return template;\n\n let result = template.replace(/{{{([^{}]+)}}}/g, `{{{${helper} $
|
|
1
|
+
{"version":3,"file":"inject-helper-into-template.js","names":["injectHelperIntoTemplate","template","helper","result","replace","match","inner","trimmed","trim","startsWith","concat","_default","exports"],"sources":["../../../../src/components/MenuItem/helpers/inject-helper-into-template.js"],"sourcesContent":["const injectHelperIntoTemplate = (template, helper) => {\n if (!helper || !template) return template;\n\n // Inject helper into triple-stash expressions unless they are block/closing tags\n let result = template.replace(/{{{([^{}]+)}}}/g, (match, inner) => {\n const trimmed = inner.trim();\n if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else\n return `{{{${helper} ${inner}}}}`;\n });\n\n // Inject helper into double-stash expressions (excluding triple) unless block/closing tags\n result = result.replace(/{{([^{}]+)}}(?!})/g, (match, inner) => {\n const trimmed = inner.trim();\n if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else\n return `{{${helper} ${inner}}}`;\n });\n\n return result;\n};\n\nexport default injectHelperIntoTemplate;\n"],"mappings":";;;;;;;;;;;;AAAA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIC,QAAQ,EAAEC,MAAM,EAAK;EACrD,IAAI,CAACA,MAAM,IAAI,CAACD,QAAQ,EAAE,OAAOA,QAAQ;;EAEzC;EACA,IAAIE,MAAM,GAAGF,QAAQ,CAACG,OAAO,CAAC,iBAAiB,EAAE,UAACC,KAAK,EAAEC,KAAK,EAAK;IACjE,IAAMC,OAAO,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC;IAC5B,IAAID,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,IAAIF,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,IAAIF,OAAO,KAAK,MAAM,EAAE,OAAOF,KAAK,CAAC,CAAC;IAC5F,aAAAK,MAAA,CAAaR,MAAM,OAAAQ,MAAA,CAAIJ,KAAK;EAC9B,CAAC,CAAC;;EAEF;EACAH,MAAM,GAAGA,MAAM,CAACC,OAAO,CAAC,oBAAoB,EAAE,UAACC,KAAK,EAAEC,KAAK,EAAK;IAC9D,IAAMC,OAAO,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC;IAC5B,IAAID,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,IAAIF,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,IAAIF,OAAO,KAAK,MAAM,EAAE,OAAOF,KAAK,CAAC,CAAC;IAC5F,YAAAK,MAAA,CAAYR,MAAM,OAAAQ,MAAA,CAAIJ,KAAK;EAC7B,CAAC,CAAC;EAEF,OAAOH,MAAM;AACf,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,cAEaZ,wBAAwB","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import { MainContext } from '@blaze-cms/nextjs-components';
|
|
5
5
|
import { getSingleEntitySchema } from '../../application/query';
|
|
6
6
|
import { buildPropsQuery, checkPropsToUse } from '../../helpers';
|
|
7
|
-
import { getDataSummaryQuery, getLinkProps } from './helpers';
|
|
7
|
+
import { getDataSummaryQuery, getLinkProps, getRecordId } from './helpers';
|
|
8
8
|
import DataSummaryRender from './DataSummaryRender';
|
|
9
9
|
const DataSummaryFactory = ({
|
|
10
10
|
entity,
|
|
@@ -31,9 +31,11 @@ const DataSummaryFactory = ({
|
|
|
31
31
|
id: entityForQuery
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
|
+
const recordId = getRecordId(entityForQuery, dataRecordId, parent);
|
|
34
35
|
const {
|
|
35
36
|
isPreview
|
|
36
37
|
} = useContext(MainContext);
|
|
38
|
+
if (!recordId) return null;
|
|
37
39
|
if (loading) return '';
|
|
38
40
|
if (error) return error.message;
|
|
39
41
|
if (!data) return null;
|
|
@@ -42,7 +44,6 @@ const DataSummaryFactory = ({
|
|
|
42
44
|
const linkProps = getLinkProps(propsToDisplay);
|
|
43
45
|
const propsQueryString = buildPropsQuery(data, propsToDisplayValues, null, linkProps);
|
|
44
46
|
const dataSummaryQuery = getDataSummaryQuery(data, isPreview, propsQueryString);
|
|
45
|
-
const recordId = dataRecordId[0] || parent.itemId;
|
|
46
47
|
const isSlider = variant === 'slideSummary';
|
|
47
48
|
return /*#__PURE__*/React.createElement(DataSummaryRender, {
|
|
48
49
|
recordId: recordId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSummaryFactory.js","names":["React","useContext","useQuery","PropTypes","MainContext","getSingleEntitySchema","buildPropsQuery","checkPropsToUse","getDataSummaryQuery","getLinkProps","DataSummaryRender","DataSummaryFactory","entity","dataRecordId","propsToDisplay","type","useSelectedEntity","elementTitle","modifier","headingStyle","loopProperties","loopLimit","variant","VariantComponent","parent","entityForQuery","itemEntity","data","error","loading","variables","id","isPreview","message","length","propsToDisplayValues","linkProps","propsQueryString","dataSummaryQuery","
|
|
1
|
+
{"version":3,"file":"DataSummaryFactory.js","names":["React","useContext","useQuery","PropTypes","MainContext","getSingleEntitySchema","buildPropsQuery","checkPropsToUse","getDataSummaryQuery","getLinkProps","getRecordId","DataSummaryRender","DataSummaryFactory","entity","dataRecordId","propsToDisplay","type","useSelectedEntity","elementTitle","modifier","headingStyle","loopProperties","loopLimit","variant","VariantComponent","parent","entityForQuery","itemEntity","data","error","loading","variables","id","recordId","isPreview","message","length","propsToDisplayValues","linkProps","propsQueryString","dataSummaryQuery","isSlider","createElement","query","htmlTag","propTypes","object","isRequired","string","array","bool","number","func","defaultProps"],"sources":["../../../src/components/DataSummary/DataSummaryFactory.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { getSingleEntitySchema } from '../../application/query';\nimport { buildPropsQuery, checkPropsToUse } from '../../helpers';\nimport { getDataSummaryQuery, getLinkProps, getRecordId } from './helpers';\nimport DataSummaryRender from './DataSummaryRender';\n\nconst DataSummaryFactory = ({\n entity,\n dataRecordId,\n propsToDisplay,\n type,\n useSelectedEntity,\n elementTitle,\n modifier,\n headingStyle,\n loopProperties,\n loopLimit,\n variant,\n VariantComponent,\n parent\n}) => {\n const entityForQuery = useSelectedEntity ? entity : parent.itemEntity;\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entityForQuery }\n });\n\n const recordId = getRecordId(entityForQuery, dataRecordId, parent);\n const { isPreview } = useContext(MainContext);\n\n if (!recordId) return null;\n if (loading) return '';\n if (error) return error.message;\n if (!data) return null;\n if (!propsToDisplay || !propsToDisplay.length) return null;\n const propsToDisplayValues = checkPropsToUse(propsToDisplay);\n const linkProps = getLinkProps(propsToDisplay);\n const propsQueryString = buildPropsQuery(data, propsToDisplayValues, null, linkProps);\n const dataSummaryQuery = getDataSummaryQuery(data, isPreview, propsQueryString);\n const isSlider = variant === 'slideSummary';\n\n return (\n <DataSummaryRender\n recordId={recordId}\n propsToDisplay={propsToDisplay}\n loopProperties={loopProperties}\n loopLimit={loopLimit}\n query={dataSummaryQuery}\n type={type}\n elementTitle={elementTitle}\n modifier={modifier}\n htmlTag={headingStyle}\n variant={variant}\n VariantComponent={VariantComponent}\n isSlider={isSlider}\n />\n );\n};\n\nDataSummaryFactory.propTypes = {\n parent: PropTypes.object.isRequired,\n type: PropTypes.string,\n dataRecordId: PropTypes.array,\n propsToDisplay: PropTypes.array,\n entity: PropTypes.string,\n useSelectedEntity: PropTypes.bool,\n elementTitle: PropTypes.string,\n modifier: PropTypes.string,\n headingStyle: PropTypes.string,\n loopProperties: PropTypes.array,\n loopLimit: PropTypes.number,\n variant: PropTypes.string,\n VariantComponent: PropTypes.func\n};\n\nDataSummaryFactory.defaultProps = {\n type: 'text',\n dataRecordId: [],\n propsToDisplay: [],\n useSelectedEntity: true,\n entity: '',\n elementTitle: '',\n modifier: '',\n headingStyle: 'h2',\n loopProperties: [],\n loopLimit: 0,\n variant: null,\n VariantComponent: null\n};\n\nexport default DataSummaryFactory;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { checkIfLoggedIn } from '@blaze-cms/core-auth-ui';
|
|
2
|
+
const getRecordId = (entityForQuery, dataRecordId, parent) => {
|
|
3
|
+
const [recordId] = dataRecordId;
|
|
4
|
+
let foundUserId;
|
|
5
|
+
if (entityForQuery === 'user' && !recordId) {
|
|
6
|
+
const {
|
|
7
|
+
id: userId
|
|
8
|
+
} = checkIfLoggedIn();
|
|
9
|
+
foundUserId = userId;
|
|
10
|
+
}
|
|
11
|
+
return foundUserId || recordId || parent && parent.itemId;
|
|
12
|
+
};
|
|
13
|
+
export default getRecordId;
|
|
14
|
+
//# sourceMappingURL=get-record-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-record-id.js","names":["checkIfLoggedIn","getRecordId","entityForQuery","dataRecordId","parent","recordId","foundUserId","id","userId","itemId"],"sources":["../../../../src/components/DataSummary/helpers/get-record-id.js"],"sourcesContent":["import { checkIfLoggedIn } from '@blaze-cms/core-auth-ui';\n\nconst getRecordId = (entityForQuery, dataRecordId, parent) => {\n const [recordId] = dataRecordId;\n let foundUserId;\n\n if (entityForQuery === 'user' && !recordId) {\n const { id: userId } = checkIfLoggedIn();\n foundUserId = userId;\n }\n return foundUserId || recordId || (parent && parent.itemId);\n};\n\nexport default getRecordId;\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,yBAAyB;AAEzD,MAAMC,WAAW,GAAGA,CAACC,cAAc,EAAEC,YAAY,EAAEC,MAAM,KAAK;EAC5D,MAAM,CAACC,QAAQ,CAAC,GAAGF,YAAY;EAC/B,IAAIG,WAAW;EAEf,IAAIJ,cAAc,KAAK,MAAM,IAAI,CAACG,QAAQ,EAAE;IAC1C,MAAM;MAAEE,EAAE,EAAEC;IAAO,CAAC,GAAGR,eAAe,CAAC,CAAC;IACxCM,WAAW,GAAGE,MAAM;EACtB;EACA,OAAOF,WAAW,IAAID,QAAQ,IAAKD,MAAM,IAAIA,MAAM,CAACK,MAAO;AAC7D,CAAC;AAED,eAAeR,WAAW","ignoreList":[]}
|
|
@@ -6,5 +6,6 @@ import buildLoopPropsContent from './build-loop-props-content';
|
|
|
6
6
|
import parseBooleanValues from './parse-boolean-values';
|
|
7
7
|
import getLinkBasedOnValue from './get-link-based-on-value';
|
|
8
8
|
import getLinkProps from './get-link-props';
|
|
9
|
-
|
|
9
|
+
import getRecordId from './get-record-id';
|
|
10
|
+
export { getDataSummaryQuery, buildPropsToDisplayWithContent, getLinkToPublishedContent, stripSummaryPropsContent, buildLoopPropsContent, parseBooleanValues, getLinkBasedOnValue, getLinkProps, getRecordId };
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getDataSummaryQuery","buildPropsToDisplayWithContent","getLinkToPublishedContent","stripSummaryPropsContent","buildLoopPropsContent","parseBooleanValues","getLinkBasedOnValue","getLinkProps"],"sources":["../../../../src/components/DataSummary/helpers/index.js"],"sourcesContent":["import getDataSummaryQuery from './get-data-summary-query';\nimport buildPropsToDisplayWithContent from './build-props-to-display-with-content';\nimport getLinkToPublishedContent from './get-link-to-published-content';\nimport stripSummaryPropsContent from './strip-summary-props-content';\nimport buildLoopPropsContent from './build-loop-props-content';\nimport parseBooleanValues from './parse-boolean-values';\nimport getLinkBasedOnValue from './get-link-based-on-value';\nimport getLinkProps from './get-link-props';\n\nexport {\n getDataSummaryQuery,\n buildPropsToDisplayWithContent,\n getLinkToPublishedContent,\n stripSummaryPropsContent,\n buildLoopPropsContent,\n parseBooleanValues,\n getLinkBasedOnValue,\n getLinkProps\n};\n"],"mappings":"AAAA,OAAOA,mBAAmB,MAAM,0BAA0B;AAC1D,OAAOC,8BAA8B,MAAM,uCAAuC;AAClF,OAAOC,yBAAyB,MAAM,iCAAiC;AACvE,OAAOC,wBAAwB,MAAM,+BAA+B;AACpE,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,OAAOC,mBAAmB,MAAM,2BAA2B;AAC3D,OAAOC,YAAY,MAAM,kBAAkB;
|
|
1
|
+
{"version":3,"file":"index.js","names":["getDataSummaryQuery","buildPropsToDisplayWithContent","getLinkToPublishedContent","stripSummaryPropsContent","buildLoopPropsContent","parseBooleanValues","getLinkBasedOnValue","getLinkProps","getRecordId"],"sources":["../../../../src/components/DataSummary/helpers/index.js"],"sourcesContent":["import getDataSummaryQuery from './get-data-summary-query';\nimport buildPropsToDisplayWithContent from './build-props-to-display-with-content';\nimport getLinkToPublishedContent from './get-link-to-published-content';\nimport stripSummaryPropsContent from './strip-summary-props-content';\nimport buildLoopPropsContent from './build-loop-props-content';\nimport parseBooleanValues from './parse-boolean-values';\nimport getLinkBasedOnValue from './get-link-based-on-value';\nimport getLinkProps from './get-link-props';\nimport getRecordId from './get-record-id';\n\nexport {\n getDataSummaryQuery,\n buildPropsToDisplayWithContent,\n getLinkToPublishedContent,\n stripSummaryPropsContent,\n buildLoopPropsContent,\n parseBooleanValues,\n getLinkBasedOnValue,\n getLinkProps,\n getRecordId\n};\n"],"mappings":"AAAA,OAAOA,mBAAmB,MAAM,0BAA0B;AAC1D,OAAOC,8BAA8B,MAAM,uCAAuC;AAClF,OAAOC,yBAAyB,MAAM,iCAAiC;AACvE,OAAOC,wBAAwB,MAAM,+BAA+B;AACpE,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,OAAOC,mBAAmB,MAAM,2BAA2B;AAC3D,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,WAAW,MAAM,iBAAiB;AAEzC,SACER,mBAAmB,EACnBC,8BAA8B,EAC9BC,yBAAyB,EACzBC,wBAAwB,EACxBC,qBAAqB,EACrBC,kBAAkB,EAClBC,mBAAmB,EACnBC,YAAY,EACZC,WAAW","ignoreList":[]}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
const injectHelperIntoTemplate = (template, helper) => {
|
|
2
2
|
if (!helper || !template) return template;
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
|
|
4
|
+
// Inject helper into triple-stash expressions unless they are block/closing tags
|
|
5
|
+
let result = template.replace(/{{{([^{}]+)}}}/g, (match, inner) => {
|
|
6
|
+
const trimmed = inner.trim();
|
|
7
|
+
if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else
|
|
8
|
+
return `{{{${helper} ${inner}}}}`;
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
// Inject helper into double-stash expressions (excluding triple) unless block/closing tags
|
|
12
|
+
result = result.replace(/{{([^{}]+)}}(?!})/g, (match, inner) => {
|
|
13
|
+
const trimmed = inner.trim();
|
|
14
|
+
if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else
|
|
15
|
+
return `{{${helper} ${inner}}}`;
|
|
16
|
+
});
|
|
5
17
|
return result;
|
|
6
18
|
};
|
|
7
19
|
export default injectHelperIntoTemplate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-helper-into-template.js","names":["injectHelperIntoTemplate","template","helper","result","replace"],"sources":["../../../../src/components/MenuItem/helpers/inject-helper-into-template.js"],"sourcesContent":["const injectHelperIntoTemplate = (template, helper) => {\n if (!helper || !template) return template;\n\n let result = template.replace(/{{{([^{}]+)}}}/g, `{{{${helper} $
|
|
1
|
+
{"version":3,"file":"inject-helper-into-template.js","names":["injectHelperIntoTemplate","template","helper","result","replace","match","inner","trimmed","trim","startsWith"],"sources":["../../../../src/components/MenuItem/helpers/inject-helper-into-template.js"],"sourcesContent":["const injectHelperIntoTemplate = (template, helper) => {\n if (!helper || !template) return template;\n\n // Inject helper into triple-stash expressions unless they are block/closing tags\n let result = template.replace(/{{{([^{}]+)}}}/g, (match, inner) => {\n const trimmed = inner.trim();\n if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else\n return `{{{${helper} ${inner}}}}`;\n });\n\n // Inject helper into double-stash expressions (excluding triple) unless block/closing tags\n result = result.replace(/{{([^{}]+)}}(?!})/g, (match, inner) => {\n const trimmed = inner.trim();\n if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else\n return `{{${helper} ${inner}}}`;\n });\n\n return result;\n};\n\nexport default injectHelperIntoTemplate;\n"],"mappings":"AAAA,MAAMA,wBAAwB,GAAGA,CAACC,QAAQ,EAAEC,MAAM,KAAK;EACrD,IAAI,CAACA,MAAM,IAAI,CAACD,QAAQ,EAAE,OAAOA,QAAQ;;EAEzC;EACA,IAAIE,MAAM,GAAGF,QAAQ,CAACG,OAAO,CAAC,iBAAiB,EAAE,CAACC,KAAK,EAAEC,KAAK,KAAK;IACjE,MAAMC,OAAO,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC;IAC5B,IAAID,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,IAAIF,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,IAAIF,OAAO,KAAK,MAAM,EAAE,OAAOF,KAAK,CAAC,CAAC;IAC5F,OAAO,MAAMH,MAAM,IAAII,KAAK,KAAK;EACnC,CAAC,CAAC;;EAEF;EACAH,MAAM,GAAGA,MAAM,CAACC,OAAO,CAAC,oBAAoB,EAAE,CAACC,KAAK,EAAEC,KAAK,KAAK;IAC9D,MAAMC,OAAO,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC;IAC5B,IAAID,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,IAAIF,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,IAAIF,OAAO,KAAK,MAAM,EAAE,OAAOF,KAAK,CAAC,CAAC;IAC5F,OAAO,KAAKH,MAAM,IAAII,KAAK,IAAI;EACjC,CAAC,CAAC;EAEF,OAAOH,MAAM;AACf,CAAC;AAED,eAAeH,wBAAwB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.146.0-node18-core-styles-tooltips.
|
|
3
|
+
"version": "0.146.0-node18-core-styles-tooltips.32",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
"@blaze-cms/core-errors": "0.146.0-node18-core-styles-tooltips.3",
|
|
32
32
|
"@blaze-cms/core-errors-ui": "0.146.0-node18-core-styles-tooltips.3",
|
|
33
33
|
"@blaze-cms/image-cdn-react": "0.3.0-alpha.7",
|
|
34
|
-
"@blaze-cms/nextjs-components": "0.146.0-node18-core-styles-tooltips.
|
|
34
|
+
"@blaze-cms/nextjs-components": "0.146.0-node18-core-styles-tooltips.32",
|
|
35
35
|
"@blaze-cms/plugin-search-ui": "0.146.0-node18-core-styles-tooltips.30",
|
|
36
36
|
"@blaze-cms/setup-ui": "0.146.0-node18-core-styles-tooltips.3",
|
|
37
37
|
"@blaze-cms/utils": "0.146.0-node18-core-styles-tooltips.30",
|
|
38
|
-
"@blaze-cms/utils-handlebars": "0.146.0-node18-core-styles-tooltips.
|
|
38
|
+
"@blaze-cms/utils-handlebars": "0.146.0-node18-core-styles-tooltips.32",
|
|
39
39
|
"@blaze-react/badge": "^0.7.0",
|
|
40
40
|
"@blaze-react/breadcrumb": "0.8.0-alpha.60",
|
|
41
41
|
"@blaze-react/button": "0.8.0-alpha.82",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"lib/*",
|
|
93
93
|
"lib-es/*"
|
|
94
94
|
],
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "4c38f5c38d8992e5bbe74a19c75fe1df58ea0a34"
|
|
96
96
|
}
|
|
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import { MainContext } from '@blaze-cms/nextjs-components';
|
|
5
5
|
import { getSingleEntitySchema } from '../../application/query';
|
|
6
6
|
import { buildPropsQuery, checkPropsToUse } from '../../helpers';
|
|
7
|
-
import { getDataSummaryQuery, getLinkProps } from './helpers';
|
|
7
|
+
import { getDataSummaryQuery, getLinkProps, getRecordId } from './helpers';
|
|
8
8
|
import DataSummaryRender from './DataSummaryRender';
|
|
9
9
|
|
|
10
10
|
const DataSummaryFactory = ({
|
|
@@ -27,7 +27,10 @@ const DataSummaryFactory = ({
|
|
|
27
27
|
variables: { id: entityForQuery }
|
|
28
28
|
});
|
|
29
29
|
|
|
30
|
+
const recordId = getRecordId(entityForQuery, dataRecordId, parent);
|
|
30
31
|
const { isPreview } = useContext(MainContext);
|
|
32
|
+
|
|
33
|
+
if (!recordId) return null;
|
|
31
34
|
if (loading) return '';
|
|
32
35
|
if (error) return error.message;
|
|
33
36
|
if (!data) return null;
|
|
@@ -36,7 +39,6 @@ const DataSummaryFactory = ({
|
|
|
36
39
|
const linkProps = getLinkProps(propsToDisplay);
|
|
37
40
|
const propsQueryString = buildPropsQuery(data, propsToDisplayValues, null, linkProps);
|
|
38
41
|
const dataSummaryQuery = getDataSummaryQuery(data, isPreview, propsQueryString);
|
|
39
|
-
const recordId = dataRecordId[0] || parent.itemId;
|
|
40
42
|
const isSlider = variant === 'slideSummary';
|
|
41
43
|
|
|
42
44
|
return (
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { checkIfLoggedIn } from '@blaze-cms/core-auth-ui';
|
|
2
|
+
|
|
3
|
+
const getRecordId = (entityForQuery, dataRecordId, parent) => {
|
|
4
|
+
const [recordId] = dataRecordId;
|
|
5
|
+
let foundUserId;
|
|
6
|
+
|
|
7
|
+
if (entityForQuery === 'user' && !recordId) {
|
|
8
|
+
const { id: userId } = checkIfLoggedIn();
|
|
9
|
+
foundUserId = userId;
|
|
10
|
+
}
|
|
11
|
+
return foundUserId || recordId || (parent && parent.itemId);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default getRecordId;
|
|
@@ -6,6 +6,7 @@ import buildLoopPropsContent from './build-loop-props-content';
|
|
|
6
6
|
import parseBooleanValues from './parse-boolean-values';
|
|
7
7
|
import getLinkBasedOnValue from './get-link-based-on-value';
|
|
8
8
|
import getLinkProps from './get-link-props';
|
|
9
|
+
import getRecordId from './get-record-id';
|
|
9
10
|
|
|
10
11
|
export {
|
|
11
12
|
getDataSummaryQuery,
|
|
@@ -15,5 +16,6 @@ export {
|
|
|
15
16
|
buildLoopPropsContent,
|
|
16
17
|
parseBooleanValues,
|
|
17
18
|
getLinkBasedOnValue,
|
|
18
|
-
getLinkProps
|
|
19
|
+
getLinkProps,
|
|
20
|
+
getRecordId
|
|
19
21
|
};
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
const injectHelperIntoTemplate = (template, helper) => {
|
|
2
2
|
if (!helper || !template) return template;
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// Inject helper into triple-stash expressions unless they are block/closing tags
|
|
5
|
+
let result = template.replace(/{{{([^{}]+)}}}/g, (match, inner) => {
|
|
6
|
+
const trimmed = inner.trim();
|
|
7
|
+
if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else
|
|
8
|
+
return `{{{${helper} ${inner}}}}`;
|
|
9
|
+
});
|
|
5
10
|
|
|
6
|
-
|
|
11
|
+
// Inject helper into double-stash expressions (excluding triple) unless block/closing tags
|
|
12
|
+
result = result.replace(/{{([^{}]+)}}(?!})/g, (match, inner) => {
|
|
13
|
+
const trimmed = inner.trim();
|
|
14
|
+
if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed === 'else') return match; // skip block helpers and else
|
|
15
|
+
return `{{${helper} ${inner}}}`;
|
|
16
|
+
});
|
|
7
17
|
|
|
8
18
|
return result;
|
|
9
19
|
};
|
|
@@ -4,8 +4,4 @@ exports[`DataSummaryFactory component should not render if no data is returned 1
|
|
|
4
4
|
|
|
5
5
|
exports[`DataSummaryFactory component should render without throwing an error for heading_large 1`] = `<DocumentFragment />`;
|
|
6
6
|
|
|
7
|
-
exports[`DataSummaryFactory component should return error message if exists 1`] =
|
|
8
|
-
<DocumentFragment>
|
|
9
|
-
No Entity
|
|
10
|
-
</DocumentFragment>
|
|
11
|
-
`;
|
|
7
|
+
exports[`DataSummaryFactory component should return error message if exists 1`] = `<DocumentFragment />`;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import getRecordId from '../../../../../../src/components/DataSummary/helpers/get-record-id';
|
|
2
|
+
|
|
3
|
+
// Mock the auth module
|
|
4
|
+
jest.mock('@blaze-cms/core-auth-ui', () => ({
|
|
5
|
+
checkIfLoggedIn: jest.fn()
|
|
6
|
+
}));
|
|
7
|
+
|
|
8
|
+
const { checkIfLoggedIn } = require('@blaze-cms/core-auth-ui');
|
|
9
|
+
|
|
10
|
+
describe('getRecordId', () => {
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
jest.clearAllMocks();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
describe('when entityForQuery is "user" and dataRecordId is empty', () => {
|
|
16
|
+
it('should return the logged-in user ID when available', () => {
|
|
17
|
+
const mockUserId = 'user-123';
|
|
18
|
+
checkIfLoggedIn.mockReturnValue({ id: mockUserId });
|
|
19
|
+
|
|
20
|
+
const result = getRecordId('user', [], { itemId: 'parent-id' });
|
|
21
|
+
|
|
22
|
+
expect(checkIfLoggedIn).toHaveBeenCalledTimes(1);
|
|
23
|
+
expect(result).toBe(mockUserId);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('should fallback to parent.itemId when user ID is null', () => {
|
|
27
|
+
checkIfLoggedIn.mockReturnValue({ id: null });
|
|
28
|
+
|
|
29
|
+
const result = getRecordId('user', [], { itemId: 'parent-id' });
|
|
30
|
+
|
|
31
|
+
expect(checkIfLoggedIn).toHaveBeenCalledTimes(1);
|
|
32
|
+
expect(result).toBe('parent-id');
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('should fallback to parent.itemId when user ID is empty string', () => {
|
|
36
|
+
checkIfLoggedIn.mockReturnValue({ id: '' });
|
|
37
|
+
|
|
38
|
+
const result = getRecordId('user', [], { itemId: 'parent-id' });
|
|
39
|
+
|
|
40
|
+
expect(checkIfLoggedIn).toHaveBeenCalledTimes(1);
|
|
41
|
+
expect(result).toBe('parent-id');
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('should fallback to parent.itemId when user ID is 0', () => {
|
|
45
|
+
checkIfLoggedIn.mockReturnValue({ id: 0 });
|
|
46
|
+
|
|
47
|
+
const result = getRecordId('user', [], { itemId: 'parent-id' });
|
|
48
|
+
|
|
49
|
+
expect(checkIfLoggedIn).toHaveBeenCalledTimes(1);
|
|
50
|
+
expect(result).toBe('parent-id');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
describe('when entityForQuery is "user" but dataRecordId has values', () => {
|
|
55
|
+
it('should return the first dataRecordId without checking user auth', () => {
|
|
56
|
+
const result = getRecordId('user', ['record-1', 'record-2'], { itemId: 'parent-id' });
|
|
57
|
+
|
|
58
|
+
expect(checkIfLoggedIn).not.toHaveBeenCalled();
|
|
59
|
+
expect(result).toBe('record-1');
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('should check logged-in user when first dataRecordId is falsy and fallback to parent.itemId', () => {
|
|
63
|
+
checkIfLoggedIn.mockReturnValue({ id: null });
|
|
64
|
+
const result = getRecordId('user', [null, 'record-2'], { itemId: 'parent-id' });
|
|
65
|
+
|
|
66
|
+
expect(checkIfLoggedIn).toHaveBeenCalledTimes(1);
|
|
67
|
+
expect(result).toBe('parent-id');
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('should check logged-in user when first dataRecordId is empty string and fallback to parent.itemId', () => {
|
|
71
|
+
checkIfLoggedIn.mockReturnValue({ id: '' });
|
|
72
|
+
const result = getRecordId('user', ['', 'record-2'], { itemId: 'parent-id' });
|
|
73
|
+
|
|
74
|
+
expect(checkIfLoggedIn).toHaveBeenCalledTimes(1);
|
|
75
|
+
expect(result).toBe('parent-id');
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
describe('when entityForQuery is not "user"', () => {
|
|
80
|
+
it('should return the first dataRecordId when available', () => {
|
|
81
|
+
const result = getRecordId('post', ['record-1', 'record-2'], { itemId: 'parent-id' });
|
|
82
|
+
|
|
83
|
+
expect(checkIfLoggedIn).not.toHaveBeenCalled();
|
|
84
|
+
expect(result).toBe('record-1');
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it('should return parent.itemId when dataRecordId is empty', () => {
|
|
88
|
+
const result = getRecordId('post', [], { itemId: 'parent-id' });
|
|
89
|
+
|
|
90
|
+
expect(checkIfLoggedIn).not.toHaveBeenCalled();
|
|
91
|
+
expect(result).toBe('parent-id');
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
it('should return parent.itemId when first dataRecordId is falsy', () => {
|
|
95
|
+
const result = getRecordId('post', [null, 'record-2'], { itemId: 'parent-id' });
|
|
96
|
+
|
|
97
|
+
expect(checkIfLoggedIn).not.toHaveBeenCalled();
|
|
98
|
+
expect(result).toBe('parent-id');
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it('should return parent.itemId when first dataRecordId is empty string', () => {
|
|
102
|
+
const result = getRecordId('post', ['', 'record-2'], { itemId: 'parent-id' });
|
|
103
|
+
|
|
104
|
+
expect(checkIfLoggedIn).not.toHaveBeenCalled();
|
|
105
|
+
expect(result).toBe('parent-id');
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
});
|
|
@@ -41,4 +41,48 @@ describe('injectHelperIntoTemplate', () => {
|
|
|
41
41
|
const result = injectHelperIntoTemplate(null, 'url_encode');
|
|
42
42
|
expect(result).toBeNull();
|
|
43
43
|
});
|
|
44
|
+
|
|
45
|
+
it('should ignore {{else}} pattern and not inject helper', () => {
|
|
46
|
+
const template = '{{#if condition}}true{{else}}false{{/if}}';
|
|
47
|
+
const expected = '{{#if condition}}true{{else}}false{{/if}}';
|
|
48
|
+
const result = injectHelperIntoTemplate(template, 'url_encode');
|
|
49
|
+
expect(result).toBe(expected);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('should ignore block helpers starting with # and not inject helper', () => {
|
|
53
|
+
const template = '{{#if currentParent.active}}Active{{/if}}';
|
|
54
|
+
const expected = '{{#if currentParent.active}}Active{{/if}}';
|
|
55
|
+
const result = injectHelperIntoTemplate(template, 'url_encode');
|
|
56
|
+
expect(result).toBe(expected);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('should ignore closing helpers starting with / and not inject helper', () => {
|
|
60
|
+
const template = '{{/each}}{{/if}}{{/unless}}';
|
|
61
|
+
const expected = '{{/each}}{{/if}}{{/unless}}';
|
|
62
|
+
const result = injectHelperIntoTemplate(template, 'url_encode');
|
|
63
|
+
expect(result).toBe(expected);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('should inject helper into regular placeholders but ignore control flow statements', () => {
|
|
67
|
+
const template = '{{#if active}}{{currentParent.name}}{{else}}{{defaultName}}{{/if}}';
|
|
68
|
+
const expected =
|
|
69
|
+
'{{#if active}}{{url_encode currentParent.name}}{{else}}{{url_encode defaultName}}{{/if}}';
|
|
70
|
+
const result = injectHelperIntoTemplate(template, 'url_encode');
|
|
71
|
+
expect(result).toBe(expected);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('should handle complex template with mixed block helpers and regular placeholders', () => {
|
|
75
|
+
const template = '{{#each items}}{{name}} - {{price}}{{else}}No items{{/each}}';
|
|
76
|
+
const expected =
|
|
77
|
+
'{{#each items}}{{url_encode name}} - {{url_encode price}}{{else}}No items{{/each}}';
|
|
78
|
+
const result = injectHelperIntoTemplate(template, 'url_encode');
|
|
79
|
+
expect(result).toBe(expected);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it('should ignore {{{else}}} in triple-stash expressions', () => {
|
|
83
|
+
const template = '{{{#if condition}}}{{{value}}}{{{else}}}default{{{/if}}}';
|
|
84
|
+
const expected = '{{{#if condition}}}{{{url_encode value}}}{{{else}}}default{{{/if}}}';
|
|
85
|
+
const result = injectHelperIntoTemplate(template, 'url_encode');
|
|
86
|
+
expect(result).toBe(expected);
|
|
87
|
+
});
|
|
44
88
|
});
|