@norwegian/core-components 6.50.0 → 6.51.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 (42) hide show
  1. package/assets/documentation/autocomplete-new/autocomplete-new.md +1 -0
  2. package/esm2022/lib/components/autocomplete-new/autocomplete-new.component.mjs +307 -0
  3. package/esm2022/lib/components/autocomplete-new/autocomplete-new.module.mjs +43 -0
  4. package/esm2022/lib/components/autocomplete-new/index.mjs +3 -0
  5. package/esm2022/lib/components/autocomplete-new/models/autocomplete-new.model.mjs +2 -0
  6. package/esm2022/lib/components/datepicker/index.mjs +1 -2
  7. package/esm2022/lib/components/datepicker-combo-new/datepicker-combo-new.component.mjs +390 -0
  8. package/esm2022/lib/components/datepicker-combo-new/datepicker-combo-new.module.mjs +31 -0
  9. package/esm2022/lib/components/datepicker-combo-new/index.mjs +3 -0
  10. package/esm2022/lib/components/datepicker-new/calendar-new/calendar-date.model.mjs +2 -0
  11. package/esm2022/lib/components/datepicker-new/calendar-new/calendar-new.component.mjs +594 -0
  12. package/esm2022/lib/components/datepicker-new/calendar-new/enums/week-start.enum.mjs +6 -0
  13. package/esm2022/lib/components/datepicker-new/calendar-new/models/day.model.mjs +2 -0
  14. package/esm2022/lib/components/datepicker-new/calendar-new/models/select-option.model.mjs +2 -0
  15. package/esm2022/lib/components/datepicker-new/calendar-new/models/week.model.mjs +2 -0
  16. package/esm2022/lib/components/datepicker-new/datepicker-new.component.mjs +571 -0
  17. package/esm2022/lib/components/datepicker-new/datepicker-new.module.mjs +55 -0
  18. package/esm2022/lib/components/datepicker-new/index.mjs +5 -0
  19. package/esm2022/lib/components/datepicker-new/services/calendar.service.mjs +215 -0
  20. package/esm2022/lib/components/index.mjs +4 -1
  21. package/fesm2022/norwegian-core-components.mjs +2333 -203
  22. package/fesm2022/norwegian-core-components.mjs.map +1 -1
  23. package/lib/components/autocomplete-new/autocomplete-new.component.d.ts +134 -0
  24. package/lib/components/autocomplete-new/autocomplete-new.module.d.ts +13 -0
  25. package/lib/components/autocomplete-new/index.d.ts +2 -0
  26. package/lib/components/autocomplete-new/models/autocomplete-new.model.d.ts +5 -0
  27. package/lib/components/datepicker/index.d.ts +0 -1
  28. package/lib/components/datepicker-combo-new/datepicker-combo-new.component.d.ts +302 -0
  29. package/lib/components/datepicker-combo-new/datepicker-combo-new.module.d.ts +10 -0
  30. package/lib/components/datepicker-combo-new/index.d.ts +2 -0
  31. package/lib/components/datepicker-new/calendar-new/calendar-date.model.d.ts +5 -0
  32. package/lib/components/datepicker-new/calendar-new/calendar-new.component.d.ts +159 -0
  33. package/lib/components/datepicker-new/calendar-new/enums/week-start.enum.d.ts +4 -0
  34. package/lib/components/datepicker-new/calendar-new/models/day.model.d.ts +10 -0
  35. package/lib/components/datepicker-new/calendar-new/models/select-option.model.d.ts +4 -0
  36. package/lib/components/datepicker-new/calendar-new/models/week.model.d.ts +5 -0
  37. package/lib/components/datepicker-new/datepicker-new.component.d.ts +272 -0
  38. package/lib/components/datepicker-new/datepicker-new.module.d.ts +16 -0
  39. package/lib/components/datepicker-new/index.d.ts +4 -0
  40. package/lib/components/datepicker-new/services/calendar.service.d.ts +27 -0
  41. package/lib/components/index.d.ts +3 -0
  42. package/package.json +1 -1
