@qrvey/widget-configurability 0.0.0-dev.1739 → 0.0.0-dev.1745

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 CHANGED
@@ -13,9 +13,8 @@
13
13
  - [Package Exports](#package-exports)
14
14
  - [Enums](#enums)
15
15
  - [Core API](#core-api)
16
- - [`buildStructureInstance`](#buildstructureinstance)
17
- - [`WidgetStructureInstance`](#widgetstructureinstance)
18
- - [`structureInstanceMap`](#structureinstancemap)
16
+ - [`buildStructure`](#buildStructure)
17
+ - [`WidgetStructureInstance`](#widgetstructureinstance)
19
18
  - [Dashboard Documentation](#dashboard-documentation)
20
19
  - [Examples](#examples)
21
20
 
@@ -37,30 +36,30 @@ yarn add @qrvey/widget-configurability
37
36
 
38
37
  ```ts
39
38
  import {
40
- WidgetStructureInstance,
41
- buildStructureInstance,
42
- structureInstanceMap,
43
- UserRole,
44
- Widget,
45
- WidgetVersion,
46
- DashboardDoc,
39
+ buildStructure,
40
+ Widget
47
41
  } from '@qrvey/widget-configurability';
48
42
 
49
- // 1. Build a new structure instance for Dashboard v1
50
- const instance = buildStructureInstance(
51
- Widget.DASHBOARD,
52
- WidgetVersion.v1,
53
- /* optional customization object */,
54
- UserRole.MANAGER
43
+ // 1. Build a structure instance for Dashboard v1
44
+ const instance = buildStructure(
45
+ Widget.DASHBOARD
55
46
  );
56
47
 
57
- // 2. Store or reuse the instance
58
- structureInstanceMap.set('dashboard-v1-manager', instance);
48
+ // 2. Check visibility of an element
49
+ console.log(instance.isVisible('design::navBar.qAppTitle')); // true or false
59
50
 
60
- // 3. Inspect visibility / permissions
61
- console.log(instance.isVisible('navBar')); // true / false
62
- console.log(instance.hasPermission()); // true if role === MANAGER
51
+ // 3. Get canvas permissions (all visible items for a view)
63
52
  console.log(instance.getCanvasPermissions('design'));
53
+
54
+ // 4. Get default configuration for a widget key
55
+ console.log(instance.getDefaults('design::header')); // { 'customStyles.header.height': 50 }
56
+
57
+ // 5. Get child map (nested structure) if available
58
+ const toolBarMap = instance.getChildMap('design::toolBar');
59
+ console.log(toolBarMap);
60
+
61
+ // 6. Access submodule configuration
62
+ console.log(instance.getSubmodule('chartGallery', 'design'));
64
63
  ```
65
64
 
66
65
  ---
@@ -70,7 +69,7 @@ console.log(instance.getCanvasPermissions('design'));
70
69
  ```ts
71
70
  export {
72
71
  WidgetStructureInstance, // Class for inspecting a widget’s view map & permissions
73
- buildStructureInstance, // Factory to create a WidgetStructureInstance
72
+ buildStructure, // Factory to create a WidgetStructureInstance
74
73
  structureInstanceMap, // Map<string, WidgetStructureInstance> for caching instances
75
74
  UserRole, // Enum of supported user roles (e.g. MANAGER, VIEWER)
76
75
  Widget, // Enum of widget types (e.g. DASHBOARD)
@@ -96,15 +95,7 @@ export enum Widget {
96
95
  ```ts
97
96
  export enum WidgetVersion {
98
97
  v1 = '1.0',
99
- }
100
- ```
101
-
102
- ### `UserRole`
103
-
104
- ```ts
105
- export enum UserRole {
106
- MANAGER = 'manager',
107
- VIEWER = 'viewer',
98
+ latest = 'latest',
108
99
  }
109
100
  ```
110
101
 
@@ -112,17 +103,16 @@ export enum UserRole {
112
103
 
113
104
  ## Core API
114
105
 
115
- ### `buildStructureInstance`
106
+ ### `buildStructure`
116
107
 
117
108
  Creates a `WidgetStructureInstance` based on:
118
109
 
119
110
  - **`widget`** – one of the `Widget` enum values
120
- - **`version`** – one of the `WidgetVersion` enum values
121
- - **`customization`** – optional overrides to base configuration
122
- - **`userRole`** – optional role, defaults to `UserRole.MANAGER` if invalid
111
+ - **`version`** – (Optional) One of the `WidgetVersion` enum values. Defaults to the latest version.
112
+ - **`customization`** – (Optional) Overrides to base configuration
123
113
 
124
114
  ```ts
125
- function buildStructureInstance(
115
+ function buildStructure(
126
116
  widget: Widget,
127
117
  version: WidgetVersion,
128
118
  customization?: WidgetCustomization,
@@ -138,26 +128,18 @@ Throws an error if no matching configuration is found.
138
128
 
139
129
  Class that wraps a widget’s “view map” and provides helper methods:
140
130
 
141
- | Method | Description |
142
- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
143
- | `isVisible(key: string, state?: ConditionState): boolean` | Returns `true` if the key exists and its conditions (if any) are met |
144
- | `hasPermission(): boolean` | Returns `true` if the instance’s role equals `UserRole.MANAGER` |
145
- | `getCanvasPermissions(mode: CanvasMode): CanvasModePermissions` | Returns the permission set for the given canvas mode (`list`, `design`, `preview`, `endUser`) |
146
- | `getChildMap(key: string): WidgetViewMap \| undefined` | If the key has a nested `childMap`, returns it; otherwise `undefined` |
147
- | `getSubmodule(module: string, view?: string): WidgetCustomization \| undefined` | Retrieves a specific sub-module customization under `subModules` |
148
- | `getDefaults(key: string): Record<string, unknown> \| undefined` | Retrieves default settings for a given key (e.g. `assetList.defaults`) |
149
-
150
- ---
151
-
152
- ### `structureInstanceMap`
153
-
154
- A simple `Map<string, WidgetStructureInstance>` you can use to cache or share built instances across your application.
131
+ | Method | Description |
132
+ |---------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
133
+ | `isVisible(key: string, state?: ConditionState): boolean` | Returns `true` if the key exists and its conditions (if any) are met |
134
+ | `getChildMap(key: string): WidgetViewMap \| undefined` | If the key has a nested `childMap`, returns it; otherwise `undefined` |
135
+ | `getSubmodule(module: string, view?: string): WidgetCustomization \| undefined` | Retrieves a specific sub-module customization under `subModules` |
136
+ | `getDefaults(key: string): Record<string, unknown> \| undefined` | Retrieves default settings for a given key (e.g. `assetList.defaults`) |
155
137
 
156
138
  ---
157
139
 
158
140
  ## Dashboard Documentation
159
141
 
160
- All of the raw Dashboard v1 configuration—including version, base structure, nested views, menus, toolbars, panels, and sub-modules—is exported as **`DashboardDoc`**.
142
+ All the raw Dashboard v1 configuration—including version, base structure, nested views, menus, toolbars, panels, and submodules is exported as **`DashboardDoc`**.
161
143
 
162
144
  ```ts
163
145
  import * as DashboardDoc from '@qrvey/widget-configurability/doc/dashboard.structure.doc';
@@ -178,16 +160,14 @@ console.log(DashboardDoc.default);
178
160
  ### Customizing a Dashboard
179
161
 
180
162
  ```ts
181
- import { buildStructureInstance, Widget, WidgetVersion } from '@qrvey/widget-configurability';
182
- import { case1 } from './your-customizations';
163
+ import { buildStructure, Widget, WidgetVersion } from '@qrvey/widget-configurability';
164
+ import { customization } from './your-customizations';
183
165
 
184
- const inst = buildStructureInstance(
166
+ const inst = buildStructure(
185
167
  Widget.DASHBOARD,
186
168
  WidgetVersion.v1,
187
- case1, // your WidgetCustomization
188
- 'viewer' // non-manager role
169
+ customization, // your widget customization
189
170
  );
190
171
 
191
172
  console.log(inst.isVisible('assetList')); // based on your customization
192
- console.log(inst.hasPermission()); // false
193
173
  ```
@@ -4,11 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.widgetConfigs = void 0;
7
- const dashboard_structure_v1_1 = __importDefault(require("./dashboard.structure.v1"));
8
7
  const structure_constants_1 = require("./structure.constants");
8
+ const dashboard_structure_v1_1 = __importDefault(require("../structures/dashboard.structure.v1"));
9
9
  exports.widgetConfigs = {
10
10
  [structure_constants_1.Widget.DASHBOARD]: {
11
11
  [structure_constants_1.WidgetVersion.v1]: dashboard_structure_v1_1.default,
12
+ [structure_constants_1.WidgetVersion.latest]: dashboard_structure_v1_1.default,
12
13
  },
13
14
  };
14
15
  //# sourceMappingURL=configs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configs.js","sourceRoot":"","sources":["../../../src/constants/configs.ts"],"names":[],"mappings":";;;;;;AAAA,sFAAyD;AACzD,+DAA8D;AAGjD,QAAA,aAAa,GAAqB;IAC3C,CAAC,4BAAM,CAAC,SAAS,CAAC,EAAE;QAChB,CAAC,mCAAa,CAAC,EAAE,CAAC,EAAE,gCAAiB;KACxC;CACJ,CAAC"}
1
+ {"version":3,"file":"configs.js","sourceRoot":"","sources":["../../../src/constants/configs.ts"],"names":[],"mappings":";;;;;;AAAA,+DAA8D;AAE9D,kGAAqE;AAExD,QAAA,aAAa,GAAqB;IAC3C,CAAC,4BAAM,CAAC,SAAS,CAAC,EAAE;QAChB,CAAC,mCAAa,CAAC,EAAE,CAAC,EAAE,gCAAiB;QACrC,CAAC,mCAAa,CAAC,MAAM,CAAC,EAAE,gCAAiB;KAC5C;CACJ,CAAC"}
@@ -1,14 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WidgetVersion = exports.Widget = exports.UserRole = exports.STRUCTURE_RESERVED_WORDS = exports.STRUCTURE_VIEW_NAME_SEPARATOR = exports.STRUCTURE_SECTION_NAME_SEPARATOR = void 0;
3
+ exports.WidgetVersion = exports.Widget = exports.STRUCTURE_RESERVED_WORDS = exports.STRUCTURE_VIEW_NAME_SEPARATOR = exports.STRUCTURE_SECTION_NAME_SEPARATOR = void 0;
4
4
  exports.STRUCTURE_SECTION_NAME_SEPARATOR = '.';
5
5
  exports.STRUCTURE_VIEW_NAME_SEPARATOR = '::';
6
6
  exports.STRUCTURE_RESERVED_WORDS = ['views', 'defaults', 'subModules'];
7
- var UserRole;
8
- (function (UserRole) {
9
- UserRole["MANAGER"] = "MANAGER";
10
- UserRole["USER"] = "USER";
11
- })(UserRole || (exports.UserRole = UserRole = {}));
12
7
  var Widget;
13
8
  (function (Widget) {
14
9
  Widget["DASHBOARD"] = "dashboard";
@@ -16,5 +11,6 @@ var Widget;
16
11
  var WidgetVersion;
17
12
  (function (WidgetVersion) {
18
13
  WidgetVersion["v1"] = "1.0";
14
+ WidgetVersion["latest"] = "latest";
19
15
  })(WidgetVersion || (exports.WidgetVersion = WidgetVersion = {}));
20
16
  //# sourceMappingURL=structure.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"structure.constants.js","sourceRoot":"","sources":["../../../src/constants/structure.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gCAAgC,GAAG,GAAG,CAAC;AACvC,QAAA,6BAA6B,GAAG,IAAI,CAAC;AACrC,QAAA,wBAAwB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAE5E,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,+BAAmB,CAAA;IACnB,yBAAa,CAAA;AACjB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED,IAAY,MAEX;AAFD,WAAY,MAAM;IACd,iCAAuB,CAAA;AAC3B,CAAC,EAFW,MAAM,sBAAN,MAAM,QAEjB;AAED,IAAY,aAEX;AAFD,WAAY,aAAa;IACrB,2BAAU,CAAA;AACd,CAAC,EAFW,aAAa,6BAAb,aAAa,QAExB"}
1
+ {"version":3,"file":"structure.constants.js","sourceRoot":"","sources":["../../../src/constants/structure.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gCAAgC,GAAG,GAAG,CAAC;AACvC,QAAA,6BAA6B,GAAG,IAAI,CAAC;AACrC,QAAA,wBAAwB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAE5E,IAAY,MAEX;AAFD,WAAY,MAAM;IACd,iCAAuB,CAAA;AAC3B,CAAC,EAFW,MAAM,sBAAN,MAAM,QAEjB;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,2BAAU,CAAA;IACV,kCAAiB,CAAA;AACrB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB"}
package/dist/cjs/index.js CHANGED
@@ -33,15 +33,13 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.DashboardDoc = exports.WidgetVersion = exports.Widget = exports.structureInstanceMap = exports.UserRole = exports.buildStructureInstance = exports.WidgetStructureInstance = void 0;
36
+ exports.DashboardDoc = exports.WidgetVersion = exports.Widget = exports.buildStructure = exports.WidgetStructureInstance = void 0;
37
37
  const structure_constants_1 = require("./constants/structure.constants");
38
- Object.defineProperty(exports, "UserRole", { enumerable: true, get: function () { return structure_constants_1.UserRole; } });
39
38
  Object.defineProperty(exports, "Widget", { enumerable: true, get: function () { return structure_constants_1.Widget; } });
40
39
  Object.defineProperty(exports, "WidgetVersion", { enumerable: true, get: function () { return structure_constants_1.WidgetVersion; } });
41
40
  const DashboardDoc = __importStar(require("./doc/dashboard.structure.doc"));
42
41
  exports.DashboardDoc = DashboardDoc;
43
42
  const structural_manager_1 = require("./structural-manager");
44
43
  Object.defineProperty(exports, "WidgetStructureInstance", { enumerable: true, get: function () { return structural_manager_1.WidgetStructureInstance; } });
45
- Object.defineProperty(exports, "buildStructureInstance", { enumerable: true, get: function () { return structural_manager_1.buildStructureInstance; } });
46
- Object.defineProperty(exports, "structureInstanceMap", { enumerable: true, get: function () { return structural_manager_1.structureInstanceMap; } });
44
+ Object.defineProperty(exports, "buildStructure", { enumerable: true, get: function () { return structural_manager_1.buildStructure; } });
47
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAIyC;AAWrC,yFAdA,8BAAQ,OAcA;AAER,uFAfA,4BAAM,OAeA;AACN,8FAfA,mCAAa,OAeA;AAbjB,4EAA8D;AAc1D,oCAAY;AAbhB,6DAI8B;AAG1B,wGANA,4CAAuB,OAMA;AACvB,uGANA,2CAAsB,OAMA;AAEtB,qGAPA,yCAAoB,OAOA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAAwE;AAOpE,uFAPK,4BAAM,OAOL;AACN,8FARa,mCAAa,OAQb;AAPjB,4EAA8D;AAQ1D,oCAAY;AAPhB,6DAA+E;AAG3E,wGAHK,4CAAuB,OAGL;AACvB,+FAJ8B,mCAAc,OAI9B"}
@@ -1,29 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WidgetStructureInstance = exports.DEFAULT_USER_ROLE = exports.structureInstanceMap = void 0;
4
- exports.buildStructureInstance = buildStructureInstance;
5
- const structural_manager_config_1 = require("./config/structural-manager.config");
3
+ exports.WidgetStructureInstance = void 0;
4
+ exports.buildStructure = buildStructure;
6
5
  const configs_1 = require("./constants/configs");
7
6
  const structure_constants_1 = require("./constants/structure.constants");
8
7
  const conditions_helpers_1 = require("./utils/conditions.helpers");
9
8
  const defaults_helpers_1 = require("./utils/defaults.helpers");
10
9
  const structural_helpers_1 = require("./utils/structural.helpers");
11
- exports.structureInstanceMap = new Map();
12
- exports.DEFAULT_USER_ROLE = structure_constants_1.UserRole.MANAGER;
13
- function buildStructureInstance(widget, version, customization, userRole = '') {
10
+ function buildStructure(widget, version, customization) {
14
11
  var _a;
15
- const widgetConfigurability = (_a = configs_1.widgetConfigs[widget]) === null || _a === void 0 ? void 0 : _a[version];
12
+ const versionSet = version !== null && version !== void 0 ? version : structure_constants_1.WidgetVersion.latest;
13
+ const widgetConfigurability = (_a = configs_1.widgetConfigs[widget]) === null || _a === void 0 ? void 0 : _a[versionSet];
16
14
  if (!widgetConfigurability) {
17
15
  throw new Error(`No config found for widget ${widget} and version ${version}`);
18
16
  }
19
17
  const structureMap = (0, structural_helpers_1.getWidgetStructure)(widgetConfigurability, customization, defaults_helpers_1.DX_VALIDATOR_MAP);
20
- const role = (0, structural_helpers_1.validateUserRole)(userRole) ? userRole : exports.DEFAULT_USER_ROLE;
21
- return new WidgetStructureInstance(structureMap, role);
18
+ return new WidgetStructureInstance(structureMap);
22
19
  }
23
20
  class WidgetStructureInstance {
24
- constructor(viewMap, role) {
21
+ constructor(viewMap) {
25
22
  this.viewMap = viewMap;
26
- this.role = role;
27
23
  }
28
24
  getValue(key) {
29
25
  return this.viewMap[key];
@@ -37,12 +33,6 @@ class WidgetStructureInstance {
37
33
  }
38
34
  return true;
39
35
  }
40
- hasPermission() {
41
- return this.role === exports.DEFAULT_USER_ROLE;
42
- }
43
- getCanvasPermissions(mode) {
44
- return structural_manager_config_1.canvasModePermissions[mode];
45
- }
46
36
  getChildMap(key) {
47
37
  const value = this.getValue(key);
48
38
  if (!value ||
@@ -1 +1 @@
1
- {"version":3,"file":"structural-manager.js","sourceRoot":"","sources":["../../src/structural-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structural-manager.js","sourceRoot":"","sources":["../../src/structural-manager.ts"],"names":[],"mappings":";;;AASA,wCAkBC;AA3BD,iDAAoD;AACpD,yEAAwE;AAIxE,mEAA6D;AAC7D,+DAA4D;AAC5D,mEAAgE;AAEhE,SAAgB,cAAc,CAC1B,MAAc,EACd,OAAuB,EACvB,aAAmC;;IAEnC,MAAM,UAAU,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,mCAAa,CAAC,MAAM,CAAC;IACnD,MAAM,qBAAqB,GAAG,MAAA,uBAAa,CAAC,MAAM,CAAC,0CAAG,UAAU,CAAC,CAAC;IAClE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACX,8BAA8B,MAAM,gBAAgB,OAAO,EAAE,CAChE,CAAC;IACN,CAAC;IACD,MAAM,YAAY,GAAG,IAAA,uCAAkB,EACnC,qBAAqB,EACrB,aAAa,EACb,mCAAgB,CACnB,CAAC;IACF,OAAO,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,MAAa,uBAAuB;IAChC,YAAoB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEtC,QAAQ,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAsB;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YAChD,OAAO,IAAA,oCAAe,EAClB,KAAK,EACL,KAAK,CAAC,UAAmC,CAC5C,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,IACI,CAAC,KAAK;YACN,OAAO,KAAK,KAAK,SAAS;YAC1B,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK,CAAC,QAAQ;YAEf,OAAO,SAAS,CAAC;QACrB,OAAO,KAAK,CAAC,QAAyB,CAAC;IAC3C,CAAC;IAED,YAAY,CACR,MAAc,EACd,IAAa;QAEb,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,OAAQ,KAA6C,aAA7C,KAAK,uBAAL,KAAK,CAA2C,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,WAAW,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,IACI,CAAC,KAAK;YACN,OAAO,KAAK,KAAK,SAAS;YAC1B,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK,CAAC,QAAQ;YAEf,OAAO,SAAS,CAAC;QACrB,OAAO,KAAK,CAAC,QAAyB,CAAC;IAC3C,CAAC;CACJ;AAnDD,0DAmDC"}
@@ -99,7 +99,7 @@ const dashboardV1Config = {
99
99
  'qMnuInsertHeader',
100
100
  'qMnuInsertTabs',
101
101
  ],
102
- qArrange: [
102
+ qMnuArrange: [
103
103
  'qMnuBringToFront',
104
104
  'qMnuSendToBack',
105
105
  {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.structure.v1.js","sourceRoot":"","sources":["../../../src/structures/dashboard.structure.v1.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateUserRole = validateUserRole;
4
3
  exports.getWidgetStructure = getWidgetStructure;
5
4
  exports.calculateViewMap = calculateViewMap;
6
5
  const defaults_helpers_1 = require("./defaults.helpers");
7
6
  const merge_helpers_1 = require("./merge.helpers");
8
7
  const structure_constants_1 = require("../constants/structure.constants");
9
- const VALID_ROLES = [structure_constants_1.UserRole.MANAGER, structure_constants_1.UserRole.USER];
10
- /**
11
- * Validates if a role is valid
12
- * @param role role to be validated
13
- * @returns boolean response checking if the user is in a valid role
14
- */
15
- function validateUserRole(role) {
16
- if (!role)
17
- return false;
18
- return VALID_ROLES.includes(role);
19
- }
20
8
  /**
21
9
  * constructs the permission map structure for a widget
22
10
  * @param config configuration of a widget
@@ -1 +1 @@
1
- {"version":3,"file":"structural.helpers.js","sourceRoot":"","sources":["../../../src/utils/structural.helpers.ts"],"names":[],"mappings":";;AA6CA,4CAGC;AASD,gDAMC;AAED,4CA2CC;AA5GD,yDAAqE;AACrE,mDAA4C;AAC5C,0EAK0C;AA+B1C,MAAM,WAAW,GAAG,CAAC,8BAAQ,CAAC,OAAO,EAAE,8BAAQ,CAAC,IAAI,CAAC,CAAC;AAEtD;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,IAAa;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAgB,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAC9B,MAAoB,EACpB,aAAmC,EACnC,aAA6B;IAE7B,OAAO,gBAAgB,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AAChF,CAAC;AAED,SAAgB,gBAAgB,CAC5B,MAA2B,EAC3B,aAAmC,EACnC,aAA6B;IAE7B,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,CACT,aAAa,EACb,wBAAwB,CACpB,IAAI,EACJ,MAAM,EACN,aAAa,EACb,aAAa,CAChB,CACJ,CAAC;QACN,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,MAAM,cAAc,GAAG,uBAAuB,CAC1C,aAAa,EACb,SAAS,EACT,aAAa,CAChB,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;QAErC,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9D,IAAI,UAAU,EAAE,CAAC;YACb,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;QAC1C,CAAC;QAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAEjE,MAAM,CAAC,MAAM,CACT,aAAa,EACb,sBAAsB,CAAC,MAAM,EAAE,aAAa,EAAE;YAC1C,YAAY;YACZ,cAAc;YACd,aAAa;SAChB,CAAC,CACL,CAAC;IACN,CAAC;IACD,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,wBAAwB,CAC7B,IAAY,EACZ,MAA2B,EAC3B,aAAmC,EACnC,aAA6B;IAE7B,MAAM,cAAc,GAAG,MAAM,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,uBAAuB,CAC1C,aAAa,EACb,IAAI,EACJ,aAAa,CAChB,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;IAErC,MAAM,aAAa,GAAkB,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACpE,IAAI,UAAU,EAAE,CAAC;QACb,aAAa,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,UAAU,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,MAAM,CACT,aAAa,EACb,sBAAsB,CAAC,MAAM,EAAE,aAAa,EAAE;QAC1C,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,IAAI;QAChB,YAAY;QACZ,cAAc;KACjB,CAAC,CACL,CAAC;IAEF,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,IAAa;IAChC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,mDAA6B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,UAAmB;IACrD,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,KAAa,EAAW,EAAE;IAC9D,MAAM,YAAY,GAAG,IAAI,MAAM,CAC3B,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CACjE,CAAC;IACF,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,SAAS,mBAAmB,CACxB,GAAW,EACX,aAAkC;IAElC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,aAAa,CAAC;IACpC,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAC1B,GAAW,EACX,aAAkC;IAElC,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,aAAa,CAAC;IACtC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAC7B,GAAW,EACX,aAAkC,EAClC,kBAA4B;IAE5B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,SAAS,GACX,CAAC,gBAAgB;QACjB,CAAC,CAAC,kBAAkB,IAAI,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;IAErE,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC;QACrD,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,QAAQ,CAAC;IACf,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IACjE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,aAAa,CAClB,GAAW,EACX,EAAE,QAAQ,EAAE,UAAU,GAAG,EAAE,EAAE,aAAa,EAAwB,EAClE,aAAmC;;IAEnC,MAAM,iBAAiB,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAG,UAAU,CAAC,CAAC;IAE7D,MAAM,aAAa,GAAoB,aAAa;QAChD,CAAC,CAAC,wBAAwB,CAAC,GAAG,EAAE,aAAa,EAAE,aAAa,KAAK,MAAM,CAAC;QACxE,CAAC,CAAC;YACI,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,KAAK;SACzB,CAAC;IACR,MAAM,iBAAiB,GAAoB,iBAAiB;QACxD,CAAC,CAAC,wBAAwB,CACpB,GAAG,EACH,iBAAiB,EACjB,aAAa,KAAK,MAAM,CAC3B;QACH,CAAC,CAAC;YACI,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,KAAK;SACzB,CAAC;IAER,iDAAiD;IACjD,MAAM,SAAS,GACX,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,aAAa,CAAC,SAAS;QACvB,iBAAiB,CAAC,SAAS,CAAC;IAEhC,MAAM,eAAe,GACjB,aAAa,CAAC,eAAe,IAAI,iBAAiB,CAAC,eAAe,CAAC;IAEvE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CACjB,GAAW,EACX,EACI,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,aAAa,EACb,cAAc,GAAG,KAAK,GACH,EACvB,aAAmC;IAEnC,MAAM,MAAM,GAAG,aAAa,CACxB,GAAG,EACH,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,EACvD,aAAa,CAChB,CAAC;IACF,MAAM,SAAS,GAAG,cAAc,IAAI,MAAM,CAAC,SAAS,CAAC;IACrD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,mBAAmB,CACxB,aAA4B,EAC5B,GAAW,EACX,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAwB,EACnE,QAAkC,EAClC,QAAwB,EACxB,eAAsC;IAEtC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAEjD,IAAI,cAAc,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAC5C,aAAa,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC;QACzC,OAAO;IACX,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE3D,aAAa,CAAC,OAAO,CAAC;QAClB,CAAC,aAAa,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU;YAC5C,CAAC,CAAC,IAAI;YACN,CAAC,+CACQ,CAAC,aAAa,IAAI,EAAE,QAAQ,EAAE,CAAC,GAC/B,CAAC,cAAc,IAAI,EAAE,QAAQ,EAAE,CAAC,GAChC,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC,CACpC,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAC3B,MAAyD,EACzD,aAA8C,EAC9C,EACI,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,UAAU,GAAG,EAAE,EACf,aAAa,EAAE,kBAAkB,EACjC,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,GACK;IAEvB,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE;QAC/D,UAAU;QACV,UAAU;KACb,CAAC,CAAC;IAEH,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,8CAAwB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,SAAS;QACb,CAAC;QACD,MAAM,aAAa,GAAG,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,iBAAiB,CAAC;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,GAAG,UAAU,GAAG,sDAAgC,EAAE,CAAC;QAErE,MAAM,eAAe,GAAG,YAAY,CAChC,UAAU,EACV;YACI,QAAQ;YACR,UAAU;YACV,aAAa;YACb,cAAc;SACjB,EACD,aAAa,CAChB,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;YAC7B,SAAS;QACb,CAAC;QAED,IAAI,QAAQ,GAAG,YAAY,CAAC;QAC5B,IAAI,QAAQ,GAA8B,SAAS,CAAC;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,2CAA2C;YAC3C,QAAQ,GAAG,iBAAiB,CACxB,YAAY,EACZ,EAA6B,EAC7B,cAAc,CACjB,CAAC;YACF,QAAQ,GAAG,2BAA2B,CAAC,WAAW,EAAE,aAAa,EAAE;gBAC/D,QAAQ;gBACR,UAAU;gBACV,UAAU,EAAE,SAAS;gBACrB,YAAY;gBACZ,cAAc;gBACd,aAAa;gBACb,cAAc;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,IACH,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC7B,CAAC;YACC,QAAQ,GAAG,iBAAiB,CACxB,YAAY,EACZ,WAAW,CAAC,QAAmC,EAC/C,cAAc,CACjB,CAAC;YACF,8CAA8C;YAC9C,QAAQ,GAAG,sBAAsB,CAC7B,WAA8B,EAC9B,aAAa,EACb;gBACI,QAAQ;gBACR,UAAU;gBACV,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,QAAQ;gBACtB,aAAa;gBACb,cAAc;aACjB,CACJ,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,WAAW,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1D,wDAAwD;YACxD,SAAS;QACb,CAAC;aAAM,IAAI,OAAO,WAAW,KAAK,SAAS,IAAI,WAAW,EAAE,CAAC;YACzD,QAAQ,GAAG,iBAAiB,CACxB,YAAY,EACZ,EAA6B,EAC7B,cAAc,CACjB,CAAC;QACN,CAAC;QAED,mBAAmB,CACf,aAAa,EACb,UAAU,EACV;YACI,UAAU;YACV,cAAc;YACd,aAAa;SAChB,EACD,QAAQ,EACR,QAAQ,EACR,eAAe,CAAC,eAAe,CAClC,CAAC;IACN,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,mBAAmB,CACxB,GAAW,EACX,aAA+C;IAE/C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IACI,OAAO,QAAQ,KAAK,QAAQ;YAC5B,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ,CAAC,EAChD,CAAC;YACC,MAAM,CAAC,IAAI,CAAC;gBACR,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;aACzB,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,EAAE,EAA2B,CAAC,CAAC;IAEhC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CACxB,MAAuB,EACvB,aAAmC;;IAEnC,MAAM,kBAAkB,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,CAAC;IACtD,OAAO,CACH,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,GAAG,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;KACnE,CAAC,CAAC,mCAAI,SAAS,CACnB,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CACxB,MAAuB,EACvB,aAAmC,EACnC,IAAa;;IAEb,MAAM,cAAc,GAAG,IAAI;QACvB,CAAC,CAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAG,IAAI,CAAC,0CAAE,UAAU;QAC1C,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,oBAAoB,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,CAAC;IACvD,MAAM,gBAAgB,GAAG,cAAc;QACnC,CAAC,CAAC,YAAY,CAAC,oBAAoB,EAAE,cAAc,CAAC;QACpD,CAAC,CAAC,oBAAoB,CAAC;IAC3B,OAAO,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,uBAAuB,CAC5B,aAAmC,EACnC,IAAa,EACb,aAA6B;;IAE7B,MAAM,YAAY,GAAG,IAAI;QACrB,CAAC,CAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAG,IAAI,CAAC,0CAAE,QAAQ;QACxC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,kBAAkB,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,mCAAI,EAAE,CAAC;IACzD,MAAM,UAAU,GAAG,YAAY;QAC3B,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,YAAY,CAAC;QAChD,CAAC,CAAC,kBAAkB,CAAC;IACzB,OAAO,aAAa,IAAI,UAAU;QAC9B,CAAC,CAAC,IAAA,mCAAgB,EAAC,UAAU,EAAE,aAAa,CAAC;QAC7C,CAAC,CAAC,UAAU,CAAC;AACrB,CAAC;AAED,SAAS,iBAAiB,CACtB,iBAAsD,EACtD,YAAiD,EACjD,cAAmD;IAEnD,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IACnE,OAAO,YAAY,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,YAAY,CACjB,OAA4C,EAC5C,MAA2C;IAE3C,wDAAwD;IACxD,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC1C,iDAAiD;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAC5B,uDAAuD;IACvD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC;IACxE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,yBAAS,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,UAAU,CACf,WAA4B,EAC5B,EAAE,UAAU,EAAwB;IAEpC,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,eAAe,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,CACvC,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CACjB,WAAyC,EACzC,EAAE,UAAU,EAAE,UAAU,EAAwB;IAEhD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,EAAE,EAAc,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,iBAAiB,CACtB,WAA2D,EAC3D,aAA8C,EAC9C,EAAE,UAAU,EAAE,UAAU,EAAwB;;IAEhD,IAAI,CAAC,aAAa;QAAE,OAAO;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;QACvD,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,UAAU;QAChC,CAAC,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAG,UAAU,CAAC;QACpC,CAAC,CAAC,SAAS,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC;QAClB,CAAC;aAAM,IACH,iBAAiB;YACjB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAC7C,CAAC;YACC,OAAO,MAAM,CAAC;QAClB,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,2BAA2B,CAChC,WAAyC,EACzC,aAA8C,EAC9C,EACI,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,GACK;IAEvB,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,iBAAiB,CAAC,WAAW,EAAE,aAAa,EAAE;QAChE,UAAU;QACV,UAAU;KACb,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,iBAAiB,CACpC,YAAY,EACZ,SAAS,EACT,cAAc,CACjB,CAAC;IAEF,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,eAAe,GAAG,YAAY,CAChC,QAAQ,EACR;gBACI,QAAQ;gBACR,UAAU;gBACV,aAAa;gBACb,cAAc;aACjB,EACD,aAAa,CAChB,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;gBAC7B,OAAO;YACX,CAAC;YACD,mBAAmB,CACf,aAAa,EACb,QAAQ,EACR;gBACI,QAAQ;gBACR,UAAU;gBACV,cAAc;gBACd,aAAa;aAChB,EACD,cAAc,EACd,SAAS,EACT,eAAe,CAAC,eAAe,CAClC,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,MAAM,CACT,aAAa,EACb,sBAAsB,CAAC,MAAM,EAAE,aAAa,EAAE;gBAC1C,QAAQ;gBACR,UAAU;gBACV,UAAU;gBACV,aAAa;gBACb,YAAY;gBACZ,cAAc;gBACd,aAAa;gBACb,cAAc;aACjB,CAAC,CACL,CAAC;QACN,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"structural.helpers.js","sourceRoot":"","sources":["../../../src/utils/structural.helpers.ts"],"names":[],"mappings":"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"}
@@ -31,17 +31,13 @@ var STRUCTURE_RESERVED_WORDS = [
31
31
  "defaults",
32
32
  "subModules"
33
33
  ];
34
- var UserRole = /* @__PURE__ */ function(UserRole2) {
35
- UserRole2["MANAGER"] = "MANAGER";
36
- UserRole2["USER"] = "USER";
37
- return UserRole2;
38
- }({});
39
34
  var Widget = /* @__PURE__ */ function(Widget2) {
40
35
  Widget2["DASHBOARD"] = "dashboard";
41
36
  return Widget2;
42
37
  }({});
43
38
  var WidgetVersion = /* @__PURE__ */ function(WidgetVersion2) {
44
39
  WidgetVersion2["v1"] = "1.0";
40
+ WidgetVersion2["latest"] = "latest";
45
41
  return WidgetVersion2;
46
42
  }({});
47
43
 
@@ -632,35 +628,7 @@ _ts_decorate([
632
628
  _ts_metadata("design:type", typeof SubModulesDto === "undefined" ? Object : SubModulesDto)
633
629
  ], BaseDashboardV1StructureDto.prototype, "subModules", void 0);
634
630
 
635
- // src/interfaces/canvas.interface.ts
636
- var CanvasMode = /* @__PURE__ */ function(CanvasMode2) {
637
- CanvasMode2["VIEW"] = "VIEW";
638
- CanvasMode2["EDIT"] = "EDIT";
639
- CanvasMode2["INTERACTIVE_VIEW"] = "INTERACTIVE_VIEW";
640
- return CanvasMode2;
641
- }({});
642
-
643
- // src/config/structural-manager.config.ts
644
- var canvasModePermissions = {
645
- [CanvasMode.INTERACTIVE_VIEW]: {
646
- canDrag: true,
647
- canResize: true,
648
- canSelectMultiple: false,
649
- canDelete: true,
650
- displayCanvasBorder: false,
651
- autoscrolling: true
652
- },
653
- [CanvasMode.EDIT]: {
654
- canDrag: true,
655
- canResize: true,
656
- canSelectMultiple: true,
657
- canDelete: true,
658
- displayCanvasBorder: true,
659
- autoscrolling: true
660
- }
661
- };
662
-
663
- // src/constants/dashboard.structure.v1.ts
631
+ // src/structures/dashboard.structure.v1.ts
664
632
  var dashboardV1Config = {
665
633
  version: "1.0",
666
634
  baseStructure: {
@@ -792,7 +760,7 @@ var dashboardV1Config = {
792
760
  "qMnuInsertHeader",
793
761
  "qMnuInsertTabs"
794
762
  ],
795
- qArrange: [
763
+ qMnuArrange: [
796
764
  "qMnuBringToFront",
797
765
  "qMnuSendToBack",
798
766
  {
@@ -906,7 +874,8 @@ var dashboard_structure_v1_default = dashboardV1Config;
906
874
  // src/constants/configs.ts
907
875
  var widgetConfigs = {
908
876
  [Widget.DASHBOARD]: {
909
- [WidgetVersion.v1]: dashboard_structure_v1_default
877
+ [WidgetVersion.v1]: dashboard_structure_v1_default,
878
+ [WidgetVersion.latest]: dashboard_structure_v1_default
910
879
  }
911
880
  };
912
881
 
@@ -1133,15 +1102,6 @@ function isObject(value) {
1133
1102
  __name(isObject, "isObject");
1134
1103
 
1135
1104
  // src/utils/structural.helpers.ts
1136
- var VALID_ROLES = [
1137
- UserRole.MANAGER,
1138
- UserRole.USER
1139
- ];
1140
- function validateUserRole(role) {
1141
- if (!role) return false;
1142
- return VALID_ROLES.includes(role);
1143
- }
1144
- __name(validateUserRole, "validateUserRole");
1145
1105
  function getWidgetStructure(config, customization, validationMap) {
1146
1106
  return calculateViewMap(config.baseStructure, customization, validationMap);
1147
1107
  }
@@ -1477,25 +1437,21 @@ function calculatePermissionMapArray(configValue, customization, { viewKeys, vie
1477
1437
  __name(calculatePermissionMapArray, "calculatePermissionMapArray");
1478
1438
 
1479
1439
  // src/structural-manager.ts
1480
- var structureInstanceMap = /* @__PURE__ */ new Map();
1481
- var DEFAULT_USER_ROLE = UserRole.MANAGER;
1482
- function buildStructureInstance(widget, version, customization, userRole = "") {
1440
+ function buildStructure(widget, version, customization) {
1483
1441
  var _a;
1484
- const widgetConfigurability = (_a = widgetConfigs[widget]) == null ? void 0 : _a[version];
1442
+ const versionSet = version != null ? version : WidgetVersion.latest;
1443
+ const widgetConfigurability = (_a = widgetConfigs[widget]) == null ? void 0 : _a[versionSet];
1485
1444
  if (!widgetConfigurability) {
1486
1445
  throw new Error(`No config found for widget ${widget} and version ${version}`);
1487
1446
  }
1488
1447
  const structureMap = getWidgetStructure(widgetConfigurability, customization, DX_VALIDATOR_MAP);
1489
- const role = validateUserRole(userRole) ? userRole : DEFAULT_USER_ROLE;
1490
- return new WidgetStructureInstance(structureMap, role);
1448
+ return new WidgetStructureInstance(structureMap);
1491
1449
  }
1492
- __name(buildStructureInstance, "buildStructureInstance");
1450
+ __name(buildStructure, "buildStructure");
1493
1451
  var _WidgetStructureInstance = class _WidgetStructureInstance {
1494
- constructor(viewMap, role) {
1452
+ constructor(viewMap) {
1495
1453
  __publicField(this, "viewMap");
1496
- __publicField(this, "role");
1497
1454
  this.viewMap = viewMap;
1498
- this.role = role;
1499
1455
  }
1500
1456
  getValue(key) {
1501
1457
  return this.viewMap[key];
@@ -1508,12 +1464,6 @@ var _WidgetStructureInstance = class _WidgetStructureInstance {
1508
1464
  }
1509
1465
  return true;
1510
1466
  }
1511
- hasPermission() {
1512
- return this.role === DEFAULT_USER_ROLE;
1513
- }
1514
- getCanvasPermissions(mode) {
1515
- return canvasModePermissions[mode];
1516
- }
1517
1467
  getChildMap(key) {
1518
1468
  const value = this.getValue(key);
1519
1469
  if (!value || typeof value === "boolean" || typeof value === "string" || !value.childMap) return void 0;
@@ -1533,6 +1483,6 @@ var _WidgetStructureInstance = class _WidgetStructureInstance {
1533
1483
  __name(_WidgetStructureInstance, "WidgetStructureInstance");
1534
1484
  var WidgetStructureInstance = _WidgetStructureInstance;
1535
1485
 
1536
- export { dashboard_structure_doc_exports as DashboardDoc, UserRole, Widget, WidgetStructureInstance, WidgetVersion, buildStructureInstance, structureInstanceMap };
1486
+ export { dashboard_structure_doc_exports as DashboardDoc, Widget, WidgetStructureInstance, WidgetVersion, buildStructure };
1537
1487
  //# sourceMappingURL=index.mjs.map
1538
1488
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/structure.constants.ts","../../src/doc/dashboard.structure.doc.ts","../../src/interfaces/canvas.interface.ts","../../src/config/structural-manager.config.ts","../../src/constants/dashboard.structure.v1.ts","../../src/constants/configs.ts","../../src/models/conditions.models.ts","../../src/utils/conditions.helpers.ts","../../src/utils/defaults.helpers.ts","../../src/utils/merge.helpers.ts","../../src/utils/structural.helpers.ts","../../src/structural-manager.ts"],"names":["STRUCTURE_SECTION_NAME_SEPARATOR","STRUCTURE_VIEW_NAME_SEPARATOR","STRUCTURE_RESERVED_WORDS","UserRole","Widget","WidgetVersion","ViewsDto","list","design","preview","endUser","type","String","description","example","AssetListDto","defaults","asset","Object","assetListViewMode","optionMenu","MenuBarDto","file","edit","grid","insert","qArrange","qMnuDownloadDash","qMnuInsertChart","qMnuInsertFilterCtrl","qMnuAlign","FilterPanelDto","qAddFilter","qEnabDisabAllFilters","qDeleteAllFilters","qFilterSettings","dashFilterScope","tabFilterScope","panelFilterScope","SubModulesDto","chartPanel","chartGallery","chartBuilder","BaseDashboardV1StructureDto","views","navBar","endUserTopBar","assetList","controlBarLeft","controlBarRight","header","menuBar","toolBar","configPanel","filterPanel","downloadModal","subModules","qInsertChart","qInsertFilterCtrl","qDownloadDash","qResponsiveView","qAlign","CanvasMode","canvasModePermissions","INTERACTIVE_VIEW","canDrag","canResize","canSelectMultiple","canDelete","displayCanvasBorder","autoscrolling","EDIT","dashboardV1Config","version","baseStructure","widgetConfigs","DASHBOARD","v1","allowedOperators","isOperator","value","includes","getValue","condition","state","field","_evalConditionOperator","operator","OPERATOR_MAP","a","b","startsWith","endsWith","contains","evaluateCondition","conditions","length","every","c","_evalCondition","evalFn","checkConditions","cond","effect","result","FONT_SIZES","applyValidation","currentObj","validatorMap","parentKey","validatedObj","keys","forEach","key","fullKey","Array","isArray","validateDefaults","obj","isANumber","_value","Number","isNaN","undefined","numberMinMaxValue","maxValue","minValue","fontSizeMinMaxValue","minSize","maxSize","inputSize","parseInt","validFontSizes","filter","size","closestSize","smallestDiff","Math","abs","diff","fontColorValue","normalizedColor","toLowerCase","validateType","validValues","receivedValue","toUpperCase","DX_VALIDATOR_MAP","mergeDeep","obj1","obj2","settings","defaultSettings","mergeExistingValues","mergeMissingProperties","isValid","objectCopy","val1","val2","isObject","map","item","prototype","hasOwnProperty","call","toString","VALID_ROLES","MANAGER","USER","validateUserRole","role","getWidgetStructure","config","customization","validationMap","calculateViewMap","permissionMap","view","assign","calculateSpecificViewMap","customDefaults","calculateCustomDefaults","prevDefaults","submodules","calculateSubmodules","conditionMaps","calculateConditions","calculatePermissionMap","viewDefinition","viewKeys","viewPrefix","getViewPrefix","getStructureKey","viewValue","matchWildcard","pattern","regexPattern","RegExp","replace","test","keyIsIncludedInKeep","keep","keyIsIncludedInRemove","remove","canInsertInCustomization","validateKeepOption","includedInRemove","canInsert","keepValue","keepResult","conditionAffect","evalInsertKey","hasKeepOption","customizationView","custCanInsert","custViewCanInsert","some","x","canInsertKey","checkCondition","addKeyToPermissions","childMap","keyAttr","addDefaultKey","addChildMapKey","getConditionsForKey","pathPrefix","previousKeepOption","currentKeepOption","nodeHasKeepOption","configValue","currentKey","newPrefix","canInsertResult","calculateDefaults","calculatePermissionMapArray","reduce","mapValue","push","customConditionals","conditional","viewSubmodules","customRootSubmodules","customSubmodules","mergeObjects","viewDefaults","customRootDefaults","defaultObj","structureDefaults","itemDefaults","baseDefaults","prevObj","newObj","mapObjKeys","mapArrayKeys","nodeKeys","defaultsSimple","option","fullPath","structureInstanceMap","Map","DEFAULT_USER_ROLE","buildStructureInstance","widget","userRole","widgetConfigurability","Error","structureMap","WidgetStructureInstance","constructor","viewMap","isVisible","hasPermission","getCanvasPermissions","mode","getChildMap","getSubmodule","module","getDefaults"],"mappings":"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","file":"index.mjs","sourcesContent":["export const STRUCTURE_SECTION_NAME_SEPARATOR = '.';\nexport const STRUCTURE_VIEW_NAME_SEPARATOR = '::';\nexport const STRUCTURE_RESERVED_WORDS = ['views', 'defaults', 'subModules'];\n\nexport enum UserRole {\n MANAGER = 'MANAGER',\n USER = 'USER',\n}\n\nexport enum Widget {\n DASHBOARD = 'dashboard',\n}\n\nexport enum WidgetVersion {\n v1 = '1.0',\n}\n","import { ApiProperty } from '@nestjs/swagger';\n\nexport class ViewsDto {\n @ApiProperty({\n type: [String],\n description: 'Keys to show in list view',\n example: ['navBar', 'assetList', 'controlBarLeft', 'controlBarRight'],\n })\n list!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Keys to show in design view',\n example: [\n 'navBar',\n 'header',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'downloadModal',\n ],\n })\n design!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Keys to show in preview view',\n example: ['navBar', 'header', 'controlBarRight', 'filterPanel'],\n })\n preview!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Keys to show in end user view',\n example: ['navBar', 'toolBar', 'filterPanel', 'downloadModal'],\n })\n endUser!: string[];\n}\n\nexport class AssetListDto {\n @ApiProperty({\n type: Object,\n description: 'Default settings for the asset list',\n example: { assetListViewMode: 'card' },\n })\n defaults!: Record<string, unknown>;\n\n @ApiProperty({\n type: Object,\n description: 'Per-asset option menu configuration',\n example: {\n optionMenu: [\n 'qEditDash',\n 'qRenameDash',\n 'qDeleteDash',\n 'qDuplDash',\n 'qShareDash',\n ],\n },\n })\n asset!: Record<string, unknown>;\n}\n\nexport class MenuBarDto {\n @ApiProperty({\n type: Object,\n description: 'File menu definitions (nested structures allowed)',\n example: {\n file: [\n 'qMnuCreateDash',\n 'qMnuOpenDash',\n 'qMnuDuplicateDash',\n 'qMnuCanvasSize',\n 'qMnuThemes',\n 'qShareDash',\n 'qMnuDeleteDash',\n 'qCreateCustomViewDataset',\n {\n qMnuDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n },\n ],\n },\n })\n file!: Record<string, unknown>;\n\n @ApiProperty({\n type: [String],\n description: 'Edit menu options',\n example: [\n 'qUndoRedo',\n 'qCopyElement',\n 'qPasteElement',\n 'qCutElement',\n 'qRemoveElement',\n 'qDuplElement',\n 'qSelectAllElem',\n 'qSelectAllContElem',\n ],\n })\n edit!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Grid menu toggles',\n example: ['qMnuSnapToGrid', 'qMnuDisplayGrid', 'qMnuSwitchGrid'],\n })\n grid!: string[];\n\n @ApiProperty({\n type: [Object],\n description: 'Insert menu definitions (nested items allowed)',\n example: [\n {\n qMnuInsertChart: [\n 'qMnuExistingChart',\n 'qMnuNewChart',\n 'qMnuNewChartAI',\n ],\n qMnuInsertFilterCtrl: [\n 'qMnuDatePicker',\n 'qMnuInputBox',\n 'qMnuMultiSelectList',\n ],\n },\n 'qMnuInsertText',\n 'qMnuInsertImage',\n 'qMnuInsertButton',\n 'qMnuInsertContainer',\n 'qMnuInsertHeader',\n 'qMnuInsertTabs',\n ],\n })\n insert!: (Record<string, unknown> | string)[];\n\n @ApiProperty({\n type: [Object],\n description: 'Arrange menu definitions with nested align options',\n example: [\n 'qMnuBringToFront',\n 'qMnuSendToBack',\n {\n qMnuAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n ],\n })\n qArrange!: (Record<string, unknown> | string)[];\n}\n\nexport class FilterPanelDto {\n @ApiProperty({ description: 'Toggle adding filters', example: true })\n qAddFilter!: boolean;\n\n @ApiProperty({\n description: 'Toggle enabling/disabling all filters',\n example: true,\n })\n qEnabDisabAllFilters!: boolean;\n\n @ApiProperty({ description: 'Toggle deleting all filters', example: true })\n qDeleteAllFilters!: boolean;\n\n @ApiProperty({ description: 'Filter settings menu', example: true })\n qFilterSettings!: boolean;\n\n @ApiProperty({\n type: [String],\n description: 'Actions scoped to dashboard filters',\n example: ['qEditFilter', 'qEnabDisabFilter', 'qDeleteFilter'],\n })\n dashFilterScope!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Actions scoped to tab filters',\n example: ['qEditFilter', 'qEnabDisabFilter', 'qDeleteFilter'],\n })\n tabFilterScope!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Actions scoped to panel filters',\n example: ['qEditFilter', 'qEnabDisabFilter', 'qDeleteFilter'],\n })\n panelFilterScope!: string[];\n}\n\nexport class SubModulesDto {\n @ApiProperty({\n type: Object,\n description: 'Chart panel submodule',\n example: {},\n })\n chartPanel!: Record<string, unknown>;\n\n @ApiProperty({\n type: Object,\n description: 'Chart gallery submodule',\n example: {},\n })\n chartGallery!: Record<string, unknown>;\n\n @ApiProperty({\n type: Object,\n description: 'Chart builder submodule',\n example: {},\n })\n chartBuilder!: Record<string, unknown>;\n}\n\nexport class BaseDashboardV1StructureDto {\n @ApiProperty({ type: ViewsDto, description: 'View mode definitions' })\n views!: ViewsDto;\n\n @ApiProperty({\n type: [String],\n description: 'Navbar component keys',\n example: ['qAppTitle', 'qBackButton'],\n })\n navBar!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'End-user top bar component keys',\n example: ['indicator', 'options'],\n })\n endUserTopBar!: string[];\n\n @ApiProperty({\n type: AssetListDto,\n description: 'Asset list component settings',\n })\n assetList!: AssetListDto;\n\n @ApiProperty({\n type: [String],\n description: 'Left control bar component keys',\n example: ['qCreateDash'],\n })\n controlBarLeft!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Right control bar component keys',\n example: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qSortBy',\n 'qSearch',\n 'qSelectColumn',\n 'qStatus',\n 'qPreview',\n 'qDiscard',\n 'qPublish',\n 'qDesign',\n ],\n })\n controlBarRight!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Header component keys',\n example: ['qDashFavorite', 'qShareDash', 'qDashName', 'qDashDesc'],\n })\n header!: string[];\n\n @ApiProperty({\n type: MenuBarDto,\n description: 'Main menu bar configuration',\n })\n menuBar!: MenuBarDto;\n\n @ApiProperty({\n type: [Object],\n description: 'Toolbar items (strings or nested definitions)',\n example: [\n 'qCanvasSize',\n {\n qInsertChart: ['qExistingChart', 'qNewChart', 'qNewChartAI'],\n qInsertFilterCtrl: [\n 'qDatePicker',\n 'qInputBox',\n 'qMultiSelectList',\n ],\n grid: ['qSnapToGrid', 'qDisplayGrid', 'qSwitchGrid'],\n qDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qResponsiveView: [\n 'qDesktop',\n 'qTablet',\n 'qMobile',\n 'qBreakpoints',\n ],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n 'qInsertText',\n 'qCreateCustomViewDataset',\n 'qInsertImage',\n 'qInsertButton',\n 'qInsertContainer',\n 'qRespGridMargins',\n 'qRespGridColumns',\n 'qThemes',\n 'qUndoRedo',\n 'qDashVersion',\n 'qGetDashVersion',\n 'qHiddenItems',\n 'qDiscard',\n 'qSave',\n 'qHideToolBar',\n ],\n })\n toolBar!: (string | Record<string, unknown>)[];\n\n @ApiProperty({\n description: 'Whether the config panel is enabled',\n example: true,\n })\n configPanel!: boolean;\n\n @ApiProperty({ type: FilterPanelDto, description: 'Filter panel controls' })\n filterPanel!: FilterPanelDto;\n\n @ApiProperty({\n type: [String],\n description: 'Download modal options',\n example: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n })\n downloadModal!: string[];\n\n @ApiProperty({\n type: SubModulesDto,\n description: 'Submodule configurations',\n })\n subModules!: SubModulesDto;\n}\n","export interface CanvasModeConfig {\n canDrag: boolean;\n canResize: boolean;\n canSelectMultiple: boolean;\n canDelete: boolean;\n displayCanvasBorder?: boolean;\n autoscrolling?: boolean | (() => boolean);\n}\n\nexport enum CanvasMode {\n VIEW = 'VIEW',\n EDIT = 'EDIT',\n INTERACTIVE_VIEW = 'INTERACTIVE_VIEW',\n}\n","import { CanvasMode, CanvasModeConfig } from '../interfaces/canvas.interface';\n\nexport const canvasModePermissions: Partial<\n Record<CanvasMode, CanvasModeConfig>\n> = {\n [CanvasMode.INTERACTIVE_VIEW]: {\n canDrag: true,\n canResize: true,\n canSelectMultiple: false,\n canDelete: true,\n displayCanvasBorder: false,\n autoscrolling: true,\n },\n [CanvasMode.EDIT]: {\n canDrag: true,\n canResize: true,\n canSelectMultiple: true,\n canDelete: true,\n displayCanvasBorder: true,\n autoscrolling: true,\n },\n};\n","import { WidgetConfig } from '../models/structure.models';\n\nconst dashboardV1Config: WidgetConfig = {\n version: '1.0',\n baseStructure: {\n views: {\n list: ['navBar', 'assetList', 'controlBarLeft', 'controlBarRight'],\n design: [\n 'navBar',\n 'header',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'downloadModal',\n ],\n preview: ['navBar', 'header', 'controlBarRight', 'filterPanel'],\n endUser: ['navBar', 'toolBar', 'filterPanel', 'downloadModal'],\n },\n\n navBar: ['qAppTitle', 'qBackButton'],\n\n endUserTopBar: ['indicator', 'options'],\n\n assetList: {\n defaults: {\n assetListViewMode: 'card',\n },\n asset: {\n optionMenu: [\n 'qEditDash',\n 'qRenameDash',\n 'qDeleteDash',\n 'qDuplDash',\n 'qShareDash',\n ],\n },\n },\n\n controlBarLeft: ['qCreateDash'],\n\n controlBarRight: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qSortBy',\n 'qSearch',\n 'qSelectColumn',\n 'qStatus',\n 'qPreview',\n 'qDiscard',\n 'qPublish',\n 'qDesign',\n ],\n\n header: ['qDashFavorite', 'qShareDash', 'qDashName', 'qDashDesc'],\n\n menuBar: {\n file: [\n 'qMnuCreateDash',\n 'qMnuOpenDash',\n 'qMnuDuplicateDash',\n 'qMnuCanvasSize',\n 'qMnuThemes',\n 'qShareDash',\n 'qMnuDeleteDash',\n 'qCreateCustomViewDataset',\n {\n qMnuDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n },\n ],\n edit: [\n 'qUndoRedo',\n 'qCopyElement',\n 'qPasteElement',\n 'qCutElement',\n 'qRemoveElement',\n 'qDuplElement',\n 'qSelectAllElem',\n 'qSelectAllContElem',\n ],\n grid: ['qMnuSnapToGrid', 'qMnuDisplayGrid', 'qMnuSwitchGrid'],\n insert: [\n {\n qMnuInsertChart: [\n 'qMnuExistingChart',\n 'qMnuNewChart',\n 'qMnuNewChartAI',\n ],\n qMnuInsertFilterCtrl: [\n 'qMnuDatePicker',\n 'qMnuInputBox',\n 'qMnuMultiSelectList',\n ],\n },\n 'qMnuInsertText',\n 'qMnuInsertImage',\n 'qMnuInsertButton',\n 'qMnuInsertContainer',\n 'qMnuInsertHeader',\n 'qMnuInsertTabs',\n ],\n qArrange: [\n 'qMnuBringToFront',\n 'qMnuSendToBack',\n {\n qMnuAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n ],\n },\n toolBar: [\n 'qCanvasSize',\n {\n qInsertChart: ['qExistingChart', 'qNewChart', 'qNewChartAI'],\n qInsertFilterCtrl: [\n 'qDatePicker',\n 'qInputBox',\n 'qMultiSelectList',\n ],\n grid: ['qSnapToGrid', 'qDisplayGrid', 'qSwitchGrid'],\n qDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qResponsiveView: [\n 'qDesktop',\n 'qTablet',\n 'qMobile',\n 'qBreakpoints',\n ],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n 'qInsertText',\n 'qCreateCustomViewDataset',\n 'qInsertImage',\n 'qInsertButton',\n 'qInsertContainer',\n 'qRespGridMargins',\n 'qRespGridColumns',\n 'qThemes',\n 'qUndoRedo',\n\n // only for end user\n 'qDashVersion',\n 'qGetDashVersion',\n 'qHiddenItems',\n 'qDiscard',\n 'qSave',\n 'qHideToolBar',\n ],\n configPanel: true,\n filterPanel: {\n qAddFilter: true,\n qEnabDisabAllFilters: true,\n qDeleteAllFilters: true,\n qFilterSettings: true,\n dashFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n tabFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n panelFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n },\n downloadModal: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n subModules: {\n chartPanel: {},\n chartGallery: {},\n chartBuilder: {},\n },\n },\n};\n\nexport default dashboardV1Config;\n","import dashboardV1Config from './dashboard.structure.v1';\nimport { Widget, WidgetVersion } from './structure.constants';\nimport { WidgetConfigsMap } from './widget.config';\n\nexport const widgetConfigs: WidgetConfigsMap = {\n [Widget.DASHBOARD]: {\n [WidgetVersion.v1]: dashboardV1Config,\n },\n};\n","export const allowedOperators = [\n '=',\n '!=',\n '>',\n '>=',\n '<',\n '<=',\n 'startsWith',\n 'endsWith',\n 'contains',\n] as const;\nexport type Operators = (typeof allowedOperators)[number];\n\nexport type ConditionValue = string | number;\n\nexport interface Condition {\n field: string;\n operator: Operators;\n value: ConditionValue;\n}\n\nexport type ConditionState = Record<string, ConditionValue>;\n\nexport type OperatorConditionFn = (\n value: Condition,\n state: Record<string, ConditionValue>,\n) => boolean;\n","import {\n Condition,\n ConditionState,\n ConditionValue,\n OperatorConditionFn,\n Operators,\n allowedOperators,\n} from '../models/conditions.models';\nimport { WidgetItemCondition } from '../models/structure.models';\n\nfunction isOperator(value: string): value is Operators {\n return allowedOperators.includes(value as Operators);\n}\n\nfunction getValue(condition: Condition, state: ConditionState): ConditionValue {\n return state[condition.field];\n}\n\nfunction _evalConditionOperator(\n condition: Condition,\n state: ConditionState,\n operator: (a: ConditionValue, b: ConditionValue) => boolean,\n): boolean {\n const value = getValue(condition, state);\n if (value == null) return false;\n return operator(value, condition.value);\n}\n\nconst OPERATOR_MAP: Record<Operators, OperatorConditionFn> = {\n '=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a == b),\n '!=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a != b),\n '<': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a < b),\n '<=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a <= b),\n '>': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a > b),\n '>=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a >= b),\n\n startsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' &&\n typeof b === 'string' &&\n a.startsWith(b),\n ),\n\n endsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.endsWith(b),\n ),\n\n contains: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.includes(b),\n ),\n};\n\nexport function evaluateCondition(\n state: ConditionState | undefined,\n ...conditions: Condition[]\n): boolean {\n if (!state) return false;\n if (conditions.length === 0) return true;\n return conditions.every((c) => _evalCondition(state, c));\n}\n\nfunction _evalCondition(state: ConditionState, condition: Condition): boolean {\n if (!isOperator(condition.operator)) return false;\n const evalFn = OPERATOR_MAP[condition.operator];\n return evalFn(condition, state);\n}\n\nexport function checkConditions(\n state: ConditionState | undefined,\n conditions: WidgetItemCondition[],\n): boolean {\n if (!state) return false;\n for (const cond of conditions) {\n if (cond.effect === 'keep') continue;\n const result = evaluateCondition(state, cond.condition);\n if (result) return false;\n }\n return true;\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ValidationFN<T = any> = (value: T) => T | undefined;\nconst FONT_SIZES: number[] = [\n 8, 9, 10, 11, 12, 14, 15, 16, 18, 24, 30, 36, 48, 60, 72, 96,\n];\nexport type ValidationMap = Record<string, ValidationFN>;\n\nfunction applyValidation(\n currentObj: Record<string, unknown>,\n validatorMap: ValidationMap,\n parentKey = '',\n): Record<string, unknown> {\n const validatedObj: Record<string, unknown> = {};\n\n Object.keys(currentObj).forEach((key) => {\n const fullKey = parentKey ? `${parentKey}.${key}` : key;\n const value = currentObj[key];\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null\n ) {\n validatedObj[key] = applyValidation(\n value as Record<string, unknown>,\n validatorMap,\n fullKey,\n );\n } else if (validatorMap[fullKey]) {\n validatedObj[key] = validatorMap[fullKey](value);\n } else {\n validatedObj[key] = value;\n }\n });\n\n return validatedObj;\n}\n\nexport function validateDefaults(\n obj: Record<string, unknown>,\n validatorMap: ValidationMap,\n) {\n return applyValidation(obj, validatorMap);\n}\n\nconst isANumber = (value: string | number) => {\n const _value = Number(value);\n if (!_value || isNaN(_value)) return undefined;\n return _value;\n};\n\nconst numberMinMaxValue =\n (maxValue: number, minValue?: number) => (value: string) => {\n const _value = isANumber(value);\n if (!_value) return undefined;\n if (minValue && _value < minValue) return minValue;\n if (_value > maxValue) return maxValue;\n return _value;\n };\n\nexport const fontSizeMinMaxValue =\n (minSize: number, maxSize: number) =>\n (value: string): string | undefined => {\n const inputSize = parseInt(value, 10);\n // Check if the inputSize is valid and within range\n if (\n FONT_SIZES.includes(inputSize) &&\n inputSize >= minSize &&\n inputSize <= maxSize\n ) {\n return `${inputSize}px`;\n }\n\n // Filter FONT_SIZES by min and max\n const validFontSizes = FONT_SIZES.filter(\n (size) => size >= minSize && size <= maxSize,\n );\n\n if (validFontSizes.length === 0) {\n return undefined;\n }\n\n // Find the closest font size\n let closestSize = validFontSizes[0];\n let smallestDiff = Math.abs(inputSize - closestSize);\n\n for (const size of validFontSizes) {\n const diff = Math.abs(inputSize - size);\n if (diff < smallestDiff) {\n smallestDiff = diff;\n closestSize = size;\n }\n }\n\n // Return the closest font size as a string with 'px'\n return `${closestSize}px`;\n };\nexport const fontColorValue = (value: string) => {\n const normalizedColor = value.toLowerCase();\n return normalizedColor;\n};\n\nconst validateType = (validValues: string[]) => (value: unknown) => {\n if (typeof value !== 'string') return undefined;\n const receivedValue = value.toUpperCase();\n return validValues.includes(receivedValue) ? receivedValue : undefined;\n};\n\nexport const DX_VALIDATOR_MAP: ValidationMap = {\n 'customStyles.header.height': numberMinMaxValue(300, 10),\n 'customStyles.text.fontSize': fontSizeMinMaxValue(8, 96),\n 'customStyles.text.fontColor': fontColorValue,\n 'customStyles.container.borderWidth': numberMinMaxValue(20, 1),\n 'customStyles.container.borderRadius': numberMinMaxValue(100, 0),\n\n // Filter Controls: MULTISELECT LIST\n 'customStyles.filterList.type': validateType(['LIST', 'DROPDOWN']),\n 'customStyles.filterList.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: INPUTBOX\n 'customStyles.filterInput.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: DATE\n 'customStyles.filterDate.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n};\n","export interface MergeDeepSettings {\n mergeMissingProperties?: boolean;\n mergeExistingValues?: boolean;\n}\n\nexport function mergeDeep(\n obj1: any,\n obj2: any,\n settings?: MergeDeepSettings,\n): any {\n const defaultSettings = {\n mergeExistingValues: settings?.mergeExistingValues ?? true,\n mergeMissingProperties: settings?.mergeMissingProperties ?? true,\n };\n\n if (!isValid(obj1, obj2)) return objectCopy(obj1);\n\n const result: any = Array.isArray(obj1) ? [] : {};\n\n for (const key in obj1) {\n const val1 = obj1[key];\n const val2 = obj2?.[key];\n\n if (isObject(val1) || Array.isArray(val1)) {\n result[key] = mergeDeep(val1, val2, defaultSettings);\n } else if (key in obj2 && defaultSettings.mergeExistingValues) {\n result[key] = val2;\n } else {\n result[key] = val1;\n }\n }\n\n if (defaultSettings.mergeMissingProperties) {\n for (const key in obj2) {\n if (!(key in result)) {\n result[key] = obj2[key];\n }\n }\n }\n\n return result;\n}\n\nfunction isValid(obj1: any, obj2: any): boolean {\n return (\n (isObject(obj1) && isObject(obj2)) ||\n (Array.isArray(obj1) && Array.isArray(obj2))\n );\n}\n\nfunction objectCopy<T = any>(obj: T): T {\n if (obj === null || typeof obj !== 'object') return obj;\n\n if (Array.isArray(obj)) {\n return obj.map((item) => objectCopy(item)) as any;\n }\n\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[key] = objectCopy((obj as any)[key]);\n }\n }\n\n return result;\n}\n\nfunction isObject(value: any): boolean {\n return (\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n","import { ValidationMap, validateDefaults } from './defaults.helpers';\nimport { mergeDeep } from './merge.helpers';\nimport {\n STRUCTURE_RESERVED_WORDS,\n STRUCTURE_SECTION_NAME_SEPARATOR,\n STRUCTURE_VIEW_NAME_SEPARATOR,\n UserRole,\n} from '../constants/structure.constants';\nimport { WidgetCustomization } from '../models/customization.models';\nimport {\n WidgetConditionMap,\n WidgetConfig,\n WidgetItemCondition,\n WidgetStructure,\n WidgetStructureRoot,\n WidgetViewMap,\n} from '../models/structure.models';\n\ntype hasKeepOptType = 'root' | 'view';\n\ninterface CalculateViewOptions {\n viewKeys?: string[];\n pathPrefix?: string;\n viewPrefix?: string;\n hasKeepOption?: hasKeepOptType;\n prevDefaults?: Record<string, unknown>;\n customDefaults?: Record<string, unknown>;\n conditionMaps?: WidgetConditionMap[];\n checkCondition?: boolean;\n}\n\ntype ConditionAffectValue = false | 'keep' | 'remove';\n\ninterface InsertionResult {\n canInsert: boolean;\n conditionAffect: ConditionAffectValue;\n}\n\nconst VALID_ROLES = [UserRole.MANAGER, UserRole.USER];\n\n/**\n * Validates if a role is valid\n * @param role role to be validated\n * @returns boolean response checking if the user is in a valid role\n */\nexport function validateUserRole(role?: string) {\n if (!role) return false;\n return VALID_ROLES.includes(role as UserRole);\n}\n\n/**\n * constructs the permission map structure for a widget\n * @param config configuration of a widget\n * @param customization customization options for a widget\n * @param validationMap\n * @returns object representing the view map for the widget\n */\nexport function getWidgetStructure(\n config: WidgetConfig,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n): WidgetViewMap {\n return calculateViewMap(config.baseStructure, customization, validationMap);\n}\n\nexport function calculateViewMap(\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n if (config.views) {\n for (const view in config.views) {\n Object.assign(\n permissionMap,\n calculateSpecificViewMap(\n view,\n config,\n customization,\n validationMap,\n ),\n );\n }\n } else {\n const customDefaults = calculateCustomDefaults(\n customization,\n undefined,\n validationMap,\n );\n const prevDefaults = config.defaults;\n\n const submodules = calculateSubmodules(config, customization);\n if (submodules) {\n permissionMap.subModules = submodules;\n }\n\n const conditionMaps = calculateConditions(config, customization);\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n prevDefaults,\n customDefaults,\n conditionMaps,\n }),\n );\n }\n return permissionMap;\n}\n\nfunction calculateSpecificViewMap(\n view: string,\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n) {\n const viewDefinition = config.views![view];\n const customDefaults = calculateCustomDefaults(\n customization,\n view,\n validationMap,\n );\n const prevDefaults = config.defaults;\n\n const permissionMap: WidgetViewMap = {};\n\n const submodules = calculateSubmodules(config, customization, view);\n if (submodules) {\n permissionMap[`${view}::subModules`] = submodules;\n }\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n viewKeys: viewDefinition,\n viewPrefix: view,\n prevDefaults,\n customDefaults,\n }),\n );\n\n return permissionMap;\n}\n\nfunction getViewPrefix(view?: string) {\n return view ? `${view}${STRUCTURE_VIEW_NAME_SEPARATOR}` : '';\n}\n\nfunction getStructureKey(key: string, viewPrefix?: string): string {\n const viewValue = getViewPrefix(viewPrefix);\n return `${viewValue}${key}`;\n}\n\nconst matchWildcard = (pattern: string, value: string): boolean => {\n const regexPattern = new RegExp(\n '^' + pattern.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*') + '$',\n );\n return regexPattern.test(value);\n};\n\nfunction keyIsIncludedInKeep(\n key: string,\n customization: WidgetCustomization,\n): boolean {\n const { keep = [] } = customization;\n for (const pattern of keep) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction keyIsIncludedInRemove(\n key: string,\n customization: WidgetCustomization,\n): boolean {\n const { remove = [] } = customization;\n for (const pattern of remove) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction canInsertInCustomization(\n key: string,\n customization: WidgetCustomization,\n validateKeepOption?: boolean,\n): InsertionResult {\n const includedInRemove = keyIsIncludedInRemove(key, customization);\n const canInsert =\n !includedInRemove &&\n (!validateKeepOption || keyIsIncludedInKeep(key, customization));\n\n const keepValue = keyIsIncludedInKeep(key, customization)\n ? 'keep'\n : 'remove';\n const keepResult = validateKeepOption ? keepValue : false;\n const conditionAffect = includedInRemove ? 'remove' : keepResult;\n return { canInsert, conditionAffect };\n}\n\nfunction evalInsertKey(\n key: string,\n { viewKeys, viewPrefix = '', hasKeepOption }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const customizationView = customization?.views?.[viewPrefix];\n\n const custCanInsert: InsertionResult = customization\n ? canInsertInCustomization(key, customization, hasKeepOption === 'root')\n : {\n canInsert: true,\n conditionAffect: false,\n };\n const custViewCanInsert: InsertionResult = customizationView\n ? canInsertInCustomization(\n key,\n customizationView,\n hasKeepOption === 'view',\n )\n : {\n canInsert: true,\n conditionAffect: false,\n };\n\n // validate remove and keep attributes for views.\n const canInsert =\n (!viewKeys || viewKeys.some((x) => key.startsWith(x))) &&\n custCanInsert.canInsert &&\n custViewCanInsert.canInsert;\n\n const conditionAffect =\n custCanInsert.conditionAffect || custViewCanInsert.conditionAffect;\n\n return { canInsert, conditionAffect };\n}\n\nfunction canInsertKey(\n key: string,\n {\n viewKeys,\n viewPrefix = '',\n hasKeepOption,\n checkCondition = false,\n }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const result = evalInsertKey(\n key,\n { viewKeys, viewPrefix, hasKeepOption, checkCondition },\n customization,\n );\n const canInsert = checkCondition || result.canInsert;\n return { canInsert, conditionAffect: result.conditionAffect };\n}\n\nfunction addKeyToPermissions(\n permissionMap: WidgetViewMap,\n key: string,\n { viewPrefix, checkCondition, conditionMaps }: CalculateViewOptions,\n defaults?: Record<string, unknown>,\n childMap?: WidgetViewMap,\n conditionAffect?: ConditionAffectValue,\n) {\n const keyAttr = getStructureKey(key, viewPrefix);\n\n if (checkCondition && conditionAffect != null) {\n permissionMap[keyAttr] = conditionAffect;\n return;\n }\n\n const addDefaultKey = defaults && Object.keys(defaults).length > 0;\n const addChildMapKey = childMap && Object.keys(childMap).length > 0;\n const conditions = getConditionsForKey(key, conditionMaps);\n\n permissionMap[keyAttr] =\n !addDefaultKey && !addChildMapKey && !conditions\n ? true\n : {\n ...(addDefaultKey && { defaults }),\n ...(addChildMapKey && { childMap }),\n ...(conditions && { conditions }),\n };\n}\n\nfunction calculatePermissionMap(\n config: WidgetStructure | Record<string, WidgetStructure>,\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n pathPrefix = '',\n viewPrefix = '',\n hasKeepOption: previousKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }: CalculateViewOptions,\n) {\n const permissionMap: WidgetViewMap = {};\n const currentKeepOption = nodeHasKeepOption(config, customization, {\n viewPrefix,\n pathPrefix,\n });\n\n for (const key in config) {\n if (STRUCTURE_RESERVED_WORDS.includes(key)) {\n continue;\n }\n const hasKeepOption = previousKeepOption ?? currentKeepOption;\n const configValue = config[key];\n const currentKey = `${pathPrefix}${key}`;\n const newPrefix = `${currentKey}${STRUCTURE_SECTION_NAME_SEPARATOR}`;\n\n const canInsertResult = canInsertKey(\n currentKey,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n continue;\n }\n\n let defaults = prevDefaults;\n let childMap: WidgetViewMap | undefined = undefined;\n if (Array.isArray(configValue)) {\n // if it's an array, every element is a key\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n childMap = calculatePermissionMapArray(configValue, customization, {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n });\n\n Object.assign(permissionMap, childMap);\n } else if (\n typeof configValue === 'object' &&\n !Array.isArray(configValue)\n ) {\n defaults = calculateDefaults(\n prevDefaults,\n configValue.defaults as Record<string, unknown>,\n customDefaults,\n );\n // if it's an object, a recursive call is made\n childMap = calculatePermissionMap(\n configValue as WidgetStructure,\n customization,\n {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults: defaults,\n conditionMaps,\n checkCondition,\n },\n );\n Object.assign(permissionMap, childMap);\n } else if (typeof configValue === 'boolean' && !configValue) {\n // if it's a boolean and its false, it should be ignored\n continue;\n } else if (typeof configValue === 'boolean' && configValue) {\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n }\n\n addKeyToPermissions(\n permissionMap,\n currentKey,\n {\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaults,\n childMap,\n canInsertResult.conditionAffect,\n );\n }\n\n return permissionMap;\n}\n\nfunction getConditionsForKey(\n key: string,\n conditionMaps: WidgetConditionMap[] | undefined,\n): WidgetItemCondition[] | undefined {\n if (!conditionMaps || conditionMaps.length === 0) return undefined;\n const result = conditionMaps.reduce((result, x) => {\n const mapValue = x.map[key];\n if (\n typeof mapValue === 'string' &&\n (mapValue === 'keep' || mapValue === 'remove')\n ) {\n result.push({\n effect: mapValue,\n condition: x.condition,\n });\n }\n return result;\n }, [] as WidgetItemCondition[]);\n\n if (result.length === 0) return undefined;\n return result;\n}\n\nfunction calculateConditions(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n): WidgetConditionMap[] | undefined {\n const customConditionals = customization?.conditional;\n return (\n customConditionals?.map((c) => ({\n condition: c.condition,\n map: calculatePermissionMap(config, c, { checkCondition: true }),\n })) ?? undefined\n );\n}\n\nfunction calculateSubmodules(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n view?: string,\n) {\n const viewSubmodules = view\n ? customization?.views?.[view]?.subModules\n : undefined;\n const customRootSubmodules = customization?.subModules;\n const customSubmodules = viewSubmodules\n ? mergeObjects(customRootSubmodules, viewSubmodules)\n : customRootSubmodules;\n return mergeObjects(config.subModules, customSubmodules);\n}\n\nfunction calculateCustomDefaults(\n customization?: WidgetCustomization,\n view?: string,\n validationMap?: ValidationMap,\n) {\n const viewDefaults = view\n ? customization?.views?.[view]?.defaults\n : undefined;\n const customRootDefaults = customization?.defaults ?? {};\n const defaultObj = viewDefaults\n ? mergeObjects(customRootDefaults, viewDefaults)\n : customRootDefaults;\n return validationMap && defaultObj\n ? validateDefaults(defaultObj, validationMap)\n : defaultObj;\n}\n\nfunction calculateDefaults(\n structureDefaults: Record<string, unknown> | undefined,\n itemDefaults: Record<string, unknown> | undefined,\n customDefaults: Record<string, unknown> | undefined,\n) {\n const baseDefaults = mergeObjects(structureDefaults, itemDefaults);\n return mergeObjects(baseDefaults, customDefaults);\n}\n\nfunction mergeObjects(\n prevObj: Record<string, unknown> | undefined,\n newObj: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n // if both of configurations are falsy return undefined;\n if (!newObj && !prevObj) return undefined;\n // if just the prev defaults has value, return it\n if (!newObj) return prevObj;\n // if the newDefaults value is different than an object\n if (typeof newObj !== 'object' || Array.isArray(newObj)) return prevObj;\n return !prevObj ? newObj : mergeDeep(prevObj, newObj);\n}\n\nfunction mapObjKeys(\n configValue: WidgetStructure,\n { pathPrefix }: CalculateViewOptions,\n) {\n return Object.keys(configValue).map((x) =>\n getStructureKey(`${pathPrefix}${x}`),\n );\n}\n\nfunction mapArrayKeys(\n configValue: (string | WidgetStructure)[],\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n) {\n return configValue.reduce((result, value) => {\n if (typeof value === 'string') {\n result.push(getStructureKey(`${pathPrefix}${value}`));\n } else {\n result.push(...mapObjKeys(value, { viewPrefix, pathPrefix }));\n }\n return result;\n }, [] as string[]);\n}\n\nfunction nodeHasKeepOption(\n configValue: WidgetStructure | (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n): hasKeepOptType | undefined {\n if (!customization) return;\n const nodeKeys = Array.isArray(configValue)\n ? mapArrayKeys(configValue, { viewPrefix, pathPrefix })\n : mapObjKeys(configValue, { viewPrefix, pathPrefix });\n const customizationView = viewPrefix\n ? customization?.views?.[viewPrefix]\n : undefined;\n for (const key of nodeKeys) {\n if (keyIsIncludedInKeep(key, customization)) {\n return 'root';\n } else if (\n customizationView &&\n keyIsIncludedInKeep(key, customizationView)\n ) {\n return 'view';\n }\n }\n return undefined;\n}\n\nfunction calculatePermissionMapArray(\n configValue: (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n viewPrefix,\n pathPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }: CalculateViewOptions,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n const hasKeepOption = nodeHasKeepOption(configValue, customization, {\n viewPrefix,\n pathPrefix,\n });\n const defaultsSimple = calculateDefaults(\n prevDefaults,\n undefined,\n customDefaults,\n );\n\n configValue.forEach((option) => {\n const fullPath = `${pathPrefix}${option}`;\n if (typeof option === 'string') {\n const canInsertResult = canInsertKey(\n fullPath,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n return;\n }\n addKeyToPermissions(\n permissionMap,\n fullPath,\n {\n viewKeys,\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaultsSimple,\n undefined,\n canInsertResult.conditionAffect,\n );\n } else {\n Object.assign(\n permissionMap,\n calculatePermissionMap(option, customization, {\n viewKeys,\n pathPrefix,\n viewPrefix,\n hasKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }),\n );\n }\n });\n return permissionMap;\n}\n","import { canvasModePermissions } from './config/structural-manager.config';\nimport { widgetConfigs } from './constants/configs';\nimport {\n UserRole,\n Widget,\n WidgetVersion,\n} from './constants/structure.constants';\nimport { CanvasMode } from './interfaces/canvas.interface';\nimport { ConditionState } from './models/conditions.models';\nimport { WidgetCustomization } from './models/customization.models';\nimport { WidgetItemCondition, WidgetViewMap } from './models/structure.models';\nimport { checkConditions } from './utils/conditions.helpers';\nimport { DX_VALIDATOR_MAP } from './utils/defaults.helpers';\nimport {\n getWidgetStructure,\n validateUserRole,\n} from './utils/structural.helpers';\n\nexport const structureInstanceMap = new Map<string, WidgetStructureInstance>();\nexport const DEFAULT_USER_ROLE = UserRole.MANAGER;\n\nexport function buildStructureInstance(\n widget: Widget,\n version: WidgetVersion,\n customization?: WidgetCustomization,\n userRole = '',\n) {\n const widgetConfigurability = widgetConfigs[widget]?.[version];\n if (!widgetConfigurability) {\n throw new Error(\n `No config found for widget ${widget} and version ${version}`,\n );\n }\n const structureMap = getWidgetStructure(\n widgetConfigurability,\n customization,\n DX_VALIDATOR_MAP,\n );\n const role = validateUserRole(userRole) ? userRole : DEFAULT_USER_ROLE;\n return new WidgetStructureInstance(structureMap, role);\n}\n\nexport class WidgetStructureInstance {\n constructor(\n private viewMap: WidgetViewMap,\n private role?: string,\n ) {}\n\n private getValue(key: string) {\n return this.viewMap[key];\n }\n\n isVisible(key: string, state?: ConditionState): boolean {\n const value = this.getValue(key);\n if (!value) return false;\n if (typeof value === 'object' && value.conditions) {\n return checkConditions(\n state,\n value.conditions as WidgetItemCondition[],\n );\n }\n return true;\n }\n\n hasPermission() {\n return this.role === DEFAULT_USER_ROLE;\n }\n\n getCanvasPermissions(mode: CanvasMode) {\n return canvasModePermissions[mode];\n }\n\n getChildMap(key: string): WidgetViewMap | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.childMap\n )\n return undefined;\n return value.childMap as WidgetViewMap;\n }\n\n getSubmodule(\n module: string,\n view?: string,\n ): WidgetCustomization | undefined {\n const key = `${view ? view + '::' : ''}subModules`;\n const value = this.getValue(key);\n return (value as Record<string, WidgetCustomization>)?.[module];\n }\n\n getDefaults(key: string): Record<string, unknown> | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.defaults\n )\n return undefined;\n return value.defaults as WidgetViewMap;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/constants/structure.constants.ts","../../src/doc/dashboard.structure.doc.ts","../../src/structures/dashboard.structure.v1.ts","../../src/constants/configs.ts","../../src/models/conditions.models.ts","../../src/utils/conditions.helpers.ts","../../src/utils/defaults.helpers.ts","../../src/utils/merge.helpers.ts","../../src/utils/structural.helpers.ts","../../src/structural-manager.ts"],"names":["STRUCTURE_SECTION_NAME_SEPARATOR","STRUCTURE_VIEW_NAME_SEPARATOR","STRUCTURE_RESERVED_WORDS","Widget","WidgetVersion","ViewsDto","list","design","preview","endUser","type","String","description","example","AssetListDto","defaults","asset","Object","assetListViewMode","optionMenu","MenuBarDto","file","edit","grid","insert","qArrange","qMnuDownloadDash","qMnuInsertChart","qMnuInsertFilterCtrl","qMnuAlign","FilterPanelDto","qAddFilter","qEnabDisabAllFilters","qDeleteAllFilters","qFilterSettings","dashFilterScope","tabFilterScope","panelFilterScope","SubModulesDto","chartPanel","chartGallery","chartBuilder","BaseDashboardV1StructureDto","views","navBar","endUserTopBar","assetList","controlBarLeft","controlBarRight","header","menuBar","toolBar","configPanel","filterPanel","downloadModal","subModules","qInsertChart","qInsertFilterCtrl","qDownloadDash","qResponsiveView","qAlign","dashboardV1Config","version","baseStructure","qMnuArrange","widgetConfigs","DASHBOARD","v1","latest","allowedOperators","isOperator","value","includes","getValue","condition","state","field","_evalConditionOperator","operator","OPERATOR_MAP","a","b","startsWith","endsWith","contains","evaluateCondition","conditions","length","every","c","_evalCondition","evalFn","checkConditions","cond","effect","result","FONT_SIZES","applyValidation","currentObj","validatorMap","parentKey","validatedObj","keys","forEach","key","fullKey","Array","isArray","validateDefaults","obj","isANumber","_value","Number","isNaN","undefined","numberMinMaxValue","maxValue","minValue","fontSizeMinMaxValue","minSize","maxSize","inputSize","parseInt","validFontSizes","filter","size","closestSize","smallestDiff","Math","abs","diff","fontColorValue","normalizedColor","toLowerCase","validateType","validValues","receivedValue","toUpperCase","DX_VALIDATOR_MAP","mergeDeep","obj1","obj2","settings","defaultSettings","mergeExistingValues","mergeMissingProperties","isValid","objectCopy","val1","val2","isObject","map","item","prototype","hasOwnProperty","call","toString","getWidgetStructure","config","customization","validationMap","calculateViewMap","permissionMap","view","assign","calculateSpecificViewMap","customDefaults","calculateCustomDefaults","prevDefaults","submodules","calculateSubmodules","conditionMaps","calculateConditions","calculatePermissionMap","viewDefinition","viewKeys","viewPrefix","getViewPrefix","getStructureKey","viewValue","matchWildcard","pattern","regexPattern","RegExp","replace","test","keyIsIncludedInKeep","keep","keyIsIncludedInRemove","remove","canInsertInCustomization","validateKeepOption","includedInRemove","canInsert","keepValue","keepResult","conditionAffect","evalInsertKey","hasKeepOption","customizationView","custCanInsert","custViewCanInsert","some","x","canInsertKey","checkCondition","addKeyToPermissions","childMap","keyAttr","addDefaultKey","addChildMapKey","getConditionsForKey","pathPrefix","previousKeepOption","currentKeepOption","nodeHasKeepOption","configValue","currentKey","newPrefix","canInsertResult","calculateDefaults","calculatePermissionMapArray","reduce","mapValue","push","customConditionals","conditional","viewSubmodules","customRootSubmodules","customSubmodules","mergeObjects","viewDefaults","customRootDefaults","defaultObj","structureDefaults","itemDefaults","baseDefaults","prevObj","newObj","mapObjKeys","mapArrayKeys","nodeKeys","defaultsSimple","option","fullPath","buildStructure","widget","versionSet","widgetConfigurability","Error","structureMap","WidgetStructureInstance","constructor","viewMap","isVisible","getChildMap","getSubmodule","module","getDefaults"],"mappings":"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","file":"index.mjs","sourcesContent":["export const STRUCTURE_SECTION_NAME_SEPARATOR = '.';\nexport const STRUCTURE_VIEW_NAME_SEPARATOR = '::';\nexport const STRUCTURE_RESERVED_WORDS = ['views', 'defaults', 'subModules'];\n\nexport enum Widget {\n DASHBOARD = 'dashboard',\n}\n\nexport enum WidgetVersion {\n v1 = '1.0',\n latest = 'latest',\n}\n","import { ApiProperty } from '@nestjs/swagger';\n\nexport class ViewsDto {\n @ApiProperty({\n type: [String],\n description: 'Keys to show in list view',\n example: ['navBar', 'assetList', 'controlBarLeft', 'controlBarRight'],\n })\n list!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Keys to show in design view',\n example: [\n 'navBar',\n 'header',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'downloadModal',\n ],\n })\n design!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Keys to show in preview view',\n example: ['navBar', 'header', 'controlBarRight', 'filterPanel'],\n })\n preview!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Keys to show in end user view',\n example: ['navBar', 'toolBar', 'filterPanel', 'downloadModal'],\n })\n endUser!: string[];\n}\n\nexport class AssetListDto {\n @ApiProperty({\n type: Object,\n description: 'Default settings for the asset list',\n example: { assetListViewMode: 'card' },\n })\n defaults!: Record<string, unknown>;\n\n @ApiProperty({\n type: Object,\n description: 'Per-asset option menu configuration',\n example: {\n optionMenu: [\n 'qEditDash',\n 'qRenameDash',\n 'qDeleteDash',\n 'qDuplDash',\n 'qShareDash',\n ],\n },\n })\n asset!: Record<string, unknown>;\n}\n\nexport class MenuBarDto {\n @ApiProperty({\n type: Object,\n description: 'File menu definitions (nested structures allowed)',\n example: {\n file: [\n 'qMnuCreateDash',\n 'qMnuOpenDash',\n 'qMnuDuplicateDash',\n 'qMnuCanvasSize',\n 'qMnuThemes',\n 'qShareDash',\n 'qMnuDeleteDash',\n 'qCreateCustomViewDataset',\n {\n qMnuDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n },\n ],\n },\n })\n file!: Record<string, unknown>;\n\n @ApiProperty({\n type: [String],\n description: 'Edit menu options',\n example: [\n 'qUndoRedo',\n 'qCopyElement',\n 'qPasteElement',\n 'qCutElement',\n 'qRemoveElement',\n 'qDuplElement',\n 'qSelectAllElem',\n 'qSelectAllContElem',\n ],\n })\n edit!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Grid menu toggles',\n example: ['qMnuSnapToGrid', 'qMnuDisplayGrid', 'qMnuSwitchGrid'],\n })\n grid!: string[];\n\n @ApiProperty({\n type: [Object],\n description: 'Insert menu definitions (nested items allowed)',\n example: [\n {\n qMnuInsertChart: [\n 'qMnuExistingChart',\n 'qMnuNewChart',\n 'qMnuNewChartAI',\n ],\n qMnuInsertFilterCtrl: [\n 'qMnuDatePicker',\n 'qMnuInputBox',\n 'qMnuMultiSelectList',\n ],\n },\n 'qMnuInsertText',\n 'qMnuInsertImage',\n 'qMnuInsertButton',\n 'qMnuInsertContainer',\n 'qMnuInsertHeader',\n 'qMnuInsertTabs',\n ],\n })\n insert!: (Record<string, unknown> | string)[];\n\n @ApiProperty({\n type: [Object],\n description: 'Arrange menu definitions with nested align options',\n example: [\n 'qMnuBringToFront',\n 'qMnuSendToBack',\n {\n qMnuAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n ],\n })\n qArrange!: (Record<string, unknown> | string)[];\n}\n\nexport class FilterPanelDto {\n @ApiProperty({ description: 'Toggle adding filters', example: true })\n qAddFilter!: boolean;\n\n @ApiProperty({\n description: 'Toggle enabling/disabling all filters',\n example: true,\n })\n qEnabDisabAllFilters!: boolean;\n\n @ApiProperty({ description: 'Toggle deleting all filters', example: true })\n qDeleteAllFilters!: boolean;\n\n @ApiProperty({ description: 'Filter settings menu', example: true })\n qFilterSettings!: boolean;\n\n @ApiProperty({\n type: [String],\n description: 'Actions scoped to dashboard filters',\n example: ['qEditFilter', 'qEnabDisabFilter', 'qDeleteFilter'],\n })\n dashFilterScope!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Actions scoped to tab filters',\n example: ['qEditFilter', 'qEnabDisabFilter', 'qDeleteFilter'],\n })\n tabFilterScope!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Actions scoped to panel filters',\n example: ['qEditFilter', 'qEnabDisabFilter', 'qDeleteFilter'],\n })\n panelFilterScope!: string[];\n}\n\nexport class SubModulesDto {\n @ApiProperty({\n type: Object,\n description: 'Chart panel submodule',\n example: {},\n })\n chartPanel!: Record<string, unknown>;\n\n @ApiProperty({\n type: Object,\n description: 'Chart gallery submodule',\n example: {},\n })\n chartGallery!: Record<string, unknown>;\n\n @ApiProperty({\n type: Object,\n description: 'Chart builder submodule',\n example: {},\n })\n chartBuilder!: Record<string, unknown>;\n}\n\nexport class BaseDashboardV1StructureDto {\n @ApiProperty({ type: ViewsDto, description: 'View mode definitions' })\n views!: ViewsDto;\n\n @ApiProperty({\n type: [String],\n description: 'Navbar component keys',\n example: ['qAppTitle', 'qBackButton'],\n })\n navBar!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'End-user top bar component keys',\n example: ['indicator', 'options'],\n })\n endUserTopBar!: string[];\n\n @ApiProperty({\n type: AssetListDto,\n description: 'Asset list component settings',\n })\n assetList!: AssetListDto;\n\n @ApiProperty({\n type: [String],\n description: 'Left control bar component keys',\n example: ['qCreateDash'],\n })\n controlBarLeft!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Right control bar component keys',\n example: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qSortBy',\n 'qSearch',\n 'qSelectColumn',\n 'qStatus',\n 'qPreview',\n 'qDiscard',\n 'qPublish',\n 'qDesign',\n ],\n })\n controlBarRight!: string[];\n\n @ApiProperty({\n type: [String],\n description: 'Header component keys',\n example: ['qDashFavorite', 'qShareDash', 'qDashName', 'qDashDesc'],\n })\n header!: string[];\n\n @ApiProperty({\n type: MenuBarDto,\n description: 'Main menu bar configuration',\n })\n menuBar!: MenuBarDto;\n\n @ApiProperty({\n type: [Object],\n description: 'Toolbar items (strings or nested definitions)',\n example: [\n 'qCanvasSize',\n {\n qInsertChart: ['qExistingChart', 'qNewChart', 'qNewChartAI'],\n qInsertFilterCtrl: [\n 'qDatePicker',\n 'qInputBox',\n 'qMultiSelectList',\n ],\n grid: ['qSnapToGrid', 'qDisplayGrid', 'qSwitchGrid'],\n qDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qResponsiveView: [\n 'qDesktop',\n 'qTablet',\n 'qMobile',\n 'qBreakpoints',\n ],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n 'qInsertText',\n 'qCreateCustomViewDataset',\n 'qInsertImage',\n 'qInsertButton',\n 'qInsertContainer',\n 'qRespGridMargins',\n 'qRespGridColumns',\n 'qThemes',\n 'qUndoRedo',\n 'qDashVersion',\n 'qGetDashVersion',\n 'qHiddenItems',\n 'qDiscard',\n 'qSave',\n 'qHideToolBar',\n ],\n })\n toolBar!: (string | Record<string, unknown>)[];\n\n @ApiProperty({\n description: 'Whether the config panel is enabled',\n example: true,\n })\n configPanel!: boolean;\n\n @ApiProperty({ type: FilterPanelDto, description: 'Filter panel controls' })\n filterPanel!: FilterPanelDto;\n\n @ApiProperty({\n type: [String],\n description: 'Download modal options',\n example: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n })\n downloadModal!: string[];\n\n @ApiProperty({\n type: SubModulesDto,\n description: 'Submodule configurations',\n })\n subModules!: SubModulesDto;\n}\n","import { WidgetConfig } from '../models/structure.models';\n\nconst dashboardV1Config: WidgetConfig = {\n version: '1.0',\n baseStructure: {\n views: {\n list: ['navBar', 'assetList', 'controlBarLeft', 'controlBarRight'],\n design: [\n 'navBar',\n 'header',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'downloadModal',\n ],\n preview: ['navBar', 'header', 'controlBarRight', 'filterPanel'],\n endUser: ['navBar', 'toolBar', 'filterPanel', 'downloadModal'],\n },\n\n navBar: ['qAppTitle', 'qBackButton'],\n\n endUserTopBar: ['indicator', 'options'],\n\n assetList: {\n defaults: {\n assetListViewMode: 'card',\n },\n asset: {\n optionMenu: [\n 'qEditDash',\n 'qRenameDash',\n 'qDeleteDash',\n 'qDuplDash',\n 'qShareDash',\n ],\n },\n },\n\n controlBarLeft: ['qCreateDash'],\n\n controlBarRight: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qSortBy',\n 'qSearch',\n 'qSelectColumn',\n 'qStatus',\n 'qPreview',\n 'qDiscard',\n 'qPublish',\n 'qDesign',\n ],\n\n header: ['qDashFavorite', 'qShareDash', 'qDashName', 'qDashDesc'],\n\n menuBar: {\n file: [\n 'qMnuCreateDash',\n 'qMnuOpenDash',\n 'qMnuDuplicateDash',\n 'qMnuCanvasSize',\n 'qMnuThemes',\n 'qShareDash',\n 'qMnuDeleteDash',\n 'qCreateCustomViewDataset',\n {\n qMnuDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n },\n ],\n edit: [\n 'qUndoRedo',\n 'qCopyElement',\n 'qPasteElement',\n 'qCutElement',\n 'qRemoveElement',\n 'qDuplElement',\n 'qSelectAllElem',\n 'qSelectAllContElem',\n ],\n grid: ['qMnuSnapToGrid', 'qMnuDisplayGrid', 'qMnuSwitchGrid'],\n insert: [\n {\n qMnuInsertChart: [\n 'qMnuExistingChart',\n 'qMnuNewChart',\n 'qMnuNewChartAI',\n ],\n qMnuInsertFilterCtrl: [\n 'qMnuDatePicker',\n 'qMnuInputBox',\n 'qMnuMultiSelectList',\n ],\n },\n 'qMnuInsertText',\n 'qMnuInsertImage',\n 'qMnuInsertButton',\n 'qMnuInsertContainer',\n 'qMnuInsertHeader',\n 'qMnuInsertTabs',\n ],\n qMnuArrange: [\n 'qMnuBringToFront',\n 'qMnuSendToBack',\n {\n qMnuAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n ],\n },\n toolBar: [\n 'qCanvasSize',\n {\n qInsertChart: ['qExistingChart', 'qNewChart', 'qNewChartAI'],\n qInsertFilterCtrl: [\n 'qDatePicker',\n 'qInputBox',\n 'qMultiSelectList',\n ],\n grid: ['qSnapToGrid', 'qDisplayGrid', 'qSwitchGrid'],\n qDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qResponsiveView: [\n 'qDesktop',\n 'qTablet',\n 'qMobile',\n 'qBreakpoints',\n ],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n 'qInsertText',\n 'qCreateCustomViewDataset',\n 'qInsertImage',\n 'qInsertButton',\n 'qInsertContainer',\n 'qRespGridMargins',\n 'qRespGridColumns',\n 'qThemes',\n 'qUndoRedo',\n\n // only for end user\n 'qDashVersion',\n 'qGetDashVersion',\n 'qHiddenItems',\n 'qDiscard',\n 'qSave',\n 'qHideToolBar',\n ],\n configPanel: true,\n filterPanel: {\n qAddFilter: true,\n qEnabDisabAllFilters: true,\n qDeleteAllFilters: true,\n qFilterSettings: true,\n dashFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n tabFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n panelFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n },\n downloadModal: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n subModules: {\n chartPanel: {},\n chartGallery: {},\n chartBuilder: {},\n },\n },\n};\n\nexport default dashboardV1Config;\n","import { Widget, WidgetVersion } from './structure.constants';\nimport { WidgetConfigsMap } from './widget.config';\nimport dashboardV1Config from '../structures/dashboard.structure.v1';\n\nexport const widgetConfigs: WidgetConfigsMap = {\n [Widget.DASHBOARD]: {\n [WidgetVersion.v1]: dashboardV1Config,\n [WidgetVersion.latest]: dashboardV1Config,\n },\n};\n","export const allowedOperators = [\n '=',\n '!=',\n '>',\n '>=',\n '<',\n '<=',\n 'startsWith',\n 'endsWith',\n 'contains',\n] as const;\nexport type Operators = (typeof allowedOperators)[number];\n\nexport type ConditionValue = string | number;\n\nexport interface Condition {\n field: string;\n operator: Operators;\n value: ConditionValue;\n}\n\nexport type ConditionState = Record<string, ConditionValue>;\n\nexport type OperatorConditionFn = (\n value: Condition,\n state: Record<string, ConditionValue>,\n) => boolean;\n","import {\n Condition,\n ConditionState,\n ConditionValue,\n OperatorConditionFn,\n Operators,\n allowedOperators,\n} from '../models/conditions.models';\nimport { WidgetItemCondition } from '../models/structure.models';\n\nfunction isOperator(value: string): value is Operators {\n return allowedOperators.includes(value as Operators);\n}\n\nfunction getValue(condition: Condition, state: ConditionState): ConditionValue {\n return state[condition.field];\n}\n\nfunction _evalConditionOperator(\n condition: Condition,\n state: ConditionState,\n operator: (a: ConditionValue, b: ConditionValue) => boolean,\n): boolean {\n const value = getValue(condition, state);\n if (value == null) return false;\n return operator(value, condition.value);\n}\n\nconst OPERATOR_MAP: Record<Operators, OperatorConditionFn> = {\n '=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a == b),\n '!=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a != b),\n '<': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a < b),\n '<=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a <= b),\n '>': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a > b),\n '>=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a >= b),\n\n startsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' &&\n typeof b === 'string' &&\n a.startsWith(b),\n ),\n\n endsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.endsWith(b),\n ),\n\n contains: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.includes(b),\n ),\n};\n\nexport function evaluateCondition(\n state: ConditionState | undefined,\n ...conditions: Condition[]\n): boolean {\n if (!state) return false;\n if (conditions.length === 0) return true;\n return conditions.every((c) => _evalCondition(state, c));\n}\n\nfunction _evalCondition(state: ConditionState, condition: Condition): boolean {\n if (!isOperator(condition.operator)) return false;\n const evalFn = OPERATOR_MAP[condition.operator];\n return evalFn(condition, state);\n}\n\nexport function checkConditions(\n state: ConditionState | undefined,\n conditions: WidgetItemCondition[],\n): boolean {\n if (!state) return false;\n for (const cond of conditions) {\n if (cond.effect === 'keep') continue;\n const result = evaluateCondition(state, cond.condition);\n if (result) return false;\n }\n return true;\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ValidationFN<T = any> = (value: T) => T | undefined;\nconst FONT_SIZES: number[] = [\n 8, 9, 10, 11, 12, 14, 15, 16, 18, 24, 30, 36, 48, 60, 72, 96,\n];\nexport type ValidationMap = Record<string, ValidationFN>;\n\nfunction applyValidation(\n currentObj: Record<string, unknown>,\n validatorMap: ValidationMap,\n parentKey = '',\n): Record<string, unknown> {\n const validatedObj: Record<string, unknown> = {};\n\n Object.keys(currentObj).forEach((key) => {\n const fullKey = parentKey ? `${parentKey}.${key}` : key;\n const value = currentObj[key];\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null\n ) {\n validatedObj[key] = applyValidation(\n value as Record<string, unknown>,\n validatorMap,\n fullKey,\n );\n } else if (validatorMap[fullKey]) {\n validatedObj[key] = validatorMap[fullKey](value);\n } else {\n validatedObj[key] = value;\n }\n });\n\n return validatedObj;\n}\n\nexport function validateDefaults(\n obj: Record<string, unknown>,\n validatorMap: ValidationMap,\n) {\n return applyValidation(obj, validatorMap);\n}\n\nconst isANumber = (value: string | number) => {\n const _value = Number(value);\n if (!_value || isNaN(_value)) return undefined;\n return _value;\n};\n\nconst numberMinMaxValue =\n (maxValue: number, minValue?: number) => (value: string) => {\n const _value = isANumber(value);\n if (!_value) return undefined;\n if (minValue && _value < minValue) return minValue;\n if (_value > maxValue) return maxValue;\n return _value;\n };\n\nexport const fontSizeMinMaxValue =\n (minSize: number, maxSize: number) =>\n (value: string): string | undefined => {\n const inputSize = parseInt(value, 10);\n // Check if the inputSize is valid and within range\n if (\n FONT_SIZES.includes(inputSize) &&\n inputSize >= minSize &&\n inputSize <= maxSize\n ) {\n return `${inputSize}px`;\n }\n\n // Filter FONT_SIZES by min and max\n const validFontSizes = FONT_SIZES.filter(\n (size) => size >= minSize && size <= maxSize,\n );\n\n if (validFontSizes.length === 0) {\n return undefined;\n }\n\n // Find the closest font size\n let closestSize = validFontSizes[0];\n let smallestDiff = Math.abs(inputSize - closestSize);\n\n for (const size of validFontSizes) {\n const diff = Math.abs(inputSize - size);\n if (diff < smallestDiff) {\n smallestDiff = diff;\n closestSize = size;\n }\n }\n\n // Return the closest font size as a string with 'px'\n return `${closestSize}px`;\n };\nexport const fontColorValue = (value: string) => {\n const normalizedColor = value.toLowerCase();\n return normalizedColor;\n};\n\nconst validateType = (validValues: string[]) => (value: unknown) => {\n if (typeof value !== 'string') return undefined;\n const receivedValue = value.toUpperCase();\n return validValues.includes(receivedValue) ? receivedValue : undefined;\n};\n\nexport const DX_VALIDATOR_MAP: ValidationMap = {\n 'customStyles.header.height': numberMinMaxValue(300, 10),\n 'customStyles.text.fontSize': fontSizeMinMaxValue(8, 96),\n 'customStyles.text.fontColor': fontColorValue,\n 'customStyles.container.borderWidth': numberMinMaxValue(20, 1),\n 'customStyles.container.borderRadius': numberMinMaxValue(100, 0),\n\n // Filter Controls: MULTISELECT LIST\n 'customStyles.filterList.type': validateType(['LIST', 'DROPDOWN']),\n 'customStyles.filterList.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: INPUTBOX\n 'customStyles.filterInput.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: DATE\n 'customStyles.filterDate.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n};\n","export interface MergeDeepSettings {\n mergeMissingProperties?: boolean;\n mergeExistingValues?: boolean;\n}\n\nexport function mergeDeep(\n obj1: any,\n obj2: any,\n settings?: MergeDeepSettings,\n): any {\n const defaultSettings = {\n mergeExistingValues: settings?.mergeExistingValues ?? true,\n mergeMissingProperties: settings?.mergeMissingProperties ?? true,\n };\n\n if (!isValid(obj1, obj2)) return objectCopy(obj1);\n\n const result: any = Array.isArray(obj1) ? [] : {};\n\n for (const key in obj1) {\n const val1 = obj1[key];\n const val2 = obj2?.[key];\n\n if (isObject(val1) || Array.isArray(val1)) {\n result[key] = mergeDeep(val1, val2, defaultSettings);\n } else if (key in obj2 && defaultSettings.mergeExistingValues) {\n result[key] = val2;\n } else {\n result[key] = val1;\n }\n }\n\n if (defaultSettings.mergeMissingProperties) {\n for (const key in obj2) {\n if (!(key in result)) {\n result[key] = obj2[key];\n }\n }\n }\n\n return result;\n}\n\nfunction isValid(obj1: any, obj2: any): boolean {\n return (\n (isObject(obj1) && isObject(obj2)) ||\n (Array.isArray(obj1) && Array.isArray(obj2))\n );\n}\n\nfunction objectCopy<T = any>(obj: T): T {\n if (obj === null || typeof obj !== 'object') return obj;\n\n if (Array.isArray(obj)) {\n return obj.map((item) => objectCopy(item)) as any;\n }\n\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[key] = objectCopy((obj as any)[key]);\n }\n }\n\n return result;\n}\n\nfunction isObject(value: any): boolean {\n return (\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n","import { ValidationMap, validateDefaults } from './defaults.helpers';\nimport { mergeDeep } from './merge.helpers';\nimport {\n STRUCTURE_RESERVED_WORDS,\n STRUCTURE_SECTION_NAME_SEPARATOR,\n STRUCTURE_VIEW_NAME_SEPARATOR,\n} from '../constants/structure.constants';\nimport { WidgetCustomization } from '../models/customization.models';\nimport {\n WidgetConditionMap,\n WidgetConfig,\n WidgetItemCondition,\n WidgetStructure,\n WidgetStructureRoot,\n WidgetViewMap,\n} from '../models/structure.models';\n\ntype hasKeepOptType = 'root' | 'view';\n\ninterface CalculateViewOptions {\n viewKeys?: string[];\n pathPrefix?: string;\n viewPrefix?: string;\n hasKeepOption?: hasKeepOptType;\n prevDefaults?: Record<string, unknown>;\n customDefaults?: Record<string, unknown>;\n conditionMaps?: WidgetConditionMap[];\n checkCondition?: boolean;\n}\n\ntype ConditionAffectValue = false | 'keep' | 'remove';\n\ninterface InsertionResult {\n canInsert: boolean;\n conditionAffect: ConditionAffectValue;\n}\n\n/**\n * constructs the permission map structure for a widget\n * @param config configuration of a widget\n * @param customization customization options for a widget\n * @param validationMap\n * @returns object representing the view map for the widget\n */\nexport function getWidgetStructure(\n config: WidgetConfig,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n): WidgetViewMap {\n return calculateViewMap(config.baseStructure, customization, validationMap);\n}\n\nexport function calculateViewMap(\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n if (config.views) {\n for (const view in config.views) {\n Object.assign(\n permissionMap,\n calculateSpecificViewMap(\n view,\n config,\n customization,\n validationMap,\n ),\n );\n }\n } else {\n const customDefaults = calculateCustomDefaults(\n customization,\n undefined,\n validationMap,\n );\n const prevDefaults = config.defaults;\n\n const submodules = calculateSubmodules(config, customization);\n if (submodules) {\n permissionMap.subModules = submodules;\n }\n\n const conditionMaps = calculateConditions(config, customization);\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n prevDefaults,\n customDefaults,\n conditionMaps,\n }),\n );\n }\n return permissionMap;\n}\n\nfunction calculateSpecificViewMap(\n view: string,\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n) {\n const viewDefinition = config.views![view];\n const customDefaults = calculateCustomDefaults(\n customization,\n view,\n validationMap,\n );\n const prevDefaults = config.defaults;\n\n const permissionMap: WidgetViewMap = {};\n\n const submodules = calculateSubmodules(config, customization, view);\n if (submodules) {\n permissionMap[`${view}::subModules`] = submodules;\n }\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n viewKeys: viewDefinition,\n viewPrefix: view,\n prevDefaults,\n customDefaults,\n }),\n );\n\n return permissionMap;\n}\n\nfunction getViewPrefix(view?: string) {\n return view ? `${view}${STRUCTURE_VIEW_NAME_SEPARATOR}` : '';\n}\n\nfunction getStructureKey(key: string, viewPrefix?: string): string {\n const viewValue = getViewPrefix(viewPrefix);\n return `${viewValue}${key}`;\n}\n\nconst matchWildcard = (pattern: string, value: string): boolean => {\n const regexPattern = new RegExp(\n '^' + pattern.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*') + '$',\n );\n return regexPattern.test(value);\n};\n\nfunction keyIsIncludedInKeep(\n key: string,\n customization: WidgetCustomization,\n): boolean {\n const { keep = [] } = customization;\n for (const pattern of keep) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction keyIsIncludedInRemove(\n key: string,\n customization: WidgetCustomization,\n): boolean {\n const { remove = [] } = customization;\n for (const pattern of remove) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction canInsertInCustomization(\n key: string,\n customization: WidgetCustomization,\n validateKeepOption?: boolean,\n): InsertionResult {\n const includedInRemove = keyIsIncludedInRemove(key, customization);\n const canInsert =\n !includedInRemove &&\n (!validateKeepOption || keyIsIncludedInKeep(key, customization));\n\n const keepValue = keyIsIncludedInKeep(key, customization)\n ? 'keep'\n : 'remove';\n const keepResult = validateKeepOption ? keepValue : false;\n const conditionAffect = includedInRemove ? 'remove' : keepResult;\n return { canInsert, conditionAffect };\n}\n\nfunction evalInsertKey(\n key: string,\n { viewKeys, viewPrefix = '', hasKeepOption }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const customizationView = customization?.views?.[viewPrefix];\n\n const custCanInsert: InsertionResult = customization\n ? canInsertInCustomization(key, customization, hasKeepOption === 'root')\n : {\n canInsert: true,\n conditionAffect: false,\n };\n const custViewCanInsert: InsertionResult = customizationView\n ? canInsertInCustomization(\n key,\n customizationView,\n hasKeepOption === 'view',\n )\n : {\n canInsert: true,\n conditionAffect: false,\n };\n\n // validate remove and keep attributes for views.\n const canInsert =\n (!viewKeys || viewKeys.some((x) => key.startsWith(x))) &&\n custCanInsert.canInsert &&\n custViewCanInsert.canInsert;\n\n const conditionAffect =\n custCanInsert.conditionAffect || custViewCanInsert.conditionAffect;\n\n return { canInsert, conditionAffect };\n}\n\nfunction canInsertKey(\n key: string,\n {\n viewKeys,\n viewPrefix = '',\n hasKeepOption,\n checkCondition = false,\n }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const result = evalInsertKey(\n key,\n { viewKeys, viewPrefix, hasKeepOption, checkCondition },\n customization,\n );\n const canInsert = checkCondition || result.canInsert;\n return { canInsert, conditionAffect: result.conditionAffect };\n}\n\nfunction addKeyToPermissions(\n permissionMap: WidgetViewMap,\n key: string,\n { viewPrefix, checkCondition, conditionMaps }: CalculateViewOptions,\n defaults?: Record<string, unknown>,\n childMap?: WidgetViewMap,\n conditionAffect?: ConditionAffectValue,\n) {\n const keyAttr = getStructureKey(key, viewPrefix);\n\n if (checkCondition && conditionAffect != null) {\n permissionMap[keyAttr] = conditionAffect;\n return;\n }\n\n const addDefaultKey = defaults && Object.keys(defaults).length > 0;\n const addChildMapKey = childMap && Object.keys(childMap).length > 0;\n const conditions = getConditionsForKey(key, conditionMaps);\n\n permissionMap[keyAttr] =\n !addDefaultKey && !addChildMapKey && !conditions\n ? true\n : {\n ...(addDefaultKey && { defaults }),\n ...(addChildMapKey && { childMap }),\n ...(conditions && { conditions }),\n };\n}\n\nfunction calculatePermissionMap(\n config: WidgetStructure | Record<string, WidgetStructure>,\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n pathPrefix = '',\n viewPrefix = '',\n hasKeepOption: previousKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }: CalculateViewOptions,\n) {\n const permissionMap: WidgetViewMap = {};\n const currentKeepOption = nodeHasKeepOption(config, customization, {\n viewPrefix,\n pathPrefix,\n });\n\n for (const key in config) {\n if (STRUCTURE_RESERVED_WORDS.includes(key)) {\n continue;\n }\n const hasKeepOption = previousKeepOption ?? currentKeepOption;\n const configValue = config[key];\n const currentKey = `${pathPrefix}${key}`;\n const newPrefix = `${currentKey}${STRUCTURE_SECTION_NAME_SEPARATOR}`;\n\n const canInsertResult = canInsertKey(\n currentKey,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n continue;\n }\n\n let defaults = prevDefaults;\n let childMap: WidgetViewMap | undefined = undefined;\n if (Array.isArray(configValue)) {\n // if it's an array, every element is a key\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n childMap = calculatePermissionMapArray(configValue, customization, {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n });\n\n Object.assign(permissionMap, childMap);\n } else if (\n typeof configValue === 'object' &&\n !Array.isArray(configValue)\n ) {\n defaults = calculateDefaults(\n prevDefaults,\n configValue.defaults as Record<string, unknown>,\n customDefaults,\n );\n // if it's an object, a recursive call is made\n childMap = calculatePermissionMap(\n configValue as WidgetStructure,\n customization,\n {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults: defaults,\n conditionMaps,\n checkCondition,\n },\n );\n Object.assign(permissionMap, childMap);\n } else if (typeof configValue === 'boolean' && !configValue) {\n // if it's a boolean and its false, it should be ignored\n continue;\n } else if (typeof configValue === 'boolean' && configValue) {\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n }\n\n addKeyToPermissions(\n permissionMap,\n currentKey,\n {\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaults,\n childMap,\n canInsertResult.conditionAffect,\n );\n }\n\n return permissionMap;\n}\n\nfunction getConditionsForKey(\n key: string,\n conditionMaps: WidgetConditionMap[] | undefined,\n): WidgetItemCondition[] | undefined {\n if (!conditionMaps || conditionMaps.length === 0) return undefined;\n const result = conditionMaps.reduce((result, x) => {\n const mapValue = x.map[key];\n if (\n typeof mapValue === 'string' &&\n (mapValue === 'keep' || mapValue === 'remove')\n ) {\n result.push({\n effect: mapValue,\n condition: x.condition,\n });\n }\n return result;\n }, [] as WidgetItemCondition[]);\n\n if (result.length === 0) return undefined;\n return result;\n}\n\nfunction calculateConditions(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n): WidgetConditionMap[] | undefined {\n const customConditionals = customization?.conditional;\n return (\n customConditionals?.map((c) => ({\n condition: c.condition,\n map: calculatePermissionMap(config, c, { checkCondition: true }),\n })) ?? undefined\n );\n}\n\nfunction calculateSubmodules(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n view?: string,\n) {\n const viewSubmodules = view\n ? customization?.views?.[view]?.subModules\n : undefined;\n const customRootSubmodules = customization?.subModules;\n const customSubmodules = viewSubmodules\n ? mergeObjects(customRootSubmodules, viewSubmodules)\n : customRootSubmodules;\n return mergeObjects(config.subModules, customSubmodules);\n}\n\nfunction calculateCustomDefaults(\n customization?: WidgetCustomization,\n view?: string,\n validationMap?: ValidationMap,\n) {\n const viewDefaults = view\n ? customization?.views?.[view]?.defaults\n : undefined;\n const customRootDefaults = customization?.defaults ?? {};\n const defaultObj = viewDefaults\n ? mergeObjects(customRootDefaults, viewDefaults)\n : customRootDefaults;\n return validationMap && defaultObj\n ? validateDefaults(defaultObj, validationMap)\n : defaultObj;\n}\n\nfunction calculateDefaults(\n structureDefaults: Record<string, unknown> | undefined,\n itemDefaults: Record<string, unknown> | undefined,\n customDefaults: Record<string, unknown> | undefined,\n) {\n const baseDefaults = mergeObjects(structureDefaults, itemDefaults);\n return mergeObjects(baseDefaults, customDefaults);\n}\n\nfunction mergeObjects(\n prevObj: Record<string, unknown> | undefined,\n newObj: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n // if both of configurations are falsy return undefined;\n if (!newObj && !prevObj) return undefined;\n // if just the prev defaults has value, return it\n if (!newObj) return prevObj;\n // if the newDefaults value is different than an object\n if (typeof newObj !== 'object' || Array.isArray(newObj)) return prevObj;\n return !prevObj ? newObj : mergeDeep(prevObj, newObj);\n}\n\nfunction mapObjKeys(\n configValue: WidgetStructure,\n { pathPrefix }: CalculateViewOptions,\n) {\n return Object.keys(configValue).map((x) =>\n getStructureKey(`${pathPrefix}${x}`),\n );\n}\n\nfunction mapArrayKeys(\n configValue: (string | WidgetStructure)[],\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n) {\n return configValue.reduce((result, value) => {\n if (typeof value === 'string') {\n result.push(getStructureKey(`${pathPrefix}${value}`));\n } else {\n result.push(...mapObjKeys(value, { viewPrefix, pathPrefix }));\n }\n return result;\n }, [] as string[]);\n}\n\nfunction nodeHasKeepOption(\n configValue: WidgetStructure | (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n): hasKeepOptType | undefined {\n if (!customization) return;\n const nodeKeys = Array.isArray(configValue)\n ? mapArrayKeys(configValue, { viewPrefix, pathPrefix })\n : mapObjKeys(configValue, { viewPrefix, pathPrefix });\n const customizationView = viewPrefix\n ? customization?.views?.[viewPrefix]\n : undefined;\n for (const key of nodeKeys) {\n if (keyIsIncludedInKeep(key, customization)) {\n return 'root';\n } else if (\n customizationView &&\n keyIsIncludedInKeep(key, customizationView)\n ) {\n return 'view';\n }\n }\n return undefined;\n}\n\nfunction calculatePermissionMapArray(\n configValue: (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n viewPrefix,\n pathPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }: CalculateViewOptions,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n const hasKeepOption = nodeHasKeepOption(configValue, customization, {\n viewPrefix,\n pathPrefix,\n });\n const defaultsSimple = calculateDefaults(\n prevDefaults,\n undefined,\n customDefaults,\n );\n\n configValue.forEach((option) => {\n const fullPath = `${pathPrefix}${option}`;\n if (typeof option === 'string') {\n const canInsertResult = canInsertKey(\n fullPath,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n return;\n }\n addKeyToPermissions(\n permissionMap,\n fullPath,\n {\n viewKeys,\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaultsSimple,\n undefined,\n canInsertResult.conditionAffect,\n );\n } else {\n Object.assign(\n permissionMap,\n calculatePermissionMap(option, customization, {\n viewKeys,\n pathPrefix,\n viewPrefix,\n hasKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }),\n );\n }\n });\n return permissionMap;\n}\n","import { widgetConfigs } from './constants/configs';\nimport { Widget, WidgetVersion } from './constants/structure.constants';\nimport { ConditionState } from './models/conditions.models';\nimport { WidgetCustomization } from './models/customization.models';\nimport { WidgetItemCondition, WidgetViewMap } from './models/structure.models';\nimport { checkConditions } from './utils/conditions.helpers';\nimport { DX_VALIDATOR_MAP } from './utils/defaults.helpers';\nimport { getWidgetStructure } from './utils/structural.helpers';\n\nexport function buildStructure(\n widget: Widget,\n version?: WidgetVersion,\n customization?: WidgetCustomization,\n) {\n const versionSet = version ?? WidgetVersion.latest;\n const widgetConfigurability = widgetConfigs[widget]?.[versionSet];\n if (!widgetConfigurability) {\n throw new Error(\n `No config found for widget ${widget} and version ${version}`,\n );\n }\n const structureMap = getWidgetStructure(\n widgetConfigurability,\n customization,\n DX_VALIDATOR_MAP,\n );\n return new WidgetStructureInstance(structureMap);\n}\n\nexport class WidgetStructureInstance {\n constructor(private viewMap: WidgetViewMap) {}\n\n private getValue(key: string) {\n return this.viewMap[key];\n }\n\n isVisible(key: string, state?: ConditionState): boolean {\n const value = this.getValue(key);\n if (!value) return false;\n if (typeof value === 'object' && value.conditions) {\n return checkConditions(\n state,\n value.conditions as WidgetItemCondition[],\n );\n }\n return true;\n }\n\n getChildMap(key: string): WidgetViewMap | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.childMap\n )\n return undefined;\n return value.childMap as WidgetViewMap;\n }\n\n getSubmodule(\n module: string,\n view?: string,\n ): WidgetCustomization | undefined {\n const key = `${view ? view + '::' : ''}subModules`;\n const value = this.getValue(key);\n return (value as Record<string, WidgetCustomization>)?.[module];\n }\n\n getDefaults(key: string): Record<string, unknown> | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.defaults\n )\n return undefined;\n return value.defaults as WidgetViewMap;\n }\n}\n"]}
@@ -1,12 +1,9 @@
1
- declare enum UserRole {
2
- MANAGER = "MANAGER",
3
- USER = "USER"
4
- }
5
1
  declare enum Widget {
6
2
  DASHBOARD = "dashboard"
7
3
  }
8
4
  declare enum WidgetVersion {
9
- v1 = "1.0"
5
+ v1 = "1.0",
6
+ latest = "latest"
10
7
  }
11
8
 
12
9
  declare class ViewsDto {
@@ -72,20 +69,6 @@ declare namespace dashboard_structure_doc {
72
69
  export { dashboard_structure_doc_AssetListDto as AssetListDto, dashboard_structure_doc_BaseDashboardV1StructureDto as BaseDashboardV1StructureDto, dashboard_structure_doc_FilterPanelDto as FilterPanelDto, dashboard_structure_doc_MenuBarDto as MenuBarDto, dashboard_structure_doc_SubModulesDto as SubModulesDto, dashboard_structure_doc_ViewsDto as ViewsDto };
73
70
  }
74
71
 
75
- interface CanvasModeConfig {
76
- canDrag: boolean;
77
- canResize: boolean;
78
- canSelectMultiple: boolean;
79
- canDelete: boolean;
80
- displayCanvasBorder?: boolean;
81
- autoscrolling?: boolean | (() => boolean);
82
- }
83
- declare enum CanvasMode {
84
- VIEW = "VIEW",
85
- EDIT = "EDIT",
86
- INTERACTIVE_VIEW = "INTERACTIVE_VIEW"
87
- }
88
-
89
72
  declare const allowedOperators: readonly ["=", "!=", ">", ">=", "<", "<=", "startsWith", "endsWith", "contains"];
90
73
  type Operators = (typeof allowedOperators)[number];
91
74
  type ConditionValue = string | number;
@@ -128,19 +111,15 @@ interface WidgetViewMapItemObj {
128
111
  type WidgetViewMapItem = string | boolean | WidgetViewMapItemObj | Record<string, SectionValue>;
129
112
  type WidgetViewMap = Record<string, WidgetViewMapItem>;
130
113
 
131
- declare const structureInstanceMap: Map<string, WidgetStructureInstance>;
132
- declare function buildStructureInstance(widget: Widget, version: WidgetVersion, customization?: WidgetCustomization, userRole?: string): WidgetStructureInstance;
114
+ declare function buildStructure(widget: Widget, version?: WidgetVersion, customization?: WidgetCustomization): WidgetStructureInstance;
133
115
  declare class WidgetStructureInstance {
134
116
  private viewMap;
135
- private role?;
136
- constructor(viewMap: WidgetViewMap, role?: string | undefined);
117
+ constructor(viewMap: WidgetViewMap);
137
118
  private getValue;
138
119
  isVisible(key: string, state?: ConditionState): boolean;
139
- hasPermission(): boolean;
140
- getCanvasPermissions(mode: CanvasMode): CanvasModeConfig | undefined;
141
120
  getChildMap(key: string): WidgetViewMap | undefined;
142
121
  getSubmodule(module: string, view?: string): WidgetCustomization | undefined;
143
122
  getDefaults(key: string): Record<string, unknown> | undefined;
144
123
  }
145
124
 
146
- export { dashboard_structure_doc as DashboardDoc, UserRole, Widget, WidgetStructureInstance, WidgetVersion, buildStructureInstance, structureInstanceMap };
125
+ export { dashboard_structure_doc as DashboardDoc, Widget, WidgetStructureInstance, WidgetVersion, buildStructure };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/widget-configurability",
3
- "version": "0.0.0-dev.1739",
3
+ "version": "0.0.0-dev.1745",
4
4
  "types": "dist/types/index.d.ts",
5
5
  "main": "dist/cjs/index.js",
6
6
  "exports": {
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.canvasModePermissions = void 0;
4
- const canvas_interface_1 = require("../interfaces/canvas.interface");
5
- exports.canvasModePermissions = {
6
- [canvas_interface_1.CanvasMode.INTERACTIVE_VIEW]: {
7
- canDrag: true,
8
- canResize: true,
9
- canSelectMultiple: false,
10
- canDelete: true,
11
- displayCanvasBorder: false,
12
- autoscrolling: true,
13
- },
14
- [canvas_interface_1.CanvasMode.EDIT]: {
15
- canDrag: true,
16
- canResize: true,
17
- canSelectMultiple: true,
18
- canDelete: true,
19
- displayCanvasBorder: true,
20
- autoscrolling: true,
21
- },
22
- };
23
- //# sourceMappingURL=structural-manager.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"structural-manager.config.js","sourceRoot":"","sources":["../../../src/config/structural-manager.config.ts"],"names":[],"mappings":";;;AAAA,qEAA8E;AAEjE,QAAA,qBAAqB,GAE9B;IACA,CAAC,6BAAU,CAAC,gBAAgB,CAAC,EAAE;QAC3B,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,IAAI;QACf,mBAAmB,EAAE,KAAK;QAC1B,aAAa,EAAE,IAAI;KACtB;IACD,CAAC,6BAAU,CAAC,IAAI,CAAC,EAAE;QACf,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,IAAI;QACf,mBAAmB,EAAE,IAAI;QACzB,aAAa,EAAE,IAAI;KACtB;CACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.structure.v1.js","sourceRoot":"","sources":["../../../src/constants/dashboard.structure.v1.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CanvasMode = void 0;
4
- var CanvasMode;
5
- (function (CanvasMode) {
6
- CanvasMode["VIEW"] = "VIEW";
7
- CanvasMode["EDIT"] = "EDIT";
8
- CanvasMode["INTERACTIVE_VIEW"] = "INTERACTIVE_VIEW";
9
- })(CanvasMode || (exports.CanvasMode = CanvasMode = {}));
10
- //# sourceMappingURL=canvas.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canvas.interface.js","sourceRoot":"","sources":["../../../src/interfaces/canvas.interface.ts"],"names":[],"mappings":";;;AASA,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,mDAAqC,CAAA;AACzC,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB"}