@agilemotion/oui-react-js 2.0.22 → 2.0.24

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.
@@ -17,7 +17,6 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
17
17
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
18
18
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
19
  const location = window.location.protocol + '//' + window.location.hostname;
20
- let keyCounter = 0;
21
20
 
22
21
  /**
23
22
  * Friendly first name for the welcome banner. The user's first name(s) live on
@@ -45,6 +44,33 @@ const resolveFirstName = () => {
45
44
  return null;
46
45
  };
47
46
 
47
+ /**
48
+ * Whether the signed-in user holds the given role in any of their organisations.
49
+ * Roles live in the stringified `profile` JSON: { organisations: [{ roles }] }.
50
+ * MVP: the dashboard card visibility rule is hardcoded against this; later the
51
+ * default dashboard layout (and which cards to show) will come from an API.
52
+ */
53
+ const userHasRole = role => {
54
+ try {
55
+ const details = _ApplicationManager.default.getUserDetails();
56
+ if (_Utils.default.isNull(details) || _Utils.default.isNull(details.profile)) {
57
+ return false;
58
+ }
59
+ let profile = details.profile;
60
+ if (typeof profile === 'string') {
61
+ profile = JSON.parse(profile);
62
+ }
63
+ const orgs = profile && profile.organisations;
64
+ if (!Array.isArray(orgs)) {
65
+ return false;
66
+ }
67
+ return orgs.some(org => Array.isArray(org.roles) && org.roles.includes(role));
68
+ } catch (e) {
69
+ console.error(e);
70
+ return false;
71
+ }
72
+ };
73
+
48
74
  /**
49
75
  * Resolves a dashboard descriptor (type: "dashboard") to its content view and
50
76
  * renders it inline, mirroring the VIEW-display branch of Dashboard.jsx's
@@ -53,19 +79,33 @@ const resolveFirstName = () => {
53
79
  const EmbeddedView = props => {
54
80
  const [element, setElement] = _react.default.useState(null);
55
81
  const [failed, setFailed] = _react.default.useState(false);
82
+ // One stable, unique view id for this card's lifetime, drawn from the
83
+ // dashboard-lifecycle counter so it never collides with a sibling card.
84
+ const viewIdRef = _react.default.useRef(null);
85
+ if (viewIdRef.current === null) {
86
+ viewIdRef.current = props.allocateViewId();
87
+ }
56
88
  _react.default.useEffect(() => {
89
+ let cancelled = false;
57
90
  const base = location + _ApplicationManager.default.getContextRoot() + _ApplicationManager.default.getUIConfigPath();
58
91
  const descriptorUrl = base + '/dashboard/get?version=1.0&id=' + props.descriptorPath;
59
92
  (0, _RestUtils.sendRequest)(descriptorUrl, descriptor => {
93
+ if (cancelled) return;
60
94
  if (_Utils.default.isNull(descriptor) || _Utils.default.isNull(descriptor.contentPath)) {
61
95
  setFailed(true);
62
96
  return;
63
97
  }
64
98
  const viewUrl = base + '/view/get?version=1.0&id=' + descriptor.contentPath;
65
99
  (0, _RestUtils.sendRequest)(viewUrl, data => {
66
- data.id = data.id + '_' + keyCounter++;
100
+ if (cancelled) return;
101
+ // Clone so we never mutate a (possibly cached) shared response,
102
+ // and stamp a unique-and-stable id for this card instance.
103
+ const config = _objectSpread(_objectSpread({}, data), {}, {
104
+ id: data.id + '_' + viewIdRef.current,
105
+ window: false
106
+ });
67
107
  const dashboardView = {
68
- config: data,
108
+ config: config,
69
109
  parent: false,
70
110
  popUp: false,
71
111
  window: false,
@@ -75,22 +115,26 @@ const EmbeddedView = props => {
75
115
  }
76
116
  }
77
117
  };
78
- dashboardView.config.window = false;
79
118
  _ApplicationManager.default.addDashboardView(dashboardView, descriptor.contentPath);
80
119
  setElement(/*#__PURE__*/_react.default.createElement(_View.View, {
81
- key: data.id,
82
- config: data,
120
+ key: config.id,
121
+ config: config,
83
122
  parameters: [],
84
123
  handle: dashboardView.handle
85
124
  }));
86
125
  }, e => {
126
+ if (cancelled) return;
87
127
  console.error(e);
88
128
  setFailed(true);
89
129
  });
90
130
  }, e => {
131
+ if (cancelled) return;
91
132
  console.error(e);
92
133
  setFailed(true);
93
134
  });
135
+ return () => {
136
+ cancelled = true;
137
+ };
94
138
  }, [props.descriptorPath]);
95
139
  if (failed) {
96
140
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -156,9 +200,24 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
156
200
  };
157
201
  const firstName = _react.default.useMemo(() => resolveFirstName(), []);
158
202
  const greeting = _Utils.default.isNull(firstName) ? 'Welcome back' : "Hi ".concat(firstName, ", welcome back");
203
+
204
+ // MVP rule (hardcoded): the procurement row (Publications / Registrations /
205
+ // Bids) only shows for users with the VENDOR role. This will be driven by
206
+ // the default dashboard settings API later.
207
+ const isVendor = _react.default.useMemo(() => userHasRole('VENDOR'), []);
208
+
209
+ // View-id counter scoped to this dashboard's lifecycle: initiated on load,
210
+ // increments per card as needed. Restarting on each load is safe because we
211
+ // unload every card view on destroy (below), so no stale ids/subscriptions
212
+ // survive to collide with the next load.
213
+ const viewSeq = _react.default.useRef(0);
214
+ const allocateViewId = _react.default.useCallback(() => ++viewSeq.current, []);
159
215
  _react.default.useEffect(() => {
160
216
  return () => {
161
- keyCounter = 0;
217
+ // Unload all dashboard card views on destroy. Without this the event
218
+ // bus keeps their subscriptions and would respond to events for
219
+ // these (now unmounted) views behind the scenes.
220
+ _ApplicationManager.default.clearDashboardViews();
162
221
  };
163
222
  }, []);