@@ -0,0 +1,134 @@
1
+ /**
2
+ * @license
3
+ * Copyright Norwegian Air Shuttle. All Rights Reserved.
4
+ */
5
+ import { AutocompleteModel } from './models/autocomplete-new.model';
6
+ import { ElementRef, EventEmitter, OnInit } from '@angular/core';
7
+ import { NasComponentBase } from '../../core';
8
+ import { FormGroup } from '@angular/forms';
9
+ import * as i0 from "@angular/core";
10
+ /**
11
+ * @description
12
+ * Norwegian Airport Select Component | New design | Beta
13
+ */
14
+ export declare class AutocompleteNewComponent extends NasComponentBase implements OnInit {
15
+ private document;
16
+ filteredItems: Array<AutocompleteModel>;
17
+ focused: AutocompleteModel;
18
+ get showBackdrop(): boolean;
19
+ set showBackdrop(value: boolean);
20
+ input: ElementRef;
21
+ span: ElementRef;
22
+ results: ElementRef;
23
+ labelElement: ElementRef<HTMLElement>;
24
+ /**
25
+ * @property Input
26
+ * @description
27
+ * A label that will appear inside the text field.
28
+ */
29
+ label: string;
30
+ /**
31
+ * @property Input
32
+ * @description
33
+ * A placeholder that will appear inside the text field.
34
+ */
35
+ placeholder: string;
36
+ /**
37
+ * @property Input
38
+ * @description
39
+ * An icon that will appear inside the text field.
40
+ */
41
+ icon: string;
42
+ /**
43
+ * @property Input
44
+ * @description
45
+ * An array of items that will appear inside the dropdown list.
46
+ */
47
+ get items(): Array<AutocompleteModel>;
48
+ set items(items: Array<AutocompleteModel>);
49
+ /**
50
+ * @property Input
51
+ * @description
52
+ * Can set and listen to wheather the dropdown list is or should be open or not.
53
+ */
54
+ get open(): boolean;
55
+ set open(open: boolean);
56
+ /**
57
+ * @property Input
58
+ * @description
59
+ * Can set and listen to changes in the model of the text field.
60
+ */
61
+ get model(): string;
62
+ set model(model: string);
63
+ /**
64
+ * @property Input
65
+ * @description
66
+ * Disables the backdrop on focus.
67
+ */
68
+ disableBackdrop: boolean;
69
+ /**
70
+ * @property Input
71
+ * @description
72
+ * Sets a formControlName directive to the input.
73
+ * It requires that the consumer included ReactiveFormsModule in it's module.
74
+ * It requiers that the nasFormGroup input is filled.
75
+ */
76
+ nasFormControlName: string;
77
+ /**
78
+ * @property Input
79
+ * @description
80
+ * Adds the parent's form group.
81
+ * It requires that the consumer included ReactiveFormsModule in it's module.
82
+ * It is requiered to be filled if nasFormControlName added.
83
+ */
84
+ nasFormGroup: FormGroup;
85
+ /**
86
+ * @property Input
87
+ * @description
88
+ * Adds an aria-label attribute to the backdrop button.
89
+ */
90
+ ariaLabelBackdrop: string;
91
+ /**
92
+ * @property Input
93
+ * @description
94
+ * Adds 'aria-label' on the clear button inside input.
95
+ */
96
+ ariaLabelClear: string;
97
+ /**
98
+ * @property Output
99
+ * @description
100
+ * Is fired when the next element should be focused.
101
+ */
102
+ focusOnNext: EventEmitter<any>;
103
+ /**
104
+ * @property Output
105
+ * @description
106
+ * Is fired when the user selects an item in the dropdown list.
107
+ */
108
+ selectedChange: EventEmitter<AutocompleteModel>;
109
+ openChange: EventEmitter<boolean>;
110
+ modelChange: EventEmitter<string>;
111
+ private index;
112
+ private openValue;
113
+ private itemsValue;
114
+ private modelValue;
115
+ private componentId;
116
+ constructor(document: any);
117
+ ngOnInit(): void;
118
+ getResultsId(): string;
119
+ getLabelId(): string;
120
+ getInputId(): string;
121
+ setOpen(): void;
122
+ filter(): void;
123
+ onKeyDown(event: KeyboardEvent): void;
124
+ clearSelected(event: any): void;
125
+ select(item: AutocompleteModel): void;
126
+ blur(): void;
127
+ private focusDown;
128
+ private focusUp;
129
+ private pathReactiveFormControl;
130
+ private autoScroll;
131
+ onInput(event: Event): void;
132
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteNewComponent, never>;
133
+ static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteNewComponent, "nas-autocomplete-new", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "items": { "alias": "items"; "required": false; }; "open": { "alias": "open"; "required": false; }; "model": { "alias": "model"; "required": false; }; "disableBackdrop": { "alias": "disableBackdrop"; "required": false; }; "nasFormControlName": { "alias": "nasFormControlName"; "required": false; }; "nasFormGroup": { "alias": "nasFormGroup"; "required": false; }; "ariaLabelBackdrop": { "alias": "ariaLabelBackdrop"; "required": false; }; "ariaLabelClear": { "alias": "ariaLabelClear"; "required": false; }; }, { "focusOnNext": "focusOnNext"; "selectedChange": "selectedChange"; "openChange": "openChange"; "modelChange": "modelChange"; }, never, never, false, never>;
134
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./autocomplete-new.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "../../core/directives/nas-class/nas-class.module";
5
+ import * as i4 from "@angular/forms";
6
+ import * as i5 from "../icon/icon.module";
7
+ import * as i6 from "../spinner/spinner.module";
8
+ import * as i7 from "../backdrop/backdrop.module";
9
+ export declare class AutocompleteNewModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteNewModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AutocompleteNewModule, [typeof i1.AutocompleteNewComponent], [typeof i2.CommonModule, typeof i3.NasClassModule, typeof i4.FormsModule, typeof i5.IconModule, typeof i6.SpinnerModule, typeof i7.BackdropModule, typeof i4.ReactiveFormsModule], [typeof i1.AutocompleteNewComponent]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<AutocompleteNewModule>;
13
+ }
@@ -0,0 +1,2 @@
1
+ export * from './autocomplete-new.component';
2
+ export * from './autocomplete-new.module';
@@ -0,0 +1,5 @@
1
+ export interface AutocompleteModel {
2
+ title: string;
3
+ preamble?: string;
4
+ id: string;
5
+ }
@@ -1,4 +1,3 @@
1
1
  export * from './datepicker.component';
