@qrvey/widget-configurability 0.0.0-beta.4589 → 0.0.0-beta.4657
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/README.md +53 -0
- package/dist/cjs/index.js +12 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/metadata/customization-metadata.js +241 -0
- package/dist/cjs/metadata/customization-metadata.js.map +1 -0
- package/dist/cjs/metadata/index.js +11 -0
- package/dist/cjs/metadata/index.js.map +1 -0
- package/dist/cjs/metadata/labels/chart-panel.labels.js +56 -0
- package/dist/cjs/metadata/labels/chart-panel.labels.js.map +1 -0
- package/dist/cjs/metadata/labels/dashboard.labels.js +207 -0
- package/dist/cjs/metadata/labels/dashboard.labels.js.map +1 -0
- package/dist/cjs/metadata/metadata.models.js +3 -0
- package/dist/cjs/metadata/metadata.models.js.map +1 -0
- package/dist/cjs/models/remote.models.js +3 -0
- package/dist/cjs/models/remote.models.js.map +1 -0
- package/dist/cjs/models/validation.models.js +3 -0
- package/dist/cjs/models/validation.models.js.map +1 -0
- package/dist/cjs/remote/remote-customization.loader.js +213 -0
- package/dist/cjs/remote/remote-customization.loader.js.map +1 -0
- package/dist/cjs/structural-manager.js +35 -2
- package/dist/cjs/structural-manager.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/utils/defaults.helpers.js +3 -0
- package/dist/cjs/utils/defaults.helpers.js.map +1 -1
- package/dist/cjs/utils/layers.helpers.js +178 -0
- package/dist/cjs/utils/layers.helpers.js.map +1 -0
- package/dist/cjs/utils/logger.helpers.js +10 -0
- package/dist/cjs/utils/logger.helpers.js.map +1 -0
- package/dist/cjs/utils/scope.helpers.js +4 -1
- package/dist/cjs/utils/scope.helpers.js.map +1 -1
- package/dist/cjs/validation/customization.validator.js +366 -0
- package/dist/cjs/validation/customization.validator.js.map +1 -0
- package/dist/esm/index.mjs +846 -28
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/metadata.mjs +2750 -0
- package/dist/esm/metadata.mjs.map +1 -0
- package/dist/types/customization.models-CCSWjfb2.d.ts +47 -0
- package/dist/types/index.d.ts +98 -47
- package/dist/types/metadata.d.ts +59 -0
- package/package.json +7 -1
package/README.md
CHANGED
|
@@ -117,11 +117,63 @@ function buildStructure(
|
|
|
117
117
|
widget: Widget,
|
|
118
118
|
customization?: WidgetCustomization,
|
|
119
119
|
version?: WidgetVersion,
|
|
120
|
+
options?: BuildStructureOptions,
|
|
120
121
|
): WidgetStructureInstance
|
|
121
122
|
```
|
|
122
123
|
|
|
123
124
|
Throws an error if no matching configuration is found.
|
|
124
125
|
|
|
126
|
+
`options.layers` applies stored customizations before `customization`, in order, each over what the previous
|
|
127
|
+
one left: nothing removed by an earlier layer can come back, a `keep` of keys already removed empties its
|
|
128
|
+
level, and defaults merge by leaf key with the last layer winning. Without layers the result is unchanged.
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
const result = await loadRemoteCustomization({ widget: 'dashboard', customizationId, domain, qvToken });
|
|
132
|
+
if (result.status === 'error') showConfigurationError();
|
|
133
|
+
const structure = buildStructure(Widget.DASHBOARD, inlineCustomization, undefined, {
|
|
134
|
+
layers: remoteCustomizationLayers(result),
|
|
135
|
+
});
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### `loadRemoteCustomization`
|
|
139
|
+
|
|
140
|
+
Resolves the stored definition a widget uses as its base, falling back to `default` when the requested one does
|
|
141
|
+
not exist. It calls admin_api_manager: `GET /api/admin/v5/customizations/widgets/{widget}/{id}` or
|
|
142
|
+
`GET /api/admin/v5/customizations/widgets/{widget}?context=`. Returns
|
|
143
|
+
`{ status: 'found' | 'fallback' | 'none' | 'error', definition?, error? }`. A 404 means "not found" whatever its
|
|
144
|
+
body says; other error bodies are not read, only their status is reported. One request per URL is shared for
|
|
145
|
+
the life of the page. It uses the global `fetch`, sends `Authorization: Bearer` and/or `x-api-key` only to the
|
|
146
|
+
configured domain and never logs them.
|
|
147
|
+
|
|
148
|
+
### Customization metadata (`@qrvey/widget-configurability/metadata`)
|
|
149
|
+
|
|
150
|
+
A separate entry point, so widgets do not ship the labels. Admin Center builds its switch tree from it:
|
|
151
|
+
|
|
152
|
+
- `getCustomizationTree(widget, { views, subModules? })`: the labelled tree of a view, or of the embedded widget
|
|
153
|
+
(`subModules: ['chartPanel']`), derived from the structure, so a new key appears and a removed one disappears.
|
|
154
|
+
- `getCustomizationTreeState(widget, customization, target)`: the same tree with `visible: true | false | 'mixed'`
|
|
155
|
+
per node, computed with the engine, and `lockedBy` on hidden nodes a switch cannot bring back (a keep, a wildcard,
|
|
156
|
+
a root verb, a hidden parent).
|
|
157
|
+
- `toggleCustomizationKey(customization, target, key, visible)`: the minimal change for one switch, in the remove
|
|
158
|
+
list of each target view (or of its submodule); it never touches keep, conditional, defaults or root verbs.
|
|
159
|
+
|
|
160
|
+
Labels are English only, looked up by full key path and then by leaf id; a guard spec fails when a key has no label
|
|
161
|
+
or a label names no key.
|
|
162
|
+
|
|
163
|
+
### `validateCustomization`
|
|
164
|
+
|
|
165
|
+
Strict validation for writes (admin_api_manager and Admin Center use the same function):
|
|
166
|
+
|
|
167
|
+
```ts
|
|
168
|
+
validateCustomization('dashboard', { views: { design: { remove: ['menuBar.file.qMnuDeleteDsh'] } } });
|
|
169
|
+
// { valid: false, errors: [{ path: ['views', 'design', 'remove', 0], code: 'UNKNOWN_KEY', severity: 'error',
|
|
170
|
+
// message: "Key 'menuBar.file.qMnuDeleteDsh' does not exist in the design view",
|
|
171
|
+
// suggestion: 'menuBar.file.qMnuDeleteDash' }] }
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
At runtime nothing throws: unknown keys are ignored. A customization hides UI; it is not an authorization
|
|
175
|
+
mechanism.
|
|
176
|
+
|
|
125
177
|
---
|
|
126
178
|
|
|
127
179
|
### `WidgetStructureInstance`
|
|
@@ -133,6 +185,7 @@ Class that wraps a widget’s “view map” and provides helper methods:
|
|
|
133
185
|
| `isVisible(key: string, state?: ConditionState): boolean` | Returns `true` if the key exists and its conditions (if any) are met |
|
|
134
186
|
| `getChildMap(key: string): WidgetViewMap \| undefined` | If the key has a nested `childMap`, returns it; otherwise `undefined` |
|
|
135
187
|
| `getSubmodule(module: string, view?: string): WidgetCustomization \| undefined` | Retrieves a specific sub-module customization under `subModules` |
|
|
188
|
+
| `getSubmoduleLayers(module: string, view?: string)` | Submodule customizations of the stored layers (`structureFromSubmodule` applies them) |
|
|
136
189
|
| `getDefaults(key: string): Record<string, unknown> \| undefined` | Retrieves default settings for a given key (e.g. `assetList.defaults`) |
|
|
137
190
|
|
|
138
191
|
---
|
package/dist/cjs/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.DashboardDoc = exports.hostKeepInheritance = exports.DOWNLOAD_MODAL_V1_KEYS = exports.DOWNLOAD_MODAL_V1_DEFAULTS = exports.structureFromSubmodule = exports.structureFrom = exports.scopeToCustomization = exports.isWidgetStructureScope = exports.extractCustomization = exports.validateDefaults = exports.validateBoolean = exports.DX_VALIDATOR_MAP = exports.DOWNLOAD_MODAL_VALIDATOR_MAP = exports.evaluateCondition = exports.checkConditions = exports.getWidgetStructure = exports.calculateViewMap = exports.calculateRootDefaults = exports.WIDGET_SUBMODULE_NAMES = exports.WIDGET_STRUCTURE_SCOPE_KIND = exports.WIDGET_STRUCTURE_SCOPE_FORMAT = exports.Widget = exports.getWidgetConfig = exports.buildStructure = exports.WidgetStructureInstance = exports.WidgetVersion = void 0;
|
|
36
|
+
exports.DashboardDoc = exports.remoteCustomizationLayers = exports.loadRemoteCustomization = exports.isValidCustomizationId = exports.clearRemoteCustomizationCache = exports.DEFAULT_CUSTOMIZATION_ID = exports.CUSTOMIZATIONS_API_PATH = exports.validateCustomization = exports.isEmptyCustomization = exports.formatCustomizationPath = exports.hostKeepInheritance = exports.DOWNLOAD_MODAL_V1_KEYS = exports.DOWNLOAD_MODAL_V1_DEFAULTS = exports.structureFromSubmodule = exports.structureFrom = exports.scopeToCustomization = exports.isWidgetStructureScope = exports.extractCustomization = exports.validateDefaults = exports.validateBoolean = exports.DX_VALIDATOR_MAP = exports.DOWNLOAD_MODAL_VALIDATOR_MAP = exports.evaluateCondition = exports.checkConditions = exports.getWidgetStructure = exports.calculateViewMap = exports.calculateRootDefaults = exports.WIDGET_SUBMODULE_NAMES = exports.WIDGET_STRUCTURE_SCOPE_KIND = exports.WIDGET_STRUCTURE_SCOPE_FORMAT = exports.Widget = exports.getWidgetConfig = exports.buildStructure = exports.WidgetStructureInstance = exports.WidgetVersion = void 0;
|
|
37
37
|
const structure_constants_1 = require("./constants/structure.constants");
|
|
38
38
|
Object.defineProperty(exports, "WidgetVersion", { enumerable: true, get: function () { return structure_constants_1.WidgetVersion; } });
|
|
39
39
|
var structural_manager_1 = require("./structural-manager");
|
|
@@ -67,5 +67,16 @@ var download_modal_structure_v1_1 = require("./structures/download-modal.structu
|
|
|
67
67
|
Object.defineProperty(exports, "DOWNLOAD_MODAL_V1_DEFAULTS", { enumerable: true, get: function () { return download_modal_structure_v1_1.DOWNLOAD_MODAL_V1_DEFAULTS; } });
|
|
68
68
|
Object.defineProperty(exports, "DOWNLOAD_MODAL_V1_KEYS", { enumerable: true, get: function () { return download_modal_structure_v1_1.DOWNLOAD_MODAL_V1_KEYS; } });
|
|
69
69
|
Object.defineProperty(exports, "hostKeepInheritance", { enumerable: true, get: function () { return download_modal_structure_v1_1.hostKeepInheritance; } });
|
|
70
|
+
var customization_validator_1 = require("./validation/customization.validator");
|
|
71
|
+
Object.defineProperty(exports, "formatCustomizationPath", { enumerable: true, get: function () { return customization_validator_1.formatCustomizationPath; } });
|
|
72
|
+
Object.defineProperty(exports, "isEmptyCustomization", { enumerable: true, get: function () { return customization_validator_1.isEmptyCustomization; } });
|
|
73
|
+
Object.defineProperty(exports, "validateCustomization", { enumerable: true, get: function () { return customization_validator_1.validateCustomization; } });
|
|
74
|
+
var remote_customization_loader_1 = require("./remote/remote-customization.loader");
|
|
75
|
+
Object.defineProperty(exports, "CUSTOMIZATIONS_API_PATH", { enumerable: true, get: function () { return remote_customization_loader_1.CUSTOMIZATIONS_API_PATH; } });
|
|
76
|
+
Object.defineProperty(exports, "DEFAULT_CUSTOMIZATION_ID", { enumerable: true, get: function () { return remote_customization_loader_1.DEFAULT_CUSTOMIZATION_ID; } });
|
|
77
|
+
Object.defineProperty(exports, "clearRemoteCustomizationCache", { enumerable: true, get: function () { return remote_customization_loader_1.clearRemoteCustomizationCache; } });
|
|
78
|
+
Object.defineProperty(exports, "isValidCustomizationId", { enumerable: true, get: function () { return remote_customization_loader_1.isValidCustomizationId; } });
|
|
79
|
+
Object.defineProperty(exports, "loadRemoteCustomization", { enumerable: true, get: function () { return remote_customization_loader_1.loadRemoteCustomization; } });
|
|
80
|
+
Object.defineProperty(exports, "remoteCustomizationLayers", { enumerable: true, get: function () { return remote_customization_loader_1.remoteCustomizationLayers; } });
|
|
70
81
|
exports.DashboardDoc = __importStar(require("./doc/dashboard.structure.doc"));
|
|
71
82
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAAgE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAAgE;AA0CvD,8FA1CA,mCAAa,OA0CA;AAEtB,2DAI8B;AAH1B,6HAAA,uBAAuB,OAAA;AACvB,oHAAA,cAAc,OAAA;AACd,qHAAA,eAAe,OAAA;AAEnB,uEAKyC;AAJrC,6GAAA,MAAM,OAAA;AACN,oIAAA,6BAA6B,OAAA;AAC7B,kIAAA,2BAA2B,OAAA;AAC3B,6HAAA,sBAAsB,OAAA;AAE1B,iEAIoC;AAHhC,2HAAA,qBAAqB,OAAA;AACrB,sHAAA,gBAAgB,OAAA;AAChB,wHAAA,kBAAkB,OAAA;AAEtB,iEAAgF;AAAvE,qHAAA,eAAe,OAAA;AAAE,uHAAA,iBAAiB,OAAA;AAC3C,6DAKkC;AAJ9B,gIAAA,4BAA4B,OAAA;AAC5B,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AACf,oHAAA,gBAAgB,OAAA;AAEpB,uDAM+B;AAL3B,qHAAA,oBAAoB,OAAA;AACpB,uHAAA,sBAAsB,OAAA;AACtB,qHAAA,oBAAoB,OAAA;AACpB,8GAAA,aAAa,OAAA;AACb,uHAAA,sBAAsB,OAAA;AAG1B,wFAIkD;AAH9C,yIAAA,0BAA0B,OAAA;AAC1B,qIAAA,sBAAsB,OAAA;AACtB,kIAAA,mBAAmB,OAAA;AAIvB,gFAI8C;AAH1C,kIAAA,uBAAuB,OAAA;AACvB,+HAAA,oBAAoB,OAAA;AACpB,gIAAA,qBAAqB,OAAA;AAEzB,oFAO8C;AAN1C,sIAAA,uBAAuB,OAAA;AACvB,uIAAA,wBAAwB,OAAA;AACxB,4IAAA,6BAA6B,OAAA;AAC7B,qIAAA,sBAAsB,OAAA;AACtB,sIAAA,uBAAuB,OAAA;AACvB,wIAAA,yBAAyB,OAAA;AAG7B,8EAA8D"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.widgetMetadata = void 0;
|
|
15
|
+
exports.structureKeysOf = structureKeysOf;
|
|
16
|
+
exports.getCustomizationLabel = getCustomizationLabel;
|
|
17
|
+
exports.getCustomizationTree = getCustomizationTree;
|
|
18
|
+
exports.lockOf = lockOf;
|
|
19
|
+
exports.getCustomizationTreeState = getCustomizationTreeState;
|
|
20
|
+
exports.toggleCustomizationKey = toggleCustomizationKey;
|
|
21
|
+
const chart_panel_labels_1 = require("./labels/chart-panel.labels");
|
|
22
|
+
const dashboard_labels_1 = require("./labels/dashboard.labels");
|
|
23
|
+
const structure_constants_1 = require("../constants/structure.constants");
|
|
24
|
+
const structural_manager_1 = require("../structural-manager");
|
|
25
|
+
const scope_helpers_1 = require("../utils/scope.helpers");
|
|
26
|
+
const structural_helpers_1 = require("../utils/structural.helpers");
|
|
27
|
+
// Label maps by widget; a new widget adds its map here and the guard spec checks it (3.7.1).
|
|
28
|
+
exports.widgetMetadata = {
|
|
29
|
+
[structure_constants_1.Widget.DASHBOARD]: { labels: dashboard_labels_1.DASHBOARD_LABELS },
|
|
30
|
+
[structure_constants_1.Widget.CHART_PANEL]: { labels: chart_panel_labels_1.CHART_PANEL_LABELS },
|
|
31
|
+
};
|
|
32
|
+
const widgetOfSubmodule = (name) => {
|
|
33
|
+
const widget = Object.keys(structure_constants_1.WIDGET_SUBMODULE_NAMES).find((key) => structure_constants_1.WIDGET_SUBMODULE_NAMES[key] === name);
|
|
34
|
+
if (!widget)
|
|
35
|
+
throw new Error(`No widget registered for the submodule ${name}`);
|
|
36
|
+
return widget;
|
|
37
|
+
};
|
|
38
|
+
function resolveTarget(widget, target, version) {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
const embedded = ((_a = target.subModules) === null || _a === void 0 ? void 0 : _a.length)
|
|
41
|
+
? widgetOfSubmodule(target.subModules[target.subModules.length - 1])
|
|
42
|
+
: widget;
|
|
43
|
+
const config = (0, structural_manager_1.getWidgetConfig)(embedded, ((_b = target.subModules) === null || _b === void 0 ? void 0 : _b.length) ? undefined : version);
|
|
44
|
+
return {
|
|
45
|
+
widget: embedded,
|
|
46
|
+
views: config.baseStructure.views ? target.views : [undefined],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Keys of the structure in a view (or at the root), in structure order, without the view prefix.
|
|
51
|
+
*/
|
|
52
|
+
function structureKeysOf(widget, view, version) {
|
|
53
|
+
const map = (0, structural_helpers_1.calculateViewMap)((0, structural_manager_1.getWidgetConfig)(widget, version).baseStructure);
|
|
54
|
+
const prefix = view ? `${view}${structure_constants_1.STRUCTURE_VIEW_NAME_SEPARATOR}` : '';
|
|
55
|
+
return Object.keys(map)
|
|
56
|
+
.filter((key) => view
|
|
57
|
+
? key.startsWith(prefix)
|
|
58
|
+
: !key.includes(structure_constants_1.STRUCTURE_VIEW_NAME_SEPARATOR))
|
|
59
|
+
.map((key) => key.slice(prefix.length))
|
|
60
|
+
.filter((key) => key !== 'subModules');
|
|
61
|
+
}
|
|
62
|
+
const humanize = (id) => id
|
|
63
|
+
.replace(/^q(?=[A-Z])/, '')
|
|
64
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1 $2')
|
|
65
|
+
.replace(/^./, (char) => char.toUpperCase());
|
|
66
|
+
/**
|
|
67
|
+
* Label of a key: full path first, then the leaf id; a humanized id when neither exists.
|
|
68
|
+
*/
|
|
69
|
+
function getCustomizationLabel(widget, key) {
|
|
70
|
+
var _a, _b, _c, _d, _e;
|
|
71
|
+
const labels = (_b = (_a = exports.widgetMetadata[widget]) === null || _a === void 0 ? void 0 : _a.labels) !== null && _b !== void 0 ? _b : {};
|
|
72
|
+
const id = (_c = key.split(structure_constants_1.STRUCTURE_SECTION_NAME_SEPARATOR).pop()) !== null && _c !== void 0 ? _c : key;
|
|
73
|
+
return (_e = (_d = labels[key]) !== null && _d !== void 0 ? _d : labels[id]) !== null && _e !== void 0 ? _e : { label: humanize(id) };
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The labelled tree of a target: a widget view, or the structure of the embedded widget when subModules is set.
|
|
77
|
+
*/
|
|
78
|
+
function getCustomizationTree(widget, target, options = {}) {
|
|
79
|
+
const resolved = resolveTarget(widget, target, options.version);
|
|
80
|
+
const ordered = [];
|
|
81
|
+
resolved.views.forEach((view) => {
|
|
82
|
+
var _a;
|
|
83
|
+
return structureKeysOf(resolved.widget, view, ((_a = target.subModules) === null || _a === void 0 ? void 0 : _a.length) ? undefined : options.version).forEach((key) => {
|
|
84
|
+
if (!ordered.includes(key))
|
|
85
|
+
ordered.push(key);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
const roots = [];
|
|
89
|
+
const nodes = new Map();
|
|
90
|
+
const ensure = (key) => {
|
|
91
|
+
var _a;
|
|
92
|
+
const existing = nodes.get(key);
|
|
93
|
+
if (existing)
|
|
94
|
+
return existing;
|
|
95
|
+
const parts = key.split(structure_constants_1.STRUCTURE_SECTION_NAME_SEPARATOR);
|
|
96
|
+
const { label, description } = getCustomizationLabel(resolved.widget, key);
|
|
97
|
+
const node = Object.assign(Object.assign({ key, id: parts[parts.length - 1], label }, (description && { description })), { kind: 'item' });
|
|
98
|
+
nodes.set(key, node);
|
|
99
|
+
if (parts.length === 1) {
|
|
100
|
+
roots.push(node);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
const parent = ensure(parts.slice(0, -1).join(structure_constants_1.STRUCTURE_SECTION_NAME_SEPARATOR));
|
|
104
|
+
parent.kind = 'section';
|
|
105
|
+
parent.children = [...((_a = parent.children) !== null && _a !== void 0 ? _a : []), node];
|
|
106
|
+
}
|
|
107
|
+
return node;
|
|
108
|
+
};
|
|
109
|
+
ordered.forEach(ensure);
|
|
110
|
+
return roots;
|
|
111
|
+
}
|
|
112
|
+
function instanceFor(widget, customization, target, view) {
|
|
113
|
+
var _a;
|
|
114
|
+
let instance = (0, structural_manager_1.buildStructure)(widget, customization);
|
|
115
|
+
((_a = target.subModules) !== null && _a !== void 0 ? _a : []).forEach((name) => {
|
|
116
|
+
instance = (0, scope_helpers_1.structureFromSubmodule)(instance, name, view);
|
|
117
|
+
});
|
|
118
|
+
return instance;
|
|
119
|
+
}
|
|
120
|
+
const matches = (pattern, key) => pattern === key ||
|
|
121
|
+
new RegExp(`^${pattern.replace(/\./g, '\\.').replace(/\*/g, '.*')}$`).test(key);
|
|
122
|
+
// The block where the tree's switches write, and the blocks above it whose rules a switch cannot undo.
|
|
123
|
+
function scopesOf(customization, target, view) {
|
|
124
|
+
var _a, _b, _c, _d, _e, _f;
|
|
125
|
+
const subModules = (_a = target.subModules) !== null && _a !== void 0 ? _a : [];
|
|
126
|
+
if (!subModules.length) {
|
|
127
|
+
return { own: (_b = customization === null || customization === void 0 ? void 0 : customization.views) === null || _b === void 0 ? void 0 : _b[view], root: customization };
|
|
128
|
+
}
|
|
129
|
+
const name = subModules[subModules.length - 1];
|
|
130
|
+
return {
|
|
131
|
+
own: (_e = (_d = (_c = customization === null || customization === void 0 ? void 0 : customization.views) === null || _c === void 0 ? void 0 : _c[view]) === null || _d === void 0 ? void 0 : _d.subModules) === null || _e === void 0 ? void 0 : _e[name],
|
|
132
|
+
root: (_f = customization === null || customization === void 0 ? void 0 : customization.subModules) === null || _f === void 0 ? void 0 : _f[name],
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function lockOf(customization, target, view, key, hiddenParent) {
|
|
136
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
137
|
+
const { own, root } = scopesOf(customization, target, view);
|
|
138
|
+
if (hiddenParent)
|
|
139
|
+
return { verb: 'remove', pattern: hiddenParent, scope: 'parent' };
|
|
140
|
+
if ((_a = own === null || own === void 0 ? void 0 : own.remove) === null || _a === void 0 ? void 0 : _a.includes(key))
|
|
141
|
+
return undefined;
|
|
142
|
+
const rootRemove = (_b = root === null || root === void 0 ? void 0 : root.remove) === null || _b === void 0 ? void 0 : _b.find((pattern) => matches(pattern, key));
|
|
143
|
+
if (rootRemove)
|
|
144
|
+
return { verb: 'remove', pattern: rootRemove, scope: 'root' };
|
|
145
|
+
const viewRemove = (_c = own === null || own === void 0 ? void 0 : own.remove) === null || _c === void 0 ? void 0 : _c.find((pattern) => matches(pattern, key));
|
|
146
|
+
if (viewRemove)
|
|
147
|
+
return { verb: 'remove', pattern: viewRemove, scope: 'view' };
|
|
148
|
+
if ((_d = root === null || root === void 0 ? void 0 : root.keep) === null || _d === void 0 ? void 0 : _d.length)
|
|
149
|
+
return { verb: 'keep', pattern: root.keep.join(', '), scope: 'root' };
|
|
150
|
+
if ((_e = own === null || own === void 0 ? void 0 : own.keep) === null || _e === void 0 ? void 0 : _e.length)
|
|
151
|
+
return { verb: 'keep', pattern: own.keep.join(', '), scope: 'view' };
|
|
152
|
+
// Hidden by something the switches do not write (a conditional, a submodule rule of the host).
|
|
153
|
+
return {
|
|
154
|
+
verb: 'remove',
|
|
155
|
+
pattern: key,
|
|
156
|
+
scope: ((_f = own === null || own === void 0 ? void 0 : own.conditional) === null || _f === void 0 ? void 0 : _f.length) || ((_g = root === null || root === void 0 ? void 0 : root.conditional) === null || _g === void 0 ? void 0 : _g.length)
|
|
157
|
+
? 'conditional'
|
|
158
|
+
: 'view',
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* The tree with the visibility of each node for a customization, computed with the real engine. A node whose
|
|
163
|
+
* visibility differs between the target views is 'mixed'; a hidden node a switch cannot bring back is locked.
|
|
164
|
+
*/
|
|
165
|
+
function getCustomizationTreeState(widget, customization, target) {
|
|
166
|
+
var _a;
|
|
167
|
+
const tree = getCustomizationTree(widget, target);
|
|
168
|
+
const embedded = !!((_a = target.subModules) === null || _a === void 0 ? void 0 : _a.length);
|
|
169
|
+
const instances = target.views.map((view) => ({
|
|
170
|
+
view,
|
|
171
|
+
instance: instanceFor(widget, customization, target, view),
|
|
172
|
+
}));
|
|
173
|
+
const isVisible = (instance, view, key) => instance.isVisible(embedded ? key : `${view}${structure_constants_1.STRUCTURE_VIEW_NAME_SEPARATOR}${key}`, {});
|
|
174
|
+
const walk = (nodes, hiddenParents) => nodes.map((node) => {
|
|
175
|
+
const states = instances.map(({ view, instance }) => isVisible(instance, view, node.key));
|
|
176
|
+
const visible = states.every(Boolean)
|
|
177
|
+
? true
|
|
178
|
+
: states.some(Boolean)
|
|
179
|
+
? 'mixed'
|
|
180
|
+
: false;
|
|
181
|
+
const locks = visible === false
|
|
182
|
+
? instances.map(({ view }, index) => lockOf(customization, target, view, node.key, hiddenParents[index]))
|
|
183
|
+
: [];
|
|
184
|
+
const lockedBy = locks.length && locks.every(Boolean) ? locks[0] : undefined;
|
|
185
|
+
const childParents = states.map((state, index) => { var _a; return (_a = hiddenParents[index]) !== null && _a !== void 0 ? _a : (state ? undefined : node.key); });
|
|
186
|
+
const { children } = node, rest = __rest(node, ["children"]);
|
|
187
|
+
const stateNode = Object.assign(Object.assign({}, rest), { visible });
|
|
188
|
+
if (lockedBy)
|
|
189
|
+
stateNode.lockedBy = lockedBy;
|
|
190
|
+
if (children)
|
|
191
|
+
stateNode.children = walk(children, childParents);
|
|
192
|
+
return stateNode;
|
|
193
|
+
});
|
|
194
|
+
return walk(tree, instances.map(() => undefined));
|
|
195
|
+
}
|
|
196
|
+
const isEmptyObject = (value) => typeof value === 'object' &&
|
|
197
|
+
value !== null &&
|
|
198
|
+
!Array.isArray(value) &&
|
|
199
|
+
Object.keys(value).length === 0;
|
|
200
|
+
/**
|
|
201
|
+
* A new customization with the minimal change for one switch, applied to every view of the target. It only edits
|
|
202
|
+
* the remove list of each view (or of the submodule inside it), never keep, conditional, defaults or root verbs.
|
|
203
|
+
*/
|
|
204
|
+
function toggleCustomizationKey(customization, target, key, visible) {
|
|
205
|
+
const result = JSON.parse(JSON.stringify(customization !== null && customization !== void 0 ? customization : {}));
|
|
206
|
+
target.views.forEach((view) => {
|
|
207
|
+
var _a, _b;
|
|
208
|
+
const chain = [
|
|
209
|
+
result,
|
|
210
|
+
];
|
|
211
|
+
const step = (holder, name) => {
|
|
212
|
+
var _a;
|
|
213
|
+
holder[name] = (_a = holder[name]) !== null && _a !== void 0 ? _a : {};
|
|
214
|
+
chain.push(holder[name]);
|
|
215
|
+
return holder[name];
|
|
216
|
+
};
|
|
217
|
+
let block = step(step(result, 'views'), view);
|
|
218
|
+
((_a = target.subModules) !== null && _a !== void 0 ? _a : []).forEach((name) => {
|
|
219
|
+
block = step(step(block, 'subModules'), name);
|
|
220
|
+
});
|
|
221
|
+
const remove = (_b = block.remove) !== null && _b !== void 0 ? _b : [];
|
|
222
|
+
if (!visible && !remove.includes(key))
|
|
223
|
+
block.remove = [...remove, key];
|
|
224
|
+
if (visible) {
|
|
225
|
+
const next = remove.filter((item) => item !== key);
|
|
226
|
+
if (next.length)
|
|
227
|
+
block.remove = next;
|
|
228
|
+
else
|
|
229
|
+
delete block.remove;
|
|
230
|
+
}
|
|
231
|
+
// Drops the empty objects this switch left behind, from the innermost out.
|
|
232
|
+
for (let index = chain.length - 1; index > 0; index--) {
|
|
233
|
+
const holder = chain[index - 1];
|
|
234
|
+
const name = Object.keys(holder).find((property) => holder[property] === chain[index]);
|
|
235
|
+
if (name && isEmptyObject(chain[index]))
|
|
236
|
+
delete holder[name];
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
return result;
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=customization-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customization-metadata.js","sourceRoot":"","sources":["../../../src/metadata/customization-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.widgetMetadata = exports.toggleCustomizationKey = exports.structureKeysOf = exports.getCustomizationTreeState = exports.getCustomizationTree = exports.getCustomizationLabel = void 0;
|
|
4
|
+
var customization_metadata_1 = require("./customization-metadata");
|
|
5
|
+
Object.defineProperty(exports, "getCustomizationLabel", { enumerable: true, get: function () { return customization_metadata_1.getCustomizationLabel; } });
|
|
6
|
+
Object.defineProperty(exports, "getCustomizationTree", { enumerable: true, get: function () { return customization_metadata_1.getCustomizationTree; } });
|
|
7
|
+
Object.defineProperty(exports, "getCustomizationTreeState", { enumerable: true, get: function () { return customization_metadata_1.getCustomizationTreeState; } });
|
|
8
|
+
Object.defineProperty(exports, "structureKeysOf", { enumerable: true, get: function () { return customization_metadata_1.structureKeysOf; } });
|
|
9
|
+
Object.defineProperty(exports, "toggleCustomizationKey", { enumerable: true, get: function () { return customization_metadata_1.toggleCustomizationKey; } });
|
|
10
|
+
Object.defineProperty(exports, "widgetMetadata", { enumerable: true, get: function () { return customization_metadata_1.widgetMetadata; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metadata/index.ts"],"names":[],"mappings":";;;AAQA,mEAOkC;AAN9B,+HAAA,qBAAqB,OAAA;AACrB,8HAAA,oBAAoB,OAAA;AACpB,mIAAA,yBAAyB,OAAA;AACzB,yHAAA,eAAe,OAAA;AACf,gIAAA,sBAAsB,OAAA;AACtB,wHAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CHART_PANEL_LABELS = void 0;
|
|
4
|
+
// Initial English labels of the chart panel (chartPanel submodule), for review with Product (D20).
|
|
5
|
+
exports.CHART_PANEL_LABELS = {
|
|
6
|
+
header: { label: 'Chart header' },
|
|
7
|
+
floatingMenu: { label: 'Floating menu' },
|
|
8
|
+
menuLayout: { label: 'Menu layout' },
|
|
9
|
+
body: { label: 'Chart body' },
|
|
10
|
+
'body.actions': { label: 'Chart actions' },
|
|
11
|
+
optionMenu: { label: 'Chart options menu' },
|
|
12
|
+
optionDateGrouping: { label: 'Date grouping options' },
|
|
13
|
+
dashFilterScope: { label: 'Dashboard filters' },
|
|
14
|
+
tabFilterScope: { label: 'Tab filters' },
|
|
15
|
+
panelFilterScope: { label: 'Panel filters' },
|
|
16
|
+
qChartName: { label: 'Chart name' },
|
|
17
|
+
qFitPanel: { label: 'Fit to panel' },
|
|
18
|
+
qChartSelection: { label: 'Chart type selection' },
|
|
19
|
+
qColumnSection: { label: 'Column section' },
|
|
20
|
+
qSorting: { label: 'Sorting' },
|
|
21
|
+
qColumnReplacement: { label: 'Column replacement' },
|
|
22
|
+
qColumnAggregation: { label: 'Column aggregation' },
|
|
23
|
+
qColumnGrouping: { label: 'Column grouping' },
|
|
24
|
+
qDateGrouping: { label: 'Date grouping' },
|
|
25
|
+
qColumnSelection: { label: 'Column selection' },
|
|
26
|
+
qResetColumnsWidth: { label: 'Reset column widths' },
|
|
27
|
+
qSmartAnalyzer: { label: 'Smart analyzer' },
|
|
28
|
+
qEditChart: { label: 'Edit chart' },
|
|
29
|
+
qDuplicateChart: { label: 'Duplicate chart' },
|
|
30
|
+
qDownloadChart: { label: 'Download' },
|
|
31
|
+
qChartJPG: { label: 'JPG' },
|
|
32
|
+
qChartPDF: { label: 'PDF' },
|
|
33
|
+
qChartCSV: { label: 'CSV' },
|
|
34
|
+
qChartSummary: { label: 'Summary' },
|
|
35
|
+
qChartExcel: { label: 'Excel' },
|
|
36
|
+
qFilter: { label: 'Filters' },
|
|
37
|
+
qAddFilter: { label: 'Add filter' },
|
|
38
|
+
qEditFilter: { label: 'Edit filter' },
|
|
39
|
+
qDeleteFilter: { label: 'Delete filter' },
|
|
40
|
+
qYear: { label: 'Year' },
|
|
41
|
+
qQuarter: { label: 'Quarter' },
|
|
42
|
+
qQuarterOnly: { label: 'Quarter only' },
|
|
43
|
+
qMonth: { label: 'Month' },
|
|
44
|
+
qMonthOnly: { label: 'Month only' },
|
|
45
|
+
qWeek: { label: 'Week' },
|
|
46
|
+
qDay: { label: 'Day' },
|
|
47
|
+
qDayOnly: { label: 'Day only' },
|
|
48
|
+
qHour: { label: 'Hour' },
|
|
49
|
+
qHourOnly: { label: 'Hour only' },
|
|
50
|
+
qMinute: { label: 'Minute' },
|
|
51
|
+
qMinuteOnly: { label: 'Minute only' },
|
|
52
|
+
qSecond: { label: 'Second' },
|
|
53
|
+
qSecondOnly: { label: 'Second only' },
|
|
54
|
+
qComparativeAnalysis: { label: 'Comparative analysis' },
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=chart-panel.labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-panel.labels.js","sourceRoot":"","sources":["../../../../src/metadata/labels/chart-panel.labels.ts"],"names":[],"mappings":"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"}
|