{"version":3,"file":"bespunky-angular-cdk-timeline-well-known.mjs","sources":["../../../../libs/angular-cdk/timeline/well-known/src/ticks/utils.ts","../../../../libs/angular-cdk/timeline/well-known/src/ticks/defaults.ts","../../../../libs/angular-cdk/timeline/well-known/src/bespunky-angular-cdk-timeline-well-known.ts"],"sourcesContent":["export function divideIntoParts(dates: Date[], intervalSize: number, partCount: number, setPart: (date: Date, partValue: number) => Date): Date[]\n{\n    const partPlaceholders = Array.from({ length: partCount })\n    const partSize         = intervalSize / partCount\n\n    return dates.reduce<Date[]>((parts, date) => [\n        ...parts,\n        ...partPlaceholders.map((_, index) => setPart(date, index * partSize))\n    ], [])\n}\n\nexport function eachDateOfInterval(start: Date, end: Date, differenceIn: (start: Date, end: Date) => number, startOf: (date: Date) => Date, add: (date: Date, amount: number) => Date): Date[]\n{\n    return Array.from({ length: Math.abs(differenceIn(start, end)) }, (_, unitIndex) => startOf(add(start, unitIndex)));\n}\n","import { DatesBetweenGenerator, DayFactor, TickLabeler } from '@bespunky/angular-cdk/timeline/abstraction/ticks';\nimport { addMinutes, addSeconds, differenceInMinutes, differenceInSeconds, eachDayOfInterval, eachHourOfInterval, startOfMinute, startOfSecond, setHours, differenceInMilliseconds, eachYearOfInterval, eachMonthOfInterval, getDaysInMonth, getDaysInYear, addMilliseconds } from 'date-fns';\nimport { WellKnownTickId } from './types';\nimport { divideIntoParts, eachDateOfInterval } from './utils';\n\nexport const DayParts = ['Night', 'Morning', 'Noon', 'Evening'] as const;\n\nexport const DatesBetween: Record<WellKnownTickId, DatesBetweenGenerator> = {\n    years       : (start: Date, end: Date) => eachYearOfInterval({ start, end }),\n    months      : (start: Date, end: Date) => eachMonthOfInterval({ start, end}),\n    days        : (start: Date, end: Date) => eachDayOfInterval({ start, end }),\n    dayParts    : (start: Date, end: Date) => divideIntoParts(eachDayOfInterval({ start, end }), 24, DayParts.length, setHours),\n    hours       : (start: Date, end: Date) => eachHourOfInterval({ start, end }),\n    minutes     : (start: Date, end: Date) => eachDateOfInterval(start, end, differenceInMinutes, startOfMinute, addMinutes),\n    seconds     : (start: Date, end: Date) => eachDateOfInterval(start, end, differenceInSeconds, startOfSecond, addSeconds),\n    milliseconds: (start: Date, end: Date) => eachDateOfInterval(start, end, differenceInMilliseconds, startOfSecond, addMilliseconds),\n} as const;\n\nexport const DayFactors: Record<WellKnownTickId, DayFactor> = {\n    years       : getDaysInYear,\n    months      : getDaysInMonth,\n    days        : 1,\n    dayParts    : 1 / 4,\n    hours       : 1 / (24),\n    minutes     : 1 / (24 * 60),\n    seconds     : 1 / (24 * 60 * 60),\n    milliseconds: 1 / (24 * 60 * 60 * 1000)\n} as const;\n\nexport const DefaultLabels: Record<WellKnownTickId, TickLabeler> = {\n    years       : (value: Date) => value.getFullYear(),\n    months      : (value: Date) => value.getMonth(),\n    days        : (value: Date) => value.getDate(),\n    dayParts    : (value: Date) => DayParts[Math.floor(value.getHours() / 6)],\n    hours       : (value: Date) => value.getHours(),\n    minutes     : (value: Date) => value.getMinutes(),\n    seconds     : (value: Date) => value.getSeconds(),\n    milliseconds: (value: Date) => value.getMilliseconds()\n} as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}