@firestitch/chip 8.1.8 → 8.1.9

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.
@@ -15,6 +15,7 @@ export declare class FsChipComponent implements OnInit, OnDestroy {
15
15
  styleBorderColor: string;
16
16
  classSmall: boolean;
17
17
  classTiny: boolean;
18
+ classMicro: boolean;
18
19
  setSize: any;
19
20
  click(): void;
20
21
  value: any;
@@ -419,6 +419,7 @@
419
419
  this.styleBorderColor = '';
420
420
  this.classSmall = false;
421
421
  this.classTiny = false;
422
+ this.classMicro = false;
422
423
  this.value = null;
423
424
  this.selectedToggled = new core.EventEmitter();
424
425
  this.removed = new core.EventEmitter();
@@ -435,6 +436,7 @@
435
436
  this._size = value;
436
437
  this.classSmall = value === 'small';
437
438
  this.classTiny = value === 'tiny';
439
+ this.classMicro = value === 'micro';
438
440
  },
439
441
  enumerable: true,
440
442
  configurable: true
@@ -701,6 +703,7 @@
701
703
  styleBorderColor: [{ type: core.HostBinding, args: ['style.borderColor',] }],
702
704
  classSmall: [{ type: core.HostBinding, args: ['class.small',] }],
703
705
  classTiny: [{ type: core.HostBinding, args: ['class.tiny',] }],
706
+ classMicro: [{ type: core.HostBinding, args: ['class.micro',] }],
704
707
  setSize: [{ type: core.Input, args: ['size',] }],
705
708
  click: [{ type: core.HostListener, args: ['click',] }],
706
709
  value: [{ type: core.Input }],
@@ -741,6 +744,8 @@
741
744
  /** @type {?} */
742
745
  FsChipComponent.prototype.classTiny;
743
746
  /** @type {?} */
747
+ FsChipComponent.prototype.classMicro;
748
+ /** @type {?} */
744
749
  FsChipComponent.prototype.value;
745
750
  /** @type {?} */
