@firestitch/chip 8.1.7 → 12.0.0

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,387 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: app/components/chip/chip.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Input, Optional, Output, } from '@angular/core';
7
- import { Subject } from 'rxjs';
8
- import { FsChipsService } from '../../services/chips.service';
9
- var FsChipComponent = /** @class */ (function () {
10
- function FsChipComponent(_cdRef, _chips) {
11
- this._cdRef = _cdRef;
12
- this._chips = _chips;
13
- this.fsChip = true;
14
- this._outlined = false;
15
- this._selectable = false;
16
- this._image = false;
17
- this._selected = false;
18
- this._removable = false;
19
- this.styleBackgroundColor = '';
20
- this.styleColor = '';
21
- this.styleBorderColor = '';
22
- this.classSmall = false;
23
- this.classTiny = false;
24
- this.value = null;
25
- this.selectedToggled = new EventEmitter();
26
- this.removed = new EventEmitter();
27
- this.$destroy = new Subject();
28
- this._backgroundColor = '';
29
- this._color = '';
30
- }
31
- Object.defineProperty(FsChipComponent.prototype, "setSize", {
32
- set: /**
33
- * @param {?} value
34
- * @return {?}
35
- */
36
- function (value) {
37
- this._size = value;
38
- this.classSmall = value === 'small';
39
- this.classTiny = value === 'tiny';
40
- },
41
- enumerable: true,
42
- configurable: true
43
- });
44
- ;
45
- /**
46
- * @return {?}
47
- */
48
- FsChipComponent.prototype.click = /**
49
- * @return {?}
50
- */
51
- function () {
52
- if (this.selectable) {
53
- this.selected = !this.selected;
54
- this.selectedToggled.emit({ value: this.value, selected: this.selected });
55
- if (this._chips) {
56
- this._chips.selectionChanged(this.selected, this.value);
57
- }
58
- }
59
- };
60
- Object.defineProperty(FsChipComponent.prototype, "backgroundColor", {
61
- set: /**
62
- * @param {?} value
63
- * @return {?}
64
- */
65
- function (value) {
66
- this._backgroundColor = value;
67
- this.updateStyles();
68
- },
69
- enumerable: true,
70
- configurable: true
71
- });
72
- ;
73
- Object.defineProperty(FsChipComponent.prototype, "borderColor", {
74
- set: /**
75
- * @param {?} value
76
- * @return {?}
77
- */
78
- function (value) {
79
- this.styleBorderColor = value;
80
- this.updateStyles();
81
- },
82
- enumerable: true,
83
- configurable: true
84
- });
85
- Object.defineProperty(FsChipComponent.prototype, "color", {
86
- get: /**
87
- * @return {?}
88
- */
89
- function () {
90
- return this._color;
91
- },
92
- set: /**
93
- * @param {?} value
94
- * @return {?}
95
- */
96
- function (value) {
97
- this._color = value;
98
- this.updateStyles();
99
- },
100
- enumerable: true,
101
- configurable: true
102
- });
103
- Object.defineProperty(FsChipComponent.prototype, "outlined", {
104
- get: /**
105
- * @return {?}
106
- */
107
- function () {
108
- return this._outlined;
109
- },
110
- set: /**
111
- * @param {?} value
112
- * @return {?}
113
- */
114
- function (value) {
115
- this._outlined = value;
116
- this.updateStyles();
117
- },
118
- enumerable: true,
119
- configurable: true
120
- });
121
- ;
122
- Object.defineProperty(FsChipComponent.prototype, "removable", {
123
- get: /**
124
- * @return {?}
125
- */
126
- function () {
127
- return this._removable;
128
- },
129
- set: /**
130
- * @param {?} value
131
- * @return {?}
132
- */
133
- function (value) {
134
- this._removable = value;
135
- this._cdRef.markForCheck();
136
- },
137
- enumerable: true,
138
- configurable: true
139
- });
140
- ;
141
- Object.defineProperty(FsChipComponent.prototype, "selectable", {
142
- get: /**
143
- * @return {?}
144
- */
145
- function () {
146
- return this._selectable;
147
- },
148
- set: /**
149
- * @param {?} value
150
- * @return {?}
151
- */
152
- function (value) {
153
- this._selectable = value;
154
- },
155
- enumerable: true,
156
- configurable: true
157
- });
158
- ;
159
- Object.defineProperty(FsChipComponent.prototype, "selected", {
160
- get: /**
161
- * @return {?}
162
- */
163
- function () {
164
- return this._selected;
165
- },
166
- set: /**
167
- * @param {?} value
168
- * @return {?}
169
- */
170
- function (value) {
171
- this._selected = value;
172
- this._cdRef.markForCheck();
173
- },
174
- enumerable: true,
175
- configurable: true
176
- });
177
- ;
178
- Object.defineProperty(FsChipComponent.prototype, "image", {
179
- get: /**
180
- * @return {?}
181
- */
182
- function () {
183
- return this._image;
184
- },
185
- set: /**
186
- * @param {?} value
187
- * @return {?}
188
- */
189
- function (value) {
190
- this._image = value;
191
- this._cdRef.markForCheck();
192
- },
193
- enumerable: true,
194
- configurable: true
195
- });
196
- ;
197
- /**
198
- * @return {?}
199
- */
200
- FsChipComponent.prototype.ngOnInit = /**
201
- * @return {?}
202
- */
203
- function () {
204
- if (this._chips) {
205
- this._chips.register(this);
206
- }
207
- };
208
- /**
209
- * @return {?}
210
- */
211
- FsChipComponent.prototype.ngOnDestroy = /**
212
- * @return {?}
213
- */
214
- function () {
215
- if (this._chips) {
216
- this._chips.destroy(this);
217
- }
218
- this.$destroy.next();
219
- this.$destroy.complete();
220
- };
221
- /**
222
- * @param {?} event
223
- * @return {?}
224
- */
225
- FsChipComponent.prototype.remove = /**
226
- * @param {?} event
227
- * @return {?}
228
- */
229
- function (event) {
230
- this.removed.next(event);
231
- };
232
- /**
233
- * @private
234
- * @param {?} hexcolor
235
- * @return {?}
236
- */
237
- FsChipComponent.prototype.isContrastYIQBlack = /**
238
- * @private
239
- * @param {?} hexcolor
240
- * @return {?}
241
- */
242
- function (hexcolor) {
243
- if (!hexcolor) {
244
- return true;
245
- }
246
- hexcolor = hexcolor.replace('#', '');
247
- /** @type {?} */
248
- var r = parseInt(hexcolor.substr(0, 2), 16);
249
- /** @type {?} */
250
- var g = parseInt(hexcolor.substr(2, 2), 16);
251
- /** @type {?} */
252
- var b = parseInt(hexcolor.substr(4, 2), 16);
253
- /** @type {?} */
254
- var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;
255
- return yiq >= 200;
256
- };
257
- /**
258
- * @private
259
- * @return {?}
260
- */
261
- FsChipComponent.prototype.updateStyles = /**
262
- * @private
263
- * @return {?}
264
- */
265
- function () {
266
- this.styleBackgroundColor = this._backgroundColor;
267
- if (this._color) {
268
- this.styleColor = this._color;
269
- }
270
- else if (!this._outlined) {
271
- this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';
272
- }
273
- if (this._outlined) {
274
- this.styleBackgroundColor = '';
275
- if (this._color) {
276
- this.styleBorderColor = this._color;
277
- }
278
- }
279
- this._cdRef.markForCheck();
280
- };
281
- FsChipComponent.decorators = [
282
- { type: Component, args: [{
283
- selector: 'fs-chip',
284
- template: "<img *ngIf=\"image\" [src]=\"image\" class=\"image\" alt=\"\">\n<div class=\"fs-chip-content\">\n <ng-content></ng-content>\n</div>\n<div class=\"selected-check\" *ngIf=\"selected\">\n <mat-icon [style.color]=\"styleColor\">check</mat-icon>\n</div>\n<a *ngIf=\"removable\" class=\"remove\" (click)=\"remove($event)\">\n <mat-icon [style.color]=\"styleColor\">cancel</mat-icon>\n</a>\n",
285
- changeDetection: ChangeDetectionStrategy.OnPush,
286
- styles: [""]
287
- }] }
288
- ];
289
- /** @nocollapse */
290
- FsChipComponent.ctorParameters = function () { return [
291
- { type: ChangeDetectorRef },
292
- { type: FsChipsService, decorators: [{ type: Optional }] }
293
- ]; };
294
- FsChipComponent.propDecorators = {
295
- fsChip: [{ type: HostBinding, args: ['class.fs-chip',] }],
296
- _outlined: [{ type: HostBinding, args: ['class.outlined',] }],
297
- _selectable: [{ type: HostBinding, args: ['class.selectable',] }],
298
- _image: [{ type: HostBinding, args: ['class.imaged',] }],
299
- _selected: [{ type: HostBinding, args: ['class.selected',] }],
300
- _removable: [{ type: HostBinding, args: ['class.removable',] }],
301
- styleBackgroundColor: [{ type: HostBinding, args: ['style.backgroundColor',] }],
302
- styleColor: [{ type: HostBinding, args: ['style.color',] }],
303
- styleBorderColor: [{ type: HostBinding, args: ['style.borderColor',] }],
304
- classSmall: [{ type: HostBinding, args: ['class.small',] }],
305
- classTiny: [{ type: HostBinding, args: ['class.tiny',] }],
306
- setSize: [{ type: Input, args: ['size',] }],
307
- click: [{ type: HostListener, args: ['click',] }],
308
- value: [{ type: Input }],
309
- backgroundColor: [{ type: Input }],
310
- borderColor: [{ type: Input }],
311
- color: [{ type: Input }],
312
- outlined: [{ type: Input }],
313
- removable: [{ type: Input }],
314
- selectable: [{ type: Input }],
315
- selected: [{ type: Input }],
316
- image: [{ type: Input }],
317
- selectedToggled: [{ type: Output }],
318
- removed: [{ type: Output }]
319
- };
320
- return FsChipComponent;
321
- }());
322
- export { FsChipComponent };
323
- if (false) {
324
- /** @type {?} */
325
- FsChipComponent.prototype.fsChip;
326
- /** @type {?} */
327
- FsChipComponent.prototype._outlined;
328
- /** @type {?} */
329
- FsChipComponent.prototype._selectable;
330
- /** @type {?} */
331
- FsChipComponent.prototype._image;
332
- /** @type {?} */
333
- FsChipComponent.prototype._selected;
334
- /** @type {?} */
335
- FsChipComponent.prototype._removable;
336
- /** @type {?} */
337
- FsChipComponent.prototype.styleBackgroundColor;
338
- /** @type {?} */
339
- FsChipComponent.prototype.styleColor;
340
- /** @type {?} */
341
- FsChipComponent.prototype.styleBorderColor;
342
- /** @type {?} */
343
- FsChipComponent.prototype.classSmall;
344
- /** @type {?} */
345
- FsChipComponent.prototype.classTiny;
346
- /** @type {?} */
347
- FsChipComponent.prototype.value;
348
- /** @type {?} */
349
- FsChipComponent.prototype.selectedToggled;
350
- /** @type {?} */
351
- FsChipComponent.prototype.removed;
352
- /** @type {?} */
353
- FsChipComponent.prototype.$destroy;
354
- /**
355
- * @type {?}
356
- * @private
357
- */
358
- FsChipComponent.prototype._backgroundColor;
359
- /**
360
- * @type {?}
361
- * @private
362
- */
363
- FsChipComponent.prototype._color;
364
- /**
365
- * @type {?}
366
- * @private
367
- */
368
- FsChipComponent.prototype._size;
369
- /**
370
- * @type {?}
371
- * @private
372
- */
373
- FsChipComponent.prototype._cdRef;
374
- /**
375
- * @type {?}
376
- * @private
377
- */
378
- FsChipComponent.prototype._chips;
379
- /* Skipping unhandled member: ;*/
380
- /* Skipping unhandled member: ;*/
381
- /* Skipping unhandled member: ;*/
382
- /* Skipping unhandled member: ;*/
383
- /* Skipping unhandled member: ;*/
384
- /* Skipping unhandled member: ;*/
385
- /* Skipping unhandled member: ;*/
386
- }
387
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9jaGlwLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvY2hpcC9jaGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFBRSxpQkFBaUIsRUFDMUMsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzlEO0lBb0hFLHlCQUNVLE1BQXlCLEVBQ2IsTUFBc0I7UUFEbEMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQTlHZCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNoQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ2IseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDVixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFNUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBcUI3QixVQUFLLEdBQUcsSUFBSSxDQUFDO1FBbUVaLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV4QixxQkFBZ0IsR0FBRyxFQUFF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QkFBZ0I7OEJBQzVCLFdBQVcsU0FBQyxrQkFBa0I7eUJBQzlCLFdBQVcsU0FBQyxjQUFjOzRCQUMxQixXQUFXLFNBQUMsZ0JBQWdCOzZCQUM1QixXQUFXLFNBQUMsaUJBQWlCO3VDQUM3QixXQUFXLFNBQUMsdUJBQXVCOzZCQUNuQyxXQUFXLFNBQUMsYUFBYTttQ0FDekIsV0FBVyxTQUFDLG1CQUFtQjs2QkFFL0IsV0FBVyxTQUFDLGFBQWE7NEJBQ3pCLFdBQVcsU0FBQyxZQUFZOzBCQUV4QixLQUFLLFNBQUMsTUFBTTt3QkFNWixZQUFZLFNBQUMsT0FBTzt3QkFhcEIsS0FBSztrQ0FFTCxLQUFLOzhCQUtMLEtBQUs7d0JBSUwsS0FBSzsyQkFTTCxLQUFLOzRCQVNMLEtBQUs7NkJBVUwsS0FBSzsyQkFRTCxLQUFLO3dCQVVMLEtBQUs7a0NBVUwsTUFBTTswQkFDTixNQUFNOztJQWlFVCxzQkFBQztDQUFBLEFBN0tELElBNktDO1NBdktZLGVBQWU7OztJQUUxQixpQ0FBNEM7O0lBQzVDLG9DQUFpRDs7SUFDakQsc0NBQXFEOztJQUNyRCxpQ0FBNEM7O0lBQzVDLG9DQUFpRDs7SUFDakQscUNBQW1EOztJQUNuRCwrQ0FBZ0U7O0lBQ2hFLHFDQUE0Qzs7SUFDNUMsMkNBQXdEOztJQUV4RCxxQ0FBK0M7O0lBQy9DLG9DQUE2Qzs7SUFxQjdDLGdDQUE2Qjs7SUFtRTdCLDBDQUFzRDs7SUFDdEQsa0NBQThDOztJQUU5QyxtQ0FBZ0M7Ozs7O0lBRWhDLDJDQUE4Qjs7Ozs7SUFDOUIsaUNBQW9COzs7OztJQUNwQixnQ0FBYzs7Ozs7SUFHWixpQ0FBaUM7Ozs7O0lBQ2pDLGlDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZzQ2hpcHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hpcHMuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtY2hpcCcsXG4gIHRlbXBsYXRlVXJsOiAnY2hpcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjaGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0NoaXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1jaGlwJykgZnNDaGlwID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vdXRsaW5lZCcpIF9vdXRsaW5lZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGFibGUnKSBfc2VsZWN0YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmltYWdlZCcpIF9pbWFnZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJykgX3NlbGVjdGVkID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MucmVtb3ZhYmxlJykgX3JlbW92YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmRDb2xvcicpIHN0eWxlQmFja2dyb3VuZENvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuY29sb3InKSBzdHlsZUNvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuYm9yZGVyQ29sb3InKSBzdHlsZUJvcmRlckNvbG9yID0gJyc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGNsYXNzU21hbGwgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aW55JykgY2xhc3NUaW55ID0gZmFsc2U7XG5cbiAgQElucHV0KCdzaXplJykgc2V0IHNldFNpemUodmFsdWUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5jbGFzc1NtYWxsID0gdmFsdWUgPT09ICdzbWFsbCc7XG4gICAgdGhpcy5jbGFzc1RpbnkgPSB2YWx1ZSA9PT0gJ3RpbnknO1xuICB9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIGNsaWNrKCkge1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9ICF0aGlzLnNlbGVjdGVkO1xuICAgICAgdGhpcy5zZWxlY3RlZFRvZ2dsZWQuZW1pdCh7IHZhbHVlOiB0aGlzLnZhbHVlLCBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcblxuICAgICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICAgIHRoaXMuX2NoaXBzLnNlbGVjdGlvbkNoYW5nZWQodGhpcy5zZWxlY3RlZCwgdGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgcHVibGljIHZhbHVlID0gbnVsbDtcblxuICBASW5wdXQoKSBzZXQgYmFja2dyb3VuZENvbG9yKHZhbHVlKSB7XG4gICAgdGhpcy5fYmFja2dyb3VuZENvbG9yID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfTtcblxuICBASW5wdXQoKSBzZXQgYm9yZGVyQ29sb3IodmFsdWUpIHtcbiAgICB0aGlzLnN0eWxlQm9yZGVyQ29sb3IgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICB9XG4gIEBJbnB1dCgpIHNldCBjb2xvcih2YWx1ZSkge1xuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfVxuXG4gIGdldCBjb2xvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgb3V0bGluZWQodmFsdWUpIHtcbiAgICB0aGlzLl9vdXRsaW5lZCA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gIH07XG5cbiAgZ2V0IG91dGxpbmVkKCkge1xuICAgIHJldHVybiB0aGlzLl9vdXRsaW5lZDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCByZW1vdmFibGUodmFsdWUpIHtcbiAgICB0aGlzLl9yZW1vdmFibGUgPSB2YWx1ZTtcblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGdldCByZW1vdmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW92YWJsZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RhYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fc2VsZWN0YWJsZSA9IHZhbHVlO1xuICB9O1xuXG4gIGdldCBzZWxlY3RhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RhYmxlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWx1ZTtcblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGdldCBzZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaW1hZ2UodmFsdWUpIHtcbiAgICB0aGlzLl9pbWFnZSA9IHZhbHVlO1xuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgZ2V0IGltYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbWFnZTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWRUb2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljICRkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9iYWNrZ3JvdW5kQ29sb3IgPSAnJztcbiAgcHJpdmF0ZSBfY29sb3IgPSAnJztcbiAgcHJpdmF0ZSBfc2l6ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY2hpcHM6IEZzQ2hpcHNTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICB0aGlzLl9jaGlwcy5yZWdpc3Rlcih0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICB0aGlzLl9jaGlwcy5kZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHRoaXMuJGRlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMuJGRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmUoZXZlbnQpIHtcbiAgICB0aGlzLnJlbW92ZWQubmV4dChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIGlzQ29udHJhc3RZSVFCbGFjayhoZXhjb2xvcikge1xuICAgIGlmICghaGV4Y29sb3IpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGhleGNvbG9yID0gaGV4Y29sb3IucmVwbGFjZSgnIycsICcnKTtcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4Y29sb3Iuc3Vic3RyKDAsIDIpLCAxNik7XG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGhleGNvbG9yLnN1YnN0cigyLCAyKSwgMTYpO1xuICAgIGNvbnN0IGIgPSBwYXJzZUludChoZXhjb2xvci5zdWJzdHIoNCwgMiksIDE2KTtcbiAgICBjb25zdCB5aXEgPSAoKHIgKiAyOTkpICsgKGcgKiA1ODcpICsgKGIgKiAxMTQpKSAvIDEwMDA7XG5cbiAgICByZXR1cm4geWlxID49IDIwMDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3R5bGVzKCkge1xuICAgIHRoaXMuc3R5bGVCYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLl9iYWNrZ3JvdW5kQ29sb3I7XG5cbiAgICBpZiAodGhpcy5fY29sb3IpIHtcbiAgICAgIHRoaXMuc3R5bGVDb2xvciA9IHRoaXMuX2NvbG9yO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX291dGxpbmVkKSB7XG4gICAgICB0aGlzLnN0eWxlQ29sb3IgPSB0aGlzLmlzQ29udHJhc3RZSVFCbGFjayh0aGlzLnN0eWxlQmFja2dyb3VuZENvbG9yKSA/ICcjNDc0NzQ3JyA6ICcjZmZmJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fb3V0bGluZWQpIHtcbiAgICAgIHRoaXMuc3R5bGVCYWNrZ3JvdW5kQ29sb3IgPSAnJztcblxuICAgICAgaWYgKHRoaXMuX2NvbG9yKSB7XG4gICAgICAgIHRoaXMuc3R5bGVCb3JkZXJDb2xvciA9IHRoaXMuX2NvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=