@pie-element/multiple-choice 7.6.1-beta.1 → 7.6.1-beta.3

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.
@@ -1,212 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _react = _interopRequireDefault(require("react"));
27
-
28
- var _reactDom = _interopRequireDefault(require("react-dom"));
29
-
30
- var _debug = _interopRequireDefault(require("debug"));
31
-
32
- var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
33
-
34
- var _main = _interopRequireDefault(require("./main"));
35
-
36
- var _configUi = require("@pie-lib/config-ui");
37
-
38
- var _defaults = _interopRequireDefault(require("lodash/defaults"));
39
-
40
- var _defaults2 = _interopRequireDefault(require("./defaults"));
41
-
42
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
-
44
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
-
46
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
-
48
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
49
-
50
- var log = (0, _debug["default"])('multiple-choice:configure');
51
-
52
- var generateFormattedChoices = function generateFormattedChoices(choices) {
53
- var choiceCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
54
-
55
- if (!choices || choices.length === 0) {
56
- var formattedChoices = [];
57
-
58
- for (var i = 0; i < choiceCount; i++) {
59
- formattedChoices.push({
60
- value: "".concat(i),
61
- label: '',
62
- feedback: {
63
- type: 'none',
64
- value: ''
65
- }
66
- });
67
- }
68
-
69
- return formattedChoices;
70
- }
71
-
72
- return choices;
73
- };
74
-
75
- var prepareCustomizationObject = function prepareCustomizationObject(config, model) {
76
- var configuration = (0, _defaults["default"])(config, _defaults2["default"].configuration);
77
- return {
78
- configuration: configuration,
79
- model: _objectSpread(_objectSpread({}, model), {}, {
80
- choices: generateFormattedChoices(model && model.choices || [], configuration && configuration.answerChoiceCount)
81
- })
82
- };
83
- };
84
-
85
- var MultipleChoice = /*#__PURE__*/function (_HTMLElement) {
86
- (0, _inherits2["default"])(MultipleChoice, _HTMLElement);
87
-
88
- var _super = _createSuper(MultipleChoice);
89
-
90
- function MultipleChoice() {
91
- var _this;
92
-
93
- (0, _classCallCheck2["default"])(this, MultipleChoice);
94
- _this = _super.call(this);
95
- _this._model = MultipleChoice.createDefaultModel();
96
- _this._configuration = _defaults2["default"].configuration;
97
- _this.onModelChanged = _this.onModelChanged.bind((0, _assertThisInitialized2["default"])(_this));
98
- _this.onConfigurationChanged = _this.onConfigurationChanged.bind((0, _assertThisInitialized2["default"])(_this));
99
- return _this;
100
- }
101
-
102
- (0, _createClass2["default"])(MultipleChoice, [{
103
- key: "model",
104
- set: function set(s) {
105
- this._model = MultipleChoice.createDefaultModel(s);
106
-
107
- this._render();
108
- }
109
- }, {
110
- key: "configuration",
111
- set: function set(c) {
112
- var info = prepareCustomizationObject(c, this._model);
113
- this.onModelChanged(info.model);
114
- this._configuration = info.configuration;
115
-
116
- this._render();
117
- }
118
- }, {
119
- key: "disableSidePanel",
120
- set: function set(s) {
121
- this._disableSidePanel = s;
122
-
123
- this._render();
124
- }
125
- }, {
126
- key: "dispatchModelUpdated",
127
- value: function dispatchModelUpdated(reset) {
128
- var resetValue = !!reset;
129
- this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
130
- }
131
- }, {
132
- key: "onModelChanged",
133
- value: function onModelChanged(m, reset) {
134
- this._model = m;
135
-
136
- this._render();
137
-
138
- this.dispatchModelUpdated(reset);
139
- }
140
- }, {
141
- key: "onConfigurationChanged",
142
- value: function onConfigurationChanged(c) {
143
- this._configuration = prepareCustomizationObject(c, this._model).configuration;
144
-
145
- if (this._model) {
146
- this.onModelChanged(this._model);
147
- }
148
-
149
- this._render();
150
- }
151
- /** @param {done, progress, file} handler */
152
-
153
- }, {
154
- key: "insertImage",
155
- value: function insertImage(handler) {
156
- this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
157
- }
158
- }, {
159
- key: "onDeleteImage",
160
- value: function onDeleteImage(src, done) {
161
- this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
162
- }
163
- }, {
164
- key: "insertSound",
165
- value: function insertSound(handler) {
166
- this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
167
- }
168
- }, {
169
- key: "onDeleteSound",
170
- value: function onDeleteSound(src, done) {
171
- this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
172
- }
173
- }, {
174
- key: "_render",
175
- value: function _render() {
176
- log('_render');
177
-
178
- var element = /*#__PURE__*/_react["default"].createElement(_main["default"], {
179
- model: this._model,
180
- configuration: this._configuration,
181
- onModelChanged: this.onModelChanged,
182
- onConfigurationChanged: this.onConfigurationChanged,
183
- disableSidePanel: this._disableSidePanel,
184
- imageSupport: {
185
- add: this.insertImage.bind(this),
186
- "delete": this.onDeleteImage.bind(this)
187
- },
188
- uploadSoundSupport: {
189
- add: this.insertSound.bind(this),
190
- "delete": this.onDeleteSound.bind(this)
191
- }
192
- });
193
-
194
- _reactDom["default"].render(element, this);
195
- }
196
- }]);
197
- return MultipleChoice;
198
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
199
-
200
- exports["default"] = MultipleChoice;
201
- (0, _defineProperty2["default"])(MultipleChoice, "createDefaultModel", function () {
202
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
203
-
204
- var normalizedModel = _configUi.choiceUtils.normalizeChoices(_objectSpread(_objectSpread(_objectSpread({}, _defaults2["default"].model), model), {}, {
205
- choices: generateFormattedChoices(model && model.choices || [])
206
- })); // This is used for offering support for old models which have the property "verticalMode"
207
-
208
-
209
- normalizedModel.choicesLayout = model.choicesLayout || model.verticalMode === false && 'horizontal' || _defaults2["default"].model.choicesLayout;
210
- return normalizedModel;
211
- });
212
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJnZW5lcmF0ZUZvcm1hdHRlZENob2ljZXMiLCJjaG9pY2VzIiwiY2hvaWNlQ291bnQiLCJsZW5ndGgiLCJmb3JtYXR0ZWRDaG9pY2VzIiwiaSIsInB1c2giLCJ2YWx1ZSIsImxhYmVsIiwiZmVlZGJhY2siLCJ0eXBlIiwicHJlcGFyZUN1c3RvbWl6YXRpb25PYmplY3QiLCJjb25maWciLCJtb2RlbCIsImNvbmZpZ3VyYXRpb24iLCJzZW5zaWJsZURlZmF1bHRzIiwiYW5zd2VyQ2hvaWNlQ291bnQiLCJNdWx0aXBsZUNob2ljZSIsIl9tb2RlbCIsImNyZWF0ZURlZmF1bHRNb2RlbCIsIl9jb25maWd1cmF0aW9uIiwib25Nb2RlbENoYW5nZWQiLCJiaW5kIiwib25Db25maWd1cmF0aW9uQ2hhbmdlZCIsInMiLCJfcmVuZGVyIiwiYyIsImluZm8iLCJfZGlzYWJsZVNpZGVQYW5lbCIsInJlc2V0IiwicmVzZXRWYWx1ZSIsImRpc3BhdGNoRXZlbnQiLCJNb2RlbFVwZGF0ZWRFdmVudCIsIm0iLCJkaXNwYXRjaE1vZGVsVXBkYXRlZCIsImhhbmRsZXIiLCJJbnNlcnRJbWFnZUV2ZW50Iiwic3JjIiwiZG9uZSIsIkRlbGV0ZUltYWdlRXZlbnQiLCJJbnNlcnRTb3VuZEV2ZW50IiwiRGVsZXRlU291bmRFdmVudCIsImVsZW1lbnQiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJNYWluIiwiZGlzYWJsZVNpZGVQYW5lbCIsImltYWdlU3VwcG9ydCIsImFkZCIsImluc2VydEltYWdlIiwib25EZWxldGVJbWFnZSIsInVwbG9hZFNvdW5kU3VwcG9ydCIsImluc2VydFNvdW5kIiwib25EZWxldGVTb3VuZCIsIlJlYWN0RE9NIiwicmVuZGVyIiwiSFRNTEVsZW1lbnQiLCJub3JtYWxpemVkTW9kZWwiLCJ1dGlscyIsIm5vcm1hbGl6ZUNob2ljZXMiLCJjaG9pY2VzTGF5b3V0IiwidmVydGljYWxNb2RlIl0sIm1h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bEIsaUJBTGU7QUFNdENtQixRQUFBQSxZQUFZLEVBQUU7QUFDWkMsVUFBQUEsR0FBRyxFQUFFLEtBQUtDLFdBQUwsQ0FBaUIzQixJQUFqQixDQUFzQixJQUF0QixDQURPO0FBRVosb0JBQVEsS0FBSzRCLGFBQUwsQ0FBbUI1QixJQUFuQixDQUF3QixJQUF4QjtBQUZJLFNBTndCO0FBVXRDNkIsUUFBQUEsa0JBQWtCLEVBQUU7QUFDbEJILFVBQUFBLEdBQUcsRUFBRSxLQUFLSSxXQUFMLENBQWlCOUIsSUFBakIsQ0FBc0IsSUFBdEIsQ0FEYTtBQUVsQixvQkFBUSxLQUFLK0IsYUFBTCxDQUFtQi9CLElBQW5CLENBQXdCLElBQXhCO0FBRlU7QUFWa0IsT0FBMUIsQ0FBZDs7QUFnQkFnQywyQkFBU0MsTUFBVCxDQUFnQmIsT0FBaEIsRUFBeUIsSUFBekI7QUFDRDs7O2tEQXJHeUNjLFc7OztpQ0FBdkJ2QyxjLHdCQUNTLFlBQWdCO0FBQUEsTUFBZkosS0FBZSx1RUFBUCxFQUFPOztBQUMxQyxNQUFNNEMsZUFBZSxHQUFHQyxzQkFBTUMsZ0JBQU4sK0NBQ25CNUMsc0JBQWlCRixLQURFLEdBRW5CQSxLQUZtQjtBQUd0QlosSUFBQUEsT0FBTyxFQUFFRCx3QkFBd0IsQ0FBRWEsS0FBSyxJQUFJQSxLQUFLLENBQUNaLE9BQWhCLElBQTRCLEVBQTdCO0FBSFgsS0FBeEIsQ0FEMEMsQ0FPMUM7OztBQUNBd0QsRUFBQUEsZUFBZSxDQUFDRyxhQUFoQixHQUNFL0MsS0FBSyxDQUFDK0MsYUFBTixJQUF3Qi9DLEtBQUssQ0FBQ2dELFlBQU4sS0FBdUIsS0FBdkIsSUFBZ0MsWUFBeEQsSUFBeUU5QyxzQkFBaUJGLEtBQWpCLENBQXVCK0MsYUFEbEc7QUFHQSxTQUFPSCxlQUFQO0FBQ0QsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQge1xuICBEZWxldGVJbWFnZUV2ZW50LFxuICBJbnNlcnRJbWFnZUV2ZW50LFxuICBNb2RlbFVwZGF0ZWRFdmVudCxcbiAgSW5zZXJ0U291bmRFdmVudCxcbiAgRGVsZXRlU291bmRFdmVudCxcbn0gZnJvbSAnQHBpZS1mcmFtZXdvcmsvcGllLWNvbmZpZ3VyZS1ldmVudHMnO1xuXG5pbXBvcnQgTWFpbiBmcm9tICcuL21haW4nO1xuaW1wb3J0IHsgY2hvaWNlVXRpbHMgYXMgdXRpbHMgfSBmcm9tICdAcGllLWxpYi9jb25maWctdWknO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJ2xvZGFzaC9kZWZhdWx0cyc7XG5cbmltcG9ydCBzZW5zaWJsZURlZmF1bHRzIGZyb20gJy4vZGVmYXVsdHMnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnbXVsdGlwbGUtY2hvaWNlOmNvbmZpZ3VyZScpO1xuXG5jb25zdCBnZW5lcmF0ZUZvcm1hdHRlZENob2ljZXMgPSAoY2hvaWNlcywgY2hvaWNlQ291bnQgPSAwKSA9PiB7XG4gIGlmICghY2hvaWNlcyB8fCBjaG9pY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIGxldCBmb3JtYXR0ZWRDaG9pY2VzID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNob2ljZUNvdW50OyBpKyspIHtcbiAgICAgIGZvcm1hdHRlZENob2ljZXMucHVzaCh7XG4gICAgICAgIHZhbHVlOiBgJHtpfWAsXG4gICAgICAgIGxhYmVsOiAnJyxcbiAgICAgICAgZmVlZGJhY2s6IHtcbiAgICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1hdHRlZENob2ljZXM7XG4gIH1cblxuICByZXR1cm4gY2hvaWNlcztcbn07XG5cbmNvbnN0IHByZXBhcmVDdXN0b21pemF0aW9uT2JqZWN0ID0gKGNvbmZpZywgbW9kZWwpID0+IHtcbiAgY29uc3QgY29uZmlndXJhdGlvbiA9IGRlZmF1bHRzKGNvbmZpZywgc2Vuc2libGVEZWZhdWx0cy5jb25maWd1cmF0aW9uKTtcblxuICByZXR1cm4ge1xuICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgbW9kZWw6IHtcbiAgICAgIC4uLm1vZGVsLFxuICAgICAgY2hvaWNlczogZ2VuZXJhdGVGb3JtYXR0ZWRDaG9pY2VzKFxuICAgICAgICAobW9kZWwgJiYgbW9kZWwuY2hvaWNlcykgfHwgW10sXG4gICAgICAgIGNvbmZpZ3VyYXRpb24gJiYgY29uZmlndXJhdGlvbi5hbnN3ZXJDaG9pY2VDb3VudCxcbiAgICAgICksXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE11bHRpcGxlQ2hvaWNlIGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICBzdGF0aWMgY3JlYXRlRGVmYXVsdE1vZGVsID0gKG1vZGVsID0ge30pID0+IHtcbiAgICBjb25zdCBub3JtYWxpemVkTW9kZWwgPSB1dGlscy5ub3JtYWxpemVDaG9pY2VzKHtcbiAgICAgIC4uLnNlbnNpYmxlRGVmYXVsdHMubW9kZWwsXG4gICAgICAuLi5tb2RlbCxcbiAgICAgIGNob2ljZXM6IGdlbmVyYXRlRm9ybWF0dGVkQ2hvaWNlcygobW9kZWwgJiYgbW9kZWwuY2hvaWNlcykgfHwgW10pLFxuICAgIH0pO1xuXG4gICAgLy8gVGhpcyBpcyB1c2VkIGZvciBvZmZlcmluZyBzdXBwb3J0IGZvciBvbGQgbW9kZWxzIHdoaWNoIGhhdmUgdGhlIHByb3BlcnR5IFwidmVydGljYWxNb2RlXCJcbiAgICBub3JtYWxpemVkTW9kZWwuY2hvaWNlc0xheW91dCA9XG4gICAgICBtb2RlbC5jaG9pY2VzTGF5b3V0IHx8IChtb2RlbC52ZXJ0aWNhbE1vZGUgPT09IGZhbHNlICYmICdob3Jpem9udGFsJykgfHwgc2Vuc2libGVEZWZhdWx0cy5tb2RlbC5jaG9pY2VzTGF5b3V0O1xuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRNb2RlbDtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX21vZGVsID0gTXVsdGlwbGVDaG9pY2UuY3JlYXRlRGVmYXVsdE1vZGVsKCk7XG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IHNlbnNpYmxlRGVmYXVsdHMuY29uZmlndXJhdGlvbjtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2VkID0gdGhpcy5vbk1vZGVsQ2hhbmdlZC5iaW5kKHRoaXMpO1xuICAgIHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlZCA9IHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlZC5iaW5kKHRoaXMpO1xuICB9XG5cbiAgc2V0IG1vZGVsKHMpIHtcbiAgICB0aGlzLl9tb2RlbCA9IE11bHRpcGxlQ2hvaWNlLmNyZWF0ZURlZmF1bHRNb2RlbChzKTtcblxuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9XG5cbiAgc2V0IGNvbmZpZ3VyYXRpb24oYykge1xuICAgIGNvbnN0IGluZm8gPSBwcmVwYXJlQ3VzdG9taXphdGlvbk9iamVjdChjLCB0aGlzLl9tb2RlbCk7XG5cbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2VkKGluZm8ubW9kZWwpO1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBpbmZvLmNvbmZpZ3VyYXRpb247XG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBzZXQgZGlzYWJsZVNpZGVQYW5lbChzKSB7XG4gICAgdGhpcy5fZGlzYWJsZVNpZGVQYW5lbCA9IHM7XG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBkaXNwYXRjaE1vZGVsVXBkYXRlZChyZXNldCkge1xuICAgIGNvbnN0IHJlc2V0VmFsdWUgPSAhIXJlc2V0O1xuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBNb2RlbFVwZGF0ZWRFdmVudCh0aGlzLl9tb2RlbCwgcmVzZXRWYWx1ZSkpO1xuICB9XG5cbiAgb25Nb2RlbENoYW5nZWQobSwgcmVzZXQpIHtcbiAgICB0aGlzLl9tb2RlbCA9IG07XG4gICAgdGhpcy5fcmVuZGVyKCk7XG5cbiAgICB0aGlzLmRpc3BhdGNoTW9kZWxVcGRhdGVkKHJlc2V0KTtcbiAgfVxuXG4gIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQoYykge1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBwcmVwYXJlQ3VzdG9taXphdGlvbk9iamVjdChjLCB0aGlzLl9tb2RlbCkuY29uZmlndXJhdGlvbjtcblxuICAgIGlmICh0aGlzLl9tb2RlbCkge1xuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlZCh0aGlzLl9tb2RlbCk7XG4gICAgfVxuXG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICAvKiogQHBhcmFtIHtkb25lLCBwcm9ncmVzcywgZmlsZX0gaGFuZGxlciAqL1xuICBpbnNlcnRJbWFnZShoYW5kbGVyKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnNlcnRJbWFnZUV2ZW50KGhhbmRsZXIpKTtcbiAgfVxuXG4gIG9uRGVsZXRlSW1hZ2Uoc3JjLCBkb25lKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBEZWxldGVJbWFnZUV2ZW50KHNyYywgZG9uZSkpO1xuICB9XG5cbiAgaW5zZXJ0U291bmQoaGFuZGxlcikge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5zZXJ0U291bmRFdmVudChoYW5kbGVyKSk7XG4gIH1cblxuICBvbkRlbGV0ZVNvdW5kKHNyYywgZG9uZSkge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRGVsZXRlU291bmRFdmVudChzcmMsIGRvbmUpKTtcbiAgfVxuXG4gIF9yZW5kZXIoKSB7XG4gICAgbG9nKCdfcmVuZGVyJyk7XG4gICAgbGV0IGVsZW1lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KE1haW4sIHtcbiAgICAgIG1vZGVsOiB0aGlzLl9tb2RlbCxcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuX2NvbmZpZ3VyYXRpb24sXG4gICAgICBvbk1vZGVsQ2hhbmdlZDogdGhpcy5vbk1vZGVsQ2hhbmdlZCxcbiAgICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ6IHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlZCxcbiAgICAgIGRpc2FibGVTaWRlUGFuZWw6IHRoaXMuX2Rpc2FibGVTaWRlUGFuZWwsXG4gICAgICBpbWFnZVN1cHBvcnQ6IHtcbiAgICAgICAgYWRkOiB0aGlzLmluc2VydEltYWdlLmJpbmQodGhpcyksXG4gICAgICAgIGRlbGV0ZTogdGhpcy5vbkRlbGV0ZUltYWdlLmJpbmQodGhpcyksXG4gICAgICB9LFxuICAgICAgdXBsb2FkU291bmRTdXBwb3J0OiB7XG4gICAgICAgIGFkZDogdGhpcy5pbnNlcnRTb3VuZC5iaW5kKHRoaXMpLFxuICAgICAgICBkZWxldGU6IHRoaXMub25EZWxldGVTb3VuZC5iaW5kKHRoaXMpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIFJlYWN0RE9NLnJlbmRlcihlbGVtZW50LCB0aGlzKTtcbiAgfVxufVxuIl19