@sapui5/sap.fe.core 1.136.2 → 1.136.5
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/AppComponent.js +7 -1
- package/src/sap/fe/core/AppComponent.ts +10 -0
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +2 -1
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +1 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +41 -20
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +60 -25
- 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/SideEffects.js +5 -4
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -5
- 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 +9 -8
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +11 -6
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +9 -25
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +20 -43
- package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.ts +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +7 -6
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -4
- 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/converters/controls/Common/Table.js +12 -2
- package/src/sap/fe/core/converters/controls/Common/Table.ts +18 -1
- package/src/sap/fe/core/converters/controls/Common/table/Columns.js +3 -2
- package/src/sap/fe/core/converters/controls/Common/table/Columns.ts +2 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +19 -5
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +28 -5
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js +4 -2
- package/src/sap/fe/core/helpers/DeleteHelper.ts +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.js +9 -18
- package/src/sap/fe/core/helpers/ModelHelper.ts +12 -17
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +4 -0
- package/src/sap/fe/core/messagebundle_ar.properties +5 -3
- 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_en_US_saprigi.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 +4 -2
- 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 +4 -2
- 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 +6 -4
- 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 +9 -7
- package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
|
@@ -59,7 +59,7 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/controls/Any", "sap/fe
|
|
|
59
59
|
isCreateAction: this.parameters.isCreateAction,
|
|
60
60
|
label: this.parameters.label,
|
|
61
61
|
parameterValues: this.parameters.parameterValues,
|
|
62
|
-
entitySetName: this.
|
|
62
|
+
entitySetName: this.entitySetName,
|
|
63
63
|
view: this.parameters.view,
|
|
64
64
|
messageHandler: this.parameters.messageHandler,
|
|
65
65
|
events: {
|
|
@@ -284,4 +284,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/controls/Any", "sap/fe
|
|
|
284
284
|
_exports = Operation;
|
|
285
285
|
return _exports;
|
|
286
286
|
}, false);
|
|
287
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnZvY2F0aW9uR3JvdXBpbmciLCJGRUxpYnJhcnkiLCJPcGVyYXRpb24iLCJhcHBDb21wb25lbnQiLCJtb2RlbCIsImNvbnZlcnRlZEFjdGlvbiIsInBhcmFtZXRlcnMiLCJleGVjdXRpb25Qcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJleGVjdXRpb25SZXNvbHZlIiwiZXhlY3V0aW9uUmVqZWN0IiwicGFyYW1ldGVyc1ZhbHVlcyIsIm51bWJlck9mT0RhdGFFeGVjdXRpb25zIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzVmFsdWVzIiwiY29udGV4dHMiLCJzZXRNZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSIsImVudGl0eVNldE5hbWUiLCJpc0JvdW5kIiwidW5kZWZpbmVkIiwiZ2V0TWV0YU1vZGVsIiwiZ2V0TWV0YUNvbnRleHQiLCJnZXRQYXRoIiwiZ2V0T2JqZWN0Iiwib3BlcmF0aW9uTWVzc2FnZSIsIk9wZXJhdGlvbk1lc3NhZ2UiLCJtZXNzYWdlSGFuZGxlciIsImFjdGlvbiIsImxhYmVsIiwiaW52b2NhdGlvbkdyb3VwaW5nIiwiZGlzYWJsZU5vdGlmaWNhdGlvbiIsInNraXBNZXNzYWdlcyIsImV2ZW50cyIsIm9uTWVzc2FnZUNvbGxlY3RlZCIsIm1hbmFnZURpYWxvZ09uTWVzc2FnZXMiLCJtZXNzYWdlQ29sbGVjdGVkUmVzb2x2ZSIsIm9uTWVzc2FnZVBhZ2VOYXZpZ2F0aW9uQ2FsbGJhY2siLCJvcGVyYXRpb25QYXJhbWV0ZXJzIiwiY2xvc2VQYXJhbWV0ZXJEaWFsb2ciLCJPcGVyYXRpb25QYXJhbWV0ZXJzIiwic2tpcFBhcmFtZXRlckRpYWxvZyIsImRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbiIsImlzQ3JlYXRlQWN0aW9uIiwicGFyYW1ldGVyVmFsdWVzIiwidmlldyIsIm9uUGFyYW1ldGVyRGlhbG9nT3BlbmVkIiwiYmluZCIsIm9uUGFyYW1ldGVyRGlhbG9nQ2xvc2VkIiwiX2V4cG9ydHMiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJjbGVhciIsIm9kYXRhT3BlcmF0aW9uIiwic2V0RGVmYXVsdFBhcmFtZXRlcnNWYWx1ZXMiLCJleGVjdXRlIiwiaW50ZXJuYWxFeGVjdXRpb24iLCJvcGVyYXRpb25SZXN1bHQiLCJnZXRPcGVyYXRpb25QYXJhbWV0ZXJzIiwiY29uZmlybUFjdGlvbiIsIk9EYXRhT3BlcmF0aW9uIiwiZGlzYWJsZVN0cmljdEhhbmRsaW5nIiwib0RhdGFQcm9wZXJ0aWVzIiwiZGlzYWJsZVNpZGVFZmZlY3RzIiwiZ2hvc3RDb250ZXh0QmluZGluZ1Byb3RlY3Rpb24iLCJvblN0cmljdFZhbGlkYXRpb24iLCJvRGF0YUV2ZW50cyIsIm9uU3RyaWN0Q2FuY2VsIiwib25TdHJpY3RSZXNwb25zZSIsIm1lc3NhZ2VzNDEyIiwiYWRkV2FybmluZ01lc3NhZ2VzVG9NZXNzYWdlSGFuZGxlciIsIm9uU3RyaWN0SGFuZGxpbmciLCJvbk9EYXRhUmVzcG9uc2UiLCJvbk9EYXRhU3VibWl0Iiwib25SZXF1ZXN0U2lkZUVmZmVjdHMiLCJlbmhhbmNlJHNlbGVjdCIsImdyb3VwSWQiLCJyZXBsYWNlV2l0aFJWQyIsImlnbm9yZUVUYWciLCJiaW5kaW5nUGFyYW1ldGVycyIsImRlZmVycmVkU3VibWl0IiwicmVhY3RUb09wZXJhdGlvbnMiLCJpc1BhcmFtZXRlckRpYWxvZyIsInNvbWUiLCJpc1JlamVjdGVkIiwiY2xvc2VEaWFsb2ciLCJtZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSIsImlzUGFyYW1ldGVyRGlhbG9nT3BlbmVkIiwiZSIsImlzRXJyb3JJbnRvUGFyYW1ldGVyRGlhbG9nIiwiYWN0aW9uSGVscGVyIiwiaXNTdGF0aWNBY3Rpb24iLCJsZW5ndGgiLCJyZXNldERpYWxvZyIsIkNoYW5nZVNldCIsImlzU3RyaWN0Q2FuY2VsZWQiLCJyZXNldFBhcmFtZXRlckRpYWxvZ1N0YXRlIiwiZ2V0T3BlcmF0aW9uUmVzdWx0cyIsImlzQWN0aW9uQ3JpdGljYWwiLCJjb250ZXh0IiwiaXNBY3Rpb25Dcml0aWNhbFZhbHVlIiwiaXNBY3Rpb25Dcml0aWNhbEJpbmRpbmdFeHAiLCJnZXRJc0FjdGlvbkNyaXRpY2FsRXhwcmVzc2lvbiIsImNvbnZlcnRUeXBlcyIsImlzQ29uc3RhbnQiLCJjb21waWxlQ29uc3RhbnQiLCJhbnlPYmplY3QiLCJBbnkiLCJhbnlCb29sZWFuIiwiY29tcGlsZUV4cHJlc3Npb24iLCJzZXRNb2RlbCIsImdldE1vZGVsIiwic2V0QmluZGluZ0NvbnRleHQiLCJib29sZWFuQmluZGluZyIsImdldEJpbmRpbmciLCJpc0EiLCJhbGwiLCJnZXRCaW5kaW5ncyIsIm1hcCIsIm5lc3RlZEJpbmRpbmciLCJyZXF1ZXN0VmFsdWUiLCJpc0NyaXRpY2FsIiwiYWN0aW9uTmFtZSIsImdldEFjdGlvbk5hbWUiLCJib3VuZEFjdGlvbk5hbWUiLCJpbmNsdWRlcyIsInNwbGl0Iiwic3VmZml4UmVzb3VyY2VLZXkiLCJNZXNzYWdlQm94IiwiY29uZmlybSIsIlJlc291cmNlTW9kZWxIZWxwZXIiLCJnZXRSZXNvdXJjZU1vZGVsIiwiZ2V0VGV4dCIsInRpdGxlIiwiZ2V0Q29uZmlybVRpdGxlIiwib25DbG9zZSIsIkFjdGlvbiIsIk9LIiwiRXJyb3IiLCJDb25zdGFudHMiLCJDYW5jZWxBY3Rpb25EaWFsb2ciLCJrZXkiLCJyZXNvdXJjZU1vZGVsIiwidGl0bGVPdmVycmlkZUV4aXN0cyIsImNoZWNrSWZSZXNvdXJjZUtleUV4aXN0cyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiT3BlcmF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uIGFzIEVkbUFjdGlvbiwgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgY29tcGlsZUNvbnN0YW50LCBjb21waWxlRXhwcmVzc2lvbiwgaXNDb25zdGFudCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBCaW5kQ29udGV4dFBhcmFtZXRlcnMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvZWRpdEZsb3cvZHJhZnRcIjtcbmltcG9ydCBBbnkgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xzL0FueVwiO1xuaW1wb3J0IHsgaXNSZWplY3RlZCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCBGRUxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB7IGdldElzQWN0aW9uQ3JpdGljYWxFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvQWN0aW9uSGVscGVyXCI7XG5pbXBvcnQgTWVzc2FnZUJveCBmcm9tIFwic2FwL20vTWVzc2FnZUJveFwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvbWVzc2FnZS9NZXNzYWdlXCI7XG5pbXBvcnQgdHlwZSBDb21wb3NpdGVCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvQ29tcG9zaXRlQmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YVByb3BlcnR5QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhUHJvcGVydHlCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcIi4uLy4uLy4uL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBGRVZpZXcgfSBmcm9tIFwiLi4vLi4vLi4vQmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IGNvbnZlcnRUeXBlcyB9IGZyb20gXCIuLi8uLi8uLi9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0ICogYXMgUmVzb3VyY2VNb2RlbEhlbHBlciBmcm9tIFwiLi4vLi4vLi4vaGVscGVycy9SZXNvdXJjZU1vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBNZXNzYWdlSGFuZGxlciBmcm9tIFwiLi4vLi4vTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCB0eXBlIHsgT3BlcmF0aW9uUmVzdWx0IH0gZnJvbSBcIi4vT0RhdGFPcGVyYXRpb25cIjtcbmltcG9ydCBPRGF0YU9wZXJhdGlvbiBmcm9tIFwiLi9PRGF0YU9wZXJhdGlvblwiO1xuaW1wb3J0IE9wZXJhdGlvbk1lc3NhZ2UgZnJvbSBcIi4vT3BlcmF0aW9uTWVzc2FnZVwiO1xuaW1wb3J0IE9wZXJhdGlvblBhcmFtZXRlcnMgZnJvbSBcIi4vT3BlcmF0aW9uUGFyYW1ldGVyc1wiO1xuaW1wb3J0IGFjdGlvbkhlbHBlciBmcm9tIFwiLi9hY3Rpb25IZWxwZXJcIjtcblxuY29uc3QgSW52b2NhdGlvbkdyb3VwaW5nID0gRkVMaWJyYXJ5Lkludm9jYXRpb25Hcm91cGluZztcblxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uUGFyYW1ldGVyc1R5cGUgPSB7XG5cdG1lc3NhZ2VIYW5kbGVyOiBNZXNzYWdlSGFuZGxlcjtcblx0dmlldz86IEZFVmlldztcblx0cGFyYW1ldGVyVmFsdWVzPzogUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlVHlwZT5bXTtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdGludm9jYXRpb25Hcm91cGluZz86IHN0cmluZztcblx0c2tpcFBhcmFtZXRlckRpYWxvZz86IGJvb2xlYW47XG5cdHNraXBNZXNzYWdlcz86IGJvb2xlYW47XG5cdGVudGl0eVNldE5hbWU/OiBzdHJpbmc7XG5cdG9EYXRhUHJvcGVydGllcz86IHtcblx0XHRnaG9zdENvbnRleHRCaW5kaW5nUHJvdGVjdGlvbj86IGJvb2xlYW47XG5cdFx0ZW5oYW5jZSRzZWxlY3Q/OiBib29sZWFuO1xuXHRcdGRpc2FibGVTdHJpY3RIYW5kbGluZz86IGJvb2xlYW47XG5cdFx0ZGlzYWJsZVNpZGVFZmZlY3RzPzogYm9vbGVhbjtcblx0XHRpZ25vcmVFVGFnPzogYm9vbGVhbjtcblx0XHRncm91cElkPzogc3RyaW5nO1xuXHRcdHJlcGxhY2VXaXRoUlZDPzogYm9vbGVhbjtcblx0XHRkZWZlcnJlZFN1Ym1pdD86IGJvb2xlYW47XG5cdH07XG5cdGlzQ3JlYXRlQWN0aW9uPzogYm9vbGVhbjtcblx0Y29udGV4dHM/OiBDb250ZXh0W107XG5cdGJpbmRpbmdQYXJhbWV0ZXJzPzogQmluZENvbnRleHRQYXJhbWV0ZXJzO1xuXHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24/OiBzdHJpbmc7XG5cdG9EYXRhRXZlbnRzPzoge1xuXHRcdG9uT0RhdGFSZXNwb25zZT86IEZ1bmN0aW9uO1xuXHRcdG9uT0RhdGFTdWJtaXQ/OiBGdW5jdGlvbjtcblx0XHRvblJlcXVlc3RTaWRlRWZmZWN0cz86IEZ1bmN0aW9uO1xuXHRcdG9uU3RyaWN0Q2FuY2VsPzogRnVuY3Rpb247XG5cdFx0b25TdHJpY3RWYWxpZGF0aW9uPzogRnVuY3Rpb247XG5cdH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcGVyYXRpb24ge1xuXHRwcml2YXRlIHJlYWRvbmx5IGNvbnRleHRzOiBDb250ZXh0W107XG5cblx0cHJpdmF0ZSByZWFkb25seSBlbnRpdHlTZXROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBleGVjdXRpb25SZXNvbHZlITogRnVuY3Rpb247XG5cblx0cHJpdmF0ZSBleGVjdXRpb25SZWplY3QhOiBGdW5jdGlvbjtcblxuXHRwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblByb21pc2UgPSBuZXcgUHJvbWlzZTxQcm9taXNlU2V0dGxlZFJlc3VsdDxPcGVyYXRpb25SZXN1bHQ+W10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHR0aGlzLmV4ZWN1dGlvblJlc29sdmUgPSByZXNvbHZlO1xuXHRcdHRoaXMuZXhlY3V0aW9uUmVqZWN0ID0gcmVqZWN0O1xuXHR9KTtcblxuXHRwcml2YXRlIG1lc3NhZ2VDb2xsZWN0ZWRSZXNvbHZlITogRnVuY3Rpb247XG5cblx0cHJpdmF0ZSBtZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSE6IFByb21pc2U8dm9pZD47XG5cblx0cHJpdmF0ZSByZWFkb25seSBvcGVyYXRpb25NZXNzYWdlOiBPcGVyYXRpb25NZXNzYWdlO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgb3BlcmF0aW9uUGFyYW1ldGVyczogT3BlcmF0aW9uUGFyYW1ldGVycztcblxuXHRwcml2YXRlIHBhcmFtZXRlcnNWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZVR5cGU+ID0ge307XG5cblx0cHJpdmF0ZSBudW1iZXJPZk9EYXRhRXhlY3V0aW9ucyA9IDA7XG5cblx0cHJpdmF0ZSBleHRlcm5hbFBhcmFtZXRlcnNWYWx1ZXMgPSBmYWxzZTtcblxuXHRwcml2YXRlIG9kYXRhT3BlcmF0aW9uOiBPRGF0YU9wZXJhdGlvbiB8IHVuZGVmaW5lZDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgbW9kZWw6IE9EYXRhTW9kZWwsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZWRBY3Rpb246IEVkbUFjdGlvbixcblx0XHRwcml2YXRlIHJlYWRvbmx5IHBhcmFtZXRlcnM6IE9wZXJhdGlvblBhcmFtZXRlcnNUeXBlXG5cdCkge1xuXHRcdHRoaXMuY29udGV4dHMgPSBwYXJhbWV0ZXJzLmNvbnRleHRzID8/IFtdO1xuXG5cdFx0dGhpcy5zZXRNZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSgpO1xuXG5cdFx0Ly8gSWYgZW50aXR5U2V0TmFtZSBpcyBub3QgcHJvdmlkZWQsIGl0IGlzIGRlcml2ZWQgZnJvbSB0aGUgZmlyc3QgY29udGV4dCBhcyBmYWxsYmFjay5cblx0XHR0aGlzLmVudGl0eVNldE5hbWUgPVxuXHRcdFx0cGFyYW1ldGVycy5lbnRpdHlTZXROYW1lID8/XG5cdFx0XHQodGhpcy5jb252ZXJ0ZWRBY3Rpb24uaXNCb3VuZCAmJiB0aGlzLmNvbnRleHRzWzBdICE9PSB1bmRlZmluZWRcblx0XHRcdFx0PyB0aGlzLm1vZGVsLmdldE1ldGFNb2RlbCgpLmdldE1ldGFDb250ZXh0KHRoaXMuY29udGV4dHNbMF0uZ2V0UGF0aCgpKS5nZXRPYmplY3QoXCJAc2FwdWkubmFtZVwiKVxuXHRcdFx0XHQ6IHVuZGVmaW5lZCk7XG5cblx0XHR0aGlzLm9wZXJhdGlvbk1lc3NhZ2UgPSBuZXcgT3BlcmF0aW9uTWVzc2FnZSh7XG5cdFx0XHRtZXNzYWdlSGFuZGxlcjogdGhpcy5wYXJhbWV0ZXJzLm1lc3NhZ2VIYW5kbGVyLFxuXHRcdFx0YWN0aW9uOiB0aGlzLmNvbnZlcnRlZEFjdGlvbixcblx0XHRcdGNvbnRleHRzOiB0aGlzLmNvbnRleHRzLFxuXHRcdFx0bGFiZWw6IHRoaXMucGFyYW1ldGVycy5sYWJlbCxcblx0XHRcdGludm9jYXRpb25Hcm91cGluZzogdGhpcy5wYXJhbWV0ZXJzLmludm9jYXRpb25Hcm91cGluZyxcblx0XHRcdGRpc2FibGVOb3RpZmljYXRpb246IHRoaXMucGFyYW1ldGVycy5za2lwTWVzc2FnZXMsXG5cdFx0XHRlbnRpdHlTZXROYW1lOiB0aGlzLmVudGl0eVNldE5hbWUsXG5cdFx0XHRldmVudHM6IHtcblx0XHRcdFx0b25NZXNzYWdlQ29sbGVjdGVkOiAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0Ly8gRHVlIHRvIHRoZSBtZXNzIGludG8gdGhlIG1lc3NhZ2UgaGFuZGxpbmdcblx0XHRcdFx0XHQvLyB0aGUgZGlhbG9nIHNob3VsZCBiZSBjbG9zZWQgb3Igbm90IG9ubHkgYWZ0ZXIgdGhlIG1lc3NhZ2VzIGFyZSBjb2xsZWN0ZWRcblx0XHRcdFx0XHQvLyBpdCBtZWFucyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBtZXNzYWdlIGhhbmRsaW5nIHdvcmtmbG93IHZpYVxuXHRcdFx0XHRcdC8vIGEgY2FsbGJhY2sgZnVuY3Rpb25cblx0XHRcdFx0XHR0aGlzLm1hbmFnZURpYWxvZ09uTWVzc2FnZXMoKTtcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VDb2xsZWN0ZWRSZXNvbHZlKCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdG9uTWVzc2FnZVBhZ2VOYXZpZ2F0aW9uQ2FsbGJhY2s6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR0aGlzLm9wZXJhdGlvblBhcmFtZXRlcnMuY2xvc2VQYXJhbWV0ZXJEaWFsb2coKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5vcGVyYXRpb25QYXJhbWV0ZXJzID0gbmV3IE9wZXJhdGlvblBhcmFtZXRlcnMoXG5cdFx0XHR0aGlzLmFwcENvbXBvbmVudCxcblx0XHRcdHRoaXMubW9kZWwsXG5cdFx0XHR0aGlzLmNvbnZlcnRlZEFjdGlvbixcblx0XHRcdHRoaXMucGFyYW1ldGVycy5za2lwUGFyYW1ldGVyRGlhbG9nLFxuXHRcdFx0e1xuXHRcdFx0XHRjb250ZXh0czogdGhpcy5jb250ZXh0cyxcblx0XHRcdFx0ZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uOiB0aGlzLnBhcmFtZXRlcnMuZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uLFxuXHRcdFx0XHRpc0NyZWF0ZUFjdGlvbjogdGhpcy5wYXJhbWV0ZXJzLmlzQ3JlYXRlQWN0aW9uLFxuXHRcdFx0XHRsYWJlbDogdGhpcy5wYXJhbWV0ZXJzLmxhYmVsLFxuXHRcdFx0XHRwYXJhbWV0ZXJWYWx1ZXM6IHRoaXMucGFyYW1ldGVycy5wYXJhbWV0ZXJWYWx1ZXMsXG5cdFx0XHRcdGVudGl0eVNldE5hbWU6IHRoaXMucGFyYW1ldGVycy5lbnRpdHlTZXROYW1lLFxuXHRcdFx0XHR2aWV3OiB0aGlzLnBhcmFtZXRlcnMudmlldyxcblx0XHRcdFx0bWVzc2FnZUhhbmRsZXI6IHRoaXMucGFyYW1ldGVycy5tZXNzYWdlSGFuZGxlcixcblx0XHRcdFx0ZXZlbnRzOiB7XG5cdFx0XHRcdFx0b25QYXJhbWV0ZXJEaWFsb2dPcGVuZWQ6IHRoaXMub3BlcmF0aW9uTWVzc2FnZS5vblBhcmFtZXRlckRpYWxvZ09wZW5lZC5iaW5kKHRoaXMub3BlcmF0aW9uTWVzc2FnZSksXG5cdFx0XHRcdFx0b25QYXJhbWV0ZXJEaWFsb2dDbG9zZWQ6IHRoaXMub3BlcmF0aW9uTWVzc2FnZS5vblBhcmFtZXRlckRpYWxvZ0Nsb3NlZC5iaW5kKHRoaXMub3BlcmF0aW9uTWVzc2FnZSlcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdCk7XG5cdH1cblxuXHRjbGVhcigpOiB2b2lkIHtcblx0XHR0aGlzLm9wZXJhdGlvblBhcmFtZXRlcnMuY2xvc2VQYXJhbWV0ZXJEaWFsb2coKTtcblx0XHR0aGlzLm9kYXRhT3BlcmF0aW9uPy5jbGVhcigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldCB0aGUgdmFsdWVzIHJlbGF0ZWQgdG8gdGhlIHBhcmFtZXRlcnMgIGZvciB0aGUgb3BlcmF0aW9uXG5cdCAqIElmIHRoZSB2YWx1ZXMgYXJlIHNldCB0aGUgb3BlcmF0aW9uIHBhcmFtZXRlciBkaWFsb2cgaXMgc2tpcHBlZC5cblx0ICogQHBhcmFtIHBhcmFtZXRlcnNWYWx1ZXMgVGhlIHZhbHVlcyBmb3IgdGhlIHBhcmFtZXRlcnNcblx0ICovXG5cdHB1YmxpYyBzZXREZWZhdWx0UGFyYW1ldGVyc1ZhbHVlcyhwYXJhbWV0ZXJzVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPik6IHZvaWQge1xuXHRcdHRoaXMucGFyYW1ldGVyc1ZhbHVlcyA9IHBhcmFtZXRlcnNWYWx1ZXM7XG5cdFx0dGhpcy5leHRlcm5hbFBhcmFtZXRlcnNWYWx1ZXMgPSB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV4ZWN1dGVzIHRoZSBvcGVyYXRpb24uXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBjb250YWluaW5nIHRoZSByZXN1bHRzXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPFByb21pc2VTZXR0bGVkUmVzdWx0PE9wZXJhdGlvblJlc3VsdD5bXT4ge1xuXHRcdHRoaXMuaW50ZXJuYWxFeGVjdXRpb24oKTtcblx0XHRyZXR1cm4gdGhpcy5leGVjdXRpb25Qcm9taXNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV4ZWN1dGVzIHRoZSBvcGVyYXRpb24uXG5cdCAqL1xuXHRwcml2YXRlIGFzeW5jIGludGVybmFsRXhlY3V0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGxldCBvcGVyYXRpb25SZXN1bHQ6IFByb21pc2VTZXR0bGVkUmVzdWx0PE9wZXJhdGlvblJlc3VsdD5bXSA9IFtdO1xuXHRcdHRyeSB7XG5cdFx0XHR0aGlzLm51bWJlck9mT0RhdGFFeGVjdXRpb25zKys7XG5cdFx0XHRpZiAoIXRoaXMuZXh0ZXJuYWxQYXJhbWV0ZXJzVmFsdWVzKSB7XG5cdFx0XHRcdHRoaXMucGFyYW1ldGVyc1ZhbHVlcyA9IGF3YWl0IHRoaXMub3BlcmF0aW9uUGFyYW1ldGVycy5nZXRPcGVyYXRpb25QYXJhbWV0ZXJzKCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5udW1iZXJPZk9EYXRhRXhlY3V0aW9ucyA9PT0gMSkge1xuXHRcdFx0XHRhd2FpdCB0aGlzLmNvbmZpcm1BY3Rpb24oKTtcblx0XHRcdH1cblx0XHRcdHRoaXMub2RhdGFPcGVyYXRpb24gPSBuZXcgT0RhdGFPcGVyYXRpb24oXG5cdFx0XHRcdHRoaXMuY29udmVydGVkQWN0aW9uLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YXBwQ29tcG9uZW50OiB0aGlzLmFwcENvbXBvbmVudCxcblx0XHRcdFx0XHRjb250ZXh0czogdGhpcy5jb250ZXh0cyxcblx0XHRcdFx0XHRtb2RlbDogdGhpcy5tb2RlbCxcblx0XHRcdFx0XHRsYWJlbDogdGhpcy5wYXJhbWV0ZXJzLmxhYmVsLFxuXHRcdFx0XHRcdGludm9jYXRpb25Hcm91cGluZzogdGhpcy5wYXJhbWV0ZXJzLmludm9jYXRpb25Hcm91cGluZyxcblx0XHRcdFx0XHRkaXNhYmxlU3RyaWN0SGFuZGxpbmc6IHRoaXMucGFyYW1ldGVycy5vRGF0YVByb3BlcnRpZXM/LmRpc2FibGVTdHJpY3RIYW5kbGluZyxcblx0XHRcdFx0XHRkaXNhYmxlU2lkZUVmZmVjdHM6IHRoaXMucGFyYW1ldGVycy5vRGF0YVByb3BlcnRpZXM/LmRpc2FibGVTaWRlRWZmZWN0cyxcblx0XHRcdFx0XHRnaG9zdENvbnRleHRCaW5kaW5nUHJvdGVjdGlvbjogdGhpcy5wYXJhbWV0ZXJzLm9EYXRhUHJvcGVydGllcz8uZ2hvc3RDb250ZXh0QmluZGluZ1Byb3RlY3Rpb24sXG5cdFx0XHRcdFx0ZXZlbnRzOiB7XG5cdFx0XHRcdFx0XHRvblN0cmljdFZhbGlkYXRpb246IHRoaXMucGFyYW1ldGVycy5vRGF0YUV2ZW50cz8ub25TdHJpY3RWYWxpZGF0aW9uLFxuXHRcdFx0XHRcdFx0b25TdHJpY3RDYW5jZWw6IHRoaXMucGFyYW1ldGVycy5vRGF0YUV2ZW50cz8ub25TdHJpY3RDYW5jZWwsXG5cdFx0XHRcdFx0XHRvblN0cmljdFJlc3BvbnNlOiAobWVzc2FnZXM0MTI6IE1lc3NhZ2VbXSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBhcmFtZXRlcnMubWVzc2FnZUhhbmRsZXIuYWRkV2FybmluZ01lc3NhZ2VzVG9NZXNzYWdlSGFuZGxlcihtZXNzYWdlczQxMik7XG5cdFx0XHRcdFx0XHRcdHRoaXMub3BlcmF0aW9uTWVzc2FnZS5vblN0cmljdEhhbmRsaW5nKCk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25PRGF0YVJlc3BvbnNlOiB0aGlzLnBhcmFtZXRlcnMub0RhdGFFdmVudHM/Lm9uT0RhdGFSZXNwb25zZSxcblx0XHRcdFx0XHRcdG9uT0RhdGFTdWJtaXQ6IHRoaXMucGFyYW1ldGVycy5vRGF0YUV2ZW50cz8ub25PRGF0YVN1Ym1pdCxcblx0XHRcdFx0XHRcdG9uUmVxdWVzdFNpZGVFZmZlY3RzOiB0aGlzLnBhcmFtZXRlcnMub0RhdGFFdmVudHM/Lm9uUmVxdWVzdFNpZGVFZmZlY3RzXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRwYXJhbWV0ZXJzVmFsdWVzOiB0aGlzLnBhcmFtZXRlcnNWYWx1ZXNcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGVuaGFuY2Ukc2VsZWN0OiB0aGlzLnBhcmFtZXRlcnMub0RhdGFQcm9wZXJ0aWVzPy5lbmhhbmNlJHNlbGVjdCxcblx0XHRcdFx0XHRncm91cElkOiB0aGlzLnBhcmFtZXRlcnMub0RhdGFQcm9wZXJ0aWVzPy5ncm91cElkLFxuXHRcdFx0XHRcdHJlcGxhY2VXaXRoUlZDOiB0aGlzLnBhcmFtZXRlcnMub0RhdGFQcm9wZXJ0aWVzPy5yZXBsYWNlV2l0aFJWQyxcblx0XHRcdFx0XHRpZ25vcmVFVGFnOiB0aGlzLnBhcmFtZXRlcnMub0RhdGFQcm9wZXJ0aWVzPy5pZ25vcmVFVGFnLFxuXHRcdFx0XHRcdGJpbmRpbmdQYXJhbWV0ZXJzOiB0aGlzLnBhcmFtZXRlcnMuYmluZGluZ1BhcmFtZXRlcnMsXG5cdFx0XHRcdFx0ZGVmZXJyZWRTdWJtaXQ6IHRoaXMucGFyYW1ldGVycy5vRGF0YVByb3BlcnRpZXM/LmRlZmVycmVkU3VibWl0XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0XHRvcGVyYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLm9kYXRhT3BlcmF0aW9uLmV4ZWN1dGUoKTtcblx0XHRcdHRoaXMub3BlcmF0aW9uTWVzc2FnZS5yZWFjdFRvT3BlcmF0aW9ucyhvcGVyYXRpb25SZXN1bHQpO1xuXG5cdFx0XHRpZiAodGhpcy5vcGVyYXRpb25QYXJhbWV0ZXJzLmlzUGFyYW1ldGVyRGlhbG9nKCkpIHtcblx0XHRcdFx0aWYgKCFvcGVyYXRpb25SZXN1bHQuc29tZShpc1JlamVjdGVkKSkge1xuXHRcdFx0XHRcdHRoaXMuY2xvc2VEaWFsb2coKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhd2FpdCB0aGlzLm1lc3NhZ2VDb2xsZWN0ZWRQcm9taXNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLm9wZXJhdGlvblBhcmFtZXRlcnMuaXNQYXJhbWV0ZXJEaWFsb2dPcGVuZWQoKSkge1xuXHRcdFx0XHR0aGlzLnNldE1lc3NhZ2VDb2xsZWN0ZWRQcm9taXNlKCk7XG5cdFx0XHRcdHRoaXMuaW50ZXJuYWxFeGVjdXRpb24oKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuZXhlY3V0aW9uUmVzb2x2ZShvcGVyYXRpb25SZXN1bHQpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHRoaXMuZXhlY3V0aW9uUmVqZWN0KGUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBNYW5hZ2VzIHRoZSBwYXJhbWV0ZXIgZGlhbG9nIGFmdGVyIHRoZSBtZXNzYWdlcy5cblx0ICovXG5cblx0cHJpdmF0ZSBtYW5hZ2VEaWFsb2dPbk1lc3NhZ2VzKCk6IHZvaWQge1xuXHRcdGNvbnN0IGlzRXJyb3JJbnRvUGFyYW1ldGVyRGlhbG9nID0gdGhpcy5vcGVyYXRpb25NZXNzYWdlLmlzRXJyb3JJbnRvUGFyYW1ldGVyRGlhbG9nKCk7XG5cblx0XHRpZiAoYWN0aW9uSGVscGVyLmlzU3RhdGljQWN0aW9uKHRoaXMuY29udmVydGVkQWN0aW9uKSB8fCB0aGlzLmNvbnRleHRzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0Ly8gRG9uJ3QgY2xvc2UgdGhlIGRpYWxvZyBpZiB0aGUgYWN0aW9uIGlzIHN0YXRpYyBvciBhbiBpbXBvcnRcblx0XHRcdHJldHVybiB0aGlzLnJlc2V0RGlhbG9nKCk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLnBhcmFtZXRlcnMuaW52b2NhdGlvbkdyb3VwaW5nID09PSBJbnZvY2F0aW9uR3JvdXBpbmcuQ2hhbmdlU2V0KSB7XG5cdFx0XHQvLyBXaGVuIHRoZSBlbmQgdXNlciBjYW5jZWwgdGhlIHByb2Nlc3Mgb24gdGhlIHN0cmljdCBkaWFsb2csIHdlIG5lZWQgdG8ga2VlcCB0aGUgcGFyYW1ldGVyIGRpYWxvZyAob25seSBvbiBDaGFuZ2VTZXQpICM2Mzc2NTkyXG5cdFx0XHRpZiAoaXNFcnJvckludG9QYXJhbWV0ZXJEaWFsb2cgfHwgdGhpcy5vZGF0YU9wZXJhdGlvbj8uaXNTdHJpY3RDYW5jZWxlZCgpID09PSB0cnVlKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnJlc2V0RGlhbG9nKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5jbG9zZURpYWxvZygpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoKHRoaXMucGFyYW1ldGVycy5jb250ZXh0cyAmJiB0aGlzLnBhcmFtZXRlcnMuY29udGV4dHMubGVuZ3RoID4gMSkgfHwgIWlzRXJyb3JJbnRvUGFyYW1ldGVyRGlhbG9nKSB7XG5cdFx0XHQvLyBkb2VzIG5vdCBtYXR0ZXIgaWYgZXJyb3IgaXMgaW4gQVBEIG9yIG5vdCwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGNvbnRleHRzIHNlbGVjdGVkIG9yIGlmIHRoZSBlcnJvciBpcyBub3QgdGhlIEFQRCwgd2UgY2xvc2UgaXQuXG5cdFx0XHRyZXR1cm4gdGhpcy5jbG9zZURpYWxvZygpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5yZXNldERpYWxvZygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIG1lc3NhZ2UgY29sbGVjdGVkIHByb21pc2UuXG5cdCAqIFRoaXMgcHJvbWlzZSBpcyByZXNvbHZlZCB3aGVuIHRoZSBtZXNzYWdlcyBhcmUgY29sbGVjdGVkLlxuXHQgKi9cblx0cHJpdmF0ZSBzZXRNZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSgpOiB2b2lkIHtcblx0XHR0aGlzLm1lc3NhZ2VDb2xsZWN0ZWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcblx0XHRcdHRoaXMubWVzc2FnZUNvbGxlY3RlZFJlc29sdmUgPSByZXNvbHZlO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIENsb3NlcyB0aGUgcGFyYW1ldGVyIGRpYWxvZy5cblx0ICovXG5cdHByaXZhdGUgY2xvc2VEaWFsb2coKTogdm9pZCB7XG5cdFx0dGhpcy5vcGVyYXRpb25QYXJhbWV0ZXJzLmNsb3NlUGFyYW1ldGVyRGlhbG9nKCk7XG5cdH1cblxuXHQvKipcblx0ICogUmVzZXRzIHRoZSBwYXJhbWV0ZXIgZGlhbG9nLlxuXHQgKi9cblx0cHJpdmF0ZSByZXNldERpYWxvZygpOiB2b2lkIHtcblx0XHR0aGlzLm9wZXJhdGlvblBhcmFtZXRlcnMucmVzZXRQYXJhbWV0ZXJEaWFsb2dTdGF0ZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uLlxuXHQgKiBAcmV0dXJucyBUaGUgcmVzdWx0XG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgZ2V0T3BlcmF0aW9uUmVzdWx0cygpOiBQcm9taXNlPFByb21pc2VTZXR0bGVkUmVzdWx0PE9wZXJhdGlvblJlc3VsdD5bXT4ge1xuXHRcdHJldHVybiB0aGlzLmV4ZWN1dGlvblByb21pc2U7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIGFjdGlvbiBpcyBjcml0aWNhbC5cblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgYWN0aW9uIGlzIGNyaXRpY2FsLCBvdGhlcndpc2UgZmFsc2Vcblx0ICovXG5cdHByaXZhdGUgYXN5bmMgaXNBY3Rpb25Dcml0aWNhbCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHQvL29ubHkgd29ya3Mgd2l0aCBzaW5nbGUgY29udGV4dCAoYXMgZm9ybWVyIGNvZGUpO1xuXHRcdGNvbnN0IGNvbnRleHQgPSB0aGlzLnBhcmFtZXRlcnMuY29udGV4dHM/LlswXTtcblx0XHQvLyBkZWZhdWx0IGlzIHRydWUuXG5cdFx0bGV0IGlzQWN0aW9uQ3JpdGljYWxWYWx1ZTogYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4gPSB0cnVlO1xuXHRcdGNvbnN0IGlzQWN0aW9uQ3JpdGljYWxCaW5kaW5nRXhwID0gZ2V0SXNBY3Rpb25Dcml0aWNhbEV4cHJlc3Npb24odGhpcy5jb252ZXJ0ZWRBY3Rpb24sIGNvbnZlcnRUeXBlcyh0aGlzLm1vZGVsLmdldE1ldGFNb2RlbCgpKSk7XG5cdFx0aWYgKGlzQ29uc3RhbnQoaXNBY3Rpb25Dcml0aWNhbEJpbmRpbmdFeHApKSB7XG5cdFx0XHRpc0FjdGlvbkNyaXRpY2FsVmFsdWUgPSBjb21waWxlQ29uc3RhbnQoaXNBY3Rpb25Dcml0aWNhbEJpbmRpbmdFeHAsIGZhbHNlLCB1bmRlZmluZWQsIHRydWUpIGFzIGJvb2xlYW47XG5cdFx0fSBlbHNlIGlmIChjb250ZXh0KSB7XG5cdFx0XHRjb25zdCBhbnlPYmplY3QgPSBuZXcgQW55KHsgYW55Qm9vbGVhbjogY29tcGlsZUV4cHJlc3Npb24oaXNBY3Rpb25Dcml0aWNhbEJpbmRpbmdFeHApIH0pO1xuXHRcdFx0YW55T2JqZWN0LnNldE1vZGVsKGNvbnRleHQuZ2V0TW9kZWwoKSk7XG5cdFx0XHRhbnlPYmplY3Quc2V0QmluZGluZ0NvbnRleHQoY29udGV4dCk7XG5cdFx0XHRjb25zdCBib29sZWFuQmluZGluZyA9IGFueU9iamVjdC5nZXRCaW5kaW5nKFwiYW55Qm9vbGVhblwiKSBhcyBPRGF0YVByb3BlcnR5QmluZGluZyB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChib29sZWFuQmluZGluZykge1xuXHRcdFx0XHRpZiAoYm9vbGVhbkJpbmRpbmcuaXNBPENvbXBvc2l0ZUJpbmRpbmc+KFwic2FwLnVpLm1vZGVsLkNvbXBvc2l0ZUJpbmRpbmdcIikpIHtcblx0XHRcdFx0XHRhd2FpdCBQcm9taXNlLmFsbChib29sZWFuQmluZGluZy5nZXRCaW5kaW5ncygpLm1hcCgobmVzdGVkQmluZGluZykgPT4gbmVzdGVkQmluZGluZy5yZXF1ZXN0VmFsdWU/LigpKSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0YXdhaXQgYm9vbGVhbkJpbmRpbmcucmVxdWVzdFZhbHVlPy4oKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gaXNBY3Rpb25Dcml0aWNhbFZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1hbmFnZXMgdGhlIG1lc3NhZ2UgYm94IHRvIGRpc3BsYXkgd2hlbiBhbiBhY3Rpb24gaXMgY3JpdGljYWwuXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCBpcyByZXNvbHZlZCBpZiB0aGUgYWN0aW9uIGlzIG5vdCBjcml0aWNhbCBvciB0aGUgbWVzc2FnZSBib3ggaXMgY2xvc2VkLlxuXHQgKi9cblx0cHJpdmF0ZSBhc3luYyBjb25maXJtQWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICghdGhpcy5vcGVyYXRpb25QYXJhbWV0ZXJzLmlzUGFyYW1ldGVyRGlhbG9nKCkpIHtcblx0XHRcdGNvbnN0IGlzQ3JpdGljYWwgPSBhd2FpdCB0aGlzLmlzQWN0aW9uQ3JpdGljYWwoKTtcblx0XHRcdGlmIChpc0NyaXRpY2FsKSB7XG5cdFx0XHRcdGNvbnN0IGFjdGlvbk5hbWUgPSBhY3Rpb25IZWxwZXIuZ2V0QWN0aW9uTmFtZSh0aGlzLmNvbnZlcnRlZEFjdGlvbik7XG5cdFx0XHRcdGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRjb25zdCBib3VuZEFjdGlvbk5hbWUgPSBhY3Rpb25OYW1lLmluY2x1ZGVzKFwiLlwiKSA/IGFjdGlvbk5hbWUuc3BsaXQoXCIuXCIpW2FjdGlvbk5hbWUuc3BsaXQoXCIuXCIpLmxlbmd0aCAtIDFdIDogYWN0aW9uTmFtZTtcblx0XHRcdFx0XHRjb25zdCBzdWZmaXhSZXNvdXJjZUtleSA9IGJvdW5kQWN0aW9uTmFtZSAmJiB0aGlzLmVudGl0eVNldE5hbWUgPyBgJHt0aGlzLmVudGl0eVNldE5hbWV9fCR7Ym91bmRBY3Rpb25OYW1lfWAgOiBcIlwiO1xuXG5cdFx0XHRcdFx0TWVzc2FnZUJveC5jb25maXJtKFxuXHRcdFx0XHRcdFx0UmVzb3VyY2VNb2RlbEhlbHBlci5nZXRSZXNvdXJjZU1vZGVsKHRoaXMucGFyYW1ldGVycy52aWV3ID8/IHRoaXMuYXBwQ29tcG9uZW50KS5nZXRUZXh0KFxuXHRcdFx0XHRcdFx0XHRcIkNfT1BFUkFUSU9OU19BQ1RJT05fQ09ORklSTV9NRVNTQUdFXCIsXG5cdFx0XHRcdFx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFx0XHRcdFx0c3VmZml4UmVzb3VyY2VLZXlcblx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLmdldENvbmZpcm1UaXRsZShzdWZmaXhSZXNvdXJjZUtleSksXG5cdFx0XHRcdFx0XHRcdG9uQ2xvc2U6IChhY3Rpb246IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChhY3Rpb24gPT09IE1lc3NhZ2VCb3guQWN0aW9uLk9LKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKEZFTGlicmFyeS5Db25zdGFudHMuQ2FuY2VsQWN0aW9uRGlhbG9nKSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Z2V0Q29uZmlybVRpdGxlKHN1ZmZpeFJlc291cmNlS2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdC8vIEEgdGl0bGUgb25seSBleGlzdHMgaWYgaXQgaGFzIGJlZW4gZGVmaW5lZCBpbiB0aGUgZXh0ZW5zaW9uLiBPdGhlcndpc2UgXCJDb25maXJtYXRpb25cIlxuXHRcdC8vIGlzIHVzZWQgZnJvbSB0aGUgTWVzc2FnZUJveCBjb250cm9sLlxuXHRcdGlmICghdGhpcy5wYXJhbWV0ZXJzLnZpZXcpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGNvbnN0IGtleSA9IFwiQ19PUEVSQVRJT05TX0FDVElPTl9DT05GSVJNX1RJVExFXCI7XG5cdFx0Y29uc3QgcmVzb3VyY2VNb2RlbCA9IFJlc291cmNlTW9kZWxIZWxwZXIuZ2V0UmVzb3VyY2VNb2RlbCh0aGlzLnBhcmFtZXRlcnMudmlldyA/PyB0aGlzLmFwcENvbXBvbmVudCk7XG5cdFx0Y29uc3QgdGl0bGVPdmVycmlkZUV4aXN0cyA9IHJlc291cmNlTW9kZWwuY2hlY2tJZlJlc291cmNlS2V5RXhpc3RzKGAke2tleX18JHtzdWZmaXhSZXNvdXJjZUtleX1gKTtcblx0XHRpZiAodGl0bGVPdmVycmlkZUV4aXN0cykge1xuXHRcdFx0cmV0dXJuIHJlc291cmNlTW9kZWwuZ2V0VGV4dChrZXksIHVuZGVmaW5lZCwgc3VmZml4UmVzb3VyY2VLZXkpO1xuXHRcdH1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztFQXdCQSxNQUFNQSxrQkFBa0IsR0FBR0MsU0FBUyxDQUFDRCxrQkFBa0I7RUFBQyxJQWtDbkNFLFNBQVM7SUE4QjdCLFNBQUFBLFVBQ2tCQyxZQUEwQixFQUMxQkMsS0FBaUIsRUFDakJDLGVBQTBCLEVBQzFCQyxVQUFtQyxFQUNuRDtNQUFBLEtBMUJlQyxnQkFBZ0IsR0FBRyxJQUFJQyxPQUFPLENBQTBDLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO1FBQzdHLElBQUksQ0FBQ0MsZ0JBQWdCLEdBQUdGLE9BQU87UUFDL0IsSUFBSSxDQUFDRyxlQUFlLEdBQUdGLE1BQU07TUFDOUIsQ0FBQyxDQUFDO01BQUEsS0FVTUcsZ0JBQWdCLEdBQWtDLENBQUMsQ0FBQztNQUFBLEtBRXBEQyx1QkFBdUIsR0FBRyxDQUFDO01BQUEsS0FFM0JDLHdCQUF3QixHQUFHLEtBQUs7TUFBQSxLQUt0QlosWUFBMEIsR0FBMUJBLFlBQTBCO01BQUEsS0FDMUJDLEtBQWlCLEdBQWpCQSxLQUFpQjtNQUFBLEtBQ2pCQyxlQUEwQixHQUExQkEsZUFBMEI7TUFBQSxLQUMxQkMsVUFBbUMsR0FBbkNBLFVBQW1DO01BRXBELElBQUksQ0FBQ1UsUUFBUSxHQUFHVixVQUFVLENBQUNVLFFBQVEsSUFBSSxFQUFFO01BRXpDLElBQUksQ0FBQ0MsMEJBQTBCLENBQUMs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
|
|
287
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnZvY2F0aW9uR3JvdXBpbmciLCJGRUxpYnJhcnkiLCJPcGVyYXRpb24iLCJhcHBDb21wb25lbnQiLCJtb2RlbCIsImNvbnZlcnRlZEFjdGlvbiIsInBhcmFtZXRlcnMiLCJleGVjdXRpb25Qcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJleGVjdXRpb25SZXNvbHZlIiwiZXhlY3V0aW9uUmVqZWN0IiwicGFyYW1ldGVyc1ZhbHVlcyIsIm51bWJlck9mT0RhdGFFeGVjdXRpb25zIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzVmFsdWVzIiwiY29udGV4dHMiLCJzZXRNZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSIsImVudGl0eVNldE5hbWUiLCJpc0JvdW5kIiwidW5kZWZpbmVkIiwiZ2V0TWV0YU1vZGVsIiwiZ2V0TWV0YUNvbnRleHQiLCJnZXRQYXRoIiwiZ2V0T2JqZWN0Iiwib3BlcmF0aW9uTWVzc2FnZSIsIk9wZXJhdGlvbk1lc3NhZ2UiLCJtZXNzYWdlSGFuZGxlciIsImFjdGlvbiIsImxhYmVsIiwiaW52b2NhdGlvbkdyb3VwaW5nIiwiZGlzYWJsZU5vdGlmaWNhdGlvbiIsInNraXBNZXNzYWdlcyIsImV2ZW50cyIsIm9uTWVzc2FnZUNvbGxlY3RlZCIsIm1hbmFnZURpYWxvZ09uTWVzc2FnZXMiLCJtZXNzYWdlQ29sbGVjdGVkUmVzb2x2ZSIsIm9uTWVzc2FnZVBhZ2VOYXZpZ2F0aW9uQ2FsbGJhY2siLCJvcGVyYXRpb25QYXJhbWV0ZXJzIiwiY2xvc2VQYXJhbWV0ZXJEaWFsb2ciLCJPcGVyYXRpb25QYXJhbWV0ZXJzIiwic2tpcFBhcmFtZXRlckRpYWxvZyIsImRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbiIsImlzQ3JlYXRlQWN0aW9uIiwicGFyYW1ldGVyVmFsdWVzIiwidmlldyIsIm9uUGFyYW1ldGVyRGlhbG9nT3BlbmVkIiwiYmluZCIsIm9uUGFyYW1ldGVyRGlhbG9nQ2xvc2VkIiwiX2V4cG9ydHMiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJjbGVhciIsIm9kYXRhT3BlcmF0aW9uIiwic2V0RGVmYXVsdFBhcmFtZXRlcnNWYWx1ZXMiLCJleGVjdXRlIiwiaW50ZXJuYWxFeGVjdXRpb24iLCJvcGVyYXRpb25SZXN1bHQiLCJnZXRPcGVyYXRpb25QYXJhbWV0ZXJzIiwiY29uZmlybUFjdGlvbiIsIk9EYXRhT3BlcmF0aW9uIiwiZGlzYWJsZVN0cmljdEhhbmRsaW5nIiwib0RhdGFQcm9wZXJ0aWVzIiwiZGlzYWJsZVNpZGVFZmZlY3RzIiwiZ2hvc3RDb250ZXh0QmluZGluZ1Byb3RlY3Rpb24iLCJvblN0cmljdFZhbGlkYXRpb24iLCJvRGF0YUV2ZW50cyIsIm9uU3RyaWN0Q2FuY2VsIiwib25TdHJpY3RSZXNwb25zZSIsIm1lc3NhZ2VzNDEyIiwiYWRkV2FybmluZ01lc3NhZ2VzVG9NZXNzYWdlSGFuZGxlciIsIm9uU3RyaWN0SGFuZGxpbmciLCJvbk9EYXRhUmVzcG9uc2UiLCJvbk9EYXRhU3VibWl0Iiwib25SZXF1ZXN0U2lkZUVmZmVjdHMiLCJlbmhhbmNlJHNlbGVjdCIsImdyb3VwSWQiLCJyZXBsYWNlV2l0aFJWQyIsImlnbm9yZUVUYWciLCJiaW5kaW5nUGFyYW1ldGVycyIsImRlZmVycmVkU3VibWl0IiwicmVhY3RUb09wZXJhdGlvbnMiLCJpc1BhcmFtZXRlckRpYWxvZyIsInNvbWUiLCJpc1JlamVjdGVkIiwiY2xvc2VEaWFsb2ciLCJtZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSIsImlzUGFyYW1ldGVyRGlhbG9nT3BlbmVkIiwiZSIsImlzRXJyb3JJbnRvUGFyYW1ldGVyRGlhbG9nIiwiYWN0aW9uSGVscGVyIiwiaXNTdGF0aWNBY3Rpb24iLCJsZW5ndGgiLCJyZXNldERpYWxvZyIsIkNoYW5nZVNldCIsImlzU3RyaWN0Q2FuY2VsZWQiLCJyZXNldFBhcmFtZXRlckRpYWxvZ1N0YXRlIiwiZ2V0T3BlcmF0aW9uUmVzdWx0cyIsImlzQWN0aW9uQ3JpdGljYWwiLCJjb250ZXh0IiwiaXNBY3Rpb25Dcml0aWNhbFZhbHVlIiwiaXNBY3Rpb25Dcml0aWNhbEJpbmRpbmdFeHAiLCJnZXRJc0FjdGlvbkNyaXRpY2FsRXhwcmVzc2lvbiIsImNvbnZlcnRUeXBlcyIsImlzQ29uc3RhbnQiLCJjb21waWxlQ29uc3RhbnQiLCJhbnlPYmplY3QiLCJBbnkiLCJhbnlCb29sZWFuIiwiY29tcGlsZUV4cHJlc3Npb24iLCJzZXRNb2RlbCIsImdldE1vZGVsIiwic2V0QmluZGluZ0NvbnRleHQiLCJib29sZWFuQmluZGluZyIsImdldEJpbmRpbmciLCJpc0EiLCJhbGwiLCJnZXRCaW5kaW5ncyIsIm1hcCIsIm5lc3RlZEJpbmRpbmciLCJyZXF1ZXN0VmFsdWUiLCJpc0NyaXRpY2FsIiwiYWN0aW9uTmFtZSIsImdldEFjdGlvbk5hbWUiLCJib3VuZEFjdGlvbk5hbWUiLCJpbmNsdWRlcyIsInNwbGl0Iiwic3VmZml4UmVzb3VyY2VLZXkiLCJNZXNzYWdlQm94IiwiY29uZmlybSIsIlJlc291cmNlTW9kZWxIZWxwZXIiLCJnZXRSZXNvdXJjZU1vZGVsIiwiZ2V0VGV4dCIsInRpdGxlIiwiZ2V0Q29uZmlybVRpdGxlIiwib25DbG9zZSIsIkFjdGlvbiIsIk9LIiwiRXJyb3IiLCJDb25zdGFudHMiLCJDYW5jZWxBY3Rpb25EaWFsb2ciLCJrZXkiLCJyZXNvdXJjZU1vZGVsIiwidGl0bGVPdmVycmlkZUV4aXN0cyIsImNoZWNrSWZSZXNvdXJjZUtleUV4aXN0cyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiT3BlcmF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uIGFzIEVkbUFjdGlvbiwgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgY29tcGlsZUNvbnN0YW50LCBjb21waWxlRXhwcmVzc2lvbiwgaXNDb25zdGFudCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBCaW5kQ29udGV4dFBhcmFtZXRlcnMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvZWRpdEZsb3cvZHJhZnRcIjtcbmltcG9ydCBBbnkgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xzL0FueVwiO1xuaW1wb3J0IHsgaXNSZWplY3RlZCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCBGRUxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB7IGdldElzQWN0aW9uQ3JpdGljYWxFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvQWN0aW9uSGVscGVyXCI7XG5pbXBvcnQgTWVzc2FnZUJveCBmcm9tIFwic2FwL20vTWVzc2FnZUJveFwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvbWVzc2FnZS9NZXNzYWdlXCI7XG5pbXBvcnQgdHlwZSBDb21wb3NpdGVCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvQ29tcG9zaXRlQmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YVByb3BlcnR5QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhUHJvcGVydHlCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcIi4uLy4uLy4uL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBGRVZpZXcgfSBmcm9tIFwiLi4vLi4vLi4vQmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IGNvbnZlcnRUeXBlcyB9IGZyb20gXCIuLi8uLi8uLi9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0ICogYXMgUmVzb3VyY2VNb2RlbEhlbHBlciBmcm9tIFwiLi4vLi4vLi4vaGVscGVycy9SZXNvdXJjZU1vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBNZXNzYWdlSGFuZGxlciBmcm9tIFwiLi4vLi4vTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCB0eXBlIHsgT3BlcmF0aW9uUmVzdWx0IH0gZnJvbSBcIi4vT0RhdGFPcGVyYXRpb25cIjtcbmltcG9ydCBPRGF0YU9wZXJhdGlvbiBmcm9tIFwiLi9PRGF0YU9wZXJhdGlvblwiO1xuaW1wb3J0IE9wZXJhdGlvbk1lc3NhZ2UgZnJvbSBcIi4vT3BlcmF0aW9uTWVzc2FnZVwiO1xuaW1wb3J0IE9wZXJhdGlvblBhcmFtZXRlcnMgZnJvbSBcIi4vT3BlcmF0aW9uUGFyYW1ldGVyc1wiO1xuaW1wb3J0IGFjdGlvbkhlbHBlciBmcm9tIFwiLi9hY3Rpb25IZWxwZXJcIjtcblxuY29uc3QgSW52b2NhdGlvbkdyb3VwaW5nID0gRkVMaWJyYXJ5Lkludm9jYXRpb25Hcm91cGluZztcblxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uUGFyYW1ldGVyc1R5cGUgPSB7XG5cdG1lc3NhZ2VIYW5kbGVyOiBNZXNzYWdlSGFuZGxlcjtcblx0dmlldz86IEZFVmlldztcblx0cGFyYW1ldGVyVmFsdWVzPzogUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlVHlwZT5bXTtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdGludm9jYXRpb25Hcm91cGluZz86IHN0cmluZztcblx0c2tpcFBhcmFtZXRlckRpYWxvZz86IGJvb2xlYW47XG5cdHNraXBNZXNzYWdlcz86IGJvb2xlYW47XG5cdGVudGl0eVNldE5hbWU/OiBzdHJpbmc7XG5cdG9EYXRhUHJvcGVydGllcz86IHtcblx0XHRnaG9zdENvbnRleHRCaW5kaW5nUHJvdGVjdGlvbj86IGJvb2xlYW47XG5cdFx0ZW5oYW5jZSRzZWxlY3Q/OiBib29sZWFuO1xuXHRcdGRpc2FibGVTdHJpY3RIYW5kbGluZz86IGJvb2xlYW47XG5cdFx0ZGlzYWJsZVNpZGVFZmZlY3RzPzogYm9vbGVhbjtcblx0XHRpZ25vcmVFVGFnPzogYm9vbGVhbjtcblx0XHRncm91cElkPzogc3RyaW5nO1xuXHRcdHJlcGxhY2VXaXRoUlZDPzogYm9vbGVhbjtcblx0XHRkZWZlcnJlZFN1Ym1pdD86IGJvb2xlYW47XG5cdH07XG5cdGlzQ3JlYXRlQWN0aW9uPzogYm9vbGVhbjtcblx0Y29udGV4dHM/OiBDb250ZXh0W107XG5cdGJpbmRpbmdQYXJhbWV0ZXJzPzogQmluZENvbnRleHRQYXJhbWV0ZXJzO1xuXHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24/OiBzdHJpbmc7XG5cdG9EYXRhRXZlbnRzPzoge1xuXHRcdG9uT0RhdGFSZXNwb25zZT86IEZ1bmN0aW9uO1xuXHRcdG9uT0RhdGFTdWJtaXQ/OiBGdW5jdGlvbjtcblx0XHRvblJlcXVlc3RTaWRlRWZmZWN0cz86IEZ1bmN0aW9uO1xuXHRcdG9uU3RyaWN0Q2FuY2VsPzogRnVuY3Rpb247XG5cdFx0b25TdHJpY3RWYWxpZGF0aW9uPzogRnVuY3Rpb247XG5cdH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBPcGVyYXRpb24ge1xuXHRwcml2YXRlIHJlYWRvbmx5IGNvbnRleHRzOiBDb250ZXh0W107XG5cblx0cHJpdmF0ZSByZWFkb25seSBlbnRpdHlTZXROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBleGVjdXRpb25SZXNvbHZlITogRnVuY3Rpb247XG5cblx0cHJpdmF0ZSBleGVjdXRpb25SZWplY3QhOiBGdW5jdGlvbjtcblxuXHRwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblByb21pc2UgPSBuZXcgUHJvbWlzZTxQcm9taXNlU2V0dGxlZFJlc3VsdDxPcGVyYXRpb25SZXN1bHQ+W10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHR0aGlzLmV4ZWN1dGlvblJlc29sdmUgPSByZXNvbHZlO1xuXHRcdHRoaXMuZXhlY3V0aW9uUmVqZWN0ID0gcmVqZWN0O1xuXHR9KTtcblxuXHRwcml2YXRlIG1lc3NhZ2VDb2xsZWN0ZWRSZXNvbHZlITogRnVuY3Rpb247XG5cblx0cHJpdmF0ZSBtZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSE6IFByb21pc2U8dm9pZD47XG5cblx0cHJpdmF0ZSByZWFkb25seSBvcGVyYXRpb25NZXNzYWdlOiBPcGVyYXRpb25NZXNzYWdlO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgb3BlcmF0aW9uUGFyYW1ldGVyczogT3BlcmF0aW9uUGFyYW1ldGVycztcblxuXHRwcml2YXRlIHBhcmFtZXRlcnNWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZVR5cGU+ID0ge307XG5cblx0cHJpdmF0ZSBudW1iZXJPZk9EYXRhRXhlY3V0aW9ucyA9IDA7XG5cblx0cHJpdmF0ZSBleHRlcm5hbFBhcmFtZXRlcnNWYWx1ZXMgPSBmYWxzZTtcblxuXHRwcml2YXRlIG9kYXRhT3BlcmF0aW9uOiBPRGF0YU9wZXJhdGlvbiB8IHVuZGVmaW5lZDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgbW9kZWw6IE9EYXRhTW9kZWwsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZWRBY3Rpb246IEVkbUFjdGlvbixcblx0XHRwcml2YXRlIHJlYWRvbmx5IHBhcmFtZXRlcnM6IE9wZXJhdGlvblBhcmFtZXRlcnNUeXBlXG5cdCkge1xuXHRcdHRoaXMuY29udGV4dHMgPSBwYXJhbWV0ZXJzLmNvbnRleHRzID8/IFtdO1xuXG5cdFx0dGhpcy5zZXRNZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSgpO1xuXG5cdFx0Ly8gSWYgZW50aXR5U2V0TmFtZSBpcyBub3QgcHJvdmlkZWQsIGl0IGlzIGRlcml2ZWQgZnJvbSB0aGUgZmlyc3QgY29udGV4dCBhcyBmYWxsYmFjay5cblx0XHR0aGlzLmVudGl0eVNldE5hbWUgPVxuXHRcdFx0cGFyYW1ldGVycy5lbnRpdHlTZXROYW1lID8/XG5cdFx0XHQodGhpcy5jb252ZXJ0ZWRBY3Rpb24uaXNCb3VuZCAmJiB0aGlzLmNvbnRleHRzWzBdICE9PSB1bmRlZmluZWRcblx0XHRcdFx0PyB0aGlzLm1vZGVsLmdldE1ldGFNb2RlbCgpLmdldE1ldGFDb250ZXh0KHRoaXMuY29udGV4dHNbMF0uZ2V0UGF0aCgpKS5nZXRPYmplY3QoXCJAc2FwdWkubmFtZVwiKVxuXHRcdFx0XHQ6IHVuZGVmaW5lZCk7XG5cblx0XHR0aGlzLm9wZXJhdGlvbk1lc3NhZ2UgPSBuZXcgT3BlcmF0aW9uTWVzc2FnZSh7XG5cdFx0XHRtZXNzYWdlSGFuZGxlcjogdGhpcy5wYXJhbWV0ZXJzLm1lc3NhZ2VIYW5kbGVyLFxuXHRcdFx0YWN0aW9uOiB0aGlzLmNvbnZlcnRlZEFjdGlvbixcblx0XHRcdGNvbnRleHRzOiB0aGlzLmNvbnRleHRzLFxuXHRcdFx0bGFiZWw6IHRoaXMucGFyYW1ldGVycy5sYWJlbCxcblx0XHRcdGludm9jYXRpb25Hcm91cGluZzogdGhpcy5wYXJhbWV0ZXJzLmludm9jYXRpb25Hcm91cGluZyxcblx0XHRcdGRpc2FibGVOb3RpZmljYXRpb246IHRoaXMucGFyYW1ldGVycy5za2lwTWVzc2FnZXMsXG5cdFx0XHRlbnRpdHlTZXROYW1lOiB0aGlzLmVudGl0eVNldE5hbWUsXG5cdFx0XHRldmVudHM6IHtcblx0XHRcdFx0b25NZXNzYWdlQ29sbGVjdGVkOiAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0Ly8gRHVlIHRvIHRoZSBtZXNzIGludG8gdGhlIG1lc3NhZ2UgaGFuZGxpbmdcblx0XHRcdFx0XHQvLyB0aGUgZGlhbG9nIHNob3VsZCBiZSBjbG9zZWQgb3Igbm90IG9ubHkgYWZ0ZXIgdGhlIG1lc3NhZ2VzIGFyZSBjb2xsZWN0ZWRcblx0XHRcdFx0XHQvLyBpdCBtZWFucyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBtZXNzYWdlIGhhbmRsaW5nIHdvcmtmbG93IHZpYVxuXHRcdFx0XHRcdC8vIGEgY2FsbGJhY2sgZnVuY3Rpb25cblx0XHRcdFx0XHR0aGlzLm1hbmFnZURpYWxvZ09uTWVzc2FnZXMoKTtcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VDb2xsZWN0ZWRSZXNvbHZlKCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdG9uTWVzc2FnZVBhZ2VOYXZpZ2F0aW9uQ2FsbGJhY2s6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR0aGlzLm9wZXJhdGlvblBhcmFtZXRlcnMuY2xvc2VQYXJhbWV0ZXJEaWFsb2coKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5vcGVyYXRpb25QYXJhbWV0ZXJzID0gbmV3IE9wZXJhdGlvblBhcmFtZXRlcnMoXG5cdFx0XHR0aGlzLmFwcENvbXBvbmVudCxcblx0XHRcdHRoaXMubW9kZWwsXG5cdFx0XHR0aGlzLmNvbnZlcnRlZEFjdGlvbixcblx0XHRcdHRoaXMucGFyYW1ldGVycy5za2lwUGFyYW1ldGVyRGlhbG9nLFxuXHRcdFx0e1xuXHRcdFx0XHRjb250ZXh0czogdGhpcy5jb250ZXh0cyxcblx0XHRcdFx0ZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uOiB0aGlzLnBhcmFtZXRlcnMuZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uLFxuXHRcdFx0XHRpc0NyZWF0ZUFjdGlvbjogdGhpcy5wYXJhbWV0ZXJzLmlzQ3JlYXRlQWN0aW9uLFxuXHRcdFx0XHRsYWJlbDogdGhpcy5wYXJhbWV0ZXJzLmxhYmVsLFxuXHRcdFx0XHRwYXJhbWV0ZXJWYWx1ZXM6IHRoaXMucGFyYW1ldGVycy5wYXJhbWV0ZXJWYWx1ZXMsXG5cdFx0XHRcdGVudGl0eVNldE5hbWU6IHRoaXMuZW50aXR5U2V0TmFtZSxcblx0XHRcdFx0dmlldzogdGhpcy5wYXJhbWV0ZXJzLnZpZXcsXG5cdFx0XHRcdG1lc3NhZ2VIYW5kbGVyOiB0aGlzLnBhcmFtZXRlcnMubWVzc2FnZUhhbmRsZXIsXG5cdFx0XHRcdGV2ZW50czoge1xuXHRcdFx0XHRcdG9uUGFyYW1ldGVyRGlhbG9nT3BlbmVkOiB0aGlzLm9wZXJhdGlvbk1lc3NhZ2Uub25QYXJhbWV0ZXJEaWFsb2dPcGVuZWQuYmluZCh0aGlzLm9wZXJhdGlvbk1lc3NhZ2UpLFxuXHRcdFx0XHRcdG9uUGFyYW1ldGVyRGlhbG9nQ2xvc2VkOiB0aGlzLm9wZXJhdGlvbk1lc3NhZ2Uub25QYXJhbWV0ZXJEaWFsb2dDbG9zZWQuYmluZCh0aGlzLm9wZXJhdGlvbk1lc3NhZ2UpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cblx0Y2xlYXIoKTogdm9pZCB7XG5cdFx0dGhpcy5vcGVyYXRpb25QYXJhbWV0ZXJzLmNsb3NlUGFyYW1ldGVyRGlhbG9nKCk7XG5cdFx0dGhpcy5vZGF0YU9wZXJhdGlvbj8uY2xlYXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXQgdGhlIHZhbHVlcyByZWxhdGVkIHRvIHRoZSBwYXJhbWV0ZXJzICBmb3IgdGhlIG9wZXJhdGlvblxuXHQgKiBJZiB0aGUgdmFsdWVzIGFyZSBzZXQgdGhlIG9wZXJhdGlvbiBwYXJhbWV0ZXIgZGlhbG9nIGlzIHNraXBwZWQuXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzVmFsdWVzIFRoZSB2YWx1ZXMgZm9yIHRoZSBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRwdWJsaWMgc2V0RGVmYXVsdFBhcmFtZXRlcnNWYWx1ZXMocGFyYW1ldGVyc1ZhbHVlczogUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlVHlwZT4pOiB2b2lkIHtcblx0XHR0aGlzLnBhcmFtZXRlcnNWYWx1ZXMgPSBwYXJhbWV0ZXJzVmFsdWVzO1xuXHRcdHRoaXMuZXh0ZXJuYWxQYXJhbWV0ZXJzVmFsdWVzID0gdHJ1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFeGVjdXRlcyB0aGUgb3BlcmF0aW9uLlxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgY29udGFpbmluZyB0aGUgcmVzdWx0c1xuXHQgKi9cblx0cHVibGljIGFzeW5jIGV4ZWN1dGUoKTogUHJvbWlzZTxQcm9taXNlU2V0dGxlZFJlc3VsdDxPcGVyYXRpb25SZXN1bHQ+W10+IHtcblx0XHR0aGlzLmludGVybmFsRXhlY3V0aW9uKCk7XG5cdFx0cmV0dXJuIHRoaXMuZXhlY3V0aW9uUHJvbWlzZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFeGVjdXRlcyB0aGUgb3BlcmF0aW9uLlxuXHQgKi9cblx0cHJpdmF0ZSBhc3luYyBpbnRlcm5hbEV4ZWN1dGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRsZXQgb3BlcmF0aW9uUmVzdWx0OiBQcm9taXNlU2V0dGxlZFJlc3VsdDxPcGVyYXRpb25SZXN1bHQ+W10gPSBbXTtcblx0XHR0cnkge1xuXHRcdFx0dGhpcy5udW1iZXJPZk9EYXRhRXhlY3V0aW9ucysrO1xuXHRcdFx0aWYgKCF0aGlzLmV4dGVybmFsUGFyYW1ldGVyc1ZhbHVlcykge1xuXHRcdFx0XHR0aGlzLnBhcmFtZXRlcnNWYWx1ZXMgPSBhd2FpdCB0aGlzLm9wZXJhdGlvblBhcmFtZXRlcnMuZ2V0T3BlcmF0aW9uUGFyYW1ldGVycygpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMubnVtYmVyT2ZPRGF0YUV4ZWN1dGlvbnMgPT09IDEpIHtcblx0XHRcdFx0YXdhaXQgdGhpcy5jb25maXJtQWN0aW9uKCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm9kYXRhT3BlcmF0aW9uID0gbmV3IE9EYXRhT3BlcmF0aW9uKFxuXHRcdFx0XHR0aGlzLmNvbnZlcnRlZEFjdGlvbixcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGFwcENvbXBvbmVudDogdGhpcy5hcHBDb21wb25lbnQsXG5cdFx0XHRcdFx0Y29udGV4dHM6IHRoaXMuY29udGV4dHMsXG5cdFx0XHRcdFx0bW9kZWw6IHRoaXMubW9kZWwsXG5cdFx0XHRcdFx0bGFiZWw6IHRoaXMucGFyYW1ldGVycy5sYWJlbCxcblx0XHRcdFx0XHRpbnZvY2F0aW9uR3JvdXBpbmc6IHRoaXMucGFyYW1ldGVycy5pbnZvY2F0aW9uR3JvdXBpbmcsXG5cdFx0XHRcdFx0ZGlzYWJsZVN0cmljdEhhbmRsaW5nOiB0aGlzLnBhcmFtZXRlcnMub0RhdGFQcm9wZXJ0aWVzPy5kaXNhYmxlU3RyaWN0SGFuZGxpbmcsXG5cdFx0XHRcdFx0ZGlzYWJsZVNpZGVFZmZlY3RzOiB0aGlzLnBhcmFtZXRlcnMub0RhdGFQcm9wZXJ0aWVzPy5kaXNhYmxlU2lkZUVmZmVjdHMsXG5cdFx0XHRcdFx0Z2hvc3RDb250ZXh0QmluZGluZ1Byb3RlY3Rpb246IHRoaXMucGFyYW1ldGVycy5vRGF0YVByb3BlcnRpZXM/Lmdob3N0Q29udGV4dEJpbmRpbmdQcm90ZWN0aW9uLFxuXHRcdFx0XHRcdGV2ZW50czoge1xuXHRcdFx0XHRcdFx0b25TdHJpY3RWYWxpZGF0aW9uOiB0aGlzLnBhcmFtZXRlcnMub0RhdGFFdmVudHM/Lm9uU3RyaWN0VmFsaWRhdGlvbixcblx0XHRcdFx0XHRcdG9uU3RyaWN0Q2FuY2VsOiB0aGlzLnBhcmFtZXRlcnMub0RhdGFFdmVudHM/Lm9uU3RyaWN0Q2FuY2VsLFxuXHRcdFx0XHRcdFx0b25TdHJpY3RSZXNwb25zZTogKG1lc3NhZ2VzNDEyOiBNZXNzYWdlW10pOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5wYXJhbWV0ZXJzLm1lc3NhZ2VIYW5kbGVyLmFkZFdhcm5pbmdNZXNzYWdlc1RvTWVzc2FnZUhhbmRsZXIobWVzc2FnZXM0MTIpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLm9wZXJhdGlvbk1lc3NhZ2Uub25TdHJpY3RIYW5kbGluZygpO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uT0RhdGFSZXNwb25zZTogdGhpcy5wYXJhbWV0ZXJzLm9EYXRhRXZlbnRzPy5vbk9EYXRhUmVzcG9uc2UsXG5cdFx0XHRcdFx0XHRvbk9EYXRhU3VibWl0OiB0aGlzLnBhcmFtZXRlcnMub0RhdGFFdmVudHM/Lm9uT0RhdGFTdWJtaXQsXG5cdFx0XHRcdFx0XHRvblJlcXVlc3RTaWRlRWZmZWN0czogdGhpcy5wYXJhbWV0ZXJzLm9EYXRhRXZlbnRzPy5vblJlcXVlc3RTaWRlRWZmZWN0c1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0cGFyYW1ldGVyc1ZhbHVlczogdGhpcy5wYXJhbWV0ZXJzVmFsdWVzXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRlbmhhbmNlJHNlbGVjdDogdGhpcy5wYXJhbWV0ZXJzLm9EYXRhUHJvcGVydGllcz8uZW5oYW5jZSRzZWxlY3QsXG5cdFx0XHRcdFx0Z3JvdXBJZDogdGhpcy5wYXJhbWV0ZXJzLm9EYXRhUHJvcGVydGllcz8uZ3JvdXBJZCxcblx0XHRcdFx0XHRyZXBsYWNlV2l0aFJWQzogdGhpcy5wYXJhbWV0ZXJzLm9EYXRhUHJvcGVydGllcz8ucmVwbGFjZVdpdGhSVkMsXG5cdFx0XHRcdFx0aWdub3JlRVRhZzogdGhpcy5wYXJhbWV0ZXJzLm9EYXRhUHJvcGVydGllcz8uaWdub3JlRVRhZyxcblx0XHRcdFx0XHRiaW5kaW5nUGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzLmJpbmRpbmdQYXJhbWV0ZXJzLFxuXHRcdFx0XHRcdGRlZmVycmVkU3VibWl0OiB0aGlzLnBhcmFtZXRlcnMub0RhdGFQcm9wZXJ0aWVzPy5kZWZlcnJlZFN1Ym1pdFxuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdFx0b3BlcmF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5vZGF0YU9wZXJhdGlvbi5leGVjdXRlKCk7XG5cdFx0XHR0aGlzLm9wZXJhdGlvbk1lc3NhZ2UucmVhY3RUb09wZXJhdGlvbnMob3BlcmF0aW9uUmVzdWx0KTtcblxuXHRcdFx0aWYgKHRoaXMub3BlcmF0aW9uUGFyYW1ldGVycy5pc1BhcmFtZXRlckRpYWxvZygpKSB7XG5cdFx0XHRcdGlmICghb3BlcmF0aW9uUmVzdWx0LnNvbWUoaXNSZWplY3RlZCkpIHtcblx0XHRcdFx0XHR0aGlzLmNsb3NlRGlhbG9nKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5tZXNzYWdlQ29sbGVjdGVkUHJvbWlzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy5vcGVyYXRpb25QYXJhbWV0ZXJzLmlzUGFyYW1ldGVyRGlhbG9nT3BlbmVkKCkpIHtcblx0XHRcdFx0dGhpcy5zZXRNZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSgpO1xuXHRcdFx0XHR0aGlzLmludGVybmFsRXhlY3V0aW9uKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmV4ZWN1dGlvblJlc29sdmUob3BlcmF0aW9uUmVzdWx0KTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHR0aGlzLmV4ZWN1dGlvblJlamVjdChlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTWFuYWdlcyB0aGUgcGFyYW1ldGVyIGRpYWxvZyBhZnRlciB0aGUgbWVzc2FnZXMuXG5cdCAqL1xuXG5cdHByaXZhdGUgbWFuYWdlRGlhbG9nT25NZXNzYWdlcygpOiB2b2lkIHtcblx0XHRjb25zdCBpc0Vycm9ySW50b1BhcmFtZXRlckRpYWxvZyA9IHRoaXMub3BlcmF0aW9uTWVzc2FnZS5pc0Vycm9ySW50b1BhcmFtZXRlckRpYWxvZygpO1xuXG5cdFx0aWYgKGFjdGlvbkhlbHBlci5pc1N0YXRpY0FjdGlvbih0aGlzLmNvbnZlcnRlZEFjdGlvbikgfHwgdGhpcy5jb250ZXh0cy5sZW5ndGggPT09IDApIHtcblx0XHRcdC8vIERvbid0IGNsb3NlIHRoZSBkaWFsb2cgaWYgdGhlIGFjdGlvbiBpcyBzdGF0aWMgb3IgYW4gaW1wb3J0XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXNldERpYWxvZygpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5wYXJhbWV0ZXJzLmludm9jYXRpb25Hcm91cGluZyA9PT0gSW52b2NhdGlvbkdyb3VwaW5nLkNoYW5nZVNldCkge1xuXHRcdFx0Ly8gV2hlbiB0aGUgZW5kIHVzZXIgY2FuY2VsIHRoZSBwcm9jZXNzIG9uIHRoZSBzdHJpY3QgZGlhbG9nLCB3ZSBuZWVkIHRvIGtlZXAgdGhlIHBhcmFtZXRlciBkaWFsb2cgKG9ubHkgb24gQ2hhbmdlU2V0KSAjNjM3NjU5MlxuXHRcdFx0aWYgKGlzRXJyb3JJbnRvUGFyYW1ldGVyRGlhbG9nIHx8IHRoaXMub2RhdGFPcGVyYXRpb24/LmlzU3RyaWN0Q2FuY2VsZWQoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5yZXNldERpYWxvZygpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuY2xvc2VEaWFsb2coKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKCh0aGlzLnBhcmFtZXRlcnMuY29udGV4dHMgJiYgdGhpcy5wYXJhbWV0ZXJzLmNvbnRleHRzLmxlbmd0aCA+IDEpIHx8ICFpc0Vycm9ySW50b1BhcmFtZXRlckRpYWxvZykge1xuXHRcdFx0Ly8gZG9lcyBub3QgbWF0dGVyIGlmIGVycm9yIGlzIGluIEFQRCBvciBub3QsIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBjb250ZXh0cyBzZWxlY3RlZCBvciBpZiB0aGUgZXJyb3IgaXMgbm90IHRoZSBBUEQsIHdlIGNsb3NlIGl0LlxuXHRcdFx0cmV0dXJuIHRoaXMuY2xvc2VEaWFsb2coKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMucmVzZXREaWFsb2coKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBtZXNzYWdlIGNvbGxlY3RlZCBwcm9taXNlLlxuXHQgKiBUaGlzIHByb21pc2UgaXMgcmVzb2x2ZWQgd2hlbiB0aGUgbWVzc2FnZXMgYXJlIGNvbGxlY3RlZC5cblx0ICovXG5cdHByaXZhdGUgc2V0TWVzc2FnZUNvbGxlY3RlZFByb21pc2UoKTogdm9pZCB7XG5cdFx0dGhpcy5tZXNzYWdlQ29sbGVjdGVkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG5cdFx0XHR0aGlzLm1lc3NhZ2VDb2xsZWN0ZWRSZXNvbHZlID0gcmVzb2x2ZTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDbG9zZXMgdGhlIHBhcmFtZXRlciBkaWFsb2cuXG5cdCAqL1xuXHRwcml2YXRlIGNsb3NlRGlhbG9nKCk6IHZvaWQge1xuXHRcdHRoaXMub3BlcmF0aW9uUGFyYW1ldGVycy5jbG9zZVBhcmFtZXRlckRpYWxvZygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlc2V0cyB0aGUgcGFyYW1ldGVyIGRpYWxvZy5cblx0ICovXG5cdHByaXZhdGUgcmVzZXREaWFsb2coKTogdm9pZCB7XG5cdFx0dGhpcy5vcGVyYXRpb25QYXJhbWV0ZXJzLnJlc2V0UGFyYW1ldGVyRGlhbG9nU3RhdGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbi5cblx0ICogQHJldHVybnMgVGhlIHJlc3VsdFxuXHQgKi9cblx0cHVibGljIGFzeW5jIGdldE9wZXJhdGlvblJlc3VsdHMoKTogUHJvbWlzZTxQcm9taXNlU2V0dGxlZFJlc3VsdDxPcGVyYXRpb25SZXN1bHQ+W10+IHtcblx0XHRyZXR1cm4gdGhpcy5leGVjdXRpb25Qcm9taXNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiBhY3Rpb24gaXMgY3JpdGljYWwuXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGFjdGlvbiBpcyBjcml0aWNhbCwgb3RoZXJ3aXNlIGZhbHNlXG5cdCAqL1xuXHRwcml2YXRlIGFzeW5jIGlzQWN0aW9uQ3JpdGljYWwoKTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0Ly9vbmx5IHdvcmtzIHdpdGggc2luZ2xlIGNvbnRleHQgKGFzIGZvcm1lciBjb2RlKTtcblx0XHRjb25zdCBjb250ZXh0ID0gdGhpcy5wYXJhbWV0ZXJzLmNvbnRleHRzPy5bMF07XG5cdFx0Ly8gZGVmYXVsdCBpcyB0cnVlLlxuXHRcdGxldCBpc0FjdGlvbkNyaXRpY2FsVmFsdWU6IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+ID0gdHJ1ZTtcblx0XHRjb25zdCBpc0FjdGlvbkNyaXRpY2FsQmluZGluZ0V4cCA9IGdldElzQWN0aW9uQ3JpdGljYWxFeHByZXNzaW9uKHRoaXMuY29udmVydGVkQWN0aW9uLCBjb252ZXJ0VHlwZXModGhpcy5tb2RlbC5nZXRNZXRhTW9kZWwoKSkpO1xuXHRcdGlmIChpc0NvbnN0YW50KGlzQWN0aW9uQ3JpdGljYWxCaW5kaW5nRXhwKSkge1xuXHRcdFx0aXNBY3Rpb25Dcml0aWNhbFZhbHVlID0gY29tcGlsZUNvbnN0YW50KGlzQWN0aW9uQ3JpdGljYWxCaW5kaW5nRXhwLCBmYWxzZSwgdW5kZWZpbmVkLCB0cnVlKSBhcyBib29sZWFuO1xuXHRcdH0gZWxzZSBpZiAoY29udGV4dCkge1xuXHRcdFx0Y29uc3QgYW55T2JqZWN0ID0gbmV3IEFueSh7IGFueUJvb2xlYW46IGNvbXBpbGVFeHByZXNzaW9uKGlzQWN0aW9uQ3JpdGljYWxCaW5kaW5nRXhwKSB9KTtcblx0XHRcdGFueU9iamVjdC5zZXRNb2RlbChjb250ZXh0LmdldE1vZGVsKCkpO1xuXHRcdFx0YW55T2JqZWN0LnNldEJpbmRpbmdDb250ZXh0KGNvbnRleHQpO1xuXHRcdFx0Y29uc3QgYm9vbGVhbkJpbmRpbmcgPSBhbnlPYmplY3QuZ2V0QmluZGluZyhcImFueUJvb2xlYW5cIikgYXMgT0RhdGFQcm9wZXJ0eUJpbmRpbmcgfCB1bmRlZmluZWQ7XG5cdFx0XHRpZiAoYm9vbGVhbkJpbmRpbmcpIHtcblx0XHRcdFx0aWYgKGJvb2xlYW5CaW5kaW5nLmlzQTxDb21wb3NpdGVCaW5kaW5nPihcInNhcC51aS5tb2RlbC5Db21wb3NpdGVCaW5kaW5nXCIpKSB7XG5cdFx0XHRcdFx0YXdhaXQgUHJvbWlzZS5hbGwoYm9vbGVhbkJpbmRpbmcuZ2V0QmluZGluZ3MoKS5tYXAoKG5lc3RlZEJpbmRpbmcpID0+IG5lc3RlZEJpbmRpbmcucmVxdWVzdFZhbHVlPy4oKSkpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGF3YWl0IGJvb2xlYW5CaW5kaW5nLnJlcXVlc3RWYWx1ZT8uKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGlzQWN0aW9uQ3JpdGljYWxWYWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNYW5hZ2VzIHRoZSBtZXNzYWdlIGJveCB0byBkaXNwbGF5IHdoZW4gYW4gYWN0aW9uIGlzIGNyaXRpY2FsLlxuXHQgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggaXMgcmVzb2x2ZWQgaWYgdGhlIGFjdGlvbiBpcyBub3QgY3JpdGljYWwgb3IgdGhlIG1lc3NhZ2UgYm94IGlzIGNsb3NlZC5cblx0ICovXG5cdHByaXZhdGUgYXN5bmMgY29uZmlybUFjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIXRoaXMub3BlcmF0aW9uUGFyYW1ldGVycy5pc1BhcmFtZXRlckRpYWxvZygpKSB7XG5cdFx0XHRjb25zdCBpc0NyaXRpY2FsID0gYXdhaXQgdGhpcy5pc0FjdGlvbkNyaXRpY2FsKCk7XG5cdFx0XHRpZiAoaXNDcml0aWNhbCkge1xuXHRcdFx0XHRjb25zdCBhY3Rpb25OYW1lID0gYWN0aW9uSGVscGVyLmdldEFjdGlvbk5hbWUodGhpcy5jb252ZXJ0ZWRBY3Rpb24pO1xuXHRcdFx0XHRhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgYm91bmRBY3Rpb25OYW1lID0gYWN0aW9uTmFtZS5pbmNsdWRlcyhcIi5cIikgPyBhY3Rpb25OYW1lLnNwbGl0KFwiLlwiKVthY3Rpb25OYW1lLnNwbGl0KFwiLlwiKS5sZW5ndGggLSAxXSA6IGFjdGlvbk5hbWU7XG5cdFx0XHRcdFx0Y29uc3Qgc3VmZml4UmVzb3VyY2VLZXkgPSBib3VuZEFjdGlvbk5hbWUgJiYgdGhpcy5lbnRpdHlTZXROYW1lID8gYCR7dGhpcy5lbnRpdHlTZXROYW1lfXwke2JvdW5kQWN0aW9uTmFtZX1gIDogXCJcIjtcblxuXHRcdFx0XHRcdE1lc3NhZ2VCb3guY29uZmlybShcblx0XHRcdFx0XHRcdFJlc291cmNlTW9kZWxIZWxwZXIuZ2V0UmVzb3VyY2VNb2RlbCh0aGlzLnBhcmFtZXRlcnMudmlldyA/PyB0aGlzLmFwcENvbXBvbmVudCkuZ2V0VGV4dChcblx0XHRcdFx0XHRcdFx0XCJDX09QRVJBVElPTlNfQUNUSU9OX0NPTkZJUk1fTUVTU0FHRVwiLFxuXHRcdFx0XHRcdFx0XHR1bmRlZmluZWQsXG5cdFx0XHRcdFx0XHRcdHN1ZmZpeFJlc291cmNlS2V5XG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR0aXRsZTogdGhpcy5nZXRDb25maXJtVGl0bGUoc3VmZml4UmVzb3VyY2VLZXkpLFxuXHRcdFx0XHRcdFx0XHRvbkNsb3NlOiAoYWN0aW9uOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoYWN0aW9uID09PSBNZXNzYWdlQm94LkFjdGlvbi5PSykge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihGRUxpYnJhcnkuQ29uc3RhbnRzLkNhbmNlbEFjdGlvbkRpYWxvZykpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGdldENvbmZpcm1UaXRsZShzdWZmaXhSZXNvdXJjZUtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHQvLyBBIHRpdGxlIG9ubHkgZXhpc3RzIGlmIGl0IGhhcyBiZWVuIGRlZmluZWQgaW4gdGhlIGV4dGVuc2lvbi4gT3RoZXJ3aXNlIFwiQ29uZmlybWF0aW9uXCJcblx0XHQvLyBpcyB1c2VkIGZyb20gdGhlIE1lc3NhZ2VCb3ggY29udHJvbC5cblx0XHRpZiAoIXRoaXMucGFyYW1ldGVycy52aWV3KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRjb25zdCBrZXkgPSBcIkNfT1BFUkFUSU9OU19BQ1RJT05fQ09ORklSTV9USVRMRVwiO1xuXHRcdGNvbnN0IHJlc291cmNlTW9kZWwgPSBSZXNvdXJjZU1vZGVsSGVscGVyLmdldFJlc291cmNlTW9kZWwodGhpcy5wYXJhbWV0ZXJzLnZpZXcgPz8gdGhpcy5hcHBDb21wb25lbnQpO1xuXHRcdGNvbnN0IHRpdGxlT3ZlcnJpZGVFeGlzdHMgPSByZXNvdXJjZU1vZGVsLmNoZWNrSWZSZXNvdXJjZUtleUV4aXN0cyhgJHtrZXl9fCR7c3VmZml4UmVzb3VyY2VLZXl9YCk7XG5cdFx0aWYgKHRpdGxlT3ZlcnJpZGVFeGlzdHMpIHtcblx0XHRcdHJldHVybiByZXNvdXJjZU1vZGVsLmdldFRleHQoa2V5LCB1bmRlZmluZWQsIHN1ZmZpeFJlc291cmNlS2V5KTtcblx0XHR9XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7RUF3QkEsTUFBTUEsa0JBQWtCLEdBQUdDLFNBQVMsQ0FBQ0Qsa0JBQWtCO0VBQUMsSUFrQ25DRSxTQUFTO0lBOEI3QixTQUFBQSxVQUNrQkMsWUFBMEIsRUFDMUJDLEtBQWlCLEVBQ2pCQyxlQUEwQixFQUMxQkMsVUFBbUMsRUFDbkQ7TUFBQSxLQTFCZUMsZ0JBQWdCLEdBQUcsSUFBSUMsT0FBTyxDQUEwQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztRQUM3RyxJQUFJLENBQUNDLGdCQUFnQixHQUFHRixPQUFPO1FBQy9CLElBQUksQ0FBQ0csZUFBZSxHQUFHRixNQUFNO01BQzlCLENBQUMsQ0FBQztNQUFBLEtBVU1HLGdCQUFnQixHQUFrQyxDQUFDLENBQUM7TUFBQSxLQUVwREMsdUJBQXVCLEdBQUcsQ0FBQztNQUFBLEtBRTNCQyx3QkFBd0IsR0FBRyxLQUFLO01BQUEsS0FLdEJaLFlBQTBCLEdBQTFCQSxZQUEwQjtNQUFBLEtBQzFCQyxLQUFpQixHQUFqQkEsS0FBaUI7TUFBQSxLQUNqQkMsZUFBMEIsR0FBMUJBLGVBQTBCO01BQUEsS0FDMUJDLFVBQW1DLEdBQW5DQSxVQUFtQztNQUVwRCxJQUFJLENBQUNVLFFBQVEsR0FBR1YsVUFBVSxDQUFDVSxRQUFRLElBQUksRUFBRTtNQUV6QyxJQUFJLENBQUNDLDBCQUEwQixDQUFDLENBQUM7O01BRWpD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
|
|
@@ -137,7 +137,7 @@ export default class Operation {
|
|
|
137
137
|
isCreateAction: this.parameters.isCreateAction,
|
|
138
138
|
label: this.parameters.label,
|
|
139
139
|
parameterValues: this.parameters.parameterValues,
|
|
140
|
-
entitySetName: this.
|
|
140
|
+
entitySetName: this.entitySetName,
|
|
141
141
|
view: this.parameters.view,
|
|
142
142
|
messageHandler: this.parameters.messageHandler,
|
|
143
143
|
events: {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/ResourceModelHelper", "sap/fe/core/library", "sap/m/MessageBox", "sap/ui/core/Lib", "../../converters/MetaModelConverter", "./operations/Operation"], function (Log, CommonUtils, ResourceModelHelper, FELibrary, MessageBox, Library, MetaModelConverter, Operation) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/base/util/isEmptyObject", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/ResourceModelHelper", "sap/fe/core/library", "sap/m/MessageBox", "sap/ui/core/Lib", "../../converters/MetaModelConverter", "./operations/Operation"], function (Log, isEmptyObject, CommonUtils, ResourceModelHelper, FELibrary, MessageBox, Library, MetaModelConverter, Operation) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var convertTypes = MetaModelConverter.convertTypes;
|
|
@@ -54,7 +54,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/R
|
|
|
54
54
|
skipMessages: true,
|
|
55
55
|
oDataProperties: {
|
|
56
56
|
disableSideEffects: true,
|
|
57
|
-
ignoreETag: context.getObject()
|
|
57
|
+
ignoreETag: isEmptyObject(context.getObject()),
|
|
58
58
|
// If the context has not been loaded yet, we can ignore the ETag (as no previous ETag is available)
|
|
59
59
|
groupId: "direct",
|
|
60
60
|
replaceWithRVC: context.getBinding().isA("sap.ui.model.odata.v4.ODataListBinding"),
|
|
@@ -89,21 +89,22 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/R
|
|
|
89
89
|
* @param [mParameters.resourceModel] Resource Model
|
|
90
90
|
* @returns A promise resolve when the sticky session is activated
|
|
91
91
|
*/
|
|
92
|
-
async function activateDocument(context, appComponent, messageHandler, mParameters) {
|
|
92
|
+
async function activateDocument(context, appComponent, messageHandler, mParameters, isStandardSave) {
|
|
93
93
|
const operation = "SaveAction";
|
|
94
94
|
const model = context.getModel(),
|
|
95
95
|
metaModel = model.getMetaModel(),
|
|
96
96
|
metaPath = metaModel.getMetaPath(context.getPath());
|
|
97
97
|
const convertedAction = getConvertedAction(context, operation);
|
|
98
|
+
const label = isStandardSave ? mParameters?.resourceModel?.getText("T_OP_OBJECT_PAGE_SAVE") : mParameters?.resourceModel?.getText("C_OP_OBJECT_PAGE_SAVE");
|
|
98
99
|
if (convertedAction) {
|
|
99
100
|
const result = await new Operation(appComponent, context.getModel(), convertedAction, {
|
|
100
101
|
messageHandler: messageHandler,
|
|
101
102
|
contexts: [context],
|
|
102
|
-
label:
|
|
103
|
+
label: label,
|
|
103
104
|
skipMessages: true,
|
|
104
105
|
oDataProperties: {
|
|
105
106
|
disableSideEffects: true,
|
|
106
|
-
ignoreETag: context.getObject()
|
|
107
|
+
ignoreETag: isEmptyObject(context.getObject()),
|
|
107
108
|
// If the context has not been loaded yet, we can ignore the ETag (as no previous ETag is available)
|
|
108
109
|
groupId: "direct",
|
|
109
110
|
replaceWithRVC: context.getBinding().isA("sap.ui.model.odata.v4.ODataListBinding"),
|
|
@@ -194,4 +195,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/R
|
|
|
194
195
|
};
|
|
195
196
|
return sticky;
|
|
196
197
|
}, false);
|
|
197
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcm9ncmFtbWluZ01vZGVsIiwiRkVMaWJyYXJ5IiwiZ2V0Q29udmVydGVkQWN0aW9uIiwiY29udGV4dCIsIm9wZXJhdGlvbiIsIm9wZXJhdGlvbk5hbWUiLCJnZXRBY3Rpb25OYW1lIiwibWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJhY3Rpb25QYXRoIiwiZ2V0TWV0YVBhdGgiLCJnZXRQYXRoIiwiYm91bmRBY3Rpb24iLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImNvbnZlcnRUeXBlcyIsInJlc29sdmVQYXRoIiwidGFyZ2V0IiwibW9kZWwiLCJzRW50aXR5U2V0UGF0aCIsImdldE9iamVjdCIsImVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbiIsImFwcENvbXBvbmVudCIsIm1lc3NhZ2VIYW5kbGVyIiwiY29udmVydGVkQWN0aW9uIiwicmVzdWx0IiwiT3BlcmF0aW9uIiwiY29udGV4dHMiLCJsYWJlbCIsImdldFJlc291cmNlTW9kZWwiLCJnZXRUZXh0Iiwic2tpcE1lc3NhZ2VzIiwib0RhdGFQcm9wZXJ0aWVzIiwiZGlzYWJsZVNpZGVFZmZlY3RzIiwiaWdub3JlRVRhZyIsInVuZGVmaW5lZCIsImdyb3VwSWQiLCJyZXBsYWNlV2l0aFJWQyIsImdldEJpbmRpbmciLCJpc0EiLCJkZWZlcnJlZFN1Ym1pdCIsImJpbmRpbmdQYXJhbWV0ZXJzIiwiJCRpbmhlcml0RXhwYW5kU2VsZWN0IiwiZXhlY3V0ZSIsInN0YXR1cyIsIkVycm9yIiwicmVhc29uIiwibmV3Q29udGV4dCIsInZhbHVlIiwicmV0dXJuZWRDb250ZXh0Iiwic2lkZUVmZmVjdHMiLCJnZXRTaWRlRWZmZWN0c1NlcnZpY2UiLCJnZXRPRGF0YUFjdGlvblNpZGVFZmZlY3RzIiwidHJpZ2dlckFjdGlvbnMiLCJsZW5ndGgiLCJyZXF1ZXN0U2lkZUVmZmVjdHNGb3JPRGF0YUFjdGlvbiIsImFjdGl2YXRlRG9jdW1lbnQiLCJtUGFyYW1ldGVycyIsIm1ldGFQYXRoIiwicmVzb3VyY2VNb2RlbCIsIm1lc3NhZ2VzUGF0aCIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImVycm9yIiwiTG9nIiwiZGlzY2FyZERvY3VtZW50IiwiZGlzY2FyZEFjdGlvbkFubm90YXRpb24iLCJkaXNjYXJkQWN0aW9uIiwiYmluZENvbnRleHQiLCJpbnZva2UiLCJ0aGVuIiwicHJvY2Vzc0RhdGFMb3NzQ29uZmlybWF0aW9uIiwiZm5Qcm9jZXNzIiwidmlldyIsInByb2dyYW1taW5nTW9kZWwiLCJ1aUVkaXRhYmxlIiwiQ29tbW9uVXRpbHMiLCJnZXRJc0VkaXRhYmxlIiwicmVzb3VyY2VCdW5kbGUiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJ3YXJuaW5nTXNnIiwiY29uZmlybUJ1dHRvblR4dCIsImNhbmNlbEJ1dHRvblR4dCIsIlN0aWNreSIsIk1lc3NhZ2VCb3giLCJ3YXJuaW5nIiwiYWN0aW9ucyIsImVtcGhhc2l6ZWRBY3Rpb24iLCJvbkNsb3NlIiwiYWN0aW9uVGV4dCIsImluZm8iLCJzdGlja3kiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbInN0aWNreS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiBhcyBFZG1BY3Rpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IENvbW1vbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VNb2RlbCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1Jlc291cmNlTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBGRUxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gXCJzYXAvbS9NZXNzYWdlQm94XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzIH0gZnJvbSBcIi4uLy4uL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSBNZXNzYWdlSGFuZGxlciBmcm9tIFwiLi4vTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCBPcGVyYXRpb24gZnJvbSBcIi4vb3BlcmF0aW9ucy9PcGVyYXRpb25cIjtcblxuY29uc3QgUHJvZ3JhbW1pbmdNb2RlbCA9IEZFTGlicmFyeS5Qcm9ncmFtbWluZ01vZGVsO1xuXG4vKipcbiAqIEdldHMgdGhlIGNvbnZlcnRlZCBhY3Rpb24gZm9yIGEgZ2l2ZW4gY29udGV4dCBhbmQgb3BlcmF0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgIFRoZSBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIGJvdW5kIHRvIHRoZSBvcGVyYXRpb25cbiAqIEBwYXJhbSBvcGVyYXRpb24gVGhlIG9wZXJhdGlvbiBuYW1lXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIGFjdGlvblxuICovXG5mdW5jdGlvbiBnZXRDb252ZXJ0ZWRBY3Rpb24oY29udGV4dDogQ29udGV4dCwgb3BlcmF0aW9uOiBzdHJpbmcpOiBFZG1BY3Rpb24gfCB1bmRlZmluZWQge1xuXHRjb25zdCBvcGVyYXRpb25OYW1lID0gZ2V0QWN0aW9uTmFtZShjb250ZXh0LCBvcGVyYXRpb24pO1xuXHRjb25zdCBtZXRhTW9kZWwgPSBjb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0YWN0aW9uUGF0aCA9IGAke21ldGFNb2RlbC5nZXRNZXRhUGF0aChjb250ZXh0LmdldFBhdGgoKSl9LyR7b3BlcmF0aW9uTmFtZX1gLFxuXHRcdGJvdW5kQWN0aW9uID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KGFjdGlvblBhdGgpITtcblx0cmV0dXJuIGNvbnZlcnRUeXBlcyhtZXRhTW9kZWwpLnJlc29sdmVQYXRoPEVkbUFjdGlvbiB8IHVuZGVmaW5lZD4oYm91bmRBY3Rpb24uZ2V0UGF0aCgpKS50YXJnZXQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgYWN0aW9uIG5hbWUgZm9yIGEgZHJhZnQgb3BlcmF0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgYm91bmQgdG8gdGhlIG9wZXJhdGlvblxuICogQHBhcmFtIG9wZXJhdGlvbiBUaGUgb3BlcmF0aW9uIG5hbWVcbiAqIEByZXR1cm5zIFRoZSBuYW1lIG9mIHRoZSBkcmFmdCBvcGVyYXRpb25cbiAqL1xuZnVuY3Rpb24gZ2V0QWN0aW9uTmFtZShjb250ZXh0OiBDb250ZXh0LCBvcGVyYXRpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IG1vZGVsID0gY29udGV4dC5nZXRNb2RlbCgpLFxuXHRcdG1ldGFNb2RlbCA9IG1vZGVsLmdldE1ldGFNb2RlbCgpLFxuXHRcdHNFbnRpdHlTZXRQYXRoID0gbWV0YU1vZGVsLmdldE1ldGFQYXRoKGNvbnRleHQuZ2V0UGF0aCgpKTtcblxuXHRyZXR1cm4gbWV0YU1vZGVsLmdldE9iamVjdChgJHtzRW50aXR5U2V0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkLyR7b3BlcmF0aW9ufWApO1xufVxuXG4vKipcbiAqIE9wZW5zIGEgc3RpY2t5IHNlc3Npb24gdG8gZWRpdCBhIGRvY3VtZW50LlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgZWRpdGVkXG4gKiBAcGFyYW0gYXBwQ29tcG9uZW50IFRoZSBBcHBDb21wb25lbnRcbiAqIEBwYXJhbSBtZXNzYWdlSGFuZGxlciBUaGUgbWVzc2FnZSBoYW5kbGVyIGNvbnRyb2xsZXIgZXh0ZW5zaW9uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgcmVzb2x2ZWQgd2hlbiB0aGUgc3RpY2t5IHNlc3Npb24gaXMgaW4gZWRpdCBtb2RlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbihcblx0Y29udGV4dDogQ29udGV4dCxcblx0YXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQsXG5cdG1lc3NhZ2VIYW5kbGVyOiBNZXNzYWdlSGFuZGxlclxuKTogUHJvbWlzZTxDb250ZXh0IHwgdW5kZWZpbmVkPiB7XG5cdGNvbnN0IG9wZXJhdGlvbiA9IFwiRWRpdEFjdGlvblwiO1xuXHRjb25zdCBjb252ZXJ0ZWRBY3Rpb24gPSBnZXRDb252ZXJ0ZWRBY3Rpb24oY29udGV4dCwgb3BlcmF0aW9uKTtcblx0aWYgKGNvbnZlcnRlZEFjdGlvbikge1xuXHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5ldyBPcGVyYXRpb24oYXBwQ29tcG9uZW50LCBjb250ZXh0LmdldE1vZGVsKCksIGNvbnZlcnRlZEFjdGlvbiwge1xuXHRcdFx0bWVzc2FnZUhhbmRsZXI6IG1lc3NhZ2VIYW5kbGVyLFxuXHRcdFx0Y29udGV4dHM6IFtjb250ZXh0XSxcblx0XHRcdGxhYmVsOiBnZXRSZXNvdXJjZU1vZGVsKGFwcENvbXBvbmVudCkuZ2V0VGV4dChcIkNfQ09NTU9OX09CSkVDVF9QQUdFX0VESVRcIiksXG5cdFx0XHRza2lwTWVzc2FnZXM6IHRydWUsXG5cdFx0XHRvRGF0YVByb3BlcnRpZXM6IHtcblx0XHRcdFx0ZGlzYWJsZVNpZGVFZmZlY3RzOiB0cnVlLFxuXHRcdFx0XHRpZ25vcmVFVGFnOiBjb250ZXh0LmdldE9iamVjdCgpID09PSB1bmRlZmluZWQsIC8vIElmIHRoZSBjb250ZXh0IGhhcyBub3QgYmVlbiBsb2FkZWQgeWV0LCB3ZSBjYW4gaWdub3JlIHRoZSBFVGFnIChhcyBubyBwcmV2aW91cyBFVGFnIGlzIGF2YWlsYWJsZSlcblx0XHRcdFx0Z3JvdXBJZDogXCJkaXJlY3RcIixcblx0XHRcdFx0cmVwbGFjZVdpdGhSVkM6IGNvbnRleHQuZ2V0QmluZGluZygpLmlzQShcInNhcC51aS5tb2RlbC5vZGF0YS52NC5PRGF0YUxpc3RCaW5kaW5nXCIpLFxuXHRcdFx0XHRkZWZlcnJlZFN1Ym1pdDogZmFsc2Vcblx0XHRcdH0sXG5cdFx0XHRiaW5kaW5nUGFyYW1ldGVyczogeyAkJGluaGVyaXRFeHBhbmRTZWxlY3Q6IHRydWUgfVxuXHRcdH0pLmV4ZWN1dGUoKTtcblx0XHRpZiAocmVzdWx0WzBdLnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IocmVzdWx0WzBdLnJlYXNvbik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IG5ld0NvbnRleHQgPSByZXN1bHRbMF0udmFsdWUucmV0dXJuZWRDb250ZXh0O1xuXHRcdFx0aWYgKG5ld0NvbnRleHQpIHtcblx0XHRcdFx0Y29uc3Qgc2lkZUVmZmVjdHMgPSBhcHBDb21wb25lbnRcblx0XHRcdFx0XHQuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKClcblx0XHRcdFx0XHQuZ2V0T0RhdGFBY3Rpb25TaWRlRWZmZWN0cyhnZXRBY3Rpb25OYW1lKGNvbnRleHQsIG9wZXJhdGlvbiksIG5ld0NvbnRleHQpO1xuXHRcdFx0XHRpZiAoc2lkZUVmZmVjdHM/LnRyaWdnZXJBY3Rpb25zICYmIHNpZGVFZmZlY3RzLnRyaWdnZXJBY3Rpb25zLmxlbmd0aCkge1xuXHRcdFx0XHRcdGF3YWl0IGFwcENvbXBvbmVudC5nZXRTaWRlRWZmZWN0c1NlcnZpY2UoKS5yZXF1ZXN0U2lkZUVmZmVjdHNGb3JPRGF0YUFjdGlvbihzaWRlRWZmZWN0cywgbmV3Q29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBuZXdDb250ZXh0O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYEVkaXQgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBub3QgZm91bmQgZm9yICR7b3BlcmF0aW9ufWApO1xuXHR9XG59XG4vKipcbiAqIEFjdGl2YXRlcyBhIGRvY3VtZW50IGFuZCBjbG9zZXMgdGhlIHN0aWNreSBzZXNzaW9uLlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgYWN0aXZhdGVkXG4gKiBAcGFyYW0gYXBwQ29tcG9uZW50IENvbnRleHQgb2YgdGhlIGRvY3VtZW50IHRvIGJlIGFjdGl2YXRlZFxuICogQHBhcmFtIG1lc3NhZ2VIYW5kbGVyIFRoZSBtZXNzYWdlIGhhbmRsZXIgY29udHJvbGxlciBleHRlbnNpb25cbiAqIEBwYXJhbSBtUGFyYW1ldGVycyBUaGUgcGFyYW1ldGVyc1xuICogQHBhcmFtIFttUGFyYW1ldGVycy5yZXNvdXJjZU1vZGVsXSBSZXNvdXJjZSBNb2RlbFxuICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmUgd2hlbiB0aGUgc3RpY2t5IHNlc3Npb24gaXMgYWN0aXZhdGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGFjdGl2YXRlRG9jdW1lbnQoXG5cdGNvbnRleHQ6IENvbnRleHQsXG5cdGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRtZXNzYWdlSGFuZGxlcjogTWVzc2FnZUhhbmRsZXIsXG5cdG1QYXJhbWV0ZXJzOiB7IHJlc291cmNlTW9kZWw/OiBSZXNvdXJjZU1vZGVsIH1cbik6IFByb21pc2U8Q29udGV4dD4ge1xuXHRjb25zdCBvcGVyYXRpb24gPSBcIlNhdmVBY3Rpb25cIjtcblx0Y29uc3QgbW9kZWwgPSBjb250ZXh0LmdldE1vZGVsKCksXG5cdFx0bWV0YU1vZGVsID0gbW9kZWwuZ2V0TWV0YU1vZGVsKCksXG5cdFx0bWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgoY29udGV4dC5nZXRQYXRoKCkpO1xuXG5cdGNvbnN0IGNvbnZlcnRlZEFjdGlvbiA9IGdldENvbnZlcnRlZEFjdGlvbihjb250ZXh0LCBvcGVyYXRpb24pO1xuXHRpZiAoY29udmVydGVkQWN0aW9uKSB7XG5cdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgbmV3IE9wZXJhdGlvbihhcHBDb21wb25lbnQsIGNvbnRleHQuZ2V0TW9kZWwoKSwgY29udmVydGVkQWN0aW9uLCB7XG5cdFx0XHRtZXNzYWdlSGFuZGxlcjogbWVzc2FnZUhhbmRsZXIsXG5cdFx0XHRjb250ZXh0czogW2NvbnRleHRdLFxuXHRcdFx0bGFiZWw6IG1QYXJhbWV0ZXJzPy5yZXNvdXJjZU1vZGVsPy5nZXRUZXh0KFwiVF9PUF9PQkpFQ1RfUEFHRV9TQVZFXCIpLFxuXHRcdFx0c2tpcE1lc3NhZ2VzOiB0cnVlLFxuXHRcdFx0b0RhdGFQcm9wZXJ0aWVzOiB7XG5cdFx0XHRcdGRpc2FibGVTaWRlRWZmZWN0czogdHJ1ZSxcblx0XHRcdFx0aWdub3JlRVRhZzogY29udGV4dC5nZXRPYmplY3QoKSA9PT0gdW5kZWZpbmVkLCAvLyBJZiB0aGUgY29udGV4dCBoYXMgbm90IGJlZW4gbG9hZGVkIHlldCwgd2UgY2FuIGlnbm9yZSB0aGUgRVRhZyAoYXMgbm8gcHJldmlvdXMgRVRhZyBpcyBhdmFpbGFibGUpXG5cdFx0XHRcdGdyb3VwSWQ6IFwiZGlyZWN0XCIsXG5cdFx0XHRcdHJlcGxhY2VXaXRoUlZDOiBjb250ZXh0LmdldEJpbmRpbmcoKS5pc0EoXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFMaXN0QmluZGluZ1wiKSxcblx0XHRcdFx0ZGVmZXJyZWRTdWJtaXQ6IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0YmluZGluZ1BhcmFtZXRlcnM6IHsgJCRpbmhlcml0RXhwYW5kU2VsZWN0OiB0cnVlIH1cblx0XHR9KS5leGVjdXRlKCk7XG5cblx0XHRpZiAocmVzdWx0WzBdLnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiKSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlc1BhdGggPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke21ldGFQYXRofS9AJHtDb21tb25Bbm5vdGF0aW9uVGVybXMuTWVzc2FnZXN9LyRQYXRoYCkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdFx0XHRpZiAobWVzc2FnZXNQYXRoKSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0YXdhaXQgYXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpLnJlcXVlc3RTaWRlRWZmZWN0cyhbbWVzc2FnZXNQYXRoXSwgY29udGV4dCk7XG5cdFx0XHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgcmVxdWVzdGluZyBzaWRlIGVmZmVjdHNcIiwgZXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKHJlc3VsdFswXS5yZWFzb24pO1xuXHRcdH0gZWxzZSBpZiAocmVzdWx0WzBdLnZhbHVlLnJldHVybmVkQ29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYFNhdmUgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBkb2Vzbid0IHJldHVybiBhIGNvbnRleHQgZm9yICR7bWV0YVBhdGh9YCk7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHRbMF0udmFsdWUucmV0dXJuZWRDb250ZXh0O1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcihgU2F2ZSBBY3Rpb24gZm9yIFN0aWNreSBTZXNzaW9uIG5vdCBmb3VuZCBmb3IgJHttZXRhUGF0aH1gKTtcblx0fVxufVxuLyoqXG4gKiBEaXNjYXJkcyBhIGRvY3VtZW50IGFuZCBjbG9zZXMgc3RpY2t5IHNlc3Npb24uXG4gKiBAcGFyYW0gY29udGV4dCBDb250ZXh0IG9mIHRoZSBkb2N1bWVudCB0byBiZSBkaXNjYXJkZWRcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZlZCB3aGVuIHRoZSBkb2N1bWVudCBpcyBkaWNhcmRlZFxuICovXG5hc3luYyBmdW5jdGlvbiBkaXNjYXJkRG9jdW1lbnQoY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8Q29udGV4dD4ge1xuXHRjb25zdCBtb2RlbCA9IGNvbnRleHQuZ2V0TW9kZWwoKSxcblx0XHRtZXRhTW9kZWwgPSBtb2RlbC5nZXRNZXRhTW9kZWwoKSxcblx0XHRtZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aChjb250ZXh0LmdldFBhdGgoKSksXG5cdFx0ZGlzY2FyZEFjdGlvbkFubm90YXRpb24gPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke21ldGFQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxLlN0aWNreVNlc3Npb25TdXBwb3J0ZWQvRGlzY2FyZEFjdGlvbmApO1xuXG5cdGlmICghZGlzY2FyZEFjdGlvbkFubm90YXRpb24pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYERpc2NhcmQgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBub3QgZm91bmQgZm9yICR7bWV0YVBhdGh9YCk7XG5cdH1cblxuXHRjb25zdCBkaXNjYXJkQWN0aW9uID0gbW9kZWwuYmluZENvbnRleHQoYC8ke2Rpc2NhcmRBY3Rpb25Bbm5vdGF0aW9ufSguLi4pYCk7XG5cdHJldHVybiBkaXNjYXJkQWN0aW9uLmludm9rZShcIiRzaW5nbGVcIikudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIGNvbnRleHQ7XG5cdH0pO1xufVxuXG4vKipcbiAqIFByb2Nlc3MgdGhlIERhdGEgbG9zcyBjb25maXJtYXRpb24uXG4gKiBAcGFyYW0gZm5Qcm9jZXNzIEZ1bmN0aW9uIHRvIGV4ZWN1dGUgYWZ0ZXIgY29uZmlybWF0aW9uXG4gKiBAcGFyYW0gdmlldyBDdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBwcm9ncmFtbWluZ01vZGVsIFByb2dyYW1taW5nIE1vZGVsIG9mIHRoZSBjdXJyZW50IHBhZ2VcbiAqIEByZXR1cm5zIGB2b2lkYCBpIHRoaW5rXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NEYXRhTG9zc0NvbmZpcm1hdGlvbihmblByb2Nlc3M6IEZ1bmN0aW9uLCB2aWV3OiBGRVZpZXcsIHByb2dyYW1taW5nTW9kZWw6IHN0cmluZyk6IHZvaWQge1xuXHRjb25zdCB1aUVkaXRhYmxlID0gQ29tbW9uVXRpbHMuZ2V0SXNFZGl0YWJsZSh2aWV3KSxcblx0XHRyZXNvdXJjZUJ1bmRsZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUudGVtcGxhdGVzXCIpISxcblx0XHR3YXJuaW5nTXNnID0gcmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIlRfQ09NTU9OX1VUSUxTX05BVklHQVRJT05fQVdBWV9NU0dcIiksXG5cdFx0Y29uZmlybUJ1dHRvblR4dCA9IHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJUX0NPTU1PTl9VVElMU19OQVZJR0FUSU9OX0FXQVlfQ09ORklSTV9CVVRUT05cIiksXG5cdFx0Y2FuY2VsQnV0dG9uVHh0ID0gcmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIlRfQ09NTU9OX1VUSUxTX05BVklHQVRJT05fQVdBWV9DQU5DRUxfQlVUVE9OXCIpO1xuXG5cdGlmIChwcm9ncmFtbWluZ01vZGVsID09PSBQcm9ncmFtbWluZ01vZGVsLlN0aWNreSAmJiB1aUVkaXRhYmxlKSB7XG5cdFx0cmV0dXJuIE1lc3NhZ2VCb3gud2FybmluZyh3YXJuaW5nTXNnLCB7XG5cdFx0XHRhY3Rpb25zOiBbY29uZmlybUJ1dHRvblR4dCwgY2FuY2VsQnV0dG9uVHh0XSxcblx0XHRcdGVtcGhhc2l6ZWRBY3Rpb246IGNvbmZpcm1CdXR0b25UeHQsXG5cdFx0XHRvbkNsb3NlOiBmdW5jdGlvbiAoYWN0aW9uVGV4dDogc3RyaW5nKSB7XG5cdFx0XHRcdGlmIChhY3Rpb25UZXh0ID09PSBjb25maXJtQnV0dG9uVHh0KSB7XG5cdFx0XHRcdFx0TG9nLmluZm8oXCJOYXZpZ2F0aW9uIGNvbmZpcm1lZC5cIik7XG5cdFx0XHRcdFx0Zm5Qcm9jZXNzKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0TG9nLmluZm8oXCJOYXZpZ2F0aW9uIHJlamVjdGVkLlwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBmblByb2Nlc3MoKTtcbn1cblxuLyoqXG4gKiBTdGF0aWMgZnVuY3Rpb25zIGZvciB0aGUgc3RpY2t5IHNlc3Npb24gcHJvZ3JhbW1pbmcgbW9kZWxcbiAqIEBuYW1lc3BhY2VcbiAqIEBleHBlcmltZW50YWwgVGhpcyBtb2R1bGUgaXMgb25seSBmb3IgZXhwZXJpbWVudGFsIHVzZSEgPGJyLz48Yj5UaGlzIGlzIG9ubHkgYSBQT0MgYW5kIG1heWJlIGRlbGV0ZWQ8L2I+XG4gKiBAc2luY2UgMS41NC4wXG4gKi9cbmNvbnN0IHN0aWNreSA9IHtcblx0ZWRpdERvY3VtZW50SW5TdGlja3lTZXNzaW9uOiBlZGl0RG9jdW1lbnRJblN0aWNreVNlc3Npb24sXG5cdGFjdGl2YXRlRG9jdW1lbnQ6IGFjdGl2YXRlRG9jdW1lbnQsXG5cdGRpc2NhcmREb2N1bWVudDogZGlzY2FyZERvY3VtZW50LFxuXHRwcm9jZXNzRGF0YUxvc3NDb25maXJtYXRpb246IHByb2Nlc3NEYXRhTG9zc0NvbmZpcm1hdGlvblxufTtcblxuZXhwb3J0IGRlZmF1bHQgc3RpY2t5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7RUFnQkEsTUFBTUEsZ0JBQWdCLEdBQUdDLFNBQVMsQ0FBQ0QsZ0JBQWdCOztFQUVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTRSxrQkFBa0JBLENBQUNDLE9BQWdCLEVBQUVDLFNBQWlCLEVBQXlCO0lBQ3ZGLE1BQU1DLGFBQWEsR0FBR0MsYUFBYSxDQUFDSCxPQUFPLEVBQUVDLFNBQVMsQ0FBQztJQUN2RCxNQUFN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
|
|
198
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcm9ncmFtbWluZ01vZGVsIiwiRkVMaWJyYXJ5IiwiZ2V0Q29udmVydGVkQWN0aW9uIiwiY29udGV4dCIsIm9wZXJhdGlvbiIsIm9wZXJhdGlvbk5hbWUiLCJnZXRBY3Rpb25OYW1lIiwibWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJhY3Rpb25QYXRoIiwiZ2V0TWV0YVBhdGgiLCJnZXRQYXRoIiwiYm91bmRBY3Rpb24iLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImNvbnZlcnRUeXBlcyIsInJlc29sdmVQYXRoIiwidGFyZ2V0IiwibW9kZWwiLCJzRW50aXR5U2V0UGF0aCIsImdldE9iamVjdCIsImVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbiIsImFwcENvbXBvbmVudCIsIm1lc3NhZ2VIYW5kbGVyIiwiY29udmVydGVkQWN0aW9uIiwicmVzdWx0IiwiT3BlcmF0aW9uIiwiY29udGV4dHMiLCJsYWJlbCIsImdldFJlc291cmNlTW9kZWwiLCJnZXRUZXh0Iiwic2tpcE1lc3NhZ2VzIiwib0RhdGFQcm9wZXJ0aWVzIiwiZGlzYWJsZVNpZGVFZmZlY3RzIiwiaWdub3JlRVRhZyIsImlzRW1wdHlPYmplY3QiLCJncm91cElkIiwicmVwbGFjZVdpdGhSVkMiLCJnZXRCaW5kaW5nIiwiaXNBIiwiZGVmZXJyZWRTdWJtaXQiLCJiaW5kaW5nUGFyYW1ldGVycyIsIiQkaW5oZXJpdEV4cGFuZFNlbGVjdCIsImV4ZWN1dGUiLCJzdGF0dXMiLCJFcnJvciIsInJlYXNvbiIsIm5ld0NvbnRleHQiLCJ2YWx1ZSIsInJldHVybmVkQ29udGV4dCIsInNpZGVFZmZlY3RzIiwiZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlIiwiZ2V0T0RhdGFBY3Rpb25TaWRlRWZmZWN0cyIsInRyaWdnZXJBY3Rpb25zIiwibGVuZ3RoIiwicmVxdWVzdFNpZGVFZmZlY3RzRm9yT0RhdGFBY3Rpb24iLCJhY3RpdmF0ZURvY3VtZW50IiwibVBhcmFtZXRlcnMiLCJpc1N0YW5kYXJkU2F2ZSIsIm1ldGFQYXRoIiwicmVzb3VyY2VNb2RlbCIsIm1lc3NhZ2VzUGF0aCIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImVycm9yIiwiTG9nIiwidW5kZWZpbmVkIiwiZGlzY2FyZERvY3VtZW50IiwiZGlzY2FyZEFjdGlvbkFubm90YXRpb24iLCJkaXNjYXJkQWN0aW9uIiwiYmluZENvbnRleHQiLCJpbnZva2UiLCJ0aGVuIiwicHJvY2Vzc0RhdGFMb3NzQ29uZmlybWF0aW9uIiwiZm5Qcm9jZXNzIiwidmlldyIsInByb2dyYW1taW5nTW9kZWwiLCJ1aUVkaXRhYmxlIiwiQ29tbW9uVXRpbHMiLCJnZXRJc0VkaXRhYmxlIiwicmVzb3VyY2VCdW5kbGUiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJ3YXJuaW5nTXNnIiwiY29uZmlybUJ1dHRvblR4dCIsImNhbmNlbEJ1dHRvblR4dCIsIlN0aWNreSIsIk1lc3NhZ2VCb3giLCJ3YXJuaW5nIiwiYWN0aW9ucyIsImVtcGhhc2l6ZWRBY3Rpb24iLCJvbkNsb3NlIiwiYWN0aW9uVGV4dCIsImluZm8iLCJzdGlja3kiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbInN0aWNreS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiBhcyBFZG1BY3Rpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IENvbW1vbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBpc0VtcHR5T2JqZWN0IGZyb20gXCJzYXAvYmFzZS91dGlsL2lzRW1wdHlPYmplY3RcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VNb2RlbCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1Jlc291cmNlTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBGRUxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gXCJzYXAvbS9NZXNzYWdlQm94XCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzIH0gZnJvbSBcIi4uLy4uL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSBNZXNzYWdlSGFuZGxlciBmcm9tIFwiLi4vTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCBPcGVyYXRpb24gZnJvbSBcIi4vb3BlcmF0aW9ucy9PcGVyYXRpb25cIjtcblxuY29uc3QgUHJvZ3JhbW1pbmdNb2RlbCA9IEZFTGlicmFyeS5Qcm9ncmFtbWluZ01vZGVsO1xuXG4vKipcbiAqIEdldHMgdGhlIGNvbnZlcnRlZCBhY3Rpb24gZm9yIGEgZ2l2ZW4gY29udGV4dCBhbmQgb3BlcmF0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgIFRoZSBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIGJvdW5kIHRvIHRoZSBvcGVyYXRpb25cbiAqIEBwYXJhbSBvcGVyYXRpb24gVGhlIG9wZXJhdGlvbiBuYW1lXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIGFjdGlvblxuICovXG5mdW5jdGlvbiBnZXRDb252ZXJ0ZWRBY3Rpb24oY29udGV4dDogQ29udGV4dCwgb3BlcmF0aW9uOiBzdHJpbmcpOiBFZG1BY3Rpb24gfCB1bmRlZmluZWQge1xuXHRjb25zdCBvcGVyYXRpb25OYW1lID0gZ2V0QWN0aW9uTmFtZShjb250ZXh0LCBvcGVyYXRpb24pO1xuXHRjb25zdCBtZXRhTW9kZWwgPSBjb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0YWN0aW9uUGF0aCA9IGAke21ldGFNb2RlbC5nZXRNZXRhUGF0aChjb250ZXh0LmdldFBhdGgoKSl9LyR7b3BlcmF0aW9uTmFtZX1gLFxuXHRcdGJvdW5kQWN0aW9uID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KGFjdGlvblBhdGgpITtcblx0cmV0dXJuIGNvbnZlcnRUeXBlcyhtZXRhTW9kZWwpLnJlc29sdmVQYXRoPEVkbUFjdGlvbiB8IHVuZGVmaW5lZD4oYm91bmRBY3Rpb24uZ2V0UGF0aCgpKS50YXJnZXQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgYWN0aW9uIG5hbWUgZm9yIGEgZHJhZnQgb3BlcmF0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgYm91bmQgdG8gdGhlIG9wZXJhdGlvblxuICogQHBhcmFtIG9wZXJhdGlvbiBUaGUgb3BlcmF0aW9uIG5hbWVcbiAqIEByZXR1cm5zIFRoZSBuYW1lIG9mIHRoZSBkcmFmdCBvcGVyYXRpb25cbiAqL1xuZnVuY3Rpb24gZ2V0QWN0aW9uTmFtZShjb250ZXh0OiBDb250ZXh0LCBvcGVyYXRpb246IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IG1vZGVsID0gY29udGV4dC5nZXRNb2RlbCgpLFxuXHRcdG1ldGFNb2RlbCA9IG1vZGVsLmdldE1ldGFNb2RlbCgpLFxuXHRcdHNFbnRpdHlTZXRQYXRoID0gbWV0YU1vZGVsLmdldE1ldGFQYXRoKGNvbnRleHQuZ2V0UGF0aCgpKTtcblxuXHRyZXR1cm4gbWV0YU1vZGVsLmdldE9iamVjdChgJHtzRW50aXR5U2V0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkLyR7b3BlcmF0aW9ufWApO1xufVxuXG4vKipcbiAqIE9wZW5zIGEgc3RpY2t5IHNlc3Npb24gdG8gZWRpdCBhIGRvY3VtZW50LlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgZWRpdGVkXG4gKiBAcGFyYW0gYXBwQ29tcG9uZW50IFRoZSBBcHBDb21wb25lbnRcbiAqIEBwYXJhbSBtZXNzYWdlSGFuZGxlciBUaGUgbWVzc2FnZSBoYW5kbGVyIGNvbnRyb2xsZXIgZXh0ZW5zaW9uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgcmVzb2x2ZWQgd2hlbiB0aGUgc3RpY2t5IHNlc3Npb24gaXMgaW4gZWRpdCBtb2RlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbihcblx0Y29udGV4dDogQ29udGV4dCxcblx0YXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQsXG5cdG1lc3NhZ2VIYW5kbGVyOiBNZXNzYWdlSGFuZGxlclxuKTogUHJvbWlzZTxDb250ZXh0IHwgdW5kZWZpbmVkPiB7XG5cdGNvbnN0IG9wZXJhdGlvbiA9IFwiRWRpdEFjdGlvblwiO1xuXHRjb25zdCBjb252ZXJ0ZWRBY3Rpb24gPSBnZXRDb252ZXJ0ZWRBY3Rpb24oY29udGV4dCwgb3BlcmF0aW9uKTtcblx0aWYgKGNvbnZlcnRlZEFjdGlvbikge1xuXHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5ldyBPcGVyYXRpb24oYXBwQ29tcG9uZW50LCBjb250ZXh0LmdldE1vZGVsKCksIGNvbnZlcnRlZEFjdGlvbiwge1xuXHRcdFx0bWVzc2FnZUhhbmRsZXI6IG1lc3NhZ2VIYW5kbGVyLFxuXHRcdFx0Y29udGV4dHM6IFtjb250ZXh0XSxcblx0XHRcdGxhYmVsOiBnZXRSZXNvdXJjZU1vZGVsKGFwcENvbXBvbmVudCkuZ2V0VGV4dChcIkNfQ09NTU9OX09CSkVDVF9QQUdFX0VESVRcIiksXG5cdFx0XHRza2lwTWVzc2FnZXM6IHRydWUsXG5cdFx0XHRvRGF0YVByb3BlcnRpZXM6IHtcblx0XHRcdFx0ZGlzYWJsZVNpZGVFZmZlY3RzOiB0cnVlLFxuXHRcdFx0XHRpZ25vcmVFVGFnOiBpc0VtcHR5T2JqZWN0KGNvbnRleHQuZ2V0T2JqZWN0KCkpLCAvLyBJZiB0aGUgY29udGV4dCBoYXMgbm90IGJlZW4gbG9hZGVkIHlldCwgd2UgY2FuIGlnbm9yZSB0aGUgRVRhZyAoYXMgbm8gcHJldmlvdXMgRVRhZyBpcyBhdmFpbGFibGUpXG5cdFx0XHRcdGdyb3VwSWQ6IFwiZGlyZWN0XCIsXG5cdFx0XHRcdHJlcGxhY2VXaXRoUlZDOiBjb250ZXh0LmdldEJpbmRpbmcoKS5pc0EoXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFMaXN0QmluZGluZ1wiKSxcblx0XHRcdFx0ZGVmZXJyZWRTdWJtaXQ6IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0YmluZGluZ1BhcmFtZXRlcnM6IHsgJCRpbmhlcml0RXhwYW5kU2VsZWN0OiB0cnVlIH1cblx0XHR9KS5leGVjdXRlKCk7XG5cdFx0aWYgKHJlc3VsdFswXS5zdGF0dXMgPT09IFwicmVqZWN0ZWRcIikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKHJlc3VsdFswXS5yZWFzb24pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBuZXdDb250ZXh0ID0gcmVzdWx0WzBdLnZhbHVlLnJldHVybmVkQ29udGV4dDtcblx0XHRcdGlmIChuZXdDb250ZXh0KSB7XG5cdFx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzID0gYXBwQ29tcG9uZW50XG5cdFx0XHRcdFx0LmdldFNpZGVFZmZlY3RzU2VydmljZSgpXG5cdFx0XHRcdFx0LmdldE9EYXRhQWN0aW9uU2lkZUVmZmVjdHMoZ2V0QWN0aW9uTmFtZShjb250ZXh0LCBvcGVyYXRpb24pLCBuZXdDb250ZXh0KTtcblx0XHRcdFx0aWYgKHNpZGVFZmZlY3RzPy50cmlnZ2VyQWN0aW9ucyAmJiBzaWRlRWZmZWN0cy50cmlnZ2VyQWN0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRhd2FpdCBhcHBDb21wb25lbnQuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCkucmVxdWVzdFNpZGVFZmZlY3RzRm9yT0RhdGFBY3Rpb24oc2lkZUVmZmVjdHMsIG5ld0NvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbmV3Q29udGV4dDtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKGBFZGl0IEFjdGlvbiBmb3IgU3RpY2t5IFNlc3Npb24gbm90IGZvdW5kIGZvciAke29wZXJhdGlvbn1gKTtcblx0fVxufVxuLyoqXG4gKiBBY3RpdmF0ZXMgYSBkb2N1bWVudCBhbmQgY2xvc2VzIHRoZSBzdGlja3kgc2Vzc2lvbi5cbiAqIEBwYXJhbSBjb250ZXh0IENvbnRleHQgb2YgdGhlIGRvY3VtZW50IHRvIGJlIGFjdGl2YXRlZFxuICogQHBhcmFtIGFwcENvbXBvbmVudCBDb250ZXh0IG9mIHRoZSBkb2N1bWVudCB0byBiZSBhY3RpdmF0ZWRcbiAqIEBwYXJhbSBtZXNzYWdlSGFuZGxlciBUaGUgbWVzc2FnZSBoYW5kbGVyIGNvbnRyb2xsZXIgZXh0ZW5zaW9uXG4gKiBAcGFyYW0gbVBhcmFtZXRlcnMgVGhlIHBhcmFtZXRlcnNcbiAqIEBwYXJhbSBbbVBhcmFtZXRlcnMucmVzb3VyY2VNb2RlbF0gUmVzb3VyY2UgTW9kZWxcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZlIHdoZW4gdGhlIHN0aWNreSBzZXNzaW9uIGlzIGFjdGl2YXRlZFxuICovXG5hc3luYyBmdW5jdGlvbiBhY3RpdmF0ZURvY3VtZW50KFxuXHRjb250ZXh0OiBDb250ZXh0LFxuXHRhcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudCxcblx0bWVzc2FnZUhhbmRsZXI6IE1lc3NhZ2VIYW5kbGVyLFxuXHRtUGFyYW1ldGVyczogeyByZXNvdXJjZU1vZGVsPzogUmVzb3VyY2VNb2RlbCB9LFxuXHRpc1N0YW5kYXJkU2F2ZT86IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IFByb21pc2U8Q29udGV4dD4ge1xuXHRjb25zdCBvcGVyYXRpb24gPSBcIlNhdmVBY3Rpb25cIjtcblx0Y29uc3QgbW9kZWwgPSBjb250ZXh0LmdldE1vZGVsKCksXG5cdFx0bWV0YU1vZGVsID0gbW9kZWwuZ2V0TWV0YU1vZGVsKCksXG5cdFx0bWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgoY29udGV4dC5nZXRQYXRoKCkpO1xuXG5cdGNvbnN0IGNvbnZlcnRlZEFjdGlvbiA9IGdldENvbnZlcnRlZEFjdGlvbihjb250ZXh0LCBvcGVyYXRpb24pO1xuXHRjb25zdCBsYWJlbCA9IGlzU3RhbmRhcmRTYXZlXG5cdFx0PyBtUGFyYW1ldGVycz8ucmVzb3VyY2VNb2RlbD8uZ2V0VGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfU0FWRVwiKVxuXHRcdDogbVBhcmFtZXRlcnM/LnJlc291cmNlTW9kZWw/LmdldFRleHQoXCJDX09QX09CSkVDVF9QQUdFX1NBVkVcIik7XG5cdGlmIChjb252ZXJ0ZWRBY3Rpb24pIHtcblx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBuZXcgT3BlcmF0aW9uKGFwcENvbXBvbmVudCwgY29udGV4dC5nZXRNb2RlbCgpLCBjb252ZXJ0ZWRBY3Rpb24sIHtcblx0XHRcdG1lc3NhZ2VIYW5kbGVyOiBtZXNzYWdlSGFuZGxlcixcblx0XHRcdGNvbnRleHRzOiBbY29udGV4dF0sXG5cdFx0XHRsYWJlbDogbGFiZWwsXG5cdFx0XHRza2lwTWVzc2FnZXM6IHRydWUsXG5cdFx0XHRvRGF0YVByb3BlcnRpZXM6IHtcblx0XHRcdFx0ZGlzYWJsZVNpZGVFZmZlY3RzOiB0cnVlLFxuXHRcdFx0XHRpZ25vcmVFVGFnOiBpc0VtcHR5T2JqZWN0KGNvbnRleHQuZ2V0T2JqZWN0KCkpLCAvLyBJZiB0aGUgY29udGV4dCBoYXMgbm90IGJlZW4gbG9hZGVkIHlldCwgd2UgY2FuIGlnbm9yZSB0aGUgRVRhZyAoYXMgbm8gcHJldmlvdXMgRVRhZyBpcyBhdmFpbGFibGUpXG5cdFx0XHRcdGdyb3VwSWQ6IFwiZGlyZWN0XCIsXG5cdFx0XHRcdHJlcGxhY2VXaXRoUlZDOiBjb250ZXh0LmdldEJpbmRpbmcoKS5pc0EoXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFMaXN0QmluZGluZ1wiKSxcblx0XHRcdFx0ZGVmZXJyZWRTdWJtaXQ6IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0YmluZGluZ1BhcmFtZXRlcnM6IHsgJCRpbmhlcml0RXhwYW5kU2VsZWN0OiB0cnVlIH1cblx0XHR9KS5leGVjdXRlKCk7XG5cblx0XHRpZiAocmVzdWx0WzBdLnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiKSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlc1BhdGggPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke21ldGFQYXRofS9AJHtDb21tb25Bbm5vdGF0aW9uVGVybXMuTWVzc2FnZXN9LyRQYXRoYCkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdFx0XHRpZiAobWVzc2FnZXNQYXRoKSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0YXdhaXQgYXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpLnJlcXVlc3RTaWRlRWZmZWN0cyhbbWVzc2FnZXNQYXRoXSwgY29udGV4dCk7XG5cdFx0XHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgcmVxdWVzdGluZyBzaWRlIGVmZmVjdHNcIiwgZXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKHJlc3VsdFswXS5yZWFzb24pO1xuXHRcdH0gZWxzZSBpZiAocmVzdWx0WzBdLnZhbHVlLnJldHVybmVkQ29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYFNhdmUgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBkb2Vzbid0IHJldHVybiBhIGNvbnRleHQgZm9yICR7bWV0YVBhdGh9YCk7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHRbMF0udmFsdWUucmV0dXJuZWRDb250ZXh0O1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcihgU2F2ZSBBY3Rpb24gZm9yIFN0aWNreSBTZXNzaW9uIG5vdCBmb3VuZCBmb3IgJHttZXRhUGF0aH1gKTtcblx0fVxufVxuLyoqXG4gKiBEaXNjYXJkcyBhIGRvY3VtZW50IGFuZCBjbG9zZXMgc3RpY2t5IHNlc3Npb24uXG4gKiBAcGFyYW0gY29udGV4dCBDb250ZXh0IG9mIHRoZSBkb2N1bWVudCB0byBiZSBkaXNjYXJkZWRcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZlZCB3aGVuIHRoZSBkb2N1bWVudCBpcyBkaWNhcmRlZFxuICovXG5hc3luYyBmdW5jdGlvbiBkaXNjYXJkRG9jdW1lbnQoY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8Q29udGV4dD4ge1xuXHRjb25zdCBtb2RlbCA9IGNvbnRleHQuZ2V0TW9kZWwoKSxcblx0XHRtZXRhTW9kZWwgPSBtb2RlbC5nZXRNZXRhTW9kZWwoKSxcblx0XHRtZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aChjb250ZXh0LmdldFBhdGgoKSksXG5cdFx0ZGlzY2FyZEFjdGlvbkFubm90YXRpb24gPSBtZXRhTW9kZWwuZ2V0T2JqZWN0KGAke21ldGFQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxLlN0aWNreVNlc3Npb25TdXBwb3J0ZWQvRGlzY2FyZEFjdGlvbmApO1xuXG5cdGlmICghZGlzY2FyZEFjdGlvbkFubm90YXRpb24pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYERpc2NhcmQgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBub3QgZm91bmQgZm9yICR7bWV0YVBhdGh9YCk7XG5cdH1cblxuXHRjb25zdCBkaXNjYXJkQWN0aW9uID0gbW9kZWwuYmluZENvbnRleHQoYC8ke2Rpc2NhcmRBY3Rpb25Bbm5vdGF0aW9ufSguLi4pYCk7XG5cdHJldHVybiBkaXNjYXJkQWN0aW9uLmludm9rZShcIiRzaW5nbGVcIikudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIGNvbnRleHQ7XG5cdH0pO1xufVxuXG4vKipcbiAqIFByb2Nlc3MgdGhlIERhdGEgbG9zcyBjb25maXJtYXRpb24uXG4gKiBAcGFyYW0gZm5Qcm9jZXNzIEZ1bmN0aW9uIHRvIGV4ZWN1dGUgYWZ0ZXIgY29uZmlybWF0aW9uXG4gKiBAcGFyYW0gdmlldyBDdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBwcm9ncmFtbWluZ01vZGVsIFByb2dyYW1taW5nIE1vZGVsIG9mIHRoZSBjdXJyZW50IHBhZ2VcbiAqIEByZXR1cm5zIGB2b2lkYCBpIHRoaW5rXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NEYXRhTG9zc0NvbmZpcm1hdGlvbihmblByb2Nlc3M6IEZ1bmN0aW9uLCB2aWV3OiBGRVZpZXcsIHByb2dyYW1taW5nTW9kZWw6IHN0cmluZyk6IHZvaWQge1xuXHRjb25zdCB1aUVkaXRhYmxlID0gQ29tbW9uVXRpbHMuZ2V0SXNFZGl0YWJsZSh2aWV3KSxcblx0XHRyZXNvdXJjZUJ1bmRsZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUudGVtcGxhdGVzXCIpISxcblx0XHR3YXJuaW5nTXNnID0gcmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIlRfQ09NTU9OX1VUSUxTX05BVklHQVRJT05fQVdBWV9NU0dcIiksXG5cdFx0Y29uZmlybUJ1dHRvblR4dCA9IHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJUX0NPTU1PTl9VVElMU19OQVZJR0FUSU9OX0FXQVlfQ09ORklSTV9CVVRUT05cIiksXG5cdFx0Y2FuY2VsQnV0dG9uVHh0ID0gcmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIlRfQ09NTU9OX1VUSUxTX05BVklHQVRJT05fQVdBWV9DQU5DRUxfQlVUVE9OXCIpO1xuXG5cdGlmIChwcm9ncmFtbWluZ01vZGVsID09PSBQcm9ncmFtbWluZ01vZGVsLlN0aWNreSAmJiB1aUVkaXRhYmxlKSB7XG5cdFx0cmV0dXJuIE1lc3NhZ2VCb3gud2FybmluZyh3YXJuaW5nTXNnLCB7XG5cdFx0XHRhY3Rpb25zOiBbY29uZmlybUJ1dHRvblR4dCwgY2FuY2VsQnV0dG9uVHh0XSxcblx0XHRcdGVtcGhhc2l6ZWRBY3Rpb246IGNvbmZpcm1CdXR0b25UeHQsXG5cdFx0XHRvbkNsb3NlOiBmdW5jdGlvbiAoYWN0aW9uVGV4dDogc3RyaW5nKSB7XG5cdFx0XHRcdGlmIChhY3Rpb25UZXh0ID09PSBjb25maXJtQnV0dG9uVHh0KSB7XG5cdFx0XHRcdFx0TG9nLmluZm8oXCJOYXZpZ2F0aW9uIGNvbmZpcm1lZC5cIik7XG5cdFx0XHRcdFx0Zm5Qcm9jZXNzKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0TG9nLmluZm8oXCJOYXZpZ2F0aW9uIHJlamVjdGVkLlwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBmblByb2Nlc3MoKTtcbn1cblxuLyoqXG4gKiBTdGF0aWMgZnVuY3Rpb25zIGZvciB0aGUgc3RpY2t5IHNlc3Npb24gcHJvZ3JhbW1pbmcgbW9kZWxcbiAqIEBuYW1lc3BhY2VcbiAqIEBleHBlcmltZW50YWwgVGhpcyBtb2R1bGUgaXMgb25seSBmb3IgZXhwZXJpbWVudGFsIHVzZSEgPGJyLz48Yj5UaGlzIGlzIG9ubHkgYSBQT0MgYW5kIG1heWJlIGRlbGV0ZWQ8L2I+XG4gKiBAc2luY2UgMS41NC4wXG4gKi9cbmNvbnN0IHN0aWNreSA9IHtcblx0ZWRpdERvY3VtZW50SW5TdGlja3lTZXNzaW9uOiBlZGl0RG9jdW1lbnRJblN0aWNreVNlc3Npb24sXG5cdGFjdGl2YXRlRG9jdW1lbnQ6IGFjdGl2YXRlRG9jdW1lbnQsXG5cdGRpc2NhcmREb2N1bWVudDogZGlzY2FyZERvY3VtZW50LFxuXHRwcm9jZXNzRGF0YUxvc3NDb25maXJtYXRpb246IHByb2Nlc3NEYXRhTG9zc0NvbmZp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
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Action as EdmAction } from "@sap-ux/vocabularies-types";
|
|
2
2
|
import { CommonAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Common";
|
|
3
3
|
import Log from "sap/base/Log";
|
|
4
|
+
import isEmptyObject from "sap/base/util/isEmptyObject";
|
|
4
5
|
import type AppComponent from "sap/fe/core/AppComponent";
|
|
5
6
|
import type { FEView } from "sap/fe/core/BaseController";
|
|
6
7
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
@@ -66,7 +67,7 @@ async function editDocumentInStickySession(
|
|
|
66
67
|
skipMessages: true,
|
|
67
68
|
oDataProperties: {
|
|
68
69
|
disableSideEffects: true,
|
|
69
|
-
ignoreETag: context.getObject()
|
|
70
|
+
ignoreETag: isEmptyObject(context.getObject()), // If the context has not been loaded yet, we can ignore the ETag (as no previous ETag is available)
|
|
70
71
|
groupId: "direct",
|
|
71
72
|
replaceWithRVC: context.getBinding().isA("sap.ui.model.odata.v4.ODataListBinding"),
|
|
72
73
|
deferredSubmit: false
|
|
@@ -104,7 +105,8 @@ async function activateDocument(
|
|
|
104
105
|
context: Context,
|
|
105
106
|
appComponent: AppComponent,
|
|
106
107
|
messageHandler: MessageHandler,
|
|
107
|
-
mParameters: { resourceModel?: ResourceModel }
|
|
108
|
+
mParameters: { resourceModel?: ResourceModel },
|
|
109
|
+
isStandardSave?: boolean | undefined
|
|
108
110
|
): Promise<Context> {
|
|
109
111
|
const operation = "SaveAction";
|
|
110
112
|
const model = context.getModel(),
|
|
@@ -112,15 +114,18 @@ async function activateDocument(
|
|
|
112
114
|
metaPath = metaModel.getMetaPath(context.getPath());
|
|
113
115
|
|
|
114
116
|
const convertedAction = getConvertedAction(context, operation);
|
|
117
|
+
const label = isStandardSave
|
|
118
|
+
? mParameters?.resourceModel?.getText("T_OP_OBJECT_PAGE_SAVE")
|
|
119
|
+
: mParameters?.resourceModel?.getText("C_OP_OBJECT_PAGE_SAVE");
|
|
115
120
|
if (convertedAction) {
|
|
116
121
|
const result = await new Operation(appComponent, context.getModel(), convertedAction, {
|
|
117
122
|
messageHandler: messageHandler,
|
|
118
123
|
contexts: [context],
|
|
119
|
-
label:
|
|
124
|
+
label: label,
|
|
120
125
|
skipMessages: true,
|
|
121
126
|
oDataProperties: {
|
|
122
127
|
disableSideEffects: true,
|
|
123
|
-
ignoreETag: context.getObject()
|
|
128
|
+
ignoreETag: isEmptyObject(context.getObject()), // If the context has not been loaded yet, we can ignore the ETag (as no previous ETag is available)
|
|
124
129
|
groupId: "direct",
|
|
125
130
|
replaceWithRVC: context.getBinding().isA("sap.ui.model.odata.v4.ODataListBinding"),
|
|
126
131
|
deferredSubmit: false
|