@ez-aem/policies
Version:
Easily Manage AEM Policies and Style System with EZ-AEM Policies.
54 lines (53 loc) • 2.4 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PagePolicy = void 0;
var lodash_1 = require("lodash");
var jcrPrimary = { "@jcr:primaryType": "nt:unstructured" };
var PagePolicy = (function () {
function PagePolicy(options, children, policies) {
this["@jcr:primaryType"] = "nt:unstructured";
this["@sling:resourceType"] = "wcm/core/components/policies/mappings";
if (options && options["@cq:policy"])
this["@cq:policy"] = options["@cq:policy"];
if (children && typeof children === "object") {
for (var child in children) {
this[child] = children[child];
}
}
if (options === null || options === void 0 ? void 0 : options.childPolicies) {
var childPolicies_1 = {};
var childPolicy_1 = __assign(__assign({}, jcrPrimary), { "@sling:resourceType": this["@sling:resourceType"] });
policies
.filter(function (policy) { return policy.policy === options.childPolicies; })
.forEach(function (policy) {
if (policy["@cq:policy"]) {
var policyNodes_1 = {};
var resourceType = policy.component;
resourceType.split("/").reverse().forEach(function (node, index) {
var _a;
if (index === 0)
policyNodes_1[node] = __assign(__assign({}, childPolicy_1), { "@cq:policy": policy["@cq:policy"] });
else
policyNodes_1 = (_a = {}, _a[node] = __assign(__assign({}, jcrPrimary), policyNodes_1), _a);
});
childPolicies_1 = (0, lodash_1.merge)({}, childPolicies_1, policyNodes_1);
}
});
for (var child in childPolicies_1)
this[child] = childPolicies_1[child];
}
}
return PagePolicy;
}());
exports.PagePolicy = PagePolicy;