{"version":3,"file":"ajf-core-time.mjs","sources":["../../../projects/core/time/src/time-model.ts","../../../projects/core/time/src/time.ts","../../../projects/core/time/src/public_api.ts","../../../projects/core/time/src/ajf-core-time.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {EventEmitter, isDevMode} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nexport class AjfTimeModel {\n  private _changed: EventEmitter<string> = new EventEmitter<string>();\n  readonly changed: Observable<string> = this._changed as Observable<string>;\n\n  private _hours = 0;\n  private _minutes = 0;\n\n  get minutes() {\n    return this._minutes;\n  }\n  set minutes(value: number) {\n    if (value > -1 && value < 61) {\n      this._minutes = value;\n      this._changed.emit(this.toString());\n    }\n  }\n\n  get hours() {\n    return this._hours;\n  }\n  set hours(value: number) {\n    if (value > -1 && value < 24) {\n      this._hours = value;\n      this._changed.emit(this.toString());\n    }\n  }\n\n  toString() {\n    let minutes = (this.minutes.toString().length > 1 && this.minutes) || `0${this.minutes}`;\n    let hours = (this.hours.toString().length > 1 && this.hours) || `0${this.hours}`;\n    return `${hours}:${minutes}`;\n  }\n\n  fromString(value: string) {\n    try {\n      let splitted = value.split(':');\n      if (splitted.length == 2) {\n        this.hours = parseInt(splitted[0]);\n        this.minutes = parseInt(splitted[1]);\n      }\n    } catch (e) {\n      if (isDevMode()) {\n        console.log(e);\n      }\n    }\n  }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {Directive, Input, OnDestroy} from '@angular/core';\nimport {ControlValueAccessor} from '@angular/forms';\nimport {Subscription} from 'rxjs';\n\nimport {AjfTimeModel} from './time-model';\n\n@Directive()\nexport abstract class AjfTime implements ControlValueAccessor, OnDestroy {\n  @Input() readonly: boolean = false;\n\n  get time(): AjfTimeModel {\n    return this._value;\n  }\n\n  private _value: AjfTimeModel = new AjfTimeModel();\n  get value(): string {\n    return this._value.toString();\n  }\n\n  set value(value: string) {\n    if (value !== this._value.toString()) {\n      this._value.fromString(value);\n      this._onChangeCallback(value);\n    }\n  }\n\n  get hours(): number {\n    return this._value.hours;\n  }\n  set hours(hours: number) {\n    if (this._value.hours !== hours) {\n      this._value.hours = hours;\n      this._onChangeCallback(this._value.toString());\n    }\n  }\n\n  get minutes(): number {\n    return this._value.minutes;\n  }\n  set minutes(minutes: number) {\n    if (this._value.minutes !== minutes) {\n      this._value.minutes = minutes;\n      this._onChangeCallback(this._value.toString());\n    }\n  }\n\n  private _onChangeCallback: (_: any) => void = (_: any) => {};\n  private _onTouchedCallback: () => void = () => {};\n  private _valueChangeSub: Subscription = Subscription.EMPTY;\n\n  constructor() {\n    this._valueChangeSub = this._value.changed.subscribe((x: string) => {\n      this._onChangeCallback(x);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._valueChangeSub.unsubscribe();\n  }\n\n  writeValue(value: string) {\n    this._value.fromString(value);\n  }\n\n  registerOnChange(fn: (value: any) => void) {\n    this._onChangeCallback = fn;\n  }\n\n  registerOnTouched(fn: any) {\n    this._onTouchedCallback = fn;\n  }\n\n  focusHandler(): void {\n    this._onTouchedCallback();\n  }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './time-model';\nexport * from './time';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}