2
2
  export * from './calendar/calendar.component';
3
3
  export * from './datepicker.module';
4
- export * from './calendar/calendar-date.model';
@@ -0,0 +1,302 @@
1
+ /**
2
+ * @license
3
+ * Copyright Norwegian Air Shuttle. All Rights Reserved.
4
+ */
5
+ import { EventEmitter, ElementRef, AfterViewChecked, OnInit, OnDestroy, Renderer2 } from '@angular/core';
6
+ import { FormGroup } from '@angular/forms';
7
+ import { NasComponentBase } from '../../core/base/nas-component.base';
8
+ import { ClassModel } from '../../core/models/class.model';
9
+ import { UtcDate } from '../../core/models/utc-date.model';
10
+ import { DateHelper } from '../../core/services/date/date-helper.service';
11
+ import { DeviceHelper } from '../../core/services/device/device-helper.service';
12
+ import { DatepickerComponent } from '../datepicker/datepicker.component';
13
+ import * as i0 from "@angular/core";
14
+ /**
15
+ * @description
16
+ * Norwegian Datepicker Combo Component | New design | Beta
17
+ */
18
+ export declare class DatepickerComboNewComponent extends NasComponentBase implements OnInit, AfterViewChecked, OnDestroy {
19
+ private dateService;
20
+ private deviceHelper;
21
+ private renderer;
22
+ inboundLowerLimitDate: UtcDate;
23
+ datepickerOutbound: DatepickerComponent;
24
+ datepickerInbound: ElementRef;
25
+ container: ElementRef;
26
+ /**
27
+ * @property Input
28
+ * @description
29
+ * Adds 'aria-label' to the backdrops.
30
+ */
31
+ ariaLabelBackdrop: string;
32
+ /**
33
+ * @property Input
34
+ * @description
35
+ * Sets outbound datepicker open.
36
+ */
37
+ get outboundOpen(): boolean;
38
+ set outboundOpen(value: boolean);
39
+ /**
40
+ * @property Input
41
+ * @description
42
+ * Sets inbound datepicker open.
43
+ */
44
+ get inboundOpen(): boolean;
45
+ set inboundOpen(value: boolean);
46
+ /**
47
+ * @property Input
48
+ * @description
49
+ * Label for no available flights.
50
+ */
51
+ noAvailableFlightsLabel: string;
52
+ /**
53
+ * @property Input
54
+ * @description
55
+ * Label for available flights.
56
+ */
57
+ availableFlightsLabel: string;
58
+ /**
59
+ * @property Input
60
+ * @description
61
+ * Disable possibility to select dates in the past.
62
+ */
63
+ disablePastSelection: boolean;
64
+ /**
65
+ * @property Input
66
+ * @description
67
+ * Disable possibility to select outbound dates.
68
+ */
69
+ outboundDisabled: boolean;
70
+ /**
71
+ * @property Input
72
+ * @description
73
+ * Disable possibility to select inbound dates.
74
+ */
75
+ inboundDisabled: boolean;
76
+ /**
77
+ * @property Input
78
+ * @description
79
+ * Remove the inbound datepicker if set.
80
+ */
81
+ outboundOnly: boolean;
82
+ /**
83
+ * @property Input
84
+ * @description
85
+ * Label for outbound datepicker.
86
+ */
87
+ outboundLabel: string;
88
+ /**
89
+ * @property Input
90
+ * @description
91
+ * Label for inbound datepicker.
92
+ */
93
+ inboundLabel: string;
94
+ /**
95
+ * @property Input
96
+ * @description
97
+ * Sets the datepickers in availability mode where available dates can be added.
98
+ */
99
+ availability: boolean;
100
+ /**
101
+ * @property Input
102
+ * @description
103
+ * Available dates for outbound calendar.
104
+ */
105
+ outboundAvailableDates: Array<UtcDate>;
106
+ /**
107
+ * @property Input
108
+ * @description
109
+ * Available dates for inbound calendar.
110
+ */
111
+ inboundAvailableDates: Array<UtcDate>;
112
+ /**
113
+ * @property Input
114
+ * @description
115
+ * If set, Enables the time dropdown selector alongside datepicker.
116
+ */
117
+ times: Array<UtcDate>;
118
+ /**
119
+ * @property Input
120
+ * @description
121
+ * The display format of the date when user has selected the date and it is being shown in the input box for the date picker.
122
+ * Please look at the angular Date pipe for valid formats and variations.
123
+ */
124
+ dateDisplayFormat: string;
125
+ /**
126
+ * @property Input
127
+ * @description
128
+ * The time display format.
129
+ */
130
+ timeDisplayFormat: string;
131
+ /**
132
+ * @property Input
133
+ * @description
134
+ * A locale code for the locale format rules to use. When not supplied, uses the value of LOCALE_ID, which is en-US by default.
135
+ * This requires that registerLocaleData is called with the respective locale.
136
+ */
137
+ locale: string;
138
+ /**
139
+ * @property Input
140
+ * @description
141
+ * A modifier to remove the padding and margins around the element.
142
+ */
143
+ compact: boolean;
144
+ /**
145
+ * @property Input
146
+ * @description
147
+ * Adds the parent's form group.
148
+ * It requires that the consumer included ReactiveFormsModule in it's module.
149
+ * It is requiered to be filled if nasFormControlName added.
150
+ */
151
+ nasFormGroup: FormGroup;
152
+ /**
153
+ * @property Input
154
+ * @description
155
+ * Sets a formControlName directive to the input.
156
+ * It requires that the consumer included ReactiveFormsModule in it's module.
157
+ * It requiers that the nasFormGroup input is filled.
158
+ */
159
+ nasFormControlNameOutbound: string;
160
+ /**
161
+ * @property Input
162
+ * @description
163
+ * Sets a formControlName directive to the input.
164
+ * It requires that the consumer included ReactiveFormsModule in it's module.
165
+ * It requiers that the nasFormGroup input is filled.
166
+ */
167
+ nasFormControlNameInbound: string;
168
+ /**
169
+ * @property Input
170
+ * @description
171
+ * Selected datefor outbound calendar.
172
+ */
173
+ get outboundSelectedDate(): UtcDate;
174
+ set outboundSelectedDate(date: UtcDate);
175
+ /**
176
+ * @property Input
177
+ * @description
178
+ * Selected datefor inbound calendar.
179
+ */
180
+ get inboundSelectedDate(): UtcDate;
181
+ set inboundSelectedDate(date: UtcDate);
182
+ /**
183
+ * @property Input
184
+ * @description
185
+ * enable to disable backdrop.
186
+ */
187
+ disableBackdrop: boolean;
188
+ /**
189
+ * @property Input
190
+ * @description
191
+ * Sets the outbound selected time in the time selector.
192
+ */
193
+ outboundSelectedTime: UtcDate;
194
+ /**
195
+ * @property Input
196
+ * @description
197
+ * Sets the inbound selected time in the time selector.
198
+ */
199
+ inboundSelectedTime: UtcDate;
200
+ /**
201
+ * @property Input
202
+ * @description
203
+ * ARIA label for the previous month button in the calendar.
204
+ */
205
+ ariaLabelPreviousMonth: string;
206
+ /**
207
+ * @property Input
208
+ * @description
209
+ * ARIA label for the next month button in the calendar.
210
+ */
211
+ ariaLabelNextMonth: string;
212
+ /**
213
+ * @property Input
214
+ * @description
215
+ * Sets a relative number to decide when the inbound lower limit date should be based on selected outbound date.
216
+ *
217
+ * The lower limit date for inbound is set by default equal to the selected outbound date.
218
+ *
219
+ * If this number is positive, the inbound lower limit date will add the number of days to the selected outbound date.
220
+ * If this number is negative, the inbound lower limit date will subtract the number of days to the selected outbound date.
221
+ */
222
+ inboundLowerLimitDateOffset: number;
223
+ /**
224
+ * @property Input
225
+ * @description
226
+ * Outbound and inbound dates will break horizontally in mobile view.
227
+ */
228
+ inlineFlex: number;
229
+ /**
230
+ * @property Output
231
+ * @description
232
+ * When selected datehas been changed on the outbound calendar.
233
+ */
234
+ outboundSelectedDateChange: EventEmitter<UtcDate>;
235
+ /**
236
+ * @property Output
237
+ * @description
238
+ * When selected datehas been changed on the inbound calendar.
239
+ */
240
+ inboundSelectedDateChange: EventEmitter<UtcDate>;
241
+ /**
242
+ * @property Output
243
+ * @description
244
+ * Outbound datepicker is open or closed.
245
+ */
246
+ outboundOpenChange: EventEmitter<boolean>;
247
+ /**
248
+ * @property Output
249
+ * @description
250
+ * Inbound datepicker is open or closed.
251
+ */
252
+ inboundOpenChange: EventEmitter<boolean>;
253
+ /**
254
+ * @property Output
255
+ * @description
256
+ * Outbound calendar changes month.
257
+ */
258
+ outboundMonthChange: EventEmitter<UtcDate>;
259
+ /**
260
+ * @property Output
261
+ * @description
262
+ * Inbound calendar changes month.
263
+ */
264
+ inboundMonthChange: EventEmitter<UtcDate>;
265
+ /**
266
+ * @property Output
267
+ * @description
268
+ * When a user has actively changed the date.
269
+ */
270
+ focusOnNextChange: EventEmitter<any>;
271
+ /**
272
+ * @property Output
273
+ * @description
274
+ * When a user has pressed shift + tab to go to previous control.
275
+ */
276
+ focusOnPreviousChange: EventEmitter<KeyboardEvent | MouseEvent>;
277
+ get inboundSelectedMonth(): UtcDate;
278
+ set inboundSelectedMonth(month: UtcDate);
279
+ private outboundSelectedDateValue;
280
+ private inboundSelectedDateValue;
281
+ private inboundSelectedMonthValue;
282
+ private inboundOpenValue;
283
+ private outboundOpenValue;
284
+ private containerWidth;
285
+ private inboundValueChangesSubscription;
286
+ private outboundValueChangesSubscription;
287
+ constructor(dateService: DateHelper, deviceHelper: DeviceHelper, renderer: Renderer2);
288
+ ngOnInit(): void;
289
+ ngAfterViewChecked(): void;
290
+ onFocusOnNext(event: KeyboardEvent | MouseEvent): void;
291
+ onFocusOnPrevious(event: KeyboardEvent): void;
292
+ onInboundFocusOnPrevious(): void;
293
+ onOutboundMonthChange(date: UtcDate): void;
294
+ getMainClass(): Array<ClassModel>;
295
+ checkOutboundOnly(): boolean;
296
+ checkInboundDisabled(): boolean;
297
+ ngOnDestroy(): void;
298
+ private updateContainerWidth;
299
+ private setInlineFlex;
300
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatepickerComboNewComponent, never>;
301
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatepickerComboNewComponent, "nas-datepicker-combo-new", never, { "ariaLabelBackdrop": { "alias": "ariaLabelBackdrop"; "required": false; }; "outboundOpen": { "alias": "outboundOpen"; "required": false; }; "inboundOpen": { "alias": "inboundOpen"; "required": false; }; "noAvailableFlightsLabel": { "alias": "noAvailableFlightsLabel"; "required": false; }; "availableFlightsLabel": { "alias": "availableFlightsLabel"; "required": false; }; "disablePastSelection": { "alias": "disablePastSelection"; "required": false; }; "outboundDisabled": { "alias": "outboundDisabled"; "required": false; }; "inboundDisabled": { "alias": "inboundDisabled"; "required": false; }; "outboundOnly": { "alias": "outboundOnly"; "required": false; }; "outboundLabel": { "alias": "outboundLabel"; "required": false; }; "inboundLabel": { "alias": "inboundLabel"; "required": false; }; "availability": { "alias": "availability"; "required": false; }; "outboundAvailableDates": { "alias": "outboundAvailableDates"; "required": false; }; "inboundAvailableDates": { "alias": "inboundAvailableDates"; "required": false; }; "times": { "alias": "times"; "required": false; }; "dateDisplayFormat": { "alias": "dateDisplayFormat"; "required": false; }; "timeDisplayFormat": { "alias": "timeDisplayFormat"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "nasFormGroup": { "alias": "nasFormGroup"; "required": false; }; "nasFormControlNameOutbound": { "alias": "nasFormControlNameOutbound"; "required": false; }; "nasFormControlNameInbound": { "alias": "nasFormControlNameInbound"; "required": false; }; "outboundSelectedDate": { "alias": "outboundSelectedDate"; "required": false; }; "inboundSelectedDate": { "alias": "inboundSelectedDate"; "required": false; }; "disableBackdrop": { "alias": "disableBackdrop"; "required": false; }; "outboundSelectedTime": { "alias": "outboundSelectedTime"; "required": false; }; "inboundSelectedTime": { "alias": "inboundSelectedTime"; "required": false; }; "ariaLabelPreviousMonth": { "alias": "ariaLabelPreviousMonth"; "required": false; }; "ariaLabelNextMonth": { "alias": "ariaLabelNextMonth"; "required": false; }; "inboundLowerLimitDateOffset": { "alias": "inboundLowerLimitDateOffset"; "required": false; }; "inlineFlex": { "alias": "inlineFlex"; "required": false; }; }, { "outboundSelectedDateChange": "outboundSelectedDateChange"; "inboundSelectedDateChange": "inboundSelectedDateChange"; "outboundOpenChange": "outboundOpenChange"; "inboundOpenChange": "inboundOpenChange"; "outboundMonthChange": "outboundMonthChange"; "inboundMonthChange": "inboundMonthChange"; "focusOnNextChange": "focusOnNextChange"; "focusOnPreviousChange": "focusOnPreviousChange"; }, never, never, false, never>;
302
+ }
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./datepicker-combo-new.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "../datepicker-new/datepicker-new.module";
5
+ import * as i4 from "../../core/directives/nas-class/nas-class.module";
6
+ export declare class DatepickerComboNewModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatepickerComboNewModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DatepickerComboNewModule, [typeof i1.DatepickerComboNewComponent], [typeof i2.CommonModule, typeof i3.DatepickerNewModule, typeof i4.NasClassModule], [typeof i1.DatepickerComboNewComponent]>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<DatepickerComboNewModule>;
10
+ }
@@ -0,0 +1,2 @@
1
+ export * from './datepicker-combo-new.component';
2
+ export * from './datepicker-combo-new.module';
@@ -0,0 +1,5 @@
1
+ import { UtcDate } from '../../../core';
2
+ export interface CalendarDateModel {
3
+ date: UtcDate;
4
+ model: string;
5
+ }
@@ -0,0 +1,159 @@
1
+ /**
2
+ * @license
3
+ * Copyright Norwegian Air Shuttle. All Rights Reserved.
4
+ */
5
+ import { DatePipe } from '@angular/common';
6
+ import { ElementRef, EventEmitter, OnInit, QueryList } from '@angular/core';
7
+ import { FormGroup } from '@angular/forms';
8
+ import { WeekStart } from './enums/week-start.enum';
9
+ import { DayModel } from './models/day.model';
10
+ import { SelectOptionModel } from './models/select-option.model';
11
+ import { WeekModel } from './models/week.model';
12
+ import { NasComponentBase } from '../../../core/base/nas-component.base';
13
+ import { ClassModel } from '../../../core/models/class.model';
14
+ import { UtcDate } from '../../../core/models/utc-date.model';
15
+ import { DateHelper } from '../../../core/services/date/date-helper.service';
16
+ import { SelectComponent } from '../../select/select.component';
17
+ import { CalendarService } from '../services/calendar.service';
18
+ import * as i0 from "@angular/core";
19
+ export declare class CalendarNewComponent extends NasComponentBase implements OnInit {
20
+ dateService: DateHelper;
21
+ datePipe: DatePipe;
22
+ private calendarService;
23
+ weeks: Array<WeekModel>;
24
+ months: SelectOptionModel[];
25
+ weekdays: string[];
26
+ isPreviousMonthDisabled: boolean;
27
+ previousMonthRef: ElementRef<HTMLButtonElement>;
28
+ nextMonthRef: ElementRef<HTMLButtonElement>;
29
+ tableCells: QueryList<ElementRef>;
30
+ dateButtons: QueryList<ElementRef>;
31
+ calendarContent: ElementRef;
32
+ monthSelectRef: SelectComponent;
33
+ /**
34
+ * @description
35
+ * Label for no available flights.
36
+ */
37
+ noAvailableFlightsLabel: string;
38
+ /**
39
+ * @description
40
+ * Label for available flights.
41
+ */
42
+ availableFlightsLabel: string;
43
+ /**
44
+ * @description
45
+ * Disable possibility to select dates in the past.
46
+ */
47
+ disablePastSelection?: boolean;
48
+ /**
49
+ * @description
50
+ * The lowest date allowed.
51
+ */
52
+ get lowerLimitDate(): UtcDate;
53
+ set lowerLimitDate(date: UtcDate);
54
+ /**
55
+ * @description
56
+ * Current month date to be displayed. It will take precedence over selected date input, if it is set.
57
+ */
58
+ date: UtcDate;
59
+ /**
60
+ * @description
61
+ * Desides if the week should start on a monday or sunday. Defaults to monday.
62
+ */
63
+ weekStart: WeekStart;
64
+ /**
65
+ * @description
66
+ * Display week numbers.
67
+ */
68
+ displayWeekNumbers: boolean;
69
+ /**
70
+ * @description
71
+ * Sets the datepicker in availability mode where available dates can be added.
72
+ */
73
+ availability: boolean;
74
+ /**
75
+ * @description
76
+ * A locale code for the locale format rules to use. When not supplied, uses the value of LOCALE_ID, which is en-US by default.
77
+ * This requires that registerLocaleData is called with the respective locale.
78
+ */
79
+ locale: string;
80
+ /**
81
+ * @description
82
+ * An array with all the available dates of the month for seats.
83
+ */
84
+ get availableDates(): Array<UtcDate>;
85
+ set availableDates(dates: Array<UtcDate>);
86
+ /**
87
+ * @description
88
+ * Gets or sets the active date
89
+ */
90
+ get activeDate(): UtcDate;
91
+ set activeDate(date: UtcDate);
92
+ get selectedDate(): UtcDate;
93
+ set selectedDate(date: UtcDate);
94
+ nasFormGroup: FormGroup;
95
+ nasFormControlName: string;
96
+ dateDisplayFormat: string;
97
+ ariaLabelPreviousMonth: string;
98
+ ariaLabelNextMonth: string;
99
+ /**
100
+ * @description
101
+ * Month selected by the user by clicking in drop down for month selection or month navigation buttons.
102
+ */
103
+ monthChange: EventEmitter<UtcDate>;
104
+ /**
105
+ * @description
106
+ * When a user has actively changed the date.
107
+ */
108
+ focusOnNextChange: EventEmitter<KeyboardEvent | MouseEvent>;
109
+ /**
110
+ * @description
111
+ * When selected date has been changed.
112
+ */
113
+ selectedDateChange: EventEmitter<UtcDate>;
114
+ /**
115
+ * @description
116
+ * When active date has been changed.
117
+ */
118
+ activeDateChange: EventEmitter<UtcDate>;
119
+ get selectedMonth(): SelectOptionModel;
120
+ set selectedMonth(option: SelectOptionModel);
121
+ get nextMonthDisabled(): boolean;
122
+ get currentMonthModel(): string;
123
+ /**
124
+ * @description
125
+ * Is in use by DatepickerComponent
126
+ */
127
+ get activeDateCell(): HTMLElement;
128
+ private maxMonthIndex;
129
+ private activeDateValue;
130
+ private availableDatesValue;
131
+ private currentMonth;
132
+ private selectedValue;
133
+ private availableDays;
134
+ private monthNames;
135
+ private lowerLimitDateValue;
136
+ private selectedDateValue;
137
+ private shouldFocusCalendarOnAvailableDatesUpdate;
138
+ constructor(dateService: DateHelper, datePipe: DatePipe, calendarService: CalendarService);
139
+ ngOnInit(): void;
140
+ dateKeyDown(event: KeyboardEvent): void;
141
+ onPreviousMonthKeydown(event: KeyboardEvent): void;
142
+ onNextMonthKeydown(event: KeyboardEvent): void;
143
+ onNextMonthMousedown(): void;
144
+ onPreviousMonthMousedown(): void;
145
+ onMonthSelectKeydown(event: KeyboardEvent): void;
146
+ focusElement(event: KeyboardEvent, elementToFocus: HTMLElement): void;
147
+ setActiveDate(): void;
148
+ onMouseDown(date: string, event: MouseEvent): void;
149
+ onDayFocus(day: DayModel): void;
150
+ onDayClick(day: DayModel): void;
151
+ setSelectedDate(date: UtcDate): void;
152
+ getCellButtonClass(day: DayModel): ClassModel;
153
+ getNextMonth(): void;
154
+ getPreviousMonth(): void;
155
+ setPreviousMonthDisabled(): void;
156
+ private applySelectedDateChanges;
157
+ static ɵfac: i0.ɵɵFactoryDeclaration<CalendarNewComponent, never>;
158
+ static ɵcmp: i0.ɵɵComponentDeclaration<CalendarNewComponent, "nas-calendar-new", never, { "noAvailableFlightsLabel": { "alias": "noAvailableFlightsLabel"; "required": false; }; "availableFlightsLabel": { "alias": "availableFlightsLabel"; "required": false; }; "disablePastSelection": { "alias": "disablePastSelection"; "required": false; }; "lowerLimitDate": { "alias": "lowerLimitDate"; "required": false; }; "date": { "alias": "date"; "required": false; }; "weekStart": { "alias": "weekStart"; "required": false; }; "displayWeekNumbers": { "alias": "displayWeekNumbers"; "required": false; }; "availability": { "alias": "availability"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "availableDates": { "alias": "availableDates"; "required": false; }; "activeDate": { "alias": "activeDate"; "required": false; }; "selectedDate": { "alias": "selectedDate"; "required": false; }; "nasFormGroup": { "alias": "nasFormGroup"; "required": false; }; "nasFormControlName": { "alias": "nasFormControlName"; "required": false; }; "dateDisplayFormat": { "alias": "dateDisplayFormat"; "required": false; }; "ariaLabelPreviousMonth": { "alias": "ariaLabelPreviousMonth"; "required": false; }; "ariaLabelNextMonth": { "alias": "ariaLabelNextMonth"; "required": false; }; }, { "monthChange": "monthChange"; "focusOnNextChange": "focusOnNextChange"; "selectedDateChange": "selectedDateChange"; "activeDateChange": "activeDateChange"; }, never, never, false, never>;
159
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum WeekStart {
2
+ monday = 0,
3
+ sunday = 1
4
+ }
@@ -0,0 +1,10 @@
1
+ export interface DayModel {
2
+ date: string;
3
+ index?: number;
4
+ isSelected?: boolean;
5
+ isEmpty?: boolean;
6
+ isDisabled?: boolean;
7
+ isAvailable?: boolean;
8
+ isActive?: boolean;
9
+ isWithinRange?: boolean;
10
+ }
@@ -0,0 +1,4 @@
1
+ export interface SelectOptionModel {
2
+ value: string;
3
+ title: string;
4
+ }