{"version":3,"file":"firestitch-toggle.mjs","sources":["../../src/app/components/container/container.component.ts","../../src/app/components/options/option.component.ts","../../src/app/components/toggle/toggle.component.ts","../../src/app/fs-toggle.module.ts","../../src/public_api.ts","../../src/firestitch-toggle.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n\n@Component({\n  selector: 'fs-toggle-container',\n  template: '<ng-content></ng-content>',\n  styleUrls: ['./container.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsToggleContainerComponent {\n  constructor() {\n  }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n\n@Component({\n  selector: 'fs-toggle-option',\n  template: `\n    <div fxLayoutAlign=\"start center\" class=\"fs-toggle-option\" (click)=\"click()\"\n         [ngClass]=\"{ selected: selected }\"\n         [ngStyle]=\"style\">\n      <mat-icon *ngIf=\"fsIcon\">{{ fsIcon }}</mat-icon>\n      <span class=\"fs-toggle-option-template\">\n        <ng-content></ng-content>\n      </span>\n    </div>`,\n  styleUrls: ['./option.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsToggleOptionComponent implements OnInit {\n\n  @Input() value;\n  @Input() selected = false;\n  @Input() style = {};\n  @Input() fsWidth;\n  @Input() fsIcon;\n  private subject = new Subject();\n\n  constructor() {\n  }\n\n  public ngOnInit() {\n    if (this.fsWidth) {\n      this.style['width'] = this.fsWidth + 'px';\n    }\n  }\n\n  public click() {\n    this.subject.next(this.value);\n  }\n\n  public subscribe(fn) {\n    this.subject.asObservable().subscribe(fn);\n  }\n}\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  forwardRef,\n  Input,\n  Output,\n  Provider,\n  QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { indexOf } from '@firestitch/common';\n\nimport { FsToggleOptionComponent } from '../options/option.component';\n\n\nexport const TOGGLE_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => FsToggleComponent),\n  multi: true\n};\n\n\n@Component({\n  selector: 'fs-toggle',\n  template: '<ng-content></ng-content>',\n  providers: [TOGGLE_VALUE_ACCESSOR],\n  styleUrls: ['./toggle.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsToggleComponent implements AfterContentInit, ControlValueAccessor {\n\n  @Input() fsMultiple = false;\n  @Output() change = new EventEmitter();\n\n  private _model: object[] | object = null;\n  private registeredFsToggleOptionComponents = [];\n\n  @ContentChildren(FsToggleOptionComponent, { descendants: true }) options: QueryList<FsToggleOptionComponent>;\n\n  _onTouched = () => {\n  };\n  _onChange = (value: any) => {\n  };\n  onFocused = (event: any) => {\n  };\n\n  registerOnChange(fn: (value: any) => any): void {\n    this._onChange = fn\n  }\n\n  registerOnTouched(fn: () => any): void {\n    this._onTouched = fn\n  }\n\n  constructor() {\n  }\n\n  ngAfterContentInit() {\n    this.registerFsToggleOptionComponents();\n    this.options.changes.subscribe(() => {\n      this.registerFsToggleOptionComponents();\n    });\n  }\n\n  private registerFsToggleOptionComponents() {\n    this.options.forEach(component => {\n      if (this.registeredFsToggleOptionComponents.indexOf(component) < 0) {\n        this.registeredFsToggleOptionComponents.push(component);\n        component.subscribe((value) => {\n          this.setValue(component, value);\n        })\n      }\n    });\n  }\n\n  private setValue(component, value) {\n\n    if (this.fsMultiple) {\n\n      const index = indexOf(this._model, component.value);\n      component.selected = index < 0;\n\n      if (index >= 0) {\n        (<object[]>this._model).splice(index, 1);\n      } else {\n        (<object[]>this._model).push(value);\n      }\n\n    } else {\n\n      this.options.forEach(item => {\n        item.selected = false;\n      });\n\n      component.selected = true;\n      this._model = value;\n    }\n\n    this._onChange(this._model);\n    this.change.emit(this._model);\n  }\n\n  writeValue(value): void {\n\n    if (value) {\n      this._model = value;\n    } else {\n      this._model = this.fsMultiple ? [] : null;\n    }\n\n    if (this.options) {\n      this.options.forEach(component => {\n\n        if (this.fsMultiple) {\n          component.selected = indexOf(this._model, component.value) >= 0;\n        } else {\n          component.selected = this._model === component.value;\n        }\n      });\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FsCommonModule } from '@firestitch/common';\n\nimport { FsToggleContainerComponent } from './components/container/container.component';\nimport { FsToggleComponent } from './components/toggle/toggle.component';\nimport { FsToggleOptionComponent } from './components/options/option.component';\n\n\n@NgModule({\n    declarations: [\n      FsToggleContainerComponent,\n      FsToggleComponent,\n      FsToggleOptionComponent\n    ],\n    imports: [\n      CommonModule,\n      MatIconModule,\n      FsCommonModule\n    ],\n    providers: [\n    ],\n    exports: [\n      FsToggleContainerComponent,\n      FsToggleComponent,\n      FsToggleOptionComponent\n    ]\n})\nexport class FsToggleModule {\n  /*static forRoot(): ModuleWithProviders {\n    return {\n      ngModule: FsToggleModule,\n      providers: []\n    };\n  }*/\n}\n","/*\n * Public API Surface of fs-menu\n */\n\n// Modules\nexport { FsToggleModule } from './app/fs-toggle.module';\n\nexport { FsToggleContainerComponent } from './app/components/container/container.component';\nexport { FsToggleComponent } from './app/components/toggle/toggle.component';\nexport { FsToggleOptionComponent } from './app/components/options/option.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}