@sapui5/sap.fe.core 1.136.3 → 1.136.6
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 +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +3 -3
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +6 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +21 -5
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +19 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +4 -3
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +10 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +6 -5
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +8 -4
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +4 -3
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +6 -2
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +4 -17
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +6 -19
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.js +15 -1
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.ts +18 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +4 -4
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +3 -3
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle_ar.properties +2 -0
- package/src/sap/fe/core/messagebundle_bg.properties +2 -0
- package/src/sap/fe/core/messagebundle_ca.properties +2 -0
- package/src/sap/fe/core/messagebundle_cnr.properties +2 -0
- package/src/sap/fe/core/messagebundle_cs.properties +2 -0
- package/src/sap/fe/core/messagebundle_cy.properties +2 -0
- package/src/sap/fe/core/messagebundle_da.properties +2 -0
- package/src/sap/fe/core/messagebundle_de.properties +2 -0
- package/src/sap/fe/core/messagebundle_el.properties +2 -0
- package/src/sap/fe/core/messagebundle_en.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
- package/src/sap/fe/core/messagebundle_es.properties +3 -1
- package/src/sap/fe/core/messagebundle_es_MX.properties +2 -0
- package/src/sap/fe/core/messagebundle_et.properties +2 -0
- package/src/sap/fe/core/messagebundle_fi.properties +2 -0
- package/src/sap/fe/core/messagebundle_fr.properties +2 -0
- package/src/sap/fe/core/messagebundle_fr_CA.properties +2 -0
- package/src/sap/fe/core/messagebundle_hi.properties +2 -0
- package/src/sap/fe/core/messagebundle_hr.properties +2 -0
- package/src/sap/fe/core/messagebundle_hu.properties +2 -0
- package/src/sap/fe/core/messagebundle_id.properties +2 -0
- package/src/sap/fe/core/messagebundle_it.properties +2 -0
- package/src/sap/fe/core/messagebundle_iw.properties +2 -0
- package/src/sap/fe/core/messagebundle_ja.properties +2 -0
- package/src/sap/fe/core/messagebundle_kk.properties +2 -0
- package/src/sap/fe/core/messagebundle_ko.properties +2 -0
- package/src/sap/fe/core/messagebundle_lt.properties +2 -0
- package/src/sap/fe/core/messagebundle_lv.properties +2 -0
- package/src/sap/fe/core/messagebundle_mk.properties +2 -0
- package/src/sap/fe/core/messagebundle_ms.properties +2 -0
- package/src/sap/fe/core/messagebundle_nl.properties +2 -0
- package/src/sap/fe/core/messagebundle_no.properties +2 -0
- package/src/sap/fe/core/messagebundle_pl.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -0
- package/src/sap/fe/core/messagebundle_ro.properties +2 -0
- package/src/sap/fe/core/messagebundle_ru.properties +2 -0
- package/src/sap/fe/core/messagebundle_sh.properties +2 -0
- package/src/sap/fe/core/messagebundle_sk.properties +2 -0
- package/src/sap/fe/core/messagebundle_sl.properties +2 -0
- package/src/sap/fe/core/messagebundle_sr.properties +2 -0
- package/src/sap/fe/core/messagebundle_sv.properties +2 -0
- package/src/sap/fe/core/messagebundle_th.properties +2 -0
- package/src/sap/fe/core/messagebundle_tr.properties +2 -0
- package/src/sap/fe/core/messagebundle_uk.properties +2 -0
- package/src/sap/fe/core/messagebundle_vi.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
- package/src/sap/fe/core/templating/PropertyHelper.js +3 -2
- package/src/sap/fe/core/templating/PropertyHelper.ts +2 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
2
2
|
import type ResourceModel from "sap/fe/core/ResourceModel";
|
|
3
|
+
import type MessageHandler from "sap/fe/core/controllerextensions/MessageHandler";
|
|
3
4
|
import type { CustomMessage, ShowMessageDialogParameter } from "sap/fe/core/controllerextensions/MessageHandler";
|
|
4
5
|
import { getResourceModel } from "sap/fe/core/helpers/ResourceModelHelper";
|
|
5
6
|
import type Field from "sap/fe/macros/Field";
|
|
@@ -109,7 +110,8 @@ export type messageHandlingType = {
|
|
|
109
110
|
viewType?: string,
|
|
110
111
|
showStateMessages?: boolean,
|
|
111
112
|
messageDialogParameter?: ShowMessageDialogParameter,
|
|
112
|
-
resourceModel?: ResourceModel
|
|
113
|
+
resourceModel?: ResourceModel,
|
|
114
|
+
messageHandler?: MessageHandler
|
|
113
115
|
) => MessageUIDecisions;
|
|
114
116
|
showMessagesInUI: (uiDecision: MessageUIDecisions) => Promise<void>;
|
|
115
117
|
removeUnboundTransitionMessages: () => void;
|
|
@@ -186,7 +188,6 @@ export type messageHandlingType = {
|
|
|
186
188
|
setGroupNameLRTable: (control: Control | undefined, aModelData: MessageWithHeader, sActionName: string | undefined) => void;
|
|
187
189
|
isControlInTable: (oTable: MDCTable, sControlId: string) => UI5Element[] | boolean;
|
|
188
190
|
isControlPartOfCreationRow: (oControl: UI5Element | undefined) => boolean;
|
|
189
|
-
removeMessageShownInMessageStrip: (transientMessages: Message[], context: Context) => Message[];
|
|
190
191
|
getFiltersForMessages: (showBoundTransition: boolean, showStateMessages?: boolean) => Filter[];
|
|
191
192
|
showMessageToast: (message: Message) => Promise<void>;
|
|
192
193
|
showMessageDialogControl: (uiDecisions: MessageUIDecisions, runToTest?: boolean) => Promise<void | Dialog>;
|
|
@@ -583,7 +584,8 @@ function getUIDecisions(
|
|
|
583
584
|
viewType?: string,
|
|
584
585
|
showStateMessages = false,
|
|
585
586
|
messageDialogParameter?: ShowMessageDialogParameter,
|
|
586
|
-
resourceModel?: ResourceModel
|
|
587
|
+
resourceModel?: ResourceModel,
|
|
588
|
+
messageHandlder?: MessageHandler
|
|
587
589
|
): MessageUIDecisions {
|
|
588
590
|
// Add Custom messages
|
|
589
591
|
// TODO: Will these messages be part of transitionMessages?
|
|
@@ -602,7 +604,7 @@ function getUIDecisions(
|
|
|
602
604
|
const filters = getFiltersForMessages(showBoundTransition, showStateMessages);
|
|
603
605
|
messagesToShow = getMessagesToShow(filters, messagesToShow ?? []);
|
|
604
606
|
// handle context bound messages, If there is a single message of which is bounded to the context then remove that from the dialog
|
|
605
|
-
messagesToShow =
|
|
607
|
+
messagesToShow = messageHandlder?.filterContextBoundMessages(messagesToShow, context) || messagesToShow;
|
|
606
608
|
({ messagesToShow, uiElementToUse } = processMessagesFromChangesetFailure({ messagesToShow, uiElementToUse }));
|
|
607
609
|
// Modify ETag Messages
|
|
608
610
|
const hasEtagMessage = this.modifyETagMessagesOnly(Library.getResourceBundleFor("sap.fe.core")!, concurrentEditFlag);
|
|
@@ -1040,20 +1042,6 @@ function showMessageBoxPerType(formattedText: string, close: { onClose: Function
|
|
|
1040
1042
|
}
|
|
1041
1043
|
}
|
|
1042
1044
|
|
|
1043
|
-
function removeMessageShownInMessageStrip(transitionMessages: Message[], context: Context): Message[] {
|
|
1044
|
-
const boundContextMessages: Message[] = [];
|
|
1045
|
-
transitionMessages?.forEach((message: Message) => {
|
|
1046
|
-
if (message.getTargets().length === 1 && message.getTargets()[0] === context?.getPath() && message.getPersistent() === true) {
|
|
1047
|
-
boundContextMessages.push(message);
|
|
1048
|
-
}
|
|
1049
|
-
});
|
|
1050
|
-
if (boundContextMessages.length === 1) {
|
|
1051
|
-
transitionMessages = transitionMessages?.filter(function (message: Message) {
|
|
1052
|
-
return message !== boundContextMessages[0];
|
|
1053
|
-
});
|
|
1054
|
-
}
|
|
1055
|
-
return transitionMessages;
|
|
1056
|
-
}
|
|
1057
1045
|
/**
|
|
1058
1046
|
* This function sets the group name for all messages in a dialog.
|
|
1059
1047
|
* @param aModelDataArray Messages array
|
|
@@ -1982,7 +1970,6 @@ const messageHandling: messageHandlingType = {
|
|
|
1982
1970
|
setGroupNameLRTable: setGroupNameLRTable,
|
|
1983
1971
|
isControlInTable: isControlInTable,
|
|
1984
1972
|
isControlPartOfCreationRow: isControlPartOfCreationRow,
|
|
1985
|
-
removeMessageShownInMessageStrip: removeMessageShownInMessageStrip,
|
|
1986
1973
|
getFiltersForMessages: getFiltersForMessages,
|
|
1987
1974
|
showMessagesInUI: showMessagesInUI,
|
|
1988
1975
|
showMessageDialogControl: showMessageDialogControl,
|
|
@@ -93,6 +93,12 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/base/EventDelegateHook", "../
|
|
|
93
93
|
});
|
|
94
94
|
const isUsingBindingOnVisibility = formContainer?.getBindingInfo?.("visible")?.parts?.length > 0;
|
|
95
95
|
|
|
96
|
+
/**
|
|
97
|
+
* This function checks the visibility of every field within the FormElement.
|
|
98
|
+
* It hides the FormElement when the visibility of all contained fields is set to false
|
|
99
|
+
*/
|
|
100
|
+
this.hideFormElements(formElements);
|
|
101
|
+
|
|
96
102
|
/**
|
|
97
103
|
* This condition ignores the form container when a new group is created using the Adapt UI.
|
|
98
104
|
* If the group is empty, we should not hide it, as it is required to be there to add additional form elements.
|
|
@@ -121,8 +127,16 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/base/EventDelegateHook", "../
|
|
|
121
127
|
}
|
|
122
128
|
return parent?.isA("sap.uxap.ObjectPageLayout") === true ? parent : null;
|
|
123
129
|
};
|
|
130
|
+
_proto.hideFormElements = function hideFormElements(formElements) {
|
|
131
|
+
if (!Array.isArray(formElements)) return;
|
|
132
|
+
for (const formElement of formElements) {
|
|
133
|
+
const fields = formElement?.getFields();
|
|
134
|
+
const areAllFieldsHidden = fields?.every(field => field?.getVisible?.() === false);
|
|
135
|
+
if (areAllFieldsHidden) formElement.setVisible(false);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
124
138
|
return HideFormGroupAutomatically;
|
|
125
139
|
}(EventDelegateHook)) || _class);
|
|
126
140
|
return HideFormGroupAutomatically;
|
|
127
141
|
}, false);
|
|
128
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJIaWRlRm9ybUdyb3VwQXV0b21hdGljYWxseSIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9FdmVudERlbGVnYXRlSG9vayIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiYXBwQ29tcG9uZW50IiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0UGFyZW50IiwiaGlkZVN1YnNlY3Rpb25zRm9ybUNvbnRhaW5lciIsImhpZGVIZWFkZXJDb250YWluZXIiLCJwYXJlbnQiLCJpc0EiLCJmb3JtQ29udGFpbmVycyIsImdldEZvcm1Db250YWluZXJzIiwiaGlkZUZvcm1Db250YWluZXJzIiwib3AiLCJmZXRjaE9iamVjdFBhZ2UiLCJzZWN0aW9ucyIsImdldFNlY3Rpb25zIiwiaXNBcnJheSIsInNlY3Rpb24iLCJzdWJTZWN0aW9ucyIsImdldFN1YlNlY3Rpb25zIiwic3ViU2VjdGlvbiIsInN1YlNlY3Rpb25CbG9ja3MiLCJnZXRCbG9ja3MiLCJpc0VkaXRhYmxlSGVhZGVyIiwic29tZSIsImhlYWRlckJsb2NrIiwic3ViU2VjdGlvbkJsb2NrIiwiZm9ybUNvbnRhaW5lciIsImZvcm1FbGVtZW50cyIsImdldEZvcm1FbGVtZW50cyIsImlzVGhlcmVBbnlWaXNpYmxlSXRlbSIsImZlIiwiZ2V0VmlzaWJsZSIsImlzVXNpbmdQYXJ0T2ZQcmV2aWV3QW5ub3RhdGlvbiIsImZvcm1FbGVtZW50IiwiYmluZGluZ0luZm8iLCJnZXRCaW5kaW5nSW5mbyIsInBhcnRzIiwiYmluZGluZ0luZm9QYXJ0IiwicGF0aCIsImlzVXNpbmdCaW5kaW5nT25WaXNpYmlsaXR5IiwiaXNBZGFwdGF0aW9uTW9kZSIsImRhdGEiLCJzZXRWaXNpYmxlIiwiRXZlbnREZWxlZ2F0ZUhvb2siXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkhpZGVGb3JtR3JvdXBBdXRvbWF0aWNhbGx5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEV2ZW50RGVsZWdhdGVIb29rIGZyb20gXCJzYXAvZmUvYmFzZS9FdmVudERlbGVnYXRlSG9va1wiO1xuaW1wb3J0IHR5cGUgU2VjdGlvbiBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9TZWN0aW9uXCI7XG5pbXBvcnQgdHlwZSBTdWJTZWN0aW9uQmxvY2sgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9jb250cm9scy9TdWJTZWN0aW9uQmxvY2tcIjtcbmltcG9ydCB0eXBlIEZvcm0gZnJvbSBcInNhcC91aS9sYXlvdXQvZm9ybS9Gb3JtXCI7XG5pbXBvcnQgdHlwZSBGb3JtQ29udGFpbmVyIGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUNvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL21kYy9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBPYmplY3RQYWdlTGF5b3V0IGZyb20gXCJzYXAvdXhhcC9PYmplY3RQYWdlTGF5b3V0XCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcIi4uL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCIuLi9Db21tb25VdGlsc1wiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5IaWRlRm9ybUdyb3VwQXV0b21hdGljYWxseVwiKVxuY2xhc3MgSGlkZUZvcm1Hcm91cEF1dG9tYXRpY2FsbHkgZXh0ZW5kcyBFdmVudERlbGVnYXRlSG9vayB7XG5cdGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG5cblx0b25CZWZvcmVSZW5kZXJpbmcoKTogdm9pZCB7XG5cdFx0dGhpcy5hcHBDb21wb25lbnQgPSBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQodGhpcy5nZXRQYXJlbnQoKSBhcyBDb250cm9sKTtcblxuXHRcdHRoaXMuaGlkZVN1YnNlY3Rpb25zRm9ybUNvbnRhaW5lcigpO1xuXHRcdHRoaXMuaGlkZUhlYWRlckNvbnRhaW5lcigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyB3aGV0aGVyIGFsbCB0aGUgZm9ybSBlbGVtZW50cyBhcmUgaGlkZGVuLCBhbmQgdGhlbiBoaWRlcyB0aGUgZm9ybSBjb250YWluZXIuXG5cdCAqL1xuXHRwcml2YXRlIGhpZGVTdWJzZWN0aW9uc0Zvcm1Db250YWluZXIoKTogdm9pZCB7XG5cdFx0Y29uc3QgcGFyZW50ID0gdGhpcz8uZ2V0UGFyZW50KCk7XG5cdFx0aWYgKHBhcmVudD8uaXNBPEZvcm0+KFwic2FwLnVpLmxheW91dC5mb3JtLkZvcm1cIikpIHtcblx0XHRcdGNvbnN0IGZvcm1Db250YWluZXJzID0gcGFyZW50Py5nZXRGb3JtQ29udGFpbmVycygpO1xuXHRcdFx0dGhpcy5oaWRlRm9ybUNvbnRhaW5lcnMoZm9ybUNvbnRhaW5lcnMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3Mgd2hldGhlciBhbGwgdGhlIGZvcm0gZWxlbWVudHMgd2l0aGluIGFuIGVkaXRhYmxlIGhlYWRlciBhcmUgaGlkZGVuLCBhbmQgdGhlbiBoaWRlcyB0aGUgZm9ybSBjb250YWluZXIuXG5cdCAqL1xuXHRwcml2YXRlIGhpZGVIZWFkZXJDb250YWluZXIoKTogdm9pZCB7XG5cdFx0Y29uc3Qgb3AgPSB0aGlzLmZldGNoT2JqZWN0UGFnZSgpO1xuXHRcdC8qKlxuXHRcdCAqIEdldCB0aGUgc2VjdGlvbnMgb2YgdGhlIG9iamVjdCBwYWdlXG5cdFx0ICovXG5cdFx0Y29uc3Qgc2VjdGlvbnMgPSBvcD8uZ2V0U2VjdGlvbnM/LigpIGFzIFNlY3Rpb25bXTtcblxuXHRcdGlmICghQXJyYXkuaXNBcnJheShzZWN0aW9ucykpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnMpIHtcblx0XHRcdC8qKlxuXHRcdFx0ICogTmF2aWdhdGUgdGhyb3VnaCB0aGUgc3Vic2VjdGlvbnMgd2l0aGluIHRoZSBzZWN0aW9ucy5cblx0XHRcdCAqL1xuXHRcdFx0Y29uc3Qgc3ViU2VjdGlvbnMgPSBzZWN0aW9uPy5nZXRTdWJTZWN0aW9ucygpO1xuXG5cdFx0XHRmb3IgKGNvbnN0IHN1YlNlY3Rpb24gb2Ygc3ViU2VjdGlvbnMpIHtcblx0XHRcdFx0LyoqXG5cdFx0XHRcdCAqIEdldCB0aGUgc3Vic2VjdGlvbiBibG9ja3MuXG5cdFx0XHRcdCAqL1xuXHRcdFx0XHRjb25zdCBzdWJTZWN0aW9uQmxvY2tzID0gc3ViU2VjdGlvbj8uZ2V0QmxvY2tzKCkgYXMgU3ViU2VjdGlvbkJsb2NrW107XG5cdFx0XHRcdC8qKlxuXHRcdFx0XHQgKiBDaGVja3MgaWYgdGhlcmUgaXMgYSBmb3JtIGluc2lkZSB0aGUgYmxvY2suXG5cdFx0XHRcdCAqL1xuXHRcdFx0XHRjb25zdCBpc0VkaXRhYmxlSGVhZGVyID0gc3ViU2VjdGlvbkJsb2Nrcz8uc29tZSgoaGVhZGVyQmxvY2spID0+IGhlYWRlckJsb2NrLmlzQTxGb3JtPihcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtXCIpKTtcblxuXHRcdFx0XHRpZiAoIUFycmF5LmlzQXJyYXkoc3ViU2VjdGlvbkJsb2NrcykgfHwgIWlzRWRpdGFibGVIZWFkZXIpIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZvciAoY29uc3Qgc3ViU2VjdGlvbkJsb2NrIG9mIHN1YlNlY3Rpb25CbG9ja3MpIHtcblx0XHRcdFx0XHQvKipcblx0XHRcdFx0XHQgKiBHZXQgdGhlIGZvcm0gY29udGFpbmVycyB3aXRoaW4gdGhlIHN1YnNlY3Rpb24uXG5cdFx0XHRcdFx0ICovXG5cdFx0XHRcdFx0aWYgKHN1YlNlY3Rpb25CbG9jay5pc0E8Rm9ybT4oXCJzYXAudWkubGF5b3V0LmZvcm0uRm9ybVwiKSkge1xuXHRcdFx0XHRcdFx0Y29uc3QgZm9ybUNvbnRhaW5lcnMgPSBzdWJTZWN0aW9uQmxvY2s/LmdldEZvcm1Db250YWluZXJzPy4oKTtcblx0XHRcdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGZvcm1Db250YWluZXJzKSkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVGb3JtQ29udGFpbmVycyhmb3JtQ29udGFpbmVycyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBoaWRlRm9ybUNvbnRhaW5lcnMoZm9ybUNvbnRhaW5lcnM6IEZvcm1Db250YWluZXJbXSk6IHZvaWQge1xuXHRcdGlmICghQXJyYXkuaXNBcnJheShmb3JtQ29udGFpbmVycykpIHJldHVybjtcblxuXHRcdGZvciAoY29uc3QgZm9ybUNvbnRhaW5lciBvZiBmb3JtQ29udGFpbmVycykge1xuXHRcdFx0Y29uc3QgZm9ybUVsZW1lbnRzID0gZm9ybUNvbnRhaW5lcj8uZ2V0Rm9ybUVsZW1lbnRzKCk7XG5cdFx0XHRjb25zdCBpc1RoZXJlQW55VmlzaWJsZUl0ZW0gPSBmb3JtRWxlbWVudHM/LnNvbWUoKGZlKSA9PiBmZT8uZ2V0VmlzaWJsZSgpKTtcblx0XHRcdGNvbnN0IGlzVXNpbmdQYXJ0T2ZQcmV2aWV3QW5ub3RhdGlvbiA9IGZvcm1FbGVtZW50cy5zb21lKChmb3JtRWxlbWVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCBiaW5kaW5nSW5mbyA9IGZvcm1FbGVtZW50Py5nZXRCaW5kaW5nSW5mbz8uKFwidmlzaWJsZVwiKTtcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoYmluZGluZ0luZm8/LnBhcnRzKSlcblx0XHRcdFx0XHRyZXR1cm4gYmluZGluZ0luZm8ucGFydHMuc29tZSgoYmluZGluZ0luZm9QYXJ0OiB7IHBhdGg6IHN0cmluZyB9KSA9PiBiaW5kaW5nSW5mb1BhcnQucGF0aCA9PT0gXCJzaG93RGV0YWlsc1wiKTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fSk7XG5cdFx0XHRjb25zdCBpc1VzaW5nQmluZGluZ09uVmlzaWJpbGl0eSA9IGZvcm1Db250YWluZXI/LmdldEJpbmRpbmdJbmZvPy4oXCJ2aXNpYmxlXCIpPy5wYXJ0cz8ubGVuZ3RoID4gMDtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGlzIGNvbmRpdGlvbiBpZ25vcmVzIHRoZSBmb3JtIGNvbnRhaW5lciB3aGVuIGEgbmV3IGdyb3VwIGlzIGNyZWF0ZWQgdXNpbmcgdGhlIEFkYXB0IFVJLlxuXHRcdFx0ICogSWYgdGhlIGdyb3VwIGlzIGVtcHR5LCB3ZSBzaG91bGQgbm90IGhpZGUgaXQsIGFzIGl0IGlzIHJlcXVpcmVkIHRvIGJlIHRoZXJlIHRvIGFkZCBhZGRpdGlvbmFsIGZvcm0gZWxlbWVudHMuXG5cdFx0XHQgKiBJZiB0aGUgZm9ybSBjb250YWluZXIgaXRzZWxmIGlzIG1hcmtlZCBhcyBVSS5IaWRkZW4sIHRoZW4gd2Ugc2hvdWxkIG5vdCBoaWRlIGl0LlxuXHRcdFx0ICovXG5cdFx0XHRpZiAoXG5cdFx0XHRcdCh0aGlzLmFwcENvbXBvbmVudD8uaXNBZGFwdGF0aW9uTW9kZSgpID09PSB0cnVlICYmIGZvcm1FbGVtZW50cz8ubGVuZ3RoID09PSAwKSB8fFxuXHRcdFx0XHRpc1VzaW5nUGFydE9mUHJldmlld0Fubm90YXRpb24gfHxcblx0XHRcdFx0aXNVc2luZ0JpbmRpbmdPblZpc2liaWxpdHkgfHxcblx0XHRcdFx0Zm9ybUNvbnRhaW5lci5kYXRhKFwiVWlIaWRkZW5QcmVzZW50XCIpID09PSBcInRydWVcIlxuXHRcdFx0KSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlcmUncyBhIGNoYW5nZSBpbiB0aGUgZm9ybSwgd2UgbmVlZCB0byBjb25zaWRlciB0d28gc2NlbmFyaW9zLlxuXHRcdFx0ICogRmlyc3QsIGlmIHRoZSBmb3JtIGNvbnRhaW5lciBpcyBoaWRkZW4sIHdlIG11c3QgZGV0ZXJtaW5lIHdoZXRoZXIgaXQgc2hvdWxkIGJlIHNob3duIGFnYWluLlxuXHRcdFx0ICogU2Vjb25kLCBpZiB0aGUgZm9ybSBjb250YWluZXIgaXMgY3VycmVudGx5IGRpc3BsYXllZCwgd2UgbmVlZCB0byBhc3Nlc3Mgd2hldGhlciBpdCBzaG91bGQgYmUgaGlkZGVuLlxuXHRcdFx0ICovXG5cdFx0XHRpZiAoaXNUaGVyZUFueVZpc2libGVJdGVtID09PSBmYWxzZSkge1xuXHRcdFx0XHRmb3JtQ29udGFpbmVyLnNldFZpc2libGUoZmFsc2UpO1xuXHRcdFx0fSBlbHNlIGlmICghZm9ybUNvbnRhaW5lci5nZXRWaXNpYmxlKCkpIHtcblx0XHRcdFx0Zm9ybUNvbnRhaW5lci5zZXRWaXNpYmxlKHRydWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgZmV0Y2hPYmplY3RQYWdlKCk6IE9iamVjdFBhZ2VMYXlvdXQgfCBudWxsIHtcblx0XHRsZXQgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoKTtcblxuXHRcdHdoaWxlICghKHBhcmVudD8uaXNBPE9iamVjdFBhZ2VMYXlvdXQ+KFwic2FwLnV4YXAuT2JqZWN0UGFnZUxheW91dFwiKSA/PyBmYWxzZSkgJiYgdHlwZW9mIHBhcmVudD8uZ2V0UGFyZW50ID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRcdHBhcmVudCA9IHBhcmVudC5nZXRQYXJlbnQoKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcGFyZW50Py5pc0E8T2JqZWN0UGFnZUxheW91dD4oXCJzYXAudXhhcC5PYmplY3RQYWdlTGF5b3V0XCIpID09PSB0cnVlID8gKHBhcmVudCBhcyBPYmplY3RQYWdlTGF5b3V0KSA6IG51bGw7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSGlkZUZvcm1Hcm91cEF1dG9tYXRp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
|
|
142
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJIaWRlRm9ybUdyb3VwQXV0b21hdGljYWxseSIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9FdmVudERlbGVnYXRlSG9vayIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiYXBwQ29tcG9uZW50IiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0UGFyZW50IiwiaGlkZVN1YnNlY3Rpb25zRm9ybUNvbnRhaW5lciIsImhpZGVIZWFkZXJDb250YWluZXIiLCJwYXJlbnQiLCJpc0EiLCJmb3JtQ29udGFpbmVycyIsImdldEZvcm1Db250YWluZXJzIiwiaGlkZUZvcm1Db250YWluZXJzIiwib3AiLCJmZXRjaE9iamVjdFBhZ2UiLCJzZWN0aW9ucyIsImdldFNlY3Rpb25zIiwiaXNBcnJheSIsInNlY3Rpb24iLCJzdWJTZWN0aW9ucyIsImdldFN1YlNlY3Rpb25zIiwic3ViU2VjdGlvbiIsInN1YlNlY3Rpb25CbG9ja3MiLCJnZXRCbG9ja3MiLCJpc0VkaXRhYmxlSGVhZGVyIiwic29tZSIsImhlYWRlckJsb2NrIiwic3ViU2VjdGlvbkJsb2NrIiwiZm9ybUNvbnRhaW5lciIsImZvcm1FbGVtZW50cyIsImdldEZvcm1FbGVtZW50cyIsImlzVGhlcmVBbnlWaXNpYmxlSXRlbSIsImZlIiwiZ2V0VmlzaWJsZSIsImlzVXNpbmdQYXJ0T2ZQcmV2aWV3QW5ub3RhdGlvbiIsImZvcm1FbGVtZW50IiwiYmluZGluZ0luZm8iLCJnZXRCaW5kaW5nSW5mbyIsInBhcnRzIiwiYmluZGluZ0luZm9QYXJ0IiwicGF0aCIsImlzVXNpbmdCaW5kaW5nT25WaXNpYmlsaXR5IiwiaGlkZUZvcm1FbGVtZW50cyIsImlzQWRhcHRhdGlvbk1vZGUiLCJkYXRhIiwic2V0VmlzaWJsZSIsImZpZWxkcyIsImdldEZpZWxkcyIsImFyZUFsbEZpZWxkc0hpZGRlbiIsImV2ZXJ5IiwiZmllbGQiLCJFdmVudERlbGVnYXRlSG9vayJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSGlkZUZvcm1Hcm91cEF1dG9tYXRpY2FsbHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgRXZlbnREZWxlZ2F0ZUhvb2sgZnJvbSBcInNhcC9mZS9iYXNlL0V2ZW50RGVsZWdhdGVIb29rXCI7XG5pbXBvcnQgdHlwZSBTZWN0aW9uIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL1NlY3Rpb25cIjtcbmltcG9ydCB0eXBlIFN1YlNlY3Rpb25CbG9jayBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NvbnRyb2xzL1N1YlNlY3Rpb25CbG9ja1wiO1xuaW1wb3J0IHR5cGUgRm9ybSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL0Zvcm1cIjtcbmltcG9ydCB0eXBlIEZvcm1Db250YWluZXIgZnJvbSBcInNhcC91aS9sYXlvdXQvZm9ybS9Gb3JtQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBGb3JtRWxlbWVudCBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL0Zvcm1FbGVtZW50XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvbWRjL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIE9iamVjdFBhZ2VMYXlvdXQgZnJvbSBcInNhcC91eGFwL09iamVjdFBhZ2VMYXlvdXRcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwiLi4vQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcIi4uL0NvbW1vblV0aWxzXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkhpZGVGb3JtR3JvdXBBdXRvbWF0aWNhbGx5XCIpXG5jbGFzcyBIaWRlRm9ybUdyb3VwQXV0b21hdGljYWxseSBleHRlbmRzIEV2ZW50RGVsZWdhdGVIb29rIHtcblx0YXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQgfCBudWxsID0gbnVsbDtcblxuXHRvbkJlZm9yZVJlbmRlcmluZygpOiB2b2lkIHtcblx0XHR0aGlzLmFwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLmdldFBhcmVudCgpIGFzIENvbnRyb2wpO1xuXG5cdFx0dGhpcy5oaWRlU3Vic2VjdGlvbnNGb3JtQ29udGFpbmVyKCk7XG5cdFx0dGhpcy5oaWRlSGVhZGVyQ29udGFpbmVyKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIHdoZXRoZXIgYWxsIHRoZSBmb3JtIGVsZW1lbnRzIGFyZSBoaWRkZW4sIGFuZCB0aGVuIGhpZGVzIHRoZSBmb3JtIGNvbnRhaW5lci5cblx0ICovXG5cdHByaXZhdGUgaGlkZVN1YnNlY3Rpb25zRm9ybUNvbnRhaW5lcigpOiB2b2lkIHtcblx0XHRjb25zdCBwYXJlbnQgPSB0aGlzPy5nZXRQYXJlbnQoKTtcblx0XHRpZiAocGFyZW50Py5pc0E8Rm9ybT4oXCJzYXAudWkubGF5b3V0LmZvcm0uRm9ybVwiKSkge1xuXHRcdFx0Y29uc3QgZm9ybUNvbnRhaW5lcnMgPSBwYXJlbnQ/LmdldEZvcm1Db250YWluZXJzKCk7XG5cdFx0XHR0aGlzLmhpZGVGb3JtQ29udGFpbmVycyhmb3JtQ29udGFpbmVycyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyB3aGV0aGVyIGFsbCB0aGUgZm9ybSBlbGVtZW50cyB3aXRoaW4gYW4gZWRpdGFibGUgaGVhZGVyIGFyZSBoaWRkZW4sIGFuZCB0aGVuIGhpZGVzIHRoZSBmb3JtIGNvbnRhaW5lci5cblx0ICovXG5cdHByaXZhdGUgaGlkZUhlYWRlckNvbnRhaW5lcigpOiB2b2lkIHtcblx0XHRjb25zdCBvcCA9IHRoaXMuZmV0Y2hPYmplY3RQYWdlKCk7XG5cdFx0LyoqXG5cdFx0ICogR2V0IHRoZSBzZWN0aW9ucyBvZiB0aGUgb2JqZWN0IHBhZ2Vcblx0XHQgKi9cblx0XHRjb25zdCBzZWN0aW9ucyA9IG9wPy5nZXRTZWN0aW9ucz8uKCkgYXMgU2VjdGlvbltdO1xuXG5cdFx0aWYgKCFBcnJheS5pc0FycmF5KHNlY3Rpb25zKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBOYXZpZ2F0ZSB0aHJvdWdoIHRoZSBzdWJzZWN0aW9ucyB3aXRoaW4gdGhlIHNlY3Rpb25zLlxuXHRcdFx0ICovXG5cdFx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHNlY3Rpb24/LmdldFN1YlNlY3Rpb25zKCk7XG5cblx0XHRcdGZvciAoY29uc3Qgc3ViU2VjdGlvbiBvZiBzdWJTZWN0aW9ucykge1xuXHRcdFx0XHQvKipcblx0XHRcdFx0ICogR2V0IHRoZSBzdWJzZWN0aW9uIGJsb2Nrcy5cblx0XHRcdFx0ICovXG5cdFx0XHRcdGNvbnN0IHN1YlNlY3Rpb25CbG9ja3MgPSBzdWJTZWN0aW9uPy5nZXRCbG9ja3MoKSBhcyBTdWJTZWN0aW9uQmxvY2tbXTtcblx0XHRcdFx0LyoqXG5cdFx0XHRcdCAqIENoZWNrcyBpZiB0aGVyZSBpcyBhIGZvcm0gaW5zaWRlIHRoZSBibG9jay5cblx0XHRcdFx0ICovXG5cdFx0XHRcdGNvbnN0IGlzRWRpdGFibGVIZWFkZXIgPSBzdWJTZWN0aW9uQmxvY2tzPy5zb21lKChoZWFkZXJCbG9jaykgPT4gaGVhZGVyQmxvY2suaXNBPEZvcm0+KFwic2FwLnVpLmxheW91dC5mb3JtLkZvcm1cIikpO1xuXG5cdFx0XHRcdGlmICghQXJyYXkuaXNBcnJheShzdWJTZWN0aW9uQmxvY2tzKSB8fCAhaXNFZGl0YWJsZUhlYWRlcikge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zm9yIChjb25zdCBzdWJTZWN0aW9uQmxvY2sgb2Ygc3ViU2VjdGlvbkJsb2Nrcykge1xuXHRcdFx0XHRcdC8qKlxuXHRcdFx0XHRcdCAqIEdldCB0aGUgZm9ybSBjb250YWluZXJzIHdpdGhpbiB0aGUgc3Vic2VjdGlvbi5cblx0XHRcdFx0XHQgKi9cblx0XHRcdFx0XHRpZiAoc3ViU2VjdGlvbkJsb2NrLmlzQTxGb3JtPihcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtXCIpKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBmb3JtQ29udGFpbmVycyA9IHN1YlNlY3Rpb25CbG9jaz8uZ2V0Rm9ybUNvbnRhaW5lcnM/LigpO1xuXHRcdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoZm9ybUNvbnRhaW5lcnMpKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuaGlkZUZvcm1Db250YWluZXJzKGZvcm1Db250YWluZXJzKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGhpZGVGb3JtQ29udGFpbmVycyhmb3JtQ29udGFpbmVyczogRm9ybUNvbnRhaW5lcltdKTogdm9pZCB7XG5cdFx0aWYgKCFBcnJheS5pc0FycmF5KGZvcm1Db250YWluZXJzKSkgcmV0dXJuO1xuXG5cdFx0Zm9yIChjb25zdCBmb3JtQ29udGFpbmVyIG9mIGZvcm1Db250YWluZXJzKSB7XG5cdFx0XHRjb25zdCBmb3JtRWxlbWVudHMgPSBmb3JtQ29udGFpbmVyPy5nZXRGb3JtRWxlbWVudHMoKTtcblx0XHRcdGNvbnN0IGlzVGhlcmVBbnlWaXNpYmxlSXRlbSA9IGZvcm1FbGVtZW50cz8uc29tZSgoZmUpID0+IGZlPy5nZXRWaXNpYmxlKCkpO1xuXHRcdFx0Y29uc3QgaXNVc2luZ1BhcnRPZlByZXZpZXdBbm5vdGF0aW9uID0gZm9ybUVsZW1lbnRzLnNvbWUoKGZvcm1FbGVtZW50KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGJpbmRpbmdJbmZvID0gZm9ybUVsZW1lbnQ/LmdldEJpbmRpbmdJbmZvPy4oXCJ2aXNpYmxlXCIpO1xuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShiaW5kaW5nSW5mbz8ucGFydHMpKVxuXHRcdFx0XHRcdHJldHVybiBiaW5kaW5nSW5mby5wYXJ0cy5zb21lKChiaW5kaW5nSW5mb1BhcnQ6IHsgcGF0aDogc3RyaW5nIH0pID0+IGJpbmRpbmdJbmZvUGFydC5wYXRoID09PSBcInNob3dEZXRhaWxzXCIpO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0IGlzVXNpbmdCaW5kaW5nT25WaXNpYmlsaXR5ID0gZm9ybUNvbnRhaW5lcj8uZ2V0QmluZGluZ0luZm8/LihcInZpc2libGVcIik/LnBhcnRzPy5sZW5ndGggPiAwO1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHRoZSB2aXNpYmlsaXR5IG9mIGV2ZXJ5IGZpZWxkIHdpdGhpbiB0aGUgRm9ybUVsZW1lbnQuXG5cdFx0XHQgKiBJdCBoaWRlcyB0aGUgRm9ybUVsZW1lbnQgd2hlbiB0aGUgdmlzaWJpbGl0eSBvZiBhbGwgY29udGFpbmVkIGZpZWxkcyBpcyBzZXQgdG8gZmFsc2Vcblx0XHRcdCAqL1xuXHRcdFx0dGhpcy5oaWRlRm9ybUVsZW1lbnRzKGZvcm1FbGVtZW50cyk7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogVGhpcyBjb25kaXRpb24gaWdub3JlcyB0aGUgZm9ybSBjb250YWluZXIgd2hlbiBhIG5ldyBncm91cCBpcyBjcmVhdGVkIHVzaW5nIHRoZSBBZGFwdCBVSS5cblx0XHRcdCAqIElmIHRoZSBncm91cCBpcyBlbXB0eSwgd2Ugc2hvdWxkIG5vdCBoaWRlIGl0LCBhcyBpdCBpcyByZXF1aXJlZCB0byBiZSB0aGVyZSB0byBhZGQgYWRkaXRpb25hbCBmb3JtIGVsZW1lbnRzLlxuXHRcdFx0ICogSWYgdGhlIGZvcm0gY29udGFpbmVyIGl0c2VsZiBpcyBtYXJrZWQgYXMgVUkuSGlkZGVuLCB0aGVuIHdlIHNob3VsZCBub3QgaGlkZSBpdC5cblx0XHRcdCAqL1xuXHRcdFx0aWYgKFxuXHRcdFx0XHQodGhpcy5hcHBDb21wb25lbnQ/LmlzQWRhcHRhdGlvbk1vZGUoKSA9PT0gdHJ1ZSAmJiBmb3JtRWxlbWVudHM/Lmxlbmd0aCA9PT0gMCkgfHxcblx0XHRcdFx0aXNVc2luZ1BhcnRPZlByZXZpZXdBbm5vdGF0aW9uIHx8XG5cdFx0XHRcdGlzVXNpbmdCaW5kaW5nT25WaXNpYmlsaXR5IHx8XG5cdFx0XHRcdGZvcm1Db250YWluZXIuZGF0YShcIlVpSGlkZGVuUHJlc2VudFwiKSA9PT0gXCJ0cnVlXCJcblx0XHRcdCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBTaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBldmVyeSB0aW1lIHRoZXJlJ3MgYSBjaGFuZ2UgaW4gdGhlIGZvcm0sIHdlIG5lZWQgdG8gY29uc2lkZXIgdHdvIHNjZW5hcmlvcy5cblx0XHRcdCAqIEZpcnN0LCBpZiB0aGUgZm9ybSBjb250YWluZXIgaXMgaGlkZGVuLCB3ZSBtdXN0IGRldGVybWluZSB3aGV0aGVyIGl0IHNob3VsZCBiZSBzaG93biBhZ2Fpbi5cblx0XHRcdCAqIFNlY29uZCwgaWYgdGhlIGZvcm0gY29udGFpbmVyIGlzIGN1cnJlbnRseSBkaXNwbGF5ZWQsIHdlIG5lZWQgdG8gYXNzZXNzIHdoZXRoZXIgaXQgc2hvdWxkIGJlIGhpZGRlbi5cblx0XHRcdCAqL1xuXHRcdFx0aWYgKGlzVGhlcmVBbnlWaXNpYmxlSXRlbSA9PT0gZmFsc2UpIHtcblx0XHRcdFx0Zm9ybUNvbnRhaW5lci5zZXRWaXNpYmxlKGZhbHNlKTtcblx0XHRcdH0gZWxzZSBpZiAoIWZvcm1Db250YWluZXIuZ2V0VmlzaWJsZSgpKSB7XG5cdFx0XHRcdGZvcm1Db250YWluZXIuc2V0VmlzaWJsZSh0cnVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGZldGNoT2JqZWN0UGFnZSgpOiBPYmplY3RQYWdlTGF5b3V0IHwgbnVsbCB7XG5cdFx0bGV0IHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50KCk7XG5cblx0XHR3aGlsZSAoIShwYXJlbnQ/LmlzQTxPYmplY3RQYWdlTGF5b3V0PihcInNhcC51eGFwLk9iamVjdFBhZ2VMYXlvdXRcIikgPz8gZmFsc2UpICYmIHR5cGVvZiBwYXJlbnQ/LmdldFBhcmVudCA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRwYXJlbnQgPSBwYXJlbnQuZ2V0UGFyZW50KCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHBhcmVudD8uaXNBPE9iamVjdFBhZ2VMYXlvdXQ+KFwic2FwLnV4YXAuT2JqZWN0UGFnZUxheW91dFwiKSA9PT0gdHJ1ZSA/IChwYXJlbnQgYXMgT2JqZWN0UGFnZUxheW91dCkgOiBudWxsO1xuXHR9XG5cblx0cHJpdmF0ZSBoaWRlRm9ybUVsZW1lbnRzKGZvcm1FbGVtZW50czogRm9ybUVsZW1lbnRbXSk6IHZvaWQge1xuXHRcdGlmICghQXJyYXkuaXNBcnJheShmb3JtRWxlbWVudHMpKSByZXR1cm47XG5cblx0XHRmb3IgKGNvbnN0IGZvcm1FbGVtZW50IG9mIGZvcm1FbGVtZW50cykge1xuXHRcdFx0Y29uc3QgZmllbGRzID0gZm9ybUVsZW1lbnQ/LmdldEZpZWxkcygpO1xuXHRcdFx0Y29uc3QgYXJlQWxsRmllbGRzSGlkZGVuID0gZmllbGRzPy5ldmVyeSgoZmllbGQpID0+IGZpZWxkPy5nZXRWaXNpYmxlPy4oKSA9PT0gZmFsc2UpO1xuXG5cdFx0XHRpZiAoYXJlQWxsRmllbGRzSGlkZGVuKSBmb3JtRWxlbWVudC5zZXRWaXNpYmxlKGZhbHNlKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSGlkZUZvcm1Hcm91cEF1dG9tYXRpY2FsbHk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O01BYU1BLDBCQUEwQixJQUFBQyxJQUFBLEdBRC9CQyxjQUFjLENBQUMsaURBQWlELENBQUMsRUFBQUQsSUFBQSxDQUFBRSxNQUFBLDBCQUFBQyxrQkFBQTtJQUFBLFNB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SSxDQUFDLGlCQUFpQixDQUFDLEtBQUssTUFBTSxFQUMvQztVQUNEO1FBQ0Q7O1FBRUE7QUFDSDtBQUNBO0FBQ0E7QUFDQTtRQUNHLElBQUliLHFCQUFxQixLQUFLLEtBQUssRUFBRTtVQUNwQ0gsYUFBYSxDQUFDaUIsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNoQyxDQUFDLE1BQU0sSUFBSSxDQUFDakIsYUFBYSxDQUFDSyxVQUFVLENBQUMsQ0FBQyxFQUFFO1VBQ3ZDTCxhQUFhLENBQUNpQixVQUFVLENBQUMsSUFBSSxDQUFDO1FBQy9CO01BQ0Q7SUFDRCxDQUFDO0lBQUE3QyxNQUFBLENBRU9jLGVBQWUsR0FBdkIsU0FBUUEsZUFBZUEsQ0FBQSxFQUE0QjtNQUNsRCxJQUFJTixNQUFNLEdBQUcsSUFBSSxDQUFDSCxTQUFTLENBQUMsQ0FBQztNQUU3QixPQUFPLEVBQUVHLE1BQU0sRUFBRUMsR0FBRyxDQUFtQiwyQkFBMkIsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLE9BQU9ELE1BQU0sRUFBRUgsU0FBUyxLQUFLLFVBQVUsRUFBRTtRQUN6SEcsTUFBTSxHQUFHQSxNQUFNLENBQUNILFNBQVMsQ0FBQyxDQUFDO01BQzVCO01BRUEsT0FBT0csTUFBTSxFQUFFQyxHQUFHLENBQW1CLDJCQUEyQixDQUFDLEtBQUssSUFBSSxHQUFJRCxNQUFNLEdBQXdCLElBQUk7SUFDakgsQ0FBQztJQUFBUixNQUFBLENBRU8wQyxnQkFBZ0IsR0FBeEIsU0FBUUEsZ0JBQWdCQSxDQUFDYixZQUEyQixFQUFRO01BQzNELElBQUksQ0FBQ2xDLEtBQUssQ0FBQ3NCLE9BQU8sQ0FBQ1ksWUFBWSxDQUFDLEVBQUU7TUFFbEMsS0FBSyxNQUFNTSxXQUFXLElBQUlOLFlBQVksRUFBRTtRQUN2QyxNQUFNaUIsTUFBTSxHQUFHWCxXQUFXLEVBQUVZLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU1DLGtCQUFrQixHQUFHRixNQUFNLEVBQUVHLEtBQUssQ0FBRUMsS0FBSyxJQUFLQSxLQUFLLEVBQUVqQixVQUFVLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQztRQUVwRixJQUFJZSxrQkFBa0IsRUFBRWIsV0FBVyxDQUFDVSxVQUFVLENBQUMsS0FBSyxDQUFDO01BQ3REO0lBQ0QsQ0FBQztJQUFBLE9BQUE1RCwwQkFBQTtFQUFBLEVBeEl1Q2tFLGlCQUFpQixNQUFBL0QsTUFBQTtFQUFBLE9BMkkzQ0gsMEJBQTBCO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -4,6 +4,7 @@ import type Section from "sap/fe/macros/controls/Section";
|
|
|
4
4
|
import type SubSectionBlock from "sap/fe/templates/ObjectPage/controls/SubSectionBlock";
|
|
5
5
|
import type Form from "sap/ui/layout/form/Form";
|
|
6
6
|
import type FormContainer from "sap/ui/layout/form/FormContainer";
|
|
7
|
+
import type FormElement from "sap/ui/layout/form/FormElement";
|
|
7
8
|
import type Control from "sap/ui/mdc/Control";
|
|
8
9
|
import type ObjectPageLayout from "sap/uxap/ObjectPageLayout";
|
|
9
10
|
import type AppComponent from "../AppComponent";
|
|
@@ -94,6 +95,12 @@ class HideFormGroupAutomatically extends EventDelegateHook {
|
|
|
94
95
|
});
|
|
95
96
|
const isUsingBindingOnVisibility = formContainer?.getBindingInfo?.("visible")?.parts?.length > 0;
|
|
96
97
|
|
|
98
|
+
/**
|
|
99
|
+
* This function checks the visibility of every field within the FormElement.
|
|
100
|
+
* It hides the FormElement when the visibility of all contained fields is set to false
|
|
101
|
+
*/
|
|
102
|
+
this.hideFormElements(formElements);
|
|
103
|
+
|
|
97
104
|
/**
|
|
98
105
|
* This condition ignores the form container when a new group is created using the Adapt UI.
|
|
99
106
|
* If the group is empty, we should not hide it, as it is required to be there to add additional form elements.
|
|
@@ -130,6 +137,17 @@ class HideFormGroupAutomatically extends EventDelegateHook {
|
|
|
130
137
|
|
|
131
138
|
return parent?.isA<ObjectPageLayout>("sap.uxap.ObjectPageLayout") === true ? (parent as ObjectPageLayout) : null;
|
|
132
139
|
}
|
|
140
|
+
|
|
141
|
+
private hideFormElements(formElements: FormElement[]): void {
|
|
142
|
+
if (!Array.isArray(formElements)) return;
|
|
143
|
+
|
|
144
|
+
for (const formElement of formElements) {
|
|
145
|
+
const fields = formElement?.getFields();
|
|
146
|
+
const areAllFieldsHidden = fields?.every((field) => field?.getVisible?.() === false);
|
|
147
|
+
|
|
148
|
+
if (areAllFieldsHidden) formElement.setVisible(false);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
133
151
|
}
|
|
134
152
|
|
|
135
153
|
export default HideFormGroupAutomatically;
|