ngx-kit 6.1.0 → 6.3.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.
- package/README.md +3 -3
- package/angle-selector/README.md +34 -34
- package/box-shadow/README.md +33 -33
- package/color-picker/README.md +49 -49
- package/data-table/README.md +113 -113
- package/date-picker/README.md +69 -69
- package/dialog/README.md +92 -92
- package/drawer-menu/README.md +110 -62
- package/dropzone/README.md +422 -422
- package/fesm2022/ngx-kit-angle-selector.mjs +2 -2
- package/fesm2022/ngx-kit-angle-selector.mjs.map +1 -1
- package/fesm2022/ngx-kit-box-shadow.mjs +2 -2
- package/fesm2022/ngx-kit-box-shadow.mjs.map +1 -1
- package/fesm2022/ngx-kit-color-picker.mjs +4 -4
- package/fesm2022/ngx-kit-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-data-table.mjs +2 -2
- package/fesm2022/ngx-kit-data-table.mjs.map +1 -1
- package/fesm2022/ngx-kit-date-picker.mjs +1324 -200
- package/fesm2022/ngx-kit-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-dialog.mjs +2 -2
- package/fesm2022/ngx-kit-dialog.mjs.map +1 -1
- package/fesm2022/ngx-kit-drawer-menu.mjs +302 -140
- package/fesm2022/ngx-kit-drawer-menu.mjs.map +1 -1
- package/fesm2022/ngx-kit-dropzone.mjs +2 -2
- package/fesm2022/ngx-kit-dropzone.mjs.map +1 -1
- package/fesm2022/ngx-kit-form-field.mjs.map +1 -1
- package/fesm2022/ngx-kit-gallery.mjs +2 -2
- package/fesm2022/ngx-kit-gallery.mjs.map +1 -1
- package/fesm2022/ngx-kit-gradient-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-image-editor.mjs +75 -11
- package/fesm2022/ngx-kit-image-editor.mjs.map +1 -1
- package/fesm2022/ngx-kit-menu.mjs +8 -8
- package/fesm2022/ngx-kit-menu.mjs.map +1 -1
- package/fesm2022/ngx-kit-message.mjs +2 -2
- package/fesm2022/ngx-kit-message.mjs.map +1 -1
- package/fesm2022/ngx-kit-notify.mjs.map +1 -1
- package/fesm2022/ngx-kit-shared.mjs +2 -2
- package/fesm2022/ngx-kit-shared.mjs.map +1 -1
- package/fesm2022/ngx-kit-time-picker.mjs +2 -2
- package/fesm2022/ngx-kit-time-picker.mjs.map +1 -1
- package/gallery/README.md +71 -71
- package/gradient-picker/README.md +41 -41
- package/menu/README.md +85 -85
- package/message/README.md +70 -70
- package/notify/README.md +58 -58
- package/package.json +1 -1
- package/shared/README.md +117 -117
- package/time-picker/README.md +95 -95
- package/types/ngx-kit-date-picker.d.ts +303 -36
- package/types/ngx-kit-drawer-menu.d.ts +97 -86
- package/types/ngx-kit-dropzone.d.ts +5 -5
- package/types/ngx-kit-image-editor.d.ts +29 -4
package/time-picker/README.md
CHANGED
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
# ngx-kit/time-picker
|
|
2
|
-
|
|
3
|
-
An analog clock time picker (MUI-style), usable either inline or as a popup attached to a text input, with 12h/24h format support and a configurable minute step.
|
|
4
|
-
|
|
5
|
-
## Install
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install ngx-kit
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Setup (optional)
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
// app.config.ts
|
|
15
|
-
import { provideTimePicker } from 'ngx-kit/time-picker';
|
|
16
|
-
|
|
17
|
-
export const appConfig: ApplicationConfig = {
|
|
18
|
-
providers: [
|
|
19
|
-
provideTimePicker({
|
|
20
|
-
format: '24',
|
|
21
|
-
minuteStep: 5,
|
|
22
|
-
confirmButtonText: 'Done',
|
|
23
|
-
}),
|
|
24
|
-
],
|
|
25
|
-
};
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
`provideTimePicker` only needs the fields you want to override — everything else falls back to the defaults (`confirmButtonText: 'Ok'`, `cancelButtonText: 'Cancel'`, `amText: 'AM'`, `pmText: 'PM'`, `format: '12'`, `minuteStep: 1`, `autoSwitchToMinute: true`).
|
|
29
|
-
|
|
30
|
-
## Usage — popup attached to an input
|
|
31
|
-
|
|
32
|
-
```html
|
|
33
|
-
<input
|
|
34
|
-
type="text"
|
|
35
|
-
formControlName="time"
|
|
36
|
-
ngxInputTimePicker
|
|
37
|
-
#dp="ngxInputTimePicker"
|
|
38
|
-
/>
|
|
39
|
-
<button (click)="dp.toggle()">Open</button>
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
`[ngxInputTimePicker]` is a full `ControlValueAccessor` + `Validator`, so it works with `ngModel`/`formControl`/`formControlName`. The value is always a string in `HH:MM` (24h) form, e.g. `'14:35'`.
|
|
43
|
-
|
|
44
|
-
If the typed text isn't a valid time, the control gets a `{ invalid: true }` error (in addition to whatever built-in validators like `Validators.required` you add yourself):
|
|
45
|
-
|
|
46
|
-
```html
|
|
47
|
-
@if (form.get('time')?.hasError('invalid')) {
|
|
48
|
-
<div class="text-danger">Invalid time</div>
|
|
49
|
-
}
|
|
50
|
-
@if (form.get('time')?.hasError('required')) {
|
|
51
|
-
<div class="text-danger">Time is required</div>
|
|
52
|
-
}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Usage — inline (always visible)
|
|
56
|
-
|
|
57
|
-
```html
|
|
58
|
-
<ngx-time-picker format="24" [(value)]="time" (change)="onTimeChange($event)"></ngx-time-picker>
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## API
|
|
62
|
-
|
|
63
|
-
### `[ngxInputTimePicker]`
|
|
64
|
-
|
|
65
|
-
| Input | Type | Default | Description |
|
|
66
|
-
| --- | --- | --- | --- |
|
|
67
|
-
| `openOnCLick` | `boolean` | `true` | Open the popup when the input itself is clicked |
|
|
68
|
-
| `format` | `'12' \| '24'` | from config | |
|
|
69
|
-
|
|
70
|
-
| Output | Type | Description |
|
|
71
|
-
| --- | --- | --- |
|
|
72
|
-
| `change` | `EventEmitter<string \| null>` | Emitted when the user confirms a time |
|
|
73
|
-
|
|
74
|
-
| Member | Description |
|
|
75
|
-
| --- | --- |
|
|
76
|
-
| `toggle()` | Opens the popup if closed, closes it if open |
|
|
77
|
-
|
|
78
|
-
### `<ngx-time-picker>`
|
|
79
|
-
|
|
80
|
-
| Input | Type | Default | Description |
|
|
81
|
-
| --- | --- | --- | --- |
|
|
82
|
-
| `value` (model, two-way) | `string` | `'12:00'` | Bind with `[(value)]` |
|
|
83
|
-
| `format` | `'12' \| '24'` | from config | |
|
|
84
|
-
| `minuteStep` | `number` | from config | |
|
|
85
|
-
| `disabled` | `boolean` | `false` | |
|
|
86
|
-
| `autoSwitchToMinute` | `boolean` | from config | Switch to minute-selection mode right after picking the hour |
|
|
87
|
-
|
|
88
|
-
| Output | Type | Description |
|
|
89
|
-
| --- | --- | --- |
|
|
90
|
-
| `change` | `EventEmitter<string \| null>` | Emitted when "OK" is pressed |
|
|
91
|
-
| `cancel` | `EventEmitter<void>` | Emitted when "Cancel" is pressed |
|
|
92
|
-
|
|
93
|
-
## Dark mode and RTL
|
|
94
|
-
|
|
95
|
-
Supported automatically.
|
|
1
|
+
# ngx-kit/time-picker
|
|
2
|
+
|
|
3
|
+
An analog clock time picker (MUI-style), usable either inline or as a popup attached to a text input, with 12h/24h format support and a configurable minute step.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install ngx-kit
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Setup (optional)
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
// app.config.ts
|
|
15
|
+
import { provideTimePicker } from 'ngx-kit/time-picker';
|
|
16
|
+
|
|
17
|
+
export const appConfig: ApplicationConfig = {
|
|
18
|
+
providers: [
|
|
19
|
+
provideTimePicker({
|
|
20
|
+
format: '24',
|
|
21
|
+
minuteStep: 5,
|
|
22
|
+
confirmButtonText: 'Done',
|
|
23
|
+
}),
|
|
24
|
+
],
|
|
25
|
+
};
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
`provideTimePicker` only needs the fields you want to override — everything else falls back to the defaults (`confirmButtonText: 'Ok'`, `cancelButtonText: 'Cancel'`, `amText: 'AM'`, `pmText: 'PM'`, `format: '12'`, `minuteStep: 1`, `autoSwitchToMinute: true`).
|
|
29
|
+
|
|
30
|
+
## Usage — popup attached to an input
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<input
|
|
34
|
+
type="text"
|
|
35
|
+
formControlName="time"
|
|
36
|
+
ngxInputTimePicker
|
|
37
|
+
#dp="ngxInputTimePicker"
|
|
38
|
+
/>
|
|
39
|
+
<button (click)="dp.toggle()">Open</button>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
`[ngxInputTimePicker]` is a full `ControlValueAccessor` + `Validator`, so it works with `ngModel`/`formControl`/`formControlName`. The value is always a string in `HH:MM` (24h) form, e.g. `'14:35'`.
|
|
43
|
+
|
|
44
|
+
If the typed text isn't a valid time, the control gets a `{ invalid: true }` error (in addition to whatever built-in validators like `Validators.required` you add yourself):
|
|
45
|
+
|
|
46
|
+
```html
|
|
47
|
+
@if (form.get('time')?.hasError('invalid')) {
|
|
48
|
+
<div class="text-danger">Invalid time</div>
|
|
49
|
+
}
|
|
50
|
+
@if (form.get('time')?.hasError('required')) {
|
|
51
|
+
<div class="text-danger">Time is required</div>
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Usage — inline (always visible)
|
|
56
|
+
|
|
57
|
+
```html
|
|
58
|
+
<ngx-time-picker format="24" [(value)]="time" (change)="onTimeChange($event)"></ngx-time-picker>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## API
|
|
62
|
+
|
|
63
|
+
### `[ngxInputTimePicker]`
|
|
64
|
+
|
|
65
|
+
| Input | Type | Default | Description |
|
|
66
|
+
| --- | --- | --- | --- |
|
|
67
|
+
| `openOnCLick` | `boolean` | `true` | Open the popup when the input itself is clicked |
|
|
68
|
+
| `format` | `'12' \| '24'` | from config | |
|
|
69
|
+
|
|
70
|
+
| Output | Type | Description |
|
|
71
|
+
| --- | --- | --- |
|
|
72
|
+
| `change` | `EventEmitter<string \| null>` | Emitted when the user confirms a time |
|
|
73
|
+
|
|
74
|
+
| Member | Description |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `toggle()` | Opens the popup if closed, closes it if open |
|
|
77
|
+
|
|
78
|
+
### `<ngx-time-picker>`
|
|
79
|
+
|
|
80
|
+
| Input | Type | Default | Description |
|
|
81
|
+
| --- | --- | --- | --- |
|
|
82
|
+
| `value` (model, two-way) | `string` | `'12:00'` | Bind with `[(value)]` |
|
|
83
|
+
| `format` | `'12' \| '24'` | from config | |
|
|
84
|
+
| `minuteStep` | `number` | from config | |
|
|
85
|
+
| `disabled` | `boolean` | `false` | |
|
|
86
|
+
| `autoSwitchToMinute` | `boolean` | from config | Switch to minute-selection mode right after picking the hour |
|
|
87
|
+
|
|
88
|
+
| Output | Type | Description |
|
|
89
|
+
| --- | --- | --- |
|
|
90
|
+
| `change` | `EventEmitter<string \| null>` | Emitted when "OK" is pressed |
|
|
91
|
+
| `cancel` | `EventEmitter<void>` | Emitted when "Cancel" is pressed |
|
|
92
|
+
|
|
93
|
+
## Dark mode and RTL
|
|
94
|
+
|
|
95
|
+
Supported automatically.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { TemplateRef, InjectionToken, Type, EventEmitter, ElementRef, OnInit,
|
|
2
|
+
import { TemplateRef, InjectionToken, Type, EventEmitter, ElementRef, OnInit, Provider, ViewContainerRef, Renderer2 } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
4
4
|
import * as ngx_kit_date_picker from 'ngx-kit/date-picker';
|
|
5
|
-
import {
|
|
5
|
+
import { OverlayService } from 'ngx-kit/shared';
|
|
6
6
|
|
|
7
7
|
declare class NgxDatePickerConfig {
|
|
8
8
|
previousButtonTemplate?: TemplateRef<any>;
|
|
@@ -10,8 +10,6 @@ declare class NgxDatePickerConfig {
|
|
|
10
10
|
caretDownIconTemplate?: TemplateRef<any>;
|
|
11
11
|
todayButton: boolean;
|
|
12
12
|
clearButton: boolean;
|
|
13
|
-
clearButtonText: string;
|
|
14
|
-
todayButtonText: string;
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
declare type DatePickerView = 'year' | 'month' | 'day';
|
|
@@ -35,7 +33,13 @@ interface IDateAdapter {
|
|
|
35
33
|
get narrowDays(): string[];
|
|
36
34
|
get shortDays(): string[];
|
|
37
35
|
get longDays(): string[];
|
|
36
|
+
/** Display index used by existing month-grid APIs. */
|
|
38
37
|
startOfWeek: number;
|
|
38
|
+
/** Native JavaScript weekday (0=Sunday ... 6=Saturday) where a week starts. */
|
|
39
|
+
weekStartDay: number;
|
|
40
|
+
/** Returns the real Gregorian Date at the start/end of the locale week. */
|
|
41
|
+
getStartOfWeek(date: Date): Date;
|
|
42
|
+
getEndOfWeek(date: Date): Date;
|
|
39
43
|
/** convert js date to locale */
|
|
40
44
|
toLocale(date: Date): CalendarDate;
|
|
41
45
|
/** get today of localy */
|
|
@@ -92,7 +96,6 @@ declare class DateAdapterRegistry {
|
|
|
92
96
|
declare class NgxInputDatePicker implements ControlValueAccessor, Validator {
|
|
93
97
|
private el;
|
|
94
98
|
protected readonly dateAdapterRegistry: DateAdapterRegistry;
|
|
95
|
-
theme: 'light' | 'dark' | 'auto';
|
|
96
99
|
openOnCLick: i0.InputSignal<boolean>;
|
|
97
100
|
change: EventEmitter<Date>;
|
|
98
101
|
private value?;
|
|
@@ -137,13 +140,34 @@ declare class NgxInputDatePicker implements ControlValueAccessor, Validator {
|
|
|
137
140
|
/** Formats a value and sets it on the input element. */
|
|
138
141
|
protected _formatValue(value: Date | null, setChange?: boolean): void;
|
|
139
142
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputDatePicker, never>;
|
|
140
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgxInputDatePicker, "[ngxInputDatePicker]", ["ngxInputDatePicker"], { "
|
|
143
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgxInputDatePicker, "[ngxInputDatePicker]", ["ngxInputDatePicker"], { "openOnCLick": { "alias": "openOnCLick"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "setConfig": { "alias": "config"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
|
|
141
144
|
}
|
|
142
145
|
|
|
143
|
-
|
|
146
|
+
/**
|
|
147
|
+
* Calendar event model.
|
|
148
|
+
*
|
|
149
|
+
* `end` is inclusive for day based calendar rendering.
|
|
150
|
+
* `color` is used as the event accent color and can be overridden by
|
|
151
|
+
* `backgroundColor`, `borderColor` and `textColor`.
|
|
152
|
+
*/
|
|
153
|
+
interface MsEvents<DateInput = Date> {
|
|
154
|
+
id?: string | number;
|
|
144
155
|
title?: string;
|
|
145
156
|
start: DateInput;
|
|
146
157
|
end?: DateInput;
|
|
158
|
+
allDay?: boolean;
|
|
159
|
+
color?: string;
|
|
160
|
+
backgroundColor?: string;
|
|
161
|
+
borderColor?: string;
|
|
162
|
+
textColor?: string;
|
|
163
|
+
className?: string | string[];
|
|
164
|
+
data?: unknown;
|
|
165
|
+
}
|
|
166
|
+
interface MsEventViewer<DateInput = Date> extends MsEvents<DateInput> {
|
|
167
|
+
continuesBefore?: boolean;
|
|
168
|
+
continuesAfter?: boolean;
|
|
169
|
+
isStart?: boolean;
|
|
170
|
+
isEnd?: boolean;
|
|
147
171
|
}
|
|
148
172
|
|
|
149
173
|
declare class DateModel<InputDate = Date> {
|
|
@@ -161,13 +185,45 @@ declare class DateViewMonth extends DateModel {
|
|
|
161
185
|
}
|
|
162
186
|
declare class DateViewDay extends DateModel {
|
|
163
187
|
day: number;
|
|
164
|
-
events?:
|
|
188
|
+
events?: MsEventViewer[];
|
|
189
|
+
inRange?: boolean;
|
|
190
|
+
rangeStart?: boolean;
|
|
191
|
+
rangeEnd?: boolean;
|
|
192
|
+
inRangePreview?: boolean;
|
|
165
193
|
}
|
|
166
194
|
declare class DateViewWeek extends DateModel {
|
|
167
195
|
time: number;
|
|
168
196
|
weeks: string[];
|
|
169
197
|
displayTime: string;
|
|
170
198
|
}
|
|
199
|
+
interface CalendarMonthEventSegment extends MsEventViewer {
|
|
200
|
+
start: Date;
|
|
201
|
+
end: Date;
|
|
202
|
+
row: number;
|
|
203
|
+
startColumn: number;
|
|
204
|
+
endColumn: number;
|
|
205
|
+
lane: number;
|
|
206
|
+
continuesBefore: boolean;
|
|
207
|
+
continuesAfter: boolean;
|
|
208
|
+
isStart: boolean;
|
|
209
|
+
isEnd: boolean;
|
|
210
|
+
}
|
|
211
|
+
interface CalendarDayColumn {
|
|
212
|
+
date: Date;
|
|
213
|
+
label: string;
|
|
214
|
+
dayNumber: string;
|
|
215
|
+
isToday: boolean;
|
|
216
|
+
events: CalendarTimedEvent[];
|
|
217
|
+
}
|
|
218
|
+
interface CalendarTimedEvent extends MsEventViewer {
|
|
219
|
+
start: Date;
|
|
220
|
+
end: Date;
|
|
221
|
+
top: number;
|
|
222
|
+
height: number;
|
|
223
|
+
allDay: boolean;
|
|
224
|
+
column: number;
|
|
225
|
+
columnCount: number;
|
|
226
|
+
}
|
|
171
227
|
|
|
172
228
|
declare abstract class NgxDatePickerBase {
|
|
173
229
|
protected _locale: string;
|
|
@@ -185,16 +241,30 @@ declare abstract class NgxDatePickerBase {
|
|
|
185
241
|
displayMonth: string;
|
|
186
242
|
minDate: Date | null;
|
|
187
243
|
maxDate: Date | null;
|
|
188
|
-
renderCalendar(view: CalendarView
|
|
244
|
+
renderCalendar(view: CalendarView, selected?: CalendarDate, events?: MsEvents[], callback?: Function): void;
|
|
245
|
+
renderِDatePicker(view: DatePickerView, selected?: CalendarDate, events?: MsEvents[], callback?: Function): void;
|
|
189
246
|
renderYear(): void;
|
|
190
247
|
renderMonth(): void;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
248
|
+
renderWeek(anchorDate?: Date): void;
|
|
249
|
+
/** Returns the seven real dates belonging to the locale's week. */
|
|
250
|
+
getWeekDates(anchor: Date): Date[];
|
|
251
|
+
getEventsForDate(date: Date, events?: MsEvents[]): MsEventViewer[];
|
|
252
|
+
protected normalizeEvent(event: MsEvents): {
|
|
253
|
+
event: MsEvents;
|
|
254
|
+
start: Date;
|
|
255
|
+
end: Date;
|
|
256
|
+
};
|
|
257
|
+
/**
|
|
258
|
+
* Renders a 6-row month grid and attaches events to every visible day.
|
|
259
|
+
*
|
|
260
|
+
* The event list is normalized to MsEventViewer so the template can draw
|
|
261
|
+
* continuation edges similar to FullCalendar's month view.
|
|
262
|
+
*/
|
|
263
|
+
renderDay(selected?: CalendarDate, events?: MsEvents[]): void;
|
|
194
264
|
checkActiveDate(date: Date): boolean;
|
|
195
265
|
checkActiveMonth(year: number, month: number): boolean;
|
|
196
266
|
checkActiveYear(year: number): boolean;
|
|
197
|
-
|
|
267
|
+
protected getEvents(date: Date, events?: MsEvents[]): MsEventViewer[];
|
|
198
268
|
}
|
|
199
269
|
|
|
200
270
|
interface ISelectedEvent {
|
|
@@ -202,48 +272,140 @@ interface ISelectedEvent {
|
|
|
202
272
|
event: MsEvents;
|
|
203
273
|
}
|
|
204
274
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
275
|
+
type CalendarEventInteractionType = 'move' | 'resize-start' | 'resize-end';
|
|
276
|
+
interface CalendarEventChange {
|
|
277
|
+
event: MsEvents;
|
|
278
|
+
previousEvent: MsEvents;
|
|
279
|
+
interaction: CalendarEventInteractionType;
|
|
280
|
+
deltaDays: number;
|
|
281
|
+
deltaMinutes: number;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
declare class NgxCalendarLocalization {
|
|
285
|
+
clear: string;
|
|
286
|
+
today: string;
|
|
287
|
+
/** Range picker labels. */
|
|
288
|
+
rangeStart: string;
|
|
289
|
+
rangeEnd: string;
|
|
290
|
+
day: string;
|
|
291
|
+
month: string;
|
|
292
|
+
week: string;
|
|
293
|
+
year: string;
|
|
294
|
+
event: string;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
interface EventInteractionState {
|
|
298
|
+
type: CalendarEventInteractionType;
|
|
299
|
+
source: MsEvents;
|
|
300
|
+
previousEvent: MsEvents;
|
|
301
|
+
pointerId: number;
|
|
302
|
+
startX: number;
|
|
303
|
+
startY: number;
|
|
304
|
+
originColumn: number;
|
|
305
|
+
originRow: number;
|
|
306
|
+
preview: MsEvents;
|
|
307
|
+
deltaDays: number;
|
|
308
|
+
deltaMinutes: number;
|
|
309
|
+
active: boolean;
|
|
310
|
+
surface: 'month' | 'timed' | 'all-day';
|
|
311
|
+
}
|
|
312
|
+
declare class NgxCalendarComponent extends NgxDatePickerBase implements OnInit {
|
|
313
|
+
defaultLocalization: NgxCalendarLocalization;
|
|
314
|
+
localize: i0.InputSignal<NgxCalendarLocalization>;
|
|
315
|
+
resizeAndMovable: i0.InputSignal<boolean>;
|
|
209
316
|
_config: NgxDatePickerConfig;
|
|
210
317
|
set config(val: NgxDatePickerConfig);
|
|
211
318
|
set locale(val: string);
|
|
212
|
-
/** The minimum valid date. */
|
|
213
319
|
set setMin(value: Date | null | undefined);
|
|
214
|
-
/** The maximum valid date. */
|
|
215
320
|
set setMax(value: Date | null | undefined);
|
|
216
321
|
view: CalendarView;
|
|
217
|
-
_events
|
|
322
|
+
private _events;
|
|
218
323
|
set events(val: MsEvents[]);
|
|
324
|
+
get events(): MsEvents[];
|
|
219
325
|
dateChange: EventEmitter<DateViewDay>;
|
|
220
326
|
selectEvent: EventEmitter<ISelectedEvent>;
|
|
221
|
-
|
|
222
|
-
|
|
327
|
+
eventChange: EventEmitter<CalendarEventChange>;
|
|
328
|
+
eventsChange: EventEmitter<MsEvents<Date>[]>;
|
|
223
329
|
selected?: Date;
|
|
330
|
+
anchorDate: Date;
|
|
331
|
+
eventViewItems: {
|
|
332
|
+
event: MsEventViewer;
|
|
333
|
+
start: Date;
|
|
334
|
+
end: Date;
|
|
335
|
+
}[];
|
|
336
|
+
monthEventSegments: CalendarMonthEventSegment[];
|
|
337
|
+
monthEventRows: CalendarMonthEventSegment[][];
|
|
338
|
+
weekDays: CalendarDayColumn[];
|
|
339
|
+
allDayByColumn: CalendarTimedEvent[][];
|
|
340
|
+
timeSlots: number[];
|
|
341
|
+
readonly hourHeight = 64;
|
|
342
|
+
readonly timeColumnWidth = 64;
|
|
224
343
|
calendarWrapper: i0.Signal<ElementRef<HTMLElement> | undefined>;
|
|
344
|
+
protected interaction: EventInteractionState | null;
|
|
225
345
|
constructor();
|
|
226
346
|
ngOnInit(): void;
|
|
227
|
-
|
|
228
|
-
|
|
347
|
+
onResize(): void;
|
|
348
|
+
onDocumentPointerMove(event: PointerEvent): void;
|
|
349
|
+
onDocumentPointerUp(event: PointerEvent): void;
|
|
350
|
+
onDocumentPointerCancel(event: PointerEvent): void;
|
|
229
351
|
calcCellSize(): void;
|
|
230
352
|
renderCalendar(view: CalendarView): void;
|
|
353
|
+
private get renderEvents();
|
|
354
|
+
private syncAnchorToLocale;
|
|
355
|
+
private renderTimedView;
|
|
356
|
+
/**
|
|
357
|
+
* Builds a collision layout per overlap cluster. Each cluster gets its own
|
|
358
|
+
* column count, which prevents a short 09:00 event from being unnecessarily
|
|
359
|
+
* squeezed because another event overlaps at 15:00.
|
|
360
|
+
*/
|
|
361
|
+
private buildTimedEventsForDay;
|
|
362
|
+
private buildAllDayEventsForDay;
|
|
363
|
+
/** Creates FullCalendar-style horizontal segments for the six visible month rows. */
|
|
364
|
+
private buildMonthEventSegments;
|
|
365
|
+
private dayIndexInMonthGrid;
|
|
366
|
+
private normalizedEvents;
|
|
367
|
+
private renderEventSources;
|
|
368
|
+
private renderEventView;
|
|
369
|
+
get headerText(): string;
|
|
370
|
+
formatDateRange(start: Date, end: Date): string;
|
|
371
|
+
formatEventDate(date: Date): string;
|
|
372
|
+
formatTime(minutes: number): string;
|
|
231
373
|
changeView(v: CalendarView): void;
|
|
232
374
|
gotoToday(): void;
|
|
233
375
|
selectDay(ev: Event, item: DateViewDay): void;
|
|
234
|
-
selectMonth(ev: Event, item: DateViewMonth): void;
|
|
235
|
-
selectYear(ev: Event, item: DateViewYear): void;
|
|
236
376
|
next(): void;
|
|
237
377
|
previous(): void;
|
|
238
|
-
|
|
378
|
+
private navigate;
|
|
379
|
+
onclickEvent(ev: Event, item: DateViewDay, event: MsEvents): void;
|
|
380
|
+
onTimedEventClick(ev: Event, event: MsEvents, date: Date): void;
|
|
381
|
+
startMonthEventInteraction(ev: PointerEvent, segment: CalendarMonthEventSegment, type?: CalendarEventInteractionType): void;
|
|
382
|
+
startTimedEventInteraction(ev: PointerEvent, event: CalendarTimedEvent, type?: CalendarEventInteractionType): void;
|
|
383
|
+
private beginInteraction;
|
|
384
|
+
private updateEventInteraction;
|
|
385
|
+
private finishEventInteraction;
|
|
386
|
+
private cancelEventInteraction;
|
|
387
|
+
private monthPointerDelta;
|
|
388
|
+
private allDayPointerDelta;
|
|
389
|
+
private timedPointerDelta;
|
|
390
|
+
private columnAtPoint;
|
|
391
|
+
private snapMinutes;
|
|
392
|
+
private applyEventDelta;
|
|
393
|
+
private addDays;
|
|
394
|
+
private addMinutes;
|
|
395
|
+
private isWithinBounds;
|
|
396
|
+
private sameEvent;
|
|
397
|
+
private sameEventValue;
|
|
398
|
+
private startOfDay;
|
|
399
|
+
private endOfDay;
|
|
400
|
+
private readonly defaultHeight;
|
|
401
|
+
minHeight: number;
|
|
239
402
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarComponent, never>;
|
|
240
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarComponent, "ngx-calendar", never, { "
|
|
403
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarComponent, "ngx-calendar", never, { "localize": { "alias": "localize"; "required": false; "isSignal": true; }; "resizeAndMovable": { "alias": "resizeAndMovable"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "view": { "alias": "view"; "required": false; }; "events": { "alias": "events"; "required": false; }; }, { "dateChange": "dateChange"; "selectEvent": "selectEvent"; "eventChange": "eventChange"; "eventsChange": "eventsChange"; }, never, never, true, never>;
|
|
241
404
|
}
|
|
242
405
|
|
|
243
406
|
declare class NgxInputDatePickerComponent extends NgxDatePickerBase implements ControlValueAccessor, Validator, OnInit {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
set setTheme(val: 'light' | 'dark' | 'auto');
|
|
407
|
+
defaultLocalization: NgxCalendarLocalization;
|
|
408
|
+
localize: i0.InputSignal<NgxCalendarLocalization>;
|
|
247
409
|
config: NgxDatePickerConfig;
|
|
248
410
|
set setConfig(val: NgxDatePickerConfig);
|
|
249
411
|
set locale(val: string);
|
|
@@ -253,7 +415,6 @@ declare class NgxInputDatePickerComponent extends NgxDatePickerBase implements C
|
|
|
253
415
|
set setMax(value: Date | null | undefined);
|
|
254
416
|
view: DatePickerView;
|
|
255
417
|
change: EventEmitter<Date | null>;
|
|
256
|
-
wrapperWidth: number;
|
|
257
418
|
selected?: CalendarDate;
|
|
258
419
|
calendarHeader: string;
|
|
259
420
|
isDisabled: boolean;
|
|
@@ -274,7 +435,7 @@ declare class NgxInputDatePickerComponent extends NgxDatePickerBase implements C
|
|
|
274
435
|
registerOnTouched(fn: any): void;
|
|
275
436
|
registerOnValidatorChange?(fn: () => void): void;
|
|
276
437
|
setDisabledState(disabled: boolean): void;
|
|
277
|
-
|
|
438
|
+
renderِDatePicker(view: DatePickerView): void;
|
|
278
439
|
gotoToday(): void;
|
|
279
440
|
changeView(v: DatePickerView): void;
|
|
280
441
|
next(): void;
|
|
@@ -285,10 +446,116 @@ declare class NgxInputDatePickerComponent extends NgxDatePickerBase implements C
|
|
|
285
446
|
clear(): void;
|
|
286
447
|
stopPagination(ev: Event): void;
|
|
287
448
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputDatePickerComponent, never>;
|
|
288
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgxInputDatePickerComponent, "ngx-date-picker", never, { "
|
|
449
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgxInputDatePickerComponent, "ngx-date-picker", never, { "localize": { "alias": "localize"; "required": false; "isSignal": true; }; "setConfig": { "alias": "config"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "view": { "alias": "view"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
|
|
289
450
|
}
|
|
290
451
|
|
|
291
452
|
declare function provideDateAdapters(...additional: DateAdapterRegistration[]): Provider[];
|
|
292
453
|
|
|
293
|
-
|
|
294
|
-
|
|
454
|
+
/**
|
|
455
|
+
* A date range used by ngx-kit date range picker.
|
|
456
|
+
*
|
|
457
|
+
* `end` is null while the user is selecting the second date.
|
|
458
|
+
*/
|
|
459
|
+
interface NgxDateRange<T = Date> {
|
|
460
|
+
start: T | null;
|
|
461
|
+
end: T | null;
|
|
462
|
+
}
|
|
463
|
+
declare function createDateRange<T = Date>(start?: T | null, end?: T | null): NgxDateRange<T>;
|
|
464
|
+
|
|
465
|
+
declare function normalizeDateRange(value: NgxDateRange<Date> | readonly [Date | null, Date | null] | null | undefined): NgxDateRange<Date>;
|
|
466
|
+
declare function isCompleteDateRange(range: NgxDateRange<Date>): boolean;
|
|
467
|
+
declare function isDateInRange(date: Date, range: NgxDateRange<Date>): boolean;
|
|
468
|
+
declare function isDateInPreviewRange(date: Date, start: Date | null, previewEnd: Date | null): boolean;
|
|
469
|
+
|
|
470
|
+
declare class NgxDateRangePickerComponent extends NgxDatePickerBase implements ControlValueAccessor, Validator, OnInit {
|
|
471
|
+
defaultLocalization: NgxCalendarLocalization;
|
|
472
|
+
localize: i0.InputSignal<NgxCalendarLocalization>;
|
|
473
|
+
config: NgxDatePickerConfig;
|
|
474
|
+
set locale(value: string);
|
|
475
|
+
set min(value: Date | null | undefined);
|
|
476
|
+
set max(value: Date | null | undefined);
|
|
477
|
+
view: DatePickerView;
|
|
478
|
+
rangeChange: EventEmitter<NgxDateRange<Date>>;
|
|
479
|
+
change: EventEmitter<NgxDateRange<Date>>;
|
|
480
|
+
range: NgxDateRange<Date>;
|
|
481
|
+
hoverDate: Date | null;
|
|
482
|
+
weekDays: {
|
|
483
|
+
min: string;
|
|
484
|
+
name: string;
|
|
485
|
+
}[];
|
|
486
|
+
calendarHeader: string;
|
|
487
|
+
protected _onChange: (_value: NgxDateRange<Date>) => void;
|
|
488
|
+
protected _onTouched: () => void;
|
|
489
|
+
protected _validatorOnChange: () => void;
|
|
490
|
+
isDisabled: boolean;
|
|
491
|
+
ngOnInit(): void;
|
|
492
|
+
updateConfig(value: NgxDatePickerConfig): void;
|
|
493
|
+
writeValue(value: NgxDateRange<Date> | readonly [Date | null, Date | null] | null): void;
|
|
494
|
+
registerOnChange(fn: (value: NgxDateRange<Date>) => void): void;
|
|
495
|
+
registerOnTouched(fn: () => void): void;
|
|
496
|
+
registerOnValidatorChange(fn: () => void): void;
|
|
497
|
+
setDisabledState(disabled: boolean): void;
|
|
498
|
+
validate(_control: AbstractControl): ValidationErrors | null;
|
|
499
|
+
renderِDatePicker(view: DatePickerView): void;
|
|
500
|
+
private init;
|
|
501
|
+
changeView(view: DatePickerView): void;
|
|
502
|
+
gotoToday(): void;
|
|
503
|
+
next(): void;
|
|
504
|
+
previous(): void;
|
|
505
|
+
selectDay(event: Event, item: DateViewDay): void;
|
|
506
|
+
selectMonth(event: Event, item: DateViewMonth): void;
|
|
507
|
+
selectYear(event: Event, item: DateViewYear): void;
|
|
508
|
+
onDayEnter(item: DateViewDay): void;
|
|
509
|
+
onDayLeave(): void;
|
|
510
|
+
clear(): void;
|
|
511
|
+
private applyRangeState;
|
|
512
|
+
private emitValue;
|
|
513
|
+
stopPagination(event: Event): void;
|
|
514
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDateRangePickerComponent, never>;
|
|
515
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgxDateRangePickerComponent, "ngx-date-range-picker", never, { "localize": { "alias": "localize"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "view": { "alias": "view"; "required": false; }; }, { "rangeChange": "rangeChange"; "change": "change"; }, never, never, true, never>;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
declare class NgxInputDateRangePicker implements ControlValueAccessor, Validator {
|
|
519
|
+
private readonly el;
|
|
520
|
+
protected readonly dateAdapterRegistry: DateAdapterRegistry;
|
|
521
|
+
protected readonly overlayService: OverlayService;
|
|
522
|
+
protected readonly viewContainerRef: ViewContainerRef;
|
|
523
|
+
protected readonly renderer: Renderer2;
|
|
524
|
+
openOnClick: boolean;
|
|
525
|
+
displayFormat: string;
|
|
526
|
+
rangeSeparator: string;
|
|
527
|
+
private _locale;
|
|
528
|
+
set locale(value: string);
|
|
529
|
+
get locale(): string;
|
|
530
|
+
set setMin(value: Date | null | undefined);
|
|
531
|
+
set setMax(value: Date | null | undefined);
|
|
532
|
+
config: NgxDatePickerConfig;
|
|
533
|
+
change: EventEmitter<NgxDateRange<Date>>;
|
|
534
|
+
private min;
|
|
535
|
+
private max;
|
|
536
|
+
private value;
|
|
537
|
+
private pickerRef?;
|
|
538
|
+
private isDisabled;
|
|
539
|
+
private adapter;
|
|
540
|
+
private _onChange;
|
|
541
|
+
private _onTouched;
|
|
542
|
+
private _validatorOnChange;
|
|
543
|
+
constructor(el: ElementRef<HTMLInputElement>);
|
|
544
|
+
ngOnChanges(): void;
|
|
545
|
+
onClick(event: Event): void;
|
|
546
|
+
onBlur(): void;
|
|
547
|
+
writeValue(value: NgxDateRange<Date> | readonly [Date | null, Date | null] | null): void;
|
|
548
|
+
registerOnChange(fn: (value: NgxDateRange<Date>) => void): void;
|
|
549
|
+
registerOnTouched(fn: () => void): void;
|
|
550
|
+
registerOnValidatorChange(fn: () => void): void;
|
|
551
|
+
setDisabledState(disabled: boolean): void;
|
|
552
|
+
toggle(): void;
|
|
553
|
+
validate(_control: AbstractControl): ValidationErrors | null;
|
|
554
|
+
private formatValue;
|
|
555
|
+
private destroyDatePicker;
|
|
556
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputDateRangePicker, never>;
|
|
557
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgxInputDateRangePicker, "input[ngxInputDateRangePicker]", ["ngxInputDateRangePicker"], { "openOnClick": { "alias": "openOnClick"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "rangeSeparator": { "alias": "rangeSeparator"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
export { DATE_ADAPTERS, DEFAULT_DATE_ADAPTERS, DateModel, DateViewDay, DateViewMonth, DateViewWeek, DateViewYear, NgxCalendarComponent, NgxDatePickerConfig, NgxDateRangePickerComponent, NgxInputDatePicker, NgxInputDatePickerComponent, NgxInputDateRangePicker, createDateRange, getLocals, isCompleteDateRange, isDateInPreviewRange, isDateInRange, normalizeDateRange, provideDateAdapters };
|
|
561
|
+
export type { CalendarDate, CalendarDayColumn, CalendarEventChange, CalendarEventInteractionType, CalendarMonthEventSegment, CalendarTimedEvent, DateAdapterRegistration, IDateAdapter, MsEventViewer, MsEvents, NgxDateRange };
|