@sapui5/sap.fe.templates 1.102.3 → 1.105.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 +4 -5
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/Component.js +2 -2
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
- package/src/sap/fe/templates/Feedback.js +18 -18
- package/src/sap/fe/templates/Feedback.ts +12 -12
- package/src/sap/fe/templates/ListComponent.js +2 -2
- package/src/sap/fe/templates/ListReport/Component.js +2 -2
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js +13 -14
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +11 -13
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +12 -74
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +95 -392
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +99 -367
- package/src/sap/fe/templates/ListReport/ListReportTemplating.js +1 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +471 -0
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +347 -0
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +16 -9
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +17 -11
- package/src/sap/fe/templates/ListReport/overrides/Share.js +3 -4
- package/src/sap/fe/templates/ListReport/overrides/Share.ts +6 -7
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +22 -31
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +33 -37
- package/src/sap/fe/templates/ListReport/view/fragments/Chart.fragment.xml +3 -0
- package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +11 -5
- package/src/sap/fe/templates/{controls → ListReport/view/fragments}/MacroChart.fragment.xml +3 -2
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +20 -4
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +80 -48
- package/src/sap/fe/templates/{controls → ListReport/view/fragments}/Table.fragment.xml +6 -5
- package/src/sap/fe/templates/ListReport/view/fragments/VariantManagement.fragment.xml +31 -0
- package/src/sap/fe/templates/ObjectPage/Component.js +2 -2
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +21 -20
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +23 -22
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +52 -146
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +303 -268
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +191 -242
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +72 -71
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +81 -88
- package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +178 -0
- package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.tsx +132 -0
- package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +2 -2
- package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +2 -2
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +3 -4
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +1 -1
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +6 -6
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +67 -41
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +44 -56
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +3 -10
- package/src/sap/fe/templates/ObjectPage/view/fragments/Chart.fragment.xml +13 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +15 -5
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -14
- package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +2 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +3 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/MacroChart.fragment.xml +22 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +7 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +26 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +8 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +12 -50
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +6 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionPresentationVisualization.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/Table.fragment.xml +23 -0
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +26 -29
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +30 -33
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +4 -5
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +4 -5
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +141 -53
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +108 -54
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +3 -3
- package/src/sap/fe/templates/TableScroller.js +3 -3
- package/src/sap/fe/templates/TableScroller.ts +2 -2
- package/src/sap/fe/templates/library.js +7 -3
- package/src/sap/fe/templates/library.ts +5 -0
- package/src/sap/fe/templates/messagebundle.properties +7 -22
- package/src/sap/fe/templates/messagebundle_ar.properties +3 -12
- package/src/sap/fe/templates/messagebundle_bg.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ca.properties +2 -11
- package/src/sap/fe/templates/messagebundle_cs.properties +3 -12
- package/src/sap/fe/templates/messagebundle_cy.properties +2 -11
- package/src/sap/fe/templates/messagebundle_da.properties +3 -12
- package/src/sap/fe/templates/messagebundle_de.properties +2 -11
- package/src/sap/fe/templates/messagebundle_el.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_GB.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +2 -11
- package/src/sap/fe/templates/messagebundle_es.properties +0 -9
- package/src/sap/fe/templates/messagebundle_es_MX.properties +2 -11
- package/src/sap/fe/templates/messagebundle_et.properties +0 -9
- package/src/sap/fe/templates/messagebundle_fi.properties +2 -11
- package/src/sap/fe/templates/messagebundle_fr.properties +3 -12
- package/src/sap/fe/templates/messagebundle_fr_CA.properties +2 -11
- package/src/sap/fe/templates/messagebundle_hi.properties +2 -11
- package/src/sap/fe/templates/messagebundle_hr.properties +2 -11
- package/src/sap/fe/templates/messagebundle_hu.properties +2 -11
- package/src/sap/fe/templates/messagebundle_id.properties +2 -11
- package/src/sap/fe/templates/messagebundle_it.properties +2 -11
- package/src/sap/fe/templates/messagebundle_iw.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ja.properties +2 -11
- package/src/sap/fe/templates/messagebundle_kk.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ko.properties +2 -11
- package/src/sap/fe/templates/messagebundle_lt.properties +2 -11
- package/src/sap/fe/templates/messagebundle_lv.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ms.properties +2 -11
- package/src/sap/fe/templates/messagebundle_nl.properties +2 -11
- package/src/sap/fe/templates/messagebundle_no.properties +0 -9
- package/src/sap/fe/templates/messagebundle_pl.properties +0 -9
- package/src/sap/fe/templates/messagebundle_pt.properties +3 -12
- package/src/sap/fe/templates/messagebundle_pt_PT.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ro.properties +0 -9
- package/src/sap/fe/templates/messagebundle_ru.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sh.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sk.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sl.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sv.properties +2 -11
- package/src/sap/fe/templates/messagebundle_th.properties +1 -10
- package/src/sap/fe/templates/messagebundle_tr.properties +2 -11
- package/src/sap/fe/templates/messagebundle_uk.properties +2 -11
- package/src/sap/fe/templates/messagebundle_vi.properties +0 -9
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +0 -9
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +2 -11
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleModeOld.fragment.xml +0 -50
- package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +0 -27
- package/src/sap/fe/templates/controls/Chart.fragment.xml +0 -25
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import type ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
2
|
+
import Log from "sap/base/Log";
|
|
3
|
+
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
4
|
+
import type FilterBar from "sap/fe/core/controls/FilterBar";
|
|
5
|
+
import { aggregation, association, defineUI5Class, event, property } from "sap/fe/core/helpers/ClassSupport";
|
|
6
|
+
import MessageStrip from "sap/fe/core/helpers/MessageStrip";
|
|
7
|
+
import DelegateUtil from "sap/fe/macros/DelegateUtil";
|
|
8
|
+
import MacroAPI from "sap/fe/macros/MacroAPI";
|
|
9
|
+
import IconTabBar from "sap/m/IconTabBar";
|
|
10
|
+
import IconTabFilter from "sap/m/IconTabFilter";
|
|
11
|
+
import type CoreEvent from "sap/ui/base/Event";
|
|
12
|
+
import Control from "sap/ui/core/Control";
|
|
13
|
+
import Core from "sap/ui/core/Core";
|
|
14
|
+
import RenderManager from "sap/ui/core/RenderManager";
|
|
15
|
+
import ControlPersonalizationWriteAPI from "sap/ui/fl/write/api/ControlPersonalizationWriteAPI";
|
|
16
|
+
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
17
|
+
import Model from "sap/ui/model/Model";
|
|
18
|
+
|
|
19
|
+
export type InnerControlType = MacroAPI &
|
|
20
|
+
Partial<{
|
|
21
|
+
resumeBinding: Function;
|
|
22
|
+
suspendBinding: Function;
|
|
23
|
+
getCounts: Function;
|
|
24
|
+
refreshNotApplicableFields: Function;
|
|
25
|
+
invalidateContent: Function;
|
|
26
|
+
}>;
|
|
27
|
+
|
|
28
|
+
type MessageStripProperties = {
|
|
29
|
+
entityTypePath: string;
|
|
30
|
+
ignoredFields: any[];
|
|
31
|
+
resourceBundle: ResourceBundle;
|
|
32
|
+
title: string;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
enum BindingAction {
|
|
36
|
+
Suspend = "suspendBinding",
|
|
37
|
+
Resume = "resumeBinding"
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@defineUI5Class("sap.fe.templates.ListReport.controls.MultipleModeControl")
|
|
41
|
+
class MultipleModeControl extends Control {
|
|
42
|
+
@property({ type: "boolean" })
|
|
43
|
+
showCounts!: boolean;
|
|
44
|
+
|
|
45
|
+
@property({ type: "boolean", defaultValue: false })
|
|
46
|
+
freezeContent!: boolean;
|
|
47
|
+
|
|
48
|
+
@property({ type: "boolean", defaultValue: false })
|
|
49
|
+
countsOutDated!: boolean;
|
|
50
|
+
|
|
51
|
+
@aggregation({ type: "sap.m.IconTabBar", multiple: false, isDefault: true })
|
|
52
|
+
content!: IconTabBar;
|
|
53
|
+
|
|
54
|
+
@association({ type: "sap.ui.core.Control", multiple: true })
|
|
55
|
+
innerControls!: string[];
|
|
56
|
+
|
|
57
|
+
@association({ type: "sap.fe.core.controls.FilterBar", multiple: false })
|
|
58
|
+
filterControl!: string;
|
|
59
|
+
|
|
60
|
+
@event()
|
|
61
|
+
select!: Function;
|
|
62
|
+
|
|
63
|
+
onBeforeRendering() {
|
|
64
|
+
this.getTabsModel(); // Generate the model which is mandatory for some bindings
|
|
65
|
+
|
|
66
|
+
const oFilterBarAPI = this._getFilterControl()?.getParent();
|
|
67
|
+
this._getAllInnerControls().forEach((oMacroAPI) => {
|
|
68
|
+
if (this.showCounts) {
|
|
69
|
+
oMacroAPI.attachEvent("internalDataRequested", this._refreshTabsCount.bind(this));
|
|
70
|
+
}
|
|
71
|
+
oMacroAPI.suspendBinding?.();
|
|
72
|
+
});
|
|
73
|
+
if (oFilterBarAPI) {
|
|
74
|
+
oFilterBarAPI.attachEvent("internalSearch", this._onSearch.bind(this));
|
|
75
|
+
oFilterBarAPI.attachEvent("internalFilterChanged", this._onFilterChanged.bind(this));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
onAfterRendering() {
|
|
80
|
+
this.getSelectedInnerControl()?.resumeBinding?.(!this.getProperty("freezeContent"));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
static render(oRm: RenderManager, oControl: MultipleModeControl) {
|
|
84
|
+
oRm.renderControl(oControl.content);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Gets the entity set of the displayed visualization.
|
|
89
|
+
*
|
|
90
|
+
* @returns {string} The entity set
|
|
91
|
+
*/
|
|
92
|
+
getDisplayedEntitySet(): string | undefined {
|
|
93
|
+
return this.getSelectedInnerControl()?.content?.data("targetCollectionPath").slice(1);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Gets the model containing information related to the IconTabFilters.
|
|
98
|
+
*
|
|
99
|
+
* @returns {sap.ui.model.Model | undefined} The model
|
|
100
|
+
*/
|
|
101
|
+
getTabsModel(): Model | undefined {
|
|
102
|
+
const sTabsModel = "tabsInternal";
|
|
103
|
+
const oContent = this.content;
|
|
104
|
+
if (!oContent) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
let oModel = oContent.getModel(sTabsModel);
|
|
108
|
+
if (!oModel) {
|
|
109
|
+
oModel = new JSONModel({});
|
|
110
|
+
oContent.setModel(oModel, sTabsModel);
|
|
111
|
+
}
|
|
112
|
+
return oModel;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Gets the inner control of the displayed tab.
|
|
117
|
+
*
|
|
118
|
+
* @returns {InnerControlType | undefined} The control
|
|
119
|
+
*/
|
|
120
|
+
getSelectedInnerControl(): InnerControlType | undefined {
|
|
121
|
+
const oSelectedTab = this.content.getItems().find((oItem) => (oItem as IconTabFilter).getKey() === this.content.getSelectedKey());
|
|
122
|
+
return oSelectedTab
|
|
123
|
+
? this._getAllInnerControls().find((oMacroAPI) => this._getTabFromInnerControl(oMacroAPI) === oSelectedTab)
|
|
124
|
+
: undefined;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Manages the binding of all inner controls when the selected IconTabFilter is changed.
|
|
129
|
+
*
|
|
130
|
+
* @param {sap.ui.base.Event} oEvent Event fired by the IconTabBar
|
|
131
|
+
*/
|
|
132
|
+
static handleTabChange(oEvent: any): void {
|
|
133
|
+
const oIconTabBar = oEvent.getSource();
|
|
134
|
+
const oMultiControl = oIconTabBar.getParent();
|
|
135
|
+
|
|
136
|
+
const mParameters = oEvent.getParameters();
|
|
137
|
+
oMultiControl._setInnerBinding(true);
|
|
138
|
+
const sPreviousSelectedKey = mParameters?.previousKey;
|
|
139
|
+
const sSelectedKey = mParameters?.selectedKey;
|
|
140
|
+
|
|
141
|
+
if (sSelectedKey && sPreviousSelectedKey !== sSelectedKey) {
|
|
142
|
+
const oFilterBar = oMultiControl._getFilterControl();
|
|
143
|
+
if (oFilterBar && !oMultiControl.getProperty("freezeContent")) {
|
|
144
|
+
if (!oMultiControl.getSelectedInnerControl()) {
|
|
145
|
+
//custom tab
|
|
146
|
+
oMultiControl._refreshCustomView(oFilterBar.getFilterConditions(), "tabChanged");
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
ControlPersonalizationWriteAPI.add({
|
|
150
|
+
changes: [
|
|
151
|
+
{
|
|
152
|
+
changeSpecificData: {
|
|
153
|
+
changeType: "selectIconTabBarFilter",
|
|
154
|
+
content: {
|
|
155
|
+
selectedKey: sSelectedKey,
|
|
156
|
+
previousSelectedKey: sPreviousSelectedKey
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
selectorElement: oIconTabBar
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
oMultiControl._getViewController()?.getExtensionAPI()?.updateAppState();
|
|
166
|
+
|
|
167
|
+
oMultiControl.fireEvent("select", {
|
|
168
|
+
iconTabBar: oIconTabBar,
|
|
169
|
+
selectedKey: sSelectedKey,
|
|
170
|
+
previousKey: sPreviousSelectedKey
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Invalidates the content of all inner controls.
|
|
176
|
+
*/
|
|
177
|
+
invalidateContent() {
|
|
178
|
+
this.setCountsOutDated(true);
|
|
179
|
+
this._getAllInnerControls().forEach((oMacroAPI) => {
|
|
180
|
+
oMacroAPI.invalidateContent?.();
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Sets the counts to out of date or up to date
|
|
186
|
+
* If the counts are set to "out of date" and the selected IconTabFilter doesn't contain an inner control all inner controls are requested to get the new counts.
|
|
187
|
+
*
|
|
188
|
+
* @param {boolean} bValue Freeze or not the control
|
|
189
|
+
*/
|
|
190
|
+
setCountsOutDated(bValue = true) {
|
|
191
|
+
this.setProperty("countsOutDated", bValue);
|
|
192
|
+
// if the current tab is not configured with no inner Control
|
|
193
|
+
// the tab counts must be manually refreshed since no Macro API will sent event internalDataRequested
|
|
194
|
+
if (bValue && !this.getSelectedInnerControl()) {
|
|
195
|
+
this._refreshTabsCount();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Freezes the content :
|
|
201
|
+
* - content is frozen: the binding of the inner controls are suspended.
|
|
202
|
+
* - content is unfrozen: the binding of inner control related to the selected IconTabFilter is resumed.
|
|
203
|
+
*
|
|
204
|
+
* @param {boolean} bValue Freeze or not the control
|
|
205
|
+
*/
|
|
206
|
+
setFreezeContent(bValue: boolean) {
|
|
207
|
+
this.setProperty("freezeContent", bValue);
|
|
208
|
+
this._setInnerBinding();
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Updates the internal model with the properties that are not applicable on each IconTabFilter (containing inner control) according to the entityType of the filter control.
|
|
213
|
+
*
|
|
214
|
+
* @param oResourceBundle
|
|
215
|
+
*/
|
|
216
|
+
_updateMultiTabNotApplicableFields(oResourceBundle: ResourceBundle) {
|
|
217
|
+
const tabsModel = this.getTabsModel();
|
|
218
|
+
const oFilterControl = this._getFilterControl() as Control;
|
|
219
|
+
if (tabsModel && oFilterControl) {
|
|
220
|
+
const results: any = {};
|
|
221
|
+
this._getAllInnerControls().forEach((oMacroAPI) => {
|
|
222
|
+
const oTab = this._getTabFromInnerControl(oMacroAPI);
|
|
223
|
+
if (oTab) {
|
|
224
|
+
const sTabId = oTab.getKey();
|
|
225
|
+
const mIgnoredFields = oMacroAPI.refreshNotApplicableFields?.(oFilterControl) || [];
|
|
226
|
+
results[sTabId] = {
|
|
227
|
+
notApplicable: {
|
|
228
|
+
fields: mIgnoredFields,
|
|
229
|
+
title: this._setTabMessageStrip({
|
|
230
|
+
entityTypePath: oFilterControl.data("entityType"),
|
|
231
|
+
ignoredFields: mIgnoredFields,
|
|
232
|
+
resourceBundle: oResourceBundle,
|
|
233
|
+
title: oTab.getText()
|
|
234
|
+
})
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
(tabsModel as any).setData(results);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
_getAllInnerControls(bOnlyForVisibleTab = false): InnerControlType[] {
|
|
244
|
+
return (
|
|
245
|
+
this.innerControls.reduce((aInnerControls: InnerControlType[], sInnerControl: string) => {
|
|
246
|
+
const oControl = Core.byId(sInnerControl) as InnerControlType;
|
|
247
|
+
if (oControl) {
|
|
248
|
+
aInnerControls.push(oControl);
|
|
249
|
+
}
|
|
250
|
+
return aInnerControls.filter(
|
|
251
|
+
(oInnerControl) => !bOnlyForVisibleTab || this._getTabFromInnerControl(oInnerControl)?.getVisible()
|
|
252
|
+
);
|
|
253
|
+
}, []) || []
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
_getFilterControl(): FilterBar | undefined {
|
|
258
|
+
return Core.byId(this.filterControl) as FilterBar | undefined;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
_getTabFromInnerControl(oControl: Control): IconTabFilter | undefined {
|
|
262
|
+
const sSupportedClass = IconTabFilter.getMetadata().getName();
|
|
263
|
+
let oTab: any = oControl;
|
|
264
|
+
if (oTab && !oTab.isA(sSupportedClass) && oTab.getParent) {
|
|
265
|
+
oTab = oControl.getParent();
|
|
266
|
+
}
|
|
267
|
+
return oTab && oTab.isA(sSupportedClass) ? (oTab as IconTabFilter) : undefined;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
_getViewController() {
|
|
271
|
+
const oView = CommonUtils.getTargetView(this);
|
|
272
|
+
return oView && oView.getController();
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
_refreshCustomView(oFilterConditions: any, sRefreshCause: string) {
|
|
276
|
+
this._getViewController()?.onViewNeedsRefresh?.({
|
|
277
|
+
filterConditions: oFilterConditions,
|
|
278
|
+
currentTabId: this.content.getSelectedKey(),
|
|
279
|
+
refreshCause: sRefreshCause
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
_refreshTabsCount(): void {
|
|
284
|
+
const sSelectedKey = this.content.getSelectedKey();
|
|
285
|
+
this._getAllInnerControls(true).forEach((oMacroAPI) => {
|
|
286
|
+
const oIconTabFilter = this._getTabFromInnerControl(oMacroAPI);
|
|
287
|
+
if (oMacroAPI?.getCounts && (this.countsOutDated || sSelectedKey === oIconTabFilter?.getKey())) {
|
|
288
|
+
if (oIconTabFilter && oIconTabFilter.setCount) {
|
|
289
|
+
oIconTabFilter.setCount("...");
|
|
290
|
+
oMacroAPI
|
|
291
|
+
.getCounts()
|
|
292
|
+
.then((iCount: string) => oIconTabFilter.setCount(iCount || "0"))
|
|
293
|
+
.catch(function (oError: any) {
|
|
294
|
+
Log.error("Error while requesting Counts for Control", oError);
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
this.setCountsOutDated(false);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
_setInnerBinding(bRequestIfNotInitialized = false) {
|
|
303
|
+
if (this.content) {
|
|
304
|
+
this._getAllInnerControls().forEach((oMacroAPI) => {
|
|
305
|
+
const oIconTabFilter = this._getTabFromInnerControl(oMacroAPI);
|
|
306
|
+
const bIsSelectedKey = oIconTabFilter?.getKey() === this.content.getSelectedKey();
|
|
307
|
+
const sAction = bIsSelectedKey && !this.getProperty("freezeContent") ? BindingAction.Resume : BindingAction.Suspend;
|
|
308
|
+
oMacroAPI[sAction]?.(sAction === BindingAction.Resume ? bRequestIfNotInitialized && bIsSelectedKey : undefined);
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
_setTabMessageStrip(properties: MessageStripProperties) {
|
|
314
|
+
let sText = "";
|
|
315
|
+
const aIgnoredFields = properties.ignoredFields;
|
|
316
|
+
const oFilterControl = this._getFilterControl() as Control;
|
|
317
|
+
if (oFilterControl && Array.isArray(aIgnoredFields) && aIgnoredFields.length > 0 && properties.title) {
|
|
318
|
+
const aIgnoredLabels = MessageStrip.getLabels(
|
|
319
|
+
aIgnoredFields,
|
|
320
|
+
properties.entityTypePath,
|
|
321
|
+
oFilterControl,
|
|
322
|
+
properties.resourceBundle
|
|
323
|
+
);
|
|
324
|
+
sText = MessageStrip.getText(aIgnoredLabels, oFilterControl, properties.title, DelegateUtil.getLocalizedText);
|
|
325
|
+
return sText;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
_onSearch(oEvent: CoreEvent): void {
|
|
330
|
+
this.setCountsOutDated(true);
|
|
331
|
+
this.setFreezeContent(false);
|
|
332
|
+
if (this.getSelectedInnerControl()) {
|
|
333
|
+
this._updateMultiTabNotApplicableFields(this._getViewController()?.oResourceBundle);
|
|
334
|
+
} else {
|
|
335
|
+
// custom tab
|
|
336
|
+
this._refreshCustomView(oEvent.getParameter("conditions"), "search");
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
_onFilterChanged(oEvent: CoreEvent): void {
|
|
341
|
+
if (oEvent.getParameter("conditionsBased")) {
|
|
342
|
+
this.setFreezeContent(true);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
export default MultipleModeControl;
|
|
@@ -30,16 +30,23 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/filter/FilterUtils"], f
|
|
|
30
30
|
var oFilterInfo = FilterUtils.getFilterInfo(oFilterBar, {
|
|
31
31
|
targetControl: oController._getTable()
|
|
32
32
|
}).filters;
|
|
33
|
-
var oInternalModelContext = oView.getBindingContext("internal");
|
|
34
|
-
var mTabs = oInternalModelContext && oInternalModelContext.getProperty("tabs"); // Do we need to exclude Fields (mutli tables mode)?
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
var aIgnoredFieldsForTab = mTabs.ignoredFields[mTabs.selected];
|
|
34
|
+
var oMultipleModeControl = oController._getMultiModeControl();
|
|
38
35
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
if (oMultipleModeControl) {
|
|
37
|
+
// Do we need to exclude Fields (multi tables mode with multi entity sets)?
|
|
38
|
+
var oTabsModel = oMultipleModeControl.getTabsModel();
|
|
39
|
+
|
|
40
|
+
if (oTabsModel) {
|
|
41
|
+
var _oMultipleModeControl;
|
|
42
|
+
|
|
43
|
+
var aIgnoredFieldsForTab = oTabsModel.getProperty("/".concat((_oMultipleModeControl = oMultipleModeControl.content) === null || _oMultipleModeControl === void 0 ? void 0 : _oMultipleModeControl.getSelectedKey(), "/notApplicable/fields"));
|
|
44
|
+
|
|
45
|
+
if (Array.isArray(aIgnoredFieldsForTab) && aIgnoredFieldsForTab.length > 0) {
|
|
46
|
+
aIgnoredFieldsForTab.forEach(function (sProperty) {
|
|
47
|
+
delete oFilterBarConditions.filterConditions[sProperty];
|
|
48
|
+
});
|
|
49
|
+
}
|
|
43
50
|
}
|
|
44
51
|
} // TODO: move this also into the intent based navigation controller extension
|
|
45
52
|
|
|
@@ -54,4 +61,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/filter/FilterUtils"], f
|
|
|
54
61
|
};
|
|
55
62
|
return IntentBasedNavigationOverride;
|
|
56
63
|
}, false);
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZSIsImFkYXB0TmF2aWdhdGlvbkNvbnRleHQiLCJvU2VsZWN0aW9uVmFyaWFudCIsIm9UYXJnZXRJbmZvIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiaXNFbXB0eSIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwic1Jvb3RQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwiZW50aXR5U2V0Iiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwiZmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQYXJhbWV0ZXJzIiwiY29udGV4dFBhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJvUGFyYW1ldGVySW5mbyIsIkNvbW1vblV0aWxzIiwiZ2V0UGFyYW1ldGVySW5mbyIsIm9QYXJhbVByb3BlcnRpZXMiLCJwYXJhbWV0ZXJQcm9wZXJ0aWVzIiwia2V5cyIsIl9pbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwcmVwYXJlRmlsdGVyc0ZvckV4dGVybmFsTmF2aWdhdGlvbiIsIm9GaWx0ZXJJbmZvIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXJJbmZvIiwidGFyZ2V0Q29udHJvbCIsIl9nZXRUYWJsZSIsImZpbHRlcnMiLCJvTXVsdGlwbGVNb2RlQ29udHJvbCIsIl9nZXRNdWx0aU1vZGVDb250cm9sIiwib1RhYnNNb2RlbCIsImdldFRhYnNNb2RlbCIsImFJZ25vcmVkRmllbGRzRm9yVGFiIiwiZ2V0UHJvcGVydHkiLCJjb250ZW50IiwiZ2V0U2VsZWN0ZWRLZXkiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJmb3JFYWNoIiwic1Byb3BlcnR5IiwiZmlsdGVyQ29uZGl0aW9ucyIsImFkZEV4dGVybmFsU3RhdGVGaWx0ZXJzVG9TZWxlY3Rpb25WYXJpYW50IiwicHJvcGVydGllc1dpdGhvdXRDb25mbGljdCIsImdldEVudGl0eVNldCIsImdldEN1cnJlbnRFbnRpdHlTZXQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkludGVudEJhc2VkTmF2aWdhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBJbnRlbnRCYXNlZE5hdmlnYXRpb24gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVudEJhc2VkTmF2aWdhdGlvblwiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5cbmNvbnN0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlID0ge1xuXHRhZGFwdE5hdmlnYXRpb25Db250ZXh0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uLCBvU2VsZWN0aW9uVmFyaWFudDogYW55LCBvVGFyZ2V0SW5mbzogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0Ly8gQWRkaW5nIGZpbHRlciBiYXIgdmFsdWVzIHRvIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IG1ha2Ugc2Vuc2UgaWYgbm8gY29udGV4dCBoYXMgYmVlbiBzZWxlY3RlZC5cblx0XHQvLyBIZW5jZSBvbmx5IGNvbnNpZGVyIGZpbHRlciBiYXIgdmFsdWVzIHdoZW4gU2VsZWN0aW9uVmFyaWFudCBpcyBub3QgZW1wdHlcblx0XHRpZiAob0ZpbHRlckJhciAmJiAhb1NlbGVjdGlvblZhcmlhbnQuaXNFbXB0eSgpKSB7XG5cdFx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueSxcblx0XHRcdFx0c1Jvb3RQYXRoID0gb1ZpZXdEYXRhLmZ1bGxDb250ZXh0UGF0aCArIG9WaWV3RGF0YS5lbnRpdHlTZXQ7XG5cdFx0XHRsZXQgb0ZpbHRlckJhckNvbmRpdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCAodGhpcy5iYXNlLmdldFZpZXcoKS5nZXRDb250cm9sbGVyKCkgYXMgYW55KS5maWx0ZXJCYXJDb25kaXRpb25zKTtcblx0XHRcdGxldCBhUGFyYW1ldGVycyA9IFtdO1xuXG5cdFx0XHRpZiAob1ZpZXdEYXRhLmNvbnRleHRQYXRoKSB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvVmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0XHRcdG9QYXJhbWV0ZXJJbmZvID0gQ29tbW9uVXRpbHMuZ2V0UGFyYW1ldGVySW5mbyhvTWV0YU1vZGVsLCBvVmlld0RhdGEuY29udGV4dFBhdGgpLFxuXHRcdFx0XHRcdG9QYXJhbVByb3BlcnRpZXMgPSBvUGFyYW1ldGVySW5mby5wYXJhbWV0ZXJQcm9wZXJ0aWVzO1xuXHRcdFx0XHRhUGFyYW1ldGVycyA9IChvUGFyYW1Qcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9QYXJhbVByb3BlcnRpZXMpKSB8fCBbXTtcblx0XHRcdH1cblxuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvQ29udHJvbGxlci5faW50ZW50QmFzZWROYXZpZ2F0aW9uLnByZXBhcmVGaWx0ZXJzRm9yRXh0ZXJuYWxOYXZpZ2F0aW9uKFxuXHRcdFx0XHRvRmlsdGVyQmFyQ29uZGl0aW9ucyxcblx0XHRcdFx0c1Jvb3RQYXRoLFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblx0XHRcdGNvbnN0IG9GaWx0ZXJJbmZvID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVySW5mbyhvRmlsdGVyQmFyLCB7XG5cdFx0XHRcdHRhcmdldENvbnRyb2w6IG9Db250cm9sbGVyLl9nZXRUYWJsZSgpXG5cdFx0XHR9KS5maWx0ZXJzO1xuXG5cdFx0XHRjb25zdCBvTXVsdGlwbGVNb2RlQ29udHJvbCA9IG9Db250cm9sbGVyLl9nZXRNdWx0aU1vZGVDb250cm9sKCk7XG5cdFx0XHRpZiAob011bHRpcGxlTW9kZUNvbnRyb2wpIHtcblx0XHRcdFx0Ly8gRG8gd2UgbmVlZCB0byBleGNsdWRlIEZpZWxkcyAobXVsdGkgdGFibGVzIG1vZGUgd2l0aCBtdWx0aSBlbnRpdHkgc2V0cyk/XG5cdFx0XHRcdGNvbnN0IG9UYWJzTW9kZWwgPSBvTXVsdGlwbGVNb2RlQ29udHJvbC5nZXRUYWJzTW9kZWwoKTtcblx0XHRcdFx0aWYgKG9UYWJzTW9kZWwpIHtcblx0XHRcdFx0XHRjb25zdCBhSWdub3JlZEZpZWxkc0ZvclRhYiA9IG9UYWJzTW9kZWwuZ2V0UHJvcGVydHkoXG5cdFx0XHRcdFx0XHRgLyR7b011bHRpcGxlTW9kZUNvbnRyb2wuY29udGVudD8uZ2V0U2VsZWN0ZWRLZXkoKX0vbm90QXBwbGljYWJsZS9maWVsZHNgXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShhSWdub3JlZEZpZWxkc0ZvclRhYikgJiYgYUlnbm9yZWRGaWVsZHNGb3JUYWIubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YUlnbm9yZWRGaWVsZHNGb3JUYWIuZm9yRWFjaChmdW5jdGlvbiAoc1Byb3BlcnR5OiBhbnkpIHtcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIG9GaWx0ZXJCYXJDb25kaXRpb25zLmZpbHRlckNvbmRpdGlvbnNbc1Byb3BlcnR5XTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBUT0RPOiBtb3ZlIHRoaXMgYWxzbyBpbnRvIHRoZSBpbnRlbnQgYmFzZWQgbmF2aWdhdGlvbiBjb250cm9sbGVyIGV4dGVuc2lvblxuXHRcdFx0Q29tbW9uVXRpbHMuYWRkRXh0ZXJuYWxTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQob1NlbGVjdGlvblZhcmlhbnQsIG9GaWx0ZXJCYXJDb25kaXRpb25zLCBvVGFyZ2V0SW5mbywgb0ZpbHRlckluZm8pO1xuXHRcdFx0ZGVsZXRlIG9UYXJnZXRJbmZvLnByb3BlcnRpZXNXaXRob3V0Q29uZmxpY3Q7XG5cdFx0fVxuXHR9LFxuXHRnZXRFbnRpdHlTZXQ6IGZ1bmN0aW9uICh0aGlzOiBJbnRlbnRCYXNlZE5hdmlnYXRpb24pIHtcblx0XHRyZXR1cm4gKHRoaXMuYmFzZSBhcyBhbnkpLmdldEN1cnJlbnRFbnRpdHlTZXQoKTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW50ZW50QmFzZWROYXZpZ2F0aW9uT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFLQSxJQUFNQSw2QkFBNkIsR0FBRztJQUNyQ0Msc0JBQXNCLEVBQUUsVUFBdUNDLGlCQUF2QyxFQUErREMsV0FBL0QsRUFBaUY7TUFDeEcsSUFBTUMsS0FBSyxHQUFHLEtBQUtDLE9BQUwsRUFBZDtNQUFBLElBQ0NDLFdBQVcsR0FBR0YsS0FBSyxDQUFDRyxhQUFOLEVBRGY7TUFBQSxJQUVDQyxVQUFVLEdBQUdGLFdBQVcsQ0FBQ0csb0JBQVosRUFGZCxDQUR3RyxDQUl4RztNQUNBOzs7TUFDQSxJQUFJRCxVQUFVLElBQUksQ0FBQ04saUJBQWlCLENBQUNRLE9BQWxCLEVBQW5CLEVBQWdEO1FBQy9DLElBQU1DLFNBQVMsR0FBR1AsS0FBSyxDQUFDUSxXQUFOLEVBQWxCO1FBQUEsSUFDQ0MsU0FBUyxHQUFHRixTQUFTLENBQUNHLGVBQVYsR0FBNEJILFNBQVMsQ0FBQ0ksU0FEbkQ7UUFFQSxJQUFJQyxvQkFBb0IsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFtQixLQUFLQyxJQUFMLENBQVVkLE9BQVYsR0FBb0JFLGFBQXBCLEVBQUQsQ0FBNkNhLG1CQUEvRCxDQUEzQjtRQUNBLElBQUlDLFdBQVcsR0FBRyxFQUFsQjs7UUFFQSxJQUFJVixTQUFTLENBQUNXLFdBQWQsRUFBMkI7VUFDMUIsSUFBTUMsVUFBVSxHQUFHbkIsS0FBSyxDQUFDb0IsUUFBTixHQUFpQkMsWUFBakIsRUFBbkI7VUFBQSxJQUNDQyxjQUFjLEdBQUdDLFdBQVcsQ0FBQ0MsZ0JBQVosQ0FBNkJMLFVBQTdCLEVBQXlDWixTQUFTLENBQUNXLFdBQW5ELENBRGxCO1VBQUEsSUFFQ08sZ0JBQWdCLEdBQUdILGNBQWMsQ0FBQ0ksbUJBRm5DO1VBR0FULFdBQVcsR0FBSVEsZ0JBQWdCLElBQUlaLE1BQU0sQ0FBQ2MsSUFBUCxDQUFZRixnQkFBWixDQUFyQixJQUF1RCxFQUFyRTtRQUNBOztRQUVEYixvQkFBb0IsR0FBR1YsV0FBVyxDQUFDMEIsc0JBQVosQ0FBbUNDLG1DQUFuQyxDQUN0QmpCLG9CQURzQixFQUV0QkgsU0FGc0IsRUFHdEJRLFdBSHNCLENBQXZCO1FBS0EsSUFBTWEsV0FBVyxHQUFHQyxXQUFXLENBQUNDLGFBQVosQ0FBMEI1QixVQUExQixFQUFzQztVQUN6RDZCLGFBQWEsRUFBRS9CLFdBQVcsQ0FBQ2dDLFNBQVo7UUFEMEMsQ0FBdEMsRUFFakJDLE9BRkg7O1FBSUEsSUFBTUMsb0JBQW9CLEdBQUdsQyxXQUFXLENBQUNtQyxvQkFBWixFQUE3Qjs7UUFDQSxJQUFJRCxvQkFBSixFQUEwQjtVQUN6QjtVQUNBLElBQU1FLFVBQVUsR0FBR0Ysb0JBQW9CLENBQUNHLFlBQXJCLEVBQW5COztVQUNBLElBQUlELFVBQUosRUFBZ0I7WUFBQTs7WUFDZixJQUFNRSxvQkFBb0IsR0FBR0YsVUFBVSxDQUFDRyxXQUFYLHFDQUN4Qkwsb0JBQW9CLENBQUNNLE9BREcsMERBQ3hCLHNCQUE4QkMsY0FBOUIsRUFEd0IsMkJBQTdCOztZQUdBLElBQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjTCxvQkFBZCxLQUF1Q0Esb0JBQW9CLENBQUNNLE1BQXJCLEdBQThCLENBQXpFLEVBQTRFO2NBQzNFTixvQkFBb0IsQ0FBQ08sT0FBckIsQ0FBNkIsVUFBVUMsU0FBVixFQUEwQjtnQkFDdEQsT0FBT3BDLG9CQUFvQixDQUFDcUMsZ0JBQXJCLENBQXNDRCxTQUF0QyxDQUFQO2NBQ0EsQ0FGRDtZQUdBO1VBQ0Q7UUFDRCxDQXBDOEMsQ0FzQy9DOzs7UUFDQXpCLFdBQVcsQ0FBQzJCLHlDQUFaLENBQXNEcEQsaUJBQXRELEVBQXlFYyxvQkFBekUsRUFBK0ZiLFdBQS9GLEVBQTRHK0IsV0FBNUc7UUFDQSxPQUFPL0IsV0FBVyxDQUFDb0QseUJBQW5CO01BQ0E7SUFDRCxDQWpEb0M7SUFrRHJDQyxZQUFZLEVBQUUsWUFBdUM7TUFDcEQsT0FBUSxLQUFLckMsSUFBTixDQUFtQnNDLG1CQUFuQixFQUFQO0lBQ0E7RUFwRG9DLENBQXRDO1NBdURlekQsNkIifQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
2
|
-
import IntentBasedNavigation from "sap/fe/core/controllerextensions/IntentBasedNavigation";
|
|
2
|
+
import type IntentBasedNavigation from "sap/fe/core/controllerextensions/IntentBasedNavigation";
|
|
3
3
|
import FilterUtils from "sap/fe/macros/filter/FilterUtils";
|
|
4
|
-
import ListReportController from "sap/fe/templates/ListReport/ListReportController.controller";
|
|
4
|
+
import type ListReportController from "sap/fe/templates/ListReport/ListReportController.controller";
|
|
5
5
|
|
|
6
6
|
const IntentBasedNavigationOverride = {
|
|
7
7
|
adaptNavigationContext: function (this: IntentBasedNavigation, oSelectionVariant: any, oTargetInfo: any) {
|
|
@@ -31,17 +31,23 @@ const IntentBasedNavigationOverride = {
|
|
|
31
31
|
const oFilterInfo = FilterUtils.getFilterInfo(oFilterBar, {
|
|
32
32
|
targetControl: oController._getTable()
|
|
33
33
|
}).filters;
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
if (
|
|
40
|
-
aIgnoredFieldsForTab.
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
|
|
35
|
+
const oMultipleModeControl = oController._getMultiModeControl();
|
|
36
|
+
if (oMultipleModeControl) {
|
|
37
|
+
// Do we need to exclude Fields (multi tables mode with multi entity sets)?
|
|
38
|
+
const oTabsModel = oMultipleModeControl.getTabsModel();
|
|
39
|
+
if (oTabsModel) {
|
|
40
|
+
const aIgnoredFieldsForTab = oTabsModel.getProperty(
|
|
41
|
+
`/${oMultipleModeControl.content?.getSelectedKey()}/notApplicable/fields`
|
|
42
|
+
);
|
|
43
|
+
if (Array.isArray(aIgnoredFieldsForTab) && aIgnoredFieldsForTab.length > 0) {
|
|
44
|
+
aIgnoredFieldsForTab.forEach(function (sProperty: any) {
|
|
45
|
+
delete oFilterBarConditions.filterConditions[sProperty];
|
|
46
|
+
});
|
|
47
|
+
}
|
|
43
48
|
}
|
|
44
49
|
}
|
|
50
|
+
|
|
45
51
|
// TODO: move this also into the intent based navigation controller extension
|
|
46
52
|
CommonUtils.addExternalStateFiltersToSelectionVariant(oSelectionVariant, oFilterBarConditions, oTargetInfo, oFilterInfo);
|
|
47
53
|
delete oTargetInfo.propertiesWithoutConflict;
|
|
@@ -25,7 +25,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
25
25
|
var oBinding = oTable.getRowBinding() || oTable.getBinding("items");
|
|
26
26
|
var sDownloadUrl = oBinding && oBinding.getDownloadUrl() || "";
|
|
27
27
|
var aSplitUrl = sDownloadUrl.split("?");
|
|
28
|
-
var baseUrl = aSplitUrl[0]
|
|
28
|
+
var baseUrl = "".concat(aSplitUrl[0], "/$count?"); // getDownloadUrl() returns url with $select, $expand which is not supported when /$count is used to get the record count. only $apply, $search, $filter is supported
|
|
29
29
|
// ?$count=true returns count in a format which is not supported by FLP yet.
|
|
30
30
|
// currently supported format for v4 is ../count.. only (where tile preview will still not work)
|
|
31
31
|
|
|
@@ -51,8 +51,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
51
51
|
function getShareUrl() {
|
|
52
52
|
var sHash = HashChanger.getInstance().getHash();
|
|
53
53
|
var sBasePath = HashChanger.getInstance().hrefForAppSpecificHash ? HashChanger.getInstance().hrefForAppSpecificHash("") : "";
|
|
54
|
-
|
|
55
|
-
return sShareUrl;
|
|
54
|
+
return sHash ? sBasePath + sHash : window.location.hash;
|
|
56
55
|
}
|
|
57
56
|
|
|
58
57
|
function getShareEmailUrl() {
|
|
@@ -137,4 +136,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
137
136
|
};
|
|
138
137
|
return ShareOverride;
|
|
139
138
|
}, false);
|
|
140
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNoYXJlLnRzIl0sIm5hbWVzIjpbImdldENvdW50VXJsIiwib0NvbnRyb2xsZXIiLCJzVGFibGVJZCIsImdldFZpZXciLCJieUlkIiwiZ2V0U2VsZWN0ZWRLZXkiLCJnZXRDb250ZW50IiwiZGF0YSIsInNpbmdsZVRhYmxlSWQiLCJvVGFibGUiLCJvQmluZGluZyIsImdldFJvd0JpbmRpbmciLCJnZXRCaW5kaW5nIiwic0Rvd25sb2FkVXJsIiwiZ2V0RG93bmxvYWRVcmwiLCJhU3BsaXRVcmwiLCJzcGxpdCIsImJhc2VVcmwiLCJhU3VwcG9ydGVkUGFyYW1zIiwibGVuZ3RoIiwidXJsUGFyYW1zIiwiZm9yRWFjaCIsInVybFBhcmFtIiwiYVVybFBhcmFtUGFydHMiLCJwdXNoIiwiam9pbiIsImdldFNoYXJlVXJsIiwic0hhc2giLCJIYXNoQ2hhbmdlciIsImdldEluc3RhbmNlIiwiZ2V0SGFzaCIsInNCYXNlUGF0aCIsImhyZWZGb3JBcHBTcGVjaWZpY0hhc2giLCJzU2hhcmVVcmwiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhhc2giLCJnZXRTaGFyZUVtYWlsVXJsIiwib1VTaGVsbENvbnRhaW5lciIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsImdldEZMUFVybEFzeW5jIiwidGhlbiIsInNGTFBVcmwiLCJjYXRjaCIsInNFcnJvciIsIkxvZyIsImVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJkb2N1bWVudCIsIlVSTCIsImdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsIiwib0ZpbHRlckJhciIsIm9Db25kaXRpb25zIiwiZ2V0RmlsdGVyQ29uZGl0aW9ucyIsImJTYXZlQXNUaWxlU2VydmljZVVybEFsbG93ZWQiLCJTZW1hbnRpY0RhdGVPcGVyYXRvcnMiLCJoYXNTZW1hbnRpY0RhdGVPcGVyYXRpb25zIiwiZ2V0SmFtVXJsIiwic0phbVVybCIsInJ1bm5pbmdJbklmcmFtZSIsImdldEZMUFVybCIsInNVcmwiLCJzdWJzdHIiLCJpbmRleE9mIiwib3JpZ2luIiwicGF0aG5hbWUiLCJTaGFyZU92ZXJyaWRlIiwiYWRhcHRTaGFyZU1ldGFkYXRhIiwib1NoYXJlTWV0YWRhdGEiLCJvQXBwQ29tcG9uZW50IiwiQ29tbW9uVXRpbHMiLCJnZXRBcHBDb21wb25lbnQiLCJiYXNlIiwib01ldGFkYXRhIiwiZ2V0TWV0YWRhdGEiLCJvVUlNYW5pZmVzdCIsImdldE1hbmlmZXN0RW50cnkiLCJzSWNvbiIsImljb25zIiwiaWNvbiIsIm9BcHBNYW5pZmVzdCIsInNUaXRsZSIsInRpdGxlIiwidGlsZSIsInF1ZXJ5VXJsIiwiamFtIiwidXJsIiwiZW1haWwiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFNQSxXQUFTQSxXQUFULENBQXFCQyxXQUFyQixFQUFrRDtBQUFBOztBQUNqRDtBQUNBLFFBQUlDLFFBQVEsNEJBQUlELFdBQVcsQ0FBQ0UsT0FBWixHQUFzQkMsSUFBdEIsQ0FBMkIscUJBQTNCLENBQUosMERBQUcsc0JBQW1FQyxjQUFuRSxFQUFmOztBQUNBLFFBQUksQ0FBQ0gsUUFBTCxFQUFlO0FBQ2Q7QUFDQUEsTUFBQUEsUUFBUSxHQUFHRCxXQUFXLENBQUNFLE9BQVosR0FBc0JHLFVBQXRCLEdBQW1DLENBQW5DLEVBQXNDQyxJQUF0QyxHQUE2Q0MsYUFBeEQ7QUFDQTs7QUFDRCxRQUFNQyxNQUFNLEdBQUdSLFdBQVcsQ0FBQ0UsT0FBWixHQUFzQkMsSUFBdEIsQ0FBMkJGLFFBQTNCLENBQWY7O0FBQ0EsUUFBSSxDQUFDTyxNQUFMLEVBQWE7QUFDWixhQUFPLEVBQVA7QUFDQTs7QUFDRCxRQUFNQyxRQUFRLEdBQUdELE1BQU0sQ0FBQ0UsYUFBUCxNQUEwQkYsTUFBTSxDQUFDRyxVQUFQLENBQWtCLE9BQWxCLENBQTNDO0FBQ0EsUUFBTUMsWUFBWSxHQUFJSCxRQUFRLElBQUtBLFFBQUQsQ0FBa0JJLGNBQWxCLEVBQWIsSUFBb0QsRUFBekU7QUFDQSxRQUFNQyxTQUFTLEdBQUdGLFlBQVksQ0FBQ0csS0FBYixDQUFtQixHQUFuQixDQUFsQjtBQUNBLFFBQU1DLE9BQU8sR0FBR0YsU0FBUyxDQUFDLENBQUQsQ0FBVCxHQUFlLFVBQS9CLENBZGlELENBZWpEO0FBQ0E7QUFDQTs7QUFDQSxRQUFNRyxnQkFBdUIsR0FBRyxFQUFoQzs7QUFDQSxRQUFJSCxTQUFTLENBQUNJLE1BQVYsR0FBbUIsQ0FBdkIsRUFBMEI7QUFDekIsVUFBTUMsU0FBUyxHQUFHTCxTQUFTLENBQUMsQ0FBRCxDQUEzQjtBQUNBSyxNQUFBQSxTQUFTLENBQUNKLEtBQVYsQ0FBZ0IsR0FBaEIsRUFBcUJLLE9BQXJCLENBQTZCLFVBQVVDLFFBQVYsRUFBeUI7QUFDckQsWUFBTUMsY0FBYyxHQUFHRCxRQUFRLENBQUNOLEtBQVQsQ0FBZSxHQUFmLENBQXZCOztBQUNBLGdCQUFRTyxjQUFjLENBQUMsQ0FBRCxDQUF0QjtBQUNDLGVBQUssUUFBTDtBQUNBLGVBQUssU0FBTDtBQUNBLGVBQUssU0FBTDtBQUNDTCxZQUFBQSxnQkFBZ0IsQ0FBQ00sSUFBakIsQ0FBc0JGLFFBQXRCO0FBSkY7QUFNQSxPQVJEO0FBU0E7O0FBQ0QsV0FBT0wsT0FBTyxHQUFHQyxnQkFBZ0IsQ0FBQ08sSUFBakIsQ0FBc0IsR0FBdEIsQ0FBakI7QUFDQTs7QUFDRCxXQUFTQyxXQUFULEdBQXVCO0FBQ3RCLFFBQU1DLEtBQUssR0FBR0MsV0FBVyxDQUFDQyxXQUFaLEdBQTBCQyxPQUExQixFQUFkO0FBQ0EsUUFBTUMsU0FBUyxHQUFJSCxXQUFXLENBQUNDLFdBQVosRUFBRCxDQUFtQ0csc0JBQW5DLEdBQ2RKLFdBQVcsQ0FBQ0MsV0FBWixFQUFELENBQW1DRyxzQkFBbkMsQ0FBMEQsRUFBMUQsQ0FEZSxHQUVmLEVBRkg7QUFHQSxRQUFNQyxTQUFTLEdBQUdOLEtBQUssR0FBR0ksU0FBUyxHQUFHSixLQUFmLEdBQXVCTyxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLElBQTlEO0FBQ0EsV0FBT0gsU0FBUDtBQUNBOztBQUNELFdBQVNJLGdCQUFULEdBQTRCO0FBQzNCLFFBQU1DLGdCQUFnQixHQUFHQyxHQUFHLENBQUNDLE1BQUosSUFBY0QsR0FBRyxDQUFDQyxNQUFKLENBQVdDLFNBQWxEOztBQUNBLFFBQUlILGdCQUFKLEVBQXNCO0FBQ3JCLGFBQU9BLGdCQUFnQixDQUNyQkksY0FESyxDQUNVLElBRFYsRUFFTEMsSUFGSyxDQUVBLFVBQVVDLE9BQVYsRUFBd0I7QUFDN0IsZUFBT0EsT0FBUDtBQUNBLE9BSkssRUFLTEMsS0FMSyxDQUtDLFVBQVVDLE1BQVYsRUFBdUI7QUFDN0JDLFFBQUFBLEdBQUcsQ0FBQ0MsS0FBSixDQUFVLGdGQUFWLEVBQTRGRixNQUE1RjtBQUNBLE9BUEssQ0FBUDtBQVFBLEtBVEQsTUFTTztBQUNOLGFBQU9HLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQkMsUUFBUSxDQUFDQyxHQUF6QixDQUFQO0FBQ0E7QUFDRDs7QUFDRCxXQUFTQyx1QkFBVCxDQUFpQ3BELFdBQWpDLEVBQW1EO0FBQ2xELFFBQU1xRCxVQUFVLEdBQUdyRCxXQUFXLENBQUNFLE9BQVosR0FBc0JDLElBQXRCLENBQTJCSCxXQUFXLENBQUNFLE9BQVosR0FBc0JHLFVBQXRCLEdBQW1DLENBQW5DLEVBQXNDQyxJQUF0QyxDQUEyQyxhQUEzQyxDQUEzQixDQUFuQjs7QUFDQSxRQUFJK0MsVUFBSixFQUFnQjtBQUNmLFVBQU1DLFdBQVcsR0FBR0QsVUFBVSxDQUFDRSxtQkFBWCxFQUFwQjtBQUNBLFVBQU1DLDRCQUE0QixHQUFHQyxxQkFBcUIsQ0FBQ0MseUJBQXRCLENBQWdESixXQUFoRCxDQUFyQzs7QUFDQSxVQUFJRSw0QkFBSixFQUFrQztBQUNqQyxlQUFPekQsV0FBVyxDQUFDQyxXQUFELENBQWxCO0FBQ0E7QUFDRDs7QUFDRCxXQUFPLEVBQVA7QUFDQTs7QUFDRCxXQUFTMkQsU0FBVCxHQUFxQjtBQUNwQixRQUFNakMsS0FBSyxHQUFHQyxXQUFXLENBQUNDLFdBQVosR0FBMEJDLE9BQTFCLEVBQWQ7QUFDQSxRQUFNQyxTQUFTLEdBQUlILFdBQVcsQ0FBQ0MsV0FBWixFQUFELENBQW1DRyxzQkFBbkMsR0FDZEosV0FBVyxDQUFDQyxXQUFaLEVBQUQsQ0FBbUNHLHNCQUFuQyxDQUEwRCxFQUExRCxDQURlLEdBRWYsRUFGSDtBQUdBLFFBQU02QixPQUFPLEdBQUdsQyxLQUFLLEdBQUdJLFNBQVMsR0FBR0osS0FBZixHQUF1Qk8sTUFBTSxDQUFDQyxRQUFQLENBQWdCQyxJQUE1RCxDQUxvQixDQU1wQjtBQUNBO0FBQ0E7O0FBQ0EsUUFBSUcsR0FBRyxDQUFDQyxNQUFKLElBQWNELEdBQUcsQ0FBQ0MsTUFBSixDQUFXQyxTQUF6QixJQUFzQ0YsR0FBRyxDQUFDQyxNQUFKLENBQVdDLFNBQVgsQ0FBcUJxQixlQUEzRCxJQUE4RXZCLEdBQUcsQ0FBQ0MsTUFBSixDQUFXQyxTQUFYLENBQXFCcUIsZUFBckIsRUFBbEYsRUFBMEg7QUFDekh2QixNQUFBQSxHQUFHLENBQUNDLE1BQUosQ0FBV0MsU0FBWCxDQUFxQnNCLFNBQXJCLENBQStCLElBQS9CLEVBQ0VwQixJQURGLENBQ08sVUFBVXFCLElBQVYsRUFBcUI7QUFDMUIsZUFBT0EsSUFBSSxDQUFDQyxNQUFMLENBQVksQ0FBWixFQUFlRCxJQUFJLENBQUNFLE9BQUwsQ0FBYSxHQUFiLENBQWYsSUFBb0NMLE9BQTNDO0FBQ0EsT0FIRixFQUlFaEIsS0FKRixDQUlRLFVBQVVDLE1BQVYsRUFBdUI7QUFDN0JDLFFBQUFBLEdBQUcsQ0FBQ0MsS0FBSixDQUFVLGdGQUFWLEVBQTRGRixNQUE1RjtBQUNBLE9BTkY7QUFPQSxLQVJELE1BUU87QUFDTixhQUFPWixNQUFNLENBQUNDLFFBQVAsQ0FBZ0JnQyxNQUFoQixHQUF5QmpDLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQmlDLFFBQXpDLEdBQW9EUCxPQUEzRDtBQUNBO0FBQ0Q7O0FBRUQsTUFBTVEsYUFBYSxHQUFHO0FBQ3JCQyxJQUFBQSxrQkFBa0IsRUFBRSxVQUF1QkMsY0FBdkIsRUFBNEM7QUFBQTs7QUFDL0R0QixNQUFBQSxPQUFPLENBQUNDLE9BQVIsQ0FBZ0JVLFNBQVMsRUFBekIsRUFDRWpCLElBREYsQ0FDTyxVQUFDa0IsT0FBRCxFQUFpQztBQUN0QyxZQUFNVyxhQUFhLEdBQUdDLFdBQVcsQ0FBQ0MsZUFBWixDQUE0QixLQUFJLENBQUNDLElBQUwsQ0FBVXhFLE9BQVYsRUFBNUIsQ0FBdEI7QUFDQSxZQUFNeUUsU0FBUyxHQUFHSixhQUFhLENBQUNLLFdBQWQsRUFBbEI7QUFDQSxZQUFNQyxXQUFXLEdBQUdGLFNBQVMsQ0FBQ0csZ0JBQVYsQ0FBMkIsUUFBM0IsQ0FBcEI7QUFDQSxZQUFNQyxLQUFLLEdBQUlGLFdBQVcsSUFBSUEsV0FBVyxDQUFDRyxLQUEzQixJQUFvQ0gsV0FBVyxDQUFDRyxLQUFaLENBQWtCQyxJQUF2RCxJQUFnRSxFQUE5RTtBQUNBLFlBQU1DLFlBQVksR0FBR1AsU0FBUyxDQUFDRyxnQkFBVixDQUEyQixTQUEzQixDQUFyQjtBQUNBLFlBQU1LLE1BQU0sR0FBSUQsWUFBWSxJQUFJQSxZQUFZLENBQUNFLEtBQTlCLElBQXdDLEVBQXZELENBTnNDLENBT3RDOztBQUNBZCxRQUFBQSxjQUFjLENBQUNlLElBQWYsR0FBc0I7QUFDckJKLFVBQUFBLElBQUksRUFBRUYsS0FEZTtBQUVyQkssVUFBQUEsS0FBSyxFQUFFRCxNQUZjO0FBR3JCRyxVQUFBQSxRQUFRLEVBQUVsQyx1QkFBdUIsQ0FBQyxLQUFJLENBQUNzQixJQUFOO0FBSFosU0FBdEI7QUFLQUosUUFBQUEsY0FBYyxDQUFDYyxLQUFmLEdBQXVCbEMsUUFBUSxDQUFDa0MsS0FBaEM7QUFDQWQsUUFBQUEsY0FBYyxDQUFDaUIsR0FBZixDQUFtQkMsR0FBbkIsR0FBeUI1QixPQUF6QjtBQUNBLE9BaEJGLEVBaUJFaEIsS0FqQkYsQ0FpQlEsVUFBVUcsS0FBVixFQUFzQjtBQUM1QkQsUUFBQUEsR0FBRyxDQUFDQyxLQUFKLENBQVVBLEtBQVY7QUFDQSxPQW5CRjtBQXFCQUMsTUFBQUEsT0FBTyxDQUFDQyxPQUFSLENBQWdCeEIsV0FBVyxFQUEzQixFQUNFaUIsSUFERixDQUNPLFVBQVVxQixJQUFWLEVBQXFCO0FBQzFCTyxRQUFBQSxjQUFjLENBQUNrQixHQUFmLEdBQXFCekIsSUFBckI7QUFDQSxPQUhGLEVBSUVuQixLQUpGLENBSVEsVUFBVUcsS0FBVixFQUFzQjtBQUM1QkQsUUFBQUEsR0FBRyxDQUFDQyxLQUFKLENBQVVBLEtBQVY7QUFDQSxPQU5GO0FBT0EsYUFBT0MsT0FBTyxDQUFDQyxPQUFSLENBQWdCYixnQkFBZ0IsRUFBaEMsRUFBb0NNLElBQXBDLENBQXlDLFVBQVVDLE9BQVYsRUFBd0I7QUFDdkUyQixRQUFBQSxjQUFjLENBQUNtQixLQUFmLENBQXFCRCxHQUFyQixHQUEyQjdDLE9BQTNCO0FBQ0EsZUFBTzJCLGNBQVA7QUFDQSxPQUhNLENBQVA7QUFJQTtBQWxDb0IsR0FBdEI7U0FxQ2VGLGEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IEJhc2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IFNoYXJlIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9TaGFyZVwiO1xuaW1wb3J0IFNlbWFudGljRGF0ZU9wZXJhdG9ycyBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TZW1hbnRpY0RhdGVPcGVyYXRvcnNcIjtcbmltcG9ydCBJY29uVGFiQmFyIGZyb20gXCJzYXAvbS9JY29uVGFiQmFyXCI7XG5pbXBvcnQgSGFzaENoYW5nZXIgZnJvbSBcInNhcC91aS9jb3JlL3JvdXRpbmcvSGFzaENoYW5nZXJcIjtcbmltcG9ydCBUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuZnVuY3Rpb24gZ2V0Q291bnRVcmwob0NvbnRyb2xsZXI6IEJhc2VDb250cm9sbGVyKSB7XG5cdC8vIGdldCBzZWxlY3RlZCB0YWJsZSBJRCBmcm9tIG11bHRpcGxlIHRhYnNcblx0bGV0IHNUYWJsZUlkID0gKG9Db250cm9sbGVyLmdldFZpZXcoKS5ieUlkKFwiZmU6OlRhYk11bHRpcGxlTW9kZVwiKSBhcyBJY29uVGFiQmFyKT8uZ2V0U2VsZWN0ZWRLZXkoKTtcblx0aWYgKCFzVGFibGVJZCkge1xuXHRcdC8vIGlmIG5vdCBtdWx0aXBsZSB0YWJzLCBnZXQgc2luZ2xlIHRhYmxlIElEXG5cdFx0c1RhYmxlSWQgPSBvQ29udHJvbGxlci5nZXRWaWV3KCkuZ2V0Q29udGVudCgpWzBdLmRhdGEoKS5zaW5nbGVUYWJsZUlkO1xuXHR9XG5cdGNvbnN0IG9UYWJsZSA9IG9Db250cm9sbGVyLmdldFZpZXcoKS5ieUlkKHNUYWJsZUlkKSBhcyBUYWJsZTtcblx0aWYgKCFvVGFibGUpIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRjb25zdCBvQmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCkgfHwgb1RhYmxlLmdldEJpbmRpbmcoXCJpdGVtc1wiKTtcblx0Y29uc3Qgc0Rvd25sb2FkVXJsID0gKG9CaW5kaW5nICYmIChvQmluZGluZyBhcyBhbnkpLmdldERvd25sb2FkVXJsKCkpIHx8IFwiXCI7XG5cdGNvbnN0IGFTcGxpdFVybCA9IHNEb3dubG9hZFVybC5zcGxpdChcIj9cIik7XG5cdGNvbnN0IGJhc2VVcmwgPSBhU3BsaXRVcmxbMF0gKyBcIi8kY291bnQ/XCI7XG5cdC8vIGdldERvd25sb2FkVXJsKCkgcmV0dXJucyB1cmwgd2l0aCAkc2VsZWN0LCAkZXhwYW5kIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiAvJGNvdW50IGlzIHVzZWQgdG8gZ2V0IHRoZSByZWNvcmQgY291bnQuIG9ubHkgJGFwcGx5LCAkc2VhcmNoLCAkZmlsdGVyIGlzIHN1cHBvcnRlZFxuXHQvLyA/JGNvdW50PXRydWUgcmV0dXJucyBjb3VudCBpbiBhIGZvcm1hdCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIGJ5IEZMUCB5ZXQuXG5cdC8vIGN1cnJlbnRseSBzdXBwb3J0ZWQgZm9ybWF0IGZvciB2NCBpcyAuLi9jb3VudC4uIG9ubHkgKHdoZXJlIHRpbGUgcHJldmlldyB3aWxsIHN0aWxsIG5vdCB3b3JrKVxuXHRjb25zdCBhU3VwcG9ydGVkUGFyYW1zOiBhbnlbXSA9IFtdO1xuXHRpZiAoYVNwbGl0VXJsLmxlbmd0aCA+IDEpIHtcblx0XHRjb25zdCB1cmxQYXJhbXMgPSBhU3BsaXRVcmxbMV07XG5cdFx0dXJsUGFyYW1zLnNwbGl0KFwiJlwiKS5mb3JFYWNoKGZ1bmN0aW9uICh1cmxQYXJhbTogYW55KSB7XG5cdFx0XHRjb25zdCBhVXJsUGFyYW1QYXJ0cyA9IHVybFBhcmFtLnNwbGl0KFwiPVwiKTtcblx0XHRcdHN3aXRjaCAoYVVybFBhcmFtUGFydHNbMF0pIHtcblx0XHRcdFx0Y2FzZSBcIiRhcHBseVwiOlxuXHRcdFx0XHRjYXNlIFwiJHNlYXJjaFwiOlxuXHRcdFx0XHRjYXNlIFwiJGZpbHRlclwiOlxuXHRcdFx0XHRcdGFTdXBwb3J0ZWRQYXJhbXMucHVzaCh1cmxQYXJhbSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGJhc2VVcmwgKyBhU3VwcG9ydGVkUGFyYW1zLmpvaW4oXCImXCIpO1xufVxuZnVuY3Rpb24gZ2V0U2hhcmVVcmwoKSB7XG5cdGNvbnN0IHNIYXNoID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCk7XG5cdGNvbnN0IHNCYXNlUGF0aCA9IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdD8gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoKFwiXCIpXG5cdFx0OiBcIlwiO1xuXHRjb25zdCBzU2hhcmVVcmwgPSBzSGFzaCA/IHNCYXNlUGF0aCArIHNIYXNoIDogd2luZG93LmxvY2F0aW9uLmhhc2g7XG5cdHJldHVybiBzU2hhcmVVcmw7XG59XG5mdW5jdGlvbiBnZXRTaGFyZUVtYWlsVXJsKCkge1xuXHRjb25zdCBvVVNoZWxsQ29udGFpbmVyID0gc2FwLnVzaGVsbCAmJiBzYXAudXNoZWxsLkNvbnRhaW5lcjtcblx0aWYgKG9VU2hlbGxDb250YWluZXIpIHtcblx0XHRyZXR1cm4gb1VTaGVsbENvbnRhaW5lclxuXHRcdFx0LmdldEZMUFVybEFzeW5jKHRydWUpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoc0ZMUFVybDogYW55KSB7XG5cdFx0XHRcdHJldHVybiBzRkxQVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoc0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiQ291bGQgbm90IHJldHJpZXZlIGNGTFAgVVJMIGZvciB0aGUgc2hhcmluZyBkaWFsb2cgKGRpYWxvZyB3aWxsIG5vdCBiZSBvcGVuZWQpXCIsIHNFcnJvcik7XG5cdFx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRvY3VtZW50LlVSTCk7XG5cdH1cbn1cbmZ1bmN0aW9uIGdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsKG9Db250cm9sbGVyOiBhbnkpIHtcblx0Y29uc3Qgb0ZpbHRlckJhciA9IG9Db250cm9sbGVyLmdldFZpZXcoKS5ieUlkKG9Db250cm9sbGVyLmdldFZpZXcoKS5nZXRDb250ZW50KClbMF0uZGF0YShcImZpbHRlckJhcklkXCIpKTtcblx0aWYgKG9GaWx0ZXJCYXIpIHtcblx0XHRjb25zdCBvQ29uZGl0aW9ucyA9IG9GaWx0ZXJCYXIuZ2V0RmlsdGVyQ29uZGl0aW9ucygpO1xuXHRcdGNvbnN0IGJTYXZlQXNUaWxlU2VydmljZVVybEFsbG93ZWQgPSBTZW1hbnRpY0RhdGVPcGVyYXRvcnMuaGFzU2VtYW50aWNEYXRlT3BlcmF0aW9ucyhvQ29uZGl0aW9ucyk7XG5cdFx0aWYgKGJTYXZlQXNUaWxlU2VydmljZVVybEFsbG93ZWQpIHtcblx0XHRcdHJldHVybiBnZXRDb3VudFVybChvQ29udHJvbGxlcik7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBcIlwiO1xufVxuZnVuY3Rpb24gZ2V0SmFtVXJsKCkge1xuXHRjb25zdCBzSGFzaCA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpO1xuXHRjb25zdCBzQmFzZVBhdGggPSAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2hcblx0XHQ/IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKVxuXHRcdDogXCJcIjtcblx0Y29uc3Qgc0phbVVybCA9IHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0Ly8gaW4gY2FzZSB3ZSBhcmUgaW4gY0ZMUCBzY2VuYXJpbywgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmdcblx0Ly8gaW5zaWRlIGFuIGlmcmFtZSwgYW5kIHRoZXJlIGZvciB3ZSBuZWVkIHRvIGdldCB0aGUgY0ZMUCBVUkxcblx0Ly8gYW5kIG5vdCAnZG9jdW1lbnQuVVJMJyB0aGF0IHJlcHJlc2VudHMgdGhlIGlmcmFtZSBVUkxcblx0aWYgKHNhcC51c2hlbGwgJiYgc2FwLnVzaGVsbC5Db250YWluZXIgJiYgc2FwLnVzaGVsbC5Db250YWluZXIucnVubmluZ0luSWZyYW1lICYmIHNhcC51c2hlbGwuQ29udGFpbmVyLnJ1bm5pbmdJbklmcmFtZSgpKSB7XG5cdFx0c2FwLnVzaGVsbC5Db250YWluZXIuZ2V0RkxQVXJsKHRydWUpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoc1VybDogYW55KSB7XG5cdFx0XHRcdHJldHVybiBzVXJsLnN1YnN0cigwLCBzVXJsLmluZGV4T2YoXCIjXCIpKSArIHNKYW1Vcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgc0phbVVybDtcblx0fVxufVxuXG5jb25zdCBTaGFyZU92ZXJyaWRlID0ge1xuXHRhZGFwdFNoYXJlTWV0YWRhdGE6IGZ1bmN0aW9uICh0aGlzOiBTaGFyZSwgb1NoYXJlTWV0YWRhdGE6IGFueSkge1xuXHRcdFByb21pc2UucmVzb2x2ZShnZXRKYW1VcmwoKSlcblx0XHRcdC50aGVuKChzSmFtVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLmJhc2UuZ2V0VmlldygpKTtcblx0XHRcdFx0Y29uc3Qgb01ldGFkYXRhID0gb0FwcENvbXBvbmVudC5nZXRNZXRhZGF0YSgpO1xuXHRcdFx0XHRjb25zdCBvVUlNYW5pZmVzdCA9IG9NZXRhZGF0YS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLnVpXCIpO1xuXHRcdFx0XHRjb25zdCBzSWNvbiA9IChvVUlNYW5pZmVzdCAmJiBvVUlNYW5pZmVzdC5pY29ucyAmJiBvVUlNYW5pZmVzdC5pY29ucy5pY29uKSB8fCBcIlwiO1xuXHRcdFx0XHRjb25zdCBvQXBwTWFuaWZlc3QgPSBvTWV0YWRhdGEuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5hcHBcIik7XG5cdFx0XHRcdGNvbnN0IHNUaXRsZSA9IChvQXBwTWFuaWZlc3QgJiYgb0FwcE1hbmlmZXN0LnRpdGxlKSB8fCBcIlwiO1xuXHRcdFx0XHQvLyBUT0RPOiBjaGVjayBpZiB0aGVyZSBpcyBhbnkgc2VtYW50aWMgZGF0ZSB1c2VkIGJlZm9yZSBhZGRpbmcgc2VydmljZVVSTCBhcyBCTEk6RklPUklURUNIUDEtMTgwMjNcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEudGlsZSA9IHtcblx0XHRcdFx0XHRpY29uOiBzSWNvbixcblx0XHRcdFx0XHR0aXRsZTogc1RpdGxlLFxuXHRcdFx0XHRcdHF1ZXJ5VXJsOiBnZXRTYXZlQXNUaWxlU2VydmljZVVybCh0aGlzLmJhc2UpXG5cdFx0XHRcdH07XG5cdFx0XHRcdG9TaGFyZU1ldGFkYXRhLnRpdGxlID0gZG9jdW1lbnQudGl0bGU7XG5cdFx0XHRcdG9TaGFyZU1ldGFkYXRhLmphbS51cmwgPSBzSmFtVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoZXJyb3IpO1xuXHRcdFx0fSk7XG5cblx0XHRQcm9taXNlLnJlc29sdmUoZ2V0U2hhcmVVcmwoKSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzVXJsOiBhbnkpIHtcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEudXJsID0gc1VybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKGVycm9yKTtcblx0XHRcdH0pO1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2V0U2hhcmVFbWFpbFVybCgpKS50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnVybCA9IHNGTFBVcmw7XG5cdFx0XHRyZXR1cm4gb1NoYXJlTWV0YWRhdGE7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNoYXJlT3ZlcnJpZGU7XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDb3VudFVybCIsIm9Db250cm9sbGVyIiwic1RhYmxlSWQiLCJnZXRWaWV3IiwiYnlJZCIsImdldFNlbGVjdGVkS2V5IiwiZ2V0Q29udGVudCIsImRhdGEiLCJzaW5nbGVUYWJsZUlkIiwib1RhYmxlIiwib0JpbmRpbmciLCJnZXRSb3dCaW5kaW5nIiwiZ2V0QmluZGluZyIsInNEb3dubG9hZFVybCIsImdldERvd25sb2FkVXJsIiwiYVNwbGl0VXJsIiwic3BsaXQiLCJiYXNlVXJsIiwiYVN1cHBvcnRlZFBhcmFtcyIsImxlbmd0aCIsInVybFBhcmFtcyIsImZvckVhY2giLCJ1cmxQYXJhbSIsImFVcmxQYXJhbVBhcnRzIiwicHVzaCIsImpvaW4iLCJnZXRTaGFyZVVybCIsInNIYXNoIiwiSGFzaENoYW5nZXIiLCJnZXRJbnN0YW5jZSIsImdldEhhc2giLCJzQmFzZVBhdGgiLCJocmVmRm9yQXBwU3BlY2lmaWNIYXNoIiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwiZ2V0U2hhcmVFbWFpbFVybCIsIm9VU2hlbGxDb250YWluZXIiLCJzYXAiLCJ1c2hlbGwiLCJDb250YWluZXIiLCJnZXRGTFBVcmxBc3luYyIsInRoZW4iLCJzRkxQVXJsIiwiY2F0Y2giLCJzRXJyb3IiLCJMb2ciLCJlcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwiZG9jdW1lbnQiLCJVUkwiLCJnZXRTYXZlQXNUaWxlU2VydmljZVVybCIsIm9GaWx0ZXJCYXIiLCJvQ29uZGl0aW9ucyIsImdldEZpbHRlckNvbmRpdGlvbnMiLCJiU2F2ZUFzVGlsZVNlcnZpY2VVcmxBbGxvd2VkIiwiU2VtYW50aWNEYXRlT3BlcmF0b3JzIiwiaGFzU2VtYW50aWNEYXRlT3BlcmF0aW9ucyIsImdldEphbVVybCIsInNKYW1VcmwiLCJydW5uaW5nSW5JZnJhbWUiLCJnZXRGTFBVcmwiLCJzVXJsIiwic3Vic3RyIiwiaW5kZXhPZiIsIm9yaWdpbiIsInBhdGhuYW1lIiwiU2hhcmVPdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiYmFzZSIsIm9NZXRhZGF0YSIsImdldE1ldGFkYXRhIiwib1VJTWFuaWZlc3QiLCJnZXRNYW5pZmVzdEVudHJ5Iiwic0ljb24iLCJpY29ucyIsImljb24iLCJvQXBwTWFuaWZlc3QiLCJzVGl0bGUiLCJ0aXRsZSIsInRpbGUiLCJxdWVyeVVybCIsImphbSIsInVybCIsImVtYWlsIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTaGFyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIEJhc2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgU2hhcmUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NoYXJlXCI7XG5pbXBvcnQgU2VtYW50aWNEYXRlT3BlcmF0b3JzIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1NlbWFudGljRGF0ZU9wZXJhdG9yc1wiO1xuaW1wb3J0IHR5cGUgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IEhhc2hDaGFuZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9yb3V0aW5nL0hhc2hDaGFuZ2VyXCI7XG5pbXBvcnQgdHlwZSBUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuZnVuY3Rpb24gZ2V0Q291bnRVcmwob0NvbnRyb2xsZXI6IEJhc2VDb250cm9sbGVyKSB7XG5cdC8vIGdldCBzZWxlY3RlZCB0YWJsZSBJRCBmcm9tIG11bHRpcGxlIHRhYnNcblx0bGV0IHNUYWJsZUlkID0gKG9Db250cm9sbGVyLmdldFZpZXcoKS5ieUlkKFwiZmU6OlRhYk11bHRpcGxlTW9kZVwiKSBhcyBJY29uVGFiQmFyKT8uZ2V0U2VsZWN0ZWRLZXkoKTtcblx0aWYgKCFzVGFibGVJZCkge1xuXHRcdC8vIGlmIG5vdCBtdWx0aXBsZSB0YWJzLCBnZXQgc2luZ2xlIHRhYmxlIElEXG5cdFx0c1RhYmxlSWQgPSBvQ29udHJvbGxlci5nZXRWaWV3KCkuZ2V0Q29udGVudCgpWzBdLmRhdGEoKS5zaW5nbGVUYWJsZUlkO1xuXHR9XG5cdGNvbnN0IG9UYWJsZSA9IG9Db250cm9sbGVyLmdldFZpZXcoKS5ieUlkKHNUYWJsZUlkKSBhcyBUYWJsZTtcblx0aWYgKCFvVGFibGUpIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRjb25zdCBvQmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCkgfHwgb1RhYmxlLmdldEJpbmRpbmcoXCJpdGVtc1wiKTtcblx0Y29uc3Qgc0Rvd25sb2FkVXJsID0gKG9CaW5kaW5nICYmIChvQmluZGluZyBhcyBhbnkpLmdldERvd25sb2FkVXJsKCkpIHx8IFwiXCI7XG5cdGNvbnN0IGFTcGxpdFVybCA9IHNEb3dubG9hZFVybC5zcGxpdChcIj9cIik7XG5cdGNvbnN0IGJhc2VVcmwgPSBgJHthU3BsaXRVcmxbMF19LyRjb3VudD9gO1xuXHQvLyBnZXREb3dubG9hZFVybCgpIHJldHVybnMgdXJsIHdpdGggJHNlbGVjdCwgJGV4cGFuZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gLyRjb3VudCBpcyB1c2VkIHRvIGdldCB0aGUgcmVjb3JkIGNvdW50LiBvbmx5ICRhcHBseSwgJHNlYXJjaCwgJGZpbHRlciBpcyBzdXBwb3J0ZWRcblx0Ly8gPyRjb3VudD10cnVlIHJldHVybnMgY291bnQgaW4gYSBmb3JtYXQgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSBGTFAgeWV0LlxuXHQvLyBjdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1hdCBmb3IgdjQgaXMgLi4vY291bnQuLiBvbmx5ICh3aGVyZSB0aWxlIHByZXZpZXcgd2lsbCBzdGlsbCBub3Qgd29yaylcblx0Y29uc3QgYVN1cHBvcnRlZFBhcmFtczogYW55W10gPSBbXTtcblx0aWYgKGFTcGxpdFVybC5sZW5ndGggPiAxKSB7XG5cdFx0Y29uc3QgdXJsUGFyYW1zID0gYVNwbGl0VXJsWzFdO1xuXHRcdHVybFBhcmFtcy5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbiAodXJsUGFyYW06IGFueSkge1xuXHRcdFx0Y29uc3QgYVVybFBhcmFtUGFydHMgPSB1cmxQYXJhbS5zcGxpdChcIj1cIik7XG5cdFx0XHRzd2l0Y2ggKGFVcmxQYXJhbVBhcnRzWzBdKSB7XG5cdFx0XHRcdGNhc2UgXCIkYXBwbHlcIjpcblx0XHRcdFx0Y2FzZSBcIiRzZWFyY2hcIjpcblx0XHRcdFx0Y2FzZSBcIiRmaWx0ZXJcIjpcblx0XHRcdFx0XHRhU3VwcG9ydGVkUGFyYW1zLnB1c2godXJsUGFyYW0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBiYXNlVXJsICsgYVN1cHBvcnRlZFBhcmFtcy5qb2luKFwiJlwiKTtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlVXJsKCkge1xuXHRjb25zdCBzSGFzaCA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpO1xuXHRjb25zdCBzQmFzZVBhdGggPSAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2hcblx0XHQ/IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKVxuXHRcdDogXCJcIjtcblx0cmV0dXJuIHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlRW1haWxVcmwoKSB7XG5cdGNvbnN0IG9VU2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyO1xuXHRpZiAob1VTaGVsbENvbnRhaW5lcikge1xuXHRcdHJldHVybiBvVVNoZWxsQ29udGFpbmVyXG5cdFx0XHQuZ2V0RkxQVXJsQXN5bmModHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNGTFBVcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuVVJMKTtcblx0fVxufVxuZnVuY3Rpb24gZ2V0U2F2ZUFzVGlsZVNlcnZpY2VVcmwob0NvbnRyb2xsZXI6IGFueSkge1xuXHRjb25zdCBvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpLmJ5SWQob0NvbnRyb2xsZXIuZ2V0VmlldygpLmdldENvbnRlbnQoKVswXS5kYXRhKFwiZmlsdGVyQmFySWRcIikpO1xuXHRpZiAob0ZpbHRlckJhcikge1xuXHRcdGNvbnN0IG9Db25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRGaWx0ZXJDb25kaXRpb25zKCk7XG5cdFx0Y29uc3QgYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCA9IFNlbWFudGljRGF0ZU9wZXJhdG9ycy5oYXNTZW1hbnRpY0RhdGVPcGVyYXRpb25zKG9Db25kaXRpb25zKTtcblx0XHRpZiAoYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCkge1xuXHRcdFx0cmV0dXJuIGdldENvdW50VXJsKG9Db250cm9sbGVyKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIFwiXCI7XG59XG5mdW5jdGlvbiBnZXRKYW1VcmwoKSB7XG5cdGNvbnN0IHNIYXNoID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCk7XG5cdGNvbnN0IHNCYXNlUGF0aCA9IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdD8gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoKFwiXCIpXG5cdFx0OiBcIlwiO1xuXHRjb25zdCBzSmFtVXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHQvLyBpbiBjYXNlIHdlIGFyZSBpbiBjRkxQIHNjZW5hcmlvLCB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZ1xuXHQvLyBpbnNpZGUgYW4gaWZyYW1lLCBhbmQgdGhlcmUgZm9yIHdlIG5lZWQgdG8gZ2V0IHRoZSBjRkxQIFVSTFxuXHQvLyBhbmQgbm90ICdkb2N1bWVudC5VUkwnIHRoYXQgcmVwcmVzZW50cyB0aGUgaWZyYW1lIFVSTFxuXHRpZiAoc2FwLnVzaGVsbCAmJiBzYXAudXNoZWxsLkNvbnRhaW5lciAmJiBzYXAudXNoZWxsLkNvbnRhaW5lci5ydW5uaW5nSW5JZnJhbWUgJiYgc2FwLnVzaGVsbC5Db250YWluZXIucnVubmluZ0luSWZyYW1lKCkpIHtcblx0XHRzYXAudXNoZWxsLkNvbnRhaW5lci5nZXRGTFBVcmwodHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNVcmwuc3Vic3RyKDAsIHNVcmwuaW5kZXhPZihcIiNcIikpICsgc0phbVVybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKHNFcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjRkxQIFVSTCBmb3IgdGhlIHNoYXJpbmcgZGlhbG9nIChkaWFsb2cgd2lsbCBub3QgYmUgb3BlbmVkKVwiLCBzRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBzSmFtVXJsO1xuXHR9XG59XG5cbmNvbnN0IFNoYXJlT3ZlcnJpZGUgPSB7XG5cdGFkYXB0U2hhcmVNZXRhZGF0YTogZnVuY3Rpb24gKHRoaXM6IFNoYXJlLCBvU2hhcmVNZXRhZGF0YTogYW55KSB7XG5cdFx0UHJvbWlzZS5yZXNvbHZlKGdldEphbVVybCgpKVxuXHRcdFx0LnRoZW4oKHNKYW1Vcmw6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuYmFzZS5nZXRWaWV3KCkpO1xuXHRcdFx0XHRjb25zdCBvTWV0YWRhdGEgPSBvQXBwQ29tcG9uZW50LmdldE1ldGFkYXRhKCk7XG5cdFx0XHRcdGNvbnN0IG9VSU1hbmlmZXN0ID0gb01ldGFkYXRhLmdldE1hbmlmZXN0RW50cnkoXCJzYXAudWlcIik7XG5cdFx0XHRcdGNvbnN0IHNJY29uID0gKG9VSU1hbmlmZXN0ICYmIG9VSU1hbmlmZXN0Lmljb25zICYmIG9VSU1hbmlmZXN0Lmljb25zLmljb24pIHx8IFwiXCI7XG5cdFx0XHRcdGNvbnN0IG9BcHBNYW5pZmVzdCA9IG9NZXRhZGF0YS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmFwcFwiKTtcblx0XHRcdFx0Y29uc3Qgc1RpdGxlID0gKG9BcHBNYW5pZmVzdCAmJiBvQXBwTWFuaWZlc3QudGl0bGUpIHx8IFwiXCI7XG5cdFx0XHRcdC8vIFRPRE86IGNoZWNrIGlmIHRoZXJlIGlzIGFueSBzZW1hbnRpYyBkYXRlIHVzZWQgYmVmb3JlIGFkZGluZyBzZXJ2aWNlVVJMIGFzIEJMSTpGSU9SSVRFQ0hQMS0xODAyM1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS50aWxlID0ge1xuXHRcdFx0XHRcdGljb246IHNJY29uLFxuXHRcdFx0XHRcdHRpdGxlOiBzVGl0bGUsXG5cdFx0XHRcdFx0cXVlcnlVcmw6IGdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsKHRoaXMuYmFzZSlcblx0XHRcdFx0fTtcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEudGl0bGUgPSBkb2N1bWVudC50aXRsZTtcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEuamFtLnVybCA9IHNKYW1Vcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0XHR9KTtcblxuXHRcdFByb21pc2UucmVzb2x2ZShnZXRTaGFyZVVybCgpKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKHNVcmw6IGFueSkge1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS51cmwgPSBzVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoZXJyb3IpO1xuXHRcdFx0fSk7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShnZXRTaGFyZUVtYWlsVXJsKCkpLnRoZW4oZnVuY3Rpb24gKHNGTFBVcmw6IGFueSkge1xuXHRcdFx0b1NoYXJlTWV0YWRhdGEuZW1haWwudXJsID0gc0ZMUFVybDtcblx0XHRcdHJldHVybiBvU2hhcmVNZXRhZGF0YTtcblx0XHR9KTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2hhcmVPdmVycmlkZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQVFBLFNBQVNBLFdBQVQsQ0FBcUJDLFdBQXJCLEVBQWtEO0lBQUE7O0lBQ2pEO0lBQ0EsSUFBSUMsUUFBUSw0QkFBSUQsV0FBVyxDQUFDRSxPQUFaLEdBQXNCQyxJQUF0QixDQUEyQixxQkFBM0IsQ0FBSiwwREFBRyxzQkFBbUVDLGNBQW5FLEVBQWY7O0lBQ0EsSUFBSSxDQUFDSCxRQUFMLEVBQWU7TUFDZDtNQUNBQSxRQUFRLEdBQUdELFdBQVcsQ0FBQ0UsT0FBWixHQUFzQkcsVUFBdEIsR0FBbUMsQ0FBbkMsRUFBc0NDLElBQXRD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
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
|
-
import BaseController from "sap/fe/core/BaseController";
|
|
2
|
+
import type BaseController from "sap/fe/core/BaseController";
|
|
3
3
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
4
|
-
import Share from "sap/fe/core/controllerextensions/Share";
|
|
4
|
+
import type Share from "sap/fe/core/controllerextensions/Share";
|
|
5
5
|
import SemanticDateOperators from "sap/fe/core/helpers/SemanticDateOperators";
|
|
6
|
-
import IconTabBar from "sap/m/IconTabBar";
|
|
6
|
+
import type IconTabBar from "sap/m/IconTabBar";
|
|
7
7
|
import HashChanger from "sap/ui/core/routing/HashChanger";
|
|
8
|
-
import Table from "sap/ui/mdc/Table";
|
|
8
|
+
import type Table from "sap/ui/mdc/Table";
|
|
9
9
|
function getCountUrl(oController: BaseController) {
|
|
10
10
|
// get selected table ID from multiple tabs
|
|
11
11
|
let sTableId = (oController.getView().byId("fe::TabMultipleMode") as IconTabBar)?.getSelectedKey();
|
|
@@ -20,7 +20,7 @@ function getCountUrl(oController: BaseController) {
|
|
|
20
20
|
const oBinding = oTable.getRowBinding() || oTable.getBinding("items");
|
|
21
21
|
const sDownloadUrl = (oBinding && (oBinding as any).getDownloadUrl()) || "";
|
|
22
22
|
const aSplitUrl = sDownloadUrl.split("?");
|
|
23
|
-
const baseUrl = aSplitUrl[0]
|
|
23
|
+
const baseUrl = `${aSplitUrl[0]}/$count?`;
|
|
24
24
|
// getDownloadUrl() returns url with $select, $expand which is not supported when /$count is used to get the record count. only $apply, $search, $filter is supported
|
|
25
25
|
// ?$count=true returns count in a format which is not supported by FLP yet.
|
|
26
26
|
// currently supported format for v4 is ../count.. only (where tile preview will still not work)
|
|
@@ -44,8 +44,7 @@ function getShareUrl() {
|
|
|
44
44
|
const sBasePath = (HashChanger.getInstance() as any).hrefForAppSpecificHash
|
|
45
45
|
? (HashChanger.getInstance() as any).hrefForAppSpecificHash("")
|
|
46
46
|
: "";
|
|
47
|
-
|
|
48
|
-
return sShareUrl;
|
|
47
|
+
return sHash ? sBasePath + sHash : window.location.hash;
|
|
49
48
|
}
|
|
50
49
|
function getShareEmailUrl() {
|
|
51
50
|
const oUShellContainer = sap.ushell && sap.ushell.Container;
|