@beinformed/ui 1.47.2 → 1.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/esm/constants/Constants.js.map +1 -1
- package/esm/constants/Settings.js.map +1 -1
- package/esm/exceptions/FetchException.js.map +1 -1
- package/esm/exceptions/NetworkException.js.map +1 -1
- package/esm/exceptions/NotFoundException.js.map +1 -1
- package/esm/exceptions/TimeoutException.js.map +1 -1
- package/esm/exceptions/UnauthorizedException.js.map +1 -1
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/i18n/Locale.js.map +1 -1
- package/esm/i18n/Locales.js.map +1 -1
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/actions/ActionModel.js.map +1 -1
- package/esm/models/attributes/AttributeCollection.js.map +1 -1
- package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/AttributeSetModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
- package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
- package/esm/models/concepts/ConceptRelationModel.js +24 -5
- package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
- package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/esm/models/links/LinkCollection.js.map +1 -1
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/models/parameter/Parameter.js.map +1 -1
- package/esm/models/sorting/SortOptionModel.js.map +1 -1
- package/esm/modularui/Authenticate.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/react/utils.js.map +1 -1
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-client/contextPath.js.map +1 -1
- package/esm/react-server/contextPath.js.map +1 -1
- package/esm/react-server/htmlpage.js.map +1 -1
- package/esm/react-server/requestInformation.js.map +1 -1
- package/esm/react-server/serverUtil.js.map +1 -1
- package/esm/react-theme/createTheme.js.map +1 -1
- package/esm/react-theme/utils/background.js.map +1 -1
- package/esm/react-theme/utils/contrast.js.map +1 -1
- package/esm/react-theme/utils/corners.js.map +1 -1
- package/esm/react-theme/utils/spacers.js.map +1 -1
- package/esm/react-theme/utils/themeProps.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/actions/Preferences.js.map +1 -1
- package/esm/redux/connectors/ConceptDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
- package/esm/redux/connectors/Form.js.map +1 -1
- package/esm/utils/browser/Cache.js.map +1 -1
- package/esm/utils/fetch/serverFetch.js.map +1 -1
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/createHref.js.map +1 -1
- package/esm/utils/helpers/repositoryResource.js.map +1 -1
- package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
- package/esm/utils/number/DecimalFormat.js.map +1 -1
- package/esm/utils/number/formatValue.js.map +1 -1
- package/lib/constants/Constants.js.map +1 -1
- package/lib/constants/Settings.js.map +1 -1
- package/lib/exceptions/FetchException.js.map +1 -1
- package/lib/exceptions/NetworkException.js.map +1 -1
- package/lib/exceptions/NotFoundException.js.map +1 -1
- package/lib/exceptions/TimeoutException.js.map +1 -1
- package/lib/exceptions/UnauthorizedException.js.map +1 -1
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/i18n/Locales.js.map +1 -1
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/actions/ActionModel.js.map +1 -1
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/AttributeSetModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
- package/lib/models/concepts/ConceptRelationModel.js +24 -5
- package/lib/models/concepts/ConceptRelationModel.js.flow +25 -5
- package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
- package/lib/models/concepts/__mock__/relation_with_props_and_tf_data.js.flow +27 -0
- package/lib/models/concepts/__tests__/ConceptRelationModel.spec.js.flow +44 -0
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/lib/models/links/LinkCollection.js.map +1 -1
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/parameter/Parameter.js.map +1 -1
- package/lib/models/sorting/SortOptionModel.js.map +1 -1
- package/lib/modularui/Authenticate.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/react/utils.js.map +1 -1
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-client/contextPath.js.map +1 -1
- package/lib/react-server/contextPath.js.map +1 -1
- package/lib/react-server/htmlpage.js.map +1 -1
- package/lib/react-server/requestInformation.js.map +1 -1
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/react-theme/createTheme.js.map +1 -1
- package/lib/react-theme/utils/background.js.map +1 -1
- package/lib/react-theme/utils/contrast.js.map +1 -1
- package/lib/react-theme/utils/corners.js.map +1 -1
- package/lib/react-theme/utils/spacers.js.map +1 -1
- package/lib/react-theme/utils/themeProps.js.map +1 -1
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/Preferences.js.map +1 -1
- package/lib/redux/connectors/ConceptDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
- package/lib/redux/connectors/Form.js.map +1 -1
- package/lib/utils/browser/Cache.js.map +1 -1
- package/lib/utils/fetch/serverFetch.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/createHref.js.map +1 -1
- package/lib/utils/helpers/repositoryResource.js.map +1 -1
- package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
- package/lib/utils/number/DecimalFormat.js.map +1 -1
- package/lib/utils/number/formatValue.js.map +1 -1
- package/package.json +1 -1
- package/src/models/concepts/ConceptRelationModel.js +25 -5
- package/src/models/concepts/__mock__/relation_with_props_and_tf_data.js +27 -0
- package/src/models/concepts/__mock__/relation_with_props_and_tf_data.json +67 -0
- package/src/models/concepts/__tests__/ConceptRelationModel.spec.js +44 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadAttributeModel.js","names":["ConstraintCollection","StringAttributeModel","FileExtensionConstraint","FileSizeConstraint","UNCHANGED","UploadAttributeModel","constructor","arguments","_defineProperty","isApplicableModel","contributions","type","multiple","getContribution","initialTotalFileSize","_initialTotalFileSize","maxTotalFileSize","_maxTotalFileSize","currentFilesize","uploadedFileSize","maxFileSize","uploadMaxFileSize","_Object$keys","files","length","accumulatedFileSize","forEach","fileName","file","size","uploadConstraints","_context","_context2","mimeTypes","allowedMimeTypes","_filterInstanceProperty","call","mimeType","extensions","allowedExtensions","extension","fileTypes","_mapInstanceProperty","fileSize","isMaxTotal","undefined","acceptedFiles","_context3","_context4","_context5","addConstraints","constraints","add","hasFilesizeConstraint","_files","update","value","_context6","JSON","parse","inputvalue","token","join","error","updateLastModification","readonlyvalue","initvalue","toString","getValue","hasValue","_value","mergeAttribute","oldAttribute","isValid","_JSON$stringify"],"sources":["../../../src/models/attributes/UploadAttributeModel.js"],"sourcesContent":["// @flow\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport FileExtensionConstraint from \"./input-constraints/FileExtensionConstraint\";\nimport FileSizeConstraint from \"./input-constraints/FileSizeConstraint\";\n\nimport type {\n AttributeType,\n FilesType,\n FiletypeConstraintsType,\n FilesizeConstraintsType,\n} from \"../types\";\n\nconst UNCHANGED = \"UNCHANGED\";\n\n/**\n * Upload attribute\n */\nexport default class UploadAttributeModel extends StringAttributeModel {\n _files: FilesType;\n _initialTotalFileSize: number;\n _maxTotalFileSize: number;\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"binary\";\n }\n\n /**\n */\n get type(): string {\n return \"upload\";\n }\n\n /**\n * Retrieve single or multi upload\n */\n get multiple(): boolean {\n return this.getContribution(\"multiple\", false);\n }\n\n /**\n */\n get initialTotalFileSize(): number {\n return this._initialTotalFileSize || 0;\n }\n\n /**\n */\n set initialTotalFileSize(initialTotalFileSize: number) {\n this._initialTotalFileSize = initialTotalFileSize;\n }\n\n /**\n */\n get maxTotalFileSize(): number {\n return this._maxTotalFileSize;\n }\n\n /**\n */\n set maxTotalFileSize(maxTotalFileSize: number) {\n this._maxTotalFileSize = maxTotalFileSize;\n }\n\n /**\n */\n get currentFilesize(): number {\n return this.initialTotalFileSize + this.uploadedFileSize;\n }\n\n /**\n */\n get maxFileSize(): ?number {\n if (this.maxTotalFileSize) {\n const uploadMaxFileSize = this.maxTotalFileSize - this.currentFilesize;\n if (uploadMaxFileSize < 0) {\n return 0;\n }\n\n return uploadMaxFileSize;\n }\n\n return this.contributions.uploadMaxFileSize;\n }\n\n /**\n */\n get uploadedFileSize(): number {\n if (Object.keys(this.files).length === 0) {\n return 0;\n }\n\n let accumulatedFileSize = 0;\n Object.keys(this.files).forEach((fileName) => {\n const file = this.files[fileName];\n if (file.size) {\n accumulatedFileSize += file.size;\n }\n });\n return accumulatedFileSize;\n }\n\n /**\n * Upload constraints\n */\n get uploadConstraints(): {\n fileTypes: FiletypeConstraintsType,\n maxFileSize: FilesizeConstraintsType,\n acceptedFiles: Array<string>,\n } {\n const mimeTypes = this.contributions.allowedMimeTypes\n ? this.contributions.allowedMimeTypes.filter(\n (mimeType) => mimeType !== \"[...]\",\n )\n : [];\n const extensions = this.contributions.allowedExtensions\n ? this.contributions.allowedExtensions.filter(\n (extension) => extension !== \"[...]\",\n )\n : [];\n\n const fileTypes: FiletypeConstraintsType = extensions.map((extension) => ({\n extensions: [extension],\n mimeTypes,\n }));\n\n return {\n fileTypes,\n maxFileSize: {\n fileSize: this.maxFileSize,\n maxTotalFileSize: this.maxTotalFileSize,\n isMaxTotal: this.maxTotalFileSize !== undefined,\n },\n acceptedFiles: this.acceptedFiles,\n };\n }\n\n /**\n * Array of accepted file extensions and mime types.\n * Convenience method for accept attribute of file input html control\n */\n get acceptedFiles(): Array<string> {\n const mimeTypes = this.contributions.allowedMimeTypes\n ? this.contributions.allowedMimeTypes.filter(\n (mimeType) => mimeType !== \"[...]\",\n )\n : [];\n const extensions = this.contributions.allowedExtensions\n ? this.contributions.allowedExtensions\n .filter((extension) => extension !== \"[...]\")\n .map((extension) => `.${extension}`)\n : [];\n\n return [...extensions, ...mimeTypes];\n }\n\n /**\n * Add upload constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.uploadConstraints.fileTypes.length > 0) {\n constraints.add(\n new FileExtensionConstraint(this.uploadConstraints.fileTypes),\n );\n }\n\n const hasFilesizeConstraint =\n this.uploadConstraints.maxFileSize.isMaxTotal ||\n this.uploadConstraints.maxFileSize.fileSize !== undefined;\n\n if (hasFilesizeConstraint) {\n constraints.add(\n new FileSizeConstraint(this.uploadConstraints.maxFileSize),\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get files(): FilesType {\n return this._files || {};\n }\n\n /**\n */\n set files(files: FilesType) {\n this._files = files;\n }\n\n /**\n * Update the attribute\n */\n update(value: string): UploadAttributeModel {\n if (!value) {\n return this;\n }\n\n // parse to json and handle uploaded file\n // when the input value is a string but not json,\n // we assume that it is just a list of uploaded tokens and copy it as input value\n try {\n const files = JSON.parse(value);\n this.files = files;\n\n this.inputvalue = Object.keys(files)\n .map((fileName) => files[fileName].token)\n .join(\",\");\n } catch (error) {\n if (typeof value === \"string\") {\n this.inputvalue = value;\n }\n }\n\n this.updateLastModification();\n\n return this;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.initvalue) {\n return this.initvalue.toString();\n }\n\n return \"\";\n }\n\n /**\n * Getting the value of the attribute, return unchanged when the uploaded file has not changed\n */\n getValue(): any {\n if (!this.hasValue()) {\n return null;\n }\n\n if (this.initvalue === this.inputvalue) {\n return UNCHANGED;\n }\n\n return this._value;\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n if (\n oldAttribute instanceof UploadAttributeModel &&\n oldAttribute.isValid &&\n oldAttribute.inputvalue !== null\n ) {\n this.update(JSON.stringify(oldAttribute.files));\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"UploadAttributeModel.js","names":["ConstraintCollection","StringAttributeModel","FileExtensionConstraint","FileSizeConstraint","UNCHANGED","UploadAttributeModel","constructor","arguments","_defineProperty","isApplicableModel","contributions","type","multiple","getContribution","initialTotalFileSize","_initialTotalFileSize","maxTotalFileSize","_maxTotalFileSize","currentFilesize","uploadedFileSize","maxFileSize","uploadMaxFileSize","_Object$keys","files","length","accumulatedFileSize","forEach","fileName","file","size","uploadConstraints","_context","_context2","mimeTypes","allowedMimeTypes","_filterInstanceProperty","call","mimeType","extensions","allowedExtensions","extension","fileTypes","_mapInstanceProperty","fileSize","isMaxTotal","undefined","acceptedFiles","_context3","_context4","_context5","addConstraints","constraints","add","hasFilesizeConstraint","_files","update","value","_context6","JSON","parse","inputvalue","token","join","error","updateLastModification","readonlyvalue","initvalue","toString","getValue","hasValue","_value","mergeAttribute","oldAttribute","isValid","_JSON$stringify"],"sources":["../../../src/models/attributes/UploadAttributeModel.js"],"sourcesContent":["// @flow\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport FileExtensionConstraint from \"./input-constraints/FileExtensionConstraint\";\nimport FileSizeConstraint from \"./input-constraints/FileSizeConstraint\";\n\nimport type {\n AttributeType,\n FilesType,\n FiletypeConstraintsType,\n FilesizeConstraintsType,\n} from \"../types\";\n\nconst UNCHANGED = \"UNCHANGED\";\n\n/**\n * Upload attribute\n */\nexport default class UploadAttributeModel extends StringAttributeModel {\n _files: FilesType;\n _initialTotalFileSize: number;\n _maxTotalFileSize: number;\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"binary\";\n }\n\n /**\n */\n get type(): string {\n return \"upload\";\n }\n\n /**\n * Retrieve single or multi upload\n */\n get multiple(): boolean {\n return this.getContribution(\"multiple\", false);\n }\n\n /**\n */\n get initialTotalFileSize(): number {\n return this._initialTotalFileSize || 0;\n }\n\n /**\n */\n set initialTotalFileSize(initialTotalFileSize: number) {\n this._initialTotalFileSize = initialTotalFileSize;\n }\n\n /**\n */\n get maxTotalFileSize(): number {\n return this._maxTotalFileSize;\n }\n\n /**\n */\n set maxTotalFileSize(maxTotalFileSize: number) {\n this._maxTotalFileSize = maxTotalFileSize;\n }\n\n /**\n */\n get currentFilesize(): number {\n return this.initialTotalFileSize + this.uploadedFileSize;\n }\n\n /**\n */\n get maxFileSize(): ?number {\n if (this.maxTotalFileSize) {\n const uploadMaxFileSize = this.maxTotalFileSize - this.currentFilesize;\n if (uploadMaxFileSize < 0) {\n return 0;\n }\n\n return uploadMaxFileSize;\n }\n\n return this.contributions.uploadMaxFileSize;\n }\n\n /**\n */\n get uploadedFileSize(): number {\n if (Object.keys(this.files).length === 0) {\n return 0;\n }\n\n let accumulatedFileSize = 0;\n Object.keys(this.files).forEach((fileName) => {\n const file = this.files[fileName];\n if (file.size) {\n accumulatedFileSize += file.size;\n }\n });\n return accumulatedFileSize;\n }\n\n /**\n * Upload constraints\n */\n get uploadConstraints(): {\n fileTypes: FiletypeConstraintsType,\n maxFileSize: FilesizeConstraintsType,\n acceptedFiles: Array<string>,\n } {\n const mimeTypes = this.contributions.allowedMimeTypes\n ? this.contributions.allowedMimeTypes.filter(\n (mimeType) => mimeType !== \"[...]\",\n )\n : [];\n const extensions = this.contributions.allowedExtensions\n ? this.contributions.allowedExtensions.filter(\n (extension) => extension !== \"[...]\",\n )\n : [];\n\n const fileTypes: FiletypeConstraintsType = extensions.map((extension) => ({\n extensions: [extension],\n mimeTypes,\n }));\n\n return {\n fileTypes,\n maxFileSize: {\n fileSize: this.maxFileSize,\n maxTotalFileSize: this.maxTotalFileSize,\n isMaxTotal: this.maxTotalFileSize !== undefined,\n },\n acceptedFiles: this.acceptedFiles,\n };\n }\n\n /**\n * Array of accepted file extensions and mime types.\n * Convenience method for accept attribute of file input html control\n */\n get acceptedFiles(): Array<string> {\n const mimeTypes = this.contributions.allowedMimeTypes\n ? this.contributions.allowedMimeTypes.filter(\n (mimeType) => mimeType !== \"[...]\",\n )\n : [];\n const extensions = this.contributions.allowedExtensions\n ? this.contributions.allowedExtensions\n .filter((extension) => extension !== \"[...]\")\n .map((extension) => `.${extension}`)\n : [];\n\n return [...extensions, ...mimeTypes];\n }\n\n /**\n * Add upload constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.uploadConstraints.fileTypes.length > 0) {\n constraints.add(\n new FileExtensionConstraint(this.uploadConstraints.fileTypes),\n );\n }\n\n const hasFilesizeConstraint =\n this.uploadConstraints.maxFileSize.isMaxTotal ||\n this.uploadConstraints.maxFileSize.fileSize !== undefined;\n\n if (hasFilesizeConstraint) {\n constraints.add(\n new FileSizeConstraint(this.uploadConstraints.maxFileSize),\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get files(): FilesType {\n return this._files || {};\n }\n\n /**\n */\n set files(files: FilesType) {\n this._files = files;\n }\n\n /**\n * Update the attribute\n */\n update(value: string): UploadAttributeModel {\n if (!value) {\n return this;\n }\n\n // parse to json and handle uploaded file\n // when the input value is a string but not json,\n // we assume that it is just a list of uploaded tokens and copy it as input value\n try {\n const files = JSON.parse(value);\n this.files = files;\n\n this.inputvalue = Object.keys(files)\n .map((fileName) => files[fileName].token)\n .join(\",\");\n } catch (error) {\n if (typeof value === \"string\") {\n this.inputvalue = value;\n }\n }\n\n this.updateLastModification();\n\n return this;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.initvalue) {\n return this.initvalue.toString();\n }\n\n return \"\";\n }\n\n /**\n * Getting the value of the attribute, return unchanged when the uploaded file has not changed\n */\n getValue(): any {\n if (!this.hasValue()) {\n return null;\n }\n\n if (this.initvalue === this.inputvalue) {\n return UNCHANGED;\n }\n\n return this._value;\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n if (\n oldAttribute instanceof UploadAttributeModel &&\n oldAttribute.isValid &&\n oldAttribute.inputvalue !== null\n ) {\n this.update(JSON.stringify(oldAttribute.files));\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MandatoryConstraint.js","names":["MandatoryConstraint","id","hasValidation","defaultMessage","parameters","validate","value","TypeError","isMandatoryConstraint"],"sources":["../../../../src/models/attributes/input-constraints/MandatoryConstraint.js"],"sourcesContent":["// @flow\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass MandatoryConstraint implements IConstraintModel {\n /**\n */\n get id(): string {\n return \"Constraint.Mandatory\";\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Field is mandatory\";\n }\n\n /**\n */\n get parameters(): { ... } {\n return {};\n }\n\n /**\n */\n validate(value: string): boolean {\n if (value == null) {\n return false;\n }\n\n if (typeof value != \"string\") {\n throw new TypeError(\n `isNotEmptyString: Not comparing to string: ${typeof value}`,\n );\n }\n\n return value !== \"\";\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return true;\n }\n}\n\nexport default MandatoryConstraint;\n"],"mappings":"AAGA;AACA;AACA,MAAMA,mBAAmB,CAA6B;EACpD;AACF;EACE,IAAIC,EAAEA,CAAA,EAAW;IACf,OAAO,sBAAsB;EAC/B;;EAEA;AACF;EACEC,aAAaA,CAAA,EAAY;IACvB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,cAAcA,CAAA,EAAW;IAC3B,OAAO,oBAAoB;EAC7B;;EAEA;AACF;EACE,IAAIC,UAAUA,CAAA,EAAY;IACxB,OAAO,CAAC,CAAC;EACX;;EAEA;AACF;EACEC,QAAQA,CAACC,KAAa,EAAW;IAC/B,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,KAAK;IACd;IAEA,IAAI,OAAOA,KAAK,IAAI,QAAQ,EAAE;MAC5B,MAAM,IAAIC,SAAS,
|
|
1
|
+
{"version":3,"file":"MandatoryConstraint.js","names":["MandatoryConstraint","id","hasValidation","defaultMessage","parameters","validate","value","TypeError","isMandatoryConstraint"],"sources":["../../../../src/models/attributes/input-constraints/MandatoryConstraint.js"],"sourcesContent":["// @flow\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass MandatoryConstraint implements IConstraintModel {\n /**\n */\n get id(): string {\n return \"Constraint.Mandatory\";\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Field is mandatory\";\n }\n\n /**\n */\n get parameters(): { ... } {\n return {};\n }\n\n /**\n */\n validate(value: string): boolean {\n if (value == null) {\n return false;\n }\n\n if (typeof value != \"string\") {\n throw new TypeError(\n `isNotEmptyString: Not comparing to string: ${typeof value}`,\n );\n }\n\n return value !== \"\";\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return true;\n }\n}\n\nexport default MandatoryConstraint;\n"],"mappings":"AAGA;AACA;AACA,MAAMA,mBAAmB,CAA6B;EACpD;AACF;EACE,IAAIC,EAAEA,CAAA,EAAW;IACf,OAAO,sBAAsB;EAC/B;;EAEA;AACF;EACEC,aAAaA,CAAA,EAAY;IACvB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,cAAcA,CAAA,EAAW;IAC3B,OAAO,oBAAoB;EAC7B;;EAEA;AACF;EACE,IAAIC,UAAUA,CAAA,EAAY;IACxB,OAAO,CAAC,CAAC;EACX;;EAEA;AACF;EACEC,QAAQA,CAACC,KAAa,EAAW;IAC/B,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,KAAK;IACd;IAEA,IAAI,OAAOA,KAAK,IAAI,QAAQ,EAAE;MAC5B,MAAM,IAAIC,SAAS,CACjB,8CAA8C,OAAOD,KAAK,EAC5D,CAAC;IACH;IAEA,OAAOA,KAAK,KAAK,EAAE;EACrB;;EAEA;AACF;EACE,IAAIE,qBAAqBA,CAAA,EAAY;IACnC,OAAO,IAAI;EACb;AACF;AAEA,eAAeR,mBAAmB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeConstraint.js","names":["DateUtil","DateTimeUtil","TimestampUtil","TimeUtil","RangeConstraint","constructor","startAttribute","endAttribute","_defineProperty","_start","_end","id","hasInclusiveBounds","rangeType","defaultMessage","inclusivePart","hasValidation","parameters","start","end","type","operator","util","doValidate","startValue","endValue","isSameOrBefore","isBefore","validate","inError","value","isMandatoryConstraint"],"sources":["../../../../src/models/attributes/input-constraints/RangeConstraint.js"],"sourcesContent":["// @flow\nimport {\n DateUtil,\n DateTimeUtil,\n TimestampUtil,\n TimeUtil,\n} from \"../../../utils/datetime/DateTimeUtil\";\n\nimport type { AttributeType } from \"../../types\";\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass RangeConstraint implements IConstraintModel {\n _start: AttributeType;\n _end: AttributeType;\n\n /**\n */\n constructor(startAttribute: AttributeType, endAttribute: AttributeType) {\n this._start = startAttribute;\n this._end = endAttribute;\n }\n\n /**\n */\n get id(): string {\n const id = this.hasInclusiveBounds\n ? \"InvalidRangeInclusive\"\n : \"InvalidRange\";\n\n switch (this.rangeType) {\n case \"time\":\n return `Constraint.TimeRange.${id}`;\n case \"date\":\n return `Constraint.DateRange.${id}`;\n case \"datetime\":\n return `Constraint.DateTimeRange.${id}`;\n case \"timestamp\":\n return `Constraint.TimeStampRange.${id}`;\n default:\n return `Constraint.NumberRange.${id}`;\n }\n }\n\n /**\n */\n get defaultMessage(): string {\n const inclusivePart = this.hasInclusiveBounds ? \" or equal to the\" : \"\";\n\n switch (this.rangeType) {\n case \"time\":\n return `Start time must be before${inclusivePart} end time`;\n case \"date\":\n return `Start date must be before${inclusivePart} end date`;\n case \"datetime\":\n return `Start value must be before${inclusivePart} end value`;\n case \"timestamp\":\n return `Start value must be before${inclusivePart} end value`;\n default:\n return `Start value must be less than${inclusivePart} the end value`;\n }\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get parameters(): { ... } {\n return {};\n }\n\n /**\n */\n get start(): AttributeType {\n return this._start;\n }\n\n /**\n */\n get end(): AttributeType {\n return this._end;\n }\n\n /**\n */\n get rangeType(): string {\n return this.start.type;\n }\n\n /**\n */\n get hasInclusiveBounds(): boolean {\n return (\n this.start.operator === \"greaterThanOrEqualTo\" &&\n this.end.operator === \"lessThanOrEqualTo\"\n );\n }\n\n /**\n */\n get util():\n | typeof TimeUtil\n | typeof DateUtil\n | typeof DateTimeUtil\n | typeof TimestampUtil\n | null {\n switch (this.rangeType) {\n case \"time\":\n return TimeUtil;\n case \"date\":\n return DateUtil;\n case \"datetime\":\n return DateTimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n default:\n return null;\n }\n }\n\n /**\n */\n doValidate(startValue: string, endValue: string): boolean {\n if (this.hasInclusiveBounds) {\n if (!this.util) {\n return startValue <= endValue;\n }\n return this.util.isSameOrBefore(startValue, endValue);\n }\n\n if (!this.util) {\n return startValue < endValue;\n }\n\n return this.util.isBefore(startValue, endValue);\n }\n\n /**\n */\n validate(): boolean {\n // only validate range when both attributes are valid\n if (this.start.inError() || this.end.inError()) {\n return true;\n }\n\n return this.doValidate(this.start.value, this.end.value);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default RangeConstraint;\n"],"mappings":";AACA,SACEA,QAAQ,EACRC,YAAY,EACZC,aAAa,EACbC,QAAQ,QACH,sCAAsC;AAK7C;AACA;AACA,MAAMC,eAAe,CAA6B;EAIhD;AACF;EACEC,WAAWA,CAACC,cAA6B,EAAEC,YAA2B,EAAE;IAAAC,eAAA;IAAAA,eAAA;IACtE,IAAI,CAACC,MAAM,GAAGH,cAAc;IAC5B,IAAI,CAACI,IAAI,GAAGH,YAAY;EAC1B;;EAEA;AACF;EACE,IAAII,EAAEA,CAAA,EAAW;IACf,MAAMA,EAAE,GAAG,IAAI,CAACC,kBAAkB,GAC9B,uBAAuB,GACvB,cAAc;IAElB,QAAQ,IAAI,CAACC,SAAS;MACpB,KAAK,MAAM;QACT,
|
|
1
|
+
{"version":3,"file":"RangeConstraint.js","names":["DateUtil","DateTimeUtil","TimestampUtil","TimeUtil","RangeConstraint","constructor","startAttribute","endAttribute","_defineProperty","_start","_end","id","hasInclusiveBounds","rangeType","defaultMessage","inclusivePart","hasValidation","parameters","start","end","type","operator","util","doValidate","startValue","endValue","isSameOrBefore","isBefore","validate","inError","value","isMandatoryConstraint"],"sources":["../../../../src/models/attributes/input-constraints/RangeConstraint.js"],"sourcesContent":["// @flow\nimport {\n DateUtil,\n DateTimeUtil,\n TimestampUtil,\n TimeUtil,\n} from \"../../../utils/datetime/DateTimeUtil\";\n\nimport type { AttributeType } from \"../../types\";\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass RangeConstraint implements IConstraintModel {\n _start: AttributeType;\n _end: AttributeType;\n\n /**\n */\n constructor(startAttribute: AttributeType, endAttribute: AttributeType) {\n this._start = startAttribute;\n this._end = endAttribute;\n }\n\n /**\n */\n get id(): string {\n const id = this.hasInclusiveBounds\n ? \"InvalidRangeInclusive\"\n : \"InvalidRange\";\n\n switch (this.rangeType) {\n case \"time\":\n return `Constraint.TimeRange.${id}`;\n case \"date\":\n return `Constraint.DateRange.${id}`;\n case \"datetime\":\n return `Constraint.DateTimeRange.${id}`;\n case \"timestamp\":\n return `Constraint.TimeStampRange.${id}`;\n default:\n return `Constraint.NumberRange.${id}`;\n }\n }\n\n /**\n */\n get defaultMessage(): string {\n const inclusivePart = this.hasInclusiveBounds ? \" or equal to the\" : \"\";\n\n switch (this.rangeType) {\n case \"time\":\n return `Start time must be before${inclusivePart} end time`;\n case \"date\":\n return `Start date must be before${inclusivePart} end date`;\n case \"datetime\":\n return `Start value must be before${inclusivePart} end value`;\n case \"timestamp\":\n return `Start value must be before${inclusivePart} end value`;\n default:\n return `Start value must be less than${inclusivePart} the end value`;\n }\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get parameters(): { ... } {\n return {};\n }\n\n /**\n */\n get start(): AttributeType {\n return this._start;\n }\n\n /**\n */\n get end(): AttributeType {\n return this._end;\n }\n\n /**\n */\n get rangeType(): string {\n return this.start.type;\n }\n\n /**\n */\n get hasInclusiveBounds(): boolean {\n return (\n this.start.operator === \"greaterThanOrEqualTo\" &&\n this.end.operator === \"lessThanOrEqualTo\"\n );\n }\n\n /**\n */\n get util():\n | typeof TimeUtil\n | typeof DateUtil\n | typeof DateTimeUtil\n | typeof TimestampUtil\n | null {\n switch (this.rangeType) {\n case \"time\":\n return TimeUtil;\n case \"date\":\n return DateUtil;\n case \"datetime\":\n return DateTimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n default:\n return null;\n }\n }\n\n /**\n */\n doValidate(startValue: string, endValue: string): boolean {\n if (this.hasInclusiveBounds) {\n if (!this.util) {\n return startValue <= endValue;\n }\n return this.util.isSameOrBefore(startValue, endValue);\n }\n\n if (!this.util) {\n return startValue < endValue;\n }\n\n return this.util.isBefore(startValue, endValue);\n }\n\n /**\n */\n validate(): boolean {\n // only validate range when both attributes are valid\n if (this.start.inError() || this.end.inError()) {\n return true;\n }\n\n return this.doValidate(this.start.value, this.end.value);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default RangeConstraint;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseLayoutHintRule.js","names":["IllegalStateException","BaseLayoutHintRule","isApplicableForAttribute","attribute","isApplicableForHint","hint","initAttribute","initHint","process","attributes","_defineProperty"],"sources":["../../../../src/models/attributes/layouthint-rules/BaseLayoutHintRule.js"],"sourcesContent":["// @flow\n/* eslint-disable no-unused-vars */\n\nimport { IllegalStateException } from \"../../../exceptions\";\n\nimport type { ILayoutHintRule, AttributeType } from \"../../types\";\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\n/**\n * Abstract class for layout hint rules\n * @abstract\n */\nclass BaseLayoutHintRule implements ILayoutHintRule {\n /**\n * Indicates if the rule implements the isApplicableForHint method\n * @type {boolean}\n * @default false\n */\n static checkHintApplicability: boolean = false;\n\n /**\n * Indicates if the rule instance is applicable for a specific attribute<br>\n */\n static isApplicableForAttribute(attribute: AttributeType): boolean {\n return true;\n }\n\n /**\n * Indicates if the rule instance is applicable for a specific hint<br>\n * Is required when checkHintApplicability is true\n * @abstract\n */\n static isApplicableForHint(hint: string): boolean {\n throw new IllegalStateException(\n `Missing isApplicableForHint implementation on layout hint rule`,\n );\n }\n\n /**\n * Initialize the rule when isApplicableForAttribute is true and checkHintApplicability is false\n * @abstract\n */\n static initAttribute(attribute: AttributeType): ILayoutHintRule {\n throw new IllegalStateException(\n `Missing initAttribute implementation on layout hint rule`,\n );\n }\n\n /**\n * Initialize the rule when isApplicableForAttribute and isApplicableForHint are both true,\n * it receives the hint. Allows a rule to be instantiated multiple times for an attribute,\n * but once for each hint entry\n * @abstract\n */\n static initHint(hint: string): ILayoutHintRule {\n throw new IllegalStateException(\n `Missing initHint implementation on layout hint rule`,\n );\n }\n\n /**\n * Abstract method, implements process of layout hint rule,\n * use this to enhance the applicable attribute or the attribute collection\n * @abstract\n */\n process(attribute: AttributeModel, attributes: AttributeCollection): void {\n throw new IllegalStateException(\n `Missing process implementation on layout hint rule`,\n );\n }\n}\n\nexport default BaseLayoutHintRule;\n"],"mappings":";AACA;AAEA,SAASA,qBAAqB,QAAQ,qBAAqB;AAM3D;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,CAA4B;EAQlD;AACF;AACA;EACE,OAAOC,wBAAwBA,CAACC,SAAwB,EAAW;IACjE,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,mBAAmBA,CAACC,IAAY,EAAW;IAChD,MAAM,IAAIL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"BaseLayoutHintRule.js","names":["IllegalStateException","BaseLayoutHintRule","isApplicableForAttribute","attribute","isApplicableForHint","hint","initAttribute","initHint","process","attributes","_defineProperty"],"sources":["../../../../src/models/attributes/layouthint-rules/BaseLayoutHintRule.js"],"sourcesContent":["// @flow\n/* eslint-disable no-unused-vars */\n\nimport { IllegalStateException } from \"../../../exceptions\";\n\nimport type { ILayoutHintRule, AttributeType } from \"../../types\";\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\n/**\n * Abstract class for layout hint rules\n * @abstract\n */\nclass BaseLayoutHintRule implements ILayoutHintRule {\n /**\n * Indicates if the rule implements the isApplicableForHint method\n * @type {boolean}\n * @default false\n */\n static checkHintApplicability: boolean = false;\n\n /**\n * Indicates if the rule instance is applicable for a specific attribute<br>\n */\n static isApplicableForAttribute(attribute: AttributeType): boolean {\n return true;\n }\n\n /**\n * Indicates if the rule instance is applicable for a specific hint<br>\n * Is required when checkHintApplicability is true\n * @abstract\n */\n static isApplicableForHint(hint: string): boolean {\n throw new IllegalStateException(\n `Missing isApplicableForHint implementation on layout hint rule`,\n );\n }\n\n /**\n * Initialize the rule when isApplicableForAttribute is true and checkHintApplicability is false\n * @abstract\n */\n static initAttribute(attribute: AttributeType): ILayoutHintRule {\n throw new IllegalStateException(\n `Missing initAttribute implementation on layout hint rule`,\n );\n }\n\n /**\n * Initialize the rule when isApplicableForAttribute and isApplicableForHint are both true,\n * it receives the hint. Allows a rule to be instantiated multiple times for an attribute,\n * but once for each hint entry\n * @abstract\n */\n static initHint(hint: string): ILayoutHintRule {\n throw new IllegalStateException(\n `Missing initHint implementation on layout hint rule`,\n );\n }\n\n /**\n * Abstract method, implements process of layout hint rule,\n * use this to enhance the applicable attribute or the attribute collection\n * @abstract\n */\n process(attribute: AttributeModel, attributes: AttributeCollection): void {\n throw new IllegalStateException(\n `Missing process implementation on layout hint rule`,\n );\n }\n}\n\nexport default BaseLayoutHintRule;\n"],"mappings":";AACA;AAEA,SAASA,qBAAqB,QAAQ,qBAAqB;AAM3D;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,CAA4B;EAQlD;AACF;AACA;EACE,OAAOC,wBAAwBA,CAACC,SAAwB,EAAW;IACjE,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,mBAAmBA,CAACC,IAAY,EAAW;IAChD,MAAM,IAAIL,qBAAqB,CAC7B,gEACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACE,OAAOM,aAAaA,CAACH,SAAwB,EAAmB;IAC9D,MAAM,IAAIH,qBAAqB,CAC7B,0DACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOO,QAAQA,CAACF,IAAY,EAAmB;IAC7C,MAAM,IAAIL,qBAAqB,CAC7B,qDACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACEQ,OAAOA,CAACL,SAAyB,EAAEM,UAA+B,EAAQ;IACxE,MAAM,IAAIT,qBAAqB,CAC7B,oDACF,CAAC;EACH;AACF;AAzDE;AACF;AACA;AACA;AACA;AAJEU,eAAA,CADIT,kBAAkB,4BAMmB,KAAK;AAsDhD,eAAeA,kBAAkB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependentAttribute.js","names":["BaseLayoutHintRule","DEPENDENT_ATTRIBUTE_CONTROL","DEPENDENT_ATTRIBUTE","ChoiceAttributeModel","BooleanAttributeModel","ConfigurationException","EQUALS","INCLUDES","NOT_EQUALS","NOT_INCLUDES","NOT_IS_EMPTY","IS_EMPTY","SHOW","HIDE","DependentAttribute","constructor","arguments","_defineProperty","isApplicableForHint","hint","regex","RegExp","test","getRuleInstance","initHint","rule","OPERATORS","isEmpyNotIsEmptRegex","result","match","action","control","operator","options","_action","_control","_operator","_options","_context","_mapInstanceProperty","split","call","option","_trimInstanceProperty","processEqualsOptions","controlAttribute","every","_context2","_includesInstanceProperty","selected","processIncludesOptions","some","_context3","handleOperator","length","getControlAttribute","attributes","attribute","getAttributeByLayoutHint","process","processLayoutHintRules","isHidden","hide","label"],"sources":["../../../../src/models/attributes/layouthint-rules/DependentAttribute.js"],"sourcesContent":["// @flow\nimport BaseLayoutHintRule from \"./BaseLayoutHintRule\";\n\nimport {\n DEPENDENT_ATTRIBUTE_CONTROL,\n DEPENDENT_ATTRIBUTE,\n} from \"../../../constants\";\n\nimport ChoiceAttributeModel from \"../ChoiceAttributeModel\";\nimport BooleanAttributeModel from \"../BooleanAttributeModel\";\n\nimport { ConfigurationException } from \"../../../exceptions\";\n\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\nconst EQUALS = \"equals\";\nconst INCLUDES = \"includes\";\nconst NOT_EQUALS = \"notEquals\";\nconst NOT_INCLUDES = \"notIncludes\";\nconst NOT_IS_EMPTY = \"notIsEmpty\";\nconst IS_EMPTY = \"isEmpty\";\n\nconst SHOW = \"show\";\nconst HIDE = \"hide\";\n\n/**\n * Depending attributes hint logic\n */\nclass DependentAttribute extends BaseLayoutHintRule {\n _action: string;\n _control: string;\n _operator: string;\n _options: Array<string>;\n\n /**\n */\n static checkHintApplicability: boolean = true;\n\n /**\n */\n static isApplicableForHint(hint: string): boolean {\n const regex = new RegExp(\n `^${DEPENDENT_ATTRIBUTE}\\\\s?(${SHOW}|${HIDE})`,\n \"i\",\n );\n\n return regex.test(hint);\n }\n\n /**\n * Used on initHint to create an instance of this rule\n */\n static getRuleInstance(): DependentAttribute {\n return new DependentAttribute();\n }\n\n /**\n */\n static initHint(hint: string): any {\n const rule = this.getRuleInstance();\n\n const OPERATORS = `${EQUALS}|${INCLUDES}|${NOT_EQUALS}|${NOT_INCLUDES}|${NOT_IS_EMPTY}|${IS_EMPTY}`;\n const regex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})\\\\s(.*)`,\n \"i\",\n );\n const isEmpyNotIsEmptRegex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})`,\n \"i\",\n );\n\n const result = hint.match(regex)\n ? hint.match(regex)\n : hint.match(isEmpyNotIsEmptRegex);\n\n if (result) {\n rule.action = result[1];\n rule.control = result[2];\n rule.operator = result[3];\n rule.options = !result[4] ? \"\" : result[4];\n } else {\n throw new ConfigurationException(\n `No dependent information found on layout hint: ${hint}`,\n );\n }\n\n return rule;\n }\n\n /**\n */\n get action(): string {\n return this._action;\n }\n\n /**\n */\n set action(action: string) {\n this._action = action;\n }\n\n /**\n */\n get control(): string {\n return this._control;\n }\n\n /**\n */\n set control(control: string) {\n this._control = control;\n }\n\n /**\n */\n get operator(): string {\n return this._operator;\n }\n\n /**\n */\n set operator(operator: string) {\n this._operator = operator;\n }\n\n /**\n */\n get options(): Array<string> {\n return this._options;\n }\n\n /**\n */\n set options(options: string): void {\n this._options = options.split(\"|\").map((option) => option.trim());\n }\n\n /**\n */\n processEqualsOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n if (\n controlAttribute instanceof ChoiceAttributeModel ||\n controlAttribute instanceof BooleanAttributeModel\n ) {\n return this.options.every((option) =>\n controlAttribute.selected.includes(option),\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with equals operator must be a choice, string or number attribute\",\n );\n }\n\n /**\n */\n processIncludesOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n if (controlAttribute instanceof ChoiceAttributeModel) {\n return this.options.some((option) =>\n controlAttribute.selected.includes(option),\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with includes operator must be a choice attribute\",\n );\n }\n\n /**\n */\n handleOperator(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n switch (this.operator) {\n case EQUALS:\n return this.processEqualsOptions(controlAttribute);\n case INCLUDES:\n return this.processIncludesOptions(controlAttribute);\n case NOT_EQUALS:\n return !this.processEqualsOptions(controlAttribute);\n case NOT_INCLUDES:\n return !this.processIncludesOptions(controlAttribute);\n case NOT_IS_EMPTY:\n return controlAttribute?.selected.length !== 0;\n case IS_EMPTY:\n return controlAttribute?.selected.length === 0;\n default:\n throw new ConfigurationException(\n `Unsupported operator for dependent question: ${this.operator}`,\n );\n }\n }\n\n /**\n */\n getControlAttribute(\n attributes: AttributeCollection,\n ): ChoiceAttributeModel | BooleanAttributeModel | null {\n const attribute = attributes.getAttributeByLayoutHint(\n `${DEPENDENT_ATTRIBUTE_CONTROL}:${this.control}`,\n `${DEPENDENT_ATTRIBUTE_CONTROL}: ${this.control}`,\n );\n\n if (\n attribute instanceof ChoiceAttributeModel ||\n attribute instanceof BooleanAttributeModel\n ) {\n return attribute;\n }\n\n return null;\n }\n\n /**\n */\n process(attribute: AttributeModel, attributes: AttributeCollection): void {\n const controlAttribute = this.getControlAttribute(attributes);\n if (!controlAttribute) {\n return;\n }\n\n controlAttribute.processLayoutHintRules(attributes);\n if (controlAttribute.isHidden) {\n attribute.hide();\n return;\n }\n\n const result = this.handleOperator(controlAttribute);\n if (this.action === SHOW) {\n attribute.isHidden = !result;\n } else if (this.action === HIDE) {\n attribute.isHidden = result;\n } else {\n throw new ConfigurationException(\n `Unsupported action ${this.action} for dependent question on attribute: ${attribute.label}`,\n );\n }\n }\n}\n\nexport default DependentAttribute;\n"],"mappings":";;;;AACA,OAAOA,kBAAkB,MAAM,sBAAsB;AAErD,SACEC,2BAA2B,EAC3BC,mBAAmB,QACd,oBAAoB;AAE3B,OAAOC,oBAAoB,MAAM,yBAAyB;AAC1D,OAAOC,qBAAqB,MAAM,0BAA0B;AAE5D,SAASC,sBAAsB,QAAQ,qBAAqB;AAK5D,MAAMC,MAAM,GAAG,QAAQ;AACvB,MAAMC,QAAQ,GAAG,UAAU;AAC3B,MAAMC,UAAU,GAAG,WAAW;AAC9B,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,YAAY,GAAG,YAAY;AACjC,MAAMC,QAAQ,GAAG,SAAS;AAE1B,MAAMC,IAAI,GAAG,MAAM;AACnB,MAAMC,IAAI,GAAG,MAAM;;AAEnB;AACA;AACA;AACA,MAAMC,kBAAkB,SAASd,kBAAkB,CAAC;EAAAe,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;EAAA;EAUlD;AACF;EACE,OAAOC,mBAAmBA,CAACC,IAAY,EAAW;IAChD,MAAMC,KAAK,GAAG,IAAIC,MAAM,CACrB,IAAGnB,mBAAoB,QAAOU,IAAK,IAAGC,IAAK,GAAE,EAC9C,GACF,CAAC;IAED,OAAOO,KAAK,CAACE,IAAI,CAACH,IAAI,CAAC;EACzB;;EAEA;AACF;AACA;EACE,OAAOI,eAAeA,CAAA,EAAuB;IAC3C,OAAO,IAAIT,kBAAkB,CAAC,CAAC;EACjC;;EAEA;AACF;EACE,OAAOU,QAAQA,CAACL,IAAY,EAAO;IACjC,MAAMM,IAAI,GAAG,IAAI,CAACF,eAAe,CAAC,CAAC;IAEnC,MAAMG,SAAS,GAAI,GAAEpB,MAAO,IAAGC,QAAS,IAAGC,UAAW,IAAGC,YAAa,IAAGC,YAAa,IAAGC,QAAS,EAAC;IACnG,MAAMS,KAAK,GAAG,IAAIC,MAAM,CACrB,GAAEnB,mBAAoB,qBAAoBD,2BAA4B,kBAAiByB,SAAU,UAAS,EAC3G,GACF,CAAC;IACD,MAAMC,oBAAoB,GAAG,IAAIN,MAAM,CACpC,GAAEnB,mBAAoB,qBAAoBD,2BAA4B,kBAAiByB,SAAU,GAAE,EACpG,GACF,CAAC;IAED,MAAME,MAAM,GAAGT,IAAI,CAACU,KAAK,CAACT,KAAK,CAAC,GAC5BD,IAAI,CAACU,KAAK,CAACT,KAAK,CAAC,GACjBD,IAAI,CAACU,KAAK,CAACF,oBAAoB,CAAC;IAEpC,IAAIC,MAAM,EAAE;MACVH,IAAI,CAACK,MAAM,GAAGF,MAAM,CAAC,CAAC,CAAC;MACvBH,IAAI,CAACM,OAAO,GAAGH,MAAM,CAAC,CAAC,CAAC;MACxBH,IAAI,CAACO,QAAQ,GAAGJ,MAAM,CAAC,CAAC,CAAC;MACzBH,IAAI,CAACQ,OAAO,GAAG,CAACL,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAGA,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC,MAAM;MACL,MAAM,IAAIvB,sBAAsB,CAC7B,kDAAiDc,IAAK,EACzD,CAAC;IACH;IAEA,OAAOM,IAAI;EACb;;EAEA;AACF;EACE,IAAIK,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACI,OAAO;EACrB;;EAEA;AACF;EACE,IAAIJ,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,CAACI,OAAO,GAAGJ,MAAM;EACvB;;EAEA;AACF;EACE,IAAIC,OAAOA,CAAA,EAAW;IACpB,OAAO,IAAI,CAACI,QAAQ;EACtB;;EAEA;AACF;EACE,IAAIJ,OAAOA,CAACA,OAAe,EAAE;IAC3B,IAAI,CAACI,QAAQ,GAAGJ,OAAO;EACzB;;EAEA;AACF;EACE,IAAIC,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACI,SAAS;EACvB;;EAEA;AACF;EACE,IAAIJ,QAAQA,CAACA,QAAgB,EAAE;IAC7B,IAAI,CAACI,SAAS,GAAGJ,QAAQ;EAC3B;;EAEA;AACF;EACE,IAAIC,OAAOA,CAAA,EAAkB;IAC3B,OAAO,IAAI,CAACI,QAAQ;EACtB;;EAEA;AACF;EACE,IAAIJ,OAAOA,CAACA,OAAe,EAAQ;IAAA,IAAAK,QAAA;IACjC,IAAI,CAACD,QAAQ,GAAGE,oBAAA,CAAAD,QAAA,GAAAL,OAAO,CAACO,KAAK,CAAC,GAAG,CAAC,EAAAC,IAAA,CAAAH,QAAA,EAAMI,MAAM,IAAKC,qBAAA,CAAAD,MAAM,EAAAD,IAAA,CAANC,MAAY,CAAC,CAAC;EACnE;;EAEA;AACF;EACEE,oBAAoBA,CAClBC,gBAA8D,EACrD;IACT,IACEA,gBAAgB,YAAY1C,oBAAoB,IAChD0C,gBAAgB,YAAYzC,qBAAqB,EACjD;MACA,OAAO,IAAI,CAAC6B,OAAO,CAACa,KAAK,CAAEJ,MAAM;QAAA,IAAAK,SAAA;QAAA,OAC/BC,yBAAA,CAAAD,SAAA,GAAAF,gBAAgB,CAACI,QAAQ,EAAAR,IAAA,CAAAM,SAAA,EAAUL,MAAM,CAAC;MAAA,CAC5C,CAAC;IACH;IAEA,MAAM,IAAIrC,sBAAsB,CAC9B,oGACF,CAAC;EACH;;EAEA;AACF;EACE6C,sBAAsBA,CACpBL,gBAA8D,EACrD;IACT,IAAIA,gBAAgB,YAAY1C,oBAAoB,EAAE;MACpD,OAAO,IAAI,CAAC8B,OAAO,CAACkB,IAAI,CAAET,MAAM;QAAA,IAAAU,SAAA;QAAA,OAC9BJ,yBAAA,CAAAI,SAAA,GAAAP,gBAAgB,CAACI,QAAQ,EAAAR,IAAA,CAAAW,SAAA,EAAUV,MAAM,CAAC;MAAA,CAC5C,CAAC;IACH;IAEA,MAAM,IAAIrC,sBAAsB,CAC9B,oFACF,CAAC;EACH;;EAEA;AACF;EACEgD,cAAcA,CACZR,gBAA8D,EACrD;IACT,QAAQ,IAAI,CAACb,QAAQ;MACnB,KAAK1B,MAAM;QACT,OAAO,IAAI,CAACsC,oBAAoB,CAACC,gBAAgB,CAAC;MACpD,KAAKtC,QAAQ;QACX,OAAO,IAAI,CAAC2C,sBAAsB,CAACL,gBAAgB,CAAC;MACtD,KAAKrC,UAAU;QACb,OAAO,CAAC,IAAI,CAACoC,oBAAoB,CAACC,gBAAgB,CAAC;MACrD,KAAKpC,YAAY;QACf,OAAO,CAAC,IAAI,CAACyC,sBAAsB,CAACL,gBAAgB,CAAC;MACvD,KAAKnC,YAAY;QACf,OAAOmC,gBAAgB,EAAEI,QAAQ,CAACK,MAAM,KAAK,CAAC;MAChD,KAAK3C,QAAQ;QACX,OAAOkC,gBAAgB,EAAEI,QAAQ,CAACK,MAAM,KAAK,CAAC;MAChD;QACE,MAAM,IAAIjD,sBAAsB,CAC7B,gDAA+C,IAAI,CAAC2B,QAAS,EAChE,CAAC;IACL;EACF;;EAEA;AACF;EACEuB,mBAAmBA,CACjBC,UAA+B,EACsB;IACrD,MAAMC,SAAS,GAAGD,UAAU,CAACE,wBAAwB,CAClD,GAAEzD,2BAA4B,IAAG,IAAI,CAAC8B,OAAQ,EAAC,EAC/C,GAAE9B,2BAA4B,KAAI,IAAI,CAAC8B,OAAQ,EAClD,CAAC;IAED,IACE0B,SAAS,YAAYtD,oBAAoB,IACzCsD,SAAS,YAAYrD,qBAAqB,EAC1C;MACA,OAAOqD,SAAS;IAClB;IAEA,OAAO,IAAI;EACb;;EAEA;AACF;EACEE,OAAOA,CAACF,SAAyB,EAAED,UAA+B,EAAQ;IACxE,MAAMX,gBAAgB,GAAG,IAAI,CAACU,mBAAmB,CAACC,UAAU,CAAC;IAC7D,IAAI,CAACX,gBAAgB,EAAE;MACrB;IACF;IAEAA,gBAAgB,CAACe,sBAAsB,CAACJ,UAAU,CAAC;IACnD,IAAIX,gBAAgB,CAACgB,QAAQ,EAAE;MAC7BJ,SAAS,CAACK,IAAI,CAAC,CAAC;MAChB;IACF;IAEA,MAAMlC,MAAM,GAAG,IAAI,CAACyB,cAAc,CAACR,gBAAgB,CAAC;IACpD,IAAI,IAAI,CAACf,MAAM,KAAKlB,IAAI,EAAE;MACxB6C,SAAS,CAACI,QAAQ,GAAG,CAACjC,MAAM;IAC9B,CAAC,MAAM,IAAI,IAAI,CAACE,MAAM,KAAKjB,IAAI,EAAE;MAC/B4C,SAAS,CAACI,QAAQ,GAAGjC,MAAM;IAC7B,CAAC,MAAM;MACL,MAAM,IAAIvB,sBAAsB,CAC7B,sBAAqB,IAAI,CAACyB,MAAO,yCAAwC2B,SAAS,CAACM,KAAM,EAC5F,CAAC;IACH;EACF;AACF;AAhNE;AACF;AADE9C,eAAA,CANIH,kBAAkB,4BAQmB,IAAI;AAgN/C,eAAeA,kBAAkB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DependentAttribute.js","names":["BaseLayoutHintRule","DEPENDENT_ATTRIBUTE_CONTROL","DEPENDENT_ATTRIBUTE","ChoiceAttributeModel","BooleanAttributeModel","ConfigurationException","EQUALS","INCLUDES","NOT_EQUALS","NOT_INCLUDES","NOT_IS_EMPTY","IS_EMPTY","SHOW","HIDE","DependentAttribute","constructor","arguments","_defineProperty","isApplicableForHint","hint","regex","RegExp","test","getRuleInstance","initHint","rule","OPERATORS","isEmpyNotIsEmptRegex","result","match","action","control","operator","options","_action","_control","_operator","_options","_context","_mapInstanceProperty","split","call","option","_trimInstanceProperty","processEqualsOptions","controlAttribute","every","_context2","_includesInstanceProperty","selected","processIncludesOptions","some","_context3","handleOperator","length","getControlAttribute","attributes","attribute","getAttributeByLayoutHint","process","processLayoutHintRules","isHidden","hide","label"],"sources":["../../../../src/models/attributes/layouthint-rules/DependentAttribute.js"],"sourcesContent":["// @flow\nimport BaseLayoutHintRule from \"./BaseLayoutHintRule\";\n\nimport {\n DEPENDENT_ATTRIBUTE_CONTROL,\n DEPENDENT_ATTRIBUTE,\n} from \"../../../constants\";\n\nimport ChoiceAttributeModel from \"../ChoiceAttributeModel\";\nimport BooleanAttributeModel from \"../BooleanAttributeModel\";\n\nimport { ConfigurationException } from \"../../../exceptions\";\n\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\nconst EQUALS = \"equals\";\nconst INCLUDES = \"includes\";\nconst NOT_EQUALS = \"notEquals\";\nconst NOT_INCLUDES = \"notIncludes\";\nconst NOT_IS_EMPTY = \"notIsEmpty\";\nconst IS_EMPTY = \"isEmpty\";\n\nconst SHOW = \"show\";\nconst HIDE = \"hide\";\n\n/**\n * Depending attributes hint logic\n */\nclass DependentAttribute extends BaseLayoutHintRule {\n _action: string;\n _control: string;\n _operator: string;\n _options: Array<string>;\n\n /**\n */\n static checkHintApplicability: boolean = true;\n\n /**\n */\n static isApplicableForHint(hint: string): boolean {\n const regex = new RegExp(\n `^${DEPENDENT_ATTRIBUTE}\\\\s?(${SHOW}|${HIDE})`,\n \"i\",\n );\n\n return regex.test(hint);\n }\n\n /**\n * Used on initHint to create an instance of this rule\n */\n static getRuleInstance(): DependentAttribute {\n return new DependentAttribute();\n }\n\n /**\n */\n static initHint(hint: string): any {\n const rule = this.getRuleInstance();\n\n const OPERATORS = `${EQUALS}|${INCLUDES}|${NOT_EQUALS}|${NOT_INCLUDES}|${NOT_IS_EMPTY}|${IS_EMPTY}`;\n const regex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})\\\\s(.*)`,\n \"i\",\n );\n const isEmpyNotIsEmptRegex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})`,\n \"i\",\n );\n\n const result = hint.match(regex)\n ? hint.match(regex)\n : hint.match(isEmpyNotIsEmptRegex);\n\n if (result) {\n rule.action = result[1];\n rule.control = result[2];\n rule.operator = result[3];\n rule.options = !result[4] ? \"\" : result[4];\n } else {\n throw new ConfigurationException(\n `No dependent information found on layout hint: ${hint}`,\n );\n }\n\n return rule;\n }\n\n /**\n */\n get action(): string {\n return this._action;\n }\n\n /**\n */\n set action(action: string) {\n this._action = action;\n }\n\n /**\n */\n get control(): string {\n return this._control;\n }\n\n /**\n */\n set control(control: string) {\n this._control = control;\n }\n\n /**\n */\n get operator(): string {\n return this._operator;\n }\n\n /**\n */\n set operator(operator: string) {\n this._operator = operator;\n }\n\n /**\n */\n get options(): Array<string> {\n return this._options;\n }\n\n /**\n */\n set options(options: string): void {\n this._options = options.split(\"|\").map((option) => option.trim());\n }\n\n /**\n */\n processEqualsOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n if (\n controlAttribute instanceof ChoiceAttributeModel ||\n controlAttribute instanceof BooleanAttributeModel\n ) {\n return this.options.every((option) =>\n controlAttribute.selected.includes(option),\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with equals operator must be a choice, string or number attribute\",\n );\n }\n\n /**\n */\n processIncludesOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n if (controlAttribute instanceof ChoiceAttributeModel) {\n return this.options.some((option) =>\n controlAttribute.selected.includes(option),\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with includes operator must be a choice attribute\",\n );\n }\n\n /**\n */\n handleOperator(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n switch (this.operator) {\n case EQUALS:\n return this.processEqualsOptions(controlAttribute);\n case INCLUDES:\n return this.processIncludesOptions(controlAttribute);\n case NOT_EQUALS:\n return !this.processEqualsOptions(controlAttribute);\n case NOT_INCLUDES:\n return !this.processIncludesOptions(controlAttribute);\n case NOT_IS_EMPTY:\n return controlAttribute?.selected.length !== 0;\n case IS_EMPTY:\n return controlAttribute?.selected.length === 0;\n default:\n throw new ConfigurationException(\n `Unsupported operator for dependent question: ${this.operator}`,\n );\n }\n }\n\n /**\n */\n getControlAttribute(\n attributes: AttributeCollection,\n ): ChoiceAttributeModel | BooleanAttributeModel | null {\n const attribute = attributes.getAttributeByLayoutHint(\n `${DEPENDENT_ATTRIBUTE_CONTROL}:${this.control}`,\n `${DEPENDENT_ATTRIBUTE_CONTROL}: ${this.control}`,\n );\n\n if (\n attribute instanceof ChoiceAttributeModel ||\n attribute instanceof BooleanAttributeModel\n ) {\n return attribute;\n }\n\n return null;\n }\n\n /**\n */\n process(attribute: AttributeModel, attributes: AttributeCollection): void {\n const controlAttribute = this.getControlAttribute(attributes);\n if (!controlAttribute) {\n return;\n }\n\n controlAttribute.processLayoutHintRules(attributes);\n if (controlAttribute.isHidden) {\n attribute.hide();\n return;\n }\n\n const result = this.handleOperator(controlAttribute);\n if (this.action === SHOW) {\n attribute.isHidden = !result;\n } else if (this.action === HIDE) {\n attribute.isHidden = result;\n } else {\n throw new ConfigurationException(\n `Unsupported action ${this.action} for dependent question on attribute: ${attribute.label}`,\n );\n }\n }\n}\n\nexport default DependentAttribute;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceModel.js","names":["ModularUIResponse","BaseModel","LinkCollection","IllegalArgumentException","IllegalStateException","ResourceModel","constructor","modularuiResponse","arguments","length","undefined","data","contributions","_defineProperty","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","modelName","isApplicableModel","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","Array","isArray","self","downloadLink","getLinksByGroup","first","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","errors","_context","_context2","flattenModels","_concatInstanceProperty","call","flattenErrors","setChildModels","dehydrate","_context3","_mapInstanceProperty","childModel"],"sources":["../../../src/models/base/ResourceModel.js"],"sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport BaseModel from \"./BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../exceptions\";\n\nimport type LinkModel from \"../links/LinkModel\";\nimport type Href from \"../href/Href\";\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Base model, this the foundation for models that represent modular ui services, e.g. application, tab, caseview, etc\n */\nclass ResourceModel extends BaseModel implements IModelWithChildModels {\n _key: string;\n _locale: string;\n _childModels: Array<ModularUIModel>;\n _links: LinkCollection;\n _lastServerUpdate: number;\n\n /**\n * constructor\n */\n constructor(modularuiResponse: ModularUIResponse = new ModularUIResponse()) {\n super(modularuiResponse.data, modularuiResponse.contributions);\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Property to render name of a model, is original name after transpilation\n */\n static get modelName(): string {\n throw new IllegalStateException(`No modelName set on the resource model`);\n }\n\n /**\n * Returns true when the model is supported based on configuration found in contributions\n *\n * @abstract\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n if (!(data instanceof ModularUIResponse)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a ModularUIResponse\",\n );\n }\n\n throw new Error(\"No isApplicableModel condition set on resourcemodel\");\n }\n\n /**\n */\n get lastServerUpdate(): number {\n return this._lastServerUpdate;\n }\n\n /**\n */\n set lastServerUpdate(lastServerUpdate: number) {\n this._lastServerUpdate = lastServerUpdate;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this._key;\n }\n\n /**\n * Get type of model\n *\n * @abstract\n */\n get type(): string {\n throw new IllegalStateException(\n `No type set on the resource model with key ${this.key}`,\n );\n }\n\n /**\n * Retrieve type of resource\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"unknown\");\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n },\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n *\n */\n get downloadLink(): ?LinkModel {\n const downloadLink = this.links.getLinksByGroup(\"download\").first;\n if (downloadLink) {\n return downloadLink;\n }\n\n return null;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new IllegalStateException(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`,\n );\n }\n\n return selflink;\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n * Add links to expand on initialization of this model\n *\n * @abstract\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return [];\n }\n\n /**\n * Retrieve links of expanded child models\n */\n get childModels(): Array<ModularUIModel> {\n return this._childModels;\n }\n\n /**\n * Add child models to this model\n */\n addChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): this {\n const flattenModels = [].concat(...models);\n const flattenErrors = [].concat(errors);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels, flattenErrors);\n\n return this;\n }\n\n /**\n * Template to set expanded child models\n * Use this hook to separate the retrieved child models into the correct models.\n *\n * @abstract\n * @example <caption>Put all models of instance List and GroupingPanel into the panels property</caption>\n */\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void {\n if (!models && !errors) {\n throw new IllegalArgumentException(\"No models send to setChildModels\");\n }\n }\n\n /**\n */\n dehydrate(): Object {\n return {\n ...super.dehydrate(),\n key: this._key,\n locale: this._locale,\n // $FlowFixMe[missing-type-arg]\n childModels: this._childModels.map<ModularUIModel>(\n (childModel: ModularUIModel) => childModel.dehydrate(),\n ),\n };\n }\n}\n\nexport default ResourceModel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ResourceModel.js","names":["ModularUIResponse","BaseModel","LinkCollection","IllegalArgumentException","IllegalStateException","ResourceModel","constructor","modularuiResponse","arguments","length","undefined","data","contributions","_defineProperty","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","modelName","isApplicableModel","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","Array","isArray","self","downloadLink","getLinksByGroup","first","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","errors","_context","_context2","flattenModels","_concatInstanceProperty","call","flattenErrors","setChildModels","dehydrate","_context3","_mapInstanceProperty","childModel"],"sources":["../../../src/models/base/ResourceModel.js"],"sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport BaseModel from \"./BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../exceptions\";\n\nimport type LinkModel from \"../links/LinkModel\";\nimport type Href from \"../href/Href\";\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Base model, this the foundation for models that represent modular ui services, e.g. application, tab, caseview, etc\n */\nclass ResourceModel extends BaseModel implements IModelWithChildModels {\n _key: string;\n _locale: string;\n _childModels: Array<ModularUIModel>;\n _links: LinkCollection;\n _lastServerUpdate: number;\n\n /**\n * constructor\n */\n constructor(modularuiResponse: ModularUIResponse = new ModularUIResponse()) {\n super(modularuiResponse.data, modularuiResponse.contributions);\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Property to render name of a model, is original name after transpilation\n */\n static get modelName(): string {\n throw new IllegalStateException(`No modelName set on the resource model`);\n }\n\n /**\n * Returns true when the model is supported based on configuration found in contributions\n *\n * @abstract\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n if (!(data instanceof ModularUIResponse)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a ModularUIResponse\",\n );\n }\n\n throw new Error(\"No isApplicableModel condition set on resourcemodel\");\n }\n\n /**\n */\n get lastServerUpdate(): number {\n return this._lastServerUpdate;\n }\n\n /**\n */\n set lastServerUpdate(lastServerUpdate: number) {\n this._lastServerUpdate = lastServerUpdate;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this._key;\n }\n\n /**\n * Get type of model\n *\n * @abstract\n */\n get type(): string {\n throw new IllegalStateException(\n `No type set on the resource model with key ${this.key}`,\n );\n }\n\n /**\n * Retrieve type of resource\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"unknown\");\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n },\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n *\n */\n get downloadLink(): ?LinkModel {\n const downloadLink = this.links.getLinksByGroup(\"download\").first;\n if (downloadLink) {\n return downloadLink;\n }\n\n return null;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new IllegalStateException(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`,\n );\n }\n\n return selflink;\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n * Add links to expand on initialization of this model\n *\n * @abstract\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return [];\n }\n\n /**\n * Retrieve links of expanded child models\n */\n get childModels(): Array<ModularUIModel> {\n return this._childModels;\n }\n\n /**\n * Add child models to this model\n */\n addChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): this {\n const flattenModels = [].concat(...models);\n const flattenErrors = [].concat(errors);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels, flattenErrors);\n\n return this;\n }\n\n /**\n * Template to set expanded child models\n * Use this hook to separate the retrieved child models into the correct models.\n *\n * @abstract\n * @example <caption>Put all models of instance List and GroupingPanel into the panels property</caption>\n */\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void {\n if (!models && !errors) {\n throw new IllegalArgumentException(\"No models send to setChildModels\");\n }\n }\n\n /**\n */\n dehydrate(): Object {\n return {\n ...super.dehydrate(),\n key: this._key,\n locale: this._locale,\n // $FlowFixMe[missing-type-arg]\n childModels: this._childModels.map<ModularUIModel>(\n (childModel: ModularUIModel) => childModel.dehydrate(),\n ),\n };\n }\n}\n\nexport default ResourceModel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BusinessScenarioModel.js","names":["ConceptDetailModel","ConceptTypeDetailModel","getSetting","BusinessScenarioModel","constructor","arguments","_defineProperty","type","modelName","isApplicableModel","data","isOfConceptType","_links","concepttype","href","conceptTypeHref","settingNames","Array","isArray","TypeError","pathToKmt","conceptTypeSettings","STEP","PERSONA","SYSTEM","SCENARIO","decodedConceptTypeHref","decodeURIComponent","some","settingName","conceptTypeSetting","_endsWithInstanceProperty","call","getInitialChildModelLinks","_context","_context2","childModelLinks","scenarioStepLinks","_mapInstanceProperty","_filterInstanceProperty","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","push","setChildModels","models","errors","conceptTypeModel","_findInstanceProperty","model","conceptType","scenarioSteps","i","selfhref","_scenarioSteps","actors","forEach","scenarioStep","_context3","relationsToActor","newRelationToActor","actor","key"],"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\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\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 get modelName(): 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 settingNames: Array<\"STEP\" | \"PERSONA\" | \"SCENARIO\" | \"SYSTEM\">,\n ): boolean {\n if (!conceptTypeHref) {\n return false;\n }\n\n // Check if settingNames is an array\n if (!Array.isArray(settingNames)) {\n throw new TypeError(\"settingNames must be an array\");\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 SYSTEM: getSetting(\"BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE\", [\n `${pathToKmt}/System`,\n ]),\n SCENARIO: getSetting(\"BUSINESS_SCENARIO_CONCEPT_TYPE\", [\n `${pathToKmt}/BusinessScenario`,\n ]),\n };\n\n const decodedConceptTypeHref = decodeURIComponent(conceptTypeHref);\n\n return settingNames.some(\n (settingName) =>\n Array.isArray(conceptTypeSettings[settingName]) &&\n conceptTypeSettings[settingName].some((conceptTypeSetting) =>\n decodedConceptTypeHref.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>, errors: Array<ErrorResponse>) {\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, errors);\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\", \"SYSTEM\"],\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,OAAOA,kBAAkB,MAAM,sBAAsB;AACrD,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,SAASC,UAAU,QAAQ,0BAA0B;AAQrD;AACA;AACA,MAAMC,qBAAqB,SAASH,kBAAkB,CAAC;EAAAI,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;EAAA;EAGrD;AACF;EACE,IAAIC,IAAIA,CAAA,EAAW;IACjB,OAAO,kBAAkB;EAC3B;;EAEA;AACF;EACE,WAAWC,SAASA,CAAA,EAAW;IAC7B,OAAO,kBAAkB;EAC3B;;EAEA;AACF;EACE,OAAOC,iBAAiBA,CAACC,IAAuB,EAAW;IACzD,OAAOP,qBAAqB,CAACQ,eAAe,CAC1CD,IAAI,EAAEA,IAAI,EAAEE,MAAM,EAAEC,WAAW,EAAEC,IAAI,EACrC,CAAC,UAAU,CACb,CAAC;EACH;;EAEA;AACF;EACE,OAAOH,eAAeA,CACpBI,eAAwB,EACxBC,YAA+D,EACtD;IACT,IAAI,CAACD,eAAe,EAAE;MACpB,OAAO,KAAK;IACd;;IAEA;IACA,IAAI,CAACE,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,EAAE;MAChC,MAAM,IAAIG,SAAS,CAAC,+BAA+B,CAAC;IACtD;IAEA,MAAMC,SAAS,GAAG,wCAAwC;IAE1D,MAAMC,mBAAmB,GAAG;MAC1BC,IAAI,EAAEpB,UAAU,CAAC,qCAAqC,EAAE,
|
|
1
|
+
{"version":3,"file":"BusinessScenarioModel.js","names":["ConceptDetailModel","ConceptTypeDetailModel","getSetting","BusinessScenarioModel","constructor","arguments","_defineProperty","type","modelName","isApplicableModel","data","isOfConceptType","_links","concepttype","href","conceptTypeHref","settingNames","Array","isArray","TypeError","pathToKmt","conceptTypeSettings","STEP","PERSONA","SYSTEM","SCENARIO","decodedConceptTypeHref","decodeURIComponent","some","settingName","conceptTypeSetting","_endsWithInstanceProperty","call","getInitialChildModelLinks","_context","_context2","childModelLinks","scenarioStepLinks","_mapInstanceProperty","_filterInstanceProperty","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","push","setChildModels","models","errors","conceptTypeModel","_findInstanceProperty","model","conceptType","scenarioSteps","i","selfhref","_scenarioSteps","actors","forEach","scenarioStep","_context3","relationsToActor","newRelationToActor","actor","key"],"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\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\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 get modelName(): 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 settingNames: Array<\"STEP\" | \"PERSONA\" | \"SCENARIO\" | \"SYSTEM\">,\n ): boolean {\n if (!conceptTypeHref) {\n return false;\n }\n\n // Check if settingNames is an array\n if (!Array.isArray(settingNames)) {\n throw new TypeError(\"settingNames must be an array\");\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 SYSTEM: getSetting(\"BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE\", [\n `${pathToKmt}/System`,\n ]),\n SCENARIO: getSetting(\"BUSINESS_SCENARIO_CONCEPT_TYPE\", [\n `${pathToKmt}/BusinessScenario`,\n ]),\n };\n\n const decodedConceptTypeHref = decodeURIComponent(conceptTypeHref);\n\n return settingNames.some(\n (settingName) =>\n Array.isArray(conceptTypeSettings[settingName]) &&\n conceptTypeSettings[settingName].some((conceptTypeSetting) =>\n decodedConceptTypeHref.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>, errors: Array<ErrorResponse>) {\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, errors);\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\", \"SYSTEM\"],\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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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConceptDetailModel.js","names":["ResourceModel","ConceptRelationCollection","SourceReferenceCollection","ConceptTypeDetailModel","TIMEVERSION_FILTER_NAME","ConceptDetailModel","constructor","modularuiResponse","_defineProperty","_relations","data","relations","entryDate","type","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","isCacheable","setChildModels","models","errors","conceptTypeModel","_findInstanceProperty","call","model","conceptType","key","getData","selfhref","href","selflink","setParameter","removeParameter","_conceptType","label","conceptLabel","taxonomyType","formula","labels","_context","labelTypes","_mapInstanceProperty","labelType","_context2","setting","_id","getLabelElementByIds","ids","_context3","_filterInstanceProperty","_includesInstanceProperty","conceptProperties","_context4","propertyTypes","propertyType","_context5","properties","property","getConceptPropertiesByIds","_context6","textfragments","_context7","_context9","textFragments","textFragment","_context8","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","getTextFragmentByKeys","keys","_context10","getSourceReferenceCollection","availableLocales","arguments","length","undefined","_sourceReferences","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","_context11","_context14","availableLanguagesInSourceReferences","sourceReference","substring","currentLanguagePostfix","locale","_context12","_context13","_endsWithInstanceProperty","availableLanguages","split","value"],"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport ConceptRelationCollection from \"./ConceptRelationCollection\";\nimport SourceReferenceCollection from \"./SourceReferenceCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type {\n ModularUIModel,\n labelsJSON,\n textfragmentJSON,\n propertyJSON,\n} from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type Href from \"../href/Href\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Model for concept details, available through modelcatalog\n */\nexport default class ConceptDetailModel extends ResourceModel {\n _relations: ConceptRelationCollection;\n _conceptType: ?ConceptTypeDetailModel;\n _sourceReferences: SourceReferenceCollection;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this._relations = new ConceptRelationCollection(\n this.data.relations,\n this.entryDate,\n );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ConceptDetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ConceptDetail\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n const relationsCollectionLinks =\n this.relationsCollection.getInitialChildModelLinks();\n\n if (conceptTypeLink) {\n conceptTypeLink.isCacheable = true;\n return [conceptTypeLink, ...relationsCollectionLinks];\n }\n\n return relationsCollectionLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\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, errors);\n }\n\n /**\n * Retrieve concept detail identifier as key for this model\n */\n get key(): string {\n return this.getData(\"_id\", \"concept\");\n }\n\n /**\n * Getting the self link of this Concept\n */\n get selfhref(): Href {\n const { href } = this.selflink;\n\n if (this.entryDate) {\n href.setParameter(TIMEVERSION_FILTER_NAME, this.entryDate);\n } else {\n href.removeParameter(TIMEVERSION_FILTER_NAME);\n }\n\n return href;\n }\n\n /**\n * Get conceptType of concept\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n */\n set conceptType(conceptType: ?ConceptTypeDetailModel) {\n this._conceptType = conceptType;\n }\n\n /**\n * Get concept label\n */\n get label(): string {\n return this.data.conceptLabel;\n }\n\n /**\n * Get taxonomy type\n */\n get taxonomyType(): string {\n return this.getData(\"taxonomyType\", \"default\");\n }\n\n /**\n * Get concept relations collection\n */\n get relationsCollection(): ConceptRelationCollection {\n return this._relations;\n }\n\n /**\n * Get concept formula\n */\n get formula(): string {\n return this.data.formula;\n }\n\n /**\n * Get additional labels of concept\n */\n get labels(): Array<labelsJSON> {\n return this.conceptType && this.conceptType.labelTypes\n ? this.conceptType.labelTypes.map((labelType) => {\n const setting = this.data.labels\n ? this.data.labels.find((label) => label.type === labelType._id)\n : {};\n\n return {\n ...labelType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get label elements by id\n */\n getLabelElementByIds(ids: Array<string>): Array<labelsJSON> {\n return this.labels.filter((label: labelsJSON) => ids.includes(label._id));\n }\n\n /**\n * Get concept properties\n */\n get conceptProperties(): Array<propertyJSON> {\n return this.conceptType && this.conceptType.propertyTypes\n ? this.conceptType.propertyTypes.map((propertyType) => {\n const setting = this.data.properties\n ? this.data.properties.find(\n (property) => property.type === propertyType._id,\n )\n : {};\n\n return {\n ...propertyType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<propertyJSON> {\n return this.conceptProperties.filter((property) =>\n ids.includes(property._id),\n );\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n const textFragments = this.data.textFragments\n ? this.data.textFragments.map((textFragment) => {\n const textFragmentConfig =\n this.conceptType &&\n this.conceptType.textFragmentTypes.find(\n (textFragmentType) => textFragment.type === textFragmentType._id,\n );\n\n return {\n ...textFragmentConfig,\n ...textFragment,\n };\n })\n : [];\n\n const notConfiguredTextFragments =\n this.conceptType && this.conceptType.textFragmentTypes\n ? this.conceptType.textFragmentTypes.filter((textFragmentType) => {\n if (!this.data.textFragments) {\n return true;\n }\n\n return !this.data.textFragments.some(\n (textfragment) => textfragment.type === textFragmentType._id,\n );\n })\n : [];\n\n return [...textFragments, ...notConfiguredTextFragments];\n }\n\n /**\n * Get text fragments by id\n */\n getTextFragmentByKeys(keys: Array<string>): Array<textfragmentJSON> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type),\n );\n }\n\n /**\n * Get source reference collection\n */\n getSourceReferenceCollection(\n availableLocales: Array<string> = [],\n ): SourceReferenceCollection {\n if (!this._sourceReferences) {\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n this.entryDate,\n );\n }\n\n return this._sourceReferences;\n }\n\n /*\n * Retrieve all sourceReferenceTypes that are valid for the current language\n * Used by sourceRef collection\n */\n /**\n */\n getSourceReferencesForCurrentLanguage(\n availableLocales: Array<string>,\n ): Array<Object> {\n const LANGUAGE_POSTFIX_LENGTH = 3;\n if (this.data.sourceReferences) {\n const availableLanguagesInSourceReferences =\n this.data.sourceReferences.map((sourceReference) =>\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH,\n ),\n );\n\n const currentLanguagePostfix = `_${this.locale}`;\n\n if (\n availableLanguagesInSourceReferences.includes(currentLanguagePostfix)\n ) {\n // return all sourceReferences that end with language that is selected\n return this.data.sourceReferences.filter((sourceReference) =>\n sourceReference.type.endsWith(currentLanguagePostfix),\n );\n }\n\n const availableLanguages = availableLocales.map(\n (locale) => `_${locale.split(\"-\")[0]}`,\n );\n\n // return all sourceReferences that do not end with language postfix\n return this.data.sourceReferences.filter(\n (sourceReference) =>\n !availableLanguages.includes(\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH,\n ),\n ),\n );\n }\n return [];\n }\n\n /**\n * Retrieve entrydate of content toc\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ConceptDetailModel.js","names":["ResourceModel","ConceptRelationCollection","SourceReferenceCollection","ConceptTypeDetailModel","TIMEVERSION_FILTER_NAME","ConceptDetailModel","constructor","modularuiResponse","_defineProperty","_relations","data","relations","entryDate","type","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","isCacheable","setChildModels","models","errors","conceptTypeModel","_findInstanceProperty","call","model","conceptType","key","getData","selfhref","href","selflink","setParameter","removeParameter","_conceptType","label","conceptLabel","taxonomyType","formula","labels","_context","labelTypes","_mapInstanceProperty","labelType","_context2","setting","_id","getLabelElementByIds","ids","_context3","_filterInstanceProperty","_includesInstanceProperty","conceptProperties","_context4","propertyTypes","propertyType","_context5","properties","property","getConceptPropertiesByIds","_context6","textfragments","_context7","_context9","textFragments","textFragment","_context8","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","getTextFragmentByKeys","keys","_context10","getSourceReferenceCollection","availableLocales","arguments","length","undefined","_sourceReferences","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","_context11","_context14","availableLanguagesInSourceReferences","sourceReference","substring","currentLanguagePostfix","locale","_context12","_context13","_endsWithInstanceProperty","availableLanguages","split","value"],"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport ConceptRelationCollection from \"./ConceptRelationCollection\";\nimport SourceReferenceCollection from \"./SourceReferenceCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type {\n ModularUIModel,\n labelsJSON,\n textfragmentJSON,\n propertyJSON,\n} from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type Href from \"../href/Href\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Model for concept details, available through modelcatalog\n */\nexport default class ConceptDetailModel extends ResourceModel {\n _relations: ConceptRelationCollection;\n _conceptType: ?ConceptTypeDetailModel;\n _sourceReferences: SourceReferenceCollection;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this._relations = new ConceptRelationCollection(\n this.data.relations,\n this.entryDate,\n );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ConceptDetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ConceptDetail\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n const relationsCollectionLinks =\n this.relationsCollection.getInitialChildModelLinks();\n\n if (conceptTypeLink) {\n conceptTypeLink.isCacheable = true;\n return [conceptTypeLink, ...relationsCollectionLinks];\n }\n\n return relationsCollectionLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\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, errors);\n }\n\n /**\n * Retrieve concept detail identifier as key for this model\n */\n get key(): string {\n return this.getData(\"_id\", \"concept\");\n }\n\n /**\n * Getting the self link of this Concept\n */\n get selfhref(): Href {\n const { href } = this.selflink;\n\n if (this.entryDate) {\n href.setParameter(TIMEVERSION_FILTER_NAME, this.entryDate);\n } else {\n href.removeParameter(TIMEVERSION_FILTER_NAME);\n }\n\n return href;\n }\n\n /**\n * Get conceptType of concept\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n */\n set conceptType(conceptType: ?ConceptTypeDetailModel) {\n this._conceptType = conceptType;\n }\n\n /**\n * Get concept label\n */\n get label(): string {\n return this.data.conceptLabel;\n }\n\n /**\n * Get taxonomy type\n */\n get taxonomyType(): string {\n return this.getData(\"taxonomyType\", \"default\");\n }\n\n /**\n * Get concept relations collection\n */\n get relationsCollection(): ConceptRelationCollection {\n return this._relations;\n }\n\n /**\n * Get concept formula\n */\n get formula(): string {\n return this.data.formula;\n }\n\n /**\n * Get additional labels of concept\n */\n get labels(): Array<labelsJSON> {\n return this.conceptType && this.conceptType.labelTypes\n ? this.conceptType.labelTypes.map((labelType) => {\n const setting = this.data.labels\n ? this.data.labels.find((label) => label.type === labelType._id)\n : {};\n\n return {\n ...labelType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get label elements by id\n */\n getLabelElementByIds(ids: Array<string>): Array<labelsJSON> {\n return this.labels.filter((label: labelsJSON) => ids.includes(label._id));\n }\n\n /**\n * Get concept properties\n */\n get conceptProperties(): Array<propertyJSON> {\n return this.conceptType && this.conceptType.propertyTypes\n ? this.conceptType.propertyTypes.map((propertyType) => {\n const setting = this.data.properties\n ? this.data.properties.find(\n (property) => property.type === propertyType._id,\n )\n : {};\n\n return {\n ...propertyType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<propertyJSON> {\n return this.conceptProperties.filter((property) =>\n ids.includes(property._id),\n );\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n const textFragments = this.data.textFragments\n ? this.data.textFragments.map((textFragment) => {\n const textFragmentConfig =\n this.conceptType &&\n this.conceptType.textFragmentTypes.find(\n (textFragmentType) => textFragment.type === textFragmentType._id,\n );\n\n return {\n ...textFragmentConfig,\n ...textFragment,\n };\n })\n : [];\n\n const notConfiguredTextFragments =\n this.conceptType && this.conceptType.textFragmentTypes\n ? this.conceptType.textFragmentTypes.filter((textFragmentType) => {\n if (!this.data.textFragments) {\n return true;\n }\n\n return !this.data.textFragments.some(\n (textfragment) => textfragment.type === textFragmentType._id,\n );\n })\n : [];\n\n return [...textFragments, ...notConfiguredTextFragments];\n }\n\n /**\n * Get text fragments by id\n */\n getTextFragmentByKeys(keys: Array<string>): Array<textfragmentJSON> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type),\n );\n }\n\n /**\n * Get source reference collection\n */\n getSourceReferenceCollection(\n availableLocales: Array<string> = [],\n ): SourceReferenceCollection {\n if (!this._sourceReferences) {\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n this.entryDate,\n );\n }\n\n return this._sourceReferences;\n }\n\n /*\n * Retrieve all sourceReferenceTypes that are valid for the current language\n * Used by sourceRef collection\n */\n /**\n */\n getSourceReferencesForCurrentLanguage(\n availableLocales: Array<string>,\n ): Array<Object> {\n const LANGUAGE_POSTFIX_LENGTH = 3;\n if (this.data.sourceReferences) {\n const availableLanguagesInSourceReferences =\n this.data.sourceReferences.map((sourceReference) =>\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH,\n ),\n );\n\n const currentLanguagePostfix = `_${this.locale}`;\n\n if (\n availableLanguagesInSourceReferences.includes(currentLanguagePostfix)\n ) {\n // return all sourceReferences that end with language that is selected\n return this.data.sourceReferences.filter((sourceReference) =>\n sourceReference.type.endsWith(currentLanguagePostfix),\n );\n }\n\n const availableLanguages = availableLocales.map(\n (locale) => `_${locale.split(\"-\")[0]}`,\n );\n\n // return all sourceReferences that do not end with language postfix\n return this.data.sourceReferences.filter(\n (sourceReference) =>\n !availableLanguages.includes(\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH,\n ),\n ),\n );\n }\n return [];\n }\n\n /**\n * Retrieve entrydate of content toc\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConceptLinkModel.js","names":["BaseModel","LinkModel","LinkCollection","ConceptTypeDetailModel","TIMEVERSION_FILTER_NAME","ConceptLinkModel","constructor","data","entryDate","arguments","length","undefined","_defineProperty","_entryDate","getInitialChildModelLinks","conceptTypeLink","isCacheable","setChildModels","models","href","conceptTypeModel","_findInstanceProperty","call","model","selfhref","equalsWithParameters","type","conceptType","_conceptType","key","_id","label","getData","links","_links","Array","isArray","selflink","getLinkByKey","Error","addParameter","concepttypeHref","taxonomyType","asLinkModel","link","create"],"sources":["../../../src/models/concepts/ConceptLinkModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport LinkModel from \"../links/LinkModel\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { IModelWithChildModels, ModularUIModel } from \"../types\";\nimport type Href from \"../href/Href\";\n/**\n * Link to a concept\n */\nexport default class ConceptLinkModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _conceptType: ?ConceptTypeDetailModel;\n\n /**\n * Construct ConceptLinkModel\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.conceptTypeLink) {\n this.conceptTypeLink.isCacheable = true;\n return [this.conceptTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptTypeLink) {\n const href = this.conceptTypeLink.href;\n const conceptTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href),\n );\n\n if (conceptTypeModel?.type === \"ConceptTypeDetail\") {\n this.conceptType = conceptTypeModel;\n }\n }\n }\n\n /**\n * Retrieve concept type\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n * Set concept type\n */\n set conceptType(conceptType: ?ModularUIModel) {\n this._conceptType =\n conceptType instanceof ConceptTypeDetailModel ? conceptType : null;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.data._id;\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n const label = this.getData(\"label\");\n\n if (label) {\n return label;\n }\n\n return this.getData(\"conceptLabel\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n );\n }\n\n return this._links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new Error(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`,\n );\n }\n\n return selflink;\n }\n\n /**\n * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate,\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get conceptTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"concepttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get concepttypeHref(): Href | null {\n return this.conceptTypeLink?.href ?? null;\n }\n\n /**\n */\n get taxonomyType(): string {\n return \"default\";\n }\n\n /**\n */\n asLinkModel(): LinkModel {\n const link = LinkModel.create(this.key, this.selfhref.href, this.label);\n link.href = this.selfhref;\n\n return link;\n }\n}\n"],"mappings":";;AACA,OAAOA,SAAS,MAAM,mBAAmB;AACzC,OAAOC,SAAS,MAAM,oBAAoB;AAC1C,OAAOC,cAAc,MAAM,yBAAyB;AACpD,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,SAASC,uBAAuB,QAAQ,2BAA2B;AAInE;AACA;AACA;AACA,eAAe,MAAMC,gBAAgB,SAC3BL,SAAS,CAEnB;EAKE;AACF;AACA;EACEM,WAAWA,CAACC,IAAY,EAA+B;IAAA,IAA7BC,SAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IACnD,KAAK,CAACF,IAAI,EAAE,CAAC,CAAC,CAAC;IAACK,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEhB,IAAI,CAACC,UAAU,GAAGL,SAAS;EAC7B;;EAEA;AACF;EACEM,yBAAyBA,CAAA,EAAqB;IAC5C,IAAI,IAAI,CAACC,eAAe,EAAE;MACxB,IAAI,CAACA,eAAe,CAACC,WAAW,GAAG,IAAI;MACvC,OAAO,CAAC,IAAI,CAACD,eAAe,CAAC;IAC/B;IAEA,OAAO,EAAE;EACX;;EAEA;AACF;EACEE,cAAcA,CAACC,MAA6B,EAAE;IAC5C,IAAI,IAAI,CAACH,eAAe,EAAE;MACxB,MAAMI,IAAI,GAAG,IAAI,CAACJ,eAAe,CAACI,IAAI;MACtC,MAAMC,gBAAgB,GAAGC,qBAAA,CAAAH,MAAM,EAAAI,IAAA,CAANJ,MAAM,EAAOK,KAAK,IACzCA,KAAK,CAACC,QAAQ,CAACC,oBAAoB,CAACN,IAAI,CAC1C,CAAC;MAED,IAAIC,gBAAgB,EAAEM,IAAI,KAAK,mBAAmB,EAAE;QAClD,IAAI,CAACC,WAAW,GAAGP,gBAAgB;MACrC;IACF;EACF;;EAEA;AACF;AACA;EACE,IAAIO,WAAWA,CAAA,EAA4B;IACzC,OAAO,IAAI,CAACC,YAAY;EAC1B;;EAEA;AACF;AACA;EACE,IAAID,WAAWA,CAACA,WAA4B,EAAE;IAC5C,IAAI,CAACC,YAAY,GACfD,WAAW,YAAYxB,sBAAsB,GAAGwB,WAAW,GAAG,IAAI;EACtE;;EAEA;AACF;AACA;EACE,IAAIE,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAACtB,IAAI,CAACuB,GAAG;EACtB;;EAEA;AACF;AACA;EACE,IAAIC,KAAKA,CAAA,EAAW;IAClB,MAAMA,KAAK,GAAG,IAAI,CAACC,OAAO,CAAC,OAAO,CAAC;IAEnC,IAAID,KAAK,EAAE;MACT,OAAOA,KAAK;IACd;IAEA,OAAO,IAAI,CAACC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;EACzC;;EAEA;AACF;AACA;EACE,IAAIC,KAAKA,CAAA,EAAmB;IAC1B,IAAI,CAAC,IAAI,CAACC,MAAM,EAAE;MAChB,IAAI,CAACA,MAAM,GAAG,IAAIhC,cAAc,CAC9BiC,KAAK,CAACC,OAAO,CAAC,IAAI,CAAC7B,IAAI,CAAC2B,MAAM,CAAC,GAC3B,IAAI,CAAC3B,IAAI,CAAC2B,MAAM,CAAC,CAAC,CAAC,GACnB,IAAI,CAAC3B,IAAI,CAAC2B,MAChB,CAAC;IACH;IAEA,OAAO,IAAI,CAACA,MAAM;EACpB;;EAEA;AACF;AACA;EACE,IAAIG,QAAQA,CAAA,EAAc;IACxB,MAAMA,QAAQ,GAAG,IAAI,CAACJ,KAAK,CAACK,YAAY,CAAC,MAAM,CAAC;IAEhD,IAAID,QAAQ,KAAK,IAAI,EAAE;MACrB,MAAM,IAAIE,KAAK,
|
|
1
|
+
{"version":3,"file":"ConceptLinkModel.js","names":["BaseModel","LinkModel","LinkCollection","ConceptTypeDetailModel","TIMEVERSION_FILTER_NAME","ConceptLinkModel","constructor","data","entryDate","arguments","length","undefined","_defineProperty","_entryDate","getInitialChildModelLinks","conceptTypeLink","isCacheable","setChildModels","models","href","conceptTypeModel","_findInstanceProperty","call","model","selfhref","equalsWithParameters","type","conceptType","_conceptType","key","_id","label","getData","links","_links","Array","isArray","selflink","getLinkByKey","Error","addParameter","concepttypeHref","taxonomyType","asLinkModel","link","create"],"sources":["../../../src/models/concepts/ConceptLinkModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport LinkModel from \"../links/LinkModel\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { IModelWithChildModels, ModularUIModel } from \"../types\";\nimport type Href from \"../href/Href\";\n/**\n * Link to a concept\n */\nexport default class ConceptLinkModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _conceptType: ?ConceptTypeDetailModel;\n\n /**\n * Construct ConceptLinkModel\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.conceptTypeLink) {\n this.conceptTypeLink.isCacheable = true;\n return [this.conceptTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptTypeLink) {\n const href = this.conceptTypeLink.href;\n const conceptTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href),\n );\n\n if (conceptTypeModel?.type === \"ConceptTypeDetail\") {\n this.conceptType = conceptTypeModel;\n }\n }\n }\n\n /**\n * Retrieve concept type\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n * Set concept type\n */\n set conceptType(conceptType: ?ModularUIModel) {\n this._conceptType =\n conceptType instanceof ConceptTypeDetailModel ? conceptType : null;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.data._id;\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n const label = this.getData(\"label\");\n\n if (label) {\n return label;\n }\n\n return this.getData(\"conceptLabel\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n );\n }\n\n return this._links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new Error(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`,\n );\n }\n\n return selflink;\n }\n\n /**\n * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate,\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get conceptTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"concepttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get concepttypeHref(): Href | null {\n return this.conceptTypeLink?.href ?? null;\n }\n\n /**\n */\n get taxonomyType(): string {\n return \"default\";\n }\n\n /**\n */\n asLinkModel(): LinkModel {\n const link = LinkModel.create(this.key, this.selfhref.href, this.label);\n link.href = this.selfhref;\n\n return link;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,17 +30,16 @@ export default class ConceptRelationModel {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
|
-
* Get key of relation
|
|
34
33
|
*/
|
|
35
|
-
get
|
|
34
|
+
get type() {
|
|
36
35
|
return this._relation.relationType;
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
/**
|
|
40
|
-
* Get
|
|
39
|
+
* Get key of relation
|
|
41
40
|
*/
|
|
42
|
-
get
|
|
43
|
-
return this.
|
|
41
|
+
get key() {
|
|
42
|
+
return this.type;
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
/**
|
|
@@ -57,6 +56,12 @@ export default class ConceptRelationModel {
|
|
|
57
56
|
return this._relation.relationDirection;
|
|
58
57
|
}
|
|
59
58
|
|
|
59
|
+
/**
|
|
60
|
+
*/
|
|
61
|
+
get condition() {
|
|
62
|
+
return this._relation.relationCondition;
|
|
63
|
+
}
|
|
64
|
+
|
|
60
65
|
/**
|
|
61
66
|
* Get other concept
|
|
62
67
|
*/
|
|
@@ -70,5 +75,19 @@ export default class ConceptRelationModel {
|
|
|
70
75
|
set concept(concept) {
|
|
71
76
|
this._concept = concept;
|
|
72
77
|
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Get Text fragments
|
|
81
|
+
*/
|
|
82
|
+
get textfragments() {
|
|
83
|
+
return this._relation.textFragments;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get Properties
|
|
88
|
+
*/
|
|
89
|
+
get properties() {
|
|
90
|
+
return this._relation.properties;
|
|
91
|
+
}
|
|
73
92
|
}
|
|
74
93
|
//# sourceMappingURL=ConceptRelationModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConceptRelationModel.js","names":["ConceptLinkModel","LinkModel","ConceptRelationModel","constructor","relation","entryDate","arguments","length","undefined","_defineProperty","_relation","concept","_concept","getInitialChildModelLinks","setChildModels","models","
|
|
1
|
+
{"version":3,"file":"ConceptRelationModel.js","names":["ConceptLinkModel","LinkModel","ConceptRelationModel","constructor","relation","entryDate","arguments","length","undefined","_defineProperty","_relation","concept","_concept","getInitialChildModelLinks","setChildModels","models","type","relationType","key","label","relationLabel","direction","relationDirection","condition","relationCondition","textfragments","textFragments","properties"],"sources":["../../../src/models/concepts/ConceptRelationModel.js"],"sourcesContent":["// @flow\nimport ConceptLinkModel from \"./ConceptLinkModel\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type {\n IModelWithChildModels,\n ModularUIModel,\n textfragmentJSON,\n propertyJSON,\n} from \"../types\";\n\n/**\n * Concept relation model\n */\nexport default class ConceptRelationModel implements IModelWithChildModels {\n _relation: Object;\n _concept: ConceptLinkModel;\n\n /**\n */\n constructor(relation: Object, entryDate: ?ISO_DATE = null) {\n this._relation = relation;\n\n if (relation && relation.concept) {\n this._concept = new ConceptLinkModel(relation.concept, entryDate);\n }\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.concept.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.concept.setChildModels(models);\n }\n\n /**\n */\n get type(): string {\n return this._relation.relationType;\n }\n\n /**\n * Get key of relation\n */\n get key(): string {\n return this.type;\n }\n\n /**\n * Get Label of relation\n */\n get label(): string {\n return this._relation.relationLabel;\n }\n\n /**\n * Get direction of relation\n */\n get direction(): string {\n return this._relation.relationDirection;\n }\n\n /**\n */\n get condition(): string {\n return this._relation.relationCondition;\n }\n\n /**\n * Get other concept\n */\n get concept(): ConceptLinkModel {\n return this._concept;\n }\n\n /**\n * Set concept information\n */\n set concept(concept: ConceptLinkModel) {\n this._concept = concept;\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n return this._relation.textFragments;\n }\n\n /**\n * Get Properties\n */\n get properties(): Array<propertyJSON> {\n return this._relation.properties;\n }\n}\n"],"mappings":";AACA,OAAOA,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,SAAS,MAAM,oBAAoB;AAS1C;AACA;AACA;AACA,eAAe,MAAMC,oBAAoB,CAAkC;EAIzE;AACF;EACEC,WAAWA,CAACC,QAAgB,EAA+B;IAAA,IAA7BC,SAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAAAG,eAAA;IAAAA,eAAA;IACvD,IAAI,CAACC,SAAS,GAAGN,QAAQ;IAEzB,IAAIA,QAAQ,IAAIA,QAAQ,CAACO,OAAO,EAAE;MAChC,IAAI,CAACC,QAAQ,GAAG,IAAIZ,gBAAgB,CAACI,QAAQ,CAACO,OAAO,EAAEN,SAAS,CAAC;IACnE;EACF;;EAEA;AACF;EACEQ,yBAAyBA,CAAA,EAAqB;IAC5C,OAAO,IAAI,CAACF,OAAO,CAACE,yBAAyB,CAAC,CAAC;EACjD;;EAEA;AACF;EACEC,cAAcA,CAACC,MAA6B,EAAE;IAC5C,IAAI,CAACJ,OAAO,CAACG,cAAc,CAACC,MAAM,CAAC;EACrC;;EAEA;AACF;EACE,IAAIC,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACN,SAAS,CAACO,YAAY;EACpC;;EAEA;AACF;AACA;EACE,IAAIC,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAACF,IAAI;EAClB;;EAEA;AACF;AACA;EACE,IAAIG,KAAKA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACT,SAAS,CAACU,aAAa;EACrC;;EAEA;AACF;AACA;EACE,IAAIC,SAASA,CAAA,EAAW;IACtB,OAAO,IAAI,CAACX,SAAS,CAACY,iBAAiB;EACzC;;EAEA;AACF;EACE,IAAIC,SAASA,CAAA,EAAW;IACtB,OAAO,IAAI,CAACb,SAAS,CAACc,iBAAiB;EACzC;;EAEA;AACF;AACA;EACE,IAAIb,OAAOA,CAAA,EAAqB;IAC9B,OAAO,IAAI,CAACC,QAAQ;EACtB;;EAEA;AACF;AACA;EACE,IAAID,OAAOA,CAACA,OAAyB,EAAE;IACrC,IAAI,CAACC,QAAQ,GAAGD,OAAO;EACzB;;EAEA;AACF;AACA;EACE,IAAIc,aAAaA,CAAA,EAA4B;IAC3C,OAAO,IAAI,CAACf,SAAS,CAACgB,aAAa;EACrC;;EAEA;AACF;AACA;EACE,IAAIC,UAAUA,CAAA,EAAwB;IACpC,OAAO,IAAI,CAACjB,SAAS,CAACiB,UAAU;EAClC;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceReferenceModel.js","names":["createHashFromHref","ContentLinkModel","Href","SourceReferenceModel","constructor","sourceReference","entryDate","arguments","length","undefined","_defineProperty","_sourceReference","_entryDate","link","section","_links","self","href","replace","content","selfhref","type","label","sourceLabel","referenceHash"],"sources":["../../../src/models/concepts/SourceReferenceModel.js"],"sourcesContent":["// @flow\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\n\nimport ContentLinkModel from \"../content/ContentLinkModel\";\nimport Href from \"../href/Href\";\n\n/**\n */\nclass SourceReferenceModel {\n _sourceReference: Object;\n _entryDate: ?ISO_DATE;\n\n /**\n */\n constructor(sourceReference: Object, entryDate: ?ISO_DATE = null) {\n this._sourceReference = sourceReference;\n this._entryDate = entryDate;\n }\n\n /**\n */\n get link(): ContentLinkModel {\n const section = this._sourceReference._links.self.href.replace(\n `${this._sourceReference._links.content.href}/`,\n \"\",\n );\n\n return new ContentLinkModel(\n {\n ...this._sourceReference,\n section,\n },\n this._entryDate,\n );\n }\n\n /**\n */\n get selfhref(): Href {\n return new Href(this._sourceReference._links.self.href);\n }\n\n /**\n */\n get type(): string {\n return this._sourceReference.type;\n }\n\n /**\n */\n get label(): string {\n return this._sourceReference.label;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this._sourceReference.sourceLabel;\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n}\n\nexport default SourceReferenceModel;\n"],"mappings":";AACA,SAASA,kBAAkB,QAAQ,gCAAgC;AAEnE,OAAOC,gBAAgB,MAAM,6BAA6B;AAC1D,OAAOC,IAAI,MAAM,cAAc;;AAE/B;AACA;AACA,MAAMC,oBAAoB,CAAC;EAIzB;AACF;EACEC,WAAWA,CAACC,eAAuB,EAA+B;IAAA,IAA7BC,SAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAAAG,eAAA;IAAAA,eAAA;IAC9D,IAAI,CAACC,gBAAgB,GAAGN,eAAe;IACvC,IAAI,CAACO,UAAU,GAAGN,SAAS;EAC7B;;EAEA;AACF;EACE,IAAIO,IAAIA,CAAA,EAAqB;IAC3B,MAAMC,OAAO,GAAG,IAAI,CAACH,gBAAgB,CAACI,MAAM,CAACC,IAAI,CAACC,IAAI,CAACC,OAAO,
|
|
1
|
+
{"version":3,"file":"SourceReferenceModel.js","names":["createHashFromHref","ContentLinkModel","Href","SourceReferenceModel","constructor","sourceReference","entryDate","arguments","length","undefined","_defineProperty","_sourceReference","_entryDate","link","section","_links","self","href","replace","content","selfhref","type","label","sourceLabel","referenceHash"],"sources":["../../../src/models/concepts/SourceReferenceModel.js"],"sourcesContent":["// @flow\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\n\nimport ContentLinkModel from \"../content/ContentLinkModel\";\nimport Href from \"../href/Href\";\n\n/**\n */\nclass SourceReferenceModel {\n _sourceReference: Object;\n _entryDate: ?ISO_DATE;\n\n /**\n */\n constructor(sourceReference: Object, entryDate: ?ISO_DATE = null) {\n this._sourceReference = sourceReference;\n this._entryDate = entryDate;\n }\n\n /**\n */\n get link(): ContentLinkModel {\n const section = this._sourceReference._links.self.href.replace(\n `${this._sourceReference._links.content.href}/`,\n \"\",\n );\n\n return new ContentLinkModel(\n {\n ...this._sourceReference,\n section,\n },\n this._entryDate,\n );\n }\n\n /**\n */\n get selfhref(): Href {\n return new Href(this._sourceReference._links.self.href);\n }\n\n /**\n */\n get type(): string {\n return this._sourceReference.type;\n }\n\n /**\n */\n get label(): string {\n return this._sourceReference.label;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this._sourceReference.sourceLabel;\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n}\n\nexport default SourceReferenceModel;\n"],"mappings":";AACA,SAASA,kBAAkB,QAAQ,gCAAgC;AAEnE,OAAOC,gBAAgB,MAAM,6BAA6B;AAC1D,OAAOC,IAAI,MAAM,cAAc;;AAE/B;AACA;AACA,MAAMC,oBAAoB,CAAC;EAIzB;AACF;EACEC,WAAWA,CAACC,eAAuB,EAA+B;IAAA,IAA7BC,SAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAAAG,eAAA;IAAAA,eAAA;IAC9D,IAAI,CAACC,gBAAgB,GAAGN,eAAe;IACvC,IAAI,CAACO,UAAU,GAAGN,SAAS;EAC7B;;EAEA;AACF;EACE,IAAIO,IAAIA,CAAA,EAAqB;IAC3B,MAAMC,OAAO,GAAG,IAAI,CAACH,gBAAgB,CAACI,MAAM,CAACC,IAAI,CAACC,IAAI,CAACC,OAAO,CAC5D,GAAG,IAAI,CAACP,gBAAgB,CAACI,MAAM,CAACI,OAAO,CAACF,IAAI,GAAG,EAC/C,EACF,CAAC;IAED,OAAO,IAAIhB,gBAAgB,CACzB;MACE,GAAG,IAAI,CAACU,gBAAgB;MACxBG;IACF,CAAC,EACD,IAAI,CAACF,UACP,CAAC;EACH;;EAEA;AACF;EACE,IAAIQ,QAAQA,CAAA,EAAS;IACnB,OAAO,IAAIlB,IAAI,CAAC,IAAI,CAACS,gBAAgB,CAACI,MAAM,CAACC,IAAI,CAACC,IAAI,CAAC;EACzD;;EAEA;AACF;EACE,IAAII,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACV,gBAAgB,CAACU,IAAI;EACnC;;EAEA;AACF;EACE,IAAIC,KAAKA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACX,gBAAgB,CAACW,KAAK;EACpC;;EAEA;AACF;EACE,IAAIC,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACZ,gBAAgB,CAACY,WAAW;EAC1C;;EAEA;AACF;EACE,IAAIC,aAAaA,CAAA,EAAW;IAC1B,OAAOxB,kBAAkB,CAAC,IAAI,CAACoB,QAAQ,CAAC;EAC1C;AACF;AAEA,eAAejB,oBAAoB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentLinkModel.js","names":["BaseModel","Href","LinkModel","ContentTypeModel","TIMEVERSION_FILTER_NAME","LinkCollection","ContentLinkModel","constructor","data","entryDate","arguments","length","undefined","_defineProperty","_entryDate","getInitialChildModelLinks","contentTypeLink","isCacheable","setChildModels","models","href","contentTypeModel","_findInstanceProperty","call","model","selfhref","equalsWithParameters","type","contentType","_contentType","key","getData","label","sourceLabel","createEncodedHref","startURI","selfHref","_links","self","path","section","sourceId","substring","lastIndexOf","encodeURIComponent","encodedHref","addParameter","links","Array","isArray","selflink","getLinkByKey","Error","subSectionID","hash","contentTypeHref","items","_items"],"sources":["../../../src/models/content/ContentLinkModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\nimport LinkModel from \"../links/LinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\n\n/**\n * Link to a concept\n */\nexport default class ContentLinkModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _contentType: ContentTypeModel | null = null;\n _items: Array<ContentLinkModel>;\n\n /**\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n // $FlowFixMe[method-unbinding]\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.contentTypeLink) {\n this.contentTypeLink.isCacheable = true;\n return [this.contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n // $FlowFixMe[method-unbinding]\n setChildModels(models: Array<ModularUIModel>) {\n if (this.contentTypeLink) {\n const href = this.contentTypeLink.href;\n const contentTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href),\n );\n\n if (contentTypeModel?.type === \"ContentType\") {\n this.contentType = contentTypeModel;\n }\n }\n }\n\n /**\n * Retrieve content type\n */\n get contentType(): ?ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n * Set concept type\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n */\n set entryDate(entryDate: ISO_DATE) {\n this._entryDate = entryDate;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.getData(\"_id\", \"\");\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve the label of the source a link to a section belongs to\n */\n get sourceLabel(): string | null {\n return this.getData(\"sourceLabel\");\n }\n\n /**\n */\n createEncodedHref(): Href {\n const startURI = \"/content/\";\n const selfHref = new Href(this.data._links.self.href);\n const href = selfHref.path;\n\n const section = this.data.section;\n const sourceId = section\n ? href.substring(startURI.length, href.lastIndexOf(\"/\"))\n : href.substring(startURI.length);\n\n if (section) {\n selfHref.path = `${startURI}${encodeURIComponent(sourceId)}/${encodeURIComponent(section)}`;\n } else {\n selfHref.path = `${startURI}${encodeURIComponent(sourceId)}`;\n }\n\n return selfHref;\n }\n\n /**\n * Encode the content-identifier of the path to the content resource.\n * This makes it a single uri part, which can be used on routes to make nested routes\n */\n get encodedHref(): Href {\n const href = this.createEncodedHref();\n\n if (this._entryDate !== null) {\n return href.addParameter(TIMEVERSION_FILTER_NAME, this._entryDate);\n }\n\n return href;\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n );\n }\n\n return this._links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new Error(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`,\n );\n }\n\n return selflink;\n }\n\n /**\n * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate,\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get subSectionID(): string {\n return this.selfhref.hash;\n }\n\n /**\n */\n get contentTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"contenttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get contentTypeHref(): Href | null {\n if (this.contentTypeLink) {\n return this.contentTypeLink.href;\n }\n\n return null;\n }\n\n /**\n * Children of link model in TOC\n */\n set items(items: Array<ContentLinkModel>) {\n this._items = items;\n }\n\n /**\n */\n get items(): Array<ContentLinkModel> {\n return this._items;\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ContentLinkModel.js","names":["BaseModel","Href","LinkModel","ContentTypeModel","TIMEVERSION_FILTER_NAME","LinkCollection","ContentLinkModel","constructor","data","entryDate","arguments","length","undefined","_defineProperty","_entryDate","getInitialChildModelLinks","contentTypeLink","isCacheable","setChildModels","models","href","contentTypeModel","_findInstanceProperty","call","model","selfhref","equalsWithParameters","type","contentType","_contentType","key","getData","label","sourceLabel","createEncodedHref","startURI","selfHref","_links","self","path","section","sourceId","substring","lastIndexOf","encodeURIComponent","encodedHref","addParameter","links","Array","isArray","selflink","getLinkByKey","Error","subSectionID","hash","contentTypeHref","items","_items"],"sources":["../../../src/models/content/ContentLinkModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\nimport LinkModel from \"../links/LinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\n\n/**\n * Link to a concept\n */\nexport default class ContentLinkModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _contentType: ContentTypeModel | null = null;\n _items: Array<ContentLinkModel>;\n\n /**\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n // $FlowFixMe[method-unbinding]\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.contentTypeLink) {\n this.contentTypeLink.isCacheable = true;\n return [this.contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n // $FlowFixMe[method-unbinding]\n setChildModels(models: Array<ModularUIModel>) {\n if (this.contentTypeLink) {\n const href = this.contentTypeLink.href;\n const contentTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href),\n );\n\n if (contentTypeModel?.type === \"ContentType\") {\n this.contentType = contentTypeModel;\n }\n }\n }\n\n /**\n * Retrieve content type\n */\n get contentType(): ?ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n * Set concept type\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n */\n set entryDate(entryDate: ISO_DATE) {\n this._entryDate = entryDate;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.getData(\"_id\", \"\");\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve the label of the source a link to a section belongs to\n */\n get sourceLabel(): string | null {\n return this.getData(\"sourceLabel\");\n }\n\n /**\n */\n createEncodedHref(): Href {\n const startURI = \"/content/\";\n const selfHref = new Href(this.data._links.self.href);\n const href = selfHref.path;\n\n const section = this.data.section;\n const sourceId = section\n ? href.substring(startURI.length, href.lastIndexOf(\"/\"))\n : href.substring(startURI.length);\n\n if (section) {\n selfHref.path = `${startURI}${encodeURIComponent(sourceId)}/${encodeURIComponent(section)}`;\n } else {\n selfHref.path = `${startURI}${encodeURIComponent(sourceId)}`;\n }\n\n return selfHref;\n }\n\n /**\n * Encode the content-identifier of the path to the content resource.\n * This makes it a single uri part, which can be used on routes to make nested routes\n */\n get encodedHref(): Href {\n const href = this.createEncodedHref();\n\n if (this._entryDate !== null) {\n return href.addParameter(TIMEVERSION_FILTER_NAME, this._entryDate);\n }\n\n return href;\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n );\n }\n\n return this._links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new Error(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`,\n );\n }\n\n return selflink;\n }\n\n /**\n * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate,\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get subSectionID(): string {\n return this.selfhref.hash;\n }\n\n /**\n */\n get contentTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"contenttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get contentTypeHref(): Href | null {\n if (this.contentTypeLink) {\n return this.contentTypeLink.href;\n }\n\n return null;\n }\n\n /**\n * Children of link model in TOC\n */\n set items(items: Array<ContentLinkModel>) {\n this._items = items;\n }\n\n /**\n */\n get items(): Array<ContentLinkModel> {\n return this._items;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|