@imihai/angular-datetime-picker 21.0.2 → 22.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 (113) hide show
  1. package/.browserslistrc +9 -0
  2. package/.editorconfig +13 -0
  3. package/.eslintrc.js +208 -0
  4. package/.github/workflows/ci_test.yml +35 -0
  5. package/.prettierrc +2 -0
  6. package/.travis.yml +16 -0
  7. package/angular.json +221 -0
  8. package/e2e/protractor.conf.js +28 -0
  9. package/e2e/src/app.e2e-spec.ts +14 -0
  10. package/e2e/src/app.po.ts +11 -0
  11. package/e2e/tsconfig.e2e.json +13 -0
  12. package/package.json +77 -33
  13. package/projects/picker/karma.conf.js +62 -0
  14. package/projects/picker/ng-package.json +7 -0
  15. package/projects/picker/package.json +23 -0
  16. package/projects/picker/src/lib/date-time/adapter/date-time-adapter.class.ts +313 -0
  17. package/projects/picker/src/lib/date-time/adapter/date-time-format.class.ts +18 -0
  18. package/projects/picker/src/lib/date-time/adapter/luxon-date-time-adapter.class.ts +307 -0
  19. package/projects/picker/src/lib/date-time/adapter/luxon-date-time-format.class.ts +11 -0
  20. package/projects/picker/src/lib/date-time/adapter/luxon-date-time.module.ts +31 -0
  21. package/projects/picker/src/lib/date-time/adapter/unix-timestamp-adapter/unix-timestamp-date-time-adapter.class.ts +356 -0
  22. package/projects/picker/src/lib/date-time/adapter/unix-timestamp-adapter/unix-timestamp-date-time-format.class.ts +14 -0
  23. package/projects/picker/src/lib/date-time/adapter/unix-timestamp-adapter/unix-timestamp-date-time.module.ts +26 -0
  24. package/projects/picker/src/lib/date-time/calendar-body.component.html +38 -0
  25. package/projects/picker/src/lib/date-time/calendar-body.component.scss +0 -0
  26. package/projects/picker/src/lib/date-time/calendar-body.component.spec.ts +120 -0
  27. package/projects/picker/src/lib/date-time/calendar-body.component.ts +190 -0
  28. package/projects/picker/src/lib/date-time/calendar-month-view.component.html +47 -0
  29. package/projects/picker/src/lib/date-time/calendar-month-view.component.scss +16 -0
  30. package/projects/picker/src/lib/date-time/calendar-month-view.component.spec.ts +394 -0
  31. package/projects/picker/src/lib/date-time/calendar-month-view.component.ts +705 -0
  32. package/projects/picker/src/lib/date-time/calendar-multi-year-view.component.html +44 -0
  33. package/projects/picker/src/lib/date-time/calendar-multi-year-view.component.scss +0 -0
  34. package/projects/picker/src/lib/date-time/calendar-multi-year-view.component.spec.ts +343 -0
  35. package/projects/picker/src/lib/date-time/calendar-multi-year-view.component.ts +465 -0
  36. package/projects/picker/src/lib/date-time/calendar-year-view.component.html +16 -0
  37. package/projects/picker/src/lib/date-time/calendar-year-view.component.scss +0 -0
  38. package/projects/picker/src/lib/date-time/calendar-year-view.component.spec.ts +381 -0
  39. package/projects/picker/src/lib/date-time/calendar-year-view.component.ts +549 -0
  40. package/projects/picker/src/lib/date-time/calendar.component.html +169 -0
  41. package/projects/picker/src/lib/date-time/calendar.component.scss +0 -0
  42. package/projects/picker/src/lib/date-time/calendar.component.spec.ts +592 -0
  43. package/projects/picker/src/lib/date-time/calendar.component.ts +496 -0
  44. package/projects/picker/src/lib/date-time/date-time-inline.component.html +1 -0
  45. package/projects/picker/src/lib/date-time/date-time-inline.component.scss +4 -0
  46. package/projects/picker/src/lib/date-time/date-time-inline.component.ts +365 -0
  47. package/projects/picker/src/lib/date-time/date-time-picker-animation-event.ts +4 -0
  48. package/projects/picker/src/lib/date-time/date-time-picker-container.component.html +126 -0
  49. package/projects/picker/src/lib/date-time/date-time-picker-container.component.scss +0 -0
  50. package/projects/picker/src/lib/date-time/date-time-picker-container.component.ts +631 -0
  51. package/projects/picker/src/lib/date-time/date-time-picker-input.directive.ts +851 -0
  52. package/projects/picker/src/lib/date-time/date-time-picker-intl.service.ts +76 -0
  53. package/projects/picker/src/lib/date-time/date-time-picker-trigger.directive.ts +88 -0
  54. package/projects/picker/src/lib/date-time/date-time-picker.component.html +0 -0
  55. package/projects/picker/src/lib/date-time/date-time-picker.component.scss +0 -0
  56. package/projects/picker/src/lib/date-time/date-time-picker.component.spec.ts +2648 -0
  57. package/projects/picker/src/lib/date-time/date-time-picker.component.ts +731 -0
  58. package/projects/picker/src/lib/date-time/date-time.class.ts +256 -0
  59. package/projects/picker/src/lib/date-time/date-time.module.ts +61 -0
  60. package/projects/picker/src/lib/date-time/numberedFixLen.pipe.ts +28 -0
  61. package/projects/picker/src/lib/date-time/options-provider.ts +44 -0
  62. package/projects/picker/src/lib/date-time/timer-box.component.html +79 -0
  63. package/projects/picker/src/lib/date-time/timer-box.component.scss +0 -0
  64. package/projects/picker/src/lib/date-time/timer-box.component.ts +175 -0
  65. package/projects/picker/src/lib/date-time/timer.component.html +58 -0
  66. package/projects/picker/src/lib/date-time/timer.component.scss +0 -0
  67. package/projects/picker/src/lib/date-time/timer.component.spec.ts +399 -0
  68. package/projects/picker/src/lib/date-time/timer.component.ts +371 -0
  69. package/projects/picker/src/lib/dialog/dialog-config.class.ts +220 -0
  70. package/projects/picker/src/lib/dialog/dialog-container.component.html +1 -0
  71. package/projects/picker/src/lib/dialog/dialog-container.component.scss +0 -0
  72. package/projects/picker/src/lib/dialog/dialog-container.component.ts +231 -0
  73. package/projects/picker/src/lib/dialog/dialog-ref.class.ts +178 -0
  74. package/projects/picker/src/lib/dialog/dialog.module.ts +25 -0
  75. package/projects/picker/src/lib/dialog/dialog.service.ts +353 -0
  76. package/projects/picker/src/lib/utils/array.utils.ts +12 -0
  77. package/projects/picker/src/lib/utils/constants.ts +59 -0
  78. package/projects/picker/src/lib/utils/date.utils.ts +97 -0
  79. package/projects/picker/src/lib/utils/index.ts +5 -0
  80. package/projects/picker/src/lib/utils/object.utils.ts +29 -0
  81. package/projects/picker/src/public_api.ts +56 -0
  82. package/projects/picker/src/sass/picker.scss +743 -0
  83. package/projects/picker/src/test-helpers.ts +125 -0
  84. package/projects/picker/src/test.ts +52 -0
  85. package/projects/picker/tsconfig.lib.json +19 -0
  86. package/projects/picker/tsconfig.lib.prod.json +7 -0
  87. package/projects/picker/tsconfig.spec.json +17 -0
  88. package/projects/picker/tslint.json +8 -0
  89. package/src/app/app.component.html +77 -0
  90. package/src/app/app.component.scss +32 -0
  91. package/src/app/app.component.spec.ts +16 -0
  92. package/src/app/app.component.ts +35 -0
  93. package/src/assets/.gitkeep +0 -0
  94. package/src/environments/environment.prod.ts +3 -0
  95. package/src/environments/environment.ts +16 -0
  96. package/src/favicon.ico +0 -0
  97. package/src/index.html +14 -0
  98. package/src/karma.conf.js +31 -0
  99. package/src/main.ts +16 -0
  100. package/src/polyfills.ts +53 -0
  101. package/src/styles.scss +7 -0
  102. package/src/test.ts +50 -0
  103. package/src/tsconfig.app.json +16 -0
  104. package/src/tsconfig.spec.json +18 -0
  105. package/src/tslint.json +17 -0
  106. package/tsconfig.base.json +31 -0
  107. package/tsconfig.json +30 -0
  108. package/tslint.json +130 -0
  109. package/assets/style/picker.min.css +0 -1
  110. package/fesm2022/imihai-angular-datetime-picker.mjs +0 -5845
  111. package/fesm2022/imihai-angular-datetime-picker.mjs.map +0 -1
  112. package/imihai-angular-datetime-picker-21.0.2.tgz +0 -0
  113. package/types/imihai-angular-datetime-picker.d.ts +0 -2193
