highmark-yapp 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "highmark-yapp",
3
3
  "author": "James Smith",
4
- "version": "0.0.3",
4
+ "version": "0.0.4",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/highmark-uapp",
7
7
  "description": "Highmark with Yapp listings.",
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/djalbat/highmark-uapp"
11
11
  },
12
12
  "dependencies": {
13
- "highmark-grammar": "^0.0.18"
13
+ "highmark-grammar": "^0.0.19"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@swc/core": "^1.2.50",
@@ -3,6 +3,7 @@
3
3
  import withStyle from "easy-with-style"; ///
4
4
 
5
5
  import { Element } from "easy";
6
+ import { parserUtilities } frm
6
7
  import { rulesUtilities, parserUtilities } from "occam-parsers";
7
8
  import { RowsDiv, ColumnDiv, ColumnsDiv, VerticalSplitterDiv } from "easy-layout";
8
9
 
@@ -1,271 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
- var _easy = require("easy");
13
- var _occamparsers = require("occam-parsers");
14
- var _easylayout = require("easy-layout");
15
- var _subHeading = /*#__PURE__*/ _interop_require_default(require("./view/subHeading"));
16
- var _sizeable = /*#__PURE__*/ _interop_require_default(require("./view/div/sizeable"));
17
- var _bnf = /*#__PURE__*/ _interop_require_default(require("./view/textarea/bnf"));
18
- var _lexer = /*#__PURE__*/ _interop_require_default(require("../markdown/lexer"));
19
- var _parser = /*#__PURE__*/ _interop_require_default(require("../markdown/parser"));
20
- var _content = /*#__PURE__*/ _interop_require_default(require("./view/textarea/content"));
21
- var _markdown = /*#__PURE__*/ _interop_require_default(require("./view/section/markdown"));
22
- var _parseTree = /*#__PURE__*/ _interop_require_default(require("./view/textarea/parseTree"));
23
- var _startRuleName = /*#__PURE__*/ _interop_require_default(require("./view/input/startRuleName"));
24
- var _lexicalEntries = /*#__PURE__*/ _interop_require_default(require("./view/textarea/lexicalEntries"));
25
- var _parser1 = require("../utilities/parser");
26
- function _assert_this_initialized(self) {
27
- if (self === void 0) {
28
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
29
- }
30
- return self;
31
- }
32
- function _class_call_check(instance, Constructor) {
33
- if (!(instance instanceof Constructor)) {
34
- throw new TypeError("Cannot call a class as a function");
35
- }
36
- }
37
- function _construct(Parent, args, Class) {
38
- if (_is_native_reflect_construct()) {
39
- _construct = Reflect.construct;
40
- } else {
41
- _construct = function construct(Parent, args, Class) {
42
- var a = [
43
- null
44
- ];
45
- a.push.apply(a, args);
46
- var Constructor = Function.bind.apply(Parent, a);
47
- var instance = new Constructor();
48
- if (Class) _set_prototype_of(instance, Class.prototype);
49
- return instance;
50
- };
51
- }
52
- return _construct.apply(null, arguments);
53
- }
54
- function _defineProperties(target, props) {
55
- for(var i = 0; i < props.length; i++){
56
- var descriptor = props[i];
57
- descriptor.enumerable = descriptor.enumerable || false;
58
- descriptor.configurable = true;
59
- if ("value" in descriptor) descriptor.writable = true;
60
- Object.defineProperty(target, descriptor.key, descriptor);
61
- }
62
- }
63
- function _create_class(Constructor, protoProps, staticProps) {
64
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
65
- if (staticProps) _defineProperties(Constructor, staticProps);
66
- return Constructor;
67
- }
68
- function _define_property(obj, key, value) {
69
- if (key in obj) {
70
- Object.defineProperty(obj, key, {
71
- value: value,
72
- enumerable: true,
73
- configurable: true,
74
- writable: true
75
- });
76
- } else {
77
- obj[key] = value;
78
- }
79
- return obj;
80
- }
81
- function _get_prototype_of(o) {
82
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
83
- return o.__proto__ || Object.getPrototypeOf(o);
84
- };
85
- return _get_prototype_of(o);
86
- }
87
- function _inherits(subClass, superClass) {
88
- if (typeof superClass !== "function" && superClass !== null) {
89
- throw new TypeError("Super expression must either be null or a function");
90
- }
91
- subClass.prototype = Object.create(superClass && superClass.prototype, {
92
- constructor: {
93
- value: subClass,
94
- writable: true,
95
- configurable: true
96
- }
97
- });
98
- if (superClass) _set_prototype_of(subClass, superClass);
99
- }
100
- function _interop_require_default(obj) {
101
- return obj && obj.__esModule ? obj : {
102
- default: obj
103
- };
104
- }
105
- function _is_native_function(fn) {
106
- return Function.toString.call(fn).indexOf("[native code]") !== -1;
107
- }
108
- function _possible_constructor_return(self, call) {
109
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
110
- return call;
111
- }
112
- return _assert_this_initialized(self);
113
- }
114
- function _set_prototype_of(o, p) {
115
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
116
- o.__proto__ = p;
117
- return o;
118
- };
119
- return _set_prototype_of(o, p);
120
- }
121
- function _tagged_template_literal(strings, raw) {
122
- if (!raw) {
123
- raw = strings.slice(0);
124
- }
125
- return Object.freeze(Object.defineProperties(strings, {
126
- raw: {
127
- value: Object.freeze(raw)
128
- }
129
- }));
130
- }
131
- function _type_of(obj) {
132
- "@swc/helpers - typeof";
133
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
134
- }
135
- function _wrap_native_super(Class) {
136
- var _cache = typeof Map === "function" ? new Map() : undefined;
137
- _wrap_native_super = function wrapNativeSuper(Class) {
138
- if (Class === null || !_is_native_function(Class)) return Class;
139
- if (typeof Class !== "function") {
140
- throw new TypeError("Super expression must either be null or a function");
141
- }
142
- if (typeof _cache !== "undefined") {
143
- if (_cache.has(Class)) return _cache.get(Class);
144
- _cache.set(Class, Wrapper);
145
- }
146
- function Wrapper() {
147
- return _construct(Class, arguments, _get_prototype_of(this).constructor);
148
- }
149
- Wrapper.prototype = Object.create(Class.prototype, {
150
- constructor: {
151
- value: Wrapper,
152
- enumerable: false,
153
- writable: true,
154
- configurable: true
155
- }
156
- });
157
- return _set_prototype_of(Wrapper, Class);
158
- };
159
- return _wrap_native_super(Class);
160
- }
161
- function _is_native_reflect_construct() {
162
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
163
- if (Reflect.construct.sham) return false;
164
- if (typeof Proxy === "function") return true;
165
- try {
166
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
167
- return true;
168
- } catch (e) {
169
- return false;
170
- }
171
- }
172
- function _create_super(Derived) {
173
- var hasNativeReflectConstruct = _is_native_reflect_construct();
174
- return function _createSuperInternal() {
175
- var Super = _get_prototype_of(Derived), result;
176
- if (hasNativeReflectConstruct) {
177
- var NewTarget = _get_prototype_of(this).constructor;
178
- result = Reflect.construct(Super, arguments, NewTarget);
179
- } else {
180
- result = Super.apply(this, arguments);
181
- }
182
- return _possible_constructor_return(this, result);
183
- };
184
- }
185
- function _templateObject() {
186
- var data = _tagged_template_literal([
187
- "\n\n padding: 1rem;\n \n"
188
- ]);
189
- _templateObject = function _templateObject() {
190
- return data;
191
- };
192
- return data;
193
- }
194
- var rulesFromBNF = _occamparsers.parserUtilities.rulesFromBNF, ruleMapFromRules = _occamparsers.rulesUtilities.ruleMapFromRules, startRuleFromRulesAndStartRuleName = _occamparsers.rulesUtilities.startRuleFromRulesAndStartRuleName;
195
- var View = /*#__PURE__*/ function(Element) {
196
- _inherits(View, Element);
197
- var _super = _create_super(View);
198
- function View() {
199
- _class_call_check(this, View);
200
- var _this;
201
- _this = _super.apply(this, arguments);
202
- _define_property(_assert_this_initialized(_this), "changeHandler", function(event, element) {
203
- _this.update();
204
- });
205
- _define_property(_assert_this_initialized(_this), "keyUpHandler", function(event, element) {
206
- _this.update();
207
- });
208
- return _this;
209
- }
210
- _create_class(View, [
211
- {
212
- key: "update",
213
- value: function update() {
214
- var bnf = this.getBNF(), rules = rulesFromBNF(bnf), startRuleName = this.getStartRuleName(), lexicalEntries = this.getLexicalEntries();
215
- var markdownLexer = markdownLexerFromLexicalEntries(lexicalEntries), markdownParser = markdownParserFromRulesAndStartRuleName(rules, startRuleName);
216
- var content = this.getContent(), tokens = markdownLexer.tokenise(content), node = markdownParser.parse(tokens);
217
- var parseTree = null;
218
- if (node !== null) {
219
- parseTree = node.asParseTree(tokens);
220
- }
221
- this.updateMarkdownSection(node, tokens);
222
- this.setParseTree(parseTree);
223
- }
224
- },
225
- {
226
- key: "childElements",
227
- value: function childElements() {
228
- return /*#__PURE__*/ React.createElement(_easylayout.ColumnsDiv, null, /*#__PURE__*/ React.createElement(_sizeable.default, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_subHeading.default, null, "Start rule name"), /*#__PURE__*/ React.createElement(_startRuleName.default, {
229
- onKeyUp: this.keyUpHandler
230
- }), /*#__PURE__*/ React.createElement(_subHeading.default, null, "Lexical entries"), /*#__PURE__*/ React.createElement(_lexicalEntries.default, {
231
- onKeyUp: this.keyUpHandler
232
- }), /*#__PURE__*/ React.createElement(_subHeading.default, null, "BNF"), /*#__PURE__*/ React.createElement(_bnf.default, {
233
- onKeyUp: this.keyUpHandler
234
- }), /*#__PURE__*/ React.createElement(_subHeading.default, null, "Content"), /*#__PURE__*/ React.createElement(_content.default, {
235
- onKeyUp: this.keyUpHandler
236
- }))), /*#__PURE__*/ React.createElement(_easylayout.VerticalSplitterDiv, null), /*#__PURE__*/ React.createElement(_easylayout.ColumnDiv, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_markdown.default, null), /*#__PURE__*/ React.createElement(_subHeading.default, null, "Parse tree"), /*#__PURE__*/ React.createElement(_parseTree.default, null))));
237
- }
238
- },
239
- {
240
- key: "initialise",
241
- value: function initialise() {
242
- this.assignContext();
243
- var bnf = _parser.default.bnf, entries = _lexer.default.entries, _this_constructor = this.constructor, initialContent = _this_constructor.initialContent, initialStartRuleName = _this_constructor.initialStartRuleName, content = initialContent, startRuleName = initialStartRuleName, lexicalEntries = entries; ///
244
- this.setBNF(bnf);
245
- this.setContent(content);
246
- this.setLexicalEntries(lexicalEntries);
247
- this.setStartRuleName(startRuleName);
248
- this.update();
249
- }
250
- }
251
- ]);
252
- return View;
253
- }(_wrap_native_super(_easy.Element));
254
- _define_property(View, "initialContent", '===json\n{\n "hello": "world"\n}\n===\n');
255
- _define_property(View, "initialStartRuleName", "");
256
- _define_property(View, "tagName", "div");
257
- _define_property(View, "defaultProperties", {
258
- className: "view"
259
- });
260
- var _default = (0, _easywithstyle.default)(View)(_templateObject());
261
- function markdownLexerFromLexicalEntries(lexicalEntries) {
262
- var entries = lexicalEntries, markdownLexer = _lexer.default.fromEntries(entries);
263
- return markdownLexer;
264
- }
265
- function markdownParserFromRulesAndStartRuleName(rules, startRuleName) {
266
- var ruleMap = ruleMapFromRules(rules), startRule = startRuleFromRulesAndStartRuleName(rules, startRuleName), markdownParser = new _parser.default(startRule, ruleMap);
267
- (0, _parser1.setNonTerminalNodes)(markdownParser);
268
- return markdownParser;
269
- }
270
-
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgcnVsZXNVdGlsaXRpZXMsIHBhcnNlclV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5pbXBvcnQgeyBSb3dzRGl2LCBDb2x1bW5EaXYsIENvbHVtbnNEaXYsIFZlcnRpY2FsU3BsaXR0ZXJEaXYgfSBmcm9tIFwiZWFzeS1sYXlvdXRcIjtcblxuaW1wb3J0IFN1YkhlYWRpbmcgZnJvbSBcIi4vdmlldy9zdWJIZWFkaW5nXCI7XG5pbXBvcnQgU2l6ZWFibGVEaXYgZnJvbSBcIi4vdmlldy9kaXYvc2l6ZWFibGVcIjtcbmltcG9ydCBCTkZUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL2JuZlwiO1xuaW1wb3J0IE1hcmtkb3duTGV4ZXIgZnJvbSBcIi4uL21hcmtkb3duL2xleGVyXCI7XG5pbXBvcnQgTWFya2Rvd25QYXJzZXIgZnJvbSBcIi4uL21hcmtkb3duL3BhcnNlclwiO1xuaW1wb3J0IENvbnRlbnRUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL2NvbnRlbnRcIjtcbmltcG9ydCBNYXJrZG93blNlY3Rpb24gZnJvbSBcIi4vdmlldy9zZWN0aW9uL21hcmtkb3duXCI7XG5pbXBvcnQgUGFyc2VUcmVlVGV4dGFyZWEgZnJvbSBcIi4vdmlldy90ZXh0YXJlYS9wYXJzZVRyZWVcIjtcbmltcG9ydCBTdGFydFJ1bGVOYW1lSW5wdXQgZnJvbSBcIi4vdmlldy9pbnB1dC9zdGFydFJ1bGVOYW1lXCI7XG5pbXBvcnQgTGV4aWNhbEVudHJpZXNUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL2xleGljYWxFbnRyaWVzXCI7XG5cbmltcG9ydCB7IHNldE5vblRlcm1pbmFsTm9kZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcnNlclwiO1xuXG5jb25zdCB7IHJ1bGVzRnJvbUJORiB9ID0gcGFyc2VyVXRpbGl0aWVzLFxuICAgICAgeyBydWxlTWFwRnJvbVJ1bGVzLCBzdGFydFJ1bGVGcm9tUnVsZXNBbmRTdGFydFJ1bGVOYW1lIH0gPSBydWxlc1V0aWxpdGllcztcblxuY2xhc3MgVmlldyBleHRlbmRzIEVsZW1lbnQge1xuICBjaGFuZ2VIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIGtleVVwSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgY29uc3QgYm5mID0gdGhpcy5nZXRCTkYoKSxcbiAgICAgICAgICBydWxlcyA9IHJ1bGVzRnJvbUJORihibmYpLFxuICAgICAgICAgIHN0YXJ0UnVsZU5hbWUgPSB0aGlzLmdldFN0YXJ0UnVsZU5hbWUoKSxcbiAgICAgICAgICBsZXhpY2FsRW50cmllcyA9IHRoaXMuZ2V0TGV4aWNhbEVudHJpZXMoKTtcblxuICAgIGNvbnN0IG1hcmtkb3duTGV4ZXIgPSBtYXJrZG93bkxleGVyRnJvbUxleGljYWxFbnRyaWVzKGxleGljYWxFbnRyaWVzKSxcbiAgICAgICAgICBtYXJrZG93blBhcnNlciA9ICBtYXJrZG93blBhcnNlckZyb21SdWxlc0FuZFN0YXJ0UnVsZU5hbWUocnVsZXMsIHN0YXJ0UnVsZU5hbWUpO1xuXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHRva2VucyA9IG1hcmtkb3duTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgbm9kZSA9IG1hcmtkb3duUGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgICBsZXQgcGFyc2VUcmVlID0gbnVsbDtcblxuICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2Vucyk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVNYXJrZG93blNlY3Rpb24obm9kZSwgdG9rZW5zKTtcblxuICAgIHRoaXMuc2V0UGFyc2VUcmVlKHBhcnNlVHJlZSk7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIHJldHVybiAoXG5cbiAgICAgIDxDb2x1bW5zRGl2PlxuICAgICAgICA8U2l6ZWFibGVEaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgU3RhcnQgcnVsZSBuYW1lXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8U3RhcnRSdWxlTmFtZUlucHV0IG9uS2V5VXA9e3RoaXMua2V5VXBIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIExleGljYWwgZW50cmllc1xuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPExleGljYWxFbnRyaWVzVGV4dGFyZWEgb25LZXlVcD17dGhpcy5rZXlVcEhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQk5GXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8Qk5GVGV4dGFyZWEgb25LZXlVcD17dGhpcy5rZXlVcEhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQ29udGVudFxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPENvbnRlbnRUZXh0YXJlYSBvbktleVVwPXt0aGlzLmtleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvU2l6ZWFibGVEaXY+XG4gICAgICAgIDxWZXJ0aWNhbFNwbGl0dGVyRGl2Lz5cbiAgICAgICAgPENvbHVtbkRpdj5cbiAgICAgICAgICA8Um93c0Rpdj5cbiAgICAgICAgICAgIDxNYXJrZG93blNlY3Rpb24vPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIFBhcnNlIHRyZWVcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxQYXJzZVRyZWVUZXh0YXJlYSAvPlxuICAgICAgICAgIDwvUm93c0Rpdj5cbiAgICAgICAgPC9Db2x1bW5EaXY+XG4gICAgICA8L0NvbHVtbnNEaXY+XG5cbiAgICApO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICB0aGlzLmFzc2lnbkNvbnRleHQoKTtcblxuICAgIGNvbnN0IHsgYm5mIH0gPSBNYXJrZG93blBhcnNlcixcbiAgICAgICAgICB7IGVudHJpZXMgfSA9IE1hcmtkb3duTGV4ZXIsXG4gICAgICAgICAgeyBpbml0aWFsQ29udGVudCwgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgfSA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgY29udGVudCA9IGluaXRpYWxDb250ZW50LCAvLy9cbiAgICAgICAgICBzdGFydFJ1bGVOYW1lID0gaW5pdGlhbFN0YXJ0UnVsZU5hbWUsIC8vL1xuICAgICAgICAgIGxleGljYWxFbnRyaWVzID0gZW50cmllczsgLy8vXG5cbiAgICB0aGlzLnNldEJORihibmYpO1xuXG4gICAgdGhpcy5zZXRDb250ZW50KGNvbnRlbnQpO1xuXG4gICAgdGhpcy5zZXRMZXhpY2FsRW50cmllcyhsZXhpY2FsRW50cmllcyk7XG5cbiAgICB0aGlzLnNldFN0YXJ0UnVsZU5hbWUoc3RhcnRSdWxlTmFtZSk7XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgc3RhdGljIGluaXRpYWxDb250ZW50ID0gYD09PWpzb25cbntcbiAgXCJoZWxsb1wiOiBcIndvcmxkXCJcbn1cbj09PVxuYDtcblxuICBzdGF0aWMgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgPSBcIlwiO1xuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInZpZXdcIlxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoVmlldylgXG5cbiAgcGFkZGluZzogMXJlbTtcbiAgXG5gO1xuXG5mdW5jdGlvbiBtYXJrZG93bkxleGVyRnJvbUxleGljYWxFbnRyaWVzKGxleGljYWxFbnRyaWVzKSB7XG4gIGNvbnN0IGVudHJpZXMgPSBsZXhpY2FsRW50cmllcywgLy8vXG4gICAgICAgIG1hcmtkb3duTGV4ZXIgPSBNYXJrZG93bkxleGVyLmZyb21FbnRyaWVzKGVudHJpZXMpO1xuXG4gIHJldHVybiBtYXJrZG93bkxleGVyO1xufVxuXG5mdW5jdGlvbiBtYXJrZG93blBhcnNlckZyb21SdWxlc0FuZFN0YXJ0UnVsZU5hbWUocnVsZXMsIHN0YXJ0UnVsZU5hbWUpIHtcbiAgY29uc3QgcnVsZU1hcCA9IHJ1bGVNYXBGcm9tUnVsZXMocnVsZXMpLFxuICAgICAgICBzdGFydFJ1bGUgPSBzdGFydFJ1bGVGcm9tUnVsZXNBbmRTdGFydFJ1bGVOYW1lKHJ1bGVzLCBzdGFydFJ1bGVOYW1lKSxcbiAgICAgICAgbWFya2Rvd25QYXJzZXIgPSBuZXcgTWFya2Rvd25QYXJzZXIoc3RhcnRSdWxlLCBydWxlTWFwKTtcblxuICBzZXROb25UZXJtaW5hbE5vZGVzKG1hcmtkb3duUGFyc2VyKTtcblxuICByZXR1cm4gbWFya2Rvd25QYXJzZXI7XG59XG4iXSwibmFtZXMiOlsicnVsZXNGcm9tQk5GIiwicGFyc2VyVXRpbGl0aWVzIiwicnVsZU1hcEZyb21SdWxlcyIsInJ1bGVzVXRpbGl0aWVzIiwic3RhcnRSdWxlRnJvbVJ1bGVzQW5kU3RhcnRSdWxlTmFtZSIsIlZpZXciLCJjaGFuZ2VIYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwidXBkYXRlIiwia2V5VXBIYW5kbGVyIiwiYm5mIiwiZ2V0Qk5GIiwicnVsZXMiLCJzdGFydFJ1bGVOYW1lIiwiZ2V0U3RhcnRSdWxlTmFtZSIsImxleGljYWxFbnRyaWVzIiwiZ2V0TGV4aWNhbEVudHJpZXMiLCJtYXJrZG93bkxleGVyIiwibWFya2Rvd25MZXhlckZyb21MZXhpY2FsRW50cmllcyIsIm1hcmtkb3duUGFyc2VyIiwibWFya2Rvd25QYXJzZXJGcm9tUnVsZXNBbmRTdGFydFJ1bGVOYW1lIiwiY29udGVudCIsImdldENvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSIsIm5vZGUiLCJwYXJzZSIsInBhcnNlVHJlZSIsImFzUGFyc2VUcmVlIiwidXBkYXRlTWFya2Rvd25TZWN0aW9uIiwic2V0UGFyc2VUcmVlIiwiY2hpbGRFbGVtZW50cyIsIkNvbHVtbnNEaXYiLCJTaXplYWJsZURpdiIsIlJvd3NEaXYiLCJTdWJIZWFkaW5nIiwiU3RhcnRSdWxlTmFtZUlucHV0Iiwib25LZXlVcCIsIkxleGljYWxFbnRyaWVzVGV4dGFyZWEiLCJCTkZUZXh0YXJlYSIsIkNvbnRlbnRUZXh0YXJlYSIsIlZlcnRpY2FsU3BsaXR0ZXJEaXYiLCJDb2x1bW5EaXYiLCJNYXJrZG93blNlY3Rpb24iLCJQYXJzZVRyZWVUZXh0YXJlYSIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiTWFya2Rvd25QYXJzZXIiLCJlbnRyaWVzIiwiTWFya2Rvd25MZXhlciIsImNvbnN0cnVjdG9yIiwiaW5pdGlhbENvbnRlbnQiLCJpbml0aWFsU3RhcnRSdWxlTmFtZSIsInNldEJORiIsInNldENvbnRlbnQiLCJzZXRMZXhpY2FsRW50cmllcyIsInNldFN0YXJ0UnVsZU5hbWUiLCJFbGVtZW50IiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwid2l0aFN0eWxlIiwiZnJvbUVudHJpZXMiLCJydWxlTWFwIiwic3RhcnRSdWxlIiwic2V0Tm9uVGVybWluYWxOb2RlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBcUlBOzs7ZUFBQTs7O29FQW5Jc0I7b0JBRUU7NEJBQ3dCOzBCQUNv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