@beinformed/ui 1.38.0 → 1.40.0

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.
Files changed (99) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/esm/models/attributes/AttributeModel.js +1 -2
  3. package/esm/models/attributes/AttributeModel.js.map +1 -1
  4. package/esm/models/attributes/input-constraints/FileSizeConstraint.js +0 -1
  5. package/esm/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  6. package/esm/models/content/ContentModel.js +1 -0
  7. package/esm/models/content/ContentModel.js.map +1 -1
  8. package/esm/models/content/SubSectionModel.js +5 -1
  9. package/esm/models/content/SubSectionModel.js.map +1 -1
  10. package/esm/models/href/Href.js +13 -0
  11. package/esm/models/href/Href.js.map +1 -1
  12. package/esm/react-client/contextPath.js +0 -2
  13. package/esm/react-client/contextPath.js.map +1 -1
  14. package/esm/react-client/rehydrate.js +0 -2
  15. package/esm/react-client/rehydrate.js.map +1 -1
  16. package/esm/react-server/contextPath.js +0 -1
  17. package/esm/react-server/contextPath.js.map +1 -1
  18. package/lib/models/attributes/AttributeModel.js +1 -2
  19. package/lib/models/attributes/AttributeModel.js.flow +1 -3
  20. package/lib/models/attributes/AttributeModel.js.map +1 -1
  21. package/lib/models/attributes/__tests__/AttributeModel.spec.js.flow +0 -3
  22. package/lib/models/attributes/input-constraints/FileSizeConstraint.js +0 -1
  23. package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  24. package/lib/models/content/ContentModel.js +1 -0
  25. package/lib/models/content/ContentModel.js.flow +1 -0
  26. package/lib/models/content/ContentModel.js.map +1 -1
  27. package/lib/models/content/SubSectionModel.js +5 -1
  28. package/lib/models/content/SubSectionModel.js.flow +3 -2
  29. package/lib/models/content/SubSectionModel.js.map +1 -1
  30. package/lib/models/content/__tests__/ContentModel.spec.js.flow +3 -0
  31. package/lib/models/href/Href.js +13 -0
  32. package/lib/models/href/Href.js.flow +13 -0
  33. package/lib/models/href/Href.js.map +1 -1
  34. package/lib/react-client/contextPath.js +0 -1
  35. package/lib/react-client/contextPath.js.map +1 -1
  36. package/lib/react-client/rehydrate.js +0 -2
  37. package/lib/react-client/rehydrate.js.map +1 -1
  38. package/package.json +17 -17
  39. package/src/models/attributes/AttributeModel.js +1 -3
  40. package/src/models/attributes/__tests__/AttributeModel.spec.js +0 -3
  41. package/src/models/content/ContentModel.js +1 -0
  42. package/src/models/content/SubSectionModel.js +3 -2
  43. package/src/models/content/__tests__/ContentModel.spec.js +3 -0
  44. package/src/models/href/Href.js +13 -0
  45. package/types/constants/LayoutHintConfig.d.ts +15 -0
  46. package/types/constants/LayoutHints.d.ts +4 -0
  47. package/types/models/actions/ActionModel.d.ts +3 -3
  48. package/types/models/application/ApplicationModel.d.ts +1 -1
  49. package/types/models/attributes/AttributeCollection.d.ts +1 -1
  50. package/types/models/attributes/AttributeModel.d.ts +14 -14
  51. package/types/models/attributes/AttributeSetModel.d.ts +9 -2
  52. package/types/models/attributes/BooleanAttributeModel.d.ts +1 -1
  53. package/types/models/attributes/ChoiceAttributeOptionCollection.d.ts +2 -2
  54. package/types/models/attributes/ChoiceAttributeOptionModel.d.ts +7 -7
  55. package/types/models/attributes/CompositeAttributeModel.d.ts +1 -1
  56. package/types/models/attributes/DatetimeAttributeModel.d.ts +1 -1
  57. package/types/models/attributes/PasswordAttributeModel.d.ts +3 -3
  58. package/types/models/attributes/StringAttributeModel.d.ts +1 -1
  59. package/types/models/attributes/UploadAttributeModel.d.ts +3 -3
  60. package/types/models/attributes/input-constraints/DateBoundaryConstraint.d.ts +1 -1
  61. package/types/models/attributes/input-constraints/DatetimeFormatConstraint.d.ts +1 -1
  62. package/types/models/attributes/input-constraints/RangeConstraint.d.ts +1 -1
  63. package/types/models/attributes/layouthint-rules/DependentAttribute.d.ts +4 -4
  64. package/types/models/base/BaseCollection.d.ts +1 -1
  65. package/types/models/base/BaseModel.d.ts +2 -2
  66. package/types/models/base/ResourceModel.d.ts +2 -2
  67. package/types/models/caseview/CaseViewModel.d.ts +1 -1
  68. package/types/models/concepts/BusinessScenarioModel.d.ts +1 -1
  69. package/types/models/concepts/ConceptDetailModel.d.ts +1 -1
  70. package/types/models/concepts/ConceptIndexModel.d.ts +1 -1
  71. package/types/models/concepts/ConceptLinkModel.d.ts +1 -1
  72. package/types/models/concepts/ConceptRelationModel.d.ts +1 -1
  73. package/types/models/content/ContentLinkModel.d.ts +3 -3
  74. package/types/models/content/ContentModel.d.ts +2 -2
  75. package/types/models/content/ContentTOCModel.d.ts +1 -1
  76. package/types/models/content/SectionModel.d.ts +1 -1
  77. package/types/models/detail/DetailModel.d.ts +3 -3
  78. package/types/models/error/ErrorResponse.d.ts +1 -1
  79. package/types/models/filters/BaseFilterModel.d.ts +2 -2
  80. package/types/models/filters/StringFilterModel.d.ts +2 -2
  81. package/types/models/form/FormModel.d.ts +14 -14
  82. package/types/models/form/FormObjectModel.d.ts +3 -3
  83. package/types/models/href/Href.d.ts +13 -6
  84. package/types/models/href/ListHref.d.ts +4 -4
  85. package/types/models/links/LinkCollection.d.ts +1 -1
  86. package/types/models/links/LinkModel.d.ts +4 -4
  87. package/types/models/list/ListDetailModel.d.ts +2 -2
  88. package/types/models/list/ListModel.d.ts +3 -3
  89. package/types/models/paging/PagesizeModel.d.ts +1 -1
  90. package/types/models/paging/PagingModel.d.ts +1 -1
  91. package/types/models/panels/GroupingPanelModel.d.ts +1 -1
  92. package/types/models/sorting/SortOptionModel.d.ts +2 -2
  93. package/types/models/tab/TabModel.d.ts +1 -1
  94. package/types/models/taskgroup/TaskGroupModel.d.ts +5 -0
  95. package/types/models/user/UserServicesModel.d.ts +1 -1
  96. package/types/modularui/Authenticate.d.ts +1 -1
  97. package/types/modularui/ModularUIRequest.d.ts +8 -8
  98. package/types/modularui/ModularUIResponse.d.ts +5 -5
  99. package/types/utils/datetime/DateTimeUtil.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Href.js","names":["_constants","require","_Parameter","_interopRequireDefault","_exceptions","Href","constructor","href","resourcetype","_defineProperty2","default","HTTP_METHODS","GET","setFromHref","setFromString","setFromLocationOrObject","path","parameters","hash","state","pathname","_path","search","addParametersFromString","Array","isArray","_parameters","_context","_map","call","param","addParameter","_name","_value","_prefix","getHashFromString","_hash","_state","getPathFromString","isChangePassword","_context2","_includes","isCamelRoute","_startsWith","checkAbsoluteUrl","checkAbsolute","RegExp","test","isExternal","decodedHref","decodeURI","hrefNoHash","substr","indexOf","split","arguments","length","undefined","forEach","paramFromString","Parameter","fromString","setParameter","name","value","prefix","removeParameter","push","getParameter","_context3","_find","hasParameter","method","_method","_context4","valueToRemove","newValue","filter","val","join","_context5","_filter","getQuerystring","_context6","_context7","withPrefix","toQuerystring","getQuerystringForModularUI","_context8","_context9","isModUIParameter","querystring","setState","_resourcetype","absolutepath","getBasePath","absolutehref","absolutehrefPrefixedQuerystring","startsWith","thisPath","otherPath","equals","equalsWithParameters","_context10","thisParams","toString","every","IllegalArgumentException","isContent","_context11","CONTENT_PATH","toLocation","_default","exports"],"sources":["../../../src/models/href/Href.js"],"sourcesContent":["// @flow\nimport { getBasePath, HTTP_METHODS, CONTENT_PATH } from \"../../constants\";\n\nimport Parameter from \"../parameter/Parameter\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { LocationShape } from \"react-router\";\n\ntype HrefObject = {\n _path: string,\n _hash: string,\n _parameters: Array<Parameter>,\n _resourcetype: string,\n _method: $Keys<typeof HTTP_METHODS>,\n _state: ?{ [key: string]: any },\n pathname: ?string,\n};\n\nexport type HrefInput = Href | HrefObject | LocationShape | string;\n\n/**\n * Defines a Href with the parameters\n */\nclass Href {\n _path: string = \"\";\n _hash: string = \"\";\n _parameters: Array<Parameter> = [];\n _resourcetype: string = \"\";\n _method: $Keys<typeof HTTP_METHODS> = HTTP_METHODS.GET;\n _state: any = null;\n\n /**\n * Create a Href\n */\n constructor(href?: HrefInput, resourcetype?: string) {\n this.resourcetype = resourcetype ?? \"\";\n\n if (href instanceof Href) {\n this.setFromHref(href);\n } else if (typeof href === \"string\") {\n this.setFromString(href);\n } else if (typeof href === \"object\") {\n this.setFromLocationOrObject(href);\n }\n }\n\n /**\n * Set parameters from Href model input\n */\n setFromHref(href: Href) {\n this.path = href.path;\n this.parameters = href.parameters;\n this.hash = href.hash;\n this.state = href.state;\n }\n\n /**\n */\n setFromLocationOrObject(href: LocationShape | HrefObject) {\n if (typeof href[\"pathname\"] === \"string\") {\n this.path = href.pathname;\n } else if (typeof href._path === \"string\") {\n this.path = href._path;\n }\n\n if (href.search) {\n this.addParametersFromString(href.search);\n } else if (Array.isArray(href._parameters)) {\n // $FlowExpectedError[incompatible-call]\n href._parameters.map((param: Parameter) =>\n this.addParameter(param._name, param._value, param._prefix),\n );\n }\n\n if (href.hash) {\n this.hash = Href.getHashFromString(href.hash);\n } else if (typeof href._hash === \"string\") {\n this.hash = href._hash;\n }\n\n if (href.state) {\n this.state = href.state || null;\n } else if (typeof href._state === \"object\") {\n this.state = href._state;\n }\n }\n\n /**\n * Set parameters from string input\n */\n setFromString(href: string) {\n this.path = Href.getPathFromString(href);\n this.addParametersFromString(href);\n this.hash = Href.getHashFromString(href);\n }\n\n /**\n */\n get isChangePassword(): boolean {\n return this._path.includes(\"/change-password\");\n }\n\n /**\n * check if the path is referencing a camel route\n */\n static isCamelRoute(path: string): boolean {\n return (\n path.startsWith(\"/restServices\") && !path.startsWith(\"/restServices/ui\")\n );\n }\n\n /**\n */\n static checkAbsoluteUrl(href: string): boolean {\n const checkAbsolute = new RegExp(\"^(?:[a-z]+:)?//\", \"i\");\n return checkAbsolute.test(href);\n }\n\n // Check if url is relative (not checking for absolute urls with same domain)\n /**\n */\n get isExternal(): boolean {\n return Href.checkAbsoluteUrl(this.path);\n }\n\n /**\n * Retrieve the relative path part of a href string, e.g. https://www.beinformed.com/BeInformed/tab/view?q=url => /tab/view\n */\n static getPathFromString(href: string): string {\n const decodedHref = decodeURI(href);\n\n const hrefNoHash = decodedHref.includes(\"#\")\n ? decodedHref.substr(0, decodedHref.indexOf(\"#\"))\n : decodedHref;\n\n return hrefNoHash.includes(\"?\") ? hrefNoHash.split(\"?\")[0] : hrefNoHash;\n }\n\n /**\n * Retrieve hash of href string\n */\n static getHashFromString(href: string = \"\"): string {\n return href.includes(\"#\") ? href.substr(href.indexOf(\"#\") + 1) : \"\";\n }\n\n /**\n * Add a parameter for each parameter found in the querystring of an URL string, e.g. https://www.beinformed.com?q=url => q=url\n */\n addParametersFromString(href: string): Href {\n if (href.includes(\"?\")) {\n href\n .split(\"?\")[1]\n .split(\"&\")\n .forEach((param) => {\n const paramFromString = Parameter.fromString(param);\n if (paramFromString) {\n this.setParameter(\n paramFromString.name,\n paramFromString.value,\n paramFromString.prefix,\n );\n }\n });\n }\n\n return this;\n }\n\n /**\n * Add a querystring parameter to the parameter collection of this Href, skips parameters that have a value of null\n */\n addParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value !== null) {\n this.removeParameter(name, prefix);\n this._parameters.push(new Parameter(prefix, name, value));\n }\n\n return this;\n }\n\n /**\n * Adds or overwrites a parameter when it exists and value is not null.\n * Removes the parameter when the value is null\n */\n setParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value === null) {\n this.removeParameter(name, prefix);\n } else {\n this.addParameter(name, value, prefix);\n }\n\n return this;\n }\n\n /**\n * Retrieve a parameter by it's name and (optionally) prefix\n */\n getParameter(name: string, prefix: ?string): ?Parameter {\n return this._parameters.find(\n (param) => param.prefix === prefix && param.name === name,\n );\n }\n\n /**\n */\n hasParameter(name: string, prefix: ?string): boolean {\n return this.getParameter(name, prefix) !== undefined;\n }\n\n /**\n * Get request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this._method;\n }\n\n /**\n * Set request method\n */\n set method(method: $Keys<typeof HTTP_METHODS>) {\n this._method = method || HTTP_METHODS.GET;\n }\n\n /**\n * Retrieve all paremters\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n * Replace parameters of Href\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n * Remove a parameter from the parameter collection\n */\n removeParameter(name: string, prefix: ?string, value: ?string): Href {\n if (value !== undefined) {\n const valueToRemove = value;\n\n this._parameters = this._parameters.map((param) => {\n if (param.prefix === prefix && param.name === name) {\n const newValue = param.value\n ?.split(\",\")\n .filter((val) => val !== valueToRemove)\n .join(\",\");\n return new Parameter(param.prefix, param.name, newValue);\n }\n return param;\n });\n } else {\n this._parameters = this._parameters.filter(\n (param) => param.prefix !== prefix || param.name !== name,\n );\n }\n\n return this;\n }\n\n /**\n * Get the parameters as a querystring, e.g. param1=value1&param2=value2, optionally with prefix\n */\n getQuerystring(withPrefix: boolean = false): string {\n return this.parameters\n .filter((param) => param.value != null && param.value !== \"\")\n .map((param) => param.toQuerystring(withPrefix))\n .join(\"&\");\n }\n\n /**\n * Retrieve a querystring that only contains parameter that can be send to the modular ui, parameters are filtered by prefix\n */\n getQuerystringForModularUI(prefix: string = \"\"): string {\n return this.parameters\n .filter(\n (param) =>\n param.isModUIParameter &&\n (!prefix || !param.prefix || param.prefix === prefix) &&\n param.value != null,\n )\n .map((param) => param.toQuerystring(false))\n .join(\"&\");\n }\n\n /**\n * Retrieve all parameters from the parameter collection in a querystring style name1=value1&name2=value2, without the prefix\n */\n get querystring(): string {\n return this.getQuerystring(false);\n }\n\n /**\n * Set the path of the Href, the part before the querystring question mark\n */\n set path(path: string) {\n this._path = path;\n }\n\n /**\n * Retrieve the path\n */\n get path(): string {\n return this._path || \"\";\n }\n\n /**\n * Set hash\n */\n set hash(hash: string) {\n this._hash = hash;\n }\n\n /**\n * Retrieve hash\n */\n get hash(): string {\n return this._hash;\n }\n\n /**\n */\n set state(state: any) {\n this._state = state;\n }\n\n /**\n */\n get state(): any {\n return this._state;\n }\n\n /**\n */\n setState(state: any): Href {\n this.state = state;\n\n return this;\n }\n\n /**\n * Set resourctype\n */\n set resourcetype(resourcetype: string) {\n this._resourcetype = resourcetype;\n }\n\n /**\n * Retrieve resourceType\n */\n get resourcetype(): string {\n return this._resourcetype;\n }\n\n /**\n * Retrieve the path combined with the base path (context-path) of the application, e.g. /BeInformed\n */\n get absolutepath(): string {\n if (this.isExternal) {\n return this.path;\n }\n\n return getBasePath() + this.path;\n }\n\n /**\n * Retrieves the combination of the path and the querystring\n */\n get href(): string {\n return this.querystring.length > 0\n ? [this.path, this.querystring].join(\"?\")\n : this.path;\n }\n\n /**\n * Getting the URL including the base path, querystring is prefixed\n */\n get absolutehref(): string {\n const querystring = this.getQuerystring(false);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Getting the URL including the base path, the querystring is prefixed\n */\n get absolutehrefPrefixedQuerystring(): string {\n const querystring = this.getQuerystring(true);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Checks if the URL starts within the given href\n */\n startsWith(href: Href | string): boolean {\n const thisPath = `${this.path}/`;\n const otherPath = href instanceof Href ? `${href.path}/` : href;\n\n return thisPath.startsWith(otherPath);\n }\n\n /**\n * Checks if the given Href equals this Href\n */\n equals(href: Href | string): boolean {\n if (href instanceof Href) {\n return this.path === href.path;\n }\n\n return this.path === href;\n }\n\n /**\n */\n equalsWithParameters(href: Href): boolean {\n if (!this.equals(href)) {\n return false;\n }\n\n if (href instanceof Href) {\n if (this.parameters.length !== href.parameters.length) {\n return false;\n }\n\n if (this.parameters.length === 0 && href.parameters.length === 0) {\n return true;\n }\n\n const thisParams = this.parameters.map((param) => param.toString());\n\n return href.parameters.every((param) =>\n thisParams.includes(param.toString()),\n );\n }\n\n throw new IllegalArgumentException(`${href} is not an instance of Href`);\n }\n\n /**\n * Indicates if the link is a content link\n */\n get isContent(): boolean {\n return this.absolutepath.startsWith(`${getBasePath()}${CONTENT_PATH}`);\n }\n\n /**\n * Returns a complete url from the Href\n */\n toString(): string {\n return this.href;\n }\n\n /**\n */\n toLocation(): LocationShape {\n return {\n pathname: this.path,\n search: this.querystring.length > 0 ? `?${this.querystring}` : \"\",\n hash: this.hash.length > 0 ? `#${this.hash}` : \"\",\n state: this.state,\n };\n }\n}\n\nexport default Href;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Href.js","names":["_constants","require","_Parameter","_interopRequireDefault","_exceptions","Href","constructor","href","resourcetype","_defineProperty2","default","HTTP_METHODS","GET","setFromHref","setFromString","setFromLocationOrObject","path","parameters","hash","state","pathname","_path","search","addParametersFromString","Array","isArray","_parameters","_context","_map","call","param","addParameter","_name","_value","_prefix","getHashFromString","_hash","_state","getPathFromString","isChangePassword","_context2","_includes","isCamelRoute","_startsWith","checkAbsoluteUrl","checkAbsolute","RegExp","test","isExternal","decodedHref","decodeURI","hrefNoHash","substr","indexOf","split","arguments","length","undefined","forEach","paramFromString","Parameter","fromString","setParameter","name","value","prefix","removeParameter","push","getParameter","_context3","_find","hasParameter","method","_method","_context4","valueToRemove","newValue","filter","val","join","_context5","_filter","getQuerystring","_context6","_context7","withPrefix","toQuerystring","getQuerystringForModularUI","_context8","_context9","isModUIParameter","querystring","setState","_resourcetype","absolutepath","getBasePath","absolutehref","absolutehrefPrefixedQuerystring","startsWith","thisPath","otherPath","equals","equalsWithParameters","_context10","thisParams","toString","every","IllegalArgumentException","isContent","_context11","CONTENT_PATH","getReferenceHash","_referenceHash","setReferenceHash","referenceHash","toLocation","_default","exports"],"sources":["../../../src/models/href/Href.js"],"sourcesContent":["// @flow\nimport { getBasePath, HTTP_METHODS, CONTENT_PATH } from \"../../constants\";\n\nimport Parameter from \"../parameter/Parameter\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { LocationShape } from \"react-router\";\n\ntype HrefObject = {\n _path: string,\n _hash: string,\n _parameters: Array<Parameter>,\n _resourcetype: string,\n _method: $Keys<typeof HTTP_METHODS>,\n _state: ?{ [key: string]: any },\n pathname: ?string,\n};\n\nexport type HrefInput = Href | HrefObject | LocationShape | string;\n\n/**\n * Defines a Href with the parameters\n */\nclass Href {\n _path: string = \"\";\n _hash: string = \"\";\n _parameters: Array<Parameter> = [];\n _resourcetype: string = \"\";\n _method: $Keys<typeof HTTP_METHODS> = HTTP_METHODS.GET;\n _state: any = null;\n _referenceHash: ?number;\n\n /**\n * Create a Href\n */\n constructor(href?: HrefInput, resourcetype?: string) {\n this.resourcetype = resourcetype ?? \"\";\n\n if (href instanceof Href) {\n this.setFromHref(href);\n } else if (typeof href === \"string\") {\n this.setFromString(href);\n } else if (typeof href === \"object\") {\n this.setFromLocationOrObject(href);\n }\n }\n\n /**\n * Set parameters from Href model input\n */\n setFromHref(href: Href) {\n this.path = href.path;\n this.parameters = href.parameters;\n this.hash = href.hash;\n this.state = href.state;\n }\n\n /**\n */\n setFromLocationOrObject(href: LocationShape | HrefObject) {\n if (typeof href[\"pathname\"] === \"string\") {\n this.path = href.pathname;\n } else if (typeof href._path === \"string\") {\n this.path = href._path;\n }\n\n if (href.search) {\n this.addParametersFromString(href.search);\n } else if (Array.isArray(href._parameters)) {\n // $FlowExpectedError[incompatible-call]\n href._parameters.map((param: Parameter) =>\n this.addParameter(param._name, param._value, param._prefix),\n );\n }\n\n if (href.hash) {\n this.hash = Href.getHashFromString(href.hash);\n } else if (typeof href._hash === \"string\") {\n this.hash = href._hash;\n }\n\n if (href.state) {\n this.state = href.state || null;\n } else if (typeof href._state === \"object\") {\n this.state = href._state;\n }\n }\n\n /**\n * Set parameters from string input\n */\n setFromString(href: string) {\n this.path = Href.getPathFromString(href);\n this.addParametersFromString(href);\n this.hash = Href.getHashFromString(href);\n }\n\n /**\n */\n get isChangePassword(): boolean {\n return this._path.includes(\"/change-password\");\n }\n\n /**\n * check if the path is referencing a camel route\n */\n static isCamelRoute(path: string): boolean {\n return (\n path.startsWith(\"/restServices\") && !path.startsWith(\"/restServices/ui\")\n );\n }\n\n /**\n */\n static checkAbsoluteUrl(href: string): boolean {\n const checkAbsolute = new RegExp(\"^(?:[a-z]+:)?//\", \"i\");\n return checkAbsolute.test(href);\n }\n\n // Check if url is relative (not checking for absolute urls with same domain)\n /**\n */\n get isExternal(): boolean {\n return Href.checkAbsoluteUrl(this.path);\n }\n\n /**\n * Retrieve the relative path part of a href string, e.g. https://www.beinformed.com/BeInformed/tab/view?q=url => /tab/view\n */\n static getPathFromString(href: string): string {\n const decodedHref = decodeURI(href);\n\n const hrefNoHash = decodedHref.includes(\"#\")\n ? decodedHref.substr(0, decodedHref.indexOf(\"#\"))\n : decodedHref;\n\n return hrefNoHash.includes(\"?\") ? hrefNoHash.split(\"?\")[0] : hrefNoHash;\n }\n\n /**\n * Retrieve hash of href string\n */\n static getHashFromString(href: string = \"\"): string {\n return href.includes(\"#\") ? href.substr(href.indexOf(\"#\") + 1) : \"\";\n }\n\n /**\n * Add a parameter for each parameter found in the querystring of an URL string, e.g. https://www.beinformed.com?q=url => q=url\n */\n addParametersFromString(href: string): Href {\n if (href.includes(\"?\")) {\n href\n .split(\"?\")[1]\n .split(\"&\")\n .forEach((param) => {\n const paramFromString = Parameter.fromString(param);\n if (paramFromString) {\n this.setParameter(\n paramFromString.name,\n paramFromString.value,\n paramFromString.prefix,\n );\n }\n });\n }\n\n return this;\n }\n\n /**\n * Add a querystring parameter to the parameter collection of this Href, skips parameters that have a value of null\n */\n addParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value !== null) {\n this.removeParameter(name, prefix);\n this._parameters.push(new Parameter(prefix, name, value));\n }\n\n return this;\n }\n\n /**\n * Adds or overwrites a parameter when it exists and value is not null.\n * Removes the parameter when the value is null\n */\n setParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value === null) {\n this.removeParameter(name, prefix);\n } else {\n this.addParameter(name, value, prefix);\n }\n\n return this;\n }\n\n /**\n * Retrieve a parameter by it's name and (optionally) prefix\n */\n getParameter(name: string, prefix: ?string): ?Parameter {\n return this._parameters.find(\n (param) => param.prefix === prefix && param.name === name,\n );\n }\n\n /**\n */\n hasParameter(name: string, prefix: ?string): boolean {\n return this.getParameter(name, prefix) !== undefined;\n }\n\n /**\n * Get request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this._method;\n }\n\n /**\n * Set request method\n */\n set method(method: $Keys<typeof HTTP_METHODS>) {\n this._method = method || HTTP_METHODS.GET;\n }\n\n /**\n * Retrieve all paremters\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n * Replace parameters of Href\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n * Remove a parameter from the parameter collection\n */\n removeParameter(name: string, prefix: ?string, value: ?string): Href {\n if (value !== undefined) {\n const valueToRemove = value;\n\n this._parameters = this._parameters.map((param) => {\n if (param.prefix === prefix && param.name === name) {\n const newValue = param.value\n ?.split(\",\")\n .filter((val) => val !== valueToRemove)\n .join(\",\");\n return new Parameter(param.prefix, param.name, newValue);\n }\n return param;\n });\n } else {\n this._parameters = this._parameters.filter(\n (param) => param.prefix !== prefix || param.name !== name,\n );\n }\n\n return this;\n }\n\n /**\n * Get the parameters as a querystring, e.g. param1=value1&param2=value2, optionally with prefix\n */\n getQuerystring(withPrefix: boolean = false): string {\n return this.parameters\n .filter((param) => param.value != null && param.value !== \"\")\n .map((param) => param.toQuerystring(withPrefix))\n .join(\"&\");\n }\n\n /**\n * Retrieve a querystring that only contains parameter that can be send to the modular ui, parameters are filtered by prefix\n */\n getQuerystringForModularUI(prefix: string = \"\"): string {\n return this.parameters\n .filter(\n (param) =>\n param.isModUIParameter &&\n (!prefix || !param.prefix || param.prefix === prefix) &&\n param.value != null,\n )\n .map((param) => param.toQuerystring(false))\n .join(\"&\");\n }\n\n /**\n * Retrieve all parameters from the parameter collection in a querystring style name1=value1&name2=value2, without the prefix\n */\n get querystring(): string {\n return this.getQuerystring(false);\n }\n\n /**\n * Set the path of the Href, the part before the querystring question mark\n */\n set path(path: string) {\n this._path = path;\n }\n\n /**\n * Retrieve the path\n */\n get path(): string {\n return this._path || \"\";\n }\n\n /**\n * Set hash\n */\n set hash(hash: string) {\n this._hash = hash;\n }\n\n /**\n * Retrieve hash\n */\n get hash(): string {\n return this._hash;\n }\n\n /**\n */\n set state(state: any) {\n this._state = state;\n }\n\n /**\n */\n get state(): any {\n return this._state;\n }\n\n /**\n */\n setState(state: any): Href {\n this.state = state;\n\n return this;\n }\n\n /**\n * Set resourctype\n */\n set resourcetype(resourcetype: string) {\n this._resourcetype = resourcetype;\n }\n\n /**\n * Retrieve resourceType\n */\n get resourcetype(): string {\n return this._resourcetype;\n }\n\n /**\n * Retrieve the path combined with the base path (context-path) of the application, e.g. /BeInformed\n */\n get absolutepath(): string {\n if (this.isExternal) {\n return this.path;\n }\n\n return getBasePath() + this.path;\n }\n\n /**\n * Retrieves the combination of the path and the querystring\n */\n get href(): string {\n return this.querystring.length > 0\n ? [this.path, this.querystring].join(\"?\")\n : this.path;\n }\n\n /**\n * Getting the URL including the base path, querystring is prefixed\n */\n get absolutehref(): string {\n const querystring = this.getQuerystring(false);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Getting the URL including the base path, the querystring is prefixed\n */\n get absolutehrefPrefixedQuerystring(): string {\n const querystring = this.getQuerystring(true);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Checks if the URL starts within the given href\n */\n startsWith(href: Href | string): boolean {\n const thisPath = `${this.path}/`;\n const otherPath = href instanceof Href ? `${href.path}/` : href;\n\n return thisPath.startsWith(otherPath);\n }\n\n /**\n * Checks if the given Href equals this Href\n */\n equals(href: Href | string): boolean {\n if (href instanceof Href) {\n return this.path === href.path;\n }\n\n return this.path === href;\n }\n\n /**\n */\n equalsWithParameters(href: Href): boolean {\n if (!this.equals(href)) {\n return false;\n }\n\n if (href instanceof Href) {\n if (this.parameters.length !== href.parameters.length) {\n return false;\n }\n\n if (this.parameters.length === 0 && href.parameters.length === 0) {\n return true;\n }\n\n const thisParams = this.parameters.map((param) => param.toString());\n\n return href.parameters.every((param) =>\n thisParams.includes(param.toString()),\n );\n }\n\n throw new IllegalArgumentException(`${href} is not an instance of Href`);\n }\n\n /**\n * Indicates if the link is a content link\n */\n get isContent(): boolean {\n return this.absolutepath.startsWith(`${getBasePath()}${CONTENT_PATH}`);\n }\n\n /**\n */\n getReferenceHash(): ?number {\n return this._referenceHash;\n }\n\n /**\n */\n setReferenceHash(referenceHash: number) {\n this._referenceHash = referenceHash;\n }\n\n /**\n * Returns a complete url from the Href\n */\n toString(): string {\n return this.href;\n }\n\n /**\n */\n toLocation(): LocationShape {\n return {\n pathname: this.path,\n search: this.querystring.length > 0 ? `?${this.querystring}` : \"\",\n hash: this.hash.length > 0 ? `#${this.hash}` : \"\",\n state: this.state,\n };\n }\n}\n\nexport default Href;\n"],"mappings":"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"}
