@oneluiz/dual-datepicker 3.9.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dual-datepicker.component.d.ts +4 -4
  2. package/esm2022/core/internal.mjs +92 -0
  3. package/esm2022/core/public.mjs +94 -0
  4. package/esm2022/core/testing/date.helpers.mjs +49 -0
  5. package/esm2022/core/testing/fixed-clock.mjs +30 -0
  6. package/esm2022/core/testing/index.mjs +8 -0
  7. package/esm2022/dual-datepicker.component.mjs +34 -32
  8. package/esm2022/public-api.mjs +39 -9
  9. package/fesm2022/oneluiz-dual-datepicker.mjs +629 -975
  10. package/fesm2022/oneluiz-dual-datepicker.mjs.map +1 -1
  11. package/package.json +11 -1
  12. package/public-api.d.ts +39 -4
  13. package/core/built-in-presets.d.ts +0 -98
  14. package/core/calendar-grid/cache.config.d.ts +0 -34
  15. package/core/calendar-grid/calendar-grid.cache.d.ts +0 -39
  16. package/core/calendar-grid/calendar-grid.factory.d.ts +0 -26
  17. package/core/calendar-grid/calendar-grid.types.d.ts +0 -57
  18. package/core/calendar-grid/index.d.ts +0 -56
  19. package/core/calendar-grid/range-highlighter.cache.d.ts +0 -106
  20. package/core/calendar-grid/range-highlighter.d.ts +0 -85
  21. package/core/calendar-grid/range-highlighter.types.d.ts +0 -182
  22. package/core/calendar-grid/virtual-weeks.logic.d.ts +0 -116
  23. package/core/calendar-grid/virtual-weeks.types.d.ts +0 -71
  24. package/core/date-adapter.d.ts +0 -298
  25. package/core/date-clock.d.ts +0 -82
  26. package/core/dual-date-range.store.d.ts +0 -113
  27. package/core/index.d.ts +0 -33
  28. package/core/native-date-adapter.d.ts +0 -152
  29. package/core/preset-providers.d.ts +0 -176
  30. package/core/preset-registry.d.ts +0 -181
  31. package/core/preset.engine.d.ts +0 -124
  32. package/core/range-preset.plugin.d.ts +0 -188
  33. package/core/range.validator.d.ts +0 -37
  34. package/core/system-clock.d.ts +0 -13
  35. package/date-adapter.d.ts +0 -116
  36. package/esm2022/core/calendar-grid/index.mjs +0 -57
  37. package/esm2022/core/index.mjs +0 -37
  38. package/esm2022/date-adapter.mjs +0 -12
  39. package/esm2022/native-date-adapter.mjs +0 -117
  40. package/esm2022/preset-utils.mjs +0 -276
  41. package/native-date-adapter.d.ts +0 -26
  42. package/preset-utils.d.ts +0 -91
  43. package/src/themes/bootstrap.scss +0 -202
  44. package/src/themes/bulma.scss +0 -209
  45. package/src/themes/custom.scss +0 -236
  46. package/src/themes/foundation.scss +0 -201
  47. package/src/themes/tailwind.scss +0 -109
