@firestitch/chip 8.1.7 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/chip/chip.component.d.ts +51 -41
- package/app/components/chips/chips.component.d.ts +36 -32
- package/app/fs-chip.module.d.ts +13 -4
- package/app/services/chips.service.d.ts +17 -14
- package/bundles/firestitch-chip.umd.js +516 -817
- package/bundles/firestitch-chip.umd.js.map +1 -1
- package/esm2015/app/components/chip/chip.component.js +222 -331
- package/esm2015/app/components/chips/chips.component.js +136 -236
- package/esm2015/app/fs-chip.module.js +44 -39
- package/esm2015/app/services/chips.service.js +47 -93
- package/esm2015/firestitch-chip.js +5 -13
- package/esm2015/public_api.js +7 -10
- package/fesm2015/firestitch-chip.js +425 -684
- package/fesm2015/firestitch-chip.js.map +1 -1
- package/firestitch-chip.d.ts +5 -7
- package/package.json +7 -11
- package/public_api.d.ts +3 -1
- package/styles.scss +39 -2
- package/bundles/firestitch-chip.umd.min.js +0 -2
- package/bundles/firestitch-chip.umd.min.js.map +0 -1
- package/esm5/app/components/chip/chip.component.js +0 -387
- package/esm5/app/components/chips/chips.component.js +0 -287
- package/esm5/app/fs-chip.module.js +0 -46
- package/esm5/app/services/chips.service.js +0 -119
- package/esm5/firestitch-chip.js +0 -13
- package/esm5/public_api.js +0 -10
- package/fesm5/firestitch-chip.js +0 -840
- package/fesm5/firestitch-chip.js.map +0 -1
- package/firestitch-chip.metadata.json +0 -1
|
@@ -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":["../../src/app/services/chips.service.ts","../../src/app/components/chips/chips.component.ts","../../src/app/components/chips/chips.component.html","../../src/app/components/chip/chip.component.ts","../../src/app/components/chip/chip.component.html","../../src/app/fs-chip.module.ts","../../src/public_api.ts","../../src/firestitch-chip.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","<ng-content></ng-content>\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","<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","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<FsChipModule> {\n return {\n ngModule: FsChipModule\n };\n }\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nexport { FsChipModule } from './app/fs-chip.module';\n\n\nexport { FsChipsComponent } from './app/components/chips/chips.component';\nexport { FsChipComponent } from './app/components/chip/chip.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FsChipsService"],"mappings":";;;;;;;;;;;;MAMa,cAAc,CAAA;AAQzB,IAAA,WAAA,GAAA;QANO,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEV,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;KAExB;AAEhB,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,kBAAkB;YAC5B,IAAI,CACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B,CAAC;KACH;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,kBAAkB;AAC3B,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EACzB,YAAY,CAAC,EAAE,CAAC,CACjB,CAAA;KACJ;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAEM,gBAAgB,CAAC,QAAiB,EAAE,KAAU,EAAA;AACnD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,KAAK,EAAE,KAAK;AACb,SAAA,CAAC,CAAA;KACH;AAEM,IAAA,QAAQ,CAAC,IAAI,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAChC;AAEM,IAAA,OAAO,CAAC,IAAI,EAAA;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvC,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAChC,SAAA;KACF;;4GAjDU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;gHAAd,cAAc,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;;MC0BE,gBAAgB,CAAA;IAgB3B,WACU,CAAA,MAAyB,EACzB,aAA6B,EAAA;QAD7B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;QACzB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;QAhBR,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACnB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAK7C,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAElB,QAAA,IAAA,CAAA,QAAQ,GAAQ,MAAK,GAAG,CAAC;AACzB,QAAA,IAAA,CAAA,OAAO,GAAQ,MAAK,GAAG,CAAC;QAEvB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;AACZ,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;QAMhC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACjC;IAED,IAAI,KAAK,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAEpB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,SAAA;KACF;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;AAEM,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,SAAA;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAEM,gBAAgB,CAAC,EAAE,EAAA,EAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAG;IAC7C,iBAAiB,CAAC,EAAE,EAAA,EAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE;AAEnD;;AAEG;IACK,0BAA0B,GAAA;QAChC,IAAI,CAAC,aAAa,CAAC,iBAAiB;AACjC,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;aACA,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAI;YACjC,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;oBAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrC,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;oBACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAEjC,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED;;AAEG;IACK,sBAAsB,GAAA;QAC5B,IAAI,CAAC,aAAa,CAAC,iBAAiB;AACjC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC/B,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;YACvD,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CAAC,CAAA;KACL;IAEO,SAAS,CAAC,EAAE,EAAE,EAAE,EAAA;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7B,SAAA;QACD,OAAO,EAAE,KAAK,EAAE,CAAC;KAClB;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAE1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAI;oBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBACtC,CAAC,KAAK,SAAS,CAAC;AACnB,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAC5B;;8GApHU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAVhB,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;QACD,cAAc;AACf,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BH,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FD8Ba,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,WAAW,EAAE,sBAAsB;oBACnC,SAAS,EAAE,CAAC,sBAAsB,CAAC;AACnC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,sBAAsB,CAAC;AAC/C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;wBACD,cAAc;AACf,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA,CAAA;kIAGgC,YAAY,EAAA,CAAA;sBAA1C,WAAW;uBAAC,gBAAgB,CAAA;gBACG,aAAa,EAAA,CAAA;sBAA5C,WAAW;uBAAC,iBAAiB,CAAA;gBAGvB,OAAO,EAAA,CAAA;sBADb,KAAK;gBAGG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEhBK,eAAe,CAAA;IAgH1B,WACU,CAAA,MAAyB,EACb,MAAsB,EAAA;QADlC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;QACb,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;QAhHd,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACb,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAChB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACxB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACb,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QACjB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACb,IAAoB,CAAA,oBAAA,GAAG,EAAE,CAAC;QACpC,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QACV,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QAE5B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACpB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QACjB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAsB/B,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;AAmEZ,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAEvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAExB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;KAMhB;IAnGJ,IAAmB,OAAO,CAAC,KAAK,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,OAAO,CAAC;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,MAAM,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,OAAO,CAAC;KACrC;;IAGM,KAAK,GAAA;QAEV,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE1E,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,aAAA;AACF,SAAA;KACF;IAID,IAAa,eAAe,CAAC,KAAK,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;;IAED,IAAa,WAAW,CAAC,KAAK,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IACD,IAAa,KAAK,CAAC,KAAK,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAa,QAAQ,CAAC,KAAK,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAa,SAAS,CAAC,KAAK,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAC5B;;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,IAAa,UAAU,CAAC,KAAK,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAED,IAAa,QAAQ,CAAC,KAAK,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAC5B;;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAa,KAAK,CAAC,KAAK,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAC5B;;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAgBM,QAAQ,GAAA;QACb,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAA;KACF;IAEM,WAAW,GAAA;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;AAEM,IAAA,MAAM,CAAC,KAAK,EAAA;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;AAEO,IAAA,kBAAkB,CAAC,QAAQ,EAAA;QACjC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrC,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC;QAEvD,OAAO,GAAG,IAAI,GAAG,CAAC;KACnB;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAElD,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,SAAA;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;AAC3F,SAAA;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAE/B,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;AACrC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAC5B;;6GAxKU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,w2BCvB5B,qYAUA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDaa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,WAAW,EAAE,qBAAqB;oBAClC,SAAS,EAAE,CAAC,qBAAqB,CAAC;oBAClC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA,CAAA;;0BAmHI,QAAQ;4CAhHmB,MAAM,EAAA,CAAA;sBAAnC,WAAW;uBAAC,eAAe,CAAA;gBACG,SAAS,EAAA,CAAA;sBAAvC,WAAW;uBAAC,gBAAgB,CAAA;gBACI,WAAW,EAAA,CAAA;sBAA3C,WAAW;uBAAC,kBAAkB,CAAA;gBACF,MAAM,EAAA,CAAA;sBAAlC,WAAW;uBAAC,cAAc,CAAA;gBACI,SAAS,EAAA,CAAA;sBAAvC,WAAW;uBAAC,gBAAgB,CAAA;gBACG,UAAU,EAAA,CAAA;sBAAzC,WAAW;uBAAC,iBAAiB,CAAA;gBACQ,oBAAoB,EAAA,CAAA;sBAAzD,WAAW;uBAAC,uBAAuB,CAAA;gBACR,UAAU,EAAA,CAAA;sBAArC,WAAW;uBAAC,aAAa,CAAA;gBACQ,gBAAgB,EAAA,CAAA;sBAAjD,WAAW;uBAAC,mBAAmB,CAAA;gBAEJ,UAAU,EAAA,CAAA;sBAArC,WAAW;uBAAC,aAAa,CAAA;gBACC,SAAS,EAAA,CAAA;sBAAnC,WAAW;uBAAC,YAAY,CAAA;gBACG,UAAU,EAAA,CAAA;sBAArC,WAAW;uBAAC,aAAa,CAAA;gBAEP,OAAO,EAAA,CAAA;sBAAzB,KAAK;uBAAC,MAAM,CAAA;gBAQN,KAAK,EAAA,CAAA;sBADX,YAAY;uBAAC,OAAO,CAAA;gBAaL,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAEO,eAAe,EAAA,CAAA;sBAA3B,KAAK;gBAKO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBASO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBASO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAUO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAQO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAUO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAUW,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBACU,OAAO,EAAA,CAAA;sBAAvB,MAAM;;;MEvGI,YAAY,CAAA;AACvB,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;SACvB,CAAC;KACH;;0GALU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBAJrB,gBAAgB;AAChB,QAAA,eAAe,aAVf,YAAY;QACZ,aAAa;AACb,QAAA,aAAa,aAGb,gBAAgB;QAChB,eAAe,CAAA,EAAA,CAAA,CAAA;AAON,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAdd,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,aAAa;YACb,aAAa;AACd,SAAA,CAAA,EAAA,CAAA,CAAA;4FAUU,YAAY,EAAA,UAAA,EAAA,CAAA;kBAfxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;wBAChB,eAAe;AAChB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,eAAe;AAChB,qBAAA;AACF,iBAAA,CAAA;;;ACvBD;;AAEG;;ACFH;;AAEG;;;;"}
|
package/firestitch-chip.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
export { FsChipsComponent as ɵa } from './app/components/chips/chips.component';
|
|
7
|
-
export { FsChipsService as ɵb } from './app/services/chips.service';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
/// <amd-module name="@firestitch/chip" />
|
|
5
|
+
export * from './public_api';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firestitch/chip",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/Firestitch/ngx-chip"
|
|
@@ -16,18 +16,14 @@
|
|
|
16
16
|
"bugs": {
|
|
17
17
|
"url": "https://github.com/Firestitch/ngx-chip/issues"
|
|
18
18
|
},
|
|
19
|
-
"
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"tslib": "^2.0.0"
|
|
21
|
+
},
|
|
20
22
|
"sideEffects": false,
|
|
21
23
|
"main": "bundles/firestitch-chip.umd.js",
|
|
22
|
-
"module": "
|
|
24
|
+
"module": "fesm2015/firestitch-chip.js",
|
|
23
25
|
"es2015": "fesm2015/firestitch-chip.js",
|
|
24
|
-
"esm5": "esm5/firestitch-chip.js",
|
|
25
26
|
"esm2015": "esm2015/firestitch-chip.js",
|
|
26
|
-
"fesm5": "fesm5/firestitch-chip.js",
|
|
27
27
|
"fesm2015": "fesm2015/firestitch-chip.js",
|
|
28
|
-
"typings": "firestitch-chip.d.ts"
|
|
29
|
-
|
|
30
|
-
"dependencies": {
|
|
31
|
-
"tslib": "^1.9.0"
|
|
32
|
-
}
|
|
33
|
-
}
|
|
28
|
+
"typings": "firestitch-chip.d.ts"
|
|
29
|
+
}
|
package/public_api.d.ts
CHANGED
package/styles.scss
CHANGED
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
padding: 0 8px;
|
|
71
71
|
font-size: 85%;
|
|
72
72
|
height: 22px;
|
|
73
|
-
line-height:
|
|
73
|
+
line-height: normal;
|
|
74
74
|
|
|
75
75
|
.image {
|
|
76
76
|
height: 22px;
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
&.tiny {
|
|
103
103
|
padding: 0 6px;
|
|
104
104
|
height: 18px;
|
|
105
|
-
line-height:
|
|
105
|
+
line-height: normal;
|
|
106
106
|
|
|
107
107
|
.fs-chip-content {
|
|
108
108
|
font-size: 75%;
|
|
@@ -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 {
|
|
@@ -1,2 +0,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 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})}));
|
|
2
|
-
//# sourceMappingURL=firestitch-chip.umd.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|