ngx-sfc-common 0.0.32 → 0.0.33

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.
@@ -7,7 +7,6 @@ import * as i2 from "../close/close.component";
7
7
  import * as i3 from "../icon/icon.component";
8
8
  export class TagComponent {
9
9
  constructor() {
10
- this.remove = false;
11
10
  this.model = {
12
11
  key: CommonConstants.DEFAULT_KEY_VALUE,
13
12
  label: TagConstants.DEFAULT_LABEL
@@ -21,13 +20,11 @@ export class TagComponent {
21
20
  }
22
21
  }
23
22
  TagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
- TagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagComponent, selector: "sfc-tag", inputs: { remove: "remove", model: "model" }, outputs: { removeAction: "remove" }, host: { listeners: { "click": "_onClick()" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon *ngIf=\"model.icon || model.imageSrc\" [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.remove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CloseComponent, selector: "sfc-close" }, { kind: "component", type: i3.IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
23
+ TagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagComponent, selector: "sfc-tag", inputs: { model: "model" }, outputs: { removeAction: "remove" }, host: { listeners: { "click": "_onClick()" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.allowRemove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CloseComponent, selector: "sfc-close" }, { kind: "component", type: i3.IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
25
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagComponent, decorators: [{
26
25
  type: Component,
27
- args: [{ selector: 'sfc-tag', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon *ngIf=\"model.icon || model.imageSrc\" [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.remove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"] }]
28
- }], propDecorators: { remove: [{
29
- type: Input
30
- }], model: [{
26
+ args: [{ selector: 'sfc-tag', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.allowRemove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"] }]
27
+ }], propDecorators: { model: [{
31
28
  type: Input
32
29
  }], removeAction: [{
33
30
  type: Output,
@@ -36,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
36
33
  type: HostListener,
37
34
  args: ['click']
38
35
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy90YWcvdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy90YWcvdGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBUS9DLE1BQU0sT0FBTyxZQUFZO0lBTHpCO1FBUUUsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUd4QixVQUFLLEdBQWM7WUFDakIsR0FBRyxFQUFFLGVBQWUsQ0FBQyxpQkFBaUI7WUFDdEMsS0FBSyxFQUFFLFlBQVksQ0FBQyxhQUFhO1NBQ2xDLENBQUM7UUFHRixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7S0FROUM7SUFMUyxRQUFRLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7UUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRW5FLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7eUdBbkJVLFlBQVk7NkZBQVosWUFBWSxrTENWekIsdVVBTU07MkZESU8sWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxTQUFTOzhCQU9uQixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQU9OLFlBQVk7c0JBRFgsTUFBTTt1QkFBQyxRQUFRO2dCQUlSLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Db25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBUYWdDb25zdGFudHMgfSBmcm9tICcuL3RhZy5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBJVGFnTW9kZWwgfSBmcm9tICcuL3RhZy5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NmYy10YWcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWdDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJlbW92ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1vZGVsOiBJVGFnTW9kZWwgPSB7XHJcbiAgICBrZXk6IENvbW1vbkNvbnN0YW50cy5ERUZBVUxUX0tFWV9WQUxVRSxcclxuICAgIGxhYmVsOiBUYWdDb25zdGFudHMuREVGQVVMVF9MQUJFTFxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoJ3JlbW92ZScpXHJcbiAgcmVtb3ZlQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFnTW9kZWw+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICBwcml2YXRlIF9vbkNsaWNrKCkgeyBpZiAodGhpcy5tb2RlbC5jbGljaykgdGhpcy5tb2RlbC5jbGljayh0aGlzLm1vZGVsKTsgfVxyXG5cclxuICBwdWJsaWMgb25SZW1vdmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUFjdGlvbi5lbWl0KHRoaXMubW9kZWwpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgIDxzZmMtaWNvbiAqbmdJZj1cIm1vZGVsLmljb24gfHwgbW9kZWwuaW1hZ2VTcmNcIiBbaWNvbl09XCJtb2RlbC5pY29uXCIgW2ltYWdlU3JjXT1cIm1vZGVsLmltYWdlU3JjXCI+PC9zZmMtaWNvbj5cclxuICAgICAgICA8c3Bhbj57e21vZGVsLmxhYmVsfX08L3NwYW4+XHJcbiAgICAgICAgPHNmYy1jbG9zZSAqbmdJZj1cIm1vZGVsLnJlbW92ZVwiIChjbGljayk9XCJvblJlbW92ZSgpXCI+PC9zZmMtY2xvc2U+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy90YWcvdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy90YWcvdGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBUS9DLE1BQU0sT0FBTyxZQUFZO0lBTHpCO1FBUUUsVUFBSyxHQUFjO1lBQ2pCLEdBQUcsRUFBRSxlQUFlLENBQUMsaUJBQWlCO1lBQ3RDLEtBQUssRUFBRSxZQUFZLENBQUMsYUFBYTtTQUNsQyxDQUFDO1FBR0YsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO0tBUTlDO0lBTFMsUUFBUSxLQUFXLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1FBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6RSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O3lHQWhCVSxZQUFZOzZGQUFaLFlBQVksZ0tDVnpCLHFTQU1NOzJGRElPLFlBQVk7a0JBTHhCLFNBQVM7K0JBQ0UsU0FBUzs4QkFPbkIsS0FBSztzQkFESixLQUFLO2dCQU9OLFlBQVk7c0JBRFgsTUFBTTt1QkFBQyxRQUFRO2dCQUlSLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Db25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBUYWdDb25zdGFudHMgfSBmcm9tICcuL3RhZy5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBJVGFnTW9kZWwgfSBmcm9tICcuL3RhZy5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NmYy10YWcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWdDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1vZGVsOiBJVGFnTW9kZWwgPSB7XHJcbiAgICBrZXk6IENvbW1vbkNvbnN0YW50cy5ERUZBVUxUX0tFWV9WQUxVRSxcclxuICAgIGxhYmVsOiBUYWdDb25zdGFudHMuREVGQVVMVF9MQUJFTFxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoJ3JlbW92ZScpXHJcbiAgcmVtb3ZlQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFnTW9kZWw+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICBwcml2YXRlIF9vbkNsaWNrKCk6IHZvaWQgeyBpZiAodGhpcy5tb2RlbC5jbGljaykgdGhpcy5tb2RlbC5jbGljayh0aGlzLm1vZGVsKTsgfVxyXG5cclxuICBwdWJsaWMgb25SZW1vdmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUFjdGlvbi5lbWl0KHRoaXMubW9kZWwpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgIDxzZmMtaWNvbiBbaWNvbl09XCJtb2RlbC5pY29uXCIgW2ltYWdlU3JjXT1cIm1vZGVsLmltYWdlU3JjXCI+PC9zZmMtaWNvbj5cclxuICAgICAgICA8c3Bhbj57e21vZGVsLmxhYmVsfX08L3NwYW4+XHJcbiAgICAgICAgPHNmYy1jbG9zZSAqbmdJZj1cIm1vZGVsLmFsbG93UmVtb3ZlXCIgKGNsaWNrKT1cIm9uUmVtb3ZlKClcIj48L3NmYy1jbG9zZT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL3RhZy90YWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVtcHR5IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBJY29uRGVmaW5pdGlvbiB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRhZ01vZGVsIHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBrZXk/OiBhbnkgfCBlbXB0eTtcclxuICAgIGFyZ3M/OiBhbnk7XHJcbiAgICBpY29uPzogSWNvbkRlZmluaXRpb24gfCBlbXB0eTtcclxuICAgIGltYWdlU3JjPzogc3RyaW5nIHwgZW1wdHk7XHJcbiAgICByZW1vdmU/OiBib29sZWFuO1xyXG4gICAgY2xpY2s/OiAobW9kZWw6IElUYWdNb2RlbCkgPT4gdm9pZCB8IGVtcHR5O1xyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL3RhZy90YWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVtcHR5IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBJY29uRGVmaW5pdGlvbiB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRhZ01vZGVsIHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBrZXk/OiBhbnkgfCBlbXB0eTtcclxuICAgIGFyZ3M/OiBhbnk7XHJcbiAgICBpY29uPzogSWNvbkRlZmluaXRpb24gfCBlbXB0eTtcclxuICAgIGltYWdlU3JjPzogc3RyaW5nIHwgZW1wdHk7XHJcbiAgICBhbGxvd1JlbW92ZT86IGJvb2xlYW47XHJcbiAgICBjbGljaz86IChtb2RlbDogSVRhZ01vZGVsKSA9PiB2b2lkIHwgZW1wdHk7XHJcbn0iXX0=
@@ -299,7 +299,12 @@ export function findChangedPropertyKey(previous, current) {
299
299
  const path = findChangedPropertyPath(previous, current), parts = path?.split('.');
300
300
  return parts && parts.length ? parts[parts.length - 1] : undefined;
301
301
  }
302
+ /**
303
+ * Clone object without any reference
304
+ * @param value Object to clone
305
+ * @returns Cloned object
306
+ */
302
307
  export function deepClone(value) {
303
308
  return JSON.parse(JSON.stringify(value));
304
309
  }
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9jb21tb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUN0RCxPQUFVLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7V0FDaEQsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztXQUNyQixDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNuQyxPQUFPLElBQUksWUFBWSxVQUFVLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsUUFBZ0IsRUFBRSxRQUFhLElBQUk7SUFDL0UsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3hELElBQUksTUFBTSxHQUFRLEVBQUUsQ0FB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aW1wb3J0IHsgZW1wdHkgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IGFkZEl0ZW0sIGhhc0l0ZW0sIHJlbW92ZUl0ZW0gfSBmcm9tICcuL2NvbGxlY3Rpb25zLnV0aWxzJztcclxuaW1wb3J0IHsgaXNFcXVhbERhdGVUaW1lcyB9IGZyb20gJy4vZGF0ZS10aW1lLnV0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZSBkZWZpbmVkXHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBjaGVja1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGlzIG5vdCBudWxsIGFuZCBkZWZpbmVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEZWZpbmVkPFQ+KHZhbHVlOiBUIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiA8VD52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIDxUPnZhbHVlICE9PSBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgaXMgb2JqZWN0XHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBjaGVja1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGlzIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gKGlzRGVmaW5lZCh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xyXG4gICAgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpXHJcbiAgICAmJiAhKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIEZpbGUpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGRhdGEgaXMgb2JzZXJ2YWJsZVxyXG4gKiBAcGFyYW0gZGF0YSBPYmplY3QgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiBkYXRhIGlzIG9ic2VydmFibGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0FzeW5jRGF0YShkYXRhOiBhbnkpIHtcclxuICByZXR1cm4gZGF0YSBpbnN0YW5jZW9mIE9ic2VydmFibGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gZXh0ZW5kZWQgb2JqZWN0IHdpdGggbmV3IHByb3BlcnR5XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IHRvIGV4dGVuZCBieSBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gcHJvcGVydHkgTmV3IHByb3BlcnR5IG5hbWUgXHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBmb3IgbmV3IHByb3BlcnR5XHJcbiAqIEByZXR1cm5zIEV4dGVuZGVkIG9iamVjdCB3aXRoIG5ldyBwcm9wZXJ0eVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFByb3BlcnR5VG9PYmplY3Qob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBhbnkgPSBudWxsKTogYW55IHtcclxuICBpZiAoaXNEZWZpbmVkKHByb3BlcnR5KSAmJiAhb2JqLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xyXG4gICAgbGV0IG5ld09iajogYW55ID0ge307XHJcbiAgICBuZXdPYmpbcHJvcGVydHldID0gdmFsdWU7XHJcbiAgICBvYmogPSB7IC4uLm9iaiwgLi4ubmV3T2JqIH07XHJcbiAgfVxyXG5cclxuICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHByb3BlcnR5IGZyb20gb2JqZWN0XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IGZvciByZW1vdmluZyBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgbmFtZSB0byByZW1vdmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcm9wZXJ0eUZyb21PYmplY3Qob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiB2b2lkIHtcclxuICBpZiAob2JqLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xyXG4gICAgZGVsZXRlIG9ialtwcm9wZXJ0eV07XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogRGVlcCBtZXJnZSBvYmplY3Qgd2l0aCBvdGhlcnNcclxuICogQHBhcmFtIHRhcmdldCAgT2JqZWN0IHRvIG1lcmdlXHJcbiAqIEBwYXJhbSBzb3VyY2VzIE9iamVjdHMgdG8gYmUgbWVyZ2VkIHdpdGggdGFyZ2V0XHJcbiAqIEByZXR1cm5zIE1lcmdlZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtZXJnZURlZXAodGFyZ2V0OiBhbnksIC4uLnNvdXJjZXM6IGFueVtdKTogYW55IHtcclxuICBpZiAoIXNvdXJjZXMubGVuZ3RoKVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxuXHJcbiAgY29uc3Qgc291cmNlID0gc291cmNlcy5zaGlmdCgpO1xyXG5cclxuICBpZiAoaXNPYmplY3QodGFyZ2V0KSAmJiBpc09iamVjdChzb3VyY2UpKSB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcclxuICAgICAgaWYgKGlzT2JqZWN0KHNvdXJjZVtrZXldKSkge1xyXG4gICAgICAgIGlmICghdGFyZ2V0W2tleV0pIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7IFtrZXldOiB7fSB9KTtcclxuICAgICAgICBtZXJnZURlZXAodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBtZXJnZURlZXAodGFyZ2V0LCAuLi5zb3VyY2VzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCB0eXBlJ3MgcHJvcGVydHkgbmFtZSBzYWZldHlcclxuICogQHBhcmFtIG5hbWUgS2V5T2YgcHJvcGVydHlcclxuICogQHJldHVybnMgVHlwZSdzIHByb3BlcnR5IG5hbWVcclxuICovXHJcbmV4cG9ydCBjb25zdCBuYW1lb2YgPSA8VD4obmFtZToga2V5b2YgVCkgPT4gbmFtZTtcclxuXHJcbi8qKlxyXG4gICAqIERldGVybWluZXMgaWYgdGhlIGlucHV0IGlzIGEgTnVtYmVyIG9yIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBjb2VyY2VkIHRvIGEgTnVtYmVyXHJcbiAgICogQHBhcmFtIG51bWJlciBUaGUgaW5wdXQgdG8gYmUgdGVzdGVkXHJcbiAgICogQHJldHVybnMgLSBBbiBpbmRpY2F0aW9uIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlclxyXG4gICAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1lcmljKG51bWJlcjogYW55KTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG51bWJlcikpO1xyXG59XHJcblxyXG4vKipcclxuICogIERldGVybWluZXMgaWYgdGhlIGlucHV0IGlzIGEgc3RyaW5nXHJcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgaW5wdXQgdG8gYmUgdGVzdGVkXHJcbiAqIEByZXR1cm5zIEFuIGluZGljYXRpb24gaWYgdGhlIGlucHV0IGlzIGEgc3RyaW5nXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgY3VycmVudCBicm93c2VyIGlzIENocm9tZVxyXG4gKiBAcmV0dXJucyBJZiBjdXJyZW50IGJyb3dzZXIgaXMgQ2hyb21lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNDaHJvbWVCcm93c2VyKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAvQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIC9Hb29nbGUgSW5jLy50ZXN0KG5hdmlnYXRvci52ZW5kb3IpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgaXMgdmFsaWQgZW1haWwgYWRkcmVzc1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGl0J3MgdmFsaWQgZW1haWwgYWRkcmVzc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1haWwodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBpc0RlZmluZWQodmFsdWUubWF0Y2goXHJcbiAgICAvXigoW148PigpW1xcXVxcXFwuLDs6XFxzQFxcXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXFxcIl0rKSopfChcXFwiLitcXFwiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFxdKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkL1xyXG4gICkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgc3RyaW5nIGlzIFwidHJ1ZVwiXHJcbiAqIEByZXR1cm5zIHBhcnNlZCBzdHJpbmcgYXMgYm9vbGVhblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQm9vbGVhbih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIC9edHJ1ZSQvaS50ZXN0KHZhbHVlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlcyBlcXVhbFxyXG4gKiBAcGFyYW0gb2JqMSBGaXJzdCB2YWx1ZSB0byBjb21wYXJlXHJcbiAqIEBwYXJhbSBvYmoyIFNlY29uZCB2YWx1ZSB0byBjb21wYXJlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZXF1YWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VxdWFsKG9iajE6IGFueSwgb2JqMjogYW55KSB7XHJcbiAgLyoqXHJcbiAgICogTW9yZSBhY2N1cmF0ZWx5IGNoZWNrIHRoZSB0eXBlIG9mIGEgSmF2YVNjcmlwdCBvYmplY3RcclxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9iaiBUaGUgb2JqZWN0XHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgVGhlIG9iamVjdCB0eXBlXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gZ2V0VHlwZShvYmo6IGFueSkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlQXJyYXlzRXF1YWwoKSB7XHJcblxyXG4gICAgLy8gQ2hlY2sgbGVuZ3RoXHJcbiAgICBpZiAob2JqMS5sZW5ndGggIT09IG9iajIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgLy8gQ2hlY2sgZWFjaCBpdGVtIGluIHRoZSBhcnJheVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmoxLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICghaXNFcXVhbChvYmoxW2ldLCBvYmoyW2ldKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIG5vIGVycm9ycywgcmV0dXJuIHRydWVcclxuICAgIHJldHVybiB0cnVlO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZU9iamVjdHNFcXVhbCgpIHtcclxuXHJcbiAgICBpZiAoT2JqZWN0LmtleXMob2JqMSkubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhvYmoyKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAvLyBDaGVjayBlYWNoIGl0ZW0gaW4gdGhlIG9iamVjdFxyXG4gICAgZm9yIChsZXQga2V5IGluIG9iajEpIHtcclxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmoxLCBrZXkpKSB7XHJcbiAgICAgICAgaWYgKCFpc0VxdWFsKG9iajFba2V5XSwgb2JqMltrZXldKSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIG5vIGVycm9ycywgcmV0dXJuIHRydWVcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlRmlsZXNFcXVhbCgpIHtcclxuICAgIHJldHVybiBvYmoxLmxhc3RNb2RpZmllZCA9PT0gb2JqMi5sYXN0TW9kaWZpZWRcclxuICAgICAgJiYgb2JqMS5zaXplID09PSBvYmoyLnNpemVcclxuICAgICAgJiYgb2JqMS50eXBlID09PSBvYmoyLnR5cGU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhcmVGdW5jdGlvbnNFcXVhbCgpIHtcclxuICAgIHJldHVybiBvYmoxLnRvU3RyaW5nKCkgPT09IG9iajIudG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZVByaW1hdGl2ZXNFcXVhbCgpIHtcclxuICAgIHJldHVybiBvYmoxID09PSBvYmoyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlRGF0ZXNFcXVhbCgpIHtcclxuICAgIHJldHVybiBpc0VxdWFsRGF0ZVRpbWVzKG9iajEsIG9iajIpO1xyXG4gIH1cclxuXHJcbiAgLy8gR2V0IHRoZSBvYmplY3QgdHlwZVxyXG4gIGxldCB0eXBlID0gZ2V0VHlwZShvYmoxKTtcclxuXHJcbiAgLy8gSWYgdGhlIHR3byBpdGVtcyBhcmUgbm90IHRoZSBzYW1lIHR5cGUsIHJldHVybiBmYWxzZVxyXG4gIGlmICh0eXBlICE9PSBnZXRUeXBlKG9iajIpKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gIC8vIENvbXBhcmUgYmFzZWQgb24gdHlwZVxyXG4gIGlmICh0eXBlID09PSAnYXJyYXknKSByZXR1cm4gYXJlQXJyYXlzRXF1YWwoKTtcclxuXHJcbiAgaWYgKHR5cGUgPT09ICdkYXRlJykgcmV0dXJuIGFyZURhdGVzRXF1YWwoKTtcclxuXHJcbiAgaWYgKHR5cGUgPT09ICdmaWxlJykgcmV0dXJuIGFyZUZpbGVzRXF1YWwoKTtcclxuXHJcbiAgaWYgKHR5cGUgPT09ICdvYmplY3QnKSByZXR1cm4gYXJlT2JqZWN0c0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSByZXR1cm4gYXJlRnVuY3Rpb25zRXF1YWwoKTtcclxuXHJcbiAgcmV0dXJuIGFyZVByaW1hdGl2ZXNFcXVhbCgpO1xyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhdGUgdW5pcXVlIGlkZW50aWZpY2F0b3JcclxuICogQHJldHVybnMgUmFuZG9tIEdVSURcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUd1aWQoKTogc3RyaW5nIHtcclxuICBsZXQgUzQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gKCgoMSArIE1hdGgucmFuZG9tKCkpICogMHgxMDAwMCkgfCAwKS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEpO1xyXG4gIH07XHJcbiAgcmV0dXJuIChTNCgpICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFM0KCkgKyBTNCgpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIHZhbHVlIGlzIEpzb24gcGFyc2FibGUgc3RyaW5nXHJcbiAqIEBwYXJhbSB2YWx1ZSBzdHJpbmcgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBzdHJpbmcgY2FuIGJlIEpTT04gcGFyc2VkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNKc29uU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICB0cnkge1xyXG4gICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UodmFsdWUpO1xyXG4gICAgcmV0dXJuICh0eXBlb2YganNvbiA9PT0gJ29iamVjdCcpO1xyXG4gIH0gY2F0Y2ggKGUpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdG9wIHByb3BhZ2F0aW9uIGFuZCBwcmV2ZW50IGRlZmF1bHRcclxuICogQHBhcmFtIGV2ZW50IEV2ZW50IG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BBbmRQcmV2ZW50UHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFVwZGF0ZSBwcm9wZXJ0eSBpbiBvYmplY3QgYnkga2V5XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IHRvIGNoYW5nZVxyXG4gKiBAcGFyYW0gcHJvcGVydHlLZXkgUHJvcGVydHkgdG8gY2hhbmdlXHJcbiAqIEBwYXJhbSBuZXdQcm9wZXJ0eVZhbHVlIE5ldyBwcm9wZXJ0eSB2YWx1ZVxyXG4gKiBAcGFyYW0gb2xkUHJvcGVydHlWYWx1ZSBPbGQgcHJvcGVydHkgdmFsdWVcclxuICogQHJldHVybnMgVXBkYXRlZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVQcm9wZXJ0eUJ5S2V5KFxyXG4gIG9iajogYW55LFxyXG4gIHByb3BlcnR5S2V5OiBzdHJpbmcsXHJcbiAgbmV3UHJvcGVydHlWYWx1ZTogYW55LFxyXG4gIG9sZFByb3BlcnR5VmFsdWU6IGFueVxyXG4pOiBhbnkge1xyXG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuICAgIHJldHVybiBvYmoubWFwKGl0ZW0gPT4ge1xyXG4gICAgICByZXR1cm4gaXNPYmplY3QoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbFxyXG4gICAgICAgID8gdXBkYXRlUHJvcGVydHlCeUtleShpdGVtLCBwcm9wZXJ0eUtleSwgbmV3UHJvcGVydHlWYWx1ZSwgb2xkUHJvcGVydHlWYWx1ZSlcclxuICAgICAgICA6IGl0ZW07XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9iaikgJiYgb2JqICE9PSBudWxsKSB7XHJcbiAgICBjb25zdCB1cGRhdGVkT2JqOiBhbnkgPSB7fTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgICBpZiAoa2V5ID09PSBwcm9wZXJ0eUtleSkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9ialtrZXldKSkge1xyXG4gICAgICAgICAgaWYgKGhhc0l0ZW0ob2JqW2tleV0sIG9sZFByb3BlcnR5VmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJlbW92ZUl0ZW0ob2JqW2tleV0sIG9sZFByb3BlcnR5VmFsdWUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYWRkSXRlbShvYmpba2V5XSwgb2xkUHJvcGVydHlWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdXBkYXRlZE9ialtrZXldID0gb2JqW2tleV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHVwZGF0ZWRPYmpba2V5XSA9IG5ld1Byb3BlcnR5VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVwZGF0ZWRPYmpba2V5XSA9IHVwZGF0ZVByb3BlcnR5QnlLZXkob2JqW2tleV0sIHByb3BlcnR5S2V5LCBuZXdQcm9wZXJ0eVZhbHVlLCBvbGRQcm9wZXJ0eVZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB1cGRhdGVkT2JqO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG9iajtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBjaGFuZ2VkIHByb3BlcnR5IHBhdGhcclxuICogQHBhcmFtIHByZXZpb3VzIFByZXZpb3VzIHZhbHVlIFxyXG4gKiBAcGFyYW0gY3VycmVudCBDdXJyZW5jeSB2YWx1ZVxyXG4gKiBAcGFyYW0gcGFyZW50S2V5IFBhcmVudCBvYmplY3Qga2V5IG5hbWVcclxuICogQHJldHVybnMgUGF0aCBvZiBwcm9wZXJ0eSB0aGF0IHdhcyBjaGFuZ2VkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmluZENoYW5nZWRQcm9wZXJ0eVBhdGgocHJldmlvdXM6IGFueSwgY3VycmVudDogYW55LCBwYXJlbnRLZXkgPSAnJyk6IHN0cmluZyB8IGVtcHR5IHtcclxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhjdXJyZW50KSkge1xyXG4gICAgY29uc3QgZnVsbEtleTogc3RyaW5nID0gcGFyZW50S2V5ID8gYCR7cGFyZW50S2V5fS4ke2tleX1gIDoga2V5O1xyXG5cclxuICAgIGlmIChpc09iamVjdChjdXJyZW50W2tleV0pICYmIGN1cnJlbnRba2V5XSAhPT0gbnVsbCAmJiBwcmV2aW91c1trZXldKSB7XHJcbiAgICAgIGNvbnN0IG5lc3RlZENoYW5nZSA9IGZpbmRDaGFuZ2VkUHJvcGVydHlQYXRoKHByZXZpb3VzW2tleV0sIGN1cnJlbnRba2V5XSwgZnVsbEtleSk7XHJcblxyXG4gICAgICBpZiAobmVzdGVkQ2hhbmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5lc3RlZENoYW5nZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHByZXZpb3VzW2tleV0gIT09IGN1cnJlbnRba2V5XSkge1xyXG4gICAgICAgIHJldHVybiBmdWxsS2V5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBjaGFuZ2VkIHByb3BlcnR5IGtleVxyXG4gKiBAcGFyYW0gcHJldmlvdXMgUHJldmlvdXMgdmFsdWVcclxuICogQHBhcmFtIGN1cnJlbnQgQ3VycmVuY3kgdmFsdWVcclxuICogQHJldHVybnMgS2V5IG9mIHByb3BlcnR5IHRoYXQgd2FzIGNoYW5nZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ2hhbmdlZFByb3BlcnR5S2V5KHByZXZpb3VzOiBhbnksIGN1cnJlbnQ6IGFueSk6IHN0cmluZyB8IGVtcHR5IHtcclxuICBjb25zdCBwYXRoOiBzdHJpbmcgfCBlbXB0eSA9IGZpbmRDaGFuZ2VkUHJvcGVydHlQYXRoKHByZXZpb3VzLCBjdXJyZW50KSxcclxuICAgIHBhcnRzID0gcGF0aD8uc3BsaXQoJy4nKTtcclxuXHJcbiAgcmV0dXJuIHBhcnRzICYmIHBhcnRzLmxlbmd0aCA/IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVlcENsb25lKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XHJcbn0iXX0=
310
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9jb21tb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUN0RCxPQUFVLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7V0FDaEQsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztXQUNyQixDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNuQyxPQUFPLElBQUksWUFBWSxVQUFVLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsUUFBZ0IsRUFBRSxRQUFhLElBQUk7SUFDL0UsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3hELElBQUksTUFBTSxHQUFRLEVBQUUsQ0FB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bSAncnhqcyc7XHJcbmltcG9ydCB7IGVtcHR5IH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBhZGRJdGVtLCBoYXNJdGVtLCByZW1vdmVJdGVtIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy51dGlscyc7XHJcbmltcG9ydCB7IGlzRXF1YWxEYXRlVGltZXMgfSBmcm9tICcuL2RhdGUtdGltZS51dGlscyc7XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgZGVmaW5lZFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB2YWx1ZSBpcyBub3QgbnVsbCBhbmQgZGVmaW5lZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmaW5lZDxUPih2YWx1ZTogVCB8IHVuZGVmaW5lZCB8IG51bGwpOiBib29sZWFuIHtcclxuICByZXR1cm4gPFQ+dmFsdWUgIT09IHVuZGVmaW5lZCAmJiA8VD52YWx1ZSAhPT0gbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGlzIG9iamVjdFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB2YWx1ZSBpcyBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChpc0RlZmluZWQodmFsdWUpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcclxuICAgICYmICFBcnJheS5pc0FycmF5KHZhbHVlKVxyXG4gICAgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBGaWxlKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBkYXRhIGlzIG9ic2VydmFibGVcclxuICogQHBhcmFtIGRhdGEgT2JqZWN0IHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZGF0YSBpcyBvYnNlcnZhYmxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNBc3luY0RhdGEoZGF0YTogYW55KSB7XHJcbiAgcmV0dXJuIGRhdGEgaW5zdGFuY2VvZiBPYnNlcnZhYmxlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGV4dGVuZGVkIG9iamVjdCB3aXRoIG5ldyBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gb2JqIE9iamVjdCB0byBleHRlbmQgYnkgcHJvcGVydHlcclxuICogQHBhcmFtIHByb3BlcnR5IE5ldyBwcm9wZXJ0eSBuYW1lIFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgZm9yIG5ldyBwcm9wZXJ0eVxyXG4gKiBAcmV0dXJucyBFeHRlbmRlZCBvYmplY3Qgd2l0aCBuZXcgcHJvcGVydHlcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRQcm9wZXJ0eVRvT2JqZWN0KG9iajogYW55LCBwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogYW55ID0gbnVsbCk6IGFueSB7XHJcbiAgaWYgKGlzRGVmaW5lZChwcm9wZXJ0eSkgJiYgIW9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgIGxldCBuZXdPYmo6IGFueSA9IHt9O1xyXG4gICAgbmV3T2JqW3Byb3BlcnR5XSA9IHZhbHVlO1xyXG4gICAgb2JqID0geyAuLi5vYmosIC4uLm5ld09iaiB9O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG9iajtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBwcm9wZXJ0eSBmcm9tIG9iamVjdFxyXG4gKiBAcGFyYW0gb2JqIE9iamVjdCBmb3IgcmVtb3ZpbmcgcHJvcGVydHlcclxuICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IG5hbWUgdG8gcmVtb3ZlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUHJvcGVydHlGcm9tT2JqZWN0KG9iajogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogdm9pZCB7XHJcbiAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgIGRlbGV0ZSBvYmpbcHJvcGVydHldO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIERlZXAgbWVyZ2Ugb2JqZWN0IHdpdGggb3RoZXJzXHJcbiAqIEBwYXJhbSB0YXJnZXQgIE9iamVjdCB0byBtZXJnZVxyXG4gKiBAcGFyYW0gc291cmNlcyBPYmplY3RzIHRvIGJlIG1lcmdlZCB3aXRoIHRhcmdldFxyXG4gKiBAcmV0dXJucyBNZXJnZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSB7XHJcbiAgaWYgKCFzb3VyY2VzLmxlbmd0aClcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcblxyXG4gIGNvbnN0IHNvdXJjZSA9IHNvdXJjZXMuc2hpZnQoKTtcclxuXHJcbiAgaWYgKGlzT2JqZWN0KHRhcmdldCkgJiYgaXNPYmplY3Qoc291cmNlKSkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XHJcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcclxuICAgICAgICBpZiAoIXRhcmdldFtrZXldKSBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XToge30gfSk7XHJcbiAgICAgICAgbWVyZ2VEZWVwKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbWVyZ2VEZWVwKHRhcmdldCwgLi4uc291cmNlcyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdHlwZSdzIHByb3BlcnR5IG5hbWUgc2FmZXR5XHJcbiAqIEBwYXJhbSBuYW1lIEtleU9mIHByb3BlcnR5XHJcbiAqIEByZXR1cm5zIFR5cGUncyBwcm9wZXJ0eSBuYW1lXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbmFtZW9mID0gPFQ+KG5hbWU6IGtleW9mIFQpID0+IG5hbWU7XHJcblxyXG4vKipcclxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlclxyXG4gICAqIEBwYXJhbSBudW1iZXIgVGhlIGlucHV0IHRvIGJlIHRlc3RlZFxyXG4gICAqIEByZXR1cm5zIC0gQW4gaW5kaWNhdGlvbiBpZiB0aGUgaW5wdXQgaXMgYSBOdW1iZXIgb3IgY2FuIGJlIGNvZXJjZWQgdG8gYSBOdW1iZXJcclxuICAgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtZXJpYyhudW1iZXI6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChudW1iZXIpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhIHN0cmluZ1xyXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGlucHV0IHRvIGJlIHRlc3RlZFxyXG4gKiBAcmV0dXJucyBBbiBpbmRpY2F0aW9uIGlmIHRoZSBpbnB1dCBpcyBhIHN0cmluZ1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGN1cnJlbnQgYnJvd3NlciBpcyBDaHJvbWVcclxuICogQHJldHVybnMgSWYgY3VycmVudCBicm93c2VyIGlzIENocm9tZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2hyb21lQnJvd3NlcigpOiBib29sZWFuIHtcclxuICByZXR1cm4gL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAvR29vZ2xlIEluYy8udGVzdChuYXZpZ2F0b3IudmVuZG9yKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGlzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICogQHJldHVybnMgVHJ1ZSBpZiBpdCdzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VtYWlsKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gaXNEZWZpbmVkKHZhbHVlLm1hdGNoKFxyXG4gICAgL14oKFtePD4oKVtcXF1cXFxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpW1xcXVxcXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcXSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC9cclxuICApKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHN0cmluZyBpcyBcInRydWVcIlxyXG4gKiBAcmV0dXJucyBwYXJzZWQgc3RyaW5nIGFzIGJvb2xlYW5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJvb2xlYW4odmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAvXnRydWUkL2kudGVzdCh2YWx1ZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZXMgZXF1YWxcclxuICogQHBhcmFtIG9iajEgRmlyc3QgdmFsdWUgdG8gY29tcGFyZVxyXG4gKiBAcGFyYW0gb2JqMiBTZWNvbmQgdmFsdWUgdG8gY29tcGFyZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGVxdWFsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNFcXVhbChvYmoxOiBhbnksIG9iajI6IGFueSkge1xyXG4gIC8qKlxyXG4gICAqIE1vcmUgYWNjdXJhdGVseSBjaGVjayB0aGUgdHlwZSBvZiBhIEphdmFTY3JpcHQgb2JqZWN0XHJcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvYmogVGhlIG9iamVjdFxyXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgIFRoZSBvYmplY3QgdHlwZVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGdldFR5cGUob2JqOiBhbnkpIHtcclxuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZUFycmF5c0VxdWFsKCkge1xyXG5cclxuICAgIC8vIENoZWNrIGxlbmd0aFxyXG4gICAgaWYgKG9iajEubGVuZ3RoICE9PSBvYmoyLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIC8vIENoZWNrIGVhY2ggaXRlbSBpbiB0aGUgYXJyYXlcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqMS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoIWlzRXF1YWwob2JqMVtpXSwgb2JqMltpXSkpIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhcmVPYmplY3RzRXF1YWwoKSB7XHJcblxyXG4gICAgaWYgKE9iamVjdC5rZXlzKG9iajEpLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMob2JqMikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgLy8gQ2hlY2sgZWFjaCBpdGVtIGluIHRoZSBvYmplY3RcclxuICAgIGZvciAobGV0IGtleSBpbiBvYmoxKSB7XHJcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqMSwga2V5KSkge1xyXG4gICAgICAgIGlmICghaXNFcXVhbChvYmoxW2tleV0sIG9iajJba2V5XSkpIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZUZpbGVzRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gb2JqMS5sYXN0TW9kaWZpZWQgPT09IG9iajIubGFzdE1vZGlmaWVkXHJcbiAgICAgICYmIG9iajEuc2l6ZSA9PT0gb2JqMi5zaXplXHJcbiAgICAgICYmIG9iajEudHlwZSA9PT0gb2JqMi50eXBlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlRnVuY3Rpb25zRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gb2JqMS50b1N0cmluZygpID09PSBvYmoyLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhcmVQcmltYXRpdmVzRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gb2JqMSA9PT0gb2JqMjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZURhdGVzRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gaXNFcXVhbERhdGVUaW1lcyhvYmoxLCBvYmoyKTtcclxuICB9XHJcblxyXG4gIC8vIEdldCB0aGUgb2JqZWN0IHR5cGVcclxuICBsZXQgdHlwZSA9IGdldFR5cGUob2JqMSk7XHJcblxyXG4gIC8vIElmIHRoZSB0d28gaXRlbXMgYXJlIG5vdCB0aGUgc2FtZSB0eXBlLCByZXR1cm4gZmFsc2VcclxuICBpZiAodHlwZSAhPT0gZ2V0VHlwZShvYmoyKSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAvLyBDb21wYXJlIGJhc2VkIG9uIHR5cGVcclxuICBpZiAodHlwZSA9PT0gJ2FycmF5JykgcmV0dXJuIGFyZUFycmF5c0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnZGF0ZScpIHJldHVybiBhcmVEYXRlc0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnZmlsZScpIHJldHVybiBhcmVGaWxlc0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnb2JqZWN0JykgcmV0dXJuIGFyZU9iamVjdHNFcXVhbCgpO1xyXG5cclxuICBpZiAodHlwZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGFyZUZ1bmN0aW9uc0VxdWFsKCk7XHJcblxyXG4gIHJldHVybiBhcmVQcmltYXRpdmVzRXF1YWwoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXRlIHVuaXF1ZSBpZGVudGlmaWNhdG9yXHJcbiAqIEByZXR1cm5zIFJhbmRvbSBHVUlEXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVHdWlkKCk6IHN0cmluZyB7XHJcbiAgbGV0IFM0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKTtcclxuICB9O1xyXG4gIHJldHVybiAoUzQoKSArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBTNCgpICsgUzQoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiB2YWx1ZSBpcyBKc29uIHBhcnNhYmxlIHN0cmluZ1xyXG4gKiBAcGFyYW0gdmFsdWUgc3RyaW5nIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgc3RyaW5nIGNhbiBiZSBKU09OIHBhcnNlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSnNvblN0cmluZyh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHZhbHVlKTtcclxuICAgIHJldHVybiAodHlwZW9mIGpzb24gPT09ICdvYmplY3QnKTtcclxuICB9IGNhdGNoIChlKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU3RvcCBwcm9wYWdhdGlvbiBhbmQgcHJldmVudCBkZWZhdWx0XHJcbiAqIEBwYXJhbSBldmVudCBFdmVudCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdG9wQW5kUHJldmVudFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBVcGRhdGUgcHJvcGVydHkgaW4gb2JqZWN0IGJ5IGtleVxyXG4gKiBAcGFyYW0gb2JqIE9iamVjdCB0byBjaGFuZ2VcclxuICogQHBhcmFtIHByb3BlcnR5S2V5IFByb3BlcnR5IHRvIGNoYW5nZVxyXG4gKiBAcGFyYW0gbmV3UHJvcGVydHlWYWx1ZSBOZXcgcHJvcGVydHkgdmFsdWVcclxuICogQHBhcmFtIG9sZFByb3BlcnR5VmFsdWUgT2xkIHByb3BlcnR5IHZhbHVlXHJcbiAqIEByZXR1cm5zIFVwZGF0ZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlUHJvcGVydHlCeUtleShcclxuICBvYmo6IGFueSxcclxuICBwcm9wZXJ0eUtleTogc3RyaW5nLFxyXG4gIG5ld1Byb3BlcnR5VmFsdWU6IGFueSxcclxuICBvbGRQcm9wZXJ0eVZhbHVlOiBhbnlcclxuKTogYW55IHtcclxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XHJcbiAgICByZXR1cm4gb2JqLm1hcChpdGVtID0+IHtcclxuICAgICAgcmV0dXJuIGlzT2JqZWN0KGl0ZW0pICYmIGl0ZW0gIT09IG51bGxcclxuICAgICAgICA/IHVwZGF0ZVByb3BlcnR5QnlLZXkoaXRlbSwgcHJvcGVydHlLZXksIG5ld1Byb3BlcnR5VmFsdWUsIG9sZFByb3BlcnR5VmFsdWUpXHJcbiAgICAgICAgOiBpdGVtO1xyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChpc09iamVjdChvYmopICYmIG9iaiAhPT0gbnVsbCkge1xyXG4gICAgY29uc3QgdXBkYXRlZE9iajogYW55ID0ge307XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgaWYgKGtleSA9PT0gcHJvcGVydHlLZXkpIHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcclxuICAgICAgICAgIGlmIChoYXNJdGVtKG9ialtrZXldLCBvbGRQcm9wZXJ0eVZhbHVlKSkge1xyXG4gICAgICAgICAgICByZW1vdmVJdGVtKG9ialtrZXldLCBvbGRQcm9wZXJ0eVZhbHVlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGFkZEl0ZW0ob2JqW2tleV0sIG9sZFByb3BlcnR5VmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHVwZGF0ZWRPYmpba2V5XSA9IG9ialtrZXldO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB1cGRhdGVkT2JqW2tleV0gPSBuZXdQcm9wZXJ0eVZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1cGRhdGVkT2JqW2tleV0gPSB1cGRhdGVQcm9wZXJ0eUJ5S2V5KG9ialtrZXldLCBwcm9wZXJ0eUtleSwgbmV3UHJvcGVydHlWYWx1ZSwgb2xkUHJvcGVydHlWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdXBkYXRlZE9iajtcclxuICB9XHJcblxyXG4gIHJldHVybiBvYmo7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgY2hhbmdlZCBwcm9wZXJ0eSBwYXRoXHJcbiAqIEBwYXJhbSBwcmV2aW91cyBQcmV2aW91cyB2YWx1ZSBcclxuICogQHBhcmFtIGN1cnJlbnQgQ3VycmVuY3kgdmFsdWVcclxuICogQHBhcmFtIHBhcmVudEtleSBQYXJlbnQgb2JqZWN0IGtleSBuYW1lXHJcbiAqIEByZXR1cm5zIFBhdGggb2YgcHJvcGVydHkgdGhhdCB3YXMgY2hhbmdlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDaGFuZ2VkUHJvcGVydHlQYXRoKHByZXZpb3VzOiBhbnksIGN1cnJlbnQ6IGFueSwgcGFyZW50S2V5ID0gJycpOiBzdHJpbmcgfCBlbXB0eSB7XHJcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoY3VycmVudCkpIHtcclxuICAgIGNvbnN0IGZ1bGxLZXk6IHN0cmluZyA9IHBhcmVudEtleSA/IGAke3BhcmVudEtleX0uJHtrZXl9YCA6IGtleTtcclxuXHJcbiAgICBpZiAoaXNPYmplY3QoY3VycmVudFtrZXldKSAmJiBjdXJyZW50W2tleV0gIT09IG51bGwgJiYgcHJldmlvdXNba2V5XSkge1xyXG4gICAgICBjb25zdCBuZXN0ZWRDaGFuZ2UgPSBmaW5kQ2hhbmdlZFByb3BlcnR5UGF0aChwcmV2aW91c1trZXldLCBjdXJyZW50W2tleV0sIGZ1bGxLZXkpO1xyXG5cclxuICAgICAgaWYgKG5lc3RlZENoYW5nZSkge1xyXG4gICAgICAgIHJldHVybiBuZXN0ZWRDaGFuZ2U7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChwcmV2aW91c1trZXldICE9PSBjdXJyZW50W2tleV0pIHtcclxuICAgICAgICByZXR1cm4gZnVsbEtleTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgY2hhbmdlZCBwcm9wZXJ0eSBrZXlcclxuICogQHBhcmFtIHByZXZpb3VzIFByZXZpb3VzIHZhbHVlXHJcbiAqIEBwYXJhbSBjdXJyZW50IEN1cnJlbmN5IHZhbHVlXHJcbiAqIEByZXR1cm5zIEtleSBvZiBwcm9wZXJ0eSB0aGF0IHdhcyBjaGFuZ2VkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmluZENoYW5nZWRQcm9wZXJ0eUtleShwcmV2aW91czogYW55LCBjdXJyZW50OiBhbnkpOiBzdHJpbmcgfCBlbXB0eSB7XHJcbiAgY29uc3QgcGF0aDogc3RyaW5nIHwgZW1wdHkgPSBmaW5kQ2hhbmdlZFByb3BlcnR5UGF0aChwcmV2aW91cywgY3VycmVudCksXHJcbiAgICBwYXJ0cyA9IHBhdGg/LnNwbGl0KCcuJyk7XHJcblxyXG4gIHJldHVybiBwYXJ0cyAmJiBwYXJ0cy5sZW5ndGggPyBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENsb25lIG9iamVjdCB3aXRob3V0IGFueSByZWZlcmVuY2VcclxuICogQHBhcmFtIHZhbHVlICBPYmplY3QgdG8gY2xvbmVcclxuICogQHJldHVybnMgQ2xvbmVkIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDbG9uZSh2YWx1ZTogYW55KTogYW55IHtcclxuICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG59Il19
@@ -1570,6 +1570,11 @@ function findChangedPropertyKey(previous, current) {
1570
1570
  const path = findChangedPropertyPath(previous, current), parts = path === null || path === void 0 ? void 0 : path.split('.');
1571
1571
  return parts && parts.length ? parts[parts.length - 1] : undefined;
1572
1572
  }
1573
+ /**
1574
+ * Clone object without any reference
1575
+ * @param value Object to clone
1576
+ * @returns Cloned object
1577
+ */
1573
1578
  function deepClone(value) {
1574
1579
  return JSON.parse(JSON.stringify(value));
1575
1580
  }
@@ -3537,7 +3542,6 @@ TagConstants.DEFAULT_LABEL = 'Tag';
3537
3542
 
3538
3543
  class TagComponent {
3539
3544
  constructor() {
3540
- this.remove = false;
3541
3545
  this.model = {
3542
3546
  key: CommonConstants.DEFAULT_KEY_VALUE,
3543
3547
  label: TagConstants.DEFAULT_LABEL
@@ -3553,13 +3557,11 @@ class TagComponent {
3553
3557
  }
3554
3558
  }
3555
3559
  TagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3556
- TagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagComponent, selector: "sfc-tag", inputs: { remove: "remove", model: "model" }, outputs: { removeAction: "remove" }, host: { listeners: { "click": "_onClick()" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon *ngIf=\"model.icon || model.imageSrc\" [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.remove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CloseComponent, selector: "sfc-close" }, { kind: "component", type: IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
3560
+ TagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagComponent, selector: "sfc-tag", inputs: { model: "model" }, outputs: { removeAction: "remove" }, host: { listeners: { "click": "_onClick()" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.allowRemove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CloseComponent, selector: "sfc-close" }, { kind: "component", type: IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
3557
3561
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagComponent, decorators: [{
3558
3562
  type: Component,
3559
- args: [{ selector: 'sfc-tag', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon *ngIf=\"model.icon || model.imageSrc\" [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.remove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"] }]
3560
- }], propDecorators: { remove: [{
3561
- type: Input
3562
- }], model: [{
3563
+ args: [{ selector: 'sfc-tag', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.allowRemove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"] }]
3564
+ }], propDecorators: { model: [{
3563
3565
  type: Input
3564
3566
  }], removeAction: [{
3565
3567
  type: Output,