easy-file-system 5.0.45 → 5.0.49

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.
Files changed (50) hide show
  1. package/lib/button/toggle.js +42 -164
  2. package/lib/constants.js +6 -6
  3. package/lib/customEventTypes.js +9 -9
  4. package/lib/div/item/entry/drag/directoryName.js +24 -122
  5. package/lib/div/item/entry/drag/fileName.js +15 -112
  6. package/lib/div/item/entry/drag.js +19 -120
  7. package/lib/div/item/entry/marker.js +10 -107
  8. package/lib/div/item/entry.js +25 -187
  9. package/lib/entryTypes.js +5 -5
  10. package/lib/example/preamble.js +2 -2
  11. package/lib/example/view/button.js +12 -23
  12. package/lib/example/view/explorer/first.js +20 -120
  13. package/lib/example/view/explorer/second.js +17 -117
  14. package/lib/example/view/rubbishBin.js +10 -88
  15. package/lib/example/view.js +88 -233
  16. package/lib/example.js +6 -6
  17. package/lib/explorer.js +393 -740
  18. package/lib/index.js +17 -17
  19. package/lib/item/entry/drag/directoryName.js +130 -289
  20. package/lib/item/entry/drag/fileName.js +61 -182
  21. package/lib/item/entry/drag.js +179 -375
  22. package/lib/item/entry/marker/directoryName.js +20 -117
  23. package/lib/item/entry/marker/fileName.js +21 -118
  24. package/lib/item/entry/marker.js +13 -110
  25. package/lib/item/entry.js +54 -249
  26. package/lib/list/entries.js +464 -808
  27. package/lib/mixins/dragEntryItem.js +19 -19
  28. package/lib/mixins/explorer.js +28 -28
  29. package/lib/mixins/nameSpan.js +12 -12
  30. package/lib/mixins/rubbishBin.js +8 -8
  31. package/lib/rubbishBin.js +180 -415
  32. package/lib/span/name.js +93 -262
  33. package/lib/styles.js +14 -14
  34. package/lib/svg/directoryName.js +31 -142
  35. package/lib/svg/fileName.js +32 -143
  36. package/lib/svg/marker.js +25 -136
  37. package/lib/svg/rubbishBin/closed.js +48 -163
  38. package/lib/svg/rubbishBin/open.js +52 -167
  39. package/lib/svg/toggle/down.js +29 -145
  40. package/lib/svg/toggle/up.js +30 -146
  41. package/lib/svg.js +12 -149
  42. package/lib/utilities/name.js +12 -12
  43. package/lib/utilities/path.js +5 -5
  44. package/lib/utilities/pathMap.js +7 -7
  45. package/package.json +8 -4
  46. package/.aiignore +0 -14
  47. package/.swcrc +0 -11
  48. package/bin/main.js +0 -15
  49. package/example.js +0 -41953
  50. package/index.html +0 -46
@@ -8,396 +8,200 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
- var _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
- var _easydraganddrop = require("easy-drag-and-drop");
13
- var _name = /*#__PURE__*/ _interop_require_default(require("../../span/name"));
14
- var _entry = /*#__PURE__*/ _interop_require_default(require("../../item/entry"));
15
- var _constants = require("../../constants");
16
- var _entryTypes = require("../../entryTypes");
17
- var _pathMap = require("../../utilities/pathMap");
18
- function _assert_this_initialized(self) {
19
- if (self === void 0) {
20
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
21
- }
22
- return self;
23
- }
24
- function _call_super(_this, derived, args) {
25
- derived = _get_prototype_of(derived);
26
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
27
- }
28
- function _class_call_check(instance, Constructor) {
29
- if (!(instance instanceof Constructor)) {
30
- throw new TypeError("Cannot call a class as a function");
31
- }
32
- }
33
- function _defineProperties(target, props) {
34
- for(var i = 0; i < props.length; i++){
35
- var descriptor = props[i];
36
- descriptor.enumerable = descriptor.enumerable || false;
37
- descriptor.configurable = true;
38
- if ("value" in descriptor) descriptor.writable = true;
39
- Object.defineProperty(target, descriptor.key, descriptor);
40
- }
41
- }
42
- function _create_class(Constructor, protoProps, staticProps) {
43
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
44
- if (staticProps) _defineProperties(Constructor, staticProps);
45
- return Constructor;
46
- }
47
- function _define_property(obj, key, value) {
48
- if (key in obj) {
49
- Object.defineProperty(obj, key, {
50
- value: value,
51
- enumerable: true,
52
- configurable: true,
53
- writable: true
54
- });
55
- } else {
56
- obj[key] = value;
57
- }
58
- return obj;
59
- }
60
- function _get_prototype_of(o) {
61
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
62
- return o.__proto__ || Object.getPrototypeOf(o);
63
- };
64
- return _get_prototype_of(o);
65
- }
66
- function _inherits(subClass, superClass) {
67
- if (typeof superClass !== "function" && superClass !== null) {
68
- throw new TypeError("Super expression must either be null or a function");
69
- }
70
- subClass.prototype = Object.create(superClass && superClass.prototype, {
71
- constructor: {
72
- value: subClass,
73
- writable: true,
74
- configurable: true
75
- }
76
- });
77
- if (superClass) _set_prototype_of(subClass, superClass);
78
- }
11
+ const _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
+ const _easydraganddrop = require("easy-drag-and-drop");
13
+ const _name = /*#__PURE__*/ _interop_require_default(require("../../span/name"));
14
+ const _entry = /*#__PURE__*/ _interop_require_default(require("../../item/entry"));
15
+ const _constants = require("../../constants");
16
+ const _entryTypes = require("../../entryTypes");
17
+ const _pathMap = require("../../utilities/pathMap");
79
18
  function _interop_require_default(obj) {
80
19
  return obj && obj.__esModule ? obj : {
81
20
  default: obj
82
21
  };
83
22
  }
