@redhat-cloud-services/frontend-components-config-utilities 4.0.6 → 4.1.0

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.
@@ -0,0 +1 @@
1
+ export declare function matchNavigationRequest(url: string): boolean;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.matchNavigationRequest = matchNavigationRequest;
4
+ function matchNavigationRequest(url) {
5
+ return !!url.match(/\/api\/chrome-service\/v1\/static\/bundles-generated\.json/);
6
+ }
7
+ //# sourceMappingURL=check-outgoing-requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-outgoing-requests.js","sourceRoot":"","sources":["../../../../packages/config-utils/src/feo/check-outgoing-requests.ts"],"names":[],"mappings":";;AAAA,wDAEC;AAFD,SAAgB,sBAAsB,CAAC,GAAW;IAChD,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { FrontendCRD } from './feo-types';
2
+ export declare function readFrontendCRD(crdPath: string): FrontendCRD;
3
+ export declare function hasFEOFeaturesEnabled(crd: FrontendCRD): boolean;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.readFrontendCRD = readFrontendCRD;
30
+ exports.hasFEOFeaturesEnabled = hasFEOFeaturesEnabled;
31
+ var fs_1 = require("fs");
32
+ var js_yaml_1 = require("js-yaml");
33
+ var validate_frontend_crd_1 = __importDefault(require("./validate-frontend-crd"));
34
+ var fec_logger_1 = __importStar(require("../fec-logger"));
35
+ function readFrontendCRD(crdPath) {
36
+ try {
37
+ var file = (0, fs_1.readFileSync)(crdPath, 'utf8');
38
+ var crd = (0, js_yaml_1.load)(file);
39
+ try {
40
+ (0, validate_frontend_crd_1.default)(crd);
41
+ }
42
+ catch (error) {
43
+ (0, fec_logger_1.default)(fec_logger_1.LogType.warn, error);
44
+ }
45
+ return crd;
46
+ }
47
+ catch (error) {
48
+ throw new Error("Error reading frontend CRD at ".concat(crdPath, ": ").concat(error));
49
+ }
50
+ }
51
+ function hasFEOFeaturesEnabled(crd) {
52
+ var _a;
53
+ return ((_a = crd.objects) === null || _a === void 0 ? void 0 : _a[0].spec.feoConfigEnabled) || false;
54
+ }
55
+ //# sourceMappingURL=crd-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crd-check.js","sourceRoot":"","sources":["../../../../packages/config-utils/src/feo/crd-check.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,0CAcC;AAED,sDAEC;AAxBD,yBAAkC;AAClC,mCAA+B;AAE/B,kFAA0D;AAC1D,0DAAmD;AAEnD,SAAgB,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC;QACH,IAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAM,GAAG,GAAG,IAAA,cAAI,EAAC,IAAI,CAAgB,CAAC;QACtC,IAAI,CAAC;YACH,IAAA,+BAAmB,EAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,IAAA,oBAAS,EAAC,oBAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,wCAAiC,OAAO,eAAK,KAAK,CAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAgB;;IACpD,OAAO,CAAA,MAAA,GAAG,CAAC,OAAO,0CAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,KAAI,KAAK,CAAC;AACzD,CAAC"}
@@ -0,0 +1,116 @@
1
+ export type SupportCaseData = {
2
+ version: string;
3
+ product: string;
4
+ };
5
+ export type ChromeGlobalModuleConfig = {
6
+ supportCaseData?: SupportCaseData;
7
+ ssoScopes?: string[];
8
+ };
9
+ export type ChromePermissions = {
10
+ method: string;
11
+ apps?: string[];
12
+ args?: unknown[];
13
+ };
14
+ export type ChromeEntryModuleRoute = {
15
+ pathname: string;
16
+ exact?: boolean;
17
+ props?: object;
18
+ supportCaseData?: SupportCaseData;
19
+ permissions?: ChromePermissions;
20
+ };
21
+ export type ChromeEntryModule = {
22
+ id: string;
23
+ module: string;
24
+ routes: ChromeEntryModuleRoute[];
25
+ };
26
+ type ChromeModuleAnalytics = {
27
+ APIKey: string;
28
+ };
29
+ export type ChromeModule = {
30
+ manifestLocation: string;
31
+ defaultDocumentTitle?: string;
32
+ config?: object;
33
+ moduleConfig?: ChromeGlobalModuleConfig;
34
+ modules?: ChromeEntryModule[];
35
+ isFedramp?: boolean;
36
+ analytics?: ChromeModuleAnalytics;
37
+ };
38
+ export type ChromeModuleRegistry = {
39
+ [moduleName: string]: ChromeModule;
40
+ };
41
+ export type ChromeStaticSearchEntry = {
42
+ frontendRef: string;
43
+ id: string;
44
+ href: string;
45
+ title: string;
46
+ description: string;
47
+ alt_title?: string[];
48
+ isExternal?: boolean;
49
+ };
50
+ export type SegmentRef = {
51
+ segmentId: string;
52
+ frontendName: string;
53
+ };
54
+ export type DirectNavItem = {
55
+ id?: string;
56
+ frontendRef?: string;
57
+ href?: string;
58
+ title?: string;
59
+ expandable?: boolean;
60
+ appId?: string;
61
+ routes?: DirectNavItem[];
62
+ navItems?: DirectNavItem[];
63
+ bundleSegmentRef?: string;
64
+ segmentRef?: SegmentRef;
65
+ segmentId?: string;
66
+ position?: number;
67
+ };
68
+ export type Nav = {
69
+ title?: string;
70
+ id: string;
71
+ navItems: DirectNavItem[];
72
+ };
73
+ export type GeneratedBundles = Nav[];
74
+ export type BundleSegment = {
75
+ segmentId: string;
76
+ bundleId: string;
77
+ position: number;
78
+ navItems: DirectNavItem[];
79
+ };
80
+ export type ServiceTile = {
81
+ section: string;
82
+ group: string;
83
+ id: string;
84
+ frontendRef: string;
85
+ };
86
+ export type ServiceGroup = {
87
+ id: string;
88
+ tiles: ServiceTile[];
89
+ };
90
+ export type ServiceCategory = {
91
+ id: string;
92
+ groups: ServiceGroup[];
93
+ };
94
+ export type ChromeWidgetEntry = {
95
+ scope: string;
96
+ module: string;
97
+ frontendRef: string;
98
+ };
99
+ export type CRDObject = {
100
+ metadata: {
101
+ name: string;
102
+ };
103
+ spec: {
104
+ bundleSegments?: BundleSegment[];
105
+ navigationSegments?: DirectNavItem[];
106
+ module: ChromeModule;
107
+ searchEntries?: ChromeStaticSearchEntry[];
108
+ serviceTiles?: ServiceTile[];
109
+ widgetRegistry?: ChromeWidgetEntry[];
110
+ feoConfigEnabled?: boolean;
111
+ };
112
+ };
113
+ export type FrontendCRD = {
114
+ objects: CRDObject[];
115
+ };
116
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=feo-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feo-types.js","sourceRoot":"","sources":["../../../../packages/config-utils/src/feo/feo-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { ChromeModuleRegistry, FrontendCRD } from './feo-types';
2
+ declare function moduleInterceptor(moduleRegistry: ChromeModuleRegistry, frontendCRD: FrontendCRD): ChromeModuleRegistry;
3
+ export default moduleInterceptor;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ function moduleInterceptor(moduleRegistry, frontendCRD) {
15
+ var _a;
16
+ var moduleName = frontendCRD.objects[0].metadata.name;
17
+ return __assign(__assign({}, moduleRegistry), (_a = {}, _a[moduleName] = frontendCRD.objects[0].spec.module, _a));
18
+ }
19
+ exports.default = moduleInterceptor;
20
+ //# sourceMappingURL=module-interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-interceptor.js","sourceRoot":"","sources":["../../../../packages/config-utils/src/feo/module-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAEA,SAAS,iBAAiB,CAAC,cAAoC,EAAE,WAAwB;;IACvF,IAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACxD,6BACK,cAAc,gBAChB,UAAU,IAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,OAChD;AACJ,CAAC;AAED,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DirectNavItem, FrontendCRD, Nav } from './feo-types';
2
+ declare const substituteLocalNav: (frontendCRD: FrontendCRD, nav: Nav, bundleName: string) => DirectNavItem[];
3
+ export default substituteLocalNav;
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
26
+ if (ar || !(i in from)) {
27
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28
+ ar[i] = from[i];
29
+ }
30
+ }
31
+ return to.concat(ar || Array.prototype.slice.call(from));
32
+ };
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ function hasSegmentRef(item) {
35
+ var _a, _b;
36
+ return typeof ((_a = item === null || item === void 0 ? void 0 : item.segmentRef) === null || _a === void 0 ? void 0 : _a.segmentId) === 'string' && typeof ((_b = item === null || item === void 0 ? void 0 : item.segmentRef) === null || _b === void 0 ? void 0 : _b.frontendName) === 'string';
37
+ }
38
+ var bundleSegmentsCache = {};
39
+ var navSegmentCache = {};
40
+ var getBundleSegments = function (segmentCache, bundleId) {
41
+ return Object.values(segmentCache)
42
+ .filter(function (segment) { return segment.bundleId === bundleId; })
43
+ .reduce(function (acc, curr) {
44
+ acc[curr.segmentId] = curr;
45
+ return acc;
46
+ }, {});
47
+ };
48
+ function findMatchingSegmentItem(navItems, matchId) {
49
+ var match = navItems.find(function (item) {
50
+ if (!hasSegmentRef(item)) {
51
+ return item.id === matchId;
52
+ }
53
+ return false;
54
+ });
55
+ if (!match) {
56
+ for (var i = 0; navItems[i] && !match; i += 1) {
57
+ var curr = navItems[i];
58
+ if (!hasSegmentRef(curr) && curr.routes) {
59
+ match = findMatchingSegmentItem(curr.routes, matchId);
60
+ }
61
+ else if (!hasSegmentRef(curr) && curr.navItems) {
62
+ match = findMatchingSegmentItem(curr.navItems, matchId);
63
+ }
64
+ }
65
+ }
66
+ return match;
67
+ }
68
+ function handleNestedNav(segmentMatch, originalNavItem, bSegmentCache, nSegmentCache, bundleId, currentFrontendName, parentSegment) {
69
+ var routes = segmentMatch.routes, navItems = segmentMatch.navItems, segmentItem = __rest(segmentMatch, ["routes", "navItems"]);
70
+ var parsedRoutes = originalNavItem.routes;
71
+ var parsedNavItems = originalNavItem.navItems;
72
+ if (parsedRoutes) {
73
+ parsedRoutes = parseNavItems(parsedRoutes, bSegmentCache, nSegmentCache, bundleId, currentFrontendName);
74
+ }
75
+ if (parsedNavItems) {
76
+ parsedNavItems = parseNavItems(parsedNavItems, bSegmentCache, nSegmentCache, bundleId, currentFrontendName);
77
+ }
78
+ return __assign(__assign(__assign({}, originalNavItem), segmentItem), { position: parentSegment.position, routes: parsedRoutes, navItems: parsedNavItems });
79
+ }
80
+ function findNavItemsFirstSegmentIndex(navItems, frontendName) {
81
+ return navItems.findIndex(function (item) {
82
+ return hasSegmentRef(item) && item.segmentRef.frontendName === frontendName;
83
+ });
84
+ }
85
+ function findSegmentSequenceLength(navItems, sequenceStartIndex, sementId, frontendName) {
86
+ var _a;
87
+ var finalIndex = sequenceStartIndex;
88
+ for (var i = sequenceStartIndex; i < navItems.length; i += 1) {
89
+ var item = navItems[i];
90
+ var prev = navItems[i - 1];
91
+ if (!prev) {
92
+ finalIndex = i;
93
+ continue;
94
+ }
95
+ if (((_a = item.segmentRef) === null || _a === void 0 ? void 0 : _a.segmentId) === sementId && item.segmentRef.frontendName === frontendName) {
96
+ finalIndex = i;
97
+ }
98
+ else {
99
+ i = navItems.length;
100
+ }
101
+ }
102
+ return finalIndex - sequenceStartIndex + 1;
103
+ }
104
+ function parseNavItems(navItems, bSegmentCache, nSegmentCache, bundleId, currentFrontendName) {
105
+ var relevantSegments = getBundleSegments(bSegmentCache, bundleId);
106
+ var res = navItems.map(function (navItem) {
107
+ if (!hasSegmentRef(navItem) && navItem.id) {
108
+ var id = navItem.id, bundleSegmentRef = navItem.bundleSegmentRef;
109
+ if (navItem.frontendRef === currentFrontendName && bundleSegmentRef && relevantSegments[bundleSegmentRef]) {
110
+ var parentSegment = relevantSegments[bundleSegmentRef];
111
+ var segmentItemMatch = findMatchingSegmentItem(relevantSegments[bundleSegmentRef].navItems, id);
112
+ if (segmentItemMatch && !hasSegmentRef(segmentItemMatch)) {
113
+ return handleNestedNav(segmentItemMatch, navItem, bSegmentCache, nSegmentCache, bundleId, currentFrontendName, parentSegment);
114
+ }
115
+ }
116
+ }
117
+ return navItem;
118
+ });
119
+ var segmentIndex = findNavItemsFirstSegmentIndex(res, currentFrontendName);
120
+ var iterations = 0;
121
+ while (segmentIndex > -1 && iterations < 100) {
122
+ var segment = res[segmentIndex];
123
+ if (hasSegmentRef(segment)) {
124
+ var replacement = nSegmentCache[segment.segmentRef.segmentId];
125
+ if (replacement && replacement.navItems) {
126
+ var replaceLength = findSegmentSequenceLength(res, segmentIndex, segment.segmentRef.segmentId, currentFrontendName);
127
+ var nestedNavItems = replacement.navItems.map(function (navItem) {
128
+ if (navItem.routes) {
129
+ return __assign(__assign({}, navItem), { routes: parseNavItems(navItem.routes, bSegmentCache, nSegmentCache, bundleId, currentFrontendName) });
130
+ }
131
+ else if (navItem.navItems) {
132
+ return __assign(__assign({}, navItem), { navItems: parseNavItems(navItem.navItems, bSegmentCache, nSegmentCache, bundleId, currentFrontendName) });
133
+ }
134
+ return navItem;
135
+ });
136
+ res.splice.apply(res, __spreadArray([segmentIndex, replaceLength], nestedNavItems, false));
137
+ }
138
+ }
139
+ segmentIndex = findNavItemsFirstSegmentIndex(res, currentFrontendName);
140
+ iterations += 1;
141
+ }
142
+ return res;
143
+ }
144
+ var substituteLocalNav = function (frontendCRD, nav, bundleName) {
145
+ var res = [];
146
+ var bundleSegmentsCache = {};
147
+ var navSegmentCache = {};
148
+ frontendCRD.objects.forEach(function (obj) {
149
+ var bundleSegments = obj.spec.bundleSegments || [];
150
+ bundleSegments.forEach(function (bundleSegment) {
151
+ bundleSegmentsCache[bundleSegment.segmentId] = bundleSegment;
152
+ });
153
+ var navSegments = obj.spec.navigationSegments || [];
154
+ navSegments.forEach(function (navSegment) {
155
+ if (navSegment.segmentId) {
156
+ navSegmentCache[navSegment.segmentId] = navSegment;
157
+ }
158
+ });
159
+ var missingSegments = __spreadArray([], (obj.spec.bundleSegments || []), true).filter(function (segment) {
160
+ if (segment.bundleId !== bundleName) {
161
+ return false;
162
+ }
163
+ return !nav.navItems.find(function (navItem) {
164
+ return navItem.bundleSegmentRef === segment.segmentId;
165
+ });
166
+ });
167
+ var missingNavItems = missingSegments
168
+ .map(function (segment) { return segment.navItems.map(function (navItem) { return (__assign(__assign({}, navItem), { position: segment.position })); }); })
169
+ .flat();
170
+ var parseInput = __spreadArray(__spreadArray([], nav.navItems, true), missingNavItems, true);
171
+ res = parseNavItems(parseInput, bundleSegmentsCache, navSegmentCache, bundleName, obj.metadata.name);
172
+ });
173
+ res.sort(function (a, b) {
174
+ if (typeof a.position !== 'number' || typeof b.position !== 'number') {
175
+ return 0;
176
+ }
177
+ return a.position - b.position;
178
+ });
179
+ return res;
180
+ };
181
+ exports.default = substituteLocalNav;
182
+ //# sourceMappingURL=navigation-interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-interceptor.js","sourceRoot":"","sources":["../../../../packages/config-utils/src/feo/navigation-interceptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ChromeStaticSearchEntry, FrontendCRD } from './feo-types';
2
+ declare function searchInterceptor(staticSearchIndex: ChromeStaticSearchEntry[], frontendCRD: FrontendCRD): ChromeStaticSearchEntry[];
3
+ export default searchInterceptor;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ function searchInterceptor(staticSearchIndex, frontendCRD) {
13
+ var _a;
14
+ var frontendRef = frontendCRD.objects[0].metadata.name;
15
+ var result = staticSearchIndex.filter(function (entry) { return entry.frontendRef !== frontendRef; });
16
+ return __spreadArray(__spreadArray([], result, true), ((_a = frontendCRD.objects[0].spec.searchEntries) !== null && _a !== void 0 ? _a : []), true);
17
+ }
18
+ exports.default = searchInterceptor;
19
+ //# sourceMappingURL=search-interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-interceptor.js","sourceRoot":"","sources":["../../../../packages/config-utils/src/feo/search-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,SAAS,iBAAiB,CAAC,iBAA4C,EAAE,WAAwB;;IAC/F,IAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACzD,IAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,WAAW,KAAK,WAAW,EAAjC,CAAiC,CAAC,CAAC;IACtF,uCAAW,MAAM,SAAK,CAAC,MAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,mCAAI,EAAE,CAAC,QAAE;AAC3E,CAAC;AAED,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { FrontendCRD, ServiceCategory } from './feo-types';
2
+ declare function serviceTilesInterceptor(serviceCategories: ServiceCategory[], frontendCrd: FrontendCRD): ServiceCategory[];
3
+ export default serviceTilesInterceptor;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ function serviceTilesInterceptor(serviceCategories, frontendCrd) {
24
+ var _a, _b;
25
+ var frontendRef = frontendCrd.objects[0].metadata.name;
26
+ var result = __spreadArray([], serviceCategories, true);
27
+ var frontendCategories = (_b = (_a = frontendCrd.objects[0].spec.serviceTiles) === null || _a === void 0 ? void 0 : _a.reduce(function (acc, tile) {
28
+ var section = tile.section;
29
+ var group = tile.group;
30
+ if (!acc[section]) {
31
+ acc[section] = {};
32
+ }
33
+ if (!acc[section][group]) {
34
+ acc[section][group] = [];
35
+ }
36
+ acc[section][group].push(__assign({}, tile));
37
+ return acc;
38
+ }, {})) !== null && _b !== void 0 ? _b : {};
39
+ result = result.map(function (category) {
40
+ var newGroups = category.groups.map(function (group) {
41
+ var _a, _b;
42
+ var newTiles = group.tiles.filter(function (tile) { return tile.frontendRef !== frontendRef; });
43
+ return __assign(__assign({}, group), { tiles: __spreadArray(__spreadArray([], newTiles, true), ((_b = (_a = frontendCategories[category.id]) === null || _a === void 0 ? void 0 : _a[group.id]) !== null && _b !== void 0 ? _b : []), true) });
44
+ });
45
+ return __assign(__assign({}, category), { groups: newGroups });
46
+ });
47
+ return result;
48
+ }
49
+ exports.default = serviceTilesInterceptor;
50
+ //# sourceMappingURL=service-tiles-interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-tiles-interceptor.js","sourceRoot":"","sources":["../../../../packages/config-utils/src/feo/service-tiles-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,uBAAuB,CAAC,iBAAoC,EAAE,WAAwB;;IAC7F,IAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACzD,IAAI,MAAM,qBAAO,iBAAiB,OAAC,CAAC;IAEpC,IAAM,kBAAkB,GACtB,MAAA,MAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,0CAAE,MAAM,CAE7C,UAAC,GAAG,EAAE,IAAI;QACX,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,cAAM,IAAI,EAAG,CAAC;QACtC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,mCAAI,EAAE,CAAC;IAEf,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,QAAQ;QAC3B,IAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK;;YAC1C,IAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,WAAW,KAAK,WAAW,EAAhC,CAAgC,CAAC,CAAC;YAChF,6BACK,KAAK,KACR,KAAK,kCAAM,QAAQ,SAAK,CAAC,MAAA,MAAA,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,0CAAG,KAAK,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC,WAC3E;QACJ,CAAC,CAAC,CAAC;QACH,6BACK,QAAQ,KACX,MAAM,EAAE,SAAS,IACjB;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,kBAAe,uBAAuB,CAAC"}