@beinformed/ui 1.57.0-contextpath.0 → 1.57.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 +63 -0
- package/esm/constants/Settings.js +10 -2
- package/esm/constants/Settings.js.map +1 -1
- package/esm/hooks/useModularUI.js +24 -18
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/hooks/useModularUIBasic.js +52 -41
- package/esm/hooks/useModularUIBasic.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +1 -8
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptIndexModel.js +1 -1
- package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
- package/esm/models/concepts/ConceptLinkModel.js +8 -9
- package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
- package/esm/models/concepts/ConceptTypeDetailModel.js +3 -20
- package/esm/models/concepts/ConceptTypeDetailModel.js.map +1 -1
- package/esm/models/concepts/SourceReferenceCollection.js +3 -1
- package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/esm/models/concepts/SourceReferenceModel.js +9 -3
- package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js +10 -4
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/content/SectionModel.js +10 -6
- package/esm/models/content/SectionModel.js.map +1 -1
- package/esm/models/error/ErrorResponse.js +20 -5
- package/esm/models/error/ErrorResponse.js.map +1 -1
- package/esm/models/href/Href.js +21 -4
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/list/ListItemCollection.js +1 -1
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/modularui/CaptchaRequest.js +12 -3
- package/esm/modularui/CaptchaRequest.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +1 -1
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/modularui/UploadRequest.js +7 -3
- package/esm/modularui/UploadRequest.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js +11 -9
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIMiddleware.js +4 -1
- package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/esm/redux/_modularui/ModularUIReducer.js +2 -1
- package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/esm/redux/_modularui/ModularUISelectors.js +7 -6
- package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/esm/redux/_modularui/types.js.map +1 -1
- package/esm/redux/actions/Application.js +11 -6
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/connectors/PanelRenderer.js +0 -2
- package/esm/redux/connectors/PanelRenderer.js.map +1 -1
- package/esm/utils/helpers/checkResource.js +0 -2
- package/esm/utils/helpers/checkResource.js.map +1 -1
- package/esm/utils/helpers/repositoryResource.js +6 -5
- package/esm/utils/helpers/repositoryResource.js.map +1 -1
- package/lib/constants/Settings.js +10 -2
- package/lib/constants/Settings.js.flow +8 -2
- package/lib/constants/Settings.js.map +1 -1
- package/lib/hooks/__tests__/UseModularUIModel.spec.js.flow +11 -4
- package/lib/hooks/__tests__/useAuthentication.spec.js.flow +2 -8
- package/lib/hooks/__tests__/useForm.spec.js.flow +14 -12
- package/lib/hooks/__tests__/useModelCatalog.spec.js.flow +10 -4
- package/lib/hooks/__tests__/useModels.spec.js.flow +3 -12
- package/lib/hooks/__tests__/useModularUIBasic.spec.js.flow +9 -8
- package/lib/hooks/useModularUI.js +23 -17
- package/lib/hooks/useModularUI.js.flow +31 -16
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/hooks/useModularUIBasic.js +52 -41
- package/lib/hooks/useModularUIBasic.js.flow +66 -50
- package/lib/hooks/useModularUIBasic.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js +1 -8
- package/lib/models/concepts/ConceptDetailModel.js.flow +2 -7
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptIndexModel.js +1 -1
- package/lib/models/concepts/ConceptIndexModel.js.flow +7 -1
- package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
- package/lib/models/concepts/ConceptLinkModel.js +8 -9
- package/lib/models/concepts/ConceptLinkModel.js.flow +14 -9
- package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
- package/lib/models/concepts/ConceptTypeDetailModel.js +3 -20
- package/lib/models/concepts/ConceptTypeDetailModel.js.flow +3 -25
- package/lib/models/concepts/ConceptTypeDetailModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceCollection.js +3 -1
- package/lib/models/concepts/SourceReferenceCollection.js.flow +8 -1
- package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/lib/models/concepts/SourceReferenceModel.js +9 -3
- package/lib/models/concepts/SourceReferenceModel.js.flow +19 -3
- package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
- package/lib/models/concepts/__mock__/conceptindex.js.flow +15 -0
- package/lib/models/concepts/__tests__/ConceptIndexModel.spec.js.flow +30 -2
- package/lib/models/concepts/__tests__/ConceptTypeDetailModel.spec.js.flow +1 -18
- package/lib/models/content/ContentLinkModel.js +9 -4
- package/lib/models/content/ContentLinkModel.js.flow +19 -4
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/content/SectionModel.js +10 -6
- package/lib/models/content/SectionModel.js.flow +31 -5
- package/lib/models/content/SectionModel.js.map +1 -1
- package/lib/models/error/ErrorResponse.js +20 -5
- package/lib/models/error/ErrorResponse.js.flow +34 -5
- package/lib/models/error/ErrorResponse.js.map +1 -1
- package/lib/models/href/Href.js +21 -4
- package/lib/models/href/Href.js.flow +21 -4
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/href/__tests__/Href.spec.js.flow +9 -3
- package/lib/models/list/ListItemCollection.js +1 -1
- package/lib/models/list/ListItemCollection.js.flow +2 -0
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/modularui/CaptchaRequest.js +11 -2
- package/lib/modularui/CaptchaRequest.js.flow +17 -3
- package/lib/modularui/CaptchaRequest.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +1 -1
- package/lib/modularui/ModularUIRequest.js.flow +3 -1
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/modularui/UploadRequest.js +6 -2
- package/lib/modularui/UploadRequest.js.flow +12 -2
- package/lib/modularui/UploadRequest.js.map +1 -1
- package/lib/redux/_modularui/ModularUIActions.js +11 -9
- package/lib/redux/_modularui/ModularUIActions.js.flow +20 -10
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIMiddleware.js +3 -0
- package/lib/redux/_modularui/ModularUIMiddleware.js.flow +6 -3
- package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/lib/redux/_modularui/ModularUIReducer.js +2 -1
- package/lib/redux/_modularui/ModularUIReducer.js.flow +1 -0
- package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/lib/redux/_modularui/ModularUISelectors.js +5 -6
- package/lib/redux/_modularui/ModularUISelectors.js.flow +22 -10
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/lib/redux/_modularui/__tests__/actions.spec.js.flow +1 -4
- package/lib/redux/_modularui/types.js.flow +1 -0
- package/lib/redux/_modularui/types.js.map +1 -1
- package/lib/redux/actions/Application.js +10 -5
- package/lib/redux/actions/Application.js.flow +16 -5
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/__tests__/Application.spec.js.flow +1 -8
- package/lib/redux/actions/__tests__/Authorization.spec.js.flow +0 -4
- package/lib/redux/connectors/PanelRenderer.js +0 -2
- package/lib/redux/connectors/PanelRenderer.js.flow +0 -1
- package/lib/redux/connectors/PanelRenderer.js.map +1 -1
- package/lib/utils/helpers/checkResource.js +0 -2
- package/lib/utils/helpers/checkResource.js.flow +0 -2
- package/lib/utils/helpers/checkResource.js.map +1 -1
- package/lib/utils/helpers/repositoryResource.js +6 -5
- package/lib/utils/helpers/repositoryResource.js.flow +8 -6
- package/lib/utils/helpers/repositoryResource.js.map +1 -1
- package/package.json +18 -18
- package/src/constants/Settings.js +8 -2
- package/src/hooks/__tests__/UseModularUIModel.spec.js +11 -4
- package/src/hooks/__tests__/useAuthentication.spec.js +2 -8
- package/src/hooks/__tests__/useForm.spec.js +14 -12
- package/src/hooks/__tests__/useModelCatalog.spec.js +10 -4
- package/src/hooks/__tests__/useModels.spec.js +3 -12
- package/src/hooks/__tests__/useModularUIBasic.spec.js +9 -8
- package/src/hooks/useModularUI.js +31 -16
- package/src/hooks/useModularUIBasic.js +66 -50
- package/src/models/concepts/ConceptDetailModel.js +2 -7
- package/src/models/concepts/ConceptIndexModel.js +7 -1
- package/src/models/concepts/ConceptLinkModel.js +14 -9
- package/src/models/concepts/ConceptTypeDetailModel.js +3 -25
- package/src/models/concepts/SourceReferenceCollection.js +8 -1
- package/src/models/concepts/SourceReferenceModel.js +19 -3
- package/src/models/concepts/__mock__/conceptindex.js +15 -0
- package/src/models/concepts/__mock__/conceptindex_contributions.json +86 -0
- package/src/models/concepts/__mock__/conceptindex_data.json +323 -0
- package/src/models/concepts/__mock__/concepttype_hierarchy.json +1 -11
- package/src/models/concepts/__tests__/ConceptIndexModel.spec.js +30 -2
- package/src/models/concepts/__tests__/ConceptTypeDetailModel.spec.js +1 -18
- package/src/models/content/ContentLinkModel.js +19 -4
- package/src/models/content/SectionModel.js +31 -5
- package/src/models/error/ErrorResponse.js +34 -5
- package/src/models/href/Href.js +21 -4
- package/src/models/href/__tests__/Href.spec.js +9 -3
- package/src/models/list/ListItemCollection.js +2 -0
- package/src/modularui/CaptchaRequest.js +17 -3
- package/src/modularui/ModularUIRequest.js +3 -1
- package/src/modularui/UploadRequest.js +12 -2
- package/src/redux/_modularui/ModularUIActions.js +20 -10
- package/src/redux/_modularui/ModularUIMiddleware.js +6 -3
- package/src/redux/_modularui/ModularUIReducer.js +1 -0
- package/src/redux/_modularui/ModularUISelectors.js +22 -10
- package/src/redux/_modularui/__tests__/actions.spec.js +1 -4
- package/src/redux/_modularui/types.js +1 -0
- package/src/redux/actions/Application.js +16 -5
- package/src/redux/actions/__tests__/Application.spec.js +1 -8
- package/src/redux/actions/__tests__/Authorization.spec.js +0 -4
- package/src/redux/connectors/PanelRenderer.js +0 -1
- package/src/utils/helpers/checkResource.js +0 -2
- package/src/utils/helpers/repositoryResource.js +8 -6
|
@@ -14,15 +14,20 @@ var _SubSectionModel = _interopRequireDefault(require("./SubSectionModel"));
|
|
|
14
14
|
var _createHash = require("../../utils/helpers/createHash");
|
|
15
15
|
var _LinkModel = _interopRequireDefault(require("../links/LinkModel"));
|
|
16
16
|
var _utils = require("../../utils");
|
|
17
|
+
var _constants = require("../../constants");
|
|
17
18
|
/**
|
|
18
19
|
*/
|
|
19
20
|
class SectionModel extends _BaseModel.default {
|
|
20
|
-
constructor(data, entryDate) {
|
|
21
|
+
constructor(data, entryDate, origin, contextPath) {
|
|
21
22
|
super(data, {});
|
|
22
23
|
(0, _defineProperty2.default)(this, "_entryDate", void 0);
|
|
23
24
|
(0, _defineProperty2.default)(this, "_selflink", void 0);
|
|
24
25
|
(0, _defineProperty2.default)(this, "_childSections", void 0);
|
|
26
|
+
(0, _defineProperty2.default)(this, "_origin", "");
|
|
27
|
+
(0, _defineProperty2.default)(this, "_contextPath", (0, _constants.getBasePath)());
|
|
25
28
|
this._entryDate = entryDate;
|
|
29
|
+
this._origin = origin || "";
|
|
30
|
+
this._contextPath = contextPath || (0, _constants.getBasePath)();
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
/**
|
|
@@ -35,8 +40,7 @@ class SectionModel extends _BaseModel.default {
|
|
|
35
40
|
*/
|
|
36
41
|
get selflink() {
|
|
37
42
|
if (!this._selflink) {
|
|
38
|
-
|
|
39
|
-
this._selflink = new _LinkModel.default(this.data._links?.self);
|
|
43
|
+
this._selflink = new _LinkModel.default(this.data._links?.self, null, this._origin, this._contextPath);
|
|
40
44
|
}
|
|
41
45
|
return this._selflink;
|
|
42
46
|
}
|
|
@@ -109,7 +113,7 @@ class SectionModel extends _BaseModel.default {
|
|
|
109
113
|
label: childSection.label,
|
|
110
114
|
sourceLabel: childSection.sourceLabel,
|
|
111
115
|
_links: childSection._links
|
|
112
|
-
}, this.entryDate)) : [];
|
|
116
|
+
}, this.entryDate, this._origin, this._contextPath)) : [];
|
|
113
117
|
}
|
|
114
118
|
|
|
115
119
|
/**
|
|
@@ -121,7 +125,7 @@ class SectionModel extends _BaseModel.default {
|
|
|
121
125
|
label: this.data.label,
|
|
122
126
|
sourceLabel: this.data.sourceLabel,
|
|
123
127
|
_links: this.data._links
|
|
124
|
-
}, this.entryDate);
|
|
128
|
+
}, this.entryDate, this._origin, this._contextPath);
|
|
125
129
|
}
|
|
126
130
|
|
|
127
131
|
/**
|
|
@@ -130,7 +134,7 @@ class SectionModel extends _BaseModel.default {
|
|
|
130
134
|
get childSections() {
|
|
131
135
|
if (!this._childSections && this.data.childSections) {
|
|
132
136
|
var _context2, _context3;
|
|
133
|
-
this._childSections = (0, _map.default)(_context2 = (0, _filter.default)(_context3 = this.data.childSections).call(_context3, childSection => "body" in childSection)).call(_context2, childSection => new SectionModel(childSection, this.entryDate));
|
|
137
|
+
this._childSections = (0, _map.default)(_context2 = (0, _filter.default)(_context3 = this.data.childSections).call(_context3, childSection => "body" in childSection)).call(_context2, childSection => new SectionModel(childSection, this.entryDate, this._origin, this._contextPath));
|
|
134
138
|
}
|
|
135
139
|
return this._childSections || [];
|
|
136
140
|
}
|
|
@@ -8,6 +8,7 @@ import LinkModel from "../links/LinkModel";
|
|
|
8
8
|
|
|
9
9
|
import type Href from "../href/Href";
|
|
10
10
|
import { retrieveText } from "../../utils";
|
|
11
|
+
import { getBasePath } from "../../constants";
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
*/
|
|
@@ -15,11 +16,20 @@ class SectionModel extends BaseModel {
|
|
|
15
16
|
_entryDate: ISO_DATE | null;
|
|
16
17
|
_selflink: ?LinkModel;
|
|
17
18
|
_childSections: Array<SectionModel>;
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
_origin: string = "";
|
|
20
|
+
_contextPath: string = getBasePath();
|
|
21
|
+
|
|
22
|
+
constructor(
|
|
23
|
+
data: Object,
|
|
24
|
+
entryDate: ISO_DATE | null,
|
|
25
|
+
origin?: string,
|
|
26
|
+
contextPath?: string,
|
|
27
|
+
) {
|
|
20
28
|
super(data, {});
|
|
21
29
|
|
|
22
30
|
this._entryDate = entryDate;
|
|
31
|
+
this._origin = origin || "";
|
|
32
|
+
this._contextPath = contextPath || getBasePath();
|
|
23
33
|
}
|
|
24
34
|
|
|
25
35
|
/**
|
|
@@ -32,8 +42,12 @@ class SectionModel extends BaseModel {
|
|
|
32
42
|
*/
|
|
33
43
|
get selflink(): LinkModel {
|
|
34
44
|
if (!this._selflink) {
|
|
35
|
-
|
|
36
|
-
|
|
45
|
+
this._selflink = new LinkModel(
|
|
46
|
+
this.data._links?.self,
|
|
47
|
+
null,
|
|
48
|
+
this._origin,
|
|
49
|
+
this._contextPath,
|
|
50
|
+
);
|
|
37
51
|
}
|
|
38
52
|
return this._selflink;
|
|
39
53
|
}
|
|
@@ -111,6 +125,8 @@ class SectionModel extends BaseModel {
|
|
|
111
125
|
_links: childSection._links,
|
|
112
126
|
},
|
|
113
127
|
this.entryDate,
|
|
128
|
+
this._origin,
|
|
129
|
+
this._contextPath,
|
|
114
130
|
),
|
|
115
131
|
)
|
|
116
132
|
: [];
|
|
@@ -128,6 +144,8 @@ class SectionModel extends BaseModel {
|
|
|
128
144
|
_links: this.data._links,
|
|
129
145
|
},
|
|
130
146
|
this.entryDate,
|
|
147
|
+
this._origin,
|
|
148
|
+
this._contextPath,
|
|
131
149
|
);
|
|
132
150
|
}
|
|
133
151
|
|
|
@@ -138,7 +156,15 @@ class SectionModel extends BaseModel {
|
|
|
138
156
|
if (!this._childSections && this.data.childSections) {
|
|
139
157
|
this._childSections = this.data.childSections
|
|
140
158
|
.filter((childSection) => "body" in childSection)
|
|
141
|
-
.map(
|
|
159
|
+
.map(
|
|
160
|
+
(childSection) =>
|
|
161
|
+
new SectionModel(
|
|
162
|
+
childSection,
|
|
163
|
+
this.entryDate,
|
|
164
|
+
this._origin,
|
|
165
|
+
this._contextPath,
|
|
166
|
+
),
|
|
167
|
+
);
|
|
142
168
|
}
|
|
143
169
|
return this._childSections || [];
|
|
144
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionModel.js","names":["_BaseModel","_interopRequireDefault","require","_ContentLinkModel","_SubSectionModel","_createHash","_LinkModel","_utils","SectionModel","BaseModel","constructor","data","entryDate","_defineProperty2","default","_entryDate","referred","selflink","_selflink","LinkModel","_links","self","selfhref","href","type","sourceLabel","id","_id","key","label","getData","number","body","retrieveText","childSectionLinks","_context","childSections","_map","call","childSection","ContentLinkModel","section","selfContentLink","_childSections","_context2","_context3","_filter","sections","subSections","_context4","subSection","SubSectionModel","referenceHash","createHashFromHref","getReferredSections","push","referredChilds","_default","exports"],"sources":["../../../src/models/content/SectionModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport SubSectionModel from \"./SubSectionModel\";\n\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type Href from \"../href/Href\";\nimport { retrieveText } from \"../../utils\";\n\n/**\n */\nclass SectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _selflink: ?LinkModel;\n _childSections: Array<SectionModel>;\n\n constructor(data: Object, entryDate: ISO_DATE | null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get selflink(): LinkModel {\n if (!this._selflink) {\n // TODO SBO: origin and context\n this._selflink = new LinkModel(this.data._links?.self);\n }\n return this._selflink;\n }\n\n /**\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get type(): string {\n return this.data.type;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this.data.sourceLabel;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n */\n get key(): string {\n return this.id;\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Get content body\n */\n get body(): ?string {\n return retrieveText(this.data.body);\n }\n\n /**\n * Retrieve child section links\n */\n get childSectionLinks(): Array<ContentLinkModel> {\n return this.data.childSections\n ? this.data.childSections.map(\n (childSection) =>\n new ContentLinkModel(\n {\n section: childSection.id || childSection._id,\n _id: childSection.id || childSection._id,\n label: childSection.label,\n sourceLabel: childSection.sourceLabel,\n _links: childSection._links,\n },\n this.entryDate,\n ),\n )\n : [];\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(\n {\n section: this.id,\n _id: this.id,\n label: this.data.label,\n sourceLabel: this.data.sourceLabel,\n _links: this.data._links,\n },\n this.entryDate,\n );\n }\n\n /**\n * Get tree of child sections\n */\n get childSections(): Array<SectionModel> {\n if (!this._childSections && this.data.childSections) {\n this._childSections = this.data.childSections\n .filter((childSection) => \"body\" in childSection)\n .map((childSection) => new SectionModel(childSection, this.entryDate));\n }\n return this._childSections || [];\n }\n\n /**\n * set resolved child sections\n */\n set childSections(sections: Array<SectionModel>) {\n this._childSections = sections || [];\n }\n\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) => new SubSectionModel(subSection),\n )\n : [];\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel | SectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n for (const childSection of this.childSections) {\n if (childSection.referred) {\n sections.push(childSection);\n }\n\n const referredChilds = childSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n\nexport default SectionModel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SectionModel.js","names":["_BaseModel","_interopRequireDefault","require","_ContentLinkModel","_SubSectionModel","_createHash","_LinkModel","_utils","_constants","SectionModel","BaseModel","constructor","data","entryDate","origin","contextPath","_defineProperty2","default","getBasePath","_entryDate","_origin","_contextPath","referred","selflink","_selflink","LinkModel","_links","self","selfhref","href","type","sourceLabel","id","_id","key","label","getData","number","body","retrieveText","childSectionLinks","_context","childSections","_map","call","childSection","ContentLinkModel","section","selfContentLink","_childSections","_context2","_context3","_filter","sections","subSections","_context4","subSection","SubSectionModel","referenceHash","createHashFromHref","getReferredSections","push","referredChilds","_default","exports"],"sources":["../../../src/models/content/SectionModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport SubSectionModel from \"./SubSectionModel\";\n\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type Href from \"../href/Href\";\nimport { retrieveText } from \"../../utils\";\nimport { getBasePath } from \"../../constants\";\n\n/**\n */\nclass SectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _selflink: ?LinkModel;\n _childSections: Array<SectionModel>;\n _origin: string = \"\";\n _contextPath: string = getBasePath();\n\n constructor(\n data: Object,\n entryDate: ISO_DATE | null,\n origin?: string,\n contextPath?: string,\n ) {\n super(data, {});\n\n this._entryDate = entryDate;\n this._origin = origin || \"\";\n this._contextPath = contextPath || getBasePath();\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get selflink(): LinkModel {\n if (!this._selflink) {\n this._selflink = new LinkModel(\n this.data._links?.self,\n null,\n this._origin,\n this._contextPath,\n );\n }\n return this._selflink;\n }\n\n /**\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get type(): string {\n return this.data.type;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this.data.sourceLabel;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n */\n get key(): string {\n return this.id;\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Get content body\n */\n get body(): ?string {\n return retrieveText(this.data.body);\n }\n\n /**\n * Retrieve child section links\n */\n get childSectionLinks(): Array<ContentLinkModel> {\n return this.data.childSections\n ? this.data.childSections.map(\n (childSection) =>\n new ContentLinkModel(\n {\n section: childSection.id || childSection._id,\n _id: childSection.id || childSection._id,\n label: childSection.label,\n sourceLabel: childSection.sourceLabel,\n _links: childSection._links,\n },\n this.entryDate,\n this._origin,\n this._contextPath,\n ),\n )\n : [];\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(\n {\n section: this.id,\n _id: this.id,\n label: this.data.label,\n sourceLabel: this.data.sourceLabel,\n _links: this.data._links,\n },\n this.entryDate,\n this._origin,\n this._contextPath,\n );\n }\n\n /**\n * Get tree of child sections\n */\n get childSections(): Array<SectionModel> {\n if (!this._childSections && this.data.childSections) {\n this._childSections = this.data.childSections\n .filter((childSection) => \"body\" in childSection)\n .map(\n (childSection) =>\n new SectionModel(\n childSection,\n this.entryDate,\n this._origin,\n this._contextPath,\n ),\n );\n }\n return this._childSections || [];\n }\n\n /**\n * set resolved child sections\n */\n set childSections(sections: Array<SectionModel>) {\n this._childSections = sections || [];\n }\n\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) => new SubSectionModel(subSection),\n )\n : [];\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel | SectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n for (const childSection of this.childSections) {\n if (childSection.referred) {\n sections.push(childSection);\n }\n\n const referredChilds = childSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n\nexport default SectionModel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ exports.default = void 0;
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
9
9
|
var _Href = _interopRequireDefault(require("../href/Href"));
|
|
10
10
|
var _LayoutHintCollection = _interopRequireDefault(require("../layouthint/LayoutHintCollection"));
|
|
11
|
+
var _constants = require("../../constants");
|
|
11
12
|
/**
|
|
12
13
|
*/
|
|
13
14
|
/**
|
|
@@ -21,11 +22,15 @@ class ErrorResponse {
|
|
|
21
22
|
/**
|
|
22
23
|
* Construct ErrorResponse
|
|
23
24
|
*/
|
|
24
|
-
constructor(data, connectKey) {
|
|
25
|
+
constructor(data, connectKey, origin, contextPath) {
|
|
25
26
|
(0, _defineProperty2.default)(this, "_error", void 0);
|
|
26
27
|
(0, _defineProperty2.default)(this, "_connectKey", void 0);
|
|
28
|
+
(0, _defineProperty2.default)(this, "_origin", "");
|
|
29
|
+
(0, _defineProperty2.default)(this, "_contextPath", (0, _constants.getBasePath)());
|
|
27
30
|
this._error = data;
|
|
28
31
|
this._connectKey = connectKey;
|
|
32
|
+
this._origin = origin || "";
|
|
33
|
+
this._contextPath = contextPath || (0, _constants.getBasePath)();
|
|
29
34
|
}
|
|
30
35
|
|
|
31
36
|
/**
|
|
@@ -40,6 +45,18 @@ class ErrorResponse {
|
|
|
40
45
|
return this._connectKey;
|
|
41
46
|
}
|
|
42
47
|
|
|
48
|
+
/**
|
|
49
|
+
*/
|
|
50
|
+
get origin() {
|
|
51
|
+
return this._origin;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
*/
|
|
56
|
+
get contextPath() {
|
|
57
|
+
return this._contextPath;
|
|
58
|
+
}
|
|
59
|
+
|
|
43
60
|
/**
|
|
44
61
|
* Return error information
|
|
45
62
|
*/
|
|
@@ -145,9 +162,8 @@ class ErrorResponse {
|
|
|
145
162
|
* Return response error redirect href
|
|
146
163
|
*/
|
|
147
164
|
get redirectHref() {
|
|
148
|
-
// TODO SBO: origin and context
|
|
149
165
|
if (this.response.redirect?.href) {
|
|
150
|
-
return new _Href.default(this.response.redirect?.href);
|
|
166
|
+
return new _Href.default(this.response.redirect?.href, "", this.origin, this.contextPath);
|
|
151
167
|
}
|
|
152
168
|
return new _Href.default();
|
|
153
169
|
}
|
|
@@ -262,8 +278,7 @@ class ErrorResponse {
|
|
|
262
278
|
* Get response url
|
|
263
279
|
*/
|
|
264
280
|
get changePasswordHref() {
|
|
265
|
-
|
|
266
|
-
return this.properties.redirect ? new _Href.default(this.properties.redirect) : null;
|
|
281
|
+
return this.properties.redirect ? new _Href.default(this.properties.redirect, "", this.origin, this.contextPath) : null;
|
|
267
282
|
}
|
|
268
283
|
|
|
269
284
|
/**
|
|
@@ -3,6 +3,7 @@ import Href from "../href/Href";
|
|
|
3
3
|
|
|
4
4
|
import type { MessageParameters } from "../../i18n/types";
|
|
5
5
|
import LayoutHintCollection from "../layouthint/LayoutHintCollection";
|
|
6
|
+
import { getBasePath } from "../../constants";
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
*/
|
|
@@ -33,12 +34,23 @@ export default class ErrorResponse {
|
|
|
33
34
|
_error: Object;
|
|
34
35
|
_connectKey: ?string;
|
|
35
36
|
|
|
37
|
+
_origin: string = "";
|
|
38
|
+
_contextPath: string = getBasePath();
|
|
39
|
+
|
|
36
40
|
/**
|
|
37
41
|
* Construct ErrorResponse
|
|
38
42
|
*/
|
|
39
|
-
constructor(
|
|
43
|
+
constructor(
|
|
44
|
+
data: Object,
|
|
45
|
+
connectKey?: string,
|
|
46
|
+
origin?: string,
|
|
47
|
+
contextPath?: string,
|
|
48
|
+
) {
|
|
40
49
|
this._error = data;
|
|
41
50
|
this._connectKey = connectKey;
|
|
51
|
+
|
|
52
|
+
this._origin = origin || "";
|
|
53
|
+
this._contextPath = contextPath || getBasePath();
|
|
42
54
|
}
|
|
43
55
|
|
|
44
56
|
/**
|
|
@@ -53,6 +65,18 @@ export default class ErrorResponse {
|
|
|
53
65
|
return this._connectKey;
|
|
54
66
|
}
|
|
55
67
|
|
|
68
|
+
/**
|
|
69
|
+
*/
|
|
70
|
+
get origin(): string {
|
|
71
|
+
return this._origin;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
*/
|
|
76
|
+
get contextPath(): string {
|
|
77
|
+
return this._contextPath;
|
|
78
|
+
}
|
|
79
|
+
|
|
56
80
|
/**
|
|
57
81
|
* Return error information
|
|
58
82
|
*/
|
|
@@ -161,9 +185,13 @@ export default class ErrorResponse {
|
|
|
161
185
|
* Return response error redirect href
|
|
162
186
|
*/
|
|
163
187
|
get redirectHref(): Href {
|
|
164
|
-
// TODO SBO: origin and context
|
|
165
188
|
if (this.response.redirect?.href) {
|
|
166
|
-
return new Href(
|
|
189
|
+
return new Href(
|
|
190
|
+
this.response.redirect?.href,
|
|
191
|
+
"",
|
|
192
|
+
this.origin,
|
|
193
|
+
this.contextPath,
|
|
194
|
+
);
|
|
167
195
|
}
|
|
168
196
|
return new Href();
|
|
169
197
|
}
|
|
@@ -291,8 +319,9 @@ export default class ErrorResponse {
|
|
|
291
319
|
* Get response url
|
|
292
320
|
*/
|
|
293
321
|
get changePasswordHref(): ?Href {
|
|
294
|
-
|
|
295
|
-
|
|
322
|
+
return this.properties.redirect
|
|
323
|
+
? new Href(this.properties.redirect, "", this.origin, this.contextPath)
|
|
324
|
+
: null;
|
|
296
325
|
}
|
|
297
326
|
|
|
298
327
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorResponse.js","names":["_Href","_interopRequireDefault","require","_LayoutHintCollection","ErrorResponse","constructor","data","connectKey","_defineProperty2","default","_error","_connectKey","key","error","status","NO_RESPONSE_CODE","DECIMAL_RADIX","parseInt","id","isResourceNotFound","name","message","responseMessage","response","title","titleMessage","undefined","titleId","titleProperties","properties","redirect","redirectText","text","redirectTextID","redirectTextProperties","redirectMessage","redirectHref","href","Href","layouthint","LayoutHintCollection","parameters","RESOURCE_NOT_FOUND_RESPONSE_CODE","isResourceNotFoundAfterReload","isReload","isUnauthorized","UNAUTHORIZED_RESPONSE_CODE","hasUnauthorizedStatus","hasUnauthorizedErrorId","hasLoginAction","action","isChangePassword","isConcurrentUser","isConcurrentError","isBlocked","isInvalidCredentials","isInvalidUsername","isTimeoutError","isRemoteServiceException","changePasswordHref","isBasicAuthentication","loginFailed","shouldThrowOnServer","exports"],"sources":["../../../src/models/error/ErrorResponse.js"],"sourcesContent":["// @flow\nimport Href from \"../href/Href\";\n\nimport type { MessageParameters } from \"../../i18n/types\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\n\n/**\n */\nexport type TitleObject = {\n +id: string,\n +properties?: Object,\n +message?: string,\n};\n/**\n */\nexport type RedirectTextObject = {\n +id: string,\n +properties?: Object,\n +message?: string,\n};\n\n/**\n */\nexport type RedirectObject = {\n +href: Href,\n +text?: RedirectTextObject,\n};\n\n/**\n * Error response model\n */\nexport default class ErrorResponse {\n _error: Object;\n _connectKey: ?string;\n\n /**\n * Construct ErrorResponse\n */\n constructor(data: Object, connectKey?: string) {\n this._error = data;\n this._connectKey = connectKey;\n }\n\n /**\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n */\n get connectKey(): ?string {\n return this._connectKey;\n }\n\n /**\n * Return error information\n */\n get error(): Object {\n return this._error ?? {};\n }\n\n /**\n * Get request status code\n */\n get status(): number {\n const NO_RESPONSE_CODE = 0;\n const DECIMAL_RADIX = 10;\n return this.error.status\n ? parseInt(this.error.status, DECIMAL_RADIX)\n : NO_RESPONSE_CODE;\n }\n\n /**\n * Return error type information\n */\n get id(): string {\n if (this.isResourceNotFound && this.error.id !== \"Error.NotAuthorized\") {\n return \"Error.ResourceNotFound\";\n }\n\n return this.error.id || this.error.name || \"Error.GeneralError\";\n }\n\n /**\n */\n get message(): string {\n return this.error.message || this.id;\n }\n\n /**\n * Return response error message\n */\n get responseMessage(): string {\n return this.response.message || null;\n }\n\n /**\n * Return response error title\n */\n get title(): TitleObject {\n return this.response.title || null;\n }\n\n /**\n * Return response error title message\n */\n get titleMessage(): string {\n return this.response.title?.message || undefined;\n }\n\n /**\n * Return response error title Id\n */\n get titleId(): string {\n return this.response.title?.id || undefined;\n }\n\n /**\n * Return response error title properties\n */\n get titleProperties(): Object {\n return this.response.title?.properties || null;\n }\n\n /**\n * Return response error redirect\n */\n get redirect(): RedirectObject {\n return this.response.redirect || null;\n }\n /**\n * Return response error redirect text\n */\n get redirectText(): RedirectTextObject {\n return this.response?.redirect?.text || null;\n }\n\n /**\n * Return response error redirect text id\n */\n get redirectTextID(): string {\n return this.response.redirect?.text?.id || undefined;\n }\n\n /**\n * Return response error redirect text properties\n */\n get redirectTextProperties(): Object {\n return this.response.redirect?.text?.properties || null;\n }\n\n /**\n * Return response error redirect text message\n */\n get redirectMessage(): string {\n return this.response.redirect?.text?.message || undefined;\n }\n\n /**\n * Return response error redirect href\n */\n get redirectHref(): Href {\n // TODO SBO: origin and context\n if (this.response.redirect?.href) {\n return new Href(this.response.redirect?.href);\n }\n return new Href();\n }\n\n /**\n * Return error response layouthint\n */\n get layouthint(): LayoutHintCollection {\n return new LayoutHintCollection(this.response?.layouthint);\n }\n\n /**\n */\n get response(): Object {\n return this.error?.response?.error || {};\n }\n\n /**\n */\n get properties(): Object {\n const { properties } = this.error;\n if (properties != null && typeof properties == \"object\") {\n return properties;\n }\n\n return {};\n }\n\n /**\n * Return error parameters\n */\n get parameters(): ?MessageParameters {\n return this.error.parameters || null;\n }\n\n /**\n */\n get isResourceNotFound(): boolean {\n const RESOURCE_NOT_FOUND_RESPONSE_CODE = 404;\n\n return this.status === RESOURCE_NOT_FOUND_RESPONSE_CODE;\n }\n\n /**\n */\n get isResourceNotFoundAfterReload(): boolean {\n return this.isResourceNotFound && this.error.isReload;\n }\n\n /**\n * Check if the error message is an authorization error\n */\n get isUnauthorized(): boolean {\n const UNAUTHORIZED_RESPONSE_CODE = 401;\n\n const hasUnauthorizedStatus = this.status === UNAUTHORIZED_RESPONSE_CODE;\n const hasUnauthorizedErrorId =\n this.id === \"Error.NotAuthorized\" ||\n this.id === \"Error.Authentication.Required\" ||\n this.id === \"Error.Authentication.InvalidCredentials\";\n\n const hasLoginAction = this.error.action\n ? this.error.action.name === \"login\"\n : false;\n\n return hasUnauthorizedStatus || hasUnauthorizedErrorId || hasLoginAction;\n }\n\n /**\n */\n get isChangePassword(): boolean {\n return this.id === \"Error.ChangePasswordRequired\";\n }\n\n /**\n */\n get isConcurrentUser(): boolean {\n return this.id === \"Error.Authentication.ConcurrentUser\";\n }\n\n /**\n */\n get isConcurrentError(): boolean {\n return (\n this.id === \"Error.Case.ConcurrentModification\" ||\n this.id === \"Error.DataStore.ConcurrentModification\" ||\n this.id === \"Error.DataStore.RecordAlreadyExists\" ||\n this.id === \"Error.DataStore.RowCannotBeLocked\"\n );\n }\n\n /**\n */\n get isBlocked(): boolean {\n return this.id === \"Error.Authentication.BlockedUser\";\n }\n\n /**\n */\n get isInvalidCredentials(): boolean {\n return this.id === \"Error.Authentication.InvalidCredentials\";\n }\n\n /**\n */\n get isInvalidUsername(): boolean {\n return this.id === \"Error.Authentication.InvalidUsername\";\n }\n\n /**\n */\n get isTimeoutError(): boolean {\n return this.id === \"Error.CodemapLookup.InvalidToken\";\n }\n\n /**\n * A RemoteServiceException occurs when an exception occurs connecting to an external system,\n * for example when using the service list panels\n */\n get isRemoteServiceException(): boolean {\n return this.id === \"Error.RemoteServiceException\";\n }\n\n /**\n * Get response url\n */\n get changePasswordHref(): ?Href {\n // TODO SBO: origin and context\n return this.properties.redirect ? new Href(this.properties.redirect) : null;\n }\n\n /**\n * When no action information is present in the unauthorized response, for now we assume it is Basic Authentication\n */\n get isBasicAuthentication(): boolean {\n const UNAUTHORIZED_RESPONSE_CODE = 401;\n return (\n this.isUnauthorized &&\n this.status === UNAUTHORIZED_RESPONSE_CODE &&\n this.response.error === \"No responseText\"\n );\n }\n\n /**\n * Retrieve a failed login attempt\n */\n get loginFailed(): boolean {\n return (\n this.id === \"Error.Authentication.Required\" ||\n this.id === \"Error.Authentication.InvalidCredentials\"\n );\n }\n\n /**\n */\n get shouldThrowOnServer(): boolean {\n return !this.isChangePassword && !this.isBlocked && !this.isConcurrentUser;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ErrorResponse.js","names":["_Href","_interopRequireDefault","require","_LayoutHintCollection","_constants","ErrorResponse","constructor","data","connectKey","origin","contextPath","_defineProperty2","default","getBasePath","_error","_connectKey","_origin","_contextPath","key","error","status","NO_RESPONSE_CODE","DECIMAL_RADIX","parseInt","id","isResourceNotFound","name","message","responseMessage","response","title","titleMessage","undefined","titleId","titleProperties","properties","redirect","redirectText","text","redirectTextID","redirectTextProperties","redirectMessage","redirectHref","href","Href","layouthint","LayoutHintCollection","parameters","RESOURCE_NOT_FOUND_RESPONSE_CODE","isResourceNotFoundAfterReload","isReload","isUnauthorized","UNAUTHORIZED_RESPONSE_CODE","hasUnauthorizedStatus","hasUnauthorizedErrorId","hasLoginAction","action","isChangePassword","isConcurrentUser","isConcurrentError","isBlocked","isInvalidCredentials","isInvalidUsername","isTimeoutError","isRemoteServiceException","changePasswordHref","isBasicAuthentication","loginFailed","shouldThrowOnServer","exports"],"sources":["../../../src/models/error/ErrorResponse.js"],"sourcesContent":["// @flow\nimport Href from \"../href/Href\";\n\nimport type { MessageParameters } from \"../../i18n/types\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { getBasePath } from \"../../constants\";\n\n/**\n */\nexport type TitleObject = {\n +id: string,\n +properties?: Object,\n +message?: string,\n};\n/**\n */\nexport type RedirectTextObject = {\n +id: string,\n +properties?: Object,\n +message?: string,\n};\n\n/**\n */\nexport type RedirectObject = {\n +href: Href,\n +text?: RedirectTextObject,\n};\n\n/**\n * Error response model\n */\nexport default class ErrorResponse {\n _error: Object;\n _connectKey: ?string;\n\n _origin: string = \"\";\n _contextPath: string = getBasePath();\n\n /**\n * Construct ErrorResponse\n */\n constructor(\n data: Object,\n connectKey?: string,\n origin?: string,\n contextPath?: string,\n ) {\n this._error = data;\n this._connectKey = connectKey;\n\n this._origin = origin || \"\";\n this._contextPath = contextPath || getBasePath();\n }\n\n /**\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n */\n get connectKey(): ?string {\n return this._connectKey;\n }\n\n /**\n */\n get origin(): string {\n return this._origin;\n }\n\n /**\n */\n get contextPath(): string {\n return this._contextPath;\n }\n\n /**\n * Return error information\n */\n get error(): Object {\n return this._error ?? {};\n }\n\n /**\n * Get request status code\n */\n get status(): number {\n const NO_RESPONSE_CODE = 0;\n const DECIMAL_RADIX = 10;\n return this.error.status\n ? parseInt(this.error.status, DECIMAL_RADIX)\n : NO_RESPONSE_CODE;\n }\n\n /**\n * Return error type information\n */\n get id(): string {\n if (this.isResourceNotFound && this.error.id !== \"Error.NotAuthorized\") {\n return \"Error.ResourceNotFound\";\n }\n\n return this.error.id || this.error.name || \"Error.GeneralError\";\n }\n\n /**\n */\n get message(): string {\n return this.error.message || this.id;\n }\n\n /**\n * Return response error message\n */\n get responseMessage(): string {\n return this.response.message || null;\n }\n\n /**\n * Return response error title\n */\n get title(): TitleObject {\n return this.response.title || null;\n }\n\n /**\n * Return response error title message\n */\n get titleMessage(): string {\n return this.response.title?.message || undefined;\n }\n\n /**\n * Return response error title Id\n */\n get titleId(): string {\n return this.response.title?.id || undefined;\n }\n\n /**\n * Return response error title properties\n */\n get titleProperties(): Object {\n return this.response.title?.properties || null;\n }\n\n /**\n * Return response error redirect\n */\n get redirect(): RedirectObject {\n return this.response.redirect || null;\n }\n /**\n * Return response error redirect text\n */\n get redirectText(): RedirectTextObject {\n return this.response?.redirect?.text || null;\n }\n\n /**\n * Return response error redirect text id\n */\n get redirectTextID(): string {\n return this.response.redirect?.text?.id || undefined;\n }\n\n /**\n * Return response error redirect text properties\n */\n get redirectTextProperties(): Object {\n return this.response.redirect?.text?.properties || null;\n }\n\n /**\n * Return response error redirect text message\n */\n get redirectMessage(): string {\n return this.response.redirect?.text?.message || undefined;\n }\n\n /**\n * Return response error redirect href\n */\n get redirectHref(): Href {\n if (this.response.redirect?.href) {\n return new Href(\n this.response.redirect?.href,\n \"\",\n this.origin,\n this.contextPath,\n );\n }\n return new Href();\n }\n\n /**\n * Return error response layouthint\n */\n get layouthint(): LayoutHintCollection {\n return new LayoutHintCollection(this.response?.layouthint);\n }\n\n /**\n */\n get response(): Object {\n return this.error?.response?.error || {};\n }\n\n /**\n */\n get properties(): Object {\n const { properties } = this.error;\n if (properties != null && typeof properties == \"object\") {\n return properties;\n }\n\n return {};\n }\n\n /**\n * Return error parameters\n */\n get parameters(): ?MessageParameters {\n return this.error.parameters || null;\n }\n\n /**\n */\n get isResourceNotFound(): boolean {\n const RESOURCE_NOT_FOUND_RESPONSE_CODE = 404;\n\n return this.status === RESOURCE_NOT_FOUND_RESPONSE_CODE;\n }\n\n /**\n */\n get isResourceNotFoundAfterReload(): boolean {\n return this.isResourceNotFound && this.error.isReload;\n }\n\n /**\n * Check if the error message is an authorization error\n */\n get isUnauthorized(): boolean {\n const UNAUTHORIZED_RESPONSE_CODE = 401;\n\n const hasUnauthorizedStatus = this.status === UNAUTHORIZED_RESPONSE_CODE;\n const hasUnauthorizedErrorId =\n this.id === \"Error.NotAuthorized\" ||\n this.id === \"Error.Authentication.Required\" ||\n this.id === \"Error.Authentication.InvalidCredentials\";\n\n const hasLoginAction = this.error.action\n ? this.error.action.name === \"login\"\n : false;\n\n return hasUnauthorizedStatus || hasUnauthorizedErrorId || hasLoginAction;\n }\n\n /**\n */\n get isChangePassword(): boolean {\n return this.id === \"Error.ChangePasswordRequired\";\n }\n\n /**\n */\n get isConcurrentUser(): boolean {\n return this.id === \"Error.Authentication.ConcurrentUser\";\n }\n\n /**\n */\n get isConcurrentError(): boolean {\n return (\n this.id === \"Error.Case.ConcurrentModification\" ||\n this.id === \"Error.DataStore.ConcurrentModification\" ||\n this.id === \"Error.DataStore.RecordAlreadyExists\" ||\n this.id === \"Error.DataStore.RowCannotBeLocked\"\n );\n }\n\n /**\n */\n get isBlocked(): boolean {\n return this.id === \"Error.Authentication.BlockedUser\";\n }\n\n /**\n */\n get isInvalidCredentials(): boolean {\n return this.id === \"Error.Authentication.InvalidCredentials\";\n }\n\n /**\n */\n get isInvalidUsername(): boolean {\n return this.id === \"Error.Authentication.InvalidUsername\";\n }\n\n /**\n */\n get isTimeoutError(): boolean {\n return this.id === \"Error.CodemapLookup.InvalidToken\";\n }\n\n /**\n * A RemoteServiceException occurs when an exception occurs connecting to an external system,\n * for example when using the service list panels\n */\n get isRemoteServiceException(): boolean {\n return this.id === \"Error.RemoteServiceException\";\n }\n\n /**\n * Get response url\n */\n get changePasswordHref(): ?Href {\n return this.properties.redirect\n ? new Href(this.properties.redirect, \"\", this.origin, this.contextPath)\n : null;\n }\n\n /**\n * When no action information is present in the unauthorized response, for now we assume it is Basic Authentication\n */\n get isBasicAuthentication(): boolean {\n const UNAUTHORIZED_RESPONSE_CODE = 401;\n return (\n this.isUnauthorized &&\n this.status === UNAUTHORIZED_RESPONSE_CODE &&\n this.response.error === \"No responseText\"\n );\n }\n\n /**\n * Retrieve a failed login attempt\n */\n get loginFailed(): boolean {\n return (\n this.id === \"Error.Authentication.Required\" ||\n this.id === \"Error.Authentication.InvalidCredentials\"\n );\n }\n\n /**\n */\n get shouldThrowOnServer(): boolean {\n return !this.isChangePassword && !this.isBlocked && !this.isConcurrentUser;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/models/href/Href.js
CHANGED
|
@@ -87,10 +87,24 @@ class Href {
|
|
|
87
87
|
} else if (typeof href._hash === "string") {
|
|
88
88
|
this.hash = href._hash;
|
|
89
89
|
}
|
|
90
|
-
if (href.state) {
|
|
91
|
-
this.
|
|
90
|
+
if (typeof href.state === "object") {
|
|
91
|
+
this.setStateFromLocationOrObject(href.state);
|
|
92
92
|
} else if (typeof href._state === "object") {
|
|
93
|
-
this.
|
|
93
|
+
this.setStateFromLocationOrObject(href._state);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
*/
|
|
99
|
+
setStateFromLocationOrObject(state) {
|
|
100
|
+
if (state != null) {
|
|
101
|
+
this.state = state;
|
|
102
|
+
if (typeof state.contextPath === "string") {
|
|
103
|
+
this.contextPath = state.contextPath;
|
|
104
|
+
}
|
|
105
|
+
if (typeof state.origin === "string") {
|
|
106
|
+
this.origin = state.origin;
|
|
107
|
+
}
|
|
94
108
|
}
|
|
95
109
|
}
|
|
96
110
|
|
|
@@ -470,7 +484,10 @@ class Href {
|
|
|
470
484
|
pathname: this.path,
|
|
471
485
|
search: this.querystring.length > 0 ? `?${this.querystring}` : "",
|
|
472
486
|
hash: this.hash.length > 0 ? `#${this.hash}` : "",
|
|
473
|
-
state:
|
|
487
|
+
state: {
|
|
488
|
+
contextPath: this.contextPath,
|
|
489
|
+
...this.state
|
|
490
|
+
}
|
|
474
491
|
};
|
|
475
492
|
}
|
|
476
493
|
}
|
|
@@ -105,10 +105,24 @@ class Href {
|
|
|
105
105
|
this.hash = href._hash;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
if (href.state) {
|
|
109
|
-
this.
|
|
108
|
+
if (typeof href.state === "object") {
|
|
109
|
+
this.setStateFromLocationOrObject(href.state);
|
|
110
110
|
} else if (typeof href._state === "object") {
|
|
111
|
-
this.
|
|
111
|
+
this.setStateFromLocationOrObject(href._state);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
*/
|
|
117
|
+
setStateFromLocationOrObject(state?: any) {
|
|
118
|
+
if (state != null) {
|
|
119
|
+
this.state = state;
|
|
120
|
+
if (typeof state.contextPath === "string") {
|
|
121
|
+
this.contextPath = state.contextPath;
|
|
122
|
+
}
|
|
123
|
+
if (typeof state.origin === "string") {
|
|
124
|
+
this.origin = state.origin;
|
|
125
|
+
}
|
|
112
126
|
}
|
|
113
127
|
}
|
|
114
128
|
|
|
@@ -531,7 +545,10 @@ class Href {
|
|
|
531
545
|
pathname: this.path,
|
|
532
546
|
search: this.querystring.length > 0 ? `?${this.querystring}` : "",
|
|
533
547
|
hash: this.hash.length > 0 ? `#${this.hash}` : "",
|
|
534
|
-
state:
|
|
548
|
+
state: {
|
|
549
|
+
contextPath: this.contextPath,
|
|
550
|
+
...this.state,
|
|
551
|
+
},
|
|
535
552
|
};
|
|
536
553
|
}
|
|
537
554
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Href.js","names":["_constants","require","_Parameter","_interopRequireDefault","_exceptions","Href","constructor","href","resourcetype","origin","contextPath","_defineProperty2","default","HTTP_METHODS","GET","getBasePath","setFromHref","setFromString","setFromLocationOrObject","path","parameters","hash","state","_origin","_contextPath","pathname","_path","search","addParametersFromString","Array","isArray","_parameters","_context","_map","call","param","addParameter","_name","_value","_prefix","getHashFromString","_hash","_state","getPathFromString","isChangePassword","_context2","_includes","isCamelRoute","_startsWith","checkAbsoluteUrl","checkAbsolute","RegExp","test","isExternal","hrefNoHash","substring","indexOf","split","arguments","length","undefined","substr","forEach","paramFromString","Parameter","fromString","setParameter","name","value","prefix","removeParameter","push","getParameter","_context3","_find","hasParameter","method","_method","_context4","valueToRemove","newValue","filter","val","join","_context5","_filter","getQuerystring","_context6","_context7","withPrefix","toQuerystring","getQuerystringForModularUI","_context8","_context9","isModUIParameter","querystring","setState","_resourcetype","absolutepath","absolutehref","absolutehrefPrefixedQuerystring","startsWith","thisPath","otherPath","equals","equalsWithParameters","_context10","thisParams","toString","every","IllegalArgumentException","isContent","_context11","CONTENT_PATH","getReferenceHash","_referenceHash","setReferenceHash","referenceHash","toLocation","_default","exports"],"sources":["../../../src/models/href/Href.js"],"sourcesContent":["// @flow\nimport { getBasePath, HTTP_METHODS, CONTENT_PATH } from \"../../constants\";\n\nimport Parameter from \"../parameter/Parameter\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { LocationShape } from \"react-router\";\n\ntype HrefObject = {\n _path: string,\n _hash: string,\n _parameters: Array<Parameter>,\n _resourcetype: string,\n _method: $Keys<typeof HTTP_METHODS>,\n _state: ?{ [key: string]: any },\n pathname: ?string,\n};\n\nexport type HrefInput = Href | HrefObject | LocationShape | string;\n\n/**\n * Defines a Href with the parameters\n */\nclass Href {\n _path: string = \"\";\n _hash: string = \"\";\n _parameters: Array<Parameter> = [];\n _resourcetype: string = \"\";\n _method: $Keys<typeof HTTP_METHODS> = HTTP_METHODS.GET;\n _state: any = null;\n _referenceHash: ?number;\n _origin: string = \"\";\n _contextPath: string = getBasePath();\n\n /**\n * Create a Href\n */\n constructor(\n href?: HrefInput,\n resourcetype?: string,\n origin?: string,\n contextPath?: string,\n ) {\n this.resourcetype = resourcetype ?? \"\";\n\n if (href instanceof Href) {\n this.setFromHref(href);\n } else if (typeof href === \"string\") {\n this.setFromString(href);\n } else if (typeof href === \"object\") {\n this.setFromLocationOrObject(href);\n }\n\n if (typeof origin === \"string\") {\n this.origin = origin;\n }\n\n if (typeof contextPath === \"string\") {\n this.contextPath = contextPath;\n }\n }\n\n /**\n * Set parameters from Href model input\n */\n setFromHref(href: Href) {\n this.origin = href.origin;\n this.contextPath = href.contextPath;\n this.path = href.path;\n this.parameters = href.parameters;\n this.hash = href.hash;\n this.state = href.state;\n }\n\n /**\n */\n setFromLocationOrObject(href: LocationShape | HrefObject) {\n // $FlowFixMe\n if (typeof href._origin === \"string\") {\n this.origin = href._origin;\n }\n // $FlowFixMe\n if (typeof href._contextPath === \"string\") {\n this.contextPath = href._contextPath;\n }\n\n if (typeof href[\"pathname\"] === \"string\") {\n this.path = href.pathname;\n } else if (typeof href._path === \"string\") {\n this.path = href._path;\n }\n\n if (href.search) {\n this.addParametersFromString(href.search);\n } else if (Array.isArray(href._parameters)) {\n // $FlowExpectedError[incompatible-call]\n href._parameters.map((param: Parameter) =>\n this.addParameter(param._name, param._value, param._prefix),\n );\n }\n\n if (href.hash) {\n this.hash = Href.getHashFromString(href.hash);\n } else if (typeof href._hash === \"string\") {\n this.hash = href._hash;\n }\n\n if (href.state) {\n this.state = href.state || null;\n } else if (typeof href._state === \"object\") {\n this.state = href._state;\n }\n }\n\n /**\n * Set parameters from string input\n */\n setFromString(href: string) {\n this.path = Href.getPathFromString(href);\n this.addParametersFromString(href);\n this.hash = Href.getHashFromString(href);\n }\n\n /**\n */\n get isChangePassword(): boolean {\n return this._path.includes(\"/change-password\");\n }\n\n /**\n * check if the path is referencing a camel route\n */\n static isCamelRoute(path: string): boolean {\n return (\n path.startsWith(\"/restServices\") && !path.startsWith(\"/restServices/ui\")\n );\n }\n\n /**\n */\n static checkAbsoluteUrl(href: string): boolean {\n const checkAbsolute = new RegExp(\"^(?:[a-z]+:)?//\", \"i\");\n return checkAbsolute.test(href);\n }\n\n // Check if url is relative (not checking for absolute urls with same domain)\n /**\n */\n get isExternal(): boolean {\n return Href.checkAbsoluteUrl(this.path);\n }\n\n /**\n * Retrieve the relative path part of a href string, e.g. https://www.beinformed.com/BeInformed/tab/view?q=url => /tab/view\n */\n static getPathFromString(href: string): string {\n const hrefNoHash = href.includes(\"#\")\n ? href.substring(0, href.indexOf(\"#\"))\n : href;\n\n return hrefNoHash.includes(\"?\") ? hrefNoHash.split(\"?\")[0] : hrefNoHash;\n }\n\n /**\n * Retrieve hash of href string\n */\n static getHashFromString(href: string = \"\"): string {\n return href.includes(\"#\") ? href.substr(href.indexOf(\"#\") + 1) : \"\";\n }\n\n /**\n * Add a parameter for each parameter found in the querystring of an URL string, e.g. https://www.beinformed.com?q=url => q=url\n */\n addParametersFromString(href: string): Href {\n if (href.includes(\"?\")) {\n href\n .split(\"?\")[1]\n .split(\"&\")\n .forEach((param) => {\n const paramFromString = Parameter.fromString(param);\n if (paramFromString) {\n this.setParameter(\n paramFromString.name,\n paramFromString.value,\n paramFromString.prefix,\n );\n }\n });\n }\n\n return this;\n }\n\n /**\n * Add a querystring parameter to the parameter collection of this Href, skips parameters that have a value of null\n */\n addParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value !== null) {\n this.removeParameter(name, prefix);\n this._parameters.push(new Parameter(prefix, name, value));\n }\n\n return this;\n }\n\n /**\n * Adds or overwrites a parameter when it exists and value is not null.\n * Removes the parameter when the value is null\n */\n setParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value === null) {\n this.removeParameter(name, prefix);\n } else {\n this.addParameter(name, value, prefix);\n }\n\n return this;\n }\n\n /**\n * Retrieve a parameter by it's name and (optionally) prefix\n */\n getParameter(name: string, prefix: ?string): ?Parameter {\n return this._parameters.find(\n (param) => param.prefix === prefix && param.name === name,\n );\n }\n\n /**\n */\n hasParameter(name: string, prefix: ?string): boolean {\n return this.getParameter(name, prefix) !== undefined;\n }\n\n /**\n * Get request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this._method;\n }\n\n /**\n * Set request method\n */\n set method(method: $Keys<typeof HTTP_METHODS>) {\n this._method = method || HTTP_METHODS.GET;\n }\n\n /**\n * Retrieve all paremters\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n * Replace parameters of Href\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n * Remove a parameter from the parameter collection\n */\n removeParameter(name: string, prefix: ?string, value: ?string): Href {\n if (value !== undefined) {\n const valueToRemove = value;\n\n this._parameters = this._parameters.map((param) => {\n if (param.prefix === prefix && param.name === name) {\n const newValue = param.value\n ?.split(\",\")\n .filter((val) => val !== valueToRemove)\n .join(\",\");\n return new Parameter(param.prefix, param.name, newValue);\n }\n return param;\n });\n } else {\n this._parameters = this._parameters.filter(\n (param) => param.prefix !== prefix || param.name !== name,\n );\n }\n\n return this;\n }\n\n /**\n * Get the parameters as a querystring, e.g. param1=value1¶m2=value2, optionally with prefix\n */\n getQuerystring(withPrefix: boolean = false): string {\n return this.parameters\n .filter((param) => param.value != null && param.value !== \"\")\n .map((param) => param.toQuerystring(withPrefix))\n .join(\"&\");\n }\n\n /**\n * Retrieve a querystring that only contains parameter that can be send to the modular ui, parameters are filtered by prefix\n */\n getQuerystringForModularUI(prefix: string = \"\"): string {\n return this.parameters\n .filter(\n (param) =>\n param.isModUIParameter &&\n (!prefix || !param.prefix || param.prefix === prefix) &&\n param.value != null,\n )\n .map((param) => param.toQuerystring(false))\n .join(\"&\");\n }\n\n /**\n * Retrieve all parameters from the parameter collection in a querystring style name1=value1&name2=value2, without the prefix\n */\n get querystring(): string {\n return this.getQuerystring(false);\n }\n\n /**\n * Set the path of the Href, the part before the querystring question mark\n */\n set path(path: string) {\n this._path = path;\n }\n\n /**\n * Retrieve the path\n */\n get path(): string {\n return this._path ?? \"\";\n }\n\n /**\n * Retrieve the origin (e.g. http://example.com:18080)<br>\n * Empty when the default must be used\n */\n get origin(): string {\n return this._origin ?? \"\";\n }\n\n /**\n * Set the origin (e.g. http://example.com:18080)\n */\n set origin(origin: string) {\n this._origin = origin;\n }\n\n /**\n * Get the context path\n */\n get contextPath(): string {\n return this._contextPath;\n }\n\n /**\n * Set the context path if different from default\n */\n set contextPath(contextPath: string) {\n this._contextPath = contextPath;\n }\n\n /**\n * Set hash\n */\n set hash(hash: string) {\n this._hash = hash;\n }\n\n /**\n * Retrieve hash\n */\n get hash(): string {\n return this._hash;\n }\n\n /**\n */\n set state(state: any) {\n this._state = state;\n }\n\n /**\n */\n get state(): any {\n return this._state;\n }\n\n /**\n */\n setState(state: any): Href {\n this.state = state;\n\n return this;\n }\n\n /**\n * Set resourctype\n */\n set resourcetype(resourcetype: string) {\n this._resourcetype = resourcetype;\n }\n\n /**\n * Retrieve resourceType\n */\n get resourcetype(): string {\n return this._resourcetype;\n }\n\n /**\n * Retrieve the path combined with the base path (context-path) of the application, e.g. /BeInformed\n */\n get absolutepath(): string {\n if (this.isExternal) {\n return this.path;\n }\n\n return this.origin + this.contextPath + this.path;\n }\n\n /**\n * Retrieves the combination of the path and the querystring\n */\n get href(): string {\n return this.querystring.length > 0\n ? [this.path, this.querystring].join(\"?\")\n : this.path;\n }\n\n /**\n * Getting the URL including the base path, querystring is prefixed\n */\n get absolutehref(): string {\n const querystring = this.getQuerystring(false);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Getting the URL including the base path, the querystring is prefixed\n */\n get absolutehrefPrefixedQuerystring(): string {\n const querystring = this.getQuerystring(true);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Checks if the URL starts within the given href\n */\n startsWith(href: Href | string): boolean {\n const thisPath = `${this.path}/`;\n const otherPath = href instanceof Href ? `${href.path}/` : href;\n\n return thisPath.startsWith(otherPath);\n }\n\n /**\n * Checks if the given Href equals this Href\n */\n equals(href: Href | string): boolean {\n if (href instanceof Href) {\n return this.path === href.path;\n }\n\n return this.path === href;\n }\n\n /**\n */\n equalsWithParameters(href: Href): boolean {\n if (!this.equals(href)) {\n return false;\n }\n\n if (href instanceof Href) {\n if (this.parameters.length !== href.parameters.length) {\n return false;\n }\n\n if (this.parameters.length === 0 && href.parameters.length === 0) {\n return true;\n }\n\n const thisParams = this.parameters.map((param) => param.toString());\n\n return href.parameters.every((param) =>\n thisParams.includes(param.toString()),\n );\n }\n\n throw new IllegalArgumentException(`${href} is not an instance of Href`);\n }\n\n /**\n * Indicates if the link is a content link\n */\n get isContent(): boolean {\n return this.absolutepath.startsWith(`${getBasePath()}${CONTENT_PATH}`);\n }\n\n /**\n */\n getReferenceHash(): ?number {\n return this._referenceHash;\n }\n\n /**\n */\n setReferenceHash(referenceHash: number) {\n this._referenceHash = referenceHash;\n }\n\n /**\n * Returns a complete url from the Href\n */\n toString(): string {\n return this.href;\n }\n\n /**\n */\n toLocation(): LocationShape {\n return {\n pathname: this.path,\n search: this.querystring.length > 0 ? `?${this.querystring}` : \"\",\n hash: this.hash.length > 0 ? `#${this.hash}` : \"\",\n state: this.state,\n };\n }\n}\n\nexport default Href;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Href.js","names":["_constants","require","_Parameter","_interopRequireDefault","_exceptions","Href","constructor","href","resourcetype","origin","contextPath","_defineProperty2","default","HTTP_METHODS","GET","getBasePath","setFromHref","setFromString","setFromLocationOrObject","path","parameters","hash","state","_origin","_contextPath","pathname","_path","search","addParametersFromString","Array","isArray","_parameters","_context","_map","call","param","addParameter","_name","_value","_prefix","getHashFromString","_hash","setStateFromLocationOrObject","_state","getPathFromString","isChangePassword","_context2","_includes","isCamelRoute","_startsWith","checkAbsoluteUrl","checkAbsolute","RegExp","test","isExternal","hrefNoHash","substring","indexOf","split","arguments","length","undefined","substr","forEach","paramFromString","Parameter","fromString","setParameter","name","value","prefix","removeParameter","push","getParameter","_context3","_find","hasParameter","method","_method","_context4","valueToRemove","newValue","filter","val","join","_context5","_filter","getQuerystring","_context6","_context7","withPrefix","toQuerystring","getQuerystringForModularUI","_context8","_context9","isModUIParameter","querystring","setState","_resourcetype","absolutepath","absolutehref","absolutehrefPrefixedQuerystring","startsWith","thisPath","otherPath","equals","equalsWithParameters","_context10","thisParams","toString","every","IllegalArgumentException","isContent","_context11","CONTENT_PATH","getReferenceHash","_referenceHash","setReferenceHash","referenceHash","toLocation","_default","exports"],"sources":["../../../src/models/href/Href.js"],"sourcesContent":["// @flow\nimport { getBasePath, HTTP_METHODS, CONTENT_PATH } from \"../../constants\";\n\nimport Parameter from \"../parameter/Parameter\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { LocationShape } from \"react-router\";\n\ntype HrefObject = {\n _path: string,\n _hash: string,\n _parameters: Array<Parameter>,\n _resourcetype: string,\n _method: $Keys<typeof HTTP_METHODS>,\n _state: ?{ [key: string]: any },\n pathname: ?string,\n};\n\nexport type HrefInput = Href | HrefObject | LocationShape | string;\n\n/**\n * Defines a Href with the parameters\n */\nclass Href {\n _path: string = \"\";\n _hash: string = \"\";\n _parameters: Array<Parameter> = [];\n _resourcetype: string = \"\";\n _method: $Keys<typeof HTTP_METHODS> = HTTP_METHODS.GET;\n _state: any = null;\n _referenceHash: ?number;\n _origin: string = \"\";\n _contextPath: string = getBasePath();\n\n /**\n * Create a Href\n */\n constructor(\n href?: HrefInput,\n resourcetype?: string,\n origin?: string,\n contextPath?: string,\n ) {\n this.resourcetype = resourcetype ?? \"\";\n\n if (href instanceof Href) {\n this.setFromHref(href);\n } else if (typeof href === \"string\") {\n this.setFromString(href);\n } else if (typeof href === \"object\") {\n this.setFromLocationOrObject(href);\n }\n\n if (typeof origin === \"string\") {\n this.origin = origin;\n }\n\n if (typeof contextPath === \"string\") {\n this.contextPath = contextPath;\n }\n }\n\n /**\n * Set parameters from Href model input\n */\n setFromHref(href: Href) {\n this.origin = href.origin;\n this.contextPath = href.contextPath;\n this.path = href.path;\n this.parameters = href.parameters;\n this.hash = href.hash;\n this.state = href.state;\n }\n\n /**\n */\n setFromLocationOrObject(href: LocationShape | HrefObject) {\n // $FlowFixMe\n if (typeof href._origin === \"string\") {\n this.origin = href._origin;\n }\n // $FlowFixMe\n if (typeof href._contextPath === \"string\") {\n this.contextPath = href._contextPath;\n }\n\n if (typeof href[\"pathname\"] === \"string\") {\n this.path = href.pathname;\n } else if (typeof href._path === \"string\") {\n this.path = href._path;\n }\n\n if (href.search) {\n this.addParametersFromString(href.search);\n } else if (Array.isArray(href._parameters)) {\n // $FlowExpectedError[incompatible-call]\n href._parameters.map((param: Parameter) =>\n this.addParameter(param._name, param._value, param._prefix),\n );\n }\n\n if (href.hash) {\n this.hash = Href.getHashFromString(href.hash);\n } else if (typeof href._hash === \"string\") {\n this.hash = href._hash;\n }\n\n if (typeof href.state === \"object\") {\n this.setStateFromLocationOrObject(href.state);\n } else if (typeof href._state === \"object\") {\n this.setStateFromLocationOrObject(href._state);\n }\n }\n\n /**\n */\n setStateFromLocationOrObject(state?: any) {\n if (state != null) {\n this.state = state;\n if (typeof state.contextPath === \"string\") {\n this.contextPath = state.contextPath;\n }\n if (typeof state.origin === \"string\") {\n this.origin = state.origin;\n }\n }\n }\n\n /**\n * Set parameters from string input\n */\n setFromString(href: string) {\n this.path = Href.getPathFromString(href);\n this.addParametersFromString(href);\n this.hash = Href.getHashFromString(href);\n }\n\n /**\n */\n get isChangePassword(): boolean {\n return this._path.includes(\"/change-password\");\n }\n\n /**\n * check if the path is referencing a camel route\n */\n static isCamelRoute(path: string): boolean {\n return (\n path.startsWith(\"/restServices\") && !path.startsWith(\"/restServices/ui\")\n );\n }\n\n /**\n */\n static checkAbsoluteUrl(href: string): boolean {\n const checkAbsolute = new RegExp(\"^(?:[a-z]+:)?//\", \"i\");\n return checkAbsolute.test(href);\n }\n\n // Check if url is relative (not checking for absolute urls with same domain)\n /**\n */\n get isExternal(): boolean {\n return Href.checkAbsoluteUrl(this.path);\n }\n\n /**\n * Retrieve the relative path part of a href string, e.g. https://www.beinformed.com/BeInformed/tab/view?q=url => /tab/view\n */\n static getPathFromString(href: string): string {\n const hrefNoHash = href.includes(\"#\")\n ? href.substring(0, href.indexOf(\"#\"))\n : href;\n\n return hrefNoHash.includes(\"?\") ? hrefNoHash.split(\"?\")[0] : hrefNoHash;\n }\n\n /**\n * Retrieve hash of href string\n */\n static getHashFromString(href: string = \"\"): string {\n return href.includes(\"#\") ? href.substr(href.indexOf(\"#\") + 1) : \"\";\n }\n\n /**\n * Add a parameter for each parameter found in the querystring of an URL string, e.g. https://www.beinformed.com?q=url => q=url\n */\n addParametersFromString(href: string): Href {\n if (href.includes(\"?\")) {\n href\n .split(\"?\")[1]\n .split(\"&\")\n .forEach((param) => {\n const paramFromString = Parameter.fromString(param);\n if (paramFromString) {\n this.setParameter(\n paramFromString.name,\n paramFromString.value,\n paramFromString.prefix,\n );\n }\n });\n }\n\n return this;\n }\n\n /**\n * Add a querystring parameter to the parameter collection of this Href, skips parameters that have a value of null\n */\n addParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value !== null) {\n this.removeParameter(name, prefix);\n this._parameters.push(new Parameter(prefix, name, value));\n }\n\n return this;\n }\n\n /**\n * Adds or overwrites a parameter when it exists and value is not null.\n * Removes the parameter when the value is null\n */\n setParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value === null) {\n this.removeParameter(name, prefix);\n } else {\n this.addParameter(name, value, prefix);\n }\n\n return this;\n }\n\n /**\n * Retrieve a parameter by it's name and (optionally) prefix\n */\n getParameter(name: string, prefix: ?string): ?Parameter {\n return this._parameters.find(\n (param) => param.prefix === prefix && param.name === name,\n );\n }\n\n /**\n */\n hasParameter(name: string, prefix: ?string): boolean {\n return this.getParameter(name, prefix) !== undefined;\n }\n\n /**\n * Get request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this._method;\n }\n\n /**\n * Set request method\n */\n set method(method: $Keys<typeof HTTP_METHODS>) {\n this._method = method || HTTP_METHODS.GET;\n }\n\n /**\n * Retrieve all paremters\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n * Replace parameters of Href\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n * Remove a parameter from the parameter collection\n */\n removeParameter(name: string, prefix: ?string, value: ?string): Href {\n if (value !== undefined) {\n const valueToRemove = value;\n\n this._parameters = this._parameters.map((param) => {\n if (param.prefix === prefix && param.name === name) {\n const newValue = param.value\n ?.split(\",\")\n .filter((val) => val !== valueToRemove)\n .join(\",\");\n return new Parameter(param.prefix, param.name, newValue);\n }\n return param;\n });\n } else {\n this._parameters = this._parameters.filter(\n (param) => param.prefix !== prefix || param.name !== name,\n );\n }\n\n return this;\n }\n\n /**\n * Get the parameters as a querystring, e.g. param1=value1¶m2=value2, optionally with prefix\n */\n getQuerystring(withPrefix: boolean = false): string {\n return this.parameters\n .filter((param) => param.value != null && param.value !== \"\")\n .map((param) => param.toQuerystring(withPrefix))\n .join(\"&\");\n }\n\n /**\n * Retrieve a querystring that only contains parameter that can be send to the modular ui, parameters are filtered by prefix\n */\n getQuerystringForModularUI(prefix: string = \"\"): string {\n return this.parameters\n .filter(\n (param) =>\n param.isModUIParameter &&\n (!prefix || !param.prefix || param.prefix === prefix) &&\n param.value != null,\n )\n .map((param) => param.toQuerystring(false))\n .join(\"&\");\n }\n\n /**\n * Retrieve all parameters from the parameter collection in a querystring style name1=value1&name2=value2, without the prefix\n */\n get querystring(): string {\n return this.getQuerystring(false);\n }\n\n /**\n * Set the path of the Href, the part before the querystring question mark\n */\n set path(path: string) {\n this._path = path;\n }\n\n /**\n * Retrieve the path\n */\n get path(): string {\n return this._path ?? \"\";\n }\n\n /**\n * Retrieve the origin (e.g. http://example.com:18080)<br>\n * Empty when the default must be used\n */\n get origin(): string {\n return this._origin ?? \"\";\n }\n\n /**\n * Set the origin (e.g. http://example.com:18080)\n */\n set origin(origin: string) {\n this._origin = origin;\n }\n\n /**\n * Get the context path\n */\n get contextPath(): string {\n return this._contextPath;\n }\n\n /**\n * Set the context path if different from default\n */\n set contextPath(contextPath: string) {\n this._contextPath = contextPath;\n }\n\n /**\n * Set hash\n */\n set hash(hash: string) {\n this._hash = hash;\n }\n\n /**\n * Retrieve hash\n */\n get hash(): string {\n return this._hash;\n }\n\n /**\n */\n set state(state: any) {\n this._state = state;\n }\n\n /**\n */\n get state(): any {\n return this._state;\n }\n\n /**\n */\n setState(state: any): Href {\n this.state = state;\n\n return this;\n }\n\n /**\n * Set resourctype\n */\n set resourcetype(resourcetype: string) {\n this._resourcetype = resourcetype;\n }\n\n /**\n * Retrieve resourceType\n */\n get resourcetype(): string {\n return this._resourcetype;\n }\n\n /**\n * Retrieve the path combined with the base path (context-path) of the application, e.g. /BeInformed\n */\n get absolutepath(): string {\n if (this.isExternal) {\n return this.path;\n }\n\n return this.origin + this.contextPath + this.path;\n }\n\n /**\n * Retrieves the combination of the path and the querystring\n */\n get href(): string {\n return this.querystring.length > 0\n ? [this.path, this.querystring].join(\"?\")\n : this.path;\n }\n\n /**\n * Getting the URL including the base path, querystring is prefixed\n */\n get absolutehref(): string {\n const querystring = this.getQuerystring(false);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Getting the URL including the base path, the querystring is prefixed\n */\n get absolutehrefPrefixedQuerystring(): string {\n const querystring = this.getQuerystring(true);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Checks if the URL starts within the given href\n */\n startsWith(href: Href | string): boolean {\n const thisPath = `${this.path}/`;\n const otherPath = href instanceof Href ? `${href.path}/` : href;\n\n return thisPath.startsWith(otherPath);\n }\n\n /**\n * Checks if the given Href equals this Href\n */\n equals(href: Href | string): boolean {\n if (href instanceof Href) {\n return this.path === href.path;\n }\n\n return this.path === href;\n }\n\n /**\n */\n equalsWithParameters(href: Href): boolean {\n if (!this.equals(href)) {\n return false;\n }\n\n if (href instanceof Href) {\n if (this.parameters.length !== href.parameters.length) {\n return false;\n }\n\n if (this.parameters.length === 0 && href.parameters.length === 0) {\n return true;\n }\n\n const thisParams = this.parameters.map((param) => param.toString());\n\n return href.parameters.every((param) =>\n thisParams.includes(param.toString()),\n );\n }\n\n throw new IllegalArgumentException(`${href} is not an instance of Href`);\n }\n\n /**\n * Indicates if the link is a content link\n */\n get isContent(): boolean {\n return this.absolutepath.startsWith(`${getBasePath()}${CONTENT_PATH}`);\n }\n\n /**\n */\n getReferenceHash(): ?number {\n return this._referenceHash;\n }\n\n /**\n */\n setReferenceHash(referenceHash: number) {\n this._referenceHash = referenceHash;\n }\n\n /**\n * Returns a complete url from the Href\n */\n toString(): string {\n return this.href;\n }\n\n /**\n */\n toLocation(): LocationShape {\n return {\n pathname: this.path,\n search: this.querystring.length > 0 ? `?${this.querystring}` : \"\",\n hash: this.hash.length > 0 ? `#${this.hash}` : \"\",\n state: {\n contextPath: this.contextPath,\n ...this.state,\n },\n };\n }\n}\n\nexport default Href;\n"],"mappings":";;;;;;;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAgBA;AACA;AACA;AACA,MAAMI,IAAI,CAAC;EAWT;AACF;AACA;EACEC,WAAWA,CACTC,IAAgB,EAChBC,YAAqB,EACrBC,MAAe,EACfC,WAAoB,EACpB;IAAA,IAAAC,gBAAA,CAAAC,OAAA,iBAlBc,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,iBACF,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBACc,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,yBACV,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBACYC,uBAAY,CAACC,GAAG;IAAA,IAAAH,gBAAA,CAAAC,OAAA,kBACxC,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBAEA,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBACG,IAAAG,sBAAW,EAAC,CAAC;IAWlC,IAAI,CAACP,YAAY,GAAGA,YAAY,IAAI,EAAE;IAEtC,IAAID,IAAI,YAAYF,IAAI,EAAE;MACxB,IAAI,CAACW,WAAW,CAACT,IAAI,CAAC;IACxB,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MACnC,IAAI,CAACU,aAAa,CAACV,IAAI,CAAC;IAC1B,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MACnC,IAAI,CAACW,uBAAuB,CAACX,IAAI,CAAC;IACpC;IAEA,IAAI,OAAOE,MAAM,KAAK,QAAQ,EAAE;MAC9B,IAAI,CAACA,MAAM,GAAGA,MAAM;IACtB;IAEA,IAAI,OAAOC,WAAW,KAAK,QAAQ,EAAE;MACnC,IAAI,CAACA,WAAW,GAAGA,WAAW;IAChC;EACF;;EAEA;AACF;AACA;EACEM,WAAWA,CAACT,IAAU,EAAE;IACtB,IAAI,CAACE,MAAM,GAAGF,IAAI,CAACE,MAAM;IACzB,IAAI,CAACC,WAAW,GAAGH,IAAI,CAACG,WAAW;IACnC,IAAI,CAACS,IAAI,GAAGZ,IAAI,CAACY,IAAI;IACrB,IAAI,CAACC,UAAU,GAAGb,IAAI,CAACa,UAAU;IACjC,IAAI,CAACC,IAAI,GAAGd,IAAI,CAACc,IAAI;IACrB,IAAI,CAACC,KAAK,GAAGf,IAAI,CAACe,KAAK;EACzB;;EAEA;AACF;EACEJ,uBAAuBA,CAACX,IAAgC,EAAE;IACxD;IACA,IAAI,OAAOA,IAAI,CAACgB,OAAO,KAAK,QAAQ,EAAE;MACpC,IAAI,CAACd,MAAM,GAAGF,IAAI,CAACgB,OAAO;IAC5B;IACA;IACA,IAAI,OAAOhB,IAAI,CAACiB,YAAY,KAAK,QAAQ,EAAE;MACzC,IAAI,CAACd,WAAW,GAAGH,IAAI,CAACiB,YAAY;IACtC;IAEA,IAAI,OAAOjB,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE;MACxC,IAAI,CAACY,IAAI,GAAGZ,IAAI,CAACkB,QAAQ;IAC3B,CAAC,MAAM,IAAI,OAAOlB,IAAI,CAACmB,KAAK,KAAK,QAAQ,EAAE;MACzC,IAAI,CAACP,IAAI,GAAGZ,IAAI,CAACmB,KAAK;IACxB;IAEA,IAAInB,IAAI,CAACoB,MAAM,EAAE;MACf,IAAI,CAACC,uBAAuB,CAACrB,IAAI,CAACoB,MAAM,CAAC;IAC3C,CAAC,MAAM,IAAIE,KAAK,CAACC,OAAO,CAACvB,IAAI,CAACwB,WAAW,CAAC,EAAE;MAAA,IAAAC,QAAA;MAC1C;MACA,IAAAC,IAAA,CAAArB,OAAA,EAAAoB,QAAA,GAAAzB,IAAI,CAACwB,WAAW,EAAAG,IAAA,CAAAF,QAAA,EAAMG,KAAgB,IACpC,IAAI,CAACC,YAAY,CAACD,KAAK,CAACE,KAAK,EAAEF,KAAK,CAACG,MAAM,EAAEH,KAAK,CAACI,OAAO,CAC5D,CAAC;IACH;IAEA,IAAIhC,IAAI,CAACc,IAAI,EAAE;MACb,IAAI,CAACA,IAAI,GAAGhB,IAAI,CAACmC,iBAAiB,CAACjC,IAAI,CAACc,IAAI,CAAC;IAC/C,CAAC,MAAM,IAAI,OAAOd,IAAI,CAACkC,KAAK,KAAK,QAAQ,EAAE;MACzC,IAAI,CAACpB,IAAI,GAAGd,IAAI,CAACkC,KAAK;IACxB;IAEA,IAAI,OAAOlC,IAAI,CAACe,KAAK,KAAK,QAAQ,EAAE;MAClC,IAAI,CAACoB,4BAA4B,CAACnC,IAAI,CAACe,KAAK,CAAC;IAC/C,CAAC,MAAM,IAAI,OAAOf,IAAI,CAACoC,MAAM,KAAK,QAAQ,EAAE;MAC1C,IAAI,CAACD,4BAA4B,CAACnC,IAAI,CAACoC,MAAM,CAAC;IAChD;EACF;;EAEA;AACF;EACED,4BAA4BA,CAACpB,KAAW,EAAE;IACxC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,IAAI,CAACA,KAAK,GAAGA,KAAK;MAClB,IAAI,OAAOA,KAAK,CAACZ,WAAW,KAAK,QAAQ,EAAE;QACzC,IAAI,CAACA,WAAW,GAAGY,KAAK,CAACZ,WAAW;MACtC;MACA,IAAI,OAAOY,KAAK,CAACb,MAAM,KAAK,QAAQ,EAAE;QACpC,IAAI,CAACA,MAAM,GAAGa,KAAK,CAACb,MAAM;MAC5B;IACF;EACF;;EAEA;AACF;AACA;EACEQ,aAAaA,CAACV,IAAY,EAAE;IAC1B,IAAI,CAACY,IAAI,GAAGd,IAAI,CAACuC,iBAAiB,CAACrC,IAAI,CAAC;IACxC,IAAI,CAACqB,uBAAuB,CAACrB,IAAI,CAAC;IAClC,IAAI,CAACc,IAAI,GAAGhB,IAAI,CAACmC,iBAAiB,CAACjC,IAAI,CAAC;EAC1C;;EAEA;AACF;EACE,IAAIsC,gBAAgBA,CAAA,EAAY;IAAA,IAAAC,SAAA;IAC9B,OAAO,IAAAC,SAAA,CAAAnC,OAAA,EAAAkC,SAAA,OAAI,CAACpB,KAAK,EAAAQ,IAAA,CAAAY,SAAA,EAAU,kBAAkB,CAAC;EAChD;;EAEA;AACF;AACA;EACE,OAAOE,YAAYA,CAAC7B,IAAY,EAAW;IACzC,OACE,IAAA8B,WAAA,CAAArC,OAAA,EAAAO,IAAI,EAAAe,IAAA,CAAJf,IAAI,EAAY,eAAe,CAAC,IAAI,CAAC,IAAA8B,WAAA,CAAArC,OAAA,EAAAO,IAAI,EAAAe,IAAA,CAAJf,IAAI,EAAY,kBAAkB,CAAC;EAE5E;;EAEA;AACF;EACE,OAAO+B,gBAAgBA,CAAC3C,IAAY,EAAW;IAC7C,MAAM4C,aAAa,GAAG,IAAIC,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxD,OAAOD,aAAa,CAACE,IAAI,CAAC9C,IAAI,CAAC;EACjC;;EAEA;EACA;AACF;EACE,IAAI+C,UAAUA,CAAA,EAAY;IACxB,OAAOjD,IAAI,CAAC6C,gBAAgB,CAAC,IAAI,CAAC/B,IAAI,CAAC;EACzC;;EAEA;AACF;AACA;EACE,OAAOyB,iBAAiBA,CAACrC,IAAY,EAAU;IAC7C,MAAMgD,UAAU,GAAG,IAAAR,SAAA,CAAAnC,OAAA,EAAAL,IAAI,EAAA2B,IAAA,CAAJ3B,IAAI,EAAU,GAAG,CAAC,GACjCA,IAAI,CAACiD,SAAS,CAAC,CAAC,EAAEjD,IAAI,CAACkD,OAAO,CAAC,GAAG,CAAC,CAAC,GACpClD,IAAI;IAER,OAAO,IAAAwC,SAAA,CAAAnC,OAAA,EAAA2C,UAAU,EAAArB,IAAA,CAAVqB,UAAU,EAAU,GAAG,CAAC,GAAGA,UAAU,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAGH,UAAU;EACzE;;EAEA;AACF;AACA;EACE,OAAOf,iBAAiBA,CAAA,EAA4B;IAAA,IAA3BjC,IAAY,GAAAoD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IACxC,OAAO,IAAAZ,SAAA,CAAAnC,OAAA,EAAAL,IAAI,EAAA2B,IAAA,CAAJ3B,IAAI,EAAU,GAAG,CAAC,GAAGA,IAAI,CAACuD,MAAM,CAACvD,IAAI,CAACkD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;EACrE;;EAEA;AACF;AACA;EACE7B,uBAAuBA,CAACrB,IAAY,EAAQ;IAC1C,IAAI,IAAAwC,SAAA,CAAAnC,OAAA,EAAAL,IAAI,EAAA2B,IAAA,CAAJ3B,IAAI,EAAU,GAAG,CAAC,EAAE;MACtBA,IAAI,CACDmD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACbA,KAAK,CAAC,GAAG,CAAC,CACVK,OAAO,CAAE5B,KAAK,IAAK;QAClB,MAAM6B,eAAe,GAAGC,kBAAS,CAACC,UAAU,CAAC/B,KAAK,CAAC;QACnD,IAAI6B,eAAe,EAAE;UACnB,IAAI,CAACG,YAAY,CACfH,eAAe,CAACI,IAAI,EACpBJ,eAAe,CAACK,KAAK,EACrBL,eAAe,CAACM,MAClB,CAAC;QACH;MACF,CAAC,CAAC;IACN;IAEA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACElC,YAAYA,CAACgC,IAAY,EAAEC,KAAc,EAAEC,MAAe,EAAQ;IAChE,IAAID,KAAK,KAAK,IAAI,EAAE;MAClB,IAAI,CAACE,eAAe,CAACH,IAAI,EAAEE,MAAM,CAAC;MAClC,IAAI,CAACvC,WAAW,CAACyC,IAAI,CAAC,IAAIP,kBAAS,CAACK,MAAM,EAAEF,IAAI,EAAEC,KAAK,CAAC,CAAC;IAC3D;IAEA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;EACEF,YAAYA,CAACC,IAAY,EAAEC,KAAc,EAAEC,MAAe,EAAQ;IAChE,IAAID,KAAK,KAAK,IAAI,EAAE;MAClB,IAAI,CAACE,eAAe,CAACH,IAAI,EAAEE,MAAM,CAAC;IACpC,CAAC,MAAM;MACL,IAAI,CAAClC,YAAY,CAACgC,IAAI,EAAEC,KAAK,EAAEC,MAAM,CAAC;IACxC;IAEA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEG,YAAYA,CAACL,IAAY,EAAEE,MAAe,EAAc;IAAA,IAAAI,SAAA;IACtD,OAAO,IAAAC,KAAA,CAAA/D,OAAA,EAAA8D,SAAA,OAAI,CAAC3C,WAAW,EAAAG,IAAA,CAAAwC,SAAA,EACpBvC,KAAK,IAAKA,KAAK,CAACmC,MAAM,KAAKA,MAAM,IAAInC,KAAK,CAACiC,IAAI,KAAKA,IACvD,CAAC;EACH;;EAEA;AACF;EACEQ,YAAYA,CAACR,IAAY,EAAEE,MAAe,EAAW;IACnD,OAAO,IAAI,CAACG,YAAY,CAACL,IAAI,EAAEE,MAAM,CAAC,KAAKT,SAAS;EACtD;;EAEA;AACF;AACA;EACE,IAAIgB,MAAMA,CAAA,EAA+B;IACvC,OAAO,IAAI,CAACC,OAAO;EACrB;;EAEA;AACF;AACA;EACE,IAAID,MAAMA,CAACA,MAAkC,EAAE;IAC7C,IAAI,CAACC,OAAO,GAAGD,MAAM,IAAIhE,uBAAY,CAACC,GAAG;EAC3C;;EAEA;AACF;AACA;EACE,IAAIM,UAAUA,CAAA,EAAqB;IACjC,OAAO,IAAI,CAACW,WAAW;EACzB;;EAEA;AACF;AACA;EACE,IAAIX,UAAUA,CAACA,UAA4B,EAAE;IAC3C,IAAI,CAACW,WAAW,GAAGX,UAAU;EAC/B;;EAEA;AACF;AACA;EACEmD,eAAeA,CAACH,IAAY,EAAEE,MAAe,EAAED,KAAc,EAAQ;IACnE,IAAIA,KAAK,KAAKR,SAAS,EAAE;MAAA,IAAAkB,SAAA;MACvB,MAAMC,aAAa,GAAGX,KAAK;MAE3B,IAAI,CAACtC,WAAW,GAAG,IAAAE,IAAA,CAAArB,OAAA,EAAAmE,SAAA,OAAI,CAAChD,WAAW,EAAAG,IAAA,CAAA6C,SAAA,EAAM5C,KAAK,IAAK;QACjD,IAAIA,KAAK,CAACmC,MAAM,KAAKA,MAAM,IAAInC,KAAK,CAACiC,IAAI,KAAKA,IAAI,EAAE;UAClD,MAAMa,QAAQ,GAAG9C,KAAK,CAACkC,KAAK,EACxBX,KAAK,CAAC,GAAG,CAAC,CACXwB,MAAM,CAAEC,GAAG,IAAKA,GAAG,KAAKH,aAAa,CAAC,CACtCI,IAAI,CAAC,GAAG,CAAC;UACZ,OAAO,IAAInB,kBAAS,CAAC9B,KAAK,CAACmC,MAAM,EAAEnC,KAAK,CAACiC,IAAI,EAAEa,QAAQ,CAAC;QAC1D;QACA,OAAO9C,KAAK;MACd,CAAC,CAAC;IACJ,CAAC,MAAM;MAAA,IAAAkD,SAAA;MACL,IAAI,CAACtD,WAAW,GAAG,IAAAuD,OAAA,CAAA1E,OAAA,EAAAyE,SAAA,OAAI,CAACtD,WAAW,EAAAG,IAAA,CAAAmD,SAAA,EAChClD,KAAK,IAAKA,KAAK,CAACmC,MAAM,KAAKA,MAAM,IAAInC,KAAK,CAACiC,IAAI,KAAKA,IACvD,CAAC;IACH;IAEA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEmB,cAAcA,CAAA,EAAsC;IAAA,IAAAC,SAAA,EAAAC,SAAA;IAAA,IAArCC,UAAmB,GAAA/B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IACxC,OAAO,IAAA1B,IAAA,CAAArB,OAAA,EAAA4E,SAAA,OAAAF,OAAA,CAAA1E,OAAA,EAAA6E,SAAA,OAAI,CAACrE,UAAU,EAAAc,IAAA,CAAAuD,SAAA,EACXtD,KAAK,IAAKA,KAAK,CAACkC,KAAK,IAAI,IAAI,IAAIlC,KAAK,CAACkC,KAAK,KAAK,EAAE,CAAC,EAAAnC,IAAA,CAAAsD,SAAA,EACvDrD,KAAK,IAAKA,KAAK,CAACwD,aAAa,CAACD,UAAU,CAAC,CAAC,CAC/CN,IAAI,CAAC,GAAG,CAAC;EACd;;EAEA;AACF;AACA;EACEQ,0BAA0BA,CAAA,EAA8B;IAAA,IAAAC,SAAA,EAAAC,SAAA;IAAA,IAA7BxB,MAAc,GAAAX,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IAC5C,OAAO,IAAA1B,IAAA,CAAArB,OAAA,EAAAiF,SAAA,OAAAP,OAAA,CAAA1E,OAAA,EAAAkF,SAAA,OAAI,CAAC1E,UAAU,EAAAc,IAAA,CAAA4D,SAAA,EAEjB3D,KAAK,IACJA,KAAK,CAAC4D,gBAAgB,KACrB,CAACzB,MAAM,IAAI,CAACnC,KAAK,CAACmC,MAAM,IAAInC,KAAK,CAACmC,MAAM,KAAKA,MAAM,CAAC,IACrDnC,KAAK,CAACkC,KAAK,IAAI,IACnB,CAAC,EAAAnC,IAAA,CAAA2D,SAAA,EACK1D,KAAK,IAAKA,KAAK,CAACwD,aAAa,CAAC,KAAK,CAAC,CAAC,CAC1CP,IAAI,CAAC,GAAG,CAAC;EACd;;EAEA;AACF;AACA;EACE,IAAIY,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACT,cAAc,CAAC,KAAK,CAAC;EACnC;;EAEA;AACF;AACA;EACE,IAAIpE,IAAIA,CAACA,IAAY,EAAE;IACrB,IAAI,CAACO,KAAK,GAAGP,IAAI;EACnB;;EAEA;AACF;AACA;EACE,IAAIA,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACO,KAAK,IAAI,EAAE;EACzB;;EAEA;AACF;AACA;AACA;EACE,IAAIjB,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACc,OAAO,IAAI,EAAE;EAC3B;;EAEA;AACF;AACA;EACE,IAAId,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,CAACc,OAAO,GAAGd,MAAM;EACvB;;EAEA;AACF;AACA;EACE,IAAIC,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACc,YAAY;EAC1B;;EAEA;AACF;AACA;EACE,IAAId,WAAWA,CAACA,WAAmB,EAAE;IACnC,IAAI,CAACc,YAAY,GAAGd,WAAW;EACjC;;EAEA;AACF;AACA;EACE,IAAIW,IAAIA,CAACA,IAAY,EAAE;IACrB,IAAI,CAACoB,KAAK,GAAGpB,IAAI;EACnB;;EAEA;AACF;AACA;EACE,IAAIA,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACoB,KAAK;EACnB;;EAEA;AACF;EACE,IAAInB,KAAKA,CAACA,KAAU,EAAE;IACpB,IAAI,CAACqB,MAAM,GAAGrB,KAAK;EACrB;;EAEA;AACF;EACE,IAAIA,KAAKA,CAAA,EAAQ;IACf,OAAO,IAAI,CAACqB,MAAM;EACpB;;EAEA;AACF;EACEsD,QAAQA,CAAC3E,KAAU,EAAQ;IACzB,IAAI,CAACA,KAAK,GAAGA,KAAK;IAElB,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACE,IAAId,YAAYA,CAACA,YAAoB,EAAE;IACrC,IAAI,CAAC0F,aAAa,GAAG1F,YAAY;EACnC;;EAEA;AACF;AACA;EACE,IAAIA,YAAYA,CAAA,EAAW;IACzB,OAAO,IAAI,CAAC0F,aAAa;EAC3B;;EAEA;AACF;AACA;EACE,IAAIC,YAAYA,CAAA,EAAW;IACzB,IAAI,IAAI,CAAC7C,UAAU,EAAE;MACnB,OAAO,IAAI,CAACnC,IAAI;IAClB;IAEA,OAAO,IAAI,CAACV,MAAM,GAAG,IAAI,CAACC,WAAW,GAAG,IAAI,CAACS,IAAI;EACnD;;EAEA;AACF;AACA;EACE,IAAIZ,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACyF,WAAW,CAACpC,MAAM,GAAG,CAAC,GAC9B,CAAC,IAAI,CAACzC,IAAI,EAAE,IAAI,CAAC6E,WAAW,CAAC,CAACZ,IAAI,CAAC,GAAG,CAAC,GACvC,IAAI,CAACjE,IAAI;EACf;;EAEA;AACF;AACA;EACE,IAAIiF,YAAYA,CAAA,EAAW;IACzB,MAAMJ,WAAW,GAAG,IAAI,CAACT,cAAc,CAAC,KAAK,CAAC;IAE9C,OAAOS,WAAW,CAACpC,MAAM,GAAG,CAAC,GACzB,CAAC,IAAI,CAACuC,YAAY,EAAEH,WAAW,CAAC,CAACZ,IAAI,CAAC,GAAG,CAAC,GAC1C,IAAI,CAACe,YAAY;EACvB;;EAEA;AACF;AACA;EACE,IAAIE,+BAA+BA,CAAA,EAAW;IAC5C,MAAML,WAAW,GAAG,IAAI,CAACT,cAAc,CAAC,IAAI,CAAC;IAE7C,OAAOS,WAAW,CAACpC,MAAM,GAAG,CAAC,GACzB,CAAC,IAAI,CAACuC,YAAY,EAAEH,WAAW,CAAC,CAACZ,IAAI,CAAC,GAAG,CAAC,GAC1C,IAAI,CAACe,YAAY;EACvB;;EAEA;AACF;AACA;EACEG,UAAUA,CAAC/F,IAAmB,EAAW;IACvC,MAAMgG,QAAQ,GAAG,GAAG,IAAI,CAACpF,IAAI,GAAG;IAChC,MAAMqF,SAAS,GAAGjG,IAAI,YAAYF,IAAI,GAAG,GAAGE,IAAI,CAACY,IAAI,GAAG,GAAGZ,IAAI;IAE/D,OAAO,IAAA0C,WAAA,CAAArC,OAAA,EAAA2F,QAAQ,EAAArE,IAAA,CAARqE,QAAQ,EAAYC,SAAS,CAAC;EACvC;;EAEA;AACF;AACA;EACEC,MAAMA,CAAClG,IAAmB,EAAW;IACnC,IAAIA,IAAI,YAAYF,IAAI,EAAE;MACxB,OAAO,IAAI,CAACc,IAAI,KAAKZ,IAAI,CAACY,IAAI;IAChC;IAEA,OAAO,IAAI,CAACA,IAAI,KAAKZ,IAAI;EAC3B;;EAEA;AACF;EACEmG,oBAAoBA,CAACnG,IAAU,EAAW;IACxC,IAAI,CAAC,IAAI,CAACkG,MAAM,CAAClG,IAAI,CAAC,EAAE;MACtB,OAAO,KAAK;IACd;IAEA,IAAIA,IAAI,YAAYF,IAAI,EAAE;MAAA,IAAAsG,UAAA;MACxB,IAAI,IAAI,CAACvF,UAAU,CAACwC,MAAM,KAAKrD,IAAI,CAACa,UAAU,CAACwC,MAAM,EAAE;QACrD,OAAO,KAAK;MACd;MAEA,IAAI,IAAI,CAACxC,UAAU,CAACwC,MAAM,KAAK,CAAC,IAAIrD,IAAI,CAACa,UAAU,CAACwC,MAAM,KAAK,CAAC,EAAE;QAChE,OAAO,IAAI;MACb;MAEA,MAAMgD,UAAU,GAAG,IAAA3E,IAAA,CAAArB,OAAA,EAAA+F,UAAA,OAAI,CAACvF,UAAU,EAAAc,IAAA,CAAAyE,UAAA,EAAMxE,KAAK,IAAKA,KAAK,CAAC0E,QAAQ,CAAC,CAAC,CAAC;MAEnE,OAAOtG,IAAI,CAACa,UAAU,CAAC0F,KAAK,CAAE3E,KAAK,IACjC,IAAAY,SAAA,CAAAnC,OAAA,EAAAgG,UAAU,EAAA1E,IAAA,CAAV0E,UAAU,EAAUzE,KAAK,CAAC0E,QAAQ,CAAC,CAAC,CACtC,CAAC;IACH;IAEA,MAAM,IAAIE,oCAAwB,CAAC,GAAGxG,IAAI,6BAA6B,CAAC;EAC1E;;EAEA;AACF;AACA;EACE,IAAIyG,SAASA,CAAA,EAAY;IAAA,IAAAC,UAAA;IACvB,OAAO,IAAAhE,WAAA,CAAArC,OAAA,EAAAqG,UAAA,OAAI,CAACd,YAAY,EAAAjE,IAAA,CAAA+E,UAAA,EAAY,GAAG,IAAAlG,sBAAW,EAAC,CAAC,GAAGmG,uBAAY,EAAE,CAAC;EACxE;;EAEA;AACF;EACEC,gBAAgBA,CAAA,EAAY;IAC1B,OAAO,IAAI,CAACC,cAAc;EAC5B;;EAEA;AACF;EACEC,gBAAgBA,CAACC,aAAqB,EAAE;IACtC,IAAI,CAACF,cAAc,GAAGE,aAAa;EACrC;;EAEA;AACF;AACA;EACET,QAAQA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACtG,IAAI;EAClB;;EAEA;AACF;EACEgH,UAAUA,CAAA,EAAkB;IAC1B,OAAO;MACL9F,QAAQ,EAAE,IAAI,CAACN,IAAI;MACnBQ,MAAM,EAAE,IAAI,CAACqE,WAAW,CAACpC,MAAM,GAAG,CAAC,GAAG,IAAI,IAAI,CAACoC,WAAW,EAAE,GAAG,EAAE;MACjE3E,IAAI,EAAE,IAAI,CAACA,IAAI,CAACuC,MAAM,GAAG,CAAC,GAAG,IAAI,IAAI,CAACvC,IAAI,EAAE,GAAG,EAAE;MACjDC,KAAK,EAAE;QACLZ,WAAW,EAAE,IAAI,CAACA,WAAW;QAC7B,GAAG,IAAI,CAACY;MACV;IACF,CAAC;EACH;AACF;AAAC,IAAAkG,QAAA,GAAAC,OAAA,CAAA7G,OAAA,GAEcP,IAAI","ignoreList":[]}
|