@sapui5/sap.fe.core 1.96.4 → 1.99.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/package.json +6 -5
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +377 -405
- package/src/sap/fe/core/AnnotationHelper.ts +385 -0
- package/src/sap/fe/core/AppComponent.js +5 -3
- package/src/sap/fe/core/AppStateHandler.js +229 -195
- package/src/sap/fe/core/AppStateHandler.ts +171 -0
- package/src/sap/fe/core/BaseController.js +3 -2
- package/src/sap/fe/core/BusyLocker.js +105 -121
- package/src/sap/fe/core/BusyLocker.ts +98 -0
- package/src/sap/fe/core/CommonUtils.js +2073 -2606
- package/src/sap/fe/core/CommonUtils.ts +2078 -0
- package/src/sap/fe/core/ExtensionAPI.js +16 -7
- package/src/sap/fe/core/PageController.js +84 -119
- package/src/sap/fe/core/PageController.ts +101 -0
- package/src/sap/fe/core/RouterProxy.js +986 -809
- package/src/sap/fe/core/RouterProxy.ts +838 -0
- package/src/sap/fe/core/Synchronization.js +51 -35
- package/src/sap/fe/core/Synchronization.ts +29 -0
- package/src/sap/fe/core/TemplateComponent.js +173 -155
- package/src/sap/fe/core/TemplateComponent.ts +166 -0
- package/src/sap/fe/core/TemplateModel.js +97 -54
- package/src/sap/fe/core/TemplateModel.ts +63 -0
- package/src/sap/fe/core/TransactionHelper.js +1576 -1627
- package/src/sap/fe/core/TransactionHelper.ts +1706 -0
- package/src/sap/fe/core/actions/draft.js +559 -581
- package/src/sap/fe/core/actions/draft.ts +593 -0
- package/src/sap/fe/core/actions/messageHandling.js +545 -435
- package/src/sap/fe/core/actions/messageHandling.ts +532 -0
- package/src/sap/fe/core/actions/nonDraft.js +17 -19
- package/src/sap/fe/core/actions/nonDraft.ts +12 -0
- package/src/sap/fe/core/actions/operations.js +1074 -1192
- package/src/sap/fe/core/actions/operations.ts +1162 -0
- package/src/sap/fe/core/actions/sticky.js +102 -105
- package/src/sap/fe/core/actions/sticky.ts +102 -0
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +3 -2
- package/src/sap/fe/core/controllerextensions/EditFlow.js +235 -264
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -2
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +288 -13
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +35 -25
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +79 -46
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +86 -10
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +109 -31
- package/src/sap/fe/core/controllerextensions/MassEdit.js +172 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +237 -104
- package/src/sap/fe/core/controllerextensions/PageReady.js +3 -3
- package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -8
- package/src/sap/fe/core/controllerextensions/Paginator.js +37 -9
- package/src/sap/fe/core/controllerextensions/Placeholder.js +8 -4
- package/src/sap/fe/core/controllerextensions/Routing.js +25 -5
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -2
- package/src/sap/fe/core/controllerextensions/Share.js +3 -2
- package/src/sap/fe/core/controllerextensions/SideEffects.js +9 -9
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -21
- package/src/sap/fe/core/controllerextensions/ViewState.js +36 -8
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -1
- package/src/sap/fe/core/controls/CommandExecution.js +3 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -2
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +112 -113
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +9 -5
- package/src/sap/fe/core/controls/FieldWrapper.js +18 -23
- package/src/sap/fe/core/controls/FilterBar.js +3 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +3 -7
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -2
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +2 -1
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +5 -4
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -2
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +106 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +79 -0
- package/src/sap/fe/core/converters/ConverterContext.js +14 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +14 -3
- package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +8 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +56 -32
- package/src/sap/fe/core/converters/ManifestWrapper.ts +24 -6
- package/src/sap/fe/core/converters/MetaModelConverter.js +76 -6
- package/src/sap/fe/core/converters/MetaModelConverter.ts +79 -15
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -2
- package/src/sap/fe/core/converters/annotations/DataField.js +3 -3
- package/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +85 -46
- package/src/sap/fe/core/converters/controls/Common/Action.js +16 -4
- package/src/sap/fe/core/converters/controls/Common/Action.ts +14 -5
- package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -3
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
- package/src/sap/fe/core/converters/controls/Common/Form.js +60 -19
- package/src/sap/fe/core/converters/controls/Common/Form.ts +66 -14
- package/src/sap/fe/core/converters/controls/Common/KPI.js +69 -4
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +72 -0
- package/src/sap/fe/core/converters/controls/Common/Table.js +503 -399
- package/src/sap/fe/core/converters/controls/Common/Table.ts +615 -480
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +527 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +655 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +489 -37
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +506 -58
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +2 -2
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +9 -15
- package/src/sap/fe/core/converters/helpers/Aggregation.js +18 -3
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +28 -5
- package/src/sap/fe/core/converters/helpers/ID.js +9 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +4 -0
- package/src/sap/fe/core/converters/helpers/IssueManager.js +7 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +6 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +4 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +3 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +29 -11
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +36 -20
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +13 -3
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
- package/src/sap/fe/core/formatters/TableFormatter.js +65 -31
- package/src/sap/fe/core/formatters/TableFormatter.ts +62 -30
- package/src/sap/fe/core/formatters/ValueFormatter.js +30 -5
- package/src/sap/fe/core/formatters/ValueFormatter.ts +30 -7
- package/src/sap/fe/core/fpm/Component.js +3 -2
- package/src/sap/fe/core/helpers/AppStartupHelper.js +359 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +391 -0
- package/src/sap/fe/core/helpers/BindingExpression.js +479 -464
- package/src/sap/fe/core/helpers/BindingExpression.ts +477 -483
- package/src/sap/fe/core/helpers/ClassSupport.js +27 -15
- package/src/sap/fe/core/helpers/ClassSupport.ts +31 -20
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +63 -59
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +56 -0
- package/src/sap/fe/core/helpers/EditState.js +81 -84
- package/src/sap/fe/core/helpers/EditState.ts +81 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +62 -48
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
- package/src/sap/fe/core/helpers/FPMHelper.js +52 -56
- package/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +210 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +32 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
- package/src/sap/fe/core/helpers/MassEditHelper.js +687 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +229 -174
- package/src/sap/fe/core/helpers/ModelHelper.ts +227 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +210 -132
- package/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +332 -313
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +330 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -67
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +4 -7
- package/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
- package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
- package/src/sap/fe/core/library.js +30 -3
- package/src/sap/fe/core/library.support.js +12 -5
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +62 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -0
- package/src/sap/fe/core/messagebundle.properties +72 -10
- package/src/sap/fe/core/messagebundle_ar.properties +41 -0
- package/src/sap/fe/core/messagebundle_bg.properties +41 -0
- package/src/sap/fe/core/messagebundle_ca.properties +41 -0
- package/src/sap/fe/core/messagebundle_cs.properties +42 -1
- package/src/sap/fe/core/messagebundle_cy.properties +41 -0
- package/src/sap/fe/core/messagebundle_da.properties +41 -0
- package/src/sap/fe/core/messagebundle_de.properties +41 -0
- package/src/sap/fe/core/messagebundle_el.properties +41 -0
- package/src/sap/fe/core/messagebundle_en.properties +41 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +41 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +35 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +41 -0
- package/src/sap/fe/core/messagebundle_es.properties +41 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +41 -0
- package/src/sap/fe/core/messagebundle_et.properties +41 -0
- package/src/sap/fe/core/messagebundle_fi.properties +41 -0
- package/src/sap/fe/core/messagebundle_fr.properties +46 -5
- package/src/sap/fe/core/messagebundle_fr_CA.properties +41 -0
- package/src/sap/fe/core/messagebundle_hi.properties +41 -0
- package/src/sap/fe/core/messagebundle_hr.properties +41 -0
- package/src/sap/fe/core/messagebundle_hu.properties +42 -1
- package/src/sap/fe/core/messagebundle_id.properties +45 -4
- package/src/sap/fe/core/messagebundle_it.properties +41 -0
- package/src/sap/fe/core/messagebundle_iw.properties +41 -0
- package/src/sap/fe/core/messagebundle_ja.properties +50 -9
- package/src/sap/fe/core/messagebundle_kk.properties +41 -0
- package/src/sap/fe/core/messagebundle_ko.properties +41 -0
- package/src/sap/fe/core/messagebundle_lt.properties +41 -0
- package/src/sap/fe/core/messagebundle_lv.properties +41 -0
- package/src/sap/fe/core/messagebundle_ms.properties +41 -0
- package/src/sap/fe/core/messagebundle_nl.properties +41 -0
- package/src/sap/fe/core/messagebundle_no.properties +41 -0
- package/src/sap/fe/core/messagebundle_pl.properties +41 -0
- package/src/sap/fe/core/messagebundle_pt.properties +43 -2
- package/src/sap/fe/core/messagebundle_pt_PT.properties +41 -0
- package/src/sap/fe/core/messagebundle_ro.properties +41 -0
- package/src/sap/fe/core/messagebundle_ru.properties +41 -0
- package/src/sap/fe/core/messagebundle_sh.properties +41 -0
- package/src/sap/fe/core/messagebundle_sk.properties +41 -0
- package/src/sap/fe/core/messagebundle_sl.properties +41 -0
- package/src/sap/fe/core/messagebundle_sv.properties +42 -1
- package/src/sap/fe/core/messagebundle_th.properties +41 -0
- package/src/sap/fe/core/messagebundle_tr.properties +41 -0
- package/src/sap/fe/core/messagebundle_uk.properties +41 -0
- package/src/sap/fe/core/messagebundle_vi.properties +41 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +41 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +41 -0
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +269 -202
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +4 -3
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +9 -5
- package/src/sap/fe/core/services/NavigationServiceFactory.js +406 -300
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +316 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +149 -81
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +80 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +987 -1166
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
- package/src/sap/fe/core/services/ShellServicesFactory.js +31 -2
- package/src/sap/fe/core/services/ShellServicesFactory.ts +45 -11
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +41 -84
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +56 -99
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +461 -478
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +453 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +10 -8
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
- package/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
- package/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
- package/src/sap/fe/core/templating/DataModelPathHelper.js +6 -24
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +10 -23
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +114 -0
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
- package/src/sap/fe/core/templating/EntitySetHelper.js +80 -7
- package/src/sap/fe/core/templating/EntitySetHelper.ts +42 -2
- package/src/sap/fe/core/templating/FieldControlHelper.js +8 -8
- package/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
- package/src/sap/fe/core/templating/FilterHelper.js +139 -70
- package/src/sap/fe/core/templating/FilterHelper.ts +140 -70
- package/src/sap/fe/core/templating/PropertyHelper.js +2 -2
- package/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +45 -113
- package/src/sap/fe/core/templating/UIFormatters.ts +39 -76
- package/src/sap/fe/core/type/Email.js +1 -1
- package/src/sap/fe/core/type/Email.ts +4 -6
- package/ui5.yaml +0 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SelectOptionType, SelectionVariantTypeTypes } from "@sap-ux/vocabularies-types/dist/generated/UI";
|
|
1
|
+
import { SelectOptionType, SelectionVariantTypeTypes, SelectionRangeTypeTypes } from "@sap-ux/vocabularies-types/dist/generated/UI";
|
|
2
2
|
import { createCondition } from "sap/ui/mdc/condition/Condition";
|
|
3
|
-
import
|
|
4
|
-
|
|
3
|
+
import ConditionValidated from "sap/ui/mdc/enum/ConditionValidated";
|
|
4
|
+
import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
5
5
|
export type FilterConditions = {
|
|
6
6
|
operator: string;
|
|
7
7
|
values: Array<string>;
|
|
@@ -44,6 +44,28 @@ const oExcludeMap: Record<string, any> = {
|
|
|
44
44
|
"EQ": "NE"
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
+
export function _getDateTimeOffsetCompliantValue(sValue: any): string | undefined {
|
|
48
|
+
let oValue;
|
|
49
|
+
if (sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2})\+(\d{1,4})/)) {
|
|
50
|
+
oValue = sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2})\+(\d{1,4})/)[0];
|
|
51
|
+
} else if (sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2})/)) {
|
|
52
|
+
oValue = sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2})/)[0] + "+0000";
|
|
53
|
+
} else if (sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/)) {
|
|
54
|
+
oValue = sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/)[0] + "T00:00:00+0000";
|
|
55
|
+
} else if (sValue.indexOf("Z") === sValue.length - 1) {
|
|
56
|
+
oValue = sValue.split("Z")[0] + "+0100";
|
|
57
|
+
} else {
|
|
58
|
+
oValue = undefined;
|
|
59
|
+
}
|
|
60
|
+
return oValue;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function _getDateCompliantValue(sValue: any): string | undefined {
|
|
64
|
+
return sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/)
|
|
65
|
+
? sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/)[0]
|
|
66
|
+
: sValue.match(/^(\d{8})/) && sValue.match(/^(\d{8})/)[0];
|
|
67
|
+
}
|
|
68
|
+
|
|
47
69
|
/**
|
|
48
70
|
* Method to get the compliant value type based on the data type.
|
|
49
71
|
*
|
|
@@ -52,37 +74,39 @@ const oExcludeMap: Record<string, any> = {
|
|
|
52
74
|
* @returns Value to be propagated to the condition.
|
|
53
75
|
*/
|
|
54
76
|
|
|
55
|
-
export function getTypeCompliantValue(sValue: any, sType: string) {
|
|
77
|
+
export function getTypeCompliantValue(sValue: any, sType: string): string | undefined {
|
|
56
78
|
let oValue;
|
|
57
|
-
if (aValidTypes.indexOf(sType)
|
|
58
|
-
|
|
59
|
-
|
|
79
|
+
if (aValidTypes.indexOf(sType) === -1) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
oValue = sValue;
|
|
83
|
+
switch (sType) {
|
|
84
|
+
case "Edm.Boolean":
|
|
60
85
|
oValue = sValue === "true" || (sValue === "false" ? false : undefined);
|
|
61
|
-
|
|
86
|
+
break;
|
|
87
|
+
case "Edm.Double":
|
|
88
|
+
case "Edm.Single":
|
|
62
89
|
oValue = isNaN(sValue) ? undefined : parseFloat(sValue);
|
|
63
|
-
|
|
90
|
+
break;
|
|
91
|
+
case "Edm.Byte":
|
|
92
|
+
case "Edm.Int16":
|
|
93
|
+
case "Edm.Int32":
|
|
94
|
+
case "Edm.SByte":
|
|
64
95
|
oValue = isNaN(sValue) ? undefined : parseInt(sValue, 10);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
oValue = sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2})/)[0] + "+0000";
|
|
74
|
-
} else if (sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/)) {
|
|
75
|
-
oValue = sValue.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/)[0] + "T00:00:00+0000";
|
|
76
|
-
} else if (sValue.indexOf("Z") === sValue.length - 1) {
|
|
77
|
-
oValue = sValue.split("Z")[0] + "+0100";
|
|
78
|
-
} else {
|
|
79
|
-
oValue = undefined;
|
|
80
|
-
}
|
|
81
|
-
} else if (sType === "Edm.TimeOfDay") {
|
|
96
|
+
break;
|
|
97
|
+
case "Edm.Date":
|
|
98
|
+
oValue = _getDateCompliantValue(sValue);
|
|
99
|
+
break;
|
|
100
|
+
case "Edm.DateTimeOffset":
|
|
101
|
+
oValue = _getDateTimeOffsetCompliantValue(sValue);
|
|
102
|
+
break;
|
|
103
|
+
case "Edm.TimeOfDay":
|
|
82
104
|
oValue = sValue.match(/(\d{1,2}):(\d{1,2}):(\d{1,2})/) ? sValue.match(/(\d{1,2}):(\d{1,2}):(\d{1,2})/)[0] : undefined;
|
|
83
|
-
|
|
105
|
+
break;
|
|
106
|
+
default:
|
|
84
107
|
}
|
|
85
|
-
|
|
108
|
+
|
|
109
|
+
return oValue === null ? undefined : oValue;
|
|
86
110
|
}
|
|
87
111
|
|
|
88
112
|
/**
|
|
@@ -169,51 +193,97 @@ export function getOperator(sOperator: string): string {
|
|
|
169
193
|
return sOperator.indexOf("/") > 0 ? sOperator.split("/")[1] : sOperator;
|
|
170
194
|
}
|
|
171
195
|
|
|
196
|
+
function _buildConditionsFromSelectionRanges(
|
|
197
|
+
Ranges: SelectionRangeTypeTypes[],
|
|
198
|
+
oProperty: Record<string, object>,
|
|
199
|
+
sPropertyName: string,
|
|
200
|
+
getCustomConditions?: Function
|
|
201
|
+
): any[] {
|
|
202
|
+
const aConditions: any[] = [];
|
|
203
|
+
Ranges?.forEach((Range: any) => {
|
|
204
|
+
const oCondition = getCustomConditions ? getCustomConditions(Range, oProperty, sPropertyName) : getConditions(Range, oProperty);
|
|
205
|
+
if (oCondition) {
|
|
206
|
+
aConditions.push(oCondition);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
return aConditions;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
function _buildFiltersConditionsFromSelectOption(
|
|
213
|
+
oSelectOption: SelectOptionType,
|
|
214
|
+
oMetaModel: ODataMetaModel,
|
|
215
|
+
sEntitySetPath: string,
|
|
216
|
+
getCustomConditions?: Function
|
|
217
|
+
): Record<string, FilterConditions[]> {
|
|
218
|
+
const propertyName: any = oSelectOption.PropertyName,
|
|
219
|
+
oFilterConditions: Record<string, FilterConditions[]> = {},
|
|
220
|
+
sPropertyName: string = propertyName.value || propertyName.$PropertyPath,
|
|
221
|
+
Ranges: SelectionRangeTypeTypes[] = oSelectOption.Ranges;
|
|
222
|
+
let sNavigationPropertyName: string | undefined, sTargetPropertyName: string | undefined, aValidProperties: Record<string, object>;
|
|
223
|
+
if (sPropertyName && sPropertyName.lastIndexOf("/") > -1) {
|
|
224
|
+
sNavigationPropertyName = sPropertyName.substring(0, sPropertyName.lastIndexOf("/") + 1);
|
|
225
|
+
sTargetPropertyName = sPropertyName.replace(sNavigationPropertyName, "");
|
|
226
|
+
aValidProperties = oMetaModel.getObject(sEntitySetPath + "/" + sNavigationPropertyName);
|
|
227
|
+
} else {
|
|
228
|
+
aValidProperties = oMetaModel.getObject(sEntitySetPath + "/");
|
|
229
|
+
sTargetPropertyName = sPropertyName;
|
|
230
|
+
}
|
|
231
|
+
for (const key in aValidProperties) {
|
|
232
|
+
let aConditions: any[] = [];
|
|
233
|
+
if (sTargetPropertyName === key) {
|
|
234
|
+
const oValidProperty = aValidProperties[key] as any;
|
|
235
|
+
aConditions = (aConditions || []).concat(
|
|
236
|
+
_buildConditionsFromSelectionRanges(Ranges, oValidProperty, sPropertyName, getCustomConditions)
|
|
237
|
+
);
|
|
238
|
+
if (aConditions.length) {
|
|
239
|
+
oFilterConditions[sPropertyName] = (oFilterConditions[sPropertyName] || []).concat(aConditions);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return oFilterConditions;
|
|
244
|
+
}
|
|
245
|
+
|
|
172
246
|
export function getFiltersConditionsFromSelectionVariant(
|
|
173
|
-
|
|
247
|
+
sEntitySetPath: string,
|
|
248
|
+
oMetaModel: ODataMetaModel,
|
|
174
249
|
selectionVariant: SelectionVariantTypeTypes,
|
|
175
250
|
getCustomConditions?: Function
|
|
176
251
|
): Record<string, FilterConditions[]> {
|
|
177
|
-
|
|
178
|
-
if (selectionVariant) {
|
|
179
|
-
|
|
180
|
-
const aParameters = selectionVariant.Parameters;
|
|
181
|
-
const aValidProperties = entityTypeProperties;
|
|
182
|
-
aSelectOptions?.forEach((selectOption: SelectOptionType) => {
|
|
183
|
-
const propertyName: any = selectOption.PropertyName;
|
|
184
|
-
const sPropertyName: string = propertyName.value || propertyName.$PropertyPath;
|
|
185
|
-
const Ranges: any = selectOption.Ranges;
|
|
186
|
-
for (const key in aValidProperties) {
|
|
187
|
-
if (sPropertyName === key) {
|
|
188
|
-
const oValidProperty = aValidProperties[key] as any;
|
|
189
|
-
const aConditions: any[] = [];
|
|
190
|
-
Ranges?.forEach((Range: any) => {
|
|
191
|
-
const oCondition = getCustomConditions
|
|
192
|
-
? getCustomConditions(Range, oValidProperty, sPropertyName)
|
|
193
|
-
: getConditions(Range, oValidProperty);
|
|
194
|
-
aConditions.push(oCondition);
|
|
195
|
-
if (aConditions.length) {
|
|
196
|
-
ofilterConditions[sPropertyName] = (ofilterConditions[sPropertyName] || []).concat(aConditions);
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
aParameters?.forEach((parameter: any) => {
|
|
203
|
-
const sPropertyPath = parameter.PropertyName.value || parameter.PropertyName.$PropertyPath;
|
|
204
|
-
const oCondition: any = getCustomConditions
|
|
205
|
-
? { operator: "EQ", value1: parameter.PropertyValue, value2: null, path: sPropertyPath, isParameter: true }
|
|
206
|
-
: {
|
|
207
|
-
operator: "EQ",
|
|
208
|
-
values: [parameter.PropertyValue],
|
|
209
|
-
isEmpty: null,
|
|
210
|
-
validated: ConditionValidated.Validated,
|
|
211
|
-
isParameter: true
|
|
212
|
-
};
|
|
213
|
-
ofilterConditions[sPropertyPath] = [oCondition];
|
|
214
|
-
});
|
|
252
|
+
let oFilterConditions: Record<string, FilterConditions[]> = {};
|
|
253
|
+
if (!selectionVariant) {
|
|
254
|
+
return oFilterConditions;
|
|
215
255
|
}
|
|
216
|
-
|
|
256
|
+
const aSelectOptions = selectionVariant.SelectOptions,
|
|
257
|
+
aParameters = selectionVariant.Parameters;
|
|
258
|
+
aSelectOptions?.forEach((selectOption: SelectOptionType) => {
|
|
259
|
+
const propertyName: any = selectOption.PropertyName,
|
|
260
|
+
sPropertyName: string = propertyName.value || propertyName.$PropertyPath;
|
|
261
|
+
if (Object.keys(oFilterConditions).includes(sPropertyName)) {
|
|
262
|
+
oFilterConditions[sPropertyName] = oFilterConditions[sPropertyName].concat(
|
|
263
|
+
_buildFiltersConditionsFromSelectOption(selectOption, oMetaModel, sEntitySetPath, getCustomConditions)[sPropertyName]
|
|
264
|
+
);
|
|
265
|
+
} else {
|
|
266
|
+
oFilterConditions = {
|
|
267
|
+
...oFilterConditions,
|
|
268
|
+
..._buildFiltersConditionsFromSelectOption(selectOption, oMetaModel, sEntitySetPath, getCustomConditions)
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
aParameters?.forEach((parameter: any) => {
|
|
273
|
+
const sPropertyPath = parameter.PropertyName.value || parameter.PropertyName.$PropertyPath;
|
|
274
|
+
const oCondition: any = getCustomConditions
|
|
275
|
+
? { operator: "EQ", value1: parameter.PropertyValue, value2: null, path: sPropertyPath, isParameter: true }
|
|
276
|
+
: {
|
|
277
|
+
operator: "EQ",
|
|
278
|
+
values: [parameter.PropertyValue],
|
|
279
|
+
isEmpty: null,
|
|
280
|
+
validated: ConditionValidated.Validated,
|
|
281
|
+
isParameter: true
|
|
282
|
+
};
|
|
283
|
+
oFilterConditions[sPropertyPath] = [oCondition];
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
return oFilterConditions;
|
|
217
287
|
}
|
|
218
288
|
|
|
219
289
|
export function getConditions(Range: any, oValidProperty: any) {
|
|
@@ -291,7 +361,7 @@ export function getFilterConditions(oContext: any, filterConditions: any): Recor
|
|
|
291
361
|
const defaultFilters = getDefaultValueFilters(oContext, entityTypeProperties);
|
|
292
362
|
const defaultSemanticDateFilters = getDefaultSemanticDateFilters(oContext, entityTypeProperties, defaultSemanticDates);
|
|
293
363
|
if (selectionVariant) {
|
|
294
|
-
filterConditions = getFiltersConditionsFromSelectionVariant(
|
|
364
|
+
filterConditions = getFiltersConditionsFromSelectionVariant(entitySetPath, oMetaModel, selectionVariant);
|
|
295
365
|
} else if (defaultFilters) {
|
|
296
366
|
filterConditions = defaultFilters;
|
|
297
367
|
}
|
|
@@ -304,7 +374,7 @@ export function getFilterConditions(oContext: any, filterConditions: any): Recor
|
|
|
304
374
|
if (editStateFilter) {
|
|
305
375
|
filterConditions = { ...filterConditions, ...editStateFilter };
|
|
306
376
|
}
|
|
307
|
-
return (Object.keys(filterConditions).length > 0 ? JSON.stringify(filterConditions) : undefined) as any;
|
|
377
|
+
return (Object.keys(filterConditions).length > 0 ? JSON.stringify(filterConditions).replace(/([\{\}])/g, "\\$1") : undefined) as any;
|
|
308
378
|
}
|
|
309
379
|
|
|
310
380
|
getFilterConditions.requiresIContext = true;
|
|
@@ -141,7 +141,7 @@ sap.ui.define([], function () {
|
|
|
141
141
|
* Retrieves the associated currency property for that property if it exists.
|
|
142
142
|
*
|
|
143
143
|
* @param {Property} oProperty The target property
|
|
144
|
-
* @returns {Property | undefined} The unit property if it exists
|
|
144
|
+
* @returns {Property | undefined} The unit property, if it exists
|
|
145
145
|
*/
|
|
146
146
|
|
|
147
147
|
|
|
@@ -300,4 +300,4 @@ sap.ui.define([], function () {
|
|
|
300
300
|
_exports.hasCurrency = hasCurrency;
|
|
301
301
|
return _exports;
|
|
302
302
|
}, false);
|
|
303
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlByb3BlcnR5SGVscGVyLnRzIl0sIm5hbWVzIjpbImlzUHJvcGVydHkiLCJwcm9wZXJ0eSIsImhhc093blByb3BlcnR5IiwiX3R5cGUiLCJpc0NvbXB1dGVkIiwib1Byb3BlcnR5IiwiYW5ub3RhdGlvbnMiLCJDb3JlIiwiQ29tcHV0ZWQiLCJ2YWx1ZU9mIiwiaXNJbW11dGFibGUiLCJJbW11dGFibGUiLCJpc0tleSIsImhhc0RhdGVUeXBlIiwiaW5kZXhPZiIsInR5cGUiLCJnZXRMYWJlbCIsIkNvbW1vbiIsIkxhYmVsIiwidG9TdHJpbmciLCJoYXNTZW1hbnRpY09iamVjdCIsIlNlbWFudGljT2JqZWN0IiwiaXNQYXRoRXhwcmVzc2lvbiIsImV4cHJlc3Npb24iLCJ1bmRlZmluZWQiLCJpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiIsImdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkiLCJNZWFzdXJlcyIsIlVuaXQiLCIkdGFyZ2V0IiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGgiLCJwYXRoIiwiZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkiLCJJU09DdXJyZW5jeSIsImdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5UGF0aCIsImdldEFzc29jaWF0ZWRUZXh0UHJvcGVydHlQYXRoIiwiVGV4dCIsImdldFRhcmdldFZhbHVlT25EYXRhUG9pbnQiLCJzVGFyZ2V0VmFsdWUiLCJVSSIsIkRhdGFGaWVsZERlZmF1bHQiLCJUYXJnZXQiLCJUYXJnZXRWYWx1ZSIsImhhc1ZhbHVlSGVscCIsIlZhbHVlTGlzdCIsIlZhbHVlTGlzdFJlZmVyZW5jZXMiLCJWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMiLCJWYWx1ZUxpc3RNYXBwaW5nIiwiaGFzVmFsdWVIZWxwV2l0aEZpeGVkVmFsdWVzIiwiaGFzVmFsdWVMaXN0Rm9yVmFsaWRhdGlvbiIsIlZhbHVlTGlzdEZvclZhbGlkYXRpb24iLCJpc1VuaXQiLCJJc1VuaXQiLCJoYXNVbml0IiwiaXND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QUFDTyxNQUFNOEIsVUFBVSxHQUFHLFVBQVNqRCxTQUFULEVBQXVDO0FBQUE7O0FBQ2hFLFdBQU8sQ0FBQyw2QkFBQ0EsU0FBUyxDQUFDQyxXQUFYLCtFQUFDLHdCQUF1QlcsTUFBeEIsK0VBQUMsd0JBQStCc0MsVUFBaEMsb0RBQUMsd0JBQTJDOUMsT0FBM0MsRUFBRCxDQUFSO0FBQ0EsR0FGTTtBQUlQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxNQUFNK0MsV0FBVyxHQUFHLFVBQVNuRCxTQUFULEVBQXVDO0FBQUE7O0FBQ2pFLFdBQU8sNEJBQUFBLFNBQVMsQ0FBQ0MsV0FBViwrR0FBdUJxQixRQUF2QixvRkFBaUNNLFdBQWpDLE1BQWlEVCxTQUF4RDtBQUNBLEdBRk0iLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuXG4vKipcbiAqIElkZW50aWZ5IGlmIHRoZSBnaXZlbiBwcm9wZXJ0eSBwYXNzZWQgaXMgYSBcIlByb3BlcnR5XCIgKGhhcyBhIF90eXBlKS5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBwcm9wZXJ0eSBBIHRhcmdldCBwcm9wZXJ0eSB0byBldmFsdWF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IFZhbGlkYXRlIHRoYXQgcHJvcGVydHkgaXMgYSBQcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9wZXJ0eShwcm9wZXJ0eTogYW55KTogcHJvcGVydHkgaXMgUHJvcGVydHkge1xuXHRyZXR1cm4gcHJvcGVydHkgJiYgKHByb3BlcnR5IGFzIFByb3BlcnR5KS5oYXNPd25Qcm9wZXJ0eShcIl90eXBlXCIpICYmIChwcm9wZXJ0eSBhcyBQcm9wZXJ0eSkuX3R5cGUgPT09IFwiUHJvcGVydHlcIjtcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBoYXMgdGhlIENvcmUuQ29tcHV0ZWQgYW5ub3RhdGlvbiBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIHByb3BlcnR5IGlzIGNvbXB1dGVkXG4gKi9cbmV4cG9ydCBjb25zdCBpc0NvbXB1dGVkID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvcmU/LkNvbXB1dGVkPy52YWx1ZU9mKCk7XG59O1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyB0aGUgQ29yZS5JbW11dGFibGUgYW5ub3RhdGlvbiBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgaXQncyBpbW11dGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzSW1tdXRhYmxlID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvcmU/LkltbXV0YWJsZT8udmFsdWVPZigpO1xufTtcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBpcyBhIGtleSBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgaXQncyBhIGtleVxuICovXG5leHBvcnQgY29uc3QgaXNLZXkgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAhIW9Qcm9wZXJ0eS5pc0tleTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIGRhdGUgdGltZSBvciBub3QuXG4gKlxuICogQHBhcmFtIG9Qcm9wZXJ0eVxuICogQHJldHVybnMgYHRydWVgIGlmIGl0IGlzIG9mIHR5cGUgZGF0ZSAvIGRhdGV0aW1lIC8gZGF0ZXRpbWVvZmZzZXRcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc0RhdGVUeXBlID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gW1wiRWRtLkRhdGVcIiwgXCJFZG0uRGF0ZVRpbWVcIiwgXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIl0uaW5kZXhPZihvUHJvcGVydHkudHlwZSkgIT09IC0xO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgbGFiZWwgYW5ub3RhdGlvbi5cbiAqXG4gKiBAcGFyYW0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIFRoZSBsYWJlbCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGdldExhYmVsID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IHN0cmluZyB7XG5cdHJldHVybiBvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWw/LnRvU3RyaW5nKCkgfHwgXCJcIjtcbn07XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgc2VtYW50aWMgb2JqZWN0IGRlZmluZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0IGhhcyBhIHNlbWFudGljIG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgaGFzU2VtYW50aWNPYmplY3QgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5TZW1hbnRpY09iamVjdDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhFeHByZXNzaW9uID0gZnVuY3Rpb248VD4oZXhwcmVzc2lvbjogYW55KTogZXhwcmVzc2lvbiBpcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VD4ge1xuXHRyZXR1cm4gISFleHByZXNzaW9uICYmIGV4cHJlc3Npb24udHlwZSAhPT0gdW5kZWZpbmVkICYmIGV4cHJlc3Npb24udHlwZSA9PT0gXCJQYXRoXCI7XG59O1xuZXhwb3J0IGNvbnN0IGlzQW5ub3RhdGlvblBhdGhFeHByZXNzaW9uID0gZnVuY3Rpb248VD4oZXhwcmVzc2lvbjogYW55KTogZXhwcmVzc2lvbiBpcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VD4ge1xuXHRyZXR1cm4gISFleHByZXNzaW9uICYmIGV4cHJlc3Npb24udHlwZSAhPT0gdW5kZWZpbmVkICYmIGV4cHJlc3Npb24udHlwZSA9PT0gXCJBbm5vdGF0aW9uUGF0aFwiO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHVuaXQgcHJvcGVydHkgYXNzb2NpYXRlZCB0byB0aGUgcHJvcGVydHksIGlmIGFwcGxpY2FibGUuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtQcm9wZXJ0eSB8IHVuZGVmaW5lZH0gVGhlIHVuaXQgcHJvcGVydHksIGlmIGl0IGV4aXN0c1xuICovXG5leHBvcnQgY29uc3QgZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eT8uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0KVxuXHRcdD8gKChvUHJvcGVydHkuYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0LiR0YXJnZXQgYXMgdW5rbm93bikgYXMgUHJvcGVydHkpXG5cdFx0OiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGggPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5Py5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LlVuaXQpID8gb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdC5wYXRoIDogdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGFzc29jaWF0ZWQgY3VycmVuY3kgcHJvcGVydHkgZm9yIHRoYXQgcHJvcGVydHkgaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7UHJvcGVydHkgfCB1bmRlZmluZWR9IFRoZSB1bml0IHByb3BlcnR5IGlmIGl0IGV4aXN0c1xuICovXG5leHBvcnQgY29uc3QgZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogUHJvcGVydHkgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gaXNQYXRoRXhwcmVzc2lvbihvUHJvcGVydHk/LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kpXG5cdFx0PyAoKG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LklTT0N1cnJlbmN5LiR0YXJnZXQgYXMgdW5rbm93bikgYXMgUHJvcGVydHkpXG5cdFx0OiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHlQYXRoID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eT8uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5JU09DdXJyZW5jeSkgPyBvUHJvcGVydHkuYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5JU09DdXJyZW5jeS5wYXRoIDogdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIENvbW1vbi5UZXh0IHByb3BlcnR5IHBhdGggaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSBUaGUgQ29tbW9uLlRleHQgcHJvcGVydHkgcGF0aCBvciB1bmRlZmluZWQgaWYgaXQgZG9lcyBub3QgZXhpdFxuICovXG5leHBvcnQgY29uc3QgZ2V0QXNzb2NpYXRlZFRleHRQcm9wZXJ0eVBhdGggPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlRleHQpID8gb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlRleHQucGF0aCA6IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBUYXJnZXRWYWx1ZSBmcm9tIGRhdGFwb2ludC5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgdGhlIHRhcmdldCBwcm9wZXJ0eS9kYXRhUG9pbnRcbiAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IHRoZSBUYXJnZXRWYWx1ZVxuICovXG5cbmV4cG9ydCBjb25zdCBnZXRUYXJnZXRWYWx1ZU9uRGF0YVBvaW50ID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRjb25zdCBzVGFyZ2V0VmFsdWUgPVxuXHRcdG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVUk/LkRhdGFGaWVsZERlZmF1bHQ/LlRhcmdldD8uJHRhcmdldD8uVGFyZ2V0VmFsdWU/LnRvU3RyaW5nKCkgfHwgb1Byb3BlcnR5LlRhcmdldFZhbHVlPy50b1N0cmluZygpO1xuXHRyZXR1cm4gc1RhcmdldFZhbHVlID8gc1RhcmdldFZhbHVlIDogdW5kZWZpbmVkO1xufTtcbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgdmFsdWUgaGVscCBhbm5vdGF0aW9uIGRlZmluZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0IGhhcyBhIHZhbHVlIGhlbHBcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1ZhbHVlSGVscCA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuIChcblx0XHQhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3QgfHxcblx0XHQhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RSZWZlcmVuY2VzIHx8XG5cdFx0ISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzIHx8XG5cdFx0ISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0TWFwcGluZ1xuXHQpO1xufTtcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBoYXMgYSB2YWx1ZSBoZWxwIHdpdGggZml4ZWQgdmFsdWUgYW5ub3RhdGlvbiBkZWZpbmVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgVGhlIHRhcmdldCBwcm9wZXJ0eVxuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiBpdCBoYXMgYSB2YWx1ZSBoZWxwXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNWYWx1ZUhlbHBXaXRoRml4ZWRWYWx1ZXMgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXM/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgdmFsdWUgaGVscCBmb3IgdmFsaWRhdGlvbiBhbm5vdGF0aW9uIGRlZmluZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0IGhhcyBhIHZhbHVlIGhlbHBcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1ZhbHVlTGlzdEZvclZhbGlkYXRpb24gPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiBvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0Rm9yVmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgcHJvcGVydHkgaXMgYSB1bml0IHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSBvUHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgaXQgaXMgYSB1bml0XG4gKi9cbmV4cG9ydCBjb25zdCBpc1VuaXQgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5Jc1VuaXQ/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIHVuaXQgcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIG9Qcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBpdCBoYXMgYSB1bml0XG4gKi9cblxuZXhwb3J0IGNvbnN0IGhhc1VuaXQgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiBvUHJvcGVydHkuYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0ICE9PSB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBpcyBhIGN1cnJlbmN5IHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSBvUHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgaXQgaXMgYSBjdXJyZW5jeVxuICovXG5leHBvcnQgY29uc3QgaXNDdXJyZW5jeSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuICEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LklzQ3VycmVuY3k/LnZhbHVlT2YoKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIGN1cnJlbmN5IHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSBvUHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgaXQgaGFzIGEgY3VycmVuY3lcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc0N1cnJlbmN5ID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kgIT09IHVuZGVmaW5lZDtcbn07XG4iXX0=
|
|
303
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlByb3BlcnR5SGVscGVyLnRzIl0sIm5hbWVzIjpbImlzUHJvcGVydHkiLCJwcm9wZXJ0eSIsImhhc093blByb3BlcnR5IiwiX3R5cGUiLCJpc0NvbXB1dGVkIiwib1Byb3BlcnR5IiwiYW5ub3RhdGlvbnMiLCJDb3JlIiwiQ29tcHV0ZWQiLCJ2YWx1ZU9mIiwiaXNJbW11dGFibGUiLCJJbW11dGFibGUiLCJpc0tleSIsImhhc0RhdGVUeXBlIiwiaW5kZXhPZiIsInR5cGUiLCJnZXRMYWJlbCIsIkNvbW1vbiIsIkxhYmVsIiwidG9TdHJpbmciLCJoYXNTZW1hbnRpY09iamVjdCIsIlNlbWFudGljT2JqZWN0IiwiaXNQYXRoRXhwcmVzc2lvbiIsImV4cHJlc3Npb24iLCJ1bmRlZmluZWQiLCJpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiIsImdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkiLCJNZWFzdXJlcyIsIlVuaXQiLCIkdGFyZ2V0IiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGgiLCJwYXRoIiwiZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkiLCJJU09DdXJyZW5jeSIsImdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5UGF0aCIsImdldEFzc29jaWF0ZWRUZXh0UHJvcGVydHlQYXRoIiwiVGV4dCIsImdldFRhcmdldFZhbHVlT25EYXRhUG9pbnQiLCJzVGFyZ2V0VmFsdWUiLCJVSSIsIkRhdGFGaWVsZERlZmF1bHQiLCJUYXJnZXQiLCJUYXJnZXRWYWx1ZSIsImhhc1ZhbHVlSGVscCIsIlZhbHVlTGlzdCIsIlZhbHVlTGlzdFJlZmVyZW5jZXMiLCJWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMiLCJWYWx1ZUxpc3RNYXBwaW5nIiwiaGFzVmFsdWVIZWxwV2l0aEZpeGVkVmFsdWVzIiwiaGFzVmFsdWVMaXN0Rm9yVmFsaWRhdGlvbiIsIlZhbHVlTGlzdEZvclZhbGlkYXRpb24iLCJpc1VuaXQiLCJJc1VuaXQiLCJoYXNVbml0IiwiaXND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QUFDTyxNQUFNOEIsVUFBVSxHQUFHLFVBQVNqRCxTQUFULEVBQXVDO0FBQUE7O0FBQ2hFLFdBQU8sQ0FBQyw2QkFBQ0EsU0FBUyxDQUFDQyxXQUFYLCtFQUFDLHdCQUF1QlcsTUFBeEIsK0VBQUMsd0JBQStCc0MsVUFBaEMsb0RBQUMsd0JBQTJDOUMsT0FBM0MsRUFBRCxDQUFSO0FBQ0EsR0FGTTtBQUlQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxNQUFNK0MsV0FBVyxHQUFHLFVBQVNuRCxTQUFULEVBQXVDO0FBQUE7O0FBQ2pFLFdBQU8sNEJBQUFBLFNBQVMsQ0FBQ0MsV0FBViwrR0FBdUJxQixRQUF2QixvRkFBaUNNLFdBQWpDLE1BQWlEVCxTQUF4RDtBQUNBLEdBRk0iLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuXG4vKipcbiAqIElkZW50aWZ5IGlmIHRoZSBnaXZlbiBwcm9wZXJ0eSBwYXNzZWQgaXMgYSBcIlByb3BlcnR5XCIgKGhhcyBhIF90eXBlKS5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBwcm9wZXJ0eSBBIHRhcmdldCBwcm9wZXJ0eSB0byBldmFsdWF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IFZhbGlkYXRlIHRoYXQgcHJvcGVydHkgaXMgYSBQcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9wZXJ0eShwcm9wZXJ0eTogYW55KTogcHJvcGVydHkgaXMgUHJvcGVydHkge1xuXHRyZXR1cm4gcHJvcGVydHkgJiYgKHByb3BlcnR5IGFzIFByb3BlcnR5KS5oYXNPd25Qcm9wZXJ0eShcIl90eXBlXCIpICYmIChwcm9wZXJ0eSBhcyBQcm9wZXJ0eSkuX3R5cGUgPT09IFwiUHJvcGVydHlcIjtcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBoYXMgdGhlIENvcmUuQ29tcHV0ZWQgYW5ub3RhdGlvbiBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIHByb3BlcnR5IGlzIGNvbXB1dGVkXG4gKi9cbmV4cG9ydCBjb25zdCBpc0NvbXB1dGVkID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvcmU/LkNvbXB1dGVkPy52YWx1ZU9mKCk7XG59O1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyB0aGUgQ29yZS5JbW11dGFibGUgYW5ub3RhdGlvbiBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgaXQncyBpbW11dGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzSW1tdXRhYmxlID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvcmU/LkltbXV0YWJsZT8udmFsdWVPZigpO1xufTtcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBpcyBhIGtleSBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgaXQncyBhIGtleVxuICovXG5leHBvcnQgY29uc3QgaXNLZXkgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAhIW9Qcm9wZXJ0eS5pc0tleTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIGRhdGUgdGltZSBvciBub3QuXG4gKlxuICogQHBhcmFtIG9Qcm9wZXJ0eVxuICogQHJldHVybnMgYHRydWVgIGlmIGl0IGlzIG9mIHR5cGUgZGF0ZSAvIGRhdGV0aW1lIC8gZGF0ZXRpbWVvZmZzZXRcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc0RhdGVUeXBlID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gW1wiRWRtLkRhdGVcIiwgXCJFZG0uRGF0ZVRpbWVcIiwgXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIl0uaW5kZXhPZihvUHJvcGVydHkudHlwZSkgIT09IC0xO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgbGFiZWwgYW5ub3RhdGlvbi5cbiAqXG4gKiBAcGFyYW0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIFRoZSBsYWJlbCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGdldExhYmVsID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IHN0cmluZyB7XG5cdHJldHVybiBvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWw/LnRvU3RyaW5nKCkgfHwgXCJcIjtcbn07XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgc2VtYW50aWMgb2JqZWN0IGRlZmluZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIGl0IGhhcyBhIHNlbWFudGljIG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgaGFzU2VtYW50aWNPYmplY3QgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5TZW1hbnRpY09iamVjdDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhFeHByZXNzaW9uID0gZnVuY3Rpb248VD4oZXhwcmVzc2lvbjogYW55KTogZXhwcmVzc2lvbiBpcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VD4ge1xuXHRyZXR1cm4gISFleHByZXNzaW9uICYmIGV4cHJlc3Npb24udHlwZSAhPT0gdW5kZWZpbmVkICYmIGV4cHJlc3Npb24udHlwZSA9PT0gXCJQYXRoXCI7XG59O1xuZXhwb3J0IGNvbnN0IGlzQW5ub3RhdGlvblBhdGhFeHByZXNzaW9uID0gZnVuY3Rpb248VD4oZXhwcmVzc2lvbjogYW55KTogZXhwcmVzc2lvbiBpcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VD4ge1xuXHRyZXR1cm4gISFleHByZXNzaW9uICYmIGV4cHJlc3Npb24udHlwZSAhPT0gdW5kZWZpbmVkICYmIGV4cHJlc3Npb24udHlwZSA9PT0gXCJBbm5vdGF0aW9uUGF0aFwiO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHVuaXQgcHJvcGVydHkgYXNzb2NpYXRlZCB0byB0aGUgcHJvcGVydHksIGlmIGFwcGxpY2FibGUuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtQcm9wZXJ0eSB8IHVuZGVmaW5lZH0gVGhlIHVuaXQgcHJvcGVydHksIGlmIGl0IGV4aXN0c1xuICovXG5leHBvcnQgY29uc3QgZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eT8uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0KVxuXHRcdD8gKChvUHJvcGVydHkuYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0LiR0YXJnZXQgYXMgdW5rbm93bikgYXMgUHJvcGVydHkpXG5cdFx0OiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGggPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5Py5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LlVuaXQpID8gb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdC5wYXRoIDogdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGFzc29jaWF0ZWQgY3VycmVuY3kgcHJvcGVydHkgZm9yIHRoYXQgcHJvcGVydHkgaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7UHJvcGVydHl9IG9Qcm9wZXJ0eSBUaGUgdGFyZ2V0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7UHJvcGVydHkgfCB1bmRlZmluZWR9IFRoZSB1bml0IHByb3BlcnR5LCBpZiBpdCBleGlzdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5ID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IFByb3BlcnR5IHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5Py5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LklTT0N1cnJlbmN5KVxuXHRcdD8gKChvUHJvcGVydHkuYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5JU09DdXJyZW5jeS4kdGFyZ2V0IGFzIHVua25vd24pIGFzIFByb3BlcnR5KVxuXHRcdDogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5UGF0aCA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gaXNQYXRoRXhwcmVzc2lvbihvUHJvcGVydHk/LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kpID8gb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kucGF0aCA6IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBDb21tb24uVGV4dCBwcm9wZXJ0eSBwYXRoIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgVGhlIHRhcmdldCBwcm9wZXJ0eVxuICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gVGhlIENvbW1vbi5UZXh0IHByb3BlcnR5IHBhdGggb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXMgbm90IGV4aXRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFzc29jaWF0ZWRUZXh0UHJvcGVydHlQYXRoID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0KSA/IG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0LnBhdGggOiB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgVGFyZ2V0VmFsdWUgZnJvbSBkYXRhcG9pbnQuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IHRoZSB0YXJnZXQgcHJvcGVydHkvZGF0YVBvaW50XG4gKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSB0aGUgVGFyZ2V0VmFsdWVcbiAqL1xuXG5leHBvcnQgY29uc3QgZ2V0VGFyZ2V0VmFsdWVPbkRhdGFQb2ludCA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3Qgc1RhcmdldFZhbHVlID1cblx0XHRvUHJvcGVydHkuYW5ub3RhdGlvbnM/LlVJPy5EYXRhRmllbGREZWZhdWx0Py5UYXJnZXQ/LiR0YXJnZXQ/LlRhcmdldFZhbHVlPy50b1N0cmluZygpIHx8IG9Qcm9wZXJ0eS5UYXJnZXRWYWx1ZT8udG9TdHJpbmcoKTtcblx0cmV0dXJuIHNUYXJnZXRWYWx1ZSA/IHNUYXJnZXRWYWx1ZSA6IHVuZGVmaW5lZDtcbn07XG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIHZhbHVlIGhlbHAgYW5ub3RhdGlvbiBkZWZpbmVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgVGhlIHRhcmdldCBwcm9wZXJ0eVxuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiBpdCBoYXMgYSB2YWx1ZSBoZWxwXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNWYWx1ZUhlbHAgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAoXG5cdFx0ISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0IHx8XG5cdFx0ISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0UmVmZXJlbmNlcyB8fFxuXHRcdCEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlcyB8fFxuXHRcdCEhb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlZhbHVlTGlzdE1hcHBpbmdcblx0KTtcbn07XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcHJvcGVydHkgaGFzIGEgdmFsdWUgaGVscCB3aXRoIGZpeGVkIHZhbHVlIGFubm90YXRpb24gZGVmaW5lZCBvciBub3QuXG4gKlxuICogQHBhcmFtIHtQcm9wZXJ0eX0gb1Byb3BlcnR5IFRoZSB0YXJnZXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgaXQgaGFzIGEgdmFsdWUgaGVscFxuICovXG5leHBvcnQgY29uc3QgaGFzVmFsdWVIZWxwV2l0aEZpeGVkVmFsdWVzID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzPy52YWx1ZU9mKCk7XG59O1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIHByb3BlcnR5IGhhcyBhIHZhbHVlIGhlbHAgZm9yIHZhbGlkYXRpb24gYW5ub3RhdGlvbiBkZWZpbmVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBvUHJvcGVydHkgVGhlIHRhcmdldCBwcm9wZXJ0eVxuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiBpdCBoYXMgYSB2YWx1ZSBoZWxwXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNWYWx1ZUxpc3RGb3JWYWxpZGF0aW9uID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gb1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tb24/LlZhbHVlTGlzdEZvclZhbGlkYXRpb24gIT09IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGlzIGEgdW5pdCBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0gb1Byb3BlcnR5IFRoZSBwcm9wZXJ0eSB0byBjaGVja1xuICogQHJldHVybnMgYHRydWVgIGlmIGl0IGlzIGEgdW5pdFxuICovXG5leHBvcnQgY29uc3QgaXNVbml0ID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gISFvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uSXNVbml0Py52YWx1ZU9mKCk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBoYXMgYSB1bml0IHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSBvUHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgaXQgaGFzIGEgdW5pdFxuICovXG5cbmV4cG9ydCBjb25zdCBoYXNVbml0ID0gZnVuY3Rpb24ob1Byb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdCAhPT0gdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgcHJvcGVydHkgaXMgYSBjdXJyZW5jeSBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0gb1Byb3BlcnR5IFRoZSBwcm9wZXJ0eSB0byBjaGVja1xuICogQHJldHVybnMgYHRydWVgIGlmIGl0IGlzIGEgY3VycmVuY3lcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQ3VycmVuY3kgPSBmdW5jdGlvbihvUHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB7XG5cdHJldHVybiAhIW9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5Jc0N1cnJlbmN5Py52YWx1ZU9mKCk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBoYXMgYSBjdXJyZW5jeSBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0gb1Byb3BlcnR5IFRoZSBwcm9wZXJ0eSB0byBjaGVja1xuICogQHJldHVybnMgYHRydWVgIGlmIGl0IGhhcyBhIGN1cnJlbmN5XG4gKi9cbmV4cG9ydCBjb25zdCBoYXNDdXJyZW5jeSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuIHtcblx0cmV0dXJuIG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uTWVhc3VyZXM/LklTT0N1cnJlbmN5ICE9PSB1bmRlZmluZWQ7XG59O1xuIl19
|
|
@@ -98,7 +98,7 @@ export const getAssociatedUnitPropertyPath = function(oProperty: Property): stri
|
|
|
98
98
|
* Retrieves the associated currency property for that property if it exists.
|
|
99
99
|
*
|
|
100
100
|
* @param {Property} oProperty The target property
|
|
101
|
-
* @returns {Property | undefined} The unit property if it exists
|
|
101
|
+
* @returns {Property | undefined} The unit property, if it exists
|
|
102
102
|
*/
|
|
103
103
|
export const getAssociatedCurrencyProperty = function(oProperty: Property): Property | undefined {
|
|
104
104
|
return isPathExpression(oProperty?.annotations?.Measures?.ISOCurrency)
|