746
751
  FsChipComponent.prototype.selectedToggled;
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-chip.umd.js","sources":["ng://@firestitch/chip/app/services/chips.service.ts","ng://@firestitch/chip/app/components/chips/chips.component.ts","ng://@firestitch/chip/app/components/chip/chip.component.ts","ng://@firestitch/chip/app/fs-chip.module.ts"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n\n@Injectable()\nexport class FsChipsService implements OnDestroy {\n\n public chips = [];\n\n private _chipItemsChanged$ = new Subject();\n private _selectionChanged$ = new Subject();\n private _destroy$ = new Subject<void>();\n\n constructor() {}\n\n get selectionChanged$() {\n return this._selectionChanged$.\n pipe(\n takeUntil(this._destroy$),\n );\n }\n\n get chipItemsChanged$() {\n return this._chipItemsChanged$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(50),\n )\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public selectionChanged(selected: boolean, value: any) {\n this._selectionChanged$.next({\n selected: selected,\n value: value,\n })\n }\n\n public register(chip) {\n this.chips.push(chip);\n this._chipItemsChanged$.next();\n }\n\n public destroy(chip) {\n const index = this.chips.indexOf(chip);\n\n if (index > -1) {\n this.chips.splice(index, 1);\n this._chipItemsChanged$.next();\n }\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { find } from 'lodash-es';\n\nimport { FsChipsService } from '../../services/chips.service';\n\n@Component({\n selector: 'fs-chips',\n templateUrl: 'chips.component.html',\n styleUrls: ['chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsChipsComponent),\n multi: true,\n },\n FsChipsService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipsComponent implements OnDestroy, ControlValueAccessor {\n\n @HostBinding('class.fs-chips') classFsChips = true;\n @HostBinding('class.has-chips') classHasChips = false;\n\n @Input()\n public compare;\n\n @Input() multiple = true;\n\n public onChange: any = () => {};\n public onTouch: any = () => {};\n\n private _value = [];\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _chipsService: FsChipsService,\n ) {\n this.subscribeToItemsChange();\n this.subscribeToSelectionChange();\n }\n\n get chips() {\n return this._chipsService.chips;\n }\n\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public writeValue(value: any) {\n if (value !== this.value) {\n this._value = value;\n }\n\n this.updateChips();\n }\n\n public registerOnChange(fn) { this.onChange = fn; }\n public registerOnTouched(fn) { this.onTouch = fn; }\n\n /**\n * Update ngModel value when selection changed\n */\n private subscribeToSelectionChange() {\n this._chipsService.selectionChanged$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(({ selected, value }) => {\n if (!selected) {\n const valueIndex = this.value.findIndex((item) => {\n return this.compareFn(item, value);\n });\n\n if (valueIndex > -1) {\n this.value.splice(valueIndex, 1);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n } else {\n this.value.push(value);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n });\n }\n\n /**\n * Update selection if item was added or removed\n */\n private subscribeToItemsChange() {\n this._chipsService.chipItemsChanged$\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.classHasChips = !!this._chipsService.chips.length;\n this.updateChips();\n })\n }\n\n private compareFn(o1, o2) {\n if (this.compare) {\n return this.compare(o1, o2);\n }\n return o1 === o2;\n }\n\n private updateChips() {\n if (this.multiple && Array.isArray(this.value) && this.chips) {\n this.chips.forEach((chip) => {\n\n chip.selected = find(this.value, (o) => {\n return this.compareFn(o, chip.value);\n }) !== undefined;\n });\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { FsChipsService } from '../../services/chips.service';\n\n\n@Component({\n selector: 'fs-chip',\n templateUrl: 'chip.component.html',\n styleUrls: ['chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipComponent implements OnInit, OnDestroy {\n\n @HostBinding('class.fs-chip') fsChip = true;\n @HostBinding('class.outlined') _outlined = false;\n @HostBinding('class.selectable') _selectable = false;\n @HostBinding('class.imaged') _image = false;\n @HostBinding('class.selected') _selected = false;\n @HostBinding('class.removable') _removable = false;\n @HostBinding('style.backgroundColor') styleBackgroundColor = '';\n @HostBinding('style.color') styleColor = '';\n @HostBinding('style.borderColor') styleBorderColor = '';\n\n @HostBinding('class.small') classSmall = false;\n @HostBinding('class.tiny') classTiny = false;\n\n @Input('size') set setSize(value) {\n this._size = value;\n this.classSmall = value === 'small';\n this.classTiny = value === 'tiny';\n };\n\n @HostListener('click')\n public click() {\n\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedToggled.emit({ value: this.value, selected: this.selected });\n\n if (this._chips) {\n this._chips.selectionChanged(this.selected, this.value);\n }\n }\n }\n\n @Input() public value = null;\n\n @Input() set backgroundColor(value) {\n this._backgroundColor = value;\n this.updateStyles();\n };\n\n @Input() set borderColor(value) {\n this.styleBorderColor = value;\n this.updateStyles();\n }\n @Input() set color(value) {\n this._color = value;\n this.updateStyles();\n }\n\n get color() {\n return this._color;\n }\n\n @Input() set outlined(value) {\n this._outlined = value;\n this.updateStyles();\n };\n\n get outlined() {\n return this._outlined;\n }\n\n @Input() set removable(value) {\n this._removable = value;\n\n this._cdRef.markForCheck();\n };\n\n get removable() {\n return this._removable;\n }\n\n @Input() set selectable(value) {\n this._selectable = value;\n };\n\n get selectable() {\n return this._selectable;\n }\n\n @Input() set selected(value) {\n this._selected = value;\n\n this._cdRef.markForCheck();\n };\n\n get selected() {\n return this._selected;\n }\n\n @Input() set image(value) {\n this._image = value;\n\n this._cdRef.markForCheck();\n };\n\n get image() {\n return this._image;\n }\n\n @Output() public selectedToggled = new EventEmitter();\n @Output() public removed = new EventEmitter();\n\n public $destroy = new Subject();\n\n private _backgroundColor = '';\n private _color = '';\n private _size;\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n @Optional() private _chips: FsChipsService\n ) {}\n\n public ngOnInit() {\n if (this._chips) {\n this._chips.register(this);\n }\n }\n\n public ngOnDestroy() {\n if (this._chips) {\n this._chips.destroy(this);\n }\n\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n public remove(event) {\n this.removed.next(event);\n }\n\n private isContrastYIQBlack(hexcolor) {\n if (!hexcolor) {\n return true;\n }\n\n hexcolor = hexcolor.replace('#', '');\n const r = parseInt(hexcolor.substr(0, 2), 16);\n const g = parseInt(hexcolor.substr(2, 2), 16);\n const b = parseInt(hexcolor.substr(4, 2), 16);\n const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n return yiq >= 200;\n }\n\n private updateStyles() {\n this.styleBackgroundColor = this._backgroundColor;\n\n if (this._color) {\n this.styleColor = this._color;\n } else if (!this._outlined) {\n this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';\n }\n\n if (this._outlined) {\n this.styleBackgroundColor = '';\n\n if (this._color) {\n this.styleBorderColor = this._color;\n }\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsChipsComponent } from './components/chips/chips.component';\nimport { FsChipComponent } from './components/chip/chip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n FsLabelModule\n ],\n exports: [\n FsChipsComponent,\n FsChipComponent,\n ],\n declarations: [\n FsChipsComponent,\n FsChipComponent,\n ]\n})\nexport class FsChipModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: FsChipModule\n };\n }\n}\n"],"names":["Subject","takeUntil","debounceTime","Injectable","find","Component","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectionStrategy","ChangeDetectorRef","HostBinding","Input","EventEmitter","Optional","HostListener","Output","NgModule","CommonModule","MatIconModule","FsLabelModule"],"mappings":";;;;;;;;;;;AAAA;QAcE;YANO,UAAK,GAAG,EAAE,CAAC;YAEV,uBAAkB,GAAG,IAAIA,YAAO,EAAE,CAAC;YACnC,uBAAkB,GAAG,IAAIA,YAAO,EAAE,CAAC;YACnC,cAAS,GAAG,IAAIA,YAAO,EAAQ,CAAC;SAExB;QAEhB,sBAAI,6CAAiB;;;;YAArB;gBACE,OAAO,IAAI,CAAC,kBAAkB;oBAC5B,IAAI,CACFC,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B,CAAC;aACH;;;WAAA;QAED,sBAAI,6CAAiB;;;;YAArB;gBACE,OAAO,IAAI,CAAC,kBAAkB;qBAC3B,IAAI,CACHA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EACzBC,sBAAY,CAAC,EAAE,CAAC,CACjB,CAAA;aACJ;;;WAAA;;;;QAEM,oCAAW;;;QAAlB;YACE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC3B;;;;;;QAEM,yCAAgB;;;;;QAAvB,UAAwB,QAAiB,EAAE,KAAU;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,KAAK;aACb,CAAC,CAAA;SACH;;;;;QAEM,iCAAQ;;;;QAAf,UAAgB,IAAI;YAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SAChC;;;;;QAEM,gCAAO;;;;QAAd,UAAe,IAAI;;gBACX,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAEtC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;aAChC;SACF;;oBAlDFC,eAAU;;;;QAmDX,qBAAC;KAnDD,IAmDC;;;QAhDC,+BAAkB;;;;;QAElB,4CAA2C;;;;;QAC3C,4CAA2C;;;;;QAC3C,mCAAwC;;;;;;;;ACZ1C;QA+CE,0BACU,MAAyB,EACzB,aAA6B;YAD7B,WAAM,GAAN,MAAM,CAAmB;YACzB,kBAAa,GAAb,aAAa,CAAgB;YAhBR,iBAAY,GAAG,IAAI,CAAC;YACnB,kBAAa,GAAG,KAAK,CAAC;YAK7C,aAAQ,GAAG,IAAI,CAAC;YAElB,aAAQ;;;YAAQ,eAAQ,EAAC;YACzB,YAAO;;;YAAQ,eAAQ,EAAC;YAEvB,WAAM,GAAG,EAAE,CAAC;YACZ,cAAS,GAAG,IAAIH,YAAO,EAAE,CAAC;YAMhC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACnC;QAED,sBAAI,mCAAK;;;;YAAT;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;aACjC;;;WAAA;QAED,sBAAI,mCAAK;;;;YAST;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;;;;;YAXD,UAAU,KAAK;gBACb,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;oBACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBAEpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC3B;aACF;;;WAAA;;;;QAMM,sCAAW;;;QAAlB;YACE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC3B;;;;;QAEM,qCAAU;;;;QAAjB,UAAkB,KAAU;YAC1B,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;gBACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;;;;;QAEM,2CAAgB;;;;QAAvB,UAAwB,EAAE,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAG;;;;;QAC7C,4CAAiB;;;;QAAxB,UAAyB,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE;;;;;;;;;QAK3C,qDAA0B;;;;;QAAlC;YAAA,iBAwBC;YAvBC,IAAI,CAAC,aAAa,CAAC,iBAAiB;iBACjC,IAAI,CACHC,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS;;;;YAAC,UAAC,EAAmB;oBAAjB,sBAAQ,EAAE,gBAAK;gBAC3B,IAAI,CAAC,QAAQ,EAAE;;wBACP,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS;;;;oBAAC,UAAC,IAAI;wBAC3C,OAAO,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;qBACpC,EAAC;oBAEF,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;wBACnB,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;wBAEjC,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;wBAC3B,KAAI,CAAC,OAAO,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;qBAC3B;iBACF;qBAAM;oBACL,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAEvB,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;oBAC3B,KAAI,CAAC,OAAO,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;iBAC3B;aACF,EAAC,CAAC;SACN;;;;;;;;;QAKO,iDAAsB;;;;;QAA9B;YAAA,iBAOC;YANC,IAAI,CAAC,aAAa,CAAC,iBAAiB;iBACjC,IAAI,CAACA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC/B,SAAS;;;YAAC;gBACT,KAAI,CAAC,aAAa,GAAG,CAAC,CAAC,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;gBACvD,KAAI,CAAC,WAAW,EAAE,CAAC;aACpB,EAAC,CAAA;SACL;;;;;;;QAEO,oCAAS;;;;;;QAAjB,UAAkB,EAAE,EAAE,EAAE;YACtB,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aAC7B;YACD,OAAO,EAAE,KAAK,EAAE,CAAC;SAClB;;;;;QAEO,sCAAW;;;;QAAnB;YAAA,iBAWC;YAVC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC5D,IAAI,CAAC,KAAK,CAAC,OAAO;;;;gBAAC,UAAC,IAAI;oBAEtB,IAAI,CAAC,QAAQ,GAAGG,aAAI,CAAC,KAAI,CAAC,KAAK;;;;oBAAE,UAAC,CAAC;wBACjC,OAAO,KAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;qBACtC,EAAC,KAAK,SAAS,CAAC;iBAClB,EAAC,CAAC;aACJ;YAED,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;SAC5B;;oBAlIFC,cAAS,SAAC;wBACT,QAAQ,EAAE,UAAU;wBACpB,uCAAmC;wBAEnC,SAAS,EAAE;4BACT;gCACE,OAAO,EAAEC,uBAAiB;gCAC1B,WAAW,EAAEC,eAAU;;;gCAAC,cAAM,OAAA,gBAAgB,GAAA,EAAC;gCAC/C,KAAK,EAAE,IAAI;6BACZ;4BACD,cAAc;yBACf;wBACD,eAAe,EAAEC,4BAAuB,CAAC,MAAM;;qBAChD;;;;oBA7B0BC,sBAAiB;oBAcnC,cAAc;;;mCAkBpBC,gBAAW,SAAC,gBAAgB;oCAC5BA,gBAAW,SAAC,iBAAiB;8BAE7BC,UAAK;+BAGLA,UAAK;;QA6GR,uBAAC;KAnID,IAmIC;;;QAnHC,wCAAmD;;QACnD,yCAAsD;;QAEtD,mCACe;;QAEf,oCAAyB;;QAEzB,oCAAgC;;QAChC,mCAA+B;;;;;QAE/B,kCAAoB;;;;;QACpB,qCAAkC;;;;;QAGhC,kCAAiC;;;;;QACjC,yCAAqC;;;;;;;;ACjDzC;QAqIE,yBACU,MAAyB,EACb,MAAsB;YADlC,WAAM,GAAN,MAAM,CAAmB;YACb,WAAM,GAAN,MAAM,CAAgB;YA9Gd,WAAM,GAAG,IAAI,CAAC;YACb,cAAS,GAAG,KAAK,CAAC;YAChB,gBAAW,GAAG,KAAK,CAAC;YACxB,WAAM,GAAG,KAAK,CAAC;YACb,cAAS,GAAG,KAAK,CAAC;YACjB,eAAU,GAAG,KAAK,CAAC;YACb,yBAAoB,GAAG,EAAE,CAAC;YACpC,eAAU,GAAG,EAAE,CAAC;YACV,qBAAgB,GAAG,EAAE,CAAC;YAE5B,eAAU,GAAG,KAAK,CAAC;YACpB,cAAS,GAAG,KAAK,CAAC;YAqB7B,UAAK,GAAG,IAAI,CAAC;YAmEZ,oBAAe,GAAG,IAAIC,iBAAY,EAAE,CAAC;YACrC,YAAO,GAAG,IAAIA,iBAAY,EAAE,CAAC;YAEvC,aAAQ,GAAG,IAAIZ,YAAO,EAAE,CAAC;YAExB,qBAAgB,GAAG,EAAE,CAAC;YACtB,WAAM,GAAG,EAAE,CAAC;SAMhB;QAlGJ,sBAAmB,oCAAO;;;;;YAA1B,UAA2B,KAAK;gBAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,OAAO,CAAC;gBACpC,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,MAAM,CAAC;aACnC;;;WAAA;QAAA,CAAC;;;;QAGK,+BAAK;;;QADZ;YAGE,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAE1E,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBACzD;aACF;SACF;QAID,sBAAa,4CAAe;;;;;YAA5B,UAA6B,KAAK;gBAChC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;;;WAAA;QAAA,CAAC;QAEF,sBAAa,wCAAW;;;;;YAAxB,UAAyB,KAAK;gBAC5B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;;;WAAA;QACD,sBAAa,kCAAK;;;;YAKlB;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;;;;;YAPD,UAAmB,KAAK;gBACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;;;WAAA;QAMD,sBAAa,qCAAQ;;;;YAKrB;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;;;;;YAPD,UAAsB,KAAK;gBACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;;;WAAA;QAAA,CAAC;QAMF,sBAAa,sCAAS;;;;YAMtB;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC;aACxB;;;;;YARD,UAAuB,KAAK;gBAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBAExB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;aAC5B;;;WAAA;QAAA,CAAC;QAMF,sBAAa,uCAAU;;;;YAIvB;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC;aACzB;;;;;YAND,UAAwB,KAAK;gBAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;;;WAAA;QAAA,CAAC;QAMF,sBAAa,qCAAQ;;;;YAMrB;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;;;;;YARD,UAAsB,KAAK;gBACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBAEvB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;aAC5B;;;WAAA;QAAA,CAAC;QAMF,sBAAa,kCAAK;;;;YAMlB;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;;;;;YARD,UAAmB,KAAK;gBACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBAEpB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;aAC5B;;;WAAA;QAAA,CAAC;;;;QAoBK,kCAAQ;;;QAAf;YACE,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC5B;SACF;;;;QAEM,qCAAW;;;QAAlB;YACE,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC3B;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1B;;;;;QAEM,gCAAM;;;;QAAb,UAAc,KAAK;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;;;;;;QAEO,4CAAkB;;;;;QAA1B,UAA2B,QAAQ;YACjC,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,IAAI,CAAC;aACb;YAED,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;;gBAC/B,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;gBACvC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;gBACvC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;gBACvC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI;YAEtD,OAAO,GAAG,IAAI,GAAG,CAAC;SACnB;;;;;QAEO,sCAAY;;;;QAApB;YACE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAElD,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;aAC/B;iBAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;aAC3F;YAED,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;gBAE/B,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;iBACrC;aACF;YAED,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;SAC5B;;oBA5KFK,cAAS,SAAC;wBACT,QAAQ,EAAE,SAAS;wBACnB,+YAAkC;wBAElC,eAAe,EAAEG,4BAAuB,CAAC,MAAM;;qBAChD;;;;oBArB0BC,sBAAiB;oBAanC,cAAc,uBAyHlBI,aAAQ;;;6BA9GVH,gBAAW,SAAC,eAAe;gCAC3BA,gBAAW,SAAC,gBAAgB;kCAC5BA,gBAAW,SAAC,kBAAkB;6BAC9BA,gBAAW,SAAC,cAAc;gCAC1BA,gBAAW,SAAC,gBAAgB;iCAC5BA,gBAAW,SAAC,iBAAiB;2CAC7BA,gBAAW,SAAC,uBAAuB;iCACnCA,gBAAW,SAAC,aAAa;uCACzBA,gBAAW,SAAC,mBAAmB;iCAE/BA,gBAAW,SAAC,aAAa;gCACzBA,gBAAW,SAAC,YAAY;8BAExBC,UAAK,SAAC,MAAM;4BAMZG,iBAAY,SAAC,OAAO;4BAapBH,UAAK;sCAELA,UAAK;kCAKLA,UAAK;4BAILA,UAAK;+BASLA,UAAK;gCASLA,UAAK;iCAULA,UAAK;+BAQLA,UAAK;4BAULA,UAAK;sCAULI,WAAM;8BACNA,WAAM;;QAiET,sBAAC;KA7KD,IA6KC;;;QArKC,iCAA4C;;QAC5C,oCAAiD;;QACjD,sCAAqD;;QACrD,iCAA4C;;QAC5C,oCAAiD;;QACjD,qCAAmD;;QACnD,+CAAgE;;QAChE,qCAA4C;;QAC5C,2CAAwD;;QAExD,qCAA+C;;QAC/C,oCAA6C;;QAqB7C,gCAA6B;;QAmE7B,0CAAsD;;QACtD,kCAA8C;;QAE9C,mCAAgC;;;;;QAEhC,2CAA8B;;;;;QAC9B,iCAAoB;;;;;QACpB,gCAAc;;;;;QAGZ,iCAAiC;;;;;QACjC,iCAA0C;;;;;;;;;;;;;;;ACvI9C;QASA;SAqBC;;;;QALQ,oBAAO;;;QAAd;YACE,OAAO;gBACL,QAAQ,EAAE,YAAY;aACvB,CAAC;SACH;;oBApBFC,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZC,kBAAa;4BACbC,mBAAa;yBACd;wBACD,OAAO,EAAE;4BACP,gBAAgB;4BAChB,eAAe;yBAChB;wBACD,YAAY,EAAE;4BACZ,gBAAgB;4BAChB,eAAe;yBAChB;qBACF;;QAOD,mBAAC;KArBD;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"firestitch-chip.umd.js","sources":["ng://@firestitch/chip/app/services/chips.service.ts","ng://@firestitch/chip/app/components/chips/chips.component.ts","ng://@firestitch/chip/app/components/chip/chip.component.ts","ng://@firestitch/chip/app/fs-chip.module.ts"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n\n@Injectable()\nexport class FsChipsService implements OnDestroy {\n\n public chips = [];\n\n private _chipItemsChanged$ = new Subject();\n private _selectionChanged$ = new Subject();\n private _destroy$ = new Subject<void>();\n\n constructor() {}\n\n get selectionChanged$() {\n return this._selectionChanged$.\n pipe(\n takeUntil(this._destroy$),\n );\n }\n\n get chipItemsChanged$() {\n return this._chipItemsChanged$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(50),\n )\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public selectionChanged(selected: boolean, value: any) {\n this._selectionChanged$.next({\n selected: selected,\n value: value,\n })\n }\n\n public register(chip) {\n this.chips.push(chip);\n this._chipItemsChanged$.next();\n }\n\n public destroy(chip) {\n const index = this.chips.indexOf(chip);\n\n if (index > -1) {\n this.chips.splice(index, 1);\n this._chipItemsChanged$.next();\n }\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { find } from 'lodash-es';\n\nimport { FsChipsService } from '../../services/chips.service';\n\n@Component({\n selector: 'fs-chips',\n templateUrl: 'chips.component.html',\n styleUrls: ['chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsChipsComponent),\n multi: true,\n },\n FsChipsService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipsComponent implements OnDestroy, ControlValueAccessor {\n\n @HostBinding('class.fs-chips') classFsChips = true;\n @HostBinding('class.has-chips') classHasChips = false;\n\n @Input()\n public compare;\n\n @Input() multiple = true;\n\n public onChange: any = () => {};\n public onTouch: any = () => {};\n\n private _value = [];\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _chipsService: FsChipsService,\n ) {\n this.subscribeToItemsChange();\n this.subscribeToSelectionChange();\n }\n\n get chips() {\n return this._chipsService.chips;\n }\n\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public writeValue(value: any) {\n if (value !== this.value) {\n this._value = value;\n }\n\n this.updateChips();\n }\n\n public registerOnChange(fn) { this.onChange = fn; }\n public registerOnTouched(fn) { this.onTouch = fn; }\n\n /**\n * Update ngModel value when selection changed\n */\n private subscribeToSelectionChange() {\n this._chipsService.selectionChanged$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(({ selected, value }) => {\n if (!selected) {\n const valueIndex = this.value.findIndex((item) => {\n return this.compareFn(item, value);\n });\n\n if (valueIndex > -1) {\n this.value.splice(valueIndex, 1);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n } else {\n this.value.push(value);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n });\n }\n\n /**\n * Update selection if item was added or removed\n */\n private subscribeToItemsChange() {\n this._chipsService.chipItemsChanged$\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.classHasChips = !!this._chipsService.chips.length;\n this.updateChips();\n })\n }\n\n private compareFn(o1, o2) {\n if (this.compare) {\n return this.compare(o1, o2);\n }\n return o1 === o2;\n }\n\n private updateChips() {\n if (this.multiple && Array.isArray(this.value) && this.chips) {\n this.chips.forEach((chip) => {\n\n chip.selected = find(this.value, (o) => {\n return this.compareFn(o, chip.value);\n }) !== undefined;\n });\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { FsChipsService } from '../../services/chips.service';\n\n\n@Component({\n selector: 'fs-chip',\n templateUrl: 'chip.component.html',\n styleUrls: ['chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipComponent implements OnInit, OnDestroy {\n\n @HostBinding('class.fs-chip') fsChip = true;\n @HostBinding('class.outlined') _outlined = false;\n @HostBinding('class.selectable') _selectable = false;\n @HostBinding('class.imaged') _image = false;\n @HostBinding('class.selected') _selected = false;\n @HostBinding('class.removable') _removable = false;\n @HostBinding('style.backgroundColor') styleBackgroundColor = '';\n @HostBinding('style.color') styleColor = '';\n @HostBinding('style.borderColor') styleBorderColor = '';\n\n @HostBinding('class.small') classSmall = false;\n @HostBinding('class.tiny') classTiny = false;\n @HostBinding('class.micro') classMicro = false;\n\n @Input('size') set setSize(value) {\n this._size = value;\n this.classSmall = value === 'small';\n this.classTiny = value === 'tiny';\n this.classMicro = value === 'micro';\n };\n\n @HostListener('click')\n public click() {\n\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedToggled.emit({ value: this.value, selected: this.selected });\n\n if (this._chips) {\n this._chips.selectionChanged(this.selected, this.value);\n }\n }\n }\n\n @Input() public value = null;\n\n @Input() set backgroundColor(value) {\n this._backgroundColor = value;\n this.updateStyles();\n };\n\n @Input() set borderColor(value) {\n this.styleBorderColor = value;\n this.updateStyles();\n }\n @Input() set color(value) {\n this._color = value;\n this.updateStyles();\n }\n\n get color() {\n return this._color;\n }\n\n @Input() set outlined(value) {\n this._outlined = value;\n this.updateStyles();\n };\n\n get outlined() {\n return this._outlined;\n }\n\n @Input() set removable(value) {\n this._removable = value;\n\n this._cdRef.markForCheck();\n };\n\n get removable() {\n return this._removable;\n }\n\n @Input() set selectable(value) {\n this._selectable = value;\n };\n\n get selectable() {\n return this._selectable;\n }\n\n @Input() set selected(value) {\n this._selected = value;\n\n this._cdRef.markForCheck();\n };\n\n get selected() {\n return this._selected;\n }\n\n @Input() set image(value) {\n this._image = value;\n\n this._cdRef.markForCheck();\n };\n\n get image() {\n return this._image;\n }\n\n @Output() public selectedToggled = new EventEmitter();\n @Output() public removed = new EventEmitter();\n\n public $destroy = new Subject();\n\n private _backgroundColor = '';\n private _color = '';\n private _size;\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n @Optional() private _chips: FsChipsService\n ) {}\n\n public ngOnInit() {\n if (this._chips) {\n this._chips.register(this);\n }\n }\n\n public ngOnDestroy() {\n if (this._chips) {\n this._chips.destroy(this);\n }\n\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n public remove(event) {\n this.removed.next(event);\n }\n\n private isContrastYIQBlack(hexcolor) {\n if (!hexcolor) {\n return true;\n }\n\n hexcolor = hexcolor.replace('#', '');\n const r = parseInt(hexcolor.substr(0, 2), 16);\n const g = parseInt(hexcolor.substr(2, 2), 16);\n const b = parseInt(hexcolor.substr(4, 2), 16);\n const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n return yiq >= 200;\n }\n\n private updateStyles() {\n this.styleBackgroundColor = this._backgroundColor;\n\n if (this._color) {\n this.styleColor = this._color;\n } else if (!this._outlined) {\n this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';\n }\n\n if (this._outlined) {\n this.styleBackgroundColor = '';\n\n if (this._color) {\n this.styleBorderColor = this._color;\n }\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsChipsComponent } from './components/chips/chips.component';\nimport { FsChipComponent } from './components/chip/chip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n FsLabelModule\n ],\n exports: [\n FsChipsComponent,\n FsChipComponent,\n ],\n declarations: [\n FsChipsComponent,\n FsChipComponent,\n ]\n})\nexport class FsChipModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: FsChipModule\n };\n }\n}\n"],"names":["Subject","takeUntil","debounceTime","Injectable","find","Component","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectionStrategy","ChangeDetectorRef","HostBinding","Input","EventEmitter","Optional","HostListener","Output","NgModule","CommonModule","MatIconModule","FsLabelModule"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/material/icon"),require("@firestitch/label"),require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("lodash-es")):"function"==typeof define&&define.amd?define("@firestitch/chip",["exports","@angular/core","@angular/common","@angular/material/icon","@firestitch/label","@angular/forms","rxjs","rxjs/operators","lodash-es"],t):t(((e=e||self).firestitch=e.firestitch||{},e.firestitch.chip={}),e.ng.core,e.ng.common,e.ng.material.icon,e.label,e.ng.forms,e.rxjs,e.rxjs.operators,e.lodashEs)}(this,(function(e,t,s,o,i,n,r,c,l){"use strict";var a=function(){function e(){this.chips=[],this._chipItemsChanged$=new r.Subject,this._selectionChanged$=new r.Subject,this._destroy$=new r.Subject}return Object.defineProperty(e.prototype,"selectionChanged$",{get:function(){return this._selectionChanged$.pipe(c.takeUntil(this._destroy$))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"chipItemsChanged$",{get:function(){return this._chipItemsChanged$.pipe(c.takeUntil(this._destroy$),c.debounceTime(50))},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this._destroy$.next(),this._destroy$.complete()},e.prototype.selectionChanged=function(e,t){this._selectionChanged$.next({selected:e,value:t})},e.prototype.register=function(e){this.chips.push(e),this._chipItemsChanged$.next()},e.prototype.destroy=function(e){var t=this.chips.indexOf(e);t>-1&&(this.chips.splice(t,1),this._chipItemsChanged$.next())},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[]},e}();var u=function(){function e(e,t){this._cdRef=e,this._chipsService=t,this.classFsChips=!0,this.classHasChips=!1,this.multiple=!0,this.onChange=function(){},this.onTouch=function(){},this._value=[],this._destroy$=new r.Subject,this.subscribeToItemsChange(),this.subscribeToSelectionChange()}return Object.defineProperty(e.prototype,"chips",{get:function(){return this._chipsService.chips},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value!==e&&(this._value=e,this.onChange(this._value),this.onTouch(this._value))},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this._destroy$.next(),this._destroy$.complete()},e.prototype.writeValue=function(e){e!==this.value&&(this._value=e),this.updateChips()},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouch=e},e.prototype.subscribeToSelectionChange=function(){var e=this;this._chipsService.selectionChanged$.pipe(c.takeUntil(this._destroy$)).subscribe((function(t){var s=t.selected,o=t.value;if(s)e.value.push(o),e.onChange(e._value),e.onTouch(e._value);else{var i=e.value.findIndex((function(t){return e.compareFn(t,o)}));i>-1&&(e.value.splice(i,1),e.onChange(e._value),e.onTouch(e._value))}}))},e.prototype.subscribeToItemsChange=function(){var e=this;this._chipsService.chipItemsChanged$.pipe(c.takeUntil(this._destroy$)).subscribe((function(){e.classHasChips=!!e._chipsService.chips.length,e.updateChips()}))},e.prototype.compareFn=function(e,t){return this.compare?this.compare(e,t):e===t},e.prototype.updateChips=function(){var e=this;this.multiple&&Array.isArray(this.value)&&this.chips&&this.chips.forEach((function(t){t.selected=void 0!==l.find(e.value,(function(s){return e.compareFn(s,t.value)}))})),this._cdRef.markForCheck()},e.decorators=[{type:t.Component,args:[{selector:"fs-chips",template:"<ng-content></ng-content>\n",providers:[{provide:n.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return e})),multi:!0},a],changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[""]}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:a}]},e.propDecorators={classFsChips:[{type:t.HostBinding,args:["class.fs-chips"]}],classHasChips:[{type:t.HostBinding,args:["class.has-chips"]}],compare:[{type:t.Input}],multiple:[{type:t.Input}]},e}();var h=function(){function e(e,s){this._cdRef=e,this._chips=s,this.fsChip=!0,this._outlined=!1,this._selectable=!1,this._image=!1,this._selected=!1,this._removable=!1,this.styleBackgroundColor="",this.styleColor="",this.styleBorderColor="",this.classSmall=!1,this.classTiny=!1,this.value=null,this.selectedToggled=new t.EventEmitter,this.removed=new t.EventEmitter,this.$destroy=new r.Subject,this._backgroundColor="",this._color=""}return Object.defineProperty(e.prototype,"setSize",{set:function(e){this._size=e,this.classSmall="small"===e,this.classTiny="tiny"===e},enumerable:!0,configurable:!0}),e.prototype.click=function(){this.selectable&&(this.selected=!this.selected,this.selectedToggled.emit({value:this.value,selected:this.selected}),this._chips&&this._chips.selectionChanged(this.selected,this.value))},Object.defineProperty(e.prototype,"backgroundColor",{set:function(e){this._backgroundColor=e,this.updateStyles()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"borderColor",{set:function(e){this.styleBorderColor=e,this.updateStyles()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"color",{get:function(){return this._color},set:function(e){this._color=e,this.updateStyles()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outlined",{get:function(){return this._outlined},set:function(e){this._outlined=e,this.updateStyles()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"removable",{get:function(){return this._removable},set:function(e){this._removable=e,this._cdRef.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectable",{get:function(){return this._selectable},set:function(e){this._selectable=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e,this._cdRef.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"image",{get:function(){return this._image},set:function(e){this._image=e,this._cdRef.markForCheck()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this._chips&&this._chips.register(this)},e.prototype.ngOnDestroy=function(){this._chips&&this._chips.destroy(this),this.$destroy.next(),this.$destroy.complete()},e.prototype.remove=function(e){this.removed.next(e)},e.prototype.isContrastYIQBlack=function(e){return!e||(e=e.replace("#",""),(299*parseInt(e.substr(0,2),16)+587*parseInt(e.substr(2,2),16)+114*parseInt(e.substr(4,2),16))/1e3>=200)},e.prototype.updateStyles=function(){this.styleBackgroundColor=this._backgroundColor,this._color?this.styleColor=this._color:this._outlined||(this.styleColor=this.isContrastYIQBlack(this.styleBackgroundColor)?"#474747":"#fff"),this._outlined&&(this.styleBackgroundColor="",this._color&&(this.styleBorderColor=this._color)),this._cdRef.markForCheck()},e.decorators=[{type:t.Component,args:[{selector:"fs-chip",template:'<img *ngIf="image" [src]="image" class="image" alt="">\n<div class="fs-chip-content">\n <ng-content></ng-content>\n</div>\n<div class="selected-check" *ngIf="selected">\n <mat-icon [style.color]="styleColor">check</mat-icon>\n</div>\n<a *ngIf="removable" class="remove" (click)="remove($event)">\n <mat-icon [style.color]="styleColor">cancel</mat-icon>\n</a>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[""]}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:a,decorators:[{type:t.Optional}]}]},e.propDecorators={fsChip:[{type:t.HostBinding,args:["class.fs-chip"]}],_outlined:[{type:t.HostBinding,args:["class.outlined"]}],_selectable:[{type:t.HostBinding,args:["class.selectable"]}],_image:[{type:t.HostBinding,args:["class.imaged"]}],_selected:[{type:t.HostBinding,args:["class.selected"]}],_removable:[{type:t.HostBinding,args:["class.removable"]}],styleBackgroundColor:[{type:t.HostBinding,args:["style.backgroundColor"]}],styleColor:[{type:t.HostBinding,args:["style.color"]}],styleBorderColor:[{type:t.HostBinding,args:["style.borderColor"]}],classSmall:[{type:t.HostBinding,args:["class.small"]}],classTiny:[{type:t.HostBinding,args:["class.tiny"]}],setSize:[{type:t.Input,args:["size"]}],click:[{type:t.HostListener,args:["click"]}],value:[{type:t.Input}],backgroundColor:[{type:t.Input}],borderColor:[{type:t.Input}],color:[{type:t.Input}],outlined:[{type:t.Input}],removable:[{type:t.Input}],selectable:[{type:t.Input}],selected:[{type:t.Input}],image:[{type:t.Input}],selectedToggled:[{type:t.Output}],removed:[{type:t.Output}]},e}();var p=function(){function e(){}return e.forRoot=function(){return{ngModule:e}},e.decorators=[{type:t.NgModule,args:[{imports:[s.CommonModule,o.MatIconModule,i.FsLabelModule],exports:[u,h],declarations:[u,h]}]}],e}();e.FsChipModule=p,e.ɵa=u,e.ɵb=a,e.ɵc=h,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/material/icon"),require("@firestitch/label"),require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("lodash-es")):"function"==typeof define&&define.amd?define("@firestitch/chip",["exports","@angular/core","@angular/common","@angular/material/icon","@firestitch/label","@angular/forms","rxjs","rxjs/operators","lodash-es"],t):t(((e=e||self).firestitch=e.firestitch||{},e.firestitch.chip={}),e.ng.core,e.ng.common,e.ng.material.icon,e.label,e.ng.forms,e.rxjs,e.rxjs.operators,e.lodashEs)}(this,(function(e,t,s,o,i,n,r,c,l){"use strict";var a=function(){function e(){this.chips=[],this._chipItemsChanged$=new r.Subject,this._selectionChanged$=new r.Subject,this._destroy$=new r.Subject}return Object.defineProperty(e.prototype,"selectionChanged$",{get:function(){return this._selectionChanged$.pipe(c.takeUntil(this._destroy$))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"chipItemsChanged$",{get:function(){return this._chipItemsChanged$.pipe(c.takeUntil(this._destroy$),c.debounceTime(50))},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this._destroy$.next(),this._destroy$.complete()},e.prototype.selectionChanged=function(e,t){this._selectionChanged$.next({selected:e,value:t})},e.prototype.register=function(e){this.chips.push(e),this._chipItemsChanged$.next()},e.prototype.destroy=function(e){var t=this.chips.indexOf(e);t>-1&&(this.chips.splice(t,1),this._chipItemsChanged$.next())},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[]},e}();var h=function(){function e(e,t){this._cdRef=e,this._chipsService=t,this.classFsChips=!0,this.classHasChips=!1,this.multiple=!0,this.onChange=function(){},this.onTouch=function(){},this._value=[],this._destroy$=new r.Subject,this.subscribeToItemsChange(),this.subscribeToSelectionChange()}return Object.defineProperty(e.prototype,"chips",{get:function(){return this._chipsService.chips},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value!==e&&(this._value=e,this.onChange(this._value),this.onTouch(this._value))},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this._destroy$.next(),this._destroy$.complete()},e.prototype.writeValue=function(e){e!==this.value&&(this._value=e),this.updateChips()},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouch=e},e.prototype.subscribeToSelectionChange=function(){var e=this;this._chipsService.selectionChanged$.pipe(c.takeUntil(this._destroy$)).subscribe((function(t){var s=t.selected,o=t.value;if(s)e.value.push(o),e.onChange(e._value),e.onTouch(e._value);else{var i=e.value.findIndex((function(t){return e.compareFn(t,o)}));i>-1&&(e.value.splice(i,1),e.onChange(e._value),e.onTouch(e._value))}}))},e.prototype.subscribeToItemsChange=function(){var e=this;this._chipsService.chipItemsChanged$.pipe(c.takeUntil(this._destroy$)).subscribe((function(){e.classHasChips=!!e._chipsService.chips.length,e.updateChips()}))},e.prototype.compareFn=function(e,t){return this.compare?this.compare(e,t):e===t},e.prototype.updateChips=function(){var e=this;this.multiple&&Array.isArray(this.value)&&this.chips&&this.chips.forEach((function(t){t.selected=void 0!==l.find(e.value,(function(s){return e.compareFn(s,t.value)}))})),this._cdRef.markForCheck()},e.decorators=[{type:t.Component,args:[{selector:"fs-chips",template:"<ng-content></ng-content>\n",providers:[{provide:n.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return e})),multi:!0},a],changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[""]}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:a}]},e.propDecorators={classFsChips:[{type:t.HostBinding,args:["class.fs-chips"]}],classHasChips:[{type:t.HostBinding,args:["class.has-chips"]}],compare:[{type:t.Input}],multiple:[{type:t.Input}]},e}();var u=function(){function e(e,s){this._cdRef=e,this._chips=s,this.fsChip=!0,this._outlined=!1,this._selectable=!1,this._image=!1,this._selected=!1,this._removable=!1,this.styleBackgroundColor="",this.styleColor="",this.styleBorderColor="",this.classSmall=!1,this.classTiny=!1,this.classMicro=!1,this.value=null,this.selectedToggled=new t.EventEmitter,this.removed=new t.EventEmitter,this.$destroy=new r.Subject,this._backgroundColor="",this._color=""}return Object.defineProperty(e.prototype,"setSize",{set:function(e){this._size=e,this.classSmall="small"===e,this.classTiny="tiny"===e,this.classMicro="micro"===e},enumerable:!0,configurable:!0}),e.prototype.click=function(){this.selectable&&(this.selected=!this.selected,this.selectedToggled.emit({value:this.value,selected:this.selected}),this._chips&&this._chips.selectionChanged(this.selected,this.value))},Object.defineProperty(e.prototype,"backgroundColor",{set:function(e){this._backgroundColor=e,this.updateStyles()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"borderColor",{set:function(e){this.styleBorderColor=e,this.updateStyles()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"color",{get:function(){return this._color},set:function(e){this._color=e,this.updateStyles()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outlined",{get:function(){return this._outlined},set:function(e){this._outlined=e,this.updateStyles()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"removable",{get:function(){return this._removable},set:function(e){this._removable=e,this._cdRef.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectable",{get:function(){return this._selectable},set:function(e){this._selectable=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e,this._cdRef.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"image",{get:function(){return this._image},set:function(e){this._image=e,this._cdRef.markForCheck()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this._chips&&this._chips.register(this)},e.prototype.ngOnDestroy=function(){this._chips&&this._chips.destroy(this),this.$destroy.next(),this.$destroy.complete()},e.prototype.remove=function(e){this.removed.next(e)},e.prototype.isContrastYIQBlack=function(e){return!e||(e=e.replace("#",""),(299*parseInt(e.substr(0,2),16)+587*parseInt(e.substr(2,2),16)+114*parseInt(e.substr(4,2),16))/1e3>=200)},e.prototype.updateStyles=function(){this.styleBackgroundColor=this._backgroundColor,this._color?this.styleColor=this._color:this._outlined||(this.styleColor=this.isContrastYIQBlack(this.styleBackgroundColor)?"#474747":"#fff"),this._outlined&&(this.styleBackgroundColor="",this._color&&(this.styleBorderColor=this._color)),this._cdRef.markForCheck()},e.decorators=[{type:t.Component,args:[{selector:"fs-chip",template:'<img *ngIf="image" [src]="image" class="image" alt="">\n<div class="fs-chip-content">\n <ng-content></ng-content>\n</div>\n<div class="selected-check" *ngIf="selected">\n <mat-icon [style.color]="styleColor">check</mat-icon>\n</div>\n<a *ngIf="removable" class="remove" (click)="remove($event)">\n <mat-icon [style.color]="styleColor">cancel</mat-icon>\n</a>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[""]}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:a,decorators:[{type:t.Optional}]}]},e.propDecorators={fsChip:[{type:t.HostBinding,args:["class.fs-chip"]}],_outlined:[{type:t.HostBinding,args:["class.outlined"]}],_selectable:[{type:t.HostBinding,args:["class.selectable"]}],_image:[{type:t.HostBinding,args:["class.imaged"]}],_selected:[{type:t.HostBinding,args:["class.selected"]}],_removable:[{type:t.HostBinding,args:["class.removable"]}],styleBackgroundColor:[{type:t.HostBinding,args:["style.backgroundColor"]}],styleColor:[{type:t.HostBinding,args:["style.color"]}],styleBorderColor:[{type:t.HostBinding,args:["style.borderColor"]}],classSmall:[{type:t.HostBinding,args:["class.small"]}],classTiny:[{type:t.HostBinding,args:["class.tiny"]}],classMicro:[{type:t.HostBinding,args:["class.micro"]}],setSize:[{type:t.Input,args:["size"]}],click:[{type:t.HostListener,args:["click"]}],value:[{type:t.Input}],backgroundColor:[{type:t.Input}],borderColor:[{type:t.Input}],color:[{type:t.Input}],outlined:[{type:t.Input}],removable:[{type:t.Input}],selectable:[{type:t.Input}],selected:[{type:t.Input}],image:[{type:t.Input}],selectedToggled:[{type:t.Output}],removed:[{type:t.Output}]},e}();var p=function(){function e(){}return e.forRoot=function(){return{ngModule:e}},e.decorators=[{type:t.NgModule,args:[{imports:[s.CommonModule,o.MatIconModule,i.FsLabelModule],exports:[h,u],declarations:[h,u]}]}],e}();e.FsChipModule=p,e.ɵa=h,e.ɵb=a,e.ɵc=u,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=firestitch-chip.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@firestitch/chip/app/services/chips.service.ts","ng://@firestitch/chip/app/components/chips/chips.component.ts","ng://@firestitch/chip/app/components/chip/chip.component.ts","ng://@firestitch/chip/app/fs-chip.module.ts"],"names":["FsChipsService","this","chips","_chipItemsChanged$","Subject","_selectionChanged$","_destroy$","Object","defineProperty","prototype","pipe","takeUntil","debounceTime","ngOnDestroy","next","complete","selectionChanged","selected","value","register","chip","push","destroy","index","indexOf","splice","Injectable","FsChipsComponent","_cdRef","_chipsService","classFsChips","classHasChips","multiple","onChange","onTouch","_value","subscribeToItemsChange","subscribeToSelectionChange","writeValue","updateChips","registerOnChange","fn","registerOnTouched","_this","selectionChanged$","subscribe","_a","valueIndex","findIndex","item","compareFn","chipItemsChanged$","length","o1","o2","compare","Array","isArray","forEach","undefined","find","o","markForCheck","Component","args","selector","template","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","HostBinding","Input","FsChipComponent","_chips","fsChip","_outlined","_selectable","_image","_selected","_removable","styleBackgroundColor","styleColor","styleBorderColor","classSmall","classTiny","selectedToggled","EventEmitter","removed","$destroy","_backgroundColor","_color","_size","click","selectable","emit","updateStyles","ngOnInit","remove","event","isContrastYIQBlack","hexcolor","replace","parseInt","substr","decorators","type","Optional","HostListener","Output","FsChipModule","forRoot","ngModule","NgModule","imports","CommonModule","MatIconModule","FsLabelModule","exports","declarations"],"mappings":"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","sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n\n@Injectable()\nexport class FsChipsService implements OnDestroy {\n\n public chips = [];\n\n private _chipItemsChanged$ = new Subject();\n private _selectionChanged$ = new Subject();\n private _destroy$ = new Subject<void>();\n\n constructor() {}\n\n get selectionChanged$() {\n return this._selectionChanged$.\n pipe(\n takeUntil(this._destroy$),\n );\n }\n\n get chipItemsChanged$() {\n return this._chipItemsChanged$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(50),\n )\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public selectionChanged(selected: boolean, value: any) {\n this._selectionChanged$.next({\n selected: selected,\n value: value,\n })\n }\n\n public register(chip) {\n this.chips.push(chip);\n this._chipItemsChanged$.next();\n }\n\n public destroy(chip) {\n const index = this.chips.indexOf(chip);\n\n if (index > -1) {\n this.chips.splice(index, 1);\n this._chipItemsChanged$.next();\n }\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { find } from 'lodash-es';\n\nimport { FsChipsService } from '../../services/chips.service';\n\n@Component({\n selector: 'fs-chips',\n templateUrl: 'chips.component.html',\n styleUrls: ['chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsChipsComponent),\n multi: true,\n },\n FsChipsService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipsComponent implements OnDestroy, ControlValueAccessor {\n\n @HostBinding('class.fs-chips') classFsChips = true;\n @HostBinding('class.has-chips') classHasChips = false;\n\n @Input()\n public compare;\n\n @Input() multiple = true;\n\n public onChange: any = () => {};\n public onTouch: any = () => {};\n\n private _value = [];\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _chipsService: FsChipsService,\n ) {\n this.subscribeToItemsChange();\n this.subscribeToSelectionChange();\n }\n\n get chips() {\n return this._chipsService.chips;\n }\n\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public writeValue(value: any) {\n if (value !== this.value) {\n this._value = value;\n }\n\n this.updateChips();\n }\n\n public registerOnChange(fn) { this.onChange = fn; }\n public registerOnTouched(fn) { this.onTouch = fn; }\n\n /**\n * Update ngModel value when selection changed\n */\n private subscribeToSelectionChange() {\n this._chipsService.selectionChanged$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(({ selected, value }) => {\n if (!selected) {\n const valueIndex = this.value.findIndex((item) => {\n return this.compareFn(item, value);\n });\n\n if (valueIndex > -1) {\n this.value.splice(valueIndex, 1);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n } else {\n this.value.push(value);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n });\n }\n\n /**\n * Update selection if item was added or removed\n */\n private subscribeToItemsChange() {\n this._chipsService.chipItemsChanged$\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.classHasChips = !!this._chipsService.chips.length;\n this.updateChips();\n })\n }\n\n private compareFn(o1, o2) {\n if (this.compare) {\n return this.compare(o1, o2);\n }\n return o1 === o2;\n }\n\n private updateChips() {\n if (this.multiple && Array.isArray(this.value) && this.chips) {\n this.chips.forEach((chip) => {\n\n chip.selected = find(this.value, (o) => {\n return this.compareFn(o, chip.value);\n }) !== undefined;\n });\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { FsChipsService } from '../../services/chips.service';\n\n\n@Component({\n selector: 'fs-chip',\n templateUrl: 'chip.component.html',\n styleUrls: ['chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipComponent implements OnInit, OnDestroy {\n\n @HostBinding('class.fs-chip') fsChip = true;\n @HostBinding('class.outlined') _outlined = false;\n @HostBinding('class.selectable') _selectable = false;\n @HostBinding('class.imaged') _image = false;\n @HostBinding('class.selected') _selected = false;\n @HostBinding('class.removable') _removable = false;\n @HostBinding('style.backgroundColor') styleBackgroundColor = '';\n @HostBinding('style.color') styleColor = '';\n @HostBinding('style.borderColor') styleBorderColor = '';\n\n @HostBinding('class.small') classSmall = false;\n @HostBinding('class.tiny') classTiny = false;\n\n @Input('size') set setSize(value) {\n this._size = value;\n this.classSmall = value === 'small';\n this.classTiny = value === 'tiny';\n };\n\n @HostListener('click')\n public click() {\n\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedToggled.emit({ value: this.value, selected: this.selected });\n\n if (this._chips) {\n this._chips.selectionChanged(this.selected, this.value);\n }\n }\n }\n\n @Input() public value = null;\n\n @Input() set backgroundColor(value) {\n this._backgroundColor = value;\n this.updateStyles();\n };\n\n @Input() set borderColor(value) {\n this.styleBorderColor = value;\n this.updateStyles();\n }\n @Input() set color(value) {\n this._color = value;\n this.updateStyles();\n }\n\n get color() {\n return this._color;\n }\n\n @Input() set outlined(value) {\n this._outlined = value;\n this.updateStyles();\n };\n\n get outlined() {\n return this._outlined;\n }\n\n @Input() set removable(value) {\n this._removable = value;\n\n this._cdRef.markForCheck();\n };\n\n get removable() {\n return this._removable;\n }\n\n @Input() set selectable(value) {\n this._selectable = value;\n };\n\n get selectable() {\n return this._selectable;\n }\n\n @Input() set selected(value) {\n this._selected = value;\n\n this._cdRef.markForCheck();\n };\n\n get selected() {\n return this._selected;\n }\n\n @Input() set image(value) {\n this._image = value;\n\n this._cdRef.markForCheck();\n };\n\n get image() {\n return this._image;\n }\n\n @Output() public selectedToggled = new EventEmitter();\n @Output() public removed = new EventEmitter();\n\n public $destroy = new Subject();\n\n private _backgroundColor = '';\n private _color = '';\n private _size;\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n @Optional() private _chips: FsChipsService\n ) {}\n\n public ngOnInit() {\n if (this._chips) {\n this._chips.register(this);\n }\n }\n\n public ngOnDestroy() {\n if (this._chips) {\n this._chips.destroy(this);\n }\n\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n public remove(event) {\n this.removed.next(event);\n }\n\n private isContrastYIQBlack(hexcolor) {\n if (!hexcolor) {\n return true;\n }\n\n hexcolor = hexcolor.replace('#', '');\n const r = parseInt(hexcolor.substr(0, 2), 16);\n const g = parseInt(hexcolor.substr(2, 2), 16);\n const b = parseInt(hexcolor.substr(4, 2), 16);\n const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n return yiq >= 200;\n }\n\n private updateStyles() {\n this.styleBackgroundColor = this._backgroundColor;\n\n if (this._color) {\n this.styleColor = this._color;\n } else if (!this._outlined) {\n this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';\n }\n\n if (this._outlined) {\n this.styleBackgroundColor = '';\n\n if (this._color) {\n this.styleBorderColor = this._color;\n }\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsChipsComponent } from './components/chips/chips.component';\nimport { FsChipComponent } from './components/chip/chip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n FsLabelModule\n ],\n exports: [\n FsChipsComponent,\n FsChipComponent,\n ],\n declarations: [\n FsChipsComponent,\n FsChipComponent,\n ]\n})\nexport class FsChipModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: FsChipModule\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["ng://@firestitch/chip/app/services/chips.service.ts","ng://@firestitch/chip/app/components/chips/chips.component.ts","ng://@firestitch/chip/app/components/chip/chip.component.ts","ng://@firestitch/chip/app/fs-chip.module.ts"],"names":["FsChipsService","this","chips","_chipItemsChanged$","Subject","_selectionChanged$","_destroy$","Object","defineProperty","prototype","pipe","takeUntil","debounceTime","ngOnDestroy","next","complete","selectionChanged","selected","value","register","chip","push","destroy","index","indexOf","splice","Injectable","FsChipsComponent","_cdRef","_chipsService","classFsChips","classHasChips","multiple","onChange","onTouch","_value","subscribeToItemsChange","subscribeToSelectionChange","writeValue","updateChips","registerOnChange","fn","registerOnTouched","_this","selectionChanged$","subscribe","_a","valueIndex","findIndex","item","compareFn","chipItemsChanged$","length","o1","o2","compare","Array","isArray","forEach","undefined","find","o","markForCheck","Component","args","selector","template","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","HostBinding","Input","FsChipComponent","_chips","fsChip","_outlined","_selectable","_image","_selected","_removable","styleBackgroundColor","styleColor","styleBorderColor","classSmall","classTiny","classMicro","selectedToggled","EventEmitter","removed","$destroy","_backgroundColor","_color","_size","click","selectable","emit","updateStyles","ngOnInit","remove","event","isContrastYIQBlack","hexcolor","replace","parseInt","substr","decorators","type","Optional","HostListener","Output","FsChipModule","forRoot","ngModule","NgModule","imports","CommonModule","MatIconModule","FsLabelModule","exports","declarations"],"mappings":"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","sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n\n@Injectable()\nexport class FsChipsService implements OnDestroy {\n\n public chips = [];\n\n private _chipItemsChanged$ = new Subject();\n private _selectionChanged$ = new Subject();\n private _destroy$ = new Subject<void>();\n\n constructor() {}\n\n get selectionChanged$() {\n return this._selectionChanged$.\n pipe(\n takeUntil(this._destroy$),\n );\n }\n\n get chipItemsChanged$() {\n return this._chipItemsChanged$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(50),\n )\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public selectionChanged(selected: boolean, value: any) {\n this._selectionChanged$.next({\n selected: selected,\n value: value,\n })\n }\n\n public register(chip) {\n this.chips.push(chip);\n this._chipItemsChanged$.next();\n }\n\n public destroy(chip) {\n const index = this.chips.indexOf(chip);\n\n if (index > -1) {\n this.chips.splice(index, 1);\n this._chipItemsChanged$.next();\n }\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { find } from 'lodash-es';\n\nimport { FsChipsService } from '../../services/chips.service';\n\n@Component({\n selector: 'fs-chips',\n templateUrl: 'chips.component.html',\n styleUrls: ['chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsChipsComponent),\n multi: true,\n },\n FsChipsService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipsComponent implements OnDestroy, ControlValueAccessor {\n\n @HostBinding('class.fs-chips') classFsChips = true;\n @HostBinding('class.has-chips') classHasChips = false;\n\n @Input()\n public compare;\n\n @Input() multiple = true;\n\n public onChange: any = () => {};\n public onTouch: any = () => {};\n\n private _value = [];\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _chipsService: FsChipsService,\n ) {\n this.subscribeToItemsChange();\n this.subscribeToSelectionChange();\n }\n\n get chips() {\n return this._chipsService.chips;\n }\n\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public writeValue(value: any) {\n if (value !== this.value) {\n this._value = value;\n }\n\n this.updateChips();\n }\n\n public registerOnChange(fn) { this.onChange = fn; }\n public registerOnTouched(fn) { this.onTouch = fn; }\n\n /**\n * Update ngModel value when selection changed\n */\n private subscribeToSelectionChange() {\n this._chipsService.selectionChanged$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(({ selected, value }) => {\n if (!selected) {\n const valueIndex = this.value.findIndex((item) => {\n return this.compareFn(item, value);\n });\n\n if (valueIndex > -1) {\n this.value.splice(valueIndex, 1);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n } else {\n this.value.push(value);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n });\n }\n\n /**\n * Update selection if item was added or removed\n */\n private subscribeToItemsChange() {\n this._chipsService.chipItemsChanged$\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.classHasChips = !!this._chipsService.chips.length;\n this.updateChips();\n })\n }\n\n private compareFn(o1, o2) {\n if (this.compare) {\n return this.compare(o1, o2);\n }\n return o1 === o2;\n }\n\n private updateChips() {\n if (this.multiple && Array.isArray(this.value) && this.chips) {\n this.chips.forEach((chip) => {\n\n chip.selected = find(this.value, (o) => {\n return this.compareFn(o, chip.value);\n }) !== undefined;\n });\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { FsChipsService } from '../../services/chips.service';\n\n\n@Component({\n selector: 'fs-chip',\n templateUrl: 'chip.component.html',\n styleUrls: ['chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipComponent implements OnInit, OnDestroy {\n\n @HostBinding('class.fs-chip') fsChip = true;\n @HostBinding('class.outlined') _outlined = false;\n @HostBinding('class.selectable') _selectable = false;\n @HostBinding('class.imaged') _image = false;\n @HostBinding('class.selected') _selected = false;\n @HostBinding('class.removable') _removable = false;\n @HostBinding('style.backgroundColor') styleBackgroundColor = '';\n @HostBinding('style.color') styleColor = '';\n @HostBinding('style.borderColor') styleBorderColor = '';\n\n @HostBinding('class.small') classSmall = false;\n @HostBinding('class.tiny') classTiny = false;\n @HostBinding('class.micro') classMicro = false;\n\n @Input('size') set setSize(value) {\n this._size = value;\n this.classSmall = value === 'small';\n this.classTiny = value === 'tiny';\n this.classMicro = value === 'micro';\n };\n\n @HostListener('click')\n public click() {\n\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedToggled.emit({ value: this.value, selected: this.selected });\n\n if (this._chips) {\n this._chips.selectionChanged(this.selected, this.value);\n }\n }\n }\n\n @Input() public value = null;\n\n @Input() set backgroundColor(value) {\n this._backgroundColor = value;\n this.updateStyles();\n };\n\n @Input() set borderColor(value) {\n this.styleBorderColor = value;\n this.updateStyles();\n }\n @Input() set color(value) {\n this._color = value;\n this.updateStyles();\n }\n\n get color() {\n return this._color;\n }\n\n @Input() set outlined(value) {\n this._outlined = value;\n this.updateStyles();\n };\n\n get outlined() {\n return this._outlined;\n }\n\n @Input() set removable(value) {\n this._removable = value;\n\n this._cdRef.markForCheck();\n };\n\n get removable() {\n return this._removable;\n }\n\n @Input() set selectable(value) {\n this._selectable = value;\n };\n\n get selectable() {\n return this._selectable;\n }\n\n @Input() set selected(value) {\n this._selected = value;\n\n this._cdRef.markForCheck();\n };\n\n get selected() {\n return this._selected;\n }\n\n @Input() set image(value) {\n this._image = value;\n\n this._cdRef.markForCheck();\n };\n\n get image() {\n return this._image;\n }\n\n @Output() public selectedToggled = new EventEmitter();\n @Output() public removed = new EventEmitter();\n\n public $destroy = new Subject();\n\n private _backgroundColor = '';\n private _color = '';\n private _size;\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n @Optional() private _chips: FsChipsService\n ) {}\n\n public ngOnInit() {\n if (this._chips) {\n this._chips.register(this);\n }\n }\n\n public ngOnDestroy() {\n if (this._chips) {\n this._chips.destroy(this);\n }\n\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n public remove(event) {\n this.removed.next(event);\n }\n\n private isContrastYIQBlack(hexcolor) {\n if (!hexcolor) {\n return true;\n }\n\n hexcolor = hexcolor.replace('#', '');\n const r = parseInt(hexcolor.substr(0, 2), 16);\n const g = parseInt(hexcolor.substr(2, 2), 16);\n const b = parseInt(hexcolor.substr(4, 2), 16);\n const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n return yiq >= 200;\n }\n\n private updateStyles() {\n this.styleBackgroundColor = this._backgroundColor;\n\n if (this._color) {\n this.styleColor = this._color;\n } else if (!this._outlined) {\n this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';\n }\n\n if (this._outlined) {\n this.styleBackgroundColor = '';\n\n if (this._color) {\n this.styleBorderColor = this._color;\n }\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsChipsComponent } from './components/chips/chips.component';\nimport { FsChipComponent } from './components/chip/chip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n FsLabelModule\n ],\n exports: [\n FsChipsComponent,\n FsChipComponent,\n ],\n declarations: [\n FsChipsComponent,\n FsChipComponent,\n ]\n})\nexport class FsChipModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: FsChipModule\n };\n }\n}\n"]}
@@ -25,6 +25,7 @@ export class FsChipComponent {
25
25
  this.styleBorderColor = '';
26
26
  this.classSmall = false;
27
27
  this.classTiny = false;
28
+ this.classMicro = false;
28
29
  this.value = null;
29
30
  this.selectedToggled = new EventEmitter();
30
31
  this.removed = new EventEmitter();
@@ -40,6 +41,7 @@ export class FsChipComponent {
40
41
  this._size = value;
41
42
  this.classSmall = value === 'small';
42
43
  this.classTiny = value === 'tiny';
44
+ this.classMicro = value === 'micro';
43
45
  }
44
46
  ;
45
47
  /**
@@ -250,6 +252,7 @@ FsChipComponent.propDecorators = {
250
252
  styleBorderColor: [{ type: HostBinding, args: ['style.borderColor',] }],
251
253
  classSmall: [{ type: HostBinding, args: ['class.small',] }],
252
254
  classTiny: [{ type: HostBinding, args: ['class.tiny',] }],
255
+ classMicro: [{ type: HostBinding, args: ['class.micro',] }],
253
256
  setSize: [{ type: Input, args: ['size',] }],
254
257
  click: [{ type: HostListener, args: ['click',] }],
255
258
  value: [{ type: Input }],
@@ -288,6 +291,8 @@ if (false) {
288
291
  /** @type {?} */
289
292
  FsChipComponent.prototype.classTiny;
290
293
  /** @type {?} */
294
+ FsChipComponent.prototype.classMicro;
295
+ /** @type {?} */
291
296
  FsChipComponent.prototype.value;
292
297
  /** @type {?} */
293
298
  FsChipComponent.prototype.selectedToggled;
@@ -328,4 +333,4 @@ if (false) {
328
333
  /* Skipping unhandled member: ;*/
329
334
  /* Skipping unhandled member: ;*/
330
335
  }
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9jaGlwLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvY2hpcC9jaGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFBRSxpQkFBaUIsRUFDMUMsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUzlELE1BQU0sT0FBTyxlQUFlOzs7OztJQThHMUIsWUFDVSxNQUF5QixFQUNiLE1BQXNCO1FBRGxDLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ2IsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUE5R2QsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNiLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNiLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNiLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUNwQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ1YscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRTVCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQXFCN0IsVUFBSyxHQUFHLElBQUksQ0FBQztRQW1FWixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFF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dUI7eUJBQ25DLFdBQVcsU0FBQyxhQUFhOytCQUN6QixXQUFXLFNBQUMsbUJBQW1CO3lCQUUvQixXQUFXLFNBQUMsYUFBYTt3QkFDekIsV0FBVyxTQUFDLFlBQVk7c0JBRXhCLEtBQUssU0FBQyxNQUFNO29CQU1aLFlBQVksU0FBQyxPQUFPO29CQWFwQixLQUFLOzhCQUVMLEtBQUs7MEJBS0wsS0FBSztvQkFJTCxLQUFLO3VCQVNMLEtBQUs7d0JBU0wsS0FBSzt5QkFVTCxLQUFLO3VCQVFMLEtBQUs7b0JBVUwsS0FBSzs4QkFVTCxNQUFNO3NCQUNOLE1BQU07Ozs7SUFwR1AsaUNBQTRDOztJQUM1QyxvQ0FBaUQ7O0lBQ2pELHNDQUFxRDs7SUFDckQsaUNBQTRDOztJQUM1QyxvQ0FBaUQ7O0lBQ2pELHFDQUFtRDs7SUFDbkQsK0NBQWdFOztJQUNoRSxxQ0FBNEM7O0lBQzVDLDJDQUF3RDs7SUFFeEQscUNBQStDOztJQUMvQyxvQ0FBNkM7O0lBcUI3QyxnQ0FBNkI7O0lBbUU3QiwwQ0FBc0Q7O0lBQ3RELGtDQUE4Qzs7SUFFOUMsbUNBQWdDOzs7OztJQUVoQywyQ0FBOEI7Ozs7O0lBQzlCLGlDQUFvQjs7Ozs7SUFDcEIsZ0NBQWM7Ozs7O0lBR1osaUNBQWlDOzs7OztJQUNqQyxpQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGc0NoaXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoaXBzLnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWNoaXAnLFxuICB0ZW1wbGF0ZVVybDogJ2NoaXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY2hpcC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnNDaGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnMtY2hpcCcpIGZzQ2hpcCA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mub3V0bGluZWQnKSBfb3V0bGluZWQgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RhYmxlJykgX3NlbGVjdGFibGUgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbWFnZWQnKSBfaW1hZ2UgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpIF9zZWxlY3RlZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlbW92YWJsZScpIF9yZW1vdmFibGUgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5iYWNrZ3JvdW5kQ29sb3InKSBzdHlsZUJhY2tncm91bmRDb2xvciA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmNvbG9yJykgc3R5bGVDb2xvciA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJvcmRlckNvbG9yJykgc3R5bGVCb3JkZXJDb2xvciA9ICcnO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc21hbGwnKSBjbGFzc1NtYWxsID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGlueScpIGNsYXNzVGlueSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnc2l6ZScpIHNldCBzZXRTaXplKHZhbHVlKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2xhc3NTbWFsbCA9IHZhbHVlID09PSAnc21hbGwnO1xuICAgIHRoaXMuY2xhc3NUaW55ID0gdmFsdWUgPT09ICd0aW55JztcbiAgfTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHB1YmxpYyBjbGljaygpIHtcblxuICAgIGlmICh0aGlzLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUb2dnbGVkLmVtaXQoeyB2YWx1ZTogdGhpcy52YWx1ZSwgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQgfSk7XG5cbiAgICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgICB0aGlzLl9jaGlwcy5zZWxlY3Rpb25DaGFuZ2VkKHRoaXMuc2VsZWN0ZWQsIHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWx1ZSA9IG51bGw7XG5cbiAgQElucHV0KCkgc2V0IGJhY2tncm91bmRDb2xvcih2YWx1ZSkge1xuICAgIHRoaXMuX2JhY2tncm91bmRDb2xvciA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gIH07XG5cbiAgQElucHV0KCkgc2V0IGJvcmRlckNvbG9yKHZhbHVlKSB7XG4gICAgdGhpcy5zdHlsZUJvcmRlckNvbG9yID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgY29sb3IodmFsdWUpIHtcbiAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gIH1cblxuICBnZXQgY29sb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG91dGxpbmVkKHZhbHVlKSB7XG4gICAgdGhpcy5fb3V0bGluZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICB9O1xuXG4gIGdldCBvdXRsaW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fb3V0bGluZWQ7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgcmVtb3ZhYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fcmVtb3ZhYmxlID0gdmFsdWU7XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBnZXQgcmVtb3ZhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9yZW1vdmFibGU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2VsZWN0YWJsZSh2YWx1ZSkge1xuICAgIHRoaXMuX3NlbGVjdGFibGUgPSB2YWx1ZTtcbiAgfTtcblxuICBnZXQgc2VsZWN0YWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0YWJsZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZCh2YWx1ZSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdmFsdWU7XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGltYWdlKHZhbHVlKSB7XG4gICAgdGhpcy5faW1hZ2UgPSB2YWx1ZTtcblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGdldCBpbWFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW1hZ2U7XG4gIH1cblxuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkVG9nZ2xlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyAkZGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfYmFja2dyb3VuZENvbG9yID0gJyc7XG4gIHByaXZhdGUgX2NvbG9yID0gJyc7XG4gIHByaXZhdGUgX3NpemU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NoaXBzOiBGc0NoaXBzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgdGhpcy5fY2hpcHMucmVnaXN0ZXIodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgdGhpcy5fY2hpcHMuZGVzdHJveSh0aGlzKTtcbiAgICB9XG5cbiAgICB0aGlzLiRkZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLiRkZXN0cm95LmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlKGV2ZW50KSB7XG4gICAgdGhpcy5yZW1vdmVkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbnRyYXN0WUlRQmxhY2soaGV4Y29sb3IpIHtcbiAgICBpZiAoIWhleGNvbG9yKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBoZXhjb2xvciA9IGhleGNvbG9yLnJlcGxhY2UoJyMnLCAnJyk7XG4gICAgY29uc3QgciA9IHBhcnNlSW50KGhleGNvbG9yLnN1YnN0cigwLCAyKSwgMTYpO1xuICAgIGNvbnN0IGcgPSBwYXJzZUludChoZXhjb2xvci5zdWJzdHIoMiwgMiksIDE2KTtcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoaGV4Y29sb3Iuc3Vic3RyKDQsIDIpLCAxNik7XG4gICAgY29uc3QgeWlxID0gKChyICogMjk5KSArIChnICogNTg3KSArIChiICogMTE0KSkgLyAxMDAwO1xuXG4gICAgcmV0dXJuIHlpcSA+PSAyMDA7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0eWxlcygpIHtcbiAgICB0aGlzLnN0eWxlQmFja2dyb3VuZENvbG9yID0gdGhpcy5fYmFja2dyb3VuZENvbG9yO1xuXG4gICAgaWYgKHRoaXMuX2NvbG9yKSB7XG4gICAgICB0aGlzLnN0eWxlQ29sb3IgPSB0aGlzLl9jb2xvcjtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLl9vdXRsaW5lZCkge1xuICAgICAgdGhpcy5zdHlsZUNvbG9yID0gdGhpcy5pc0NvbnRyYXN0WUlRQmxhY2sodGhpcy5zdHlsZUJhY2tncm91bmRDb2xvcikgPyAnIzQ3NDc0NycgOiAnI2ZmZic7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX291dGxpbmVkKSB7XG4gICAgICB0aGlzLnN0eWxlQmFja2dyb3VuZENvbG9yID0gJyc7XG5cbiAgICAgIGlmICh0aGlzLl9jb2xvcikge1xuICAgICAgICB0aGlzLnN0eWxlQm9yZGVyQ29sb3IgPSB0aGlzLl9jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19
336
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9jaGlwLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvY2hpcC9jaGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFBRSxpQkFBaUIsRUFDMUMsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUzlELE1BQU0sT0FBTyxlQUFlOzs7OztJQWdIMUIsWUFDVSxNQUF5QixFQUNiLE1BQXNCO1FBRGxDLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ2IsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFoSGQsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNiLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNiLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNiLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUNwQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ1YscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRTVCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBc0IvQixVQUFLLEdBQUcsSUFBSSxDQUFDO1FBbUVaLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdB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QWM7d0JBQzFCLFdBQVcsU0FBQyxnQkFBZ0I7eUJBQzVCLFdBQVcsU0FBQyxpQkFBaUI7bUNBQzdCLFdBQVcsU0FBQyx1QkFBdUI7eUJBQ25DLFdBQVcsU0FBQyxhQUFhOytCQUN6QixXQUFXLFNBQUMsbUJBQW1CO3lCQUUvQixXQUFXLFNBQUMsYUFBYTt3QkFDekIsV0FBVyxTQUFDLFlBQVk7eUJBQ3hCLFdBQVcsU0FBQyxhQUFhO3NCQUV6QixLQUFLLFNBQUMsTUFBTTtvQkFPWixZQUFZLFNBQUMsT0FBTztvQkFhcEIsS0FBSzs4QkFFTCxLQUFLOzBCQUtMLEtBQUs7b0JBSUwsS0FBSzt1QkFTTCxLQUFLO3dCQVNMLEtBQUs7eUJBVUwsS0FBSzt1QkFRTCxLQUFLO29CQVVMLEtBQUs7OEJBVUwsTUFBTTtzQkFDTixNQUFNOzs7O0lBdEdQLGlDQUE0Qzs7SUFDNUMsb0NBQWlEOztJQUNqRCxzQ0FBcUQ7O0lBQ3JELGlDQUE0Qzs7SUFDNUMsb0NBQWlEOztJQUNqRCxxQ0FBbUQ7O0lBQ25ELCtDQUFnRTs7SUFDaEUscUNBQTRDOztJQUM1QywyQ0FBd0Q7O0lBRXhELHFDQUErQzs7SUFDL0Msb0NBQTZDOztJQUM3QyxxQ0FBK0M7O0lBc0IvQyxnQ0FBNkI7O0lBbUU3QiwwQ0FBc0Q7O0lBQ3RELGtDQUE4Qzs7SUFFOUMsbUNBQWdDOzs7OztJQUVoQywyQ0FBOEI7Ozs7O0lBQzlCLGlDQUFvQjs7Ozs7SUFDcEIsZ0NBQWM7Ozs7O0lBR1osaUNBQWlDOzs7OztJQUNqQyxpQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGc0NoaXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoaXBzLnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWNoaXAnLFxuICB0ZW1wbGF0ZVVybDogJ2NoaXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY2hpcC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnNDaGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnMtY2hpcCcpIGZzQ2hpcCA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mub3V0bGluZWQnKSBfb3V0bGluZWQgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RhYmxlJykgX3NlbGVjdGFibGUgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbWFnZWQnKSBfaW1hZ2UgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpIF9zZWxlY3RlZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlbW92YWJsZScpIF9yZW1vdmFibGUgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5iYWNrZ3JvdW5kQ29sb3InKSBzdHlsZUJhY2tncm91bmRDb2xvciA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmNvbG9yJykgc3R5bGVDb2xvciA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJvcmRlckNvbG9yJykgc3R5bGVCb3JkZXJDb2xvciA9ICcnO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc21hbGwnKSBjbGFzc1NtYWxsID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGlueScpIGNsYXNzVGlueSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1pY3JvJykgY2xhc3NNaWNybyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnc2l6ZScpIHNldCBzZXRTaXplKHZhbHVlKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2xhc3NTbWFsbCA9IHZhbHVlID09PSAnc21hbGwnO1xuICAgIHRoaXMuY2xhc3NUaW55ID0gdmFsdWUgPT09ICd0aW55JztcbiAgICB0aGlzLmNsYXNzTWljcm8gPSB2YWx1ZSA9PT0gJ21pY3JvJztcbiAgfTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHB1YmxpYyBjbGljaygpIHtcblxuICAgIGlmICh0aGlzLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUb2dnbGVkLmVtaXQoeyB2YWx1ZTogdGhpcy52YWx1ZSwgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQgfSk7XG5cbiAgICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgICB0aGlzLl9jaGlwcy5zZWxlY3Rpb25DaGFuZ2VkKHRoaXMuc2VsZWN0ZWQsIHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWx1ZSA9IG51bGw7XG5cbiAgQElucHV0KCkgc2V0IGJhY2tncm91bmRDb2xvcih2YWx1ZSkge1xuICAgIHRoaXMuX2JhY2tncm91bmRDb2xvciA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gIH07XG5cbiAgQElucHV0KCkgc2V0IGJvcmRlckNvbG9yKHZhbHVlKSB7XG4gICAgdGhpcy5zdHlsZUJvcmRlckNvbG9yID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgY29sb3IodmFsdWUpIHtcbiAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gIH1cblxuICBnZXQgY29sb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG91dGxpbmVkKHZhbHVlKSB7XG4gICAgdGhpcy5fb3V0bGluZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICB9O1xuXG4gIGdldCBvdXRsaW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fb3V0bGluZWQ7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgcmVtb3ZhYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fcmVtb3ZhYmxlID0gdmFsdWU7XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBnZXQgcmVtb3ZhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9yZW1vdmFibGU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2VsZWN0YWJsZSh2YWx1ZSkge1xuICAgIHRoaXMuX3NlbGVjdGFibGUgPSB2YWx1ZTtcbiAgfTtcblxuICBnZXQgc2VsZWN0YWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0YWJsZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZCh2YWx1ZSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdmFsdWU7XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGltYWdlKHZhbHVlKSB7XG4gICAgdGhpcy5faW1hZ2UgPSB2YWx1ZTtcblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGdldCBpbWFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW1hZ2U7XG4gIH1cblxuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkVG9nZ2xlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyAkZGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfYmFja2dyb3VuZENvbG9yID0gJyc7XG4gIHByaXZhdGUgX2NvbG9yID0gJyc7XG4gIHByaXZhdGUgX3NpemU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NoaXBzOiBGc0NoaXBzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgdGhpcy5fY2hpcHMucmVnaXN0ZXIodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgdGhpcy5fY2hpcHMuZGVzdHJveSh0aGlzKTtcbiAgICB9XG5cbiAgICB0aGlzLiRkZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLiRkZXN0cm95LmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlKGV2ZW50KSB7XG4gICAgdGhpcy5yZW1vdmVkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbnRyYXN0WUlRQmxhY2soaGV4Y29sb3IpIHtcbiAgICBpZiAoIWhleGNvbG9yKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBoZXhjb2xvciA9IGhleGNvbG9yLnJlcGxhY2UoJyMnLCAnJyk7XG4gICAgY29uc3QgciA9IHBhcnNlSW50KGhleGNvbG9yLnN1YnN0cigwLCAyKSwgMTYpO1xuICAgIGNvbnN0IGcgPSBwYXJzZUludChoZXhjb2xvci5zdWJzdHIoMiwgMiksIDE2KTtcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoaGV4Y29sb3Iuc3Vic3RyKDQsIDIpLCAxNik7XG4gICAgY29uc3QgeWlxID0gKChyICogMjk5KSArIChnICogNTg3KSArIChiICogMTE0KSkgLyAxMDAwO1xuXG4gICAgcmV0dXJuIHlpcSA+PSAyMDA7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0eWxlcygpIHtcbiAgICB0aGlzLnN0eWxlQmFja2dyb3VuZENvbG9yID0gdGhpcy5fYmFja2dyb3VuZENvbG9yO1xuXG4gICAgaWYgKHRoaXMuX2NvbG9yKSB7XG4gICAgICB0aGlzLnN0eWxlQ29sb3IgPSB0aGlzLl9jb2xvcjtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLl9vdXRsaW5lZCkge1xuICAgICAgdGhpcy5zdHlsZUNvbG9yID0gdGhpcy5pc0NvbnRyYXN0WUlRQmxhY2sodGhpcy5zdHlsZUJhY2tncm91bmRDb2xvcikgPyAnIzQ3NDc0NycgOiAnI2ZmZic7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX291dGxpbmVkKSB7XG4gICAgICB0aGlzLnN0eWxlQmFja2dyb3VuZENvbG9yID0gJyc7XG5cbiAgICAgIGlmICh0aGlzLl9jb2xvcikge1xuICAgICAgICB0aGlzLnN0eWxlQm9yZGVyQ29sb3IgPSB0aGlzLl9jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19
@@ -21,6 +21,7 @@ var FsChipComponent = /** @class */ (function () {
21
21
  this.styleBorderColor = '';
22
22
  this.classSmall = false;
23
23
  this.classTiny = false;
24
+ this.classMicro = false;
24
25
  this.value = null;
25
26
  this.selectedToggled = new EventEmitter();
26
27
  this.removed = new EventEmitter();
@@ -37,6 +38,7 @@ var FsChipComponent = /** @class */ (function () {
37
38
  this._size = value;
38
39
  this.classSmall = value === 'small';
39
40
  this.classTiny = value === 'tiny';
41
+ this.classMicro = value === 'micro';
40
42
  },
41
43
  enumerable: true,
42
44
  configurable: true
@@ -303,6 +305,7 @@ var FsChipComponent = /** @class */ (function () {
303
305
  styleBorderColor: [{ type: HostBinding, args: ['style.borderColor',] }],
304
306
  classSmall: [{ type: HostBinding, args: ['class.small',] }],
305
307
  classTiny: [{ type: HostBinding, args: ['class.tiny',] }],
308
+ classMicro: [{ type: HostBinding, args: ['class.micro',] }],
306
309
  setSize: [{ type: Input, args: ['size',] }],
307
310
  click: [{ type: HostListener, args: ['click',] }],
308
311
  value: [{ type: Input }],
@@ -344,6 +347,8 @@ if (false) {
344
347
  /** @type {?} */
345
348
  FsChipComponent.prototype.classTiny;
346
349
  /** @type {?} */
350
+ FsChipComponent.prototype.classMicro;
351
+ /** @type {?} */
347
352
  FsChipComponent.prototype.value;
348
353
  /** @type {?} */
349
354
  FsChipComponent.prototype.selectedToggled;
@@ -384,4 +389,4 @@ if (false) {
384
389
  /* Skipping unhandled member: ;*/
385
390
  /* Skipping unhandled member: ;*/
386
391
  }
387
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9jaGlwLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvY2hpcC9jaGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFBRSxpQkFBaUIsRUFDMUMsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzlEO0lBb0hFLHlCQUNVLE1BQXlCLEVBQ2IsTUFBc0I7UUFEbEMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQTlHZCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNoQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ2IseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDVixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFNUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBcUI3QixVQUFLLEdBQUcsSUFBSSxDQUFDO1FBbUVaLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV4QixxQkFBZ0IsR0FBRyxFQUFF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QkFBZ0I7OEJBQzVCLFdBQVcsU0FBQyxrQkFBa0I7eUJBQzlCLFdBQVcsU0FBQyxjQUFjOzRCQUMxQixXQUFXLFNBQUMsZ0JBQWdCOzZCQUM1QixXQUFXLFNBQUMsaUJBQWlCO3VDQUM3QixXQUFXLFNBQUMsdUJBQXVCOzZCQUNuQyxXQUFXLFNBQUMsYUFBYTttQ0FDekIsV0FBVyxTQUFDLG1CQUFtQjs2QkFFL0IsV0FBVyxTQUFDLGFBQWE7NEJBQ3pCLFdBQVcsU0FBQyxZQUFZOzBCQUV4QixLQUFLLFNBQUMsTUFBTTt3QkFNWixZQUFZLFNBQUMsT0FBTzt3QkFhcEIsS0FBSztrQ0FFTCxLQUFLOzhCQUtMLEtBQUs7d0JBSUwsS0FBSzsyQkFTTCxLQUFLOzRCQVNMLEtBQUs7NkJBVUwsS0FBSzsyQkFRTCxLQUFLO3dCQVVMLEtBQUs7a0NBVUwsTUFBTTswQkFDTixNQUFNOztJQWlFVCxzQkFBQztDQUFBLEFBN0tELElBNktDO1NBdktZLGVBQWU7OztJQUUxQixpQ0FBNEM7O0lBQzVDLG9DQUFpRDs7SUFDakQsc0NBQXFEOztJQUNyRCxpQ0FBNEM7O0lBQzVDLG9DQUFpRDs7SUFDakQscUNBQW1EOztJQUNuRCwrQ0FBZ0U7O0lBQ2hFLHFDQUE0Qzs7SUFDNUMsMkNBQXdEOztJQUV4RCxxQ0FBK0M7O0lBQy9DLG9DQUE2Qzs7SUFxQjdDLGdDQUE2Qjs7SUFtRTdCLDBDQUFzRDs7SUFDdEQsa0NBQThDOztJQUU5QyxtQ0FBZ0M7Ozs7O0lBRWhDLDJDQUE4Qjs7Ozs7SUFDOUIsaUNBQW9COzs7OztJQUNwQixnQ0FBYzs7Ozs7SUFHWixpQ0FBaUM7Ozs7O0lBQ2pDLGlDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZzQ2hpcHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hpcHMuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtY2hpcCcsXG4gIHRlbXBsYXRlVXJsOiAnY2hpcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjaGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0NoaXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1jaGlwJykgZnNDaGlwID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vdXRsaW5lZCcpIF9vdXRsaW5lZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGFibGUnKSBfc2VsZWN0YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmltYWdlZCcpIF9pbWFnZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJykgX3NlbGVjdGVkID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MucmVtb3ZhYmxlJykgX3JlbW92YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmRDb2xvcicpIHN0eWxlQmFja2dyb3VuZENvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuY29sb3InKSBzdHlsZUNvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuYm9yZGVyQ29sb3InKSBzdHlsZUJvcmRlckNvbG9yID0gJyc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGNsYXNzU21hbGwgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aW55JykgY2xhc3NUaW55ID0gZmFsc2U7XG5cbiAgQElucHV0KCdzaXplJykgc2V0IHNldFNpemUodmFsdWUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5jbGFzc1NtYWxsID0gdmFsdWUgPT09ICdzbWFsbCc7XG4gICAgdGhpcy5jbGFzc1RpbnkgPSB2YWx1ZSA9PT0gJ3RpbnknO1xuICB9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIGNsaWNrKCkge1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9ICF0aGlzLnNlbGVjdGVkO1xuICAgICAgdGhpcy5zZWxlY3RlZFRvZ2dsZWQuZW1pdCh7IHZhbHVlOiB0aGlzLnZhbHVlLCBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcblxuICAgICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICAgIHRoaXMuX2NoaXBzLnNlbGVjdGlvbkNoYW5nZWQodGhpcy5zZWxlY3RlZCwgdGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgcHVibGljIHZhbHVlID0gbnVsbDtcblxuICBASW5wdXQoKSBzZXQgYmFja2dyb3VuZENvbG9yKHZhbHVlKSB7XG4gICAgdGhpcy5fYmFja2dyb3VuZENvbG9yID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfTtcblxuICBASW5wdXQoKSBzZXQgYm9yZGVyQ29sb3IodmFsdWUpIHtcbiAgICB0aGlzLnN0eWxlQm9yZGVyQ29sb3IgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICB9XG4gIEBJbnB1dCgpIHNldCBjb2xvcih2YWx1ZSkge1xuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfVxuXG4gIGdldCBjb2xvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgb3V0bGluZWQodmFsdWUpIHtcbiAgICB0aGlzLl9vdXRsaW5lZCA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gIH07XG5cbiAgZ2V0IG91dGxpbmVkKCkge1xuICAgIHJldHVybiB0aGlzLl9vdXRsaW5lZDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCByZW1vdmFibGUodmFsdWUpIHtcbiAgICB0aGlzLl9yZW1vdmFibGUgPSB2YWx1ZTtcblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGdldCByZW1vdmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW92YWJsZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RhYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fc2VsZWN0YWJsZSA9IHZhbHVlO1xuICB9O1xuXG4gIGdldCBzZWxlY3RhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RhYmxlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWx1ZTtcblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGdldCBzZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaW1hZ2UodmFsdWUpIHtcbiAgICB0aGlzLl9pbWFnZSA9IHZhbHVlO1xuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgZ2V0IGltYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbWFnZTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWRUb2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljICRkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9iYWNrZ3JvdW5kQ29sb3IgPSAnJztcbiAgcHJpdmF0ZSBfY29sb3IgPSAnJztcbiAgcHJpdmF0ZSBfc2l6ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY2hpcHM6IEZzQ2hpcHNTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICB0aGlzLl9jaGlwcy5yZWdpc3Rlcih0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICB0aGlzLl9jaGlwcy5kZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHRoaXMuJGRlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMuJGRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmUoZXZlbnQpIHtcbiAgICB0aGlzLnJlbW92ZWQubmV4dChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIGlzQ29udHJhc3RZSVFCbGFjayhoZXhjb2xvcikge1xuICAgIGlmICghaGV4Y29sb3IpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGhleGNvbG9yID0gaGV4Y29sb3IucmVwbGFjZSgnIycsICcnKTtcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4Y29sb3Iuc3Vic3RyKDAsIDIpLCAxNik7XG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGhleGNvbG9yLnN1YnN0cigyLCAyKSwgMTYpO1xuICAgIGNvbnN0IGIgPSBwYXJzZUludChoZXhjb2xvci5zdWJzdHIoNCwgMiksIDE2KTtcbiAgICBjb25zdCB5aXEgPSAoKHIgKiAyOTkpICsgKGcgKiA1ODcpICsgKGIgKiAxMTQpKSAvIDEwMDA7XG5cbiAgICByZXR1cm4geWlxID49IDIwMDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3R5bGVzKCkge1xuICAgIHRoaXMuc3R5bGVCYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLl9iYWNrZ3JvdW5kQ29sb3I7XG5cbiAgICBpZiAodGhpcy5fY29sb3IpIHtcbiAgICAgIHRoaXMuc3R5bGVDb2xvciA9IHRoaXMuX2NvbG9yO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX291dGxpbmVkKSB7XG4gICAgICB0aGlzLnN0eWxlQ29sb3IgPSB0aGlzLmlzQ29udHJhc3RZSVFCbGFjayh0aGlzLnN0eWxlQmFja2dyb3VuZENvbG9yKSA/ICcjNDc0NzQ3JyA6ICcjZmZmJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fb3V0bGluZWQpIHtcbiAgICAgIHRoaXMuc3R5bGVCYWNrZ3JvdW5kQ29sb3IgPSAnJztcblxuICAgICAgaWYgKHRoaXMuX2NvbG9yKSB7XG4gICAgICAgIHRoaXMuc3R5bGVCb3JkZXJDb2xvciA9IHRoaXMuX2NvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
392
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9jaGlwLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvY2hpcC9jaGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFBRSxpQkFBaUIsRUFDMUMsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzlEO0lBc0hFLHlCQUNVLE1BQXlCLEVBQ2IsTUFBc0I7UUFEbEMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQWhIZCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNoQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ2IseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDVixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFNUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFzQi9CLFVBQUssR0FBRyxJQUFJLENBQUM7UUFtRVosb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxD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QUFpQjtnQkFhbkMsY0FBYyx1QkEySGxCLFFBQVE7Ozt5QkFoSFYsV0FBVyxTQUFDLGVBQWU7NEJBQzNCLFdBQVcsU0FBQyxnQkFBZ0I7OEJBQzVCLFdBQVcsU0FBQyxrQkFBa0I7eUJBQzlCLFdBQVcsU0FBQyxjQUFjOzRCQUMxQixXQUFXLFNBQUMsZ0JBQWdCOzZCQUM1QixXQUFXLFNBQUMsaUJBQWlCO3VDQUM3QixXQUFXLFNBQUMsdUJBQXVCOzZCQUNuQyxXQUFXLFNBQUMsYUFBYTttQ0FDekIsV0FBVyxTQUFDLG1CQUFtQjs2QkFFL0IsV0FBVyxTQUFDLGFBQWE7NEJBQ3pCLFdBQVcsU0FBQyxZQUFZOzZCQUN4QixXQUFXLFNBQUMsYUFBYTswQkFFekIsS0FBSyxTQUFDLE1BQU07d0JBT1osWUFBWSxTQUFDLE9BQU87d0JBYXBCLEtBQUs7a0NBRUwsS0FBSzs4QkFLTCxLQUFLO3dCQUlMLEtBQUs7MkJBU0wsS0FBSzs0QkFTTCxLQUFLOzZCQVVMLEtBQUs7MkJBUUwsS0FBSzt3QkFVTCxLQUFLO2tDQVVMLE1BQU07MEJBQ04sTUFBTTs7SUFpRVQsc0JBQUM7Q0FBQSxBQS9LRCxJQStLQztTQXpLWSxlQUFlOzs7SUFFMUIsaUNBQTRDOztJQUM1QyxvQ0FBaUQ7O0lBQ2pELHNDQUFxRDs7SUFDckQsaUNBQTRDOztJQUM1QyxvQ0FBaUQ7O0lBQ2pELHFDQUFtRDs7SUFDbkQsK0NBQWdFOztJQUNoRSxxQ0FBNEM7O0lBQzVDLDJDQUF3RDs7SUFFeEQscUNBQStDOztJQUMvQyxvQ0FBNkM7O0lBQzdDLHFDQUErQzs7SUFzQi9DLGdDQUE2Qjs7SUFtRTdCLDBDQUFzRDs7SUFDdEQsa0NBQThDOztJQUU5QyxtQ0FBZ0M7Ozs7O0lBRWhDLDJDQUE4Qjs7Ozs7SUFDOUIsaUNBQW9COzs7OztJQUNwQixnQ0FBYzs7Ozs7SUFHWixpQ0FBaUM7Ozs7O0lBQ2pDLGlDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZzQ2hpcHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hpcHMuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtY2hpcCcsXG4gIHRlbXBsYXRlVXJsOiAnY2hpcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjaGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0NoaXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1jaGlwJykgZnNDaGlwID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vdXRsaW5lZCcpIF9vdXRsaW5lZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGFibGUnKSBfc2VsZWN0YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmltYWdlZCcpIF9pbWFnZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJykgX3NlbGVjdGVkID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MucmVtb3ZhYmxlJykgX3JlbW92YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmRDb2xvcicpIHN0eWxlQmFja2dyb3VuZENvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuY29sb3InKSBzdHlsZUNvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuYm9yZGVyQ29sb3InKSBzdHlsZUJvcmRlckNvbG9yID0gJyc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGNsYXNzU21hbGwgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aW55JykgY2xhc3NUaW55ID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MubWljcm8nKSBjbGFzc01pY3JvID0gZmFsc2U7XG5cbiAgQElucHV0KCdzaXplJykgc2V0IHNldFNpemUodmFsdWUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5jbGFzc1NtYWxsID0gdmFsdWUgPT09ICdzbWFsbCc7XG4gICAgdGhpcy5jbGFzc1RpbnkgPSB2YWx1ZSA9PT0gJ3RpbnknO1xuICAgIHRoaXMuY2xhc3NNaWNybyA9IHZhbHVlID09PSAnbWljcm8nO1xuICB9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIGNsaWNrKCkge1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9ICF0aGlzLnNlbGVjdGVkO1xuICAgICAgdGhpcy5zZWxlY3RlZFRvZ2dsZWQuZW1pdCh7IHZhbHVlOiB0aGlzLnZhbHVlLCBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcblxuICAgICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICAgIHRoaXMuX2NoaXBzLnNlbGVjdGlvbkNoYW5nZWQodGhpcy5zZWxlY3RlZCwgdGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgcHVibGljIHZhbHVlID0gbnVsbDtcblxuICBASW5wdXQoKSBzZXQgYmFja2dyb3VuZENvbG9yKHZhbHVlKSB7XG4gICAgdGhpcy5fYmFja2dyb3VuZENvbG9yID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfTtcblxuICBASW5wdXQoKSBzZXQgYm9yZGVyQ29sb3IodmFsdWUpIHtcbiAgICB0aGlzLnN0eWxlQm9yZGVyQ29sb3IgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICB9XG4gIEBJbnB1dCgpIHNldCBjb2xvcih2YWx1ZSkge1xuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfVxuXG4gIGdldCBjb2xvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgb3V0bGluZWQodmFsdWUpIHtcbiAgICB0aGlzLl9vdXRsaW5lZCA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gIH07XG5cbiAgZ2V0IG91dGxpbmVkKCkge1xuICAgIHJldHVybiB0aGlzLl9vdXRsaW5lZDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCByZW1vdmFibGUodmFsdWUpIHtcbiAgICB0aGlzLl9yZW1vdmFibGUgPSB2YWx1ZTtcblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGdldCByZW1vdmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW92YWJsZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RhYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fc2VsZWN0YWJsZSA9IHZhbHVlO1xuICB9O1xuXG4gIGdldCBzZWxlY3RhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RhYmxlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWx1ZTtcblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGdldCBzZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaW1hZ2UodmFsdWUpIHtcbiAgICB0aGlzLl9pbWFnZSA9IHZhbHVlO1xuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgZ2V0IGltYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbWFnZTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWRUb2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljICRkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9iYWNrZ3JvdW5kQ29sb3IgPSAnJztcbiAgcHJpdmF0ZSBfY29sb3IgPSAnJztcbiAgcHJpdmF0ZSBfc2l6ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY2hpcHM6IEZzQ2hpcHNTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICB0aGlzLl9jaGlwcy5yZWdpc3Rlcih0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICB0aGlzLl9jaGlwcy5kZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHRoaXMuJGRlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMuJGRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmUoZXZlbnQpIHtcbiAgICB0aGlzLnJlbW92ZWQubmV4dChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIGlzQ29udHJhc3RZSVFCbGFjayhoZXhjb2xvcikge1xuICAgIGlmICghaGV4Y29sb3IpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGhleGNvbG9yID0gaGV4Y29sb3IucmVwbGFjZSgnIycsICcnKTtcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4Y29sb3Iuc3Vic3RyKDAsIDIpLCAxNik7XG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGhleGNvbG9yLnN1YnN0cigyLCAyKSwgMTYpO1xuICAgIGNvbnN0IGIgPSBwYXJzZUludChoZXhjb2xvci5zdWJzdHIoNCwgMiksIDE2KTtcbiAgICBjb25zdCB5aXEgPSAoKHIgKiAyOTkpICsgKGcgKiA1ODcpICsgKGIgKiAxMTQpKSAvIDEwMDA7XG5cbiAgICByZXR1cm4geWlxID49IDIwMDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3R5bGVzKCkge1xuICAgIHRoaXMuc3R5bGVCYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLl9iYWNrZ3JvdW5kQ29sb3I7XG5cbiAgICBpZiAodGhpcy5fY29sb3IpIHtcbiAgICAgIHRoaXMuc3R5bGVDb2xvciA9IHRoaXMuX2NvbG9yO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX291dGxpbmVkKSB7XG4gICAgICB0aGlzLnN0eWxlQ29sb3IgPSB0aGlzLmlzQ29udHJhc3RZSVFCbGFjayh0aGlzLnN0eWxlQmFja2dyb3VuZENvbG9yKSA/ICcjNDc0NzQ3JyA6ICcjZmZmJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fb3V0bGluZWQpIHtcbiAgICAgIHRoaXMuc3R5bGVCYWNrZ3JvdW5kQ29sb3IgPSAnJztcblxuICAgICAgaWYgKHRoaXMuX2NvbG9yKSB7XG4gICAgICAgIHRoaXMuc3R5bGVCb3JkZXJDb2xvciA9IHRoaXMuX2NvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
@@ -351,6 +351,7 @@ class FsChipComponent {
351
351
  this.styleBorderColor = '';
352
352
  this.classSmall = false;
353
353
  this.classTiny = false;
354
+ this.classMicro = false;
354
355
  this.value = null;
355
356
  this.selectedToggled = new EventEmitter();
356
357
  this.removed = new EventEmitter();
@@ -366,6 +367,7 @@ class FsChipComponent {
366
367
  this._size = value;
367
368
  this.classSmall = value === 'small';
368
369
  this.classTiny = value === 'tiny';
370
+ this.classMicro = value === 'micro';
369
371
  }
370
372
  ;
371
373
  /**
@@ -576,6 +578,7 @@ FsChipComponent.propDecorators = {
576
578
  styleBorderColor: [{ type: HostBinding, args: ['style.borderColor',] }],
577
579
  classSmall: [{ type: HostBinding, args: ['class.small',] }],
578
580
  classTiny: [{ type: HostBinding, args: ['class.tiny',] }],
581
+ classMicro: [{ type: HostBinding, args: ['class.micro',] }],
579
582
  setSize: [{ type: Input, args: ['size',] }],
580
583
  click: [{ type: HostListener, args: ['click',] }],
581
584
  value: [{ type: Input }],
@@ -614,6 +617,8 @@ if (false) {
614
617
  /** @type {?} */
615
618
  FsChipComponent.prototype.classTiny;
616
619
  /** @type {?} */
620
+ FsChipComponent.prototype.classMicro;
621
+ /** @type {?} */
617
622
  FsChipComponent.prototype.value;
618
623
  /** @type {?} */
619
624
  FsChipComponent.prototype.selectedToggled;
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-chip.js","sources":["ng://@firestitch/chip/app/services/chips.service.ts","ng://@firestitch/chip/app/components/chips/chips.component.ts","ng://@firestitch/chip/app/components/chip/chip.component.ts","ng://@firestitch/chip/app/fs-chip.module.ts"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n\n@Injectable()\nexport class FsChipsService implements OnDestroy {\n\n public chips = [];\n\n private _chipItemsChanged$ = new Subject();\n private _selectionChanged$ = new Subject();\n private _destroy$ = new Subject<void>();\n\n constructor() {}\n\n get selectionChanged$() {\n return this._selectionChanged$.\n pipe(\n takeUntil(this._destroy$),\n );\n }\n\n get chipItemsChanged$() {\n return this._chipItemsChanged$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(50),\n )\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public selectionChanged(selected: boolean, value: any) {\n this._selectionChanged$.next({\n selected: selected,\n value: value,\n })\n }\n\n public register(chip) {\n this.chips.push(chip);\n this._chipItemsChanged$.next();\n }\n\n public destroy(chip) {\n const index = this.chips.indexOf(chip);\n\n if (index > -1) {\n this.chips.splice(index, 1);\n this._chipItemsChanged$.next();\n }\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { find } from 'lodash-es';\n\nimport { FsChipsService } from '../../services/chips.service';\n\n@Component({\n selector: 'fs-chips',\n templateUrl: 'chips.component.html',\n styleUrls: ['chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsChipsComponent),\n multi: true,\n },\n FsChipsService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipsComponent implements OnDestroy, ControlValueAccessor {\n\n @HostBinding('class.fs-chips') classFsChips = true;\n @HostBinding('class.has-chips') classHasChips = false;\n\n @Input()\n public compare;\n\n @Input() multiple = true;\n\n public onChange: any = () => {};\n public onTouch: any = () => {};\n\n private _value = [];\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _chipsService: FsChipsService,\n ) {\n this.subscribeToItemsChange();\n this.subscribeToSelectionChange();\n }\n\n get chips() {\n return this._chipsService.chips;\n }\n\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public writeValue(value: any) {\n if (value !== this.value) {\n this._value = value;\n }\n\n this.updateChips();\n }\n\n public registerOnChange(fn) { this.onChange = fn; }\n public registerOnTouched(fn) { this.onTouch = fn; }\n\n /**\n * Update ngModel value when selection changed\n */\n private subscribeToSelectionChange() {\n this._chipsService.selectionChanged$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(({ selected, value }) => {\n if (!selected) {\n const valueIndex = this.value.findIndex((item) => {\n return this.compareFn(item, value);\n });\n\n if (valueIndex > -1) {\n this.value.splice(valueIndex, 1);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n } else {\n this.value.push(value);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n });\n }\n\n /**\n * Update selection if item was added or removed\n */\n private subscribeToItemsChange() {\n this._chipsService.chipItemsChanged$\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.classHasChips = !!this._chipsService.chips.length;\n this.updateChips();\n })\n }\n\n private compareFn(o1, o2) {\n if (this.compare) {\n return this.compare(o1, o2);\n }\n return o1 === o2;\n }\n\n private updateChips() {\n if (this.multiple && Array.isArray(this.value) && this.chips) {\n this.chips.forEach((chip) => {\n\n chip.selected = find(this.value, (o) => {\n return this.compareFn(o, chip.value);\n }) !== undefined;\n });\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { FsChipsService } from '../../services/chips.service';\n\n\n@Component({\n selector: 'fs-chip',\n templateUrl: 'chip.component.html',\n styleUrls: ['chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipComponent implements OnInit, OnDestroy {\n\n @HostBinding('class.fs-chip') fsChip = true;\n @HostBinding('class.outlined') _outlined = false;\n @HostBinding('class.selectable') _selectable = false;\n @HostBinding('class.imaged') _image = false;\n @HostBinding('class.selected') _selected = false;\n @HostBinding('class.removable') _removable = false;\n @HostBinding('style.backgroundColor') styleBackgroundColor = '';\n @HostBinding('style.color') styleColor = '';\n @HostBinding('style.borderColor') styleBorderColor = '';\n\n @HostBinding('class.small') classSmall = false;\n @HostBinding('class.tiny') classTiny = false;\n\n @Input('size') set setSize(value) {\n this._size = value;\n this.classSmall = value === 'small';\n this.classTiny = value === 'tiny';\n };\n\n @HostListener('click')\n public click() {\n\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedToggled.emit({ value: this.value, selected: this.selected });\n\n if (this._chips) {\n this._chips.selectionChanged(this.selected, this.value);\n }\n }\n }\n\n @Input() public value = null;\n\n @Input() set backgroundColor(value) {\n this._backgroundColor = value;\n this.updateStyles();\n };\n\n @Input() set borderColor(value) {\n this.styleBorderColor = value;\n this.updateStyles();\n }\n @Input() set color(value) {\n this._color = value;\n this.updateStyles();\n }\n\n get color() {\n return this._color;\n }\n\n @Input() set outlined(value) {\n this._outlined = value;\n this.updateStyles();\n };\n\n get outlined() {\n return this._outlined;\n }\n\n @Input() set removable(value) {\n this._removable = value;\n\n this._cdRef.markForCheck();\n };\n\n get removable() {\n return this._removable;\n }\n\n @Input() set selectable(value) {\n this._selectable = value;\n };\n\n get selectable() {\n return this._selectable;\n }\n\n @Input() set selected(value) {\n this._selected = value;\n\n this._cdRef.markForCheck();\n };\n\n get selected() {\n return this._selected;\n }\n\n @Input() set image(value) {\n this._image = value;\n\n this._cdRef.markForCheck();\n };\n\n get image() {\n return this._image;\n }\n\n @Output() public selectedToggled = new EventEmitter();\n @Output() public removed = new EventEmitter();\n\n public $destroy = new Subject();\n\n private _backgroundColor = '';\n private _color = '';\n private _size;\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n @Optional() private _chips: FsChipsService\n ) {}\n\n public ngOnInit() {\n if (this._chips) {\n this._chips.register(this);\n }\n }\n\n public ngOnDestroy() {\n if (this._chips) {\n this._chips.destroy(this);\n }\n\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n public remove(event) {\n this.removed.next(event);\n }\n\n private isContrastYIQBlack(hexcolor) {\n if (!hexcolor) {\n return true;\n }\n\n hexcolor = hexcolor.replace('#', '');\n const r = parseInt(hexcolor.substr(0, 2), 16);\n const g = parseInt(hexcolor.substr(2, 2), 16);\n const b = parseInt(hexcolor.substr(4, 2), 16);\n const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n return yiq >= 200;\n }\n\n private updateStyles() {\n this.styleBackgroundColor = this._backgroundColor;\n\n if (this._color) {\n this.styleColor = this._color;\n } else if (!this._outlined) {\n this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';\n }\n\n if (this._outlined) {\n this.styleBackgroundColor = '';\n\n if (this._color) {\n this.styleBorderColor = this._color;\n }\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsChipsComponent } from './components/chips/chips.component';\nimport { FsChipComponent } from './components/chip/chip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n FsLabelModule\n ],\n exports: [\n FsChipsComponent,\n FsChipComponent,\n ],\n declarations: [\n FsChipsComponent,\n FsChipComponent,\n ]\n})\nexport class FsChipModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: FsChipModule\n };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firestitch-chip.js","sources":["ng://@firestitch/chip/app/services/chips.service.ts","ng://@firestitch/chip/app/components/chips/chips.component.ts","ng://@firestitch/chip/app/components/chip/chip.component.ts","ng://@firestitch/chip/app/fs-chip.module.ts"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n\n@Injectable()\nexport class FsChipsService implements OnDestroy {\n\n public chips = [];\n\n private _chipItemsChanged$ = new Subject();\n private _selectionChanged$ = new Subject();\n private _destroy$ = new Subject<void>();\n\n constructor() {}\n\n get selectionChanged$() {\n return this._selectionChanged$.\n pipe(\n takeUntil(this._destroy$),\n );\n }\n\n get chipItemsChanged$() {\n return this._chipItemsChanged$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(50),\n )\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public selectionChanged(selected: boolean, value: any) {\n this._selectionChanged$.next({\n selected: selected,\n value: value,\n })\n }\n\n public register(chip) {\n this.chips.push(chip);\n this._chipItemsChanged$.next();\n }\n\n public destroy(chip) {\n const index = this.chips.indexOf(chip);\n\n if (index > -1) {\n this.chips.splice(index, 1);\n this._chipItemsChanged$.next();\n }\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { find } from 'lodash-es';\n\nimport { FsChipsService } from '../../services/chips.service';\n\n@Component({\n selector: 'fs-chips',\n templateUrl: 'chips.component.html',\n styleUrls: ['chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsChipsComponent),\n multi: true,\n },\n FsChipsService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipsComponent implements OnDestroy, ControlValueAccessor {\n\n @HostBinding('class.fs-chips') classFsChips = true;\n @HostBinding('class.has-chips') classHasChips = false;\n\n @Input()\n public compare;\n\n @Input() multiple = true;\n\n public onChange: any = () => {};\n public onTouch: any = () => {};\n\n private _value = [];\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _chipsService: FsChipsService,\n ) {\n this.subscribeToItemsChange();\n this.subscribeToSelectionChange();\n }\n\n get chips() {\n return this._chipsService.chips;\n }\n\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public writeValue(value: any) {\n if (value !== this.value) {\n this._value = value;\n }\n\n this.updateChips();\n }\n\n public registerOnChange(fn) { this.onChange = fn; }\n public registerOnTouched(fn) { this.onTouch = fn; }\n\n /**\n * Update ngModel value when selection changed\n */\n private subscribeToSelectionChange() {\n this._chipsService.selectionChanged$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(({ selected, value }) => {\n if (!selected) {\n const valueIndex = this.value.findIndex((item) => {\n return this.compareFn(item, value);\n });\n\n if (valueIndex > -1) {\n this.value.splice(valueIndex, 1);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n } else {\n this.value.push(value);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n });\n }\n\n /**\n * Update selection if item was added or removed\n */\n private subscribeToItemsChange() {\n this._chipsService.chipItemsChanged$\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.classHasChips = !!this._chipsService.chips.length;\n this.updateChips();\n })\n }\n\n private compareFn(o1, o2) {\n if (this.compare) {\n return this.compare(o1, o2);\n }\n return o1 === o2;\n }\n\n private updateChips() {\n if (this.multiple && Array.isArray(this.value) && this.chips) {\n this.chips.forEach((chip) => {\n\n chip.selected = find(this.value, (o) => {\n return this.compareFn(o, chip.value);\n }) !== undefined;\n });\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { FsChipsService } from '../../services/chips.service';\n\n\n@Component({\n selector: 'fs-chip',\n templateUrl: 'chip.component.html',\n styleUrls: ['chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipComponent implements OnInit, OnDestroy {\n\n @HostBinding('class.fs-chip') fsChip = true;\n @HostBinding('class.outlined') _outlined = false;\n @HostBinding('class.selectable') _selectable = false;\n @HostBinding('class.imaged') _image = false;\n @HostBinding('class.selected') _selected = false;\n @HostBinding('class.removable') _removable = false;\n @HostBinding('style.backgroundColor') styleBackgroundColor = '';\n @HostBinding('style.color') styleColor = '';\n @HostBinding('style.borderColor') styleBorderColor = '';\n\n @HostBinding('class.small') classSmall = false;\n @HostBinding('class.tiny') classTiny = false;\n @HostBinding('class.micro') classMicro = false;\n\n @Input('size') set setSize(value) {\n this._size = value;\n this.classSmall = value === 'small';\n this.classTiny = value === 'tiny';\n this.classMicro = value === 'micro';\n };\n\n @HostListener('click')\n public click() {\n\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedToggled.emit({ value: this.value, selected: this.selected });\n\n if (this._chips) {\n this._chips.selectionChanged(this.selected, this.value);\n }\n }\n }\n\n @Input() public value = null;\n\n @Input() set backgroundColor(value) {\n this._backgroundColor = value;\n this.updateStyles();\n };\n\n @Input() set borderColor(value) {\n this.styleBorderColor = value;\n this.updateStyles();\n }\n @Input() set color(value) {\n this._color = value;\n this.updateStyles();\n }\n\n get color() {\n return this._color;\n }\n\n @Input() set outlined(value) {\n this._outlined = value;\n this.updateStyles();\n };\n\n get outlined() {\n return this._outlined;\n }\n\n @Input() set removable(value) {\n this._removable = value;\n\n this._cdRef.markForCheck();\n };\n\n get removable() {\n return this._removable;\n }\n\n @Input() set selectable(value) {\n this._selectable = value;\n };\n\n get selectable() {\n return this._selectable;\n }\n\n @Input() set selected(value) {\n this._selected = value;\n\n this._cdRef.markForCheck();\n };\n\n get selected() {\n return this._selected;\n }\n\n @Input() set image(value) {\n this._image = value;\n\n this._cdRef.markForCheck();\n };\n\n get image() {\n return this._image;\n }\n\n @Output() public selectedToggled = new EventEmitter();\n @Output() public removed = new EventEmitter();\n\n public $destroy = new Subject();\n\n private _backgroundColor = '';\n private _color = '';\n private _size;\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n @Optional() private _chips: FsChipsService\n ) {}\n\n public ngOnInit() {\n if (this._chips) {\n this._chips.register(this);\n }\n }\n\n public ngOnDestroy() {\n if (this._chips) {\n this._chips.destroy(this);\n }\n\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n public remove(event) {\n this.removed.next(event);\n }\n\n private isContrastYIQBlack(hexcolor) {\n if (!hexcolor) {\n return true;\n }\n\n hexcolor = hexcolor.replace('#', '');\n const r = parseInt(hexcolor.substr(0, 2), 16);\n const g = parseInt(hexcolor.substr(2, 2), 16);\n const b = parseInt(hexcolor.substr(4, 2), 16);\n const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n return yiq >= 200;\n }\n\n private updateStyles() {\n this.styleBackgroundColor = this._backgroundColor;\n\n if (this._color) {\n this.styleColor = this._color;\n } else if (!this._outlined) {\n this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';\n }\n\n if (this._outlined) {\n this.styleBackgroundColor = '';\n\n if (this._color) {\n this.styleBorderColor = this._color;\n }\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsChipsComponent } from './components/chips/chips.component';\nimport { FsChipComponent } from './components/chip/chip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n FsLabelModule\n ],\n exports: [\n FsChipsComponent,\n FsChipComponent,\n ],\n declarations: [\n FsChipsComponent,\n FsChipComponent,\n ]\n})\nexport class FsChipModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: FsChipModule\n };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -422,6 +422,7 @@ var FsChipComponent = /** @class */ (function () {
422
422
  this.styleBorderColor = '';
423
423
  this.classSmall = false;
424
424
  this.classTiny = false;
425
+ this.classMicro = false;
425
426
  this.value = null;
426
427
  this.selectedToggled = new EventEmitter();
427
428
  this.removed = new EventEmitter();
@@ -438,6 +439,7 @@ var FsChipComponent = /** @class */ (function () {
438
439
  this._size = value;
439
440
  this.classSmall = value === 'small';
440
441
  this.classTiny = value === 'tiny';
442
+ this.classMicro = value === 'micro';
441
443
  },
442
444
  enumerable: true,
443
445
  configurable: true
@@ -704,6 +706,7 @@ var FsChipComponent = /** @class */ (function () {
704
706
  styleBorderColor: [{ type: HostBinding, args: ['style.borderColor',] }],
705
707
  classSmall: [{ type: HostBinding, args: ['class.small',] }],
706
708
  classTiny: [{ type: HostBinding, args: ['class.tiny',] }],
709
+ classMicro: [{ type: HostBinding, args: ['class.micro',] }],
707
710
  setSize: [{ type: Input, args: ['size',] }],
708
711
  click: [{ type: HostListener, args: ['click',] }],
709
712
  value: [{ type: Input }],
@@ -744,6 +747,8 @@ if (false) {
744
747
  /** @type {?} */
745
748
  FsChipComponent.prototype.classTiny;
746
749
  /** @type {?} */
750
+ FsChipComponent.prototype.classMicro;
751
+ /** @type {?} */
747
752
  FsChipComponent.prototype.value;
748
753
  /** @type {?} */
749
754
  FsChipComponent.prototype.selectedToggled;
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-chip.js","sources":["ng://@firestitch/chip/app/services/chips.service.ts","ng://@firestitch/chip/app/components/chips/chips.component.ts","ng://@firestitch/chip/app/components/chip/chip.component.ts","ng://@firestitch/chip/app/fs-chip.module.ts"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n\n@Injectable()\nexport class FsChipsService implements OnDestroy {\n\n public chips = [];\n\n private _chipItemsChanged$ = new Subject();\n private _selectionChanged$ = new Subject();\n private _destroy$ = new Subject<void>();\n\n constructor() {}\n\n get selectionChanged$() {\n return this._selectionChanged$.\n pipe(\n takeUntil(this._destroy$),\n );\n }\n\n get chipItemsChanged$() {\n return this._chipItemsChanged$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(50),\n )\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public selectionChanged(selected: boolean, value: any) {\n this._selectionChanged$.next({\n selected: selected,\n value: value,\n })\n }\n\n public register(chip) {\n this.chips.push(chip);\n this._chipItemsChanged$.next();\n }\n\n public destroy(chip) {\n const index = this.chips.indexOf(chip);\n\n if (index > -1) {\n this.chips.splice(index, 1);\n this._chipItemsChanged$.next();\n }\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { find } from 'lodash-es';\n\nimport { FsChipsService } from '../../services/chips.service';\n\n@Component({\n selector: 'fs-chips',\n templateUrl: 'chips.component.html',\n styleUrls: ['chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsChipsComponent),\n multi: true,\n },\n FsChipsService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipsComponent implements OnDestroy, ControlValueAccessor {\n\n @HostBinding('class.fs-chips') classFsChips = true;\n @HostBinding('class.has-chips') classHasChips = false;\n\n @Input()\n public compare;\n\n @Input() multiple = true;\n\n public onChange: any = () => {};\n public onTouch: any = () => {};\n\n private _value = [];\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _chipsService: FsChipsService,\n ) {\n this.subscribeToItemsChange();\n this.subscribeToSelectionChange();\n }\n\n get chips() {\n return this._chipsService.chips;\n }\n\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public writeValue(value: any) {\n if (value !== this.value) {\n this._value = value;\n }\n\n this.updateChips();\n }\n\n public registerOnChange(fn) { this.onChange = fn; }\n public registerOnTouched(fn) { this.onTouch = fn; }\n\n /**\n * Update ngModel value when selection changed\n */\n private subscribeToSelectionChange() {\n this._chipsService.selectionChanged$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(({ selected, value }) => {\n if (!selected) {\n const valueIndex = this.value.findIndex((item) => {\n return this.compareFn(item, value);\n });\n\n if (valueIndex > -1) {\n this.value.splice(valueIndex, 1);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n } else {\n this.value.push(value);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n });\n }\n\n /**\n * Update selection if item was added or removed\n */\n private subscribeToItemsChange() {\n this._chipsService.chipItemsChanged$\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.classHasChips = !!this._chipsService.chips.length;\n this.updateChips();\n })\n }\n\n private compareFn(o1, o2) {\n if (this.compare) {\n return this.compare(o1, o2);\n }\n return o1 === o2;\n }\n\n private updateChips() {\n if (this.multiple && Array.isArray(this.value) && this.chips) {\n this.chips.forEach((chip) => {\n\n chip.selected = find(this.value, (o) => {\n return this.compareFn(o, chip.value);\n }) !== undefined;\n });\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { FsChipsService } from '../../services/chips.service';\n\n\n@Component({\n selector: 'fs-chip',\n templateUrl: 'chip.component.html',\n styleUrls: ['chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipComponent implements OnInit, OnDestroy {\n\n @HostBinding('class.fs-chip') fsChip = true;\n @HostBinding('class.outlined') _outlined = false;\n @HostBinding('class.selectable') _selectable = false;\n @HostBinding('class.imaged') _image = false;\n @HostBinding('class.selected') _selected = false;\n @HostBinding('class.removable') _removable = false;\n @HostBinding('style.backgroundColor') styleBackgroundColor = '';\n @HostBinding('style.color') styleColor = '';\n @HostBinding('style.borderColor') styleBorderColor = '';\n\n @HostBinding('class.small') classSmall = false;\n @HostBinding('class.tiny') classTiny = false;\n\n @Input('size') set setSize(value) {\n this._size = value;\n this.classSmall = value === 'small';\n this.classTiny = value === 'tiny';\n };\n\n @HostListener('click')\n public click() {\n\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedToggled.emit({ value: this.value, selected: this.selected });\n\n if (this._chips) {\n this._chips.selectionChanged(this.selected, this.value);\n }\n }\n }\n\n @Input() public value = null;\n\n @Input() set backgroundColor(value) {\n this._backgroundColor = value;\n this.updateStyles();\n };\n\n @Input() set borderColor(value) {\n this.styleBorderColor = value;\n this.updateStyles();\n }\n @Input() set color(value) {\n this._color = value;\n this.updateStyles();\n }\n\n get color() {\n return this._color;\n }\n\n @Input() set outlined(value) {\n this._outlined = value;\n this.updateStyles();\n };\n\n get outlined() {\n return this._outlined;\n }\n\n @Input() set removable(value) {\n this._removable = value;\n\n this._cdRef.markForCheck();\n };\n\n get removable() {\n return this._removable;\n }\n\n @Input() set selectable(value) {\n this._selectable = value;\n };\n\n get selectable() {\n return this._selectable;\n }\n\n @Input() set selected(value) {\n this._selected = value;\n\n this._cdRef.markForCheck();\n };\n\n get selected() {\n return this._selected;\n }\n\n @Input() set image(value) {\n this._image = value;\n\n this._cdRef.markForCheck();\n };\n\n get image() {\n return this._image;\n }\n\n @Output() public selectedToggled = new EventEmitter();\n @Output() public removed = new EventEmitter();\n\n public $destroy = new Subject();\n\n private _backgroundColor = '';\n private _color = '';\n private _size;\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n @Optional() private _chips: FsChipsService\n ) {}\n\n public ngOnInit() {\n if (this._chips) {\n this._chips.register(this);\n }\n }\n\n public ngOnDestroy() {\n if (this._chips) {\n this._chips.destroy(this);\n }\n\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n public remove(event) {\n this.removed.next(event);\n }\n\n private isContrastYIQBlack(hexcolor) {\n if (!hexcolor) {\n return true;\n }\n\n hexcolor = hexcolor.replace('#', '');\n const r = parseInt(hexcolor.substr(0, 2), 16);\n const g = parseInt(hexcolor.substr(2, 2), 16);\n const b = parseInt(hexcolor.substr(4, 2), 16);\n const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n return yiq >= 200;\n }\n\n private updateStyles() {\n this.styleBackgroundColor = this._backgroundColor;\n\n if (this._color) {\n this.styleColor = this._color;\n } else if (!this._outlined) {\n this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';\n }\n\n if (this._outlined) {\n this.styleBackgroundColor = '';\n\n if (this._color) {\n this.styleBorderColor = this._color;\n }\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsChipsComponent } from './components/chips/chips.component';\nimport { FsChipComponent } from './components/chip/chip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n FsLabelModule\n ],\n exports: [\n FsChipsComponent,\n FsChipComponent,\n ],\n declarations: [\n FsChipsComponent,\n FsChipComponent,\n ]\n})\nexport class FsChipModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: FsChipModule\n };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firestitch-chip.js","sources":["ng://@firestitch/chip/app/services/chips.service.ts","ng://@firestitch/chip/app/components/chips/chips.component.ts","ng://@firestitch/chip/app/components/chip/chip.component.ts","ng://@firestitch/chip/app/fs-chip.module.ts"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n\n@Injectable()\nexport class FsChipsService implements OnDestroy {\n\n public chips = [];\n\n private _chipItemsChanged$ = new Subject();\n private _selectionChanged$ = new Subject();\n private _destroy$ = new Subject<void>();\n\n constructor() {}\n\n get selectionChanged$() {\n return this._selectionChanged$.\n pipe(\n takeUntil(this._destroy$),\n );\n }\n\n get chipItemsChanged$() {\n return this._chipItemsChanged$\n .pipe(\n takeUntil(this._destroy$),\n debounceTime(50),\n )\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public selectionChanged(selected: boolean, value: any) {\n this._selectionChanged$.next({\n selected: selected,\n value: value,\n })\n }\n\n public register(chip) {\n this.chips.push(chip);\n this._chipItemsChanged$.next();\n }\n\n public destroy(chip) {\n const index = this.chips.indexOf(chip);\n\n if (index > -1) {\n this.chips.splice(index, 1);\n this._chipItemsChanged$.next();\n }\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { find } from 'lodash-es';\n\nimport { FsChipsService } from '../../services/chips.service';\n\n@Component({\n selector: 'fs-chips',\n templateUrl: 'chips.component.html',\n styleUrls: ['chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsChipsComponent),\n multi: true,\n },\n FsChipsService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipsComponent implements OnDestroy, ControlValueAccessor {\n\n @HostBinding('class.fs-chips') classFsChips = true;\n @HostBinding('class.has-chips') classHasChips = false;\n\n @Input()\n public compare;\n\n @Input() multiple = true;\n\n public onChange: any = () => {};\n public onTouch: any = () => {};\n\n private _value = [];\n private _destroy$ = new Subject();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _chipsService: FsChipsService,\n ) {\n this.subscribeToItemsChange();\n this.subscribeToSelectionChange();\n }\n\n get chips() {\n return this._chipsService.chips;\n }\n\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public writeValue(value: any) {\n if (value !== this.value) {\n this._value = value;\n }\n\n this.updateChips();\n }\n\n public registerOnChange(fn) { this.onChange = fn; }\n public registerOnTouched(fn) { this.onTouch = fn; }\n\n /**\n * Update ngModel value when selection changed\n */\n private subscribeToSelectionChange() {\n this._chipsService.selectionChanged$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(({ selected, value }) => {\n if (!selected) {\n const valueIndex = this.value.findIndex((item) => {\n return this.compareFn(item, value);\n });\n\n if (valueIndex > -1) {\n this.value.splice(valueIndex, 1);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n } else {\n this.value.push(value);\n\n this.onChange(this._value);\n this.onTouch(this._value);\n }\n });\n }\n\n /**\n * Update selection if item was added or removed\n */\n private subscribeToItemsChange() {\n this._chipsService.chipItemsChanged$\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.classHasChips = !!this._chipsService.chips.length;\n this.updateChips();\n })\n }\n\n private compareFn(o1, o2) {\n if (this.compare) {\n return this.compare(o1, o2);\n }\n return o1 === o2;\n }\n\n private updateChips() {\n if (this.multiple && Array.isArray(this.value) && this.chips) {\n this.chips.forEach((chip) => {\n\n chip.selected = find(this.value, (o) => {\n return this.compareFn(o, chip.value);\n }) !== undefined;\n });\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { FsChipsService } from '../../services/chips.service';\n\n\n@Component({\n selector: 'fs-chip',\n templateUrl: 'chip.component.html',\n styleUrls: ['chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsChipComponent implements OnInit, OnDestroy {\n\n @HostBinding('class.fs-chip') fsChip = true;\n @HostBinding('class.outlined') _outlined = false;\n @HostBinding('class.selectable') _selectable = false;\n @HostBinding('class.imaged') _image = false;\n @HostBinding('class.selected') _selected = false;\n @HostBinding('class.removable') _removable = false;\n @HostBinding('style.backgroundColor') styleBackgroundColor = '';\n @HostBinding('style.color') styleColor = '';\n @HostBinding('style.borderColor') styleBorderColor = '';\n\n @HostBinding('class.small') classSmall = false;\n @HostBinding('class.tiny') classTiny = false;\n @HostBinding('class.micro') classMicro = false;\n\n @Input('size') set setSize(value) {\n this._size = value;\n this.classSmall = value === 'small';\n this.classTiny = value === 'tiny';\n this.classMicro = value === 'micro';\n };\n\n @HostListener('click')\n public click() {\n\n if (this.selectable) {\n this.selected = !this.selected;\n this.selectedToggled.emit({ value: this.value, selected: this.selected });\n\n if (this._chips) {\n this._chips.selectionChanged(this.selected, this.value);\n }\n }\n }\n\n @Input() public value = null;\n\n @Input() set backgroundColor(value) {\n this._backgroundColor = value;\n this.updateStyles();\n };\n\n @Input() set borderColor(value) {\n this.styleBorderColor = value;\n this.updateStyles();\n }\n @Input() set color(value) {\n this._color = value;\n this.updateStyles();\n }\n\n get color() {\n return this._color;\n }\n\n @Input() set outlined(value) {\n this._outlined = value;\n this.updateStyles();\n };\n\n get outlined() {\n return this._outlined;\n }\n\n @Input() set removable(value) {\n this._removable = value;\n\n this._cdRef.markForCheck();\n };\n\n get removable() {\n return this._removable;\n }\n\n @Input() set selectable(value) {\n this._selectable = value;\n };\n\n get selectable() {\n return this._selectable;\n }\n\n @Input() set selected(value) {\n this._selected = value;\n\n this._cdRef.markForCheck();\n };\n\n get selected() {\n return this._selected;\n }\n\n @Input() set image(value) {\n this._image = value;\n\n this._cdRef.markForCheck();\n };\n\n get image() {\n return this._image;\n }\n\n @Output() public selectedToggled = new EventEmitter();\n @Output() public removed = new EventEmitter();\n\n public $destroy = new Subject();\n\n private _backgroundColor = '';\n private _color = '';\n private _size;\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n @Optional() private _chips: FsChipsService\n ) {}\n\n public ngOnInit() {\n if (this._chips) {\n this._chips.register(this);\n }\n }\n\n public ngOnDestroy() {\n if (this._chips) {\n this._chips.destroy(this);\n }\n\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n public remove(event) {\n this.removed.next(event);\n }\n\n private isContrastYIQBlack(hexcolor) {\n if (!hexcolor) {\n return true;\n }\n\n hexcolor = hexcolor.replace('#', '');\n const r = parseInt(hexcolor.substr(0, 2), 16);\n const g = parseInt(hexcolor.substr(2, 2), 16);\n const b = parseInt(hexcolor.substr(4, 2), 16);\n const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n return yiq >= 200;\n }\n\n private updateStyles() {\n this.styleBackgroundColor = this._backgroundColor;\n\n if (this._color) {\n this.styleColor = this._color;\n } else if (!this._outlined) {\n this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';\n }\n\n if (this._outlined) {\n this.styleBackgroundColor = '';\n\n if (this._color) {\n this.styleBorderColor = this._color;\n }\n }\n\n this._cdRef.markForCheck();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsChipsComponent } from './components/chips/chips.component';\nimport { FsChipComponent } from './components/chip/chip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n FsLabelModule\n ],\n exports: [\n FsChipsComponent,\n FsChipComponent,\n ],\n declarations: [\n FsChipsComponent,\n FsChipComponent,\n ]\n})\nexport class FsChipModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: FsChipModule\n };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"FsChipModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":12,"character":4},{"__symbolic":"reference","module":"@firestitch/label","name":"FsLabelModule","line":13,"character":4}],"exports":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}],"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"FsChipModule"}}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"fs-chips","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":23,"character":15},"useExisting":{"__symbolic":"reference","name":"ɵa"},"multi":true},{"__symbolic":"reference","name":"ɵb"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":29,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\n","styles":[""]}]}],"members":{"classFsChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":33,"character":3},"arguments":["class.fs-chips"]}]}],"classHasChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":34,"character":3},"arguments":["class.has-chips"]}]}],"compare":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":48,"character":20},{"__symbolic":"reference","name":"ɵb"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"subscribeToSelectionChange":[{"__symbolic":"method"}],"subscribeToItemsChange":[{"__symbolic":"method"}],"compareFn":[{"__symbolic":"method"}],"updateChips":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnDestroy":[{"__symbolic":"method"}],"selectionChanged":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"fs-chip","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":21,"character":19},"member":"OnPush"},"template":"<img *ngIf=\"image\" [src]=\"image\" class=\"image\" alt=\"\">\n<div class=\"fs-chip-content\">\n <ng-content></ng-content>\n</div>\n<div class=\"selected-check\" *ngIf=\"selected\">\n <mat-icon [style.color]=\"styleColor\">check</mat-icon>\n</div>\n<a *ngIf=\"removable\" class=\"remove\" (click)=\"remove($event)\">\n <mat-icon [style.color]=\"styleColor\">cancel</mat-icon>\n</a>\n","styles":[""]}]}],"members":{"fsChip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":25,"character":3},"arguments":["class.fs-chip"]}]}],"_outlined":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":26,"character":3},"arguments":["class.outlined"]}]}],"_selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":27,"character":3},"arguments":["class.selectable"]}]}],"_image":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":28,"character":3},"arguments":["class.imaged"]}]}],"_selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":29,"character":3},"arguments":["class.selected"]}]}],"_removable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":30,"character":3},"arguments":["class.removable"]}]}],"styleBackgroundColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":31,"character":3},"arguments":["style.backgroundColor"]}]}],"styleColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":32,"character":3},"arguments":["style.color"]}]}],"styleBorderColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":33,"character":3},"arguments":["style.borderColor"]}]}],"classSmall":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":35,"character":3},"arguments":["class.small"]}]}],"classTiny":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":36,"character":3},"arguments":["class.tiny"]}]}],"setSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3},"arguments":["size"]}]}],"click":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":44,"character":3},"arguments":["click"]}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"backgroundColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"borderColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"outlined":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"removable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3}}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"image":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":114,"character":3}}]}],"selectedToggled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":124,"character":3}}]}],"removed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":125,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":135,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":134,"character":20},{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"isContrastYIQBlack":[{"__symbolic":"method"}],"updateStyles":[{"__symbolic":"method"}]}}},"origins":{"FsChipModule":"./app/fs-chip.module","ɵa":"./app/components/chips/chips.component","ɵb":"./app/services/chips.service","ɵc":"./app/components/chip/chip.component"},"importAs":"@firestitch/chip"}
1
+ {"__symbolic":"module","version":4,"metadata":{"FsChipModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":12,"character":4},{"__symbolic":"reference","module":"@firestitch/label","name":"FsLabelModule","line":13,"character":4}],"exports":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}],"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"FsChipModule"}}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"fs-chips","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":23,"character":15},"useExisting":{"__symbolic":"reference","name":"ɵa"},"multi":true},{"__symbolic":"reference","name":"ɵb"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":29,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\n","styles":[""]}]}],"members":{"classFsChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":33,"character":3},"arguments":["class.fs-chips"]}]}],"classHasChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":34,"character":3},"arguments":["class.has-chips"]}]}],"compare":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":48,"character":20},{"__symbolic":"reference","name":"ɵb"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"subscribeToSelectionChange":[{"__symbolic":"method"}],"subscribeToItemsChange":[{"__symbolic":"method"}],"compareFn":[{"__symbolic":"method"}],"updateChips":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnDestroy":[{"__symbolic":"method"}],"selectionChanged":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"fs-chip","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":21,"character":19},"member":"OnPush"},"template":"<img *ngIf=\"image\" [src]=\"image\" class=\"image\" alt=\"\">\n<div class=\"fs-chip-content\">\n <ng-content></ng-content>\n</div>\n<div class=\"selected-check\" *ngIf=\"selected\">\n <mat-icon [style.color]=\"styleColor\">check</mat-icon>\n</div>\n<a *ngIf=\"removable\" class=\"remove\" (click)=\"remove($event)\">\n <mat-icon [style.color]=\"styleColor\">cancel</mat-icon>\n</a>\n","styles":[""]}]}],"members":{"fsChip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":25,"character":3},"arguments":["class.fs-chip"]}]}],"_outlined":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":26,"character":3},"arguments":["class.outlined"]}]}],"_selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":27,"character":3},"arguments":["class.selectable"]}]}],"_image":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":28,"character":3},"arguments":["class.imaged"]}]}],"_selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":29,"character":3},"arguments":["class.selected"]}]}],"_removable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":30,"character":3},"arguments":["class.removable"]}]}],"styleBackgroundColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":31,"character":3},"arguments":["style.backgroundColor"]}]}],"styleColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":32,"character":3},"arguments":["style.color"]}]}],"styleBorderColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":33,"character":3},"arguments":["style.borderColor"]}]}],"classSmall":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":35,"character":3},"arguments":["class.small"]}]}],"classTiny":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":36,"character":3},"arguments":["class.tiny"]}]}],"classMicro":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":37,"character":3},"arguments":["class.micro"]}]}],"setSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3},"arguments":["size"]}]}],"click":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":46,"character":3},"arguments":["click"]}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"backgroundColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"borderColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"outlined":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3}}]}],"removable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":3}}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":98,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":106,"character":3}}]}],"image":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":116,"character":3}}]}],"selectedToggled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":126,"character":3}}]}],"removed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":127,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":137,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":136,"character":20},{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"isContrastYIQBlack":[{"__symbolic":"method"}],"updateStyles":[{"__symbolic":"method"}]}}},"origins":{"FsChipModule":"./app/fs-chip.module","ɵa":"./app/components/chips/chips.component","ɵb":"./app/services/chips.service","ɵc":"./app/components/chip/chip.component"},"importAs":"@firestitch/chip"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestitch/chip",
3
- "version": "8.1.8",
3
+ "version": "8.1.9",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Firestitch/ngx-chip"
package/styles.scss CHANGED
@@ -136,6 +136,43 @@
136
136
  }
137
137
  }
138
138
 
139
+ &.micro {
140
+ padding: 0 5px;
141
+ height: 16px;
142
+ line-height: normal;
143
+
144
+ .fs-chip-content {
145
+ font-size: 65%;
146
+ }
147
+
148
+ .image {
149
+ height: 100%;
150
+ width: 16px;
151
+ margin-right: 2px;
152
+ }
153
+
154
+ .remove {
155
+ margin-left: 1px;
156
+ }
157
+
158
+ .selected-check {
159
+ margin: 0 1px 0 0;
160
+ }
161
+
162
+ &.imaged {
163
+ padding-left: 0;
164
+ }
165
+
166
+ &.removable,
167
+ &.selected {
168
+ padding-right: 0px;
169
+ }
170
+
171
+ mat-icon {
172
+ transform: scale(.65);
173
+ width: 20px;
174
+ }
175
+ }
139
176
  }
140
177
 
141
178
  .fs-chips {