@beinformed/ui 1.18.3 → 1.18.6

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 (236) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/esm/constants/Constants.js +1 -0
  3. package/esm/constants/Constants.js.map +1 -1
  4. package/esm/constants/Settings.js +10 -3
  5. package/esm/constants/Settings.js.map +1 -1
  6. package/esm/hooks/useAuthentication.js +7 -50
  7. package/esm/hooks/useAuthentication.js.map +1 -1
  8. package/esm/i18n/Locales.js.map +1 -1
  9. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  10. package/esm/models/form/FormModel.js +3 -1
  11. package/esm/models/form/FormModel.js.map +1 -1
  12. package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
  13. package/esm/models/tab/TabModel.js.map +1 -1
  14. package/esm/modularui/Authenticate.js +100 -21
  15. package/esm/modularui/Authenticate.js.map +1 -1
  16. package/esm/redux/actions/Preferences.js +2 -2
  17. package/esm/redux/actions/Preferences.js.map +1 -1
  18. package/esm/redux/actions/SignOut.js +6 -2
  19. package/esm/redux/actions/SignOut.js.map +1 -1
  20. package/esm/redux/connectors/SignIn.js +3 -2
  21. package/esm/redux/connectors/SignIn.js.map +1 -1
  22. package/esm/redux/connectors/SignOut.js +4 -1
  23. package/esm/redux/connectors/SignOut.js.map +1 -1
  24. package/esm/redux/reducers/AuthReducer.js +0 -10
  25. package/esm/redux/reducers/AuthReducer.js.map +1 -1
  26. package/esm/redux/types.js.map +1 -1
  27. package/esm/utils/helpers/checkResource.js +2 -0
  28. package/esm/utils/helpers/checkResource.js.map +1 -1
  29. package/lib/constants/Constants.js +3 -1
  30. package/lib/constants/Constants.js.flow +1 -0
  31. package/lib/constants/Constants.js.map +1 -1
  32. package/lib/constants/LayoutHints.js.map +1 -1
  33. package/lib/constants/Settings.js +13 -3
  34. package/lib/constants/Settings.js.flow +8 -3
  35. package/lib/constants/Settings.js.map +1 -1
  36. package/lib/exceptions/FetchException.js.map +1 -1
  37. package/lib/hooks/__tests__/useAuthentication.spec.js.flow +15 -1
  38. package/lib/hooks/useAllFormsOnModel.js.map +1 -1
  39. package/lib/hooks/useAuthentication.js +7 -55
  40. package/lib/hooks/useAuthentication.js.flow +4 -37
  41. package/lib/hooks/useAuthentication.js.map +1 -1
  42. package/lib/hooks/useContent.js.map +1 -1
  43. package/lib/hooks/useDeepCompareEffect.js.map +1 -1
  44. package/lib/hooks/useForm.js.map +1 -1
  45. package/lib/hooks/useI18n.js.map +1 -1
  46. package/lib/hooks/useModal.js.map +1 -1
  47. package/lib/hooks/useModelCatalog.js.map +1 -1
  48. package/lib/hooks/useModels.js.map +1 -1
  49. package/lib/hooks/useModularUI.js.map +1 -1
  50. package/lib/hooks/useModularUIBasic.js.map +1 -1
  51. package/lib/hooks/useModularUIModel.js.map +1 -1
  52. package/lib/hooks/useModularUIRequest.js.map +1 -1
  53. package/lib/hooks/useNotification.js.map +1 -1
  54. package/lib/hooks/usePreference.js.map +1 -1
  55. package/lib/hooks/useProgressIndicator.js.map +1 -1
  56. package/lib/hooks/useRouter.js.map +1 -1
  57. package/lib/i18n/Locale.js.map +1 -1
  58. package/lib/i18n/Locales.js.map +1 -1
  59. package/lib/i18n/Message.js.map +1 -1
  60. package/lib/i18n/withMessage.js.map +1 -1
  61. package/lib/models/actions/ActionModel.js.map +1 -1
  62. package/lib/models/application/ApplicationModel.js.map +1 -1
  63. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  64. package/lib/models/attributes/AttributeContent.js.map +1 -1
  65. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  66. package/lib/models/attributes/AttributeModel.js.map +1 -1
  67. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  68. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  69. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  70. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  71. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  72. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  73. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  74. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  75. package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
  76. package/lib/models/attributes/MemoAttributeModel.js.map +1 -1
  77. package/lib/models/attributes/MoneyAttributeModel.js.map +1 -1
  78. package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
  79. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  80. package/lib/models/attributes/XMLAttributeModel.js.map +1 -1
  81. package/lib/models/attributes/_createAttribute.js.map +1 -1
  82. package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  83. package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  84. package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  85. package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  86. package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  87. package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  88. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  89. package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  90. package/lib/models/base/BaseCollection.js.map +1 -1
  91. package/lib/models/base/BaseModel.js.map +1 -1
  92. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  93. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  94. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  95. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  96. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  97. package/lib/models/content/ContentLinkModel.js.map +1 -1
  98. package/lib/models/content/ContentTOCModel.js.map +1 -1
  99. package/lib/models/content/SectionModel.js.map +1 -1
  100. package/lib/models/content/SubSectionModel.js.map +1 -1
  101. package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  102. package/lib/models/detail/DetailModel.js.map +1 -1
  103. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  104. package/lib/models/form/FormModel.js +3 -1
  105. package/lib/models/form/FormModel.js.flow +1 -1
  106. package/lib/models/form/FormModel.js.map +1 -1
  107. package/lib/models/form/FormObjectModel.js.map +1 -1
  108. package/lib/models/href/Href.js.map +1 -1
  109. package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
  110. package/lib/models/links/LinkCollection.js.map +1 -1
  111. package/lib/models/links/LinkModel.js.map +1 -1
  112. package/lib/models/list/ListDetailModel.js.map +1 -1
  113. package/lib/models/list/ListHeaderModel.js.map +1 -1
  114. package/lib/models/list/ListItemCollection.js.map +1 -1
  115. package/lib/models/list/ListModel.js.map +1 -1
  116. package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
  117. package/lib/models/paging/PagingModel.js.map +1 -1
  118. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  119. package/lib/models/parameter/Parameter.js.map +1 -1
  120. package/lib/models/process/ProcessStatusSettingsModel.js.map +1 -1
  121. package/lib/models/resolveModel.js.map +1 -1
  122. package/lib/models/sorting/SortingModel.js.map +1 -1
  123. package/lib/models/tab/TabModel.js.map +1 -1
  124. package/lib/models/user/UserProfileModel.js.map +1 -1
  125. package/lib/models/user/UserServicesModel.js.map +1 -1
  126. package/lib/modularui/Authenticate.js +102 -21
  127. package/lib/modularui/Authenticate.js.flow +75 -20
  128. package/lib/modularui/Authenticate.js.map +1 -1
  129. package/lib/modularui/ModularUIRequest.js.map +1 -1
  130. package/lib/modularui/ModularUIResponse.js.map +1 -1
  131. package/lib/react/ErrorBoundaryFallback.js.map +1 -1
  132. package/lib/react-client/client.js.map +1 -1
  133. package/lib/react-client/rehydrate.js.map +1 -1
  134. package/lib/react-server/__tests__/serverUtil.spec.js.flow +6 -4
  135. package/lib/react-server/createSSRComplete.js.map +1 -1
  136. package/lib/react-server/renderSSRComplete.js.map +1 -1
  137. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  138. package/lib/react-server/serverNoSSR.js.map +1 -1
  139. package/lib/react-server/serverSSR.js.map +1 -1
  140. package/lib/react-server/serverUtil.js.map +1 -1
  141. package/lib/react-theme/ThemeProvider.js.map +1 -1
  142. package/lib/react-theme/createTheme.js.map +1 -1
  143. package/lib/react-theme/useTheme.js.map +1 -1
  144. package/lib/react-theme/utils/background.js.map +1 -1
  145. package/lib/react-theme/utils/colors.js.map +1 -1
  146. package/lib/react-theme/utils/contrast.js.map +1 -1
  147. package/lib/react-theme/utils/corners.js.map +1 -1
  148. package/lib/react-theme/utils/spacers.js.map +1 -1
  149. package/lib/react-theme/utils/themeProps.js.map +1 -1
  150. package/lib/redux/_i18n/actions.js.map +1 -1
  151. package/lib/redux/_i18n/reducer.js.map +1 -1
  152. package/lib/redux/_modularui/actions.js.map +1 -1
  153. package/lib/redux/_modularui/connector.js.map +1 -1
  154. package/lib/redux/_modularui/middleware.js.map +1 -1
  155. package/lib/redux/_modularui/modularuiUtils.js.map +1 -1
  156. package/lib/redux/_modularui/reducer.js.map +1 -1
  157. package/lib/redux/_modularui/selectors.js.map +1 -1
  158. package/lib/redux/_modularui/withModularUI.js.map +1 -1
  159. package/lib/redux/_router/connectors.js.map +1 -1
  160. package/lib/redux/actions/Application.js.map +1 -1
  161. package/lib/redux/actions/Authorization.js.map +1 -1
  162. package/lib/redux/actions/Error.js.map +1 -1
  163. package/lib/redux/actions/Form.js.map +1 -1
  164. package/lib/redux/actions/FormAttributeSet.js.map +1 -1
  165. package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
  166. package/lib/redux/actions/FormAutosave.js.map +1 -1
  167. package/lib/redux/actions/FormAutosubmit.js.map +1 -1
  168. package/lib/redux/actions/FormValidations.js.map +1 -1
  169. package/lib/redux/actions/Notification.js.map +1 -1
  170. package/lib/redux/actions/Preferences.js +1 -1
  171. package/lib/redux/actions/Preferences.js.flow +7 -3
  172. package/lib/redux/actions/Preferences.js.map +1 -1
  173. package/lib/redux/actions/SignIn.js.map +1 -1
  174. package/lib/redux/actions/SignOut.js +6 -1
  175. package/lib/redux/actions/SignOut.js.flow +9 -5
  176. package/lib/redux/actions/SignOut.js.map +1 -1
  177. package/lib/redux/connectors/Application.js.map +1 -1
  178. package/lib/redux/connectors/Breadcrumb.js.map +1 -1
  179. package/lib/redux/connectors/CaseView.js.map +1 -1
  180. package/lib/redux/connectors/ConceptDetail.js.map +1 -1
  181. package/lib/redux/connectors/ContentBrowser.js.map +1 -1
  182. package/lib/redux/connectors/ContentDetail.js.map +1 -1
  183. package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
  184. package/lib/redux/connectors/Form.js.map +1 -1
  185. package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
  186. package/lib/redux/connectors/ListDetail.js.map +1 -1
  187. package/lib/redux/connectors/Modal.js.map +1 -1
  188. package/lib/redux/connectors/ModelCatalog.js.map +1 -1
  189. package/lib/redux/connectors/Notification.js.map +1 -1
  190. package/lib/redux/connectors/PanelRenderer.js.map +1 -1
  191. package/lib/redux/connectors/Preferences.js.map +1 -1
  192. package/lib/redux/connectors/Progress.js.map +1 -1
  193. package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
  194. package/lib/redux/connectors/QuickSearch.js.map +1 -1
  195. package/lib/redux/connectors/SignIn.js +3 -5
  196. package/lib/redux/connectors/SignIn.js.flow +1 -6
  197. package/lib/redux/connectors/SignIn.js.map +1 -1
  198. package/lib/redux/connectors/SignOut.js +5 -1
  199. package/lib/redux/connectors/SignOut.js.flow +2 -1
  200. package/lib/redux/connectors/SignOut.js.map +1 -1
  201. package/lib/redux/connectors/Tab.js.map +1 -1
  202. package/lib/redux/reducers/AuthReducer.js +0 -11
  203. package/lib/redux/reducers/AuthReducer.js.flow +0 -11
  204. package/lib/redux/reducers/AuthReducer.js.map +1 -1
  205. package/lib/redux/reducers/__tests__/AuthReducer.spec.js.flow +0 -9
  206. package/lib/redux/store/configureStore.js.map +1 -1
  207. package/lib/redux/types.js.flow +0 -1
  208. package/lib/redux/types.js.map +1 -1
  209. package/lib/utils/browser/Cookies.js.map +1 -1
  210. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  211. package/lib/utils/fetch/universalFetch.js.map +1 -1
  212. package/lib/utils/fetch/xhr.js.map +1 -1
  213. package/lib/utils/helpers/checkResource.js +2 -0
  214. package/lib/utils/helpers/checkResource.js.flow +3 -0
  215. package/lib/utils/helpers/checkResource.js.map +1 -1
  216. package/lib/utils/helpers/objects.js.map +1 -1
  217. package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
  218. package/lib/utils/helpers/text.js.map +1 -1
  219. package/lib/utils/number/formatValue.js.map +1 -1
  220. package/lib/utils/number/parseNumbers.js.map +1 -1
  221. package/package.json +22 -22
  222. package/src/constants/Constants.js +1 -0
  223. package/src/constants/Settings.js +8 -3
  224. package/src/hooks/__tests__/useAuthentication.spec.js +15 -1
  225. package/src/hooks/useAuthentication.js +4 -37
  226. package/src/models/form/FormModel.js +1 -1
  227. package/src/modularui/Authenticate.js +75 -20
  228. package/src/react-server/__tests__/serverUtil.spec.js +6 -4
  229. package/src/redux/actions/Preferences.js +7 -3
  230. package/src/redux/actions/SignOut.js +9 -5
  231. package/src/redux/connectors/SignIn.js +1 -6
  232. package/src/redux/connectors/SignOut.js +2 -1
  233. package/src/redux/reducers/AuthReducer.js +0 -11
  234. package/src/redux/reducers/__tests__/AuthReducer.spec.js +0 -9
  235. package/src/redux/types.js +0 -1
  236. package/src/utils/helpers/checkResource.js +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"NumberAttributeModel.js","names":["NumberAttributeModel","value","formatValue","getContribution","contributions","minimum","maximum","format","split","length","constraints","ConstraintCollection","add","NumberFormatConstraint","groupingSeparator","decimalSeparator","NumberGroupingConstraint","NumberBoundaryConstraint","minNumber","maxNumber","inputvalue","toString","getInputValue","_inputvalue","validate","outputNumber","isNaN","_value","Number","updateLastModification","layouthint","has","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","CASEVIEW_LINK","isHidden","ATTRIBUTE_WIDTH","SMALL","type","AttributeModel"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n return this.format && this.format.includes(\".\")\n ? this.format.split(\".\")[1].length\n : 0;\n }\n\n /**\n * Get unit text\n */\n get unit(): string {\n return this.getContribution(\"unit\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n * Add number constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(\n new NumberFormatConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format\n )\n );\n constraints.add(\n new NumberGroupingConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format\n )\n );\n constraints.add(\n new NumberBoundaryConstraint(\n this.minNumber,\n this.maxNumber,\n this.groupingSeparator,\n this.decimalSeparator,\n this.format\n )\n );\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatValue(value: ?number | ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n return formatValue(\n value,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator\n );\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (!isPlainObject(this.value)) {\n return this.formatValue(this.value);\n }\n\n return this.value;\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n this.validate(value);\n\n const outputNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n\n this.value = isNaN(outputNumber) ? null : parseNumberToString(outputNumber);\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): number | null {\n const value = this._value;\n\n return value == null || value === \"\" ? null : Number(value);\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): NumberAttributeModel {\n if (value === this.inputvalue) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n get isHidden(): boolean {\n return (\n super.isHidden ||\n this.layouthint.has(\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n CASEVIEW_LINK\n )\n );\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n super.isHidden = isHidden;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"NumberAttributeModel.js","names":["NumberAttributeModel","value","formatValue","getContribution","contributions","minimum","maximum","format","split","length","constraints","ConstraintCollection","add","NumberFormatConstraint","groupingSeparator","decimalSeparator","NumberGroupingConstraint","NumberBoundaryConstraint","minNumber","maxNumber","inputvalue","toString","isPlainObject","getInputValue","_inputvalue","validate","outputNumber","parseToNumber","isNaN","parseNumberToString","_value","Number","updateLastModification","layouthint","has","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","CASEVIEW_LINK","isHidden","ATTRIBUTE_WIDTH","SMALL","type","AttributeModel"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n return this.format && this.format.includes(\".\")\n ? this.format.split(\".\")[1].length\n : 0;\n }\n\n /**\n * Get unit text\n */\n get unit(): string {\n return this.getContribution(\"unit\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n * Add number constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(\n new NumberFormatConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format\n )\n );\n constraints.add(\n new NumberGroupingConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format\n )\n );\n constraints.add(\n new NumberBoundaryConstraint(\n this.minNumber,\n this.maxNumber,\n this.groupingSeparator,\n this.decimalSeparator,\n this.format\n )\n );\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatValue(value: ?number | ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n return formatValue(\n value,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator\n );\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (!isPlainObject(this.value)) {\n return this.formatValue(this.value);\n }\n\n return this.value;\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n this.validate(value);\n\n const outputNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n\n this.value = isNaN(outputNumber) ? null : parseNumberToString(outputNumber);\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): number | null {\n const value = this._value;\n\n return value == null || value === \"\" ? null : Number(value);\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): NumberAttributeModel {\n if (value === this.inputvalue) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n get isHidden(): boolean {\n return (\n super.isHidden ||\n this.layouthint.has(\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n CASEVIEW_LINK\n )\n );\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n super.isHidden = isHidden;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StringAttributeModel.js","names":["StringAttributeModel","attribute","attributeContributions","_placeholder","getContribution","value","formatValue","placeholder","layouthint","has","constraints","ConstraintCollection","isBSN","add","BSNConstraint","isIBAN","IBANConstraint","isZipcode","regexp","RegexConstraint","messageKey","defaultMessage","regex","isEmail","RegExp","regexpvalidationmessage","inputvalue","noFormat","removeFormat","groups","replace","match","join","length","substring","toUpperCase","toString","formatIBAN","formatZipcode","formatBSN","getInputValue","_inputvalue","validate","validateValue","updateLastModification","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","contributions","type","Array","isArray","AttributeModel"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: this.regexp,\n })\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n })\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n })\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length > 4) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n return value;\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n return value.replace(/\\.|\\s/g, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n\n this.value = value == null ? value : this.removeFormat(value);\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value);\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"StringAttributeModel.js","names":["StringAttributeModel","attribute","attributeContributions","_placeholder","getContribution","value","formatValue","placeholder","layouthint","has","constraints","ConstraintCollection","isBSN","add","BSNConstraint","isIBAN","IBANConstraint","isZipcode","regexp","RegexConstraint","messageKey","defaultMessage","regex","isEmail","RegExp","regexpvalidationmessage","inputvalue","noFormat","removeFormat","groups","replace","match","join","length","substring","toUpperCase","toString","formatIBAN","formatZipcode","formatBSN","getInputValue","_inputvalue","validate","validateValue","updateLastModification","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","contributions","type","Array","isArray","AttributeModel"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: this.regexp,\n })\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n })\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n })\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length > 4) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n return value;\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n return value.replace(/\\.|\\s/g, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n\n this.value = value == null ? value : this.removeFormat(value);\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value);\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"XMLAttributeModel.js","names":["XMLAttributeModel","constraints","ConstraintCollection","add","XMLConstraint","ATTRIBUTE_WIDTH","EXTRA_LARGE","contributions","layouthint","type","Array","isArray","StringAttributeModel"],"sources":["../../../src/models/attributes/XMLAttributeModel.js"],"sourcesContent":["// @flow\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport XMLConstraint from \"./input-constraints/XMLConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\n/**\n * XML attribute\n */\nexport default class XMLAttributeModel extends StringAttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"xml\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"xml\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"xml\";\n }\n\n /**\n * Retrieve number of rows to render\n */\n get rows(): number {\n return 10;\n }\n\n /**\n * Add constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(new XMLConstraint());\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;;;;;AAEA;AACA;AACA;IACqBA,iB;;;;;;;;;;;;;IAWnB;AACF;IACE,eAAmB;MACjB,OAAO,KAAP;IACD;IAED;AACF;AACA;;;;SACE,eAAmB;MACjB,OAAO,EAAP;IACD;IAED;AACF;AACA;;;;WACE,0BAAuC;MACrC,IAAMC,WAAW,GAAG,IAAIC,6BAAJ,EAApB;MAEAD,WAAW,CAACE,GAAZ,CAAgB,IAAIC,sBAAJ,EAAhB;MAEA,OAAOH,WAAP;IACD;IAED;AACF;;;;SACE,eAAmD;MACjD,OAAOI,2BAAgBC,WAAvB;IACD;;;;IAtCD;AACF;IACE,2BAAyBC,aAAzB,EAAyD;MACvD,IAAMC,UAAU,GAAGD,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAEC,UAAlC;MACA,OACED,aAAa,CAACE,IAAd,KAAuB,KAAvB,IACCC,KAAK,CAACC,OAAN,CAAcH,UAAd,KAA6B,uBAAAA,UAAU,MAAV,CAAAA,UAAU,EAAU,KAAV,CAF1C;IAID;;;EAT4CI,8B"}