@@ -0,0 +1,76 @@
1
+ /**
2
+ * date-time-picker-intl.service
3
+ */
4
+
5
+ import { Injectable } from '@angular/core';
6
+ import { Subject } from 'rxjs';
7
+
8
+ @Injectable({providedIn: 'root'})
9
+ export class OwlDateTimeIntl {
10
+
11
+ /**
12
+ * Stream that emits whenever the labels here are changed. Use this to notify
13
+ * components if the labels have changed after initialization.
14
+ */
15
+ readonly changes: Subject<void> = new Subject<void>();
16
+
17
+ /** A label for the up second button (used by screen readers). */
18
+ upSecondLabel = 'Add a second';
19
+
20
+ /** A label for the down second button (used by screen readers). */
21
+ downSecondLabel = 'Minus a second';
22
+
23
+ /** A label for the up minute button (used by screen readers). */
24
+ upMinuteLabel = 'Add a minute';
25
+
26
+ /** A label for the down minute button (used by screen readers). */
27
+ downMinuteLabel = 'Minus a minute';
28
+
29
+ /** A label for the up hour button (used by screen readers). */
30
+ upHourLabel = 'Add a hour';
31
+
32
+ /** A label for the down hour button (used by screen readers). */
33
+ downHourLabel = 'Minus a hour';
34
+
35
+ /** A label for the previous month button (used by screen readers). */
36
+ prevMonthLabel = 'Previous month';
37
+
38
+ /** A label for the next month button (used by screen readers). */
39
+ nextMonthLabel = 'Next month';
40
+
41
+ /** A label for the previous year button (used by screen readers). */
42
+ prevYearLabel = 'Previous year';
43
+
44
+ /** A label for the next year button (used by screen readers). */
45
+ nextYearLabel = 'Next year';
46
+
47
+ /** A label for the previous multi-year button (used by screen readers). */
48
+ prevMultiYearLabel = 'Previous 21 years';
49
+
50
+ /** A label for the next multi-year button (used by screen readers). */
51
+ nextMultiYearLabel = 'Next 21 years';
52
+
53
+ /** A label for the 'switch to month view' button (used by screen readers). */
54
+ switchToMonthViewLabel = 'Change to month view';
55
+
56
+ /** A label for the 'switch to year view' button (used by screen readers). */
57
+ switchToMultiYearViewLabel = 'Choose month and year';
58
+
59
+ /** A label for the cancel button */
60
+ cancelBtnLabel = 'Cancel';
61
+
62
+ /** A label for the set button */
63
+ setBtnLabel = 'Set';
64
+
65
+ /** A label for the range 'from' in picker info */
66
+ rangeFromLabel = 'From';
67
+
68
+ /** A label for the range 'to' in picker info */
69
+ rangeToLabel = 'To';
70
+
71
+ /** A label for the hour12 button (AM) */
72
+ hour12AMLabel = 'AM';
73
+
74
+ /** A label for the hour12 button (PM) */
75
+ hour12PMLabel = 'PM';
76
+ }
@@ -0,0 +1,88 @@
1
+ /**
2
+ * date-time-picker-trigger.directive
3
+ */
4
+
5
+
6
+ import {
7
+ AfterContentInit,
8
+ ChangeDetectorRef,
9
+ Directive,
10
+ Input,
11
+ OnChanges,
12
+ OnDestroy,
13
+ OnInit,
14
+ SimpleChanges
15
+ } from '@angular/core';
16
+ import { OwlDateTimeComponent } from './date-time-picker.component';
17
+ import { merge, of as observableOf, Subscription } from 'rxjs';
18
+
19
+ @Directive({
20
+ selector: '[owlDateTimeTrigger]',
21
+ standalone: false,
22
+ host: {
23
+ '(click)': 'handleClickOnHost($event)',
24
+ '[class.owl-dt-trigger-disabled]': 'owlDTTriggerDisabledClass'
25
+ }
26
+ })
27
+ export class OwlDateTimeTriggerDirective<T> implements OnInit, OnChanges, AfterContentInit, OnDestroy {
28
+
29
+ @Input('owlDateTimeTrigger') dtPicker: OwlDateTimeComponent<T>;
30
+
31
+ private _disabled: boolean;
32
+ @Input()
33
+ get disabled(): boolean {
34
+ return this._disabled === undefined ? this.dtPicker.disabled : !!this._disabled;
35
+ }
36
+
37
+ set disabled( value: boolean ) {
38
+ this._disabled = value;
39
+ }
40
+
41
+ get owlDTTriggerDisabledClass(): boolean {
42
+ return this.disabled;
43
+ }
44
+
45
+ private stateChanges = Subscription.EMPTY;
46
+
47
+ constructor( protected changeDetector: ChangeDetectorRef ) {
48
+ }
49
+
50
+ public ngOnInit(): void {
51
+ }
52
+
53
+ public ngOnChanges( changes: SimpleChanges ) {
54
+ if (changes.datepicker) {
55
+ this.watchStateChanges();
56
+ }
57
+ }
58
+
59
+ public ngAfterContentInit() {
60
+ this.watchStateChanges();
61
+ }
62
+
63
+ public ngOnDestroy(): void {
64
+ this.stateChanges.unsubscribe();
65
+ }
66
+
67
+ public handleClickOnHost( event: Event ): void {
68
+ if (this.dtPicker) {
69
+ this.dtPicker.open();
70
+ event.stopPropagation();
71
+ }
72
+ }
73
+
74
+ private watchStateChanges(): void {
75
+ this.stateChanges.unsubscribe();
76
+
77
+ const inputDisabled = this.dtPicker && this.dtPicker.dtInput ?
78
+ this.dtPicker.dtInput.disabledChange : observableOf();
79
+
80
+ const pickerDisabled = this.dtPicker ?
81
+ this.dtPicker.disabledChange : observableOf();
82
+
83
+ this.stateChanges = merge([pickerDisabled, inputDisabled])
84
+ .subscribe(() => {
85
+ this.changeDetector.markForCheck();
86
+ });
87
+ }
88
+ }