@beinformed/ui 1.13.0 → 1.13.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 +8 -0
- package/esm/builder/mergeLayoutHintConfigurations.js +3 -3
- package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/esm/hooks/useContent.js +2 -2
- package/esm/hooks/useContent.js.map +1 -1
- package/esm/hooks/useDeepCompareEffect.js +2 -1
- package/esm/hooks/useDeepCompareEffect.js.map +1 -1
- package/esm/hooks/useForm.js.map +1 -1
- package/esm/hooks/useModal.js +2 -2
- package/esm/hooks/useModal.js.map +1 -1
- package/esm/hooks/useModularUI.js +0 -1
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/models/caseview/CaseViewModel.js +2 -1
- package/esm/models/caseview/CaseViewModel.js.map +1 -1
- package/esm/models/list/ListItemCollection.js +38 -0
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/models/list/ListItemModel.js +14 -2
- package/esm/models/list/ListItemModel.js.map +1 -1
- package/esm/models/list/ListModel.js +16 -69
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +69 -47
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/utils/browser/Cookies.js +18 -32
- package/esm/utils/browser/Cookies.js.map +1 -1
- package/esm/utils/fetch/xhr.js +2 -1
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/lib/builder/mergeLayoutHintConfigurations.js +3 -3
- package/lib/builder/mergeLayoutHintConfigurations.js.flow +3 -3
- package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/lib/hooks/useContent.js +2 -2
- package/lib/hooks/useContent.js.flow +2 -2
- package/lib/hooks/useContent.js.map +1 -1
- package/lib/hooks/useDeepCompareEffect.js +2 -1
- package/lib/hooks/useDeepCompareEffect.js.flow +1 -1
- package/lib/hooks/useDeepCompareEffect.js.map +1 -1
- package/lib/hooks/useForm.js.flow +1 -2
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useModal.js +2 -2
- package/lib/hooks/useModal.js.flow +1 -1
- package/lib/hooks/useModal.js.map +1 -1
- package/lib/hooks/useModularUI.js +0 -1
- package/lib/hooks/useModularUI.js.flow +0 -2
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/models/caseview/CaseViewModel.js +3 -1
- package/lib/models/caseview/CaseViewModel.js.flow +3 -1
- package/lib/models/caseview/CaseViewModel.js.map +1 -1
- package/lib/models/caseview/__tests__/CaseViewModel.spec.js.flow +38 -1
- package/lib/models/list/ListItemCollection.js +40 -0
- package/lib/models/list/ListItemCollection.js.flow +38 -1
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/list/ListItemModel.js +14 -2
- package/lib/models/list/ListItemModel.js.flow +15 -0
- package/lib/models/list/ListItemModel.js.map +1 -1
- package/lib/models/list/ListModel.js +15 -70
- package/lib/models/list/ListModel.js.flow +1 -45
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/list/__tests__/ListItemCollection.spec.js.flow +22 -0
- package/lib/models/list/__tests__/ListModel.spec.js.flow +0 -2
- package/lib/models/panels/__tests__/GroupingPanelModel.spec.js.flow +38 -21
- package/lib/models/process/__tests__/ProcessStatusSettingsModel.spec.js.flow +11 -0
- package/lib/modularui/ModularUIRequest.js +67 -47
- package/lib/modularui/ModularUIRequest.js.flow +38 -22
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/utils/browser/Cookies.js +18 -31
- package/lib/utils/browser/Cookies.js.flow +22 -28
- package/lib/utils/browser/Cookies.js.map +1 -1
- package/lib/utils/browser/__tests__/Cookies.spec.js.flow +51 -0
- package/lib/utils/fetch/xhr.js +2 -1
- package/lib/utils/fetch/xhr.js.flow +3 -1
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/package.json +12 -10
- package/src/builder/mergeLayoutHintConfigurations.js +3 -3
- package/src/hooks/useContent.js +2 -2
- package/src/hooks/useDeepCompareEffect.js +1 -1
- package/src/hooks/useForm.js +1 -2
- package/src/hooks/useModal.js +1 -1
- package/src/hooks/useModularUI.js +0 -2
- package/src/models/caseview/CaseViewModel.js +3 -1
- package/src/models/caseview/__tests__/CaseViewModel.spec.js +38 -1
- package/src/models/caseview/__tests__/caseview.json +14 -3
- package/src/models/caseview/__tests__/caseviewContributions.json +48 -77
- package/src/models/caseview/__tests__/caseview_local_taskgroup.json +57 -0
- package/src/models/list/ListItemCollection.js +38 -1
- package/src/models/list/ListItemModel.js +15 -0
- package/src/models/list/ListModel.js +1 -45
- package/src/models/list/__tests__/ListItemCollection.spec.js +22 -0
- package/src/models/list/__tests__/ListModel.spec.js +0 -2
- package/src/models/panels/__tests__/GroupingPanelModel.spec.js +38 -21
- package/src/models/panels/__tests__/groupingPanel.json +20 -1
- package/src/models/panels/__tests__/groupingPanelContributions.json +14 -1
- package/src/models/process/__tests__/ProcessStatusSettingsModel.spec.js +11 -0
- package/src/modularui/ModularUIRequest.js +38 -22
- package/src/utils/browser/Cookies.js +22 -28
- package/src/utils/browser/__tests__/Cookies.spec.js +51 -0
- package/src/utils/fetch/xhr.js +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/fetch/xhr.js"],"names":["has","isPlainObject","IllegalArgumentException","UnauthorizedException","FetchException","TimeoutException","NotFoundException","JsonParseException","NetworkException","Cache","HTTP_METHODS","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","options","_options","_attempts","_xmlhttp","xmlhttp","attempts","url","params","aUrl","split","data","method","GET","timeout","responseType","onProgress","events","baseHeaders","Accept","headers","reject","responseJSON","status","isReload","response","getResponseHeader","JSON","parse","error","resolve","getResponse","errorHandler","forEach","eventType","addEventListener","timeoutHandler","responseHandler","eventName","open","hasItem","withCredentials","basicToken","getItem","setRequestHeader","headerName","send","stringData","XMLHttpRequest","setEventListeners","openConnection","setBasicAuthentication","setCustomHeaders","setOtherOptions","sendData","setXMLHttpRequest","fetch","validateInputArguments","args","toString","xhr"],"mappings":"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","sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp() {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options() {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts() {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url() {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params() {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data() {\n return this.options.data || null;\n }\n\n /**\n */\n get method() {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout() {\n return this.options.timeout || 300000;\n }\n\n /**\n */\n get responseType() {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {};\n }\n\n /**\n */\n get events() {\n return this.options.events || {};\n }\n\n /**\n */\n get headers() {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": \"en\",\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject) {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject, responseJSON = null) {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON)\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse() {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve, reject) {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve, reject) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject)\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n this.xmlhttp.withCredentials = true;\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName) {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest() {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch() {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\"\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args\n )}`\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"file":"xhr.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/fetch/xhr.js"],"names":["has","isPlainObject","IllegalArgumentException","UnauthorizedException","FetchException","TimeoutException","NotFoundException","JsonParseException","NetworkException","Cache","HTTP_METHODS","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","options","_options","_attempts","_xmlhttp","xmlhttp","attempts","url","params","aUrl","split","data","method","GET","timeout","responseType","onProgress","events","baseHeaders","Accept","headers","reject","responseJSON","status","isReload","response","getResponseHeader","JSON","parse","error","resolve","getResponse","errorHandler","forEach","eventType","addEventListener","timeoutHandler","responseHandler","eventName","open","hasItem","withCredentials","basicToken","getItem","setRequestHeader","headerName","send","stringData","XMLHttpRequest","setEventListeners","openConnection","setBasicAuthentication","setCustomHeaders","setOtherOptions","sendData","setXMLHttpRequest","fetch","validateInputArguments","args","toString","xhr"],"mappings":"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","sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp() {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options() {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts() {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url() {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params() {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data() {\n return this.options.data || null;\n }\n\n /**\n */\n get method() {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout() {\n return this.options.timeout || 300000;\n }\n\n /**\n */\n get responseType() {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events() {\n return this.options.events || {};\n }\n\n /**\n */\n get headers() {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": \"en\",\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject) {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject, responseJSON = null) {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON)\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse() {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve, reject) {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve, reject) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject)\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n this.xmlhttp.withCredentials = true;\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName) {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest() {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch() {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\"\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args\n )}`\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"file":"xhr.js"}
|
|
@@ -67,9 +67,9 @@ exports.mergeLayoutHintConfigurations = /*#__PURE__*/function () {
|
|
|
67
67
|
|
|
68
68
|
var newConfig = _assign.default.apply(Object, (0, _concat.default)(_context = [LayoutHintConfiguration]).call(_context, (0, _toConsumableArray2.default)(jsons)));
|
|
69
69
|
|
|
70
|
-
fs.writeFile(path.join(outputFolder, "LayoutHintConfig.json"), (0, _stringify.default)(newConfig), function (
|
|
71
|
-
if (
|
|
72
|
-
return reject(
|
|
70
|
+
fs.writeFile(path.join(outputFolder, "LayoutHintConfig.json"), (0, _stringify.default)(newConfig), function (writeErr) {
|
|
71
|
+
if (writeErr) {
|
|
72
|
+
return reject(writeErr);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
return resolve();
|
|
@@ -44,9 +44,9 @@ exports.mergeLayoutHintConfigurations = async (
|
|
|
44
44
|
path.join(outputFolder, "LayoutHintConfig.json"),
|
|
45
45
|
JSON.stringify(newConfig),
|
|
46
46
|
|
|
47
|
-
(
|
|
48
|
-
if (
|
|
49
|
-
return reject(
|
|
47
|
+
(writeErr) => {
|
|
48
|
+
if (writeErr) {
|
|
49
|
+
return reject(writeErr);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
return resolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/builder/mergeLayoutHintConfigurations.js"],"names":["glob","require","fs","path","LayoutHintConfiguration","readFiles","files","filePromises","file","resolve","reject","readFile","err","data","JSON","parse","all","exports","mergeLayoutHintConfigurations","srcFolder","outputFolder","escapedSrcFolder","replace","then","jsons","newConfig","Object","writeFile","join"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,IAAMA,IAAI,GAAGC,OAAO,CAAC,MAAD,CAApB;;AACA,IAAMC,EAAE,GAAGD,OAAO,CAAC,IAAD,CAAlB;;AACA,IAAME,IAAI,GAAGF,OAAO,CAAC,MAAD,CAApB;;AAEA,eAAoCA,OAAO,CAAC,+BAAD,CAA3C;AAAA,IAAQG,uBAAR,YAAQA,uBAAR;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD,EAAW;AAC3B,MAAMC,YAAY,GAAG,kBAAAD,KAAK,MAAL,CAAAA,KAAK,EACxB,UAACE,IAAD;AAAA,WACE,qBAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AAC/BR,MAAAA,EAAE,CAACS,QAAH,CAAYH,IAAZ,EAAkB,OAAlB,EAA2B,UAACI,GAAD,EAAMC,IAAN,EAAe;AACxC,YAAID,GAAJ,EAAS;AACP,iBAAOF,MAAM,CAACE,GAAD,CAAb;AACD,SAFD,MAEO;AACL,iBAAOH,OAAO,CAACK,IAAI,CAACC,KAAL,CAAWF,IAAX,CAAD,CAAd;AACD;AACF,OAND;AAOD,KARD,CADF;AAAA,GADwB,CAA1B;AAaA,SAAO,iBAAQG,GAAR,CAAYT,YAAZ,CAAP;AACD,CAfD;AAiBA;AACA;AACA;AACA;AACA;;;AACAU,OAAO,CAACC,6BAAR;AAAA,qFAAwC,iBACtCC,SADsC,EAEtCC,YAFsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAIhCC,YAAAA,gBAJgC,GAIbF,SAAS,CAACG,OAAV,CAAkB,KAAlB,EAAyB,GAAzB,CAJa;AAAA,8CAK/B,qBAAY,UAACb,OAAD,EAAUC,MAAV,EAAqB;AACtCV,cAAAA,IAAI,CAACqB,gBAAgB,GAAG,2BAApB,EAAiD,EAAjD,EAAqD,UAACT,GAAD,EAAMN,KAAN,EAAgB;AACvE,oBAAIM,GAAJ,EAAS;AACP,yBAAOF,MAAM,CAACE,GAAD,CAAb;AACD;;AAEDP,gBAAAA,SAAS,CAACC,KAAD,CAAT,CAAiBiB,IAAjB,CAAsB,UAACC,KAAD,EAAW;AAAA;;AAC/B,sBAAMC,SAAS,GAAG,sBAAAC,MAAM,mCAAQtB,uBAAR,mDAAoCoB,KAApC,GAAxB;;AACAtB,kBAAAA,EAAE,CAACyB,SAAH,CACExB,IAAI,CAACyB,IAAL,CAAUR,YAAV,EAAwB,uBAAxB,CADF,EAEE,wBAAeK,SAAf,CAFF,EAIE,
|
|
1
|
+
{"version":3,"sources":["../../src/builder/mergeLayoutHintConfigurations.js"],"names":["glob","require","fs","path","LayoutHintConfiguration","readFiles","files","filePromises","file","resolve","reject","readFile","err","data","JSON","parse","all","exports","mergeLayoutHintConfigurations","srcFolder","outputFolder","escapedSrcFolder","replace","then","jsons","newConfig","Object","writeFile","join","writeErr"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,IAAMA,IAAI,GAAGC,OAAO,CAAC,MAAD,CAApB;;AACA,IAAMC,EAAE,GAAGD,OAAO,CAAC,IAAD,CAAlB;;AACA,IAAME,IAAI,GAAGF,OAAO,CAAC,MAAD,CAApB;;AAEA,eAAoCA,OAAO,CAAC,+BAAD,CAA3C;AAAA,IAAQG,uBAAR,YAAQA,uBAAR;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD,EAAW;AAC3B,MAAMC,YAAY,GAAG,kBAAAD,KAAK,MAAL,CAAAA,KAAK,EACxB,UAACE,IAAD;AAAA,WACE,qBAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AAC/BR,MAAAA,EAAE,CAACS,QAAH,CAAYH,IAAZ,EAAkB,OAAlB,EAA2B,UAACI,GAAD,EAAMC,IAAN,EAAe;AACxC,YAAID,GAAJ,EAAS;AACP,iBAAOF,MAAM,CAACE,GAAD,CAAb;AACD,SAFD,MAEO;AACL,iBAAOH,OAAO,CAACK,IAAI,CAACC,KAAL,CAAWF,IAAX,CAAD,CAAd;AACD;AACF,OAND;AAOD,KARD,CADF;AAAA,GADwB,CAA1B;AAaA,SAAO,iBAAQG,GAAR,CAAYT,YAAZ,CAAP;AACD,CAfD;AAiBA;AACA;AACA;AACA;AACA;;;AACAU,OAAO,CAACC,6BAAR;AAAA,qFAAwC,iBACtCC,SADsC,EAEtCC,YAFsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAIhCC,YAAAA,gBAJgC,GAIbF,SAAS,CAACG,OAAV,CAAkB,KAAlB,EAAyB,GAAzB,CAJa;AAAA,8CAK/B,qBAAY,UAACb,OAAD,EAAUC,MAAV,EAAqB;AACtCV,cAAAA,IAAI,CAACqB,gBAAgB,GAAG,2BAApB,EAAiD,EAAjD,EAAqD,UAACT,GAAD,EAAMN,KAAN,EAAgB;AACvE,oBAAIM,GAAJ,EAAS;AACP,yBAAOF,MAAM,CAACE,GAAD,CAAb;AACD;;AAEDP,gBAAAA,SAAS,CAACC,KAAD,CAAT,CAAiBiB,IAAjB,CAAsB,UAACC,KAAD,EAAW;AAAA;;AAC/B,sBAAMC,SAAS,GAAG,sBAAAC,MAAM,mCAAQtB,uBAAR,mDAAoCoB,KAApC,GAAxB;;AACAtB,kBAAAA,EAAE,CAACyB,SAAH,CACExB,IAAI,CAACyB,IAAL,CAAUR,YAAV,EAAwB,uBAAxB,CADF,EAEE,wBAAeK,SAAf,CAFF,EAIE,UAACI,QAAD,EAAc;AACZ,wBAAIA,QAAJ,EAAc;AACZ,6BAAOnB,MAAM,CAACmB,QAAD,CAAb;AACD;;AAED,2BAAOpB,OAAO,EAAd;AACD,mBAVH;AAYD,iBAdD;AAeD,eApBG,CAAJ;AAqBD,aAtBM,CAL+B;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAxC;;AAAA;AAAA;AAAA;AAAA","sourcesContent":["// @flow\nconst glob = require(\"glob\");\nconst fs = require(\"fs\");\nconst path = require(\"path\");\n\nconst { LayoutHintConfiguration } = require(\"../constants/LayoutHintConfig\");\n\nconst readFiles = (files) => {\n const filePromises = files.map(\n (file) =>\n new Promise((resolve, reject) => {\n fs.readFile(file, \"utf-8\", (err, data) => {\n if (err) {\n return reject(err);\n } else {\n return resolve(JSON.parse(data));\n }\n });\n })\n );\n\n return Promise.all(filePromises);\n};\n\n/**\n * Merge all LayoutHintConfig.json files from this library and in the srcFolder\n * together into one config file, and copies it to the outputFolder.<br/>\n * This file is consumed by Be Informed studio to give layout hint information\n */\nexports.mergeLayoutHintConfigurations = async (\n srcFolder: string,\n outputFolder: string\n): Promise<void> => {\n const escapedSrcFolder = srcFolder.replace(/\\\\/g, \"/\");\n return new Promise((resolve, reject) => {\n glob(escapedSrcFolder + \"/**/LayoutHintConfig.json\", {}, (err, files) => {\n if (err) {\n return reject(err);\n }\n\n readFiles(files).then((jsons) => {\n const newConfig = Object.assign(LayoutHintConfiguration, ...jsons);\n fs.writeFile(\n path.join(outputFolder, \"LayoutHintConfig.json\"),\n JSON.stringify(newConfig),\n\n (writeErr) => {\n if (writeErr) {\n return reject(writeErr);\n }\n\n return resolve();\n }\n );\n });\n });\n });\n};\n"],"file":"mergeLayoutHintConfigurations.js"}
|
package/lib/hooks/useContent.js
CHANGED
|
@@ -66,8 +66,8 @@ var useContentFromSourceReferences = function useContentFromSourceReferences(sou
|
|
|
66
66
|
});
|
|
67
67
|
start();
|
|
68
68
|
|
|
69
|
-
_promise.default.all(requests).then(function (
|
|
70
|
-
setContent(
|
|
69
|
+
_promise.default.all(requests).then(function (responseContent) {
|
|
70
|
+
setContent(responseContent);
|
|
71
71
|
finish();
|
|
72
72
|
}); // start and finish don't change
|
|
73
73
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useContent.js"],"names":["useContentFromSourceReferences","sourceReferences","renderChildSections","content","setContent","localeCode","state","i18n","locale","start","finish","hrefs","sourceReference","link","selfhref","href","index","self","indexOf","toString","allHrefs","requests","JSON","parse","modularuiRequest","ModularUIRequest","fetchContent","all","then"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AAIA;AACA;AACA;AACO,IAAMA,8BAA8B,GAAG,SAAjCA,8BAAiC,CAC5CC,gBAD4C,EAE5CC,mBAF4C,EAGpB;AAAA;;AACxB,kBAA8B,qBAAS,EAAT,CAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACA,MAAMC,UAAU,GAAG,6BAAY,UAACC,KAAD;AAAA;;AAAA,iCAAWA,KAAK,CAACC,IAAN,CAAWC,MAAtB,mEAAgC,IAAhC;AAAA,GAAZ,CAAnB;;AAEA,8BAA0B,kDAA1B;AAAA,MAAQC,KAAR,yBAAQA,KAAR;AAAA,MAAeC,MAAf,yBAAeA,MAAf;;AAEA,MAAMC,KAAK,GAAG,gFAAAV,gBAAgB,MAAhB,CAAAA,gBAAgB,EACvB,UAACW,eAAD;AAAA,WAAqBA,eAAe,CAACC,IAAhB,CAAqBC,QAArB,CAA8BC,IAAnD;AAAA,GADuB,CAAhB,kBAEJ,UAACA,IAAD,EAAOC,KAAP,EAAcC,IAAd;AAAA,WAAuBA,IAAI,CAACC,OAAL,CAAaH,IAAb,MAAuBC,KAA9C;AAAA,GAFI,kBAGP,UAACD,IAAD;AAAA,WAAUA,IAAI,CAACI,QAAL,EAAV;AAAA,GAHO,CAAd;AAKA,MAAMC,QAAQ,GAAG,wBAAeT,KAAf,CAAjB;AACA,wBAAU,YAAM;AAAA;;AACd,QAAMU,QAAQ,GAAG,8BAAAC,IAAI,CAACC,KAAL,CAAWH,QAAX,mBAAyB,UAACL,IAAD,EAAU;AAClD,UAAMS,gBAAgB,GAAG,IAAIC,yBAAJ,CAAqBV,IAArB,CAAzB;AACAS,MAAAA,gBAAgB,CAAChB,MAAjB,GAA0BH,UAA1B;AACA,aAAOmB,gBAAgB,CAACE,YAAjB,CAA8BxB,mBAA9B,CAAP;AACD,KAJgB,CAAjB;AAMAO,IAAAA,KAAK;;AACL,qBAAQkB,GAAR,CAAYN,QAAZ,EAAsBO,IAAtB,CAA2B,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useContent.js"],"names":["useContentFromSourceReferences","sourceReferences","renderChildSections","content","setContent","localeCode","state","i18n","locale","start","finish","hrefs","sourceReference","link","selfhref","href","index","self","indexOf","toString","allHrefs","requests","JSON","parse","modularuiRequest","ModularUIRequest","fetchContent","all","then","responseContent"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AAIA;AACA;AACA;AACO,IAAMA,8BAA8B,GAAG,SAAjCA,8BAAiC,CAC5CC,gBAD4C,EAE5CC,mBAF4C,EAGpB;AAAA;;AACxB,kBAA8B,qBAAS,EAAT,CAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACA,MAAMC,UAAU,GAAG,6BAAY,UAACC,KAAD;AAAA;;AAAA,iCAAWA,KAAK,CAACC,IAAN,CAAWC,MAAtB,mEAAgC,IAAhC;AAAA,GAAZ,CAAnB;;AAEA,8BAA0B,kDAA1B;AAAA,MAAQC,KAAR,yBAAQA,KAAR;AAAA,MAAeC,MAAf,yBAAeA,MAAf;;AAEA,MAAMC,KAAK,GAAG,gFAAAV,gBAAgB,MAAhB,CAAAA,gBAAgB,EACvB,UAACW,eAAD;AAAA,WAAqBA,eAAe,CAACC,IAAhB,CAAqBC,QAArB,CAA8BC,IAAnD;AAAA,GADuB,CAAhB,kBAEJ,UAACA,IAAD,EAAOC,KAAP,EAAcC,IAAd;AAAA,WAAuBA,IAAI,CAACC,OAAL,CAAaH,IAAb,MAAuBC,KAA9C;AAAA,GAFI,kBAGP,UAACD,IAAD;AAAA,WAAUA,IAAI,CAACI,QAAL,EAAV;AAAA,GAHO,CAAd;AAKA,MAAMC,QAAQ,GAAG,wBAAeT,KAAf,CAAjB;AACA,wBAAU,YAAM;AAAA;;AACd,QAAMU,QAAQ,GAAG,8BAAAC,IAAI,CAACC,KAAL,CAAWH,QAAX,mBAAyB,UAACL,IAAD,EAAU;AAClD,UAAMS,gBAAgB,GAAG,IAAIC,yBAAJ,CAAqBV,IAArB,CAAzB;AACAS,MAAAA,gBAAgB,CAAChB,MAAjB,GAA0BH,UAA1B;AACA,aAAOmB,gBAAgB,CAACE,YAAjB,CAA8BxB,mBAA9B,CAAP;AACD,KAJgB,CAAjB;AAMAO,IAAAA,KAAK;;AACL,qBAAQkB,GAAR,CAAYN,QAAZ,EAAsBO,IAAtB,CAA2B,UAACC,eAAD,EAAqB;AAC9CzB,MAAAA,UAAU,CAACyB,eAAD,CAAV;AACAnB,MAAAA,MAAM;AACP,KAHD,EARc,CAad;AACA;;AACD,GAfD,EAeG,CAACU,QAAD,EAAWf,UAAX,EAAuBH,mBAAvB,CAfH;AAiBA,SAAOC,OAAP;AACD,CAjCM","sourcesContent":["// @flow\nimport { useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport SourceReferenceCollection from \"../models/concepts/SourceReferenceCollection\";\nimport ModularUIRequest from \"../modularui/ModularUIRequest\";\n\nimport { useProgressIndicator } from \"../hooks/useProgressIndicator\";\n\nimport type ContentModel from \"../models/content/ContentModel\";\n\n/**\n * Hook to retrieve multiple source references at once\n */\nexport const useContentFromSourceReferences = (\n sourceReferences: SourceReferenceCollection,\n renderChildSections: boolean\n): Array<ContentModel> => {\n const [content, setContent] = useState([]);\n const localeCode = useSelector((state) => state.i18n.locale ?? \"en\");\n\n const { start, finish } = useProgressIndicator();\n\n const hrefs = sourceReferences\n .map((sourceReference) => sourceReference.link.selfhref.href)\n .filter((href, index, self) => self.indexOf(href) === index)\n .map((href) => href.toString());\n\n const allHrefs = JSON.stringify(hrefs);\n useEffect(() => {\n const requests = JSON.parse(allHrefs).map((href) => {\n const modularuiRequest = new ModularUIRequest(href);\n modularuiRequest.locale = localeCode;\n return modularuiRequest.fetchContent(renderChildSections);\n });\n\n start();\n Promise.all(requests).then((responseContent) => {\n setContent(responseContent);\n finish();\n });\n\n // start and finish don't change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allHrefs, localeCode, renderChildSections]);\n\n return content;\n};\n"],"file":"useContent.js"}
|
|
@@ -25,7 +25,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
25
25
|
* Need to copy this, because the dependency on dequal breaks in ie11
|
|
26
26
|
*/
|
|
27
27
|
var useDeepCompareMemoize = function useDeepCompareMemoize(value) {
|
|
28
|
-
var ref = React.useRef(null);
|
|
28
|
+
var ref = React.useRef(null); // NOSONAR
|
|
29
|
+
|
|
29
30
|
var signalRef = React.useRef(0);
|
|
30
31
|
|
|
31
32
|
if (!(0, _lite.dequal)(value, ref.current)) {
|
|
@@ -10,7 +10,7 @@ type DependencyList = Array<mixed>;
|
|
|
10
10
|
* Need to copy this, because the dependency on dequal breaks in ie11
|
|
11
11
|
*/
|
|
12
12
|
const useDeepCompareMemoize = (value: DependencyList) => {
|
|
13
|
-
const ref = React.useRef<DependencyList | null>(null);
|
|
13
|
+
const ref = React.useRef<DependencyList | null>(null); // NOSONAR
|
|
14
14
|
const signalRef = React.useRef<number>(0);
|
|
15
15
|
|
|
16
16
|
if (!deepEqual(value, ref.current)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useDeepCompareEffect.js"],"names":["useDeepCompareMemoize","value","ref","React","useRef","signalRef","current","useDeepCompareEffect","callback","dependencies","useEffect"],"mappings":";;;;;;;;;;;;;;AACA;;AACA;;;;;;AAKA;AACA;AACA;AACA;AACA,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,KAAD,EAA2B;AACvD,MAAMC,GAAG,GAAGC,KAAK,CAACC,MAAN,CAAoC,IAApC,CAAZ
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useDeepCompareEffect.js"],"names":["useDeepCompareMemoize","value","ref","React","useRef","signalRef","current","useDeepCompareEffect","callback","dependencies","useEffect"],"mappings":";;;;;;;;;;;;;;AACA;;AACA;;;;;;AAKA;AACA;AACA;AACA;AACA,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,KAAD,EAA2B;AACvD,MAAMC,GAAG,GAAGC,KAAK,CAACC,MAAN,CAAoC,IAApC,CAAZ,CADuD,CACA;;AACvD,MAAMC,SAAS,GAAGF,KAAK,CAACC,MAAN,CAAqB,CAArB,CAAlB;;AAEA,MAAI,CAAC,kBAAUH,KAAV,EAAiBC,GAAG,CAACI,OAArB,CAAL,EAAoC;AAClCJ,IAAAA,GAAG,CAACI,OAAJ,GAAcL,KAAd;AACAI,IAAAA,SAAS,CAACC,OAAV,IAAqB,CAArB;AACD;;AAED,SAAO,CAACD,SAAS,CAACC,OAAX,CAAP;AACD,CAVD;AAYA;AACA;;;AACO,SAASC,oBAAT,CACLC,QADK,EAELC,YAFK,EAGC;AACN;AACA,SAAON,KAAK,CAACO,SAAN,CAAgBF,QAAhB,EAA0BR,qBAAqB,CAACS,YAAD,CAA/C,CAAP;AACD;;eAEcF,oB","sourcesContent":["// @flow\nimport * as React from \"react\";\nimport { dequal as deepEqual } from \"dequal/lite\";\n\ntype Callback = () => void | (() => void);\ntype DependencyList = Array<mixed>;\n\n/**\n * As copied from https://github.com/kentcdodds/use-deep-compare-effect/\n * Need to copy this, because the dependency on dequal breaks in ie11\n */\nconst useDeepCompareMemoize = (value: DependencyList) => {\n const ref = React.useRef<DependencyList | null>(null); // NOSONAR\n const signalRef = React.useRef<number>(0);\n\n if (!deepEqual(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n }\n\n return [signalRef.current];\n};\n\n/**\n */\nexport function useDeepCompareEffect(\n callback: Callback,\n dependencies: DependencyList\n): void {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useEffect(callback, useDeepCompareMemoize(dependencies));\n}\n\nexport default useDeepCompareEffect;\n"],"file":"useDeepCompareEffect.js"}
|
|
@@ -20,8 +20,7 @@ import {
|
|
|
20
20
|
|
|
21
21
|
import FormModel from "../models/form/FormModel";
|
|
22
22
|
|
|
23
|
-
import type { FormObjectModel } from "../models";
|
|
24
|
-
import type { AttributeType } from "../models";
|
|
23
|
+
import type { FormObjectModel, AttributeType } from "../models";
|
|
25
24
|
import type { UpdateFormOptions } from "../redux/types";
|
|
26
25
|
import type {
|
|
27
26
|
RemoveModelByKeyAction,
|
package/lib/hooks/useForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useForm.js"],"names":["useForm","href","formHref","Href","addParameter","form","method","HTTP_METHODS","POST","targetModel","FormModel","removeOnUnmount","model","useFormNavigation","dispatch","previous","cancel","submit","connectKey","selfhref","data","formdata","updateModel","remove","showFormNotificationAction","showFormNotification","useAttributeUpdate","object","attribute","value","options","useAttributeSet","save"],"mappings":";;;;;;;;;AACA;;AAEA;;AAEA;;AAEA;;AACA;;AAEA;;AAUA;;
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useForm.js"],"names":["useForm","href","formHref","Href","addParameter","form","method","HTTP_METHODS","POST","targetModel","FormModel","removeOnUnmount","model","useFormNavigation","dispatch","previous","cancel","submit","connectKey","selfhref","data","formdata","updateModel","remove","showFormNotificationAction","showFormNotification","useAttributeUpdate","object","attribute","value","options","useAttributeSet","save"],"mappings":"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","sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport Href from \"../models/href/Href\";\n\nimport { getSetting, HTTP_METHODS } from \"../constants\";\n\nimport { loadModularUI, removeModelByKey } from \"../redux/_modularui\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport {\n addRepeatableAttributeSet,\n cancelForm,\n cancelRepeatableAttributeSet,\n previousObject,\n removeRepeatableAttributeSet,\n showFormNotification,\n updateFormAttribute,\n} from \"../redux/actions\";\n\nimport FormModel from \"../models/form/FormModel\";\n\nimport type { FormObjectModel, AttributeType } from \"../models\";\nimport type { UpdateFormOptions } from \"../redux/types\";\nimport type {\n RemoveModelByKeyAction,\n UpdateModelAction,\n} from \"../redux/_modularui\";\n\ntype FormNavigationHook = {\n previous: (form: FormModel) => UpdateModelAction,\n cancel: (form: FormModel) => void,\n submit: (form: FormModel) => void,\n showFormNotification: (form: FormModel) => void,\n remove: (form: FormModel) => RemoveModelByKeyAction,\n};\n\ntype AttributeSetHook = {\n save: () => UpdateModelAction,\n cancel: (object: FormObjectModel) => UpdateModelAction,\n remove: (object: FormObjectModel) => UpdateModelAction,\n};\n\ntype AttributeUpdateHook = (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n) => void;\n\n/**\n * Load a form by href\n */\nexport const useForm = (href: string | Href): ?FormModel => {\n const formHref = new Href(href);\n\n if (!getSetting(\"ALWAYS_COMMIT_FORM\")) {\n formHref.addParameter(\"commit\", \"false\");\n }\n\n const form = useModularUI(\"form\", formHref, {\n method: HTTP_METHODS.POST,\n targetModel: FormModel,\n removeOnUnmount: true,\n });\n\n if (form?.model) {\n return form.model;\n }\n};\n\n/**\n * Form navigation methods\n */\nexport const useFormNavigation = (): FormNavigationHook => {\n const dispatch = useDispatch();\n\n const previous = (form: FormModel) => dispatch(previousObject(form));\n\n const cancel = (form: FormModel) => dispatch(cancelForm(form));\n\n const submit = (form: FormModel) =>\n dispatch(\n loadModularUI(form.connectKey, form.selfhref, {\n method: HTTP_METHODS.POST,\n data: form.formdata,\n updateModel: form,\n targetModel: FormModel,\n })\n );\n\n const remove = (form: FormModel) =>\n dispatch(removeModelByKey(form.connectKey));\n\n const showFormNotificationAction = (form: FormModel) =>\n dispatch(showFormNotification(form));\n\n return {\n previous,\n cancel,\n submit,\n remove,\n showFormNotification: showFormNotificationAction,\n };\n};\n\n/**\n * Update attributes of a form\n */\nexport const useAttributeUpdate = (\n form: FormModel,\n object: FormObjectModel\n): AttributeUpdateHook => {\n const dispatch = useDispatch();\n\n return (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n ) => dispatch(updateFormAttribute(form, object, attribute, value, options));\n};\n\n/**\n * Attributeset actions\n */\nexport const useAttributeSet = (form: FormModel): AttributeSetHook => {\n const dispatch = useDispatch();\n\n return {\n save: () => dispatch(addRepeatableAttributeSet(form)),\n cancel: (object: FormObjectModel) =>\n dispatch(cancelRepeatableAttributeSet(form, object)),\n remove: (object: FormObjectModel) =>\n dispatch(removeRepeatableAttributeSet(form, object)),\n };\n};\n"],"file":"useForm.js"}
|
package/lib/hooks/useModal.js
CHANGED
|
@@ -30,8 +30,8 @@ var useModal = function useModal(modalId) {
|
|
|
30
30
|
var _context;
|
|
31
31
|
|
|
32
32
|
var modals = _ref.modals;
|
|
33
|
-
return (0, _find.default)(_context = modals.modals).call(_context, function (
|
|
34
|
-
return
|
|
33
|
+
return (0, _find.default)(_context = modals.modals).call(_context, function (m) {
|
|
34
|
+
return m.key === modalId;
|
|
35
35
|
});
|
|
36
36
|
});
|
|
37
37
|
var show = (0, _react.useCallback)(function () {
|
|
@@ -25,7 +25,7 @@ export const useModal: ModalHook = (modalId: string) => {
|
|
|
25
25
|
|
|
26
26
|
const dispatch = useDispatch();
|
|
27
27
|
const modal = useSelector(({ modals }) =>
|
|
28
|
-
modals.modals.find((
|
|
28
|
+
modals.modals.find((m) => m.key === modalId)
|
|
29
29
|
);
|
|
30
30
|
|
|
31
31
|
const show = useCallback(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useModal.js"],"names":["useModal","modalId","IllegalArgumentException","dispatch","modal","modals","key","show","close","size","visible"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;AAUA;AACA;AACA;AACO,IAAMA,QAAmB,GAAG,SAAtBA,QAAsB,CAACC,OAAD,EAAqB;AACtD,MAAI,CAACA,OAAL,EAAc;AACZ,UAAM,IAAIC,oCAAJ,CACJ,4CADI,CAAN;AAGD;;AAED,MAAMC,QAAQ,GAAG,8BAAjB;AACA,MAAMC,KAAK,GAAG,6BAAY;AAAA;;AAAA,QAAGC,MAAH,QAAGA,MAAH;AAAA,WACxB,8BAAAA,MAAM,CAACA,MAAP,iBAAmB,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useModal.js"],"names":["useModal","modalId","IllegalArgumentException","dispatch","modal","modals","m","key","show","close","size","visible"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;AAUA;AACA;AACA;AACO,IAAMA,QAAmB,GAAG,SAAtBA,QAAsB,CAACC,OAAD,EAAqB;AACtD,MAAI,CAACA,OAAL,EAAc;AACZ,UAAM,IAAIC,oCAAJ,CACJ,4CADI,CAAN;AAGD;;AAED,MAAMC,QAAQ,GAAG,8BAAjB;AACA,MAAMC,KAAK,GAAG,6BAAY;AAAA;;AAAA,QAAGC,MAAH,QAAGA,MAAH;AAAA,WACxB,8BAAAA,MAAM,CAACA,MAAP,iBAAmB,UAACC,CAAD;AAAA,aAAOA,CAAC,CAACC,GAAF,KAAUN,OAAjB;AAAA,KAAnB,CADwB;AAAA,GAAZ,CAAd;AAIA,MAAMO,IAAI,GAAG,wBAAY,YAAM;AAC7BL,IAAAA,QAAQ,CAAC,uBAAUF,OAAV,CAAD,CAAR;AACD,GAFY,EAEV,CAACE,QAAD,EAAWF,OAAX,CAFU,CAAb;AAIA,MAAMQ,KAAK,GAAG,wBAAY,YAAM;AAC9BN,IAAAA,QAAQ,CAAC,wBAAWF,OAAX,CAAD,CAAR;AACD,GAFa,EAEX,CAACE,QAAD,EAAWF,OAAX,CAFW,CAAd;AAIA,SAAO;AACLM,IAAAA,GAAG,EAAEH,KAAK,GAAGA,KAAK,CAACG,GAAT,GAAe,IADpB;AAELG,IAAAA,IAAI,EAAEN,KAAK,GAAGA,KAAK,CAACM,IAAT,GAAgB,IAFtB;AAGLC,IAAAA,OAAO,EAAEP,KAAK,GAAGA,KAAK,CAACO,OAAT,GAAmB,KAH5B;AAILH,IAAAA,IAAI,EAAJA,IAJK;AAKLC,IAAAA,KAAK,EAALA;AALK,GAAP;AAOD,CA3BM","sourcesContent":["// @flow\nimport { useCallback } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { showModal, closeModal } from \"../redux/actions/Modals\";\nimport { IllegalArgumentException } from \"../exceptions\";\n\ntype ModalHook = (modalId: string) => {\n key: string | null,\n size: string | null,\n visible: boolean,\n show: () => void,\n close: () => void,\n};\n\n/**\n * Manage modals\n */\nexport const useModal: ModalHook = (modalId: string) => {\n if (!modalId) {\n throw new IllegalArgumentException(\n \"Missing modalId argument for useModal hook\"\n );\n }\n\n const dispatch = useDispatch();\n const modal = useSelector(({ modals }) =>\n modals.modals.find((m) => m.key === modalId)\n );\n\n const show = useCallback(() => {\n dispatch(showModal(modalId));\n }, [dispatch, modalId]);\n\n const close = useCallback(() => {\n dispatch(closeModal(modalId));\n }, [dispatch, modalId]);\n\n return {\n key: modal ? modal.key : null,\n size: modal ? modal.size : null,\n visible: modal ? modal.visible : false,\n show,\n close,\n };\n};\n"],"file":"useModal.js"}
|
|
@@ -46,7 +46,6 @@ var useModularUI = function useModularUI(modelKey, url) {
|
|
|
46
46
|
var prevHref = (0, _react.useRef)(href); // dispatch loadModularUI
|
|
47
47
|
|
|
48
48
|
(0, _useDeepCompareEffect.default)(function () {
|
|
49
|
-
// console.info({ new: options }, { old: prevOptions.current });
|
|
50
49
|
// prevent reloads when previous option had the isReload, but the new options not
|
|
51
50
|
var isOldReload = prevHref.current === href && prevOptions.current.isReload && !options.isReload;
|
|
52
51
|
|
|
@@ -38,8 +38,6 @@ export const useModularUI = (
|
|
|
38
38
|
|
|
39
39
|
// dispatch loadModularUI
|
|
40
40
|
useDeepCompareEffect(() => {
|
|
41
|
-
// console.info({ new: options }, { old: prevOptions.current });
|
|
42
|
-
|
|
43
41
|
// prevent reloads when previous option had the isReload, but the new options not
|
|
44
42
|
const isOldReload =
|
|
45
43
|
prevHref.current === href &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useModularUI.js"],"names":["useKeyForHook","modelKey","url","locale","state","i18n","split","useModularUI","options","method","HTTP_METHODS","GET","removeOnUnmount","dispatch","href","toString","key","prevOptions","prevHref","isOldReload","current","isReload","modularui"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AAKA;AACA;AACA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,QAAD,EAAmBC,GAAnB,EAAmC;AAAA;;AACvD,MAAMC,MAAM,GAAG,6BAAY,UAACC,KAAD;AAAA,WAAWA,KAAK,CAACC,IAAN,CAAWF,MAAtB;AAAA,GAAZ,CAAf;AAEA,oFAAUF,QAAV,wBAAsBC,GAAG,CAACI,KAAJ,CAAU,GAAV,EAAe,CAAf,CAAtB,wBAA4CH,MAA5C;AACD,CAJD;AAMA;AACA;AACA;;;AACO,IAAMI,YAAY,GAAG,SAAfA,YAAe,CAC1BN,QAD0B,EAE1BC,GAF0B,EAOlB;AAAA,MAJRM,OAIQ,uEAJsB;AAC5BC,IAAAA,MAAM,EAAEC,wBAAaC,GADO;AAE5BC,IAAAA,eAAe,EAAE;AAFW,GAItB;AACR,MAAMC,QAAQ,GAAG,8BAAjB;AACA,MAAMC,IAAI,GAAGZ,GAAG,CAACa,QAAJ,EAAb;AACA,MAAMC,GAAG,GAAGhB,aAAa,CAACC,QAAD,EAAWa,IAAX,CAAzB;AAEA,MAAMG,WAAW,GAAG,mBAAOT,OAAP,CAApB;AACA,MAAMU,QAAQ,GAAG,mBAAOJ,IAAP,CAAjB,CANQ,CAQR;;AACA,qCAAqB,YAAM;AACzB;
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useModularUI.js"],"names":["useKeyForHook","modelKey","url","locale","state","i18n","split","useModularUI","options","method","HTTP_METHODS","GET","removeOnUnmount","dispatch","href","toString","key","prevOptions","prevHref","isOldReload","current","isReload","modularui"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AAKA;AACA;AACA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,QAAD,EAAmBC,GAAnB,EAAmC;AAAA;;AACvD,MAAMC,MAAM,GAAG,6BAAY,UAACC,KAAD;AAAA,WAAWA,KAAK,CAACC,IAAN,CAAWF,MAAtB;AAAA,GAAZ,CAAf;AAEA,oFAAUF,QAAV,wBAAsBC,GAAG,CAACI,KAAJ,CAAU,GAAV,EAAe,CAAf,CAAtB,wBAA4CH,MAA5C;AACD,CAJD;AAMA;AACA;AACA;;;AACO,IAAMI,YAAY,GAAG,SAAfA,YAAe,CAC1BN,QAD0B,EAE1BC,GAF0B,EAOlB;AAAA,MAJRM,OAIQ,uEAJsB;AAC5BC,IAAAA,MAAM,EAAEC,wBAAaC,GADO;AAE5BC,IAAAA,eAAe,EAAE;AAFW,GAItB;AACR,MAAMC,QAAQ,GAAG,8BAAjB;AACA,MAAMC,IAAI,GAAGZ,GAAG,CAACa,QAAJ,EAAb;AACA,MAAMC,GAAG,GAAGhB,aAAa,CAACC,QAAD,EAAWa,IAAX,CAAzB;AAEA,MAAMG,WAAW,GAAG,mBAAOT,OAAP,CAApB;AACA,MAAMU,QAAQ,GAAG,mBAAOJ,IAAP,CAAjB,CANQ,CAQR;;AACA,qCAAqB,YAAM;AACzB;AACA,QAAMK,WAAW,GACfD,QAAQ,CAACE,OAAT,KAAqBN,IAArB,IACAG,WAAW,CAACG,OAAZ,CAAoBC,QADpB,IAEA,CAACb,OAAO,CAACa,QAHX;;AAKA,QAAI,CAACF,WAAL,EAAkB;AAChBN,MAAAA,QAAQ,CAAC,4BAAcG,GAAd,EAAmBF,IAAnB,EAAyBN,OAAzB,CAAD,CAAR;AACD;;AAEDS,IAAAA,WAAW,CAACG,OAAZ,GAAsBZ,OAAtB;AACAU,IAAAA,QAAQ,CAACE,OAAT,GAAmBN,IAAnB;AACD,GAbD,EAaG,CAACE,GAAD,EAAMF,IAAN,EAAYN,OAAZ,CAbH;AAeA,8BAAoCA,OAApC,CAAQI,eAAR;AAAA,MAAQA,eAAR,sCAA0B,KAA1B;AACA,wBAAU,YAAM;AACd,WAAO,YAAM;AACX,UAAIA,eAAJ,EAAqB;AACnBC,QAAAA,QAAQ,CAAC,+BAAiBG,GAAjB,CAAD,CAAR;AACD;AACF,KAJD;AAKD,GAND,EAMG,CAACH,QAAD,EAAWG,GAAX,EAAgBJ,eAAhB,CANH,EAzBQ,CAiCR;;AACA,SAAO,6BAAY,UAACR,KAAD,EAAW;AAC5B,WAAOA,KAAK,CAACkB,SAAN,CAAgBN,GAAhB,CAAP;AACD,GAFM,CAAP;AAGD,CA5CM","sourcesContent":["// @flow\nimport { useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport { loadModularUI, removeModelByKey } from \"../redux/_modularui/actions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\n\nimport type Href from \"../models/href/Href\";\nimport type { RequestBaseOptions } from \"../utils\";\n\n/**\n */\nconst useKeyForHook = (modelKey: string, url: string) => {\n const locale = useSelector((state) => state.i18n.locale);\n\n return `${modelKey}(${url.split(\"?\")[0]})(${locale})`;\n};\n\n/**\n * Use redux action and selector to retrieve the correct modular ui service model\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestBaseOptions = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n }\n): any => {\n const dispatch = useDispatch();\n const href = url.toString();\n const key = useKeyForHook(modelKey, href);\n\n const prevOptions = useRef(options);\n const prevHref = useRef(href);\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n // prevent reloads when previous option had the isReload, but the new options not\n const isOldReload =\n prevHref.current === href &&\n prevOptions.current.isReload &&\n !options.isReload;\n\n if (!isOldReload) {\n dispatch(loadModularUI(key, href, options));\n }\n\n prevOptions.current = options;\n prevHref.current = href;\n }, [key, href, options]);\n\n const { removeOnUnmount = false } = options;\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(key));\n }\n };\n }, [dispatch, key, removeOnUnmount]);\n\n // retrieve current model from modularui reducer\n return useSelector((state) => {\n return state.modularui[key];\n });\n};\n"],"file":"useModularUI.js"}
|
|
@@ -41,6 +41,8 @@ var _TaskGroupModel = _interopRequireDefault(require("../taskgroup/TaskGroupMode
|
|
|
41
41
|
|
|
42
42
|
var _LayoutHints = require("../../constants/LayoutHints");
|
|
43
43
|
|
|
44
|
+
var _IllegalStateException = _interopRequireDefault(require("../../exceptions/IllegalStateException"));
|
|
45
|
+
|
|
44
46
|
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); }; }
|
|
45
47
|
|
|
46
48
|
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; } }
|
|
@@ -181,7 +183,7 @@ var CaseViewModel = /*#__PURE__*/function (_DetailModel) {
|
|
|
181
183
|
var selfLink = this.links.getLinkByKey("self");
|
|
182
184
|
|
|
183
185
|
if (selfLink === null) {
|
|
184
|
-
throw new
|
|
186
|
+
throw new _IllegalStateException.default("No self href available");
|
|
185
187
|
}
|
|
186
188
|
|
|
187
189
|
return new _Href.default(selfLink.href);
|
|
@@ -6,6 +6,8 @@ import TaskGroupModel from "../taskgroup/TaskGroupModel";
|
|
|
6
6
|
|
|
7
7
|
import { TITLE } from "../../constants/LayoutHints";
|
|
8
8
|
|
|
9
|
+
import IllegalStateException from "../../exceptions/IllegalStateException";
|
|
10
|
+
|
|
9
11
|
import type { ModularUIModel, AttributeType } from "../types";
|
|
10
12
|
import type { ModularUIResponse } from "../../modularui";
|
|
11
13
|
import type LinkCollection from "../links/LinkCollection";
|
|
@@ -122,7 +124,7 @@ export default class CaseViewModel extends DetailModel {
|
|
|
122
124
|
const selfLink = this.links.getLinkByKey("self");
|
|
123
125
|
|
|
124
126
|
if (selfLink === null) {
|
|
125
|
-
throw new
|
|
127
|
+
throw new IllegalStateException("No self href available");
|
|
126
128
|
}
|
|
127
129
|
|
|
128
130
|
return new Href(selfLink.href);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/caseview/CaseViewModel.js"],"names":["CaseViewModel","caseviewData","createTaskGroupCollection","links","getLinksByGroup","all","models","taskGroupModels","i","length","TaskGroupModel","push","taskGroupCollection","add","attributeCollection","getAttributeByLayoutHint","TITLE","casename","value","getContribution","introtext","data","_content","text","message","contributions","Array","isArray","texts","selfLink","getLinkByKey","
|
|
1
|
+
{"version":3,"sources":["../../../src/models/caseview/CaseViewModel.js"],"names":["CaseViewModel","caseviewData","createTaskGroupCollection","links","getLinksByGroup","all","models","taskGroupModels","i","length","TaskGroupModel","push","taskGroupCollection","add","attributeCollection","getAttributeByLayoutHint","TITLE","casename","value","getContribution","introtext","data","_content","text","message","contributions","Array","isArray","texts","selfLink","getLinkByKey","IllegalStateException","Href","href","allTaskgroupData","getData","allTaskgroupContributions","taskgroup","some","taskgroupContribution","name","taskgroupContributions","create","_taskGroupCollection","taskgroups","TaskGroupCollection","hasItems","resourcetype","DetailModel"],"mappings":"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","sourcesContent":["// @flow\nimport DetailModel from \"../detail/DetailModel\";\nimport Href from \"../href/Href\";\nimport TaskGroupCollection from \"../taskgroup/TaskGroupCollection\";\nimport TaskGroupModel from \"../taskgroup/TaskGroupModel\";\n\nimport { TITLE } from \"../../constants/LayoutHints\";\n\nimport IllegalStateException from \"../../exceptions/IllegalStateException\";\n\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model containing the details of one case.\n */\nexport default class CaseViewModel extends DetailModel {\n _taskGroupCollection: TaskGroupCollection;\n\n /**\n */\n constructor(caseviewData: ModularUIResponse) {\n super(caseviewData);\n\n this.createTaskGroupCollection();\n }\n\n /**\n */\n get type(): string {\n return \"CaseView\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"CaseView\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.links.getLinksByGroup(\"taskgroup\").all;\n }\n\n /**\n * Getting panel links\n */\n get panelLinks(): LinkCollection {\n return this.links.getLinksByGroup(\"panel\");\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n super.setChildModels(models);\n\n const taskGroupModels = [];\n for (let i = 0; i < models.length; i++) {\n if (models[i] instanceof TaskGroupModel) {\n taskGroupModels.push(models[i]);\n }\n }\n\n this.taskGroupCollection.add(taskGroupModels);\n }\n\n /**\n * Getting the case name\n */\n get casename(): ?AttributeType {\n return this.attributeCollection.getAttributeByLayoutHint(TITLE);\n }\n\n /**\n * Retrieve the case label, this can be configured with a case property with the layout hint 'title'\n */\n get label(): string {\n return this.casename ? this.casename.value : \"\";\n }\n\n /**\n * Retrieve the label that was configured on the caseview\n */\n get viewLabel(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Check if an introtext exists for this caseview\n */\n hasIntroText(): boolean {\n return this.introtext !== \"\";\n }\n\n /**\n * Getting the introduction text configured on the case view\n */\n get introtext(): string {\n if (this.data._content) {\n return this.data._content.text.message;\n }\n\n if (this.contributions.text) {\n return this.contributions.text.message ?? this.contributions.text;\n }\n\n if (Array.isArray(this.contributions.texts)) {\n return this.contributions.texts[0].text;\n }\n\n return \"\";\n }\n\n /**\n * Getting the self href\n */\n get selfhref(): Href {\n const selfLink = this.links.getLinkByKey(\"self\");\n\n if (selfLink === null) {\n throw new IllegalStateException(\"No self href available\");\n }\n\n return new Href(selfLink.href);\n }\n\n /**\n */\n createTaskGroupCollection() {\n const allTaskgroupData = this.getData(\"taskgroups\", []);\n const allTaskgroupContributions = this.getContribution(\"taskgroups\", []);\n\n this.taskGroupCollection = allTaskgroupData\n .filter((taskgroup) =>\n allTaskgroupContributions.some(\n (taskgroupContribution) =>\n taskgroupContribution.name === taskgroup.name\n )\n )\n .map((taskgroup) => {\n const taskgroupContributions = allTaskgroupContributions.find(\n (taskgroupContribution) =>\n taskgroupContribution.name === taskgroup.name\n );\n\n return TaskGroupModel.create(\n taskgroup.name,\n taskgroup,\n taskgroupContributions\n );\n });\n }\n\n /**\n * Setting the taskgroup panel collection\n */\n set taskGroupCollection(taskgroups: Array<TaskGroupModel>) {\n this._taskGroupCollection = new TaskGroupCollection(taskgroups);\n }\n\n /**\n * Getting the taskgrouppanels on the tab\n */\n get taskGroupCollection(): TaskGroupCollection {\n return this._taskGroupCollection;\n }\n\n /**\n * Has taskgroups\n */\n hasTaskGroups(): boolean {\n return this.taskGroupCollection && this.taskGroupCollection.hasItems;\n }\n}\n"],"file":"CaseViewModel.js"}
|
|
@@ -2,13 +2,26 @@ import CaseViewModel from "../CaseViewModel";
|
|
|
2
2
|
import DetailModel from "../../detail/DetailModel";
|
|
3
3
|
|
|
4
4
|
import caseviewJson from "./caseview.json";
|
|
5
|
+
import caseviewLocalTaskgroupJson from "./caseview_local_taskgroup.json";
|
|
5
6
|
import caseviewContributionsJson from "./caseviewContributions.json";
|
|
6
7
|
|
|
8
|
+
import IllegalStateException from "../../../exceptions/IllegalStateException";
|
|
9
|
+
|
|
7
10
|
describe("caseViewModel", () => {
|
|
8
11
|
it("should be able to create an empty casedetail", () => {
|
|
9
12
|
const caseview = new CaseViewModel({});
|
|
10
13
|
|
|
11
14
|
expect(caseview).toBeInstanceOf(CaseViewModel);
|
|
15
|
+
expect(caseview.getInitialChildModelLinks()).toHaveLength(0);
|
|
16
|
+
expect(caseview.panelLinks).toHaveLength(0);
|
|
17
|
+
expect(caseview.introtext).toBe("");
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it("throws when no self link is available", () => {
|
|
21
|
+
const caseview = new CaseViewModel({});
|
|
22
|
+
expect(() => {
|
|
23
|
+
caseview.selfhref;
|
|
24
|
+
}).toThrow(IllegalStateException);
|
|
12
25
|
});
|
|
13
26
|
|
|
14
27
|
it("should be able to create a casedetail from a typical modular UI json structure", () => {
|
|
@@ -18,6 +31,8 @@ describe("caseViewModel", () => {
|
|
|
18
31
|
contributions: caseviewContributionsJson,
|
|
19
32
|
});
|
|
20
33
|
|
|
34
|
+
expect(caseDetail.viewLabel).toBe("Book");
|
|
35
|
+
expect(caseDetail.hasIntroText()).toBe(true);
|
|
21
36
|
expect(caseDetail).toBeInstanceOf(CaseViewModel);
|
|
22
37
|
expect(caseDetail).toBeInstanceOf(DetailModel);
|
|
23
38
|
|
|
@@ -25,13 +40,35 @@ describe("caseViewModel", () => {
|
|
|
25
40
|
expect(caseDetail.id).toBe(24);
|
|
26
41
|
|
|
27
42
|
expect(caseDetail.casename.value).toBe("The safety of objects");
|
|
43
|
+
|
|
44
|
+
expect(caseDetail.hasTaskGroups()).toBe(false);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("should be able to handle local taskgroup", () => {
|
|
48
|
+
const caseDetail = new CaseViewModel({
|
|
49
|
+
key: "Book",
|
|
50
|
+
data: caseviewLocalTaskgroupJson,
|
|
51
|
+
contributions: caseviewContributionsJson,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
expect(caseDetail.hasTaskGroups()).toBe(true);
|
|
55
|
+
expect(caseDetail.taskGroupCollection).toHaveLength(1);
|
|
28
56
|
});
|
|
29
57
|
|
|
30
58
|
it("should be able to handle different kind of introtext", () => {
|
|
31
59
|
const caseviewOldStructure = new CaseViewModel({
|
|
32
60
|
key: "Book",
|
|
33
61
|
data: caseviewJson,
|
|
34
|
-
contributions:
|
|
62
|
+
contributions: {
|
|
63
|
+
...caseviewContributionsJson,
|
|
64
|
+
text: undefined,
|
|
65
|
+
texts: [
|
|
66
|
+
{
|
|
67
|
+
type: "master",
|
|
68
|
+
text: "<p>This is introtext</p>",
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
},
|
|
35
72
|
});
|
|
36
73
|
|
|
37
74
|
expect(caseviewOldStructure.introtext).toBe("<p>This is introtext</p>");
|
|
@@ -13,6 +13,10 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
|
|
|
13
13
|
|
|
14
14
|
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
15
15
|
|
|
16
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
17
|
+
|
|
18
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
19
|
+
|
|
16
20
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
|
|
17
21
|
|
|
18
22
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
|
|
@@ -29,6 +33,10 @@ var _BaseCollection2 = _interopRequireDefault(require("../base/BaseCollection"))
|
|
|
29
33
|
|
|
30
34
|
var _ActionCollection = _interopRequireDefault(require("../actions/ActionCollection"));
|
|
31
35
|
|
|
36
|
+
var _ListItemModel = _interopRequireDefault(require("../list/ListItemModel"));
|
|
37
|
+
|
|
38
|
+
var _ConfigurationException = _interopRequireDefault(require("../../exceptions/ConfigurationException"));
|
|
39
|
+
|
|
32
40
|
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); }; }
|
|
33
41
|
|
|
34
42
|
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; } }
|
|
@@ -82,6 +90,38 @@ var ListItemCollection = /*#__PURE__*/function (_BaseCollection) {
|
|
|
82
90
|
});
|
|
83
91
|
return actions;
|
|
84
92
|
}
|
|
93
|
+
}], [{
|
|
94
|
+
key: "createFromList",
|
|
95
|
+
value:
|
|
96
|
+
/**
|
|
97
|
+
* Create a list item collection from the given list
|
|
98
|
+
*/
|
|
99
|
+
function createFromList(list) {
|
|
100
|
+
var _embedded = list.getData("_embedded");
|
|
101
|
+
|
|
102
|
+
if (_embedded != null) {
|
|
103
|
+
var _context2;
|
|
104
|
+
|
|
105
|
+
if (Array.isArray(_embedded)) {
|
|
106
|
+
throw new _ConfigurationException.default("One record panel with multiple tables is not supported, place all types in one panel for the panel with key ".concat(list.key));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
var dynamicschema = list.getData("dynamicschema");
|
|
110
|
+
var collection = (0, _map.default)(_context2 = _embedded.results).call(_context2, function (resultItem) {
|
|
111
|
+
var _Object$keys = (0, _keys.default)(resultItem),
|
|
112
|
+
_Object$keys2 = (0, _slicedToArray2.default)(_Object$keys, 1),
|
|
113
|
+
key = _Object$keys2[0];
|
|
114
|
+
|
|
115
|
+
var listitemData = resultItem[key];
|
|
116
|
+
listitemData.dynamicschema = dynamicschema;
|
|
117
|
+
var listitemContributions = list.contributions.results[key];
|
|
118
|
+
return _ListItemModel.default.createFromListResult(key, listitemData, listitemContributions);
|
|
119
|
+
});
|
|
120
|
+
return new ListItemCollection(collection);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return new ListItemCollection();
|
|
124
|
+
}
|
|
85
125
|
}]);
|
|
86
126
|
return ListItemCollection;
|
|
87
127
|
}(_BaseCollection2.default);
|
|
@@ -1,13 +1,50 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import BaseCollection from "../base/BaseCollection";
|
|
3
3
|
import ActionCollection from "../actions/ActionCollection";
|
|
4
|
+
import ListItemModel from "../list/ListItemModel";
|
|
4
5
|
|
|
5
|
-
import
|
|
6
|
+
import ConfigurationException from "../../exceptions/ConfigurationException";
|
|
7
|
+
|
|
8
|
+
import type ListModel from "../list/ListModel";
|
|
6
9
|
|
|
7
10
|
/**
|
|
8
11
|
* Collection of list items
|
|
9
12
|
*/
|
|
10
13
|
class ListItemCollection extends BaseCollection<ListItemModel> {
|
|
14
|
+
/**
|
|
15
|
+
* Create a list item collection from the given list
|
|
16
|
+
*/
|
|
17
|
+
static createFromList(list: ListModel): ListItemCollection {
|
|
18
|
+
const _embedded = list.getData("_embedded");
|
|
19
|
+
if (_embedded != null) {
|
|
20
|
+
if (Array.isArray(_embedded)) {
|
|
21
|
+
throw new ConfigurationException(
|
|
22
|
+
`One record panel with multiple tables is not supported, place all types in one panel for the panel with key ${list.key}`
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const dynamicschema = list.getData("dynamicschema");
|
|
27
|
+
|
|
28
|
+
const collection = _embedded.results.map((resultItem) => {
|
|
29
|
+
const [key] = Object.keys(resultItem);
|
|
30
|
+
const listitemData = resultItem[key];
|
|
31
|
+
listitemData.dynamicschema = dynamicschema;
|
|
32
|
+
|
|
33
|
+
const listitemContributions = list.contributions.results[key];
|
|
34
|
+
|
|
35
|
+
return ListItemModel.createFromListResult(
|
|
36
|
+
key,
|
|
37
|
+
listitemData,
|
|
38
|
+
listitemContributions
|
|
39
|
+
);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
return new ListItemCollection(collection);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return new ListItemCollection();
|
|
46
|
+
}
|
|
47
|
+
|
|
11
48
|
/**
|
|
12
49
|
*/
|
|
13
50
|
get additionalDetailRoutePath(): string {
|