@beinformed/ui 1.65.23 → 1.65.25
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 +18 -0
- package/esm/builder/mergeLayoutHintConfigurations.js +6 -5
- package/esm/builder/mergeLayoutHintConfigurations.js.flow +11 -5
- package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/esm/constants/Settings.js +4 -1
- package/esm/constants/Settings.js.flow +3 -3
- package/esm/constants/Settings.js.map +1 -1
- package/esm/hooks/__tests__/useAuthentication.spec.js.flow +100 -132
- package/esm/hooks/useAuthentication.js +21 -11
- package/esm/hooks/useAuthentication.js.flow +29 -26
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useModelCatalog.js +1 -1
- package/esm/hooks/useModelCatalog.js.flow +1 -1
- package/esm/hooks/useModelCatalog.js.map +1 -1
- package/esm/hooks/useModularUI.js +1 -1
- package/esm/hooks/useModularUI.js.flow +1 -1
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/i18n/Locale.js +3 -1
- package/esm/i18n/Locale.js.flow +2 -2
- package/esm/i18n/Locale.js.map +1 -1
- package/esm/models/actions/ActionCollection.js +1 -1
- package/esm/models/actions/ActionCollection.js.flow +3 -3
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/application/ApplicationModel.js +6 -1
- package/esm/models/application/ApplicationModel.js.flow +7 -2
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js +3 -5
- package/esm/models/attributes/ChoiceAttributeModel.js.flow +3 -5
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js.flow +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/esm/models/attributes/NumberAttributeModel.js +3 -1
- package/esm/models/attributes/NumberAttributeModel.js.flow +2 -1
- package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
- package/esm/models/attributes/StringAttributeModel.js +5 -4
- package/esm/models/attributes/StringAttributeModel.js.flow +4 -4
- package/esm/models/attributes/StringAttributeModel.js.map +1 -1
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.flow +1 -1
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
- package/esm/models/base/BaseModel.js +6 -5
- package/esm/models/base/BaseModel.js.flow +7 -5
- package/esm/models/base/BaseModel.js.map +1 -1
- package/esm/models/base/ResourceModel.js +6 -7
- package/esm/models/base/ResourceModel.js.flow +4 -4
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +16 -16
- package/esm/models/concepts/ConceptDetailModel.js.flow +16 -19
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/SourceReferenceCollection.js +1 -1
- package/esm/models/concepts/SourceReferenceCollection.js.flow +1 -2
- package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js +6 -6
- package/esm/models/content/ContentLinkModel.js.flow +6 -6
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js +3 -5
- package/esm/models/filters/BaseFilterModel.js.flow +4 -5
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/StringFilterModel.js +3 -2
- package/esm/models/filters/StringFilterModel.js.flow +2 -2
- package/esm/models/filters/StringFilterModel.js.map +1 -1
- package/esm/models/form/FormModel.js +1 -1
- package/esm/models/form/FormModel.js.flow +1 -2
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.js +1 -1
- package/esm/models/form/FormObjectModel.js.flow +2 -3
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/href/Href.js +2 -2
- package/esm/models/href/Href.js.flow +2 -2
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/index.js +2 -2
- package/esm/models/index.js.flow +1 -2
- package/esm/models/index.js.map +1 -1
- package/esm/models/links/normalizeLinkJSON.js +1 -1
- package/esm/models/links/normalizeLinkJSON.js.flow +1 -1
- package/esm/models/links/normalizeLinkJSON.js.map +1 -1
- package/esm/modularui/Authenticate.js +7 -2
- package/esm/modularui/Authenticate.js.flow +4 -2
- package/esm/modularui/Authenticate.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +2 -5
- package/esm/modularui/ModularUIRequest.js.flow +2 -6
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/modularui/UploadRequest.js +3 -1
- package/esm/modularui/UploadRequest.js.flow +3 -1
- package/esm/modularui/UploadRequest.js.map +1 -1
- package/esm/react-client/client.js +22 -10
- package/esm/react-client/client.js.flow +17 -11
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-client/contextPath.js +3 -1
- package/esm/react-client/contextPath.js.flow +2 -1
- package/esm/react-client/contextPath.js.map +1 -1
- package/esm/redux/_i18n/I18nActions.js.flow +1 -1
- package/esm/redux/_i18n/I18nActions.js.map +1 -1
- package/esm/redux/_i18n/I18nReducer.js +1 -4
- package/esm/redux/_i18n/I18nReducer.js.flow +1 -4
- package/esm/redux/_i18n/I18nReducer.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js +1 -4
- package/esm/redux/_modularui/ModularUIActions.js.flow +3 -7
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIConnector.js +2 -5
- package/esm/redux/_modularui/ModularUIConnector.js.flow +2 -2
- package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/esm/redux/_modularui/ModularUIReducer.js +6 -3
- package/esm/redux/_modularui/ModularUIReducer.js.flow +2 -2
- package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/esm/redux/_modularui/ModularUISelectors.js +12 -18
- package/esm/redux/_modularui/ModularUISelectors.js.flow +13 -14
- package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/esm/redux/_modularui/withModularUI.js.flow +2 -2
- package/esm/redux/_modularui/withModularUI.js.map +1 -1
- package/esm/redux/actions/Application.js +32 -4
- package/esm/redux/actions/Application.js.flow +34 -5
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/actions/Authorization.js +23 -26
- package/esm/redux/actions/Authorization.js.flow +30 -30
- package/esm/redux/actions/Authorization.js.map +1 -1
- package/esm/redux/actions/Error.js +2 -0
- package/esm/redux/actions/Error.js.flow +5 -4
- package/esm/redux/actions/Error.js.map +1 -1
- package/esm/redux/actions/Form.js.flow +1 -1
- package/esm/redux/actions/Form.js.map +1 -1
- package/esm/redux/actions/FormAttributeSet.js.flow +1 -1
- package/esm/redux/actions/FormAttributeSet.js.map +1 -1
- package/esm/redux/actions/FormAutosave.js.flow +1 -1
- package/esm/redux/actions/FormAutosave.js.map +1 -1
- package/esm/redux/actions/FormAutosubmit.js.flow +1 -1
- package/esm/redux/actions/FormAutosubmit.js.map +1 -1
- package/esm/redux/actions/FormAutoupdate.js.flow +1 -1
- package/esm/redux/actions/FormAutoupdate.js.map +1 -1
- package/esm/redux/actions/FormValidations.js.flow +1 -1
- package/esm/redux/actions/FormValidations.js.map +1 -1
- package/esm/redux/actions/Notification.js.flow +3 -3
- package/esm/redux/actions/Notification.js.map +1 -1
- package/esm/redux/actions/Preferences.js +4 -4
- package/esm/redux/actions/Preferences.js.flow +6 -10
- package/esm/redux/actions/Preferences.js.map +1 -1
- package/esm/redux/actions/SignIn.js +2 -4
- package/esm/redux/actions/SignIn.js.flow +4 -7
- package/esm/redux/actions/SignIn.js.map +1 -1
- package/esm/redux/actions/SignOut.js.flow +1 -1
- package/esm/redux/actions/SignOut.js.map +1 -1
- package/esm/redux/actions/__tests__/Application.spec.js.flow +67 -29
- package/esm/redux/actions/__tests__/Authorization.spec.js.flow +77 -83
- package/esm/redux/connectors/Form.js.flow +2 -2
- package/esm/redux/connectors/Form.js.map +1 -1
- package/esm/redux/connectors/FormAttributeSet.js.flow +2 -5
- package/esm/redux/connectors/FormAttributeSet.js.map +1 -1
- package/esm/redux/connectors/Progress.js.flow +1 -1
- package/esm/redux/connectors/Progress.js.map +1 -1
- package/esm/redux/connectors/SignIn.js.flow +1 -1
- package/esm/redux/connectors/SignIn.js.map +1 -1
- package/esm/redux/connectors/SignOut.js.flow +1 -1
- package/esm/redux/connectors/SignOut.js.map +1 -1
- package/esm/redux/reducers/ModelCatalogReducer.js +7 -9
- package/esm/redux/reducers/ModelCatalogReducer.js.flow +8 -9
- package/esm/redux/reducers/ModelCatalogReducer.js.map +1 -1
- package/esm/redux/store/configureStore.js +9 -2
- package/esm/redux/store/configureStore.js.flow +13 -2
- package/esm/redux/store/configureStore.js.map +1 -1
- package/esm/redux/types.js.flow +33 -5
- package/esm/redux/types.js.map +1 -1
- package/esm/utils/browser/Cache.js +3 -1
- package/esm/utils/browser/Cache.js.flow +2 -1
- package/esm/utils/browser/Cache.js.map +1 -1
- package/esm/utils/browser/__tests__/Cookies.spec.js.flow +2 -1
- package/esm/utils/datetime/DateTimeUtil.js +6 -5
- package/esm/utils/datetime/DateTimeUtil.js.flow +5 -11
- package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
- package/esm/utils/datetime/__tests__/DateTimeFormat.spec.js.flow +0 -6
- package/esm/utils/fetch/universalFetch.js +7 -8
- package/esm/utils/fetch/universalFetch.js.flow +13 -14
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js +2 -5
- package/esm/utils/fetch/xhr.js.flow +2 -6
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/createHref.js +2 -1
- package/esm/utils/helpers/createHref.js.flow +1 -1
- package/esm/utils/helpers/createHref.js.map +1 -1
- package/esm/utils/helpers/createUUID.js +2 -1
- package/esm/utils/helpers/createUUID.js.flow +1 -1
- package/esm/utils/helpers/createUUID.js.map +1 -1
- package/esm/utils/number/parseNumbers.js +4 -3
- package/esm/utils/number/parseNumbers.js.flow +3 -3
- package/esm/utils/number/parseNumbers.js.map +1 -1
- package/lib/builder/mergeLayoutHintConfigurations.js +6 -5
- package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/lib/constants/Settings.js +4 -1
- package/lib/constants/Settings.js.map +1 -1
- package/lib/hooks/useAuthentication.js +21 -11
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useModelCatalog.js +1 -1
- package/lib/hooks/useModelCatalog.js.map +1 -1
- package/lib/hooks/useModularUI.js +1 -1
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/i18n/Locale.js +3 -1
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/models/actions/ActionCollection.js +1 -1
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/application/ApplicationModel.js +6 -1
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +3 -5
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/attributes/NumberAttributeModel.js +3 -1
- package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
- package/lib/models/attributes/StringAttributeModel.js +5 -4
- package/lib/models/attributes/StringAttributeModel.js.map +1 -1
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
- package/lib/models/base/BaseModel.js +6 -5
- package/lib/models/base/BaseModel.js.map +1 -1
- package/lib/models/base/ResourceModel.js +6 -7
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js +16 -16
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceCollection.js +1 -1
- package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/lib/models/content/ContentLinkModel.js +6 -6
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js +3 -5
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/StringFilterModel.js +3 -2
- package/lib/models/filters/StringFilterModel.js.map +1 -1
- package/lib/models/form/FormModel.js +1 -1
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.js +1 -1
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/href/Href.js +2 -2
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/index.js.map +1 -1
- package/lib/models/links/normalizeLinkJSON.js +1 -1
- package/lib/models/links/normalizeLinkJSON.js.map +1 -1
- package/lib/modularui/Authenticate.js +7 -2
- package/lib/modularui/Authenticate.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +2 -5
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/modularui/UploadRequest.js +3 -1
- package/lib/modularui/UploadRequest.js.map +1 -1
- package/lib/react-client/client.js +22 -10
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-client/contextPath.js +4 -1
- package/lib/react-client/contextPath.js.map +1 -1
- package/lib/redux/_i18n/I18nActions.js.map +1 -1
- package/lib/redux/_i18n/I18nReducer.js +1 -4
- package/lib/redux/_i18n/I18nReducer.js.map +1 -1
- package/lib/redux/_modularui/ModularUIActions.js +1 -4
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIConnector.js +2 -5
- package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/lib/redux/_modularui/ModularUIReducer.js +6 -3
- package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/lib/redux/_modularui/ModularUISelectors.js +12 -18
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/lib/redux/_modularui/withModularUI.js.map +1 -1
- package/lib/redux/actions/Application.js +33 -4
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/Authorization.js +23 -26
- package/lib/redux/actions/Authorization.js.map +1 -1
- package/lib/redux/actions/Error.js +2 -0
- package/lib/redux/actions/Error.js.map +1 -1
- package/lib/redux/actions/Form.js.map +1 -1
- package/lib/redux/actions/FormAttributeSet.js.map +1 -1
- package/lib/redux/actions/FormAutosave.js.map +1 -1
- package/lib/redux/actions/FormAutosubmit.js.map +1 -1
- package/lib/redux/actions/FormAutoupdate.js.map +1 -1
- package/lib/redux/actions/FormValidations.js.map +1 -1
- package/lib/redux/actions/Notification.js.map +1 -1
- package/lib/redux/actions/Preferences.js +4 -4
- package/lib/redux/actions/Preferences.js.map +1 -1
- package/lib/redux/actions/SignIn.js +2 -4
- package/lib/redux/actions/SignIn.js.map +1 -1
- package/lib/redux/actions/SignOut.js.map +1 -1
- package/lib/redux/connectors/Form.js.map +1 -1
- package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
- package/lib/redux/connectors/Progress.js.map +1 -1
- package/lib/redux/connectors/SignIn.js.map +1 -1
- package/lib/redux/connectors/SignOut.js.map +1 -1
- package/lib/redux/reducers/ModelCatalogReducer.js +7 -9
- package/lib/redux/reducers/ModelCatalogReducer.js.map +1 -1
- package/lib/redux/store/configureStore.js +9 -2
- package/lib/redux/store/configureStore.js.map +1 -1
- package/lib/redux/types.js.map +1 -1
- package/lib/utils/browser/Cache.js +3 -1
- package/lib/utils/browser/Cache.js.map +1 -1
- package/lib/utils/datetime/DateTimeUtil.js +6 -5
- package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js +7 -8
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js +2 -5
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/createHref.js +2 -1
- package/lib/utils/helpers/createHref.js.map +1 -1
- package/lib/utils/helpers/createUUID.js +3 -1
- package/lib/utils/helpers/createUUID.js.map +1 -1
- package/lib/utils/number/parseNumbers.js +4 -3
- package/lib/utils/number/parseNumbers.js.map +1 -1
- package/package.json +9 -9
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
9
|
+
var _replaceAll = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/replace-all"));
|
|
9
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
10
11
|
var _AttributeModel = _interopRequireDefault(require("./AttributeModel"));
|
|
11
12
|
var _ConstraintCollection = _interopRequireDefault(require("./input-constraints/ConstraintCollection"));
|
|
@@ -125,7 +126,7 @@ class StringAttributeModel extends _AttributeModel.default {
|
|
|
125
126
|
constraints.add(new _RegexConstraint.default({
|
|
126
127
|
messageKey: "Constraint.ZipCode.InvalidFormat",
|
|
127
128
|
defaultMessage: "Must be a valid Dutch ZIP code, e.g. 1234 AB",
|
|
128
|
-
regex:
|
|
129
|
+
regex: /^[1-9]\d{3} ?[a-z]{2}$/gi
|
|
129
130
|
}));
|
|
130
131
|
} else if (this.isEmail() && this.regexp) {
|
|
131
132
|
constraints.add(new _RegexConstraint.default({
|
|
@@ -192,7 +193,7 @@ class StringAttributeModel extends _AttributeModel.default {
|
|
|
192
193
|
if (this.isBSN()) {
|
|
193
194
|
return this.formatBSN(value);
|
|
194
195
|
}
|
|
195
|
-
return value.
|
|
196
|
+
return (0, _replaceAll.default)(value).call(value, " ", " \u00A0");
|
|
196
197
|
}
|
|
197
198
|
|
|
198
199
|
/**
|
|
@@ -202,7 +203,7 @@ class StringAttributeModel extends _AttributeModel.default {
|
|
|
202
203
|
return "";
|
|
203
204
|
}
|
|
204
205
|
if (this.isIBAN() || this.isZipcode() || this.isBSN()) {
|
|
205
|
-
return value.
|
|
206
|
+
return (0, _replaceAll.default)(value).call(value, /[^a-z0-9,]/gi, "");
|
|
206
207
|
}
|
|
207
208
|
return value;
|
|
208
209
|
}
|
|
@@ -238,7 +239,7 @@ class StringAttributeModel extends _AttributeModel.default {
|
|
|
238
239
|
if (typeof this.value === "string") {
|
|
239
240
|
const formattedValue = this.formatValue(this.value);
|
|
240
241
|
// fix for rendering of multiple spaces
|
|
241
|
-
return formattedValue.
|
|
242
|
+
return (0, _replaceAll.default)(formattedValue).call(formattedValue, " ", " \u00A0");
|
|
242
243
|
}
|
|
243
244
|
return this.value == null ? "" : this.value;
|
|
244
245
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_ConstraintCollection","_RegexConstraint","_BSNConstraint","_IBANConstraint","_constants","StringAttributeModel","AttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty2","default","_placeholder","getContribution","getInitialInputValue","value","formatValue","isApplicableModel","contributions","layouthint","type","Array","isArray","_includes","call","regexp","regexpvalidationmessage","postfix","prefix","placeholder","isBSN","has","isIBAN","isZipcode","isEmail","addConstraints","constraints","ConstraintCollection","add","BSNConstraint","IBANConstraint","RegexConstraint","messageKey","defaultMessage","regex","RegExp","reset","inputvalue","formatIBAN","noFormat","removeFormat","groups","replace","match","join","formatZipcode","length","substring","toUpperCase","formatBSN","toString","validateValue","getInputValue","_inputvalue","validate","readonlyvalue","formattedValue","update","updateLastModification","updateByAttribute","otherAttribute","console","error","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","exports"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode()) {\n // validate zip when regex is set is set or exact or isNot\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: new RegExp(\"^[1-9][0-9]{3} ?[a-zA-Z]{2}$\", \"gi\"),\n }),\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n }),\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n }),\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length === 6) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n return value.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n\n if (value == null) {\n this.value = value;\n } else {\n this.value = this.removeFormat(value);\n }\n\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n const formattedValue = this.formatValue(this.value);\n // fix for rendering of multiple spaces\n return formattedValue.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof StringAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of string attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"StringAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_ConstraintCollection","_RegexConstraint","_BSNConstraint","_IBANConstraint","_constants","StringAttributeModel","AttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty2","default","_placeholder","getContribution","getInitialInputValue","value","formatValue","isApplicableModel","contributions","layouthint","type","Array","isArray","_includes","call","regexp","regexpvalidationmessage","postfix","prefix","placeholder","isBSN","has","isIBAN","isZipcode","isEmail","addConstraints","constraints","ConstraintCollection","add","BSNConstraint","IBANConstraint","RegexConstraint","messageKey","defaultMessage","regex","RegExp","reset","inputvalue","formatIBAN","noFormat","removeFormat","groups","replace","match","join","formatZipcode","length","substring","toUpperCase","formatBSN","toString","_replaceAll","validateValue","getInputValue","_inputvalue","validate","readonlyvalue","formattedValue","update","updateLastModification","updateByAttribute","otherAttribute","console","error","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","exports"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode()) {\n // validate zip when regex is set is set or exact or isNot\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: /^[1-9]\\d{3} ?[a-z]{2}$/gi,\n }),\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n }),\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n }),\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length === 6) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n return value.replaceAll(\" \", \" \\u00A0\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n return value.replaceAll(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n\n if (value == null) {\n this.value = value;\n } else {\n this.value = this.removeFormat(value);\n }\n\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n const formattedValue = this.formatValue(this.value);\n // fix for rendering of multiple spaces\n return formattedValue.replaceAll(\" \", \" \\u00A0\");\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof StringAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of string attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -104,7 +104,7 @@ class DatetimeFormatConstraint {
|
|
|
104
104
|
if (!hasDateTime) {
|
|
105
105
|
this._id = "Constraint.DateTime.MissingValue";
|
|
106
106
|
return false;
|
|
107
|
-
} else if (
|
|
107
|
+
} else if (!/[+-](0\d|1[0-4]):[0-5]\d/.test(value)) {
|
|
108
108
|
this._id = "Constraint.DateTime.MissingOffset";
|
|
109
109
|
return false;
|
|
110
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatetimeFormatConstraint.js","names":["_DateTimeUtil","require","_constants","DatetimeFormatConstraint","constructor","type","format","formatLabel","_context","_defineProperty2","default","_type","_format","_formatNoOffset","_trim","replace","DATETIME_OFFSET_FORMAT","call","_formatLabel","id","_id","hasValidation","defaultMessage","parameters","offsets","DateTimeUtil","getTimezoneOffsets","daylight","label","standard","formatUtil","TimestampUtil","validate","value","hasFormat","isIncludeTimeOffsetInDateTimes","hasDateTime","
|
|
1
|
+
{"version":3,"file":"DatetimeFormatConstraint.js","names":["_DateTimeUtil","require","_constants","DatetimeFormatConstraint","constructor","type","format","formatLabel","_context","_defineProperty2","default","_type","_format","_formatNoOffset","_trim","replace","DATETIME_OFFSET_FORMAT","call","_formatLabel","id","_id","hasValidation","defaultMessage","parameters","offsets","DateTimeUtil","getTimezoneOffsets","daylight","label","standard","formatUtil","TimestampUtil","validate","value","hasFormat","isIncludeTimeOffsetInDateTimes","hasDateTime","test","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/DatetimeFormatConstraint.js"],"sourcesContent":["// @flow\nimport {\n TimestampUtil,\n DateTimeUtil,\n} from \"../../../utils/datetime/DateTimeUtil\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n isIncludeTimeOffsetInDateTimes,\n} from \"../../../constants\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass DatetimeFormatConstraint implements IConstraintModel {\n _type: string;\n _format: string;\n _formatNoOffset: string;\n _formatLabel: string;\n\n _id: string = \"Constraint.DateTime.MissingValue\";\n\n /**\n */\n constructor(type: string, format: string, formatLabel: string) {\n this._type = type;\n this._format = format;\n this._formatNoOffset = format.replace(DATETIME_OFFSET_FORMAT, \"\").trim();\n this._formatLabel = formatLabel;\n }\n\n /**\n */\n get type(): string {\n return this._type;\n }\n\n /**\n */\n get id(): string {\n return this._id;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get formatLabel(): string {\n return this._formatLabel;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n return \"Please select ${daylight-label} or ${standard-label}\";\n }\n return \"Date and time should both be entered\";\n }\n\n /**\n */\n get parameters():\n | { format: string }\n | { \"daylight-label\": ?string, \"standard-label\": ?string } {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n const offsets = DateTimeUtil.getTimezoneOffsets();\n return {\n \"daylight-label\": offsets.daylight?.label,\n \"standard-label\": offsets.standard?.label,\n };\n }\n return { format: this.formatLabel };\n }\n\n /**\n */\n get formatUtil(): typeof TimestampUtil | typeof DateTimeUtil {\n if (this.type === \"timestamp\") {\n return TimestampUtil;\n }\n\n return DateTimeUtil;\n }\n\n /**\n */\n validate(value: string): boolean {\n if (!value) {\n return false;\n }\n\n if (this.formatUtil.hasFormat(value, this.format)) {\n return true;\n }\n\n if (isIncludeTimeOffsetInDateTimes()) {\n const hasDateTime = this.formatUtil.hasFormat(\n value,\n this._formatNoOffset,\n );\n if (!hasDateTime) {\n this._id = \"Constraint.DateTime.MissingValue\";\n return false;\n } else if (!/[+-](0\\d|1[0-4]):[0-5]\\d/.test(value)) {\n this._id = \"Constraint.DateTime.MissingOffset\";\n return false;\n }\n }\n\n return false;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DatetimeFormatConstraint;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,10 +20,7 @@ class BaseModel {
|
|
|
20
20
|
/**
|
|
21
21
|
* constructor
|
|
22
22
|
*/
|
|
23
|
-
constructor(data, contributions, modelOptions = {
|
|
24
|
-
origin: "",
|
|
25
|
-
contextPath: (0, _constants.getBasePathModularUI)()
|
|
26
|
-
}) {
|
|
23
|
+
constructor(data, contributions, modelOptions = {}) {
|
|
27
24
|
(0, _defineProperty2.default)(this, "_data", void 0);
|
|
28
25
|
(0, _defineProperty2.default)(this, "_contributions", void 0);
|
|
29
26
|
(0, _defineProperty2.default)(this, "_layouthint", void 0);
|
|
@@ -32,7 +29,11 @@ class BaseModel {
|
|
|
32
29
|
this._data = data;
|
|
33
30
|
this._contributions = contributions;
|
|
34
31
|
this._layouthint = new _LayoutHintCollection.default(this.getContribution("layouthint", []));
|
|
35
|
-
this._modelOptions =
|
|
32
|
+
this._modelOptions = {
|
|
33
|
+
origin: "",
|
|
34
|
+
contextPath: (0, _constants.getBasePathModularUI)(),
|
|
35
|
+
...modelOptions
|
|
36
|
+
};
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseModel.js","names":["_full","require","_LayoutHintCollection","_interopRequireDefault","_constants","BaseModel","constructor","data","contributions","modelOptions","
|
|
1
|
+
{"version":3,"file":"BaseModel.js","names":["_full","require","_LayoutHintCollection","_interopRequireDefault","_constants","BaseModel","constructor","data","contributions","modelOptions","_defineProperty2","default","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","_modelOptions","origin","contextPath","getBasePathModularUI","getData","propName","defaultValue","layouthint","hasData","_keys","length","connectKey","key","_connectKey","dehydrate","options","rehydrate","clone","klona","_default","exports"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { ModelOptions } from \"../types\";\nimport { getBasePathModularUI } from \"../../constants\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model, this is the foundation of a model,\n * it contains data that is needed for all models like, data, contributions and layout hint\n *\n * Extend this for non modular ui resources, for modular ui resource start with the resourceModel\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n _modelOptions: ModelOptions;\n\n /**\n * constructor\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions: ModelOptions = {},\n ) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", []),\n );\n\n this._modelOptions = {\n origin: \"\",\n contextPath: getBasePathModularUI(),\n ...modelOptions,\n };\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n * Retrieve property from the data object of the model, mostly used internal\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n * Retrieve property from the contributions of the model, mostly used internal\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n */\n get modelOptions(): ModelOptions {\n return this._modelOptions;\n }\n\n /**\n */\n get origin(): string {\n return this.modelOptions.origin || \"\";\n }\n\n /**\n */\n get contextPath(): string {\n return this.modelOptions.contextPath || getBasePathModularUI();\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n * Set the unique key for this model\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n * Get the unique key of this model\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n * Dehydrate internal data, returns the information that is needed to recreate the model\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n options: this._modelOptions,\n };\n }\n\n /**\n * Recreate the model with the given data\n */\n rehydrate(data: BaseDehydrateData) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): any {\n return klona(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _flat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flat"));
|
|
9
9
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
11
11
|
var _ModularUIResponse = _interopRequireDefault(require("../../modularui/ModularUIResponse"));
|
|
@@ -169,10 +169,9 @@ class ResourceModel extends _BaseModel.default {
|
|
|
169
169
|
/**
|
|
170
170
|
* Add child models to this model
|
|
171
171
|
*/
|
|
172
|
-
addChildModels(models, errors) {
|
|
173
|
-
|
|
174
|
-
const
|
|
175
|
-
const flattenErrors = (0, _concat.default)(_context2 = []).call(_context2, errors);
|
|
172
|
+
addChildModels(models = [], errors = []) {
|
|
173
|
+
const flattenModels = (0, _flat.default)(models).call(models);
|
|
174
|
+
const flattenErrors = (0, _flat.default)(errors).call(errors);
|
|
176
175
|
this._childModels = flattenModels;
|
|
177
176
|
this.setChildModels(flattenModels, flattenErrors);
|
|
178
177
|
return this;
|
|
@@ -194,13 +193,13 @@ class ResourceModel extends _BaseModel.default {
|
|
|
194
193
|
/**
|
|
195
194
|
*/
|
|
196
195
|
dehydrate() {
|
|
197
|
-
var
|
|
196
|
+
var _context;
|
|
198
197
|
return {
|
|
199
198
|
...super.dehydrate(),
|
|
200
199
|
key: this._key,
|
|
201
200
|
locale: this._locale,
|
|
202
201
|
// $FlowFixMe[missing-type-arg]
|
|
203
|
-
childModels: (0, _map.default)(
|
|
202
|
+
childModels: (0, _map.default)(_context = this._childModels).call(_context, childModel => childModel.dehydrate())
|
|
204
203
|
};
|
|
205
204
|
}
|
|
206
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceModel.js","names":["_ModularUIResponse","_interopRequireDefault","require","_BaseModel","_LinkCollection","_exceptions","ResourceModel","BaseModel","constructor","modularuiResponse","ModularUIResponse","data","contributions","modelOptions","_defineProperty2","default","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","modelName","IllegalStateException","isApplicableModel","IllegalArgumentException","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","linksData","Array","isArray","linksContrubtions","self","LinkCollection","downloadLink","getLinksByGroup","first","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","errors","_context","_context2","flattenModels","_concat","call","flattenErrors","setChildModels","dehydrate","_context3","_map","childModel","_default","exports"],"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(\n modularuiResponse.data,\n modularuiResponse.contributions,\n modularuiResponse.modelOptions,\n );\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\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 const linksData = Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links;\n\n const linksContrubtions = {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n };\n\n this._links = new LinkCollection(\n linksData,\n linksContrubtions,\n this.modelOptions,\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","_interopRequireDefault","require","_BaseModel","_LinkCollection","_exceptions","ResourceModel","BaseModel","constructor","modularuiResponse","ModularUIResponse","data","contributions","modelOptions","_defineProperty2","default","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","modelName","IllegalStateException","isApplicableModel","IllegalArgumentException","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","linksData","Array","isArray","linksContrubtions","self","LinkCollection","downloadLink","getLinksByGroup","first","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","errors","flattenModels","_flat","call","flattenErrors","setChildModels","dehydrate","_context","_map","childModel","_default","exports"],"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(\n modularuiResponse.data,\n modularuiResponse.contributions,\n modularuiResponse.modelOptions,\n );\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\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 const linksData = Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links;\n\n const linksContrubtions = {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n };\n\n this._links = new LinkCollection(\n linksData,\n linksContrubtions,\n this.modelOptions,\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 = models.flat();\n const flattenErrors = errors.flat();\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":[]}
|
|
@@ -153,7 +153,7 @@ class ConceptDetailModel extends _ResourceModel.default {
|
|
|
153
153
|
*/
|
|
154
154
|
get labels() {
|
|
155
155
|
var _context;
|
|
156
|
-
return this.conceptType
|
|
156
|
+
return this.conceptType?.labelTypes ? (0, _map.default)(_context = this.conceptType.labelTypes).call(_context, labelType => {
|
|
157
157
|
var _context2;
|
|
158
158
|
const setting = this.data.labels ? (0, _find.default)(_context2 = this.data.labels).call(_context2, label => label.type === labelType._id) : {};
|
|
159
159
|
return {
|
|
@@ -176,7 +176,7 @@ class ConceptDetailModel extends _ResourceModel.default {
|
|
|
176
176
|
*/
|
|
177
177
|
get conceptProperties() {
|
|
178
178
|
var _context4;
|
|
179
|
-
return this.conceptType
|
|
179
|
+
return this.conceptType?.propertyTypes ? (0, _map.default)(_context4 = this.conceptType.propertyTypes).call(_context4, propertyType => {
|
|
180
180
|
var _context5;
|
|
181
181
|
const setting = this.data.properties ? (0, _find.default)(_context5 = this.data.properties).call(_context5, property => property.type === propertyType._id) : {};
|
|
182
182
|
return {
|
|
@@ -198,16 +198,16 @@ class ConceptDetailModel extends _ResourceModel.default {
|
|
|
198
198
|
* Get Text fragments
|
|
199
199
|
*/
|
|
200
200
|
get textfragments() {
|
|
201
|
-
var _context7,
|
|
201
|
+
var _context7, _context0;
|
|
202
202
|
const textFragments = this.data.textFragments ? (0, _map.default)(_context7 = this.data.textFragments).call(_context7, textFragment => {
|
|
203
|
-
var _context8;
|
|
204
|
-
const textFragmentConfig = this.conceptType
|
|
203
|
+
var _context8, _context9;
|
|
204
|
+
const textFragmentConfig = ((_context8 = this.conceptType) == null ? void 0 : Function.call.bind((0, _find.default)(_context9 = _context8.textFragmentTypes), _context9))?.(textFragmentType => textFragment.type === textFragmentType._id);
|
|
205
205
|
return {
|
|
206
206
|
...textFragmentConfig,
|
|
207
207
|
...textFragment
|
|
208
208
|
};
|
|
209
209
|
}) : [];
|
|
210
|
-
const notConfiguredTextFragments = this.conceptType
|
|
210
|
+
const notConfiguredTextFragments = this.conceptType?.textFragmentTypes ? (0, _filter.default)(_context0 = this.conceptType.textFragmentTypes).call(_context0, textFragmentType => {
|
|
211
211
|
if (!this.data.textFragments) {
|
|
212
212
|
return true;
|
|
213
213
|
}
|
|
@@ -220,8 +220,8 @@ class ConceptDetailModel extends _ResourceModel.default {
|
|
|
220
220
|
* Get text fragments by id
|
|
221
221
|
*/
|
|
222
222
|
getTextFragmentByKeys(keys) {
|
|
223
|
-
var
|
|
224
|
-
return (0, _filter.default)(
|
|
223
|
+
var _context1;
|
|
224
|
+
return (0, _filter.default)(_context1 = this.textfragments).call(_context1, textfragment => (0, _includes.default)(keys).call(keys, textfragment.type));
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
/**
|
|
@@ -230,7 +230,7 @@ class ConceptDetailModel extends _ResourceModel.default {
|
|
|
230
230
|
getSourceReferenceCollection(availableLocales = []) {
|
|
231
231
|
if (!this._sourceReferences) {
|
|
232
232
|
let sectionReferenceTypes = [];
|
|
233
|
-
if (this.conceptType
|
|
233
|
+
if (this.conceptType?.sectionReferenceTypes) {
|
|
234
234
|
sectionReferenceTypes = this.conceptType.sectionReferenceTypes;
|
|
235
235
|
}
|
|
236
236
|
this._sourceReferences = new _SourceReferenceCollection.default(this.getSourceReferencesForCurrentLanguage(availableLocales), sectionReferenceTypes, this.entryDate, this.modelOptions);
|
|
@@ -247,21 +247,21 @@ class ConceptDetailModel extends _ResourceModel.default {
|
|
|
247
247
|
getSourceReferencesForCurrentLanguage(availableLocales) {
|
|
248
248
|
const LANGUAGE_POSTFIX_LENGTH = 3;
|
|
249
249
|
if (this.data.sourceReferences) {
|
|
250
|
-
var
|
|
251
|
-
const availableLanguagesInSourceReferences = (0, _map.default)(
|
|
250
|
+
var _context10, _context13;
|
|
251
|
+
const availableLanguagesInSourceReferences = (0, _map.default)(_context10 = this.data.sourceReferences).call(_context10, sourceReference => sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH));
|
|
252
252
|
const currentLanguagePostfix = `_${this.locale}`;
|
|
253
253
|
if ((0, _includes.default)(availableLanguagesInSourceReferences).call(availableLanguagesInSourceReferences, currentLanguagePostfix)) {
|
|
254
|
-
var
|
|
254
|
+
var _context11;
|
|
255
255
|
// return all sourceReferences that end with language that is selected
|
|
256
|
-
return (0, _filter.default)(
|
|
257
|
-
var
|
|
258
|
-
return (0, _endsWith.default)(
|
|
256
|
+
return (0, _filter.default)(_context11 = this.data.sourceReferences).call(_context11, sourceReference => {
|
|
257
|
+
var _context12;
|
|
258
|
+
return (0, _endsWith.default)(_context12 = sourceReference.type).call(_context12, currentLanguagePostfix);
|
|
259
259
|
});
|
|
260
260
|
}
|
|
261
261
|
const availableLanguages = (0, _map.default)(availableLocales).call(availableLocales, locale => `_${locale.split("-")[0]}`);
|
|
262
262
|
|
|
263
263
|
// return all sourceReferences that do not end with language postfix
|
|
264
|
-
return (0, _filter.default)(
|
|
264
|
+
return (0, _filter.default)(_context13 = this.data.sourceReferences).call(_context13, sourceReference => !(0, _includes.default)(availableLanguages).call(availableLanguages, sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH)));
|
|
265
265
|
}
|
|
266
266
|
return [];
|
|
267
267
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConceptDetailModel.js","names":["_ResourceModel","_interopRequireDefault","require","_ConceptRelationCollection","_SourceReferenceCollection","_ConceptTypeDetailModel","_Constants","ConceptDetailModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","_relations","ConceptRelationCollection","data","relations","entryDate","modelOptions","type","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","isCacheable","setChildModels","models","errors","conceptTypeModel","_find","call","model","ConceptTypeDetailModel","conceptType","key","getData","selfhref","href","selflink","setParameter","TIMEVERSION_FILTER_NAME","removeParameter","diagramLinks","getLinksByGroup","_conceptType","label","conceptLabel","modelCategory","taxonomyType","formula","labels","_context","labelTypes","_map","labelType","_context2","setting","_id","getLabelElementByIds","ids","_context3","_filter","_includes","conceptProperties","_context4","propertyTypes","propertyType","_context5","properties","property","getConceptPropertiesByIds","_context6","textfragments","_context7","_context9","textFragments","textFragment","_context8","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","getTextFragmentByKeys","keys","_context0","getSourceReferenceCollection","availableLocales","_sourceReferences","sectionReferenceTypes","SourceReferenceCollection","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","_context1","_context12","availableLanguagesInSourceReferences","sourceReference","substring","length","currentLanguagePostfix","locale","_context10","_context11","_endsWith","availableLanguages","split","value","isOfConceptType","conceptTypeId","exports"],"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 LinkCollection from \"../links/LinkCollection\";\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 this.modelOptions,\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 * Available diagrams for the concept, most of the time just one\n */\n get diagramLinks(): LinkCollection {\n return this.links.getLinksByGroup(\"diagram\");\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 model category of the concept\n */\n get modelCategory(): string {\n return this.getData(\"modelCategory\", \"\");\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 let sectionReferenceTypes = [];\n if (this.conceptType && this.conceptType.sectionReferenceTypes) {\n sectionReferenceTypes = this.conceptType.sectionReferenceTypes;\n }\n\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n sectionReferenceTypes,\n this.entryDate,\n this.modelOptions,\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 modelcatalog.js\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n\n /**\n * Indicates if the given concept type id or href exists in the hierarchy of concept types for this concept\n */\n isOfConceptType(conceptTypeId: string): boolean {\n return this.conceptType?.isOfConceptType(conceptTypeId) ?? false;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ConceptDetailModel.js","names":["_ResourceModel","_interopRequireDefault","require","_ConceptRelationCollection","_SourceReferenceCollection","_ConceptTypeDetailModel","_Constants","ConceptDetailModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","_relations","ConceptRelationCollection","data","relations","entryDate","modelOptions","type","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","isCacheable","setChildModels","models","errors","conceptTypeModel","_find","call","model","ConceptTypeDetailModel","conceptType","key","getData","selfhref","href","selflink","setParameter","TIMEVERSION_FILTER_NAME","removeParameter","diagramLinks","getLinksByGroup","_conceptType","label","conceptLabel","modelCategory","taxonomyType","formula","labels","_context","labelTypes","_map","labelType","_context2","setting","_id","getLabelElementByIds","ids","_context3","_filter","_includes","conceptProperties","_context4","propertyTypes","propertyType","_context5","properties","property","getConceptPropertiesByIds","_context6","textfragments","_context7","_context0","textFragments","textFragment","_context8","_context9","textFragmentConfig","Function","bind","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","getTextFragmentByKeys","keys","_context1","getSourceReferenceCollection","availableLocales","_sourceReferences","sectionReferenceTypes","SourceReferenceCollection","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","_context10","_context13","availableLanguagesInSourceReferences","sourceReference","substring","length","currentLanguagePostfix","locale","_context11","_context12","_endsWith","availableLanguages","split","value","isOfConceptType","conceptTypeId","exports"],"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 LinkCollection from \"../links/LinkCollection\";\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 this.modelOptions,\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 * Available diagrams for the concept, most of the time just one\n */\n get diagramLinks(): LinkCollection {\n return this.links.getLinksByGroup(\"diagram\");\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 model category of the concept\n */\n get modelCategory(): string {\n return this.getData(\"modelCategory\", \"\");\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?.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?.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 = 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 = 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 let sectionReferenceTypes = [];\n if (this.conceptType?.sectionReferenceTypes) {\n sectionReferenceTypes = this.conceptType.sectionReferenceTypes;\n }\n\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n sectionReferenceTypes,\n this.entryDate,\n this.modelOptions,\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 modelcatalog.js\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n\n /**\n * Indicates if the given concept type id or href exists in the hierarchy of concept types for this concept\n */\n isOfConceptType(conceptTypeId: string): boolean {\n return this.conceptType?.isOfConceptType(conceptTypeId) ?? false;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,7 +20,7 @@ class SourceReferenceCollection extends _BaseCollection.default {
|
|
|
20
20
|
constructor(sourceReferences = [], sectionReferenceTypes = [], entryDate = null, modelOptions) {
|
|
21
21
|
super();
|
|
22
22
|
this.collection = sourceReferences ? (0, _map.default)(sourceReferences).call(sourceReferences, sourceReference => {
|
|
23
|
-
const sectionReferenceType = (0, _find.default)(sectionReferenceTypes).call(sectionReferenceTypes,
|
|
23
|
+
const sectionReferenceType = (0, _find.default)(sectionReferenceTypes).call(sectionReferenceTypes, type => type._id === sourceReference.type);
|
|
24
24
|
return new _SourceReferenceModel.default({
|
|
25
25
|
typeLabel: sectionReferenceType?.label,
|
|
26
26
|
...sourceReference
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceReferenceCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_SourceReferenceModel","SourceReferenceCollection","BaseCollection","constructor","sourceReferences","sectionReferenceTypes","entryDate","modelOptions","collection","_map","default","call","sourceReference","sectionReferenceType","_find","
|
|
1
|
+
{"version":3,"file":"SourceReferenceCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_SourceReferenceModel","SourceReferenceCollection","BaseCollection","constructor","sourceReferences","sectionReferenceTypes","entryDate","modelOptions","collection","_map","default","call","sourceReference","sectionReferenceType","_find","type","_id","SourceReferenceModel","typeLabel","label","byTypes","types","_context","_filter","sourceRef","_includes","exports"],"sources":["../../../src/models/concepts/SourceReferenceCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\nimport SourceReferenceModel from \"./SourceReferenceModel\";\nimport type { ModelOptions } from \"../types\";\n\n/**\n * Source reference collection\n */\nexport default class SourceReferenceCollection extends BaseCollection<SourceReferenceModel> {\n /**\n */\n constructor(\n sourceReferences: Array<Object> = [],\n sectionReferenceTypes: Array<Object> = [],\n entryDate: ?ISO_DATE = null,\n modelOptions?: ModelOptions,\n ) {\n super();\n\n this.collection = sourceReferences\n ? sourceReferences.map((sourceReference) => {\n const sectionReferenceType = sectionReferenceTypes.find(\n (type) => type._id === sourceReference.type,\n );\n return new SourceReferenceModel(\n { typeLabel: sectionReferenceType?.label, ...sourceReference },\n entryDate,\n modelOptions,\n );\n })\n : [];\n }\n\n /**\n */\n byTypes(types: string): Array<SourceReferenceModel> {\n return this.filter((sourceRef) => types.includes(sourceRef.type));\n }\n}\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA;AACA;AACA;AACe,MAAME,yBAAyB,SAASC,uBAAc,CAAuB;EAC1F;AACF;EACEC,WAAWA,CACTC,gBAA+B,GAAG,EAAE,EACpCC,qBAAoC,GAAG,EAAE,EACzCC,SAAoB,GAAG,IAAI,EAC3BC,YAA2B,EAC3B;IACA,KAAK,CAAC,CAAC;IAEP,IAAI,CAACC,UAAU,GAAGJ,gBAAgB,GAC9B,IAAAK,IAAA,CAAAC,OAAA,EAAAN,gBAAgB,EAAAO,IAAA,CAAhBP,gBAAgB,EAAMQ,eAAe,IAAK;MACxC,MAAMC,oBAAoB,GAAG,IAAAC,KAAA,CAAAJ,OAAA,EAAAL,qBAAqB,EAAAM,IAAA,CAArBN,qBAAqB,EAC/CU,IAAI,IAAKA,IAAI,CAACC,GAAG,KAAKJ,eAAe,CAACG,IACzC,CAAC;MACD,OAAO,IAAIE,6BAAoB,CAC7B;QAAEC,SAAS,EAAEL,oBAAoB,EAAEM,KAAK;QAAE,GAAGP;MAAgB,CAAC,EAC9DN,SAAS,EACTC,YACF,CAAC;IACH,CAAC,CAAC,GACF,EAAE;EACR;;EAEA;AACF;EACEa,OAAOA,CAACC,KAAa,EAA+B;IAAA,IAAAC,QAAA;IAClD,OAAO,IAAAC,OAAA,CAAAb,OAAA,EAAAY,QAAA,OAAI,EAAAX,IAAA,CAAAW,QAAA,EAASE,SAAS,IAAK,IAAAC,SAAA,CAAAf,OAAA,EAAAW,KAAK,EAAAV,IAAA,CAALU,KAAK,EAAUG,SAAS,CAACT,IAAI,CAAC,CAAC;EACnE;AACF;AAACW,OAAA,CAAAhB,OAAA,GAAAT,yBAAA","ignoreList":[]}
|
|
@@ -115,11 +115,11 @@ class ContentLinkModel extends _BaseModel.default {
|
|
|
115
115
|
const selfHref = new _Href.default(this.data._links.self.href, "", this.modelOptions);
|
|
116
116
|
const href = selfHref.path;
|
|
117
117
|
const sourceId = this.section ? href.substring(startURI.length, href.lastIndexOf("/")) : href.substring(startURI.length);
|
|
118
|
-
if (this.section
|
|
118
|
+
if (this.section == null) {
|
|
119
|
+
selfHref.path = `${startURI}${encodeURIComponent(sourceId)}`;
|
|
120
|
+
} else {
|
|
119
121
|
const encodedSection = encodeURIComponent(this.section);
|
|
120
122
|
selfHref.path = `${startURI}${encodeURIComponent(sourceId)}/${encodedSection}`;
|
|
121
|
-
} else {
|
|
122
|
-
selfHref.path = `${startURI}${encodeURIComponent(sourceId)}`;
|
|
123
123
|
}
|
|
124
124
|
return selfHref;
|
|
125
125
|
}
|
|
@@ -164,12 +164,12 @@ class ContentLinkModel extends _BaseModel.default {
|
|
|
164
164
|
if (selflink === null) {
|
|
165
165
|
throw new Error(`Could not find self link for ${this.key === null ? "unknown" : this.key}`);
|
|
166
166
|
}
|
|
167
|
-
if (
|
|
167
|
+
if (selflink.href.state) {
|
|
168
|
+
selflink.href.state.fragment = this.fragment;
|
|
169
|
+
} else {
|
|
168
170
|
selflink.href.state = {
|
|
169
171
|
fragment: this.fragment
|
|
170
172
|
};
|
|
171
|
-
} else {
|
|
172
|
-
selflink.href.state.fragment = this.fragment;
|
|
173
173
|
}
|
|
174
174
|
return selflink;
|
|
175
175
|
}
|