@sd-angular/core 0.0.1037 → 0.0.1041
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/scss/core/color.scss +4 -0
- package/badge/sd-angular-core-badge.metadata.json +1 -1
- package/bundles/sd-angular-core-badge.umd.js +2 -2
- package/bundles/sd-angular-core-badge.umd.js.map +1 -1
- package/bundles/sd-angular-core-badge.umd.min.js +1 -1
- package/bundles/sd-angular-core-badge.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-chip.umd.js +40 -9
- package/bundles/sd-angular-core-chip.umd.js.map +1 -1
- package/bundles/sd-angular-core-chip.umd.min.js +2 -2
- package/bundles/sd-angular-core-chip.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-filter.umd.js +703 -0
- package/bundles/sd-angular-core-filter.umd.js.map +1 -0
- package/bundles/sd-angular-core-filter.umd.min.js +2 -0
- package/bundles/sd-angular-core-filter.umd.min.js.map +1 -0
- package/bundles/sd-angular-core-grid-material.umd.js +96 -48
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-setting.umd.js +176 -117
- package/bundles/sd-angular-core-setting.umd.js.map +1 -1
- package/bundles/sd-angular-core-setting.umd.min.js +1 -1
- package/bundles/sd-angular-core-setting.umd.min.js.map +1 -1
- package/bundles/sd-angular-core.umd.js +4 -4
- package/bundles/sd-angular-core.umd.min.js +1 -1
- package/bundles/sd-angular-core.umd.min.js.map +1 -1
- package/chip/sd-angular-core-chip.metadata.json +1 -1
- package/chip/src/lib/chip.component.d.ts +8 -1
- package/esm2015/badge/src/lib/badge.component.js +3 -3
- package/esm2015/chip/src/lib/chip.component.js +33 -3
- package/esm2015/chip/src/lib/chip.module.js +6 -3
- package/esm2015/filter/index.js +2 -0
- package/esm2015/filter/sd-angular-core-filter.js +8 -0
- package/esm2015/filter/src/lib/directives/sd-filter-def.directive.js +22 -0
- package/esm2015/filter/src/lib/filter.component.js +161 -0
- package/esm2015/filter/src/lib/filter.model.js +2 -0
- package/esm2015/filter/src/lib/filter.module.js +47 -0
- package/esm2015/filter/src/lib/filter.service.js +60 -0
- package/esm2015/filter/src/lib/pipes/values-local.pipe.js +19 -0
- package/esm2015/filter/src/lib/pipes/values-server.pipe.js +18 -0
- package/esm2015/filter/src/public-api.js +8 -0
- package/esm2015/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.js +10 -7
- package/esm2015/grid-material/src/lib/components/quick-action/quick-action.component.js +1 -1
- package/esm2015/grid-material/src/lib/grid-material.component.js +1 -6
- package/esm2015/grid-material/src/lib/models/grid-column.model.js +1 -1
- package/esm2015/grid-material/src/lib/services/generated-column/generated-column.service.js +28 -12
- package/esm2015/grid-material/src/lib/services/grid-configuration.service.js +50 -21
- package/esm2015/public-api.js +2 -1
- package/esm2015/setting/src/lib/setting.model.js +1 -1
- package/esm2015/setting/src/lib/setting.service.js +119 -58
- package/fesm2015/sd-angular-core-badge.js +2 -2
- package/fesm2015/sd-angular-core-badge.js.map +1 -1
- package/fesm2015/sd-angular-core-chip.js +36 -4
- package/fesm2015/sd-angular-core-chip.js.map +1 -1
- package/fesm2015/sd-angular-core-filter.js +323 -0
- package/fesm2015/sd-angular-core-filter.js.map +1 -0
- package/fesm2015/sd-angular-core-grid-material.js +86 -43
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/fesm2015/sd-angular-core-setting.js +119 -58
- package/fesm2015/sd-angular-core-setting.js.map +1 -1
- package/fesm2015/sd-angular-core.js +1 -0
- package/fesm2015/sd-angular-core.js.map +1 -1
- package/filter/index.d.ts +1 -0
- package/filter/package.json +12 -0
- package/filter/sd-angular-core-filter.d.ts +7 -0
- package/filter/sd-angular-core-filter.metadata.json +1 -0
- package/filter/src/lib/directives/sd-filter-def.directive.d.ts +8 -0
- package/filter/src/lib/filter.component.d.ts +31 -0
- package/filter/src/lib/filter.model.d.ts +105 -0
- package/filter/src/lib/filter.module.d.ts +2 -0
- package/filter/src/lib/filter.service.d.ts +9 -0
- package/filter/src/lib/pipes/values-local.pipe.d.ts +5 -0
- package/filter/src/lib/pipes/values-server.pipe.d.ts +5 -0
- package/filter/src/public-api.d.ts +4 -0
- package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
- package/grid-material/src/lib/models/grid-column.model.d.ts +1 -0
- package/grid-material/src/lib/services/generated-column/generated-column.service.d.ts +3 -2
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/{sd-angular-core-0.0.1037.tgz → sd-angular-core-0.0.1041.tgz} +0 -0
- package/setting/sd-angular-core-setting.metadata.json +1 -1
- package/setting/src/lib/setting.model.d.ts +20 -6
- package/setting/src/lib/setting.service.d.ts +2 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/material/icon"),require("@angular/material/tooltip"),require("@angular/material/progress-spinner"),require("@angular/cdk/keycodes"),require("rxjs/operators"),require("uuid"),require("@angular/forms"),require("rxjs"),require("@sd-angular/core/utility"),require("@angular/material/autocomplete"),require("@angular/material/input"),require("@angular/material/form-field"),require("@sd-angular/core/translate"),require("@angular/material/chips")):"function"==typeof define&&define.amd?define("@sd-angular/core/chip",["exports","@angular/core","@angular/common","@angular/material/icon","@angular/material/tooltip","@angular/material/progress-spinner","@angular/cdk/keycodes","rxjs/operators","uuid","@angular/forms","rxjs","@sd-angular/core/utility","@angular/material/autocomplete","@angular/material/input","@angular/material/form-field","@sd-angular/core/translate","@angular/material/chips"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core.chip={}),e.ng.core,e.ng.common,e.ng.material.icon,e.ng.material.tooltip,e.ng.material.progressSpinner,e.ng.cdk.keycodes,e.rxjs.operators,e.uuid,e.ng.forms,e.rxjs,e["sd-angular"].core.utility,e.ng.material.autocomplete,e.ng.material.input,e.ng.material.formField,e["sd-angular"].core.translate,e.ng.material.chips)}(this,(function(e,t,r,i,
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/material/icon"),require("@angular/material/tooltip"),require("@angular/material/progress-spinner"),require("@angular/cdk/keycodes"),require("rxjs/operators"),require("uuid"),require("@angular/forms"),require("rxjs"),require("@sd-angular/core/utility"),require("@angular/material/autocomplete"),require("@sd-angular/core/common"),require("@angular/material/input"),require("@angular/material/form-field"),require("@sd-angular/core/translate"),require("@angular/material/chips")):"function"==typeof define&&define.amd?define("@sd-angular/core/chip",["exports","@angular/core","@angular/common","@angular/material/icon","@angular/material/tooltip","@angular/material/progress-spinner","@angular/cdk/keycodes","rxjs/operators","uuid","@angular/forms","rxjs","@sd-angular/core/utility","@angular/material/autocomplete","@sd-angular/core/common","@angular/material/input","@angular/material/form-field","@sd-angular/core/translate","@angular/material/chips"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core.chip={}),e.ng.core,e.ng.common,e.ng.material.icon,e.ng.material.tooltip,e.ng.material.progressSpinner,e.ng.cdk.keycodes,e.rxjs.operators,e.uuid,e.ng.forms,e.rxjs,e["sd-angular"].core.utility,e.ng.material.autocomplete,e["sd-angular"].core.common,e.ng.material.input,e.ng.material.formField,e["sd-angular"].core.translate,e.ng.material.chips)}(this,(function(e,t,r,n,i,o,a,l,s,u,d,p,c,m,f,h,g,v){"use strict";
|
|
2
2
|
/*! *****************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */Object.create;function y(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}Object.create;function v(e,t,r,i){if("a"===r&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?i:"a"===r?i.call(e):i?i.value:t.get(e)}function C(e,t,r,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,r):n?n.value=r:t.set(e,r),r}var b,w,I,x,F,M,S=function(e){this.templateRef=e};S.decorators=[{type:t.Directive,args:[{selector:"[sdChipDisplayDef]"}]}],S.ctorParameters=function(){return[{type:t.TemplateRef}]};var O=function(){function e(e){this.formControl=e}return e.prototype.isErrorState=function(e,t){var r,i,n,o=t&&t.submitted;return!(!(null===(r=this.formControl)||void 0===r?void 0:r.invalid)||!((null===(i=this.formControl)||void 0===i?void 0:i.dirty)||(null===(n=this.formControl)||void 0===n?void 0:n.touched)||o))},e}(),j=function(){function e(e,r){var i=this;this.ref=e,this.utilityService=r,b.set(this,s.v4()),this.separatorKeysCodes=[a.ENTER,a.COMMA],this.selectable=!0,w.set(this,void 0),this.removable=!0,I.set(this,new p.Subject),x.set(this,[]),this.limit=50,this.selectedItems=[],this.isRequired=!1,this.modelChange=new t.EventEmitter,this.sdChange=new t.EventEmitter,this.sdUpdate=new t.EventEmitter,this.chipSelected=new t.EventEmitter,this.inputControl=new u.FormControl,this.formControl=new u.FormControl,this.matcher=new O(this.formControl),F.set(this,new p.Subscription),M.set(this,(function(){i.formControl.clearValidators(),i.formControl.clearAsyncValidators();var e=[];i.isRequired&&e.push(u.Validators.required),i.min>0&&e.push(u.Validators.minLength(i.min)),i.max>0&&e.push(u.Validators.maxLength(i.max)),i.formControl.setValidators(e),i.formControl.setAsyncValidators([]),i.formControl.updateValueAndValidity()})),this.filter=function(e){return v(i,x).filter((function(t){var r;return!(null===(r=i.formControl.value)||void 0===r?void 0:r.some((function(e){return e===t[i.valueField]})))&&(!e||-1!==i.utilityService.changeAliasLowerCase(t[i.displayField]).indexOf(i.utilityService.changeAliasLowerCase(e)))})).filter((function(e,t){return t<i.limit}))},this.onAdd=function(e){var t,r;if(!i.matAutocomplete.isOpen){var n=(null!==(t=e.value)&&void 0!==t?t:"").toString().toLowerCase().trim();if(n){var o=v(i,x).find((function(e){return e[i.displayField]&&e[i.displayField].toString().toLowerCase().trim()===n}));if(o){var a=null!==(r=i.formControl.value)&&void 0!==r?r:[];a.push(o[i.valueField]),i.formControl.setValue(a)}}i.inputControl.setValue("")}},this.onRemove=function(e){var t,r=null!==(t=i.formControl.value)&&void 0!==t?t:[];i.formControl.setValue(r.filter((function(t){return(null==e?void 0:e[i.valueField])!==t}))),i.inputControl.setValue("")},this.select=function(e){i.chipSelected.emit(e)},this.selected=function(e){var t,r,n,o=(null!==(r=null===(t=e.option.value)||void 0===t?void 0:t[i.valueField])&&void 0!==r?r:"").toString().trim();if(o){var a=v(i,x).find((function(e){return e[i.valueField]&&e[i.valueField].toString().trim()===o}));if(a){var l=null!==(n=i.formControl.value)&&void 0!==n?n:[];l.push(a[i.valueField]),i.formControl.setValue(l),i.input.nativeElement.value="",i.inputControl.setValue(""),setTimeout((function(){var e;null===(e=i.autocompleteTrigger)||void 0===e||e.openPanel()}),0)}}},this.displayFn=function(e){if("string"==typeof e){if(!v(i,x))return;var t=v(i,x).find((function(t){return t[i.valueField]===e}));return t?t[i.displayField]:v(i,x).some((function(t){return-1!==t[i.displayField].toLowerCase().indexOf(e.toLowerCase())}))?e:void 0}return e?e[i.displayField]:void 0},this.onClear=function(e){var t;null==e||e.stopPropagation(),i.inputControl.setValue(""),i.formControl.setValue([]),null===(t=i.autocompleteTrigger)||void 0===t||t.openPanel(),i.ref.detectChanges()}}return Object.defineProperty(e.prototype,"name",{set:function(e){e&&C(this,b,e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"form",{set:function(e){e&&(e instanceof u.NgForm?C(this,w,e.form):C(this,w,e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_removable",{set:function(e){this.removable=""===e||e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"items",{set:function(e){e?Array.isArray(e)?C(this,x,e.filter((function(e){return""!==(null!=e?e:"").toString().trim()}))):C(this,x,e):C(this,x,[]),this.inputControl.updateValueAndValidity(),v(this,I).next(this.items)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"model",{set:function(e){Array.isArray(e)||(e=[]),this.formControl.setValue(e,{emitEvent:!1})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"required",{set:function(e){this.isRequired=""===e||e,v(this,M).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"pMin",{set:function(e){this.min=+e||0,v(this,M).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"pMax",{set:function(e){this.max=+e||0,v(this,M).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{set:function(e){(e=""===e||e)?(this.formControl.disable(),this.inputControl.disable()):(this.formControl.enable(),this.inputControl.enable())},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.filteredItems=this.inputControl.valueChanges.pipe(l.startWith(""),l.map((function(t){var r;return"string"==typeof t?t:null!==(r=null==t?void 0:t[e.displayField])&&void 0!==r?r:""})),l.map((function(t){return e.filter(t)})))},e.prototype.ngAfterViewInit=function(){var e,t=this;v(this,F).add(this.formControl.valueChanges.subscribe((function(){var e=t.formControl.value||[];t.selectedItems=v(t,x).filter((function(r){return-1!==e.findIndex((function(e){return e===(null==r?void 0:r[t.valueField])}))})),t.modelChange.emit(e),t.sdChange.emit(e),setTimeout((function(){var e;null===(e=v(t,w))||void 0===e||e.markAsDirty()}),0)}))),v(this,F).add(v(this,I).pipe(l.startWith(v(this,x))).subscribe((function(){var e,r,i=t.formControl.value||[];t.selectedItems=[];var n=function(e){var r,i=v(t,x).find((function(r){return(null==r?void 0:r[t.valueField])===e}))||{};t.selectedItems.push(Object.assign(Object.assign({},i),((r={})[t.valueField]=e,r)))};try{for(var o=y(i),a=o.next();!a.done;a=o.next()){n(a.value)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(e)throw e.error}}}))),null===(e=v(this,w))||void 0===e||e.addControl(v(this,b),this.formControl)},e.prototype.ngOnDestroy=function(){var e;null===(e=v(this,w))||void 0===e||e.removeControl(v(this,b)),v(this,F).unsubscribe()},e}();b=new WeakMap,w=new WeakMap,I=new WeakMap,x=new WeakMap,F=new WeakMap,M=new WeakMap,j.decorators=[{type:t.Component,args:[{selector:"sd-chip",template:'<mat-form-field class="c-md" [ngClass]="{\'c-sm\': size === \'sm\'}" appearance="outline">\r\n <mat-label *ngIf="label">{{label}}</mat-label>\r\n <mat-chip-list [formControl]="formControl" #chipList>\r\n <ng-container *ngFor="let item of selectedItems">\r\n <mat-chip *ngIf="item" [selectable]="selectable" [removable]="true" (removed)="onRemove(item)"\r\n [selected]="item.isSelected" (selectionChange)="select(item)" [disabled]="inputControl.disabled"\r\n (click)="item.isSelected = !item.isSelected">\r\n <ng-container *ngIf="sdChipDisplay?.templateRef">\r\n <ng-container *ngTemplateOutlet="sdChipDisplay.templateRef;context:{item: item}">\r\n </ng-container>\r\n </ng-container>\r\n <span *ngIf="!sdChipDisplay?.templateRef">{{item[displayField] || item[valueField]}}</span>\r\n <mat-icon *ngIf="!inputControl.disabled && item | sdRemovableChip:removable" matChipRemove >cancel</mat-icon>\r\n </mat-chip>\r\n </ng-container>\r\n <input #autocompleteTrigger [formControl]="inputControl" [placeholder]="placeholder || label"\r\n [matAutocomplete]="auto" [matChipInputFor]="chipList" [matChipInputSeparatorKeyCodes]="separatorKeysCodes"\r\n (matChipInputTokenEnd)="onAdd($event)" autocomplete="off" [errorStateMatcher]="matcher" matInput #input>\r\n </mat-chip-list>\r\n <mat-error *ngIf="formControl?.errors?.minItem">\r\n {{formControl?.errors?.minItem}}\r\n </mat-error>\r\n <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn" (optionSelected)="selected($event)">\r\n <mat-option *ngFor="let item of filteredItems | async" [value]="item">\r\n {{item[displayField]}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field>',styles:[":host{display:block;padding-top:5px}:host ::ng-deep mat-form-field.c-md .mat-form-field-infix{min-height:43.5px;padding:2px 0}:host ::ng-deep mat-form-field.c-md .mat-standard-chip{min-height:26px;padding:7px 10px}:host ::ng-deep mat-form-field.c-md .mat-standard-chip.mat-chip-with-trailing-icon{padding:7px 7px 7px 10px}"]}]}],j.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:d.SdUtilityService}]},j.propDecorators={name:[{type:t.Input}],size:[{type:t.Input}],form:[{type:t.Input}],label:[{type:t.Input}],valueField:[{type:t.Input}],displayField:[{type:t.Input}],placeholder:[{type:t.Input}],_removable:[{type:t.Input,args:["removable"]}],items:[{type:t.Input}],limit:[{type:t.Input}],model:[{type:t.Input}],required:[{type:t.Input}],pMin:[{type:t.Input,args:["min"]}],pMax:[{type:t.Input,args:["max"]}],modelChange:[{type:t.Output}],disabled:[{type:t.Input}],sdChange:[{type:t.Output}],sdUpdate:[{type:t.Output}],chipSelected:[{type:t.Output}],input:[{type:t.ViewChild,args:["input"]}],matAutocomplete:[{type:t.ViewChild,args:["auto"]}],chipList:[{type:t.ViewChild,args:["chipList",{static:!0}]}],autocompleteTrigger:[{type:t.ViewChild,args:[m.MatAutocompleteTrigger,{read:m.MatAutocompleteTrigger}]}],sdChipDisplay:[{type:t.ContentChild,args:[S]}]};var V=function(){function e(){}return e.prototype.transform=function(e,t){return"boolean"==typeof t?t:t(e)},e}();V.decorators=[{type:t.Pipe,args:[{name:"sdRemovableChip"}]}],V.ctorParameters=function(){return[]};var q=function(){};q.decorators=[{type:t.NgModule,args:[{imports:[r.CommonModule,u.FormsModule,u.ReactiveFormsModule,c.MatInputModule,n.MatTooltipModule,f.MatFormFieldModule,m.MatAutocompleteModule,i.MatIconModule,o.MatProgressSpinnerModule,g.MatChipsModule,h.SdTranslateModule],declarations:[j,S,V],exports:[j,S]}]}],e.SdChip=j,e.SdChipDisplayDef=S,e.SdChipModule=q,e.ɵa=V,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
15
|
+
***************************************************************************** */Object.create;function y(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}Object.create;function C(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function b(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r}var w,F,I,x,M,S,V=function(e){this.templateRef=e};V.decorators=[{type:t.Directive,args:[{selector:"[sdChipDisplayDef]"}]}],V.ctorParameters=function(){return[{type:t.TemplateRef}]};var O=function(){function e(e){this.formControl=e}return e.prototype.isErrorState=function(e,t){var r,n,i,o=t&&t.submitted;return!(!(null===(r=this.formControl)||void 0===r?void 0:r.invalid)||!((null===(n=this.formControl)||void 0===n?void 0:n.dirty)||(null===(i=this.formControl)||void 0===i?void 0:i.touched)||o))},e}(),T=function(){function e(e,r){var n=this;this.ref=e,this.utilityService=r,w.set(this,s.v4()),this.separatorKeysCodes=[a.ENTER,a.COMMA],this.selectable=!0,F.set(this,void 0),this.removable=!0,I.set(this,new d.Subject),x.set(this,[]),this.limit=50,this.selectedItems=[],this.isRequired=!1,this.modelChange=new t.EventEmitter,this.sdChange=new t.EventEmitter,this.sdUpdate=new t.EventEmitter,this.chipSelected=new t.EventEmitter,this.isFocused=!1,this.inputControl=new u.FormControl,this.formControl=new u.FormControl,this.matcher=new O(this.formControl),M.set(this,new d.Subscription),S.set(this,(function(){n.formControl.clearValidators(),n.formControl.clearAsyncValidators();var e=[];n.isRequired&&e.push(u.Validators.required),n.min>0&&e.push(u.Validators.minLength(n.min)),n.max>0&&e.push(u.Validators.maxLength(n.max)),n.formControl.setValidators(e),n.formControl.setAsyncValidators([]),n.formControl.updateValueAndValidity()})),this.filter=function(e){return C(n,x).filter((function(t){var r;return!(null===(r=n.formControl.value)||void 0===r?void 0:r.some((function(e){return e===t[n.valueField]})))&&(!e||-1!==n.utilityService.changeAliasLowerCase(t[n.displayField]).indexOf(n.utilityService.changeAliasLowerCase(e)))})).filter((function(e,t){return t<n.limit}))},this.onAdd=function(e){var t,r;if(!n.matAutocomplete.isOpen){var i=(null!==(t=e.value)&&void 0!==t?t:"").toString().toLowerCase().trim();if(i){var o=C(n,x).find((function(e){return e[n.displayField]&&e[n.displayField].toString().toLowerCase().trim()===i}));if(o){var a=null!==(r=n.formControl.value)&&void 0!==r?r:[];a.push(o[n.valueField]),n.formControl.setValue(a)}}n.inputControl.setValue("")}},this.onRemove=function(e){var t,r=null!==(t=n.formControl.value)&&void 0!==t?t:[];n.formControl.setValue(r.filter((function(t){return(null==e?void 0:e[n.valueField])!==t}))),n.inputControl.setValue("")},this.select=function(e){n.chipSelected.emit(e)},this.onSelect=function(e){var t,r,i,o=(null!==(r=null===(t=e.option.value)||void 0===t?void 0:t[n.valueField])&&void 0!==r?r:"").toString().trim();if(o){var a=C(n,x).find((function(e){return e[n.valueField]&&e[n.valueField].toString().trim()===o}));if(a){var l=null!==(i=n.formControl.value)&&void 0!==i?i:[];l.push(a[n.valueField]),n.formControl.setValue(l),n.input.nativeElement.value="",n.inputControl.setValue(""),setTimeout((function(){var e;null===(e=n.autocompleteTrigger)||void 0===e||e.openPanel()}),0)}}},this.displayFn=function(e){if("string"==typeof e){if(!C(n,x))return;var t=C(n,x).find((function(t){return t[n.valueField]===e}));return t?t[n.displayField]:C(n,x).some((function(t){return-1!==t[n.displayField].toLowerCase().indexOf(e.toLowerCase())}))?e:void 0}return e?e[n.displayField]:void 0},this.onFocus=function(){n.isFocused=!0,n.inputControl.setValue("")},this.onBlur=function(){n.isFocused=!1,n.inputControl.setValue("",{emitEvent:!1})},this.onClick=function(){var e;(null===(e=n.sdView)||void 0===e?void 0:e.templateRef)&&(n.formControl.disabled||n.isFocused||n.focus())},this.focus=function(){n.isFocused=!0,setTimeout((function(){var e,t,r;null===(e=n.autocompleteTrigger)||void 0===e||e.openPanel(),null===(r=null===(t=n.input)||void 0===t?void 0:t.nativeElement)||void 0===r||r.focus()}),100)},this.onClear=function(e){var t;null==e||e.stopPropagation(),n.inputControl.setValue(""),n.formControl.setValue([]),null===(t=n.autocompleteTrigger)||void 0===t||t.openPanel(),n.ref.detectChanges()}}return Object.defineProperty(e.prototype,"name",{set:function(e){e&&b(this,w,e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"form",{set:function(e){e&&(e instanceof u.NgForm?b(this,F,e.form):b(this,F,e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_removable",{set:function(e){this.removable=""===e||e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"items",{set:function(e){e?Array.isArray(e)?b(this,x,e.filter((function(e){return""!==(null!=e?e:"").toString().trim()}))):b(this,x,e):b(this,x,[]),this.inputControl.updateValueAndValidity(),C(this,I).next(this.items)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"model",{set:function(e){Array.isArray(e)||(e=[]),this.formControl.setValue(e,{emitEvent:!1})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"required",{set:function(e){this.isRequired=""===e||e,C(this,S).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"pMin",{set:function(e){this.min=+e||0,C(this,S).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"pMax",{set:function(e){this.max=+e||0,C(this,S).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{set:function(e){(e=""===e||e)?(this.formControl.disable(),this.inputControl.disable()):(this.formControl.enable(),this.inputControl.enable())},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.filteredItems=this.inputControl.valueChanges.pipe(l.startWith(""),l.map((function(t){var r;return"string"==typeof t?t:null!==(r=null==t?void 0:t[e.displayField])&&void 0!==r?r:""})),l.map((function(t){return e.filter(t)})))},e.prototype.ngAfterViewInit=function(){var e,t=this;C(this,M).add(this.formControl.valueChanges.subscribe((function(){var e=t.formControl.value||[];t.selectedItems=C(t,x).filter((function(r){return-1!==e.findIndex((function(e){return e===(null==r?void 0:r[t.valueField])}))})),t.modelChange.emit(e),t.sdChange.emit(e),setTimeout((function(){var e;null===(e=C(t,F))||void 0===e||e.markAsDirty()}),0)}))),C(this,M).add(C(this,I).pipe(l.startWith(C(this,x))).subscribe((function(){var e,r,n=t.formControl.value||[];t.selectedItems=[];var i=function(e){var r,n=C(t,x).find((function(r){return(null==r?void 0:r[t.valueField])===e}))||{};t.selectedItems.push(Object.assign(Object.assign({},n),((r={})[t.valueField]=e,r)))};try{for(var o=y(n),a=o.next();!a.done;a=o.next()){i(a.value)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(e)throw e.error}}}))),null===(e=C(this,F))||void 0===e||e.addControl(C(this,w),this.formControl)},e.prototype.ngOnDestroy=function(){var e;null===(e=C(this,F))||void 0===e||e.removeControl(C(this,w)),C(this,M).unsubscribe()},e}();w=new WeakMap,F=new WeakMap,I=new WeakMap,x=new WeakMap,M=new WeakMap,S=new WeakMap,T.decorators=[{type:t.Component,args:[{selector:"sd-chip",template:'<div class="d-flex align-items-center" [class.sd-view]="sdView?.templateRef" [class.c-focused]="isFocused"\r\n [class.c-disabled]="formControl.disabled" (click)="onClick()">\r\n <ng-container *ngIf="sdView?.templateRef && !autocompleteTrigger?.panelOpen && !isFocused; else default">\r\n <ng-container *ngTemplateOutlet="sdView.templateRef;context: { value: formControl.value}">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class="c-md" [ngClass]="{\'c-sm\': size === \'sm\'}" appearance="outline">\r\n <mat-label *ngIf="label">{{label}}</mat-label>\r\n <mat-chip-list [formControl]="formControl" #chipList>\r\n <ng-container *ngFor="let item of selectedItems">\r\n <mat-chip *ngIf="item" [selectable]="selectable" [removable]="true" (removed)="onRemove(item)"\r\n [selected]="item.isSelected" (selectionChange)="select(item)" [disabled]="inputControl.disabled"\r\n (click)="item.isSelected = !item.isSelected">\r\n <ng-container *ngIf="sdChipDisplay?.templateRef">\r\n <ng-container *ngTemplateOutlet="sdChipDisplay.templateRef;context:{item: item}">\r\n </ng-container>\r\n </ng-container>\r\n <span *ngIf="!sdChipDisplay?.templateRef">{{item[displayField] || item[valueField]}}</span>\r\n <mat-icon *ngIf="!inputControl.disabled && item | sdRemovableChip:removable" matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n </ng-container>\r\n <input #autocompleteTrigger [formControl]="inputControl" [placeholder]="placeholder || label"\r\n [matAutocomplete]="auto" [matChipInputFor]="chipList" [matChipInputSeparatorKeyCodes]="separatorKeysCodes"\r\n (matChipInputTokenEnd)="onAdd($event)" autocomplete="off" [errorStateMatcher]="matcher" (focus)="onFocus()"\r\n (blur)="onBlur()" matInput #input>\r\n </mat-chip-list>\r\n <mat-error *ngIf="formControl?.errors?.minItem">\r\n {{formControl?.errors?.minItem}}\r\n </mat-error>\r\n <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn" (optionSelected)="onSelect($event)">\r\n <mat-option *ngFor="let item of filteredItems | async" [value]="item">\r\n {{item[displayField]}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>',styles:[":host{display:block;padding-top:5px}:host ::ng-deep mat-form-field.c-md .mat-form-field-infix{min-height:43.5px;padding:2px 0}:host ::ng-deep mat-form-field.c-md .mat-standard-chip{min-height:26px;padding:7px 10px}:host ::ng-deep mat-form-field.c-md .mat-standard-chip.mat-chip-with-trailing-icon{padding:7px 7px 7px 10px}"]}]}],T.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:p.SdUtilityService}]},T.propDecorators={name:[{type:t.Input}],size:[{type:t.Input}],form:[{type:t.Input}],label:[{type:t.Input}],valueField:[{type:t.Input}],displayField:[{type:t.Input}],placeholder:[{type:t.Input}],_removable:[{type:t.Input,args:["removable"]}],items:[{type:t.Input}],limit:[{type:t.Input}],model:[{type:t.Input}],required:[{type:t.Input}],pMin:[{type:t.Input,args:["min"]}],pMax:[{type:t.Input,args:["max"]}],modelChange:[{type:t.Output}],disabled:[{type:t.Input}],sdChange:[{type:t.Output}],sdUpdate:[{type:t.Output}],chipSelected:[{type:t.Output}],input:[{type:t.ViewChild,args:["input"]}],matAutocomplete:[{type:t.ViewChild,args:["auto"]}],chipList:[{type:t.ViewChild,args:["chipList",{static:!0}]}],autocompleteTrigger:[{type:t.ViewChild,args:[c.MatAutocompleteTrigger,{read:c.MatAutocompleteTrigger}]}],sdView:[{type:t.ContentChild,args:[m.SdViewDefDirective]}],sdChipDisplay:[{type:t.ContentChild,args:[V]}]};var j=function(){function e(){}return e.prototype.transform=function(e,t){return"boolean"==typeof t?t:t(e)},e}();j.decorators=[{type:t.Pipe,args:[{name:"sdRemovableChip"}]}],j.ctorParameters=function(){return[]};var q=function(){};q.decorators=[{type:t.NgModule,args:[{imports:[r.CommonModule,u.FormsModule,u.ReactiveFormsModule,f.MatInputModule,i.MatTooltipModule,h.MatFormFieldModule,c.MatAutocompleteModule,n.MatIconModule,o.MatProgressSpinnerModule,v.MatChipsModule,g.SdTranslateModule,m.SdCommonModule],declarations:[T,V,j],exports:[m.SdCommonModule,T,V]}]}],e.SdChip=T,e.SdChipDisplayDef=V,e.SdChipModule=q,e.ɵa=j,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
16
|
//# sourceMappingURL=sd-angular-core-chip.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/chip/src/lib/directives/sd-chip-display-def.directive.ts","../../../../projects/sd-core/chip/src/lib/chip.component.ts","../../../../projects/sd-core/chip/src/lib/pipes/removable-chip.pipe.ts","../../../../projects/sd-core/chip/src/lib/chip.module.ts"],"names":["Object","create","__values","o","s","Symbol","iterator","m","i","call","length","next","value","done","TypeError","__classPrivateFieldGet","receiver","state","kind","f","has","get","__classPrivateFieldSet","set","templateRef","this","Directive","args","selector","TemplateRef","SdChipErrotStateMatcher","formControl","prototype","isErrorState","control","form","isSubmitted","submitted","_a","invalid","_b","dirty","_c","touched","SdChip","ref","utilityService","_this","_name","uuid.v4","separatorKeysCodes","ENTER","COMMA","selectable","_form","removable","_itemChanges","Subject","_items","limit","selectedItems","isRequired","modelChange","EventEmitter","sdChange","sdUpdate","chipSelected","inputControl","FormControl","matcher","_subscription","Subscription","_updateValidator","clearValidators","clearAsyncValidators","validators","push","Validators","required","min","minLength","max","maxLength","setValidators","setAsyncValidators","updateValueAndValidity","filter","item","some","val","valueField","changeAliasLowerCase","displayField","indexOf","index","onAdd","event","matAutocomplete","isOpen","value_1","toString","toLowerCase","trim","find","e","values","setValue","onRemove","select","emit","selected","option","input","nativeElement","setTimeout","autocompleteTrigger","openPanel","displayFn","selectedItem","undefined","onClear","$event","stopPropagation","detectChanges","defineProperty","NgForm","items","Array","isArray","emitEvent","disable","enable","ngOnInit","filteredItems","valueChanges","pipe","startWith","map","name","ngAfterViewInit","add","subscribe","findIndex","markAsDirty","assign","_d","values_1","values_1_1","addControl","ngOnDestroy","removeControl","unsubscribe","Component","template","ChangeDetectorRef","SdUtilityService","Input","Output","ViewChild","static","MatAutocompleteTrigger","read","ContentChild","SdChipDisplayDef","SdRemovableChipPipe","transform","Pipe","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatAutocompleteModule","MatIconModule","MatProgressSpinnerModule","MatChipsModule","SdTranslateModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdChipDisplayDef]'\r\n})\r\nexport class SdChipDisplayDef {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n OnInit, OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n ContentChild\r\n} from '@angular/core';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { NgForm, NgModel, FormControl, FormGroup, ValidatorFn, AsyncValidatorFn, Validators, FormGroupDirective } from '@angular/forms';\r\nimport { Observable, Subscription, Subject } from 'rxjs';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { SdTranslateService } from '@sd-angular/core/translate';\r\nimport { MatChipInputEvent, MatChipList } from '@angular/material/chips';\r\nimport { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { SdChipUpdate } from './chip.model';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdChipDisplayDef } from './directives/sd-chip-display-def.directive';\r\n\r\nclass SdChipErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sd-chip',\r\n templateUrl: './chip.component.html',\r\n styleUrls: ['./chip.component.scss']\r\n})\r\nexport class SdChip implements OnInit, OnDestroy, AfterViewInit {\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n separatorKeysCodes: number[] = [ENTER, COMMA];\r\n selectable = true;\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n @Input() placeholder: string;\r\n removable: boolean | ((item: any) => boolean) = true;\r\n @Input('removable') set _removable(val: '' | boolean | ((item: any) => boolean)) {\r\n this.removable = (val === '') || val;\r\n }\r\n #itemChanges = new Subject<any[]>();\r\n #items: any[] = [];\r\n @Input() set items(items: undefined | any[]) {\r\n if (!items) {\r\n this.#items = [];\r\n } else if (Array.isArray(items)) {\r\n this.#items = items.filter(e => (e ?? '').toString().trim() !== '');\r\n } else {\r\n this.#items = items;\r\n }\r\n this.inputControl.updateValueAndValidity();\r\n this.#itemChanges.next(this.items);\r\n }\r\n @Input() limit = 50;\r\n selectedItems: any[] = [];\r\n filteredItems: Observable<any[]>;\r\n\r\n ipt: any;\r\n\r\n // model\r\n @Input() set model(values: undefined | (string | number)[]) {\r\n if (!Array.isArray(values)) {\r\n values = [];\r\n }\r\n this.formControl.setValue(values, {\r\n emitEvent: false\r\n });\r\n }\r\n // Validator\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n\r\n min: number;\r\n @Input('min') set pMin(val: number | string) {\r\n this.min = +val || 0;\r\n this.#updateValidator();\r\n }\r\n max: number;\r\n @Input('max') set pMax(val: number | string) {\r\n this.max = +val || 0;\r\n this.#updateValidator();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n this.inputControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n this.inputControl.enable();\r\n }\r\n }\r\n\r\n @Output() sdChange = new EventEmitter<any[]>();\r\n @Output() sdUpdate = new EventEmitter<SdChipUpdate>();\r\n @Output() chipSelected = new EventEmitter<any>();\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('auto') matAutocomplete: MatAutocomplete;\r\n @ViewChild('chipList', { static: true }) chipList: MatChipList;\r\n @ViewChild(MatAutocompleteTrigger, { read: MatAutocompleteTrigger }) autocompleteTrigger: MatAutocompleteTrigger;\r\n @ContentChild(SdChipDisplayDef) sdChipDisplay: SdChipDisplayDef;\r\n inputControl = new FormControl();\r\n formControl = new FormControl();\r\n matcher = new SdChipErrotStateMatcher(this.formControl);\r\n #subscription = new Subscription();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.filteredItems = this.inputControl.valueChanges.pipe(\r\n startWith<string | { [key: string]: string }>(''),\r\n map(item => typeof item === 'string' ? item : (item?.[this.displayField] ?? '')),\r\n map(name => this.filter(name))\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(this.formControl.valueChanges.subscribe(() => {\r\n const values: (string | number)[] = this.formControl.value || [];\r\n this.selectedItems = this.#items.filter(item => values.findIndex(value => value === item?.[this.valueField]) !== -1);\r\n this.modelChange.emit(values);\r\n this.sdChange.emit(values);\r\n setTimeout(() => {\r\n this.#form?.markAsDirty();\r\n }, 0);\r\n }));\r\n this.#subscription.add(this.#itemChanges.pipe(startWith(this.#items)).subscribe(() => {\r\n const values: (string | number)[] = this.formControl.value || [];\r\n this.selectedItems = [];\r\n for (const value of values) {\r\n const item = this.#items.find(e => e?.[this.valueField] === value) || {};\r\n this.selectedItems.push({\r\n ...item,\r\n [this.valueField]: value\r\n });\r\n }\r\n }));\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.min > 0) {\r\n validators.push(Validators.minLength(this.min));\r\n }\r\n if (this.max > 0) {\r\n validators.push(Validators.maxLength(this.max));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n filter = (value: string): { [key: string]: string }[] => {\r\n return this.#items\r\n .filter(item => {\r\n if (this.formControl.value?.some(val => val === item[this.valueField])) {\r\n return false;\r\n }\r\n return !value || this.utilityService.changeAliasLowerCase(item[this.displayField])\r\n .indexOf(this.utilityService.changeAliasLowerCase(value)) !== -1;\r\n }).filter((item, index) => index < this.limit);\r\n }\r\n\r\n onAdd = (event: MatChipInputEvent): void => {\r\n // Add item only when MatAutocomplete is not open\r\n // To make sure this does not conflict with OptionSelected Event\r\n if (!this.matAutocomplete.isOpen) {\r\n const value = (event.value ?? '').toString().toLowerCase().trim();\r\n if (value) {\r\n\r\n const item = this.#items.find(e => e[this.displayField]\r\n && e[this.displayField].toString().toLowerCase().trim() === value);\r\n\r\n if (item) {\r\n const values: (string | number)[] = this.formControl.value ?? [];\r\n values.push(item[this.valueField]);\r\n this.formControl.setValue(values);\r\n }\r\n }\r\n this.inputControl.setValue('');\r\n }\r\n }\r\n\r\n onRemove = (item: any): void => {\r\n const values: (string | number)[] = this.formControl.value ?? [];\r\n this.formControl.setValue(values.filter(value => item?.[this.valueField] !== value));\r\n this.inputControl.setValue('');\r\n }\r\n\r\n select = (item: any): void => {\r\n this.chipSelected.emit(item);\r\n }\r\n\r\n selected = (event: MatAutocompleteSelectedEvent): void => {\r\n const value = (event.option.value?.[this.valueField] ?? '').toString().trim();\r\n if (value) {\r\n const item = this.#items.find(e => e[this.valueField]\r\n && e[this.valueField].toString().trim() === value);\r\n if (item) {\r\n const values: (string | number)[] = this.formControl.value ?? [];\r\n values.push(item[this.valueField]);\r\n this.formControl.setValue(values);\r\n this.input.nativeElement.value = '';\r\n this.inputControl.setValue('');\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.openPanel();\r\n }, 0);\r\n }\r\n }\r\n }\r\n\r\n displayFn = (value: string | { [key: string]: string }): string | undefined => {\r\n if (typeof value === 'string') {\r\n if (!this.#items) {\r\n return undefined;\r\n }\r\n const selectedItem = this.#items.find(item => item[this.valueField] === value);\r\n if (selectedItem) {\r\n return selectedItem[this.displayField];\r\n }\r\n if (this.#items.some(item => item[this.displayField].toLowerCase().indexOf(value.toLowerCase()) !== -1)) {\r\n return value;\r\n } else {\r\n return undefined;\r\n }\r\n } else {\r\n return value ? value[this.displayField] : undefined;\r\n }\r\n }\r\n\r\n onClear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n this.inputControl.setValue('');\r\n this.formControl.setValue([]);\r\n this.autocompleteTrigger?.openPanel();\r\n this.ref.detectChanges();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'sdRemovableChip'\r\n})\r\nexport class SdRemovableChipPipe implements PipeTransform {\r\n constructor() { }\r\n transform(item: any, removable: boolean | ((item: any) => boolean)): boolean {\r\n if(typeof(removable) === 'boolean') {\r\n return removable;\r\n }\r\n return removable(item);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdChip } from './chip.component';\r\nimport { SdChipDisplayDef } from './directives/sd-chip-display-def.directive';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { SdRemovableChipPipe } from './pipes/removable-chip.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatChipsModule,\r\n SdTranslateModule\r\n ],\r\n declarations: [\r\n SdChip,\r\n SdChipDisplayDef,\r\n SdRemovableChipPipe\r\n ],\r\n exports: [\r\n SdChip,\r\n SdChipDisplayDef\r\n ]\r\n})\r\nexport class SdChipModule { }\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/chip/src/lib/directives/sd-chip-display-def.directive.ts","../../../../projects/sd-core/chip/src/lib/chip.component.ts","../../../../projects/sd-core/chip/src/lib/pipes/removable-chip.pipe.ts","../../../../projects/sd-core/chip/src/lib/chip.module.ts"],"names":["Object","create","__values","o","s","Symbol","iterator","m","i","call","length","next","value","done","TypeError","__classPrivateFieldGet","receiver","state","kind","f","has","get","__classPrivateFieldSet","set","templateRef","this","Directive","args","selector","TemplateRef","SdChipErrotStateMatcher","formControl","prototype","isErrorState","control","form","isSubmitted","submitted","_a","invalid","_b","dirty","_c","touched","SdChip","ref","utilityService","_this","_name","uuid.v4","separatorKeysCodes","ENTER","COMMA","selectable","_form","removable","_itemChanges","Subject","_items","limit","selectedItems","isRequired","modelChange","EventEmitter","sdChange","sdUpdate","chipSelected","isFocused","inputControl","FormControl","matcher","_subscription","Subscription","_updateValidator","clearValidators","clearAsyncValidators","validators","push","Validators","required","min","minLength","max","maxLength","setValidators","setAsyncValidators","updateValueAndValidity","filter","item","some","val","valueField","changeAliasLowerCase","displayField","indexOf","index","onAdd","event","matAutocomplete","isOpen","value_1","toString","toLowerCase","trim","find","e","values","setValue","onRemove","select","emit","onSelect","option","input","nativeElement","setTimeout","autocompleteTrigger","openPanel","displayFn","selectedItem","undefined","onFocus","onBlur","emitEvent","onClick","sdView","disabled","focus","onClear","$event","stopPropagation","detectChanges","defineProperty","NgForm","items","Array","isArray","disable","enable","ngOnInit","filteredItems","valueChanges","pipe","startWith","map","name","ngAfterViewInit","add","subscribe","findIndex","markAsDirty","assign","_d","values_1","values_1_1","addControl","ngOnDestroy","removeControl","unsubscribe","Component","template","ChangeDetectorRef","SdUtilityService","Input","Output","ViewChild","static","MatAutocompleteTrigger","read","ContentChild","SdViewDefDirective","SdChipDisplayDef","SdRemovableChipPipe","transform","Pipe","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatAutocompleteModule","MatIconModule","MatProgressSpinnerModule","MatChipsModule","SdTranslateModule","SdCommonModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdChipDisplayDef]'\r\n})\r\nexport class SdChipDisplayDef {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n OnInit, OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n ContentChild\r\n} from '@angular/core';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { NgForm, NgModel, FormControl, FormGroup, ValidatorFn, AsyncValidatorFn, Validators, FormGroupDirective } from '@angular/forms';\r\nimport { Observable, Subscription, Subject } from 'rxjs';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { SdTranslateService } from '@sd-angular/core/translate';\r\nimport { MatChipInputEvent, MatChipList } from '@angular/material/chips';\r\nimport { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { SdChipUpdate } from './chip.model';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdChipDisplayDef } from './directives/sd-chip-display-def.directive';\r\nimport { SdViewDefDirective } from '@sd-angular/core/common';\r\n\r\nclass SdChipErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sd-chip',\r\n templateUrl: './chip.component.html',\r\n styleUrls: ['./chip.component.scss']\r\n})\r\nexport class SdChip implements OnInit, OnDestroy, AfterViewInit {\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n separatorKeysCodes: number[] = [ENTER, COMMA];\r\n selectable = true;\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n @Input() placeholder: string;\r\n removable: boolean | ((item: any) => boolean) = true;\r\n @Input('removable') set _removable(val: '' | boolean | ((item: any) => boolean)) {\r\n this.removable = (val === '') || val;\r\n }\r\n #itemChanges = new Subject<any[]>();\r\n #items: any[] = [];\r\n @Input() set items(items: undefined | any[]) {\r\n if (!items) {\r\n this.#items = [];\r\n } else if (Array.isArray(items)) {\r\n this.#items = items.filter(e => (e ?? '').toString().trim() !== '');\r\n } else {\r\n this.#items = items;\r\n }\r\n this.inputControl.updateValueAndValidity();\r\n this.#itemChanges.next(this.items);\r\n }\r\n @Input() limit = 50;\r\n selectedItems: any[] = [];\r\n filteredItems: Observable<any[]>;\r\n\r\n ipt: any;\r\n\r\n // model\r\n @Input() set model(values: undefined | (string | number)[]) {\r\n if (!Array.isArray(values)) {\r\n values = [];\r\n }\r\n this.formControl.setValue(values, {\r\n emitEvent: false\r\n });\r\n }\r\n // Validator\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n\r\n min: number;\r\n @Input('min') set pMin(val: number | string) {\r\n this.min = +val || 0;\r\n this.#updateValidator();\r\n }\r\n max: number;\r\n @Input('max') set pMax(val: number | string) {\r\n this.max = +val || 0;\r\n this.#updateValidator();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n this.inputControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n this.inputControl.enable();\r\n }\r\n }\r\n\r\n @Output() sdChange = new EventEmitter<any[]>();\r\n @Output() sdUpdate = new EventEmitter<SdChipUpdate>();\r\n @Output() chipSelected = new EventEmitter<any>();\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n @ViewChild('auto') matAutocomplete: MatAutocomplete;\r\n @ViewChild('chipList', { static: true }) chipList: MatChipList;\r\n @ViewChild(MatAutocompleteTrigger, { read: MatAutocompleteTrigger }) autocompleteTrigger: MatAutocompleteTrigger;\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n @ContentChild(SdChipDisplayDef) sdChipDisplay: SdChipDisplayDef;\r\n isFocused = false;\r\n inputControl = new FormControl();\r\n formControl = new FormControl();\r\n matcher = new SdChipErrotStateMatcher(this.formControl);\r\n #subscription = new Subscription();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.filteredItems = this.inputControl.valueChanges.pipe(\r\n startWith<string | { [key: string]: string }>(''),\r\n map(item => typeof item === 'string' ? item : (item?.[this.displayField] ?? '')),\r\n map(name => this.filter(name))\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#subscription.add(this.formControl.valueChanges.subscribe(() => {\r\n const values: (string | number)[] = this.formControl.value || [];\r\n this.selectedItems = this.#items.filter(item => values.findIndex(value => value === item?.[this.valueField]) !== -1);\r\n this.modelChange.emit(values);\r\n this.sdChange.emit(values);\r\n setTimeout(() => {\r\n this.#form?.markAsDirty();\r\n }, 0);\r\n }));\r\n this.#subscription.add(this.#itemChanges.pipe(startWith(this.#items)).subscribe(() => {\r\n const values: (string | number)[] = this.formControl.value || [];\r\n this.selectedItems = [];\r\n for (const value of values) {\r\n const item = this.#items.find(e => e?.[this.valueField] === value) || {};\r\n this.selectedItems.push({\r\n ...item,\r\n [this.valueField]: value\r\n });\r\n }\r\n }));\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.min > 0) {\r\n validators.push(Validators.minLength(this.min));\r\n }\r\n if (this.max > 0) {\r\n validators.push(Validators.maxLength(this.max));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n filter = (value: string): { [key: string]: string }[] => {\r\n return this.#items\r\n .filter(item => {\r\n if (this.formControl.value?.some(val => val === item[this.valueField])) {\r\n return false;\r\n }\r\n return !value || this.utilityService.changeAliasLowerCase(item[this.displayField])\r\n .indexOf(this.utilityService.changeAliasLowerCase(value)) !== -1;\r\n }).filter((item, index) => index < this.limit);\r\n }\r\n\r\n onAdd = (event: MatChipInputEvent): void => {\r\n // Add item only when MatAutocomplete is not open\r\n // To make sure this does not conflict with OptionSelected Event\r\n if (!this.matAutocomplete.isOpen) {\r\n const value = (event.value ?? '').toString().toLowerCase().trim();\r\n if (value) {\r\n\r\n const item = this.#items.find(e => e[this.displayField]\r\n && e[this.displayField].toString().toLowerCase().trim() === value);\r\n\r\n if (item) {\r\n const values: (string | number)[] = this.formControl.value ?? [];\r\n values.push(item[this.valueField]);\r\n this.formControl.setValue(values);\r\n }\r\n }\r\n this.inputControl.setValue('');\r\n }\r\n }\r\n\r\n onRemove = (item: any): void => {\r\n const values: (string | number)[] = this.formControl.value ?? [];\r\n this.formControl.setValue(values.filter(value => item?.[this.valueField] !== value));\r\n this.inputControl.setValue('');\r\n }\r\n\r\n select = (item: any): void => {\r\n this.chipSelected.emit(item);\r\n }\r\n\r\n onSelect = (event: MatAutocompleteSelectedEvent) => {\r\n const value = (event.option.value?.[this.valueField] ?? '').toString().trim();\r\n if (value) {\r\n const item = this.#items.find(e => e[this.valueField]\r\n && e[this.valueField].toString().trim() === value);\r\n if (item) {\r\n const values: (string | number)[] = this.formControl.value ?? [];\r\n values.push(item[this.valueField]);\r\n this.formControl.setValue(values);\r\n this.input.nativeElement.value = '';\r\n this.inputControl.setValue('');\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.openPanel();\r\n }, 0);\r\n }\r\n }\r\n }\r\n\r\n displayFn = (value: string | { [key: string]: string }): string | undefined => {\r\n if (typeof value === 'string') {\r\n if (!this.#items) {\r\n return undefined;\r\n }\r\n const selectedItem = this.#items.find(item => item[this.valueField] === value);\r\n if (selectedItem) {\r\n return selectedItem[this.displayField];\r\n }\r\n if (this.#items.some(item => item[this.displayField].toLowerCase().indexOf(value.toLowerCase()) !== -1)) {\r\n return value;\r\n } else {\r\n return undefined;\r\n }\r\n } else {\r\n return value ? value[this.displayField] : undefined;\r\n }\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n this.inputControl.setValue('');\r\n // this.inputControl.updateValueAndValidity();\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n\r\n onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.openPanel();\r\n this.input?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n onClear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n this.inputControl.setValue('');\r\n this.formControl.setValue([]);\r\n this.autocompleteTrigger?.openPanel();\r\n this.ref.detectChanges();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'sdRemovableChip'\r\n})\r\nexport class SdRemovableChipPipe implements PipeTransform {\r\n constructor() { }\r\n transform(item: any, removable: boolean | ((item: any) => boolean)): boolean {\r\n if(typeof(removable) === 'boolean') {\r\n return removable;\r\n }\r\n return removable(item);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdChip } from './chip.component';\r\nimport { SdChipDisplayDef } from './directives/sd-chip-display-def.directive';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { SdRemovableChipPipe } from './pipes/removable-chip.pipe';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatChipsModule,\r\n SdTranslateModule,\r\n SdCommonModule\r\n ],\r\n declarations: [\r\n SdChip,\r\n SdChipDisplayDef,\r\n SdRemovableChipPipe\r\n ],\r\n exports: [\r\n SdCommonModule,\r\n SdChip,\r\n SdChipDisplayDef,\r\n ]\r\n})\r\nexport class SdChipModule { }\r\n"]}
|