@agilemotion/oui-react-js 2.0.21 → 2.0.23
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/dist/ApplicationManager.js +7 -1
- package/dist/InteractionPortalAppHome.js +18 -2
- package/dist/ViewContext.js +21 -3
- package/dist/components/DataGrid.js +48 -7
- package/dist/components/Icon.js +76 -2
- package/dist/components/StepperTitleBar.js +9 -2
- package/dist/components/TableCellContent.js +1 -3
- package/dist/components/dashboard/FoldingSideTabDashboard.js +6 -7
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.css +1 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +164 -22
- package/dist/components/form/BaseField.js +1 -3
- package/dist/components/form/CurrencyField.js +121 -37
- package/dist/components/form/FieldSet.js +18 -5
- package/dist/components/form/TextField.js +2 -1
- package/dist/components/form/fieldset.css +10 -0
- package/dist/components/layout/ViewContainer.js +8 -2
- package/dist/event/Observable.js +3 -4
- package/dist/event/RouteActionHandler.js +4 -2
- package/dist/view/Dashboard.js +40 -9
- package/dist/view/PortalDashboard.js +283 -6
- package/package.json +1 -1
- package/dist/components/dashboard/FoldingSideTabDashboard.bck.js +0 -333
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.bck.js +0 -316
package/dist/ViewContext.js
CHANGED
|
@@ -85,6 +85,15 @@ class ViewContext {
|
|
|
85
85
|
* @param forward
|
|
86
86
|
*/
|
|
87
87
|
_defineProperty(this, "addView", (view, path, forward) => {
|
|
88
|
+
// Concurrent (dashboard) context: every card view coexists. Don't evict
|
|
89
|
+
// the top or close siblings — just (re)register this one, clearing any
|
|
90
|
+
// prior view with the same id first so its stale event subscriptions
|
|
91
|
+
// don't linger on the bus.
|
|
92
|
+
if (this.concurrent) {
|
|
93
|
+
this.closeView(view.config.id, forward);
|
|
94
|
+
this.views.push(view);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
88
97
|
let topView = this.getTopView();
|
|
89
98
|
if (topView) {
|
|
90
99
|
this.closeView(topView.config.id, forward);
|
|
@@ -112,7 +121,9 @@ class ViewContext {
|
|
|
112
121
|
*
|
|
113
122
|
*/
|
|
114
123
|
_defineProperty(this, "closeAllViews", () => {
|
|
115
|
-
|
|
124
|
+
// Snapshot: closeView splices this.views, so iterating the live array
|
|
125
|
+
// would skip elements and leave views (and their listeners) behind.
|
|
126
|
+
for (const view of [...this.views]) {
|
|
116
127
|
this.closeView(view.config.id, false);
|
|
117
128
|
}
|
|
118
129
|
});
|
|
@@ -141,7 +152,10 @@ class ViewContext {
|
|
|
141
152
|
if (view) {
|
|
142
153
|
if (!_Utils.default.isNull(view) && !_Utils.default.isNull(view.handle.api)) {
|
|
143
154
|
_Observable.default.clearEventListeners(viewId);
|
|
144
|
-
|
|
155
|
+
// Match by config.id: it equals handle.api.id for regular views
|
|
156
|
+
// but dashboard card handles expose no api.id, so the old
|
|
157
|
+
// handle.api.id match never spliced them (they leaked).
|
|
158
|
+
let index = this.views.findIndex(v => v.config.id === viewId);
|
|
145
159
|
if (index >= 0) {
|
|
146
160
|
this.views.splice(index, 1);
|
|
147
161
|
if (!forward) {
|
|
@@ -180,6 +194,10 @@ class ViewContext {
|
|
|
180
194
|
this.navHistory = [];
|
|
181
195
|
this.graphs = [];
|
|
182
196
|
this.id = _id;
|
|
197
|
+
// Concurrent contexts (e.g. the dashboard) hold many views at once and
|
|
198
|
+
// must NOT evict the top view on add. Single-active-view contexts (main,
|
|
199
|
+
// window, popup) keep the default close-the-top-on-add stack semantics.
|
|
200
|
+
this.concurrent = false;
|
|
183
201
|
}
|
|
184
202
|
getTopView() {
|
|
185
203
|
if (this.views.length > 0) {
|
|
@@ -238,4 +256,4 @@ class ViewContext {
|
|
|
238
256
|
}
|
|
239
257
|
}
|
|
240
258
|
exports.ViewContext = ViewContext;
|
|
241
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfT2JzZXJ2YWJsZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX0V2ZW50IiwiX0V2ZW50VHlwZSIsIl9VdGlscyIsIl9EeW5hbWljSlMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9HcmFwaCIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJTWVNURU1fRVZFTlQiLCJleHBvcnRzIiwiTEVHRU5EX0FSUk9XX0lDT04iLCJWaWV3Q29udGV4dCIsImNvbnN0cnVjdG9yIiwiaWQiLCJ2aWV3SWQiLCJ0aXRsZSIsInZpZXciLCJnZXRWaWV3IiwibGVnZW5kSWNvbkFycm93IiwicmVwbGFjZSIsInByb3BzIiwic2Vjb25kYXJ5Q29sb3IiLCJ0aXRsZVZhbHVlIiwibWF0Y2giLCJURU1QTEFURV9SRUdFWCIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJuYXZIaXN0b3J5RWxlbWVudCIsIm5hdkhpc3RvcnkiLCJsZWdlbmRWYWx1ZSIsImNvdW50ZXIiLCJjb25jYXQiLCJsZW5ndGgiLCJhcHBCYXJUaXRsZSIsInByb3BlcnR5IiwibmFtZSIsImV2ZW50IiwiRXZlbnQiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJldmVudE1hbmFnZXIiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJBUFBMSUNBVElPTl9DT05URVhUX0NIQU5HRSIsImdyYXBocyIsInZpZXdzIiwic3BsaWNlIiwicGF0aCIsImZvcndhcmQiLCJ0b3BWaWV3IiwiZ2V0VG9wVmlldyIsImNsb3NlVmlldyIsImNvbmZpZyIsInBhcmVudCIsImNvbnRleHRWaWV3IiwiVXRpbHMiLCJpc051bGwiLCJoYW5kbGUiLCJhcGkiLCJncmFwaElkIiwiaGlzdG9yeUVsZW1lbnQiLCJwdXNoIiwiY2xlYXJFdmVudExpc3RlbmVycyIsImluZGV4IiwiZmluZEluZGV4IiwidiIsInZpZXdJbmRleCIsImgiLCJzaWduYWxHcmFwaCIsImdyYXBoVG9TaWduYWwiLCJncmFwaCIsInNpZ25hbCIsImdldFVzZXJEZXRhaWxzIiwidXNlckRldGFpbHMiLCJyZW1vdmVMb2FkZWRHcmFwaCIsImdyYXBoVmlld3MiLCJmaWx0ZXIiLCJncmFwaFZpZXciLCJncmFwaEhpc3RvcnkiLCJncmFwaEhpc3RvcnlFbGVtZW50IiwibG9hZEdyYXBoIiwiaXNQYXJlbnQiLCJwYXJhbWV0ZXJWYWx1ZXMiLCJHcmFwaCIsInBhcnNlQ29uZmlnIiwicGFyYW1ldGVyVmFsdWUiLCJtb2RlbCIsImluaXQiXSwic291cmNlcyI6WyIuLi9zcmMvbGliL1ZpZXdDb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBFdmVudCBmcm9tICcuL2V2ZW50L0V2ZW50JztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4vVXRpbHMnO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tICcuL0R5bmFtaWNKUyc7XG5pbXBvcnQge1RFTVBMQVRFX1JFR0VYfSBmcm9tICcuL0R5bmFtaWNKUyc7XG5pbXBvcnQgR3JhcGggZnJvbSBcIi4vY29tcG9uZW50cy9HcmFwaFwiO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tIFwiLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9FVkVOVCA9ICdTWVNURU1fRVZFTlQnO1xuZXhwb3J0IGNvbnN0IExFR0VORF9BUlJPV19JQ09OID0gYCA8aSBjbGFzcz1cXFwiZmEgZmEtYXJyb3ctcmlnaHQgZmEteHNcXFwiIGFyaWEtaGlkZGVuPVxcXCJ0cnVlXFxcIiBzdHlsZT0nY29sb3I6X19DT0xPUl9fJz48L2k+IGA7XG5cbmV4cG9ydCBjbGFzcyBWaWV3Q29udGV4dCB7XG4gICAgY29uc3RydWN0b3IoaWQpIHtcbiAgICAgICAgdGhpcy52aWV3cyA9IFtdO1xuICAgICAgICB0aGlzLnByb3BzID0ge307XG4gICAgICAgIHRoaXMubmF2SGlzdG9yeSA9IFtdO1xuICAgICAgICB0aGlzLmdyYXBocyA9IFtdO1xuICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdXBkYXRlIGFwcGJhciB0aXRsZVxuICAgICAqXG4gICAgICogQHBhcmFtIHZpZXdJZFxuICAgICAqIEBwYXJhbSB0aXRsZVxuICAgICAqL1xuICAgIHVwZGF0ZUFwcEJhclRpdGxlID0gKHZpZXdJZCwgdGl0bGUpID0+IHtcbiAgICAgICAgbGV0IHZpZXcgPSB0aGlzLmdldFZpZXcodmlld0lkKTtcbiAgICAgICAgaWYgKCF2aWV3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVnZW5kSWNvbkFycm93ID0gTEVHRU5EX0FSUk9XX0lDT04ucmVwbGFjZSgnX19DT0xPUl9fJywgdGhpcy5wcm9wcy5zZWNvbmRhcnlDb2xvcik7XG4gICAgICAgIGxldCB0aXRsZVZhbHVlID0gJyc7XG5cbiAgICAgICAgaWYodGl0bGUpIHtcbiAgICAgICAgICAgIGlmICghdGl0bGUubWF0Y2goVEVNUExBVEVfUkVHRVgpKSB7XG4gICAgICAgICAgICAgICAgdGl0bGVWYWx1ZSA9IHRpdGxlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aXRsZVZhbHVlID0gZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHQodmlld0lkICsgJ1RpdGxlJywgdGl0bGUsIHZpZXdJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG5hdkhpc3RvcnlFbGVtZW50IG9mIHRoaXMubmF2SGlzdG9yeSkge1xuICAgICAgICAgICAgaWYgKG5hdkhpc3RvcnlFbGVtZW50LnZpZXdJZCA9PT0gdmlld0lkKSB7XG4gICAgICAgICAgICAgICAgbmF2SGlzdG9yeUVsZW1lbnQudGl0bGUgPSB0aXRsZVZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxlZ2VuZFZhbHVlID0gJzxzcGFuPic7XG4gICAgICAgIGxldCBjb3VudGVyID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBuYXZIaXN0b3J5RWxlbWVudCBvZiB0aGlzLm5hdkhpc3RvcnkpIHtcbiAgICAgICAgICAgIGlmICghbmF2SGlzdG9yeUVsZW1lbnQudGl0bGUpIGNvbnRpbnVlO1xuICAgICAgICAgICAgbGVnZW5kVmFsdWUgKz0gYCR7bmF2SGlzdG9yeUVsZW1lbnQudGl0bGV9YDtcbiAgICAgICAgICAgIGlmIChjb3VudGVyKysgPCB0aGlzLm5hdkhpc3RvcnkubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIGxlZ2VuZFZhbHVlICs9IGxlZ2VuZEljb25BcnJvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxlZ2VuZFZhbHVlICs9ICc8L3NwYW4+JztcbiAgICAgICAgdGhpcy5wcm9wcy5hcHBCYXJUaXRsZSA9IGxlZ2VuZFZhbHVlO1xuXG4gICAgICAgIGxldCBwcm9wZXJ0eSA9IHt9O1xuICAgICAgICBwcm9wZXJ0eS5uYW1lID0gJ3RpdGxlLScgKyB2aWV3SWQ7XG4gICAgICAgIHByb3BlcnR5LnZhbHVlID0gdGhpcy5wcm9wcy5hcHBCYXJUaXRsZTtcblxuICAgICAgICAvLyBXaGVuIHdlIGludHJvZHVjZSB0aGUgdmlldyBtYW5hZ2VyLCBpdCBtdXN0IGJlY29tZSB0aGUgZXZlbnQgc291cmNlIGluc3RlYWQgb2YgYXBwbGljYXRpb25NYW5hZ2VyXG4gICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChhcHBsaWNhdGlvbk1hbmFnZXIsIFNZU1RFTV9FVkVOVCwgcHJvcGVydHkpO1xuICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5BUFBMSUNBVElPTl9DT05URVhUX0NIQU5HRSwgZXZlbnQpO1xuXG4gICAgICAgIGlmICh0aGlzLmdyYXBocy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwcm9wZXJ0eSA9IHt9O1xuICAgICAgICAgICAgcHJvcGVydHkubmFtZSA9ICdzdGVwcGVyVGl0bGUnO1xuXG4gICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQoYXBwbGljYXRpb25NYW5hZ2VyLCBTWVNURU1fRVZFTlQsIHByb3BlcnR5KTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkFQUExJQ0FUSU9OX0NPTlRFWFRfQ0hBTkdFLCBldmVudCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogY2xlYXJzIGFsbCB2aWV3c1xuICAgICAqXG4gICAgICovXG4gICAgY2xlYXIgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMudmlld3Muc3BsaWNlKDAsIHRoaXMudmlld3MubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogYWRkIHZpZXcgY29uZmlndXJhdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHZpZXcgdGhlIGxpc3RlbmVyIHRvIGJlIGFkZGVkXG4gICAgICogQHBhcmFtIHBhdGhcbiAgICAgKiBAcGFyYW0gZm9yd2FyZFxuICAgICAqL1xuICAgIGFkZFZpZXcgPSAodmlldywgcGF0aCwgZm9yd2FyZCkgPT4ge1xuICAgICAgICBsZXQgdG9wVmlldyA9IHRoaXMuZ2V0VG9wVmlldygpO1xuICAgICAgICBpZiAodG9wVmlldykge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVZpZXcodG9wVmlldy5jb25maWcuaWQsIGZvcndhcmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZpZXcucGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdkhpc3Rvcnkuc3BsaWNlKDAsIHRoaXMubmF2SGlzdG9yeS5sZW5ndGgpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0VmlldyBvZiB0aGlzLnZpZXdzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29udGV4dFZpZXcpICYmICFVdGlscy5pc051bGwoY29udGV4dFZpZXcuaGFuZGxlLmFwaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZVZpZXcoY29udGV4dFZpZXcuaGFuZGxlLmFwaS5pZCwgZm9yd2FyZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChmb3J3YXJkIHx8IHZpZXcucGFyZW50KSAmJiAoIXZpZXcuZ3JhcGhJZCkpIHtcbiAgICAgICAgICAgIGxldCBoaXN0b3J5RWxlbWVudCA9IHt9O1xuICAgICAgICAgICAgaGlzdG9yeUVsZW1lbnQudmlld0lkID0gdmlldy5jb25maWcuaWQ7XG4gICAgICAgICAgICBoaXN0b3J5RWxlbWVudC5wYXJlbnQgPSB2aWV3LnBhcmVudDtcbiAgICAgICAgICAgIGhpc3RvcnlFbGVtZW50LmdyYXBoSWQgPSB2aWV3LmdyYXBoSWQ7XG4gICAgICAgICAgICBoaXN0b3J5RWxlbWVudC5wYXRoID0gcGF0aDtcblxuICAgICAgICAgICAgdGhpcy5uYXZIaXN0b3J5LnB1c2goaGlzdG9yeUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52aWV3cy5wdXNoKHZpZXcpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZXMgdGhlIGN1cnJlbnQgdmlld1xuICAgICAqXG4gICAgICovXG4gICAgY2xvc2VBbGxWaWV3cyA9ICgpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCB2aWV3IG9mIHRoaXMudmlld3MpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VWaWV3KHZpZXcuY29uZmlnLmlkLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogZ2V0IGFsbCB2aWV3XG4gICAgICpcbiAgICAgKi9cbiAgICBnZXRWaWV3cyA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld3M7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIGdldCBhbGwgZ3JhcGhzXG4gICAgICpcbiAgICAgKi9cbiAgICBnZXRHcmFwaHMgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyYXBocztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogY2xvc2VzIHRoZSBzcGVjaWZpZWQgdmlld1xuICAgICAqXG4gICAgICogQHBhcmFtIHZpZXdJZCB0aGUgbGlzdGVuZXIgdG8gYmUgYWRkZWRcbiAgICAgKiBAcGFyYW0gZm9yd2FyZFxuICAgICAqL1xuICAgIGNsb3NlVmlldyA9ICh2aWV3SWQsIGZvcndhcmQpID0+IHtcbiAgICAgICAgbGV0IHZpZXcgPSB0aGlzLmdldFZpZXcodmlld0lkKTtcbiAgICAgICAgaWYgKHZpZXcpIHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZpZXcpICYmICFVdGlscy5pc051bGwodmlldy5oYW5kbGUuYXBpKSkge1xuICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5jbGVhckV2ZW50TGlzdGVuZXJzKHZpZXdJZCk7XG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy52aWV3cy5maW5kSW5kZXgoKHYpID0+IHYuaGFuZGxlLmFwaS5pZCA9PT0gdmlld0lkKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmb3J3YXJkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmlld0luZGV4ID0gdGhpcy5uYXZIaXN0b3J5LmZpbmRJbmRleCgoaCkgPT4gaC52aWV3SWQgPT09IHZpZXdJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlld0luZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdkhpc3Rvcnkuc3BsaWNlKHZpZXdJbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHZpZXcgY29uZmlndXJhdGlvbiB3aXRoIGEgcGFydGljdWxhciBpZFxuICAgICAqXG4gICAgICovXG4gICAgZ2V0VmlldyA9IChpZCkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IHZpZXcgb2YgdGhpcy52aWV3cykge1xuICAgICAgICAgICAgaWYgKGlkID09PSB2aWV3LmNvbmZpZy5pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2aWV3O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGdldFRvcFZpZXcoKSB7XG4gICAgICAgIGlmICh0aGlzLnZpZXdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpZXdzW3RoaXMudmlld3MubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBzaWduYWxHcmFwaChpZCwgZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGhzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBncmFwaFRvU2lnbmFsID0gbnVsbDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JhcGggb2YgdGhpcy5ncmFwaHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaWQgPT09IGdyYXBoLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyYXBoVG9TaWduYWwgPSBncmFwaDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWdyYXBoVG9TaWduYWwgJiYgVXRpbHMuaXNOdWxsKGlkKSkge1xuICAgICAgICAgICAgICAgIGdyYXBoVG9TaWduYWwgPSB0aGlzLmdyYXBoc1t0aGlzLmdyYXBocy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYoZ3JhcGhUb1NpZ25hbCkge1xuICAgICAgICAgICAgICAgIGdyYXBoVG9TaWduYWwuc2lnbmFsKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFVzZXJEZXRhaWxzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy51c2VyRGV0YWlscztcbiAgICB9XG5cbiAgICByZW1vdmVMb2FkZWRHcmFwaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGhzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBncmFwaCA9IHRoaXMuZ3JhcGhzW3RoaXMuZ3JhcGhzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgbGV0IGdyYXBoVmlld3MgPSB0aGlzLnZpZXdzLmZpbHRlcigodmlldykgPT4gdmlldy5ncmFwaElkID09PSBncmFwaC5pZCk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JhcGhWaWV3IG9mIGdyYXBoVmlld3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlVmlldyhncmFwaFZpZXcuY29uZmlnLmlkLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZ3JhcGhzLnNwbGljZSgwLCB0aGlzLmdyYXBocy5sZW5ndGgpO1xuICAgICAgICAgICAgbGV0IGdyYXBoSGlzdG9yeSA9IHRoaXMubmF2SGlzdG9yeS5maWx0ZXIoKHZpZXcpID0+IHZpZXcuZ3JhcGhJZCA9PT0gZ3JhcGguaWQpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBncmFwaEhpc3RvcnlFbGVtZW50IG9mIGdyYXBoSGlzdG9yeSkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF2SGlzdG9yeS5zcGxpY2UodGhpcy5uYXZIaXN0b3J5LmZpbmRJbmRleCgoZSkgPT4gZSA9PT0gZ3JhcGhIaXN0b3J5RWxlbWVudCksIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZ3JhcGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkR3JhcGgoaXNQYXJlbnQsIGNvbmZpZywgcGFyYW1ldGVyVmFsdWVzKSB7XG4gICAgICAgIGlmIChpc1BhcmVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXZIaXN0b3J5LnNwbGljZSgwLCB0aGlzLm5hdkhpc3RvcnkubGVuZ3RoKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29udGV4dFZpZXcgb2YgdGhpcy52aWV3cykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VWaWV3KGNvbnRleHRWaWV3LmhhbmRsZS5hcGkuaWQsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBncmFwaCA9IG5ldyBHcmFwaChVdGlscy5wYXJzZUNvbmZpZyhjb25maWcpKTtcbiAgICAgICAgdGhpcy5ncmFwaHMucHVzaChncmFwaCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBwYXJhbWV0ZXJWYWx1ZSBvZiBwYXJhbWV0ZXJWYWx1ZXMpIHtcbiAgICAgICAgICAgIGdyYXBoLm1vZGVsW3BhcmFtZXRlclZhbHVlLm5hbWVdID0gcGFyYW1ldGVyVmFsdWUudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBncmFwaC5pbml0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBnZXRQcmV2aW91c0hpc3RvcnlFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5uYXZIaXN0b3J5Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdkhpc3RvcnlbdGhpcy5uYXZIaXN0b3J5Lmxlbmd0aCAtIDJdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBQyx1QkFBQSxDQUFBTCxPQUFBO0FBRUEsSUFBQU0sTUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sbUJBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUFzRCxTQUFBSyx3QkFBQUcsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUwsdUJBQUEsWUFBQUEsQ0FBQUcsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFB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
|
|
259
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfT2JzZXJ2YWJsZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX0V2ZW50IiwiX0V2ZW50VHlwZSIsIl9VdGlscyIsIl9EeW5hbWljSlMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9HcmFwaCIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJTWVNURU1fRVZFTlQiLCJleHBvcnRzIiwiTEVHRU5EX0FSUk9XX0lDT04iLCJWaWV3Q29udGV4dCIsImNvbnN0cnVjdG9yIiwiaWQiLCJ2aWV3SWQiLCJ0aXRsZSIsInZpZXciLCJnZXRWaWV3IiwibGVnZW5kSWNvbkFycm93IiwicmVwbGFjZSIsInByb3BzIiwic2Vjb25kYXJ5Q29sb3IiLCJ0aXRsZVZhbHVlIiwibWF0Y2giLCJURU1QTEFURV9SRUdFWCIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJuYXZIaXN0b3J5RWxlbWVudCIsIm5hdkhpc3RvcnkiLCJsZWdlbmRWYWx1ZSIsImNvdW50ZXIiLCJjb25jYXQiLCJsZW5ndGgiLCJhcHBCYXJUaXRsZSIsInByb3BlcnR5IiwibmFtZSIsImV2ZW50IiwiRXZlbnQiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJldmVudE1hbmFnZXIiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJBUFBMSUNBVElPTl9DT05URVhUX0NIQU5HRSIsImdyYXBocyIsInZpZXdzIiwic3BsaWNlIiwicGF0aCIsImZvcndhcmQiLCJjb25jdXJyZW50IiwiY2xvc2VWaWV3IiwiY29uZmlnIiwicHVzaCIsInRvcFZpZXciLCJnZXRUb3BWaWV3IiwicGFyZW50IiwiY29udGV4dFZpZXciLCJVdGlscyIsImlzTnVsbCIsImhhbmRsZSIsImFwaSIsImdyYXBoSWQiLCJoaXN0b3J5RWxlbWVudCIsImNsZWFyRXZlbnRMaXN0ZW5lcnMiLCJpbmRleCIsImZpbmRJbmRleCIsInYiLCJ2aWV3SW5kZXgiLCJoIiwic2lnbmFsR3JhcGgiLCJncmFwaFRvU2lnbmFsIiwiZ3JhcGgiLCJzaWduYWwiLCJnZXRVc2VyRGV0YWlscyIsInVzZXJEZXRhaWxzIiwicmVtb3ZlTG9hZGVkR3JhcGgiLCJncmFwaFZpZXdzIiwiZmlsdGVyIiwiZ3JhcGhWaWV3IiwiZ3JhcGhIaXN0b3J5IiwiZ3JhcGhIaXN0b3J5RWxlbWVudCIsImxvYWRHcmFwaCIsImlzUGFyZW50IiwicGFyYW1ldGVyVmFsdWVzIiwiR3JhcGgiLCJwYXJzZUNvbmZpZyIsInBhcmFtZXRlclZhbHVlIiwibW9kZWwiLCJpbml0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2xpYi9WaWV3Q29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4vZXZlbnQvRXZlbnRUeXBlJztcbmltcG9ydCBVdGlscyBmcm9tICcuL1V0aWxzJztcbmltcG9ydCBkeW5hbWljSlMgZnJvbSAnLi9EeW5hbWljSlMnO1xuaW1wb3J0IHtURU1QTEFURV9SRUdFWH0gZnJvbSAnLi9EeW5hbWljSlMnO1xuaW1wb3J0IEdyYXBoIGZyb20gXCIuL2NvbXBvbmVudHMvR3JhcGhcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4vQXBwbGljYXRpb25NYW5hZ2VyXCI7XG5cbmV4cG9ydCBjb25zdCBTWVNURU1fRVZFTlQgPSAnU1lTVEVNX0VWRU5UJztcbmV4cG9ydCBjb25zdCBMRUdFTkRfQVJST1dfSUNPTiA9IGAgPGkgY2xhc3M9XFxcImZhIGZhLWFycm93LXJpZ2h0IGZhLXhzXFxcIiBhcmlhLWhpZGRlbj1cXFwidHJ1ZVxcXCIgc3R5bGU9J2NvbG9yOl9fQ09MT1JfXyc+PC9pPiBgO1xuXG5leHBvcnQgY2xhc3MgVmlld0NvbnRleHQge1xuICAgIGNvbnN0cnVjdG9yKGlkKSB7XG4gICAgICAgIHRoaXMudmlld3MgPSBbXTtcbiAgICAgICAgdGhpcy5wcm9wcyA9IHt9O1xuICAgICAgICB0aGlzLm5hdkhpc3RvcnkgPSBbXTtcbiAgICAgICAgdGhpcy5ncmFwaHMgPSBbXTtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICAvLyBDb25jdXJyZW50IGNvbnRleHRzIChlLmcuIHRoZSBkYXNoYm9hcmQpIGhvbGQgbWFueSB2aWV3cyBhdCBvbmNlIGFuZFxuICAgICAgICAvLyBtdXN0IE5PVCBldmljdCB0aGUgdG9wIHZpZXcgb24gYWRkLiBTaW5nbGUtYWN0aXZlLXZpZXcgY29udGV4dHMgKG1haW4sXG4gICAgICAgIC8vIHdpbmRvdywgcG9wdXApIGtlZXAgdGhlIGRlZmF1bHQgY2xvc2UtdGhlLXRvcC1vbi1hZGQgc3RhY2sgc2VtYW50aWNzLlxuICAgICAgICB0aGlzLmNvbmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB1cGRhdGUgYXBwYmFyIHRpdGxlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmlld0lkXG4gICAgICogQHBhcmFtIHRpdGxlXG4gICAgICovXG4gICAgdXBkYXRlQXBwQmFyVGl0bGUgPSAodmlld0lkLCB0aXRsZSkgPT4ge1xuICAgICAgICBsZXQgdmlldyA9IHRoaXMuZ2V0Vmlldyh2aWV3SWQpO1xuICAgICAgICBpZiAoIXZpZXcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsZWdlbmRJY29uQXJyb3cgPSBMRUdFTkRfQVJST1dfSUNPTi5yZXBsYWNlKCdfX0NPTE9SX18nLCB0aGlzLnByb3BzLnNlY29uZGFyeUNvbG9yKTtcbiAgICAgICAgbGV0IHRpdGxlVmFsdWUgPSAnJztcblxuICAgICAgICBpZih0aXRsZSkge1xuICAgICAgICAgICAgaWYgKCF0aXRsZS5tYXRjaChURU1QTEFURV9SRUdFWCkpIHtcbiAgICAgICAgICAgICAgICB0aXRsZVZhbHVlID0gdGl0bGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRpdGxlVmFsdWUgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdCh2aWV3SWQgKyAnVGl0bGUnLCB0aXRsZSwgdmlld0lkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgbmF2SGlzdG9yeUVsZW1lbnQgb2YgdGhpcy5uYXZIaXN0b3J5KSB7XG4gICAgICAgICAgICBpZiAobmF2SGlzdG9yeUVsZW1lbnQudmlld0lkID09PSB2aWV3SWQpIHtcbiAgICAgICAgICAgICAgICBuYXZIaXN0b3J5RWxlbWVudC50aXRsZSA9IHRpdGxlVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVnZW5kVmFsdWUgPSAnPHNwYW4+JztcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IG5hdkhpc3RvcnlFbGVtZW50IG9mIHRoaXMubmF2SGlzdG9yeSkge1xuICAgICAgICAgICAgaWYgKCFuYXZIaXN0b3J5RWxlbWVudC50aXRsZSkgY29udGludWU7XG4gICAgICAgICAgICBsZWdlbmRWYWx1ZSArPSBgJHtuYXZIaXN0b3J5RWxlbWVudC50aXRsZX1gO1xuICAgICAgICAgICAgaWYgKGNvdW50ZXIrKyA8IHRoaXMubmF2SGlzdG9yeS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgbGVnZW5kVmFsdWUgKz0gbGVnZW5kSWNvbkFycm93O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGVnZW5kVmFsdWUgKz0gJzwvc3Bhbj4nO1xuICAgICAgICB0aGlzLnByb3BzLmFwcEJhclRpdGxlID0gbGVnZW5kVmFsdWU7XG5cbiAgICAgICAgbGV0IHByb3BlcnR5ID0ge307XG4gICAgICAgIHByb3BlcnR5Lm5hbWUgPSAndGl0bGUtJyArIHZpZXdJZDtcbiAgICAgICAgcHJvcGVydHkudmFsdWUgPSB0aGlzLnByb3BzLmFwcEJhclRpdGxlO1xuXG4gICAgICAgIC8vIFdoZW4gd2UgaW50cm9kdWNlIHRoZSB2aWV3IG1hbmFnZXIsIGl0IG11c3QgYmVjb21lIHRoZSBldmVudCBzb3VyY2UgaW5zdGVhZCBvZiBhcHBsaWNhdGlvbk1hbmFnZXJcbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGFwcGxpY2F0aW9uTWFuYWdlciwgU1lTVEVNX0VWRU5ULCBwcm9wZXJ0eSk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkFQUExJQ0FUSU9OX0NPTlRFWFRfQ0hBTkdFLCBldmVudCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JhcGhzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHByb3BlcnR5ID0ge307XG4gICAgICAgICAgICBwcm9wZXJ0eS5uYW1lID0gJ3N0ZXBwZXJUaXRsZSc7XG5cbiAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChhcHBsaWNhdGlvbk1hbmFnZXIsIFNZU1RFTV9FVkVOVCwgcHJvcGVydHkpO1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQVBQTElDQVRJT05fQ09OVEVYVF9DSEFOR0UsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBjbGVhcnMgYWxsIHZpZXdzXG4gICAgICpcbiAgICAgKi9cbiAgICBjbGVhciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy52aWV3cy5zcGxpY2UoMCwgdGhpcy52aWV3cy5sZW5ndGgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBhZGQgdmlldyBjb25maWd1cmF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmlldyB0aGUgbGlzdGVuZXIgdG8gYmUgYWRkZWRcbiAgICAgKiBAcGFyYW0gcGF0aFxuICAgICAqIEBwYXJhbSBmb3J3YXJkXG4gICAgICovXG4gICAgYWRkVmlldyA9ICh2aWV3LCBwYXRoLCBmb3J3YXJkKSA9PiB7XG4gICAgICAgIC8vIENvbmN1cnJlbnQgKGRhc2hib2FyZCkgY29udGV4dDogZXZlcnkgY2FyZCB2aWV3IGNvZXhpc3RzLiBEb24ndCBldmljdFxuICAgICAgICAvLyB0aGUgdG9wIG9yIGNsb3NlIHNpYmxpbmdzIOKAlCBqdXN0IChyZSlyZWdpc3RlciB0aGlzIG9uZSwgY2xlYXJpbmcgYW55XG4gICAgICAgIC8vIHByaW9yIHZpZXcgd2l0aCB0aGUgc2FtZSBpZCBmaXJzdCBzbyBpdHMgc3RhbGUgZXZlbnQgc3Vic2NyaXB0aW9uc1xuICAgICAgICAvLyBkb24ndCBsaW5nZXIgb24gdGhlIGJ1cy5cbiAgICAgICAgaWYgKHRoaXMuY29uY3VycmVudCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVZpZXcodmlldy5jb25maWcuaWQsIGZvcndhcmQpO1xuICAgICAgICAgICAgdGhpcy52aWV3cy5wdXNoKHZpZXcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRvcFZpZXcgPSB0aGlzLmdldFRvcFZpZXcoKTtcbiAgICAgICAgaWYgKHRvcFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VWaWV3KHRvcFZpZXcuY29uZmlnLmlkLCBmb3J3YXJkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2aWV3LnBhcmVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXZIaXN0b3J5LnNwbGljZSgwLCB0aGlzLm5hdkhpc3RvcnkubGVuZ3RoKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29udGV4dFZpZXcgb2YgdGhpcy52aWV3cykge1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbnRleHRWaWV3KSAmJiAhVXRpbHMuaXNOdWxsKGNvbnRleHRWaWV3LmhhbmRsZS5hcGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VWaWV3KGNvbnRleHRWaWV3LmhhbmRsZS5hcGkuaWQsIGZvcndhcmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoZm9yd2FyZCB8fCB2aWV3LnBhcmVudCkgJiYgKCF2aWV3LmdyYXBoSWQpKSB7XG4gICAgICAgICAgICBsZXQgaGlzdG9yeUVsZW1lbnQgPSB7fTtcbiAgICAgICAgICAgIGhpc3RvcnlFbGVtZW50LnZpZXdJZCA9IHZpZXcuY29uZmlnLmlkO1xuICAgICAgICAgICAgaGlzdG9yeUVsZW1lbnQucGFyZW50ID0gdmlldy5wYXJlbnQ7XG4gICAgICAgICAgICBoaXN0b3J5RWxlbWVudC5ncmFwaElkID0gdmlldy5ncmFwaElkO1xuICAgICAgICAgICAgaGlzdG9yeUVsZW1lbnQucGF0aCA9IHBhdGg7XG5cbiAgICAgICAgICAgIHRoaXMubmF2SGlzdG9yeS5wdXNoKGhpc3RvcnlFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmlld3MucHVzaCh2aWV3KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogY2xvc2VzIHRoZSBjdXJyZW50IHZpZXdcbiAgICAgKlxuICAgICAqL1xuICAgIGNsb3NlQWxsVmlld3MgPSAoKSA9PiB7XG4gICAgICAgIC8vIFNuYXBzaG90OiBjbG9zZVZpZXcgc3BsaWNlcyB0aGlzLnZpZXdzLCBzbyBpdGVyYXRpbmcgdGhlIGxpdmUgYXJyYXlcbiAgICAgICAgLy8gd291bGQgc2tpcCBlbGVtZW50cyBhbmQgbGVhdmUgdmlld3MgKGFuZCB0aGVpciBsaXN0ZW5lcnMpIGJlaGluZC5cbiAgICAgICAgZm9yIChjb25zdCB2aWV3IG9mIFsuLi50aGlzLnZpZXdzXSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVZpZXcodmlldy5jb25maWcuaWQsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBnZXQgYWxsIHZpZXdcbiAgICAgKlxuICAgICAqL1xuICAgIGdldFZpZXdzID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3cztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogZ2V0IGFsbCBncmFwaHNcbiAgICAgKlxuICAgICAqL1xuICAgIGdldEdyYXBocyA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JhcGhzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZXMgdGhlIHNwZWNpZmllZCB2aWV3XG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmlld0lkIHRoZSBsaXN0ZW5lciB0byBiZSBhZGRlZFxuICAgICAqIEBwYXJhbSBmb3J3YXJkXG4gICAgICovXG4gICAgY2xvc2VWaWV3ID0gKHZpZXdJZCwgZm9yd2FyZCkgPT4ge1xuICAgICAgICBsZXQgdmlldyA9IHRoaXMuZ2V0Vmlldyh2aWV3SWQpO1xuICAgICAgICBpZiAodmlldykge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmlldykgJiYgIVV0aWxzLmlzTnVsbCh2aWV3LmhhbmRsZS5hcGkpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmNsZWFyRXZlbnRMaXN0ZW5lcnModmlld0lkKTtcbiAgICAgICAgICAgICAgICAvLyBNYXRjaCBieSBjb25maWcuaWQ6IGl0IGVxdWFscyBoYW5kbGUuYXBpLmlkIGZvciByZWd1bGFyIHZpZXdzXG4gICAgICAgICAgICAgICAgLy8gYnV0IGRhc2hib2FyZCBjYXJkIGhhbmRsZXMgZXhwb3NlIG5vIGFwaS5pZCwgc28gdGhlIG9sZFxuICAgICAgICAgICAgICAgIC8vIGhhbmRsZS5hcGkuaWQgbWF0Y2ggbmV2ZXIgc3BsaWNlZCB0aGVtICh0aGV5IGxlYWtlZCkuXG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy52aWV3cy5maW5kSW5kZXgoKHYpID0+IHYuY29uZmlnLmlkID09PSB2aWV3SWQpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlld3Muc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZvcndhcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2aWV3SW5kZXggPSB0aGlzLm5hdkhpc3RvcnkuZmluZEluZGV4KChoKSA9PiBoLnZpZXdJZCA9PT0gdmlld0lkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aWV3SW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmF2SGlzdG9yeS5zcGxpY2Uodmlld0luZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgdmlldyBjb25maWd1cmF0aW9uIHdpdGggYSBwYXJ0aWN1bGFyIGlkXG4gICAgICpcbiAgICAgKi9cbiAgICBnZXRWaWV3ID0gKGlkKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgdmlldyBvZiB0aGlzLnZpZXdzKSB7XG4gICAgICAgICAgICBpZiAoaWQgPT09IHZpZXcuY29uZmlnLmlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZpZXc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgZ2V0VG9wVmlldygpIHtcbiAgICAgICAgaWYgKHRoaXMudmlld3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmlld3NbdGhpcy52aWV3cy5sZW5ndGggLSAxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHNpZ25hbEdyYXBoKGlkLCBldmVudCkge1xuICAgICAgICBpZiAodGhpcy5ncmFwaHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IGdyYXBoVG9TaWduYWwgPSBudWxsO1xuICAgICAgICAgICAgZm9yIChjb25zdCBncmFwaCBvZiB0aGlzLmdyYXBocykge1xuICAgICAgICAgICAgICAgIGlmIChpZCA9PT0gZ3JhcGguaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JhcGhUb1NpZ25hbCA9IGdyYXBoO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZ3JhcGhUb1NpZ25hbCAmJiBVdGlscy5pc051bGwoaWQpKSB7XG4gICAgICAgICAgICAgICAgZ3JhcGhUb1NpZ25hbCA9IHRoaXMuZ3JhcGhzW3RoaXMuZ3JhcGhzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZihncmFwaFRvU2lnbmFsKSB7XG4gICAgICAgICAgICAgICAgZ3JhcGhUb1NpZ25hbC5zaWduYWwoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0VXNlckRldGFpbHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLnVzZXJEZXRhaWxzO1xuICAgIH1cblxuICAgIHJlbW92ZUxvYWRlZEdyYXBoKCkge1xuICAgICAgICBpZiAodGhpcy5ncmFwaHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IGdyYXBoID0gdGhpcy5ncmFwaHNbdGhpcy5ncmFwaHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBsZXQgZ3JhcGhWaWV3cyA9IHRoaXMudmlld3MuZmlsdGVyKCh2aWV3KSA9PiB2aWV3LmdyYXBoSWQgPT09IGdyYXBoLmlkKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBncmFwaFZpZXcgb2YgZ3JhcGhWaWV3cykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VWaWV3KGdyYXBoVmlldy5jb25maWcuaWQsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5ncmFwaHMuc3BsaWNlKDAsIHRoaXMuZ3JhcGhzLmxlbmd0aCk7XG4gICAgICAgICAgICBsZXQgZ3JhcGhIaXN0b3J5ID0gdGhpcy5uYXZIaXN0b3J5LmZpbHRlcigodmlldykgPT4gdmlldy5ncmFwaElkID09PSBncmFwaC5pZCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdyYXBoSGlzdG9yeUVsZW1lbnQgb2YgZ3JhcGhIaXN0b3J5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZIaXN0b3J5LnNwbGljZSh0aGlzLm5hdkhpc3RvcnkuZmluZEluZGV4KChlKSA9PiBlID09PSBncmFwaEhpc3RvcnlFbGVtZW50KSwgMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBncmFwaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRHcmFwaChpc1BhcmVudCwgY29uZmlnLCBwYXJhbWV0ZXJWYWx1ZXMpIHtcbiAgICAgICAgaWYgKGlzUGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdkhpc3Rvcnkuc3BsaWNlKDAsIHRoaXMubmF2SGlzdG9yeS5sZW5ndGgpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0VmlldyBvZiB0aGlzLnZpZXdzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVZpZXcoY29udGV4dFZpZXcuaGFuZGxlLmFwaS5pZCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGdyYXBoID0gbmV3IEdyYXBoKFV0aWxzLnBhcnNlQ29uZmlnKGNvbmZpZykpO1xuICAgICAgICB0aGlzLmdyYXBocy5wdXNoKGdyYXBoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhcmFtZXRlclZhbHVlIG9mIHBhcmFtZXRlclZhbHVlcykge1xuICAgICAgICAgICAgZ3JhcGgubW9kZWxbcGFyYW1ldGVyVmFsdWUubmFtZV0gPSBwYXJhbWV0ZXJWYWx1ZS52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdyYXBoLmluaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIGdldFByZXZpb3VzSGlzdG9yeUVsZW1lbnQgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5hdkhpc3RvcnkubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF2SGlzdG9yeVt0aGlzLm5hdkhpc3RvcnkubGVuZ3RoIC0gMl07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFFQSxJQUFBTSxNQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxtQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQXNELFNBQUFLLHdCQUFBRyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBTCx1QkFBQSxZQUFBQSxD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
|