@@ -18,7 +18,6 @@ Object.defineProperty(exports, "__esModule", {
18
18
  } else if (contextPath) {
19
19
  __webpack_public_path__ = `${contextPath}/`; // NOSONAR
20
20
  }
21
-
22
21
  const nonce = dataElement.getAttribute("data-app-nonce");
23
22
  if (nonce) {
24
23
  __webpack_nonce__ = nonce; // NOSONAR
@@ -1 +1 @@
1
- {"version":3,"file":"contextPath.js","names":["x","dataElement","document","querySelector","Error","contextPath","getAttribute","window","filePath","__webpack_public_path__","nonce","__webpack_nonce__"],"sources":["../../src/react-client/contextPath.js"],"sourcesContent":["// @flow\n(function x() {\n const dataElement = document.querySelector(\n 'script[type=\"application/json\"][data-app-state=\"app-json\"]',\n );\n if (!dataElement) {\n throw new Error(\n \"Error finding script with attribute app-json to retrieve context path\",\n );\n }\n\n const contextPath = dataElement.getAttribute(\"data-app-contextpath\");\n if (contextPath) {\n window.contextPath = contextPath;\n }\n\n const filePath = dataElement.getAttribute(\"data-app-filepath\");\n if (filePath && filePath !== \"{FILEPATH}\") {\n __webpack_public_path__ = `${filePath}/`; // NOSONAR\n } else if (contextPath) {\n __webpack_public_path__ = `${contextPath}/`; // NOSONAR\n }\n\n const nonce = dataElement.getAttribute(\"data-app-nonce\");\n if (nonce) {\n __webpack_nonce__ = nonce; // NOSONAR\n }\n})();\n\nexport {};\n"],"mappings":";;;;;AACA,CAAC,SAASA,CAACA,CAAA,EAAG;EACZ,MAAMC,WAAW,GAAGC,QAAQ,CAACC,aAAa,CACxC,4DACF,CAAC;EACD,IAAI,CAACF,WAAW,EAAE;IAChB,MAAM,IAAIG,KAAK,CACb,uEACF,CAAC;EACH;EAEA,MAAMC,WAAW,GAAGJ,WAAW,CAACK,YAAY,CAAC,sBAAsB,CAAC;EACpE,IAAID,WAAW,EAAE;IACfE,MAAM,CAACF,WAAW,GAAGA,WAAW;EAClC;EAEA,MAAMG,QAAQ,GAAGP,WAAW,CAACK,YAAY,CAAC,mBAAmB,CAAC;EAC9D,IAAIE,QAAQ,IAAIA,QAAQ,KAAK,YAAY,EAAE;IACzCC,uBAAuB,GAAI,GAAED,QAAS,GAAE,CAAC,CAAC;EAC5C,CAAC,MAAM,IAAIH,WAAW,EAAE;IACtBI,uBAAuB,GAAI,GAAEJ,WAAY,GAAE,CAAC,CAAC;EAC/C;;EAEA,MAAMK,KAAK,GAAGT,WAAW,CAACK,YAAY,CAAC,gBAAgB,CAAC;EACxD,IAAII,KAAK,EAAE;IACTC,iBAAiB,GAAGD,KAAK,CAAC,CAAC;EAC7B;AACF,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"contextPath.js","names":["x","dataElement","document","querySelector","Error","contextPath","getAttribute","window","filePath","__webpack_public_path__","nonce","__webpack_nonce__"],"sources":["../../src/react-client/contextPath.js"],"sourcesContent":["// @flow\n(function x() {\n const dataElement = document.querySelector(\n 'script[type=\"application/json\"][data-app-state=\"app-json\"]',\n );\n if (!dataElement) {\n throw new Error(\n \"Error finding script with attribute app-json to retrieve context path\",\n );\n }\n\n const contextPath = dataElement.getAttribute(\"data-app-contextpath\");\n if (contextPath) {\n window.contextPath = contextPath;\n }\n\n const filePath = dataElement.getAttribute(\"data-app-filepath\");\n if (filePath && filePath !== \"{FILEPATH}\") {\n __webpack_public_path__ = `${filePath}/`; // NOSONAR\n } else if (contextPath) {\n __webpack_public_path__ = `${contextPath}/`; // NOSONAR\n }\n\n const nonce = dataElement.getAttribute(\"data-app-nonce\");\n if (nonce) {\n __webpack_nonce__ = nonce; // NOSONAR\n }\n})();\n\nexport {};\n"],"mappings":";;;;;AACA,CAAC,SAASA,CAACA,CAAA,EAAG;EACZ,MAAMC,WAAW,GAAGC,QAAQ,CAACC,aAAa,CACxC,4DACF,CAAC;EACD,IAAI,CAACF,WAAW,EAAE;IAChB,MAAM,IAAIG,KAAK,CACb,uEACF,CAAC;EACH;EAEA,MAAMC,WAAW,GAAGJ,WAAW,CAACK,YAAY,CAAC,sBAAsB,CAAC;EACpE,IAAID,WAAW,EAAE;IACfE,MAAM,CAACF,WAAW,GAAGA,WAAW;EAClC;EAEA,MAAMG,QAAQ,GAAGP,WAAW,CAACK,YAAY,CAAC,mBAAmB,CAAC;EAC9D,IAAIE,QAAQ,IAAIA,QAAQ,KAAK,YAAY,EAAE;IACzCC,uBAAuB,GAAI,GAAED,QAAS,GAAE,CAAC,CAAC;EAC5C,CAAC,MAAM,IAAIH,WAAW,EAAE;IACtBI,uBAAuB,GAAI,GAAEJ,WAAY,GAAE,CAAC,CAAC;EAC/C;EAEA,MAAMK,KAAK,GAAGT,WAAW,CAACK,YAAY,CAAC,gBAAgB,CAAC;EACxD,IAAII,KAAK,EAAE;IACTC,iBAAiB,GAAGD,KAAK,CAAC,CAAC;EAC7B;AACF,CAAC,EAAE,CAAC"}
@@ -39,7 +39,6 @@ const rehydratedValue = (stateKey, stateValue) => {
39
39
  if (Array.isArray(stateValue)) {
40
40
  return (0, _map.default)(stateValue).call(stateValue, stateItem => rehydrate(stateItem)); // NOSONAR
41
41
  }
42
-
43
42
  if (isModularUIModelData(stateValue)) {
44
43
  return recreateModel(stateValue);
45
44
  }
@@ -56,7 +55,6 @@ const rehydratedValue = (stateKey, stateValue) => {
56
55
  if (stateValue !== null && typeof stateValue === "object") {
57
56
  return rehydrate(stateValue); // NOSONAR
58
57
  }
59
-
60
58
  return stateValue;
61
59
  };
62
60
 
@@ -1 +1 @@
1
- {"version":3,"file":"rehydrate.js","names":["_objects","require","_Locales","_interopRequireDefault","_resolveModel","_ModularUIResponse","recreateModel","data","modelData","ModularUIResponse","rehydrate","Model","resolveModel","_context","model","childModels","_map","default","call","childModel","addChildModels","isModularUIModelData","has","rehydratedValue","stateKey","stateValue","Array","isArray","stateItem","locales","Locales","locale","noFurtherRehydration","_includes","state","mappedState","_keys","forEach","_default","exports"],"sources":["../../src/react-client/rehydrate.js"],"sourcesContent":["// @flow\nimport { has } from \"../utils/helpers/objects\";\nimport Locales from \"../i18n/Locales\";\n\nimport resolveModel from \"../models/resolveModel\";\n\nimport ModularUIResponse from \"../modularui/ModularUIResponse\";\n\n/**\n * Recreate a model from dehydrated data obtained after a server render.\n */\nconst recreateModel = (data: Object) => {\n const modelData = ModularUIResponse.rehydrate(data);\n\n const Model = resolveModel(modelData);\n\n if (Model) {\n const model = new Model(modelData);\n model.rehydrate(data);\n\n const childModels = data.childModels.map((childModel) =>\n recreateModel(childModel),\n );\n\n model.addChildModels(childModels);\n\n return model;\n }\n\n return data;\n};\n\n/**\n */\nconst isModularUIModelData = (data: any) =>\n data != null &&\n typeof data === \"object\" &&\n has(data, \"data\") &&\n has(data, \"contributions\");\n\n/**\n */\nconst rehydratedValue = (stateKey: string, stateValue: any) => {\n if (Array.isArray(stateValue)) {\n return stateValue.map((stateItem) => rehydrate(stateItem)); // NOSONAR\n }\n\n if (isModularUIModelData(stateValue)) {\n return recreateModel(stateValue);\n }\n\n if (\n stateKey === \"i18n\" &&\n has(stateValue, \"locales\") &&\n has(stateValue, \"locale\")\n ) {\n return {\n locales: Locales.rehydrate(stateValue.locales),\n locale: stateValue?.locale,\n };\n }\n\n const noFurtherRehydration = [\"preferences\", \"router\", \"progressindicator\"];\n if (noFurtherRehydration.includes(stateKey)) {\n return stateValue;\n }\n\n if (stateValue !== null && typeof stateValue === \"object\") {\n return rehydrate(stateValue); // NOSONAR\n }\n\n return stateValue;\n};\n\n/**\n * Maps dehydrated state to models that can be used to rehydrated the application.\n */\nconst rehydrate = (state: Object): { ... } => {\n const mappedState: { [string]: any } = {};\n\n Object.keys(state).forEach((stateKey) => {\n const stateValue = state[stateKey];\n mappedState[stateKey] = rehydratedValue(stateKey, stateValue);\n });\n\n return mappedState;\n};\n\nexport default rehydrate;\n"],"mappings":"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"}
1
+ {"version":3,"file":"rehydrate.js","names":["_objects","require","_Locales","_interopRequireDefault","_resolveModel","_ModularUIResponse","recreateModel","data","modelData","ModularUIResponse","rehydrate","Model","resolveModel","_context","model","childModels","_map","default","call","childModel","addChildModels","isModularUIModelData","has","rehydratedValue","stateKey","stateValue","Array","isArray","stateItem","locales","Locales","locale","noFurtherRehydration","_includes","state","mappedState","_keys","forEach","_default","exports"],"sources":["../../src/react-client/rehydrate.js"],"sourcesContent":["// @flow\nimport { has } from \"../utils/helpers/objects\";\nimport Locales from \"../i18n/Locales\";\n\nimport resolveModel from \"../models/resolveModel\";\n\nimport ModularUIResponse from \"../modularui/ModularUIResponse\";\n\n/**\n * Recreate a model from dehydrated data obtained after a server render.\n */\nconst recreateModel = (data: Object) => {\n const modelData = ModularUIResponse.rehydrate(data);\n\n const Model = resolveModel(modelData);\n\n if (Model) {\n const model = new Model(modelData);\n model.rehydrate(data);\n\n const childModels = data.childModels.map((childModel) =>\n recreateModel(childModel),\n );\n\n model.addChildModels(childModels);\n\n return model;\n }\n\n return data;\n};\n\n/**\n */\nconst isModularUIModelData = (data: any) =>\n data != null &&\n typeof data === \"object\" &&\n has(data, \"data\") &&\n has(data, \"contributions\");\n\n/**\n */\nconst rehydratedValue = (stateKey: string, stateValue: any) => {\n if (Array.isArray(stateValue)) {\n return stateValue.map((stateItem) => rehydrate(stateItem)); // NOSONAR\n }\n\n if (isModularUIModelData(stateValue)) {\n return recreateModel(stateValue);\n }\n\n if (\n stateKey === \"i18n\" &&\n has(stateValue, \"locales\") &&\n has(stateValue, \"locale\")\n ) {\n return {\n locales: Locales.rehydrate(stateValue.locales),\n locale: stateValue?.locale,\n };\n }\n\n const noFurtherRehydration = [\"preferences\", \"router\", \"progressindicator\"];\n if (noFurtherRehydration.includes(stateKey)) {\n return stateValue;\n }\n\n if (stateValue !== null && typeof stateValue === \"object\") {\n return rehydrate(stateValue); // NOSONAR\n }\n\n return stateValue;\n};\n\n/**\n * Maps dehydrated state to models that can be used to rehydrated the application.\n */\nconst rehydrate = (state: Object): { ... } => {\n const mappedState: { [string]: any } = {};\n\n Object.keys(state).forEach((stateKey) => {\n const stateValue = state[stateKey];\n mappedState[stateKey] = rehydratedValue(stateKey, stateValue);\n });\n\n return mappedState;\n};\n\nexport default rehydrate;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beinformed/ui",
3
- "version": "1.38.0",
3
+ "version": "1.40.0",
4
4
  "description": "Toolbox for be informed javascript layouts",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "bugs": "http://support.beinformed.com",
@@ -82,9 +82,9 @@
82
82
  "styled-components": "^5.0.0"
83
83
  },
84
84
  "dependencies": {
85
- "@babel/runtime-corejs3": "^7.23.4",
85
+ "@babel/runtime-corejs3": "^7.23.8",
86
86
  "big.js": "^6.2.1",
87
- "date-fns": "^2.30.0",
87
+ "date-fns": "^3.3.1",
88
88
  "deepmerge": "^4.3.1",
89
89
  "dequal": "^2.0.3",
90
90
  "file-size": "^1.0.0",
@@ -99,31 +99,31 @@
99
99
  },
100
100
  "devDependencies": {
101
101
  "@babel/cli": "^7.23.4",
102
- "@babel/core": "^7.23.3",
102
+ "@babel/core": "^7.23.7",
103
103
  "@babel/eslint-parser": "^7.23.3",
104
- "@babel/eslint-plugin": "^7.22.10",
104
+ "@babel/eslint-plugin": "^7.23.5",
105
105
  "@babel/plugin-proposal-class-properties": "^7.18.6",
106
106
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
107
- "@babel/plugin-transform-runtime": "^7.23.4",
108
- "@babel/preset-env": "^7.23.3",
107
+ "@babel/plugin-transform-runtime": "^7.23.7",
108
+ "@babel/preset-env": "^7.23.8",
109
109
  "@babel/preset-flow": "^7.23.3",
110
110
  "@babel/preset-react": "^7.23.3",
111
- "@commitlint/cli": "^18.4.3",
112
- "@commitlint/config-conventional": "^18.4.3",
111
+ "@commitlint/cli": "^18.5.0",
112
+ "@commitlint/config-conventional": "^18.5.0",
113
113
  "@testing-library/react": "^14.1.2",
114
- "auditjs": "^4.0.41",
114
+ "auditjs": "^4.0.45",
115
115
  "babel-jest": "^29.7.0",
116
116
  "babel-plugin-styled-components": "^2.1.4",
117
117
  "cherry-pick": "^0.5.0",
118
- "commit-and-tag-version": "^12.0.0",
118
+ "commit-and-tag-version": "^12.2.0",
119
119
  "cross-env": "^7.0.3",
120
120
  "documentation": "^14.0.2",
121
- "eslint": "^8.54.0",
122
- "eslint-config-prettier": "^9.0.0",
121
+ "eslint": "^8.56.0",
122
+ "eslint-config-prettier": "^9.1.0",
123
123
  "eslint-plugin-babel": "^5.3.1",
124
- "eslint-plugin-ft-flow": "^3.0.1",
125
- "eslint-plugin-import": "^2.29.0",
126
- "eslint-plugin-jest": "^27.6.0",
124
+ "eslint-plugin-ft-flow": "^3.0.2",
125
+ "eslint-plugin-import": "^2.29.1",
126
+ "eslint-plugin-jest": "^27.6.3",
127
127
  "eslint-plugin-jsdoc": "^46.9.0",
128
128
  "eslint-plugin-react": "^7.33.2",
129
129
  "eslint-plugin-react-hooks": "^4.5.0",
@@ -141,7 +141,7 @@
141
141
  "jscodeshift": "^0.15.1",
142
142
  "lint-staged": "^13.2.3",
143
143
  "polished": "^4.0.0",
144
- "prettier": "^3.1.0",
144
+ "prettier": "^3.2.4",
145
145
  "react": "^18.0.0",
146
146
  "react-dom": "^18.0.0",
147
147
  "react-helmet-async": "^1.0.0",
@@ -102,9 +102,7 @@ export default class AttributeModel
102
102
  this._isResult = this.getData("isResult", false);
103
103
 
104
104
  this._mandatory =
105
- this.layouthint.has(MANDATORY) ||
106
- this.contributions.mandatory ||
107
- this.contributions.nullable === false; // nullable must be explicitly false to make this mandatory
105
+ this.layouthint.has(MANDATORY) || this.contributions.mandatory;
108
106
 
109
107
  this._links = new LinkCollection(
110
108
  this.data._links,
@@ -265,9 +265,6 @@ describe("attributeModel", () => {
265
265
  attribute = new AttributeModel({}, { mandatory: false });
266
266
  expect(attribute.mandatory).toBe(false);
267
267
 
268
- attribute = new AttributeModel({}, { mandatory: false, nullable: false });
269
- expect(attribute.mandatory).toBe(true);
270
-
271
268
  attribute = new AttributeModel(
272
269
  {},
273
270
  { mandatory: false, layouthint: ["mandatory"] },
@@ -206,6 +206,7 @@ export default class ContentModel extends ResourceModel {
206
206
  if (relatedConceptsLink) {
207
207
  const { href } = relatedConceptsLink;
208
208
  href.addParameter("entryDate", this.entryDate);
209
+ href.setReferenceHash(this.referenceHash);
209
210
  return href;
210
211
  }
211
212
 
@@ -121,7 +121,9 @@ export default class SubSectionModel extends BaseModel {
121
121
  const relatedConceptsLink = this.links.getLinkByKey("relatedConcepts");
122
122
 
123
123
  if (relatedConceptsLink) {
124
- return relatedConceptsLink.href;
124
+ const { href } = relatedConceptsLink;
125
+ href.setReferenceHash(this.referenceHash);
126
+ return href;
125
127
  }
126
128
 
127
129
  return null;
@@ -131,7 +133,6 @@ export default class SubSectionModel extends BaseModel {
131
133
  */
132
134
  get referenceHash(): number {
133
135
  const selfhref = this.selfhref || new Href();
134
-
135
136
  return createHashFromHref(selfhref);
136
137
  }
137
138
 
@@ -176,6 +176,9 @@ describe("contentmodel", () => {
176
176
  expect(firstSubSection.relatedConceptsHref.href.toString()).toBe(
177
177
  "/content/Incident/Business design/Content/Blaastest subsections.formalsource/Pass/relatedConcepts",
178
178
  );
179
+ expect(firstSubSection.relatedConceptsHref.getReferenceHash()).toBe(
180
+ 145842294,
181
+ );
179
182
  expect(firstSubSection.referenceHash).toBe(145842294);
180
183
  });
181
184
  });
@@ -28,6 +28,7 @@ class Href {
28
28
  _resourcetype: string = "";
29
29
  _method: $Keys<typeof HTTP_METHODS> = HTTP_METHODS.GET;
30
30
  _state: any = null;
31
+ _referenceHash: ?number;
31
32
 
32
33
  /**
33
34
  * Create a Href
@@ -451,6 +452,18 @@ class Href {
451
452
  return this.absolutepath.startsWith(`${getBasePath()}${CONTENT_PATH}`);
452
453
  }
453
454
 
455
+ /**
456
+ */
457
+ getReferenceHash(): ?number {
458
+ return this._referenceHash;
459
+ }
460
+
461
+ /**
462
+ */
463
+ setReferenceHash(referenceHash: number) {
464
+ this._referenceHash = referenceHash;
465
+ }
466
+
454
467
  /**
455
468
  * Returns a complete url from the Href
456
469
  */
@@ -223,4 +223,19 @@ export namespace LayoutHintConfiguration {
223
223
  let component_15: string[];
224
224
  export { component_15 as component };
225
225
  }
226
+ namespace HIDE_IN_USER_INTERFACE {
227
+ let hint_16: string;
228
+ export { hint_16 as hint };
229
+ export namespace description_16 {
230
+ let NL_16: string;
231
+ export { NL_16 as NL };
232
+ let EN_16: string;
233
+ export { EN_16 as EN };
234
+ }
235
+ export { description_16 as description };
236
+ let link_11: string;
237
+ export { link_11 as link };
238
+ let component_16: string[];
239
+ export { component_16 as component };
240
+ }
226
241
  }
@@ -66,6 +66,10 @@ export const CASEVIEW_LINK: string;
66
66
  * Layout-hint: Set on configuration of instruments to show content in a popover on a label
67
67
  */
68
68
  export const RENDER_SECTION_LABEL: "render-section-label";
69
+ /**
70
+ * Layout-hint: Hide a link to a component
71
+ */
72
+ export const HIDE_IN_USER_INTERFACE: string;
69
73
  export function getLayoutHintConfiguration(): Object;
70
74
  export default getHint;
71
75
  /**
@@ -13,7 +13,7 @@ export default class ActionModel extends BaseModel {
13
13
  get isDisabled(): boolean;
14
14
  /**
15
15
  */
16
- set selfhref(arg: Href);
16
+ set selfhref(href: Href);
17
17
  /**
18
18
  * retrieve href of action
19
19
  */
@@ -39,7 +39,7 @@ export default class ActionModel extends BaseModel {
39
39
  get fields(): AttributeType[];
40
40
  /**
41
41
  */
42
- set fieldCollection(arg: AttributeCollection);
42
+ set fieldCollection(fieldCollection: AttributeCollection);
43
43
  /**
44
44
  * Retrieve the field collection
45
45
  */
@@ -72,7 +72,7 @@ export default class ActionModel extends BaseModel {
72
72
  get processStatus(): ProcessStatusSettingsModel;
73
73
  /**
74
74
  */
75
- set icon(arg: string);
75
+ set icon(icon: string);
76
76
  /**
77
77
  */
78
78
  get icon(): string;
@@ -6,7 +6,7 @@ export default class ApplicationModel extends ResourceModel {
6
6
  /**
7
7
  * Set the userservices for this application
8
8
  */
9
- set userServices(arg: UserServicesModel);
9
+ set userServices(model: UserServicesModel);
10
10
  /**
11
11
  * returns the userservices configured for this application
12
12
  */
@@ -7,7 +7,7 @@ declare class AttributeCollection extends ResourceCollection<AttributeType, any>
7
7
  /**
8
8
  * Replace attributes with a new array of attributes
9
9
  */
10
- set attributes(arg: AttributeType[]);
10
+ set attributes(attributes: AttributeType[]);
11
11
  /**
12
12
  * Retrieve all attributes in this collection<br>
13
13
  * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property
@@ -40,7 +40,7 @@ export default class AttributeModel extends BaseModel {
40
40
  /**
41
41
  * Set the concept
42
42
  */
43
- set concept(arg: ConceptDetailModel);
43
+ set concept(concept: ConceptDetailModel);
44
44
  /**
45
45
  * Get concept information
46
46
  */
@@ -51,7 +51,7 @@ export default class AttributeModel extends BaseModel {
51
51
  get key(): string;
52
52
  /**
53
53
  */
54
- set parentKey(arg: string);
54
+ set parentKey(parentKey: string);
55
55
  /**
56
56
  */
57
57
  get parentKey(): string;
@@ -66,14 +66,14 @@ export default class AttributeModel extends BaseModel {
66
66
  /**
67
67
  * Set the label of this attribute
68
68
  */
69
- set label(arg: string);
69
+ set label(label: string);
70
70
  /**
71
71
  * Getting the label of the attribute
72
72
  */
73
73
  get label(): string;
74
74
  /**
75
75
  */
76
- set hasContentConfiguration(arg: boolean);
76
+ set hasContentConfiguration(hasContentConfiguration: boolean);
77
77
  /**
78
78
  */
79
79
  get hasContentConfiguration(): boolean;
@@ -107,7 +107,7 @@ export default class AttributeModel extends BaseModel {
107
107
  /**
108
108
  * Set reference date for concepts and content
109
109
  */
110
- set referenceDate(arg: ISO_DATE);
110
+ set referenceDate(date: ISO_DATE);
111
111
  /**
112
112
  * Retrieve reference date of attribute which can be used as entryDate for content
113
113
  * to get information in correct time version
@@ -124,7 +124,7 @@ export default class AttributeModel extends BaseModel {
124
124
  /**
125
125
  * Sets the input value to the value entered by the user
126
126
  */
127
- set inputvalue(arg: string);
127
+ set inputvalue(value: string);
128
128
  /**
129
129
  * Returns the value as entered by the user. This can differ from the internal iso value that is stored
130
130
  */
@@ -138,7 +138,7 @@ export default class AttributeModel extends BaseModel {
138
138
  /**
139
139
  * Setting a value in the element
140
140
  */
141
- set value(arg: any);
141
+ set value(value: any);
142
142
  /**
143
143
  * Getting the value of the attribute
144
144
  */
@@ -175,7 +175,7 @@ export default class AttributeModel extends BaseModel {
175
175
  /**
176
176
  * Set mandatory status of attribute
177
177
  */
178
- set mandatory(arg: boolean);
178
+ set mandatory(mandatory: boolean);
179
179
  /**
180
180
  * Getting mandatory status of attribute
181
181
  */
@@ -185,19 +185,19 @@ export default class AttributeModel extends BaseModel {
185
185
  get configuredMandatory(): boolean;
186
186
  /**
187
187
  */
188
- set readonly(arg: boolean);
188
+ set readonly(readonly: boolean);
189
189
  /**
190
190
  */
191
191
  get readonly(): boolean;
192
192
  /**
193
193
  */
194
- set disabled(arg: boolean);
194
+ set disabled(disabled: boolean);
195
195
  /**
196
196
  */
197
197
  get disabled(): boolean;
198
198
  /**
199
199
  */
200
- set isResult(arg: boolean);
200
+ set isResult(isResult: boolean);
201
201
  /**
202
202
  */
203
203
  get isResult(): boolean;
@@ -326,7 +326,7 @@ export default class AttributeModel extends BaseModel {
326
326
  /**
327
327
  * Indicate if attribute is editable
328
328
  */
329
- set isEditable(arg: boolean);
329
+ set isEditable(isEditable: boolean);
330
330
  /**
331
331
  * Retrieve if attribute is editable
332
332
  */
@@ -337,7 +337,7 @@ export default class AttributeModel extends BaseModel {
337
337
  get isVisible(): boolean;
338
338
  /**
339
339
  */
340
- set isHidden(arg: boolean);
340
+ set isHidden(isHidden: boolean);
341
341
  /**
342
342
  */
343
343
  get isHidden(): boolean;
@@ -363,7 +363,7 @@ export default class AttributeModel extends BaseModel {
363
363
  }>;
364
364
  /**
365
365
  */
366
- set layoutHintRules(arg: LayoutHintRuleCollection);
366
+ set layoutHintRules(rules: LayoutHintRuleCollection);
367
367
  /**
368
368
  */
369
369
  get layoutHintRules(): LayoutHintRuleCollection;
@@ -8,7 +8,7 @@ export default class AttributeSetModel extends BaseModel {
8
8
  _attributeCollection: AttributeCollection;
9
9
  /**
10
10
  */
11
- set key(arg: string);
11
+ set key(key: string);
12
12
  /**
13
13
  */
14
14
  get key(): string;
@@ -18,11 +18,18 @@ export default class AttributeSetModel extends BaseModel {
18
18
  /**
19
19
  * Set the attributes with a new AttributeCollection
20
20
  */
21
- set attributeCollection(arg: AttributeCollection);
21
+ set attributeCollection(collection: AttributeCollection);
22
22
  /**
23
23
  * Retrieve attribute collection
24
24
  */
25
25
  get attributeCollection(): AttributeCollection;
26
+ /**
27
+ */
28
+ createChildAttributeSetModel(key: string, dataObject: Object, index?: number): AttributeSetModel;
29
+ /**
30
+ * Retrieve child {@code AttributeSetModel}s
31
+ */
32
+ getChildAttributeSets(): Array<AttributeSetModel>;
26
33
  }
27
34
  import BaseModel from "../base/BaseModel";
28
35
  import AttributeCollection from "./AttributeCollection";
@@ -7,7 +7,7 @@ export default class BooleanAttributeModel extends AttributeModel {
7
7
  /**
8
8
  * Set reference date for concepts and content
9
9
  */
10
- set referenceDate(arg: string);
10
+ set referenceDate(date: string);
11
11
  /**
12
12
  * Retrieve reference date of attribute which can be used as entryDate for content
13
13
  */
@@ -10,7 +10,7 @@ declare class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceA
10
10
  _sortOptions: boolean;
11
11
  /**
12
12
  */
13
- set sortOptions(arg: boolean);
13
+ set sortOptions(sortOptions: boolean);
14
14
  /**
15
15
  */
16
16
  get sortOptions(): boolean;
@@ -63,7 +63,7 @@ declare class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceA
63
63
  setReferenceDate(date: ISO_DATE): Array<ChoiceAttributeOptionModel>;
64
64
  /**
65
65
  */
66
- set referenceDate(arg: ISO_DATE);
66
+ set referenceDate(date: ISO_DATE);
67
67
  /**
68
68
  */
69
69
  addHeaders(headers: Array<Object>): void;