@sebgroup/green-angular 1.0.0-beta.6 → 1.0.0-beta.9
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/esm2020/index.mjs +3 -1
- package/esm2020/lib/datepicker/datepicker.component.mjs +133 -0
- package/esm2020/lib/datepicker/datepicker.module.mjs +19 -0
- package/esm2020/lib/dropdown/dropdown.component.mjs +101 -22
- package/esm2020/lib/green-angular.module.mjs +5 -4
- package/fesm2015/sebgroup-green-angular.mjs +248 -26
- package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
- package/fesm2020/sebgroup-green-angular.mjs +245 -25
- package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/lib/datepicker/datepicker.component.d.ts +45 -0
- package/lib/datepicker/datepicker.module.d.ts +9 -0
- package/lib/dropdown/dropdown.component.d.ts +13 -7
- package/lib/green-angular.module.d.ts +2 -1
- package/package.json +4 -4
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ChangeDetectionStrategy, Input, NgModule, ViewChild } from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, Input, NgModule, EventEmitter, Output, ViewChild } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/router';
|
|
6
6
|
import { RouterModule } from '@angular/router';
|
|
7
7
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
-
import { createDropdown } from '@sebgroup/extract';
|
|
8
|
+
import { dropdownValues, createDropdown, randomId, months, years, createDatepicker } from '@sebgroup/extract';
|
|
9
9
|
|
|
10
10
|
class NggSegmentedControlComponent {
|
|
11
11
|
}
|
|
@@ -60,34 +60,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
60
60
|
class NggDropdownComponent {
|
|
61
61
|
constructor(cd) {
|
|
62
62
|
this.cd = cd;
|
|
63
|
+
this.loop = false;
|
|
63
64
|
this.options = [];
|
|
64
|
-
this.
|
|
65
|
+
this.valueChange = new EventEmitter();
|
|
66
|
+
this.toggler = dropdownValues.elements?.toggler;
|
|
67
|
+
this.listbox = dropdownValues.elements?.listbox;
|
|
65
68
|
this.trackByKey = (index, option) => {
|
|
66
69
|
return option.key;
|
|
67
70
|
};
|
|
68
71
|
}
|
|
72
|
+
get value() {
|
|
73
|
+
return this._value;
|
|
74
|
+
}
|
|
75
|
+
set value(newValue) {
|
|
76
|
+
this.setSelectionByValue(newValue);
|
|
77
|
+
}
|
|
69
78
|
ngAfterViewInit() {
|
|
70
79
|
if (this.togglerRef?.nativeElement && this.listboxRef?.nativeElement) {
|
|
71
80
|
this.handler = createDropdown(this.props, this.togglerRef.nativeElement, this.listboxRef.nativeElement, (dropdown) => {
|
|
72
81
|
this.dropdown = dropdown;
|
|
73
82
|
this.toggler = dropdown.elements.toggler;
|
|
74
83
|
this.listbox = dropdown.elements.listbox;
|
|
84
|
+
const selected = this.dropdown.options?.find((option) => option.selected);
|
|
85
|
+
if (selected && this._value !== selected?.value) {
|
|
86
|
+
setTimeout(() => {
|
|
87
|
+
this._value = selected.value;
|
|
88
|
+
this.valueChange.emit(selected.value);
|
|
89
|
+
this.onChangeFn && this.onChangeFn(selected.value);
|
|
90
|
+
this.onTouchedFn && this.onTouchedFn();
|
|
91
|
+
}, 0);
|
|
92
|
+
}
|
|
75
93
|
this.cd.detectChanges();
|
|
76
94
|
});
|
|
77
|
-
this.selectFromValue(this.value);
|
|
78
95
|
}
|
|
79
96
|
}
|
|
80
97
|
ngOnDestroy() {
|
|
81
98
|
this.handler?.destroy();
|
|
82
99
|
}
|
|
83
|
-
ngOnChanges() {
|
|
84
|
-
if (this.handler &&
|
|
100
|
+
ngOnChanges(changes) {
|
|
101
|
+
if (this.handler &&
|
|
102
|
+
(changes.id || changes.text || changes.loop || changes.options)) {
|
|
85
103
|
this.handler.update(this.props);
|
|
86
104
|
}
|
|
87
105
|
}
|
|
88
|
-
writeValue(
|
|
89
|
-
this.value =
|
|
90
|
-
this.selectFromValue(this.value);
|
|
106
|
+
writeValue(value) {
|
|
107
|
+
this.value = value;
|
|
91
108
|
}
|
|
92
109
|
registerOnChange(fn) {
|
|
93
110
|
this.onChangeFn = fn;
|
|
@@ -97,27 +114,31 @@ class NggDropdownComponent {
|
|
|
97
114
|
}
|
|
98
115
|
select(option) {
|
|
99
116
|
this.handler?.select(option);
|
|
117
|
+
this._value = option.value;
|
|
118
|
+
this.valueChange.emit(option.value);
|
|
100
119
|
this.onChangeFn && this.onChangeFn(option.value);
|
|
101
120
|
this.onTouchedFn && this.onTouchedFn();
|
|
102
121
|
}
|
|
103
122
|
get props() {
|
|
104
123
|
return {
|
|
105
|
-
id: this.id,
|
|
124
|
+
id: this.id || this.dropdown?.id,
|
|
106
125
|
text: this.text,
|
|
107
126
|
options: this.options,
|
|
108
127
|
loop: this.loop,
|
|
128
|
+
value: this.value,
|
|
109
129
|
};
|
|
110
130
|
}
|
|
111
|
-
|
|
112
|
-
if (this.
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
131
|
+
setSelectionByValue(value) {
|
|
132
|
+
if (this._value !== value) {
|
|
133
|
+
this._value = value;
|
|
134
|
+
const selected = this.handler?.dropdown?.options.find((option) => option.value === value);
|
|
135
|
+
if (selected)
|
|
136
|
+
this.handler?.select(selected);
|
|
116
137
|
}
|
|
117
138
|
}
|
|
118
139
|
}
|
|
119
140
|
NggDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
120
|
-
NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: NggDropdownComponent, selector: "ngg-dropdown", inputs: { id: "id", text: "text", loop: "loop", options: "options" }, providers: [
|
|
141
|
+
NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: NggDropdownComponent, selector: "ngg-dropdown", inputs: { id: "id", text: "text", loop: "loop", label: "label", options: "options", valid: "valid", invalid: "invalid", value: "value" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
121
142
|
{
|
|
122
143
|
provide: NG_VALUE_ACCESSOR,
|
|
123
144
|
useExisting: NggDropdownComponent,
|
|
@@ -125,7 +146,22 @@ NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
125
146
|
},
|
|
126
147
|
], viewQueries: [{ propertyName: "togglerRef", first: true, predicate: ["togglerRef"], descendants: true }, { propertyName: "listboxRef", first: true, predicate: ["listboxRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
127
148
|
<div>
|
|
149
|
+
<span
|
|
150
|
+
class="label"
|
|
151
|
+
*ngIf="label"
|
|
152
|
+
[id]="toggler?.attributes?.id + '_label'"
|
|
153
|
+
>{{ label }}</span
|
|
154
|
+
>
|
|
128
155
|
<button
|
|
156
|
+
[attr.aria-labelledby]="
|
|
157
|
+
label ? toggler?.attributes?.id + '_label' : null
|
|
158
|
+
"
|
|
159
|
+
[attr.aria-describedby]="
|
|
160
|
+
formInfo?.innerText && formInfo.innerText.length > 0
|
|
161
|
+
? toggler?.attributes?.id + '_info'
|
|
162
|
+
: null
|
|
163
|
+
"
|
|
164
|
+
type="button"
|
|
129
165
|
#togglerRef
|
|
130
166
|
[id]="toggler?.attributes?.id"
|
|
131
167
|
[attr.aria-haspopup]="toggler?.attributes?.['aria-haspopup']"
|
|
@@ -135,9 +171,17 @@ NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
135
171
|
[style]="toggler?.attributes?.style"
|
|
136
172
|
[class]="toggler?.classes"
|
|
137
173
|
(click)="handler?.toggle()"
|
|
174
|
+
[class.is-valid]="valid"
|
|
175
|
+
[class.is-invalid]="invalid"
|
|
138
176
|
>
|
|
139
|
-
{{ dropdown?.text }}
|
|
177
|
+
<span>{{ dropdown?.text }}</span>
|
|
140
178
|
</button>
|
|
179
|
+
<span
|
|
180
|
+
class="form-info"
|
|
181
|
+
#formInfo
|
|
182
|
+
[attr.id]="toggler?.attributes?.id + '_info'"
|
|
183
|
+
><ng-content select="[data-form-info]"></ng-content
|
|
184
|
+
></span>
|
|
141
185
|
<div
|
|
142
186
|
#listboxRef
|
|
143
187
|
[id]="listbox?.attributes?.id"
|
|
@@ -150,6 +194,7 @@ NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
150
194
|
[class]="listbox?.classes"
|
|
151
195
|
>
|
|
152
196
|
<button
|
|
197
|
+
type="button"
|
|
153
198
|
class="close m-4 m-sm-2 d-block d-sm-none"
|
|
154
199
|
(click)="handler?.close()"
|
|
155
200
|
>
|
|
@@ -163,21 +208,36 @@ NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
163
208
|
[attr.aria-selected]="option.attributes['aria-selected']"
|
|
164
209
|
[style]="option.attributes.style"
|
|
165
210
|
[class]="option.classes"
|
|
166
|
-
(click)="select(option)"
|
|
211
|
+
(click)="handler?.select(option)"
|
|
167
212
|
>
|
|
168
213
|
{{ option.key }}
|
|
169
214
|
</li>
|
|
170
215
|
</ul>
|
|
171
216
|
</div>
|
|
172
217
|
</div>
|
|
173
|
-
`, isInline: true, directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
218
|
+
`, isInline: true, directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
174
219
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggDropdownComponent, decorators: [{
|
|
175
220
|
type: Component,
|
|
176
221
|
args: [{
|
|
177
222
|
selector: 'ngg-dropdown',
|
|
178
223
|
template: `
|
|
179
224
|
<div>
|
|
225
|
+
<span
|
|
226
|
+
class="label"
|
|
227
|
+
*ngIf="label"
|
|
228
|
+
[id]="toggler?.attributes?.id + '_label'"
|
|
229
|
+
>{{ label }}</span
|
|
230
|
+
>
|
|
180
231
|
<button
|
|
232
|
+
[attr.aria-labelledby]="
|
|
233
|
+
label ? toggler?.attributes?.id + '_label' : null
|
|
234
|
+
"
|
|
235
|
+
[attr.aria-describedby]="
|
|
236
|
+
formInfo?.innerText && formInfo.innerText.length > 0
|
|
237
|
+
? toggler?.attributes?.id + '_info'
|
|
238
|
+
: null
|
|
239
|
+
"
|
|
240
|
+
type="button"
|
|
181
241
|
#togglerRef
|
|
182
242
|
[id]="toggler?.attributes?.id"
|
|
183
243
|
[attr.aria-haspopup]="toggler?.attributes?.['aria-haspopup']"
|
|
@@ -187,9 +247,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
187
247
|
[style]="toggler?.attributes?.style"
|
|
188
248
|
[class]="toggler?.classes"
|
|
189
249
|
(click)="handler?.toggle()"
|
|
250
|
+
[class.is-valid]="valid"
|
|
251
|
+
[class.is-invalid]="invalid"
|
|
190
252
|
>
|
|
191
|
-
{{ dropdown?.text }}
|
|
253
|
+
<span>{{ dropdown?.text }}</span>
|
|
192
254
|
</button>
|
|
255
|
+
<span
|
|
256
|
+
class="form-info"
|
|
257
|
+
#formInfo
|
|
258
|
+
[attr.id]="toggler?.attributes?.id + '_info'"
|
|
259
|
+
><ng-content select="[data-form-info]"></ng-content
|
|
260
|
+
></span>
|
|
193
261
|
<div
|
|
194
262
|
#listboxRef
|
|
195
263
|
[id]="listbox?.attributes?.id"
|
|
@@ -202,6 +270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
202
270
|
[class]="listbox?.classes"
|
|
203
271
|
>
|
|
204
272
|
<button
|
|
273
|
+
type="button"
|
|
205
274
|
class="close m-4 m-sm-2 d-block d-sm-none"
|
|
206
275
|
(click)="handler?.close()"
|
|
207
276
|
>
|
|
@@ -215,7 +284,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
215
284
|
[attr.aria-selected]="option.attributes['aria-selected']"
|
|
216
285
|
[style]="option.attributes.style"
|
|
217
286
|
[class]="option.classes"
|
|
218
|
-
(click)="select(option)"
|
|
287
|
+
(click)="handler?.select(option)"
|
|
219
288
|
>
|
|
220
289
|
{{ option.key }}
|
|
221
290
|
</li>
|
|
@@ -238,8 +307,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
238
307
|
type: Input
|
|
239
308
|
}], loop: [{
|
|
240
309
|
type: Input
|
|
310
|
+
}], label: [{
|
|
311
|
+
type: Input
|
|
241
312
|
}], options: [{
|
|
242
313
|
type: Input
|
|
314
|
+
}], valid: [{
|
|
315
|
+
type: Input
|
|
316
|
+
}], invalid: [{
|
|
317
|
+
type: Input
|
|
318
|
+
}], value: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}], valueChange: [{
|
|
321
|
+
type: Output
|
|
243
322
|
}], togglerRef: [{
|
|
244
323
|
type: ViewChild,
|
|
245
324
|
args: ['togglerRef']
|
|
@@ -262,17 +341,158 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
262
341
|
}]
|
|
263
342
|
}] });
|
|
264
343
|
|
|
344
|
+
class NggDatepickerComponent {
|
|
345
|
+
constructor(_cdr) {
|
|
346
|
+
this._cdr = _cdr;
|
|
347
|
+
this.id = randomId();
|
|
348
|
+
this.valueChange = new EventEmitter();
|
|
349
|
+
this._months = months({});
|
|
350
|
+
this.years = years({});
|
|
351
|
+
this.trackByKey = (index, option) => {
|
|
352
|
+
return option.key;
|
|
353
|
+
};
|
|
354
|
+
this.listener = (data, state) => {
|
|
355
|
+
if (this.dp && state) {
|
|
356
|
+
this.dp.state = { ...state };
|
|
357
|
+
}
|
|
358
|
+
this.onTouchedFn && this.onTouchedFn();
|
|
359
|
+
if (data) {
|
|
360
|
+
this.valueChange.emit(data.selectedDate);
|
|
361
|
+
this.onChangeFn && this.onChangeFn(data.selectedDate);
|
|
362
|
+
this.data = data;
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
get months() {
|
|
367
|
+
return this._months;
|
|
368
|
+
}
|
|
369
|
+
set months(value) {
|
|
370
|
+
this._months = value;
|
|
371
|
+
}
|
|
372
|
+
get options() {
|
|
373
|
+
return this._options;
|
|
374
|
+
}
|
|
375
|
+
set options(value) {
|
|
376
|
+
this._options = value;
|
|
377
|
+
if (value.locale) {
|
|
378
|
+
this.months = months({ locale: this.options?.locale });
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
get value() {
|
|
382
|
+
return this._value;
|
|
383
|
+
}
|
|
384
|
+
set value(newValue) {
|
|
385
|
+
if (newValue !== this._value) {
|
|
386
|
+
this._value = newValue;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
writeValue(value) {
|
|
390
|
+
this.value = value;
|
|
391
|
+
// When binding using ngModel we need to set initial select date
|
|
392
|
+
// once we get initial value as it's not available when component is created
|
|
393
|
+
if (value && this.dp && !this.data?.selectedDate) {
|
|
394
|
+
this.dp.select(value);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
registerOnChange(fn) {
|
|
398
|
+
this.onChangeFn = fn;
|
|
399
|
+
}
|
|
400
|
+
registerOnTouched(fn) {
|
|
401
|
+
this.onTouchedFn = fn;
|
|
402
|
+
}
|
|
403
|
+
get data() {
|
|
404
|
+
return this._data;
|
|
405
|
+
}
|
|
406
|
+
set data(value) {
|
|
407
|
+
this._data = value;
|
|
408
|
+
}
|
|
409
|
+
trackWeek(index, week) {
|
|
410
|
+
return week;
|
|
411
|
+
}
|
|
412
|
+
ngAfterViewInit() {
|
|
413
|
+
// initialize datepicker
|
|
414
|
+
if (this.datepickerElRef &&
|
|
415
|
+
this.datepickerDialogElRef &&
|
|
416
|
+
this.dateInputElRef &&
|
|
417
|
+
!this.dp) {
|
|
418
|
+
this.dp = createDatepicker(this.listener, {
|
|
419
|
+
...this.options,
|
|
420
|
+
selectedDate: this.value,
|
|
421
|
+
}, this.datepickerElRef.nativeElement, this.datepickerDialogElRef.nativeElement, this.dateInputElRef.nativeElement);
|
|
422
|
+
this._cdr.detectChanges();
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
throw 'Missing one or more elements...';
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
NggDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggDatepickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
430
|
+
NggDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: NggDatepickerComponent, selector: "ngg-datepicker", inputs: { options: "options", value: "value", id: "id", label: "label", valid: "valid", invalid: "invalid" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
431
|
+
{
|
|
432
|
+
provide: NG_VALUE_ACCESSOR,
|
|
433
|
+
useExisting: NggDatepickerComponent,
|
|
434
|
+
multi: true,
|
|
435
|
+
},
|
|
436
|
+
], viewQueries: [{ propertyName: "datepickerDialogElRef", first: true, predicate: ["datepickerDialogElRef"], descendants: true }, { propertyName: "dateInputElRef", first: true, predicate: ["dateInputElRef"], descendants: true }, { propertyName: "datepickerElRef", first: true, predicate: ["datepickerElRef"], descendants: true }], ngImport: i0, template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\">{{ label }}</label>\n <div\n class=\"group\"\n #datepickerElRef\n [class.is-valid]=\"valid\"\n [class.is-invalid]=\"invalid\"\n >\n <input\n [attr.id]=\"id\"\n [attr.aria-describedby]=\"\n formInfo?.innerText && formInfo.innerText.length > 0\n ? id + '_info'\n : null\n \"\n type=\"text\"\n placeholder=\"yyyy-mm-dd\"\n #dateInputElRef\n [value]=\"data?.formattedSelectedDate || ''\"\n (change)=\"dp?.select(dateInputElRef.value)\"\n />\n <button\n #datepickerTriggerElRef\n (click)=\"dp?.toggle()\"\n type=\"button\"\n class=\"primary\"\n >\n <i class=\"sg-icon sg-icon-calendar\">Select date</i>\n </button>\n </div>\n <span class=\"form-info\" #formInfo [attr.id]=\"id + '_info'\"\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n</div>\n<!-- TODO: get or set attributes from within datepicker instance (dp) -->\n<div\n #datepickerDialogElRef\n class=\"sg-date\"\n [class.active]=\"dp?.state?.isActive\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose Date\"\n>\n <header>\n <button type=\"button\" class=\"link\" (click)=\"dp?.sub(1, 'months')\">\n <i class=\"sg-icon sg-icon-previous\">Previous month</i>\n </button>\n <ngg-dropdown\n [options]=\"months\"\n text=\"Select\"\n [value]=\"data?.month\"\n (valueChange)=\"dp?.setMonth($event)\"\n ></ngg-dropdown>\n <ngg-dropdown\n [options]=\"years\"\n text=\"Select\"\n [value]=\"data?.year\"\n (valueChange)=\"dp?.setYear($event)\"\n ></ngg-dropdown>\n <button type=\"button\" class=\"link\" (click)=\"dp?.add(1, 'months')\">\n <i class=\"sg-icon sg-icon-next\">Next month</i>\n </button>\n </header>\n <main>\n <table role=\"grid\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let header of data?.calendar?.headers\"\n [abbr]=\"header.abbr\"\n [class.sg-week-header]=\"header.type === 'week'\"\n [class.sg-day-header]=\"header.type === 'day'\"\n >\n {{ header.displayText }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let week of data?.calendar?.calendarGrid;\n trackBy: trackWeek;\n let i = index\n \"\n >\n <th\n *ngIf=\"data?.calendar?.weekNumbers as weekNumbers\"\n class=\"sg-week-number\"\n >\n {{ weekNumbers[i] }}\n </th>\n <td\n *ngFor=\"let day of week\"\n [attr.data-date]=\"day.formattedDate\"\n [attr.role]=\"day.selected ? 'gridcell' : null\"\n [attr.aria-selected]=\"day.selected ? true : null\"\n [class.disabled]=\"!day.currentMonth\"\n [class.sg-date-today]=\"day.today\"\n [title]=\"day.today ? 'Today' : ''\"\n tabindex=\"-1\"\n (click)=\"day.currentMonth && dp?.select(day.date)\"\n >\n {{ day.day }}\n </td>\n </tr>\n </tbody>\n </table>\n </main>\n</div>\n", components: [{ type: NggDropdownComponent, selector: "ngg-dropdown", inputs: ["id", "text", "loop", "label", "options", "valid", "invalid", "value"], outputs: ["valueChange"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
437
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggDatepickerComponent, decorators: [{
|
|
438
|
+
type: Component,
|
|
439
|
+
args: [{ selector: 'ngg-datepicker', providers: [
|
|
440
|
+
{
|
|
441
|
+
provide: NG_VALUE_ACCESSOR,
|
|
442
|
+
useExisting: NggDatepickerComponent,
|
|
443
|
+
multi: true,
|
|
444
|
+
},
|
|
445
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\">{{ label }}</label>\n <div\n class=\"group\"\n #datepickerElRef\n [class.is-valid]=\"valid\"\n [class.is-invalid]=\"invalid\"\n >\n <input\n [attr.id]=\"id\"\n [attr.aria-describedby]=\"\n formInfo?.innerText && formInfo.innerText.length > 0\n ? id + '_info'\n : null\n \"\n type=\"text\"\n placeholder=\"yyyy-mm-dd\"\n #dateInputElRef\n [value]=\"data?.formattedSelectedDate || ''\"\n (change)=\"dp?.select(dateInputElRef.value)\"\n />\n <button\n #datepickerTriggerElRef\n (click)=\"dp?.toggle()\"\n type=\"button\"\n class=\"primary\"\n >\n <i class=\"sg-icon sg-icon-calendar\">Select date</i>\n </button>\n </div>\n <span class=\"form-info\" #formInfo [attr.id]=\"id + '_info'\"\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n</div>\n<!-- TODO: get or set attributes from within datepicker instance (dp) -->\n<div\n #datepickerDialogElRef\n class=\"sg-date\"\n [class.active]=\"dp?.state?.isActive\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose Date\"\n>\n <header>\n <button type=\"button\" class=\"link\" (click)=\"dp?.sub(1, 'months')\">\n <i class=\"sg-icon sg-icon-previous\">Previous month</i>\n </button>\n <ngg-dropdown\n [options]=\"months\"\n text=\"Select\"\n [value]=\"data?.month\"\n (valueChange)=\"dp?.setMonth($event)\"\n ></ngg-dropdown>\n <ngg-dropdown\n [options]=\"years\"\n text=\"Select\"\n [value]=\"data?.year\"\n (valueChange)=\"dp?.setYear($event)\"\n ></ngg-dropdown>\n <button type=\"button\" class=\"link\" (click)=\"dp?.add(1, 'months')\">\n <i class=\"sg-icon sg-icon-next\">Next month</i>\n </button>\n </header>\n <main>\n <table role=\"grid\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let header of data?.calendar?.headers\"\n [abbr]=\"header.abbr\"\n [class.sg-week-header]=\"header.type === 'week'\"\n [class.sg-day-header]=\"header.type === 'day'\"\n >\n {{ header.displayText }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let week of data?.calendar?.calendarGrid;\n trackBy: trackWeek;\n let i = index\n \"\n >\n <th\n *ngIf=\"data?.calendar?.weekNumbers as weekNumbers\"\n class=\"sg-week-number\"\n >\n {{ weekNumbers[i] }}\n </th>\n <td\n *ngFor=\"let day of week\"\n [attr.data-date]=\"day.formattedDate\"\n [attr.role]=\"day.selected ? 'gridcell' : null\"\n [attr.aria-selected]=\"day.selected ? true : null\"\n [class.disabled]=\"!day.currentMonth\"\n [class.sg-date-today]=\"day.today\"\n [title]=\"day.today ? 'Today' : ''\"\n tabindex=\"-1\"\n (click)=\"day.currentMonth && dp?.select(day.date)\"\n >\n {{ day.day }}\n </td>\n </tr>\n </tbody>\n </table>\n </main>\n</div>\n" }]
|
|
446
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { options: [{
|
|
447
|
+
type: Input
|
|
448
|
+
}], value: [{
|
|
449
|
+
type: Input
|
|
450
|
+
}], id: [{
|
|
451
|
+
type: Input
|
|
452
|
+
}], label: [{
|
|
453
|
+
type: Input
|
|
454
|
+
}], valid: [{
|
|
455
|
+
type: Input
|
|
456
|
+
}], invalid: [{
|
|
457
|
+
type: Input
|
|
458
|
+
}], valueChange: [{
|
|
459
|
+
type: Output
|
|
460
|
+
}], datepickerDialogElRef: [{
|
|
461
|
+
type: ViewChild,
|
|
462
|
+
args: ['datepickerDialogElRef']
|
|
463
|
+
}], dateInputElRef: [{
|
|
464
|
+
type: ViewChild,
|
|
465
|
+
args: ['dateInputElRef']
|
|
466
|
+
}], datepickerElRef: [{
|
|
467
|
+
type: ViewChild,
|
|
468
|
+
args: ['datepickerElRef']
|
|
469
|
+
}] } });
|
|
470
|
+
|
|
471
|
+
class NggDatepickerModule {
|
|
472
|
+
}
|
|
473
|
+
NggDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
474
|
+
NggDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggDatepickerModule, declarations: [NggDatepickerComponent], imports: [CommonModule, NggDropdownModule], exports: [NggDatepickerComponent] });
|
|
475
|
+
NggDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggDatepickerModule, imports: [[CommonModule, NggDropdownModule]] });
|
|
476
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggDatepickerModule, decorators: [{
|
|
477
|
+
type: NgModule,
|
|
478
|
+
args: [{
|
|
479
|
+
declarations: [NggDatepickerComponent],
|
|
480
|
+
imports: [CommonModule, NggDropdownModule],
|
|
481
|
+
exports: [NggDatepickerComponent],
|
|
482
|
+
}]
|
|
483
|
+
}] });
|
|
484
|
+
|
|
265
485
|
class NggModule {
|
|
266
486
|
}
|
|
267
487
|
NggModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
268
|
-
NggModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggModule, imports: [CommonModule], exports: [NggSegmentedControlModule, NggDropdownModule] });
|
|
269
|
-
NggModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggModule, imports: [[CommonModule], NggSegmentedControlModule, NggDropdownModule] });
|
|
488
|
+
NggModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggModule, imports: [CommonModule], exports: [NggSegmentedControlModule, NggDropdownModule, NggDatepickerModule] });
|
|
489
|
+
NggModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggModule, imports: [[CommonModule], NggSegmentedControlModule, NggDropdownModule, NggDatepickerModule] });
|
|
270
490
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NggModule, decorators: [{
|
|
271
491
|
type: NgModule,
|
|
272
492
|
args: [{
|
|
273
493
|
declarations: [],
|
|
274
494
|
imports: [CommonModule],
|
|
275
|
-
exports: [NggSegmentedControlModule, NggDropdownModule],
|
|
495
|
+
exports: [NggSegmentedControlModule, NggDropdownModule, NggDatepickerModule],
|
|
276
496
|
}]
|
|
277
497
|
}] });
|
|
278
498
|
|
|
@@ -280,5 +500,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
280
500
|
* Generated bundle index. Do not edit.
|
|
281
501
|
*/
|
|
282
502
|
|
|
283
|
-
export { NggDropdownComponent, NggDropdownModule, NggModule, NggSegmentedControlComponent, NggSegmentedControlModule };
|
|
503
|
+
export { NggDatepickerComponent, NggDatepickerModule, NggDropdownComponent, NggDropdownModule, NggModule, NggSegmentedControlComponent, NggSegmentedControlModule };
|
|
284
504
|
//# sourceMappingURL=sebgroup-green-angular.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular.mjs","sources":["../../../../libs/angular/src/lib/segmented-control/segmented-control.component.ts","../../../../libs/angular/src/lib/segmented-control/segmented-control.module.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.ts","../../../../libs/angular/src/lib/dropdown/dropdown.module.ts","../../../../libs/angular/src/lib/green-angular.module.ts","../../../../libs/angular/src/sebgroup-green-angular.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Input } from '@angular/core'\nimport { Observable } from 'rxjs'\nexport interface SegmentedControl {\n url: string\n text: Observable<string> | string\n}\n@Component({\n selector: 'ngg-segmented-control',\n template: `\n <div class=\"group\">\n <a\n *ngFor=\"let control of $controls | async\"\n [routerLink]=\"control.url\"\n routerLinkActive=\"active\"\n class=\"button\"\n >{{ control.text }}</a\n >\n </div>\n `,\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSegmentedControlComponent {\n @Input() $controls: Observable<Array<SegmentedControl>> | undefined\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlComponent } from './segmented-control.component'\nimport { RouterModule } from '@angular/router'\n\n@NgModule({\n declarations: [NggSegmentedControlComponent],\n imports: [RouterModule, CommonModule],\n exports: [NggSegmentedControlComponent],\n})\nexport class NggSegmentedControlModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport {\n createDropdown,\n AbstractDropdown,\n DropdownHandler,\n DropdownOption,\n ExtendedDropdownOption,\n ElementProps,\n DropdownArgs,\n} from '@sebgroup/extract'\n\n@Component({\n selector: 'ngg-dropdown',\n template: `\n <div>\n <button\n #togglerRef\n [id]=\"toggler?.attributes?.id\"\n [attr.aria-haspopup]=\"toggler?.attributes?.['aria-haspopup']\"\n [attr.aria-expanded]=\"toggler?.attributes?.['aria-expanded']\"\n [attr.aria-owns]=\"toggler?.attributes?.['aria-owns']\"\n [tabindex]=\"toggler?.attributes?.tabIndex\"\n [style]=\"toggler?.attributes?.style\"\n [class]=\"toggler?.classes\"\n (click)=\"handler?.toggle()\"\n >\n {{ dropdown?.text }}\n </button>\n <div\n #listboxRef\n [id]=\"listbox?.attributes?.id\"\n [attr.role]=\"listbox?.attributes?.role\"\n [attr.aria-activedescendant]=\"\n listbox?.attributes?.['aria-activedescendant']\n \"\n [tabindex]=\"listbox?.attributes?.tabIndex\"\n [style]=\"listbox?.attributes?.style\"\n [class]=\"listbox?.classes\"\n >\n <button\n class=\"close m-4 m-sm-2 d-block d-sm-none\"\n (click)=\"handler?.close()\"\n >\n <span class=\"sr-only\">Close</span>\n </button>\n <ul role=\"listbox\">\n <li\n *ngFor=\"let option of dropdown?.options; trackBy: trackByKey\"\n [id]=\"option.attributes.id\"\n [attr.role]=\"option.attributes.role\"\n [attr.aria-selected]=\"option.attributes['aria-selected']\"\n [style]=\"option.attributes.style\"\n [class]=\"option.classes\"\n (click)=\"select(option)\"\n >\n {{ option.key }}\n </li>\n </ul>\n </div>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDropdownComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDropdownComponent\n implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges\n{\n @Input() id?: string\n @Input() text?: string\n @Input() loop?: boolean\n @Input() options: DropdownOption[] = []\n\n @ViewChild('togglerRef') public togglerRef:\n | ElementRef<HTMLElement>\n | undefined\n\n @ViewChild('listboxRef') public listboxRef:\n | ElementRef<HTMLElement>\n | undefined\n\n value: any = undefined\n onChangeFn?: any\n onTouchedFn?: any\n\n dropdown?: AbstractDropdown\n handler?: DropdownHandler\n toggler?: Partial<ElementProps>\n listbox?: Partial<ElementProps>\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.togglerRef?.nativeElement && this.listboxRef?.nativeElement) {\n this.handler = createDropdown(\n this.props,\n this.togglerRef.nativeElement,\n this.listboxRef.nativeElement,\n (dropdown) => {\n this.dropdown = dropdown\n this.toggler = dropdown.elements.toggler\n this.listbox = dropdown.elements.listbox\n this.cd.detectChanges()\n }\n )\n\n this.selectFromValue(this.value)\n }\n }\n\n ngOnDestroy(): void {\n this.handler?.destroy()\n }\n\n ngOnChanges(): void {\n if (this.handler && this.dropdown) {\n this.handler.update(this.props)\n }\n }\n\n writeValue(obj: any): void {\n this.value = obj\n this.selectFromValue(this.value)\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n\n select(option: ExtendedDropdownOption) {\n this.handler?.select(option)\n this.onChangeFn && this.onChangeFn(option.value)\n this.onTouchedFn && this.onTouchedFn()\n }\n\n trackByKey = (index: number, option: ExtendedDropdownOption): string => {\n return option.key\n }\n\n private get props(): DropdownArgs {\n return {\n id: this.id,\n text: this.text,\n options: this.options,\n loop: this.loop,\n }\n }\n\n private selectFromValue(value: any) {\n if (this.handler && value !== undefined) {\n const option = this.handler.dropdown.options.find(\n (option) => option.value === value\n )\n if (option) this.handler?.select(option)\n }\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDropdownComponent } from './dropdown.component'\n\n@NgModule({\n declarations: [NggDropdownComponent],\n imports: [CommonModule],\n exports: [NggDropdownComponent],\n})\nexport class NggDropdownModule {}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlModule } from './segmented-control/segmented-control.module'\nimport { NggDropdownModule } from './dropdown/dropdown.module'\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [NggSegmentedControlModule, NggDropdownModule],\n})\nexport class NggModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular.mjs","sources":["../../../../libs/angular/src/lib/segmented-control/segmented-control.component.ts","../../../../libs/angular/src/lib/segmented-control/segmented-control.module.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.ts","../../../../libs/angular/src/lib/dropdown/dropdown.module.ts","../../../../libs/angular/src/lib/datepicker/datepicker.component.ts","../../../../libs/angular/src/lib/datepicker/datepicker.component.html","../../../../libs/angular/src/lib/datepicker/datepicker.module.ts","../../../../libs/angular/src/lib/green-angular.module.ts","../../../../libs/angular/src/sebgroup-green-angular.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Input } from '@angular/core'\nimport { Observable } from 'rxjs'\nexport interface SegmentedControl {\n url: string\n text: Observable<string> | string\n}\n@Component({\n selector: 'ngg-segmented-control',\n template: `\n <div class=\"group\">\n <a\n *ngFor=\"let control of $controls | async\"\n [routerLink]=\"control.url\"\n routerLinkActive=\"active\"\n class=\"button\"\n >{{ control.text }}</a\n >\n </div>\n `,\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSegmentedControlComponent {\n @Input() $controls: Observable<Array<SegmentedControl>> | undefined\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlComponent } from './segmented-control.component'\nimport { RouterModule } from '@angular/router'\n\n@NgModule({\n declarations: [NggSegmentedControlComponent],\n imports: [RouterModule, CommonModule],\n exports: [NggSegmentedControlComponent],\n})\nexport class NggSegmentedControlModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n EventEmitter,\n SimpleChanges,\n} from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport {\n createDropdown,\n AbstractDropdown,\n DropdownHandler,\n DropdownOption,\n ExtendedDropdownOption,\n ElementProps,\n DropdownArgs,\n dropdownValues,\n} from '@sebgroup/extract'\n\n@Component({\n selector: 'ngg-dropdown',\n template: `\n <div>\n <span\n class=\"label\"\n *ngIf=\"label\"\n [id]=\"toggler?.attributes?.id + '_label'\"\n >{{ label }}</span\n >\n <button\n [attr.aria-labelledby]=\"\n label ? toggler?.attributes?.id + '_label' : null\n \"\n [attr.aria-describedby]=\"\n formInfo?.innerText && formInfo.innerText.length > 0\n ? toggler?.attributes?.id + '_info'\n : null\n \"\n type=\"button\"\n #togglerRef\n [id]=\"toggler?.attributes?.id\"\n [attr.aria-haspopup]=\"toggler?.attributes?.['aria-haspopup']\"\n [attr.aria-expanded]=\"toggler?.attributes?.['aria-expanded']\"\n [attr.aria-owns]=\"toggler?.attributes?.['aria-owns']\"\n [tabindex]=\"toggler?.attributes?.tabIndex\"\n [style]=\"toggler?.attributes?.style\"\n [class]=\"toggler?.classes\"\n (click)=\"handler?.toggle()\"\n [class.is-valid]=\"valid\"\n [class.is-invalid]=\"invalid\"\n >\n <span>{{ dropdown?.text }}</span>\n </button>\n <span\n class=\"form-info\"\n #formInfo\n [attr.id]=\"toggler?.attributes?.id + '_info'\"\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n <div\n #listboxRef\n [id]=\"listbox?.attributes?.id\"\n [attr.role]=\"listbox?.attributes?.role\"\n [attr.aria-activedescendant]=\"\n listbox?.attributes?.['aria-activedescendant']\n \"\n [tabindex]=\"listbox?.attributes?.tabIndex\"\n [style]=\"listbox?.attributes?.style\"\n [class]=\"listbox?.classes\"\n >\n <button\n type=\"button\"\n class=\"close m-4 m-sm-2 d-block d-sm-none\"\n (click)=\"handler?.close()\"\n >\n <span class=\"sr-only\">Close</span>\n </button>\n <ul role=\"listbox\">\n <li\n *ngFor=\"let option of dropdown?.options; trackBy: trackByKey\"\n [id]=\"option.attributes.id\"\n [attr.role]=\"option.attributes.role\"\n [attr.aria-selected]=\"option.attributes['aria-selected']\"\n [style]=\"option.attributes.style\"\n [class]=\"option.classes\"\n (click)=\"handler?.select(option)\"\n >\n {{ option.key }}\n </li>\n </ul>\n </div>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDropdownComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDropdownComponent\n implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges\n{\n @Input() id?: string\n @Input() text?: string\n @Input() loop?: boolean = false\n @Input() label?: string\n @Input() options: DropdownOption[] = []\n @Input() valid?: boolean\n @Input() invalid?: boolean\n\n @Input()\n get value(): any {\n return this._value\n }\n set value(newValue: any) {\n this.setSelectionByValue(newValue)\n }\n private _value: any\n\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n\n @ViewChild('togglerRef') public togglerRef:\n | ElementRef<HTMLElement>\n | undefined\n\n @ViewChild('listboxRef') public listboxRef:\n | ElementRef<HTMLElement>\n | undefined\n\n onChangeFn?: (value: any) => void\n onTouchedFn?: any\n\n dropdown?: AbstractDropdown\n handler?: DropdownHandler\n toggler?: Partial<ElementProps> = dropdownValues.elements?.toggler\n listbox?: Partial<ElementProps> = dropdownValues.elements?.listbox\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.togglerRef?.nativeElement && this.listboxRef?.nativeElement) {\n this.handler = createDropdown(\n this.props,\n this.togglerRef.nativeElement,\n this.listboxRef.nativeElement,\n (dropdown) => {\n this.dropdown = dropdown\n this.toggler = dropdown.elements.toggler\n this.listbox = dropdown.elements.listbox\n\n const selected = this.dropdown.options?.find(\n (option) => option.selected\n )\n if (selected && this._value !== selected?.value) {\n setTimeout(() => {\n this._value = selected.value\n this.valueChange.emit(selected.value)\n this.onChangeFn && this.onChangeFn(selected.value)\n this.onTouchedFn && this.onTouchedFn()\n }, 0)\n }\n this.cd.detectChanges()\n }\n )\n }\n }\n\n ngOnDestroy(): void {\n this.handler?.destroy()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n this.handler &&\n (changes.id || changes.text || changes.loop || changes.options)\n ) {\n this.handler.update(this.props)\n }\n }\n\n writeValue(value: any): void {\n this.value = value\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n\n select(option: ExtendedDropdownOption) {\n this.handler?.select(option)\n this._value = option.value\n this.valueChange.emit(option.value)\n this.onChangeFn && this.onChangeFn(option.value)\n this.onTouchedFn && this.onTouchedFn()\n }\n\n trackByKey = (index: number, option: ExtendedDropdownOption): string => {\n return option.key\n }\n\n private get props(): DropdownArgs {\n return {\n id: this.id || this.dropdown?.id,\n text: this.text,\n options: this.options,\n loop: this.loop,\n value: this.value,\n }\n }\n\n private setSelectionByValue(value: any) {\n if (this._value !== value) {\n this._value = value\n\n const selected = this.handler?.dropdown?.options.find(\n (option) => option.value === value\n )\n if (selected) this.handler?.select(selected)\n }\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDropdownComponent } from './dropdown.component'\n\n@NgModule({\n declarations: [NggDropdownComponent],\n imports: [CommonModule],\n exports: [NggDropdownComponent],\n})\nexport class NggDropdownModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n Output,\n ViewChild,\n EventEmitter,\n ChangeDetectorRef,\n} from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport {\n AbstractDropdown,\n DropdownHandler,\n ExtendedDropdownOption,\n ElementProps,\n DatepickerData,\n Datepicker,\n createDatepicker,\n DatepickerState,\n DropdownOption,\n months,\n years,\n randomId,\n DatepickerOptions,\n} from '@sebgroup/extract'\n\n@Component({\n selector: 'ngg-datepicker',\n templateUrl: 'datepicker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDatepickerComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDatepickerComponent\n implements ControlValueAccessor, AfterViewInit\n{\n get months(): Array<DropdownOption> {\n return this._months\n }\n\n set months(value: Array<DropdownOption>) {\n this._months = value\n }\n @Input()\n get options(): DatepickerOptions {\n return <DatepickerOptions>this._options\n }\n set options(value: DatepickerOptions) {\n this._options = value\n if (value.locale) {\n this.months = months({ locale: this.options?.locale })\n }\n }\n @Input()\n get value(): string | Date | undefined {\n return this._value\n }\n set value(newValue: string | Date | undefined) {\n if (newValue !== this._value) {\n this._value = newValue\n }\n }\n @Input() id?: string = randomId()\n @Input() label?: string\n @Input() valid?: boolean\n @Input() invalid?: boolean\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n @ViewChild('datepickerDialogElRef') public datepickerDialogElRef:\n | ElementRef<HTMLElement>\n | undefined\n @ViewChild('dateInputElRef') public dateInputElRef:\n | ElementRef<HTMLInputElement>\n | undefined\n @ViewChild('datepickerElRef') public datepickerElRef:\n | ElementRef<HTMLElement>\n | undefined\n\n onChangeFn?: (value: any) => void\n onTouchedFn?: any\n\n dropdown?: AbstractDropdown\n handler?: DropdownHandler\n toggler?: Partial<ElementProps>\n listbox?: Partial<ElementProps>\n _value: string | Date | undefined\n private _months: Array<DropdownOption> = months({})\n years: Array<DropdownOption> = years({})\n private _options?: DatepickerOptions\n\n dp: Datepicker | undefined\n private _data: DatepickerData | undefined\n\n constructor(private _cdr: ChangeDetectorRef) {}\n\n writeValue(value: any): void {\n this.value = value\n\n // When binding using ngModel we need to set initial select date\n // once we get initial value as it's not available when component is created\n if (value && this.dp && !this.data?.selectedDate) {\n this.dp.select(value)\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n\n trackByKey = (index: number, option: ExtendedDropdownOption): string => {\n return option.key\n }\n\n get data(): DatepickerData | undefined {\n return this._data\n }\n\n set data(value: DatepickerData | undefined) {\n this._data = value\n }\n\n listener = (\n data: DatepickerData | undefined,\n state: DatepickerState | undefined\n ) => {\n if (this.dp && state) {\n this.dp.state = { ...state }\n }\n\n this.onTouchedFn && this.onTouchedFn()\n\n if (data) {\n this.valueChange.emit(data.selectedDate)\n this.onChangeFn && this.onChangeFn(data.selectedDate)\n this.data = data\n }\n }\n trackWeek(index: any, week: any) {\n return week\n }\n\n ngAfterViewInit(): void {\n // initialize datepicker\n if (\n this.datepickerElRef &&\n this.datepickerDialogElRef &&\n this.dateInputElRef &&\n !this.dp\n ) {\n this.dp = createDatepicker(\n this.listener,\n {\n ...this.options,\n selectedDate: this.value,\n },\n this.datepickerElRef.nativeElement,\n this.datepickerDialogElRef.nativeElement,\n this.dateInputElRef.nativeElement\n )\n this._cdr.detectChanges()\n } else {\n throw 'Missing one or more elements...'\n }\n }\n}\n","<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\">{{ label }}</label>\n <div\n class=\"group\"\n #datepickerElRef\n [class.is-valid]=\"valid\"\n [class.is-invalid]=\"invalid\"\n >\n <input\n [attr.id]=\"id\"\n [attr.aria-describedby]=\"\n formInfo?.innerText && formInfo.innerText.length > 0\n ? id + '_info'\n : null\n \"\n type=\"text\"\n placeholder=\"yyyy-mm-dd\"\n #dateInputElRef\n [value]=\"data?.formattedSelectedDate || ''\"\n (change)=\"dp?.select(dateInputElRef.value)\"\n />\n <button\n #datepickerTriggerElRef\n (click)=\"dp?.toggle()\"\n type=\"button\"\n class=\"primary\"\n >\n <i class=\"sg-icon sg-icon-calendar\">Select date</i>\n </button>\n </div>\n <span class=\"form-info\" #formInfo [attr.id]=\"id + '_info'\"\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n</div>\n<!-- TODO: get or set attributes from within datepicker instance (dp) -->\n<div\n #datepickerDialogElRef\n class=\"sg-date\"\n [class.active]=\"dp?.state?.isActive\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Choose Date\"\n>\n <header>\n <button type=\"button\" class=\"link\" (click)=\"dp?.sub(1, 'months')\">\n <i class=\"sg-icon sg-icon-previous\">Previous month</i>\n </button>\n <ngg-dropdown\n [options]=\"months\"\n text=\"Select\"\n [value]=\"data?.month\"\n (valueChange)=\"dp?.setMonth($event)\"\n ></ngg-dropdown>\n <ngg-dropdown\n [options]=\"years\"\n text=\"Select\"\n [value]=\"data?.year\"\n (valueChange)=\"dp?.setYear($event)\"\n ></ngg-dropdown>\n <button type=\"button\" class=\"link\" (click)=\"dp?.add(1, 'months')\">\n <i class=\"sg-icon sg-icon-next\">Next month</i>\n </button>\n </header>\n <main>\n <table role=\"grid\">\n <thead>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let header of data?.calendar?.headers\"\n [abbr]=\"header.abbr\"\n [class.sg-week-header]=\"header.type === 'week'\"\n [class.sg-day-header]=\"header.type === 'day'\"\n >\n {{ header.displayText }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let week of data?.calendar?.calendarGrid;\n trackBy: trackWeek;\n let i = index\n \"\n >\n <th\n *ngIf=\"data?.calendar?.weekNumbers as weekNumbers\"\n class=\"sg-week-number\"\n >\n {{ weekNumbers[i] }}\n </th>\n <td\n *ngFor=\"let day of week\"\n [attr.data-date]=\"day.formattedDate\"\n [attr.role]=\"day.selected ? 'gridcell' : null\"\n [attr.aria-selected]=\"day.selected ? true : null\"\n [class.disabled]=\"!day.currentMonth\"\n [class.sg-date-today]=\"day.today\"\n [title]=\"day.today ? 'Today' : ''\"\n tabindex=\"-1\"\n (click)=\"day.currentMonth && dp?.select(day.date)\"\n >\n {{ day.day }}\n </td>\n </tr>\n </tbody>\n </table>\n </main>\n</div>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDatepickerComponent } from './datepicker.component'\nimport { NggDropdownModule } from '../dropdown/dropdown.module'\n\n@NgModule({\n declarations: [NggDatepickerComponent],\n imports: [CommonModule, NggDropdownModule],\n exports: [NggDatepickerComponent],\n})\nexport class NggDatepickerModule {}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlModule } from './segmented-control/segmented-control.module'\nimport { NggDropdownModule } from './dropdown/dropdown.module'\nimport { NggDatepickerModule } from './datepicker/datepicker.module'\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [NggSegmentedControlModule, NggDropdownModule, NggDatepickerModule],\n})\nexport class NggModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAsBa,4BAA4B;;yHAA5B,4BAA4B;6GAA5B,4BAA4B,iGAd7B;;;;;;;;;;GAUT;2FAIU,4BAA4B;kBAhBxC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uBAAuB;oBACjC,QAAQ,EAAE;;;;;;;;;;GAUT;oBACD,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;8BAEU,SAAS;sBAAjB,KAAK;;;MCbK,yBAAyB;;sHAAzB,yBAAyB;uHAAzB,yBAAyB,iBAJrB,4BAA4B,aACjC,YAAY,EAAE,YAAY,aAC1B,4BAA4B;uHAE3B,yBAAyB,YAH3B,CAAC,YAAY,EAAE,YAAY,CAAC;2FAG1B,yBAAyB;kBALrC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;oBAC5C,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;oBACrC,OAAO,EAAE,CAAC,4BAA4B,CAAC;iBACxC;;;MCoGY,oBAAoB;IAsC/B,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QAjChC,SAAI,GAAa,KAAK,CAAA;QAEtB,YAAO,GAAqB,EAAE,CAAA;QAapB,gBAAW,GAAsB,IAAI,YAAY,EAAO,CAAA;QAe3E,YAAO,GAA2B,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAA;QAClE,YAAO,GAA2B,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAA;QAiElE,eAAU,GAAG,CAAC,KAAa,EAAE,MAA8B;YACzD,OAAO,MAAM,CAAC,GAAG,CAAA;SAClB,CAAA;KAjE4C;IA3B7C,IACI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;KACnB;IACD,IAAI,KAAK,CAAC,QAAa;QACrB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;KACnC;IAuBD,eAAe;QACb,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE;YACpE,IAAI,CAAC,OAAO,GAAG,cAAc,CAC3B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,CAAC,QAAQ;gBACP,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBACxB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAA;gBACxC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAA;gBAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAC1C,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAC5B,CAAA;gBACD,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,KAAK,EAAE;oBAC/C,UAAU,CAAC;wBACT,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAA;wBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;wBACrC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;wBAClD,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;qBACvC,EAAE,CAAC,CAAC,CAAA;iBACN;gBACD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAA;aACxB,CACF,CAAA;SACF;KACF;IAED,WAAW;QACT,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAA;KACxB;IAED,WAAW,CAAC,OAAsB;QAChC,IACE,IAAI,CAAC,OAAO;aACX,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,EAC/D;YACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAChC;KACF;IAED,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;KACnB;IAED,gBAAgB,CAAC,EAAO;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;KACrB;IAED,iBAAiB,CAAC,EAAO;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;KACtB;IAED,MAAM,CAAC,MAA8B;QACnC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;KACvC;IAMD,IAAY,KAAK;QACf,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAA;KACF;IAEO,mBAAmB,CAAC,KAAU;QACpC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CACnD,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CACnC,CAAA;YACD,IAAI,QAAQ;gBAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;SAC7C;KACF;;iHA5HU,oBAAoB;qGAApB,oBAAoB,0NATpB;QACT;YACE,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,oBAAoB;YACjC,KAAK,EAAE,IAAI;SACZ;KACF,oPA9ES;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuET;2FAUU,oBAAoB;kBAnFhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuET;oBACD,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,sBAAsB;4BACjC,KAAK,EAAE,IAAI;yBACZ;qBACF;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;wGAIU,EAAE;sBAAV,KAAK;gBACG,IAAI;sBAAZ,KAAK;gBACG,IAAI;sBAAZ,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,OAAO;sBAAf,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,OAAO;sBAAf,KAAK;gBAGF,KAAK;sBADR,KAAK;gBASa,WAAW;sBAA7B,MAAM;gBAEyB,UAAU;sBAAzC,SAAS;uBAAC,YAAY;gBAIS,UAAU;sBAAzC,SAAS;uBAAC,YAAY;;;MC9HZ,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBAJb,oBAAoB,aACzB,YAAY,aACZ,oBAAoB;+GAEnB,iBAAiB,YAHnB,CAAC,YAAY,CAAC;2FAGZ,iBAAiB;kBAL7B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,oBAAoB,CAAC;iBAChC;;;MCgCY,sBAAsB;IA2DjC,YAAoB,IAAuB;QAAvB,SAAI,GAAJ,IAAI,CAAmB;QA9BlC,OAAE,GAAY,QAAQ,EAAE,CAAA;QAId,gBAAW,GAAsB,IAAI,YAAY,EAAO,CAAA;QAmBnE,YAAO,GAA0B,MAAM,CAAC,EAAE,CAAC,CAAA;QACnD,UAAK,GAA0B,KAAK,CAAC,EAAE,CAAC,CAAA;QA0BxC,eAAU,GAAG,CAAC,KAAa,EAAE,MAA8B;YACzD,OAAO,MAAM,CAAC,GAAG,CAAA;SAClB,CAAA;QAUD,aAAQ,GAAG,CACT,IAAgC,EAChC,KAAkC;YAElC,IAAI,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE;gBACpB,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;aAC7B;YAED,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;YAEtC,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBACxC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBACrD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;aACjB;SACF,CAAA;KA/C8C;IAxD/C,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;IAED,IAAI,MAAM,CAAC,KAA4B;QACrC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;KACrB;IACD,IACI,OAAO;QACT,OAA0B,IAAI,CAAC,QAAQ,CAAA;KACxC;IACD,IAAI,OAAO,CAAC,KAAwB;QAClC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;SACvD;KACF;IACD,IACI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;KACnB;IACD,IAAI,KAAK,CAAC,QAAmC;QAC3C,IAAI,QAAQ,KAAK,IAAI,CAAC,MAAM,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAA;SACvB;KACF;IAiCD,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;;;QAIlB,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE;YAChD,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACtB;KACF;IAED,gBAAgB,CAAC,EAAO;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;KACrB;IAED,iBAAiB,CAAC,EAAO;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;KACtB;IAMD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;KAClB;IAED,IAAI,IAAI,CAAC,KAAiC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;KACnB;IAkBD,SAAS,CAAC,KAAU,EAAE,IAAS;QAC7B,OAAO,IAAI,CAAA;KACZ;IAED,eAAe;;QAEb,IACE,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,qBAAqB;YAC1B,IAAI,CAAC,cAAc;YACnB,CAAC,IAAI,CAAC,EAAE,EACR;YACA,IAAI,CAAC,EAAE,GAAG,gBAAgB,CACxB,IAAI,CAAC,QAAQ,EACb;gBACE,GAAG,IAAI,CAAC,OAAO;gBACf,YAAY,EAAE,IAAI,CAAC,KAAK;aACzB,EACD,IAAI,CAAC,eAAe,CAAC,aAAa,EAClC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EACxC,IAAI,CAAC,cAAc,CAAC,aAAa,CAClC,CAAA;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAA;SAC1B;aAAM;YACL,MAAM,iCAAiC,CAAA;SACxC;KACF;;mHArIU,sBAAsB;uGAAtB,sBAAsB,gMATtB;QACT;YACE,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,sBAAsB;YACnC,KAAK,EAAE,IAAI;SACZ;KACF,kWCrCH,ksGA8GA;2FDtEa,sBAAsB;kBAZlC,SAAS;+BACE,gBAAgB,aAEf;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,wBAAwB;4BACnC,KAAK,EAAE,IAAI;yBACZ;qBACF,mBACgB,uBAAuB,CAAC,MAAM;wGAa3C,OAAO;sBADV,KAAK;gBAWF,KAAK;sBADR,KAAK;gBASG,EAAE;sBAAV,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,OAAO;sBAAf,KAAK;gBACa,WAAW;sBAA7B,MAAM;gBACoC,qBAAqB;sBAA/D,SAAS;uBAAC,uBAAuB;gBAGE,cAAc;sBAAjD,SAAS;uBAAC,gBAAgB;gBAGU,eAAe;sBAAnD,SAAS;uBAAC,iBAAiB;;;MEtEjB,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAJf,sBAAsB,aAC3B,YAAY,EAAE,iBAAiB,aAC/B,sBAAsB;iHAErB,mBAAmB,YAHrB,CAAC,YAAY,EAAE,iBAAiB,CAAC;2FAG/B,mBAAmB;kBAL/B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;oBAC1C,OAAO,EAAE,CAAC,sBAAsB,CAAC;iBAClC;;;MCEY,SAAS;;sGAAT,SAAS;uGAAT,SAAS,YAHV,YAAY,aACZ,yBAAyB,EAAE,iBAAiB,EAAE,mBAAmB;uGAEhE,SAAS,YAHX,CAAC,YAAY,CAAC,EACb,yBAAyB,EAAE,iBAAiB,EAAE,mBAAmB;2FAEhE,SAAS;kBALrB,QAAQ;mBAAC;oBACR,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;iBAC7E;;;ACVD;;;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export * from './lib/green-angular.module';
|
|
2
2
|
export * from './lib/dropdown/dropdown.module';
|
|
3
3
|
export * from './lib/dropdown/dropdown.component';
|
|
4
|
+
export * from './lib/datepicker/datepicker.module';
|
|
5
|
+
export * from './lib/datepicker/datepicker.component';
|
|
4
6
|
export * from './lib/segmented-control/segmented-control.module';
|
|
5
7
|
export * from './lib/segmented-control/segmented-control.component';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, EventEmitter, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { AbstractDropdown, DropdownHandler, ExtendedDropdownOption, ElementProps, DatepickerData, Datepicker, DatepickerState, DropdownOption, DatepickerOptions } from '@sebgroup/extract';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class NggDatepickerComponent implements ControlValueAccessor, AfterViewInit {
|
|
6
|
+
private _cdr;
|
|
7
|
+
get months(): Array<DropdownOption>;
|
|
8
|
+
set months(value: Array<DropdownOption>);
|
|
9
|
+
get options(): DatepickerOptions;
|
|
10
|
+
set options(value: DatepickerOptions);
|
|
11
|
+
get value(): string | Date | undefined;
|
|
12
|
+
set value(newValue: string | Date | undefined);
|
|
13
|
+
id?: string;
|
|
14
|
+
label?: string;
|
|
15
|
+
valid?: boolean;
|
|
16
|
+
invalid?: boolean;
|
|
17
|
+
readonly valueChange: EventEmitter<any>;
|
|
18
|
+
datepickerDialogElRef: ElementRef<HTMLElement> | undefined;
|
|
19
|
+
dateInputElRef: ElementRef<HTMLInputElement> | undefined;
|
|
20
|
+
datepickerElRef: ElementRef<HTMLElement> | undefined;
|
|
21
|
+
onChangeFn?: (value: any) => void;
|
|
22
|
+
onTouchedFn?: any;
|
|
23
|
+
dropdown?: AbstractDropdown;
|
|
24
|
+
handler?: DropdownHandler;
|
|
25
|
+
toggler?: Partial<ElementProps>;
|
|
26
|
+
listbox?: Partial<ElementProps>;
|
|
27
|
+
_value: string | Date | undefined;
|
|
28
|
+
private _months;
|
|
29
|
+
years: Array<DropdownOption>;
|
|
30
|
+
private _options?;
|
|
31
|
+
dp: Datepicker | undefined;
|
|
32
|
+
private _data;
|
|
33
|
+
constructor(_cdr: ChangeDetectorRef);
|
|
34
|
+
writeValue(value: any): void;
|
|
35
|
+
registerOnChange(fn: any): void;
|
|
36
|
+
registerOnTouched(fn: any): void;
|
|
37
|
+
trackByKey: (index: number, option: ExtendedDropdownOption) => string;
|
|
38
|
+
get data(): DatepickerData | undefined;
|
|
39
|
+
set data(value: DatepickerData | undefined);
|
|
40
|
+
listener: (data: DatepickerData | undefined, state: DatepickerState | undefined) => void;
|
|
41
|
+
trackWeek(index: any, week: any): any;
|
|
42
|
+
ngAfterViewInit(): void;
|
|
43
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NggDatepickerComponent, never>;
|
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NggDatepickerComponent, "ngg-datepicker", never, { "options": "options"; "value": "value"; "id": "id"; "label": "label"; "valid": "valid"; "invalid": "invalid"; }, { "valueChange": "valueChange"; }, never, ["[data-form-info]"]>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./datepicker.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "../dropdown/dropdown.module";
|
|
5
|
+
export declare class NggDatepickerModule {
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NggDatepickerModule, never>;
|
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NggDatepickerModule, [typeof i1.NggDatepickerComponent], [typeof i2.CommonModule, typeof i3.NggDropdownModule], [typeof i1.NggDatepickerComponent]>;
|
|
8
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NggDatepickerModule>;
|
|
9
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, EventEmitter, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
3
|
import { AbstractDropdown, DropdownHandler, DropdownOption, ExtendedDropdownOption, ElementProps } from '@sebgroup/extract';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -7,11 +7,17 @@ export declare class NggDropdownComponent implements ControlValueAccessor, After
|
|
|
7
7
|
id?: string;
|
|
8
8
|
text?: string;
|
|
9
9
|
loop?: boolean;
|
|
10
|
+
label?: string;
|
|
10
11
|
options: DropdownOption[];
|
|
12
|
+
valid?: boolean;
|
|
13
|
+
invalid?: boolean;
|
|
14
|
+
get value(): any;
|
|
15
|
+
set value(newValue: any);
|
|
16
|
+
private _value;
|
|
17
|
+
readonly valueChange: EventEmitter<any>;
|
|
11
18
|
togglerRef: ElementRef<HTMLElement> | undefined;
|
|
12
19
|
listboxRef: ElementRef<HTMLElement> | undefined;
|
|
13
|
-
value: any;
|
|
14
|
-
onChangeFn?: any;
|
|
20
|
+
onChangeFn?: (value: any) => void;
|
|
15
21
|
onTouchedFn?: any;
|
|
16
22
|
dropdown?: AbstractDropdown;
|
|
17
23
|
handler?: DropdownHandler;
|
|
@@ -20,14 +26,14 @@ export declare class NggDropdownComponent implements ControlValueAccessor, After
|
|
|
20
26
|
constructor(cd: ChangeDetectorRef);
|
|
21
27
|
ngAfterViewInit(): void;
|
|
22
28
|
ngOnDestroy(): void;
|
|
23
|
-
ngOnChanges(): void;
|
|
24
|
-
writeValue(
|
|
29
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
30
|
+
writeValue(value: any): void;
|
|
25
31
|
registerOnChange(fn: any): void;
|
|
26
32
|
registerOnTouched(fn: any): void;
|
|
27
33
|
select(option: ExtendedDropdownOption): void;
|
|
28
34
|
trackByKey: (index: number, option: ExtendedDropdownOption) => string;
|
|
29
35
|
private get props();
|
|
30
|
-
private
|
|
36
|
+
private setSelectionByValue;
|
|
31
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<NggDropdownComponent, never>;
|
|
32
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NggDropdownComponent, "ngg-dropdown", never, { "id": "id"; "text": "text"; "loop": "loop"; "options": "options"; }, {}, never,
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NggDropdownComponent, "ngg-dropdown", never, { "id": "id"; "text": "text"; "loop": "loop"; "label": "label"; "options": "options"; "valid": "valid"; "invalid": "invalid"; "value": "value"; }, { "valueChange": "valueChange"; }, never, ["[data-form-info]"]>;
|
|
33
39
|
}
|