UNPKG

@ng-bootstrap/ng-bootstrap

Version:
1 lines 32 kB
{"version":3,"file":"ng-bootstrap-ng-bootstrap-timepicker.mjs","sources":["../../../src/timepicker/ngb-time.ts","../../../src/timepicker/timepicker-config.ts","../../../src/timepicker/ngb-time-adapter.ts","../../../src/timepicker/timepicker-i18n.ts","../../../src/timepicker/timepicker.ts","../../../src/timepicker/timepicker.module.ts","../../../src/timepicker/ng-bootstrap-ng-bootstrap-timepicker.ts"],"sourcesContent":["import { isNumber, toInteger } from './_ngb-ngbootstrap-utilities.mjs';\n\nexport class NgbTime {\n\thour: number;\n\tminute: number;\n\tsecond: number;\n\n\tconstructor(hour?: number, minute?: number, second?: number) {\n\t\tthis.hour = toInteger(hour);\n\t\tthis.minute = toInteger(minute);\n\t\tthis.second = toInteger(second);\n\t}\n\n\tchangeHour(step = 1) {\n\t\tthis.updateHour((isNaN(this.hour) ? 0 : this.hour) + step);\n\t}\n\n\tupdateHour(hour: number) {\n\t\tif (isNumber(hour)) {\n\t\t\tthis.hour = (hour < 0 ? 24 + hour : hour) % 24;\n\t\t} else {\n\t\t\tthis.hour = NaN;\n\t\t}\n\t}\n\n\tchangeMinute(step = 1) {\n\t\tthis.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step);\n\t}\n\n\tupdateMinute(minute: number) {\n\t\tif (isNumber(minute)) {\n\t\t\tthis.minute = minute % 60 < 0 ? 60 + (minute % 60) : minute % 60;\n\t\t\tthis.changeHour(Math.floor(minute / 60));\n\t\t} else {\n\t\t\tthis.minute = NaN;\n\t\t}\n\t}\n\n\tchangeSecond(step = 1) {\n\t\tthis.updateSecond((isNaN(this.second) ? 0 : this.second) + step);\n\t}\n\n\tupdateSecond(second: number) {\n\t\tif (isNumber(second)) {\n\t\t\tthis.second = second < 0 ? 60 + (second % 60) : second % 60;\n\t\t\tthis.changeMinute(Math.floor(second / 60));\n\t\t} else {\n\t\t\tthis.second = NaN;\n\t\t}\n\t}\n\n\tisValid(checkSecs = true) {\n\t\treturn isNumber(this.hour) && isNumber(this.minute) && (checkSecs ? isNumber(this.second) : true);\n\t}\n\n\ttoString() {\n\t\treturn `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`;\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * A configuration service for the [`NgbTimepicker`](#/components/timepicker/api#NgbTimepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the timepickers used in the application.\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbTimepickerConfig {\n\tmeridian = false;\n\tspinners = true;\n\tseconds = false;\n\thourStep = 1;\n\tminuteStep = 1;\n\tsecondStep = 1;\n\tdisabled = false;\n\treadonlyInputs = false;\n\tsize: 'small' | 'medium' | 'large' = 'medium';\n}\n","import { Injectable } from '@angular/core';\nimport { NgbTimeStruct } from './ngb-time-struct';\nimport { isInteger } from './_ngb-ngbootstrap-utilities.mjs';\n\nexport function NGB_DATEPICKER_TIME_ADAPTER_FACTORY() {\n\treturn new NgbTimeStructAdapter();\n}\n\n/**\n * An abstract service that does the conversion between the internal timepicker `NgbTimeStruct` model and\n * any provided user time model `T`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding timepicker to a form control,\n * ex. `[(ngModel)]=\"userTimeModel\"`. Here `userTimeModel` can be of any type.\n *\n * The default timepicker implementation assumes we use `NgbTimeStruct` as a user model.\n *\n * See the [custom time adapter demo](#/components/timepicker/examples#adapter) for an example.\n *\n * @since 2.2.0\n */\n@Injectable({ providedIn: 'root', useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY })\nexport abstract class NgbTimeAdapter<T> {\n\t/**\n\t * Converts a user-model time of type `T` to an `NgbTimeStruct` for internal use.\n\t */\n\tabstract fromModel(value: T | null): NgbTimeStruct | null;\n\n\t/**\n\t * Converts an internal `NgbTimeStruct` time to a user-model time of type `T`.\n\t */\n\tabstract toModel(time: NgbTimeStruct | null): T | null;\n}\n\n@Injectable()\nexport class NgbTimeStructAdapter extends NgbTimeAdapter<NgbTimeStruct> {\n\t/**\n\t * Converts a NgbTimeStruct value into NgbTimeStruct value\n\t */\n\tfromModel(time: NgbTimeStruct | null): NgbTimeStruct | null {\n\t\treturn time && isInteger(time.hour) && isInteger(time.minute)\n\t\t\t? { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : <any>null }\n\t\t\t: null;\n\t}\n\n\t/**\n\t * Converts a NgbTimeStruct value into NgbTimeStruct value\n\t */\n\ttoModel(time: NgbTimeStruct | null): NgbTimeStruct | null {\n\t\treturn time && isInteger(time.hour) && isInteger(time.minute)\n\t\t\t? { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : <any>null }\n\t\t\t: null;\n\t}\n}\n","import { formatDate } from '@angular/common';\nimport { Injectable, LOCALE_ID, inject } from '@angular/core';\n\n/**\n * Type of the service supplying day periods (for example, 'AM' and 'PM') to NgbTimepicker component.\n * The default implementation of this service honors the Angular locale, and uses the registered locale data,\n * as explained in the Angular i18n guide.\n */\n@Injectable({\n\tprovidedIn: 'root',\n\tuseFactory: () => new NgbTimepickerI18nDefault(),\n})\nexport abstract class NgbTimepickerI18n {\n\t/**\n\t * Returns the name for the period before midday.\n\t */\n\tabstract getMorningPeriod(): string;\n\n\t/**\n\t * Returns the name for the period after midday.\n\t */\n\tabstract getAfternoonPeriod(): string;\n}\n\n@Injectable()\nexport class NgbTimepickerI18nDefault extends NgbTimepickerI18n {\n\tprivate _locale = inject(LOCALE_ID);\n\n\tprivate _periods = [\n\t\tformatDate(new Date(3600000), 'a', this._locale, 'UTC'),\n\t\tformatDate(new Date(3600000 * 13), 'a', this._locale, 'UTC'),\n\t];\n\n\tgetMorningPeriod(): string {\n\t\treturn this._periods[0];\n\t}\n\n\tgetAfternoonPeriod(): string {\n\t\treturn this._periods[1];\n\t}\n}\n","import {\n\tChangeDetectorRef,\n\tComponent,\n\tforwardRef,\n\tInput,\n\tOnChanges,\n\tSimpleChanges,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { isInteger, isNumber, padNumber, toInteger } from './_ngb-ngbootstrap-utilities.mjs';\nimport { NgbTime } from './ngb-time';\nimport { NgbTimepickerConfig } from './timepicker-config';\nimport { NgbTimeAdapter } from './ngb-time-adapter';\nimport { NgbTimepickerI18n } from './timepicker-i18n';\n\nconst FILTER_REGEX = /[^0-9]/g;\n\n/**\n * A directive that helps with wth picking hours, minutes and seconds.\n */\n@Component({\n\texportAs: 'ngbTimepicker',\n\tselector: 'ngb-timepicker',\n\tencapsulation: ViewEncapsulation.None,\n\tstyleUrl: './timepicker.scss',\n\ttemplate: `\n\t\t<fieldset [disabled]=\"disabled\" [class.disabled]=\"disabled\">\n\t\t\t<div class=\"ngb-tp\">\n\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-hour\">\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeHour(hourStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-hours\">Increment hours</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\tplaceholder=\"HH\"\n\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.HH\"\n\t\t\t\t\t\t[value]=\"formatHour(model?.hour)\"\n\t\t\t\t\t\t(change)=\"updateHour($any($event).target.value)\"\n\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\taria-label=\"Hours\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.hours\"\n\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t(keydown.ArrowUp)=\"changeHour(hourStep); $event.preventDefault()\"\n\t\t\t\t\t\t(keydown.ArrowDown)=\"changeHour(-hourStep); $event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeHour(-hourStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-hours\">Decrement hours</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ngb-tp-spacer\">:</div>\n\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-minute\">\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeMinute(minuteStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-minutes\">Increment minutes</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\tplaceholder=\"MM\"\n\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.MM\"\n\t\t\t\t\t\t[value]=\"formatMinSec(model?.minute)\"\n\t\t\t\t\t\t(change)=\"updateMinute($any($event).target.value)\"\n\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\taria-label=\"Minutes\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.minutes\"\n\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t(keydown.ArrowUp)=\"changeMinute(minuteStep); $event.preventDefault()\"\n\t\t\t\t\t\t(keydown.ArrowDown)=\"changeMinute(-minuteStep); $event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeMinute(-minuteStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-minutes\">Decrement minutes</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t\t@if (seconds) {\n\t\t\t\t\t<div class=\"ngb-tp-spacer\">:</div>\n\t\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-second\">\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"changeSecond(secondStep)\"\n\t\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-seconds\">Increment seconds</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\t\tplaceholder=\"SS\"\n\t\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.SS\"\n\t\t\t\t\t\t\t[value]=\"formatMinSec(model?.second)\"\n\t\t\t\t\t\t\t(change)=\"updateSecond($any($event).target.value)\"\n\t\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\taria-label=\"Seconds\"\n\t\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.seconds\"\n\t\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t\t(keydown.ArrowUp)=\"changeSecond(secondStep); $event.preventDefault()\"\n\t\t\t\t\t\t\t(keydown.ArrowDown)=\"changeSecond(-secondStep); $event.preventDefault()\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"changeSecond(-secondStep)\"\n\t\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-seconds\">Decrement seconds</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (meridian) {\n\t\t\t\t\t<div class=\"ngb-tp-spacer\"></div>\n\t\t\t\t\t<div class=\"ngb-tp-meridian\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-primary\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t(click)=\"toggleMeridian()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (model && model.hour >= 12) {\n\t\t\t\t\t\t\t\t<ng-container i18n=\"@@ngb.timepicker.PM\">{{ i18n.getAfternoonPeriod() }}</ng-container>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<ng-container>{{ i18n.getMorningPeriod() }}</ng-container>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</fieldset>\n\t`,\n\tproviders: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTimepicker), multi: true }],\n})\nexport class NgbTimepicker implements ControlValueAccessor, OnChanges {\n\tstatic ngAcceptInputType_size: string;\n\n\tdisabled: boolean;\n\tmodel?: NgbTime;\n\n\tprivate _hourStep: number;\n\tprivate _minuteStep: number;\n\tprivate _secondStep: number;\n\n\t/**\n\t * Whether to display 12H or 24H mode.\n\t */\n\t@Input() meridian: boolean;\n\n\t/**\n\t * If `true`, the spinners above and below inputs are visible.\n\t */\n\t@Input() spinners: boolean;\n\n\t/**\n\t * If `true`, it is possible to select seconds.\n\t */\n\t@Input() seconds: boolean;\n\n\t/**\n\t * The number of hours to add/subtract when clicking hour spinners.\n\t */\n\t@Input()\n\tset hourStep(step: number) {\n\t\tthis._hourStep = isInteger(step) ? step : this._config.hourStep;\n\t}\n\n\tget hourStep(): number {\n\t\treturn this._hourStep;\n\t}\n\n\t/**\n\t * The number of minutes to add/subtract when clicking minute spinners.\n\t */\n\t@Input()\n\tset minuteStep(step: number) {\n\t\tthis._minuteStep = isInteger(step) ? step : this._config.minuteStep;\n\t}\n\n\tget minuteStep(): number {\n\t\treturn this._minuteStep;\n\t}\n\n\t/**\n\t * The number of seconds to add/subtract when clicking second spinners.\n\t */\n\t@Input()\n\tset secondStep(step: number) {\n\t\tthis._secondStep = isInteger(step) ? step : this._config.secondStep;\n\t}\n\n\tget secondStep(): number {\n\t\treturn this._secondStep;\n\t}\n\n\t/**\n\t * If `true`, the timepicker is readonly and can't be changed.\n\t */\n\t@Input() readonlyInputs: boolean;\n\n\t/**\n\t * The size of inputs and buttons.\n\t */\n\t@Input() size: 'small' | 'medium' | 'large';\n\n\tconstructor(\n\t\tprivate readonly _config: NgbTimepickerConfig,\n\t\tprivate _ngbTimeAdapter: NgbTimeAdapter<any>,\n\t\tprivate _cd: ChangeDetectorRef,\n\t\tpublic i18n: NgbTimepickerI18n,\n\t) {\n\t\tthis.meridian = _config.meridian;\n\t\tthis.spinners = _config.spinners;\n\t\tthis.seconds = _config.seconds;\n\t\tthis.hourStep = _config.hourStep;\n\t\tthis.minuteStep = _config.minuteStep;\n\t\tthis.secondStep = _config.secondStep;\n\t\tthis.disabled = _config.disabled;\n\t\tthis.readonlyInputs = _config.readonlyInputs;\n\t\tthis.size = _config.size;\n\t}\n\n\tonChange = (_: any) => {};\n\tonTouched = () => {};\n\n\twriteValue(value) {\n\t\tconst structValue = this._ngbTimeAdapter.fromModel(value);\n\t\tthis.model = structValue ? new NgbTime(structValue.hour, structValue.minute, structValue.second) : new NgbTime();\n\t\tif (!this.seconds && (!structValue || !isNumber(structValue.second))) {\n\t\t\tthis.model.second = 0;\n\t\t}\n\t\tthis._cd.markForCheck();\n\t}\n\n\tregisterOnChange(fn: (value: any) => any): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => any): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\t/**\n\t * Increments the hours by the given step.\n\t */\n\tchangeHour(step: number) {\n\t\tthis.model?.changeHour(step);\n\t\tthis.propagateModelChange();\n\t}\n\n\t/**\n\t * Increments the minutes by the given step.\n\t */\n\tchangeMinute(step: number) {\n\t\tthis.model?.changeMinute(step);\n\t\tthis.propagateModelChange();\n\t}\n\n\t/**\n\t * Increments the seconds by the given step.\n\t */\n\tchangeSecond(step: number) {\n\t\tthis.model?.changeSecond(step);\n\t\tthis.propagateModelChange();\n\t}\n\n\t/**\n\t * Update hours with the new value.\n\t */\n\tupdateHour(newVal: string) {\n\t\tconst isPM = this.model ? this.model.hour >= 12 : false;\n\t\tconst enteredHour = toInteger(newVal);\n\t\tif (this.meridian && ((isPM && enteredHour < 12) || (!isPM && enteredHour === 12))) {\n\t\t\tthis.model?.updateHour(enteredHour + 12);\n\t\t} else {\n\t\t\tthis.model?.updateHour(enteredHour);\n\t\t}\n\t\tthis.propagateModelChange();\n\t}\n\n\t/**\n\t * Update minutes with the new value.\n\t */\n\tupdateMinute(newVal: string) {\n\t\tthis.model?.updateMinute(toInteger(newVal));\n\t\tthis.propagateModelChange();\n\t}\n\n\t/**\n\t * Update seconds with the new value.\n\t */\n\tupdateSecond(newVal: string) {\n\t\tthis.model?.updateSecond(toInteger(newVal));\n\t\tthis.propagateModelChange();\n\t}\n\n\ttoggleMeridian() {\n\t\tif (this.model && isNumber(this.model.hour) && this.meridian) {\n\t\t\tthis.changeHour(12);\n\t\t}\n\t}\n\n\tformatInput(input: HTMLInputElement) {\n\t\tinput.value = input.value.replace(FILTER_REGEX, '');\n\t}\n\n\tformatHour(value?: number) {\n\t\tif (isNumber(value)) {\n\t\t\tif (this.meridian) {\n\t\t\t\treturn padNumber(value % 12 === 0 ? 12 : value % 12);\n\t\t\t} else {\n\t\t\t\treturn padNumber(value % 24);\n\t\t\t}\n\t\t} else {\n\t\t\treturn padNumber(NaN);\n\t\t}\n\t}\n\n\tformatMinSec(value?: number) {\n\t\treturn padNumber(isNumber(value) ? value : NaN);\n\t}\n\n\thandleBlur() {\n\t\tthis.onTouched();\n\t}\n\n\tget isSmallSize(): boolean {\n\t\treturn this.size === 'small';\n\t}\n\n\tget isLargeSize(): boolean {\n\t\treturn this.size === 'large';\n\t}\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['seconds'] && !this.seconds && this.model && !isNumber(this.model.second)) {\n\t\t\tthis.model.second = 0;\n\t\t\tthis.propagateModelChange(false);\n\t\t}\n\t}\n\n\tprivate propagateModelChange(touched = true) {\n\t\tif (touched) {\n\t\t\tthis.onTouched();\n\t\t}\n\t\tif (this.model?.isValid(this.seconds)) {\n\t\t\tthis.onChange(\n\t\t\t\tthis._ngbTimeAdapter.toModel({ hour: this.model.hour, minute: this.model.minute, second: this.model.second }),\n\t\t\t);\n\t\t} else {\n\t\t\tthis.onChange(this._ngbTimeAdapter.toModel(null));\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { NgbTimepicker } from './timepicker';\n\nexport { NgbTimepicker } from './timepicker';\nexport { NgbTimepickerConfig } from './timepicker-config';\nexport { NgbTimeStruct } from './ngb-time-struct';\nexport { NgbTimeAdapter } from './ngb-time-adapter';\nexport { NgbTimepickerI18n } from './timepicker-i18n';\n\n@NgModule({\n\timports: [NgbTimepicker],\n\texports: [NgbTimepicker],\n})\nexport class NgbTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgbTimepickerConfig","i2.NgbTimeAdapter","i3.NgbTimepickerI18n"],"mappings":"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"}