@klippa/ngx-enhancy-forms 2.3.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/klippa-ngx-enhancy-forms.umd.js +960 -469
- package/bundles/klippa-ngx-enhancy-forms.umd.js.map +1 -1
- package/bundles/klippa-ngx-enhancy-forms.umd.min.js +3 -2
- package/bundles/klippa-ngx-enhancy-forms.umd.min.js.map +1 -1
- package/esm2015/lib/elements/date-picker/date-picker.component.js +92 -0
- package/esm2015/lib/elements/date-time-picker/date-time-picker.component.js +311 -0
- package/esm2015/lib/elements/email/email-input.component.js +2 -2
- package/esm2015/lib/elements/password-field/password-field.component.js +6 -4
- package/esm2015/lib/elements/select/select-footer/select-footer.component.js +15 -0
- package/esm2015/lib/elements/select/select.component.js +30 -9
- package/esm2015/lib/elements/sortable-items/sortable-items.component.js +46 -4
- package/esm2015/lib/elements/text-input/text-input.component.js +7 -4
- package/esm2015/lib/elements/value-accessor-base/multiple-value-accessor-base.component.js +63 -0
- package/esm2015/lib/elements/value-accessor-base/value-accessor-base.component.js +3 -3
- package/esm2015/lib/form/form-element/form-element.component.js +13 -15
- package/esm2015/lib/form/form.component.js +64 -18
- package/esm2015/lib/ngx-enhancy-forms.module.js +36 -25
- package/esm2015/lib/util/values.js +8 -17
- package/esm2015/public-api.js +5 -2
- package/fesm2015/klippa-ngx-enhancy-forms.js +556 -90
- package/fesm2015/klippa-ngx-enhancy-forms.js.map +1 -1
- package/klippa-ngx-enhancy-forms.metadata.json +1 -1
- package/lib/elements/date-picker/date-picker.component.d.ts +23 -0
- package/lib/elements/date-time-picker/date-time-picker.component.d.ts +59 -0
- package/lib/elements/email/email-input.component.d.ts +1 -1
- package/lib/elements/password-field/password-field.component.d.ts +2 -1
- package/lib/elements/select/select-footer/select-footer.component.d.ts +4 -0
- package/lib/elements/select/select.component.d.ts +12 -4
- package/lib/elements/sortable-items/sortable-items.component.d.ts +12 -2
- package/lib/elements/text-input/text-input.component.d.ts +2 -0
- package/lib/elements/value-accessor-base/multiple-value-accessor-base.component.d.ts +11 -0
- package/lib/elements/value-accessor-base/value-accessor-base.component.d.ts +2 -1
- package/lib/form/form-element/form-element.component.d.ts +5 -5
- package/lib/form/form.component.d.ts +11 -7
- package/lib/util/values.d.ts +2 -4
- package/package.json +1 -1
- package/public-api.d.ts +4 -1
- package/esm2015/lib/elements/datepicker/datepicker.component.js +0 -111
- package/lib/elements/datepicker/datepicker.component.d.ts +0 -26
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, InjectionToken, TemplateRef } from '@angular/core';
|
|
2
2
|
import { ControlContainer } from '@angular/forms';
|
|
3
|
-
import { ValueAccessorBase } from
|
|
4
|
-
import { FormElementComponent } from
|
|
3
|
+
import { ValueAccessorBase } from '../value-accessor-base/value-accessor-base.component';
|
|
4
|
+
import { FormElementComponent } from '../../form/form-element/form-element.component';
|
|
5
5
|
export declare type AppSelectOptions = Array<{
|
|
6
6
|
id: any;
|
|
7
7
|
name: string;
|
|
8
8
|
description?: string;
|
|
9
9
|
disabled?: boolean;
|
|
10
10
|
}>;
|
|
11
|
+
export declare const SELECT_TRANSLATIONS: InjectionToken<any>;
|
|
11
12
|
export declare class SelectComponent extends ValueAccessorBase<string | string[]> {
|
|
12
13
|
protected parent: FormElementComponent;
|
|
13
14
|
protected controlContainer: ControlContainer;
|
|
15
|
+
private translations;
|
|
14
16
|
placeholder: string;
|
|
15
17
|
options: AppSelectOptions;
|
|
16
18
|
multiple: boolean;
|
|
19
|
+
multipleDisplayedAsAmount: boolean;
|
|
17
20
|
clearable: boolean;
|
|
18
21
|
dropdownPosition: string;
|
|
19
22
|
customSearchFn: (term: string, item: {
|
|
@@ -21,6 +24,11 @@ export declare class SelectComponent extends ValueAccessorBase<string | string[]
|
|
|
21
24
|
name: string;
|
|
22
25
|
description: string;
|
|
23
26
|
}) => boolean;
|
|
27
|
+
footerElement: TemplateRef<any>;
|
|
24
28
|
onSearch: EventEmitter<string>;
|
|
25
|
-
|
|
29
|
+
currentQueryString: string;
|
|
30
|
+
constructor(parent: FormElementComponent, controlContainer: ControlContainer, translations: any);
|
|
31
|
+
onTextInput(value: string): void;
|
|
32
|
+
getDefaultTranslation(key: string): (x: any) => string;
|
|
33
|
+
getTranslation(key: string, params?: any): string;
|
|
26
34
|
}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { Options } from 'sortablejs';
|
|
3
|
+
import { ValueAccessorBase } from '../value-accessor-base/value-accessor-base.component';
|
|
4
|
+
export declare class SortableItemsComponent extends ValueAccessorBase<Array<any>> implements OnInit {
|
|
3
5
|
template: any;
|
|
4
6
|
sortableItemSize: 'sm' | 'lg';
|
|
7
|
+
useCustomScroll: boolean;
|
|
8
|
+
sortablejsOptions: Options;
|
|
9
|
+
private scrollInterval;
|
|
10
|
+
ngOnInit(): void;
|
|
5
11
|
itemsOrderChanged: () => void;
|
|
12
|
+
onItemDrag: (data: any) => void;
|
|
13
|
+
onEnd: () => void;
|
|
14
|
+
private scrollPage;
|
|
15
|
+
private stopScrolling;
|
|
6
16
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ControlContainer } from '@angular/forms';
|
|
2
|
+
import { ValueAccessorBase } from './value-accessor-base.component';
|
|
3
|
+
import { FormElementComponent } from '../../form/form-element/form-element.component';
|
|
4
|
+
export declare class MultipleValueAccessorBase<T> extends ValueAccessorBase<Array<T> | T> {
|
|
5
|
+
protected parent: FormElementComponent;
|
|
6
|
+
protected controlContainer: ControlContainer;
|
|
7
|
+
multiple: boolean;
|
|
8
|
+
constructor(parent: FormElementComponent, controlContainer: ControlContainer);
|
|
9
|
+
writeValue(value: Array<T> | T): void;
|
|
10
|
+
setInnerValueAndNotify(value: T | Array<T>): void;
|
|
11
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ControlContainer, ControlValueAccessor, FormControl } from '@angular/forms';
|
|
2
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
3
|
import { FormElementComponent } from '../../form/form-element/form-element.component';
|
|
3
4
|
/**
|
|
4
5
|
* This component is a base in order to create a component that supports ngModel.
|
|
@@ -9,7 +10,7 @@ import { FormElementComponent } from '../../form/form-element/form-element.compo
|
|
|
9
10
|
* setInnerValueAndNotify() = call this when you want your ngModel to be updated from INSIDE of your component, and provide it to the OUTSIDE.
|
|
10
11
|
* ngOnInit() = Used to support the angular reactive forms framework. If you use ngOnInit in your own component (which happens fairly often) you must not forget to call the super.ngOnInit() method.
|
|
11
12
|
*/
|
|
12
|
-
export declare class ValueAccessorBase<T> implements ControlValueAccessor {
|
|
13
|
+
export declare class ValueAccessorBase<T> implements ControlValueAccessor, OnInit, OnDestroy {
|
|
13
14
|
protected parent: FormElementComponent;
|
|
14
15
|
protected controlContainer: ControlContainer;
|
|
15
16
|
innerValue: T;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ElementRef, InjectionToken } from '@angular/core';
|
|
2
2
|
import { AbstractControl, FormControl } from '@angular/forms';
|
|
3
|
-
import { FormComponent } from
|
|
4
|
-
import { CustomErrorMessages, FormErrorMessages } from
|
|
3
|
+
import { FormComponent } from '../form.component';
|
|
4
|
+
import { CustomErrorMessages, FormErrorMessages } from '../../types';
|
|
5
5
|
export declare const FORM_ERROR_MESSAGES: InjectionToken<Record<"max" | "required" | "pattern" | "min" | "email" | "minLength" | "maxLength" | "matchPassword" | "date", () => string>>;
|
|
6
6
|
export declare const DEFAULT_ERROR_MESSAGES: FormErrorMessages;
|
|
7
7
|
export declare class FormElementComponent {
|
|
8
8
|
private parent;
|
|
9
9
|
private customMessages;
|
|
10
10
|
attachedControl: AbstractControl;
|
|
11
|
-
caption:
|
|
11
|
+
caption: string;
|
|
12
12
|
direction: 'horizontal' | 'vertical';
|
|
13
13
|
captionSpacing: 'percentages' | 'none';
|
|
14
14
|
swapInputAndCaption: boolean;
|
|
@@ -29,10 +29,10 @@ export declare class FormElementComponent {
|
|
|
29
29
|
getErrorToShow(): string;
|
|
30
30
|
getCustomErrorHandler(error: string): {
|
|
31
31
|
error: string;
|
|
32
|
-
templateRef: ElementRef
|
|
32
|
+
templateRef: ElementRef;
|
|
33
33
|
};
|
|
34
34
|
showDefaultError(error: string): boolean;
|
|
35
35
|
getScrollableParent(node: any): any;
|
|
36
36
|
scrollTo(): void;
|
|
37
|
-
|
|
37
|
+
getErrorMessage(key: keyof FormErrorMessages): string;
|
|
38
38
|
}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { FormControl, FormGroup
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
|
3
3
|
import { FormElementComponent } from './form-element/form-element.component';
|
|
4
4
|
export declare const invalidFieldsSymbol: unique symbol;
|
|
5
|
-
export declare class
|
|
6
|
-
|
|
5
|
+
export declare class SubFormDirective {
|
|
6
|
+
injectInto: FormArray | FormGroup;
|
|
7
|
+
at: number | string;
|
|
7
8
|
}
|
|
8
|
-
export declare class FormComponent implements OnInit {
|
|
9
|
+
export declare class FormComponent implements OnInit, OnDestroy {
|
|
9
10
|
private parent;
|
|
10
|
-
private
|
|
11
|
+
private subFormPlaceholder;
|
|
11
12
|
formGroup: FormGroup;
|
|
13
|
+
patchValueInterceptor: (values: any) => Promise<any>;
|
|
12
14
|
private activeControls;
|
|
13
|
-
constructor(parent: FormComponent,
|
|
15
|
+
constructor(parent: FormComponent, subFormPlaceholder: SubFormDirective);
|
|
14
16
|
ngOnInit(): void;
|
|
17
|
+
ngOnDestroy(): void;
|
|
18
|
+
private addSupportForPatchValueInterceptor;
|
|
15
19
|
registerControl(formControl: FormControl, formElement: FormElementComponent): void;
|
|
16
20
|
unregisterControl(formControl: FormControl): void;
|
|
17
21
|
private addFormGroupControls;
|
package/lib/util/values.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
export declare function
|
|
1
|
+
export declare function stringIsSetAndFilled(s: string): boolean;
|
|
2
2
|
export declare function isNullOrUndefined(value: any): boolean;
|
|
3
3
|
export declare function numberIsSet(value: any): boolean;
|
|
4
4
|
export declare function isValueSet(value: any): boolean;
|
|
5
|
+
export declare function removeDuplicatesFromArray(array: Array<any>): any[];
|
|
5
6
|
export declare function stringOrArrayIsSetAndEmpty(value: any[] | string): boolean;
|
|
6
|
-
export declare function useIfStringIsSet(s: string): string;
|
|
7
|
-
export declare function useIfArrayIsSetWithOneItem(a: Array<any>): any;
|
|
8
|
-
export declare function convertParentToChild<C>(originalClass: any, newClass: C): C;
|
|
9
7
|
export declare function truncateString(s: string, length: number): string;
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
export * from './lib/ngx-enhancy-forms.module';
|
|
2
2
|
export * from './lib/elements/button/button.component';
|
|
3
3
|
export * from './lib/elements/checkbox/checkbox.component';
|
|
4
|
-
export * from './lib/elements/
|
|
4
|
+
export * from './lib/elements/date-picker/date-picker.component';
|
|
5
|
+
export * from './lib/elements/date-time-picker/date-time-picker.component';
|
|
5
6
|
export * from './lib/elements/email/email-input.component';
|
|
6
7
|
export * from './lib/elements/loading-indicator/loading-indicator.component';
|
|
7
8
|
export * from './lib/elements/number-input/number-input.component';
|
|
8
9
|
export * from './lib/elements/password-field/password-field.component';
|
|
10
|
+
export * from './lib/elements/select/select-footer/select-footer.component';
|
|
9
11
|
export * from './lib/elements/select/select.component';
|
|
10
12
|
export * from './lib/elements/sortable-items/sortable-items.component';
|
|
11
13
|
export * from './lib/elements/text-input/text-input.component';
|
|
12
14
|
export * from './lib/elements/toggle/toggle.component';
|
|
13
15
|
export * from './lib/elements/value-accessor-base/value-accessor-base.component';
|
|
16
|
+
export * from './lib/elements/value-accessor-base/multiple-value-accessor-base.component';
|
|
14
17
|
export * from './lib/form/form.component';
|
|
15
18
|
export * from './lib/form/form-caption/form-caption.component';
|
|
16
19
|
export * from './lib/form/form-element/form-element.component';
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { Component, InjectionToken, Input, Optional, ViewChild } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { isNullOrUndefined, stringIsSetAndNotEmpty } from '../../util/values';
|
|
4
|
-
import { invalidDateKey } from '../../validators/dateValidator';
|
|
5
|
-
import { ValueAccessorBase } from "../value-accessor-base/value-accessor-base.component";
|
|
6
|
-
import { MAT_DATE_FORMATS, MAT_NATIVE_DATE_FORMATS } from "@angular/material/core";
|
|
7
|
-
export const KLP_DATE_FORMATS = new InjectionToken('klp.form.date.formats');
|
|
8
|
-
export function matDateFormatsFactory(component, dateFormats) {
|
|
9
|
-
var _a;
|
|
10
|
-
return (_a = dateFormats === null || dateFormats === void 0 ? void 0 : dateFormats(component.format)) !== null && _a !== void 0 ? _a : MAT_NATIVE_DATE_FORMATS;
|
|
11
|
-
}
|
|
12
|
-
export class DatepickerComponent extends ValueAccessorBase {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
this.minDate = undefined;
|
|
16
|
-
this.maxDate = undefined;
|
|
17
|
-
this.placeholder = 'Select date';
|
|
18
|
-
this.clearable = false;
|
|
19
|
-
this.minDateStartOfDay = undefined;
|
|
20
|
-
this.maxDateEndOfDay = undefined;
|
|
21
|
-
}
|
|
22
|
-
ngOnChanges(changes) {
|
|
23
|
-
if (changes.minDate) {
|
|
24
|
-
this.setMinDate(changes.minDate.currentValue);
|
|
25
|
-
}
|
|
26
|
-
if (changes.maxDate) {
|
|
27
|
-
this.setMaxDate(changes.maxDate.currentValue);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
setMinDate(minDate) {
|
|
31
|
-
if (minDate) {
|
|
32
|
-
this.minDateStartOfDay = new Date(minDate);
|
|
33
|
-
this.minDateStartOfDay.setHours(0, 0, 0, 0);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.minDateStartOfDay = undefined;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
setMaxDate(maxDate) {
|
|
40
|
-
if (maxDate) {
|
|
41
|
-
this.maxDateEndOfDay = new Date(maxDate);
|
|
42
|
-
this.maxDateEndOfDay.setHours(23, 59, 59, 999);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.maxDateEndOfDay = undefined;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// dateChanged is called when the output of the datepicker is changed and
|
|
49
|
-
// parsed correctly. If the date is invalid, it will be called the first time
|
|
50
|
-
// with null but never again until a valid input is provided.
|
|
51
|
-
dateChanged(event) {
|
|
52
|
-
const nativeInputValue = this.nativeInputRef.nativeElement.value;
|
|
53
|
-
const date = event.value;
|
|
54
|
-
if (isNullOrUndefined(date) && stringIsSetAndNotEmpty(nativeInputValue)) {
|
|
55
|
-
this.setInnerValueAndNotify(invalidDateKey);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.setInnerValueAndNotify(date);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
writeValue(value) {
|
|
62
|
-
super.writeValue(value);
|
|
63
|
-
this.valueForMaterialDatePicker = value === invalidDateKey ? null : value;
|
|
64
|
-
}
|
|
65
|
-
// nativeValueChanged is called when the internal text value changes, but not
|
|
66
|
-
// when the date is changed via the date picker. We need this so that we can
|
|
67
|
-
// determine if the datepicker is empty or invalid.
|
|
68
|
-
nativeValueChanged(event) {
|
|
69
|
-
const nativeInputValue = event.target.value;
|
|
70
|
-
const date = this.valueForMaterialDatePicker;
|
|
71
|
-
if (this.datePickerRef.opened) {
|
|
72
|
-
// if the user is typing instead of using the picker, close it.
|
|
73
|
-
this.datePickerRef.close();
|
|
74
|
-
}
|
|
75
|
-
if (isNullOrUndefined(date) && stringIsSetAndNotEmpty(nativeInputValue)) {
|
|
76
|
-
this.setInnerValueAndNotify(invalidDateKey);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
this.setInnerValueAndNotify(date);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
resetToNull() {
|
|
83
|
-
this.setInnerValueAndNotify(null);
|
|
84
|
-
this.valueForMaterialDatePicker = null;
|
|
85
|
-
this.nativeInputRef.nativeElement.value = null;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
DatepickerComponent.decorators = [
|
|
89
|
-
{ type: Component, args: [{
|
|
90
|
-
selector: 'klp-form-datepicker',
|
|
91
|
-
template: "<div class=\"componentContainer\" [ngClass]=\"{showErrors: isInErrorState()}\">\n\t<mat-form-field [floatLabel]=\"'never'\">\n\t\t<input\n\t\t\t#nativeInput\n\t\t\tmatInput\n\t\t\t[matDatepicker]=\"picker\"\n\t\t\t[(ngModel)]=\"valueForMaterialDatePicker\"\n\t\t\t(dateInput)=\"dateChanged($event)\"\n\t\t\t(input)=\"nativeValueChanged($event)\"\n\t\t\t[min]=\"minDateStartOfDay\"\n\t\t\t[max]=\"maxDateEndOfDay\"\n\t\t\t[placeholder]=\"placeholder\"\n\t\t\t(click)=\"picker.open()\"\n\t\t\t(blur)=\"touch()\"\n\t\t>\n\t\t<mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n\t\t<mat-datepicker #picker\n\t\t></mat-datepicker>\n\t</mat-form-field>\n\t<button *ngIf=\"clearable\" class=\"clearButton\" (click)=\"resetToNull()\">\u00D7</button>\n</div>\n",
|
|
92
|
-
providers: [
|
|
93
|
-
{ provide: NG_VALUE_ACCESSOR, useExisting: DatepickerComponent, multi: true },
|
|
94
|
-
{ provide: MAT_DATE_FORMATS,
|
|
95
|
-
deps: [DatepickerComponent, [new Optional(), KLP_DATE_FORMATS]],
|
|
96
|
-
useFactory: matDateFormatsFactory,
|
|
97
|
-
}
|
|
98
|
-
],
|
|
99
|
-
styles: [":host{display:block}:host ::ng-deep mat-form-field{display:block;height:100%}:host ::ng-deep mat-form-field.mat-focused .mat-form-field-label,:host ::ng-deep mat-form-field .mat-form-field-label{color:#adadad}:host ::ng-deep .mat-datepicker-toggle-active{color:#666}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:none}:host ::ng-deep .mat-form-field-flex{flex-direction:row-reverse}:host ::ng-deep .mat-form-field-infix{border-top:none}:host ::ng-deep .mat-form-field-suffix{margin-right:.625rem}:host ::ng-deep .mat-form-field-suffix:hover .mat-button-focus-overlay{opacity:.1}:host ::ng-deep .mat-form-field-underline{display:none}.componentContainer{-moz-transition:all .2s ease-in;-ms-transition:all .2s ease-in;-o-transition:all .2s ease-in;-webkit-transition:all .2s ease-in;border:1px solid #e6ecf5;border-radius:2px;box-shadow:none;color:#888da8;display:block;font-size:14px;height:42px;padding:.375rem .625rem;position:relative;transition:all .2s ease-in;width:100%}.componentContainer::-webkit-input-placeholder{color:#adadad}.componentContainer:-moz-placeholder,.componentContainer::-moz-placeholder{color:#adadad}.componentContainer:-ms-input-placeholder{color:#adadad}.componentContainer:focus{border-color:#3ed778;box-shadow:none;outline:0 none}.componentContainer.input-sm{height:30px}.componentContainer.input-lg{height:50px}.componentContainer.error{background-color:#ffeff4;border-color:#ff3c7e}.componentContainer.valid{background-color:#ebfaeb;border-color:#37c936;color:#278d26}.componentContainer.showErrors{border-color:#ff8000}.componentContainer .clearButton{align-items:center;background:none;border:none;bottom:0;color:#7b7b7b;display:flex;font-size:18px;position:absolute;right:1.25rem;top:0}"]
|
|
100
|
-
},] }
|
|
101
|
-
];
|
|
102
|
-
DatepickerComponent.propDecorators = {
|
|
103
|
-
minDate: [{ type: Input }],
|
|
104
|
-
maxDate: [{ type: Input }],
|
|
105
|
-
format: [{ type: Input }],
|
|
106
|
-
placeholder: [{ type: Input }],
|
|
107
|
-
clearable: [{ type: Input }],
|
|
108
|
-
nativeInputRef: [{ type: ViewChild, args: ['nativeInput',] }],
|
|
109
|
-
datePickerRef: [{ type: ViewChild, args: ['picker',] }]
|
|
110
|
-
};
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbmd4LWVuaGFuY3ktZm9ybXMvbmd4LWVuaGFuY3ktZm9ybXMvcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBSVQsY0FBYyxFQUNkLEtBQUssRUFDTCxRQUFRLEVBRVIsU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUMsaUJBQWlCLEVBQWMsc0JBQXNCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFaEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDdkYsT0FBTyxFQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFHakYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWlCLHVCQUF1QixDQUFDLENBQUM7QUFFNUYsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFNBQThCLEVBQUUsV0FBNEI7O0lBQ2pHLGFBQU8sV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFHLFNBQVMsQ0FBQyxNQUFNLG9DQUFLLHVCQUF1QixDQUFDO0FBQ25FLENBQUM7QUFjRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsaUJBQStDO0lBWnhGOztRQWFpQixZQUFPLEdBQVMsU0FBUyxDQUFDO1FBQzFCLFlBQU8sR0FBUyxTQUFTLENBQUM7UUFFMUIsZ0JBQVcsR0FBRyxhQUFhLENBQUM7UUFDNUIsY0FBUyxHQUFH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MEIsR0FBRyxJQUFJLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNoRCxDQUFDOzs7WUFsR0QsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLG14QkFBMEM7Z0JBRTFDLFNBQVMsRUFBRTtvQkFDVixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtvQkFDN0UsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCO3dCQUMxQixJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzt3QkFDL0QsVUFBVSxFQUFFLHFCQUFxQjtxQkFDakM7aUJBQ0Q7O2FBQ0Q7OztzQkFFQyxLQUFLO3NCQUNMLEtBQUs7cUJBQ0wsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7NkJBRUwsU0FBUyxTQUFDLGFBQWE7NEJBQ3ZCLFNBQVMsU0FBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRIb3N0LFxuXHRJbmplY3QsXG5cdEluamVjdGlvblRva2VuLFxuXHRJbnB1dCxcblx0T3B0aW9uYWwsXG5cdFNpbXBsZUNoYW5nZXMsXG5cdFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbENvbnRhaW5lciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWQsIGlzVmFsdWVTZXQsIHN0cmluZ0lzU2V0QW5kTm90RW1wdHl9IGZyb20gJy4uLy4uL3V0aWwvdmFsdWVzJztcbmltcG9ydCB7IGludmFsaWREYXRlS2V5IH0gZnJvbSAnLi4vLi4vdmFsaWRhdG9ycy9kYXRlVmFsaWRhdG9yJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7VmFsdWVBY2Nlc3NvckJhc2V9IGZyb20gXCIuLi92YWx1ZS1hY2Nlc3Nvci1iYXNlL3ZhbHVlLWFjY2Vzc29yLWJhc2UuY29tcG9uZW50XCI7XG5pbXBvcnQge01BVF9EQVRFX0ZPUk1BVFMsIE1BVF9OQVRJVkVfREFURV9GT1JNQVRTfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHtLbHBEYXRlRm9ybWF0c30gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBLTFBfREFURV9GT1JNQVRTID0gbmV3IEluamVjdGlvblRva2VuPEtscERhdGVGb3JtYXRzPigna2xwLmZvcm0uZGF0ZS5mb3JtYXRzJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXREYXRlRm9ybWF0c0ZhY3RvcnkoY29tcG9uZW50OiBEYXRlcGlja2VyQ29tcG9uZW50LCBkYXRlRm9ybWF0cz86IEtscERhdGVGb3JtYXRzKSB7XG5cdHJldHVybiBkYXRlRm9ybWF0cz8uKGNvbXBvbmVudC5mb3JtYXQpID8/IE1BVF9OQVRJVkVfREFURV9GT1JNQVRTO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdrbHAtZm9ybS1kYXRlcGlja2VyJyxcblx0dGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG5cdHByb3ZpZGVyczogW1xuXHRcdHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBEYXRlcGlja2VyQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9LFxuXHRcdHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUyxcblx0XHRcdGRlcHM6IFtEYXRlcGlja2VyQ29tcG9uZW50LCBbbmV3IE9wdGlvbmFsKCksIEtMUF9EQVRFX0ZPUk1BVFNdXSxcblx0XHRcdHVzZUZhY3Rvcnk6IG1hdERhdGVGb3JtYXRzRmFjdG9yeSxcblx0XHR9XG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yQmFzZTxEYXRlIHwgdHlwZW9mIGludmFsaWREYXRlS2V5PiB7XG5cdEBJbnB1dCgpIHB1YmxpYyBtaW5EYXRlOiBEYXRlID0gdW5kZWZpbmVkO1xuXHRASW5wdXQoKSBwdWJsaWMgbWF4RGF0ZTogRGF0ZSA9IHVuZGVmaW5lZDtcblx0QElucHV0KCkgcHVibGljIGZvcm1hdDogc3RyaW5nO1xuXHRASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnU2VsZWN0IGRhdGUnO1xuXHRASW5wdXQoKSBwdWJsaWMgY2xlYXJhYmxlID0gZmFsc2U7XG5cblx0QFZpZXdDaGlsZCgnbmF0aXZlSW5wdXQnKSBuYXRpdmVJbnB1dFJlZjogRWxlbWVudFJlZjtcblx0QFZpZXdDaGlsZCgncGlja2VyJykgZGF0ZVBpY2tlclJlZjogTWF0RGF0ZXBpY2tlcjxEYXRlPjtcblxuXHRtaW5EYXRlU3RhcnRPZkRheTogRGF0ZSA9IHVuZGVmaW5lZDtcblx0bWF4RGF0ZUVuZE9mRGF5OiBEYXRlID0gdW5kZWZpbmVkO1xuXG5cdC8vIHRoaXMgaXMgcGFzc2VkIGFzIG5nbW9kZWwgYW5kIGlzIHVzZWQgdG8gc2V0IHRoZSBpbml0YWwgZGF0ZS4gQnV0IHdlIGFsc29cblx0Ly8gdXNlIGlucHV0IGFuZCBuYXRpdmVJbnB1dCBjYWxsYmFja3MgdG8gZXh0ZW5kIHRoZSB2YWxpZGF0aW9uIGxvZ2ljIHNvIHdlXG5cdC8vIGNhbiBkZXN0aW5ndWlzaCBiZXR3ZWVuIGVtcHR5IGFuZCBpbnZhbGlkIGRhdGVzLlxuXHR2YWx1ZUZvck1hdGVyaWFsRGF0ZVBpY2tlcjogRGF0ZTtcblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0aWYgKGNoYW5nZXMubWluRGF0ZSkge1xuXHRcdFx0dGhpcy5zZXRNaW5EYXRlKGNoYW5nZXMubWluRGF0ZS5jdXJyZW50VmFsdWUpO1xuXHRcdH1cblx0XHRpZiAoY2hhbmdlcy5tYXhEYXRlKSB7XG5cdFx0XHR0aGlzLnNldE1heERhdGUoY2hhbmdlcy5tYXhEYXRlLmN1cnJlbnRWYWx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0c2V0TWluRGF0ZShtaW5EYXRlOiBEYXRlKSB7XG5cdFx0aWYgKG1pbkRhdGUpIHtcblx0XHRcdHRoaXMubWluRGF0ZVN0YXJ0T2ZEYXkgPSBuZXcgRGF0ZShtaW5EYXRlKTtcblx0XHRcdHRoaXMubWluRGF0ZVN0YXJ0T2ZEYXkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMubWluRGF0ZVN0YXJ0T2ZEYXkgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0c2V0TWF4RGF0ZShtYXhEYXRlOiBEYXRlKSB7XG5cdFx0aWYgKG1heERhdGUpIHtcblx0XHRcdHRoaXMubWF4RGF0ZUVuZE9mRGF5ID0gbmV3IERhdGUobWF4RGF0ZSk7XG5cdFx0XHR0aGlzLm1heERhdGVFbmRPZkRheS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLm1heERhdGVFbmRPZkRheSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHQvLyBkYXRlQ2hhbmdlZCBpcyBjYWxsZWQgd2hlbiB0aGUgb3V0cHV0IG9mIHRoZSBkYXRlcGlja2VyIGlzIGNoYW5nZWQgYW5kXG5cdC8vIHBhcnNlZCBjb3JyZWN0bHkuIElmIHRoZSBkYXRlIGlzIGludmFsaWQsIGl0IHdpbGwgYmUgY2FsbGVkIHRoZSBmaXJzdCB0aW1lXG5cdC8vIHdpdGggbnVsbCBidXQgbmV2ZXIgYWdhaW4gdW50aWwgYSB2YWxpZCBpbnB1dCBpcyBwcm92aWRlZC5cblx0ZGF0ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IG5hdGl2ZUlucHV0VmFsdWUgPSB0aGlzLm5hdGl2ZUlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cdFx0Y29uc3QgZGF0ZSA9IGV2ZW50LnZhbHVlO1xuXHRcdGlmIChpc051bGxPclVuZGVmaW5lZChkYXRlKSAmJiBzdHJpbmdJc1NldEFuZE5vdEVtcHR5KG5hdGl2ZUlucHV0VmFsdWUpKSB7XG5cdFx0XHR0aGlzLnNldElubmVyVmFsdWVBbmROb3RpZnkoaW52YWxpZERhdGVLZXkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnNldElubmVyVmFsdWVBbmROb3RpZnkoZGF0ZSk7XG5cdFx0fVxuXHR9XG5cblx0d3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHR5cGVvZiBpbnZhbGlkRGF0ZUtleSkge1xuXHRcdHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuXHRcdHRoaXMudmFsdWVGb3JNYXRlcmlhbERhdGVQaWNrZXIgPSB2YWx1ZSA9PT0gaW52YWxpZERhdGVLZXkgPyBudWxsIDogdmFsdWU7XG5cdH1cblxuXHQvLyBuYXRpdmVWYWx1ZUNoYW5nZWQgaXMgY2FsbGVkIHdoZW4gdGhlIGludGVybmFsIHRleHQgdmFsdWUgY2hhbmdlcywgYnV0IG5vdFxuXHQvLyB3aGVuIHRoZSBkYXRlIGlzIGNoYW5nZWQgdmlhIHRoZSBkYXRlIHBpY2tlci4gV2UgbmVlZCB0aGlzIHNvIHRoYXQgd2UgY2FuXG5cdC8vIGRldGVybWluZSBpZiB0aGUgZGF0ZXBpY2tlciBpcyBlbXB0eSBvciBpbnZhbGlkLlxuXHRuYXRpdmVWYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IG5hdGl2ZUlucHV0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG5cdFx0Y29uc3QgZGF0ZSA9IHRoaXMudmFsdWVGb3JNYXRlcmlhbERhdGVQaWNrZXI7XG5cblx0XHRpZiAodGhpcy5kYXRlUGlja2VyUmVmLm9wZW5lZCkge1xuXHRcdFx0Ly8gaWYgdGhlIHVzZXIgaXMgdHlwaW5nIGluc3RlYWQgb2YgdXNpbmcgdGhlIHBpY2tlciwgY2xvc2UgaXQuXG5cdFx0XHR0aGlzLmRhdGVQaWNrZXJSZWYuY2xvc2UoKTtcblx0XHR9XG5cblx0XHRpZiAoaXNOdWxsT3JVbmRlZmluZWQoZGF0ZSkgJiYgc3RyaW5nSXNTZXRBbmROb3RFbXB0eShuYXRpdmVJbnB1dFZhbHVlKSkge1xuXHRcdFx0dGhpcy5zZXRJbm5lclZhbHVlQW5kTm90aWZ5KGludmFsaWREYXRlS2V5KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zZXRJbm5lclZhbHVlQW5kTm90aWZ5KGRhdGUpO1xuXHRcdH1cblx0fVxuXG5cdHJlc2V0VG9OdWxsKCkge1xuXHRcdHRoaXMuc2V0SW5uZXJWYWx1ZUFuZE5vdGlmeShudWxsKTtcblx0XHR0aGlzLnZhbHVlRm9yTWF0ZXJpYWxEYXRlUGlja2VyID0gbnVsbDtcblx0XHR0aGlzLm5hdGl2ZUlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ElementRef, InjectionToken, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { invalidDateKey } from '../../validators/dateValidator';
|
|
3
|
-
import { MatDatepicker } from '@angular/material/datepicker';
|
|
4
|
-
import { ValueAccessorBase } from "../value-accessor-base/value-accessor-base.component";
|
|
5
|
-
import { KlpDateFormats } from "../../types";
|
|
6
|
-
export declare const KLP_DATE_FORMATS: InjectionToken<KlpDateFormats>;
|
|
7
|
-
export declare function matDateFormatsFactory(component: DatepickerComponent, dateFormats?: KlpDateFormats): import("@angular/material/core").MatDateFormats;
|
|
8
|
-
export declare class DatepickerComponent extends ValueAccessorBase<Date | typeof invalidDateKey> {
|
|
9
|
-
minDate: Date;
|
|
10
|
-
maxDate: Date;
|
|
11
|
-
format: string;
|
|
12
|
-
placeholder: string;
|
|
13
|
-
clearable: boolean;
|
|
14
|
-
nativeInputRef: ElementRef;
|
|
15
|
-
datePickerRef: MatDatepicker<Date>;
|
|
16
|
-
minDateStartOfDay: Date;
|
|
17
|
-
maxDateEndOfDay: Date;
|
|
18
|
-
valueForMaterialDatePicker: Date;
|
|
19
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
20
|
-
setMinDate(minDate: Date): void;
|
|
21
|
-
setMaxDate(maxDate: Date): void;
|
|
22
|
-
dateChanged(event: any): void;
|
|
23
|
-
writeValue(value: Date | typeof invalidDateKey): void;
|
|
24
|
-
nativeValueChanged(event: any): void;
|
|
25
|
-
resetToNull(): void;
|
|
26
|
-
}
|