@libs-ui/components-datetime-picker 0.1.1-1

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 (33) hide show
  1. package/README.md +3 -0
  2. package/custom-ranges/calendar/calendar.component.d.ts +141 -0
  3. package/custom-ranges/custom-ranges.component.d.ts +62 -0
  4. package/defines/calendar.define.d.ts +13 -0
  5. package/defines/common-date.define.d.ts +2 -0
  6. package/defines/date-options.define.d.ts +19 -0
  7. package/esm2022/custom-ranges/calendar/calendar.component.mjs +1287 -0
  8. package/esm2022/custom-ranges/custom-ranges.component.mjs +307 -0
  9. package/esm2022/defines/calendar.define.mjs +135 -0
  10. package/esm2022/defines/common-date.define.mjs +4 -0
  11. package/esm2022/defines/date-options.define.mjs +53 -0
  12. package/esm2022/index.mjs +5 -0
  13. package/esm2022/interfaces/calendar-emit.interface.mjs +2 -0
  14. package/esm2022/interfaces/calendar-variables.interface.mjs +6 -0
  15. package/esm2022/interfaces/function-control.interface.mjs +2 -0
  16. package/esm2022/interfaces/index.mjs +7 -0
  17. package/esm2022/interfaces/picker.interface.mjs +2 -0
  18. package/esm2022/interfaces/time-variables.interface.mjs +2 -0
  19. package/esm2022/interfaces/valid.interface.mjs +2 -0
  20. package/esm2022/libs-ui-components-datetime-picker.mjs +5 -0
  21. package/esm2022/picker.component.mjs +247 -0
  22. package/fesm2022/libs-ui-components-datetime-picker.mjs +2024 -0
  23. package/fesm2022/libs-ui-components-datetime-picker.mjs.map +1 -0
  24. package/index.d.ts +4 -0
  25. package/interfaces/calendar-emit.interface.d.ts +25 -0
  26. package/interfaces/calendar-variables.interface.d.ts +80 -0
  27. package/interfaces/function-control.interface.d.ts +12 -0
  28. package/interfaces/index.d.ts +6 -0
  29. package/interfaces/picker.interface.d.ts +26 -0
  30. package/interfaces/time-variables.interface.d.ts +36 -0
  31. package/interfaces/valid.interface.d.ts +5 -0
  32. package/package.json +35 -0
  33. package/picker.component.d.ts +89 -0
