UNPKG

@ez-aem/policies

Version:

Easily Manage AEM Policies and Style System with EZ-AEM Policies.

54 lines (53 loc) 2.4 kB
"use strict"; 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;