1
+ {"version":3,"file":"XMLAttributeModel.js","names":["XMLAttributeModel","constraints","ConstraintCollection","add","XMLConstraint","ATTRIBUTE_WIDTH","EXTRA_LARGE","contributions","layouthint","type","Array","isArray","StringAttributeModel"],"sources":["../../../src/models/attributes/XMLAttributeModel.js"],"sourcesContent":["// @flow\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport XMLConstraint from \"./input-constraints/XMLConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\n/**\n * XML attribute\n */\nexport default class XMLAttributeModel extends StringAttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"xml\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"xml\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"xml\";\n }\n\n /**\n * Retrieve number of rows to render\n */\n get rows(): number {\n return 10;\n }\n\n /**\n * Add constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(new XMLConstraint());\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;;;;;AAEA;AACA;AACA;IACqBA,iB;;;;;;;;;;;;;IAWnB;AACF;IACE,eAAmB;MACjB,OAAO,KAAP;IACD;IAED;AACF;AACA;;;;SACE,eAAmB;MACjB,OAAO,EAAP;IACD;IAED;AACF;AACA;;;;WACE,0BAAuC;MACrC,IAAMC,WAAW,GAAG,IAAIC,6BAAJ,EAApB;MAEAD,WAAW,CAACE,GAAZ,CAAgB,IAAIC,sBAAJ,EAAhB;MAEA,OAAOH,WAAP;IACD;IAED;AACF;;;;SACE,eAAmD;MACjD,OAAOI,0BAAA,CAAgBC,WAAvB;IACD;;;;IAtCD;AACF;IACE,2BAAyBC,aAAzB,EAAyD;MACvD,IAAMC,UAAU,GAAGD,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAEC,UAAlC;MACA,OACED,aAAa,CAACE,IAAd,KAAuB,KAAvB,IACCC,KAAK,CAACC,OAAN,CAAcH,UAAd,KAA6B,uBAAAA,UAAU,MAAV,CAAAA,UAAU,EAAU,KAAV,CAF1C;IAID;;;EAT4CI,8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"_createAttribute.js","names":["getChildrenKeys","children","child","childKey","isComposite","type","key","dynamicschemaId","undefined","getAttributeModel","contributions","ATTRIBUTE_MODELS","ChoiceAttributeModel","BooleanAttributeModel","HelptextAttributeModel","LabelAttributeModel","XMLAttributeModel","MemoAttributeModel","StringAttributeModel","DatetimeAttributeModel","MoneyAttributeModel","NumberAttributeModel","PasswordAttributeModel","UploadAttributeModel","CompositeAttributeModel","CaptchaAttributeModel","model","isApplicableModel","updateContributions","data","Array","isArray","updateData","newData","createAttribute","updatedContributions","updatedData","Model","Error","childrenKeys","dataHelper","AttributeDataHelper","getData","attribute","LayoutHintRuleCollection","setLayoutHintRules"],"sources":["../../../src/models/attributes/_createAttribute.js"],"sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\nimport LayoutHintRuleCollection from \"./layouthint-rules/LayoutHintRuleCollection\";\n\nimport CaptchaAttributeModel from \"./CaptchaAttributeModel\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\nimport HelptextAttributeModel from \"./HelptextAttributeModel\";\nimport LabelAttributeModel from \"./LabelAttributeModel\";\nimport MemoAttributeModel from \"./MemoAttributeModel\";\nimport MoneyAttributeModel from \"./MoneyAttributeModel\";\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport PasswordAttributeModel from \"./PasswordAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport UploadAttributeModel from \"./UploadAttributeModel\";\nimport XMLAttributeModel from \"./XMLAttributeModel\";\nimport BooleanAttributeModel from \"./BooleanAttributeModel\";\n\nimport AttributeDataHelper from \"./AttributeDataHelper\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * @private\n */\nconst getChildrenKeys = (children: Array<Object>): Array<Object> => {\n if (children) {\n return children.map((child) => {\n const [childKey] = Object.keys(child);\n const isComposite =\n child[childKey].type === \"range\" ||\n child[childKey].type === \"composite\";\n\n return {\n key: childKey,\n dynamicschemaId: child[childKey]?.dynamicschemaId || undefined,\n children: isComposite ? getChildrenKeys(child[childKey]?.children) : [],\n };\n });\n }\n\n return [];\n};\n\n/**\n * @private\n */\nconst getAttributeModel = (contributions): ?Class<AttributeType> => {\n const ATTRIBUTE_MODELS = [\n ChoiceAttributeModel,\n BooleanAttributeModel,\n\n HelptextAttributeModel,\n LabelAttributeModel,\n\n XMLAttributeModel,\n MemoAttributeModel,\n StringAttributeModel,\n\n DatetimeAttributeModel,\n\n MoneyAttributeModel,\n NumberAttributeModel,\n PasswordAttributeModel,\n\n UploadAttributeModel,\n CompositeAttributeModel,\n CaptchaAttributeModel,\n ];\n\n return ATTRIBUTE_MODELS.find((model) =>\n model.isApplicableModel(contributions)\n );\n};\n\n/**\n * @private\n */\nconst updateContributions = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const isComposite =\n contributions.type === \"array\" &&\n has(contributions, \"children\") &&\n isPlainObject(data) &&\n Array.isArray(data[key]);\n\n return {\n ...contributions,\n type: isComposite ? \"composite\" : contributions.type,\n };\n};\n\n/**\n * @private\n */\nconst updateData = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const newData = cloneDeep(data);\n\n if (contributions.dynamicschemaId) {\n newData.dynamicschemaId = contributions.dynamicschemaId;\n }\n\n return newData;\n};\n\n/**\n * Create an attribute based on data and contributions\n */\nconst createAttribute = (\n key: string,\n data: Object | Array<Object>,\n contributions: Object\n): AttributeType => {\n const updatedContributions = updateContributions(key, data, contributions);\n const updatedData = updateData(key, data, contributions);\n\n const Model = getAttributeModel(updatedContributions);\n\n if (!Model) {\n throw new Error(\"Could not find model\");\n }\n\n const childrenKeys = getChildrenKeys(updatedContributions.children ?? []);\n const dataHelper = new AttributeDataHelper(\n updatedData,\n key,\n childrenKeys\n ).getData();\n\n const attribute = new Model(dataHelper, updatedContributions);\n\n return LayoutHintRuleCollection.setLayoutHintRules(attribute);\n};\n\nexport default createAttribute;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAIA;AACA;AACA;AACA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,QAAD,EAA4C;EAClE,IAAIA,QAAJ,EAAc;IACZ,OAAO,kBAAAA,QAAQ,MAAR,CAAAA,QAAQ,EAAK,UAACC,KAAD,EAAW;MAAA;;MAC7B,mBAAmB,mBAAYA,KAAZ,CAAnB;MAAA;MAAA,IAAOC,QAAP;;MACA,IAAMC,WAAW,GACfF,KAAK,CAACC,QAAD,CAAL,CAAgBE,IAAhB,KAAyB,OAAzB,IACAH,KAAK,CAACC,QAAD,CAAL,CAAgBE,IAAhB,KAAyB,WAF3B;MAIA,OAAO;QACLC,GAAG,EAAEH,QADA;QAELI,eAAe,EAAE,oBAAAL,KAAK,CAACC,QAAD,CAAL,oEAAiBI,eAAjB,KAAoCC,SAFhD;QAGLP,QAAQ,EAAEG,WAAW,GAAGJ,eAAe,qBAACE,KAAK,CAACC,QAAD,CAAN,qDAAC,iBAAiBF,QAAlB,CAAlB,GAAgD;MAHhE,CAAP;IAKD,CAXc,CAAf;EAYD;;EAED,OAAO,EAAP;AACD,CAjBD;AAmBA;AACA;AACA;;;AACA,IAAMQ,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,aAAD,EAA0C;EAClE,IAAMC,gBAAgB,GAAG,CACvBC,6BADuB,EAEvBC,8BAFuB,EAIvBC,+BAJuB,EAKvBC,4BALuB,EAOvBC,0BAPuB,EAQvBC,2BARuB,EASvBC,6BATuB,EAWvBC,+BAXuB,EAavBC,4BAbuB,EAcvBC,6BAduB,EAevBC,+BAfuB,EAiBvBC,6BAjBuB,EAkBvBC,gCAlBuB,EAmBvBC,8BAnBuB,CAAzB;EAsBA,OAAO,mBAAAd,gBAAgB,MAAhB,CAAAA,gBAAgB,EAAM,UAACe,KAAD;IAAA,OAC3BA,KAAK,CAACC,iBAAN,CAAwBjB,aAAxB,CAD2B;EAAA,CAAN,CAAvB;AAGD,CA1BD;AA4BA;AACA;AACA;;;AACA,IAAMkB,mBAAmB,GAAG,SAAtBA,mBAAsB,CAC1BtB,GAD0B,EAE1BuB,IAF0B,EAG1BnB,aAH0B,EAIf;EACX,IAAMN,WAAW,GACfM,aAAa,CAACL,IAAd,KAAuB,OAAvB,IACA,kBAAIK,aAAJ,EAAmB,UAAnB,CADA,IAEA,4BAAcmB,IAAd,CAFA,IAGAC,KAAK,CAACC,OAAN,CAAcF,IAAI,CAACvB,GAAD,CAAlB,CAJF;EAMA,uCACKI,aADL;IAEEL,IAAI,EAAED,WAAW,GAAG,WAAH,GAAiBM,aAAa,CAACL;EAFlD;AAID,CAfD;AAiBA;AACA;AACA;;;AACA,IAAM2B,UAAU,GAAG,SAAbA,UAAa,CACjB1B,GADiB,EAEjBuB,IAFiB,EAGjBnB,aAHiB,EAIN;EACX,IAAMuB,OAAO,GAAG,wBAAUJ,IAAV,CAAhB;;EAEA,IAAInB,aAAa,CAACH,eAAlB,EAAmC;IACjC0B,OAAO,CAAC1B,eAAR,GAA0BG,aAAa,CAACH,eAAxC;EACD;;EAED,OAAO0B,OAAP;AACD,CAZD;AAcA;AACA;AACA;;;AACA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CACtB5B,GADsB,EAEtBuB,IAFsB,EAGtBnB,aAHsB,EAIJ;EAAA;;EAClB,IAAMyB,oBAAoB,GAAGP,mBAAmB,CAACtB,GAAD,EAAMuB,IAAN,EAAYnB,aAAZ,CAAhD;EACA,IAAM0B,WAAW,GAAGJ,UAAU,CAAC1B,GAAD,EAAMuB,IAAN,EAAYnB,aAAZ,CAA9B;EAEA,IAAM2B,KAAK,GAAG5B,iBAAiB,CAAC0B,oBAAD,CAA/B;;EAEA,IAAI,CAACE,KAAL,EAAY;IACV,MAAM,IAAIC,KAAJ,CAAU,sBAAV,CAAN;EACD;;EAED,IAAMC,YAAY,GAAGvC,eAAe,0BAACmC,oBAAoB,CAAClC,QAAtB,yEAAkC,EAAlC,CAApC;EACA,IAAMuC,UAAU,GAAG,IAAIC,4BAAJ,CACjBL,WADiB,EAEjB9B,GAFiB,EAGjBiC,YAHiB,EAIjBG,OAJiB,EAAnB;EAMA,IAAMC,SAAS,GAAG,IAAIN,KAAJ,CAAUG,UAAV,EAAsBL,oBAAtB,CAAlB;EAEA,OAAOS,kCAAyBC,kBAAzB,CAA4CF,SAA5C,CAAP;AACD,CAxBD;;eA0BeT,e"}
1
+ {"version":3,"file":"_createAttribute.js","names":["getChildrenKeys","children","child","childKey","isComposite","type","key","dynamicschemaId","undefined","getAttributeModel","contributions","ATTRIBUTE_MODELS","ChoiceAttributeModel","BooleanAttributeModel","HelptextAttributeModel","LabelAttributeModel","XMLAttributeModel","MemoAttributeModel","StringAttributeModel","DatetimeAttributeModel","MoneyAttributeModel","NumberAttributeModel","PasswordAttributeModel","UploadAttributeModel","CompositeAttributeModel","CaptchaAttributeModel","model","isApplicableModel","updateContributions","data","has","isPlainObject","Array","isArray","updateData","newData","cloneDeep","createAttribute","updatedContributions","updatedData","Model","Error","childrenKeys","dataHelper","AttributeDataHelper","getData","attribute","LayoutHintRuleCollection","setLayoutHintRules"],"sources":["../../../src/models/attributes/_createAttribute.js"],"sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\nimport LayoutHintRuleCollection from \"./layouthint-rules/LayoutHintRuleCollection\";\n\nimport CaptchaAttributeModel from \"./CaptchaAttributeModel\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\nimport HelptextAttributeModel from \"./HelptextAttributeModel\";\nimport LabelAttributeModel from \"./LabelAttributeModel\";\nimport MemoAttributeModel from \"./MemoAttributeModel\";\nimport MoneyAttributeModel from \"./MoneyAttributeModel\";\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport PasswordAttributeModel from \"./PasswordAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport UploadAttributeModel from \"./UploadAttributeModel\";\nimport XMLAttributeModel from \"./XMLAttributeModel\";\nimport BooleanAttributeModel from \"./BooleanAttributeModel\";\n\nimport AttributeDataHelper from \"./AttributeDataHelper\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * @private\n */\nconst getChildrenKeys = (children: Array<Object>): Array<Object> => {\n if (children) {\n return children.map((child) => {\n const [childKey] = Object.keys(child);\n const isComposite =\n child[childKey].type === \"range\" ||\n child[childKey].type === \"composite\";\n\n return {\n key: childKey,\n dynamicschemaId: child[childKey]?.dynamicschemaId || undefined,\n children: isComposite ? getChildrenKeys(child[childKey]?.children) : [],\n };\n });\n }\n\n return [];\n};\n\n/**\n * @private\n */\nconst getAttributeModel = (contributions): ?Class<AttributeType> => {\n const ATTRIBUTE_MODELS = [\n ChoiceAttributeModel,\n BooleanAttributeModel,\n\n HelptextAttributeModel,\n LabelAttributeModel,\n\n XMLAttributeModel,\n MemoAttributeModel,\n StringAttributeModel,\n\n DatetimeAttributeModel,\n\n MoneyAttributeModel,\n NumberAttributeModel,\n PasswordAttributeModel,\n\n UploadAttributeModel,\n CompositeAttributeModel,\n CaptchaAttributeModel,\n ];\n\n return ATTRIBUTE_MODELS.find((model) =>\n model.isApplicableModel(contributions)\n );\n};\n\n/**\n * @private\n */\nconst updateContributions = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const isComposite =\n contributions.type === \"array\" &&\n has(contributions, \"children\") &&\n isPlainObject(data) &&\n Array.isArray(data[key]);\n\n return {\n ...contributions,\n type: isComposite ? \"composite\" : contributions.type,\n };\n};\n\n/**\n * @private\n */\nconst updateData = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const newData = cloneDeep(data);\n\n if (contributions.dynamicschemaId) {\n newData.dynamicschemaId = contributions.dynamicschemaId;\n }\n\n return newData;\n};\n\n/**\n * Create an attribute based on data and contributions\n */\nconst createAttribute = (\n key: string,\n data: Object | Array<Object>,\n contributions: Object\n): AttributeType => {\n const updatedContributions = updateContributions(key, data, contributions);\n const updatedData = updateData(key, data, contributions);\n\n const Model = getAttributeModel(updatedContributions);\n\n if (!Model) {\n throw new Error(\"Could not find model\");\n }\n\n const childrenKeys = getChildrenKeys(updatedContributions.children ?? []);\n const dataHelper = new AttributeDataHelper(\n updatedData,\n key,\n childrenKeys\n ).getData();\n\n const attribute = new Model(dataHelper, updatedContributions);\n\n return LayoutHintRuleCollection.setLayoutHintRules(attribute);\n};\n\nexport default createAttribute;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConstraintCollection.js","names":["ConstraintCollection","id","validateMethod","defaultMessage","data","useClientsideValidation","add","ConstraintModel","value","isEmpty","collection","every","constraint","validate","some","isMandatoryConstraint","hasMandatoryConstraint","BaseCollection"],"sources":["../../../../src/models/attributes/input-constraints/ConstraintCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../../base/BaseCollection\";\nimport ConstraintModel from \"./ConstraintModel\";\n\nimport { getSetting } from \"../../../constants/Settings\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n * Attribute constraints\n */\nexport default class ConstraintCollection extends BaseCollection<IConstraintModel> {\n /**\n * Add constraint\n */\n addConstraint(\n id: string,\n validateMethod: ?Function,\n defaultMessage: ?string,\n data: ?Object,\n useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\")\n ) {\n this.add(\n new ConstraintModel(\n id,\n validateMethod,\n defaultMessage,\n data,\n useClientsideValidation\n )\n );\n }\n\n /**\n * Validate if complete collection is valid\n */\n validate(value: any): boolean {\n return (\n this.isEmpty ||\n this.collection.every((constraint) => constraint.validate(value))\n );\n }\n\n /**\n * Indicates if a mandatory constraint exists in the collection\n */\n hasMandatoryConstraint(): boolean {\n return this.collection.some(\n (constraint) => constraint.isMandatoryConstraint\n );\n }\n\n /**\n * Retrieve all invalid constraints\n */\n invalidConstraints(value: any): Array<IConstraintModel> {\n if (value === \"\" && !this.hasMandatoryConstraint()) {\n return [];\n }\n\n return this.collection.filter(\n (constraint) => constraint.validate(value) === false\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;;;;;AAIA;AACA;AACA;IACqBA,oB;;;;;;;;;;;;;IACnB;AACF;AACA;IACE,uBACEC,EADF,EAEEC,cAFF,EAGEC,cAHF,EAIEC,IAJF,EAME;MAAA,IADAC,uBACA,uEADmC,0BAAW,2BAAX,CACnC;MACA,KAAKC,GAAL,CACE,IAAIC,wBAAJ,CACEN,EADF,EAEEC,cAFF,EAGEC,cAHF,EAIEC,IAJF,EAKEC,uBALF,CADF;IASD;IAED;AACF;AACA;;;;WACE,kBAASG,KAAT,EAA8B;MAC5B,OACE,KAAKC,OAAL,IACA,KAAKC,UAAL,CAAgBC,KAAhB,CAAsB,UAACC,UAAD;QAAA,OAAgBA,UAAU,CAACC,QAAX,CAAoBL,KAApB,CAAhB;MAAA,CAAtB,CAFF;IAID;IAED;AACF;AACA;;;;WACE,kCAAkC;MAChC,OAAO,KAAKE,UAAL,CAAgBI,IAAhB,CACL,UAACF,UAAD;QAAA,OAAgBA,UAAU,CAACG,qBAA3B;MAAA,CADK,CAAP;IAGD;IAED;AACF;AACA;;;;WACE,4BAAmBP,KAAnB,EAAwD;MAAA;;MACtD,IAAIA,KAAK,KAAK,EAAV,IAAgB,CAAC,KAAKQ,sBAAL,EAArB,EAAoD;QAClD,OAAO,EAAP;MACD;;MAED,OAAO,qCAAKN,UAAL,iBACL,UAACE,UAAD;QAAA,OAAgBA,UAAU,CAACC,QAAX,CAAoBL,KAApB,MAA+B,KAA/C;MAAA,CADK,CAAP;IAGD;;;EApD+CS,wB"}
1
+ {"version":3,"file":"ConstraintCollection.js","names":["ConstraintCollection","id","validateMethod","defaultMessage","data","useClientsideValidation","getSetting","add","ConstraintModel","value","isEmpty","collection","every","constraint","validate","some","isMandatoryConstraint","hasMandatoryConstraint","BaseCollection"],"sources":["../../../../src/models/attributes/input-constraints/ConstraintCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../../base/BaseCollection\";\nimport ConstraintModel from \"./ConstraintModel\";\n\nimport { getSetting } from \"../../../constants/Settings\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n * Attribute constraints\n */\nexport default class ConstraintCollection extends BaseCollection<IConstraintModel> {\n /**\n * Add constraint\n */\n addConstraint(\n id: string,\n validateMethod: ?Function,\n defaultMessage: ?string,\n data: ?Object,\n useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\")\n ) {\n this.add(\n new ConstraintModel(\n id,\n validateMethod,\n defaultMessage,\n data,\n useClientsideValidation\n )\n );\n }\n\n /**\n * Validate if complete collection is valid\n */\n validate(value: any): boolean {\n return (\n this.isEmpty ||\n this.collection.every((constraint) => constraint.validate(value))\n );\n }\n\n /**\n * Indicates if a mandatory constraint exists in the collection\n */\n hasMandatoryConstraint(): boolean {\n return this.collection.some(\n (constraint) => constraint.isMandatoryConstraint\n );\n }\n\n /**\n * Retrieve all invalid constraints\n */\n invalidConstraints(value: any): Array<IConstraintModel> {\n if (value === \"\" && !this.hasMandatoryConstraint()) {\n return [];\n }\n\n return this.collection.filter(\n (constraint) => constraint.validate(value) === false\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;;;;;AAIA;AACA;AACA;IACqBA,oB;;;;;;;;;;;;;IACnB;AACF;AACA;IACE,uBACEC,EADF,EAEEC,cAFF,EAGEC,cAHF,EAIEC,IAJF,EAME;MAAA,IADAC,uBACA,uEADmC,IAAAC,oBAAA,EAAW,2BAAX,CACnC;MACA,KAAKC,GAAL,CACE,IAAIC,wBAAJ,CACEP,EADF,EAEEC,cAFF,EAGEC,cAHF,EAIEC,IAJF,EAKEC,uBALF,CADF;IASD;IAED;AACF;AACA;;;;WACE,kBAASI,KAAT,EAA8B;MAC5B,OACE,KAAKC,OAAL,IACA,KAAKC,UAAL,CAAgBC,KAAhB,CAAsB,UAACC,UAAD;QAAA,OAAgBA,UAAU,CAACC,QAAX,CAAoBL,KAApB,CAAhB;MAAA,CAAtB,CAFF;IAID;IAED;AACF;AACA;;;;WACE,kCAAkC;MAChC,OAAO,KAAKE,UAAL,CAAgBI,IAAhB,CACL,UAACF,UAAD;QAAA,OAAgBA,UAAU,CAACG,qBAA3B;MAAA,CADK,CAAP;IAGD;IAED;AACF;AACA;;;;WACE,4BAAmBP,KAAnB,EAAwD;MAAA;;MACtD,IAAIA,KAAK,KAAK,EAAV,IAAgB,CAAC,KAAKQ,sBAAL,EAArB,EAAoD;QAClD,OAAO,EAAP;MACD;;MAED,OAAO,qCAAKN,UAAL,iBACL,UAACE,UAAD;QAAA,OAAgBA,UAAU,CAACC,QAAX,CAAoBL,KAApB,MAA+B,KAA/C;MAAA,CADK,CAAP;IAGD;;;EApD+CS,wB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConstraintModel.js","names":["ConstraintModel","id","validateMethod","defaultMessage","parameters","useClientsideValidation","_id","_validateMethod","_defaultMessage","_parameters","_useClientsideValidation","value"],"sources":["../../../../src/models/attributes/input-constraints/ConstraintModel.js"],"sourcesContent":["// @flow\nimport { getSetting } from \"../../../constants/Settings\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nexport default class ConstraintModel implements IConstraintModel {\n _id: string;\n _validateMethod: ?(value: any) => boolean;\n _defaultMessage: ?string;\n _parameters: ?Object;\n _useClientsideValidation: boolean;\n\n /**\n */\n constructor(\n id: string,\n validateMethod: ?Function,\n defaultMessage: ?string,\n parameters: ?Object,\n useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\")\n ) {\n this._id = id;\n this._validateMethod = validateMethod;\n this._defaultMessage = defaultMessage;\n this._parameters = parameters;\n this._useClientsideValidation = useClientsideValidation;\n }\n\n /**\n * Retreive type of constraint\n */\n get id(): string {\n return this._id;\n }\n\n /**\n */\n get defaultMessage(): string {\n return this._defaultMessage || \"Missing default message\";\n }\n\n /**\n * Returns available data for constraint\n */\n get parameters(): ?Object {\n return this._parameters;\n }\n\n /**\n * Inidicates if validation message is present\n */\n hasValidation(): boolean {\n return this._validateMethod != null;\n }\n\n /**\n * Validate constraint with value\n */\n validate(value: any): boolean {\n const validateMethod = this._validateMethod;\n\n if (this._useClientsideValidation && validateMethod) {\n return validateMethod(value);\n }\n\n return true;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return this._id === \"mandatory\" || this._id === \"Constraint.Mandatory\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAIA;AACA;IACqBA,e;EAOnB;AACF;EACE,yBACEC,EADF,EAEEC,cAFF,EAGEC,cAHF,EAIEC,UAJF,EAME;IAAA,IADAC,uBACA,uEADmC,0BAAW,2BAAX,CACnC;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IACA,KAAKC,GAAL,GAAWL,EAAX;IACA,KAAKM,eAAL,GAAuBL,cAAvB;IACA,KAAKM,eAAL,GAAuBL,cAAvB;IACA,KAAKM,WAAL,GAAmBL,UAAnB;IACA,KAAKM,wBAAL,GAAgCL,uBAAhC;EACD;EAED;AACF;AACA;;;;;SACE,eAAiB;MACf,OAAO,KAAKC,GAAZ;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,OAAO,KAAKE,eAAL,IAAwB,yBAA/B;IACD;IAED;AACF;AACA;;;;SACE,eAA0B;MACxB,OAAO,KAAKC,WAAZ;IACD;IAED;AACF;AACA;;;;WACE,yBAAyB;MACvB,OAAO,KAAKF,eAAL,IAAwB,IAA/B;IACD;IAED;AACF;AACA;;;;WACE,kBAASI,KAAT,EAA8B;MAC5B,IAAMT,cAAc,GAAG,KAAKK,eAA5B;;MAEA,IAAI,KAAKG,wBAAL,IAAiCR,cAArC,EAAqD;QACnD,OAAOA,cAAc,CAACS,KAAD,CAArB;MACD;;MAED,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAKL,GAAL,KAAa,WAAb,IAA4B,KAAKA,GAAL,KAAa,sBAAhD;IACD"}
1
+ {"version":3,"file":"ConstraintModel.js","names":["ConstraintModel","id","validateMethod","defaultMessage","parameters","useClientsideValidation","getSetting","_id","_validateMethod","_defaultMessage","_parameters","_useClientsideValidation","value"],"sources":["../../../../src/models/attributes/input-constraints/ConstraintModel.js"],"sourcesContent":["// @flow\nimport { getSetting } from \"../../../constants/Settings\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nexport default class ConstraintModel implements IConstraintModel {\n _id: string;\n _validateMethod: ?(value: any) => boolean;\n _defaultMessage: ?string;\n _parameters: ?Object;\n _useClientsideValidation: boolean;\n\n /**\n */\n constructor(\n id: string,\n validateMethod: ?Function,\n defaultMessage: ?string,\n parameters: ?Object,\n useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\")\n ) {\n this._id = id;\n this._validateMethod = validateMethod;\n this._defaultMessage = defaultMessage;\n this._parameters = parameters;\n this._useClientsideValidation = useClientsideValidation;\n }\n\n /**\n * Retreive type of constraint\n */\n get id(): string {\n return this._id;\n }\n\n /**\n */\n get defaultMessage(): string {\n return this._defaultMessage || \"Missing default message\";\n }\n\n /**\n * Returns available data for constraint\n */\n get parameters(): ?Object {\n return this._parameters;\n }\n\n /**\n * Inidicates if validation message is present\n */\n hasValidation(): boolean {\n return this._validateMethod != null;\n }\n\n /**\n * Validate constraint with value\n */\n validate(value: any): boolean {\n const validateMethod = this._validateMethod;\n\n if (this._useClientsideValidation && validateMethod) {\n return validateMethod(value);\n }\n\n return true;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return this._id === \"mandatory\" || this._id === \"Constraint.Mandatory\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAIA;AACA;IACqBA,e;EAOnB;AACF;EACE,yBACEC,EADF,EAEEC,cAFF,EAGEC,cAHF,EAIEC,UAJF,EAME;IAAA,IADAC,uBACA,uEADmC,IAAAC,oBAAA,EAAW,2BAAX,CACnC;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IACA,KAAKC,GAAL,GAAWN,EAAX;IACA,KAAKO,eAAL,GAAuBN,cAAvB;IACA,KAAKO,eAAL,GAAuBN,cAAvB;IACA,KAAKO,WAAL,GAAmBN,UAAnB;IACA,KAAKO,wBAAL,GAAgCN,uBAAhC;EACD;EAED;AACF;AACA;;;;;SACE,eAAiB;MACf,OAAO,KAAKE,GAAZ;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,OAAO,KAAKE,eAAL,IAAwB,yBAA/B;IACD;IAED;AACF;AACA;;;;SACE,eAA0B;MACxB,OAAO,KAAKC,WAAZ;IACD;IAED;AACF;AACA;;;;WACE,yBAAyB;MACvB,OAAO,KAAKF,eAAL,IAAwB,IAA/B;IACD;IAED;AACF;AACA;;;;WACE,kBAASI,KAAT,EAA8B;MAC5B,IAAMV,cAAc,GAAG,KAAKM,eAA5B;;MAEA,IAAI,KAAKG,wBAAL,IAAiCT,cAArC,EAAqD;QACnD,OAAOA,cAAc,CAACU,KAAD,CAArB;MACD;;MAED,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAKL,GAAL,KAAa,WAAb,IAA4B,KAAKA,GAAL,KAAa,sBAAhD;IACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeDateFormatConstraint.js","names":["DateTimeDateFormatConstraint","format","formatLabel","_format","_formatLabel","value","DateUtil","hasFormat"],"sources":["../../../../src/models/attributes/input-constraints/DateTimeDateFormatConstraint.js"],"sourcesContent":["// @flow\nimport { DateUtil } from \"../../../utils/datetime/DateTimeUtil\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass DateTimeDateFormatConstraint implements IConstraintModel {\n _format: string;\n _formatLabel: string;\n\n /**\n */\n constructor(format: string, formatLabel: string) {\n this._format = format;\n this._formatLabel = formatLabel;\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.DateFormat.InvalidFormat\";\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get formatLabel(): string {\n return this._formatLabel;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Date must be entered in the format ${format}\"; // NOSONAR\n }\n\n /**\n */\n get parameters(): { format: string } {\n return { format: this.formatLabel };\n }\n\n /**\n */\n validate(value: string): boolean {\n if (!value) {\n return false;\n }\n\n return DateUtil.hasFormat(value, this.format);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DateTimeDateFormatConstraint;\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAIA;AACA;IACMA,4B;EAIJ;AACF;EACE,sCAAYC,MAAZ,EAA4BC,WAA5B,EAAiD;IAAA;IAAA;IAAA;IAC/C,KAAKC,OAAL,GAAeF,MAAf;IACA,KAAKG,YAAL,GAAoBF,WAApB;EACD;EAED;AACF;;;;;SACE,eAAiB;MACf,OAAO,qCAAP;IACD;IAED;AACF;;;;SACE,eAAqB;MACnB,OAAO,KAAKC,OAAZ;IACD;IAED;AACF;;;;SACE,eAA0B;MACxB,OAAO,KAAKC,YAAZ;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,OAAO,8CAAP,CAD2B,CAC4B;IACxD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO;QAAEH,MAAM,EAAE,KAAKC;MAAf,CAAP;IACD;IAED;AACF;;;;WACE,kBAASG,KAAT,EAAiC;MAC/B,IAAI,CAACA,KAAL,EAAY;QACV,OAAO,KAAP;MACD;;MAED,OAAOC,uBAASC,SAAT,CAAmBF,KAAnB,EAA0B,KAAKJ,MAA/B,CAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYD,4B"}
1
+ {"version":3,"file":"DateTimeDateFormatConstraint.js","names":["DateTimeDateFormatConstraint","format","formatLabel","_format","_formatLabel","value","DateUtil","hasFormat"],"sources":["../../../../src/models/attributes/input-constraints/DateTimeDateFormatConstraint.js"],"sourcesContent":["// @flow\nimport { DateUtil } from \"../../../utils/datetime/DateTimeUtil\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass DateTimeDateFormatConstraint implements IConstraintModel {\n _format: string;\n _formatLabel: string;\n\n /**\n */\n constructor(format: string, formatLabel: string) {\n this._format = format;\n this._formatLabel = formatLabel;\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.DateFormat.InvalidFormat\";\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get formatLabel(): string {\n return this._formatLabel;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Date must be entered in the format ${format}\"; // NOSONAR\n }\n\n /**\n */\n get parameters(): { format: string } {\n return { format: this.formatLabel };\n }\n\n /**\n */\n validate(value: string): boolean {\n if (!value) {\n return false;\n }\n\n return DateUtil.hasFormat(value, this.format);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DateTimeDateFormatConstraint;\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAIA;AACA;IACMA,4B;EAIJ;AACF;EACE,sCAAYC,MAAZ,EAA4BC,WAA5B,EAAiD;IAAA;IAAA;IAAA;IAC/C,KAAKC,OAAL,GAAeF,MAAf;IACA,KAAKG,YAAL,GAAoBF,WAApB;EACD;EAED;AACF;;;;;SACE,eAAiB;MACf,OAAO,qCAAP;IACD;IAED;AACF;;;;SACE,eAAqB;MACnB,OAAO,KAAKC,OAAZ;IACD;IAED;AACF;;;;SACE,eAA0B;MACxB,OAAO,KAAKC,YAAZ;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,OAAO,8CAAP,CAD2B,CAC4B;IACxD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO;QAAEH,MAAM,EAAE,KAAKC;MAAf,CAAP;IACD;IAED;AACF;;;;WACE,kBAASG,KAAT,EAAiC;MAC/B,IAAI,CAACA,KAAL,EAAY;QACV,OAAO,KAAP;MACD;;MAED,OAAOC,sBAAA,CAASC,SAAT,CAAmBF,KAAnB,EAA0B,KAAKJ,MAA/B,CAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYD,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeTimeFormatConstraint.js","names":["DateTimeTimeFormatConstraint","format","formatLabel","_format","_formatLabel","value","TimeUtil","hasFormat"],"sources":["../../../../src/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js"],"sourcesContent":["// @flow\nimport { TimeUtil } from \"../../../utils/datetime/DateTimeUtil\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass DateTimeTimeFormatConstraint implements IConstraintModel {\n _format: string;\n _formatLabel: string;\n\n /**\n */\n constructor(format: string, formatLabel: string) {\n this._format = format;\n this._formatLabel = formatLabel;\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.TimeFormat.InvalidFormat\";\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get formatLabel(): string {\n return this._formatLabel;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Time must be entered in the format ${format}\"; // NOSONAR\n }\n\n /**\n */\n get parameters(): { format: string } {\n return { format: this.formatLabel };\n }\n\n /**\n */\n validate(value: string): boolean {\n if (!value) {\n return false;\n }\n\n return TimeUtil.hasFormat(value, this.format);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DateTimeTimeFormatConstraint;\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAIA;AACA;IACMA,4B;EAIJ;AACF;EACE,sCAAYC,MAAZ,EAA4BC,WAA5B,EAAiD;IAAA;IAAA;IAAA;IAC/C,KAAKC,OAAL,GAAeF,MAAf;IACA,KAAKG,YAAL,GAAoBF,WAApB;EACD;EAED;AACF;;;;;SACE,eAAiB;MACf,OAAO,qCAAP;IACD;IAED;AACF;;;;SACE,eAAqB;MACnB,OAAO,KAAKC,OAAZ;IACD;IAED;AACF;;;;SACE,eAA0B;MACxB,OAAO,KAAKC,YAAZ;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,OAAO,8CAAP,CAD2B,CAC4B;IACxD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO;QAAEH,MAAM,EAAE,KAAKC;MAAf,CAAP;IACD;IAED;AACF;;;;WACE,kBAASG,KAAT,EAAiC;MAC/B,IAAI,CAACA,KAAL,EAAY;QACV,OAAO,KAAP;MACD;;MAED,OAAOC,uBAASC,SAAT,CAAmBF,KAAnB,EAA0B,KAAKJ,MAA/B,CAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYD,4B"}
1
+ {"version":3,"file":"DateTimeTimeFormatConstraint.js","names":["DateTimeTimeFormatConstraint","format","formatLabel","_format","_formatLabel","value","TimeUtil","hasFormat"],"sources":["../../../../src/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js"],"sourcesContent":["// @flow\nimport { TimeUtil } from \"../../../utils/datetime/DateTimeUtil\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass DateTimeTimeFormatConstraint implements IConstraintModel {\n _format: string;\n _formatLabel: string;\n\n /**\n */\n constructor(format: string, formatLabel: string) {\n this._format = format;\n this._formatLabel = formatLabel;\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.TimeFormat.InvalidFormat\";\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get formatLabel(): string {\n return this._formatLabel;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Time must be entered in the format ${format}\"; // NOSONAR\n }\n\n /**\n */\n get parameters(): { format: string } {\n return { format: this.formatLabel };\n }\n\n /**\n */\n validate(value: string): boolean {\n if (!value) {\n return false;\n }\n\n return TimeUtil.hasFormat(value, this.format);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DateTimeTimeFormatConstraint;\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAIA;AACA;IACMA,4B;EAIJ;AACF;EACE,sCAAYC,MAAZ,EAA4BC,WAA5B,EAAiD;IAAA;IAAA;IAAA;IAC/C,KAAKC,OAAL,GAAeF,MAAf;IACA,KAAKG,YAAL,GAAoBF,WAApB;EACD;EAED;AACF;;;;;SACE,eAAiB;MACf,OAAO,qCAAP;IACD;IAED;AACF;;;;SACE,eAAqB;MACnB,OAAO,KAAKC,OAAZ;IACD;IAED;AACF;;;;SACE,eAA0B;MACxB,OAAO,KAAKC,YAAZ;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,OAAO,8CAAP,CAD2B,CAC4B;IACxD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO;QAAEH,MAAM,EAAE,KAAKC;MAAf,CAAP;IACD;IAED;AACF;;;;WACE,kBAASG,KAAT,EAAiC;MAC/B,IAAI,CAACA,KAAL,EAAY;QACV,OAAO,KAAP;MACD;;MAED,OAAOC,sBAAA,CAASC,SAAT,CAAmBF,KAAnB,EAA0B,KAAKJ,MAA/B,CAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYD,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileSizeConstraint.js","names":["MAX_TOTAL_FILE_SIZE_ID","MAX_FILE_SIZE_ID","FileSizeConstraint","filesizeConstraint","_filesizeConstraint","isMaxTotal","fileSize","undefined","id","human","maxTotalFileSize","filesize"],"sources":["../../../../src/models/attributes/input-constraints/FileSizeConstraint.js"],"sourcesContent":["// @flow\nimport filesize from \"file-size\";\n\nimport type { IConstraintModel, FilesizeConstraintsType } from \"../../types\";\n\nconst MAX_TOTAL_FILE_SIZE_ID = \"Constraint.File.MaxTotalFileSize\";\nconst MAX_FILE_SIZE_ID = \"Constraint.File.MaxFileSize\";\n\n/**\n */\nclass FileSizeConstraint implements IConstraintModel {\n _filesizeConstraint: FilesizeConstraintsType;\n\n /**\n */\n constructor(filesizeConstraint: FilesizeConstraintsType) {\n this._filesizeConstraint = filesizeConstraint;\n }\n\n /**\n */\n get id(): string {\n if (this.filesizeConstraint.isMaxTotal) {\n return MAX_TOTAL_FILE_SIZE_ID;\n } else if (this.filesizeConstraint.fileSize !== undefined) {\n return MAX_FILE_SIZE_ID;\n }\n\n return \"\";\n }\n\n /**\n */\n get filesizeConstraint(): FilesizeConstraintsType {\n return this._filesizeConstraint;\n }\n\n /**\n */\n hasValidation(): boolean {\n return false;\n }\n\n /**\n */\n get defaultMessage(): string {\n if (this.id === MAX_TOTAL_FILE_SIZE_ID) {\n return \"{filesize-left} van {max-total-filesize} over van totaal toegestaan upload bestandsgrootte\"; // NOSONAR\n } else if (this.id === MAX_FILE_SIZE_ID) {\n return \"Maximale bestandsgroote is ${max-filesize}\"; // NOSONAR\n }\n\n return \"\";\n }\n\n /**\n */\n get filesize(): any {\n return filesize(this.filesizeConstraint.fileSize).human(\"jedec\");\n }\n\n /**\n */\n get maxTotalFileSize(): any {\n return filesize(this.filesizeConstraint.maxTotalFileSize).human(\"jedec\");\n }\n\n /**\n */\n get parameters():\n | { ... }\n | { \"filesize-left\": any, \"max-total-filesize\": any }\n | { \"max-filesize\": any } {\n if (this.id === MAX_TOTAL_FILE_SIZE_ID) {\n return {\n \"filesize-left\": this.filesize,\n \"max-total-filesize\": this.maxTotalFileSize,\n };\n } else if (this.id === MAX_FILE_SIZE_ID) {\n return {\n \"max-filesize\": this.filesize,\n };\n }\n\n return {};\n }\n\n /**\n */\n validate(): boolean {\n return true;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default FileSizeConstraint;\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAIA,IAAMA,sBAAsB,GAAG,kCAA/B;AACA,IAAMC,gBAAgB,GAAG,6BAAzB;AAEA;AACA;;IACMC,kB;EAGJ;AACF;EACE,4BAAYC,kBAAZ,EAAyD;IAAA;IAAA;IACvD,KAAKC,mBAAL,GAA2BD,kBAA3B;EACD;EAED;AACF;;;;;SACE,eAAiB;MACf,IAAI,KAAKA,kBAAL,CAAwBE,UAA5B,EAAwC;QACtC,OAAOL,sBAAP;MACD,CAFD,MAEO,IAAI,KAAKG,kBAAL,CAAwBG,QAAxB,KAAqCC,SAAzC,EAAoD;QACzD,OAAON,gBAAP;MACD;;MAED,OAAO,EAAP;IACD;IAED;AACF;;;;SACE,eAAkD;MAChD,OAAO,KAAKG,mBAAZ;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,KAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,IAAI,KAAKI,EAAL,KAAYR,sBAAhB,EAAwC;QACtC,OAAO,4FAAP,CADsC,CAC+D;MACtG,CAFD,MAEO,IAAI,KAAKQ,EAAL,KAAYP,gBAAhB,EAAkC;QACvC,OAAO,4CAAP,CADuC,CACc;MACtD;;MAED,OAAO,EAAP;IACD;IAED;AACF;;;;SACE,eAAoB;MAClB,OAAO,uBAAS,KAAKE,kBAAL,CAAwBG,QAAjC,EAA2CG,KAA3C,CAAiD,OAAjD,CAAP;IACD;IAED;AACF;;;;SACE,eAA4B;MAC1B,OAAO,uBAAS,KAAKN,kBAAL,CAAwBO,gBAAjC,EAAmDD,KAAnD,CAAyD,OAAzD,CAAP;IACD;IAED;AACF;;;;SACE,eAG4B;MAC1B,IAAI,KAAKD,EAAL,KAAYR,sBAAhB,EAAwC;QACtC,OAAO;UACL,iBAAiB,KAAKW,QADjB;UAEL,sBAAsB,KAAKD;QAFtB,CAAP;MAID,CALD,MAKO,IAAI,KAAKF,EAAL,KAAYP,gBAAhB,EAAkC;QACvC,OAAO;UACL,gBAAgB,KAAKU;QADhB,CAAP;MAGD;;MAED,OAAO,EAAP;IACD;IAED;AACF;;;;WACE,oBAAoB;MAClB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYT,kB"}
1
+ {"version":3,"file":"FileSizeConstraint.js","names":["MAX_TOTAL_FILE_SIZE_ID","MAX_FILE_SIZE_ID","FileSizeConstraint","filesizeConstraint","_filesizeConstraint","isMaxTotal","fileSize","undefined","id","filesize","human","maxTotalFileSize"],"sources":["../../../../src/models/attributes/input-constraints/FileSizeConstraint.js"],"sourcesContent":["// @flow\nimport filesize from \"file-size\";\n\nimport type { IConstraintModel, FilesizeConstraintsType } from \"../../types\";\n\nconst MAX_TOTAL_FILE_SIZE_ID = \"Constraint.File.MaxTotalFileSize\";\nconst MAX_FILE_SIZE_ID = \"Constraint.File.MaxFileSize\";\n\n/**\n */\nclass FileSizeConstraint implements IConstraintModel {\n _filesizeConstraint: FilesizeConstraintsType;\n\n /**\n */\n constructor(filesizeConstraint: FilesizeConstraintsType) {\n this._filesizeConstraint = filesizeConstraint;\n }\n\n /**\n */\n get id(): string {\n if (this.filesizeConstraint.isMaxTotal) {\n return MAX_TOTAL_FILE_SIZE_ID;\n } else if (this.filesizeConstraint.fileSize !== undefined) {\n return MAX_FILE_SIZE_ID;\n }\n\n return \"\";\n }\n\n /**\n */\n get filesizeConstraint(): FilesizeConstraintsType {\n return this._filesizeConstraint;\n }\n\n /**\n */\n hasValidation(): boolean {\n return false;\n }\n\n /**\n */\n get defaultMessage(): string {\n if (this.id === MAX_TOTAL_FILE_SIZE_ID) {\n return \"{filesize-left} van {max-total-filesize} over van totaal toegestaan upload bestandsgrootte\"; // NOSONAR\n } else if (this.id === MAX_FILE_SIZE_ID) {\n return \"Maximale bestandsgroote is ${max-filesize}\"; // NOSONAR\n }\n\n return \"\";\n }\n\n /**\n */\n get filesize(): any {\n return filesize(this.filesizeConstraint.fileSize).human(\"jedec\");\n }\n\n /**\n */\n get maxTotalFileSize(): any {\n return filesize(this.filesizeConstraint.maxTotalFileSize).human(\"jedec\");\n }\n\n /**\n */\n get parameters():\n | { ... }\n | { \"filesize-left\": any, \"max-total-filesize\": any }\n | { \"max-filesize\": any } {\n if (this.id === MAX_TOTAL_FILE_SIZE_ID) {\n return {\n \"filesize-left\": this.filesize,\n \"max-total-filesize\": this.maxTotalFileSize,\n };\n } else if (this.id === MAX_FILE_SIZE_ID) {\n return {\n \"max-filesize\": this.filesize,\n };\n }\n\n return {};\n }\n\n /**\n */\n validate(): boolean {\n return true;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default FileSizeConstraint;\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAIA,IAAMA,sBAAsB,GAAG,kCAA/B;AACA,IAAMC,gBAAgB,GAAG,6BAAzB;AAEA;AACA;;IACMC,kB;EAGJ;AACF;EACE,4BAAYC,kBAAZ,EAAyD;IAAA;IAAA;IACvD,KAAKC,mBAAL,GAA2BD,kBAA3B;EACD;EAED;AACF;;;;;SACE,eAAiB;MACf,IAAI,KAAKA,kBAAL,CAAwBE,UAA5B,EAAwC;QACtC,OAAOL,sBAAP;MACD,CAFD,MAEO,IAAI,KAAKG,kBAAL,CAAwBG,QAAxB,KAAqCC,SAAzC,EAAoD;QACzD,OAAON,gBAAP;MACD;;MAED,OAAO,EAAP;IACD;IAED;AACF;;;;SACE,eAAkD;MAChD,OAAO,KAAKG,mBAAZ;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,KAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,IAAI,KAAKI,EAAL,KAAYR,sBAAhB,EAAwC;QACtC,OAAO,4FAAP,CADsC,CAC+D;MACtG,CAFD,MAEO,IAAI,KAAKQ,EAAL,KAAYP,gBAAhB,EAAkC;QACvC,OAAO,4CAAP,CADuC,CACc;MACtD;;MAED,OAAO,EAAP;IACD;IAED;AACF;;;;SACE,eAAoB;MAClB,OAAO,IAAAQ,iBAAA,EAAS,KAAKN,kBAAL,CAAwBG,QAAjC,EAA2CI,KAA3C,CAAiD,OAAjD,CAAP;IACD;IAED;AACF;;;;SACE,eAA4B;MAC1B,OAAO,IAAAD,iBAAA,EAAS,KAAKN,kBAAL,CAAwBQ,gBAAjC,EAAmDD,KAAnD,CAAyD,OAAzD,CAAP;IACD;IAED;AACF;;;;SACE,eAG4B;MAC1B,IAAI,KAAKF,EAAL,KAAYR,sBAAhB,EAAwC;QACtC,OAAO;UACL,iBAAiB,KAAKS,QADjB;UAEL,sBAAsB,KAAKE;QAFtB,CAAP;MAID,CALD,MAKO,IAAI,KAAKH,EAAL,KAAYP,gBAAhB,EAAkC;QACvC,OAAO;UACL,gBAAgB,KAAKQ;QADhB,CAAP;MAGD;;MAED,OAAO,EAAP;IACD;IAED;AACF;;;;WACE,oBAAoB;MAClB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYP,kB"}
@@ -1 +1 @@
1
- {"version":3,"file":"IBANConstraint.js","names":["IBANConstraint","value","IBAN","isValid"],"sources":["../../../../src/models/attributes/input-constraints/IBANConstraint.js"],"sourcesContent":["// @flow\nimport IBAN from \"iban\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass IBANConstraint implements IConstraintModel {\n /**\n */\n get id(): string {\n return \"Constraint.IBAN.InvalidFormat\";\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Must be a valid IBAN number\";\n }\n\n /**\n */\n get parameters(): { ... } {\n return {};\n }\n\n /**\n */\n validate(value: string): any {\n return IBAN.isValid(value);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default IBANConstraint;\n"],"mappings":";;;;;;;;;;;;;AACA;;AAIA;AACA;IACMA,c;;;;;;;;IACJ;AACF;IACE,eAAiB;MACf,OAAO,+BAAP;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,OAAO,6BAAP;IACD;IAED;AACF;;;;SACE,eAA0B;MACxB,OAAO,EAAP;IACD;IAED;AACF;;;;WACE,kBAASC,KAAT,EAA6B;MAC3B,OAAOC,cAAKC,OAAL,CAAaF,KAAb,CAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYD,c"}
1
+ {"version":3,"file":"IBANConstraint.js","names":["IBANConstraint","value","IBAN","isValid"],"sources":["../../../../src/models/attributes/input-constraints/IBANConstraint.js"],"sourcesContent":["// @flow\nimport IBAN from \"iban\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass IBANConstraint implements IConstraintModel {\n /**\n */\n get id(): string {\n return \"Constraint.IBAN.InvalidFormat\";\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Must be a valid IBAN number\";\n }\n\n /**\n */\n get parameters(): { ... } {\n return {};\n }\n\n /**\n */\n validate(value: string): any {\n return IBAN.isValid(value);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default IBANConstraint;\n"],"mappings":";;;;;;;;;;;;;AACA;;AAIA;AACA;IACMA,c;;;;;;;;IACJ;AACF;IACE,eAAiB;MACf,OAAO,+BAAP;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,OAAO,6BAAP;IACD;IAED;AACF;;;;SACE,eAA0B;MACxB,OAAO,EAAP;IACD;IAED;AACF;;;;WACE,kBAASC,KAAT,EAA6B;MAC3B,OAAOC,aAAA,CAAKC,OAAL,CAAaF,KAAb,CAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYD,c"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumberBoundaryConstraint.js","names":["INEXACT_NUMBER_ID","OUT_OF_RANGE_ID","BELOW_MINIMUM_ID","ABOVE_MAXIMUM_ID","NumberBoundaryConstraint","minNumber","maxNumber","groupingSeparator","decimalSeparator","format","_format","_groupingSeparator","_decimalSeparator","_minNumber","_maxNumber","id","value","parsedNumber","isNaN","isSameOrAboveMinNumber","isSameOrBelowMaxNumber","isExactNumber","isBetweenNumbers"],"sources":["../../../../src/models/attributes/input-constraints/NumberBoundaryConstraint.js"],"sourcesContent":["// @flow\nimport formatValue from \"../../../utils/number/formatValue\";\nimport { parseToNumber } from \"../../../utils/number/parseNumbers\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst INEXACT_NUMBER_ID = \"Constraint.Number.InexactNumber\";\nconst OUT_OF_RANGE_ID = \"Constraint.Number.OutOfRange\";\nconst BELOW_MINIMUM_ID = \"Constraint.Number.BelowMinimum\";\nconst ABOVE_MAXIMUM_ID = \"Constraint.Number.AboveMaximum\";\n\n/**\n */\nclass NumberBoundaryConstraint implements IConstraintModel {\n _minNumber: ?number;\n _maxNumber: ?number;\n _groupingSeparator: string = \",\";\n _decimalSeparator: string = \".\";\n _format: string = \"\";\n\n /**\n */\n constructor(\n minNumber: ?number = null,\n maxNumber: ?number = null,\n groupingSeparator: string,\n decimalSeparator: string,\n format: string | null\n ) {\n this._format = format ?? \"\";\n this._groupingSeparator = groupingSeparator;\n this._decimalSeparator = decimalSeparator;\n this._minNumber = minNumber;\n this._maxNumber = maxNumber;\n }\n\n /**\n */\n get id(): string {\n if (\n this.minNumber !== null &&\n this.maxNumber !== null &&\n this.minNumber === this.maxNumber\n ) {\n return INEXACT_NUMBER_ID;\n } else if (this.minNumber !== null && this.maxNumber !== null) {\n return OUT_OF_RANGE_ID;\n } else if (this.minNumber !== null) {\n return BELOW_MINIMUM_ID;\n } else if (this.maxNumber !== null) {\n return ABOVE_MAXIMUM_ID;\n }\n\n return \"Constraint.Number.NoBoundaryConstraint\";\n }\n\n /**\n */\n get minNumber(): ?number {\n return this._minNumber;\n }\n\n /**\n */\n get maxNumber(): ?number {\n return this._maxNumber;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n switch (this.id) {\n case INEXACT_NUMBER_ID:\n return \"Number must be precisely ${min-number}\"; // NOSONAR\n case OUT_OF_RANGE_ID:\n return \"Must be between ${min-number} and ${max-number}\"; // NOSONAR\n case BELOW_MINIMUM_ID:\n return \"The number must be larger than ${min-number}\"; // NOSONAR\n case ABOVE_MAXIMUM_ID:\n return \"The number must be smaller than ${max-number}\"; // NOSONAR\n default:\n return \"\";\n }\n }\n\n /**\n */\n get parameters(): {\n \"max-number\": null | string,\n \"min-number\": null | string,\n } {\n return {\n \"min-number\":\n this.minNumber === null\n ? null\n : formatValue(\n this.minNumber,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator\n ),\n \"max-number\":\n this.maxNumber === null\n ? null\n : formatValue(\n this.maxNumber,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator\n ),\n };\n }\n\n /**\n */\n isExactNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n return parsedNumber === this.minNumber;\n }\n\n /**\n */\n isSameOrAboveMinNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n\n if (isNaN(parsedNumber) || parsedNumber == null) {\n return false;\n }\n\n return this.minNumber != null && parsedNumber >= this.minNumber;\n }\n\n /**\n */\n isSameOrBelowMaxNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n\n if (isNaN(parsedNumber) || parsedNumber == null) {\n return false;\n }\n\n return this.maxNumber != null && parsedNumber <= this.maxNumber;\n }\n\n /**\n */\n isBetweenNumbers(value: string): boolean {\n return (\n this.isSameOrAboveMinNumber(value) && this.isSameOrBelowMaxNumber(value)\n );\n }\n\n /**\n */\n validate(value: string): boolean {\n switch (this.id) {\n case INEXACT_NUMBER_ID:\n return this.isExactNumber(value);\n case OUT_OF_RANGE_ID:\n return this.isBetweenNumbers(value);\n case BELOW_MINIMUM_ID:\n return this.isSameOrAboveMinNumber(value);\n case ABOVE_MAXIMUM_ID:\n return this.isSameOrBelowMaxNumber(value);\n default:\n return true;\n }\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberBoundaryConstraint;\n"],"mappings":"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"}
1
+ {"version":3,"file":"NumberBoundaryConstraint.js","names":["INEXACT_NUMBER_ID","OUT_OF_RANGE_ID","BELOW_MINIMUM_ID","ABOVE_MAXIMUM_ID","NumberBoundaryConstraint","minNumber","maxNumber","groupingSeparator","decimalSeparator","format","_format","_groupingSeparator","_decimalSeparator","_minNumber","_maxNumber","id","formatValue","value","parsedNumber","parseToNumber","isNaN","isSameOrAboveMinNumber","isSameOrBelowMaxNumber","isExactNumber","isBetweenNumbers"],"sources":["../../../../src/models/attributes/input-constraints/NumberBoundaryConstraint.js"],"sourcesContent":["// @flow\nimport formatValue from \"../../../utils/number/formatValue\";\nimport { parseToNumber } from \"../../../utils/number/parseNumbers\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst INEXACT_NUMBER_ID = \"Constraint.Number.InexactNumber\";\nconst OUT_OF_RANGE_ID = \"Constraint.Number.OutOfRange\";\nconst BELOW_MINIMUM_ID = \"Constraint.Number.BelowMinimum\";\nconst ABOVE_MAXIMUM_ID = \"Constraint.Number.AboveMaximum\";\n\n/**\n */\nclass NumberBoundaryConstraint implements IConstraintModel {\n _minNumber: ?number;\n _maxNumber: ?number;\n _groupingSeparator: string = \",\";\n _decimalSeparator: string = \".\";\n _format: string = \"\";\n\n /**\n */\n constructor(\n minNumber: ?number = null,\n maxNumber: ?number = null,\n groupingSeparator: string,\n decimalSeparator: string,\n format: string | null\n ) {\n this._format = format ?? \"\";\n this._groupingSeparator = groupingSeparator;\n this._decimalSeparator = decimalSeparator;\n this._minNumber = minNumber;\n this._maxNumber = maxNumber;\n }\n\n /**\n */\n get id(): string {\n if (\n this.minNumber !== null &&\n this.maxNumber !== null &&\n this.minNumber === this.maxNumber\n ) {\n return INEXACT_NUMBER_ID;\n } else if (this.minNumber !== null && this.maxNumber !== null) {\n return OUT_OF_RANGE_ID;\n } else if (this.minNumber !== null) {\n return BELOW_MINIMUM_ID;\n } else if (this.maxNumber !== null) {\n return ABOVE_MAXIMUM_ID;\n }\n\n return \"Constraint.Number.NoBoundaryConstraint\";\n }\n\n /**\n */\n get minNumber(): ?number {\n return this._minNumber;\n }\n\n /**\n */\n get maxNumber(): ?number {\n return this._maxNumber;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n switch (this.id) {\n case INEXACT_NUMBER_ID:\n return \"Number must be precisely ${min-number}\"; // NOSONAR\n case OUT_OF_RANGE_ID:\n return \"Must be between ${min-number} and ${max-number}\"; // NOSONAR\n case BELOW_MINIMUM_ID:\n return \"The number must be larger than ${min-number}\"; // NOSONAR\n case ABOVE_MAXIMUM_ID:\n return \"The number must be smaller than ${max-number}\"; // NOSONAR\n default:\n return \"\";\n }\n }\n\n /**\n */\n get parameters(): {\n \"max-number\": null | string,\n \"min-number\": null | string,\n } {\n return {\n \"min-number\":\n this.minNumber === null\n ? null\n : formatValue(\n this.minNumber,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator\n ),\n \"max-number\":\n this.maxNumber === null\n ? null\n : formatValue(\n this.maxNumber,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator\n ),\n };\n }\n\n /**\n */\n isExactNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n return parsedNumber === this.minNumber;\n }\n\n /**\n */\n isSameOrAboveMinNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n\n if (isNaN(parsedNumber) || parsedNumber == null) {\n return false;\n }\n\n return this.minNumber != null && parsedNumber >= this.minNumber;\n }\n\n /**\n */\n isSameOrBelowMaxNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n\n if (isNaN(parsedNumber) || parsedNumber == null) {\n return false;\n }\n\n return this.maxNumber != null && parsedNumber <= this.maxNumber;\n }\n\n /**\n */\n isBetweenNumbers(value: string): boolean {\n return (\n this.isSameOrAboveMinNumber(value) && this.isSameOrBelowMaxNumber(value)\n );\n }\n\n /**\n */\n validate(value: string): boolean {\n switch (this.id) {\n case INEXACT_NUMBER_ID:\n return this.isExactNumber(value);\n case OUT_OF_RANGE_ID:\n return this.isBetweenNumbers(value);\n case BELOW_MINIMUM_ID:\n return this.isSameOrAboveMinNumber(value);\n case ABOVE_MAXIMUM_ID:\n return this.isSameOrBelowMaxNumber(value);\n default:\n return true;\n }\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberBoundaryConstraint;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumberFormatConstraint.js","names":["INVALID_INTEGER_ID","NumberFormatConstraint","groupingSeparator","decimalSeparator","format","_decimalSeparator","_groupingSeparator","_format","maxDigits","DecimalFormat","maxFrac","id","value","Math","floor","stringValue","split","length","isNaN","numberOfDigits","getNumberOfDigits","parseFloat","isFinite","toString","parsedNumber","isInteger","isValidDecimal"],"sources":["../../../../src/models/attributes/input-constraints/NumberFormatConstraint.js"],"sourcesContent":["// @flow\nimport DecimalFormat from \"../../../utils/number/DecimalFormat\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../../utils/number/parseNumbers\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst INVALID_INTEGER_ID = \"Constraint.Number.InvalidInteger\";\n\n/**\n */\nclass NumberFormatConstraint implements IConstraintModel {\n _decimalSeparator: string = \",\";\n _groupingSeparator: string = \".\";\n _format: string = \"0\";\n\n /**\n */\n constructor(\n groupingSeparator: string,\n decimalSeparator: string,\n format: string | null\n ) {\n this._decimalSeparator = decimalSeparator;\n this._groupingSeparator = groupingSeparator;\n this._format = format ?? \"0\";\n }\n\n /**\n */\n get id(): string {\n if (this.maxDigits === 0) {\n return INVALID_INTEGER_ID;\n }\n\n return \"Constraint.Number.InvalidDecimal\";\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get maxDigits(): number {\n return this.format ? new DecimalFormat(this.format).maxFrac : 0;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n if (this.id === INVALID_INTEGER_ID) {\n return \"Must be a whole number\";\n }\n\n return \"The value is not correct numeric format\";\n }\n\n /**\n */\n get parameters(): { \"max-digits\": number } {\n return {\n \"max-digits\": this.maxDigits,\n };\n }\n\n /**\n */\n isInteger(value: number): boolean {\n return Number.isInteger(value);\n }\n\n /**\n */\n getNumberOfDigits(value: number): number {\n if (Math.floor(value) === value) {\n return 0;\n }\n\n const stringValue = parseNumberToString(value);\n return stringValue.split(\".\")[1].length;\n }\n\n /**\n */\n isValidDecimal(value: number): boolean {\n if (isNaN(value)) {\n return false;\n }\n\n const numberOfDigits = this.getNumberOfDigits(value);\n\n return (\n !isNaN(parseFloat(value)) &&\n isFinite(value) &&\n numberOfDigits <= this.maxDigits\n );\n }\n\n /**\n */\n validate(value: string | number): boolean {\n if (\n this.maxDigits === 0 &&\n this.decimalSeparator !== \"\" &&\n value.toString().includes(this.decimalSeparator)\n ) {\n return false;\n }\n\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n\n if (this.id === INVALID_INTEGER_ID) {\n return this.isInteger(parsedNumber);\n }\n\n return this.isValidDecimal(parsedNumber);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberFormatConstraint;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAOA,IAAMA,kBAAkB,GAAG,kCAA3B;AAEA;AACA;;IACMC,sB;EAKJ;AACF;EACE,gCACEC,iBADF,EAEEC,gBAFF,EAGEC,MAHF,EAIE;IAAA;IAAA,yDAV0B,GAU1B;IAAA,0DAT2B,GAS3B;IAAA,+CARgB,GAQhB;IACA,KAAKC,iBAAL,GAAyBF,gBAAzB;IACA,KAAKG,kBAAL,GAA0BJ,iBAA1B;IACA,KAAKK,OAAL,GAAeH,MAAf,aAAeA,MAAf,cAAeA,MAAf,GAAyB,GAAzB;EACD;EAED;AACF;;;;;SACE,eAAiB;MACf,IAAI,KAAKI,SAAL,KAAmB,CAAvB,EAA0B;QACxB,OAAOR,kBAAP;MACD;;MAED,OAAO,kCAAP;IACD;IAED;AACF;;;;SACE,eAA+B;MAC7B,OAAO,KAAKK,iBAAZ;IACD;IAED;AACF;;;;SACE,eAAgC;MAC9B,OAAO,KAAKC,kBAAZ;IACD;IAED;AACF;;;;SACE,eAAqB;MACnB,OAAO,KAAKC,OAAZ;IACD;IAED;AACF;;;;SACE,eAAwB;MACtB,OAAO,KAAKH,MAAL,GAAc,IAAIK,sBAAJ,CAAkB,KAAKL,MAAvB,EAA+BM,OAA7C,GAAuD,CAA9D;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,IAAI,KAAKC,EAAL,KAAYX,kBAAhB,EAAoC;QAClC,OAAO,wBAAP;MACD;;MAED,OAAO,yCAAP;IACD;IAED;AACF;;;;SACE,eAA2C;MACzC,OAAO;QACL,cAAc,KAAKQ;MADd,CAAP;IAGD;IAED;AACF;;;;WACE,mBAAUI,KAAV,EAAkC;MAChC,OAAO,wBAAiBA,KAAjB,CAAP;IACD;IAED;AACF;;;;WACE,2BAAkBA,KAAlB,EAAyC;MACvC,IAAIC,IAAI,CAACC,KAAL,CAAWF,KAAX,MAAsBA,KAA1B,EAAiC;QAC/B,OAAO,CAAP;MACD;;MAED,IAAMG,WAAW,GAAG,uCAAoBH,KAApB,CAApB;MACA,OAAOG,WAAW,CAACC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BC,MAAjC;IACD;IAED;AACF;;;;WACE,wBAAeL,KAAf,EAAuC;MACrC,IAAIM,KAAK,CAACN,KAAD,CAAT,EAAkB;QAChB,OAAO,KAAP;MACD;;MAED,IAAMO,cAAc,GAAG,KAAKC,iBAAL,CAAuBR,KAAvB,CAAvB;MAEA,OACE,CAACM,KAAK,CAACG,UAAU,CAACT,KAAD,CAAX,CAAN,IACAU,QAAQ,CAACV,KAAD,CADR,IAEAO,cAAc,IAAI,KAAKX,SAHzB;IAKD;IAED;AACF;;;;WACE,kBAASI,KAAT,EAA0C;MAAA;;MACxC,IACE,KAAKJ,SAAL,KAAmB,CAAnB,IACA,KAAKL,gBAAL,KAA0B,EAD1B,IAEA,kCAAAS,KAAK,CAACW,QAAN,mBAA0B,KAAKpB,gBAA/B,CAHF,EAIE;QACA,OAAO,KAAP;MACD;;MAED,IAAMqB,YAAY,GAAG,iCACnBZ,KADmB,EAEnB,KAAKV,iBAFc,EAGnB,KAAKC,gBAHc,CAArB;;MAMA,IAAI,KAAKQ,EAAL,KAAYX,kBAAhB,EAAoC;QAClC,OAAO,KAAKyB,SAAL,CAAeD,YAAf,CAAP;MACD;;MAED,OAAO,KAAKE,cAAL,CAAoBF,YAApB,CAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYvB,sB"}
1
+ {"version":3,"file":"NumberFormatConstraint.js","names":["INVALID_INTEGER_ID","NumberFormatConstraint","groupingSeparator","decimalSeparator","format","_decimalSeparator","_groupingSeparator","_format","maxDigits","DecimalFormat","maxFrac","id","value","Math","floor","stringValue","parseNumberToString","split","length","isNaN","numberOfDigits","getNumberOfDigits","parseFloat","isFinite","toString","parsedNumber","parseToNumber","isInteger","isValidDecimal"],"sources":["../../../../src/models/attributes/input-constraints/NumberFormatConstraint.js"],"sourcesContent":["// @flow\nimport DecimalFormat from \"../../../utils/number/DecimalFormat\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../../utils/number/parseNumbers\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst INVALID_INTEGER_ID = \"Constraint.Number.InvalidInteger\";\n\n/**\n */\nclass NumberFormatConstraint implements IConstraintModel {\n _decimalSeparator: string = \",\";\n _groupingSeparator: string = \".\";\n _format: string = \"0\";\n\n /**\n */\n constructor(\n groupingSeparator: string,\n decimalSeparator: string,\n format: string | null\n ) {\n this._decimalSeparator = decimalSeparator;\n this._groupingSeparator = groupingSeparator;\n this._format = format ?? \"0\";\n }\n\n /**\n */\n get id(): string {\n if (this.maxDigits === 0) {\n return INVALID_INTEGER_ID;\n }\n\n return \"Constraint.Number.InvalidDecimal\";\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get maxDigits(): number {\n return this.format ? new DecimalFormat(this.format).maxFrac : 0;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n if (this.id === INVALID_INTEGER_ID) {\n return \"Must be a whole number\";\n }\n\n return \"The value is not correct numeric format\";\n }\n\n /**\n */\n get parameters(): { \"max-digits\": number } {\n return {\n \"max-digits\": this.maxDigits,\n };\n }\n\n /**\n */\n isInteger(value: number): boolean {\n return Number.isInteger(value);\n }\n\n /**\n */\n getNumberOfDigits(value: number): number {\n if (Math.floor(value) === value) {\n return 0;\n }\n\n const stringValue = parseNumberToString(value);\n return stringValue.split(\".\")[1].length;\n }\n\n /**\n */\n isValidDecimal(value: number): boolean {\n if (isNaN(value)) {\n return false;\n }\n\n const numberOfDigits = this.getNumberOfDigits(value);\n\n return (\n !isNaN(parseFloat(value)) &&\n isFinite(value) &&\n numberOfDigits <= this.maxDigits\n );\n }\n\n /**\n */\n validate(value: string | number): boolean {\n if (\n this.maxDigits === 0 &&\n this.decimalSeparator !== \"\" &&\n value.toString().includes(this.decimalSeparator)\n ) {\n return false;\n }\n\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n\n if (this.id === INVALID_INTEGER_ID) {\n return this.isInteger(parsedNumber);\n }\n\n return this.isValidDecimal(parsedNumber);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberFormatConstraint;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAOA,IAAMA,kBAAkB,GAAG,kCAA3B;AAEA;AACA;;IACMC,sB;EAKJ;AACF;EACE,gCACEC,iBADF,EAEEC,gBAFF,EAGEC,MAHF,EAIE;IAAA;IAAA,yDAV0B,GAU1B;IAAA,0DAT2B,GAS3B;IAAA,+CARgB,GAQhB;IACA,KAAKC,iBAAL,GAAyBF,gBAAzB;IACA,KAAKG,kBAAL,GAA0BJ,iBAA1B;IACA,KAAKK,OAAL,GAAeH,MAAf,aAAeA,MAAf,cAAeA,MAAf,GAAyB,GAAzB;EACD;EAED;AACF;;;;;SACE,eAAiB;MACf,IAAI,KAAKI,SAAL,KAAmB,CAAvB,EAA0B;QACxB,OAAOR,kBAAP;MACD;;MAED,OAAO,kCAAP;IACD;IAED;AACF;;;;SACE,eAA+B;MAC7B,OAAO,KAAKK,iBAAZ;IACD;IAED;AACF;;;;SACE,eAAgC;MAC9B,OAAO,KAAKC,kBAAZ;IACD;IAED;AACF;;;;SACE,eAAqB;MACnB,OAAO,KAAKC,OAAZ;IACD;IAED;AACF;;;;SACE,eAAwB;MACtB,OAAO,KAAKH,MAAL,GAAc,IAAIK,sBAAJ,CAAkB,KAAKL,MAAvB,EAA+BM,OAA7C,GAAuD,CAA9D;IACD;IAED;AACF;;;;WACE,yBAAyB;MACvB,OAAO,IAAP;IACD;IAED;AACF;;;;SACE,eAA6B;MAC3B,IAAI,KAAKC,EAAL,KAAYX,kBAAhB,EAAoC;QAClC,OAAO,wBAAP;MACD;;MAED,OAAO,yCAAP;IACD;IAED;AACF;;;;SACE,eAA2C;MACzC,OAAO;QACL,cAAc,KAAKQ;MADd,CAAP;IAGD;IAED;AACF;;;;WACE,mBAAUI,KAAV,EAAkC;MAChC,OAAO,wBAAiBA,KAAjB,CAAP;IACD;IAED;AACF;;;;WACE,2BAAkBA,KAAlB,EAAyC;MACvC,IAAIC,IAAI,CAACC,KAAL,CAAWF,KAAX,MAAsBA,KAA1B,EAAiC;QAC/B,OAAO,CAAP;MACD;;MAED,IAAMG,WAAW,GAAG,IAAAC,iCAAA,EAAoBJ,KAApB,CAApB;MACA,OAAOG,WAAW,CAACE,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BC,MAAjC;IACD;IAED;AACF;;;;WACE,wBAAeN,KAAf,EAAuC;MACrC,IAAIO,KAAK,CAACP,KAAD,CAAT,EAAkB;QAChB,OAAO,KAAP;MACD;;MAED,IAAMQ,cAAc,GAAG,KAAKC,iBAAL,CAAuBT,KAAvB,CAAvB;MAEA,OACE,CAACO,KAAK,CAACG,UAAU,CAACV,KAAD,CAAX,CAAN,IACAW,QAAQ,CAACX,KAAD,CADR,IAEAQ,cAAc,IAAI,KAAKZ,SAHzB;IAKD;IAED;AACF;;;;WACE,kBAASI,KAAT,EAA0C;MAAA;;MACxC,IACE,KAAKJ,SAAL,KAAmB,CAAnB,IACA,KAAKL,gBAAL,KAA0B,EAD1B,IAEA,kCAAAS,KAAK,CAACY,QAAN,mBAA0B,KAAKrB,gBAA/B,CAHF,EAIE;QACA,OAAO,KAAP;MACD;;MAED,IAAMsB,YAAY,GAAG,IAAAC,2BAAA,EACnBd,KADmB,EAEnB,KAAKV,iBAFc,EAGnB,KAAKC,gBAHc,CAArB;;MAMA,IAAI,KAAKQ,EAAL,KAAYX,kBAAhB,EAAoC;QAClC,OAAO,KAAK2B,SAAL,CAAeF,YAAf,CAAP;MACD;;MAED,OAAO,KAAKG,cAAL,CAAoBH,YAApB,CAAP;IACD;IAED;AACF;;;;SACE,eAAqC;MACnC,OAAO,KAAP;IACD;;;;;eAGYxB,sB"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCollection.js","names":["BaseCollection","initCollection","collection","_collection","items","all","Array","isArray","itemIndex","length","hasItems","index","callbackfn","thisArg","some","every","forEach","compareFn","deepcopy"],"sources":["../../../src/models/base/BaseCollection.js"],"sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: T\n ): Array<U> {\n return this.collection.map<U, ?T>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): this {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseCollection;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BaseCollection.js","names":["BaseCollection","initCollection","collection","_collection","items","all","Array","isArray","itemIndex","length","hasItems","index","callbackfn","thisArg","some","every","forEach","compareFn","deepcopy","cloneDeep","clone"],"sources":["../../../src/models/base/BaseCollection.js"],"sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: T\n ): Array<U> {\n return this.collection.map<U, ?T>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): this {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseCollection;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseModel.js","names":["BaseModel","data","contributions","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","propName","defaultValue","layouthint","length","_connectKey","key","connectKey","deepcopy"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n\n /**\n * constructor\n */\n constructor(data: Object, contributions: Object) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", [])\n );\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n };\n }\n\n /**\n */\n rehydrate(data: Object) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): any {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":";;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AASA;AACA;AACA;IACMA,S;EAMJ;AACF;AACA;EACE,mBAAYC,IAAZ,EAA0BC,aAA1B,EAAiD;IAAA;IAAA;IAAA;IAAA;IAAA;IAC/C,KAAKC,KAAL,GAAaF,IAAb;IACA,KAAKG,cAAL,GAAsBF,aAAtB;IACA,KAAKG,WAAL,GAAmB,IAAIC,6BAAJ,CACjB,KAAKC,eAAL,CAAqB,YAArB,EAAmC,EAAnC,CADiB,CAAnB;EAGD;EAED;AACF;AACA;;;;;SACE,eAAmB;MACjB,OAAO,KAAKJ,KAAL,IAAc,EAArB;IACD;IAED;AACF;;;;WACE,iBAAQK,QAAR,EAAyD;MAAA;;MAAA,IAA/BC,YAA+B,uEAAX,IAAW;MACvD,8BAAO,KAAKR,IAAL,CAAUO,QAAV,CAAP,qEAA8BC,YAA9B;IACD;IAED;AACF;AACA;;;;SACE,eAA4B;MAC1B,OAAO,KAAKL,cAAL,IAAuB,EAA9B;IACD;IAED;AACF;;;;WACE,yBAAgBI,QAAhB,EAAiE;MAAA;;MAAA,IAA/BC,YAA+B,uEAAX,IAAW;MAC/D,gCAAO,KAAKP,aAAL,CAAmBM,QAAnB,CAAP,yEAAuCC,YAAvC;IACD;IAED;AACF;AACA;;;;SACE,eAAuC;MACrC,OAAO,KAAKJ,WAAZ;IACD;IAED;AACF;AACA;;SACE,aAAeK,UAAf,EAA0C;MACxC,KAAKL,WAAL,GAAmB,IAAIC,6BAAJ,CAAyBI,UAAzB,CAAnB;IACD;IAED;AACF;AACA;;;;SACE,eAAuB;MACrB,OAAO,mBAAY,KAAKT,IAAjB,EAAuBU,MAAvB,GAAgC,CAAvC;IACD;IAED;AACF;;;;;IAKE;AACF;IACE,eAAyB;MACvB,OAAO,KAAKC,WAAZ;IACD;IAED;AACF;;SAXE,aAAeC,GAAf,EAA4B;MAC1B,KAAKD,WAAL,GAAmBC,GAAnB;IACD;;;WAUD,qBAA+B;MAC7B,OAAO;QACLZ,IAAI,EAAE,KAAKE,KADN;QAELD,aAAa,EAAE,KAAKE,cAFf;QAGLU,UAAU,EAAE,KAAKF;MAHZ,CAAP;IAKD;IAED;AACF;;;;WACE,mBAAUX,IAAV,EAAwB;MACtB,KAAKW,WAAL,GAAmBX,IAAI,CAACa,UAAxB;IACD;IAED;AACF;AACA;;;;WACE,iBAAsC;MAAA,IAAhCC,QAAgC,uEAAZ,KAAY;;MACpC;MACA,IAAIA,QAAJ,EAAc;QACZ,OAAO,wBAAU,IAAV,CAAP;MACD;;MAED,OAAO,qBAAM,IAAN,CAAP;IACD;;;;;eAGYf,S"}
1
+ {"version":3,"file":"BaseModel.js","names":["BaseModel","data","contributions","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","propName","defaultValue","layouthint","length","_connectKey","key","connectKey","deepcopy","cloneDeep","clone"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n\n /**\n * constructor\n */\n constructor(data: Object, contributions: Object) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", [])\n );\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n };\n }\n\n /**\n */\n rehydrate(data: Object) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): any {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":";;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AASA;AACA;AACA;IACMA,S;EAMJ;AACF;AACA;EACE,mBAAYC,IAAZ,EAA0BC,aAA1B,EAAiD;IAAA;IAAA;IAAA;IAAA;IAAA;IAC/C,KAAKC,KAAL,GAAaF,IAAb;IACA,KAAKG,cAAL,GAAsBF,aAAtB;IACA,KAAKG,WAAL,GAAmB,IAAIC,6BAAJ,CACjB,KAAKC,eAAL,CAAqB,YAArB,EAAmC,EAAnC,CADiB,CAAnB;EAGD;EAED;AACF;AACA;;;;;SACE,eAAmB;MACjB,OAAO,KAAKJ,KAAL,IAAc,EAArB;IACD;IAED;AACF;;;;WACE,iBAAQK,QAAR,EAAyD;MAAA;;MAAA,IAA/BC,YAA+B,uEAAX,IAAW;MACvD,8BAAO,KAAKR,IAAL,CAAUO,QAAV,CAAP,qEAA8BC,YAA9B;IACD;IAED;AACF;AACA;;;;SACE,eAA4B;MAC1B,OAAO,KAAKL,cAAL,IAAuB,EAA9B;IACD;IAED;AACF;;;;WACE,yBAAgBI,QAAhB,EAAiE;MAAA;;MAAA,IAA/BC,YAA+B,uEAAX,IAAW;MAC/D,gCAAO,KAAKP,aAAL,CAAmBM,QAAnB,CAAP,yEAAuCC,YAAvC;IACD;IAED;AACF;AACA;;;;SACE,eAAuC;MACrC,OAAO,KAAKJ,WAAZ;IACD;IAED;AACF;AACA;;SACE,aAAeK,UAAf,EAA0C;MACxC,KAAKL,WAAL,GAAmB,IAAIC,6BAAJ,CAAyBI,UAAzB,CAAnB;IACD;IAED;AACF;AACA;;;;SACE,eAAuB;MACrB,OAAO,mBAAY,KAAKT,IAAjB,EAAuBU,MAAvB,GAAgC,CAAvC;IACD;IAED;AACF;;;;;IAKE;AACF;IACE,eAAyB;MACvB,OAAO,KAAKC,WAAZ;IACD;IAED;AACF;;SAXE,aAAeC,GAAf,EAA4B;MAC1B,KAAKD,WAAL,GAAmBC,GAAnB;IACD;;;WAUD,qBAA+B;MAC7B,OAAO;QACLZ,IAAI,EAAE,KAAKE,KADN;QAELD,aAAa,EAAE,KAAKE,cAFf;QAGLU,UAAU,EAAE,KAAKF;MAHZ,CAAP;IAKD;IAED;AACF;;;;WACE,mBAAUX,IAAV,EAAwB;MACtB,KAAKW,WAAL,GAAmBX,IAAI,CAACa,UAAxB;IACD;IAED;AACF;AACA;;;;WACE,iBAAsC;MAAA,IAAhCC,QAAgC,uEAAZ,KAAY;;MACpC;MACA,IAAIA,QAAJ,EAAc;QACZ,OAAO,IAAAC,kBAAA,EAAU,IAAV,CAAP;MACD;;MAED,OAAO,IAAAC,eAAA,EAAM,IAAN,CAAP;IACD;;;;;eAGYjB,S"}
@@ -1 +1 @@
1
- {"version":3,"file":"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"],"sources":["../../../src/models/caseview/CaseViewModel.js"],"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"],"mappings":"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"}
1
+ {"version":3,"file":"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"],"sources":["../../../src/models/caseview/CaseViewModel.js"],"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"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BusinessScenarioModel.js","names":["BusinessScenarioModel","childModelLinks","scenarioStepLinks","relationsCollection","all","relation","direction","isOfConceptType","concept","concepttypeHref","path","asLinkModel","length","push","models","conceptTypeModel","model","ConceptTypeDetailModel","conceptType","setChildModels","scenarioSteps","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","_links","concepttype","href","conceptTypeHref","settingName","pathToKmt","conceptTypeSettings","STEP","PERSONA","SCENARIO","Array","isArray","conceptTypeSetting"],"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return BusinessScenarioModel.isOfConceptType(\n data?.data?._links?.concepttype?.href,\n \"SCENARIO\"\n );\n }\n\n /**\n */\n static isOfConceptType(\n conceptTypeHref: ?string,\n settingName: \"STEP\" | \"PERSONA\" | \"SCENARIO\"\n ): boolean {\n if (!conceptTypeHref) {\n return false;\n }\n\n const pathToKmt = \"/Library/KMTs/Business scenarios.bixml\";\n\n const conceptTypeSettings = {\n STEP: getSetting(\"BUSINESS_SCENARIO_STEP_CONCEPT_TYPE\", [\n `${pathToKmt}/ScenarioStep`,\n ]),\n PERSONA: getSetting(\"BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE\", [\n `${pathToKmt}/Persona`,\n ]),\n SCENARIO: getSetting(\"BUSINESS_SCENARIO_CONCEPT_TYPE\", [\n `${pathToKmt}/BusinessScenario`,\n ]),\n };\n\n return (\n Array.isArray(conceptTypeSettings[settingName]) &&\n conceptTypeSettings[settingName].some((conceptTypeSetting) =>\n conceptTypeHref.endsWith(conceptTypeSetting)\n )\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = super.getInitialChildModelLinks();\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n \"STEP\"\n )\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n const conceptTypeModel: ?ConceptTypeDetailModel = models.find(\n (model) => model instanceof ConceptTypeDetailModel\n );\n\n if (conceptTypeModel) {\n this.conceptType = conceptTypeModel;\n }\n\n this.relationsCollection.setChildModels(models);\n\n const scenarioSteps = [];\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n BusinessScenarioModel.isOfConceptType(\n model.conceptType?.selfhref.path,\n \"STEP\"\n )\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n \"PERSONA\"\n )\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BusinessScenarioModel.js","names":["BusinessScenarioModel","childModelLinks","scenarioStepLinks","relationsCollection","all","relation","direction","isOfConceptType","concept","concepttypeHref","path","asLinkModel","length","push","models","conceptTypeModel","model","ConceptTypeDetailModel","conceptType","setChildModels","scenarioSteps","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","_links","concepttype","href","conceptTypeHref","settingName","pathToKmt","conceptTypeSettings","STEP","getSetting","PERSONA","SCENARIO","Array","isArray","conceptTypeSetting"],"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return BusinessScenarioModel.isOfConceptType(\n data?.data?._links?.concepttype?.href,\n \"SCENARIO\"\n );\n }\n\n /**\n */\n static isOfConceptType(\n conceptTypeHref: ?string,\n settingName: \"STEP\" | \"PERSONA\" | \"SCENARIO\"\n ): boolean {\n if (!conceptTypeHref) {\n return false;\n }\n\n const pathToKmt = \"/Library/KMTs/Business scenarios.bixml\";\n\n const conceptTypeSettings = {\n STEP: getSetting(\"BUSINESS_SCENARIO_STEP_CONCEPT_TYPE\", [\n `${pathToKmt}/ScenarioStep`,\n ]),\n PERSONA: getSetting(\"BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE\", [\n `${pathToKmt}/Persona`,\n ]),\n SCENARIO: getSetting(\"BUSINESS_SCENARIO_CONCEPT_TYPE\", [\n `${pathToKmt}/BusinessScenario`,\n ]),\n };\n\n return (\n Array.isArray(conceptTypeSettings[settingName]) &&\n conceptTypeSettings[settingName].some((conceptTypeSetting) =>\n conceptTypeHref.endsWith(conceptTypeSetting)\n )\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = super.getInitialChildModelLinks();\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n \"STEP\"\n )\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n const conceptTypeModel: ?ConceptTypeDetailModel = models.find(\n (model) => model instanceof ConceptTypeDetailModel\n );\n\n if (conceptTypeModel) {\n this.conceptType = conceptTypeModel;\n }\n\n this.relationsCollection.setChildModels(models);\n\n const scenarioSteps = [];\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n BusinessScenarioModel.isOfConceptType(\n model.conceptType?.selfhref.path,\n \"STEP\"\n )\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n \"PERSONA\"\n )\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;AAOA;AACA;IACMA,qB;;;;;;;;;;;;;;;;;;;;;;;;IAGJ;AACF;IACE,eAAmB;MACjB,OAAO,kBAAP;IACD;IAED;AACF;;;;;IAwCE;AACF;IACE,qCAA8C;MAAA;;MAC5C,IAAMC,eAAe,mIAArB;MAEA,IAAMC,iBAAiB,GAAG,oEAAKC,mBAAL,CAAyBC,GAAzB,kBAEtB,UAACC,QAAD;QAAA;;QAAA,OACEA,QAAQ,CAACC,SAAT,KAAuB,UAAvB,IACAN,qBAAqB,CAACO,eAAtB,0BACEF,QAAQ,CAACG,OAAT,CAAiBC,eADnB,0DACE,sBAAkCC,IADpC,EAEE,MAFF,CAFF;MAAA,CAFsB,mBASnB,UAACL,QAAD;QAAA,OAAcA,QAAQ,CAACG,OAAT,CAAiBG,WAAjB,EAAd;MAAA,CATmB,CAA1B;;MAWA,IAAIT,iBAAiB,CAACU,MAAlB,GAA2B,CAA/B,EAAkC;QAChCX,eAAe,CAACY,IAAhB,OAAAZ,eAAe,mCAASC,iBAAT,EAAf;MACD;;MAED,OAAOD,eAAP;IACD;IAED;AACF;;;;WACE,wBAAea,MAAf,EAA8C;MAC5C;MACA,IAAMC,gBAAyC,GAAG,mBAAAD,MAAM,MAAN,CAAAA,MAAM,EACtD,UAACE,KAAD;QAAA,OAAWA,KAAK,YAAYC,+BAA5B;MAAA,CADsD,CAAxD;;MAIA,IAAIF,gBAAJ,EAAsB;QACpB,KAAKG,WAAL,GAAmBH,gBAAnB;MACD;;MAED,KAAKZ,mBAAL,CAAyBgB,cAAzB,CAAwCL,MAAxC;MAEA,IAAMM,aAAa,GAAG,EAAtB;;MACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGP,MAAM,CAACF,MAA3B,EAAmCS,CAAC,EAApC,EAAwC;QAAA;;QACtC,IAAML,KAAK,GAAGF,MAAM,CAACO,CAAD,CAApB;;QAEA,IACEL,KAAK,YAAYM,4BAAjB,IACAtB,qBAAqB,CAACO,eAAtB,uBACES,KAAK,CAACE,WADR,uDACE,mBAAmBK,QAAnB,CAA4Bb,IAD9B,EAEE,MAFF,CAFF,EAME;UACAU,aAAa,CAACP,IAAd,CAAmBG,KAAnB;QACD;MACF;;MAED,KAAKI,aAAL,GAAqBA,aAArB;IACD;IAED;AACF;;;;;IAKE;AACF;IACE,eAA+C;MAC7C,OAAO,KAAKI,cAAZ;IACD;IAED;AACF;;SAXE,aAAkBV,MAAlB,EAAqD;MACnD,KAAKU,cAAL,GAAsBV,MAAtB;IACD;;;SAUD,eAAsC;MACpC,IAAMW,MAAM,GAAG,EAAf;MAEA,KAAKL,aAAL,CAAmBM,OAAnB,CAA2B,UAACC,YAAD,EAAkB;QAAA;;QAC3C,IAAMC,gBAAgB,GAAG,+BAAAD,YAAY,CAACxB,mBAAb,kBACvB,UAACE,QAAD;UAAA;;UAAA,OACEA,QAAQ,CAACC,SAAT,KAAuB,UAAvB,IACAN,qBAAqB,CAACO,eAAtB,2BACEF,QAAQ,CAACG,OAAT,CAAiBC,eADnB,2DACE,uBAAkCC,IADpC,EAEE,SAFF,CAFF;QAAA,CADuB,CAAzB;QASA,IAAMmB,kBAAkB,GACtBD,gBAAgB,IAChB,CAACH,MAAM,CAACK,IAAP,CAAY,UAACC,KAAD;UAAA,OAAWA,KAAK,CAACC,GAAN,KAAcJ,gBAAgB,CAACpB,OAAjB,CAAyBwB,GAAlD;QAAA,CAAZ,CAFH;;QAIA,IAAIJ,gBAAgB,IAAIC,kBAAxB,EAA4C;UAC1CJ,MAAM,CAACZ,IAAP,CAAYe,gBAAgB,CAACpB,OAA7B;QACD;MACF,CAjBD;MAmBA,OAAOiB,MAAP;IACD;;;WAnID,2BAAyBQ,IAAzB,EAA2D;MAAA;;MACzD,OAAOjC,qBAAqB,CAACO,eAAtB,CACL0B,IADK,aACLA,IADK,qCACLA,IAAI,CAAEA,IADD,oEACL,WAAYC,MADP,+EACL,kBAAoBC,WADf,0DACL,sBAAiCC,IAD5B,EAEL,UAFK,CAAP;IAID;IAED;AACF;;;;WACE,yBACEC,eADF,EAEEC,WAFF,EAGW;MACT,IAAI,CAACD,eAAL,EAAsB;QACpB,OAAO,KAAP;MACD;;MAED,IAAME,SAAS,GAAG,wCAAlB;MAEA,IAAMC,mBAAmB,GAAG;QAC1BC,IAAI,EAAE,IAAAC,oBAAA,EAAW,qCAAX,EAAkD,WACnDH,SADmD,mBAAlD,CADoB;QAI1BI,OAAO,EAAE,IAAAD,oBAAA,EAAW,wCAAX,EAAqD,WACzDH,SADyD,cAArD,CAJiB;QAO1BK,QAAQ,EAAE,IAAAF,oBAAA,EAAW,gCAAX,EAA6C,WAClDH,SADkD,uBAA7C;MAPgB,CAA5B;MAYA,OACEM,KAAK,CAACC,OAAN,CAAcN,mBAAmB,CAACF,WAAD,CAAjC,KACAE,mBAAmB,CAACF,WAAD,CAAnB,CAAiCR,IAAjC,CAAsC,UAACiB,kBAAD;QAAA,OACpC,uBAAAV,eAAe,MAAf,CAAAA,eAAe,EAAUU,kBAAV,CADqB;MAAA,CAAtC,CAFF;IAMD;;;EAhDiCzB,4B;;eAiJrBtB,qB"}