{"version":3,"file":"tangential-configurable-input-widgets.mjs","sources":["../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/configurable-input-ival.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/boolean/boolean-ival.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/configurable-input-type.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/boolean/boolean-type.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/date-time/date-time-ival.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/date-time/date-time-type.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/number/number-ival.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/number/number-type.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/duration/duration-type.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/text/text-ival.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/data-type/text/text-type.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/support/input-view-mode.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/input-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/checkbox/checkbox-widget-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/checkbox/checkbox-widget.template.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/date-time-input/date-time-input-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/date-time-input/date-time-template.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/duration-picker/duration-picker-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/duration-picker/duration-picker-template.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/icon-rating-widget/icon-rating-widget-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/icon-rating-widget/icon-rating-widget.template.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/number-input/number-input-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/number-input/number-template.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/number-slider/number-slider-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/number-slider/number-slider-template.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/number-spinner/number-spinner-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/number-spinner/number-spinner-template.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/slide-toggle/slide-toggle-widget-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/slide-toggle/slide-toggle-widget.template.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/text-input/text-input-config.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/widgets/text-input/text-template.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/support/input-types-registry.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/support/template-components/input-template-component/input-template.directive.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/support/template-components/input-template-component/input-template-container.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/support/choose-input-widget-dialog/choose-input-widget-dialog.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/support/choose-input-widget-dialog/choose-input-widget-dialog.html","../../../../projects/tangential/configurable-input-widgets/src/lib/support/edit-configurable-widget-component/edit-configurable-widget.component.ts","../../../../projects/tangential/configurable-input-widgets/src/lib/support/edit-configurable-widget-component/edit-configurable-widget.component.html","../../../../projects/tangential/configurable-input-widgets/src/lib/configurable-widget.module.ts","../../../../projects/tangential/configurable-input-widgets/src/public-api.ts","../../../../projects/tangential/configurable-input-widgets/src/tangential-configurable-input-widgets.ts"],"sourcesContent":["import {Jsonified, ObjectUtil} from '@tangential/core'\nimport {BaseMediaType, BaseMediaTypeJson} from '@tangential/media-types'\n\nexport interface ConfigurableInputIvalJson extends BaseMediaTypeJson {\n  value?: any\n}\n\nconst Model: ConfigurableInputIvalJson = {\n  value: null\n}\n\nexport class ConfigurableInputIval extends BaseMediaType implements Jsonified<ConfigurableInputIval, ConfigurableInputIvalJson>, ConfigurableInputIvalJson {\n  static override $model: ConfigurableInputIvalJson = ObjectUtil.assignDeep({}, BaseMediaType.$model, Model)\n  value: any\n\n  constructor(config: any, key?: string) {\n    super(config, key);\n  }\n\n  get uiValue(): string {\n    return '' + this.value\n  }\n\n  set uiValue(val: string) {\n    this.value = val\n  }\n\n\n}\n","import {Jsonified, ObjectUtil} from '@tangential/core'\nimport {ConfigurableInputIval, ConfigurableInputIvalJson} from '../configurable-input-ival'\n\nexport interface BooleanIvalIF extends ConfigurableInputIvalJson {\n  value?: boolean\n}\n\nconst Model: BooleanIvalIF = {\n  value: false\n}\n\nexport class BooleanIval extends ConfigurableInputIval implements Jsonified<BooleanIval, BooleanIvalIF>, BooleanIvalIF {\n  static override $model: BooleanIvalIF = ObjectUtil.assignDeep({}, ConfigurableInputIval.$model, Model)\n  override value: boolean\n\n\n  constructor(cfg?: BooleanIvalIF, key?: string) {\n    super(cfg, key)\n    this.value = ( cfg.value === true )\n  }\n\n}\n","import {Type} from '@angular/core'\nimport {Jsonified, ObjectUtil} from '@tangential/core'\nimport {StampedMediaType, StampedMediaTypeJson} from '@tangential/media-types'\nimport {ConfigurableInputIval} from './configurable-input-ival'\n\nexport interface ConfigurableInputTypeJson extends StampedMediaTypeJson {\n  _inputTypeKey?: string\n  defaultValue?: any\n}\n\n\nconst inputTypeRegistry = {}\n\nconst Model: ConfigurableInputTypeJson = {\n  _inputTypeKey: null,\n  defaultValue:  null\n}\n\nexport abstract class ConfigurableInputType extends StampedMediaType implements Jsonified<ConfigurableInputType, ConfigurableInputTypeJson>, ConfigurableInputTypeJson {\n  static override $model: ConfigurableInputTypeJson = ObjectUtil.assignDeep({}, StampedMediaType.$model, Model)\n\n  static TYPE_NAME: string\n  defaultValue?: any\n  _inputTypeKey?: string\n\n  constructor(config: any, key?: string) {\n    super(config, key)\n    this._inputTypeKey = this.getInputTypeKey()\n  }\n\n  abstract getInputTypeKey(): string\n\n  abstract isNumeric(): boolean\n\n  abstract createValue(valueConfig?: any, key?: string): ConfigurableInputIval\n\n  static register<T extends ConfigurableInputType>(inputTypeCtor: Type<T>) {\n    inputTypeRegistry[inputTypeCtor['TYPE_NAME']] = inputTypeCtor\n  }\n\n  static create(typeConfig: ConfigurableInputTypeJson, key?: string, inputTypeKey?: string) {\n    typeConfig = typeConfig || {}\n    key = key || typeConfig.$key\n    inputTypeKey = inputTypeKey || typeConfig._inputTypeKey\n    return new inputTypeRegistry[inputTypeKey](typeConfig, key)\n  }\n}\n","import {Jsonified, ObjectUtil} from '@tangential/core'\nimport {ConfigurableInputType, ConfigurableInputTypeJson} from '../configurable-input-type'\n\nimport {BooleanIval, BooleanIvalIF} from './boolean-ival'\n\nexport interface BooleanTypeIF extends ConfigurableInputTypeJson {\n  defaultValue?: boolean\n}\n\nconst Model: BooleanTypeIF = {\n  defaultValue: false\n}\n\nexport class BooleanType extends ConfigurableInputType implements Jsonified<BooleanType, BooleanTypeIF>, BooleanTypeIF {\n  static override $model: BooleanTypeIF = ObjectUtil.assignDeep({}, ConfigurableInputType.$model, Model)\n\n  static override TYPE_NAME = 'Boolean'\n  override defaultValue?: boolean\n\n\n  constructor(config?: BooleanTypeIF, key?: string) {\n    super(config || {}, key)\n  }\n\n  getInputTypeKey(): string {\n    return BooleanType.TYPE_NAME\n  }\n\n  isNumeric(): boolean {\n    return false\n  }\n\n  createValue(cfg?: BooleanIvalIF, key?: string): BooleanIval {\n    cfg = cfg || <any>{}\n    return new BooleanIval({\n      value: (cfg.value === true || cfg.value === false) ? cfg.value : this.defaultValue\n    }, key || this.$key);\n  }\n\n}\n\nConfigurableInputType.register(BooleanType)\n","import {Jsonified, ObjectUtil} from '@tangential/core'\n\nimport moment from 'moment'\nimport {ConfigurableInputIval, ConfigurableInputIvalJson} from '../configurable-input-ival'\n\nconst BROWSER_DATE_TIME_LOCAL_FORMAT = 'YYYY-MM-DDTHH:mm'\n\nexport interface DateTimeIvalIF extends ConfigurableInputIvalJson {\n  value?: number\n  recordedInTimeZone?: string\n}\n\nconst Model: DateTimeIvalIF = {\n  value:              0,\n  recordedInTimeZone: 'GMT'\n}\n\nexport class DateTimeIval extends ConfigurableInputIval implements Jsonified<DateTimeIval, DateTimeIvalIF>, DateTimeIvalIF {\n  static override $model: DateTimeIvalIF = ObjectUtil.assignDeep({}, ConfigurableInputIval.$model, Model)\n\n\n  override value: number\n  recordedInTimeZone: string\n\n  constructor(config?: DateTimeIvalIF, key?: string) {\n    super(config, key)\n    this.value = config.value || 0\n  }\n\n  override get uiValue(): string {\n    return moment(this.value).format(BROWSER_DATE_TIME_LOCAL_FORMAT)\n  }\n\n  override set uiValue(val: string) {\n    this.value = moment(val, BROWSER_DATE_TIME_LOCAL_FORMAT).valueOf()\n  }\n\n}\n","import {Jsonified, ObjectUtil} from '@tangential/core'\n\n\nimport moment from 'moment'\nimport {ConfigurableInputType, ConfigurableInputTypeJson} from '../configurable-input-type'\nimport {DateTimeIval, DateTimeIvalIF} from './date-time-ival'\n\nconst BROWSER_DATE_TIME_LOCAL_FORMAT = 'YYYY-MM-DDTHH:mm:ss'\n\nexport interface DateTimeTypeIF extends ConfigurableInputTypeJson {\n  afterMils?: number\n  beforeMils?: number\n  defaultValue?: number\n  defaultToNow?: boolean\n}\n\nconst Model: DateTimeTypeIF = {\n  afterMils:    null,\n  beforeMils:   null,\n  defaultValue: null,\n  defaultToNow: true\n}\n\nexport class DateTimeType extends ConfigurableInputType implements Jsonified<DateTimeType, DateTimeTypeIF>, DateTimeTypeIF {\n  static override $model: DateTimeTypeIF = ObjectUtil.assignDeep({}, ConfigurableInputType.$model, Model)\n  static override TYPE_NAME = 'DateTime'\n  afterMils?: number\n  beforeMils?: number\n  override defaultValue?: number\n  defaultToNow?: boolean\n\n  constructor(config?: DateTimeTypeIF, key?: string) {\n    super(config || {}, key)\n  }\n\n  getInputTypeKey(): string {\n    return DateTimeType.TYPE_NAME\n  }\n\n  get uiValue(): string {\n    return moment(this.defaultValue).format(BROWSER_DATE_TIME_LOCAL_FORMAT)\n  }\n\n  set uiValue(val: string) {\n    this.defaultValue = moment(val, BROWSER_DATE_TIME_LOCAL_FORMAT).valueOf()\n  }\n\n  isNumeric(): boolean {\n    return false\n  }\n\n  createValue(cfg?: DateTimeIvalIF, key?: string): DateTimeIval {\n    cfg = cfg || <any>{}\n    return new DateTimeIval({\n      value:              cfg.value || this.getDefaultValue(),\n      recordedInTimeZone: cfg.recordedInTimeZone || 'GMT'\n    }, key || this.$key);\n  }\n\n  getDefaultValue(): number {\n    return this.defaultToNow ? Date.now() : this.defaultValue\n  }\n\n\n}\n\nConfigurableInputType.register(DateTimeType)\n","import {Jsonified, ObjectUtil} from '@tangential/core'\nimport {ConfigurableInputIval, ConfigurableInputIvalJson} from '../configurable-input-ival'\n\n\nexport interface NumberIvalIF extends ConfigurableInputIvalJson {\n  value?: number\n}\n\nconst Model: NumberIvalIF = {\n  value: 0\n}\n\nexport class NumberIval extends ConfigurableInputIval implements Jsonified<NumberIval, NumberIvalIF>, NumberIvalIF {\n  static override $model: NumberIvalIF = ObjectUtil.assignDeep({}, ConfigurableInputIval.$model, Model)\n  override value: number\n\n\n  constructor(config?: NumberIvalIF, key?: string) {\n    super(config = config || {}, key)\n    this.value = config.value || 0\n  }\n\n}\n","import {Jsonified, ObjectUtil} from '@tangential/core'\n\nimport {ConfigurableInputType, ConfigurableInputTypeJson} from '../configurable-input-type'\nimport {NumberIval, NumberIvalIF} from './number-ival'\n\nexport interface NumberTypeIF extends ConfigurableInputTypeJson {\n  min?: number\n  max?: number\n  step?: number\n  decimalPlaces?: number\n  defaultValue?: number\n}\n\nconst Model: NumberTypeIF = {\n  min:           0,\n  max:           100,\n  step:          1,\n  decimalPlaces: 1,\n  defaultValue:  50\n}\n\nexport class NumberType extends ConfigurableInputType implements Jsonified<NumberType, NumberTypeIF>, NumberTypeIF {\n  static override $model: NumberTypeIF = ObjectUtil.assignDeep({}, ConfigurableInputType.$model, Model)\n\n\n  static override TYPE_NAME = 'Number'\n  min?: number\n  max?: number\n  step?: number\n  decimalPlaces?: number\n  override defaultValue?: number\n\n\n  constructor(config?: NumberTypeIF, key?: string) {\n    super(config || {}, key)\n  }\n\n  getInputTypeKey(): string {\n    return NumberType.TYPE_NAME\n  }\n\n  isNumeric(): boolean {\n    return true\n  }\n\n  createValue(cfg?: NumberIvalIF, key?: string): NumberIval {\n    cfg = cfg || <any>{}\n    return new NumberIval({\n      value: isNumeric(cfg.value) ? cfg.value : this.defaultValue\n    }, key || this.$key);\n  }\n}\n\n// Was once exposed. Alas. Thanks to https://github.com/angular/angular/blob/4.3.x/packages/common/src/pipes/number_pipe.ts#L172\nexport function isNumeric(value: any): boolean {\n  return !isNaN(value - parseFloat(value));\n}\n\nConfigurableInputType.register(NumberType)\n","import {Jsonified, ObjectUtil} from '@tangential/core'\n\nimport {isNumeric, NumberType, NumberTypeIF, NumberIval, NumberIvalIF} from '../number'\nimport {ConfigurableInputType} from '../configurable-input-type'\n\nexport interface DurationTypeJson extends NumberTypeIF {\n  min?: number\n  max?: number\n  step?: number\n  decimalPlaces?: number\n  defaultValue?: number\n}\n\nconst Model: DurationTypeJson = {\n  max:           null,\n  step:          1000,\n  decimalPlaces: 0,\n  defaultValue:  0\n}\n\nexport class DurationType extends NumberType implements Jsonified<DurationType, DurationTypeJson>, NumberTypeIF {\n  static override $model: NumberTypeIF = ObjectUtil.assignDeep({}, ConfigurableInputType.$model, Model)\n\n  static override TYPE_NAME = 'Duration'\n  override max?: number\n  override step?: number\n  override decimalPlaces?: number\n  override defaultValue?: number\n\n  constructor(config?: DurationTypeJson, key?: string) {\n    super(config || {}, key)\n  }\n\n  override getInputTypeKey(): string {\n    return DurationType.TYPE_NAME\n  }\n\n\n  override createValue(cfg?: NumberIvalIF, key?: string): NumberIval {\n    cfg = cfg || <any>{}\n    return new NumberIval({\n      value: isNumeric(cfg.value) ? cfg.value : this.defaultValue\n    }, key || this.$key);\n  }\n}\n\nConfigurableInputType.register(DurationType)\n","import {Jsonified, ObjectUtil} from '@tangential/core'\nimport {ConfigurableInputIval, ConfigurableInputIvalJson} from '../configurable-input-ival'\n\n\nexport interface TextIvalIF extends ConfigurableInputIvalJson {\n  value?: string\n}\n\nconst Model: TextIvalIF = {\n  value: ''\n}\n\nexport class TextIval extends ConfigurableInputIval implements Jsonified<TextIval, TextIvalIF>, TextIvalIF {\n  static override $model: TextIvalIF = ObjectUtil.assignDeep({}, ConfigurableInputIval.$model, Model)\n\n  override value: string\n\n  constructor(config?: TextIvalIF, key?: string) {\n    super(config, key)\n    this.value = config.value || ''\n  }\n}\n","import {Jsonified, ObjectUtil} from '@tangential/core'\nimport {ConfigurableInputType, ConfigurableInputTypeJson} from '../configurable-input-type'\nimport {TextIval, TextIvalIF} from './text-ival'\n\n\nexport interface TextTypeIF extends ConfigurableInputTypeJson {\n  maxLength?: number\n  minLength?: number\n  defaultValue?: string\n}\n\n/**\n * == Reporting\n * Text types can represent things like:\n *  * Quick notes, such as idea, or a Capture for 'I met a new person', and the persons name is the value.\n *  * Mood / Feeling\n *  * Name of a food eaten\n *  * Name of a place visited.\n *  * Name of a medication taken.\n *\n *\n * === Charts/Graphs\n * A text value is hard to plot in isolation. But consider the case of 'met a person'. In this case we could\n * plot time on the horizontal axis and number of people met per range. This would become a stacked bar chart?\n *\n * For something like mood, let's consider two cases:\n *   1) The capture is 'When' and 'Mood'. In this case we can have an arbitrary number of points in a day,\n *   and the user is probably going to want to correlate this value to time of day.\n *   - Go with a scatter plot, with days of the week on the X and hour of day on the Y, with the field as the point\n *     label.\n *   2) The capture is 'When', 'Feeling<text>', 'Weight<numeric>'.\n *\n */\n\n\nconst Model: TextTypeIF = {\n  maxLength:    50,\n  minLength:    0,\n  defaultValue: null\n}\n\nexport class TextType extends ConfigurableInputType implements Jsonified<TextType, TextTypeIF>, TextTypeIF {\n  static override $model: TextTypeIF = ObjectUtil.assignDeep({}, ConfigurableInputType.$model, Model)\n\n  static override TYPE_NAME = 'Text'\n  maxLength: number\n  minLength: number\n  override defaultValue: string\n\n  constructor(config?: TextTypeIF) {\n    super(config || {})\n  }\n\n  getInputTypeKey(): string {\n    return TextType.TYPE_NAME\n  }\n\n  isNumeric(): boolean {\n    return false\n  }\n\n  createValue(cfg?: TextIvalIF, key?: string): any {\n    cfg = cfg || <any>{}\n    return new TextIval({\n      value: cfg.value || this.defaultValue\n    }, key || this.$key);\n  }\n\n}\n\nConfigurableInputType.register(TextType)\n","export type InputViewMode = 'CONFIGURE' | 'EDIT' | 'VIEW' | 'PREVIEW';\n\n\nexport const InputViewModes = {\n  CONFIGURE: <InputViewMode>'CONFIGURE',\n  EDIT:      <InputViewMode>'EDIT',\n  PREVIEW:   <InputViewMode>'PREVIEW',\n  VIEW:      <InputViewMode>'VIEW',\n}\n","import {Type} from '@angular/core'\nimport {\n  Jsonified,\n  ObjectUtil\n} from '@tangential/core'\nimport {\n  StampedMediaType,\n  StampedMediaTypeJson\n} from '@tangential/media-types'\nimport {\n  ConfigurableInputType,\n  ConfigurableInputTypeJson\n} from './data-type/configurable-input-type'\n\n\nexport interface InputConfigJson extends StampedMediaTypeJson {\n  $isSystem?: boolean\n  _inputName?: string\n  orderIndex?: number\n  disabled?: boolean\n  label?: string\n  typeConfig?: ConfigurableInputTypeJson\n}\n\nconst Model: InputConfigJson = {\n  $isSystem:  false,\n  _inputName: null,\n  orderIndex: null,\n  disabled:   false,\n  label:      'Label for this value',\n  typeConfig: null\n}\n\nconst inputConfigRegistry = {}\n\nexport abstract class InputConfig extends StampedMediaType implements Jsonified<InputConfig, InputConfigJson>, InputConfigJson {\n  static override $model: InputConfigJson = ObjectUtil.assignDeep({}, StampedMediaType.$model, Model)\n\n  static INPUT_NAME: string\n  $isSystem: boolean\n  _inputName: string\n  orderIndex?: number\n  disabled?: boolean\n  label: string\n  typeConfig?: ConfigurableInputType\n\n  constructor(_inputName: string, config: InputConfigJson, key?: string) {\n    super(config, key)\n    this._inputName = _inputName\n    this.typeConfig = ConfigurableInputType.create(this.typeConfig)\n    if (this.$key === 'when') {\n      this.$isSystem = true\n    }\n  }\n\n  abstract getDemoInstance()\n\n  static register<T extends InputConfig>(inputConfigCtor: Type<T>) {\n    inputConfigRegistry[inputConfigCtor['INPUT_NAME']] = inputConfigCtor\n  }\n\n  static create(config: InputConfigJson, key?: string, inputName?: string) {\n    key = key || (config ? config.$key : null)\n    inputName = inputName || (config ? config._inputName : null)\n    return new inputConfigRegistry[inputName](config, key)\n  }\n}\n","import {Jsonified, ObjectUtil} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {BooleanType, BooleanTypeIF} from '../../data-type/boolean/boolean-type'\nimport {InputConfig, InputConfigJson} from '../../input-config'\n\n\nexport interface CheckboxConfigIF extends InputConfigJson {\n  labelPosition?: 'before' | 'after'\n  typeConfig?: BooleanTypeIF\n}\n\nconst Model: CheckboxConfigIF = {\n  label:         'Checkbox',\n  labelPosition: 'before',\n  disabled:      false,\n  typeConfig:    {\n    _inputTypeKey: BooleanType.TYPE_NAME,\n    defaultValue:  false\n  }\n}\n\n\nconst demoConfig: CheckboxConfigIF = ObjectUtil.assignDeep({}, Model, {\n  label:         'Checkbox',\n  labelPosition: 'before',\n  typeConfig:    <BooleanTypeIF>{}\n})\n\nexport class CheckboxWidgetConfig extends InputConfig implements Jsonified<CheckboxWidgetConfig, CheckboxConfigIF>, CheckboxConfigIF {\n  static override $model: CheckboxConfigIF = ObjectUtil.assignDeep({}, InputConfig.$model, Model)\n  static override INPUT_NAME = 'Checkbox'\n  labelPosition: 'before' | 'after'\n  override disabled: boolean\n  override typeConfig: BooleanType\n\n  constructor(config?: CheckboxConfigIF, key?: string) {\n    super(CheckboxWidgetConfig.INPUT_NAME, config, key)\n    this.typeConfig = new BooleanType(this.typeConfig)\n  }\n\n  getDemoInstance(): InputConfigJson {\n    return new CheckboxWidgetConfig(demoConfig)\n  }\n\n\n}\nInputConfig.register(CheckboxWidgetConfig)\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {Hacks} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {BooleanIval} from '../../data-type/boolean/boolean-ival'\nimport {\n  InputViewMode,\n  InputViewModes\n} from '../../support/input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../../support/template-components/input-template-component/input-template.component'\nimport {CheckboxWidgetConfig} from './checkbox-widget-config'\n\n\n@Component({\n  selector:      'tanj-checkbox-widget-template',\n  template:      `\n                   <ng-container *ngIf=\"mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT  \">\n                     <tanj-checkbox-widget\n                       [labelPosition]=\"config.labelPosition\"\n                       [disabled]=\" mode == viewModes.PREVIEW || config.disabled\"\n                       [(value)]=\"ival.value\"\n                       [label]=\"config.label\"\n                       [defaultValue]=\"config.typeConfig.defaultValue\">\n                     </tanj-checkbox-widget>\n                   </ng-container>\n                   <ng-container *ngIf=\"mode == viewModes.CONFIGURE\">\n                     <tanj-checkbox-widget-configure\n                       [labelPosition]=\"config.labelPosition\"\n                       [disabled]=\"config.disabled\"\n                       [(value)]=\"ival.value\"\n                       [(label)]=\"config.label\"\n                       [(defaultValue)]=\"config.typeConfig.defaultValue\">\n                     </tanj-checkbox-widget-configure>\n                   </ng-container>\n                 `,\n  encapsulation: ViewEncapsulation.None\n})\nexport class CheckboxWidgetTemplateComponent implements OnInit, InputTemplateIF {\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  /* Support for dynamic use. */\n  @Input() config: CheckboxWidgetConfig\n  /* Support for dynamic use. */\n  @Input() ival: BooleanIval\n\n  @Input() mode = <InputViewMode> InputViewModes.VIEW\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  viewModes = InputViewModes\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n}\n","import {\n  Jsonified,\n  ObjectUtil\n} from '@tangential/core'\nimport moment from 'moment'\n//noinspection ES6PreferShortImport\nimport {\n  DateTimeType,\n  DateTimeTypeIF\n} from '../../data-type/date-time/date-time-type'\n//noinspection ES6PreferShortImport\nimport {NumberType} from '../../data-type/number/number-type'\nimport {\n  InputConfig,\n  InputConfigJson\n} from '../../input-config'\n\n\nexport interface DateTimeInputConfigIF extends InputConfigJson {\n  labelPosition?: 'before' | 'after'\n  disabled?: boolean\n  format?: string\n  typeConfig?: DateTimeTypeIF\n}\n\nconst Model: DateTimeInputConfigIF = {\n  label:         'Date & Time',\n  labelPosition: 'before',\n  disabled:      false,\n  format:        'YYYY-MM-dd HH:mm:ss',\n\n  typeConfig: <DateTimeTypeIF>{\n    _inputTypeKey: NumberType.TYPE_NAME,\n    defaultToNow:  true,\n    beforeMils:    null,\n    afterMils:     null,\n    defaultValue:  moment().startOf('hour').valueOf()\n  }\n}\n\n\nconst demoConfig: DateTimeInputConfigIF = Object.assign({}, Model)\nconsole.log('Loading DateTimeInputConfig', '')\nexport class DateTimeInputConfig extends InputConfig\n  implements Jsonified<DateTimeInputConfig, DateTimeInputConfigIF>, DateTimeInputConfigIF {\n  static override $model: DateTimeInputConfigIF = ObjectUtil.assignDeep({}, InputConfig.$model, Model)\n\n  static override INPUT_NAME = 'DateTimeInput'\n  labelPosition: 'before' | 'after'\n  override disabled: boolean\n  override typeConfig: DateTimeType\n\n\n  constructor(config?: DateTimeInputConfigIF, key?: string) {\n    super(DateTimeInputConfig.INPUT_NAME, config || {}, key)\n    this.typeConfig = new DateTimeType(this.typeConfig)\n  }\n\n  getDemoInstance(): InputConfigJson {\n    return new DateTimeInputConfig(demoConfig)\n  }\n\n\n}\n\nInputConfig.register(DateTimeInputConfig)\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {Hacks} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {DateTimeIval} from '../../data-type/date-time/date-time-ival'\nimport {\n  InputViewMode,\n  InputViewModes\n} from '../../support/input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../../support/template-components/input-template-component/input-template.component'\nimport {DateTimeInputConfig} from './date-time-input-config'\n@Component({\n  template:      `<!-- -->\n  <ng-container *ngIf=\"mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT  \">\n    <tanj-date-time-widget [labelPosition]=\"config.labelPosition\"\n                          [disabled]=\"mode === viewModes.PREVIEW || config.disabled\"\n                          [label]=\"config.label\"\n                          [(value)]=\"ival.value\"\n                          [defaultToNow]=\"config.typeConfig.defaultToNow\"\n                          [defaultValue]=\"config.typeConfig.defaultValue\">\n\n    </tanj-date-time-widget>\n  </ng-container>\n  <ng-container *ngIf=\"mode == viewModes.CONFIGURE\">\n    <tanj-date-time-configure\n      [labelPosition]=\"config.labelPosition\"\n      [(label)]=\"config.label\"\n      [(value)]=\"ival.value\"\n      [(defaultValue)]=\"config.typeConfig.defaultValue\"\n      [(defaultToNow)]=\"config.typeConfig.defaultToNow\">\n    </tanj-date-time-configure>\n  </ng-container>\n\n                 `,\n  encapsulation: ViewEncapsulation.None\n})\nexport class DateTimeTemplateComponent implements OnInit, InputTemplateIF {\n\n  @Input() config: DateTimeInputConfig\n  @Input() ival: DateTimeIval\n  @Input() mode = <InputViewMode>null\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  viewModes = InputViewModes\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n\n  }\n\n  ngOnInit(): void {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n}\n","import {\n  Jsonified,\n  ObjectUtil\n} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {\n  DurationType,\n  DurationTypeJson\n} from '../../data-type/duration/duration-type'\nimport {\n  InputConfig,\n  InputConfigJson\n} from '../../input-config'\n\nexport interface DurationFieldShowingState {\n  day?: boolean\n  h?: boolean\n  min?: boolean\n  s?: boolean\n  ms?: boolean\n}\n\nexport interface DurationPickerConfigIF extends InputConfigJson {\n  labelPosition?: 'before' | 'after' | 'below'\n  showDurationFields?: DurationFieldShowingState\n  typeConfig?: DurationTypeJson,\n}\n\nconst Model: DurationPickerConfigIF = {\n  label:              'Duration',\n  labelPosition:      'before',\n  showDurationFields: null,\n  typeConfig:         <DurationTypeJson>{\n    _inputTypeKey: DurationType.TYPE_NAME,\n    defaultValue:  0\n  }\n}\n\nconst demoConfig: DurationPickerConfigIF = Object.assign({}, Model)\n\nexport class DurationPickerConfig extends InputConfig\n  implements Jsonified<DurationPickerConfig, DurationPickerConfigIF>, DurationPickerConfigIF {\n  static override $model: DurationPickerConfigIF = ObjectUtil.assignDeep({}, InputConfig.$model, Model)\n\n  static override INPUT_NAME = 'DurationPickerConfig'\n  labelPosition: 'before' | 'after' | 'below' = 'before'\n  override disabled: boolean\n  showDurationFields?: DurationFieldShowingState\n  override typeConfig: DurationType\n\n  constructor(config?: DurationPickerConfigIF, key?: string) {\n    super(DurationPickerConfig.INPUT_NAME, config || {}, key)\n    this.typeConfig = new DurationType(this.typeConfig)\n    if (!this.showDurationFields) {\n      this.showDurationFields = {\n        min: true,\n        s:   true,\n        ms:  true\n      }\n    }\n  }\n\n  getDemoInstance(): InputConfigJson {\n    return new DurationPickerConfig(demoConfig)\n  }\n\n}\n\nInputConfig.register(DurationPickerConfig)\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {Hacks} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {NumberIval} from '../../data-type/number/number-ival'\nimport {\n  InputViewMode,\n  InputViewModes\n} from '../../support/input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../../support/template-components/input-template-component/input-template.component'\nimport {DurationPickerConfig} from './duration-picker-config'\n\n\n@Component({\n  template:      `<!-- -->\n  <ng-container *ngIf=\"mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT  \">\n    <tanj-duration-picker-widget\n      [(value)]=\"ival.value\"\n      [labelPosition]=\"config.labelPosition\"\n      [disabled]=\"mode === viewModes.PREVIEW || config.disabled\"\n      [label]=\"config.label\"\n      [showDays]=\"config?.showDurationFields.day\"\n      [showHours]=\"config?.showDurationFields.h\"\n      [showMinutes]=\"config?.showDurationFields.min\"\n      [showSeconds]=\"config?.showDurationFields.s\"\n      [showMilliseconds]=\"config?.showDurationFields.ms\"\n      [max]=\"config.typeConfig.max\">\n\n    </tanj-duration-picker-widget>\n  </ng-container>\n  <ng-container *ngIf=\"mode == viewModes.CONFIGURE\">\n    <tanj-duration-picker-widget-configure\n      [labelPosition]=\"config.labelPosition\"\n      [(label)]=\"config.label\"\n      [(value)]=\"ival.value\"\n      [(defaultValue)]=\"config.typeConfig.defaultValue\"\n      [(showDays)]=\"config?.showDurationFields.day\"\n      [(showHours)]=\"config?.showDurationFields.h\"\n      [(showMinutes)]=\"config?.showDurationFields.min\"\n      [(showSeconds)]=\"config?.showDurationFields.s\"\n      [(showMilliseconds)]=\"config?.showDurationFields.ms\"\n      [(max)]=\"config.typeConfig.max\">\n\n    </tanj-duration-picker-widget-configure>\n  </ng-container>\n\n                 `,\n  encapsulation: ViewEncapsulation.None\n})\nexport class DurationPickerTemplateComponent implements OnInit, InputTemplateIF {\n\n  @Input() config: DurationPickerConfig\n  @Input() ival: NumberIval\n  @Input() mode = <InputViewMode>null\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  viewModes = InputViewModes\n\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n\n  }\n\n  ngOnInit(): void {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n}\n","import {ObjectUtil} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {NumberType, NumberTypeIF} from '../../data-type/number/number-type'\nimport {InputConfig, InputConfigJson} from '../../input-config'\n\n\nexport interface IconRatingWidgetConfigIF extends InputConfigJson {\n  labelPosition?: 'before' | 'after' | 'below'\n  disabled?: boolean\n  typeConfig?: NumberTypeIF\n  iconCount?: number\n  iconFont?: string\n  offIconNames?: string[]\n  onIconNames?: string[]\n}\nconst defaultIconCount = 5\nconst Model: IconRatingWidgetConfigIF = {\n  label:         'Rating',\n  labelPosition: 'below',\n  iconFont:      'material-icons',\n  offIconNames:  [\n    'star_border'\n  ],\n  onIconNames:   [\n    'star'\n  ],\n  disabled:      false,\n  typeConfig:    <NumberTypeIF>{\n    _inputTypeKey: NumberType.TYPE_NAME,\n    defaultValue:  defaultIconCount - 1,\n    min:           0,\n    max:           defaultIconCount,\n    step:          1,\n    decimalPlaces: 0,\n  }\n}\n\nconst demoConfig: IconRatingWidgetConfigIF = Object.assign({}, Model)\n\nexport class IconRatingWidgetConfig extends InputConfig implements IconRatingWidgetConfigIF {\n  static override $model: IconRatingWidgetConfigIF = ObjectUtil.assignDeep({}, InputConfig.$model, Model)\n  static override INPUT_NAME = 'IconRatingWidget'\n  labelPosition: 'before' | 'after' | 'below'\n  override disabled: boolean\n  override typeConfig: NumberType\n  iconCount?: number\n  iconFont?: string\n  offIconNames?: string[]\n  onIconNames?: string[]\n\n  constructor(config?: IconRatingWidgetConfigIF, key?: string) {\n    super(IconRatingWidgetConfig.INPUT_NAME, config || {}, key)\n    this.typeConfig = new NumberType(this.typeConfig)\n    if (this.typeConfig.max > 10) {\n      this.typeConfig.max = 10\n    }\n  }\n\n  getDemoInstance(): InputConfigJson {\n    return new IconRatingWidgetConfig(demoConfig)\n  }\n\n}\n\nInputConfig.register(IconRatingWidgetConfig)\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {Hacks} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {NumberIval} from '../../data-type/number/number-ival'\nimport {InputViewMode, InputViewModes} from '../../support/input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../../support/template-components/input-template-component/input-template.component'\nimport {IconRatingWidgetConfig} from './icon-rating-widget-config'\n\n\n@Component({\n  selector:      'tanj-icon-rating-widget-template',\n  template:      `\n                   <ng-container *ngIf=\"mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT  \">\n                     <tanj-icon-rating-widget\n                       [labelPosition]=\"config.labelPosition\"\n                       [disabled]=\" mode == viewModes.PREVIEW || config.disabled\"\n                       [(value)]=\"ival.value\"\n                       [label]=\"config.label\"\n                       [defaultValue]=\"config.typeConfig.defaultValue\"\n                       [max]=\"config.typeConfig.max\"\n                       [iconFont]=\"config.iconFont\"\n                       [offIconNames]=\"config.offIconNames\"\n                       [onIconNames]=\"config.onIconNames\">\n                     </tanj-icon-rating-widget>\n                   </ng-container>\n                   <ng-container *ngIf=\"mode == viewModes.CONFIGURE\">\n                     <tanj-icon-rating-widget-configure\n                       [labelPosition]=\"config.labelPosition\"\n                       [disabled]=\"config.disabled\"\n                       [(value)]=\"ival.value\"\n                       [(label)]=\"config.label\"\n                       [(defaultValue)]=\"config.typeConfig.defaultValue\"\n                       [(max)]=\"config.typeConfig.max\"\n                       [(iconFont)]=\"config.iconFont\"\n                       [(offIconNames)]=\"config.offIconNames\"\n                       [(onIconNames)]=\"config.onIconNames\">\n                     </tanj-icon-rating-widget-configure>\n                   </ng-container>\n                 `,\n  encapsulation: ViewEncapsulation.None\n})\nexport class IconRatingWidgetTemplateComponent implements OnInit, InputTemplateIF {\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  /* Support for dynamic use. */\n  @Input() config: IconRatingWidgetConfig\n  /* Support for dynamic use. */\n  @Input() ival: NumberIval\n\n  @Input() mode = <InputViewMode> InputViewModes.VIEW\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  viewModes = InputViewModes\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n\n  emitChangeEvent() {\n    this.change.emit()\n  }\n\n}\n","import {ObjectUtil} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {NumberType, NumberTypeIF} from '../../data-type/number/number-type'\nimport {InputConfig, InputConfigJson} from '../../input-config'\n\n\nexport interface NumberInputConfigIF extends InputConfigJson {\n  labelPosition?: 'before' | 'after'\n  disabled?: boolean\n  typeConfig?: NumberTypeIF\n}\n\nconst Model: NumberInputConfigIF = {\n  label:         'Number',\n  labelPosition: 'before',\n  disabled:      false,\n  typeConfig:    <NumberTypeIF>{\n    _inputTypeKey: NumberType.TYPE_NAME,\n    defaultValue:  0\n  }\n}\n\nconst demoConfig: NumberInputConfigIF = Object.assign({}, Model)\n\nexport class NumberInputConfig extends InputConfig implements NumberInputConfigIF {\n  static override $model: NumberInputConfigIF = ObjectUtil.assignDeep({}, InputConfig.$model, Model)\n\n  static override INPUT_NAME = 'NumberInput'\n  labelPosition: 'before' | 'after'\n  override disabled: boolean\n  override typeConfig: NumberType\n\n  constructor(config?: NumberInputConfigIF, key?: string) {\n    super(NumberInputConfig.INPUT_NAME, config || {}, key)\n    this.typeConfig = new NumberType(this.typeConfig)\n  }\n\n  getDemoInstance(): InputConfigJson {\n    return new NumberInputConfig(demoConfig)\n  }\n\n}\n\nInputConfig.register(NumberInputConfig)\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {Hacks} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {NumberIval} from '../../data-type/number/number-ival'\nimport {\n  InputViewMode,\n  InputViewModes\n} from '../../support/input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../../support/template-components/input-template-component/input-template.component'\nimport {NumberInputConfig} from './number-input-config'\n@Component({\n  template:      `<!-- -->\n  <ng-container *ngIf=\"mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT  \">\n    <tanj-number-widget [labelPosition]=\"config.labelPosition\"\n                       [disabled]=\"mode === viewModes.PREVIEW || config.disabled\"\n                       [label]=\"config.label\"\n                       [(value)]=\"ival.value\"\n                       [max]=\"config.typeConfig.max\"\n                       [min]=\"config.typeConfig.min\"\n                       [decimalPlaces]=\"config.typeConfig.decimalPlaces\"\n                       [step]=\"config.typeConfig.step\">\n\n    </tanj-number-widget>\n  </ng-container>\n  <ng-container *ngIf=\"mode == viewModes.CONFIGURE\">\n    <tanj-number-configure\n      [labelPosition]=\"config.labelPosition\"\n      [(label)]=\"config.label\"\n      [(value)]=\"ival.value\"\n      [(defaultValue)]=\"config.typeConfig.defaultValue\"\n      [(max)]=\"config.typeConfig.max\"\n      [(min)]=\"config.typeConfig.min\"\n      [(decimalPlaces)]=\"config.typeConfig.decimalPlaces\"\n      [(step)]=\"config.typeConfig.step\">\n\n    </tanj-number-configure>\n  </ng-container>\n\n                 `,\n  encapsulation: ViewEncapsulation.None\n})\nexport class NumberTemplateComponent implements OnInit, InputTemplateIF {\n\n  @Input() config: NumberInputConfig\n  @Input() ival: NumberIval\n  @Input() mode = <InputViewMode>null\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  viewModes = InputViewModes\n\n\n  constructor(private _changeDetector: ChangeDetectorRef) {\n\n  }\n\n  ngOnInit(): void {\n    Hacks.materialDesignPlaceholderText(this._changeDetector)\n  }\n\n\n}\n","import {ObjectUtil} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {NumberType, NumberTypeIF} from '../../data-type/number/number-type'\nimport {InputConfig, InputConfigJson} from '../../input-config'\n\n\nexport interface NumberSliderConfigIF extends InputConfigJson {\n  labelPosition?: 'before' | 'after' | 'below'\n  disabled?: boolean\n  typeConfig?: NumberTypeIF\n}\n\nconst Model: NumberSliderConfigIF = {\n  label:         'Number Slider',\n  labelPosition: 'below',\n  disabled:      false,\n  typeConfig:    <NumberTypeIF>{\n    _inputTypeKey: NumberType.TYPE_NAME,\n    defaultValue:  0\n  }\n}\n\nconst demoConfig: NumberSliderConfigIF = Object.assign({}, Model)\n\nexport class NumberSliderConfig extends InputConfig implements NumberSliderConfigIF {\n  static override $model: NumberSliderConfigIF = ObjectUtil.assignDeep({}, InputConfig.$model, Model)\n\n  static override INPUT_NAME = 'NumberSlider'\n  labelPosition: 'before' | 'after' | 'below'\n  override disabled: boolean\n  override typeConfig: NumberType\n\n  constructor(config?: NumberSliderConfigIF, key?: string) {\n    super(NumberSliderConfig.INPUT_NAME, config || {}, key)\n    this.typeConfig = new NumberType(this.typeConfig)\n  }\n\n  getDemoInstance(): InputConfigJson {\n    return new NumberSliderConfig(demoConfig)\n  }\n\n}\n\nInputConfig.register(NumberSliderConfig)\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {Hacks} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {NumberIval} from '../../data-type/number/number-ival'\nimport {\n  InputViewMode,\n  InputViewModes\n} from '../../support/input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../../support/template-components/input-template-component/input-template.component'\nimport {NumberSliderConfig} from './number-slider-config'\n@Component({\n  template:      `<!-- -->\n  <ng-container *ngIf=\"mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT  \">\n    <tanj-number-slider-widget [labelPosition]=\"config.labelPosition\"\n                              [disabled]=\"mode === viewModes.PREVIEW || config.disabled\"\n                              [label]=\"config.label\"\n                              [(value)]=\"ival.value\"\n                              [max]=\"config.typeConfig.max\"\n                              [min]=\"config.typeConfig.min\"\n                              [decimalPlaces]=\"config.typeConfig.decimalPlaces\"\n                              [step]=\"config.typeConfig.step\">\n\n    </tanj-number-slider-widget>\n  </ng-container>\n  <ng-container *ngIf=\"mode == viewModes.CONFIGURE\">\n    <tanj-number-slider-configure\n      [labelPosition]=\"config.labelPosition\"\n      [(label)]=\"config.label\"\n      [(value)]=\"ival.value\"\n      [(defaultValue)]=\"config.typeConfig.defaultValue\"\n      [(max)]=\"config.typeConfig.max\"\n      [(min)]=\"config.typeConfig.min\"\n      [(decimalPlaces)]=\"config.typeConfig.decimalPlaces\"\n      [(step)]=\"config.typeConfig.step\">\n\n    </tanj-number-slider-configure>\n  </ng-container>\n\n                 `,\n  encapsulation: ViewEncapsulation.None\n})\nexport class NumberSliderTemplateComponent implements OnInit, InputTemplateIF {\n\n  @Input() config: NumberSliderConfig\n  @Input() ival: NumberIval\n  @Input() mode = <InputViewMode>null\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  viewModes = InputViewModes\n\n\n  constructor(private _changeDetector: ChangeDetectorRef) {\n\n  }\n\n  ngOnInit(): void {\n    Hacks.materialDesignPlaceholderText(this._changeDetector)\n  }\n\n}\n","import {ObjectUtil} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {NumberType, NumberTypeIF} from '../../data-type/number/number-type'\nimport {InputConfig, InputConfigJson} from '../../input-config'\n\n\nexport interface NumberSpinnerConfigIF extends InputConfigJson {\n  labelPosition?: 'before' | 'after' | 'below'\n  disabled?: boolean\n  typeConfig?: NumberTypeIF\n}\n\nconst Model: NumberSpinnerConfigIF = {\n  label:         'Number Spinner',\n  labelPosition: 'before',\n  disabled:      false,\n  typeConfig:    <NumberTypeIF>{\n    _inputTypeKey: NumberType.TYPE_NAME,\n    defaultValue:  0\n  }\n}\n\nconst demoConfig: NumberSpinnerConfigIF = Object.assign({}, Model, {\n  label: 'Number Spinner'\n})\n\nexport class NumberSpinnerConfig extends InputConfig implements NumberSpinnerConfigIF {\n  static override $model: NumberSpinnerConfigIF = ObjectUtil.assignDeep({}, InputConfig.$model, Model)\n\n  static override INPUT_NAME = 'NumberSpinner'\n  labelPosition: 'before' | 'after' | 'below'\n  override disabled: boolean\n  override typeConfig: NumberType\n\n  constructor(config?: NumberSpinnerConfigIF, key?: string) {\n    super(NumberSpinnerConfig.INPUT_NAME, config || {}, key)\n    this.typeConfig = new NumberType(super.typeConfig)\n  }\n\n  getDemoInstance(): InputConfigJson {\n    return new NumberSpinnerConfig(demoConfig)\n  }\n\n}\n\nInputConfig.register(NumberSpinnerConfig)\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {Hacks} from '@tangential/core'\nimport {NumberType} from '../../data-type'\n//noinspection ES6PreferShortImport\nimport {NumberIval} from '../../data-type/number/number-ival'\nimport {\n  InputViewMode,\n  InputViewModes\n} from '../../support/input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../../support/template-components/input-template-component/input-template.component'\nimport {NumberSpinnerConfig} from './number-spinner-config'\n@Component({\n  template:      `<!-- -->\n  <ng-container *ngIf=\"mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT  \">\n    <tanj-number-spinner-widget [labelPosition]=\"config.labelPosition\"\n                               [disabled]=\"mode === viewModes.PREVIEW || config.disabled\"\n                               [label]=\"config.label\"\n                               [(value)]=\"ival.value\"\n                               [max]=\"config.typeConfig.max\"\n                               [min]=\"config.typeConfig.min\"\n                               [step]=\"config.typeConfig.step\">\n\n    </tanj-number-spinner-widget>\n  </ng-container>\n  <ng-container *ngIf=\"mode == viewModes.CONFIGURE\">\n    <tanj-number-spinner-configure\n      [labelPosition]=\"config.labelPosition\"\n      [(label)]=\"config.label\"\n      [(value)]=\"ival.value\"\n      [(defaultValue)]=\"config.typeConfig.defaultValue\"\n      [(max)]=\"config.typeConfig.max\"\n      [(min)]=\"config.typeConfig.min\"\n      [(step)]=\"config.typeConfig.step\">\n\n    </tanj-number-spinner-configure>\n  </ng-container>\n\n                 `,\n  encapsulation: ViewEncapsulation.None\n})\nexport class NumberSpinnerTemplateComponent implements OnInit, InputTemplateIF {\n\n  @Input() config: NumberSpinnerConfig = new NumberSpinnerConfig()\n  @Input() ival: NumberIval = NumberType.create({})\n  @Input() mode: InputViewMode = InputViewModes.VIEW\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  viewModes = InputViewModes\n\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n  ngOnInit(): void {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n}\n","import {Jsonified, ObjectUtil} from '@tangential/core'\n//noinspection ES6PreferShortImport\nimport {BooleanType, BooleanTypeIF} from '../../data-type/boolean/boolean-type'\nimport {InputConfig, InputConfigJson} from '../../input-config'\n\n\nexport interface SlideToggleConfigIF extends InputConfigJson {\n  labelPosition?: 'before' | 'after'\n  disabled?: boolean\n  typeConfig?: BooleanTypeIF\n}\n\nconst Model: SlideToggleConfigIF = {\n  label:         'Slide Toggle',\n  labelPosition: 'before',\n  disabled:      false,\n  typeConfig:    <BooleanTypeIF>{\n    _inputTypeKey: BooleanType.TYPE_NAME,\n    defaultValue:  false\n  }\n}\n\n\nconst demoConfig: SlideToggleConfigIF = {\n  label:         'Slide Toggle',\n  labelPosition: 'before',\n  disabled:      false,\n  typeConfig:    <BooleanTypeIF>{\n    _inputTypeKey: BooleanType.TYPE_NAME,\n    defaultValue:  false\n  }\n}\n\nexport class SlideToggleConfig extends InputConfig implements Jsonified<SlideToggleConfig, SlideToggleConfigIF>, SlideToggleConfigIF {\n  static override  $model: SlideToggleConfigIF = ObjectUtil.assignDeep({}, InputConfig.$model, Model)\n\n  static override INPUT_NAME = 'SlideToggle'\n  labelPosition: 'before' | 'after' = 'before'\n  override disabled: boolean = false\n  override typeConfig: BooleanType\n\n  constructor(config?: SlideToggleConfigIF, key?: string) {\n    super(SlideToggleConfig.INPUT_NAME, config || {}, key)\n    this.typeConfig = new BooleanType(super.typeConfig)\n  }\n\n  getDemoInstance(): InputConfigJson {\n    return new SlideToggleConfig(demoConfig)\n  }\n}\nInputConfig.register(SlideToggleConfig)\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {Hacks} from '@tangential/core'\nimport {BooleanType} from '../../data-type'\n//noinspection ES6PreferShortImport\nimport {BooleanIval} from '../../data-type/boolean/boolean-ival'\nimport {InputViewMode, InputViewModes} from '../../support/input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../../support/template-components/input-template-component/input-template.component'\nimport {SlideToggleConfig} from './slide-toggle-widget-config'\n\n\n@Component({\n  selector:      'tanj-slide-toggle-widget-template',\n  template:      `\n                   <ng-container *ngIf=\"mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT  \">\n                     <tanj-slide-toggle-widget\n                       [labelPosition]=\"config.labelPosition\"\n                       [disabled]=\" mode == viewModes.PREVIEW || config.disabled\"\n                       [(value)]=\"ival.value\"\n                       [label]=\"config.label\"\n                       [defaultValue]=\"config.typeConfig.defaultValue\">\n                     </tanj-slide-toggle-widget>\n                   </ng-container>\n                   <ng-container *ngIf=\"mode == viewModes.CONFIGURE\">\n                     <tanj-slide-toggle-widget-configure\n                       [labelPosition]=\"config.labelPosition\"\n                       [disabled]=\"config.disabled\"\n                       [(value)]=\"ival.value\"\n                       [(label)]=\"config.label\"\n                       [(defaultValue)]=\"config.typeConfig.defaultValue\">\n                     </tanj-slide-toggle-widget-configure>\n                   </ng-container>\n                 `,\n  encapsulation: ViewEncapsulation.None\n})\nexport class SlideToggleWidgetTemplateComponent implements OnInit, InputTemplateIF {\n\n  @HostBinding('attr.flex') flex = '';\n  @HostBinding('attr.layout') flexLayout = 'column';\n  @HostBinding('attr.layout-align') flexLayoutAlign = 'start';\n\n  /* Support for dynamic use. */\n  @Input() config: SlideToggleConfig | undefined\n  /* Support for dynamic use. */\n  @Input() ival: BooleanIval = BooleanType.create({})\n\n  @Input() mode = <InputViewMode> InputViewModes.VIEW\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  viewModes = InputViewModes\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) {\n  }\n\n\n  ngOnInit() {\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n}\n","import {Jsonified, ObjectUtil} from '@tangential/core'\nimport {TextType, TextTypeIF} from '../../data-type/text/text-type'\nimport {InputConfig, InputConfigJson} from '../../input-config'\n\n\nexport interface TextInputConfigIF extends InputConfigJson {\n  labelPosition?: 'before' | 'after' | 'below'\n  disabled?: boolean\n  typeConfig?: TextTypeIF\n}\n\nconst Model: TextInputConfigIF = {\n  label:         'Short Text',\n  labelPosition: 'before',\n  disabled:      false,\n  typeConfig:    {\n    _inputTypeKey: TextType.TYPE_NAME,\n    maxLength:     100,\n    defaultValue:  undefined\n  }\n}\n\nconst demoConfig: TextInputConfigIF = ObjectUtil.assignDeep({}, Model, {\n  typeConfig: {\n    maxLength:    100,\n    defaultValue: undefined\n  }\n})\n\nexport class TextInputConfig extends InputConfig implements Jsonified<TextInputConfig, TextInputConfigIF>, TextInputConfigIF {\n  static override $model: TextInputConfigIF = ObjectUtil.assignDeep({}, InputConfig.$model, Model)\n\n  static override INPUT_NAME = 'TextInput'\n  labelPosition: 'before' | 'after' | 'below' = 'before'\n\n  /** @todo: ggranum: Verify we need these fields (they already exist on superclass) */\n  override disabled: boolean = false\n  override typeConfig: TextType\n\n  constructor(config?: TextInputConfigIF, key?: string) {\n    super(TextInputConfig.INPUT_NAME, config || {}, key)\n    /** @todo: ggranum: Verify this change (this.typeConfig to super.typeConfig) works. */\n    this.typeConfig = new TextType(super.typeConfig || {})\n  }\n\n  getDemoInstance(): InputConfigJson {\n    return new TextInputConfig(demoConfig)\n  }\n\n}\n\nInputConfig.register(TextInputConfig)\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewEncapsulation\n} from '@angular/core'\nimport {Hacks} from '@tangential/core'\nimport {TextIval} from '../../data-type/text/text-ival'\nimport {\n  InputViewMode,\n  InputViewModes\n} from '../../support/input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../../support/template-components/input-template-component/input-template.component'\nimport {TextInputConfig} from './text-input-config'\n@Component({\n  template:      `<!-- -->\n  <ng-container *ngIf=\"mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT  \">\n    <tanj-text-widget [labelPosition]=\"config.labelPosition\"\n                     [disabled]=\"mode === viewModes.PREVIEW || config.disabled\"\n                     [label]=\"config.label\"\n                     [(value)]=\"ival.value\"\n                     [maxLength]=\"config.typeConfig.maxLength\"\n                     [minLength]=\"config.typeConfig.minLength\">\n\n    </tanj-text-widget>\n  </ng-container>\n  <ng-container *ngIf=\"mode == viewModes.CONFIGURE\">\n    <tanj-text-configure\n      [labelPosition]=\"config.labelPosition\"\n      [(label)]=\"config.label\"\n      [(value)]=\"ival.value\"\n      [(defaultValue)]=\"config.typeConfig.defaultValue\"\n      [(maxLength)]=\"config.typeConfig.maxLength\"\n      [(minLength)]=\"config.typeConfig.minLength\">\n    </tanj-text-configure>\n  </ng-container>\n\n                 `,\n  encapsulation: ViewEncapsulation.None\n})\nexport class TextTemplateComponent implements OnInit, InputTemplateIF {\n\n  @Input() config?: TextInputConfig\n  @Input() ival: TextIval = new TextIval()\n  @Input() mode: InputViewMode = InputViewModes.VIEW\n\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  viewModes = InputViewModes\n\n\n  constructor(private _changeDetector: ChangeDetectorRef) {\n  }\n\n  ngOnInit(): void {\n    Hacks.materialDesignPlaceholderText(this._changeDetector)\n  }\n}\n","import {\n  Injectable,\n  Type\n} from '@angular/core'\nimport {\n  ObjectUtil,\n  ObjMap\n} from '@tangential/core'\nimport {ConfigurableInputIval} from '../data-type/configurable-input-ival'\nimport {ConfigurableInputTypeJson} from '../data-type/configurable-input-type'\nimport {InputConfig} from '../input-config'\n//noinspection ES6PreferShortImport\nimport {CheckboxWidgetConfig} from '../widgets/checkbox/checkbox-widget-config'\n//noinspection ES6PreferShortImport\nimport {CheckboxWidgetTemplateComponent} from '../widgets/checkbox/checkbox-widget.template.component'\n//noinspection ES6PreferShortImport\nimport {DateTimeInputConfig} from '../widgets/date-time-input/date-time-input-config'\n//noinspection ES6PreferShortImport\nimport {DateTimeTemplateComponent} from '../widgets/date-time-input/date-time-template.component'\n//noinspection ES6PreferShortImport\nimport {DurationPickerConfig} from '../widgets/duration-picker/duration-picker-config'\n//noinspection ES6PreferShortImport\nimport {DurationPickerTemplateComponent} from '../widgets/duration-picker/duration-picker-template.component'\n//noinspection ES6PreferShortImport\nimport {IconRatingWidgetConfig} from '../widgets/icon-rating-widget/icon-rating-widget-config'\n//noinspection ES6PreferShortImport\nimport {IconRatingWidgetTemplateComponent} from '../widgets/icon-rating-widget/icon-rating-widget.template.component'\n//noinspection ES6PreferShortImport\nimport {NumberInputConfig} from '../widgets/number-input/number-input-config'\n//noinspection ES6PreferShortImport\nimport {NumberTemplateComponent} from '../widgets/number-input/number-template.component'\n//noinspection ES6PreferShortImport\nimport {NumberSliderConfig} from '../widgets/number-slider/number-slider-config'\n//noinspection ES6PreferShortImport\nimport {NumberSliderTemplateComponent} from '../widgets/number-slider/number-slider-template.component'\n//noinspection ES6PreferShortImport\nimport {NumberSpinnerConfig} from '../widgets/number-spinner/number-spinner-config'\n//noinspection ES6PreferShortImport\nimport {NumberSpinnerTemplateComponent} from '../widgets/number-spinner/number-spinner-template.component'\n//noinspection ES6PreferShortImport\nimport {SlideToggleConfig} from '../widgets/slide-toggle/slide-toggle-widget-config'\n//noinspection ES6PreferShortImport\nimport {SlideToggleWidgetTemplateComponent} from '../widgets/slide-toggle/slide-toggle-widget.template.component'\n//noinspection ES6PreferShortImport\nimport {TextInputConfig} from '../widgets/text-input/text-input-config'\n//noinspection ES6PreferShortImport\nimport {TextTemplateComponent} from '../widgets/text-input/text-template.component'\nimport {\n  InputViewMode,\n  InputViewModes\n} from './input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from './template-components/input-template-component/input-template.component'\n\n\nexport class InputSet {\n  inputCtor: Type<InputConfig>\n\n  view: Type<InputTemplateIF>\n\n  constructor(config: Type<InputConfig>, view: Type<InputTemplateIF>) {\n    this.inputCtor = config\n    this.view = view\n  }\n\n  createInputConfig(data?: ConfigurableInputTypeJson, key?: string): InputConfig {\n    return new this.inputCtor(data || {}, key)\n  }\n\n}\n\n\n@Injectable()\nexport class InputRegistry {\n\n  private inputEntries: ObjMap<InputSet> = {}\n\n  constructor() {\n    this.registerTypes()\n  }\n\n  private registerTypes() {\n    this.inputEntries[CheckboxWidgetConfig.INPUT_NAME] = new InputSet(CheckboxWidgetConfig, CheckboxWidgetTemplateComponent)\n    this.inputEntries[SlideToggleConfig.INPUT_NAME] = new InputSet(SlideToggleConfig, SlideToggleWidgetTemplateComponent)\n    this.inputEntries[NumberInputConfig.INPUT_NAME] = new InputSet(NumberInputConfig, NumberTemplateComponent)\n    this.inputEntries[NumberSpinnerConfig.INPUT_NAME] = new InputSet(NumberSpinnerConfig, NumberSpinnerTemplateComponent)\n    this.inputEntries[NumberSliderConfig.INPUT_NAME] = new InputSet(NumberSliderConfig, NumberSliderTemplateComponent)\n    this.inputEntries[TextInputConfig.INPUT_NAME] = new InputSet(TextInputConfig, TextTemplateComponent)\n    this.inputEntries[DateTimeInputConfig.INPUT_NAME] = new InputSet(DateTimeInputConfig, DateTimeTemplateComponent)\n    this.inputEntries[DurationPickerConfig.INPUT_NAME] = new InputSet(DurationPickerConfig, DurationPickerTemplateComponent)\n    this.inputEntries[IconRatingWidgetConfig.INPUT_NAME] = new InputSet(IconRatingWidgetConfig, IconRatingWidgetTemplateComponent)\n  }\n\n  allTemplates(mode: InputViewMode): InputTemplateIF[] {\n    return ObjectUtil.keys(this.inputEntries).map((inputName) => {\n      return this.createTemplateForTypeKey(inputName, mode)\n    })\n  }\n\n  getInputSet(inputName: string): InputSet {\n    return this.inputEntries[inputName]\n  }\n\n  getComponentCtorFor(inputConfig: InputConfig, mode: InputViewMode): Type<any> {\n    let result: Type<any>\n    const entry = this.inputEntries[inputConfig._inputName]\n    result = entry.view\n    if (!result) {\n      throw new Error(`Invalid mode '${mode}'.`)\n    }\n    return result\n  }\n\n  createTemplateForTypeKey(inputName: string, mode: InputViewMode): InputTemplateIF {\n    const inputEntrySet = this.getInputSet(inputName)\n    const inputConfig = inputEntrySet.createInputConfig()\n    return {\n      config: inputConfig,\n      ival:   inputConfig.typeConfig.createValue(),\n      mode:   mode\n    }\n  }\n\n  createTemplateForType(inputConfig: InputConfig, mode?: InputViewMode, ival?: ConfigurableInputIval): InputTemplateIF {\n    ival = ival || inputConfig.typeConfig.createValue({})\n    mode = mode || InputViewModes.EDIT\n    ival.$key = inputConfig.$key\n    return {\n      config: inputConfig,\n      ival:   ival,\n      mode:   mode\n    }\n  }\n\n\n  get inputNames(): string[] {\n    return Object.keys(this.inputEntries)\n  }\n\n\n}\n","import {Directive, ViewContainerRef} from '@angular/core'\n\n/**\n * Used for templates.\n */\n@Directive({\n  selector: '[tanj-input-template-host]',\n})\nexport class InputTemplateDirective {\n  constructor(public viewContainerRef: ViewContainerRef) {\n  }\n}\n","import {\n  AfterViewInit,\n  Component,\n  ComponentFactoryResolver,\n  ComponentRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  Output,\n  SimpleChange,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core'\n//noinspection ES6PreferShortImport\nimport {ConfigurableInputIval} from '../../../data-type/configurable-input-ival'\nimport {InputConfig} from '../../../input-config'\nimport {InputRegistry} from '../../input-types-registry'\nimport {InputViewMode} from '../../input-view-mode'\nimport {InputTemplateIF} from './input-template.component'\nimport {InputTemplateDirective} from './input-template.directive'\n@Component({\n  selector: 'tanj-input-template-container',\n  template: `\n              <ng-template tanj-input-template-host></ng-template>`,\n  encapsulation: ViewEncapsulation.None\n})\nexport class InputTemplateContainerComponent implements AfterViewInit, OnChanges, OnDestroy {\n\n  @Input() template: InputTemplateIF\n  @Input() inputConfig: InputConfig;\n  @Input() inputIval: ConfigurableInputIval;\n  @Input() mode = <InputViewMode>null;\n  @Input() hideLabel?: boolean = false;\n  @Input() onlyLabel?: boolean = false;\n  @Output() change: EventEmitter<any> = new EventEmitter(false)\n\n  @ViewChild(InputTemplateDirective) inputItemHost: InputTemplateDirective;\n\n  private _componentRef: ComponentRef<InputTemplateIF>\n\n  constructor(private _typeRegistry: InputRegistry, private _componentFactoryResolver: ComponentFactoryResolver, private _zone: NgZone) {\n  }\n\n  ngAfterViewInit() {\n  }\n\n  ngOnDestroy() {\n  }\n\n  ngOnChanges(changes: { template: SimpleChange }) {\n    if (changes.template && this.template) {\n      this.inputConfig = this.template.config\n      this.inputIval = this.template.ival\n      this.mode = this.template.mode\n      this.hideLabel = this.template.hideLabel\n      this.onlyLabel = this.template.onlyLabel\n    }\n    if (this.inputConfig) {\n      this.loadComponent()\n    } else {\n      console.warn('InputTemplateContainerComponent', 'No input type!', this.inputIval, this.mode)\n    }\n  }\n\n  loadComponent() {\n    this._zone.run(() => {\n      const componentCtor = this._typeRegistry.getComponentCtorFor(this.inputConfig, this.mode)\n      const componentFactory = this._componentFactoryResolver.resolveComponentFactory(componentCtor);\n      const viewContainerRef = this.inputItemHost.viewContainerRef;\n      viewContainerRef.clear();\n\n      this._componentRef = viewContainerRef.createComponent(componentFactory);\n      this._componentRef.instance.config = this.inputConfig\n      this._componentRef.instance.ival = this.inputIval\n      this._componentRef.instance.mode = this.mode\n      this._componentRef.instance.hideLabel = this.hideLabel\n      this._componentRef.instance.onlyLabel = this.onlyLabel\n      this._componentRef.instance.change = this.change\n      this._componentRef.changeDetectorRef.detectChanges()\n    })\n  }\n\n}\n","import {Component, HostBinding, ViewEncapsulation} from '@angular/core'\nimport {MatDialogRef} from '@angular/material/dialog'\nimport {BehaviorSubject} from 'rxjs'\nimport {debounceTime} from 'rxjs/operators'\nimport {InputRegistry} from '../input-types-registry'\nimport {InputViewModes} from '../input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../template-components/input-template-component/input-template.component'\n\n\n@Component({\n  selector:      'choose-input-widget-dialog',\n  templateUrl:   './choose-input-widget-dialog.html',\n  encapsulation: ViewEncapsulation.None\n})\nexport class ChooseInputWidgetDialog {\n\n  @HostBinding('attr.layout') flexL = 'column'\n  @HostBinding('attr.layout-align') flexLA = 'start'\n  @HostBinding('style.height') _height = '100%'\n  @HostBinding('style.width') _width: string = '100%'\n  @HostBinding('style.max-width') mw = '100%'\n\n\n  templates: InputTemplateIF[] = []\n  filteredTemplates: InputTemplateIF[] = []\n  filterSubject: BehaviorSubject<string> = new BehaviorSubject('')\n\n  constructor(private _registry: InputRegistry, public dialogRef: MatDialogRef<ChooseInputWidgetDialog>) {\n\n    this.templates = this._registry.allTemplates(InputViewModes.EDIT).map((template) => {\n      template.config = template.config.getDemoInstance()\n      return template\n    })\n    this.filteredTemplates = this.templates\n    this.filterSubject = new BehaviorSubject('')\n    this.filterSubject.pipe(debounceTime(100)).subscribe((filterText: string) => {\n      this._filterWidgets(filterText);\n    })\n  }\n\n  private _filterWidgets(filterText: string) {\n    if (filterText === '') {\n      this.filteredTemplates = this.templates;\n    } else {\n      this.filteredTemplates = this.templates.filter((template) => {\n        return template.config._inputName.toLowerCase().indexOf(filterText.toLowerCase()) > -1\n      })\n    }\n  }\n\n  onFilterTextChange(filter: string) {\n    this.filterSubject.next(filter)\n  }\n\n  onWidgetClicked(inputTemplate: InputTemplateIF) {\n    this.dialogRef.close(inputTemplate)\n  }\n}\n","<div class=\"tanj-dialog-title\" layout=\"row\" layout-align=\"center\">\n  <h2 i18n>Choose a widget</h2>\n</div>\n\n<div class=\"tanj-dialog-content-container\">\n  <div flex=\"grow\" class=\"tanj-dialog-content\" layout=\"column\" layout-align=\"center\">\n    <div mat-dialog-actions class=\"tanj-widget-list tanj-example-widget\" flex layout=\"column\" layout-align=\"start\">\n\n      <div *ngFor=\"let inputTemplate of filteredTemplates\"\n           class=\"tanj-widget-container\"\n           flex=\"grow\"\n           layout=\"row\"\n           layout-align=\"start center\">\n        <tanj-input-template-container flex\n                                      [inputConfig]=\"inputTemplate.config\"\n                                      [inputIval]=\"inputTemplate.ival\"\n                                      [mode]=\"inputTemplate.mode\"></tanj-input-template-container>\n        <div class=\"tanj-widget-button-container\" layout=\"row\" layout-align=\"end center\">\n          <a mat-mini-fab (click)=\"onWidgetClicked(inputTemplate)\">\n            <tanj-icon ligature=\"done\"></tanj-icon>\n          </a>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChange,\n  ViewEncapsulation\n} from '@angular/core'\nimport {MatDialog} from '@angular/material/dialog'\nimport {Hacks} from '@tangential/core'\nimport {InputConfig, InputConfigJson} from '../../input-config'\n//noinspection ES6PreferShortImport\nimport {ChooseInputWidgetDialog} from '../choose-input-widget-dialog/choose-input-widget-dialog'\nimport {InputRegistry} from '../input-types-registry'\nimport {InputViewModes} from '../input-view-mode'\n//noinspection ES6PreferShortImport\nimport {InputTemplateIF} from '../template-components/input-template-component/input-template.component'\n\n@Component({\n  selector:        'tanj-edit-configurable-widget',\n  templateUrl:     './edit-configurable-widget.component.html',\n  encapsulation:   ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.Default\n})\nexport class EditConfigurableWidgetComponent implements OnInit, OnChanges {\n\n  @Input() inputConfig: InputConfig\n  @Output() inputConfigChange: EventEmitter<InputConfig> = new EventEmitter(false)\n\n  inputNames: string[] = []\n  inputTemplate: InputTemplateIF\n\n  constructor(private inputRegistry: InputRegistry,\n              private changeDetectorRef: ChangeDetectorRef,\n              public dialog: MatDialog) {\n  }\n\n  ngOnInit() {\n    this.inputNames = this.inputRegistry.inputNames\n    if (this.inputConfig) {\n      this.updateInputConfig(this.inputConfig)\n    }\n\n  }\n\n  ngOnChanges(changes: { inputConfig: SimpleChange }): void {\n    if (changes.inputConfig) {\n      this.updateInputConfig(this.inputConfig)\n    }\n  }\n\n  inputWidgetChange(newConfig: InputConfig) {\n    const inputName: string = newConfig._inputName\n    if (!this.inputConfig || inputName !== this.inputConfig._inputName) {\n      const inputEntrySet = this.inputRegistry.getInputSet(inputName)\n\n      const base: InputConfigJson = newConfig.toJson(true)\n      if (this.inputConfig) {\n        /** @todo: ggranum: Figure out why this is using label on a BaseMediaType model, that doesn't have a label field.  */\n        base.label = this.inputConfig.label !== (this.inputConfig.getModel() as any).label\n          ? this.inputConfig.label\n          : null\n        base.orderIndex = this.inputConfig.orderIndex\n      }\n      const newInputConfig: InputConfig = inputEntrySet.createInputConfig(base)\n      newInputConfig._inputName = inputName\n      this.updateInputConfig(newInputConfig)\n      this.inputConfigChange.emit(this.inputConfig)\n    }\n  }\n\n  updateInputConfig(inputConfig: InputConfig) {\n    this.inputConfig = inputConfig\n    const inputValue = inputConfig.typeConfig.createValue()\n    this.inputTemplate = this.inputRegistry.createTemplateForType(inputConfig, InputViewModes.CONFIGURE, inputValue)\n    Hacks.materialDesignPlaceholderText(this.changeDetectorRef)\n  }\n\n  canChangeWidget(): boolean {\n    return !this.inputConfig.$isSystem\n  }\n\n  showChooseInputDialog() {\n    const dialogRef = this.dialog.open(ChooseInputWidgetDialog, {\n      height: '80%',\n      width:  '100%',\n    });\n    dialogRef.afterClosed().subscribe((result: InputTemplateIF) => {\n      if (result && result.config) {\n        this.inputWidgetChange(result.config)\n      }\n    });\n  }\n\n  onTemplateChanged(template: InputTemplateIF) {\n    if (template.ival && template.ival.value !== template.config.typeConfig.defaultValue) {\n      template.ival = template.config.typeConfig.createValue()\n    }\n  }\n\n}\n\n","<div flex\n     *ngIf=\"inputConfig\"\n     layout=\"column\"\n     layout-align=\"space-between\">\n  <fieldset class=\"tanj-input-preview\" layout=\"row\" layout-align=\"start\">\n    <legend>Preview</legend>\n    <tanj-input-template-container [inputConfig]=\"inputTemplate.config\"\n                                  [inputIval]=\"inputTemplate.ival\"\n                                  [mode]=\"'EDIT'\"></tanj-input-template-container>\n    <div layout=\"row\" layout-align=\"end\">\n      <button class=\"tanj-choose-widget-button\"\n              mat-raised-button\n              color=\"primary\"\n              [disabled]=\"!canChangeWidget()\"\n              (click)=\"showChooseInputDialog()\">\n        <tanj-icon ligature=\"edit\" label=\"Choose Widget\" i18n-label></tanj-icon>\n      </button>\n    </div>\n  </fieldset>\n\n\n  <div flex class=\"tanj-inputs-configuration-container\" layout=\"column\" layout-align=\"start\">\n    <div flex=\"70\"\n         *ngIf=\"inputTemplate\"\n         class=\"tanj-input-configuration-inner\"\n         layout=\"column\"\n         layout-align=\"start\">\n      <div layout=\"row\" layout-align=\"start start\">\n        <tanj-input-template-container flex\n                                      [inputConfig]=\"inputTemplate.config\"\n                                      [inputIval]=\"inputTemplate.ival\"\n                                      [mode]=\"inputTemplate.mode\"\n                                      (change)=\"onTemplateChanged(inputTemplate)\"></tanj-input-template-container>\n      </div>\n    </div>\n  </div>\n</div>\n","import {CommonModule} from '@angular/common'\nimport {NgModule} from '@angular/core'\nimport {FormsModule} from '@angular/forms'\nimport {MatButtonModule} from '@angular/material/button'\nimport {MatCheckboxModule} from '@angular/material/checkbox'\nimport {MatInputModule} from '@angular/material/input'\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle'\nimport {MatSliderModule} from '@angular/material/slider'\nimport {TanjComponentsModule} from '@tangential/components'\nimport {TanjInputWidgetModule} from '@tangential/input-widgets'\n//noinspection ES6PreferShortImport\nimport {ChooseInputWidgetDialog} from './support/choose-input-widget-dialog/choose-input-widget-dialog'\n//noinspection ES6PreferShortImport\nimport {EditConfigurableWidgetComponent} from './support/edit-configurable-widget-component/edit-configurable-widget.component'\n//noinspection ES6PreferShortImport\nimport {InputTemplateContainerComponent} from './support/template-components/input-template-component/input-template-container.component'\n//noinspection ES6PreferShortImport\nimport {InputTemplateDirective} from './support/template-components/input-template-component/input-template.directive'\n//noinspection ES6PreferShortImport\nimport {CheckboxWidgetTemplateComponent} from './widgets/checkbox/checkbox-widget.template.component'\n//noinspection ES6PreferShortImport\nimport {DateTimeTemplateComponent} from './widgets/date-time-input/date-time-template.component'\n//noinspection ES6PreferShortImport\nimport {DurationPickerTemplateComponent} from './widgets/duration-picker/duration-picker-template.component'\n//noinspection ES6PreferShortImport\nimport {IconRatingWidgetTemplateComponent} from './widgets/icon-rating-widget/icon-rating-widget.template.component'\n//noinspection ES6PreferShortImport\nimport {NumberTemplateComponent} from './widgets/number-input/number-template.component'\n//noinspection ES6PreferShortImport\nimport {NumberSliderTemplateComponent} from './widgets/number-slider/number-slider-template.component'\n//noinspection ES6PreferShortImport\nimport {NumberSpinnerTemplateComponent} from './widgets/number-spinner/number-spinner-template.component'\n//noinspection ES6PreferShortImport\nimport {SlideToggleWidgetTemplateComponent} from './widgets/slide-toggle/slide-toggle-widget.template.component'\n//noinspection ES6PreferShortImport\nimport {TextTemplateComponent} from './widgets/text-input/text-template.component'\n\n\n@NgModule({\n  imports:         [\n    CommonModule,\n    FormsModule,\n    MatButtonModule,\n    MatInputModule,\n    MatCheckboxModule,\n    MatSlideToggleModule,\n    MatSliderModule,\n\n    TanjComponentsModule,\n    TanjInputWidgetModule\n\n  ],\n  declarations:    [\n    InputTemplateContainerComponent,\n    InputTemplateDirective,\n    EditConfigurableWidgetComponent,\n\n    ChooseInputWidgetDialog,\n\n    DateTimeTemplateComponent,\n    DurationPickerTemplateComponent,\n    IconRatingWidgetTemplateComponent,\n    NumberTemplateComponent,\n    NumberSliderTemplateComponent,\n    NumberSpinnerTemplateComponent,\n    TextTemplateComponent,\n    CheckboxWidgetTemplateComponent,\n    SlideToggleWidgetTemplateComponent,\n\n  ],\n  exports:         [\n    InputTemplateContainerComponent,\n    InputTemplateDirective,\n    ChooseInputWidgetDialog,\n    EditConfigurableWidgetComponent,\n\n    DateTimeTemplateComponent,\n    DurationPickerTemplateComponent,\n    IconRatingWidgetTemplateComponent,\n    NumberTemplateComponent,\n    NumberSliderTemplateComponent,\n    NumberSpinnerTemplateComponent,\n    TextTemplateComponent,\n    CheckboxWidgetTemplateComponent,\n    SlideToggleWidgetTemplateComponent,\n  ],\n  entryComponents: [\n    ChooseInputWidgetDialog,\n    DateTimeTemplateComponent,\n    IconRatingWidgetTemplateComponent,\n    NumberTemplateComponent,\n    NumberSliderTemplateComponent,\n    NumberSpinnerTemplateComponent,\n    TextTemplateComponent,\n    DurationPickerTemplateComponent,\n    CheckboxWidgetTemplateComponent,\n    SlideToggleWidgetTemplateComponent\n  ]\n})\nexport class TanjConfigurableWidgetModule {\n\n}\n","/*\n * Public API Surface of configurable-input-widgets\n */\n\nexport * from './lib/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Model","BROWSER_DATE_TIME_LOCAL_FORMAT","demoConfig","i1.InputRegistry","i2.InputTemplateDirective","i2","i3","i6.InputTemplateContainerComponent"],"mappings":"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"}