@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 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,EAzCG;AA2CtB;AACAC,EAAAA,oBAAoB,EAAE,EA5CA;AA8CtB;AACAC,EAAAA,uBAAuB,EAAE,CA/CH;AAiDtB;AACAC,EAAAA,iCAAiC,EAAE,CAlDb;AAoDtB;AACAC,EAAAA,aAAa,EAAE,EArDO;AAuDtB;AACAC,EAAAA,6BAA6B,EAAE,IAxDT;AA0DtB;AACAC,EAAAA,iCAAiC,EAAE,KA3Db;AA6DtBC,EAAAA,cAAc,EAAE;AA7DM,CAAxB;AAgEA,IAAIC,QAAQ,GAAGtB,eAAf;AAEA;AACA;;AACA,OAAO,IAAMuB,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAAoB;AAC7C,MAAI3B,aAAa,CAAC2B,MAAD,CAAjB,EAA2B;AACzBF,IAAAA,QAAQ,GAAG,eAActB,eAAd,EAA+BwB,MAA/B,CAAX;AACD;AACF,CAJM;AAMP;AACA;;AACA,OAAO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,GAAD,EAAcC,YAAd,EAA0C;AAAA;;AAClE,MAAI,CAAC7B,GAAG,CAACwB,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,CAAC1B,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 // 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"}
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) === "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
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) === SCENARIO_STEP_HREF) {
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) === "/concepttypes/Library/KMTs/Business scenarios.bixml/Persona";
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
- var conceptTypeHref = 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;
158
- return conceptTypeHref === "/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario";
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","SCENARIO_STEP_HREF","i","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","conceptTypeHref","_links","concepttype","href"],"mappings":"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","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\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 const conceptTypeHref = data?.data?._links?.concepttype?.href;\n return (\n conceptTypeHref ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario\"\n );\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 relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\"\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 const SCENARIO_STEP_HREF =\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\";\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n model.conceptType?.selfhref.path === SCENARIO_STEP_HREF\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 relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/Persona\"\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"}
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,EAzCG;AA2CtB;AACAC,EAAAA,oBAAoB,EAAE,EA5CA;AA8CtB;AACAC,EAAAA,uBAAuB,EAAE,CA/CH;AAiDtB;AACAC,EAAAA,iCAAiC,EAAE,CAlDb;AAoDtB;AACAC,EAAAA,aAAa,EAAE,EArDO;AAuDtB;AACAC,EAAAA,6BAA6B,EAAE,IAxDT;AA0DtB;AACAC,EAAAA,iCAAiC,EAAE,KA3Db;AA6DtBC,EAAAA,cAAc,EAAE;AA7DM,CAAxB;AAgEA,IAAIC,QAAQ,GAAGtB,eAAf;AAEA;AACA;;AACO,IAAMuB,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAAoB;AAC7C,MAAI,4BAAcA,MAAd,CAAJ,EAA2B;AACzBF,IAAAA,QAAQ,GAAG,qBAActB,eAAd,EAA+BwB,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 // 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"}
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) === "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
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) === SCENARIO_STEP_HREF) {
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) === "/concepttypes/Library/KMTs/Business scenarios.bixml/Persona";
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
- var conceptTypeHref = 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;
177
- return conceptTypeHref === "/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario";
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
- const conceptTypeHref = data?.data?._links?.concepttype?.href;
25
- return (
26
- conceptTypeHref ===
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
- relation.concept.concepttypeHref?.path ===
46
- "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep"
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
- model.conceptType?.selfhref.path === SCENARIO_STEP_HREF
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
- relation.concept.concepttypeHref?.path ===
104
- "/concepttypes/Library/KMTs/Business scenarios.bixml/Persona"
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","SCENARIO_STEP_HREF","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","conceptTypeHref","_links","concepttype","href"],"mappings":"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","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\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 const conceptTypeHref = data?.data?._links?.concepttype?.href;\n return (\n conceptTypeHref ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario\"\n );\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 relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\"\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 const SCENARIO_STEP_HREF =\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\";\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n model.conceptType?.selfhref.path === SCENARIO_STEP_HREF\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 relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/Persona\"\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"}
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.0",
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.172.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
- const conceptTypeHref = data?.data?._links?.concepttype?.href;
25
- return (
26
- conceptTypeHref ===
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
- relation.concept.concepttypeHref?.path ===
46
- "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep"
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
- model.conceptType?.selfhref.path === SCENARIO_STEP_HREF
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
- relation.concept.concepttypeHref?.path ===
104
- "/concepttypes/Library/KMTs/Business scenarios.bixml/Persona"
137
+ BusinessScenarioModel.isOfConceptType(
138
+ relation.concept.concepttypeHref?.path,
139
+ "PERSONA"
140
+ )
105
141
  );
106
142
 
107
143
  const newRelationToActor =