@@ -0,0 +1,80 @@
1
+ import { WritableSignal } from '@angular/core';
2
+ import * as dayjs from 'dayjs';
3
+ export interface ICalendarVariables {
4
+ left: WritableSignal<ICalendarVariablesSide>;
5
+ right: WritableSignal<ICalendarVariablesSide>;
6
+ }
7
+ interface ICalendarVariablesSide {
8
+ calCols?: WritableSignal<Array<number>>;
9
+ calRows?: WritableSignal<Array<number>>;
10
+ calendar?: ICalendar;
11
+ classes?: ICalendarVariablesClasses;
12
+ dayOfWeek?: number;
13
+ daysInLastMonth?: number;
14
+ daysInMonth?: number;
15
+ dropdowns?: WritableSignal<ICalendarVariablesDropdowns>;
16
+ firstDay?: dayjs.Dayjs;
17
+ hour?: number;
18
+ lastDay?: dayjs.Dayjs;
19
+ lastMonth?: number;
20
+ lastYear?: number;
21
+ maxDate?: dayjs.Dayjs;
22
+ minDate?: dayjs.Dayjs;
23
+ minute?: number;
24
+ month?: number;
25
+ second?: number;
26
+ year?: number;
27
+ }
28
+ interface ICalendarVariablesClasses {
29
+ [index: number]: {
30
+ [index: number]: string;
31
+ classList?: string;
32
+ };
33
+ }
34
+ interface ICalendarVariablesDropdowns {
35
+ currentMonth?: number;
36
+ currentYear?: number;
37
+ inMaxYear?: boolean;
38
+ inMinYear?: boolean;
39
+ maxYear?: number;
40
+ minYear?: number;
41
+ monthArrays?: WritableSignal<Array<number>>;
42
+ yearArrays?: WritableSignal<Array<number>>;
43
+ }
44
+ export interface ICalendar {
45
+ [index: number]: Array<dayjs.Dayjs>;
46
+ firstDay?: dayjs.Dayjs;
47
+ lastDay?: dayjs.Dayjs;
48
+ }
49
+ type TYPE_DROPDOWN_MONTH_ID = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
50
+ export interface ICalendarMonthItem {
51
+ id: TYPE_DROPDOWN_MONTH_ID;
52
+ label: string;
53
+ maxDays: number;
54
+ }
55
+ export declare enum SideEnum {
56
+ left = "left",
57
+ right = "right"
58
+ }
59
+ export interface IDateRange {
60
+ id: string;
61
+ label: string;
62
+ values?: Array<dayjs.Dayjs>;
63
+ }
64
+ export interface ISplitPickerDate {
65
+ start: WritableSignal<{
66
+ month: string | number;
67
+ year: string | number;
68
+ day: string | number;
69
+ hour: string | number;
70
+ minute: string | number;
71
+ }>;
72
+ end: WritableSignal<{
73
+ month: string | number;
74
+ year: string | number;
75
+ day: string | number;
76
+ hour: string | number;
77
+ minute: string | number;
78
+ }>;
79
+ }
80
+ export {};
@@ -0,0 +1,12 @@
1
+ import dayjs from 'dayjs';
2
+ import { IEmitDateRange, IEmitSingleDate } from './calendar-emit.interface';
3
+ import { TYPE_OBJECT } from '@libs-ui/interfaces-types';
4
+ export interface IDateTimePickerFunctionControlEvent {
5
+ checkIsValid: () => Promise<boolean>;
6
+ resetError: (message?: string, interpolateParams?: TYPE_OBJECT) => Promise<void>;
7
+ reset: (checkIsValid?: boolean, dateRangeSelected?: IEmitDateRange, singleDateReset?: IEmitSingleDate) => Promise<void>;
8
+ }
9
+ export interface ICalendarFunctionControlEvent {
10
+ buildDefaultRange: (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => Promise<void>;
11
+ applyToSelect: () => Promise<void>;
12
+ }
@@ -0,0 +1,6 @@
1
+ export * from './calendar-emit.interface';
2
+ export * from './calendar-variables.interface';
3
+ export * from './function-control.interface';
4
+ export * from './picker.interface';
5
+ export * from './time-variables.interface';
6
+ export * from './valid.interface';
@@ -0,0 +1,26 @@
1
+ import * as dayjs from 'dayjs';
2
+ export interface IChosenDate {
3
+ selectedLabel?: string;
4
+ startDate?: dayjs.Dayjs;
5
+ endDate?: dayjs.Dayjs;
6
+ }
7
+ export interface LocalizationConfig {
8
+ monthNames: string[];
9
+ ranges: {
10
+ [key: string]: string;
11
+ };
12
+ daysOfWeek: string[];
13
+ applyLabel: string;
14
+ cancelLabel: string;
15
+ fromLabel: string;
16
+ toLabel: string;
17
+ customRangeLabel: string;
18
+ format?: string;
19
+ direction?: string;
20
+ separator?: string;
21
+ weekLabel?: string;
22
+ clearLabel?: string;
23
+ firstDay?: number;
24
+ displayFormat?: string;
25
+ }
26
+ export type TYPE_RANGE_KEY = 'today' | 'yesterday' | '_7days_ago' | '_30days_ago' | 'this_month' | 'last_month' | '_3months_ago';
@@ -0,0 +1,36 @@
1
+ import { WritableSignal } from '@angular/core';
2
+ import * as dayjs from 'dayjs';
3
+ export interface ITimepickerVariables {
4
+ left: WritableSignal<ITimepickerVariablesSide>;
5
+ right: WritableSignal<ITimepickerVariablesSide>;
6
+ }
7
+ export interface ITimepickerVariablesSide {
8
+ selectedHour: number;
9
+ selectedMinute: number;
10
+ hours?: Array<number>;
11
+ minutes?: Array<number>;
12
+ minutesLabel?: Array<string>;
13
+ seconds?: Array<number>;
14
+ secondsLabel?: Array<number>;
15
+ disabledHours?: Array<number>;
16
+ disabledMinutes?: Array<number>;
17
+ disabledSeconds?: Array<number>;
18
+ selectedSecond?: number;
19
+ selected?: dayjs.Dayjs;
20
+ }
21
+ export interface ITimepickerItemValue {
22
+ lefthour: WritableSignal<number>;
23
+ leftminute: WritableSignal<number>;
24
+ righthour: WritableSignal<number>;
25
+ rightminute: WritableSignal<number>;
26
+ }
27
+ export interface ICheckTimepickerSelected {
28
+ leftmonth: boolean;
29
+ leftyear: boolean;
30
+ rightmonth: boolean;
31
+ rightyear: boolean;
32
+ }
33
+ export interface ISelectedOld {
34
+ start?: dayjs.Dayjs | undefined;
35
+ end?: dayjs.Dayjs | undefined;
36
+ }
@@ -0,0 +1,5 @@
1
+ export interface IDateTimeValid {
2
+ message?: string;
3
+ interpolateParams?: Record<string, any>;
4
+ ignoreMessage?: boolean;
5
+ }
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@libs-ui/components-datetime-picker",
3
+ "version": "0.1.1-1",
4
+ "peerDependencies": {
5
+ "@angular/core": ">=18.0.0",
6
+ "@libs-ui/components-buttons-button": "0.1.1-1",
7
+ "@libs-ui/components-dropdown": "0.1.1-1",
8
+ "@libs-ui/components-inputs-input": "0.1.1-1",
9
+ "@libs-ui/components-list": "0.1.1-1",
10
+ "@libs-ui/components-popover": "0.1.1-1",
11
+ "@libs-ui/interfaces-types": "0.1.1-1",
12
+ "@libs-ui/services-http-request": "0.1.1-1",
13
+ "@libs-ui/utils": "0.1.1-1",
14
+ "@ngx-translate/core": "^15.0.0",
15
+ "dayjs": "1.11.5",
16
+ "@libs-ui/components-label": "0.1.1-1"
17
+ },
18
+ "sideEffects": false,
19
+ "module": "fesm2022/libs-ui-components-datetime-picker.mjs",
20
+ "typings": "index.d.ts",
21
+ "exports": {
22
+ "./package.json": {
23
+ "default": "./package.json"
24
+ },
25
+ ".": {
26
+ "types": "./index.d.ts",
27
+ "esm2022": "./esm2022/libs-ui-components-datetime-picker.mjs",
28
+ "esm": "./esm2022/libs-ui-components-datetime-picker.mjs",
29
+ "default": "./fesm2022/libs-ui-components-datetime-picker.mjs"
30
+ }
31
+ },
32
+ "dependencies": {
33
+ "tslib": "^2.3.0"
34
+ }
35
+ }
@@ -0,0 +1,89 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { ILabel } from '@libs-ui/components-label';
3
+ import { IFlagMouse, IPopoverFunctionControlEvent, TYPE_POPOVER_DIRECTION, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';
4
+ import { Dayjs } from 'dayjs';
5
+ import { IEmitDateRange, IEmitSingleDate } from './interfaces/calendar-emit.interface';
6
+ import { IDateRange } from './interfaces/calendar-variables.interface';
7
+ import { IDateTimePickerFunctionControlEvent } from './interfaces/function-control.interface';
8
+ import { IChosenDate, LocalizationConfig, TYPE_RANGE_KEY } from './interfaces/picker.interface';
9
+ import { IDateTimeValid } from './interfaces/valid.interface';
10
+ import * as i0 from "@angular/core";
11
+ export declare class LibsUiComponentsDatetimePickerComponent implements OnInit, OnDestroy {
12
+ /** PROPERTY */
13
+ protected readonly ERROR_MESSAGE_EMPTY_VALID = "i18n_valid_empty_message";
14
+ protected showRangesPopup: import("@angular/core").WritableSignal<boolean>;
15
+ protected width: import("@angular/core").Signal<number | undefined>;
16
+ protected singleError: import("@angular/core").WritableSignal<IDateTimeValid>;
17
+ protected chosenDateFromRanges: import("@angular/core").WritableSignal<IChosenDate>;
18
+ protected selectedDateFromCalendar: {
19
+ start?: Dayjs;
20
+ end?: Dayjs;
21
+ };
22
+ protected displayRangeTitle: import("@angular/core").Signal<TYPE_RANGE_KEY | undefined>;
23
+ private popoverFunctionControlEvent;
24
+ /** INPUT */
25
+ readonly dateOptions: import("@angular/core").InputSignalWithTransform<LocalizationConfig, LocalizationConfig | undefined>;
26
+ readonly showCustomRangeLabel: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
27
+ readonly labelConfig: import("@angular/core").InputSignal<ILabel | undefined>;
28
+ readonly disable: import("@angular/core").InputSignal<boolean>;
29
+ readonly readonly: import("@angular/core").InputSignal<boolean>;
30
+ readonly classInclude: import("@angular/core").InputSignal<string>;
31
+ readonly classPickerInclude: import("@angular/core").InputSignal<string>;
32
+ readonly classPickerContentInclude: import("@angular/core").InputSignal<string>;
33
+ readonly ignoreBorderQuickRange: import("@angular/core").InputSignal<boolean>;
34
+ readonly useColorModeExist: import("@angular/core").InputSignal<boolean>;
35
+ readonly hasTimePicker: import("@angular/core").InputSignal<boolean>;
36
+ readonly allowReset: import("@angular/core").InputSignal<boolean>;
37
+ readonly widthByLabel: import("@angular/core").InputSignalWithTransform<boolean, boolean>;
38
+ readonly directionPopover: import("@angular/core").InputSignalWithTransform<TYPE_POPOVER_DIRECTION, TYPE_POPOVER_DIRECTION | undefined>;
39
+ readonly defaultWidth: import("@angular/core").InputSignal<number | undefined>;
40
+ readonly isSingle: import("@angular/core").InputSignal<boolean>;
41
+ readonly extendRanges: import("@angular/core").InputSignal<IDateRange[]>;
42
+ readonly isBorderError: import("@angular/core").InputSignal<boolean>;
43
+ readonly minDate: import("@angular/core").InputSignal<string | Dayjs | undefined>;
44
+ readonly maxDate: import("@angular/core").InputSignal<string | Dayjs | undefined>;
45
+ readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
46
+ readonly listYearHiddenInputSearch: import("@angular/core").InputSignalWithTransform<boolean, boolean | undefined>;
47
+ readonly validRequired: import("@angular/core").InputSignal<IDateTimeValid | undefined>;
48
+ readonly ignoreStopPropagationEvent: import("@angular/core").InputSignal<boolean>;
49
+ readonly flagMouse: import("@angular/core").ModelSignal<IFlagMouse>;
50
+ readonly widthByParent: import("@angular/core").InputSignal<boolean>;
51
+ readonly zIndex: import("@angular/core").InputSignalWithTransform<number, number>;
52
+ readonly rangesPopoverPosition: import("@angular/core").InputSignalWithTransform<"start" | "end" | "center", "start" | "end" | "center">;
53
+ readonly rangesPopoverPositionDistance: import("@angular/core").InputSignalWithTransform<number, number>;
54
+ readonly isNgContent: import("@angular/core").InputSignal<boolean>;
55
+ readonly classIncludeCustomRanges: import("@angular/core").InputSignal<string>;
56
+ readonly autoApply: import("@angular/core").InputSignal<boolean>;
57
+ readonly positionQuickRanges: import("@angular/core").InputSignal<"left" | "right">;
58
+ readonly trackDateRageUpdateLabel: import("@angular/core").InputSignal<boolean>;
59
+ readonly singleDateSelected: import("@angular/core").ModelSignal<IEmitSingleDate | undefined>;
60
+ readonly dateRangeSelected: import("@angular/core").ModelSignal<IEmitDateRange | undefined>;
61
+ /** OUTPUT */
62
+ readonly outChangStageFlagMouse: import("@angular/core").OutputEmitterRef<IFlagMouse>;
63
+ readonly outReset: import("@angular/core").OutputEmitterRef<IEmitSingleDate | IEmitDateRange | undefined>;
64
+ readonly outSelectSingleDate: import("@angular/core").OutputEmitterRef<IEmitSingleDate>;
65
+ readonly outSelectDateRange: import("@angular/core").OutputEmitterRef<IEmitDateRange>;
66
+ readonly outFunctionsControl: import("@angular/core").OutputEmitterRef<IDateTimePickerFunctionControlEvent>;
67
+ constructor();
68
+ ngOnInit(): void;
69
+ get FunctionsControl(): IDateTimePickerFunctionControlEvent;
70
+ protected handlerSelectRanges(event: Event): void;
71
+ protected handlerChangStageFlagMouse(flagMouse: IFlagMouse): void;
72
+ protected handlerChangStagePopoverFlagMouse(flagMouse: IFlagMouse): void;
73
+ protected handlerFunctionControl(event: IPopoverFunctionControlEvent): void;
74
+ protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT): void;
75
+ protected handlerPickerSingleDate(data: IEmitSingleDate): Promise<void>;
76
+ protected handlerPickerDateRange(data: IEmitDateRange): Promise<void>;
77
+ private updateChosenDateFromRangesFromDateRangeSelected;
78
+ protected handlerReset(event?: Event): Promise<void>;
79
+ private reset;
80
+ protected handlerUpdateWidth(): void;
81
+ protected handlerCancel(): void;
82
+ private checkIsValid;
83
+ private validate;
84
+ private resetError;
85
+ private computedWidth;
86
+ ngOnDestroy(): void;
87
+ static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsDatetimePickerComponent, never>;
88
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsDatetimePickerComponent, "libs_ui-components-datetime-picker", never, { "dateOptions": { "alias": "dateOptions"; "required": false; "isSignal": true; }; "showCustomRangeLabel": { "alias": "showCustomRangeLabel"; "required": false; "isSignal": true; }; "labelConfig": { "alias": "labelConfig"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "classInclude": { "alias": "classInclude"; "required": false; "isSignal": true; }; "classPickerInclude": { "alias": "classPickerInclude"; "required": false; "isSignal": true; }; "classPickerContentInclude": { "alias": "classPickerContentInclude"; "required": false; "isSignal": true; }; "ignoreBorderQuickRange": { "alias": "ignoreBorderQuickRange"; "required": false; "isSignal": true; }; "useColorModeExist": { "alias": "useColorModeExist"; "required": false; "isSignal": true; }; "hasTimePicker": { "alias": "hasTimePicker"; "required": false; "isSignal": true; }; "allowReset": { "alias": "allowReset"; "required": false; "isSignal": true; }; "widthByLabel": { "alias": "widthByLabel"; "required": false; "isSignal": true; }; "directionPopover": { "alias": "directionPopover"; "required": false; "isSignal": true; }; "defaultWidth": { "alias": "defaultWidth"; "required": false; "isSignal": true; }; "isSingle": { "alias": "isSingle"; "required": false; "isSignal": true; }; "extendRanges": { "alias": "extendRanges"; "required": false; "isSignal": true; }; "isBorderError": { "alias": "isBorderError"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "listYearHiddenInputSearch": { "alias": "listYearHiddenInputSearch"; "required": false; "isSignal": true; }; "validRequired": { "alias": "validRequired"; "required": false; "isSignal": true; }; "ignoreStopPropagationEvent": { "alias": "ignoreStopPropagationEvent"; "required": false; "isSignal": true; }; "flagMouse": { "alias": "flagMouse"; "required": false; "isSignal": true; }; "widthByParent": { "alias": "widthByParent"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "rangesPopoverPosition": { "alias": "rangesPopoverPosition"; "required": false; "isSignal": true; }; "rangesPopoverPositionDistance": { "alias": "rangesPopoverPositionDistance"; "required": false; "isSignal": true; }; "isNgContent": { "alias": "isNgContent"; "required": false; "isSignal": true; }; "classIncludeCustomRanges": { "alias": "classIncludeCustomRanges"; "required": false; "isSignal": true; }; "autoApply": { "alias": "autoApply"; "required": false; "isSignal": true; }; "positionQuickRanges": { "alias": "positionQuickRanges"; "required": false; "isSignal": true; }; "trackDateRageUpdateLabel": { "alias": "trackDateRageUpdateLabel"; "required": false; "isSignal": true; }; "singleDateSelected": { "alias": "singleDateSelected"; "required": false; "isSignal": true; }; "dateRangeSelected": { "alias": "dateRangeSelected"; "required": false; "isSignal": true; }; }, { "flagMouse": "flagMouseChange"; "singleDateSelected": "singleDateSelectedChange"; "dateRangeSelected": "dateRangeSelectedChange"; "outChangStageFlagMouse": "outChangStageFlagMouse"; "outReset": "outReset"; "outSelectSingleDate": "outSelectSingleDate"; "outSelectDateRange": "outSelectDateRange"; "outFunctionsControl": "outFunctionsControl"; }, never, ["*"], true, never>;
89
+ }