@firestitch/autocomplete-chips
Advanced tools
Comparing version 7.1.10 to 7.1.11
@@ -200,15 +200,13 @@ (function (global, factory) { | ||
var _this = this; | ||
if (this.allowObject) { | ||
this.keyword$ | ||
.pipe(operators.takeUntil(this.destroy$), operators.debounceTime(this.delay)) | ||
.subscribe(function (e) { return _this.objectKeyword(e); }); | ||
} | ||
if (this.allowText) { | ||
this.keyword$ | ||
.pipe(operators.takeUntil(this.destroy$)) | ||
.subscribe(function (e) { return _this.textKeyword(e); }); | ||
} | ||
this.keyword$ | ||
.pipe(operators.takeUntil(this.destroy$)) | ||
.subscribe(function (e) { return _this.keyword = _this.searchInput.nativeElement.value; }); | ||
.pipe(operators.takeUntil(this.destroy$), operators.debounceTime(this.delay)) | ||
.subscribe(function (e) { | ||
_this.keyword = _this.searchInput.nativeElement.value; | ||
if (_this.allowObject) { | ||
_this.objectKeyword(e); | ||
} | ||
if (_this.allowText) { | ||
_this.textKeyword(e); | ||
} | ||
}); | ||
}; | ||
@@ -215,0 +213,0 @@ /** |
@@ -1,2 +0,2 @@ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("@angular/forms"),require("@angular/material"),require("lodash-es"),require("rxjs"),require("rxjs/operators"),require("@angular/core"),require("@angular/cdk/drag-drop")):"function"==typeof define&&define.amd?define("@firestitch/autocomplete-chips",["exports","@angular/common","@angular/forms","@angular/material","lodash-es","rxjs","rxjs/operators","@angular/core","@angular/cdk/drag-drop"],e):e((t.firestitch=t.firestitch||{},t.firestitch["autocomplete-chips"]={}),t.ng.common,t.ng.forms,t.ng.material,t.lodashEs,t.rxjs,t.rxjs.operators,t.ng.core,t.ng.cdk["drag-drop"])}(this,function(t,e,n,o,i,a,r,s,l){"use strict";function p(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,i,a=n.call(t),r=[];try{for(;(void 0===e||0<e--)&&!(o=a.next()).done;)r.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(n=a["return"])&&n.call(a)}finally{if(i)throw i.error}}return r}function c(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(p(arguments[e]));return t}function u(t,e){return e?function o(t,e){var n=e.shift(e);if(!n)return t;if(!t)return t;t=t[n];return o(t,e)}(t,e.split(".")):null}var d={Object:"object",Text:"text"},m=function(){function t(){}return t.decorators=[{type:s.Directive,args:[{selector:"[fsAutocompleteObject]"}]}],t}(),h={provide:n.NG_VALUE_ACCESSOR,useExisting:s.forwardRef(function(){return f}),multi:!0},f=function(){function t(){this.fetch=null,this.placeholder="",this.imageProperty="",this.allowObject=!0,this.delay=300,this.invalidTextMessage="",this.disabled=!1,this.removable=!0,this.orderable=!1,this.limit=0,this.fetchOnFocus=!0,this.compareWith=function(t,e){return i.isEqual(t,e)},this.selected=new s.EventEmitter,this.removed=new s.EventEmitter,this.reordered=new s.EventEmitter,this.formWrapper=!0,this.searchData=[],this.textData={},this.dataType=d,this.keyword=null,this.keyword$=new a.Subject,this.noResults=!1,this._model=[],this.destroy$=new a.Subject,this.objectTemplate=null,this.searchInput=null,this.autocompleteSearch=null,this.autocompleteTrigger=null,this._onTouched=function(){},this._onChange=function(t){}}return Object.defineProperty(t.prototype,"model",{get:function(){return this._model},enumerable:!0,configurable:!0}),t.prototype.dragStart=function(t){t.preventDefault()},t.prototype.registerOnChange=function(t){this._onChange=t},t.prototype.registerOnTouched=function(t){this._onTouched=t},t.prototype.ngOnInit=function(){var e=this;this.allowObject&&this.keyword$.pipe(r.takeUntil(this.destroy$),r.debounceTime(this.delay)).subscribe(function(t){return e.objectKeyword(t)}),this.allowText&&this.keyword$.pipe(r.takeUntil(this.destroy$)).subscribe(function(t){return e.textKeyword(t)}),this.keyword$.pipe(r.takeUntil(this.destroy$)).subscribe(function(t){return e.keyword=e.searchInput.nativeElement.value})},t.prototype.drop=function(t){l.moveItemInArray(this._model,t.previousIndex,t.currentIndex),this.reordered.emit({item:t.item.data.data,from:t.previousIndex,to:t.currentIndex,items:this._model}),this.updateModel(this._model)},t.prototype._validateText=function(t){return String(t).trim().length&&(!this.validateText||this.validateText(t))},t.prototype.addText=function(t){if(this._validateText(t)){var e=this.createItem(t,d.Text);this.updateModel(c(this._model,[e]))}},t.prototype.addObject=function(t){this.updateModel(c(this._model,[t]))},t.prototype.blur=function(){this.autocompleteSearch.isOpen||this.closed()},t.prototype.closed=function(){this.allowText&&this.addText(this.keyword),this.clearInput()},t.prototype.textKeyword=function(t){var e=this;if(this.allowText&&"Comma"===t.code)return this.keyword.split(",").forEach(function(t){e.addText(t.trim())}),this.clearInput();this.textData={},this._validateText(this.keyword)&&(this.textData=this.createItem(this.keyword,d.Text))},t.prototype.focus=function(t){this.fetchOnFocus||(this.searchData=[]),this.fetchOnFocus&&(this.objectKeyword(t),this.autocompleteTrigger.openPanel())},t.prototype.objectKeyword=function(t){var n=this;t&&(-1<["Enter","ArrowDown","ArrowUp"].indexOf(t.code)||this.allowText&&"Comma"===t.code)||(this.fetchOnFocus||this.keyword?this.fetch&&(this.noResults=!1,this.fetch(this.keyword,this.model).pipe(r.takeUntil(this.destroy$)).subscribe(function(t){n.searchData=t.map(function(t){return n.createItem(t,d.Object)}),n.searchData=i.filter(n.searchData,function(e){return-1===i.findIndex(n._model,function(t){return n.compareWith(t.data,e.data)})}),n.searchData.length||(n.noResults=!0)})):this.searchData=[])},t.prototype.createItem=function(t,e){var n={type:e,data:t};return e===d.Object&&(n.image=u(t,this.imageProperty)),n},t.prototype.onSelect=function(t){var e=this;this.searchData=[],this.clearInput();var n=this.allowObject&&this.allowText?t.option.value:t.option.value.data;t.option.value.type===d.Object&&(i.filter(this._model,n).length||(this.addObject(t.option.value),this.selected.emit(t.option.value))),t.option.value.type===d.Text&&(i.filter(this._model,n).length||(this.addText(t.option.value.data),this.selected.emit(t.option.value.data))),setTimeout(function(){e.focus(null)})},t.prototype.clearInput=function(){this.searchInput.nativeElement.value="",this.textData={},this.keyword=""},t.prototype.onRemove=function(t){this.autocompleteTrigger.closePanel(),i.remove(this._model,t),this.removed.emit(t),this.updateModel(this._model)},t.prototype.writeValue=function(t){var n=this;t=Array.isArray(t)?t:[],t=i.map(t,function(t){var e=i.isObject(t)?d.Object:d.Text;return n.createItem(t,e)}),this._model=t},t.prototype.updateModel=function(t){var e=this;this._model=t;var n=i.map(this._model,function(t){return e.allowText&&e.allowObject?t:t.data});this._onChange(n),this._onTouched()},t.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},t.decorators=[{type:s.Component,args:[{selector:"fs-autocomplete-chips",template:'<mat-form-field>\n <mat-chip-list\n #searchList\n cdkDropList\n cdkDropListOrientation="horizontal"\n (cdkDropListDropped)="drop($event)">\n <mat-chip\n *ngFor="let item of model"\n [selectable]="true"\n [removable]="true"\n (removed)="onRemove(item)"\n class="fs-autocomplete-chip"\n [ngClass]="{ imaged: item.image }"\n [cdkDragDisabled]="!orderable"\n [cdkDragData]="item"\n cdkDrag\n cdkDragHandle>\n <ng-container\n [ngTemplateOutlet]="itemTemplate"\n [ngTemplateOutletContext]="{ item: item }">\n </ng-container>\n <mat-icon *ngIf="removable" matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input\n #searchInput\n #autocompleteInput\n [placeholder]="placeholder"\n [disabled]="disabled"\n (keyup)="keyword$.next($event)"\n (focus)="focus($event)"\n (blur)="blur()"\n name="keyword"\n [matAutocomplete]="autocompleteSearch"\n [matChipInputFor]="searchList">\n </mat-chip-list>\n <mat-autocomplete\n #autocompleteSearch="matAutocomplete"\n class="fs-account-picker-autocomplete"\n (optionSelected)="onSelect($event)"\n (closed)="closed()"\n autoActiveFirstOption="true">\n\n <mat-option *ngFor="let item of searchData" [value]="item">\n <ng-container\n [ngTemplateOutlet]="itemTemplate"\n [ngTemplateOutletContext]="{ item: item }">\n </ng-container>\n </mat-option>\n\n\n <mat-option *ngIf="noResults" disabled class="no-results">\n No results found\n </mat-option>\n\n <ng-container *ngIf="keyword && allowText">\n\n <mat-option *ngIf="!textData.type" disabled class="invalid-message" (click)="searchInput.focus()">\n <div>{{ keyword }}</div>\n <div class="message">{{ invalidTextMessage || \'Invalid\' }}</div>\n </mat-option>\n\n <mat-option *ngIf="textData.type===dataType.Text" [value]="textData">\n <ng-container\n [ngTemplateOutlet]="itemTemplate"\n [ngTemplateOutletContext]="{ item: textData }">\n </ng-container>\n </mat-option>\n </ng-container>\n\n </mat-autocomplete>\n</mat-form-field>\n\n<ng-template let-item="item" #itemTemplate>\n <ng-container *ngIf="item.type===dataType.Object" class="item-template">\n <img *ngIf="item.image" [src]="item.image">\n <span>\n <ng-template\n [ngTemplateOutlet]="objectTemplate"\n [ngTemplateOutletContext]="{ object: item.data }">\n </ng-template>\n </span>\n </ng-container>\n\n <ng-container *ngIf="item.type===dataType.Text">\n {{item.data}}\n </ng-container>\n</ng-template>\n',providers:[h],styles:[":host mat-form-field{width:100%}:host .item-template img{margin-left:-12px}::ng-deep .fs-autocomplete-chip.mat-chip.mat-standard-chip{padding-right:3px}::ng-deep .fs-autocomplete-chip.mat-chip.mat-standard-chip.imaged{padding-left:0}::ng-deep .fs-autocomplete-chip.mat-chip.mat-standard-chip .mat-chip-remove{color:#474747;opacity:1;width:24px;height:24px;font-size:24px}::ng-deep .fs-account-picker-autocomplete .mat-option-text{align-items:center;display:inline-flex}::ng-deep .fs-account-picker-autocomplete .invalid-message .mat-option-text{line-height:normal;flex-direction:column;align-items:start;font-size:80%}::ng-deep .fs-account-picker-autocomplete .item-template,:host .item-template{display:flex;flex-direction:row;align-items:center}.fs-autocomplete-chip.mat-chip.mat-standard-chip img,::ng-deep .fs-account-picker-autocomplete img{width:32px;height:32px;-o-object-fit:cover;object-fit:cover;background-repeat:no-repeat;background-size:cover;background-position:50% 50%;margin-right:10px;display:flex;border-radius:50%}.no-results{font-size:80%}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={fetch:[{type:s.Input}],placeholder:[{type:s.Input}],imageProperty:[{type:s.Input}],allowText:[{type:s.Input}],allowObject:[{type:s.Input}],delay:[{type:s.Input}],validateText:[{type:s.Input}],invalidTextMessage:[{type:s.Input}],disabled:[{type:s.Input}],removable:[{type:s.Input}],orderable:[{type:s.Input}],limit:[{type:s.Input}],fetchOnFocus:[{type:s.Input}],compareWith:[{type:s.Input}],selected:[{type:s.Output}],removed:[{type:s.Output}],reordered:[{type:s.Output}],formWrapper:[{type:s.HostBinding,args:["class.fs-form-wrapper"]}],dragStart:[{type:s.HostListener,args:["dragstart",["$event"]]}],objectTemplate:[{type:s.ContentChild,args:[m,{read:s.TemplateRef}]}],searchInput:[{type:s.ViewChild,args:["searchInput"]}],autocompleteSearch:[{type:s.ViewChild,args:["autocompleteSearch"]}],autocompleteTrigger:[{type:s.ViewChild,args:[o.MatAutocompleteTrigger]}]},t}(),g=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[]}},t.decorators=[{type:s.NgModule,args:[{imports:[e.CommonModule,n.FormsModule,o.MatAutocompleteModule,o.MatChipsModule,o.MatInputModule,o.MatIconModule,l.DragDropModule],exports:[f,m],declarations:[m,f]}]}],t}();t.FsAutocompleteChipsModule=g,t.ɵa=h,t.ɵb=f,t.ɵc=m,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("@angular/forms"),require("@angular/material"),require("lodash-es"),require("rxjs"),require("rxjs/operators"),require("@angular/core"),require("@angular/cdk/drag-drop")):"function"==typeof define&&define.amd?define("@firestitch/autocomplete-chips",["exports","@angular/common","@angular/forms","@angular/material","lodash-es","rxjs","rxjs/operators","@angular/core","@angular/cdk/drag-drop"],e):e((t.firestitch=t.firestitch||{},t.firestitch["autocomplete-chips"]={}),t.ng.common,t.ng.forms,t.ng.material,t.lodashEs,t.rxjs,t.rxjs.operators,t.ng.core,t.ng.cdk["drag-drop"])}(this,function(t,e,o,n,a,i,r,s,l){"use strict";function p(t,e){var o="function"==typeof Symbol&&t[Symbol.iterator];if(!o)return t;var n,a,i=o.call(t),r=[];try{for(;(void 0===e||0<e--)&&!(n=i.next()).done;)r.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(o=i["return"])&&o.call(i)}finally{if(a)throw a.error}}return r}function c(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(p(arguments[e]));return t}function u(t,e){return e?function n(t,e){var o=e.shift(e);if(!o)return t;if(!t)return t;t=t[o];return n(t,e)}(t,e.split(".")):null}var d={Object:"object",Text:"text"},m=function(){function t(){}return t.decorators=[{type:s.Directive,args:[{selector:"[fsAutocompleteObject]"}]}],t}(),h={provide:o.NG_VALUE_ACCESSOR,useExisting:s.forwardRef(function(){return f}),multi:!0},f=function(){function t(){this.fetch=null,this.placeholder="",this.imageProperty="",this.allowObject=!0,this.delay=300,this.invalidTextMessage="",this.disabled=!1,this.removable=!0,this.orderable=!1,this.limit=0,this.fetchOnFocus=!0,this.compareWith=function(t,e){return a.isEqual(t,e)},this.selected=new s.EventEmitter,this.removed=new s.EventEmitter,this.reordered=new s.EventEmitter,this.formWrapper=!0,this.searchData=[],this.textData={},this.dataType=d,this.keyword=null,this.keyword$=new i.Subject,this.noResults=!1,this._model=[],this.destroy$=new i.Subject,this.objectTemplate=null,this.searchInput=null,this.autocompleteSearch=null,this.autocompleteTrigger=null,this._onTouched=function(){},this._onChange=function(t){}}return Object.defineProperty(t.prototype,"model",{get:function(){return this._model},enumerable:!0,configurable:!0}),t.prototype.dragStart=function(t){t.preventDefault()},t.prototype.registerOnChange=function(t){this._onChange=t},t.prototype.registerOnTouched=function(t){this._onTouched=t},t.prototype.ngOnInit=function(){var e=this;this.keyword$.pipe(r.takeUntil(this.destroy$),r.debounceTime(this.delay)).subscribe(function(t){e.keyword=e.searchInput.nativeElement.value,e.allowObject&&e.objectKeyword(t),e.allowText&&e.textKeyword(t)})},t.prototype.drop=function(t){l.moveItemInArray(this._model,t.previousIndex,t.currentIndex),this.reordered.emit({item:t.item.data.data,from:t.previousIndex,to:t.currentIndex,items:this._model}),this.updateModel(this._model)},t.prototype._validateText=function(t){return String(t).trim().length&&(!this.validateText||this.validateText(t))},t.prototype.addText=function(t){if(this._validateText(t)){var e=this.createItem(t,d.Text);this.updateModel(c(this._model,[e]))}},t.prototype.addObject=function(t){this.updateModel(c(this._model,[t]))},t.prototype.blur=function(){this.autocompleteSearch.isOpen||this.closed()},t.prototype.closed=function(){this.allowText&&this.addText(this.keyword),this.clearInput()},t.prototype.textKeyword=function(t){var e=this;if(this.allowText&&"Comma"===t.code)return this.keyword.split(",").forEach(function(t){e.addText(t.trim())}),this.clearInput();this.textData={},this._validateText(this.keyword)&&(this.textData=this.createItem(this.keyword,d.Text))},t.prototype.focus=function(t){this.fetchOnFocus||(this.searchData=[]),this.fetchOnFocus&&(this.objectKeyword(t),this.autocompleteTrigger.openPanel())},t.prototype.objectKeyword=function(t){var o=this;t&&(-1<["Enter","ArrowDown","ArrowUp"].indexOf(t.code)||this.allowText&&"Comma"===t.code)||(this.fetchOnFocus||this.keyword?this.fetch&&(this.noResults=!1,this.fetch(this.keyword,this.model).pipe(r.takeUntil(this.destroy$)).subscribe(function(t){o.searchData=t.map(function(t){return o.createItem(t,d.Object)}),o.searchData=a.filter(o.searchData,function(e){return-1===a.findIndex(o._model,function(t){return o.compareWith(t.data,e.data)})}),o.searchData.length||(o.noResults=!0)})):this.searchData=[])},t.prototype.createItem=function(t,e){var o={type:e,data:t};return e===d.Object&&(o.image=u(t,this.imageProperty)),o},t.prototype.onSelect=function(t){var e=this;this.searchData=[],this.clearInput();var o=this.allowObject&&this.allowText?t.option.value:t.option.value.data;t.option.value.type===d.Object&&(a.filter(this._model,o).length||(this.addObject(t.option.value),this.selected.emit(t.option.value))),t.option.value.type===d.Text&&(a.filter(this._model,o).length||(this.addText(t.option.value.data),this.selected.emit(t.option.value.data))),setTimeout(function(){e.focus(null)})},t.prototype.clearInput=function(){this.searchInput.nativeElement.value="",this.textData={},this.keyword=""},t.prototype.onRemove=function(t){this.autocompleteTrigger.closePanel(),a.remove(this._model,t),this.removed.emit(t),this.updateModel(this._model)},t.prototype.writeValue=function(t){var o=this;t=Array.isArray(t)?t:[],t=a.map(t,function(t){var e=a.isObject(t)?d.Object:d.Text;return o.createItem(t,e)}),this._model=t},t.prototype.updateModel=function(t){var e=this;this._model=t;var o=a.map(this._model,function(t){return e.allowText&&e.allowObject?t:t.data});this._onChange(o),this._onTouched()},t.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},t.decorators=[{type:s.Component,args:[{selector:"fs-autocomplete-chips",template:'<mat-form-field>\n <mat-chip-list\n #searchList\n cdkDropList\n cdkDropListOrientation="horizontal"\n (cdkDropListDropped)="drop($event)">\n <mat-chip\n *ngFor="let item of model"\n [selectable]="true"\n [removable]="true"\n (removed)="onRemove(item)"\n class="fs-autocomplete-chip"\n [ngClass]="{ imaged: item.image }"\n [cdkDragDisabled]="!orderable"\n [cdkDragData]="item"\n cdkDrag\n cdkDragHandle>\n <ng-container\n [ngTemplateOutlet]="itemTemplate"\n [ngTemplateOutletContext]="{ item: item }">\n </ng-container>\n <mat-icon *ngIf="removable" matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input\n #searchInput\n #autocompleteInput\n [placeholder]="placeholder"\n [disabled]="disabled"\n (keyup)="keyword$.next($event)"\n (focus)="focus($event)"\n (blur)="blur()"\n name="keyword"\n [matAutocomplete]="autocompleteSearch"\n [matChipInputFor]="searchList">\n </mat-chip-list>\n <mat-autocomplete\n #autocompleteSearch="matAutocomplete"\n class="fs-account-picker-autocomplete"\n (optionSelected)="onSelect($event)"\n (closed)="closed()"\n autoActiveFirstOption="true">\n\n <mat-option *ngFor="let item of searchData" [value]="item">\n <ng-container\n [ngTemplateOutlet]="itemTemplate"\n [ngTemplateOutletContext]="{ item: item }">\n </ng-container>\n </mat-option>\n\n\n <mat-option *ngIf="noResults" disabled class="no-results">\n No results found\n </mat-option>\n\n <ng-container *ngIf="keyword && allowText">\n\n <mat-option *ngIf="!textData.type" disabled class="invalid-message" (click)="searchInput.focus()">\n <div>{{ keyword }}</div>\n <div class="message">{{ invalidTextMessage || \'Invalid\' }}</div>\n </mat-option>\n\n <mat-option *ngIf="textData.type===dataType.Text" [value]="textData">\n <ng-container\n [ngTemplateOutlet]="itemTemplate"\n [ngTemplateOutletContext]="{ item: textData }">\n </ng-container>\n </mat-option>\n </ng-container>\n\n </mat-autocomplete>\n</mat-form-field>\n\n<ng-template let-item="item" #itemTemplate>\n <ng-container *ngIf="item.type===dataType.Object" class="item-template">\n <img *ngIf="item.image" [src]="item.image">\n <span>\n <ng-template\n [ngTemplateOutlet]="objectTemplate"\n [ngTemplateOutletContext]="{ object: item.data }">\n </ng-template>\n </span>\n </ng-container>\n\n <ng-container *ngIf="item.type===dataType.Text">\n {{item.data}}\n </ng-container>\n</ng-template>\n',providers:[h],styles:[":host mat-form-field{width:100%}:host .item-template img{margin-left:-12px}::ng-deep .fs-autocomplete-chip.mat-chip.mat-standard-chip{padding-right:3px}::ng-deep .fs-autocomplete-chip.mat-chip.mat-standard-chip.imaged{padding-left:0}::ng-deep .fs-autocomplete-chip.mat-chip.mat-standard-chip .mat-chip-remove{color:#474747;opacity:1;width:24px;height:24px;font-size:24px}::ng-deep .fs-account-picker-autocomplete .mat-option-text{align-items:center;display:inline-flex}::ng-deep .fs-account-picker-autocomplete .invalid-message .mat-option-text{line-height:normal;flex-direction:column;align-items:start;font-size:80%}::ng-deep .fs-account-picker-autocomplete .item-template,:host .item-template{display:flex;flex-direction:row;align-items:center}.fs-autocomplete-chip.mat-chip.mat-standard-chip img,::ng-deep .fs-account-picker-autocomplete img{width:32px;height:32px;-o-object-fit:cover;object-fit:cover;background-repeat:no-repeat;background-size:cover;background-position:50% 50%;margin-right:10px;display:flex;border-radius:50%}.no-results{font-size:80%}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={fetch:[{type:s.Input}],placeholder:[{type:s.Input}],imageProperty:[{type:s.Input}],allowText:[{type:s.Input}],allowObject:[{type:s.Input}],delay:[{type:s.Input}],validateText:[{type:s.Input}],invalidTextMessage:[{type:s.Input}],disabled:[{type:s.Input}],removable:[{type:s.Input}],orderable:[{type:s.Input}],limit:[{type:s.Input}],fetchOnFocus:[{type:s.Input}],compareWith:[{type:s.Input}],selected:[{type:s.Output}],removed:[{type:s.Output}],reordered:[{type:s.Output}],formWrapper:[{type:s.HostBinding,args:["class.fs-form-wrapper"]}],dragStart:[{type:s.HostListener,args:["dragstart",["$event"]]}],objectTemplate:[{type:s.ContentChild,args:[m,{read:s.TemplateRef}]}],searchInput:[{type:s.ViewChild,args:["searchInput"]}],autocompleteSearch:[{type:s.ViewChild,args:["autocompleteSearch"]}],autocompleteTrigger:[{type:s.ViewChild,args:[n.MatAutocompleteTrigger]}]},t}(),g=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[]}},t.decorators=[{type:s.NgModule,args:[{imports:[e.CommonModule,o.FormsModule,n.MatAutocompleteModule,n.MatChipsModule,n.MatInputModule,n.MatIconModule,l.DragDropModule],exports:[f,m],declarations:[m,f]}]}],t}();t.FsAutocompleteChipsModule=g,t.ɵa=h,t.ɵb=f,t.ɵc=m,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=firestitch-autocomplete-chips.umd.min.js.map |
@@ -84,15 +84,13 @@ /** | ||
ngOnInit() { | ||
if (this.allowObject) { | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$), debounceTime(this.delay)) | ||
.subscribe((e) => this.objectKeyword(e)); | ||
} | ||
if (this.allowText) { | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$)) | ||
.subscribe((e) => this.textKeyword(e)); | ||
} | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$)) | ||
.subscribe((e) => this.keyword = this.searchInput.nativeElement.value); | ||
.pipe(takeUntil(this.destroy$), debounceTime(this.delay)) | ||
.subscribe((e) => { | ||
this.keyword = this.searchInput.nativeElement.value; | ||
if (this.allowObject) { | ||
this.objectKeyword(e); | ||
} | ||
if (this.allowText) { | ||
this.textKeyword(e); | ||
} | ||
}); | ||
} | ||
@@ -428,2 +426,2 @@ /** | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2F1dG9jb21wbGV0ZS1jaGlwcy8iLCJzb3VyY2VzIjpbImFwcC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1jaGlwcy9hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUssVUFBVSxFQUFhLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFDakYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBZ0MsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFekcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlFLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQzs7QUFFbkgsTUFBTSxPQUFPLDBCQUEwQixHQUFhO0lBQ2xELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVB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QixnREFBaUM7O0lBV2pDLHNEQUNxRDs7SUFFckQsbURBQWdFOztJQUNoRSwwREFBbUY7O0lBQ25GLDJEQUFxRTs7Ozs7SUFFckUsa0RBQStCOzs7OztJQUMvQixpREFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUHJvdmlkZXIsIGZvcndhcmRSZWYsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCdcblxuaW1wb3J0IHsgaXNFcXVhbCwgcmVtb3ZlLCBmaW5kSW5kZXgsIG1hcCwgZmlsdGVyLCBpc09iamVjdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBnZXRPYmplY3RWYWx1ZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW9iamVjdC12YWx1ZSc7XG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0YS10eXBlJztcbmltcG9ydCB7IEZzQXV0b2NvbXBsZXRlT2JqZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9hdXRvY29tcGxldGUtb2JqZWN0L2F1dG9jb21wbGV0ZS1vYmplY3QuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IEZTX0FDQ09VTlRfUElDS0VSX0FDQ0VTU09SOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZzQXV0b2NvbXBsZXRlQ2hpcHNDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtYXV0b2NvbXBsZXRlLWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50LnNjc3MnIF0sXG4gIHByb3ZpZGVyczogW0ZTX0FDQ09VTlRfUElDS0VSX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBGc0F1dG9jb21wbGV0ZUNoaXBzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBASW5wdXQoKSBwdWJsaWMgZmV0Y2ggPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGltYWdlUHJvcGVydHkgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGFsbG93VGV4dDogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIGFsbG93T2JqZWN0ID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGRlbGF5ID0gMzAwO1xuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGVUZXh0O1xuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZFRleHRNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIG9yZGVyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbGltaXQgPSAwO1xuICBASW5wdXQoKSBwdWJsaWMgZmV0Y2hPbkZvY3VzID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgcHVibGljIGNvbXBhcmVXaXRoID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IHtcbiAgICByZXR1cm4gaXNFcXVhbChvMSwgbzIpO1xuICB9O1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZW9yZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1mb3JtLXdyYXBwZXInKSBmb3JtV3JhcHBlciA9IHRydWU7XG5cbiAgcHVibGljIHNlYXJjaERhdGE6IGFueVtdID0gW107XG4gIHB1YmxpYyB0ZXh0RGF0YTogYW55ID0ge307XG4gIHB1YmxpYyBkYXRhVHlwZSA9IERhdGFUeXBlO1xuICBwdWJsaWMga2V5d29yZDogc3RyaW5nID0gbnVsbDtcbiAgcHVibGljIGtleXdvcmQkID0gbmV3IFN1YmplY3Q8RXZlbnQ+KCk7XG4gIHB1YmxpYyBub1Jlc3VsdHMgPSBmYWxzZTtcblxuICBwcml2YXRlIF9tb2RlbDogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdzdGFydCcsIFsnJGV2ZW50J10pXG4gIGRyYWdTdGFydChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9O1xuXG4gIEBDb250ZW50Q2hpbGQoRnNBdXRvY29tcGxldGVPYmplY3REaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgb2JqZWN0VGVtcGxhdGU6IEZzQXV0b2NvbXBsZXRlT2JqZWN0RGlyZWN0aXZlID0gbnVsbDtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcpIHB1YmxpYyBzZWFyY2hJbnB1dDogRWxlbWVudFJlZiA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZVNlYXJjaCcpIHB1YmxpYyBhdXRvY29tcGxldGVTZWFyY2g6IE1hdEF1dG9jb21wbGV0ZSA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcikgcHVibGljIGF1dG9jb21wbGV0ZVRyaWdnZXIgPSBudWxsO1xuXG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiBhbnkpOiB2b2lkIHsgdGhpcy5fb25DaGFuZ2UgPSBmbiB9XG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gYW55KTogdm9pZCB7IHRoaXMuX29uVG91Y2hlZCA9IGZuIH1cblxuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmFsbG93T2JqZWN0KSB7XG4gICAgdGhpcy5rZXl3b3JkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVsYXkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlKSA9PiB0aGlzLm9iamVjdEtleXdvcmQoZSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFsbG93VGV4dCkge1xuICAgICAgdGhpcy5rZXl3b3JkJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChlKSA9PiB0aGlzLnRleHRLZXl3b3JkKGUpKTtcbiAgICB9XG5cbiAgICB0aGlzLmtleXdvcmQkXG4gICAgLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApXG4gICAgLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5rZXl3b3JkID0gdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLl9tb2RlbCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLnJlb3JkZXJlZC5lbWl0KHtcbiAgICAgIGl0ZW06IGV2ZW50Lml0ZW0uZGF0YS5kYXRhLFxuICAgICAgZnJvbTogZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgIHRvOiBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICBpdGVtczogdGhpcy5fbW9kZWwsXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVNb2RlbCh0aGlzLl9tb2RlbCk7XG4gIH1cblxuICBwcml2YXRlIF92YWxpZGF0ZVRleHQodGV4dCkge1xuICAgIHJldHVybiBTdHJpbmcodGV4dCkudHJpbSgpLmxlbmd0aCAmJiAoIXRoaXMudmFsaWRhdGVUZXh0IHx8IHRoaXMudmFsaWRhdGVUZXh0KHRleHQpKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUZXh0KHRleHQpIHtcblxuICAgIGlmICh0aGlzLl92YWxpZGF0ZVRleHQodGV4dCkpIHtcblxuICAgICAgY29uc3QgdGV4dE9iamVjdCA9IHRoaXMuY3JlYXRlSXRlbSh0ZXh0LCBEYXRhVHlwZS5UZXh0KTtcblxuICAgICAgdGhpcy51cGRhdGVNb2RlbChbLi4udGhpcy5fbW9kZWwsIHRleHRPYmplY3RdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkT2JqZWN0KG9iamVjdCkge1xuICAgIHRoaXMudXBkYXRlTW9kZWwoWy4uLnRoaXMuX21vZGVsLCBvYmplY3RdKTtcbiAgfVxuXG4gIHB1YmxpYyBibHVyKCkge1xuXG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlU2VhcmNoLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VkKCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VkKCkge1xuXG4gICAgaWYgKHRoaXMuYWxsb3dUZXh0KSB7XG4gICAgICB0aGlzLmFkZFRleHQodGhpcy5rZXl3b3JkKTtcbiAgICB9XG5cbiAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyB0ZXh0S2V5d29yZChlKSB7XG5cbiAgICBpZiAodGhpcy5hbGxvd1RleHQgJiYgZS5jb2RlID09PSAnQ29tbWEnKSB7XG4gICAgICB0aGlzLmtleXdvcmQuc3BsaXQoJywnKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICB0aGlzLmFkZFRleHQoaXRlbS50cmltKCkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5jbGVhcklucHV0KCk7XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0RGF0YSA9IHt9O1xuXG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRlVGV4dCh0aGlzLmtleXdvcmQpKSB7XG4gICAgICB0aGlzLnRleHREYXRhID0gdGhpcy5jcmVhdGVJdGVtKHRoaXMua2V5d29yZCwgRGF0YVR5cGUuVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzKGUpIHtcblxuICAgIGlmICghdGhpcy5mZXRjaE9uRm9jdXMpIHtcbiAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZldGNoT25Gb2N1cykge1xuICAgICAgdGhpcy5vYmplY3RLZXl3b3JkKGUpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLm9wZW5QYW5lbCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvYmplY3RLZXl3b3JkKGUpIHtcblxuICAgIGlmIChlICYmIChbJ0VudGVyJywgJ0Fycm93RG93bicsICdBcnJvd1VwJ10uaW5kZXhPZihlLmNvZGUpID4gLTEgfHwgKHRoaXMuYWxsb3dUZXh0ICYmIGUuY29kZSA9PT0gJ0NvbW1hJykpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZldGNoT25Gb2N1cyAmJiAhdGhpcy5rZXl3b3JkKSB7XG4gICAgICB0aGlzLnNlYXJjaERhdGEgPSBbXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mZXRjaCkge1xuICAgICAgdGhpcy5ub1Jlc3VsdHMgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmV0Y2godGhpcy5rZXl3b3JkLCB0aGlzLm1vZGVsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcblxuICAgICAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IHJlc3BvbnNlLm1hcChkYXRhID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUl0ZW0oZGF0YSwgRGF0YVR5cGUuT2JqZWN0KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IGZpbHRlcih0aGlzLnNlYXJjaERhdGEsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZpbmRJbmRleCh0aGlzLl9tb2RlbCwgKG1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVXaXRoKG1vZGVsLmRhdGEsIGl0ZW0uZGF0YSk7XG4gICAgICAgICAgICB9KSA9PT0gLTE7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuc2VhcmNoRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubm9SZXN1bHRzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSXRlbShkYXRhLCB0eXBlKSB7XG4gICAgY29uc3QgaXRlbTogYW55ID0ge1xuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBkYXRhOiBkYXRhXG4gICAgICB9O1xuXG4gICAgaWYgKHR5cGUgPT09IERhdGFUeXBlLk9iamVjdCkge1xuICAgICAgaXRlbS5pbWFnZSA9IGdldE9iamVjdFZhbHVlKGRhdGEsIHRoaXMuaW1hZ2VQcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3QoZTogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuXG4gICAgdGhpcy5zZWFyY2hEYXRhID0gW107XG4gICAgdGhpcy5jbGVhcklucHV0KCk7XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYWxsb3dPYmplY3QgJiYgdGhpcy5hbGxvd1RleHQgPyBlLm9wdGlvbi52YWx1ZSA6IGUub3B0aW9uLnZhbHVlLmRhdGE7XG4gICAgaWYgKGUub3B0aW9uLnZhbHVlLnR5cGUgPT09IERhdGFUeXBlLk9iamVjdCkge1xuXG4gICAgICBpZiAoIWZpbHRlcih0aGlzLl9tb2RlbCwgdmFsdWUpLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmFkZE9iamVjdChlLm9wdGlvbi52YWx1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChlLm9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGUub3B0aW9uLnZhbHVlLnR5cGUgPT09IERhdGFUeXBlLlRleHQpIHtcbiAgICAgIGlmICghZmlsdGVyKHRoaXMuX21vZGVsLCB2YWx1ZSkubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYWRkVGV4dChlLm9wdGlvbi52YWx1ZS5kYXRhKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGUub3B0aW9uLnZhbHVlLmRhdGEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1cyhudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KCkge1xuICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMudGV4dERhdGEgPSB7fTtcbiAgICB0aGlzLmtleXdvcmQgPSAnJztcbiAgfVxuXG4gIHB1YmxpYyBvblJlbW92ZShkYXRhKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLmNsb3NlUGFuZWwoKTtcbiAgICByZW1vdmUodGhpcy5fbW9kZWwsIGRhdGEpO1xuICAgIHRoaXMucmVtb3ZlZC5lbWl0KGRhdGEpO1xuICAgIHRoaXMudXBkYXRlTW9kZWwodGhpcy5fbW9kZWwpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuXG4gICAgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW107XG5cbiAgICB2YWx1ZSA9IG1hcCh2YWx1ZSwgKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSBpc09iamVjdChpdGVtKSA/IERhdGFUeXBlLk9iamVjdCA6IERhdGFUeXBlLlRleHQ7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVJdGVtKGl0ZW0sIHR5cGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVNb2RlbCh2YWx1ZSkge1xuXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcblxuICAgIGNvbnN0IG1vZGVsID0gbWFwKHRoaXMuX21vZGVsLCAoaXRlbSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFsbG93VGV4dCB8fCAhdGhpcy5hbGxvd09iamVjdCkge1xuICAgICAgICByZXR1cm4gaXRlbS5kYXRhO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMuX29uQ2hhbmdlKG1vZGVsKTtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2F1dG9jb21wbGV0ZS1jaGlwcy8iLCJzb3VyY2VzIjpbImFwcC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1jaGlwcy9hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUssVUFBVSxFQUFhLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFDakYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBZ0MsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFekcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlFLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQzs7QUFFbkgsTUFBTSxPQUFPLDBCQUEwQixHQUFhO0lBQ2xELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVB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TCxLQUFLO29CQUNMLEtBQUs7MkJBQ0wsS0FBSztpQ0FDTCxLQUFLO3VCQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxLQUFLO29CQUNMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLO3VCQUtMLE1BQU07c0JBQ04sTUFBTTt3QkFDTixNQUFNOzBCQUVOLFdBQVcsU0FBQyx1QkFBdUI7d0JBZ0JuQyxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOzZCQUtwQyxZQUFZLFNBQUMsNkJBQTZCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFOzBCQUdqRSxTQUFTLFNBQUMsYUFBYTtpQ0FDdkIsU0FBUyxTQUFDLG9CQUFvQjtrQ0FDOUIsU0FBUyxTQUFDLHNCQUFzQjs7OztJQWhEakMsNkNBQTZCOztJQUM3QixtREFBaUM7O0lBQ2pDLHFEQUFtQzs7SUFDbkMsaURBQW1DOztJQUNuQyxtREFBbUM7O0lBQ25DLDZDQUE0Qjs7SUFDNUIsb0RBQTZCOztJQUM3QiwwREFBd0M7O0lBQ3hDLGdEQUFpQzs7SUFDakMsaURBQWlDOztJQUNqQyxpREFBa0M7O0lBQ2xDLDZDQUEwQjs7SUFDMUIsb0RBQW9DOztJQUNwQyxtREFHRTs7SUFFRixnREFBK0M7O0lBQy9DLCtDQUE4Qzs7SUFDOUMsaURBQWdEOztJQUVoRCxtREFBeUQ7O0lBRXpELGtEQUE4Qjs7SUFDOUIsZ0RBQTBCOztJQUMxQixnREFBMkI7O0lBQzNCLCtDQUE4Qjs7SUFDOUIsZ0RBQXVDOztJQUN2QyxpREFBeUI7Ozs7O0lBRXpCLDhDQUEyQjs7Ozs7SUFDM0IsZ0RBQWlDOztJQVdqQyxzREFDcUQ7O0lBRXJELG1EQUFnRTs7SUFDaEUsMERBQW1GOztJQUNuRiwyREFBcUU7Ozs7O0lBRXJFLGtEQUErQjs7Ozs7SUFDL0IsaURBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIFRlbXBsYXRlUmVmLFxuICBDb250ZW50Q2hpbGQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFByb3ZpZGVyLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3ksIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnXG5cbmltcG9ydCB7IGlzRXF1YWwsIHJlbW92ZSwgZmluZEluZGV4LCBtYXAsIGZpbHRlciwgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgZ2V0T2JqZWN0VmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2dldC1vYmplY3QtdmFsdWUnO1xuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBGc0F1dG9jb21wbGV0ZU9iamVjdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYXV0b2NvbXBsZXRlLW9iamVjdC9hdXRvY29tcGxldGUtb2JqZWN0LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBGU19BQ0NPVU5UX1BJQ0tFUl9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGc0F1dG9jb21wbGV0ZUNoaXBzQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWF1dG9jb21wbGV0ZS1jaGlwcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vYXV0b2NvbXBsZXRlLWNoaXBzLmNvbXBvbmVudC5zY3NzJyBdLFxuICBwcm92aWRlcnM6IFtGU19BQ0NPVU5UX1BJQ0tFUl9BQ0NFU1NPUl1cbn0pXG5leHBvcnQgY2xhc3MgRnNBdXRvY29tcGxldGVDaGlwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQElucHV0KCkgcHVibGljIGZldGNoID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbWFnZVByb3BlcnR5ID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxvd1RleHQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxvd09iamVjdCA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBkZWxheSA9IDMwMDtcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRlVGV4dDtcbiAgQElucHV0KCkgcHVibGljIGludmFsaWRUZXh0TWVzc2FnZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHJlbW92YWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBvcmRlcmFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGxpbWl0ID0gMDtcbiAgQElucHV0KCkgcHVibGljIGZldGNoT25Gb2N1cyA9IHRydWU7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb21wYXJlV2l0aCA9IChvMTogYW55LCBvMjogYW55KSA9PiB7XG4gICAgcmV0dXJuIGlzRXF1YWwobzEsIG8yKTtcbiAgfTtcblxuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVvcmRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnMtZm9ybS13cmFwcGVyJykgZm9ybVdyYXBwZXIgPSB0cnVlO1xuXG4gIHB1YmxpYyBzZWFyY2hEYXRhOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgdGV4dERhdGE6IGFueSA9IHt9O1xuICBwdWJsaWMgZGF0YVR5cGUgPSBEYXRhVHlwZTtcbiAgcHVibGljIGtleXdvcmQ6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBrZXl3b3JkJCA9IG5ldyBTdWJqZWN0PEV2ZW50PigpO1xuICBwdWJsaWMgbm9SZXN1bHRzID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfbW9kZWw6IGFueVtdID0gW107XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGdldCBtb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnc3RhcnQnLCBbJyRldmVudCddKVxuICBkcmFnU3RhcnQoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfTtcblxuICBAQ29udGVudENoaWxkKEZzQXV0b2NvbXBsZXRlT2JqZWN0RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIG9iamVjdFRlbXBsYXRlOiBGc0F1dG9jb21wbGV0ZU9iamVjdERpcmVjdGl2ZSA9IG51bGw7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBwdWJsaWMgc2VhcmNoSW5wdXQ6IEVsZW1lbnRSZWYgPSBudWxsO1xuICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGVTZWFyY2gnKSBwdWJsaWMgYXV0b2NvbXBsZXRlU2VhcmNoOiBNYXRBdXRvY29tcGxldGUgPSBudWxsO1xuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpIHB1YmxpYyBhdXRvY29tcGxldGVUcmlnZ2VyID0gbnVsbDtcblxuICBwcml2YXRlIF9vblRvdWNoZWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gYW55KTogdm9pZCB7IHRoaXMuX29uQ2hhbmdlID0gZm4gfVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IGFueSk6IHZvaWQgeyB0aGlzLl9vblRvdWNoZWQgPSBmbiB9XG5cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcblxuICAgIHRoaXMua2V5d29yZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlbGF5KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICB0aGlzLmtleXdvcmQgPSB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuYWxsb3dPYmplY3QpIHtcbiAgICAgICAgICB0aGlzLm9iamVjdEtleXdvcmQoZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hbGxvd1RleHQpIHtcbiAgICAgICAgICB0aGlzLnRleHRLZXl3b3JkKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLl9tb2RlbCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLnJlb3JkZXJlZC5lbWl0KHtcbiAgICAgIGl0ZW06IGV2ZW50Lml0ZW0uZGF0YS5kYXRhLFxuICAgICAgZnJvbTogZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgIHRvOiBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICBpdGVtczogdGhpcy5fbW9kZWwsXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVNb2RlbCh0aGlzLl9tb2RlbCk7XG4gIH1cblxuICBwcml2YXRlIF92YWxpZGF0ZVRleHQodGV4dCkge1xuICAgIHJldHVybiBTdHJpbmcodGV4dCkudHJpbSgpLmxlbmd0aCAmJiAoIXRoaXMudmFsaWRhdGVUZXh0IHx8IHRoaXMudmFsaWRhdGVUZXh0KHRleHQpKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUZXh0KHRleHQpIHtcblxuICAgIGlmICh0aGlzLl92YWxpZGF0ZVRleHQodGV4dCkpIHtcblxuICAgICAgY29uc3QgdGV4dE9iamVjdCA9IHRoaXMuY3JlYXRlSXRlbSh0ZXh0LCBEYXRhVHlwZS5UZXh0KTtcblxuICAgICAgdGhpcy51cGRhdGVNb2RlbChbLi4udGhpcy5fbW9kZWwsIHRleHRPYmplY3RdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkT2JqZWN0KG9iamVjdCkge1xuICAgIHRoaXMudXBkYXRlTW9kZWwoWy4uLnRoaXMuX21vZGVsLCBvYmplY3RdKTtcbiAgfVxuXG4gIHB1YmxpYyBibHVyKCkge1xuXG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlU2VhcmNoLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VkKCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VkKCkge1xuXG4gICAgaWYgKHRoaXMuYWxsb3dUZXh0KSB7XG4gICAgICB0aGlzLmFkZFRleHQodGhpcy5rZXl3b3JkKTtcbiAgICB9XG5cbiAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyB0ZXh0S2V5d29yZChlKSB7XG5cbiAgICBpZiAodGhpcy5hbGxvd1RleHQgJiYgZS5jb2RlID09PSAnQ29tbWEnKSB7XG4gICAgICB0aGlzLmtleXdvcmQuc3BsaXQoJywnKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICB0aGlzLmFkZFRleHQoaXRlbS50cmltKCkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5jbGVhcklucHV0KCk7XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0RGF0YSA9IHt9O1xuXG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRlVGV4dCh0aGlzLmtleXdvcmQpKSB7XG4gICAgICB0aGlzLnRleHREYXRhID0gdGhpcy5jcmVhdGVJdGVtKHRoaXMua2V5d29yZCwgRGF0YVR5cGUuVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzKGUpIHtcblxuICAgIGlmICghdGhpcy5mZXRjaE9uRm9jdXMpIHtcbiAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZldGNoT25Gb2N1cykge1xuICAgICAgdGhpcy5vYmplY3RLZXl3b3JkKGUpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLm9wZW5QYW5lbCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvYmplY3RLZXl3b3JkKGUpIHtcblxuICAgIGlmIChlICYmIChbJ0VudGVyJywgJ0Fycm93RG93bicsICdBcnJvd1VwJ10uaW5kZXhPZihlLmNvZGUpID4gLTEgfHwgKHRoaXMuYWxsb3dUZXh0ICYmIGUuY29kZSA9PT0gJ0NvbW1hJykpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZldGNoT25Gb2N1cyAmJiAhdGhpcy5rZXl3b3JkKSB7XG4gICAgICB0aGlzLnNlYXJjaERhdGEgPSBbXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mZXRjaCkge1xuICAgICAgdGhpcy5ub1Jlc3VsdHMgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmV0Y2godGhpcy5rZXl3b3JkLCB0aGlzLm1vZGVsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcblxuICAgICAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IHJlc3BvbnNlLm1hcChkYXRhID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUl0ZW0oZGF0YSwgRGF0YVR5cGUuT2JqZWN0KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IGZpbHRlcih0aGlzLnNlYXJjaERhdGEsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZpbmRJbmRleCh0aGlzLl9tb2RlbCwgKG1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVXaXRoKG1vZGVsLmRhdGEsIGl0ZW0uZGF0YSk7XG4gICAgICAgICAgICB9KSA9PT0gLTE7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuc2VhcmNoRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubm9SZXN1bHRzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSXRlbShkYXRhLCB0eXBlKSB7XG4gICAgY29uc3QgaXRlbTogYW55ID0ge1xuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBkYXRhOiBkYXRhXG4gICAgICB9O1xuXG4gICAgaWYgKHR5cGUgPT09IERhdGFUeXBlLk9iamVjdCkge1xuICAgICAgaXRlbS5pbWFnZSA9IGdldE9iamVjdFZhbHVlKGRhdGEsIHRoaXMuaW1hZ2VQcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3QoZTogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuXG4gICAgdGhpcy5zZWFyY2hEYXRhID0gW107XG4gICAgdGhpcy5jbGVhcklucHV0KCk7XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYWxsb3dPYmplY3QgJiYgdGhpcy5hbGxvd1RleHQgPyBlLm9wdGlvbi52YWx1ZSA6IGUub3B0aW9uLnZhbHVlLmRhdGE7XG4gICAgaWYgKGUub3B0aW9uLnZhbHVlLnR5cGUgPT09IERhdGFUeXBlLk9iamVjdCkge1xuXG4gICAgICBpZiAoIWZpbHRlcih0aGlzLl9tb2RlbCwgdmFsdWUpLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmFkZE9iamVjdChlLm9wdGlvbi52YWx1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChlLm9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGUub3B0aW9uLnZhbHVlLnR5cGUgPT09IERhdGFUeXBlLlRleHQpIHtcbiAgICAgIGlmICghZmlsdGVyKHRoaXMuX21vZGVsLCB2YWx1ZSkubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYWRkVGV4dChlLm9wdGlvbi52YWx1ZS5kYXRhKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGUub3B0aW9uLnZhbHVlLmRhdGEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1cyhudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KCkge1xuICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMudGV4dERhdGEgPSB7fTtcbiAgICB0aGlzLmtleXdvcmQgPSAnJztcbiAgfVxuXG4gIHB1YmxpYyBvblJlbW92ZShkYXRhKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLmNsb3NlUGFuZWwoKTtcbiAgICByZW1vdmUodGhpcy5fbW9kZWwsIGRhdGEpO1xuICAgIHRoaXMucmVtb3ZlZC5lbWl0KGRhdGEpO1xuICAgIHRoaXMudXBkYXRlTW9kZWwodGhpcy5fbW9kZWwpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuXG4gICAgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW107XG5cbiAgICB2YWx1ZSA9IG1hcCh2YWx1ZSwgKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSBpc09iamVjdChpdGVtKSA/IERhdGFUeXBlLk9iamVjdCA6IERhdGFUeXBlLlRleHQ7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVJdGVtKGl0ZW0sIHR5cGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVNb2RlbCh2YWx1ZSkge1xuXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcblxuICAgIGNvbnN0IG1vZGVsID0gbWFwKHRoaXMuX21vZGVsLCAoaXRlbSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFsbG93VGV4dCB8fCAhdGhpcy5hbGxvd09iamVjdCkge1xuICAgICAgICByZXR1cm4gaXRlbS5kYXRhO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMuX29uQ2hhbmdlKG1vZGVsKTtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19 |
@@ -105,15 +105,13 @@ /** | ||
var _this = this; | ||
if (this.allowObject) { | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$), debounceTime(this.delay)) | ||
.subscribe(function (e) { return _this.objectKeyword(e); }); | ||
} | ||
if (this.allowText) { | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$)) | ||
.subscribe(function (e) { return _this.textKeyword(e); }); | ||
} | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$)) | ||
.subscribe(function (e) { return _this.keyword = _this.searchInput.nativeElement.value; }); | ||
.pipe(takeUntil(this.destroy$), debounceTime(this.delay)) | ||
.subscribe(function (e) { | ||
_this.keyword = _this.searchInput.nativeElement.value; | ||
if (_this.allowObject) { | ||
_this.objectKeyword(e); | ||
} | ||
if (_this.allowText) { | ||
_this.textKeyword(e); | ||
} | ||
}); | ||
}; | ||
@@ -519,2 +517,2 @@ /** | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2F1dG9jb21wbGV0ZS1jaGlwcy8iLCJzb3VyY2VzIjpbImFwcC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1jaGlwcy9hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVLLFVBQVUsRUFBYSxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQ2pGLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQWdDLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXpHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5RSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7O0FBRW5ILE1BQU0sS0FBTywwQkFBMEIsR0FBYTtJQUNsRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxP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O0lBQ2pDLGlEQUFrQzs7SUFDbEMsNkNBQTBCOztJQUMxQixvREFBb0M7O0lBQ3BDLG1EQUdFOztJQUVGLGdEQUErQzs7SUFDL0MsK0NBQThDOztJQUM5QyxpREFBZ0Q7O0lBRWhELG1EQUF5RDs7SUFFekQsa0RBQThCOztJQUM5QixnREFBMEI7O0lBQzFCLGdEQUEyQjs7SUFDM0IsK0NBQThCOztJQUM5QixnREFBdUM7O0lBQ3ZDLGlEQUF5Qjs7Ozs7SUFFekIsOENBQTJCOzs7OztJQUMzQixnREFBaUM7O0lBV2pDLHNEQUNxRDs7SUFFckQsbURBQWdFOztJQUNoRSwwREFBbUY7O0lBQ25GLDJEQUFxRTs7Ozs7SUFFckUsa0RBQStCOzs7OztJQUMvQixpREFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUHJvdmlkZXIsIGZvcndhcmRSZWYsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCdcblxuaW1wb3J0IHsgaXNFcXVhbCwgcmVtb3ZlLCBmaW5kSW5kZXgsIG1hcCwgZmlsdGVyLCBpc09iamVjdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBnZXRPYmplY3RWYWx1ZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW9iamVjdC12YWx1ZSc7XG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0YS10eXBlJztcbmltcG9ydCB7IEZzQXV0b2NvbXBsZXRlT2JqZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9hdXRvY29tcGxldGUtb2JqZWN0L2F1dG9jb21wbGV0ZS1vYmplY3QuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IEZTX0FDQ09VTlRfUElDS0VSX0FDQ0VTU09SOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZzQXV0b2NvbXBsZXRlQ2hpcHNDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtYXV0b2NvbXBsZXRlLWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50LnNjc3MnIF0sXG4gIHByb3ZpZGVyczogW0ZTX0FDQ09VTlRfUElDS0VSX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBGc0F1dG9jb21wbGV0ZUNoaXBzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBASW5wdXQoKSBwdWJsaWMgZmV0Y2ggPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGltYWdlUHJvcGVydHkgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGFsbG93VGV4dDogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIGFsbG93T2JqZWN0ID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGRlbGF5ID0gMzAwO1xuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGVUZXh0O1xuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZFRleHRNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIG9yZGVyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbGltaXQgPSAwO1xuICBASW5wdXQoKSBwdWJsaWMgZmV0Y2hPbkZvY3VzID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgcHVibGljIGNvbXBhcmVXaXRoID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IHtcbiAgICByZXR1cm4gaXNFcXVhbChvMSwgbzIpO1xuICB9O1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZW9yZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1mb3JtLXdyYXBwZXInKSBmb3JtV3JhcHBlciA9IHRydWU7XG5cbiAgcHVibGljIHNlYXJjaERhdGE6IGFueVtdID0gW107XG4gIHB1YmxpYyB0ZXh0RGF0YTogYW55ID0ge307XG4gIHB1YmxpYyBkYXRhVHlwZSA9IERhdGFUeXBlO1xuICBwdWJsaWMga2V5d29yZDogc3RyaW5nID0gbnVsbDtcbiAgcHVibGljIGtleXdvcmQkID0gbmV3IFN1YmplY3Q8RXZlbnQ+KCk7XG4gIHB1YmxpYyBub1Jlc3VsdHMgPSBmYWxzZTtcblxuICBwcml2YXRlIF9tb2RlbDogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdzdGFydCcsIFsnJGV2ZW50J10pXG4gIGRyYWdTdGFydChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9O1xuXG4gIEBDb250ZW50Q2hpbGQoRnNBdXRvY29tcGxldGVPYmplY3REaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgb2JqZWN0VGVtcGxhdGU6IEZzQXV0b2NvbXBsZXRlT2JqZWN0RGlyZWN0aXZlID0gbnVsbDtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcpIHB1YmxpYyBzZWFyY2hJbnB1dDogRWxlbWVudFJlZiA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZVNlYXJjaCcpIHB1YmxpYyBhdXRvY29tcGxldGVTZWFyY2g6IE1hdEF1dG9jb21wbGV0ZSA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcikgcHVibGljIGF1dG9jb21wbGV0ZVRyaWdnZXIgPSBudWxsO1xuXG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiBhbnkpOiB2b2lkIHsgdGhpcy5fb25DaGFuZ2UgPSBmbiB9XG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gYW55KTogdm9pZCB7IHRoaXMuX29uVG91Y2hlZCA9IGZuIH1cblxuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmFsbG93T2JqZWN0KSB7XG4gICAgdGhpcy5rZXl3b3JkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVsYXkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlKSA9PiB0aGlzLm9iamVjdEtleXdvcmQoZSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFsbG93VGV4dCkge1xuICAgICAgdGhpcy5rZXl3b3JkJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChlKSA9PiB0aGlzLnRleHRLZXl3b3JkKGUpKTtcbiAgICB9XG5cbiAgICB0aGlzLmtleXdvcmQkXG4gICAgLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApXG4gICAgLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5rZXl3b3JkID0gdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLl9tb2RlbCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLnJlb3JkZXJlZC5lbWl0KHtcbiAgICAgIGl0ZW06IGV2ZW50Lml0ZW0uZGF0YS5kYXRhLFxuICAgICAgZnJvbTogZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgIHRvOiBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICBpdGVtczogdGhpcy5fbW9kZWwsXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVNb2RlbCh0aGlzLl9tb2RlbCk7XG4gIH1cblxuICBwcml2YXRlIF92YWxpZGF0ZVRleHQodGV4dCkge1xuICAgIHJldHVybiBTdHJpbmcodGV4dCkudHJpbSgpLmxlbmd0aCAmJiAoIXRoaXMudmFsaWRhdGVUZXh0IHx8IHRoaXMudmFsaWRhdGVUZXh0KHRleHQpKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUZXh0KHRleHQpIHtcblxuICAgIGlmICh0aGlzLl92YWxpZGF0ZVRleHQodGV4dCkpIHtcblxuICAgICAgY29uc3QgdGV4dE9iamVjdCA9IHRoaXMuY3JlYXRlSXRlbSh0ZXh0LCBEYXRhVHlwZS5UZXh0KTtcblxuICAgICAgdGhpcy51cGRhdGVNb2RlbChbLi4udGhpcy5fbW9kZWwsIHRleHRPYmplY3RdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkT2JqZWN0KG9iamVjdCkge1xuICAgIHRoaXMudXBkYXRlTW9kZWwoWy4uLnRoaXMuX21vZGVsLCBvYmplY3RdKTtcbiAgfVxuXG4gIHB1YmxpYyBibHVyKCkge1xuXG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlU2VhcmNoLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VkKCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VkKCkge1xuXG4gICAgaWYgKHRoaXMuYWxsb3dUZXh0KSB7XG4gICAgICB0aGlzLmFkZFRleHQodGhpcy5rZXl3b3JkKTtcbiAgICB9XG5cbiAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyB0ZXh0S2V5d29yZChlKSB7XG5cbiAgICBpZiAodGhpcy5hbGxvd1RleHQgJiYgZS5jb2RlID09PSAnQ29tbWEnKSB7XG4gICAgICB0aGlzLmtleXdvcmQuc3BsaXQoJywnKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICB0aGlzLmFkZFRleHQoaXRlbS50cmltKCkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5jbGVhcklucHV0KCk7XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0RGF0YSA9IHt9O1xuXG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRlVGV4dCh0aGlzLmtleXdvcmQpKSB7XG4gICAgICB0aGlzLnRleHREYXRhID0gdGhpcy5jcmVhdGVJdGVtKHRoaXMua2V5d29yZCwgRGF0YVR5cGUuVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzKGUpIHtcblxuICAgIGlmICghdGhpcy5mZXRjaE9uRm9jdXMpIHtcbiAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZldGNoT25Gb2N1cykge1xuICAgICAgdGhpcy5vYmplY3RLZXl3b3JkKGUpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLm9wZW5QYW5lbCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvYmplY3RLZXl3b3JkKGUpIHtcblxuICAgIGlmIChlICYmIChbJ0VudGVyJywgJ0Fycm93RG93bicsICdBcnJvd1VwJ10uaW5kZXhPZihlLmNvZGUpID4gLTEgfHwgKHRoaXMuYWxsb3dUZXh0ICYmIGUuY29kZSA9PT0gJ0NvbW1hJykpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZldGNoT25Gb2N1cyAmJiAhdGhpcy5rZXl3b3JkKSB7XG4gICAgICB0aGlzLnNlYXJjaERhdGEgPSBbXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mZXRjaCkge1xuICAgICAgdGhpcy5ub1Jlc3VsdHMgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmV0Y2godGhpcy5rZXl3b3JkLCB0aGlzLm1vZGVsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcblxuICAgICAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IHJlc3BvbnNlLm1hcChkYXRhID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUl0ZW0oZGF0YSwgRGF0YVR5cGUuT2JqZWN0KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IGZpbHRlcih0aGlzLnNlYXJjaERhdGEsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZpbmRJbmRleCh0aGlzLl9tb2RlbCwgKG1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVXaXRoKG1vZGVsLmRhdGEsIGl0ZW0uZGF0YSk7XG4gICAgICAgICAgICB9KSA9PT0gLTE7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuc2VhcmNoRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubm9SZXN1bHRzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSXRlbShkYXRhLCB0eXBlKSB7XG4gICAgY29uc3QgaXRlbTogYW55ID0ge1xuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBkYXRhOiBkYXRhXG4gICAgICB9O1xuXG4gICAgaWYgKHR5cGUgPT09IERhdGFUeXBlLk9iamVjdCkge1xuICAgICAgaXRlbS5pbWFnZSA9IGdldE9iamVjdFZhbHVlKGRhdGEsIHRoaXMuaW1hZ2VQcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3QoZTogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuXG4gICAgdGhpcy5zZWFyY2hEYXRhID0gW107XG4gICAgdGhpcy5jbGVhcklucHV0KCk7XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYWxsb3dPYmplY3QgJiYgdGhpcy5hbGxvd1RleHQgPyBlLm9wdGlvbi52YWx1ZSA6IGUub3B0aW9uLnZhbHVlLmRhdGE7XG4gICAgaWYgKGUub3B0aW9uLnZhbHVlLnR5cGUgPT09IERhdGFUeXBlLk9iamVjdCkge1xuXG4gICAgICBpZiAoIWZpbHRlcih0aGlzLl9tb2RlbCwgdmFsdWUpLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmFkZE9iamVjdChlLm9wdGlvbi52YWx1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChlLm9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGUub3B0aW9uLnZhbHVlLnR5cGUgPT09IERhdGFUeXBlLlRleHQpIHtcbiAgICAgIGlmICghZmlsdGVyKHRoaXMuX21vZGVsLCB2YWx1ZSkubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYWRkVGV4dChlLm9wdGlvbi52YWx1ZS5kYXRhKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGUub3B0aW9uLnZhbHVlLmRhdGEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1cyhudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KCkge1xuICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMudGV4dERhdGEgPSB7fTtcbiAgICB0aGlzLmtleXdvcmQgPSAnJztcbiAgfVxuXG4gIHB1YmxpYyBvblJlbW92ZShkYXRhKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLmNsb3NlUGFuZWwoKTtcbiAgICByZW1vdmUodGhpcy5fbW9kZWwsIGRhdGEpO1xuICAgIHRoaXMucmVtb3ZlZC5lbWl0KGRhdGEpO1xuICAgIHRoaXMudXBkYXRlTW9kZWwodGhpcy5fbW9kZWwpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuXG4gICAgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW107XG5cbiAgICB2YWx1ZSA9IG1hcCh2YWx1ZSwgKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSBpc09iamVjdChpdGVtKSA/IERhdGFUeXBlLk9iamVjdCA6IERhdGFUeXBlLlRleHQ7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVJdGVtKGl0ZW0sIHR5cGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVNb2RlbCh2YWx1ZSkge1xuXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcblxuICAgIGNvbnN0IG1vZGVsID0gbWFwKHRoaXMuX21vZGVsLCAoaXRlbSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFsbG93VGV4dCB8fCAhdGhpcy5hbGxvd09iamVjdCkge1xuICAgICAgICByZXR1cm4gaXRlbS5kYXRhO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcblxuICAgIHRoaXMuX29uQ2hhbmdlKG1vZGVsKTtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2F1dG9jb21wbGV0ZS1jaGlwcy8iLCJzb3VyY2VzIjpbImFwcC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1jaGlwcy9hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVLLFVBQVUsRUFBYSxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQ2pGLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQWdDLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXpHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5RSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7O0FBRW5ILE1BQU0sS0FBTywwQkFBMEIsR0FBYTtJQUNsRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxP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RDs7SUFFckQsbURBQWdFOztJQUNoRSwwREFBbUY7O0lBQ25GLDJEQUFxRTs7Ozs7SUFFckUsa0RBQStCOzs7OztJQUMvQixpREFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUHJvdmlkZXIsIGZvcndhcmRSZWYsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCdcblxuaW1wb3J0IHsgaXNFcXVhbCwgcmVtb3ZlLCBmaW5kSW5kZXgsIG1hcCwgZmlsdGVyLCBpc09iamVjdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBnZXRPYmplY3RWYWx1ZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW9iamVjdC12YWx1ZSc7XG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0YS10eXBlJztcbmltcG9ydCB7IEZzQXV0b2NvbXBsZXRlT2JqZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9hdXRvY29tcGxldGUtb2JqZWN0L2F1dG9jb21wbGV0ZS1vYmplY3QuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IEZTX0FDQ09VTlRfUElDS0VSX0FDQ0VTU09SOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZzQXV0b2NvbXBsZXRlQ2hpcHNDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtYXV0b2NvbXBsZXRlLWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50LnNjc3MnIF0sXG4gIHByb3ZpZGVyczogW0ZTX0FDQ09VTlRfUElDS0VSX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBGc0F1dG9jb21wbGV0ZUNoaXBzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBASW5wdXQoKSBwdWJsaWMgZmV0Y2ggPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGltYWdlUHJvcGVydHkgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGFsbG93VGV4dDogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIGFsbG93T2JqZWN0ID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGRlbGF5ID0gMzAwO1xuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGVUZXh0O1xuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZFRleHRNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIG9yZGVyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbGltaXQgPSAwO1xuICBASW5wdXQoKSBwdWJsaWMgZmV0Y2hPbkZvY3VzID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgcHVibGljIGNvbXBhcmVXaXRoID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IHtcbiAgICByZXR1cm4gaXNFcXVhbChvMSwgbzIpO1xuICB9O1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZW9yZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1mb3JtLXdyYXBwZXInKSBmb3JtV3JhcHBlciA9IHRydWU7XG5cbiAgcHVibGljIHNlYXJjaERhdGE6IGFueVtdID0gW107XG4gIHB1YmxpYyB0ZXh0RGF0YTogYW55ID0ge307XG4gIHB1YmxpYyBkYXRhVHlwZSA9IERhdGFUeXBlO1xuICBwdWJsaWMga2V5d29yZDogc3RyaW5nID0gbnVsbDtcbiAgcHVibGljIGtleXdvcmQkID0gbmV3IFN1YmplY3Q8RXZlbnQ+KCk7XG4gIHB1YmxpYyBub1Jlc3VsdHMgPSBmYWxzZTtcblxuICBwcml2YXRlIF9tb2RlbDogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdzdGFydCcsIFsnJGV2ZW50J10pXG4gIGRyYWdTdGFydChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9O1xuXG4gIEBDb250ZW50Q2hpbGQoRnNBdXRvY29tcGxldGVPYmplY3REaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgb2JqZWN0VGVtcGxhdGU6IEZzQXV0b2NvbXBsZXRlT2JqZWN0RGlyZWN0aXZlID0gbnVsbDtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcpIHB1YmxpYyBzZWFyY2hJbnB1dDogRWxlbWVudFJlZiA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZVNlYXJjaCcpIHB1YmxpYyBhdXRvY29tcGxldGVTZWFyY2g6IE1hdEF1dG9jb21wbGV0ZSA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcikgcHVibGljIGF1dG9jb21wbGV0ZVRyaWdnZXIgPSBudWxsO1xuXG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiBhbnkpOiB2b2lkIHsgdGhpcy5fb25DaGFuZ2UgPSBmbiB9XG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gYW55KTogdm9pZCB7IHRoaXMuX29uVG91Y2hlZCA9IGZuIH1cblxuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5rZXl3b3JkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVsYXkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIHRoaXMua2V5d29yZCA9IHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5hbGxvd09iamVjdCkge1xuICAgICAgICAgIHRoaXMub2JqZWN0S2V5d29yZChlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFsbG93VGV4dCkge1xuICAgICAgICAgIHRoaXMudGV4dEtleXdvcmQoZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuX21vZGVsLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMucmVvcmRlcmVkLmVtaXQoe1xuICAgICAgaXRlbTogZXZlbnQuaXRlbS5kYXRhLmRhdGEsXG4gICAgICBmcm9tOiBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgdG86IGV2ZW50LmN1cnJlbnRJbmRleCxcbiAgICAgIGl0ZW1zOiB0aGlzLl9tb2RlbCxcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsKHRoaXMuX21vZGVsKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbGlkYXRlVGV4dCh0ZXh0KSB7XG4gICAgcmV0dXJuIFN0cmluZyh0ZXh0KS50cmltKCkubGVuZ3RoICYmICghdGhpcy52YWxpZGF0ZVRleHQgfHwgdGhpcy52YWxpZGF0ZVRleHQodGV4dCkpO1xuICB9XG5cbiAgcHVibGljIGFkZFRleHQodGV4dCkge1xuXG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRlVGV4dCh0ZXh0KSkge1xuXG4gICAgICBjb25zdCB0ZXh0T2JqZWN0ID0gdGhpcy5jcmVhdGVJdGVtKHRleHQsIERhdGFUeXBlLlRleHQpO1xuXG4gICAgICB0aGlzLnVwZGF0ZU1vZGVsKFsuLi50aGlzLl9tb2RlbCwgdGV4dE9iamVjdF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRPYmplY3Qob2JqZWN0KSB7XG4gICAgdGhpcy51cGRhdGVNb2RlbChbLi4udGhpcy5fbW9kZWwsIG9iamVjdF0pO1xuICB9XG5cbiAgcHVibGljIGJsdXIoKSB7XG5cbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGVTZWFyY2guaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZWQoKSB7XG5cbiAgICBpZiAodGhpcy5hbGxvd1RleHQpIHtcbiAgICAgIHRoaXMuYWRkVGV4dCh0aGlzLmtleXdvcmQpO1xuICAgIH1cblxuICAgIHRoaXMuY2xlYXJJbnB1dCgpO1xuICB9XG5cbiAgcHVibGljIHRleHRLZXl3b3JkKGUpIHtcblxuICAgIGlmICh0aGlzLmFsbG93VGV4dCAmJiBlLmNvZGUgPT09ICdDb21tYScpIHtcbiAgICAgIHRoaXMua2V5d29yZC5zcGxpdCgnLCcpLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHRoaXMuYWRkVGV4dChpdGVtLnRyaW0oKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICB9XG5cbiAgICB0aGlzLnRleHREYXRhID0ge307XG5cbiAgICBpZiAodGhpcy5fdmFsaWRhdGVUZXh0KHRoaXMua2V5d29yZCkpIHtcbiAgICAgIHRoaXMudGV4dERhdGEgPSB0aGlzLmNyZWF0ZUl0ZW0odGhpcy5rZXl3b3JkLCBEYXRhVHlwZS5UZXh0KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoZSkge1xuXG4gICAgaWYgKCF0aGlzLmZldGNoT25Gb2N1cykge1xuICAgICAgdGhpcy5zZWFyY2hEYXRhID0gW107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmV0Y2hPbkZvY3VzKSB7XG4gICAgICB0aGlzLm9iamVjdEtleXdvcmQoZSk7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIub3BlblBhbmVsKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9iamVjdEtleXdvcmQoZSkge1xuXG4gICAgaWYgKGUgJiYgKFsnRW50ZXInLCAnQXJyb3dEb3duJywgJ0Fycm93VXAnXS5pbmRleE9mKGUuY29kZSkgPiAtMSB8fCAodGhpcy5hbGxvd1RleHQgJiYgZS5jb2RlID09PSAnQ29tbWEnKSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZmV0Y2hPbkZvY3VzICYmICF0aGlzLmtleXdvcmQpIHtcbiAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZldGNoKSB7XG4gICAgICB0aGlzLm5vUmVzdWx0cyA9IGZhbHNlO1xuICAgICAgdGhpcy5mZXRjaCh0aGlzLmtleXdvcmQsIHRoaXMubW9kZWwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuXG4gICAgICAgICAgdGhpcy5zZWFyY2hEYXRhID0gcmVzcG9uc2UubWFwKGRhdGEgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlSXRlbShkYXRhLCBEYXRhVHlwZS5PYmplY3QpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5zZWFyY2hEYXRhID0gZmlsdGVyKHRoaXMuc2VhcmNoRGF0YSwgaXRlbSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZmluZEluZGV4KHRoaXMuX21vZGVsLCAobW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZVdpdGgobW9kZWwuZGF0YSwgaXRlbS5kYXRhKTtcbiAgICAgICAgICAgIH0pID09PSAtMTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICghdGhpcy5zZWFyY2hEYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5ub1Jlc3VsdHMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJdGVtKGRhdGEsIHR5cGUpIHtcbiAgICBjb25zdCBpdGVtOiBhbnkgPSB7XG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGRhdGE6IGRhdGFcbiAgICAgIH07XG5cbiAgICBpZiAodHlwZSA9PT0gRGF0YVR5cGUuT2JqZWN0KSB7XG4gICAgICBpdGVtLmltYWdlID0gZ2V0T2JqZWN0VmFsdWUoZGF0YSwgdGhpcy5pbWFnZVByb3BlcnR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdChlOiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG5cbiAgICB0aGlzLnNlYXJjaERhdGEgPSBbXTtcbiAgICB0aGlzLmNsZWFySW5wdXQoKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5hbGxvd09iamVjdCAmJiB0aGlzLmFsbG93VGV4dCA/IGUub3B0aW9uLnZhbHVlIDogZS5vcHRpb24udmFsdWUuZGF0YTtcbiAgICBpZiAoZS5vcHRpb24udmFsdWUudHlwZSA9PT0gRGF0YVR5cGUuT2JqZWN0KSB7XG5cbiAgICAgIGlmICghZmlsdGVyKHRoaXMuX21vZGVsLCB2YWx1ZSkubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYWRkT2JqZWN0KGUub3B0aW9uLnZhbHVlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGUub3B0aW9uLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZS5vcHRpb24udmFsdWUudHlwZSA9PT0gRGF0YVR5cGUuVGV4dCkge1xuICAgICAgaWYgKCFmaWx0ZXIodGhpcy5fbW9kZWwsIHZhbHVlKS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hZGRUZXh0KGUub3B0aW9uLnZhbHVlLmRhdGEpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoZS5vcHRpb24udmFsdWUuZGF0YSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzKG51bGwpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNsZWFySW5wdXQoKSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy50ZXh0RGF0YSA9IHt9O1xuICAgIHRoaXMua2V5d29yZCA9ICcnO1xuICB9XG5cbiAgcHVibGljIG9uUmVtb3ZlKGRhdGEpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIuY2xvc2VQYW5lbCgpO1xuICAgIHJlbW92ZSh0aGlzLl9tb2RlbCwgZGF0YSk7XG4gICAgdGhpcy5yZW1vdmVkLmVtaXQoZGF0YSk7XG4gICAgdGhpcy51cGRhdGVNb2RlbCh0aGlzLl9tb2RlbCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG5cbiAgICB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXTtcblxuICAgIHZhbHVlID0gbWFwKHZhbHVlLCAoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGlzT2JqZWN0KGl0ZW0pID8gRGF0YVR5cGUuT2JqZWN0IDogRGF0YVR5cGUuVGV4dDtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUl0ZW0oaXRlbSwgdHlwZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZU1vZGVsKHZhbHVlKSB7XG5cbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xuXG4gICAgY29uc3QgbW9kZWwgPSBtYXAodGhpcy5fbW9kZWwsIChpdGVtKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuYWxsb3dUZXh0IHx8ICF0aGlzLmFsbG93T2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBpdGVtLmRhdGE7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fb25DaGFuZ2UobW9kZWwpO1xuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0= |
@@ -138,15 +138,13 @@ import { CommonModule } from '@angular/common'; | ||
ngOnInit() { | ||
if (this.allowObject) { | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$), debounceTime(this.delay)) | ||
.subscribe((e) => this.objectKeyword(e)); | ||
} | ||
if (this.allowText) { | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$)) | ||
.subscribe((e) => this.textKeyword(e)); | ||
} | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$)) | ||
.subscribe((e) => this.keyword = this.searchInput.nativeElement.value); | ||
.pipe(takeUntil(this.destroy$), debounceTime(this.delay)) | ||
.subscribe((e) => { | ||
this.keyword = this.searchInput.nativeElement.value; | ||
if (this.allowObject) { | ||
this.objectKeyword(e); | ||
} | ||
if (this.allowText) { | ||
this.textKeyword(e); | ||
} | ||
}); | ||
} | ||
@@ -153,0 +151,0 @@ /** |
@@ -161,15 +161,13 @@ import { CommonModule } from '@angular/common'; | ||
var _this = this; | ||
if (this.allowObject) { | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$), debounceTime(this.delay)) | ||
.subscribe(function (e) { return _this.objectKeyword(e); }); | ||
} | ||
if (this.allowText) { | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$)) | ||
.subscribe(function (e) { return _this.textKeyword(e); }); | ||
} | ||
this.keyword$ | ||
.pipe(takeUntil(this.destroy$)) | ||
.subscribe(function (e) { return _this.keyword = _this.searchInput.nativeElement.value; }); | ||
.pipe(takeUntil(this.destroy$), debounceTime(this.delay)) | ||
.subscribe(function (e) { | ||
_this.keyword = _this.searchInput.nativeElement.value; | ||
if (_this.allowObject) { | ||
_this.objectKeyword(e); | ||
} | ||
if (_this.allowText) { | ||
_this.textKeyword(e); | ||
} | ||
}); | ||
}; | ||
@@ -176,0 +174,0 @@ /** |
{ | ||
"name": "@firestitch/autocomplete-chips", | ||
"version": "7.1.10", | ||
"version": "7.1.11", | ||
"repository": { | ||
@@ -5,0 +5,0 @@ "type": "git", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
286480
2929