@@ -1,57 +0,0 @@
1
- /**
2
- * Calendar Grid Module
3
- *
4
- * Performance-optimized calendar month grid generation with memoization.
5
- *
6
- * v3.7.0: Grid Structure Cache
7
- * - CalendarGridFactory for deterministic 42-cell grids
8
- * - CalendarGridCache with LRU (24 months)
9
- *
10
- * v3.8.0: Range Highlight Cache
11
- * - RangeHighlighter for decoration logic
12
- * - RangeHighlighterCache with LRU (48 grids)
13
- * - Separates grid structure from decorations
14
- *
15
- * v3.9.0: Virtual Weeks (Windowed Rendering)
16
- * - Virtual-weeks logic for reduced DOM complexity
17
- * - Render only visible weeks (configurable window)
18
- * - ~50% reduction in DOM nodes with windowSize=3
19
- *
20
- * v3.9.2: Cache Bounds (Memory Safety)
21
- * - MAX_CACHE_ENTRIES = 48 prevents unbounded growth
22
- * - FIFO eviction for long-running sessions
23
- * - Critical for ERP, BI, hotel systems
24
- *
25
- * Usage:
26
- * ```typescript
27
- * constructor(
28
- * private gridCache: CalendarGridCache,
29
- * private highlighterCache: RangeHighlighterCache
30
- * ) {}
31
- *
32
- * const grid = this.gridCache.get(monthDate, weekStart);
33
- * const decorated = this.highlighterCache.get(grid, {
34
- * start, end, hoverDate, disabledDates
35
- * });
36
- *
37
- * // Optional: Windowed rendering (v3.9.0+)
38
- * const windowSize = 3; // Render only 3 weeks
39
- * const visibleWeeks = getVisibleWeeks(
40
- * decorated.weeks,
41
- * weekStartIndex,
42
- * windowSize
43
- * );
44
- * // decorated.cells[0].iso => '2026-02-01'
45
- * // decorated.cells[0].isInRange => true
46
- * ```
47
- */
48
- export * from './calendar-grid.types';
49
- export * from './calendar-grid.factory';
50
- export * from './calendar-grid.cache';
51
- export * from './range-highlighter.types';
52
- export * from './range-highlighter';
53
- export * from './range-highlighter.cache';
54
- export * from './virtual-weeks.types';
55
- export * from './virtual-weeks.logic';
56
- export * from './cache.config';
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9jYWxlbmRhci1ncmlkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOENHO0FBRUgsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhbGVuZGFyIEdyaWQgTW9kdWxlXG4gKlxuICogUGVyZm9ybWFuY2Utb3B0aW1pemVkIGNhbGVuZGFyIG1vbnRoIGdyaWQgZ2VuZXJhdGlvbiB3aXRoIG1lbW9pemF0aW9uLlxuICpcbiAqIHYzLjcuMDogR3JpZCBTdHJ1Y3R1cmUgQ2FjaGVcbiAqIC0gQ2FsZW5kYXJHcmlkRmFjdG9yeSBmb3IgZGV0ZXJtaW5pc3RpYyA0Mi1jZWxsIGdyaWRzXG4gKiAtIENhbGVuZGFyR3JpZENhY2hlIHdpdGggTFJVICgyNCBtb250aHMpXG4gKiBcbiAqIHYzLjguMDogUmFuZ2UgSGlnaGxpZ2h0IENhY2hlXG4gKiAtIFJhbmdlSGlnaGxpZ2h0ZXIgZm9yIGRlY29yYXRpb24gbG9naWNcbiAqIC0gUmFuZ2VIaWdobGlnaHRlckNhY2hlIHdpdGggTFJVICg0OCBncmlkcylcbiAqIC0gU2VwYXJhdGVzIGdyaWQgc3RydWN0dXJlIGZyb20gZGVjb3JhdGlvbnNcbiAqIFxuICogdjMuOS4wOiBWaXJ0dWFsIFdlZWtzIChXaW5kb3dlZCBSZW5kZXJpbmcpXG4gKiAtIFZpcnR1YWwtd2Vla3MgbG9naWMgZm9yIHJlZHVjZWQgRE9NIGNvbXBsZXhpdHlcbiAqIC0gUmVuZGVyIG9ubHkgdmlzaWJsZSB3ZWVrcyAoY29uZmlndXJhYmxlIHdpbmRvdylcbiAqIC0gfjUwJSByZWR1Y3Rpb24gaW4gRE9NIG5vZGVzIHdpdGggd2luZG93U2l6ZT0zXG4gKiBcbiAqIHYzLjkuMjogQ2FjaGUgQm91bmRzIChNZW1vcnkgU2FmZXR5KVxuICogLSBNQVhfQ0FDSEVfRU5UUklFUyA9IDQ4IHByZXZlbnRzIHVuYm91bmRlZCBncm93dGhcbiAqIC0gRklGTyBldmljdGlvbiBmb3IgbG9uZy1ydW5uaW5nIHNlc3Npb25zXG4gKiAtIENyaXRpY2FsIGZvciBFUlAsIEJJLCBob3RlbCBzeXN0ZW1zXG4gKlxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdHJ1Y3RvcihcbiAqICAgcHJpdmF0ZSBncmlkQ2FjaGU6IENhbGVuZGFyR3JpZENhY2hlLFxuICogICBwcml2YXRlIGhpZ2hsaWdodGVyQ2FjaGU6IFJhbmdlSGlnaGxpZ2h0ZXJDYWNoZVxuICogKSB7fVxuICpcbiAqIGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRDYWNoZS5nZXQobW9udGhEYXRlLCB3ZWVrU3RhcnQpO1xuICogY29uc3QgZGVjb3JhdGVkID0gdGhpcy5oaWdobGlnaHRlckNhY2hlLmdldChncmlkLCB7XG4gKiAgIHN0YXJ0LCBlbmQsIGhvdmVyRGF0ZSwgZGlzYWJsZWREYXRlc1xuICogfSk7XG4gKiBcbiAqIC8vIE9wdGlvbmFsOiBXaW5kb3dlZCByZW5kZXJpbmcgKHYzLjkuMCspXG4gKiBjb25zdCB3aW5kb3dTaXplID0gMzsgLy8gUmVuZGVyIG9ubHkgMyB3ZWVrc1xuICogY29uc3QgdmlzaWJsZVdlZWtzID0gZ2V0VmlzaWJsZVdlZWtzKFxuICogICBkZWNvcmF0ZWQud2Vla3MsIFxuICogICB3ZWVrU3RhcnRJbmRleCwgXG4gKiAgIHdpbmRvd1NpemVcbiAqICk7XG4gKiAvLyBkZWNvcmF0ZWQuY2VsbHNbMF0uaXNvID0+ICcyMDI2LTAyLTAxJ1xuICogLy8gZGVjb3JhdGVkLmNlbGxzWzBdLmlzSW5SYW5nZSA9PiB0cnVlXG4gKiBgYGBcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2NhbGVuZGFyLWdyaWQudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci1ncmlkLmZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci1ncmlkLmNhY2hlJztcbmV4cG9ydCAqIGZyb20gJy4vcmFuZ2UtaGlnaGxpZ2h0ZXIudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9yYW5nZS1oaWdobGlnaHRlcic7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLWhpZ2hsaWdodGVyLmNhY2hlJztcbmV4cG9ydCAqIGZyb20gJy4vdmlydHVhbC13ZWVrcy50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3ZpcnR1YWwtd2Vla3MubG9naWMnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWNoZS5jb25maWcnO1xuIl19
@@ -1,37 +0,0 @@
1
- /**
2
- * Core headless date range logic
3
- *
4
- * v3.6.0: Plugin Architecture
5
- * - RangePresetPlugin interface for extensible presets
6
- * - PresetRegistry for plugin management
7
- * - Built-in presets as plugins
8
- * - Provider functions for custom presets
9
- *
10
- * v3.7.0: Calendar Grid Cache
11
- * - CalendarGridFactory for deterministic grid generation
12
- * - CalendarGridCache with LRU memoization
13
- * - Separates grid structure from decorations for performance
14
- *
15
- * v3.8.0: Range Highlight Cache
16
- * - RangeHighlighter for decoration logic (pure computation)
17
- * - RangeHighlighterCache with LRU (48 grids)
18
- * - Eliminates redundant decoration recomputations
19
- *
20
- * Import from here for clean barrel exports
21
- */
22
- export * from './dual-date-range.store';
23
- export * from './preset.engine';
24
- export * from './range.validator';
25
- export * from './date-clock';
26
- export * from './system-clock';
27
- export * from './date-adapter';
28
- export * from './native-date-adapter';
29
- // v3.6.0: Plugin System
30
- export * from './range-preset.plugin';
31
- export * from './preset-registry';
32
- export * from './built-in-presets';
33
- export * from './preset-providers';
34
- // v3.7.0: Calendar Grid Cache
35
- // v3.8.0: Range Highlight Cache
36
- export * from './calendar-grid';
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUV0Qyx3QkFBd0I7QUFDeEIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyw4QkFBOEI7QUFDOUIsZ0NBQWdDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcmUgaGVhZGxlc3MgZGF0ZSByYW5nZSBsb2dpY1xuICogXG4gKiB2My42LjA6IFBsdWdpbiBBcmNoaXRlY3R1cmVcbiAqIC0gUmFuZ2VQcmVzZXRQbHVnaW4gaW50ZXJmYWNlIGZvciBleHRlbnNpYmxlIHByZXNldHNcbiAqIC0gUHJlc2V0UmVnaXN0cnkgZm9yIHBsdWdpbiBtYW5hZ2VtZW50XG4gKiAtIEJ1aWx0LWluIHByZXNldHMgYXMgcGx1Z2luc1xuICogLSBQcm92aWRlciBmdW5jdGlvbnMgZm9yIGN1c3RvbSBwcmVzZXRzXG4gKiBcbiAqIHYzLjcuMDogQ2FsZW5kYXIgR3JpZCBDYWNoZVxuICogLSBDYWxlbmRhckdyaWRGYWN0b3J5IGZvciBkZXRlcm1pbmlzdGljIGdyaWQgZ2VuZXJhdGlvblxuICogLSBDYWxlbmRhckdyaWRDYWNoZSB3aXRoIExSVSBtZW1vaXphdGlvblxuICogLSBTZXBhcmF0ZXMgZ3JpZCBzdHJ1Y3R1cmUgZnJvbSBkZWNvcmF0aW9ucyBmb3IgcGVyZm9ybWFuY2VcbiAqIFxuICogdjMuOC4wOiBSYW5nZSBIaWdobGlnaHQgQ2FjaGVcbiAqIC0gUmFuZ2VIaWdobGlnaHRlciBmb3IgZGVjb3JhdGlvbiBsb2dpYyAocHVyZSBjb21wdXRhdGlvbilcbiAqIC0gUmFuZ2VIaWdobGlnaHRlckNhY2hlIHdpdGggTFJVICg0OCBncmlkcylcbiAqIC0gRWxpbWluYXRlcyByZWR1bmRhbnQgZGVjb3JhdGlvbiByZWNvbXB1dGF0aW9uc1xuICogXG4gKiBJbXBvcnQgZnJvbSBoZXJlIGZvciBjbGVhbiBiYXJyZWwgZXhwb3J0c1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vZHVhbC1kYXRlLXJhbmdlLnN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJlc2V0LmVuZ2luZSc7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtY2xvY2snO1xuZXhwb3J0ICogZnJvbSAnLi9zeXN0ZW0tY2xvY2snO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLWFkYXB0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9uYXRpdmUtZGF0ZS1hZGFwdGVyJztcblxuLy8gdjMuNi4wOiBQbHVnaW4gU3lzdGVtXG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLXByZXNldC5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9wcmVzZXQtcmVnaXN0cnknO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsdC1pbi1wcmVzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJlc2V0LXByb3ZpZGVycyc7XG5cbi8vIHYzLjcuMDogQ2FsZW5kYXIgR3JpZCBDYWNoZVxuLy8gdjMuOC4wOiBSYW5nZSBIaWdobGlnaHQgQ2FjaGVcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXItZ3JpZCc7XG4iXX0=
@@ -1,12 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- /**
3
- * Abstract class for date adapters.
4
- * Allows the component to work with different date libraries (Date, DayJS, date-fns, Luxon, etc.)
5
- */
6
- export class DateAdapter {
7
- }
8
- /**
9
- * Injection token for DateAdapter
10
- */
11
- export const DATE_ADAPTER = new InjectionToken('DATE_ADAPTER');
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGUtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsV0FBVztDQXlIaEM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBYyxjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGRhdGUgYWRhcHRlcnMuXG4gKiBBbGxvd3MgdGhlIGNvbXBvbmVudCB0byB3b3JrIHdpdGggZGlmZmVyZW50IGRhdGUgbGlicmFyaWVzIChEYXRlLCBEYXlKUywgZGF0ZS1mbnMsIEx1eG9uLCBldGMuKVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUFkYXB0ZXI8VCA9IGFueT4ge1xuICAvKipcbiAgICogUGFyc2VzIGEgdmFsdWUgaW50byBhIGRhdGUgb2JqZWN0XG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIHBhcnNlIChzdHJpbmcsIG51bWJlciwgb3IgZGF0ZSBvYmplY3QpXG4gICAqIEByZXR1cm5zIFBhcnNlZCBkYXRlIG9iamVjdFxuICAgKi9cbiAgYWJzdHJhY3QgcGFyc2UodmFsdWU6IGFueSk6IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBGb3JtYXRzIGEgZGF0ZSBvYmplY3QgaW50byBhIHN0cmluZ1xuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgb2JqZWN0IHRvIGZvcm1hdFxuICAgKiBAcGFyYW0gZm9ybWF0IC0gT3B0aW9uYWwgZm9ybWF0IHN0cmluZ1xuICAgKiBAcmV0dXJucyBGb3JtYXR0ZWQgZGF0ZSBzdHJpbmdcbiAgICovXG4gIGFic3RyYWN0IGZvcm1hdChkYXRlOiBULCBmb3JtYXQ/OiBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZHMgZGF5cyB0byBhIGRhdGVcbiAgICogQHBhcmFtIGRhdGUgLSBEYXRlIG9iamVjdFxuICAgKiBAcGFyYW0gZGF5cyAtIE51bWJlciBvZiBkYXlzIHRvIGFkZCAoY2FuIGJlIG5lZ2F0aXZlKVxuICAgKiBAcmV0dXJucyBOZXcgZGF0ZSBvYmplY3RcbiAgICovXG4gIGFic3RyYWN0IGFkZERheXMoZGF0ZTogVCwgZGF5czogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQWRkcyBtb250aHMgdG8gYSBkYXRlXG4gICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSBvYmplY3RcbiAgICogQHBhcmFtIG1vbnRocyAtIE51bWJlciBvZiBtb250aHMgdG8gYWRkIChjYW4gYmUgbmVnYXRpdmUpXG4gICAqIEByZXR1cm5zIE5ldyBkYXRlIG9iamVjdFxuICAgKi9cbiAgYWJzdHJhY3QgYWRkTW9udGhzKGRhdGU6IFQsIG1vbnRoczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogR2V0cyB0aGUgeWVhciBmcm9tIGEgZGF0ZVxuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgb2JqZWN0XG4gICAqIEByZXR1cm5zIFllYXIgbnVtYmVyXG4gICAqL1xuICBhYnN0cmFjdCBnZXRZZWFyKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG1vbnRoIGZyb20gYSBkYXRlICgwLTExKVxuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgb2JqZWN0XG4gICAqIEByZXR1cm5zIE1vbnRoIG51bWJlciAoMC0xMSlcbiAgICovXG4gIGFic3RyYWN0IGdldE1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRheSBvZiBtb250aCBmcm9tIGEgZGF0ZVxuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgb2JqZWN0XG4gICAqIEByZXR1cm5zIERheSBvZiBtb250aCAoMS0zMSlcbiAgICovXG4gIGFic3RyYWN0IGdldERhdGUoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0cyB0aGUgZGF5IG9mIHdlZWsgZnJvbSBhIGRhdGUgKDAtNiwgU3VuZGF5ID0gMClcbiAgICogQHBhcmFtIGRhdGUgLSBEYXRlIG9iamVjdFxuICAgKiBAcmV0dXJucyBEYXkgb2Ygd2VlayAoMC02KVxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0RGF5KGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBvYmplY3RcbiAgICogQHBhcmFtIHllYXIgLSBZZWFyXG4gICAqIEBwYXJhbSBtb250aCAtIE1vbnRoICgwLTExKVxuICAgKiBAcGFyYW0gZGF0ZSAtIERheSBvZiBtb250aCAoMS0zMSlcbiAgICogQHJldHVybnMgTmV3IGRhdGUgb2JqZWN0XG4gICAqL1xuICBhYnN0cmFjdCBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogR2V0cyB0b2RheSdzIGRhdGVcbiAgICogQHJldHVybnMgVG9kYXkncyBkYXRlIG9iamVjdFxuICAgKi9cbiAgYWJzdHJhY3QgdG9kYXkoKTogVDtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgdGhlIHNhbWUgZGF5XG4gICAqIEBwYXJhbSBhIC0gRmlyc3QgZGF0ZVxuICAgKiBAcGFyYW0gYiAtIFNlY29uZCBkYXRlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgc2FtZSBkYXlcbiAgICovXG4gIGFic3RyYWN0IGlzU2FtZURheShhOiBUIHwgbnVsbCwgYjogVCB8IG51bGwpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBkYXRlIGlzIGJlZm9yZSBhbm90aGVyXG4gICAqIEBwYXJhbSBhIC0gRmlyc3QgZGF0ZVxuICAgKiBAcGFyYW0gYiAtIFNlY29uZCBkYXRlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgYSBpcyBiZWZvcmUgYlxuICAgKi9cbiAgYWJzdHJhY3QgaXNCZWZvcmUoYTogVCB8IG51bGwsIGI6IFQgfCBudWxsKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgZGF0ZSBpcyBhZnRlciBhbm90aGVyXG4gICAqIEBwYXJhbSBhIC0gRmlyc3QgZGF0ZVxuICAgKiBAcGFyYW0gYiAtIFNlY29uZCBkYXRlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgYSBpcyBhZnRlciBiXG4gICAqL1xuICBhYnN0cmFjdCBpc0FmdGVyKGE6IFQgfCBudWxsLCBiOiBUIHwgbnVsbCk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGRhdGUgaXMgYmV0d2VlbiB0d28gb3RoZXIgZGF0ZXNcbiAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBzdGFydCAtIFN0YXJ0IGRhdGVcbiAgICogQHBhcmFtIGVuZCAtIEVuZCBkYXRlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgZGF0ZSBpcyBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmRcbiAgICovXG4gIGFic3RyYWN0IGlzQmV0d2VlbihkYXRlOiBUIHwgbnVsbCwgc3RhcnQ6IFQgfCBudWxsLCBlbmQ6IFQgfCBudWxsKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2xvbmVzIGEgZGF0ZSBvYmplY3RcbiAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHRvIGNsb25lXG4gICAqIEByZXR1cm5zIENsb25lZCBkYXRlIG9iamVjdFxuICAgKi9cbiAgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIGEgdmFsaWQgZGF0ZVxuICAgKiBAcGFyYW0gZGF0ZSAtIFZhbHVlIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdmFsaWQgZGF0ZVxuICAgKi9cbiAgYWJzdHJhY3QgaXNWYWxpZChkYXRlOiBhbnkpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgRGF0ZUFkYXB0ZXJcbiAqL1xuZXhwb3J0IGNvbnN0IERBVEVfQURBUFRFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXRlQWRhcHRlcj4oJ0RBVEVfQURBUFRFUicpO1xuIl19
@@ -1,117 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { DateAdapter } from './date-adapter';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Date adapter implementation for native JavaScript Date objects
6
- * This is the default adapter used by the component
7
- */
8
- export class NativeDateAdapter extends DateAdapter {
9
- parse(value) {
10
- if (!value)
11
- return null;
12
- if (value instanceof Date) {
13
- return new Date(value);
14
- }
15
- if (typeof value === 'string' || typeof value === 'number') {
16
- // Fix timezone issues: parse YYYY-MM-DD as local date, not UTC
17
- if (typeof value === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(value)) {
18
- const [year, month, day] = value.split('-').map(Number);
19
- return new Date(year, month - 1, day);
20
- }
21
- const date = new Date(value);
22
- return this.isValid(date) ? date : null;
23
- }
24
- return null;
25
- }
26
- format(date, format = 'YYYY-MM-DD') {
27
- if (!this.isValid(date))
28
- return '';
29
- const year = date.getFullYear();
30
- const month = String(date.getMonth() + 1).padStart(2, '0');
31
- const day = String(date.getDate()).padStart(2, '0');
32
- // Simple format implementation
33
- switch (format) {
34
- case 'YYYY-MM-DD':
35
- return `${year}-${month}-${day}`;
36
- case 'MM/DD/YYYY':
37
- return `${month}/${day}/${year}`;
38
- case 'DD/MM/YYYY':
39
- return `${day}/${month}/${year}`;
40
- default:
41
- return `${year}-${month}-${day}`;
42
- }
43
- }
44
- addDays(date, days) {
45
- const result = this.clone(date);
46
- result.setDate(result.getDate() + days);
47
- return result;
48
- }
49
- addMonths(date, months) {
50
- const result = this.clone(date);
51
- result.setMonth(result.getMonth() + months);
52
- return result;
53
- }
54
- getYear(date) {
55
- return date.getFullYear();
56
- }
57
- getMonth(date) {
58
- return date.getMonth();
59
- }
60
- getDate(date) {
61
- return date.getDate();
62
- }
63
- getDay(date) {
64
- return date.getDay();
65
- }
66
- createDate(year, month, date) {
67
- return new Date(year, month, date);
68
- }
69
- today() {
70
- return new Date();
71
- }
72
- isSameDay(a, b) {
73
- if (!a || !b)
74
- return false;
75
- if (!this.isValid(a) || !this.isValid(b))
76
- return false;
77
- return (a.getFullYear() === b.getFullYear() &&
78
- a.getMonth() === b.getMonth() &&
79
- a.getDate() === b.getDate());
80
- }
81
- isBefore(a, b) {
82
- if (!a || !b)
83
- return false;
84
- if (!this.isValid(a) || !this.isValid(b))
85
- return false;
86
- return a.getTime() < b.getTime();
87
- }
88
- isAfter(a, b) {
89
- if (!a || !b)
90
- return false;
91
- if (!this.isValid(a) || !this.isValid(b))
92
- return false;
93
- return a.getTime() > b.getTime();
94
- }
95
- isBetween(date, start, end) {
96
- if (!date || !start || !end)
97
- return false;
98
- if (!this.isValid(date) || !this.isValid(start) || !this.isValid(end))
99
- return false;
100
- const dateTime = date.getTime();
101
- const startTime = start.getTime();
102
- const endTime = end.getTime();
103
- return dateTime >= startTime && dateTime <= endTime;
104
- }
105
- clone(date) {
106
- return new Date(date.getTime());
107
- }
108
- isValid(date) {
109
- return date instanceof Date && !isNaN(date.getTime());
110
- }
111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NativeDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
112
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NativeDateAdapter });
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NativeDateAdapter, decorators: [{
115
- type: Injectable
116
- }] });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uYXRpdmUtZGF0ZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU3Qzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBaUI7SUFDdEQsS0FBSyxDQUFDLEtBQVU7UUFDZCxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXhCLElBQUksS0FBSyxZQUFZLElBQUksRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNELCtEQUErRDtZQUMvRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hELE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUVELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFD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QU8sRUFBRSxDQUFDO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFOUIsT0FBTyxRQUFRLElBQUksU0FBUyxJQUFJLFFBQVEsSUFBSSxPQUFPLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFVO1FBQ2QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVM7UUFDZixPQUFPLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzt3R0F4SFUsaUJBQWlCOzRHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJy4vZGF0ZS1hZGFwdGVyJztcblxuLyoqXG4gKiBEYXRlIGFkYXB0ZXIgaW1wbGVtZW50YXRpb24gZm9yIG5hdGl2ZSBKYXZhU2NyaXB0IERhdGUgb2JqZWN0c1xuICogVGhpcyBpcyB0aGUgZGVmYXVsdCBhZGFwdGVyIHVzZWQgYnkgdGhlIGNvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmF0aXZlRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxEYXRlPiB7XG4gIHBhcnNlKHZhbHVlOiBhbnkpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgLy8gRml4IHRpbWV6b25lIGlzc3VlczogcGFyc2UgWVlZWS1NTS1ERCBhcyBsb2NhbCBkYXRlLCBub3QgVVRDXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gdmFsdWUuc3BsaXQoJy0nKS5tYXAoTnVtYmVyKTtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoZGF0ZSkgPyBkYXRlIDogbnVsbDtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmb3JtYXQoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcgPSAnWVlZWS1NTS1ERCcpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSByZXR1cm4gJyc7XG4gICAgXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBtb250aCA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIGNvbnN0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICBcbiAgICAvLyBTaW1wbGUgZm9ybWF0IGltcGxlbWVudGF0aW9uXG4gICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgIGNhc2UgJ1lZWVktTU0tREQnOlxuICAgICAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcbiAgICAgIGNhc2UgJ01NL0REL1lZWVknOlxuICAgICAgICByZXR1cm4gYCR7bW9udGh9LyR7ZGF5fS8ke3llYXJ9YDtcbiAgICAgIGNhc2UgJ0REL01NL1lZWVknOlxuICAgICAgICByZXR1cm4gYCR7ZGF5fS8ke21vbnRofS8ke3llYXJ9YDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gO1xuICAgIH1cbiAgfVxuXG4gIGFkZERheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jbG9uZShkYXRlKTtcbiAgICByZXN1bHQuc2V0RGF0ZShyZXN1bHQuZ2V0RGF0ZSgpICsgZGF5cyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFkZE1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY2xvbmUoZGF0ZSk7XG4gICAgcmVzdWx0LnNldE1vbnRoKHJlc3VsdC5nZXRNb250aCgpICsgbW9udGhzKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0WWVhcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgZ2V0TW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0TW9udGgoKTtcbiAgfVxuXG4gIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgZ2V0RGF5KGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldERheSgpO1xuICB9XG5cbiAgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSk7XG4gIH1cblxuICB0b2RheSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKTtcbiAgfVxuXG4gIGlzU2FtZURheShhOiBEYXRlIHwgbnVsbCwgYjogRGF0ZSB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoIWEgfHwgIWIpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZChhKSB8fCAhdGhpcy5pc1ZhbGlkKGIpKSByZXR1cm4gZmFsc2U7XG4gICAgXG4gICAgcmV0dXJuIChcbiAgICAgIGEuZ2V0RnVsbFllYXIoKSA9PT0gYi5nZXRGdWxsWWVhcigpICYmXG4gICAgICBhLmdldE1vbnRoKCkgPT09IGIuZ2V0TW9udGgoKSAmJlxuICAgICAgYS5nZXREYXRlKCkgPT09IGIuZ2V0RGF0ZSgpXG4gICAgKTtcbiAgfVxuXG4gIGlzQmVmb3JlKGE6IERhdGUgfCBudWxsLCBiOiBEYXRlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghYSB8fCAhYikgcmV0dXJuIGZhbHNlO1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGEpIHx8ICF0aGlzLmlzVmFsaWQoYikpIHJldHVybiBmYWxzZTtcbiAgICBcbiAgICByZXR1cm4gYS5nZXRUaW1lKCkgPCBiLmdldFRpbWUoKTtcbiAgfVxuXG4gIGlzQWZ0ZXIoYTogRGF0ZSB8IG51bGwsIGI6IERhdGUgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKCFhIHx8ICFiKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoYSkgfHwgIXRoaXMuaXNWYWxpZChiKSkgcmV0dXJuIGZhbHNlO1xuICAgIFxuICAgIHJldHVybiBhLmdldFRpbWUoKSA+IGIuZ2V0VGltZSgpO1xuICB9XG5cbiAgaXNCZXR3ZWVuKGRhdGU6IERhdGUgfCBudWxsLCBzdGFydDogRGF0ZSB8IG51bGwsIGVuZDogRGF0ZSB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoIWRhdGUgfHwgIXN0YXJ0IHx8ICFlbmQpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZChkYXRlKSB8fCAhdGhpcy5pc1ZhbGlkKHN0YXJ0KSB8fCAhdGhpcy5pc1ZhbGlkKGVuZCkpIHJldHVybiBmYWxzZTtcbiAgICBcbiAgICBjb25zdCBkYXRlVGltZSA9IGRhdGUuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHN0YXJ0LmdldFRpbWUoKTtcbiAgICBjb25zdCBlbmRUaW1lID0gZW5kLmdldFRpbWUoKTtcbiAgICBcbiAgICByZXR1cm4gZGF0ZVRpbWUgPj0gc3RhcnRUaW1lICYmIGRhdGVUaW1lIDw9IGVuZFRpbWU7XG4gIH1cblxuICBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIGlzVmFsaWQoZGF0ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,276 +0,0 @@
1
- /**
2
- * Utility functions for creating common date range presets
3
- * Perfect for dashboards, reporting, POS, BI apps, and ERP systems
4
- */
5
- /**
6
- * Format a date as YYYY-MM-DD string
7
- */
8
- function formatDate(date) {
9
- const year = date.getFullYear();
10
- const month = String(date.getMonth() + 1).padStart(2, '0');
11
- const day = String(date.getDate()).padStart(2, '0');
12
- return `${year}-${month}-${day}`;
13
- }
14
- /**
15
- * Get the start of today
16
- */
17
- export function getToday() {
18
- const today = new Date();
19
- return {
20
- start: formatDate(today),
21
- end: formatDate(today)
22
- };
23
- }
24
- /**
25
- * Get yesterday's date range
26
- */
27
- export function getYesterday() {
28
- const yesterday = new Date();
29
- yesterday.setDate(yesterday.getDate() - 1);
30
- return {
31
- start: formatDate(yesterday),
32
- end: formatDate(yesterday)
33
- };
34
- }
35
- /**
36
- * Get last N days (including today)
37
- */
38
- export function getLastNDays(days) {
39
- const end = new Date();
40
- const start = new Date();
41
- start.setDate(start.getDate() - days + 1);
42
- return {
43
- start: formatDate(start),
44
- end: formatDate(end)
45
- };
46
- }
47
- /**
48
- * Get this week (Monday to Sunday)
49
- */
50
- export function getThisWeek() {
51
- const today = new Date();
52
- const dayOfWeek = today.getDay();
53
- const start = new Date(today);
54
- // Adjust to Monday (1) as first day of week
55
- const daysToMonday = dayOfWeek === 0 ? 6 : dayOfWeek - 1;
56
- start.setDate(start.getDate() - daysToMonday);
57
- const end = new Date(start);
58
- end.setDate(end.getDate() + 6);
59
- return {
60
- start: formatDate(start),
61
- end: formatDate(end)
62
- };
63
- }
64
- /**
65
- * Get last week (Monday to Sunday)
66
- */
67
- export function getLastWeek() {
68
- const today = new Date();
69
- const dayOfWeek = today.getDay();
70
- const daysToMonday = dayOfWeek === 0 ? 6 : dayOfWeek - 1;
71
- const lastMonday = new Date(today);
72
- lastMonday.setDate(lastMonday.getDate() - daysToMonday - 7);
73
- const lastSunday = new Date(lastMonday);
74
- lastSunday.setDate(lastSunday.getDate() + 6);
75
- return {
76
- start: formatDate(lastMonday),
77
- end: formatDate(lastSunday)
78
- };
79
- }
80
- /**
81
- * Get this month (1st to last day)
82
- */
83
- export function getThisMonth() {
84
- const today = new Date();
85
- const start = new Date(today.getFullYear(), today.getMonth(), 1);
86
- const end = new Date(today.getFullYear(), today.getMonth() + 1, 0);
87
- return {
88
- start: formatDate(start),
89
- end: formatDate(end)
90
- };
91
- }
92
- /**
93
- * Get last month (1st to last day)
94
- */
95
- export function getLastMonth() {
96
- const today = new Date();
97
- const start = new Date(today.getFullYear(), today.getMonth() - 1, 1);
98
- const end = new Date(today.getFullYear(), today.getMonth(), 0);
99
- return {
100
- start: formatDate(start),
101
- end: formatDate(end)
102
- };
103
- }
104
- /**
105
- * Get month to date (1st of current month to today)
106
- */
107
- export function getMonthToDate() {
108
- const today = new Date();
109
- const start = new Date(today.getFullYear(), today.getMonth(), 1);
110
- return {
111
- start: formatDate(start),
112
- end: formatDate(today)
113
- };
114
- }
115
- /**
116
- * Get this quarter (Q1, Q2, Q3, or Q4)
117
- */
118
- export function getThisQuarter() {
119
- const today = new Date();
120
- const currentMonth = today.getMonth();
121
- const quarterStartMonth = Math.floor(currentMonth / 3) * 3;
122
- const start = new Date(today.getFullYear(), quarterStartMonth, 1);
123
- const end = new Date(today.getFullYear(), quarterStartMonth + 3, 0);
124
- return {
125
- start: formatDate(start),
126
- end: formatDate(end)
127
- };
128
- }
129
- /**
130
- * Get last quarter
131
- */
132
- export function getLastQuarter() {
133
- const today = new Date();
134
- const currentMonth = today.getMonth();
135
- const lastQuarterStartMonth = Math.floor(currentMonth / 3) * 3 - 3;
136
- const start = new Date(today.getFullYear(), lastQuarterStartMonth, 1);
137
- const end = new Date(today.getFullYear(), lastQuarterStartMonth + 3, 0);
138
- return {
139
- start: formatDate(start),
140
- end: formatDate(end)
141
- };
142
- }
143
- /**
144
- * Get quarter to date (start of current quarter to today)
145
- */
146
- export function getQuarterToDate() {
147
- const today = new Date();
148
- const currentMonth = today.getMonth();
149
- const quarterStartMonth = Math.floor(currentMonth / 3) * 3;
150
- const start = new Date(today.getFullYear(), quarterStartMonth, 1);
151
- return {
152
- start: formatDate(start),
153
- end: formatDate(today)
154
- };
155
- }
156
- /**
157
- * Get this year (January 1 to December 31)
158
- */
159
- export function getThisYear() {
160
- const today = new Date();
161
- const start = new Date(today.getFullYear(), 0, 1);
162
- const end = new Date(today.getFullYear(), 11, 31);
163
- return {
164
- start: formatDate(start),
165
- end: formatDate(end)
166
- };
167
- }
168
- /**
169
- * Get last year
170
- */
171
- export function getLastYear() {
172
- const today = new Date();
173
- const start = new Date(today.getFullYear() - 1, 0, 1);
174
- const end = new Date(today.getFullYear() - 1, 11, 31);
175
- return {
176
- start: formatDate(start),
177
- end: formatDate(end)
178
- };
179
- }
180
- /**
181
- * Get year to date (January 1 to today)
182
- */
183
- export function getYearToDate() {
184
- const today = new Date();
185
- const start = new Date(today.getFullYear(), 0, 1);
186
- return {
187
- start: formatDate(start),
188
- end: formatDate(today)
189
- };
190
- }
191
- /**
192
- * Get last N months (including current partial month)
193
- */
194
- export function getLastNMonths(months) {
195
- const today = new Date();
196
- const start = new Date(today);
197
- start.setMonth(start.getMonth() - months);
198
- return {
199
- start: formatDate(start),
200
- end: formatDate(today)
201
- };
202
- }
203
- /**
204
- * Get last N years
205
- */
206
- export function getLastNYears(years) {
207
- const today = new Date();
208
- const start = new Date(today);
209
- start.setFullYear(start.getFullYear() - years);
210
- return {
211
- start: formatDate(start),
212
- end: formatDate(today)
213
- };
214
- }
215
- /**
216
- * Pre-built preset configurations for common use cases
217
- * Import and use these directly in your component
218
- */
219
- export const CommonPresets = {
220
- /**
221
- * Dashboard presets - Perfect for analytics dashboards
222
- */
223
- dashboard: [
224
- { label: 'Today', getValue: getToday },
225
- { label: 'Yesterday', getValue: getYesterday },
226
- { label: 'Last 7 days', getValue: () => getLastNDays(7) },
227
- { label: 'Last 30 days', getValue: () => getLastNDays(30) },
228
- { label: 'This month', getValue: getThisMonth },
229
- { label: 'Last month', getValue: getLastMonth }
230
- ],
231
- /**
232
- * Reporting presets - Perfect for business reporting
233
- */
234
- reporting: [
235
- { label: 'Today', getValue: getToday },
236
- { label: 'This week', getValue: getThisWeek },
237
- { label: 'Last week', getValue: getLastWeek },
238
- { label: 'This month', getValue: getThisMonth },
239
- { label: 'Last month', getValue: getLastMonth },
240
- { label: 'This quarter', getValue: getThisQuarter },
241
- { label: 'Last quarter', getValue: getLastQuarter }
242
- ],
243
- /**
244
- * Financial presets - Perfect for ERP and accounting systems
245
- */
246
- financial: [
247
- { label: 'Month to date', getValue: getMonthToDate },
248
- { label: 'Quarter to date', getValue: getQuarterToDate },
249
- { label: 'Year to date', getValue: getYearToDate },
250
- { label: 'Last month', getValue: getLastMonth },
251
- { label: 'Last quarter', getValue: getLastQuarter },
252
- { label: 'Last year', getValue: getLastYear }
253
- ],
254
- /**
255
- * Analytics presets - Perfect for BI and data analysis
256
- */
257
- analytics: [
258
- { label: 'Last 7 days', getValue: () => getLastNDays(7) },
259
- { label: 'Last 14 days', getValue: () => getLastNDays(14) },
260
- { label: 'Last 30 days', getValue: () => getLastNDays(30) },
261
- { label: 'Last 60 days', getValue: () => getLastNDays(60) },
262
- { label: 'Last 90 days', getValue: () => getLastNDays(90) },
263
- { label: 'Last 180 days', getValue: () => getLastNDays(180) },
264
- { label: 'Last 365 days', getValue: () => getLastNDays(365) }
265
- ],
266
- /**
267
- * Simple presets - Basic common ranges
268
- */
269
- simple: [
270
- { label: 'Today', getValue: getToday },
271
- { label: 'Last 7 days', getValue: () => getLastNDays(7) },
272
- { label: 'Last 30 days', getValue: () => getLastNDays(30) },
273
- { label: 'This year', getValue: getThisYear }
274
- ]
275
- };
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByZXNldC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFFSDs7R0FFRztBQUNILFNBQVMsVUFBVSxDQUFDLElBQVU7SUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsUUFBUTtJQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLE9BQU87UUFDTCxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUN4QixHQUFHLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxPQUFPO1FBQ0wsS0FBSyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDNUIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUM7S0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FF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O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWTtJQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0QsT0FBTztRQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3hCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFakUsT0FBTztRQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3hCLEdBQUcsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzRCxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMs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QUU7UUFDTixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtRQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUN6RCxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUMzRCxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtLQUM1QjtDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJlc2V0Q29uZmlnLCBQcmVzZXRSYW5nZSB9IGZyb20gJy4vZHVhbC1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbnMgZm9yIGNyZWF0aW5nIGNvbW1vbiBkYXRlIHJhbmdlIHByZXNldHNcbiAqIFBlcmZlY3QgZm9yIGRhc2hib2FyZHMsIHJlcG9ydGluZywgUE9TLCBCSSBhcHBzLCBhbmQgRVJQIHN5c3RlbXNcbiAqL1xuXG4vKipcbiAqIEZvcm1hdCBhIGRhdGUgYXMgWVlZWS1NTS1ERCBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xuICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHN0YXJ0IG9mIHRvZGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb2RheSgpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZSh0b2RheSksXG4gICAgZW5kOiBmb3JtYXREYXRlKHRvZGF5KVxuICB9O1xufVxuXG4vKipcbiAqIEdldCB5ZXN0ZXJkYXkncyBkYXRlIHJhbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRZZXN0ZXJkYXkoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB5ZXN0ZXJkYXkgPSBuZXcgRGF0ZSgpO1xuICB5ZXN0ZXJkYXkuc2V0RGF0ZSh5ZXN0ZXJkYXkuZ2V0RGF0ZSgpIC0gMSk7XG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoeWVzdGVyZGF5KSxcbiAgICBlbmQ6IGZvcm1hdERhdGUoeWVzdGVyZGF5KVxuICB9O1xufVxuXG4vKipcbiAqIEdldCBsYXN0IE4gZGF5cyAoaW5jbHVkaW5nIHRvZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdE5EYXlzKGRheXM6IG51bWJlcik6IFByZXNldFJhbmdlIHtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpO1xuICBzdGFydC5zZXREYXRlKHN0YXJ0LmdldERhdGUoKSAtIGRheXMgKyAxKTtcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZShzdGFydCksXG4gICAgZW5kOiBmb3JtYXREYXRlKGVuZClcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgdGhpcyB3ZWVrIChNb25kYXkgdG8gU3VuZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGhpc1dlZWsoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGRheU9mV2VlayA9IHRvZGF5LmdldERheSgpO1xuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5KTtcbiAgLy8gQWRqdXN0IHRvIE1vbmRheSAoMSkgYXMgZmlyc3QgZGF5IG9mIHdlZWtcbiAgY29uc3QgZGF5c1RvTW9uZGF5ID0gZGF5T2ZXZWVrID09PSAwID8gNiA6IGRheU9mV2VlayAtIDE7XG4gIHN0YXJ0LnNldERhdGUoc3RhcnQuZ2V0RGF0ZSgpIC0gZGF5c1RvTW9uZGF5KTtcbiAgXG4gIGNvbnN0IGVuZCA9IG5ldyBEYXRlKHN0YXJ0KTtcbiAgZW5kLnNldERhdGUoZW5kLmdldERhdGUoKSArIDYpO1xuICBcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZShzdGFydCksXG4gICAgZW5kOiBmb3JtYXREYXRlKGVuZClcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgbGFzdCB3ZWVrIChNb25kYXkgdG8gU3VuZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdFdlZWsoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGRheU9mV2VlayA9IHRvZGF5LmdldERheSgpO1xuICBjb25zdCBkYXlzVG9Nb25kYXkgPSBkYXlPZldlZWsgPT09IDAgPyA2IDogZGF5T2ZXZWVrIC0gMTtcbiAgXG4gIGNvbnN0IGxhc3RNb25kYXkgPSBuZXcgRGF0ZSh0b2RheSk7XG4gIGxhc3RNb25kYXkuc2V0RGF0ZShsYXN0TW9uZGF5LmdldERhdGUoKSAtIGRheXNUb01vbmRheSAtIDcpO1xuICBcbiAgY29uc3QgbGFzdFN1bmRheSA9IG5ldyBEYXRlKGxhc3RNb25kYXkpO1xuICBsYXN0U3VuZGF5LnNldERhdGUobGFzdFN1bmRheS5nZXREYXRlKCkgKyA2KTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUobGFzdE1vbmRheSksXG4gICAgZW5kOiBmb3JtYXREYXRlKGxhc3RTdW5kYXkpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHRoaXMgbW9udGggKDFzdCB0byBsYXN0IGRheSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRoaXNNb250aCgpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCB0b2RheS5nZXRNb250aCgpLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgdG9kYXkuZ2V0TW9udGgoKSArIDEsIDApO1xuICBcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZShzdGFydCksXG4gICAgZW5kOiBmb3JtYXREYXRlKGVuZClcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgbGFzdCBtb250aCAoMXN0IHRvIGxhc3QgZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdE1vbnRoKCk6IFByZXNldFJhbmdlIHtcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHRvZGF5LmdldE1vbnRoKCkgLSAxLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgdG9kYXkuZ2V0TW9udGgoKSwgMCk7XG4gIFxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBmb3JtYXREYXRlKHN0YXJ0KSxcbiAgICBlbmQ6IGZvcm1hdERhdGUoZW5kKVxuICB9O1xufVxuXG4vKipcbiAqIEdldCBtb250aCB0byBkYXRlICgxc3Qgb2YgY3VycmVudCBtb250aCB0byB0b2RheSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbnRoVG9EYXRlKCk6IFByZXNldFJhbmdlIHtcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHRvZGF5LmdldE1vbnRoKCksIDEpO1xuICBcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZShzdGFydCksXG4gICAgZW5kOiBmb3JtYXREYXRlKHRvZGF5KVxuICB9O1xufVxuXG4vKipcbiAqIEdldCB0aGlzIHF1YXJ0ZXIgKFExLCBRMiwgUTMsIG9yIFE0KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGhpc1F1YXJ0ZXIoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGN1cnJlbnRNb250aCA9IHRvZGF5LmdldE1vbnRoKCk7XG4gIGNvbnN0IHF1YXJ0ZXJTdGFydE1vbnRoID0gTWF0aC5mbG9vcihjdXJyZW50TW9udGggLyAzKSAqIDM7XG4gIFxuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHF1YXJ0ZXJTdGFydE1vbnRoLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgcXVhcnRlclN0YXJ0TW9udGggKyAzLCAwKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZShlbmQpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IGxhc3QgcXVhcnRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdFF1YXJ0ZXIoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGN1cnJlbnRNb250aCA9IHRvZGF5LmdldE1vbnRoKCk7XG4gIGNvbnN0IGxhc3RRdWFydGVyU3RhcnRNb250aCA9IE1hdGguZmxvb3IoY3VycmVudE1vbnRoIC8gMykgKiAzIC0gMztcbiAgXG4gIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgbGFzdFF1YXJ0ZXJTdGFydE1vbnRoLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgbGFzdFF1YXJ0ZXJTdGFydE1vbnRoICsgMywgMCk7XG4gIFxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBmb3JtYXREYXRlKHN0YXJ0KSxcbiAgICBlbmQ6IGZvcm1hdERhdGUoZW5kKVxuICB9O1xufVxuXG4vKipcbiAqIEdldCBxdWFydGVyIHRvIGRhdGUgKHN0YXJ0IG9mIGN1cnJlbnQgcXVhcnRlciB0byB0b2RheSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFF1YXJ0ZXJUb0RhdGUoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGN1cnJlbnRNb250aCA9IHRvZGF5LmdldE1vbnRoKCk7XG4gIGNvbnN0IHF1YXJ0ZXJTdGFydE1vbnRoID0gTWF0aC5mbG9vcihjdXJyZW50TW9udGggLyAzKSAqIDM7XG4gIFxuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHF1YXJ0ZXJTdGFydE1vbnRoLCAxKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZSh0b2RheSlcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgdGhpcyB5ZWFyIChKYW51YXJ5IDEgdG8gRGVjZW1iZXIgMzEpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaGlzWWVhcigpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgMTEsIDMxKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZShlbmQpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IGxhc3QgeWVhclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdFllYXIoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSAtIDEsIDAsIDEpO1xuICBjb25zdCBlbmQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpIC0gMSwgMTEsIDMxKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZShlbmQpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHllYXIgdG8gZGF0ZSAoSmFudWFyeSAxIHRvIHRvZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0WWVhclRvRGF0ZSgpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZSh0b2RheSlcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgbGFzdCBOIG1vbnRocyAoaW5jbHVkaW5nIGN1cnJlbnQgcGFydGlhbCBtb250aClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExhc3ROTW9udGhzKG1vbnRoczogbnVtYmVyKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUodG9kYXkpO1xuICBzdGFydC5zZXRNb250aChzdGFydC5nZXRNb250aCgpIC0gbW9udGhzKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZSh0b2RheSlcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgbGFzdCBOIHllYXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXN0TlllYXJzKHllYXJzOiBudW1iZXIpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheSk7XG4gIHN0YXJ0LnNldEZ1bGxZZWFyKHN0YXJ0LmdldEZ1bGxZZWFyKCkgLSB5ZWFycyk7XG4gIFxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBmb3JtYXREYXRlKHN0YXJ0KSxcbiAgICBlbmQ6IGZvcm1hdERhdGUodG9kYXkpXG4gIH07XG59XG5cbi8qKlxuICogUHJlLWJ1aWx0IHByZXNldCBjb25maWd1cmF0aW9ucyBmb3IgY29tbW9uIHVzZSBjYXNlc1xuICogSW1wb3J0IGFuZCB1c2UgdGhlc2UgZGlyZWN0bHkgaW4geW91ciBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IENvbW1vblByZXNldHMgPSB7XG4gIC8qKlxuICAgKiBEYXNoYm9hcmQgcHJlc2V0cyAtIFBlcmZlY3QgZm9yIGFuYWx5dGljcyBkYXNoYm9hcmRzXG4gICAqL1xuICBkYXNoYm9hcmQ6IFtcbiAgICB7IGxhYmVsOiAnVG9kYXknLCBnZXRWYWx1ZTogZ2V0VG9kYXkgfSxcbiAgICB7IGxhYmVsOiAnWWVzdGVyZGF5JywgZ2V0VmFsdWU6IGdldFllc3RlcmRheSB9LFxuICAgIHsgbGFiZWw6ICdMYXN0IDcgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoNykgfSxcbiAgICB7IGxhYmVsOiAnTGFzdCAzMCBkYXlzJywgZ2V0VmFsdWU6ICgpID0+IGdldExhc3RORGF5cygzMCkgfSxcbiAgICB7IGxhYmVsOiAnVGhpcyBtb250aCcsIGdldFZhbHVlOiBnZXRUaGlzTW9udGggfSxcbiAgICB7IGxhYmVsOiAnTGFzdCBtb250aCcsIGdldFZhbHVlOiBnZXRMYXN0TW9udGggfVxuICBdIGFzIFByZXNldENvbmZpZ1tdLFxuXG4gIC8qKlxuICAgKiBSZXBvcnRpbmcgcHJlc2V0cyAtIFBlcmZlY3QgZm9yIGJ1c2luZXNzIHJlcG9ydGluZ1xuICAgKi9cbiAgcmVwb3J0aW5nOiBbXG4gICAgeyBsYWJlbDogJ1RvZGF5JywgZ2V0VmFsdWU6IGdldFRvZGF5IH0sXG4gICAgeyBsYWJlbDogJ1RoaXMgd2VlaycsIGdldFZhbHVlOiBnZXRUaGlzV2VlayB9LFxuICAgIHsgbGFiZWw6ICdMYXN0IHdlZWsnLCBnZXRWYWx1ZTogZ2V0TGFzdFdlZWsgfSxcbiAgICB7IGxhYmVsOiAnVGhpcyBtb250aCcsIGdldFZhbHVlOiBnZXRUaGlzTW9udGggfSxcbiAgICB7IGxhYmVsOiAnTGFzdCBtb250aCcsIGdldFZhbHVlOiBnZXRMYXN0TW9udGggfSxcbiAgICB7IGxhYmVsOiAnVGhpcyBxdWFydGVyJywgZ2V0VmFsdWU6IGdldFRoaXNRdWFydGVyIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgcXVhcnRlcicsIGdldFZhbHVlOiBnZXRMYXN0UXVhcnRlciB9XG4gIF0gYXMgUHJlc2V0Q29uZmlnW10sXG5cbiAgLyoqXG4gICAqIEZpbmFuY2lhbCBwcmVzZXRzIC0gUGVyZmVjdCBmb3IgRVJQIGFuZCBhY2NvdW50aW5nIHN5c3RlbXNcbiAgICovXG4gIGZpbmFuY2lhbDogW1xuICAgIHsgbGFiZWw6ICdNb250aCB0byBkYXRlJywgZ2V0VmFsdWU6IGdldE1vbnRoVG9EYXRlIH0sXG4gICAgeyBsYWJlbDogJ1F1YXJ0ZXIgdG8gZGF0ZScsIGdldFZhbHVlOiBnZXRRdWFydGVyVG9EYXRlIH0sXG4gICAgeyBsYWJlbDogJ1llYXIgdG8gZGF0ZScsIGdldFZhbHVlOiBnZXRZZWFyVG9EYXRlIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgbW9udGgnLCBnZXRWYWx1ZTogZ2V0TGFzdE1vbnRoIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgcXVhcnRlcicsIGdldFZhbHVlOiBnZXRMYXN0UXVhcnRlciB9LFxuICAgIHsgbGFiZWw6ICdMYXN0IHllYXInLCBnZXRWYWx1ZTogZ2V0TGFzdFllYXIgfVxuICBdIGFzIFByZXNldENvbmZpZ1tdLFxuXG4gIC8qKlxuICAgKiBBbmFseXRpY3MgcHJlc2V0cyAtIFBlcmZlY3QgZm9yIEJJIGFuZCBkYXRhIGFuYWx5c2lzXG4gICAqL1xuICBhbmFseXRpY3M6IFtcbiAgICB7IGxhYmVsOiAnTGFzdCA3IGRheXMnLCBnZXRWYWx1ZTogKCkgPT4gZ2V0TGFzdE5EYXlzKDcpIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgMTQgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoMTQpIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgMzAgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoMzApIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgNjAgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoNjApIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgOTAgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoOTApIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgMTgwIGRheXMnLCBnZXRWYWx1ZTogKCkgPT4gZ2V0TGFzdE5EYXlzKDE4MCkgfSxcbiAgICB7IGxhYmVsOiAnTGFzdCAzNjUgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoMzY1KSB9XG4gIF0gYXMgUHJlc2V0Q29uZmlnW10sXG5cbiAgLyoqXG4gICAqIFNpbXBsZSBwcmVzZXRzIC0gQmFzaWMgY29tbW9uIHJhbmdlc1xuICAgKi9cbiAgc2ltcGxlOiBbXG4gICAgeyBsYWJlbDogJ1RvZGF5JywgZ2V0VmFsdWU6IGdldFRvZGF5IH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgNyBkYXlzJywgZ2V0VmFsdWU6ICgpID0+IGdldExhc3RORGF5cyg3KSB9LFxuICAgIHsgbGFiZWw6ICdMYXN0IDMwIGRheXMnLCBnZXRWYWx1ZTogKCkgPT4gZ2V0TGFzdE5EYXlzKDMwKSB9LFxuICAgIHsgbGFiZWw6ICdUaGlzIHllYXInLCBnZXRWYWx1ZTogZ2V0VGhpc1llYXIgfVxuICBdIGFzIFByZXNldENvbmZpZ1tdXG59O1xuIl19
@@ -1,26 +0,0 @@
1
- import { DateAdapter } from './date-adapter';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Date adapter implementation for native JavaScript Date objects
5
- * This is the default adapter used by the component
6
- */
7
- export declare class NativeDateAdapter extends DateAdapter<Date> {
8
- parse(value: any): Date | null;
9
- format(date: Date, format?: string): string;
10
- addDays(date: Date, days: number): Date;
11
- addMonths(date: Date, months: number): Date;
12
- getYear(date: Date): number;
13
- getMonth(date: Date): number;
14
- getDate(date: Date): number;
15
- getDay(date: Date): number;
16
- createDate(year: number, month: number, date: number): Date;
17
- today(): Date;
18
- isSameDay(a: Date | null, b: Date | null): boolean;
19
- isBefore(a: Date | null, b: Date | null): boolean;
20
- isAfter(a: Date | null, b: Date | null): boolean;
21
- isBetween(date: Date | null, start: Date | null, end: Date | null): boolean;
22
- clone(date: Date): Date;
23
- isValid(date: any): boolean;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<NativeDateAdapter, never>;
25
- static ɵprov: i0.ɵɵInjectableDeclaration<NativeDateAdapter>;
26
- }