@beinformed/ui 1.14.0 → 1.14.1
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/CHANGELOG.md +6 -0
- package/esm/constants/Settings.js +4 -0
- package/esm/constants/Settings.js.map +1 -1
- package/esm/models/concepts/BusinessScenarioModel.js +25 -6
- package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/constants/Settings.js +4 -0
- package/lib/constants/Settings.js.flow +8 -0
- package/lib/constants/Settings.js.map +1 -1
- package/lib/models/concepts/BusinessScenarioModel.js +27 -6
- package/lib/models/concepts/BusinessScenarioModel.js.flow +47 -11
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/package.json +2 -2
- package/src/constants/Settings.js +8 -0
- package/src/models/concepts/BusinessScenarioModel.js +47 -11
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.14.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.14.0...v1.14.1) (2022-03-11)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **scenario:** add settings for business scenario concept types ([#16](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/issues/16)) ([d8510c3](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/d8510c3c076b9a1c71a7c83083df297d04ff2efc))
|
|
10
|
+
|
|
5
11
|
## [1.14.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.13.6...v1.14.0) (2022-02-18)
|
|
6
12
|
|
|
7
13
|
### Features
|
|
@@ -28,6 +28,10 @@ var defaultSettings = {
|
|
|
28
28
|
SHOW_SUBMIT_WAIT_TIMEOUT: 300,
|
|
29
29
|
// Swim lane diagram configuration file
|
|
30
30
|
SWIM_LANE_DIAGRAM_CONFIGURATION: "/Library/Diagrams/Overviews.json",
|
|
31
|
+
// Business scenario concept types
|
|
32
|
+
BUSINESS_SCENARIO_CONCEPT_TYPE: "/Library/KMTs/Business scenarios.bixml/BusinessScenario",
|
|
33
|
+
BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: "/Library/KMTs/Business scenarios.bixml/ScenarioStep",
|
|
34
|
+
BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: "/Library/KMTs/Business scenarios.bixml/Persona",
|
|
31
35
|
// Input format for dates. Without this setting having a value, the contributions format is used
|
|
32
36
|
DATE_INPUT_FORMAT: "",
|
|
33
37
|
// Readonly format for dates. Without this setting having a value, the contributions format is used
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/constants/Settings.js"],"names":["isPlainObject","has","ALL_CONTENT_IN_DATA_SETTING","defaultSettings","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","DATE_INPUT_FORMAT","DATE_READONLY_FORMAT","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","settings","setSettings","config","getSetting","key","defaultValue","undefined","Error","setSetting","value","allSettings","hasAllContentInData"],"mappings":";AACA,SAASA,aAAT,EAAwBC,GAAxB,QAAmC,0BAAnC;AACA,SAASC,2BAAT,QAA4C,aAA5C;AAIA,IAAMC,eAAe,GAAG;AACtB;AACAC,EAAAA,4BAA4B,EAAE,IAFR;AAItB;AACAC,EAAAA,yBAAyB,EAAE,IALL;AAOtB;AACAC,EAAAA,kBAAkB,EAAE,KARE;AAUtB;AACAC,EAAAA,sBAAsB,EAAE,IAXF;AAatB;AACAC,EAAAA,qCAAqC,EAAE,IAdjB;AAgBtB;AACAC,EAAAA,oCAAoC,EAAE,KAjBhB;AAmBtB;AACAC,EAAAA,oBAAoB,EAAE,CAAC,UAAD,EAAa,WAAb,CApBA;AAsBtB;AACAC,EAAAA,yBAAyB,EAAE,IAvBL;AAyBtB;AACAC,EAAAA,6BAA6B,EAAE,IA1BT;AA4BtB;AACAC,EAAAA,eAAe,EAAE,CAAC,IAAD,EAAO,IAAP,CA7BK;AA+BtB;AACAC,EAAAA,qBAAqB,EAAE,IAhCD;AAkCtB;AACAC,EAAAA,wBAAwB,EAAE,GAnCJ;AAqCtB;AACAC,EAAAA,+BAA+B,EAAE,kCAtCX;AAwCtB;AACAC,EAAAA,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"sources":["../../src/constants/Settings.js"],"names":["isPlainObject","has","ALL_CONTENT_IN_DATA_SETTING","defaultSettings","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","DATE_INPUT_FORMAT","DATE_READONLY_FORMAT","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","settings","setSettings","config","getSetting","key","defaultValue","undefined","Error","setSetting","value","allSettings","hasAllContentInData"],"mappings":";AACA,SAASA,aAAT,EAAwBC,GAAxB,QAAmC,0BAAnC;AACA,SAASC,2BAAT,QAA4C,aAA5C;AAIA,IAAMC,eAAe,GAAG;AACtB;AACAC,EAAAA,4BAA4B,EAAE,IAFR;AAItB;AACAC,EAAAA,yBAAyB,EAAE,IALL;AAOtB;AACAC,EAAAA,kBAAkB,EAAE,KARE;AAUtB;AACAC,EAAAA,sBAAsB,EAAE,IAXF;AAatB;AACAC,EAAAA,qCAAqC,EAAE,IAdjB;AAgBtB;AACAC,EAAAA,oCAAoC,EAAE,KAjBhB;AAmBtB;AACAC,EAAAA,oBAAoB,EAAE,CAAC,UAAD,EAAa,WAAb,CApBA;AAsBtB;AACAC,EAAAA,yBAAyB,EAAE,IAvBL;AAyBtB;AACAC,EAAAA,6BAA6B,EAAE,IA1BT;AA4BtB;AACAC,EAAAA,eAAe,EAAE,CAAC,IAAD,EAAO,IAAP,CA7BK;AA+BtB;AACAC,EAAAA,qBAAqB,EAAE,IAhCD;AAkCtB;AACAC,EAAAA,wBAAwB,EAAE,GAnCJ;AAqCtB;AACAC,EAAAA,+BAA+B,EAAE,kCAtCX;AAwCtB;AACAC,EAAAA,8BAA8B,EAC5B,yDA1CoB;AA2CtBC,EAAAA,mCAAmC,EACjC,qDA5CoB;AA6CtBC,EAAAA,sCAAsC,EACpC,gDA9CoB;AAgDtB;AACAC,EAAAA,iBAAiB,EAAE,EAjDG;AAmDtB;AACAC,EAAAA,oBAAoB,EAAE,EApDA;AAsDtB;AACAC,EAAAA,uBAAuB,EAAE,CAvDH;AAyDtB;AACAC,EAAAA,iCAAiC,EAAE,CA1Db;AA4DtB;AACAC,EAAAA,aAAa,EAAE,EA7DO;AA+DtB;AACAC,EAAAA,6BAA6B,EAAE,IAhET;AAkEtB;AACAC,EAAAA,iCAAiC,EAAE,KAnEb;AAqEtBC,EAAAA,cAAc,EAAE;AArEM,CAAxB;AAwEA,IAAIC,QAAQ,GAAGzB,eAAf;AAEA;AACA;;AACA,OAAO,IAAM0B,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAAoB;AAC7C,MAAI9B,aAAa,CAAC8B,MAAD,CAAjB,EAA2B;AACzBF,IAAAA,QAAQ,GAAG,eAAczB,eAAd,EAA+B2B,MAA/B,CAAX;AACD;AACF,CAJM;AAMP;AACA;;AACA,OAAO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,GAAD,EAAcC,YAAd,EAA0C;AAAA;;AAClE,MAAI,CAAChC,GAAG,CAAC2B,QAAD,EAAWI,GAAX,CAAJ,IAAuBC,YAAY,KAAKC,SAA5C,EAAuD;AACrD,UAAM,IAAIC,KAAJ,6BACiBH,GADjB,0CAAN;AAGD;;AAED,0BAAOJ,QAAQ,CAACI,GAAD,CAAf,yDAAwBC,YAAxB;AACD,CARM;AAUP;AACA;;AACA,OAAO,IAAMG,UAAU,GAAG,SAAbA,UAAa,CAACJ,GAAD,EAAcK,KAAd,EAA6B;AACrDT,EAAAA,QAAQ,CAACI,GAAD,CAAR,GAAgBK,KAAhB;AACD,CAFM;AAIP;AACA;;AACA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc;AAAA,SAAmCV,QAAnC;AAAA,CAApB;AAEP;AACA;;AACA,OAAO,IAAMW,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,SACjCR,UAAU,CAAC7B,2BAAD,EAA8B,IAA9B,CADuB;AAAA,CAA5B","sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { ALL_CONTENT_IN_DATA_SETTING } from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst defaultSettings = {\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE:\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE:\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE:\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n\n // Input format for dates. Without this setting having a value, the contributions format is used\n DATE_INPUT_FORMAT: \"\",\n\n // Readonly format for dates. Without this setting having a value, the contributions format is used\n DATE_READONLY_FORMAT: \"\",\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`\n );\n }\n\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n"],"file":"Settings.js"}
|
|
@@ -11,6 +11,7 @@ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
|
|
|
11
11
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
12
12
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
13
13
|
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
|
14
|
+
import _endsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/ends-with";
|
|
14
15
|
|
|
15
16
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
16
17
|
|
|
@@ -18,6 +19,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
|
|
|
18
19
|
|
|
19
20
|
import ConceptDetailModel from "./ConceptDetailModel";
|
|
20
21
|
import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
|
|
22
|
+
import { getSetting } from "../../constants/Settings";
|
|
21
23
|
|
|
22
24
|
/**
|
|
23
25
|
*/
|
|
@@ -73,7 +75,7 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
|
|
|
73
75
|
var scenarioStepLinks = _mapInstanceProperty(_context2 = _filterInstanceProperty(_context3 = this.relationsCollection.all).call(_context3, function (relation) {
|
|
74
76
|
var _relation$concept$con;
|
|
75
77
|
|
|
76
|
-
return relation.direction === "outgoing" && ((_relation$concept$con = relation.concept.concepttypeHref) === null || _relation$concept$con === void 0 ? void 0 : _relation$concept$con.path
|
|
78
|
+
return relation.direction === "outgoing" && BusinessScenarioModel.isOfConceptType((_relation$concept$con = relation.concept.concepttypeHref) === null || _relation$concept$con === void 0 ? void 0 : _relation$concept$con.path, "STEP");
|
|
77
79
|
})).call(_context2, function (relation) {
|
|
78
80
|
return relation.concept.asLinkModel();
|
|
79
81
|
});
|
|
@@ -95,14 +97,13 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
|
|
|
95
97
|
return model instanceof ConceptTypeDetailModel;
|
|
96
98
|
});
|
|
97
99
|
var scenarioSteps = [];
|
|
98
|
-
var SCENARIO_STEP_HREF = "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
|
|
99
100
|
|
|
100
101
|
for (var i = 0; i < models.length; i++) {
|
|
101
102
|
var _model$conceptType;
|
|
102
103
|
|
|
103
104
|
var model = models[i];
|
|
104
105
|
|
|
105
|
-
if (model instanceof ConceptDetailModel && ((_model$conceptType = model.conceptType) === null || _model$conceptType === void 0 ? void 0 : _model$conceptType.selfhref.path
|
|
106
|
+
if (model instanceof ConceptDetailModel && BusinessScenarioModel.isOfConceptType((_model$conceptType = model.conceptType) === null || _model$conceptType === void 0 ? void 0 : _model$conceptType.selfhref.path, "STEP")) {
|
|
106
107
|
scenarioSteps.push(model);
|
|
107
108
|
}
|
|
108
109
|
}
|
|
@@ -136,7 +137,7 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
|
|
|
136
137
|
var relationsToActor = _findInstanceProperty(_context4 = scenarioStep.relationsCollection).call(_context4, function (relation) {
|
|
137
138
|
var _relation$concept$con2;
|
|
138
139
|
|
|
139
|
-
return relation.direction === "outgoing" && ((_relation$concept$con2 = relation.concept.concepttypeHref) === null || _relation$concept$con2 === void 0 ? void 0 : _relation$concept$con2.path
|
|
140
|
+
return relation.direction === "outgoing" && BusinessScenarioModel.isOfConceptType((_relation$concept$con2 = relation.concept.concepttypeHref) === null || _relation$concept$con2 === void 0 ? void 0 : _relation$concept$con2.path, "PERSONA");
|
|
140
141
|
});
|
|
141
142
|
|
|
142
143
|
var newRelationToActor = relationsToActor && !actors.some(function (actor) {
|
|
@@ -154,8 +155,26 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
|
|
|
154
155
|
value: function isApplicableModel(data) {
|
|
155
156
|
var _data$data, _data$data$_links, _data$data$_links$con;
|
|
156
157
|
|
|
157
|
-
|
|
158
|
-
|
|
158
|
+
return BusinessScenarioModel.isOfConceptType(data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : (_data$data$_links = _data$data._links) === null || _data$data$_links === void 0 ? void 0 : (_data$data$_links$con = _data$data$_links.concepttype) === null || _data$data$_links$con === void 0 ? void 0 : _data$data$_links$con.href, "SCENARIO");
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
*/
|
|
162
|
+
|
|
163
|
+
}, {
|
|
164
|
+
key: "isOfConceptType",
|
|
165
|
+
value: function isOfConceptType(conceptTypeHref, settingName) {
|
|
166
|
+
if (!conceptTypeHref) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
var pathToKmt = "/Library/KMTs/Business scenarios.bixml";
|
|
171
|
+
var conceptTypeSettings = {
|
|
172
|
+
STEP: getSetting("BUSINESS_SCENARIO_STEP_CONCEPT_TYPE", "".concat(pathToKmt, "/ScenarioStep")),
|
|
173
|
+
PERSONA: getSetting("BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE", "".concat(pathToKmt, "/Persona")),
|
|
174
|
+
SCENARIO: getSetting("BUSINESS_SCENARIO_CONCEPT_TYPE", "".concat(pathToKmt, "/BusinessScenario"))
|
|
175
|
+
};
|
|
176
|
+
var conceptTypeSetting = conceptTypeSettings[settingName];
|
|
177
|
+
return _endsWithInstanceProperty(conceptTypeHref).call(conceptTypeHref, conceptTypeSetting);
|
|
159
178
|
}
|
|
160
179
|
}]);
|
|
161
180
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["ConceptDetailModel","ConceptTypeDetailModel","BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","scenarioSteps","
|
|
1
|
+
{"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["ConceptDetailModel","ConceptTypeDetailModel","getSetting","BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","isOfConceptType","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","scenarioSteps","i","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","_links","concepttype","href","conceptTypeHref","settingName","pathToKmt","conceptTypeSettings","STEP","PERSONA","SCENARIO","conceptTypeSetting"],"mappings":"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","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return BusinessScenarioModel.isOfConceptType(\n data?.data?._links?.concepttype?.href,\n \"SCENARIO\"\n );\n }\n\n /**\n */\n static isOfConceptType(\n conceptTypeHref: ?string,\n settingName: \"STEP\" | \"PERSONA\" | \"SCENARIO\"\n ): boolean {\n if (!conceptTypeHref) {\n return false;\n }\n\n const pathToKmt = \"/Library/KMTs/Business scenarios.bixml\";\n\n const conceptTypeSettings = {\n STEP: getSetting(\n \"BUSINESS_SCENARIO_STEP_CONCEPT_TYPE\",\n `${pathToKmt}/ScenarioStep`\n ),\n PERSONA: getSetting(\n \"BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE\",\n `${pathToKmt}/Persona`\n ),\n SCENARIO: getSetting(\n \"BUSINESS_SCENARIO_CONCEPT_TYPE\",\n `${pathToKmt}/BusinessScenario`\n ),\n };\n\n const conceptTypeSetting = conceptTypeSettings[settingName];\n return conceptTypeHref.endsWith(conceptTypeSetting);\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = [];\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n\n if (conceptTypeLink) {\n childModelLinks.push(conceptTypeLink);\n }\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n \"STEP\"\n )\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n this.conceptType = models.find(\n (model) => model instanceof ConceptTypeDetailModel\n );\n\n const scenarioSteps = [];\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n BusinessScenarioModel.isOfConceptType(\n model.conceptType?.selfhref.path,\n \"STEP\"\n )\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n \"PERSONA\"\n )\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"file":"BusinessScenarioModel.js"}
|
|
@@ -40,6 +40,10 @@ var defaultSettings = {
|
|
|
40
40
|
SHOW_SUBMIT_WAIT_TIMEOUT: 300,
|
|
41
41
|
// Swim lane diagram configuration file
|
|
42
42
|
SWIM_LANE_DIAGRAM_CONFIGURATION: "/Library/Diagrams/Overviews.json",
|
|
43
|
+
// Business scenario concept types
|
|
44
|
+
BUSINESS_SCENARIO_CONCEPT_TYPE: "/Library/KMTs/Business scenarios.bixml/BusinessScenario",
|
|
45
|
+
BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: "/Library/KMTs/Business scenarios.bixml/ScenarioStep",
|
|
46
|
+
BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: "/Library/KMTs/Business scenarios.bixml/Persona",
|
|
43
47
|
// Input format for dates. Without this setting having a value, the contributions format is used
|
|
44
48
|
DATE_INPUT_FORMAT: "",
|
|
45
49
|
// Readonly format for dates. Without this setting having a value, the contributions format is used
|
|
@@ -44,6 +44,14 @@ const defaultSettings = {
|
|
|
44
44
|
// Swim lane diagram configuration file
|
|
45
45
|
SWIM_LANE_DIAGRAM_CONFIGURATION: "/Library/Diagrams/Overviews.json",
|
|
46
46
|
|
|
47
|
+
// Business scenario concept types
|
|
48
|
+
BUSINESS_SCENARIO_CONCEPT_TYPE:
|
|
49
|
+
"/Library/KMTs/Business scenarios.bixml/BusinessScenario",
|
|
50
|
+
BUSINESS_SCENARIO_STEP_CONCEPT_TYPE:
|
|
51
|
+
"/Library/KMTs/Business scenarios.bixml/ScenarioStep",
|
|
52
|
+
BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE:
|
|
53
|
+
"/Library/KMTs/Business scenarios.bixml/Persona",
|
|
54
|
+
|
|
47
55
|
// Input format for dates. Without this setting having a value, the contributions format is used
|
|
48
56
|
DATE_INPUT_FORMAT: "",
|
|
49
57
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/constants/Settings.js"],"names":["defaultSettings","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","DATE_INPUT_FORMAT","DATE_READONLY_FORMAT","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","settings","setSettings","config","getSetting","key","defaultValue","undefined","Error","setSetting","value","allSettings","hasAllContentInData","ALL_CONTENT_IN_DATA_SETTING"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAIA,IAAMA,eAAe,GAAG;AACtB;AACAC,EAAAA,4BAA4B,EAAE,IAFR;AAItB;AACAC,EAAAA,yBAAyB,EAAE,IALL;AAOtB;AACAC,EAAAA,kBAAkB,EAAE,KARE;AAUtB;AACAC,EAAAA,sBAAsB,EAAE,IAXF;AAatB;AACAC,EAAAA,qCAAqC,EAAE,IAdjB;AAgBtB;AACAC,EAAAA,oCAAoC,EAAE,KAjBhB;AAmBtB;AACAC,EAAAA,oBAAoB,EAAE,CAAC,UAAD,EAAa,WAAb,CApBA;AAsBtB;AACAC,EAAAA,yBAAyB,EAAE,IAvBL;AAyBtB;AACAC,EAAAA,6BAA6B,EAAE,IA1BT;AA4BtB;AACAC,EAAAA,eAAe,EAAE,CAAC,IAAD,EAAO,IAAP,CA7BK;AA+BtB;AACAC,EAAAA,qBAAqB,EAAE,IAhCD;AAkCtB;AACAC,EAAAA,wBAAwB,EAAE,GAnCJ;AAqCtB;AACAC,EAAAA,+BAA+B,EAAE,kCAtCX;AAwCtB;AACAC,EAAAA,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"sources":["../../src/constants/Settings.js"],"names":["defaultSettings","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","DATE_INPUT_FORMAT","DATE_READONLY_FORMAT","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","settings","setSettings","config","getSetting","key","defaultValue","undefined","Error","setSetting","value","allSettings","hasAllContentInData","ALL_CONTENT_IN_DATA_SETTING"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAIA,IAAMA,eAAe,GAAG;AACtB;AACAC,EAAAA,4BAA4B,EAAE,IAFR;AAItB;AACAC,EAAAA,yBAAyB,EAAE,IALL;AAOtB;AACAC,EAAAA,kBAAkB,EAAE,KARE;AAUtB;AACAC,EAAAA,sBAAsB,EAAE,IAXF;AAatB;AACAC,EAAAA,qCAAqC,EAAE,IAdjB;AAgBtB;AACAC,EAAAA,oCAAoC,EAAE,KAjBhB;AAmBtB;AACAC,EAAAA,oBAAoB,EAAE,CAAC,UAAD,EAAa,WAAb,CApBA;AAsBtB;AACAC,EAAAA,yBAAyB,EAAE,IAvBL;AAyBtB;AACAC,EAAAA,6BAA6B,EAAE,IA1BT;AA4BtB;AACAC,EAAAA,eAAe,EAAE,CAAC,IAAD,EAAO,IAAP,CA7BK;AA+BtB;AACAC,EAAAA,qBAAqB,EAAE,IAhCD;AAkCtB;AACAC,EAAAA,wBAAwB,EAAE,GAnCJ;AAqCtB;AACAC,EAAAA,+BAA+B,EAAE,kCAtCX;AAwCtB;AACAC,EAAAA,8BAA8B,EAC5B,yDA1CoB;AA2CtBC,EAAAA,mCAAmC,EACjC,qDA5CoB;AA6CtBC,EAAAA,sCAAsC,EACpC,gDA9CoB;AAgDtB;AACAC,EAAAA,iBAAiB,EAAE,EAjDG;AAmDtB;AACAC,EAAAA,oBAAoB,EAAE,EApDA;AAsDtB;AACAC,EAAAA,uBAAuB,EAAE,CAvDH;AAyDtB;AACAC,EAAAA,iCAAiC,EAAE,CA1Db;AA4DtB;AACAC,EAAAA,aAAa,EAAE,EA7DO;AA+DtB;AACAC,EAAAA,6BAA6B,EAAE,IAhET;AAkEtB;AACAC,EAAAA,iCAAiC,EAAE,KAnEb;AAqEtBC,EAAAA,cAAc,EAAE;AArEM,CAAxB;AAwEA,IAAIC,QAAQ,GAAGzB,eAAf;AAEA;AACA;;AACO,IAAM0B,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAAoB;AAC7C,MAAI,4BAAcA,MAAd,CAAJ,EAA2B;AACzBF,IAAAA,QAAQ,GAAG,qBAAczB,eAAd,EAA+B2B,MAA/B,CAAX;AACD;AACF,CAJM;AAMP;AACA;;;;;AACO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,GAAD,EAAcC,YAAd,EAA0C;AAAA;;AAClE,MAAI,CAAC,kBAAIL,QAAJ,EAAcI,GAAd,CAAD,IAAuBC,YAAY,KAAKC,SAA5C,EAAuD;AACrD,UAAM,IAAIC,KAAJ,6BACiBH,GADjB,0CAAN;AAGD;;AAED,0BAAOJ,QAAQ,CAACI,GAAD,CAAf,yDAAwBC,YAAxB;AACD,CARM;AAUP;AACA;;;;;AACO,IAAMG,UAAU,GAAG,SAAbA,UAAa,CAACJ,GAAD,EAAcK,KAAd,EAA6B;AACrDT,EAAAA,QAAQ,CAACI,GAAD,CAAR,GAAgBK,KAAhB;AACD,CAFM;AAIP;AACA;;;;;AACO,IAAMC,WAAW,GAAG,SAAdA,WAAc;AAAA,SAAmCV,QAAnC;AAAA,CAApB;AAEP;AACA;;;;;AACO,IAAMW,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,SACjCR,UAAU,CAACS,sCAAD,EAA8B,IAA9B,CADuB;AAAA,CAA5B","sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { ALL_CONTENT_IN_DATA_SETTING } from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst defaultSettings = {\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE:\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE:\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE:\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n\n // Input format for dates. Without this setting having a value, the contributions format is used\n DATE_INPUT_FORMAT: \"\",\n\n // Readonly format for dates. Without this setting having a value, the contributions format is used\n DATE_READONLY_FORMAT: \"\",\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`\n );\n }\n\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n"],"file":"Settings.js"}
|
|
@@ -17,6 +17,8 @@ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-sta
|
|
|
17
17
|
|
|
18
18
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
19
19
|
|
|
20
|
+
var _endsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/ends-with"));
|
|
21
|
+
|
|
20
22
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
|
|
21
23
|
|
|
22
24
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
|
|
@@ -37,6 +39,8 @@ var _ConceptDetailModel2 = _interopRequireDefault(require("./ConceptDetailModel"
|
|
|
37
39
|
|
|
38
40
|
var _ConceptTypeDetailModel = _interopRequireDefault(require("./ConceptTypeDetailModel"));
|
|
39
41
|
|
|
42
|
+
var _Settings = require("../../constants/Settings");
|
|
43
|
+
|
|
40
44
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
41
45
|
|
|
42
46
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -93,7 +97,7 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
|
|
|
93
97
|
var scenarioStepLinks = (0, _map.default)(_context2 = (0, _filter.default)(_context3 = this.relationsCollection.all).call(_context3, function (relation) {
|
|
94
98
|
var _relation$concept$con;
|
|
95
99
|
|
|
96
|
-
return relation.direction === "outgoing" && ((_relation$concept$con = relation.concept.concepttypeHref) === null || _relation$concept$con === void 0 ? void 0 : _relation$concept$con.path
|
|
100
|
+
return relation.direction === "outgoing" && BusinessScenarioModel.isOfConceptType((_relation$concept$con = relation.concept.concepttypeHref) === null || _relation$concept$con === void 0 ? void 0 : _relation$concept$con.path, "STEP");
|
|
97
101
|
})).call(_context2, function (relation) {
|
|
98
102
|
return relation.concept.asLinkModel();
|
|
99
103
|
});
|
|
@@ -115,14 +119,13 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
|
|
|
115
119
|
return model instanceof _ConceptTypeDetailModel.default;
|
|
116
120
|
});
|
|
117
121
|
var scenarioSteps = [];
|
|
118
|
-
var SCENARIO_STEP_HREF = "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
|
|
119
122
|
|
|
120
123
|
for (var i = 0; i < models.length; i++) {
|
|
121
124
|
var _model$conceptType;
|
|
122
125
|
|
|
123
126
|
var model = models[i];
|
|
124
127
|
|
|
125
|
-
if (model instanceof _ConceptDetailModel2.default && ((_model$conceptType = model.conceptType) === null || _model$conceptType === void 0 ? void 0 : _model$conceptType.selfhref.path
|
|
128
|
+
if (model instanceof _ConceptDetailModel2.default && BusinessScenarioModel.isOfConceptType((_model$conceptType = model.conceptType) === null || _model$conceptType === void 0 ? void 0 : _model$conceptType.selfhref.path, "STEP")) {
|
|
126
129
|
scenarioSteps.push(model);
|
|
127
130
|
}
|
|
128
131
|
}
|
|
@@ -156,7 +159,7 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
|
|
|
156
159
|
var relationsToActor = (0, _find.default)(_context4 = scenarioStep.relationsCollection).call(_context4, function (relation) {
|
|
157
160
|
var _relation$concept$con2;
|
|
158
161
|
|
|
159
|
-
return relation.direction === "outgoing" && ((_relation$concept$con2 = relation.concept.concepttypeHref) === null || _relation$concept$con2 === void 0 ? void 0 : _relation$concept$con2.path
|
|
162
|
+
return relation.direction === "outgoing" && BusinessScenarioModel.isOfConceptType((_relation$concept$con2 = relation.concept.concepttypeHref) === null || _relation$concept$con2 === void 0 ? void 0 : _relation$concept$con2.path, "PERSONA");
|
|
160
163
|
});
|
|
161
164
|
var newRelationToActor = relationsToActor && !actors.some(function (actor) {
|
|
162
165
|
return actor.key === relationsToActor.concept.key;
|
|
@@ -173,8 +176,26 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
|
|
|
173
176
|
value: function isApplicableModel(data) {
|
|
174
177
|
var _data$data, _data$data$_links, _data$data$_links$con;
|
|
175
178
|
|
|
176
|
-
|
|
177
|
-
|
|
179
|
+
return BusinessScenarioModel.isOfConceptType(data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : (_data$data$_links = _data$data._links) === null || _data$data$_links === void 0 ? void 0 : (_data$data$_links$con = _data$data$_links.concepttype) === null || _data$data$_links$con === void 0 ? void 0 : _data$data$_links$con.href, "SCENARIO");
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
*/
|
|
183
|
+
|
|
184
|
+
}, {
|
|
185
|
+
key: "isOfConceptType",
|
|
186
|
+
value: function isOfConceptType(conceptTypeHref, settingName) {
|
|
187
|
+
if (!conceptTypeHref) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
var pathToKmt = "/Library/KMTs/Business scenarios.bixml";
|
|
192
|
+
var conceptTypeSettings = {
|
|
193
|
+
STEP: (0, _Settings.getSetting)("BUSINESS_SCENARIO_STEP_CONCEPT_TYPE", "".concat(pathToKmt, "/ScenarioStep")),
|
|
194
|
+
PERSONA: (0, _Settings.getSetting)("BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE", "".concat(pathToKmt, "/Persona")),
|
|
195
|
+
SCENARIO: (0, _Settings.getSetting)("BUSINESS_SCENARIO_CONCEPT_TYPE", "".concat(pathToKmt, "/BusinessScenario"))
|
|
196
|
+
};
|
|
197
|
+
var conceptTypeSetting = conceptTypeSettings[settingName];
|
|
198
|
+
return (0, _endsWith.default)(conceptTypeHref).call(conceptTypeHref, conceptTypeSetting);
|
|
178
199
|
}
|
|
179
200
|
}]);
|
|
180
201
|
return BusinessScenarioModel;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import ConceptDetailModel from "./ConceptDetailModel";
|
|
3
3
|
import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
|
|
4
|
+
import { getSetting } from "../../constants/Settings";
|
|
4
5
|
|
|
5
6
|
import type { ModularUIResponse } from "../../modularui";
|
|
6
7
|
import type { ModularUIModel } from "../types";
|
|
@@ -21,13 +22,43 @@ class BusinessScenarioModel extends ConceptDetailModel {
|
|
|
21
22
|
/**
|
|
22
23
|
*/
|
|
23
24
|
static isApplicableModel(data: ModularUIResponse): boolean {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario"
|
|
25
|
+
return BusinessScenarioModel.isOfConceptType(
|
|
26
|
+
data?.data?._links?.concepttype?.href,
|
|
27
|
+
"SCENARIO"
|
|
28
28
|
);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
/**
|
|
32
|
+
*/
|
|
33
|
+
static isOfConceptType(
|
|
34
|
+
conceptTypeHref: ?string,
|
|
35
|
+
settingName: "STEP" | "PERSONA" | "SCENARIO"
|
|
36
|
+
): boolean {
|
|
37
|
+
if (!conceptTypeHref) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const pathToKmt = "/Library/KMTs/Business scenarios.bixml";
|
|
42
|
+
|
|
43
|
+
const conceptTypeSettings = {
|
|
44
|
+
STEP: getSetting(
|
|
45
|
+
"BUSINESS_SCENARIO_STEP_CONCEPT_TYPE",
|
|
46
|
+
`${pathToKmt}/ScenarioStep`
|
|
47
|
+
),
|
|
48
|
+
PERSONA: getSetting(
|
|
49
|
+
"BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE",
|
|
50
|
+
`${pathToKmt}/Persona`
|
|
51
|
+
),
|
|
52
|
+
SCENARIO: getSetting(
|
|
53
|
+
"BUSINESS_SCENARIO_CONCEPT_TYPE",
|
|
54
|
+
`${pathToKmt}/BusinessScenario`
|
|
55
|
+
),
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const conceptTypeSetting = conceptTypeSettings[settingName];
|
|
59
|
+
return conceptTypeHref.endsWith(conceptTypeSetting);
|
|
60
|
+
}
|
|
61
|
+
|
|
31
62
|
/**
|
|
32
63
|
*/
|
|
33
64
|
getInitialChildModelLinks(): Array<LinkModel> {
|
|
@@ -42,8 +73,10 @@ class BusinessScenarioModel extends ConceptDetailModel {
|
|
|
42
73
|
.filter(
|
|
43
74
|
(relation) =>
|
|
44
75
|
relation.direction === "outgoing" &&
|
|
45
|
-
|
|
46
|
-
|
|
76
|
+
BusinessScenarioModel.isOfConceptType(
|
|
77
|
+
relation.concept.concepttypeHref?.path,
|
|
78
|
+
"STEP"
|
|
79
|
+
)
|
|
47
80
|
)
|
|
48
81
|
.map((relation) => relation.concept.asLinkModel());
|
|
49
82
|
|
|
@@ -63,14 +96,15 @@ class BusinessScenarioModel extends ConceptDetailModel {
|
|
|
63
96
|
);
|
|
64
97
|
|
|
65
98
|
const scenarioSteps = [];
|
|
66
|
-
const SCENARIO_STEP_HREF =
|
|
67
|
-
"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
|
|
68
99
|
for (let i = 0; i < models.length; i++) {
|
|
69
100
|
const model = models[i];
|
|
70
101
|
|
|
71
102
|
if (
|
|
72
103
|
model instanceof ConceptDetailModel &&
|
|
73
|
-
|
|
104
|
+
BusinessScenarioModel.isOfConceptType(
|
|
105
|
+
model.conceptType?.selfhref.path,
|
|
106
|
+
"STEP"
|
|
107
|
+
)
|
|
74
108
|
) {
|
|
75
109
|
scenarioSteps.push(model);
|
|
76
110
|
}
|
|
@@ -100,8 +134,10 @@ class BusinessScenarioModel extends ConceptDetailModel {
|
|
|
100
134
|
const relationsToActor = scenarioStep.relationsCollection.find(
|
|
101
135
|
(relation) =>
|
|
102
136
|
relation.direction === "outgoing" &&
|
|
103
|
-
|
|
104
|
-
|
|
137
|
+
BusinessScenarioModel.isOfConceptType(
|
|
138
|
+
relation.concept.concepttypeHref?.path,
|
|
139
|
+
"PERSONA"
|
|
140
|
+
)
|
|
105
141
|
);
|
|
106
142
|
|
|
107
143
|
const newRelationToActor =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","ConceptTypeDetailModel","scenarioSteps","
|
|
1
|
+
{"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","isOfConceptType","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","ConceptTypeDetailModel","scenarioSteps","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","_links","concepttype","href","conceptTypeHref","settingName","pathToKmt","conceptTypeSettings","STEP","PERSONA","SCENARIO","conceptTypeSetting"],"mappings":"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","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return BusinessScenarioModel.isOfConceptType(\n data?.data?._links?.concepttype?.href,\n \"SCENARIO\"\n );\n }\n\n /**\n */\n static isOfConceptType(\n conceptTypeHref: ?string,\n settingName: \"STEP\" | \"PERSONA\" | \"SCENARIO\"\n ): boolean {\n if (!conceptTypeHref) {\n return false;\n }\n\n const pathToKmt = \"/Library/KMTs/Business scenarios.bixml\";\n\n const conceptTypeSettings = {\n STEP: getSetting(\n \"BUSINESS_SCENARIO_STEP_CONCEPT_TYPE\",\n `${pathToKmt}/ScenarioStep`\n ),\n PERSONA: getSetting(\n \"BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE\",\n `${pathToKmt}/Persona`\n ),\n SCENARIO: getSetting(\n \"BUSINESS_SCENARIO_CONCEPT_TYPE\",\n `${pathToKmt}/BusinessScenario`\n ),\n };\n\n const conceptTypeSetting = conceptTypeSettings[settingName];\n return conceptTypeHref.endsWith(conceptTypeSetting);\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = [];\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n\n if (conceptTypeLink) {\n childModelLinks.push(conceptTypeLink);\n }\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n \"STEP\"\n )\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n this.conceptType = models.find(\n (model) => model instanceof ConceptTypeDetailModel\n );\n\n const scenarioSteps = [];\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n BusinessScenarioModel.isOfConceptType(\n model.conceptType?.selfhref.path,\n \"STEP\"\n )\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n \"PERSONA\"\n )\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"file":"BusinessScenarioModel.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beinformed/ui",
|
|
3
|
-
"version": "1.14.
|
|
3
|
+
"version": "1.14.1",
|
|
4
4
|
"description": "Toolbox for be informed javascript layouts",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"bugs": "http://support.beinformed.com",
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
"eslint-plugin-jsdoc": "^37.9.4",
|
|
123
123
|
"eslint-plugin-react": "^7.28.0",
|
|
124
124
|
"eslint-plugin-react-hooks": "^4.3.0",
|
|
125
|
-
"flow-bin": "^0.
|
|
125
|
+
"flow-bin": "^0.173.0",
|
|
126
126
|
"flow-copy-source": "^2.0.9",
|
|
127
127
|
"flow-typed": "^3.6.1",
|
|
128
128
|
"glob": "^7.2.0",
|
|
@@ -44,6 +44,14 @@ const defaultSettings = {
|
|
|
44
44
|
// Swim lane diagram configuration file
|
|
45
45
|
SWIM_LANE_DIAGRAM_CONFIGURATION: "/Library/Diagrams/Overviews.json",
|
|
46
46
|
|
|
47
|
+
// Business scenario concept types
|
|
48
|
+
BUSINESS_SCENARIO_CONCEPT_TYPE:
|
|
49
|
+
"/Library/KMTs/Business scenarios.bixml/BusinessScenario",
|
|
50
|
+
BUSINESS_SCENARIO_STEP_CONCEPT_TYPE:
|
|
51
|
+
"/Library/KMTs/Business scenarios.bixml/ScenarioStep",
|
|
52
|
+
BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE:
|
|
53
|
+
"/Library/KMTs/Business scenarios.bixml/Persona",
|
|
54
|
+
|
|
47
55
|
// Input format for dates. Without this setting having a value, the contributions format is used
|
|
48
56
|
DATE_INPUT_FORMAT: "",
|
|
49
57
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import ConceptDetailModel from "./ConceptDetailModel";
|
|
3
3
|
import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
|
|
4
|
+
import { getSetting } from "../../constants/Settings";
|
|
4
5
|
|
|
5
6
|
import type { ModularUIResponse } from "../../modularui";
|
|
6
7
|
import type { ModularUIModel } from "../types";
|
|
@@ -21,13 +22,43 @@ class BusinessScenarioModel extends ConceptDetailModel {
|
|
|
21
22
|
/**
|
|
22
23
|
*/
|
|
23
24
|
static isApplicableModel(data: ModularUIResponse): boolean {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario"
|
|
25
|
+
return BusinessScenarioModel.isOfConceptType(
|
|
26
|
+
data?.data?._links?.concepttype?.href,
|
|
27
|
+
"SCENARIO"
|
|
28
28
|
);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
/**
|
|
32
|
+
*/
|
|
33
|
+
static isOfConceptType(
|
|
34
|
+
conceptTypeHref: ?string,
|
|
35
|
+
settingName: "STEP" | "PERSONA" | "SCENARIO"
|
|
36
|
+
): boolean {
|
|
37
|
+
if (!conceptTypeHref) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const pathToKmt = "/Library/KMTs/Business scenarios.bixml";
|
|
42
|
+
|
|
43
|
+
const conceptTypeSettings = {
|
|
44
|
+
STEP: getSetting(
|
|
45
|
+
"BUSINESS_SCENARIO_STEP_CONCEPT_TYPE",
|
|
46
|
+
`${pathToKmt}/ScenarioStep`
|
|
47
|
+
),
|
|
48
|
+
PERSONA: getSetting(
|
|
49
|
+
"BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE",
|
|
50
|
+
`${pathToKmt}/Persona`
|
|
51
|
+
),
|
|
52
|
+
SCENARIO: getSetting(
|
|
53
|
+
"BUSINESS_SCENARIO_CONCEPT_TYPE",
|
|
54
|
+
`${pathToKmt}/BusinessScenario`
|
|
55
|
+
),
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const conceptTypeSetting = conceptTypeSettings[settingName];
|
|
59
|
+
return conceptTypeHref.endsWith(conceptTypeSetting);
|
|
60
|
+
}
|
|
61
|
+
|
|
31
62
|
/**
|
|
32
63
|
*/
|
|
33
64
|
getInitialChildModelLinks(): Array<LinkModel> {
|
|
@@ -42,8 +73,10 @@ class BusinessScenarioModel extends ConceptDetailModel {
|
|
|
42
73
|
.filter(
|
|
43
74
|
(relation) =>
|
|
44
75
|
relation.direction === "outgoing" &&
|
|
45
|
-
|
|
46
|
-
|
|
76
|
+
BusinessScenarioModel.isOfConceptType(
|
|
77
|
+
relation.concept.concepttypeHref?.path,
|
|
78
|
+
"STEP"
|
|
79
|
+
)
|
|
47
80
|
)
|
|
48
81
|
.map((relation) => relation.concept.asLinkModel());
|
|
49
82
|
|
|
@@ -63,14 +96,15 @@ class BusinessScenarioModel extends ConceptDetailModel {
|
|
|
63
96
|
);
|
|
64
97
|
|
|
65
98
|
const scenarioSteps = [];
|
|
66
|
-
const SCENARIO_STEP_HREF =
|
|
67
|
-
"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
|
|
68
99
|
for (let i = 0; i < models.length; i++) {
|
|
69
100
|
const model = models[i];
|
|
70
101
|
|
|
71
102
|
if (
|
|
72
103
|
model instanceof ConceptDetailModel &&
|
|
73
|
-
|
|
104
|
+
BusinessScenarioModel.isOfConceptType(
|
|
105
|
+
model.conceptType?.selfhref.path,
|
|
106
|
+
"STEP"
|
|
107
|
+
)
|
|
74
108
|
) {
|
|
75
109
|
scenarioSteps.push(model);
|
|
76
110
|
}
|
|
@@ -100,8 +134,10 @@ class BusinessScenarioModel extends ConceptDetailModel {
|
|
|
100
134
|
const relationsToActor = scenarioStep.relationsCollection.find(
|
|
101
135
|
(relation) =>
|
|
102
136
|
relation.direction === "outgoing" &&
|
|
103
|
-
|
|
104
|
-
|
|
137
|
+
BusinessScenarioModel.isOfConceptType(
|
|
138
|
+
relation.concept.concepttypeHref?.path,
|
|
139
|
+
"PERSONA"
|
|
140
|
+
)
|
|
105
141
|
);
|
|
106
142
|
|
|
107
143
|
const newRelationToActor =
|