84
- function _object_spread(target) {
85
- for(var i = 1; i < arguments.length; i++){
86
- var source = arguments[i] != null ? arguments[i] : {};
87
- var ownKeys = Object.keys(source);
88
- if (typeof Object.getOwnPropertySymbols === "function") {
89
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
90
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
91
- }));
23
+ class DragEntryItem extends _entry.default {
24
+ nameSpanChangeCustomHandler = (event, element)=>{
25
+ const created = this.isCreated(), explorer = this.getExplorer(), nameSpanName = this.getNameSpanName();
26
+ explorer.enable();
27
+ if (nameSpanName === _constants.PERIOD || nameSpanName === _constants.EMPTY_STRING) {
28
+ this.cancel(created);
29
+ return;
92
30
  }
93
- ownKeys.forEach(function(key) {
94
- _define_property(target, key, source[key]);
95
- });
96
- }
97
- return target;
98
- }
99
- function ownKeys(object, enumerableOnly) {
100
- var keys = Object.keys(object);
101
- if (Object.getOwnPropertySymbols) {
102
- var symbols = Object.getOwnPropertySymbols(object);
103
- if (enumerableOnly) {
104
- symbols = symbols.filter(function(sym) {
105
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
31
+ const dragEntryItem = this; ///
32
+ if (created) {
33
+ explorer.createDragEntryItem(event, element, dragEntryItem, ()=>{
34
+ ///
106
35
  });
36
+ } else {
37
+ explorer.renameDragEntryItem(event, element, dragEntryItem, ()=>{
38
+ ///
39
+ });
40
+ }
41
+ };
42
+ nameSpanCancelCustomHandler = (event, element)=>{
43
+ const created = this.isCreated(), explorer = this.getExplorer();
44
+ explorer.enable();
45
+ this.cancel(created);
46
+ };
47
+ startDragCustomHandler = (event, element)=>{
48
+ const path = this.getPath(), type = this.getType(), explorer = this.getExplorer(), dragEntryItemType = type, markerEntryItemPath = path; ///
49
+ explorer.addMarker(markerEntryItemPath, dragEntryItemType);
50
+ };
51
+ stopDragCustomHandler = (event, element, dropElement, aborted, done)=>{
52
+ if (dropElement !== null) {
53
+ done();
54
+ return;
107
55
  }
108
- keys.push.apply(keys, symbols);
56
+ const markerEntryItem = this.retrieveMarkerEntryItem(), markerEntryItemExplorer = markerEntryItem.getExplorer();
57
+ if (aborted) {
58
+ markerEntryItemExplorer.removeMarker();
59
+ done();
60
+ return;
61
+ }
62
+ const dragEntryItem = this; ///
63
+ markerEntryItemExplorer.dropDragEntryItem(event, element, dragEntryItem, done);
64
+ };
65
+ click(event, element) {
66
+ const explorer = this.getExplorer(), dragEntryItem = this, selected = explorer.selectOrDeselectDragEntryItem(event, element, dragEntryItem);
67
+ return selected;
109
68
  }
110
- return keys;
111
- }
112
- function _object_spread_props(target, source) {
113
- source = source != null ? source : {};
114
- if (Object.getOwnPropertyDescriptors) {
115
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
116
- } else {
117
- ownKeys(Object(source)).forEach(function(key) {
118
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
69
+ isReadOnly() {
70
+ const { readOnly } = this.properties;
71
+ return readOnly;
72
+ }
73
+ getReferences() {
74
+ const explorer = this.getExplorer(), references = explorer.getReferences();
75
+ return references;
76
+ }
77
+ getPathMap(sourceEntryPath, targetEntryPath) {
78
+ const name = this.getName(), readOnly = this.isReadOnly(), collapsed = this.isCollapsed(), nameSpanName = this.getNameSpanName(), entryDirectory = this.isEntryDirectory();
79
+ sourceEntryPath = (0, _pathMap.adjustSourceEntryPath)(sourceEntryPath, name); ///
80
+ targetEntryPath = (0, _pathMap.adjustTargetEntryPath)(targetEntryPath, nameSpanName); ///
81
+ const pathMap = {
82
+ readOnly,
83
+ collapsed,
84
+ entryDirectory,
85
+ sourceEntryPath,
86
+ targetEntryPath
87
+ };
88
+ return pathMap;
89
+ }
90
+ getPathMaps(sourceEntryPath, targetEntryPath) {
91
+ let pathMaps = [];
92
+ this.retrievePathMaps(sourceEntryPath, targetEntryPath, pathMaps);
93
+ pathMaps.reverse();
94
+ return pathMaps;
95
+ }
96
+ isEntryDirectory() {
97
+ const directoryNameDragEntryItem = this.isDirectoryNameDragEntryItem(), entryDirectory = directoryNameDragEntryItem; ///
98
+ return entryDirectory;
99
+ }
100
+ retrieveMarkerEntryItem() {
101
+ const markerEntryItem = getMarkerEntryItem();
102
+ return markerEntryItem;
103
+ }
104
+ isDirectoryNameDragEntryItem() {
105
+ const type = this.getType(), typeDirectoryNameDragEntryItemType = type === _entryTypes.DIRECTORY_NAME_DRAG_ENTRY_TYPE, directoryNameDragEntryItem = typeDirectoryNameDragEntryItemType; ///
106
+ return directoryNameDragEntryItem;
107
+ }
108
+ setCreated(created) {
109
+ this.updateState({
110
+ created
119
111
  });
120
112
  }
121
- return target;
122
- }
123
- function _possible_constructor_return(self, call) {
124
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
125
- return call;
113
+ isCreated() {
114
+ const { created } = this.getState();
115
+ return created;
126
116
  }
127
- return _assert_this_initialized(self);
128
- }
129
- function _set_prototype_of(o, p) {
130
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
131
- o.__proto__ = p;
132
- return o;
133
- };
134
- return _set_prototype_of(o, p);
135
- }
136
- function _tagged_template_literal(strings, raw) {
137
- if (!raw) {
138
- raw = strings.slice(0);
117
+ isSelected() {
118
+ const selected = this.hasClass("selected"); ///
119
+ return selected;
120
+ }
121
+ deselect() {
122
+ this.removeClass("selected");
123
+ }
124
+ select() {
125
+ this.addClass("selected");
126
+ }
127
+ create() {
128
+ const created = true, explorer = this.getExplorer(), nameSpanName = _constants.EMPTY_STRING; ///
129
+ explorer.disable();
130
+ this.setCreated(created);
131
+ this.setNameSpanName(nameSpanName);
132
+ this.editNameSpan();
133
+ }
134
+ rename() {
135
+ const name = this.getName(), created = false, explorer = this.getExplorer(), nameSpanName = name; ///
136
+ explorer.disable();
137
+ this.setCreated(created);
138
+ this.setNameSpanName(nameSpanName);
139
+ this.editNameSpan();
140
+ }
141
+ reset() {
142
+ const name = this.getName(), nameSpanName = name; ///
143
+ this.setNameSpanName(nameSpanName);
144
+ this.resetNameSpan();
145
+ }
146
+ cancel(created) {
147
+ created ? this.removeFromExplorer() : this.reset();
139
148
  }
140
- return Object.freeze(Object.defineProperties(strings, {
141
- raw: {
142
- value: Object.freeze(raw)
149
+ didMount() {
150
+ const explorer = this.getExplorer(), disabled = explorer.isDisabled();
151
+ if (!disabled) {
152
+ this.enableDrag();
143
153
  }
144
- }));
145
- }
146
- function _type_of(obj) {
147
- "@swc/helpers - typeof";
148
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
149
- }
150
- function _is_native_reflect_construct() {
151
- try {
152
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
153
- } catch (_) {}
154
- return (_is_native_reflect_construct = function() {
155
- return !!result;
156
- })();
157
- }
158
- function _templateObject() {
159
- var data = _tagged_template_literal([
160
- "\n\n user-select: none;\n \n font-weight: normal;\n \n .selected {\n font-weight: bold;\n }\n\n .dragging {\n z-index: 1;\n position: fixed;\n pointer-events: none;\n }\n \n"
161
- ]);
162
- _templateObject = function _templateObject() {
163
- return data;
164
- };
165
- return data;
166
- }
167
- var DragEntryItem = /*#__PURE__*/ function(EntryItem) {
168
- _inherits(DragEntryItem, EntryItem);
169
- function DragEntryItem() {
170
- _class_call_check(this, DragEntryItem);
171
- var _this;
172
- _this = _call_super(this, DragEntryItem, arguments), _define_property(_this, "nameSpanChangeCustomHandler", function(event, element) {
173
- var created = _this.isCreated(), explorer = _this.getExplorer(), nameSpanName = _this.getNameSpanName();
174
- explorer.enable();
175
- if (nameSpanName === _constants.PERIOD || nameSpanName === _constants.EMPTY_STRING) {
176
- _this.cancel(created);
177
- return;
178
- }
179
- var dragEntryItem = _this; ///
180
- if (created) {
181
- explorer.createDragEntryItem(event, element, dragEntryItem, function() {
182
- ///
183
- });
184
- } else {
185
- explorer.renameDragEntryItem(event, element, dragEntryItem, function() {
186
- ///
187
- });
188
- }
189
- }), _define_property(_this, "nameSpanCancelCustomHandler", function(event, element) {
190
- var created = _this.isCreated(), explorer = _this.getExplorer();
191
- explorer.enable();
192
- _this.cancel(created);
193
- }), _define_property(_this, "startDragCustomHandler", function(event, element) {
194
- var path = _this.getPath(), type = _this.getType(), explorer = _this.getExplorer(), dragEntryItemType = type, markerEntryItemPath = path; ///
195
- explorer.addMarker(markerEntryItemPath, dragEntryItemType);
196
- }), _define_property(_this, "stopDragCustomHandler", function(event, element, dropElement, aborted, done) {
197
- if (dropElement !== null) {
198
- done();
199
- return;
200
- }
201
- var markerEntryItem = _this.retrieveMarkerEntryItem(), markerEntryItemExplorer = markerEntryItem.getExplorer();
202
- if (aborted) {
203
- markerEntryItemExplorer.removeMarker();
204
- done();
205
- return;
206
- }
207
- var dragEntryItem = _this; ///
208
- markerEntryItemExplorer.dropDragEntryItem(event, element, dragEntryItem, done);
209
- });
210
- return _this;
154
+ this.onCustomStopDrag(this.stopDragCustomHandler);
155
+ this.onCustomStartDrag(this.startDragCustomHandler);
156
+ this.onCustomNameSpanChange(this.nameSpanChangeCustomHandler);
157
+ this.onCustomNameSpanCancel(this.nameSpanCancelCustomHandler);
211
158
  }
212
- _create_class(DragEntryItem, [
213
- {
214
- key: "click",
215
- value: function click(event, element) {
216
- var explorer = this.getExplorer(), dragEntryItem = this, selected = explorer.selectOrDeselectDragEntryItem(event, element, dragEntryItem);
217
- return selected;
218
- }
219
- },
220
- {
221
- key: "isReadOnly",
222
- value: function isReadOnly() {
223
- var readOnly = this.properties.readOnly;
224
- return readOnly;
225
- }
226
- },
227
- {
228
- key: "getReferences",
229
- value: function getReferences() {
230
- var explorer = this.getExplorer(), references = explorer.getReferences();
231
- return references;
232
- }
233
- },
234
- {
235
- key: "getPathMap",
236
- value: function getPathMap(sourceEntryPath, targetEntryPath) {
237
- var name = this.getName(), readOnly = this.isReadOnly(), collapsed = this.isCollapsed(), nameSpanName = this.getNameSpanName(), entryDirectory = this.isEntryDirectory();
238
- sourceEntryPath = (0, _pathMap.adjustSourceEntryPath)(sourceEntryPath, name); ///
239
- targetEntryPath = (0, _pathMap.adjustTargetEntryPath)(targetEntryPath, nameSpanName); ///
240
- var pathMap = {
241
- readOnly: readOnly,
242
- collapsed: collapsed,
243
- entryDirectory: entryDirectory,
244
- sourceEntryPath: sourceEntryPath,
245
- targetEntryPath: targetEntryPath
246
- };
247
- return pathMap;
248
- }
249
- },
250
- {
251
- key: "getPathMaps",
252
- value: function getPathMaps(sourceEntryPath, targetEntryPath) {
253
- var pathMaps = [];
254
- this.retrievePathMaps(sourceEntryPath, targetEntryPath, pathMaps);
255
- pathMaps.reverse();
256
- return pathMaps;
257
- }
258
- },
259
- {
260
- key: "isEntryDirectory",
261
- value: function isEntryDirectory() {
262
- var directoryNameDragEntryItem = this.isDirectoryNameDragEntryItem(), entryDirectory = directoryNameDragEntryItem; ///
263
- return entryDirectory;
264
- }
265
- },
266
- {
267
- key: "retrieveMarkerEntryItem",
268
- value: function retrieveMarkerEntryItem() {
269
- var markerEntryItem = getMarkerEntryItem();
270
- return markerEntryItem;
271
- }
272
- },
273
- {
274
- key: "isDirectoryNameDragEntryItem",
275
- value: function isDirectoryNameDragEntryItem() {
276
- var type = this.getType(), typeDirectoryNameDragEntryItemType = type === _entryTypes.DIRECTORY_NAME_DRAG_ENTRY_TYPE, directoryNameDragEntryItem = typeDirectoryNameDragEntryItemType; ///
277
- return directoryNameDragEntryItem;
278
- }
279
- },
280
- {
281
- key: "setCreated",
282
- value: function setCreated(created) {
283
- this.updateState({
284
- created: created
285
- });
286
- }
287
- },
288
- {
289
- key: "isCreated",
290
- value: function isCreated() {
291
- var created = this.getState().created;
292
- return created;
293
- }
294
- },
295
- {
296
- key: "isSelected",
297
- value: function isSelected() {
298
- var selected = this.hasClass("selected"); ///
299
- return selected;
300
- }
301
- },
302
- {
303
- key: "deselect",
304
- value: function deselect() {
305
- this.removeClass("selected");
306
- }
307
- },
308
- {
309
- key: "select",
310
- value: function select() {
311
- this.addClass("selected");
312
- }
313
- },
314
- {
315
- key: "create",
316
- value: function create() {
317
- var created = true, explorer = this.getExplorer(), nameSpanName = _constants.EMPTY_STRING; ///
318
- explorer.disable();
319
- this.setCreated(created);
320
- this.setNameSpanName(nameSpanName);
321
- this.editNameSpan();
322
- }
323
- },
324
- {
325
- key: "rename",
326
- value: function rename() {
327
- var name = this.getName(), created = false, explorer = this.getExplorer(), nameSpanName = name; ///
328
- explorer.disable();
329
- this.setCreated(created);
330
- this.setNameSpanName(nameSpanName);
331
- this.editNameSpan();
332
- }
333
- },
334
- {
335
- key: "reset",
336
- value: function reset() {
337
- var name = this.getName(), nameSpanName = name; ///
338
- this.setNameSpanName(nameSpanName);
339
- this.resetNameSpan();
340
- }
341
- },
342
- {
343
- key: "cancel",
344
- value: function cancel(created) {
345
- created ? this.removeFromExplorer() : this.reset();
346
- }
347
- },
348
- {
349
- key: "didMount",
350
- value: function didMount() {
351
- var explorer = this.getExplorer(), disabled = explorer.isDisabled();
352
- if (!disabled) {
353
- this.enableDrag();
354
- }
355
- this.onCustomStopDrag(this.stopDragCustomHandler);
356
- this.onCustomStartDrag(this.startDragCustomHandler);
357
- this.onCustomNameSpanChange(this.nameSpanChangeCustomHandler);
358
- this.onCustomNameSpanCancel(this.nameSpanCancelCustomHandler);
359
- }
360
- },
361
- {
362
- key: "willUnmount",
363
- value: function willUnmount() {
364
- var explorer = this.getExplorer(), disabled = explorer.isDisabled();
365
- if (!disabled) {
366
- this.disableDrag();
367
- }
368
- this.offCustomStopDrag(this.stopDragCustomHandler);
369
- this.offCustomStartDrag(this.startDragCustomHandler);
370
- this.offCustomNameSpanChange(this.nameSpanChangeCustomHandler);
371
- this.offCustomNameSpanCancel(this.nameSpanCancelCustomHandler);
372
- }
373
- },
374
- {
375
- key: "parentContext",
376
- value: function parentContext() {
377
- var context = this.getContext(), select = this.select.bind(this), deselect = this.deselect.bind(this);
378
- return _object_spread_props(_object_spread({}, context), {
379
- select: select,
380
- deselect: deselect
381
- });
382
- }
383
- },
384
- {
385
- key: "initialise",
386
- value: function initialise() {
387
- this.assignContext();
388
- }
159
+ willUnmount() {
160
+ const explorer = this.getExplorer(), disabled = explorer.isDisabled();
161
+ if (!disabled) {
162
+ this.disableDrag();
389
163
  }
390
- ]);
391
- return DragEntryItem;
392
- }(_entry.default);
393
- _define_property(DragEntryItem, "NameSpan", _name.default);
394
- _define_property(DragEntryItem, "ignoredProperties", [
395
- "readOnly"
396
- ]);
397
- _define_property(DragEntryItem, "defaultProperties", {
398
- className: "drag"
399
- });
164
+ this.offCustomStopDrag(this.stopDragCustomHandler);
165
+ this.offCustomStartDrag(this.startDragCustomHandler);
166
+ this.offCustomNameSpanChange(this.nameSpanChangeCustomHandler);
167
+ this.offCustomNameSpanCancel(this.nameSpanCancelCustomHandler);
168
+ }
169
+ parentContext() {
170
+ const context = this.getContext(), select = this.select.bind(this), deselect = this.deselect.bind(this);
171
+ return {
172
+ ...context,
173
+ select,
174
+ deselect
175
+ };
176
+ }
177
+ initialise() {
178
+ this.assignContext();
179
+ }
180
+ static NameSpan = _name.default;
181
+ static ignoredProperties = [
182
+ "readOnly"
183
+ ];
184
+ static defaultProperties = {
185
+ className: "drag"
186
+ };
187
+ }
400
188
  Object.assign(_entry.default.prototype, _easydraganddrop.dragMixins);
401
- var _default = (0, _easywithstyle.default)(DragEntryItem)(_templateObject());
189
+ const _default = (0, _easywithstyle.default)(DragEntryItem)`
190
+
191
+ user-select: none;
192
+
193
+ font-weight: normal;
194
+
195
+ .selected {
196
+ font-weight: bold;
197
+ }
198
+
199
+ .dragging {
200
+ z-index: 1;
201
+ position: fixed;
202
+ pointer-events: none;
203
+ }
204
+
205
+ `;
402
206
 
403
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pdGVtL2VudHJ5L2RyYWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IGRyYWdNaXhpbnMgfSBmcm9tIFwiZWFzeS1kcmFnLWFuZC1kcm9wXCI7XG5cbmltcG9ydCBOYW1lU3BhbiBmcm9tIFwiLi4vLi4vc3Bhbi9uYW1lXCI7XG5pbXBvcnQgRW50cnlJdGVtIGZyb20gXCIuLi8uLi9pdGVtL2VudHJ5XCI7XG5cbmltcG9ydCB7IFBFUklPRCwgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFIH0gZnJvbSBcIi4uLy4uL2VudHJ5VHlwZXNcIjtcbmltcG9ydCB7IGFkanVzdFNvdXJjZUVudHJ5UGF0aCwgYWRqdXN0VGFyZ2V0RW50cnlQYXRoIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9wYXRoTWFwXCI7XG5cbmNsYXNzIERyYWdFbnRyeUl0ZW0gZXh0ZW5kcyBFbnRyeUl0ZW0ge1xuICBuYW1lU3BhbkNoYW5nZUN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjcmVhdGVkID0gdGhpcy5pc0NyZWF0ZWQoKSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBuYW1lU3Bhbk5hbWUgPSB0aGlzLmdldE5hbWVTcGFuTmFtZSgpO1xuXG4gICAgZXhwbG9yZXIuZW5hYmxlKCk7XG5cbiAgICBpZiAoKG5hbWVTcGFuTmFtZSA9PT0gUEVSSU9EKSB8fCAobmFtZVNwYW5OYW1lID09PSBFTVBUWV9TVFJJTkcpKSB7XG4gICAgICB0aGlzLmNhbmNlbChjcmVhdGVkKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYWdFbnRyeUl0ZW0gPSB0aGlzOyAvLy9cblxuICAgIGlmIChjcmVhdGVkKSB7XG4gICAgICBleHBsb3Jlci5jcmVhdGVEcmFnRW50cnlJdGVtKGV2ZW50LCBlbGVtZW50LCBkcmFnRW50cnlJdGVtLCAoKSA9PiB7XG4gICAgICAgIC8vL1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cGxvcmVyLnJlbmFtZURyYWdFbnRyeUl0ZW0oZXZlbnQsIGVsZW1lbnQsIGRyYWdFbnRyeUl0ZW0sICgpID0+IHtcbiAgICAgICAgLy8vXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuYW1lU3BhbkNhbmNlbEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjcmVhdGVkID0gdGhpcy5pc0NyZWF0ZWQoKSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKTtcblxuICAgIGV4cGxvcmVyLmVuYWJsZSgpO1xuXG4gICAgdGhpcy5jYW5jZWwoY3JlYXRlZCk7XG4gIH1cblxuICBzdGFydERyYWdDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aCgpLFxuICAgICAgICAgIHR5cGUgPSB0aGlzLmdldFR5cGUoKSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBkcmFnRW50cnlJdGVtVHlwZSA9IHR5cGUsICAvLy9cbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW1QYXRoID0gcGF0aDsgIC8vL1xuXG4gICAgZXhwbG9yZXIuYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKTtcbiAgfVxuXG4gIHN0b3BEcmFnQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZHJvcEVsZW1lbnQsIGFib3J0ZWQsIGRvbmUpID0+IHtcbiAgICBpZiAoZHJvcEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGRvbmUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbSA9IHRoaXMucmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSxcbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IG1hcmtlckVudHJ5SXRlbS5nZXRFeHBsb3JlcigpO1xuXG4gICAgaWYgKGFib3J0ZWQpIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLnJlbW92ZU1hcmtlcigpO1xuXG4gICAgICBkb25lKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcmFnRW50cnlJdGVtID0gdGhpczsgIC8vL1xuXG4gICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIuZHJvcERyYWdFbnRyeUl0ZW0oZXZlbnQsIGVsZW1lbnQsIGRyYWdFbnRyeUl0ZW0sIGRvbmUpO1xuICB9XG5cbiAgY2xpY2soZXZlbnQsIGVsZW1lbnQpIHtcbiAgICBjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBkcmFnRW50cnlJdGVtID0gdGhpcywgLy8vXG4gICAgICAgICAgc2VsZWN0ZWQgPSBleHBsb3Jlci5zZWxlY3RPckRlc2VsZWN0RHJhZ0VudHJ5SXRlbShldmVudCwgZWxlbWVudCwgZHJhZ0VudHJ5SXRlbSk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gIH1cblxuICBpc1JlYWRPbmx5KCkge1xuICAgIGNvbnN0IHsgcmVhZE9ubHkgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIHJldHVybiByZWFkT25seTtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZXMoKSB7XG4gICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgcmVmZXJlbmNlcyA9IGV4cGxvcmVyLmdldFJlZmVyZW5jZXMoKTtcblxuICAgIHJldHVybiByZWZlcmVuY2VzO1xuICB9XG5cbiAgZ2V0UGF0aE1hcChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldE5hbWUoKSxcbiAgICAgICAgICByZWFkT25seSA9IHRoaXMuaXNSZWFkT25seSgpLFxuICAgICAgICAgIGNvbGxhcHNlZCA9IHRoaXMuaXNDb2xsYXBzZWQoKSxcbiAgICAgICAgICBuYW1lU3Bhbk5hbWUgPSB0aGlzLmdldE5hbWVTcGFuTmFtZSgpLFxuICAgICAgICAgIGVudHJ5RGlyZWN0b3J5ID0gdGhpcy5pc0VudHJ5RGlyZWN0b3J5KCk7XG5cbiAgICBzb3VyY2VFbnRyeVBhdGggPSBhZGp1c3RTb3VyY2VFbnRyeVBhdGgoc291cmNlRW50cnlQYXRoLCBuYW1lKTtcdC8vL1xuXG4gICAgdGFyZ2V0RW50cnlQYXRoID0gYWRqdXN0VGFyZ2V0RW50cnlQYXRoKHRhcmdldEVudHJ5UGF0aCwgbmFtZVNwYW5OYW1lKTtcdC8vL1xuXG4gICAgY29uc3QgcGF0aE1hcCA9IHtcbiAgICAgIHJlYWRPbmx5LFxuICAgICAgY29sbGFwc2VkLFxuICAgICAgZW50cnlEaXJlY3RvcnksXG4gICAgICBzb3VyY2VFbnRyeVBhdGgsXG4gICAgICB0YXJnZXRFbnRyeVBhdGhcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBhdGhNYXA7XG4gIH1cblxuICBnZXRQYXRoTWFwcyhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkge1xuICAgIGxldCBwYXRoTWFwcyA9IFtdO1xuXG4gICAgdGhpcy5yZXRyaWV2ZVBhdGhNYXBzKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwYXRoTWFwcyk7XG5cbiAgICBwYXRoTWFwcy5yZXZlcnNlKCk7XG5cbiAgICByZXR1cm4gcGF0aE1hcHM7XG4gIH1cblxuICBpc0VudHJ5RGlyZWN0b3J5KCkge1xuICAgIGNvbnN0IGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5pc0RpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKCksXG4gICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbTsgIC8vL1xuXG4gICAgcmV0dXJuIGVudHJ5RGlyZWN0b3J5O1xuICB9XG5cbiAgcmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtID0gZ2V0TWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtO1xuICB9XG5cbiAgaXNEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSgpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtVHlwZSA9ICh0eXBlID09PSBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUpLFxuICAgICAgICAgIGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdHlwZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtVHlwZTsgIC8vL1xuXG4gICAgcmV0dXJuIGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtO1xuICB9XG5cbiAgc2V0Q3JlYXRlZChjcmVhdGVkKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBjcmVhdGVkXG4gICAgfSk7XG4gIH1cblxuICBpc0NyZWF0ZWQoKSB7XG4gICAgY29uc3QgeyBjcmVhdGVkIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmhhc0NsYXNzKFwic2VsZWN0ZWRcIik7IC8vL1xuXG4gICAgcmV0dXJuIHNlbGVjdGVkO1xuICB9XG5cbiAgZGVzZWxlY3QoKSB7XG4gICAgdGhpcy5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICB9XG5cbiAgc2VsZWN0KCkge1xuICAgIHRoaXMuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgfVxuXG4gIGNyZWF0ZSgpIHtcbiAgICBjb25zdCBjcmVhdGVkID0gdHJ1ZSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBuYW1lU3Bhbk5hbWUgPSBFTVBUWV9TVFJJTkc7IC8vL1xuXG4gICAgZXhwbG9yZXIuZGlzYWJsZSgpO1xuXG4gICAgdGhpcy5zZXRDcmVhdGVkKGNyZWF0ZWQpO1xuXG4gICAgdGhpcy5zZXROYW1lU3Bhbk5hbWUobmFtZVNwYW5OYW1lKTtcblxuICAgIHRoaXMuZWRpdE5hbWVTcGFuKCk7XG4gIH1cblxuICByZW5hbWUoKSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgIGNyZWF0ZWQgPSBmYWxzZSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBuYW1lU3Bhbk5hbWUgPSBuYW1lOyAvLy9cblxuICAgIGV4cGxvcmVyLmRpc2FibGUoKTtcblxuICAgIHRoaXMuc2V0Q3JlYXRlZChjcmVhdGVkKTtcblxuICAgIHRoaXMuc2V0TmFtZVNwYW5OYW1lKG5hbWVTcGFuTmFtZSk7XG5cbiAgICB0aGlzLmVkaXROYW1lU3BhbigpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgIG5hbWVTcGFuTmFtZSA9IG5hbWU7IC8vL1xuXG4gICAgdGhpcy5zZXROYW1lU3Bhbk5hbWUobmFtZVNwYW5OYW1lKTtcblxuICAgIHRoaXMucmVzZXROYW1lU3BhbigpO1xuICB9XG5cbiAgY2FuY2VsKGNyZWF0ZWQpIHtcbiAgICBjcmVhdGVkID9cbiAgICAgIHRoaXMucmVtb3ZlRnJvbUV4cGxvcmVyKCkgOlxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gIH1cblxuICBkaWRNb3VudCgpIHtcbiAgICBjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBkaXNhYmxlZCA9IGV4cGxvcmVyLmlzRGlzYWJsZWQoKTtcblxuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZW5hYmxlRHJhZygpO1xuICAgIH1cblxuICAgIHRoaXMub25DdXN0b21TdG9wRHJhZyh0aGlzLnN0b3BEcmFnQ3VzdG9tSGFuZGxlcik7XG5cbiAgICB0aGlzLm9uQ3VzdG9tU3RhcnREcmFnKHRoaXMuc3RhcnREcmFnQ3VzdG9tSGFuZGxlcik7XG5cbiAgICB0aGlzLm9uQ3VzdG9tTmFtZVNwYW5DaGFuZ2UodGhpcy5uYW1lU3BhbkNoYW5nZUN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vbkN1c3RvbU5hbWVTcGFuQ2FuY2VsKHRoaXMubmFtZVNwYW5DYW5jZWxDdXN0b21IYW5kbGVyKTtcblx0fVxuXG5cdHdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuICAgICAgICAgIGRpc2FibGVkID0gZXhwbG9yZXIuaXNEaXNhYmxlZCgpO1xuXG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgdGhpcy5kaXNhYmxlRHJhZygpO1xuICAgIH1cblxuICAgIHRoaXMub2ZmQ3VzdG9tU3RvcERyYWcodGhpcy5zdG9wRHJhZ0N1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21TdGFydERyYWcodGhpcy5zdGFydERyYWdDdXN0b21IYW5kbGVyKTtcblxuICAgIHRoaXMub2ZmQ3VzdG9tTmFtZVNwYW5DaGFuZ2UodGhpcy5uYW1lU3BhbkNoYW5nZUN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21OYW1lU3BhbkNhbmNlbCh0aGlzLm5hbWVTcGFuQ2FuY2VsQ3VzdG9tSGFuZGxlcik7XG5cdH1cblxuICBwYXJlbnRDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzZWxlY3QgPSB0aGlzLnNlbGVjdC5iaW5kKHRoaXMpLFxuICAgICAgICAgIGRlc2VsZWN0ID0gdGhpcy5kZXNlbGVjdC5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuICh7XG4gICAgICAuLi5jb250ZXh0LFxuICAgICAgc2VsZWN0LFxuICAgICAgZGVzZWxlY3RcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG5cdFx0dGhpcy5hc3NpZ25Db250ZXh0KCk7XG5cdH1cblxuICBzdGF0aWMgTmFtZVNwYW4gPSBOYW1lU3BhbjtcblxuICBzdGF0aWMgaWdub3JlZFByb3BlcnRpZXMgPSBbXG4gICAgXCJyZWFkT25seVwiXG4gIF07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuXHRcdGNsYXNzTmFtZTogXCJkcmFnXCJcblx0fTtcbn1cblxuT2JqZWN0LmFzc2lnbihFbnRyeUl0ZW0ucHJvdG90eXBlLCBkcmFnTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKERyYWdFbnRyeUl0ZW0pYFxuXG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAgIFxuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBcbiAgLnNlbGVjdGVkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5kcmFnZ2luZyB7XG4gICAgei1pbmRleDogMTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgXG5gO1xuIl0sIm5hbWVzIjpbIkRyYWdFbnRyeUl0ZW0iLCJuYW1lU3BhbkNoYW5nZUN1c3RvbUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJjcmVhdGVkIiwiaXNDcmVhdGVkIiwiZXhwbG9yZXIiLCJnZXRFeHBsb3JlciIsIm5hbWVTcGFuTmFtZSIsImdldE5hbWVTcGFuTmFtZSIsImVuYWJsZSIsIlBFUklPRCIsIkVNUFRZX1NUUklORyIsImNhbmNlbCIsImRyYWdFbnRyeUl0ZW0iLCJjcmVhdGVEcmFnRW50cnlJdGVtIiwicmVuYW1lRHJhZ0VudHJ5SXRlbSIsIm5hbWVTcGFuQ2FuY2VsQ3VzdG9tSGFuZGxlciIsInN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXIiLCJwYXRoIiwiZ2V0UGF0aCIsInR5cGUiLCJnZXRUeXBlIiwiZHJhZ0VudHJ5SXRlbVR5cGUiLCJtYXJrZXJFbnRyeUl0ZW1QYXRoIiwiYWRkTWFya2VyIiwic3RvcERyYWdDdXN0b21IYW5kbGVyIiwiZHJvcEVsZW1lbnQiLCJhYm9ydGVkIiwiZG9uZSIsIm1hcmtlckVudHJ5SXRlbSIsInJldHJpZXZlTWFya2VyRW50cnlJdGVtIiwibWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJyZW1vdmVNYXJrZXIiLCJkcm9wRHJhZ0VudHJ5SXRlbSIsImNsaWNrIiwic2VsZWN0ZWQiLCJzZWxlY3RPckRlc2VsZWN0RHJhZ0VudHJ5SXRlbSIsImlzUmVhZE9ubHkiLCJyZWFkT25seSIsInByb3BlcnRpZXMiLCJnZXRSZWZlcmVuY2VzIiwicmVmZXJlbmNlcyIsImdldFBhdGhNYXAiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJuYW1lIiwiZ2V0TmFtZSIsImNvbGxhcHNlZCIsImlzQ29sbGFwc2VkIiwiZW50cnlEaXJlY3RvcnkiLCJpc0VudHJ5RGlyZWN0b3J5IiwiYWRqdXN0U291cmNlRW50cnlQYXRoIiwiYWRqdXN0VGFyZ2V0RW50cnlQYXRoIiwicGF0aE1hcCIsImdldFBhdGhNYXBzIiwicGF0aE1hcHMiLCJyZXRyaWV2ZVBhdGhNYXBzIiwicmV2ZXJzZSIsImRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtIiwiaXNEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsImdldE1hcmtlckVudHJ5SXRlbSIsInR5cGVEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbVR5cGUiLCJESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUiLCJzZXRDcmVhdGVkIiwidXBkYXRlU3RhdGUiLCJnZXRTdGF0ZSIsImlzU2VsZWN0ZWQiLCJoYXNDbGFzcyIsImRlc2VsZWN0IiwicmVtb3ZlQ2xhc3MiLCJzZWxlY3QiLCJhZGRDbGFzcyIsImNyZWF0ZSIsImRpc2FibGUiLCJzZXROYW1lU3Bhbk5hbWUiLCJlZGl0TmFtZVNwYW4iLCJyZW5hbWUiLCJyZXNldCIsInJlc2V0TmFtZVNwYW4iLCJyZW1vdmVGcm9tRXhwbG9yZXIiLCJkaWRNb3VudCIsImRpc2FibGVkIiwiaXNEaXNhYmxlZCIsImVuYWJsZURyYWciLCJvbkN1c3RvbVN0b3BEcmFnIiwib25DdXN0b21TdGFydERyYWciLCJvbkN1c3RvbU5hbWVTcGFuQ2hhbmdlIiwib25DdXN0b21OYW1lU3BhbkNhbmNlbCIsIndpbGxVbm1vdW50IiwiZGlzYWJsZURyYWciLCJvZmZDdXN0b21TdG9wRHJhZyIsIm9mZkN1c3RvbVN0YXJ0RHJhZyIsIm9mZkN1c3RvbU5hbWVTcGFuQ2hhbmdlIiwib2ZmQ3VzdG9tTmFtZVNwYW5DYW5jZWwiLCJwYXJlbnRDb250ZXh0IiwiY29udGV4dCIsImdldENvbnRleHQiLCJiaW5kIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJFbnRyeUl0ZW0iLCJOYW1lU3BhbiIsImlnbm9yZWRQcm9wZXJ0aWVzIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJkcmFnTWl4aW5zIiwid2l0aFN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpU0E7OztlQUFBOzs7b0VBL1JzQjsrQkFFSzsyREFFTjs0REFDQzt5QkFFZTswQkFDVTt1QkFDYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdELElBQUEsQUFBTUEsOEJBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBOztnQkFBTixrQkFBTUEsMkJBQ0pDLHdCQUFBQSwrQkFBOEIsU0FBQ0MsT0FBT0M7WUFDcEMsSUFBTUMsVUFBVSxNQUFLQyxT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
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pdGVtL2VudHJ5L2RyYWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IGRyYWdNaXhpbnMgfSBmcm9tIFwiZWFzeS1kcmFnLWFuZC1kcm9wXCI7XG5cbmltcG9ydCBOYW1lU3BhbiBmcm9tIFwiLi4vLi4vc3Bhbi9uYW1lXCI7XG5pbXBvcnQgRW50cnlJdGVtIGZyb20gXCIuLi8uLi9pdGVtL2VudHJ5XCI7XG5cbmltcG9ydCB7IFBFUklPRCwgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFIH0gZnJvbSBcIi4uLy4uL2VudHJ5VHlwZXNcIjtcbmltcG9ydCB7IGFkanVzdFNvdXJjZUVudHJ5UGF0aCwgYWRqdXN0VGFyZ2V0RW50cnlQYXRoIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9wYXRoTWFwXCI7XG5cbmNsYXNzIERyYWdFbnRyeUl0ZW0gZXh0ZW5kcyBFbnRyeUl0ZW0ge1xuICBuYW1lU3BhbkNoYW5nZUN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjcmVhdGVkID0gdGhpcy5pc0NyZWF0ZWQoKSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBuYW1lU3Bhbk5hbWUgPSB0aGlzLmdldE5hbWVTcGFuTmFtZSgpO1xuXG4gICAgZXhwbG9yZXIuZW5hYmxlKCk7XG5cbiAgICBpZiAoKG5hbWVTcGFuTmFtZSA9PT0gUEVSSU9EKSB8fCAobmFtZVNwYW5OYW1lID09PSBFTVBUWV9TVFJJTkcpKSB7XG4gICAgICB0aGlzLmNhbmNlbChjcmVhdGVkKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYWdFbnRyeUl0ZW0gPSB0aGlzOyAvLy9cblxuICAgIGlmIChjcmVhdGVkKSB7XG4gICAgICBleHBsb3Jlci5jcmVhdGVEcmFnRW50cnlJdGVtKGV2ZW50LCBlbGVtZW50LCBkcmFnRW50cnlJdGVtLCAoKSA9PiB7XG4gICAgICAgIC8vL1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cGxvcmVyLnJlbmFtZURyYWdFbnRyeUl0ZW0oZXZlbnQsIGVsZW1lbnQsIGRyYWdFbnRyeUl0ZW0sICgpID0+IHtcbiAgICAgICAgLy8vXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuYW1lU3BhbkNhbmNlbEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjcmVhdGVkID0gdGhpcy5pc0NyZWF0ZWQoKSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKTtcblxuICAgIGV4cGxvcmVyLmVuYWJsZSgpO1xuXG4gICAgdGhpcy5jYW5jZWwoY3JlYXRlZCk7XG4gIH1cblxuICBzdGFydERyYWdDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aCgpLFxuICAgICAgICAgIHR5cGUgPSB0aGlzLmdldFR5cGUoKSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBkcmFnRW50cnlJdGVtVHlwZSA9IHR5cGUsICAvLy9cbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW1QYXRoID0gcGF0aDsgIC8vL1xuXG4gICAgZXhwbG9yZXIuYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKTtcbiAgfVxuXG4gIHN0b3BEcmFnQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZHJvcEVsZW1lbnQsIGFib3J0ZWQsIGRvbmUpID0+IHtcbiAgICBpZiAoZHJvcEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGRvbmUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbSA9IHRoaXMucmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSxcbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IG1hcmtlckVudHJ5SXRlbS5nZXRFeHBsb3JlcigpO1xuXG4gICAgaWYgKGFib3J0ZWQpIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLnJlbW92ZU1hcmtlcigpO1xuXG4gICAgICBkb25lKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcmFnRW50cnlJdGVtID0gdGhpczsgIC8vL1xuXG4gICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIuZHJvcERyYWdFbnRyeUl0ZW0oZXZlbnQsIGVsZW1lbnQsIGRyYWdFbnRyeUl0ZW0sIGRvbmUpO1xuICB9XG5cbiAgY2xpY2soZXZlbnQsIGVsZW1lbnQpIHtcbiAgICBjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBkcmFnRW50cnlJdGVtID0gdGhpcywgLy8vXG4gICAgICAgICAgc2VsZWN0ZWQgPSBleHBsb3Jlci5zZWxlY3RPckRlc2VsZWN0RHJhZ0VudHJ5SXRlbShldmVudCwgZWxlbWVudCwgZHJhZ0VudHJ5SXRlbSk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gIH1cblxuICBpc1JlYWRPbmx5KCkge1xuICAgIGNvbnN0IHsgcmVhZE9ubHkgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIHJldHVybiByZWFkT25seTtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZXMoKSB7XG4gICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgcmVmZXJlbmNlcyA9IGV4cGxvcmVyLmdldFJlZmVyZW5jZXMoKTtcblxuICAgIHJldHVybiByZWZlcmVuY2VzO1xuICB9XG5cbiAgZ2V0UGF0aE1hcChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldE5hbWUoKSxcbiAgICAgICAgICByZWFkT25seSA9IHRoaXMuaXNSZWFkT25seSgpLFxuICAgICAgICAgIGNvbGxhcHNlZCA9IHRoaXMuaXNDb2xsYXBzZWQoKSxcbiAgICAgICAgICBuYW1lU3Bhbk5hbWUgPSB0aGlzLmdldE5hbWVTcGFuTmFtZSgpLFxuICAgICAgICAgIGVudHJ5RGlyZWN0b3J5ID0gdGhpcy5pc0VudHJ5RGlyZWN0b3J5KCk7XG5cbiAgICBzb3VyY2VFbnRyeVBhdGggPSBhZGp1c3RTb3VyY2VFbnRyeVBhdGgoc291cmNlRW50cnlQYXRoLCBuYW1lKTtcdC8vL1xuXG4gICAgdGFyZ2V0RW50cnlQYXRoID0gYWRqdXN0VGFyZ2V0RW50cnlQYXRoKHRhcmdldEVudHJ5UGF0aCwgbmFtZVNwYW5OYW1lKTtcdC8vL1xuXG4gICAgY29uc3QgcGF0aE1hcCA9IHtcbiAgICAgIHJlYWRPbmx5LFxuICAgICAgY29sbGFwc2VkLFxuICAgICAgZW50cnlEaXJlY3RvcnksXG4gICAgICBzb3VyY2VFbnRyeVBhdGgsXG4gICAgICB0YXJnZXRFbnRyeVBhdGhcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBhdGhNYXA7XG4gIH1cblxuICBnZXRQYXRoTWFwcyhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkge1xuICAgIGxldCBwYXRoTWFwcyA9IFtdO1xuXG4gICAgdGhpcy5yZXRyaWV2ZVBhdGhNYXBzKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwYXRoTWFwcyk7XG5cbiAgICBwYXRoTWFwcy5yZXZlcnNlKCk7XG5cbiAgICByZXR1cm4gcGF0aE1hcHM7XG4gIH1cblxuICBpc0VudHJ5RGlyZWN0b3J5KCkge1xuICAgIGNvbnN0IGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5pc0RpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKCksXG4gICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbTsgIC8vL1xuXG4gICAgcmV0dXJuIGVudHJ5RGlyZWN0b3J5O1xuICB9XG5cbiAgcmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtID0gZ2V0TWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtO1xuICB9XG5cbiAgaXNEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSgpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtVHlwZSA9ICh0eXBlID09PSBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUpLFxuICAgICAgICAgIGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdHlwZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtVHlwZTsgIC8vL1xuXG4gICAgcmV0dXJuIGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtO1xuICB9XG5cbiAgc2V0Q3JlYXRlZChjcmVhdGVkKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBjcmVhdGVkXG4gICAgfSk7XG4gIH1cblxuICBpc0NyZWF0ZWQoKSB7XG4gICAgY29uc3QgeyBjcmVhdGVkIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmhhc0NsYXNzKFwic2VsZWN0ZWRcIik7IC8vL1xuXG4gICAgcmV0dXJuIHNlbGVjdGVkO1xuICB9XG5cbiAgZGVzZWxlY3QoKSB7XG4gICAgdGhpcy5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICB9XG5cbiAgc2VsZWN0KCkge1xuICAgIHRoaXMuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgfVxuXG4gIGNyZWF0ZSgpIHtcbiAgICBjb25zdCBjcmVhdGVkID0gdHJ1ZSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBuYW1lU3Bhbk5hbWUgPSBFTVBUWV9TVFJJTkc7IC8vL1xuXG4gICAgZXhwbG9yZXIuZGlzYWJsZSgpO1xuXG4gICAgdGhpcy5zZXRDcmVhdGVkKGNyZWF0ZWQpO1xuXG4gICAgdGhpcy5zZXROYW1lU3Bhbk5hbWUobmFtZVNwYW5OYW1lKTtcblxuICAgIHRoaXMuZWRpdE5hbWVTcGFuKCk7XG4gIH1cblxuICByZW5hbWUoKSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgIGNyZWF0ZWQgPSBmYWxzZSxcbiAgICAgICAgICBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBuYW1lU3Bhbk5hbWUgPSBuYW1lOyAvLy9cblxuICAgIGV4cGxvcmVyLmRpc2FibGUoKTtcblxuICAgIHRoaXMuc2V0Q3JlYXRlZChjcmVhdGVkKTtcblxuICAgIHRoaXMuc2V0TmFtZVNwYW5OYW1lKG5hbWVTcGFuTmFtZSk7XG5cbiAgICB0aGlzLmVkaXROYW1lU3BhbigpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgIG5hbWVTcGFuTmFtZSA9IG5hbWU7IC8vL1xuXG4gICAgdGhpcy5zZXROYW1lU3Bhbk5hbWUobmFtZVNwYW5OYW1lKTtcblxuICAgIHRoaXMucmVzZXROYW1lU3BhbigpO1xuICB9XG5cbiAgY2FuY2VsKGNyZWF0ZWQpIHtcbiAgICBjcmVhdGVkID9cbiAgICAgIHRoaXMucmVtb3ZlRnJvbUV4cGxvcmVyKCkgOlxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gIH1cblxuICBkaWRNb3VudCgpIHtcbiAgICBjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBkaXNhYmxlZCA9IGV4cGxvcmVyLmlzRGlzYWJsZWQoKTtcblxuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZW5hYmxlRHJhZygpO1xuICAgIH1cblxuICAgIHRoaXMub25DdXN0b21TdG9wRHJhZyh0aGlzLnN0b3BEcmFnQ3VzdG9tSGFuZGxlcik7XG5cbiAgICB0aGlzLm9uQ3VzdG9tU3RhcnREcmFnKHRoaXMuc3RhcnREcmFnQ3VzdG9tSGFuZGxlcik7XG5cbiAgICB0aGlzLm9uQ3VzdG9tTmFtZVNwYW5DaGFuZ2UodGhpcy5uYW1lU3BhbkNoYW5nZUN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vbkN1c3RvbU5hbWVTcGFuQ2FuY2VsKHRoaXMubmFtZVNwYW5DYW5jZWxDdXN0b21IYW5kbGVyKTtcblx0fVxuXG5cdHdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuICAgICAgICAgIGRpc2FibGVkID0gZXhwbG9yZXIuaXNEaXNhYmxlZCgpO1xuXG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgdGhpcy5kaXNhYmxlRHJhZygpO1xuICAgIH1cblxuICAgIHRoaXMub2ZmQ3VzdG9tU3RvcERyYWcodGhpcy5zdG9wRHJhZ0N1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21TdGFydERyYWcodGhpcy5zdGFydERyYWdDdXN0b21IYW5kbGVyKTtcblxuICAgIHRoaXMub2ZmQ3VzdG9tTmFtZVNwYW5DaGFuZ2UodGhpcy5uYW1lU3BhbkNoYW5nZUN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21OYW1lU3BhbkNhbmNlbCh0aGlzLm5hbWVTcGFuQ2FuY2VsQ3VzdG9tSGFuZGxlcik7XG5cdH1cblxuICBwYXJlbnRDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzZWxlY3QgPSB0aGlzLnNlbGVjdC5iaW5kKHRoaXMpLFxuICAgICAgICAgIGRlc2VsZWN0ID0gdGhpcy5kZXNlbGVjdC5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuICh7XG4gICAgICAuLi5jb250ZXh0LFxuICAgICAgc2VsZWN0LFxuICAgICAgZGVzZWxlY3RcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG5cdFx0dGhpcy5hc3NpZ25Db250ZXh0KCk7XG5cdH1cblxuICBzdGF0aWMgTmFtZVNwYW4gPSBOYW1lU3BhbjtcblxuICBzdGF0aWMgaWdub3JlZFByb3BlcnRpZXMgPSBbXG4gICAgXCJyZWFkT25seVwiXG4gIF07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuXHRcdGNsYXNzTmFtZTogXCJkcmFnXCJcblx0fTtcbn1cblxuT2JqZWN0LmFzc2lnbihFbnRyeUl0ZW0ucHJvdG90eXBlLCBkcmFnTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKERyYWdFbnRyeUl0ZW0pYFxuXG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAgIFxuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBcbiAgLnNlbGVjdGVkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5kcmFnZ2luZyB7XG4gICAgei1pbmRleDogMTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgXG5gO1xuIl0sIm5hbWVzIjpbIkRyYWdFbnRyeUl0ZW0iLCJFbnRyeUl0ZW0iLCJuYW1lU3BhbkNoYW5nZUN1c3RvbUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJjcmVhdGVkIiwiaXNDcmVhdGVkIiwiZXhwbG9yZXIiLCJnZXRFeHBsb3JlciIsIm5hbWVTcGFuTmFtZSIsImdldE5hbWVTcGFuTmFtZSIsImVuYWJsZSIsIlBFUklPRCIsIkVNUFRZX1NUUklORyIsImNhbmNlbCIsImRyYWdFbnRyeUl0ZW0iLCJjcmVhdGVEcmFnRW50cnlJdGVtIiwicmVuYW1lRHJhZ0VudHJ5SXRlbSIsIm5hbWVTcGFuQ2FuY2VsQ3VzdG9tSGFuZGxlciIsInN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXIiLCJwYXRoIiwiZ2V0UGF0aCIsInR5cGUiLCJnZXRUeXBlIiwiZHJhZ0VudHJ5SXRlbVR5cGUiLCJtYXJrZXJFbnRyeUl0ZW1QYXRoIiwiYWRkTWFya2VyIiwic3RvcERyYWdDdXN0b21IYW5kbGVyIiwiZHJvcEVsZW1lbnQiLCJhYm9ydGVkIiwiZG9uZSIsIm1hcmtlckVudHJ5SXRlbSIsInJldHJpZXZlTWFya2VyRW50cnlJdGVtIiwibWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJyZW1vdmVNYXJrZXIiLCJkcm9wRHJhZ0VudHJ5SXRlbSIsImNsaWNrIiwic2VsZWN0ZWQiLCJzZWxlY3RPckRlc2VsZWN0RHJhZ0VudHJ5SXRlbSIsImlzUmVhZE9ubHkiLCJyZWFkT25seSIsInByb3BlcnRpZXMiLCJnZXRSZWZlcmVuY2VzIiwicmVmZXJlbmNlcyIsImdldFBhdGhNYXAiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJuYW1lIiwiZ2V0TmFtZSIsImNvbGxhcHNlZCIsImlzQ29sbGFwc2VkIiwiZW50cnlEaXJlY3RvcnkiLCJpc0VudHJ5RGlyZWN0b3J5IiwiYWRqdXN0U291cmNlRW50cnlQYXRoIiwiYWRqdXN0VGFyZ2V0RW50cnlQYXRoIiwicGF0aE1hcCIsImdldFBhdGhNYXBzIiwicGF0aE1hcHMiLCJyZXRyaWV2ZVBhdGhNYXBzIiwicmV2ZXJzZSIsImRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtIiwiaXNEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsImdldE1hcmtlckVudHJ5SXRlbSIsInR5cGVEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbVR5cGUiLCJESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUiLCJzZXRDcmVhdGVkIiwidXBkYXRlU3RhdGUiLCJnZXRTdGF0ZSIsImlzU2VsZWN0ZWQiLCJoYXNDbGFzcyIsImRlc2VsZWN0IiwicmVtb3ZlQ2xhc3MiLCJzZWxlY3QiLCJhZGRDbGFzcyIsImNyZWF0ZSIsImRpc2FibGUiLCJzZXROYW1lU3Bhbk5hbWUiLCJlZGl0TmFtZVNwYW4iLCJyZW5hbWUiLCJyZXNldCIsInJlc2V0TmFtZVNwYW4iLCJyZW1vdmVGcm9tRXhwbG9yZXIiLCJkaWRNb3VudCIsImRpc2FibGVkIiwiaXNEaXNhYmxlZCIsImVuYWJsZURyYWciLCJvbkN1c3RvbVN0b3BEcmFnIiwib25DdXN0b21TdGFydERyYWciLCJvbkN1c3RvbU5hbWVTcGFuQ2hhbmdlIiwib25DdXN0b21OYW1lU3BhbkNhbmNlbCIsIndpbGxVbm1vdW50IiwiZGlzYWJsZURyYWciLCJvZmZDdXN0b21TdG9wRHJhZyIsIm9mZkN1c3RvbVN0YXJ0RHJhZyIsIm9mZkN1c3RvbU5hbWVTcGFuQ2hhbmdlIiwib2ZmQ3VzdG9tTmFtZVNwYW5DYW5jZWwiLCJwYXJlbnRDb250ZXh0IiwiY29udGV4dCIsImdldENvbnRleHQiLCJiaW5kIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJOYW1lU3BhbiIsImlnbm9yZWRQcm9wZXJ0aWVzIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJkcmFnTWl4aW5zIiwid2l0aFN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpU0E7OztlQUFBOzs7c0VBL1JzQjtpQ0FFSzs2REFFTjs4REFDQzsyQkFFZTs0QkFDVTt5QkFDYzs7Ozs7O0FBRTdELE1BQU1BLHNCQUFzQkMsY0FBUztJQUNuQ0MsOEJBQThCLENBQUNDLE9BQU9DO1FBQ3BDLE1BQU1DLFVBQVUsSUFBSSxDQUFDQyxTQUFTLElBQ3hCQyxXQUFXLElBQUksQ0FBQ0MsV0FBVyxJQUMzQkMsZUFBZSxJQUFJLENBQUNDLGVBQWU7UUFFekNILFNBQVNJLE1BQU07UUFFZixJQUFJLEFBQUNGLGlCQUFpQkcsaUJBQU0sSUFBTUgsaUJBQWlCSSx1QkFBWSxFQUFHO1lBQ2hFLElBQUksQ0FBQ0MsTUFBTSxDQUFDVDtZQUVaO1FBQ0Y7UUFFQSxN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