{"version":3,"file":"tangential-input-widgets.mjs","sources":["../../../../projects/tangential/input-widgets/src/lib/checkbox-widget/checkbox-widget.component.ts","../../../../projects/tangential/input-widgets/src/lib/checkbox-widget/checkbox-widget-configure.component.ts","../../../../projects/tangential/input-widgets/src/lib/date-time-widget/date-time-widget.component.ts","../../../../projects/tangential/input-widgets/src/lib/date-time-widget/date-time-widget-configure.component.ts","../../../../projects/tangential/input-widgets/src/lib/number-spinner-widget/number-spinner-widget.component.ts","../../../../projects/tangential/input-widgets/src/lib/duration-picker-widget/duration-picker-dialog.ts","../../../../projects/tangential/input-widgets/src/lib/duration-picker-widget/duration-picker-dialog.html","../../../../projects/tangential/input-widgets/src/lib/duration-picker-widget/duration-picker-state.ts","../../../../projects/tangential/input-widgets/src/lib/duration-picker-widget/duration-picker-widget.component.ts","../../../../projects/tangential/input-widgets/src/lib/duration-picker-widget/duration-picker-widget-configure.component.ts","../../../../projects/tangential/input-widgets/src/lib/icon-rating-widget/icon-rating-widget.component.ts","../../../../projects/tangential/input-widgets/src/lib/icon-rating-widget/icon-rating-widget-configure.component.ts","../../../../projects/tangential/input-widgets/src/lib/number-slider-widget/number-slider-widget.component.ts","../../../../projects/tangential/input-widgets/src/lib/number-slider-widget/number-slider-widget-configure.component.ts","../../../../projects/tangential/input-widgets/src/lib/number-spinner-widget/number-spinner-widget-configure.component.ts","../../../../projects/tangential/input-widgets/src/lib/number-widget/number-widget.component.ts","../../../../projects/tangential/input-widgets/src/lib/number-widget/number-widget-configure.component.ts","../../../../projects/tangential/input-widgets/src/lib/slide-toggle-widget/slide-toggle-widget.component.ts","../../../../projects/tangential/input-widgets/src/lib/slide-toggle-widget/slide-toggle-widget-configure.component.ts","../../../../projects/tangential/input-widgets/src/lib/text-widget/text-widget.component.ts","../../../../projects/tangential/input-widgets/src/lib/text-widget/text-widget-configure.component.ts","../../../../projects/tangential/input-widgets/src/lib/input-widget.module.ts","../../../../projects/tangential/input-widgets/src/public-api.ts","../../../../projects/tangential/input-widgets/src/tangential-input-widgets.ts"],"sourcesContent":["import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_CHECKBOX_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => CheckboxWidgetComponent),\n  multi:       true\n};\n\nexport class CheckboxWidgetChange {\n\n  constructor(public source: CheckboxWidgetComponent, public value: boolean) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-checkbox-widget',\n  template:      `<!-- -->\n  <div flex class=\"tanj-input-template tanj-mode-edit\"\n       [ngClass]=\"{'tanj-disabled': disabled}\"\n       layout=\"row\"\n       layout-align=\"center center\">\n    <span *ngIf=\"!hideLabel && labelPosition == 'before'\"\n          class=\"tanj-label tanj-checkbox-widget-label\">{{label}}</span>\n    <div flex class=\"tanj-widget-input\" layout=\"column\" layout-align=\"start center\">\n      <div *ngIf=\"!onlyLabel\"\n           class=\"tanj-widget-input\"\n           layout=\"column\"\n           layout-align=\"start\">\n        <mat-checkbox flex\n                     [disabled]=\"disabled\"\n                     [(ngModel)]=\"value\"\n                     (change)=\"handleValueChange(value)\">\n        </mat-checkbox>\n      </div>\n      <div *ngIf=\"!hideLabel && labelPosition == 'below'\" class=\"tanj-label tanj-below\">{{label}}</div>\n    </div>\n    <span *ngIf=\"!hideLabel && labelPosition == 'after'\" class=\"tanj-label tanj-checkbox-widget-label\">{{label}}</span>\n  </div>\n                 `,\n  providers:     [TANJ_CHECKBOX_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class CheckboxWidgetComponent implements OnInit, ControlValueAccessor {\n\n  // turn this into a class\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n\n  @Input() value: boolean = false\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n  @Input() hideLabel: boolean = false\n  @Input() onlyLabel: boolean = false\n\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: boolean = false\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  handleValueChange(value: boolean) {\n    if (!this.disabled) {\n      this.value = value\n      this.valueChange.emit(this.value)\n      this.emitChangeEvent()\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  private emitChangeEvent() {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new CheckboxWidgetChange(this, this.value))\n  }\n\n  public writeValue(value: boolean): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n\n\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_CHECKBOX_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => CheckboxWidgetConfigureComponent),\n  multi:       true\n};\n\nexport class CheckboxWidgetConfigureChange {\n  constructor(public source: CheckboxWidgetConfigureComponent, public value: boolean) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-checkbox-widget-configure',\n  template:      `<!-- -->\n  <div class=\"tanj-input-template tanj-mode-configure\" flex layout=\"column\" layout-align=\"start\">\n    <mat-form-field dividerColor=\"accent\">\n      <input matInput class=\"tanj-input\" type=\"text\" maxlength=\"50\" placeholder=\"Enter a label for this input\"\n             (change)=\"emitChangeEvent(false, true)\"\n             [(ngModel)]=\"label\"/>\n    </mat-form-field>\n    <ng-container *ngIf=\"label\">\n      <tanj-checkbox-widget [(value)]=\"defaultValue\"\n                           (valueChange)=\"value = defaultValue; emitChangeEvent(true, false)\"\n                           [defaultValue]=\"defaultValue\"\n                           label=\"Default Value\"\n                           [labelPosition]=\"'before'\">\n\n      </tanj-checkbox-widget>\n    </ng-container>\n  </div>\n                 `,\n  providers:     [TANJ_CHECKBOX_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class CheckboxWidgetConfigureComponent implements OnInit, ControlValueAccessor {\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: boolean = false\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Output() labelChange: EventEmitter<string> = new EventEmitter(false)\n\n  @Input() defaultValue: boolean = false\n  @Output() defaultValueChange: EventEmitter<boolean> = new EventEmitter(false)\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  /**\n   * Called when the spinner is blurred. Needed to properly implement ControlValueAccessor.\n   * @docs-private\n   */\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  emitChangeEvent(value: boolean, label: boolean) {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new CheckboxWidgetConfigureChange(this, this.value))\n    if (value) {\n      this.valueChange.emit(this.value);\n      this.defaultValueChange.emit(this.defaultValue)\n    }\n    if (label) {\n      this.labelChange.emit(this.label)\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: boolean): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, Input, OnChanges, OnInit, Output, SimpleChange, ViewEncapsulation\n} from '@angular/core'\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\nimport moment from 'moment'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_DATE_TIME_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateTimeWidgetComponent), multi: true\n};\n\nexport class DateTimeWidgetChange {\n\n  constructor(public source: DateTimeWidgetComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector: 'tanj-date-time-widget', template: `<!-- -->\n  <div flex class=\"tanj-input-template tanj-mode-edit\"\n       [ngClass]=\"{'tanj-disabled': disabled}\"\n       layout=\"row\"\n       layout-align=\"start center\">\n    <span *ngIf=\"!hideLabel && labelPosition == 'before'\" class=\"tanj-label tanj-before\">{{label}}</span>\n    <div flex class=\"tanj-widget-input\" layout=\"column\" layout-align=\"center start\">\n      <div flex *ngIf=\"!onlyLabel\" class=\"tanj-widget-input\" layout=\"row\" layout-align=\"start\">\n        <mat-form-field flex\n                            class=\"tanj-date-time-input-field tanj-widget-input\"\n                            dividerColor=\"accent\"\n                            layout=\"row\"\n                            layout-align=\"start\">\n          <input flex\n                 matInput\n                 class=\"tanj-input\"\n                 type=\"datetime-local\"\n                 minlength=\"{{minLength}}\"\n                 maxlength=\"{{maxLength}}\"\n                 [disabled]=\"disabled\"\n                 (change)=\"valueChange.emit(value)\"\n                 [(ngModel)]=\"dateInputValue\"/>\n        </mat-form-field>\n      </div>\n      <span *ngIf=\"!hideLabel && labelPosition == 'below'\" class=\"tanj-label tanj-below\">{{label}}</span>\n    </div>\n    <span *ngIf=\"!hideLabel && labelPosition == 'after'\" class=\"tanj-label tanj-after\">{{label}}</span>\n  </div>\n            `, providers: [TANJ_DATE_TIME_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None\n})\nexport class DateTimeWidgetComponent implements ControlValueAccessor, OnChanges, OnInit {\n\n  // turn this into a class\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = Date.now()\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n  @Input() hideLabel: boolean = false\n  @Input() onlyLabel: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultToNow: boolean = false\n  @Input() defaultValue: number = 0\n  @Input() maxLength: number = 100\n  @Input() minLength: number = 0\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n  onTouched: () => any = () => {\n  };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => {\n  };\n\n\n  ngOnInit() {\n    this.value = this.defaultToNow ? Date.now() : this.defaultValue\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  get dateInputValue(): string {\n    return moment(this.value).format('YYYY-MM-DDTHH:mm:ss')\n  }\n\n  set dateInputValue(dateString: string) {\n    this.value = moment(dateString).valueOf()\n  }\n\n  ngOnChanges(changes: { defaultToNow: SimpleChange }) {\n    if (changes.defaultToNow && !this.value) {\n      this.value = this.defaultToNow ? Date.now() : this.defaultValue\n    }\n  }\n\n  handleValueChange(value: number) {\n    if (!this.disabled) {\n      this.value = value\n      this.valueChange.emit(this.value)\n      this.emitChangeEvent()\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  private emitChangeEvent() {\n    const change = new DateTimeWidgetChange(this, this.value)\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(change)\n  }\n\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_DATE_TIME_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => DateTimeWidgetConfigureComponent),\n  multi:       true\n};\n\nexport class DateTimeWidgetConfigureChange {\n  constructor(public source: DateTimeWidgetConfigureComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-date-time-configure',\n  template:      `<!-- -->\n  <div class=\"tanj-input-template tanj-mode-configure\" flex layout=\"column\" layout-align=\"start\">\n    <mat-form-field dividerColor=\"accent\">\n      <input matInput class=\"tanj-input\" type=\"text\" maxlength=\"50\" placeholder=\"Enter a label for this input\"\n             (change)=\"labelChange.emit(label)\"\n             [(ngModel)]=\"label\"/>\n    </mat-form-field>\n    <ng-container *ngIf=\"label\">\n      <mat-slide-toggle class=\"tanj-input\" [labelPosition]=\"'before'\" [(ngModel)]=\"defaultToNow\">Default to current time?\n      </mat-slide-toggle>\n      <tanj-date-time-widget *ngIf=\"!defaultToNow\" [(value)]=\"defaultValue\"\n                            (valueChange)=\"value = defaultValue; emitChangeEvent(true, false)\"\n                            [defaultValue]=\"defaultValue\"\n                            label=\"Default Value\"></tanj-date-time-widget>\n    </ng-container>\n  </div>\n                 `,\n  providers:     [TANJ_DATE_TIME_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class DateTimeWidgetConfigureComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Output() labelChange: EventEmitter<string> = new EventEmitter(false)\n\n  @Input() defaultValue: number = Date.now()\n  @Output() defaultValueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() defaultToNow: boolean = false\n  @Output() defaultToNowChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  /**\n   * Called when the spinner is blurred. Needed to properly implement ControlValueAccessor.\n   * @docs-private\n   */\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: { config: SimpleChange, ival: SimpleChange }) {\n  }\n\n  emitChangeEvent(value: boolean, label: boolean) {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new DateTimeWidgetConfigureChange(this, this.value))\n    if (value) {\n      this.valueChange.emit(this.value);\n      this.defaultValueChange.emit(this.defaultValue)\n    }\n    if (label) {\n      this.labelChange.emit(this.label)\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output, SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_NUMBER_SPINNER_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => NumberSpinnerWidgetComponent),\n  multi:       true\n};\n\nexport class NumberSpinnerWidgetChange {\n\n  constructor(public source: NumberSpinnerWidgetComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-number-spinner-widget',\n  template:      `<!-- -->\n  <div flex\n       class=\"tanj-input-template tanj-mode-edit\"\n       [ngClass]=\"{'tanj-disabled': disabled}\"\n       layout=\"row\" layout-align=\"center center\">\n    <span *ngIf=\"!hideLabel && labelPosition == 'before'\" class=\"tanj-label tanj-before  tanj-number-spinner-label\">{{label}}</span>\n    <div flex class=\"tanj-widget-input\" layout=\"column\" layout-align=\"start center\">\n      <div *ngIf=\"!onlyLabel\"\n           class=\"tanj-input-spinner-field\"\n           layout=\"column\"\n           layout-align=\"start\"\n           (swipeUp)=\"swipeUp($event)\"\n           (swipeDown)=\"swipeDown($event)\">\n        <tanj-icon align=\"center\"\n                   font=\"material-icons\"\n                   ligature=\"arrow_drop_up\"\n                   (click)=\"$event.stopPropagation(); $event.preventDefault(); onNextValueRequest()\"></tanj-icon>\n        <div class=\"tanj-spinner-value tanj-previous \">{{previousValue() | number:'1.0-0'}}</div>\n        <div *ngIf=\"!keyboardInputToggled\"\n             class=\"tanj-spinner-value tanj-current\"\n             (click)=\"onKeyboardInputRequest($event)\">{{value | number:'1.0-0'}}\n        </div>\n        <input *ngIf=\"keyboardInputToggled\"\n               class=\"tanj-spinner-value tanj-current tanj-spinner-keyboard-input-toggled tanj-raw-input tanj-number\"\n               type=\"number\"\n               min=\"{{min}}\"\n               max=\"{{max}}\"\n               step=\"{{step}}\"\n               [(ngModel)]=\"value\"\n               autofocus\n               (blur)=\"keyboardInputToggled = false\">\n        <div class=\"tanj-spinner-value tanj-next\">{{nextValue() | number:'1.0-0'}}</div>\n        <tanj-icon align=\"center\"\n                   font=\"material-icons\"\n                   ligature=\"arrow_drop_down\"\n                   (click)=\"$event.stopPropagation(); $event.preventDefault(); onPreviousValueRequest()\"></tanj-icon>\n      </div>\n      <span *ngIf=\"!hideLabel && labelPosition == 'below'\" class=\"tanj-label tanj-below  tanj-number-spinner-label\">{{label}}</span>\n    </div>\n    <span *ngIf=\"!hideLabel && labelPosition == 'after'\"\n          class=\"tanj-label tanj-after  tanj-number-spinner-label\">{{label}}</span>\n  </div>\n                 `,\n  providers:     [TANJ_NUMBER_SPINNER_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class NumberSpinnerWidgetComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n  // turn this into a class\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n  @Input() hideLabel: boolean = false\n  @Input() onlyLabel: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: number = 0\n  @Input() max: number = 10\n  @Input() min: number = 0\n  @Input() step: number = 1\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  keyboardInputToggled = false\n\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n  }\n\n  handleValueChange(value: number) {\n    if (!this.disabled) {\n      this.value = value\n      this.valueChange.emit(this.value)\n      this.emitChangeEvent()\n    }\n  }\n\n\n  onPreviousValueRequest() {\n    if (!this.disabled) {\n      const v = this.previousValue()\n      if (v !== null) {\n        this.handleValueChange(v)\n      }\n    }\n  }\n\n  onNextValueRequest() {\n    if (!this.disabled) {\n      const v = this.nextValue()\n      if (v !== null) {\n        this.handleValueChange(v)\n      }\n    }\n  }\n\n  nextValue(): number {\n    let v = this.value + this.step\n    if (v > this.max) {\n      v = this.max\n    }\n    return v\n  }\n\n  previousValue(): number {\n    let v = this.value - this.step\n    if (v < this.min) {\n      v = this.min\n    }\n    return v\n  }\n\n  swipeUp(event: any) {\n    this.onNextValueRequest()\n  }\n\n  swipeDown(event: any) {\n    this.onPreviousValueRequest()\n  }\n\n  onKeyboardInputRequest(event: any) {\n    this.keyboardInputToggled = this.disabled ? false : !this.keyboardInputToggled\n  }\n\n\n  /**\n   * Boilerplate / required for Angular\n   */\n  private emitChangeEvent() {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new NumberSpinnerWidgetChange(this, this.value))\n  }\n\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {Component, HostBinding, Inject, ViewEncapsulation} from '@angular/core'\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'\nimport {DurationPickerFieldsState, DurationPickerState} from './duration-picker-state'\n\nexport class DurationPickerDialogResult {\n  success: boolean = false\n  millis: number = 0\n}\n\n@Component({\n  selector:      'duration-picker-dialog',\n  templateUrl:   './duration-picker-dialog.html',\n  encapsulation: ViewEncapsulation.None\n})\nexport class DurationPickerDialog {\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n\n  state: DurationPickerState\n\n  result = new DurationPickerDialogResult()\n\n\n  constructor(public dialogRef: MatDialogRef<DurationPickerDialog>, @Inject(MAT_DIALOG_DATA) private data: any) {\n    this.state = data.state\n  }\n\n  onValueChange(field: DurationPickerFieldsState) {\n    console.log('DurationPickerDialog', 'onValueChange', field)\n  }\n\n  onCancelRequest() {\n    this.dialogRef.close(this.result)\n  }\n\n  onOkRequest() {\n    this.result.success = true\n    this.result.millis = this.state.millis\n    this.dialogRef.close(this.result)\n  }\n}\n","<div flex class=\"tanj-duration-picker-dialog-body\" layout=\"column\" layout-align=\"start\">\n  <div flex class=\"\" layout=\"row\" layout-align=\"space-around\">\n\n    <tanj-number-spinner-widget flex *ngFor=\"let field of state.selectedFields()\"\n                               [(ngModel)]=\"field.value\"\n                               [label]=\"field.label\"\n                               [labelPosition]=\"'below'\"\n                               [max]=\"field.max\"\n                               [min]=\"0\"\n                               (change)=\"onValueChange(field)\"></tanj-number-spinner-widget>\n  </div>\n</div>\n<div layout=\"column\" layout-align=\"end\">\n  <div flex class='tanj-button-footer' layout=\"row\" layout-align=\"center\">\n    <a flex mat-raised-button color=\"accent\" class=\"tanj-cancel\" (click)=\"onCancelRequest()\">Cancel</a>\n    <a flex mat-raised-button color=\"primary\" class=\"tanj-ok\" (click)=\"onOkRequest()\">Set</a>\n  </div>\n</div>\n\n","import {\n  ObjMap,\n  TimeUnit,\n  TimeUnits\n} from '@tangential/core'\nimport {Duration} from 'moment'\nimport * as moment from 'moment/moment'\nexport class DurationPickerFieldsState {\n  index: number = 0\n  unit: TimeUnit = TimeUnits.h\n  selected: boolean = false\n  next: DurationPickerFieldsState | undefined\n  previous: DurationPickerFieldsState | undefined\n\n  constructor(public picker: DurationPickerState, unit: TimeUnit) {\n    this.unit = unit\n    this.selected = false\n  }\n\n  get label(): string {\n    return this.unit.label\n  }\n\n  canSelect(): boolean {\n    let can: boolean\n    const count = this.picker.selectedCount()\n    if (count >= 3) {\n      can = false\n    } else if (count === 0) {\n      can = true\n    } else {\n      can = this.previous?.selected || this.next?.selected || false\n    }\n    return can\n  }\n\n  canDeselect(): boolean {\n    /* If next and previous are selected then you cannot deselect this one. */\n    return (!this.previous || !this.next || !this.previous.selected || !this.next.selected)\n  }\n\n  canToggleSelection() {\n    return this.selected ? this.canDeselect() : this.canSelect()\n  }\n\n\n  get value(): number {\n    let result: number\n    if (this.previous && this.previous.selected) {\n      result = this.picker.duration.get(this.unit.momentKey)\n    } else {\n      result = this.picker.duration.as(this.unit.momentKey)\n    }\n    return Math.floor(result)\n  }\n\n  set value(val: number) {\n    if (val >= 0) {\n      const prev = this.value\n      this.picker.duration.add(val - prev, this.unit.momentKey)\n    }\n  }\n\n  get separator(): string {\n    return this.unit.separatorSuffix\n  }\n\n  get max(): number {\n    return (this.previous && this.previous.selected) ? this.unit.logicalMax : 9999\n  }\n}\n/** @todo: ggranum: Remove use of MomentJS if possible. */\nexport class DurationPickerState {\n\n  public fields: DurationPickerFieldsState[] = []\n  fieldsByKey: ObjMap<DurationPickerFieldsState> = {}\n  duration: Duration = moment.duration(0)\n  max: number = 100\n\n\n  constructor() {\n    this.fields = [\n      new DurationPickerFieldsState(this, TimeUnits.day), new DurationPickerFieldsState(this, TimeUnits.h),\n      new DurationPickerFieldsState(this, TimeUnits.min), new DurationPickerFieldsState(this, TimeUnits.s),\n      new DurationPickerFieldsState(this, TimeUnits.ms), ]\n    for (let i = 0; i < this.fields.length; i++) {\n      const f = this.fields[i]\n      f.next = this.fields[i + 1]\n      f.previous = this.fields[i - 1]\n      f.index = i\n      this.fieldsByKey[f.unit.unitKey] = f\n\n    }\n  }\n\n  selectedFields(): DurationPickerFieldsState[] {\n    return this.fields.filter(f => f.selected)\n  }\n\n  selectedCount(): number {\n    return this.selectedFields().length\n  }\n\n\n  setDuration(duration: Duration) {\n    this.duration = duration\n  }\n\n  select(unit: TimeUnit) {\n    this.fieldsByKey[unit.unitKey].selected = true\n  }\n\n  get millis(): number {\n    return this.duration.asMilliseconds()\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {MatDialog} from '@angular/material/dialog';\nimport {\n  Hacks,\n  TimeUnits\n} from '@tangential/core'\nimport moment from 'moment'\nimport {\n  DurationPickerDialog,\n  DurationPickerDialogResult\n} from './duration-picker-dialog'\nimport {DurationPickerState} from './duration-picker-state'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_DURATION_PICKER_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => DurationPickerWidgetComponent),\n  multi:       true\n};\n\nexport class DurationPickerWidgetChange {\n\n  constructor(public source: DurationPickerWidgetComponent, public value: number) {\n  }\n}\n\n\nexport interface DurationFieldConfig {\n  unitKey: string\n  showing: boolean\n  showingNext: boolean\n  separator?: string\n  label: string\n  max: number\n  value: number\n}\n@Component({\n  selector:      'tanj-duration-picker-widget',\n  template:      `<!-- -->\n  <div flex\n       class=\"tanj-input-template tanj-mode-edit\"\n       [ngClass]=\"{'tanj-disabled': disabled}\"\n       layout=\"row\"\n       layout-align=\"start center\"\n       (click)=\"showEditDialog()\">\n      <span *ngIf=\"!hideLabel && labelPosition == 'before'\"\n            class=\"tanj-label tanj-icon-rating-widget-label\">{{label}}</span>\n    <div flex class=\"tanj-widget-input\" layout=\"column\" layout-align=\"start center\">\n      <div *ngIf=\"!onlyLabel\"\n           class=\"tanj-widget-input\"\n           layout=\"row\"\n           layout-align=\"start\">\n\n        <ng-container *ngFor=\"let field of state.fields\">\n          <span *ngIf=\"field.selected\">{{field.value | number:'2.0-0'}}<span\n            *ngIf=\"field.next?.selected\">{{field.separator || ':'}}</span></span>\n        </ng-container>\n\n      </div>\n      <span *ngIf=\"!hideLabel && labelPosition == 'below'\" class=\"tanj-label tanj-below\">{{label}}</span>\n    </div>\n    <span *ngIf=\"!hideLabel && labelPosition == 'after'\" class=\"tanj-label tanj-after tanj-icon-rating-widget-label\">{{label}}</span>\n  </div>\n\n                 `,\n  providers:     [TANJ_DURATION_PICKER_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class DurationPickerWidgetComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n  // turn this into a class\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n  @Input() hideLabel: boolean = false\n  @Input() onlyLabel: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: number = 0\n  /* end Configuration Fields */\n\n  @Input() max: number = 10\n\n  @Input() showDays: boolean = false\n  @Input() showHours: boolean = false\n  @Input() showMinutes: boolean = false\n  @Input() showSeconds: boolean = false\n  @Input() showMilliseconds: boolean = false\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  state: DurationPickerState = new DurationPickerState()\n\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef, private dialog: MatDialog) {\n  }\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n\n  public ngOnChanges(changes: { value: SimpleChange }): void {\n    if (changes.value) {\n      this.state.setDuration(moment.duration(this.value))\n    }\n    this.updateFields()\n  }\n\n  private updateFields() {\n    if (this.showDays) {\n      this.state.select(TimeUnits.day)\n    }\n    if (this.showHours) {\n      this.state.select(TimeUnits.h)\n    }\n    if (this.showMinutes) {\n      this.state.select(TimeUnits.min)\n    }\n    if (this.showSeconds) {\n      this.state.select(TimeUnits.s)\n    }\n    if (this.showMilliseconds) {\n      this.state.select(TimeUnits.ms)\n    }\n  }\n\n\n  showEditDialog() {\n    const dialogRef = this.dialog.open(DurationPickerDialog, {\n      disableClose: true,\n      data:         {state: this.state}\n    })\n    dialogRef.afterClosed().subscribe((result: DurationPickerDialogResult) => {\n      if (result.success) {\n        this.value = result.millis\n        this.changeDetectorRef.detectChanges()\n        this.emitChangeEvent()\n      }\n    })\n  }\n\n\n  private emitChangeEvent() {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new DurationPickerWidgetChange(this, this.value))\n    this.valueChange.emit(this.value)\n    console.log('DurationPickerWidgetComponent', 'emitChangeEvent')\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {\n  Hacks,\n  TimeUnits\n} from '@tangential/core'\nimport moment from 'moment'\nimport {DurationPickerState} from './duration-picker-state'\n\n\n/**\n * Provider Expression that allows IconRatingWidget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_DURATION_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => DurationPickerWidgetConfigureComponent),\n  multi:       true\n};\n\nexport class DurationPickerWidgetConfigureChange {\n  constructor(public source: DurationPickerWidgetConfigureComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-duration-picker-widget-configure',\n  template:      `<!--  -->\n  <div class=\"tanj-input-template tanj-mode-configure\" flex layout=\"column\" layout-align=\"start\">\n    <mat-form-field dividerColor=\"accent\">\n      <input matInput\n             class=\"tanj-input\"\n             type=\"text\"\n             maxlength=\"50\"\n             placeholder=\"Enter a label for this input\"\n             (change)=\"labelChange.emit(label)\"\n             [(ngModel)]=\"label\"/>\n    </mat-form-field>\n\n    <ng-container *ngIf=\"label\">\n      <fieldset flex layout=\"row\" layout-align=\"start\">\n        <legend>For:</legend>\n        <div flex class=\"tanj-choose-duration-fields-container\" layout=\"column\" layout-align=\"start\">\n          <mat-checkbox *ngFor=\"let field of state.fields\"\n                       layout=\"row\" layout-align=\"start\"\n                       [disabled]=\"!field.canToggleSelection()\"\n                       [labelPosition]=\"'before'\"\n                       [checked]=\"field.selected\"\n                       (change)=\"field.selected = $event.checked\">\n            {{field.unit.fullLabel}}\n          </mat-checkbox>\n        </div>\n      </fieldset>\n\n      <tanj-duration-picker-widget\n        [(value)]=\"defaultValue\"\n        (valueChange)=\"value = defaultValue; valueChange.emit(value); defaultValueChange.emit(defaultValue)\"\n        [defaultValue]=\"defaultValue\"\n        [showDays]=\"showDays\"\n        [showHours]=\"showHours\"\n        [showMinutes]=\"showMinutes\"\n        [showSeconds]=\"showSeconds\"\n        [showMilliseconds]=\"showMilliseconds\"\n        [max]=\"max\"\n        label=\"Default Value\"\n        [labelPosition]=\"'before'\">\n      </tanj-duration-picker-widget>\n    </ng-container>\n\n  </div>\n                 `,\n  providers:     [TANJ_DURATION_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class DurationPickerWidgetConfigureComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Output() labelChange: EventEmitter<string> = new EventEmitter(false)\n\n  @Input() defaultValue: number = 0\n  @Output() defaultValueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() max: number = 100\n  @Output() maxChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() showDays: boolean = false\n  @Output() showDaysChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  @Input() showHours: boolean = false\n  @Output() showHoursChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  @Input() showMinutes: boolean = false\n  @Output() showMinutesChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  @Input() showSeconds: boolean = false\n  @Output() showSecondsChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  @Input() showMilliseconds: boolean = false\n  @Output() showMillisecondsChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  /* end Configuration Fields */\n\n  state: DurationPickerState = new DurationPickerState()\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  /**\n   * Called when the spinner is blurred. Needed to properly implement ControlValueAccessor.\n   * @docs-private\n   */\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: { value: SimpleChange }) {\n    if (changes.value) {\n      this.state.setDuration(moment.duration(this.value))\n    }\n    this.updateFields()\n  }\n\n  private updateFields() {\n    if (this.showDays) {\n      this.state.select(TimeUnits.day)\n    }\n    if (this.showHours) {\n      this.state.select(TimeUnits.h)\n    }\n    if (this.showMinutes) {\n      this.state.select(TimeUnits.min)\n    }\n    if (this.showSeconds) {\n      this.state.select(TimeUnits.s)\n    }\n    if (this.showMilliseconds) {\n      this.state.select(TimeUnits.ms)\n    }\n  }\n\n\n  emitChangeEvent() {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new DurationPickerWidgetConfigureChange(this, this.value))\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {IconIF} from '@tangential/components'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_ICON_RATING_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => IconRatingWidgetComponent),\n  multi:       true\n};\n\nexport class IconRatingWidgetChange {\n\n  constructor(public source: IconRatingWidgetComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-icon-rating-widget',\n  template:      `<!-- -->\n  <div flex\n       class=\"tanj-input-template tanj-mode-edit\"\n       [ngClass]=\"{'tanj-disabled': disabled}\"\n       layout=\"row\"\n       layout-align=\"center center\">\n    <span *ngIf=\"!hideLabel && labelPosition == 'before'\"\n          class=\"tanj-label tanj-icon-rating-widget-label\">{{label}}</span>\n    <div flex class=\"tanj-widget-input\" layout=\"column\" layout-align=\"start center\">\n      <div *ngIf=\"!onlyLabel\"\n           class=\"tanj-icon-rating-stars tanj-widget-input\"\n           layout=\"column\"\n           layout-align=\"start\"\n           (swipeRight)=\"swipeRight($event)\"\n           (swipeLeft)=\"swipeLeft($event)\">\n\n        <div flex class=\"tanj-icon-rating-icons-container\" layout=\"row\" layout-align=\"start\">\n          <tanj-icon *ngFor=\"let icon of icons; let idx = index\" [icon]=\"icon\" (click)=\"onIconClick(idx)\"></tanj-icon>\n        </div>\n\n      </div>\n      <span *ngIf=\"!hideLabel && labelPosition == 'below'\" class=\"tanj-label tanj-below\">{{label}}</span>\n    </div>\n    <span *ngIf=\"!hideLabel && labelPosition == 'after'\" class=\"tanj-label tanj-after tanj-icon-rating-widget-label\">{{label}}</span>\n  </div>\n                 `,\n  providers:     [TANJ_ICON_RATING_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class IconRatingWidgetComponent implements ControlValueAccessor, OnInit, OnChanges {\n\n  // turn this into a class\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n  @Input() hideLabel: boolean = false\n  @Input() onlyLabel: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: number = 0\n  @Input() max: number = 5\n  @Input() iconFont: string | undefined\n  @Input() offIconNames: string[] = []\n  @Input() onIconNames: string[] = []\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  icons: IconIF[] = []\n\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: { config: SimpleChange, ival: SimpleChange }) {\n    if (this.max && this.iconFont && this.offIconNames && this.onIconNames) {\n      this.icons = []\n      for (let i = 0; i < this.max; i++) {\n        const icon: IconIF = {\n          font: this.iconFont,\n          name: i <= this.value ? this.onIconNames[0] : this.offIconNames[0]\n          //                           star                 star_border\n        }\n        this.icons.push(icon)\n      }\n    }\n  }\n\n\n  onIconClick(idx: number) {\n    if (!this.disabled) {\n      this.value = idx\n      this.valueChange.emit(this.value)\n    }\n  }\n\n\n  swipeRight(event: any) {\n  }\n\n  swipeLeft(event: any) {\n  }\n\n\n  emitChangeEvent() {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new IconRatingWidgetChange(this, this.value))\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows IconRatingWidget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_ICON_RATING_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => IconRatingWidgetConfigureComponent),\n  multi:       true\n};\n\nexport class IconRatingWidgetConfigureChange {\n  constructor(public source: IconRatingWidgetConfigureComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-icon-rating-widget-configure',\n  template:      `<!-- -->\n  <div class=\"tanj-input-template tanj-mode-configure\" flex layout=\"column\" layout-align=\"start\">\n    <mat-form-field dividerColor=\"accent\">\n      <input matInput\n             class=\"tanj-input\"\n             type=\"text\"\n             maxlength=\"50\"\n             placeholder=\"Enter a label for this input\"\n             (change)=\"labelChange.emit(label)\"\n             [(ngModel)]=\"label\"/>\n    </mat-form-field>\n    <ng-container *ngIf=\"label\">\n      <tanj-icon-rating-widget\n        [(value)]=\"defaultValue\"\n        (valueChange)=\"value = defaultValue; valueChange.emit(value); defaultValueChange.emit(defaultValue)\"\n        [defaultValue]=\"defaultValue\"\n        [max]=\"max\"\n        [iconFont]=\"iconFont\"\n        [offIconNames]=\"offIconNames\"\n        [onIconNames]=\"onIconNames\"\n        label=\"Default Value\"\n        [labelPosition]=\"'before'\">\n\n      </tanj-icon-rating-widget>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Max Rating\"\n               max=\"10\"\n               (change)=\"maxChange.emit(max)\"\n               [(ngModel)]=\"max\"/>\n      </mat-form-field>\n    </ng-container>\n  </div>\n                 `,\n  providers:     [TANJ_ICON_RATING_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class IconRatingWidgetConfigureComponent implements OnInit, ControlValueAccessor {\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: number = 0\n  @Input() max: number = 5\n  @Input() iconFont: string | undefined\n  @Input() offIconNames: string[] = []\n  @Input() onIconNames: string[] = []\n\n  @Output() labelChange: EventEmitter<string> = new EventEmitter(false)\n  @Output() defaultValueChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() maxChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() iconFontChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() offIconNamesChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() onIconNamesChange: EventEmitter<number> = new EventEmitter(false)\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  /**\n   * Called when the spinner is blurred. Needed to properly implement ControlValueAccessor.\n   * @docs-private\n   */\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  emitChangeEvent() {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new IconRatingWidgetConfigureChange(this, this.value))\n  }\n\n\n  swipeRight(event: any) {\n  }\n\n  swipeLeft(event: any) {\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation\n} from '@angular/core'\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_NUMBER_SLIDER_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NumberSliderWidgetComponent), multi: true\n};\n\nexport class NumberSliderWidgetChange {\n\n  constructor(public source: NumberSliderWidgetComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector: 'tanj-number-slider-widget', template: `<!-- -->\n  <div flex class=\"tanj-input-template tanj-mode-edit\"\n       [ngClass]=\"{'tanj-disabled': disabled}\"\n       layout=\"row\"\n       layout-align=\"center center\">\n    <span *ngIf=\"!hideLabel && labelPosition == 'before'\"\n          class=\"tanj-label tanj-before\">{{label}}</span>\n    <div flex class=\"tanj-widget-input-container\" layout=\"column\" layout-align=\"start center\">\n      <div flex *ngIf=\"!onlyLabel\" class=\"tanj-widget-input\" layout=\"row\" layout-align=\"start\">\n        <mat-slider flex\n                   [disabled]=\"disabled\"\n                   [(ngModel)]=\"value\"\n                   (change)=\"valueChange.emit(value)\"\n                   [max]=\"max\"\n                   [min]=\"min\"\n                   [step]=\"step\"\n                   [thumbLabel]=\"true\"\n                   [tickInterval]=\"tickInterval\"\n                   [vertical]=\"vertical\">\n        </mat-slider>\n        <mat-form-field flex=\"15\"\n                            class=\"tanj-number-slider-input-field tanj-widget-input\"\n                            dividerColor=\"accent\"\n                            layout=\"row\"\n                            layout-align=\"start\">\n          <input flex\n                 matInput\n                 class=\"tanj-input\"\n                 type=\"number\"\n                 max=\"{{max}}\"\n                 [disabled]=\"disabled\"\n                 [step]=\"step\"\n                 (change)=\"valueChange.emit(value)\"\n                 [(ngModel)]=\"value\"/>\n        </mat-form-field>\n      </div>\n      <span *ngIf=\"!hideLabel && labelPosition == 'below'\" class=\"tanj-label tanj-below\">{{label}}</span>\n    </div>\n    <span *ngIf=\"!hideLabel && labelPosition == 'after'\" class=\"tanj-label tanj-after\">{{label}}</span>\n  </div>\n            `, providers: [TANJ_NUMBER_SLIDER_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None\n})\nexport class NumberSliderWidgetComponent implements ControlValueAccessor, OnChanges, OnInit {\n\n  // turn this into a class\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'below'\n  @Input() disabled: boolean = false\n  @Input() hideLabel: boolean = false\n  @Input() onlyLabel: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: number = 0\n  @Input() max: number = 5\n  @Input() min: number = 0\n  @Input() step: number = 1\n  @Input() decimalPlaces: number = 1\n  @Input() tickInterval: number = 1\n  @Input() vertical: boolean = false\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  onTouched: () => any = () => {\n  };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => {\n  };\n\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n  }\n\n  handleValueChange(value: number) {\n    if (!this.disabled) {\n      this.value = value\n      this.valueChange.emit(this.value)\n      this.emitChangeEvent()\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  private emitChangeEvent() {\n    const change = new NumberSliderWidgetChange(this, this.value)\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(change)\n  }\n\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_NUMBER_SLIDER_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => NumberSliderWidgetConfigureComponent),\n  multi:       true\n};\n\nexport class NumberSliderWidgetConfigureChange {\n  constructor(public source: NumberSliderWidgetConfigureComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-number-slider-configure',\n  template:      `<!-- -->\n  <div class=\"tanj-input-template tanj-mode-configure\" flex layout=\"column\" layout-align=\"start\">\n    <mat-form-field dividerColor=\"accent\">\n      <input matInput class=\"tanj-input\" type=\"text\" maxlength=\"50\" placeholder=\"Enter a label for this input\"\n             (change)=\"labelChange.emit(label)\"\n             [(ngModel)]=\"label\"/>\n    </mat-form-field>\n    <ng-container *ngIf=\"label\">\n      <tanj-number-slider-widget [(value)]=\"defaultValue\"\n                                (valueChange)=\"value = defaultValue; emitChangeEvent(true, false)\"\n                                [defaultValue]=\"defaultValue\"\n                                [max]=\"max\"\n                                [min]=\"min\"\n                                [step]=\"step\"\n                                [decimalPlaces]=\"decimalPlaces\"\n                                label=\"Default Value\"></tanj-number-slider-widget>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Min\"\n               (change)=\"minChange.emit(min)\"\n               [(ngModel)]=\"min\"/>\n      </mat-form-field>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Max\"\n               (change)=\"maxChange.emit(max)\"\n               [(ngModel)]=\"max\"/>\n      </mat-form-field>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Step\"\n               (change)=\"stepChange.emit(step)\"\n               [(ngModel)]=\"step\"/>\n      </mat-form-field>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Decimal Places\"\n               (change)=\"decimalPlacesChange.emit(decimalPlaces)\"\n               [(ngModel)]=\"decimalPlaces\"/>\n      </mat-form-field>\n    </ng-container>\n\n  </div>\n                 `,\n  providers:     [TANJ_NUMBER_SLIDER_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class NumberSliderWidgetConfigureComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'below'\n  @Input() disabled: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: number = 0\n  @Input() max: number = 10\n  @Input() min: number = 0\n  @Input() step: number = 1\n  @Input() decimalPlaces: number = 0\n\n  @Output() labelChange: EventEmitter<string> = new EventEmitter(false)\n  @Output() defaultValueChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() maxChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() minChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() stepChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() decimalPlacesChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  /**\n   * Called when the spinner is blurred. Needed to properly implement ControlValueAccessor.\n   * @docs-private\n   */\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: { config: SimpleChange, ival: SimpleChange }) {\n  }\n\n  emitChangeEvent(value: boolean, label: boolean) {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new NumberSliderWidgetConfigureChange(this, this.value))\n    if (value) {\n      this.valueChange.emit(this.value);\n      this.defaultValueChange.emit(this.defaultValue)\n    }\n    if (label) {\n      this.labelChange.emit(this.label)\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_NUMBER_SPINNER_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => NumberSpinnerWidgetConfigureComponent),\n  multi:       true\n};\n\nexport class NumberSpinnerWidgetConfigureChange {\n  constructor(public source: NumberSpinnerWidgetConfigureComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-number-spinner-configure',\n  template:      `<!-- -->\n  <div class=\"tanj-input-template tanj-mode-configure\" flex layout=\"column\" layout-align=\"start\">\n    <mat-form-field dividerColor=\"accent\">\n      <input matInput class=\"tanj-input\" type=\"text\" maxlength=\"50\" placeholder=\"Enter a label for this input\"\n             (change)=\"labelChange.emit(label)\"\n             [(ngModel)]=\"label\"/>\n    </mat-form-field>\n    <ng-container *ngIf=\"label\">\n      <tanj-number-spinner-widget [(value)]=\"defaultValue\"\n                                 (valueChange)=\"value = defaultValue; emitChangeEvent(true, false)\"\n                                 [defaultValue]=\"defaultValue\"\n                                 [max]=\"max\"\n                                 [min]=\"min\"\n                                 [step]=\"step\"\n                                 label=\"Default Value\"></tanj-number-spinner-widget>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Min\"\n               (change)=\"minChange.emit(min)\"\n               [(ngModel)]=\"min\"/>\n      </mat-form-field>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Max\"\n               (change)=\"maxChange.emit(max)\"\n               [(ngModel)]=\"max\"/>\n      </mat-form-field>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Step\"\n               (change)=\"stepChange.emit(step)\"\n               [(ngModel)]=\"step\"/>\n      </mat-form-field>\n    </ng-container>\n\n  </div>\n                 `,\n  providers:     [TANJ_NUMBER_SPINNER_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class NumberSpinnerWidgetConfigureComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: number = 0\n  @Input() max: number = 10\n  @Input() min: number = 0\n  @Input() step: number = 1\n\n  @Output() labelChange: EventEmitter<string> = new EventEmitter(false)\n  @Output() defaultValueChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() decimalChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() maxChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() minChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() stepChange: EventEmitter<number> = new EventEmitter(false)\n\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  /**\n   * Called when the spinner is blurred. Needed to properly implement ControlValueAccessor.\n   * @docs-private\n   */\n  onTouched: () => any = () => {\n  };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => {\n  };\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: { config: SimpleChange, ival: SimpleChange }) {\n  }\n\n  emitChangeEvent(value: boolean, label: boolean) {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new NumberSpinnerWidgetConfigureChange(this, this.value))\n    if (value) {\n      this.valueChange.emit(this.value);\n      this.defaultValueChange.emit(this.defaultValue)\n    }\n    if (label) {\n      this.labelChange.emit(this.label)\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output, SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core'\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_NUMBER_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => NumberWidgetComponent),\n  multi:       true\n};\n\nexport class NumberWidgetChange {\n\n  constructor(public source: NumberWidgetComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-number-widget',\n  template:      `<!-- -->\n  <div flex class=\"tanj-input-template tanj-mode-edit\"\n       [ngClass]=\"{'tanj-disabled': disabled}\"\n       layout=\"row\"\n       layout-align=\"start center\">\n    <span *ngIf=\"!hideLabel && labelPosition == 'before'\" class=\"tanj-label tanj-before\">{{label}}</span>\n    <div flex class=\"tanj-widget-input\" layout=\"column\" layout-align=\"center start\">\n      <div flex *ngIf=\"!onlyLabel\" class=\"tanj-widget-input\" layout=\"row\" layout-align=\"start\">\n        <mat-form-field flex\n                            class=\"tanj-number-input-field tanj-widget-input\"\n                            dividerColor=\"accent\"\n                            layout=\"row\"\n                            layout-align=\"start\">\n          <input flex\n                 matInput\n                 class=\"tanj-input\"\n                 type=\"number\"\n                 max=\"{{max}}\"\n                 [disabled]=\"disabled\"\n                 [step]=\"step\"\n                 (change)=\"valueChange.emit(value)\"\n                 [(ngModel)]=\"value\"/>\n        </mat-form-field>\n      </div>\n      <span *ngIf=\"!hideLabel && labelPosition == 'below'\" class=\"tanj-label tanj-below\">{{label}}</span>\n    </div>\n    <span *ngIf=\"!hideLabel && labelPosition == 'after'\" class=\"tanj-label tanj-after\">{{label}}</span>\n  </div>\n                 `,\n  providers:     [TANJ_NUMBER_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class NumberWidgetComponent implements ControlValueAccessor, OnChanges, OnInit {\n\n  // turn this into a class\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n  @Input() hideLabel: boolean = false\n  @Input() onlyLabel: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: number = 0\n  @Input() max: number = 5\n  @Input() min: number = 0\n  @Input() step: number = 1\n  @Input() decimalPlaces: number = 1\n  @Input() tickInterval: number = 10\n  @Input() vertical: boolean = false\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n  }\n\n  handleValueChange(value: number) {\n    if (!this.disabled) {\n      this.value = value\n      this.valueChange.emit(this.value)\n      this.emitChangeEvent()\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  private emitChangeEvent() {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new NumberWidgetChange(this, this.value))\n  }\n\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_NUMBER_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => NumberWidgetConfigureComponent),\n  multi:       true\n};\n\nexport class NumberWidgetConfigureChange {\n  constructor(public source: NumberWidgetConfigureComponent, public value: number) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-number-configure',\n  template:      `<!-- -->\n  <div class=\"tanj-input-template tanj-mode-configure\" flex layout=\"column\" layout-align=\"start\">\n    <mat-form-field dividerColor=\"accent\">\n      <input matInput class=\"tanj-input\" type=\"text\" maxlength=\"50\" placeholder=\"Enter a label for this input\"\n             (change)=\"labelChange.emit(label)\"\n             [(ngModel)]=\"label\"/>\n    </mat-form-field>\n    <ng-container *ngIf=\"label\">\n      <tanj-number-widget [(value)]=\"defaultValue\"\n                         (valueChange)=\"value = defaultValue; emitChangeEvent(true, false)\"\n                         [defaultValue]=\"defaultValue\"\n                         [max]=\"max\"\n                         [min]=\"min\"\n                         [step]=\"step\"\n                         [decimalPlaces]=\"decimalPlaces\"\n                         label=\"Default Value\"></tanj-number-widget>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Min\"\n               (change)=\"minChange.emit(min)\"\n               [(ngModel)]=\"min\"/>\n      </mat-form-field>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Max\"\n               (change)=\"maxChange.emit(max)\"\n               [(ngModel)]=\"max\"/>\n      </mat-form-field>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Step\"\n               (change)=\"stepChange.emit(step)\"\n               [(ngModel)]=\"step\"/>\n      </mat-form-field>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Decimal Places\"\n               (change)=\"decimalPlacesChange.emit(decimalPlaces)\"\n               [(ngModel)]=\"decimalPlaces\"/>\n      </mat-form-field>\n    </ng-container>\n\n  </div>\n                 `,\n  providers:     [TANJ_NUMBER_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class NumberWidgetConfigureComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: number = 0\n  @Output() valueChange: EventEmitter<number> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: number = 0\n  @Input() max: number = 10\n  @Input() min: number = 0\n  @Input() step: number = 1\n  @Input() decimalPlaces: number = 0\n\n  @Output() labelChange: EventEmitter<string> = new EventEmitter(false)\n  @Output() defaultValueChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() maxChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() minChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() stepChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() decimalPlacesChange: EventEmitter<number> = new EventEmitter(false)\n\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  /**\n   * Called when the spinner is blurred. Needed to properly implement ControlValueAccessor.\n   * @docs-private\n   */\n  onTouched: () => any = () => {};\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => {};\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: { config: SimpleChange, ival: SimpleChange }) {\n  }\n\n  emitChangeEvent(value: boolean, label: boolean) {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new NumberWidgetConfigureChange(this, this.value))\n    if (value) {\n      this.valueChange.emit(this.value);\n      this.defaultValueChange.emit(this.defaultValue)\n    }\n    if (label) {\n      this.labelChange.emit(this.label)\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: number): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output, SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core'\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_SLIDE_TOGGLE_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => SlideToggleWidgetComponent),\n  multi:       true\n};\n\nexport class SlideToggleWidgetChange {\n\n  constructor(public source: SlideToggleWidgetComponent, public value: boolean) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-slide-toggle-widget',\n  template:      `<!-- -->\n  <div flex class=\"tanj-input-template tanj-mode-edit\"\n       [ngClass]=\"{'tanj-disabled': disabled}\"\n       layout=\"row\"\n       layout-align=\"center center\">\n    <span *ngIf=\"!hideLabel && labelPosition == 'before'\"\n          class=\"tanj-label tanj-slide-toggle-widget-label\">{{label}}</span>\n    <div flex layout=\"column\" layout-align=\"start center\">\n      <div *ngIf=\"!onlyLabel\"\n           class=\"tanj-widget-input\"\n           layout=\"column\"\n           layout-align=\"start\">\n        <mat-slide-toggle flex\n                         [disabled]=\"disabled\"\n                         [(ngModel)]=\"value\"\n                         (change)=\"handleValueChange(value)\">\n        </mat-slide-toggle>\n      </div>\n      <div *ngIf=\"!hideLabel && labelPosition == 'below'\" class=\"tanj-label tanj-below\">{{label}}</div>\n    </div>\n    <span *ngIf=\"!hideLabel && labelPosition == 'after'\" class=\"tanj-label tanj-slide-toggle-widget-label\">{{label}}</span>\n  </div>\n                 `,\n  providers:     [TANJ_SLIDE_TOGGLE_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class SlideToggleWidgetComponent implements ControlValueAccessor, OnChanges, OnInit {\n\n  // turn this into a class\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n\n\n  @Input() value: boolean = false\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n  @Input() hideLabel: boolean = false\n  @Input() onlyLabel: boolean = false\n\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: boolean = false\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n  }\n\n  handleValueChange(value: boolean) {\n    if (!this.disabled) {\n      this.value = value\n      this.valueChange.emit(this.value)\n      this.emitChangeEvent()\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  private emitChangeEvent() {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new SlideToggleWidgetChange(this, this.value))\n  }\n\n  public writeValue(value: boolean): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n\n\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows IconRatingWidget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_SLIDE_TOGGLE_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => SlideToggleWidgetConfigureComponent),\n  multi:       true\n};\n\nexport class SlideToggleWidgetConfigureChange {\n  constructor(public source: SlideToggleWidgetConfigureComponent, public value: boolean) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-slide-toggle-widget-configure',\n  template:      `<!-- -->\n  <div class=\"tanj-input-template tanj-mode-configure\" flex layout=\"column\" layout-align=\"start\">\n    <mat-form-field dividerColor=\"accent\">\n      <input matInput class=\"tanj-input\" type=\"text\" maxlength=\"50\" placeholder=\"Enter a label for this input\"\n             (change)=\"emitChangeEvent(false, true)\"\n             [(ngModel)]=\"label\"/>\n    </mat-form-field>\n    <ng-container *ngIf=\"label\">\n      <tanj-slide-toggle-widget [(value)]=\"defaultValue\"\n                               (valueChange)=\"value = defaultValue; emitChangeEvent(true, false)\"\n                               [defaultValue]=\"defaultValue\"\n                               label=\"Default Value\"\n                               [labelPosition]=\"'before'\">\n\n      </tanj-slide-toggle-widget>\n    </ng-container>\n  </div>\n                 `,\n  providers:     [TANJ_SLIDE_TOGGLE_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class SlideToggleWidgetConfigureComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: boolean = false\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: boolean = false\n\n\n  @Output() labelChange: EventEmitter<string> = new EventEmitter(false)\n  @Output() defaultValueChange: EventEmitter<boolean> = new EventEmitter(false)\n  /* end Configuration Fields */\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  /**\n   * Called when the spinner is blurred. Needed to properly implement ControlValueAccessor.\n   * @docs-private\n   */\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: { config: SimpleChange, ival: SimpleChange }) {\n  }\n\n  emitChangeEvent(value: boolean, label: boolean) {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new SlideToggleWidgetConfigureChange(this, this.value))\n    if (value) {\n      this.valueChange.emit(this.value);\n      this.defaultValueChange.emit(this.defaultValue)\n    }\n    if (label) {\n      this.labelChange.emit(this.label)\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: boolean): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output, SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core'\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR\n} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_TEXT_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => TextWidgetComponent),\n  multi:       true\n};\n\nexport class TextWidgetChange {\n\n  constructor(public source: TextWidgetComponent, public value: string) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-text-widget',\n  template:      `<!-- -->\n  <div flex class=\"tanj-input-template tanj-mode-edit\"\n       [ngClass]=\"{'tanj-disabled': disabled}\"\n       layout=\"row\"\n       layout-align=\"start center\">\n    <span *ngIf=\"!hideLabel && labelPosition == 'before'\" class=\"tanj-label tanj-before\">{{label}}</span>\n    <div flex class=\"tanj-widget-input\" layout=\"column\" layout-align=\"center start\">\n      <div flex *ngIf=\"!onlyLabel\" class=\"tanj-widget-input\" layout=\"row\" layout-align=\"start\">\n        <mat-form-field flex\n                            class=\"tanj-text-input-field tanj-widget-input\"\n                            dividerColor=\"accent\"\n                            layout=\"row\"\n                            layout-align=\"start\">\n          <input flex\n                 matInput\n                 class=\"tanj-input\"\n                 type=\"text\"\n                 minlength=\"{{minLength}}\"\n                 maxlength=\"{{maxLength}}\"\n                 [disabled]=\"disabled\"\n                 (change)=\"valueChange.emit(value)\"\n                 [(ngModel)]=\"value\"/>\n        </mat-form-field>\n      </div>\n      <span *ngIf=\"!hideLabel && labelPosition == 'below'\" class=\"tanj-label tanj-below\">{{label}}</span>\n    </div>\n    <span *ngIf=\"!hideLabel && labelPosition == 'after'\" class=\"tanj-label tanj-after\">{{label}}</span>\n  </div>\n                 `,\n  providers:     [TANJ_TEXT_WIDGET_VIEW_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class TextWidgetComponent implements ControlValueAccessor, OnChanges, OnInit {\n\n  // turn this into a class\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n\n  @Input() value: string = ''\n  @Output() valueChange: EventEmitter<string> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n  @Input() hideLabel: boolean = false\n  @Input() onlyLabel: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: string = ''\n  @Input() maxLength: number = 100\n  @Input() minLength: number = 0\n  /* end Configuration Fields */\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => {\n  };\n\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n  }\n\n  handleValueChange(value: string) {\n    if (!this.disabled) {\n      this.value = value\n      this.valueChange.emit(this.value)\n      this.emitChangeEvent()\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  private emitChangeEvent() {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new TextWidgetChange(this, this.value))\n  }\n\n  public writeValue(value: string): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'\nimport {Hacks} from '@tangential/core'\n\n\n/**\n * Provider Expression that allows this widget to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const TANJ_TEXT_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR: any = {\n  provide:     NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => TextWidgetConfigureComponent),\n  multi:       true\n};\n\nexport class TextWidgetConfigureChange {\n  constructor(public source: TextWidgetConfigureComponent, public value: string) {\n  }\n}\n\n\n@Component({\n  selector:      'tanj-text-configure',\n  template:      `<!-- -->\n  <div class=\"tanj-input-template tanj-mode-configure\" flex layout=\"column\" layout-align=\"start\">\n    <mat-form-field dividerColor=\"accent\">\n      <input matInput class=\"tanj-input\" type=\"text\" maxlength=\"50\" placeholder=\"Enter a label for this input\"\n             (change)=\"labelChange.emit(label)\"\n             [(ngModel)]=\"label\"/>\n    </mat-form-field>\n    <ng-container *ngIf=\"label\">\n      <tanj-text-widget [(value)]=\"defaultValue\"\n                       (valueChange)=\"value = defaultValue; emitChangeEvent(true, false)\"\n                       [defaultValue]=\"defaultValue\"\n                       [maxLength]=\"maxLength\"\n                       [minLength]=\"minLength\"\n                       label=\"Default Value\"></tanj-text-widget>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Min Length\"\n               (change)=\"minLengthChange.emit(minLength)\"\n               [(ngModel)]=\"minLength\"/>\n      </mat-form-field>\n      <mat-form-field dividerColor=\"accent\">\n        <input matInput\n               class=\"tanj-input\"\n               type=\"number\"\n               placeholder=\"Max Length\"\n               (change)=\"maxLengthChange.emit(maxLength)\"\n               [(ngModel)]=\"maxLength\"/>\n      </mat-form-field>\n    </ng-container>\n\n  </div>\n                 `,\n  providers:     [TANJ_TEXT_WIDGET_CONFIG_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None\n})\nexport class TextWidgetConfigureComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  @Input() value: string = ''\n  @Output() valueChange: EventEmitter<string> = new EventEmitter(false)\n\n  @Input() labelPosition: 'before' | 'after' | 'below' = 'before'\n  @Input() disabled: boolean = false\n\n  /**\n   * Configuration Fields\n   */\n  @Input() label: string = ''\n  @Input() defaultValue: string = ''\n  @Input() maxLength: number = 100\n  @Input() minLength: number = 0\n\n  @Output() labelChange: EventEmitter<string> = new EventEmitter(false)\n  @Output() defaultValueChange: EventEmitter<string> = new EventEmitter(false)\n  @Output() maxLengthChange: EventEmitter<number> = new EventEmitter(false)\n  @Output() minLengthChange: EventEmitter<number> = new EventEmitter(false)\n\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  /**\n   * Called when the spinner is blurred. Needed to properly implement ControlValueAccessor.\n   * @docs-private\n   */\n  onTouched: () => any = () => { };\n  private controlValueAccessorChangeFn: (value: any) => void = (value) => { };\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  ngOnChanges(changes: { config: SimpleChange, ival: SimpleChange }) {\n  }\n\n  emitChangeEvent(value: boolean, label: boolean) {\n    this.controlValueAccessorChangeFn(this.value);\n    this.change.emit(new TextWidgetConfigureChange(this, this.value))\n    if (value) {\n      this.valueChange.emit(this.value);\n      this.defaultValueChange.emit(this.defaultValue)\n    }\n    if (label) {\n      this.labelChange.emit(this.label)\n    }\n  }\n\n  /**\n   * Boilerplate / required for Angular\n   *\n   */\n  public writeValue(value: string): void {\n    this.value = value\n  }\n\n  public registerOnChange(fn: any): void {\n    this.controlValueAccessorChangeFn = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Sets the input's disabled state. Implemented as a part of ControlValueAccessor.\n   * @param isDisabled Whether the input should be disabled.\n   */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n}\n","import {CommonModule} from '@angular/common'\nimport {NgModule} from '@angular/core'\nimport {FormsModule} from '@angular/forms'\nimport {MatCheckboxModule} from '@angular/material/checkbox'\nimport {MatFormFieldModule} from '@angular/material/form-field'\nimport {MatInputModule} from '@angular/material/input'\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle'\nimport {MatSliderModule} from '@angular/material/slider'\nimport {TanjComponentsModule} from '@tangential/components'\n//noinspection ES6PreferShortImport\nimport {CheckboxWidgetConfigureComponent} from './checkbox-widget/checkbox-widget-configure.component'\n//noinspection ES6PreferShortImport\nimport {CheckboxWidgetComponent} from './checkbox-widget/checkbox-widget.component'\n//noinspection ES6PreferShortImport\nimport {DateTimeWidgetConfigureComponent} from './date-time-widget/date-time-widget-configure.component'\n//noinspection ES6PreferShortImport\nimport {DateTimeWidgetComponent} from './date-time-widget/date-time-widget.component'\n//noinspection ES6PreferShortImport\nimport {DurationPickerDialog} from './duration-picker-widget/duration-picker-dialog'\n//noinspection ES6PreferShortImport\nimport {DurationPickerWidgetConfigureComponent} from './duration-picker-widget/duration-picker-widget-configure.component'\n//noinspection ES6PreferShortImport\nimport {DurationPickerWidgetComponent} from './duration-picker-widget/duration-picker-widget.component'\n//noinspection ES6PreferShortImport\nimport {IconRatingWidgetConfigureComponent} from './icon-rating-widget/icon-rating-widget-configure.component'\n//noinspection ES6PreferShortImport\nimport {IconRatingWidgetComponent} from './icon-rating-widget/icon-rating-widget.component'\n//noinspection ES6PreferShortImport\nimport {NumberSliderWidgetConfigureComponent} from './number-slider-widget/number-slider-widget-configure.component'\n//noinspection ES6PreferShortImport\nimport {NumberSliderWidgetComponent} from './number-slider-widget/number-slider-widget.component'\n//noinspection ES6PreferShortImport\nimport {NumberSpinnerWidgetConfigureComponent} from './number-spinner-widget/number-spinner-widget-configure.component'\n//noinspection ES6PreferShortImport\nimport {NumberSpinnerWidgetComponent} from './number-spinner-widget/number-spinner-widget.component'\n//noinspection ES6PreferShortImport\nimport {NumberWidgetConfigureComponent} from './number-widget/number-widget-configure.component'\n//noinspection ES6PreferShortImport\nimport {NumberWidgetComponent} from './number-widget/number-widget.component'\n//noinspection ES6PreferShortImport\nimport {SlideToggleWidgetConfigureComponent} from './slide-toggle-widget/slide-toggle-widget-configure.component'\n//noinspection ES6PreferShortImport\nimport {SlideToggleWidgetComponent} from './slide-toggle-widget/slide-toggle-widget.component'\n//noinspection ES6PreferShortImport\nimport {TextWidgetConfigureComponent} from './text-widget/text-widget-configure.component'\n//noinspection ES6PreferShortImport\nimport {TextWidgetComponent} from './text-widget/text-widget.component'\n\n@NgModule({\n  imports:         [\n    CommonModule,\n    FormsModule,\n    MatInputModule,\n    MatCheckboxModule,\n    MatSlideToggleModule,\n    MatSliderModule,\n    MatFormFieldModule,\n    TanjComponentsModule\n  ],\n  declarations:    [\n\n    CheckboxWidgetComponent,\n    CheckboxWidgetConfigureComponent,\n\n    DateTimeWidgetComponent,\n    DateTimeWidgetConfigureComponent,\n\n    DurationPickerDialog,\n    DurationPickerWidgetComponent,\n    DurationPickerWidgetConfigureComponent,\n\n    IconRatingWidgetComponent,\n    IconRatingWidgetConfigureComponent,\n\n    NumberWidgetComponent,\n    NumberWidgetConfigureComponent,\n\n    NumberSliderWidgetComponent,\n    NumberSliderWidgetConfigureComponent,\n\n    NumberSpinnerWidgetComponent,\n    NumberSpinnerWidgetConfigureComponent,\n\n    SlideToggleWidgetComponent,\n    SlideToggleWidgetConfigureComponent,\n\n    TextWidgetComponent,\n    TextWidgetConfigureComponent,\n\n  ],\n  exports:         [\n    CheckboxWidgetComponent,\n    CheckboxWidgetConfigureComponent,\n\n    DateTimeWidgetComponent,\n    DateTimeWidgetConfigureComponent,\n\n    DurationPickerDialog,\n    DurationPickerWidgetComponent,\n    DurationPickerWidgetConfigureComponent,\n\n    IconRatingWidgetComponent,\n    IconRatingWidgetConfigureComponent,\n\n    NumberSliderWidgetComponent,\n    NumberSliderWidgetConfigureComponent,\n\n    NumberSpinnerWidgetComponent,\n    NumberSpinnerWidgetConfigureComponent,\n\n    NumberWidgetComponent,\n    NumberWidgetConfigureComponent,\n\n    SlideToggleWidgetComponent,\n    SlideToggleWidgetConfigureComponent,\n\n    TextWidgetComponent,\n    TextWidgetConfigureComponent,\n\n  ],\n  entryComponents: [\n    DurationPickerDialog,\n  ]\n})\nexport class TanjInputWidgetModule {\n\n}\n","/*\n * Public API Surface of input-widgets\n */\n\nexport * from './lib/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i5.CheckboxWidgetComponent","moment","i6.DateTimeWidgetComponent","i2","i4.NumberSpinnerWidgetComponent","i1","i5","i6.DurationPickerWidgetComponent","i5.IconRatingWidgetComponent","i5.NumberSliderWidgetComponent","i5.NumberSpinnerWidgetComponent","i5.NumberWidgetComponent","i5.SlideToggleWidgetComponent","i5.TextWidgetComponent"],"mappings":"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"}