{"version":3,"file":"taiga-ui-kit-utils.mjs","sources":["../../../projects/kit/utils/create-time-periods.ts","../../../projects/kit/utils/format/format-number.ts","../../../projects/kit/utils/inject-value.ts","../../../projects/kit/utils/maskito.binding.ts","../../../projects/kit/utils/taiga-ui-kit-utils.ts"],"sourcesContent":["import {HOURS_IN_DAY, TuiTime} from '@taiga-ui/cdk/date-time';\n\nexport function tuiCreateTimePeriods(\n    minHour = 0,\n    maxHour: number = HOURS_IN_DAY,\n    minutes: readonly number[] = [0, 30],\n): readonly TuiTime[] {\n    const timeArray: TuiTime[] = [];\n\n    for (let i = minHour; i < maxHour; i++) {\n        minutes.forEach((minute) => {\n            const time = new TuiTime(i, minute);\n\n            timeArray.push(time);\n        });\n    }\n\n    return timeArray;\n}\n","import {maskitoStringifyNumber} from '@maskito/kit';\nimport {tuiIsSafeToRound, tuiRoundWith} from '@taiga-ui/cdk/utils/math';\nimport {\n    TUI_DEFAULT_NUMBER_FORMAT,\n    type TuiNumberFormatSettings,\n} from '@taiga-ui/core/tokens';\nimport {tuiGetFractionPartPadded} from '@taiga-ui/core/utils/format';\n\nexport function tuiFormatNumber(\n    value: bigint | number | null,\n    {\n        rounding = TUI_DEFAULT_NUMBER_FORMAT.rounding,\n        decimalMode,\n        precision,\n        maximumFractionDigits = precision ?? Infinity,\n        ...settings\n    }: Partial<TuiNumberFormatSettings> = {},\n): string {\n    const rounded =\n        typeof value === 'number' &&\n        Number.isFinite(maximumFractionDigits) &&\n        tuiIsSafeToRound(value, maximumFractionDigits)\n            ? tuiRoundWith({\n                  value,\n                  precision: maximumFractionDigits,\n                  method: rounding,\n              })\n            : value;\n\n    const fractionPart = tuiGetFractionPartPadded(rounded, maximumFractionDigits);\n\n    const withTrailingZeroes =\n        decimalMode === 'always' || (Number(fractionPart) > 0 && decimalMode === 'pad');\n\n    const minimumFractionDigits =\n        settings.minimumFractionDigits ??\n        (Number.isFinite(maximumFractionDigits) && withTrailingZeroes\n            ? maximumFractionDigits\n            : fractionPart.length);\n\n    return maskitoStringifyNumber(rounded, {\n        ...TUI_DEFAULT_NUMBER_FORMAT,\n        ...settings,\n        minimumFractionDigits,\n        maximumFractionDigits: withTrailingZeroes\n            ? maximumFractionDigits\n            : Math.max(minimumFractionDigits, fractionPart.replace(/0*$/, '').length),\n    });\n}\n","import {computed, inject, INJECTOR, type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\n\nexport function tuiInjectValue<T>(): Signal<T> {\n    const textfield = inject(TuiTextfieldComponent, {optional: true});\n    const control = textfield?.control() || inject(NgControl, {optional: true});\n    const fallback = toSignal<T>(tuiControlValue(control, inject(INJECTOR)), {\n        requireSync: true,\n    });\n\n    return computed(() => {\n        const cva = textfield?.child();\n\n        return cva\n            ? (cva.value() as T) // preferred for updateOn: 'blur' | 'submit'\n            : fallback();\n    });\n}\n","import {type Signal, type WritableSignal} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {type MaskitoOptions} from '@maskito/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\n\ntype M = MaskitoOptions;\n\nexport function tuiMaskito(options: M | WritableSignal<M>): WritableSignal<M>;\nexport function tuiMaskito(options: Signal<M>): Signal<M>;\nexport function tuiMaskito(options: M | Signal<M>): Signal<M> {\n    return tuiDirectiveBinding(MaskitoDirective, 'options', options);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAEM,SAAU,oBAAoB,CAChC,OAAO,GAAG,CAAC,EACX,OAAA,GAAkB,YAAY,EAC9B,OAAA,GAA6B,CAAC,CAAC,EAAE,EAAE,CAAC,EAAA;IAEpC,MAAM,SAAS,GAAc,EAAE;AAE/B,IAAA,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AACpC,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YACvB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;AAEnC,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,OAAO,SAAS;AACpB;;ACVM,SAAU,eAAe,CAC3B,KAA6B,EAC7B,EACI,QAAQ,GAAG,yBAAyB,CAAC,QAAQ,EAC7C,WAAW,EACX,SAAS,EACT,qBAAqB,GAAG,SAAS,IAAI,QAAQ,EAC7C,GAAG,QAAQ,EAAA,GACuB,EAAE,EAAA;AAExC,IAAA,MAAM,OAAO,GACT,OAAO,KAAK,KAAK,QAAQ;AACzB,QAAA,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACtC,QAAA,gBAAgB,CAAC,KAAK,EAAE,qBAAqB;UACvC,YAAY,CAAC;YACT,KAAK;AACL,YAAA,SAAS,EAAE,qBAAqB;AAChC,YAAA,MAAM,EAAE,QAAQ;SACnB;UACD,KAAK;IAEf,MAAM,YAAY,GAAG,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,CAAC;AAE7E,IAAA,MAAM,kBAAkB,GACpB,WAAW,KAAK,QAAQ,KAAK,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,WAAW,KAAK,KAAK,CAAC;AAEnF,IAAA,MAAM,qBAAqB,GACvB,QAAQ,CAAC,qBAAqB;AAC9B,SAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI;AACvC,cAAE;AACF,cAAE,YAAY,CAAC,MAAM,CAAC;IAE9B,OAAO,sBAAsB,CAAC,OAAO,EAAE;AACnC,QAAA,GAAG,yBAAyB;AAC5B,QAAA,GAAG,QAAQ;QACX,qBAAqB;AACrB,QAAA,qBAAqB,EAAE;AACnB,cAAE;AACF,cAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AAChF,KAAA,CAAC;AACN;;SC1CgB,cAAc,GAAA;AAC1B,IAAA,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AACjE,IAAA,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC3E,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAI,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;AACrE,QAAA,WAAW,EAAE,IAAI;AACpB,KAAA,CAAC;IAEF,OAAO,QAAQ,CAAC,MAAK;AACjB,QAAA,MAAM,GAAG,GAAG,SAAS,EAAE,KAAK,EAAE;AAE9B,QAAA,OAAO;AACH,cAAG,GAAG,CAAC,KAAK,EAAQ;cAClB,QAAQ,EAAE;AACpB,IAAA,CAAC,CAAC;AACN;;ACXM,SAAU,UAAU,CAAC,OAAsB,EAAA;IAC7C,OAAO,mBAAmB,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC;AACpE;;ACXA;;AAEG;;;;"}