164
223
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -194,7 +253,8 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
194
253
  minWidth: 0
195
254
  }
196
255
  }, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
197
- descriptorPath: '/portal/dashboards/my-work-items.json'
256
+ descriptorPath: '/portal/dashboards/my-work-items.json',
257
+ allocateViewId: allocateViewId
198
258
  })), /*#__PURE__*/_react.default.createElement(DashboardPanel, {
199
259
  title: 'Calendar',
200
260
  style: {
@@ -202,8 +262,9 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
202
262
  minWidth: 0
203
263
  }
204
264
  }, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
205
- descriptorPath: '/portal/dashboards/my-calendar.json'
206
- }))), /*#__PURE__*/_react.default.createElement("div", {
265
+ descriptorPath: '/portal/dashboards/my-calendar.json',
266
+ allocateViewId: allocateViewId
267
+ }))), isVendor && /*#__PURE__*/_react.default.createElement("div", {
207
268
  style: {
208
269
  flex: 1,
209
270
  minHeight: 0,
@@ -217,7 +278,8 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
217
278
  minWidth: 0
218
279
  }
219
280
  }, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
220
- descriptorPath: '/portal/dashboards/publications.json'
281
+ descriptorPath: '/portal/dashboards/publications.json',
282
+ allocateViewId: allocateViewId
221
283
  })), /*#__PURE__*/_react.default.createElement(DashboardPanel, {
222
284
  title: 'My Registrations',
223
285
  style: {
@@ -225,7 +287,8 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
225
287
  minWidth: 0
226
288
  }
227
289
  }, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
228
- descriptorPath: '/portal/dashboards/my-registrations.json'
290
+ descriptorPath: '/portal/dashboards/my-registrations.json',
291
+ allocateViewId: allocateViewId
229
292
  })), /*#__PURE__*/_react.default.createElement(DashboardPanel, {
230
293
  title: 'My Bids',
231
294
  style: {
@@ -233,8 +296,9 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
233
296
  minWidth: 0
234
297
  }
235
298
  }, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
236
- descriptorPath: '/portal/dashboards/my-bids.json'
299
+ descriptorPath: '/portal/dashboards/my-bids.json',
300
+ allocateViewId: allocateViewId
237
301
  })))));
238
302
  }));
239
303
  var _default = exports.default = PortalDashboard;
240
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9QYXBlciIsIl9SZXN0VXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX1ZpZXciLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwibG9jYXRpb24iLCJ3aW5kb3ciLCJwcm90b2NvbCIsImhvc3RuYW1lIiwia2V5Q291bnRlciIsInJlc29sdmVGaXJzdE5hbWUiLCJkZXRhaWxzIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0VXNlckRldGFpbHMiLCJVdGlscyIsImlzTnVsbCIsIm5hbWUiLCJjb25jYXQiLCJ0cmltIiwic3BsaXQiLCJ1c2VybmFtZSIsImhhbmRsZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJjb25zb2xlIiwiZXJyb3IiLCJFbWJlZGRlZFZpZXciLCJwcm9wcyIsImVsZW1lbnQiLCJzZXRFbGVtZW50IiwiUmVhY3QiLCJ1c2VTdGF0ZSIsImZhaWxlZCIsInNldEZhaWxlZCIsInVzZUVmZmVjdCIsImJhc2UiLCJnZXRDb250ZXh0Um9vdCIsImdldFVJQ29uZmlnUGF0aCIsImRlc2NyaXB0b3JVcmwiLCJkZXNjcmlwdG9yUGF0aCIsInNlbmRSZXF1ZXN0IiwiZGVzY3JpcHRvciIsImNvbnRlbnRQYXRoIiwidmlld1VybCIsImRhdGEiLCJpZCIsImRhc2hib2FyZFZpZXciLCJjb25maWciLCJwYXJlbnQiLCJwb3BVcCIsImFwaSIsImxvYWRlZCIsImFkZERhc2hib2FyZFZpZXciLCJjcmVhdGVFbGVtZW50IiwiVmlldyIsImtleSIsInBhcmFtZXRlcnMiLCJzdHlsZSIsInBhZGRpbmciLCJjb2xvciIsImZvbnRTaXplIiwiRGFzaGJvYXJkUGFuZWwiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsIndpZHRoIiwiaGVpZ2h0IiwibWluSGVpZ2h0Iiwib3ZlcmZsb3ciLCJib3JkZXJSYWRpdXMiLCJib3hTaGFkb3ciLCJib3hTaXppbmciLCJmb250V2VpZ2h0IiwibWFyZ2luQm90dG9tIiwidGl0bGUiLCJmbGV4IiwiY2hpbGRyZW4iLCJQb3J0YWxEYXNoYm9hcmQiLCJtZW1vIiwiZm9yd2FyZFJlZiIsInJlZiIsImZpcnN0TmFtZSIsInVzZU1lbW8iLCJncmVldGluZyIsIm1hcmdpbiIsImdhcCIsIm1pbldpZHRoIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi92aWV3L1BvcnRhbERhc2hib2FyZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG11aS9tYXRlcmlhbC9QYXBlcic7XG5pbXBvcnQge3NlbmRSZXF1ZXN0fSBmcm9tICcuLi9SZXN0VXRpbHMnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0IHtWaWV3fSBmcm9tICcuLi9jb21wb25lbnRzL2xheW91dC9WaWV3JztcblxuY29uc3QgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuXG5sZXQga2V5Q291bnRlciA9IDA7XG5cbi8qKlxuICogRnJpZW5kbHkgZmlyc3QgbmFtZSBmb3IgdGhlIHdlbGNvbWUgYmFubmVyLiBUaGUgdXNlcidzIGZpcnN0IG5hbWUocykgbGl2ZSBvblxuICogdGhlIGBuYW1lYCBmaWVsZCAoc3VybmFtZSBpcyB0aGUgc2VwYXJhdGUgYHN1cm5hbWVgIGZpZWxkOyBgcHJvZmlsZWAgaXMgb3JnL1xuICogcm9sZSBKU09OLCBub3QgbmFtZSBkYXRhKS4gRmFsbHMgYmFjayB0byB0aGUgdXNlcm5hbWUgbG9jYWwtcGFydCwgZWxzZSBudWxsLlxuICovXG5jb25zdCByZXNvbHZlRmlyc3ROYW1lID0gKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRldGFpbHMgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKTtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChkZXRhaWxzKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuYW1lID0gZGV0YWlscy5uYW1lO1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChuYW1lKSAmJiBgJHtuYW1lfWAudHJpbSgpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9YC50cmltKCkuc3BsaXQoL1xccysvKVswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVzZXJuYW1lID0gZGV0YWlscy51c2VybmFtZTtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwodXNlcm5hbWUpICYmIGAke3VzZXJuYW1lfWAubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGUgPSBgJHt1c2VybmFtZX1gLnNwbGl0KCdAJylbMF07XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgaGFuZGxlLnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBSZXNvbHZlcyBhIGRhc2hib2FyZCBkZXNjcmlwdG9yICh0eXBlOiBcImRhc2hib2FyZFwiKSB0byBpdHMgY29udGVudCB2aWV3IGFuZFxuICogcmVuZGVycyBpdCBpbmxpbmUsIG1pcnJvcmluZyB0aGUgVklFVy1kaXNwbGF5IGJyYW5jaCBvZiBEYXNoYm9hcmQuanN4J3NcbiAqIERhc2hib2FyZENhcmQuIFRoZSBkZXNjcmlwdG9yJ3MgY29udGVudFBhdGggcG9pbnRzIGF0IHRoZSB2aWV3IHRvIGVtYmVkLlxuICovXG5jb25zdCBFbWJlZGRlZFZpZXcgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZWxlbWVudCwgc2V0RWxlbWVudF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbZmFpbGVkLCBzZXRGYWlsZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZSA9IGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VUlDb25maWdQYXRoKCk7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3JVcmwgPSBiYXNlICsgJy9kYXNoYm9hcmQvZ2V0P3ZlcnNpb249MS4wJmlkPScgKyBwcm9wcy5kZXNjcmlwdG9yUGF0aDtcblxuICAgICAgICBzZW5kUmVxdWVzdChkZXNjcmlwdG9yVXJsLCAoZGVzY3JpcHRvcikgPT4ge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChkZXNjcmlwdG9yKSB8fCBVdGlscy5pc051bGwoZGVzY3JpcHRvci5jb250ZW50UGF0aCkpIHtcbiAgICAgICAgICAgICAgICBzZXRGYWlsZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB2aWV3VXJsID0gYmFzZSArICcvdmlldy9nZXQ/dmVyc2lvbj0xLjAmaWQ9JyArIGRlc2NyaXB0b3IuY29udGVudFBhdGg7XG4gICAgICAgICAgICBzZW5kUmVxdWVzdCh2aWV3VXJsLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGRhdGEuaWQgPSBkYXRhLmlkICsgJ18nICsga2V5Q291bnRlcisrO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhc2hib2FyZFZpZXcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcG9wVXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3c6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwaToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogKCkgPT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZGFzaGJvYXJkVmlldy5jb25maWcud2luZG93ID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkRGFzaGJvYXJkVmlldyhkYXNoYm9hcmRWaWV3LCBkZXNjcmlwdG9yLmNvbnRlbnRQYXRoKTtcbiAgICAgICAgICAgICAgICBzZXRFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICA8VmlldyBrZXk9e2RhdGEuaWR9IGNvbmZpZz17ZGF0YX0gcGFyYW1ldGVycz17W119IGhhbmRsZT17ZGFzaGJvYXJkVmlldy5oYW5kbGV9Lz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIHNldEZhaWxlZCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCAoZSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIHNldEZhaWxlZCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW3Byb3BzLmRlc2NyaXB0b3JQYXRoXSk7XG5cbiAgICBpZiAoZmFpbGVkKSB7XG4gICAgICAgIHJldHVybiA8ZGl2IHN0eWxlPXt7cGFkZGluZzogJzE2cHgnLCBjb2xvcjogJyM5YWEzYjEnLCBmb250U2l6ZTogJzEzcHgnfX0+VW5hYmxlIHRvIGxvYWQuPC9kaXY+O1xuICAgIH1cblxuICAgIGlmIChVdGlscy5pc051bGwoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIDxkaXYgc3R5bGU9e3twYWRkaW5nOiAnMTZweCcsIGNvbG9yOiAnIzlhYTNiMScsIGZvbnRTaXplOiAnMTNweCd9fT5Mb2FkaW5n4oCmPC9kaXY+O1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xufTtcblxuLyoqXG4gKiBQYW5lbCB3cmFwcGVyIGdpdmluZyBlYWNoIGVtYmVkZGVkIGNhcmQgYSB0aXRsZWQsIHNjcm9sbGFibGUgZnJhbWUuIEZpbGxzXG4gKiBpdHMgcGFyZW50IHNsb3Q7IGNhbGxlcnMgcGFzcyBgc3R5bGVgIHRvIGNvbnRyb2wgaXRzIGZsZXggc2hhcmUvaGVpZ2h0XG4gKiB3aXRoaW4gdGhlIGdyaWQgY29sdW1ucy5cbiAqL1xuY29uc3QgRGFzaGJvYXJkUGFuZWwgPSAocHJvcHMpID0+IChcbiAgICA8UGFwZXIgc3R5bGU9e3tcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIG1pbkhlaWdodDogMCxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICBib3JkZXJSYWRpdXM6ICc2cHgnLFxuICAgICAgICBib3hTaGFkb3c6ICcwIDFweCAzcHggcmdiYSgyMCwgMzUsIDYwLCAwLjA4KScsXG4gICAgICAgIHBhZGRpbmc6ICcxNnB4JyxcbiAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgIC4uLihwcm9wcy5zdHlsZSB8fCB7fSlcbiAgICB9fT5cbiAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDYwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnIzFhM2M1ZScsXG4gICAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMnB4J1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtwcm9wcy50aXRsZX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIGZsZXg6ICcxIDEgYXV0bycsXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IDAsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nXG4gICAgICAgIH19PlxuICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICA8L1BhcGVyPlxuKTtcblxuY29uc3QgUG9ydGFsRGFzaGJvYXJkID0gUmVhY3QubWVtbyhSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3BvcnRhbC1kYXNoYm9hcmQnO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZSA9IHtcbiAgICAgICAgYXBpOiBhcGlcbiAgICB9O1xuXG4gICAgY29uc3QgZmlyc3ROYW1lID0gUmVhY3QudXNlTWVtbygoKSA9PiByZXNvbHZlRmlyc3ROYW1lKCksIFtdKTtcbiAgICBjb25zdCBncmVldGluZyA9IFV0aWxzLmlzTnVsbChmaXJzdE5hbWUpID8gJ1dlbGNvbWUgYmFjaycgOiBgSGkgJHtmaXJzdE5hbWV9LCB3ZWxjb21lIGJhY2tgO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGtleUNvdW50ZXIgPSAwO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgcmVmPXtyZWZ9IHN0eWxlPXt7cGFkZGluZzogJzE2cHgnLCBib3hTaXppbmc6ICdib3JkZXItYm94J319PlxuICAgICAgICAgICAgPHAgc3R5bGU9e3tmb250U2l6ZTogJzI0cHgnLCBtYXJnaW46ICcwIDAgMTJweCA0cHgnLCBjb2xvcjogJyMxYTNjNWUnfX0+e2dyZWV0aW5nfTwvcD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgZ2FwOiAnMTBweCcsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDBkdmggLSB2YXIoLS1oZWFkZXItaCwgNjRweCkgLSAxMDBweCknXG4gICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICB7LyogUm93IDEg4oCUIE15IFRhc2tzIC8gQ2FsZW5kYXIgKDIgY29sdW1ucykgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAnMTBweCdcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnTXkgVGFza3MnfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LXdvcmstaXRlbXMuanNvbid9Lz5cbiAgICAgICAgICAgICAgICAgICAgPC9EYXNoYm9hcmRQYW5lbD5cbiAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnQ2FsZW5kYXInfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LWNhbGVuZGFyLmpzb24nfS8+XG4gICAgICAgICAgICAgICAgICAgIDwvRGFzaGJvYXJkUGFuZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgey8qIFJvdyAyIOKAlCBQdWJsaWNhdGlvbnMgLyBNeSBSZWdpc3RyYXRpb25zIC8gTXkgQmlkcyAoMyBjb2x1bW5zKSAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDEsXG4gICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogMCxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICBnYXA6ICcxMHB4J1xuICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICA8RGFzaGJvYXJkUGFuZWwgdGl0bGU9eydQdWJsaWNhdGlvbnMnfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL3B1YmxpY2F0aW9ucy5qc29uJ30vPlxuICAgICAgICAgICAgICAgICAgICA8L0Rhc2hib2FyZFBhbmVsPlxuICAgICAgICAgICAgICAgICAgICA8RGFzaGJvYXJkUGFuZWwgdGl0bGU9eydNeSBSZWdpc3RyYXRpb25zJ30gc3R5bGU9e3tmbGV4OiAxLCBtaW5XaWR0aDogMH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEVtYmVkZGVkVmlldyBkZXNjcmlwdG9yUGF0aD17Jy9wb3J0YWwvZGFzaGJvYXJkcy9teS1yZWdpc3RyYXRpb25zLmpzb24nfS8+XG4gICAgICAgICAgICAgICAgICAgIDwvRGFzaGJvYXJkUGFuZWw+XG4gICAgICAgICAgICAgICAgICAgIDxEYXNoYm9hcmRQYW5lbCB0aXRsZT17J015IEJpZHMnfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LWJpZHMuanNvbid9Lz5cbiAgICAgICAgICAgICAgICAgICAgPC9EYXNoYm9hcmRQYW5lbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSkpO1xuXG5leHBvcnQgZGVmYXVsdCBQb3J0YWxEYXNoYm9hcmQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLG1CQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFM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
304
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9QYXBlciIsIl9SZXN0VXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX1ZpZXciLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwibG9jYXRpb24iLCJ3aW5kb3ciLCJwcm90b2NvbCIsImhvc3RuYW1lIiwicmVzb2x2ZUZpcnN0TmFtZSIsImRldGFpbHMiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRVc2VyRGV0YWlscyIsIlV0aWxzIiwiaXNOdWxsIiwibmFtZSIsImNvbmNhdCIsInRyaW0iLCJzcGxpdCIsInVzZXJuYW1lIiwiaGFuZGxlIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImNvbnNvbGUiLCJlcnJvciIsInVzZXJIYXNSb2xlIiwicm9sZSIsInByb2ZpbGUiLCJKU09OIiwicGFyc2UiLCJvcmdzIiwib3JnYW5pc2F0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsInNvbWUiLCJvcmciLCJyb2xlcyIsImluY2x1ZGVzIiwiRW1iZWRkZWRWaWV3IiwicHJvcHMiLCJlbGVtZW50Iiwic2V0RWxlbWVudCIsIlJlYWN0IiwidXNlU3RhdGUiLCJmYWlsZWQiLCJzZXRGYWlsZWQiLCJ2aWV3SWRSZWYiLCJ1c2VSZWYiLCJjdXJyZW50IiwiYWxsb2NhdGVWaWV3SWQiLCJ1c2VFZmZlY3QiLCJjYW5jZWxsZWQiLCJiYXNlIiwiZ2V0Q29udGV4dFJvb3QiLCJnZXRVSUNvbmZpZ1BhdGgiLCJkZXNjcmlwdG9yVXJsIiwiZGVzY3JpcHRvclBhdGgiLCJzZW5kUmVxdWVzdCIsImRlc2NyaXB0b3IiLCJjb250ZW50UGF0aCIsInZpZXdVcmwiLCJkYXRhIiwiY29uZmlnIiwiaWQiLCJkYXNoYm9hcmRWaWV3IiwicGFyZW50IiwicG9wVXAiLCJhcGkiLCJsb2FkZWQiLCJhZGREYXNoYm9hcmRWaWV3IiwiY3JlYXRlRWxlbWVudCIsIlZpZXciLCJrZXkiLCJwYXJhbWV0ZXJzIiwic3R5bGUiLCJwYWRkaW5nIiwiY29sb3IiLCJmb250U2l6ZSIsIkRhc2hib2FyZFBhbmVsIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJ3aWR0aCIsImhlaWdodCIsIm1pbkhlaWdodCIsIm92ZXJmbG93IiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYm94U2l6aW5nIiwiZm9udFdlaWdodCIsIm1hcmdpbkJvdHRvbSIsInRpdGxlIiwiZmxleCIsImNoaWxkcmVuIiwiUG9ydGFsRGFzaGJvYXJkIiwibWVtbyIsImZvcndhcmRSZWYiLCJyZWYiLCJmaXJzdE5hbWUiLCJ1c2VNZW1vIiwiZ3JlZXRpbmciLCJpc1ZlbmRvciIsInZpZXdTZXEiLCJ1c2VDYWxsYmFjayIsImNsZWFyRGFzaGJvYXJkVmlld3MiLCJtYXJnaW4iLCJnYXAiLCJtaW5XaWR0aCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdmlldy9Qb3J0YWxEYXNoYm9hcmQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IFBhcGVyIGZyb20gJ0BtdWkvbWF0ZXJpYWwvUGFwZXInO1xuaW1wb3J0IHtzZW5kUmVxdWVzdH0gZnJvbSAnLi4vUmVzdFV0aWxzJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCB7Vmlld30gZnJvbSAnLi4vY29tcG9uZW50cy9sYXlvdXQvVmlldyc7XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcblxuLyoqXG4gKiBGcmllbmRseSBmaXJzdCBuYW1lIGZvciB0aGUgd2VsY29tZSBiYW5uZXIuIFRoZSB1c2VyJ3MgZmlyc3QgbmFtZShzKSBsaXZlIG9uXG4gKiB0aGUgYG5hbWVgIGZpZWxkIChzdXJuYW1lIGlzIHRoZSBzZXBhcmF0ZSBgc3VybmFtZWAgZmllbGQ7IGBwcm9maWxlYCBpcyBvcmcvXG4gKiByb2xlIEpTT04sIG5vdCBuYW1lIGRhdGEpLiBGYWxscyBiYWNrIHRvIHRoZSB1c2VybmFtZSBsb2NhbC1wYXJ0LCBlbHNlIG51bGwuXG4gKi9cbmNvbnN0IHJlc29sdmVGaXJzdE5hbWUgPSAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGV0YWlscyA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpO1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGRldGFpbHMpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5hbWUgPSBkZXRhaWxzLm5hbWU7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG5hbWUpICYmIGAke25hbWV9YC50cmltKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7bmFtZX1gLnRyaW0oKS5zcGxpdCgvXFxzKy8pWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXNlcm5hbWUgPSBkZXRhaWxzLnVzZXJuYW1lO1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh1c2VybmFtZSkgJiYgYCR7dXNlcm5hbWV9YC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZSA9IGAke3VzZXJuYW1lfWAuc3BsaXQoJ0AnKVswXTtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBoYW5kbGUuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIFdoZXRoZXIgdGhlIHNpZ25lZC1pbiB1c2VyIGhvbGRzIHRoZSBnaXZlbiByb2xlIGluIGFueSBvZiB0aGVpciBvcmdhbmlzYXRpb25zLlxuICogUm9sZXMgbGl2ZSBpbiB0aGUgc3RyaW5naWZpZWQgYHByb2ZpbGVgIEpTT046IHsgb3JnYW5pc2F0aW9uczogW3sgcm9sZXMgfV0gfS5cbiAqIE1WUDogdGhlIGRhc2hib2FyZCBjYXJkIHZpc2liaWxpdHkgcnVsZSBpcyBoYXJkY29kZWQgYWdhaW5zdCB0aGlzOyBsYXRlciB0aGVcbiAqIGRlZmF1bHQgZGFzaGJvYXJkIGxheW91dCAoYW5kIHdoaWNoIGNhcmRzIHRvIHNob3cpIHdpbGwgY29tZSBmcm9tIGFuIEFQSS5cbiAqL1xuY29uc3QgdXNlckhhc1JvbGUgPSAocm9sZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRldGFpbHMgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKTtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChkZXRhaWxzKSB8fCBVdGlscy5pc051bGwoZGV0YWlscy5wcm9maWxlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb2ZpbGUgPSBkZXRhaWxzLnByb2ZpbGU7XG4gICAgICAgIGlmICh0eXBlb2YgcHJvZmlsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHByb2ZpbGUgPSBKU09OLnBhcnNlKHByb2ZpbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JncyA9IHByb2ZpbGUgJiYgcHJvZmlsZS5vcmdhbmlzYXRpb25zO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkob3JncykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcmdzLnNvbWUoKG9yZykgPT4gQXJyYXkuaXNBcnJheShvcmcucm9sZXMpICYmIG9yZy5yb2xlcy5pbmNsdWRlcyhyb2xlKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcblxuLyoqXG4gKiBSZXNvbHZlcyBhIGRhc2hib2FyZCBkZXNjcmlwdG9yICh0eXBlOiBcImRhc2hib2FyZFwiKSB0byBpdHMgY29udGVudCB2aWV3IGFuZFxuICogcmVuZGVycyBpdCBpbmxpbmUsIG1pcnJvcmluZyB0aGUgVklFVy1kaXNwbGF5IGJyYW5jaCBvZiBEYXNoYm9hcmQuanN4J3NcbiAqIERhc2hib2FyZENhcmQuIFRoZSBkZXNjcmlwdG9yJ3MgY29udGVudFBhdGggcG9pbnRzIGF0IHRoZSB2aWV3IHRvIGVtYmVkLlxuICovXG5jb25zdCBFbWJlZGRlZFZpZXcgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZWxlbWVudCwgc2V0RWxlbWVudF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbZmFpbGVkLCBzZXRGYWlsZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIC8vIE9uZSBzdGFibGUsIHVuaXF1ZSB2aWV3IGlkIGZvciB0aGlzIGNhcmQncyBsaWZldGltZSwgZHJhd24gZnJvbSB0aGVcbiAgICAvLyBkYXNoYm9hcmQtbGlmZWN5Y2xlIGNvdW50ZXIgc28gaXQgbmV2ZXIgY29sbGlkZXMgd2l0aCBhIHNpYmxpbmcgY2FyZC5cbiAgICBjb25zdCB2aWV3SWRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgaWYgKHZpZXdJZFJlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIHZpZXdJZFJlZi5jdXJyZW50ID0gcHJvcHMuYWxsb2NhdGVWaWV3SWQoKTtcbiAgICB9XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGJhc2UgPSBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVJQ29uZmlnUGF0aCgpO1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yVXJsID0gYmFzZSArICcvZGFzaGJvYXJkL2dldD92ZXJzaW9uPTEuMCZpZD0nICsgcHJvcHMuZGVzY3JpcHRvclBhdGg7XG5cbiAgICAgICAgc2VuZFJlcXVlc3QoZGVzY3JpcHRvclVybCwgKGRlc2NyaXB0b3IpID0+IHtcbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZGVzY3JpcHRvcikgfHwgVXRpbHMuaXNOdWxsKGRlc2NyaXB0b3IuY29udGVudFBhdGgpKSB7XG4gICAgICAgICAgICAgICAgc2V0RmFpbGVkKHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgdmlld1VybCA9IGJhc2UgKyAnL3ZpZXcvZ2V0P3ZlcnNpb249MS4wJmlkPScgKyBkZXNjcmlwdG9yLmNvbnRlbnRQYXRoO1xuICAgICAgICAgICAgc2VuZFJlcXVlc3Qodmlld1VybCwgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2FuY2VsbGVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgLy8gQ2xvbmUgc28gd2UgbmV2ZXIgbXV0YXRlIGEgKHBvc3NpYmx5IGNhY2hlZCkgc2hhcmVkIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIC8vIGFuZCBzdGFtcCBhIHVuaXF1ZS1hbmQtc3RhYmxlIGlkIGZvciB0aGlzIGNhcmQgaW5zdGFuY2UuXG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gey4uLmRhdGEsIGlkOiBkYXRhLmlkICsgJ18nICsgdmlld0lkUmVmLmN1cnJlbnQsIHdpbmRvdzogZmFsc2V9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhc2hib2FyZFZpZXcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBwb3BVcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBpOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiAoKSA9PiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5hZGREYXNoYm9hcmRWaWV3KGRhc2hib2FyZFZpZXcsIGRlc2NyaXB0b3IuY29udGVudFBhdGgpO1xuICAgICAgICAgICAgICAgIHNldEVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIDxWaWV3IGtleT17Y29uZmlnLmlkfSBjb25maWc9e2NvbmZpZ30gcGFyYW1ldGVycz17W119IGhhbmRsZT17ZGFzaGJvYXJkVmlldy5oYW5kbGV9Lz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2FuY2VsbGVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICBzZXRGYWlsZWQodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICBzZXRGYWlsZWQodHJ1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICB9O1xuICAgIH0sIFtwcm9wcy5kZXNjcmlwdG9yUGF0aF0pO1xuXG4gICAgaWYgKGZhaWxlZCkge1xuICAgICAgICByZXR1cm4gPGRpdiBzdHlsZT17e3BhZGRpbmc6ICcxNnB4JywgY29sb3I6ICcjOWFhM2IxJywgZm9udFNpemU6ICcxM3B4J319PlVuYWJsZSB0byBsb2FkLjwvZGl2PjtcbiAgICB9XG5cbiAgICBpZiAoVXRpbHMuaXNOdWxsKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiA8ZGl2IHN0eWxlPXt7cGFkZGluZzogJzE2cHgnLCBjb2xvcjogJyM5YWEzYjEnLCBmb250U2l6ZTogJzEzcHgnfX0+TG9hZGluZ+KApjwvZGl2PjtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudDtcbn07XG5cbi8qKlxuICogUGFuZWwgd3JhcHBlciBnaXZpbmcgZWFjaCBlbWJlZGRlZCBjYXJkIGEgdGl0bGVkLCBzY3JvbGxhYmxlIGZyYW1lLiBGaWxsc1xuICogaXRzIHBhcmVudCBzbG90OyBjYWxsZXJzIHBhc3MgYHN0eWxlYCB0byBjb250cm9sIGl0cyBmbGV4IHNoYXJlL2hlaWdodFxuICogd2l0aGluIHRoZSBncmlkIGNvbHVtbnMuXG4gKi9cbmNvbnN0IERhc2hib2FyZFBhbmVsID0gKHByb3BzKSA9PiAoXG4gICAgPFBhcGVyIHN0eWxlPXt7XG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICBtaW5IZWlnaHQ6IDAsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAnNnB4JyxcbiAgICAgICAgYm94U2hhZG93OiAnMCAxcHggM3B4IHJnYmEoMjAsIDM1LCA2MCwgMC4wOCknLFxuICAgICAgICBwYWRkaW5nOiAnMTZweCcsXG4gICAgICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgICAgICAuLi4ocHJvcHMuc3R5bGUgfHwge30pXG4gICAgfX0+XG4gICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgICAgICAgICBmb250V2VpZ2h0OiA2MDAsXG4gICAgICAgICAgICBjb2xvcjogJyMxYTNjNWUnLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTJweCdcbiAgICAgICAgfX0+XG4gICAgICAgICAgICB7cHJvcHMudGl0bGV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICBmbGV4OiAnMSAxIGF1dG8nLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiAwLFxuICAgICAgICAgICAgb3ZlcmZsb3c6ICdhdXRvJ1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9QYXBlcj5cbik7XG5cbmNvbnN0IFBvcnRhbERhc2hib2FyZCA9IFJlYWN0Lm1lbW8oUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IGFwaSA9IHtcbiAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgcmV0dXJuICdwb3J0YWwtZGFzaGJvYXJkJztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGUgPSB7XG4gICAgICAgIGFwaTogYXBpXG4gICAgfTtcblxuICAgIGNvbnN0IGZpcnN0TmFtZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gcmVzb2x2ZUZpcnN0TmFtZSgpLCBbXSk7XG4gICAgY29uc3QgZ3JlZXRpbmcgPSBVdGlscy5pc051bGwoZmlyc3ROYW1lKSA/ICdXZWxjb21lIGJhY2snIDogYEhpICR7Zmlyc3ROYW1lfSwgd2VsY29tZSBiYWNrYDtcblxuICAgIC8vIE1WUCBydWxlIChoYXJkY29kZWQpOiB0aGUgcHJvY3VyZW1lbnQgcm93IChQdWJsaWNhdGlvbnMgLyBSZWdpc3RyYXRpb25zIC9cbiAgICAvLyBCaWRzKSBvbmx5IHNob3dzIGZvciB1c2VycyB3aXRoIHRoZSBWRU5ET1Igcm9sZS4gVGhpcyB3aWxsIGJlIGRyaXZlbiBieVxuICAgIC8vIHRoZSBkZWZhdWx0IGRhc2hib2FyZCBzZXR0aW5ncyBBUEkgbGF0ZXIuXG4gICAgY29uc3QgaXNWZW5kb3IgPSBSZWFjdC51c2VNZW1vKCgpID0+IHVzZXJIYXNSb2xlKCdWRU5ET1InKSwgW10pO1xuXG4gICAgLy8gVmlldy1pZCBjb3VudGVyIHNjb3BlZCB0byB0aGlzIGRhc2hib2FyZCdzIGxpZmVjeWNsZTogaW5pdGlhdGVkIG9uIGxvYWQsXG4gICAgLy8gaW5jcmVtZW50cyBwZXIgY2FyZCBhcyBuZWVkZWQuIFJlc3RhcnRpbmcgb24gZWFjaCBsb2FkIGlzIHNhZmUgYmVjYXVzZSB3ZVxuICAgIC8vIHVubG9hZCBldmVyeSBjYXJkIHZpZXcgb24gZGVzdHJveSAoYmVsb3cpLCBzbyBubyBzdGFsZSBpZHMvc3Vic2NyaXB0aW9uc1xuICAgIC8vIHN1cnZpdmUgdG8gY29sbGlkZSB3aXRoIHRoZSBuZXh0IGxvYWQuXG4gICAgY29uc3Qgdmlld1NlcSA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICBjb25zdCBhbGxvY2F0ZVZpZXdJZCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+ICsrdmlld1NlcS5jdXJyZW50LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgLy8gVW5sb2FkIGFsbCBkYXNoYm9hcmQgY2FyZCB2aWV3cyBvbiBkZXN0cm95LiBXaXRob3V0IHRoaXMgdGhlIGV2ZW50XG4gICAgICAgICAgICAvLyBidXMga2VlcHMgdGhlaXIgc3Vic2NyaXB0aW9ucyBhbmQgd291bGQgcmVzcG9uZCB0byBldmVudHMgZm9yXG4gICAgICAgICAgICAvLyB0aGVzZSAobm93IHVubW91bnRlZCkgdmlld3MgYmVoaW5kIHRoZSBzY2VuZXMuXG4gICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXJEYXNoYm9hcmRWaWV3cygpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgcmVmPXtyZWZ9IHN0eWxlPXt7cGFkZGluZzogJzE2cHgnLCBib3hTaXppbmc6ICdib3JkZXItYm94J319PlxuICAgICAgICAgICAgPHAgc3R5bGU9e3tmb250U2l6ZTogJzI0cHgnLCBtYXJnaW46ICcwIDAgMTJweCA0cHgnLCBjb2xvcjogJyMxYTNjNWUnfX0+e2dyZWV0aW5nfTwvcD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgZ2FwOiAnMTBweCcsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDBkdmggLSB2YXIoLS1oZWFkZXItaCwgNjRweCkgLSAxMDBweCknXG4gICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICB7LyogUm93IDEg4oCUIE15IFRhc2tzIC8gQ2FsZW5kYXIgKDIgY29sdW1ucykgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAnMTBweCdcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnTXkgVGFza3MnfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LXdvcmstaXRlbXMuanNvbid9IGFsbG9jYXRlVmlld0lkPXthbGxvY2F0ZVZpZXdJZH0vPlxuICAgICAgICAgICAgICAgICAgICA8L0Rhc2hib2FyZFBhbmVsPlxuICAgICAgICAgICAgICAgICAgICA8RGFzaGJvYXJkUGFuZWwgdGl0bGU9eydDYWxlbmRhcid9IHN0eWxlPXt7ZmxleDogMSwgbWluV2lkdGg6IDB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxFbWJlZGRlZFZpZXcgZGVzY3JpcHRvclBhdGg9eycvcG9ydGFsL2Rhc2hib2FyZHMvbXktY2FsZW5kYXIuanNvbid9IGFsbG9jYXRlVmlld0lkPXthbGxvY2F0ZVZpZXdJZH0vPlxuICAgICAgICAgICAgICAgICAgICA8L0Rhc2hib2FyZFBhbmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHsvKiBSb3cgMiDigJQgUHVibGljYXRpb25zIC8gTXkgUmVnaXN0cmF0aW9ucyAvIE15IEJpZHMgKDMgY29sdW1ucykuXG4gICAgICAgICAgICAgICAgICAgIE9ubHkgcmVuZGVyZWQgZm9yIFZFTkRPUiB1c2VycyAoTVZQIGhhcmRjb2RlZCBydWxlKS4gKi99XG4gICAgICAgICAgICAgICAge2lzVmVuZG9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJzEwcHgnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnUHVibGljYXRpb25zJ30gc3R5bGU9e3tmbGV4OiAxLCBtaW5XaWR0aDogMH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFbWJlZGRlZFZpZXcgZGVzY3JpcHRvclBhdGg9eycvcG9ydGFsL2Rhc2hib2FyZHMvcHVibGljYXRpb25zLmpzb24nfSBhbGxvY2F0ZVZpZXdJZD17YWxsb2NhdGVWaWV3SWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRGFzaGJvYXJkUGFuZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RGFzaGJvYXJkUGFuZWwgdGl0bGU9eydNeSBSZWdpc3RyYXRpb25zJ30gc3R5bGU9e3tmbGV4OiAxLCBtaW5XaWR0aDogMH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFbWJlZGRlZFZpZXcgZGVzY3JpcHRvclBhdGg9eycvcG9ydGFsL2Rhc2hib2FyZHMvbXktcmVnaXN0cmF0aW9ucy5qc29uJ30gYWxsb2NhdGVWaWV3SWQ9e2FsbG9jYXRlVmlld0lkfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Rhc2hib2FyZFBhbmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnTXkgQmlkcyd9IHN0eWxlPXt7ZmxleDogMSwgbWluV2lkdGg6IDB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LWJpZHMuanNvbid9IGFsbG9jYXRlVmlld0lkPXthbGxvY2F0ZVZpZXdJZH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9EYXNoYm9hcmRQYW5lbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSkpO1xuXG5leHBvcnQgZGVmYXVsdCBQb3J0YWxEYXNoYm9hcmQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLG1CQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFMLE9BQUE7QUFBK0MsU0FBQUQsdUJBQUFPLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxRQUFBSCxDQUFBLEVBQUFJLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVAsQ0FBQSxPQUFBTSxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBUixDQUFBLEdBQUFJLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFYLENBQUEsRUFBQUksQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFB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
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agilemotion/oui-react-js",
3
- "version": "2.0.22",
3
+ "version": "2.0.24",
4
4
  "description": "AgileMotion React UI Component Library - A comprehensive collection of dashboard components, forms, media controls, and more",
5
5
  "license": "ISC",
6
6
  "author": "",