@ngil/form-inputs 0.1.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 (33) hide show
  1. package/README.md +9 -0
  2. package/esm2022/index.mjs +11 -0
  3. package/esm2022/lib/components/input/input.component.mjs +55 -0
  4. package/esm2022/lib/components/overlay/overlay-toggle.directive.mjs +57 -0
  5. package/esm2022/lib/components/overlay/overlay.component.mjs +106 -0
  6. package/esm2022/lib/components/select/select.component.mjs +69 -0
  7. package/esm2022/lib/components/select-options/select-options.component.mjs +58 -0
  8. package/esm2022/lib/components/textarea/textarea.component.mjs +45 -0
  9. package/esm2022/lib/components/time-picker/time-picker.component.mjs +65 -0
  10. package/esm2022/lib/components/time-picker/time-picker.directive.mjs +114 -0
  11. package/esm2022/lib/components/time-picker/time-picker.model.mjs +2 -0
  12. package/esm2022/lib/components/time-picker-overlay/picker-toggle.mjs +24 -0
  13. package/esm2022/lib/components/time-picker-overlay/time-picker-overlay.component.mjs +114 -0
  14. package/esm2022/lib/directives/number-rotation.directive.mjs +102 -0
  15. package/esm2022/lib/ngil-ui-form.module.mjs +68 -0
  16. package/esm2022/ngil-form-inputs.mjs +5 -0
  17. package/fesm2022/ngil-form-inputs.mjs +813 -0
  18. package/fesm2022/ngil-form-inputs.mjs.map +1 -0
  19. package/index.d.ts +10 -0
  20. package/lib/components/input/input.component.d.ts +14 -0
  21. package/lib/components/overlay/overlay-toggle.directive.d.ts +16 -0
  22. package/lib/components/overlay/overlay.component.d.ts +22 -0
  23. package/lib/components/select/select.component.d.ts +16 -0
  24. package/lib/components/select-options/select-options.component.d.ts +17 -0
  25. package/lib/components/textarea/textarea.component.d.ts +12 -0
  26. package/lib/components/time-picker/time-picker.component.d.ts +19 -0
  27. package/lib/components/time-picker/time-picker.directive.d.ts +28 -0
  28. package/lib/components/time-picker/time-picker.model.d.ts +5 -0
  29. package/lib/components/time-picker-overlay/picker-toggle.d.ts +8 -0
  30. package/lib/components/time-picker-overlay/time-picker-overlay.component.d.ts +26 -0
  31. package/lib/directives/number-rotation.directive.d.ts +26 -0
  32. package/lib/ngil-ui-form.module.d.ts +20 -0
  33. package/package.json +32 -0
@@ -0,0 +1,65 @@
1
+ import { Component } from '@angular/core';
2
+ import { FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { AbstractInputComponent } from '@ngil/form-cva';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "../../directives/number-rotation.directive";
9
+ export class NgilTimePickerComponent extends AbstractInputComponent {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.defaultValue = { hour: 0, minute: 0, second: 0 };
13
+ this.value = '';
14
+ this.formGroup = new FormGroup({
15
+ hour: new FormControl(this.defaultValue.hour, { nonNullable: true }),
16
+ minute: new FormControl(this.defaultValue.minute, { nonNullable: true }),
17
+ second: new FormControl(this.defaultValue.second, { nonNullable: true })
18
+ });
19
+ }
20
+ ngAfterViewInit() {
21
+ this.listenValueChanges();
22
+ }
23
+ listenValueChanges() {
24
+ this.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {
25
+ if (this.onChange) {
26
+ const value = this.formGroup.getRawValue();
27
+ this.onChange({
28
+ hour: value.hour ?? this.defaultValue.hour,
29
+ minute: value.minute ?? this.defaultValue.minute,
30
+ second: value.second ?? this.defaultValue.second
31
+ });
32
+ }
33
+ });
34
+ }
35
+ writeValue(value) {
36
+ if (value) {
37
+ this.formGroup.setValue({
38
+ ...this.defaultValue,
39
+ ...value
40
+ }, { emitEvent: false });
41
+ }
42
+ else {
43
+ this.formGroup.reset(this.defaultValue, { emitEvent: false });
44
+ }
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgilTimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NgilTimePickerComponent, selector: "ngil-time-picker", providers: [
48
+ {
49
+ provide: NG_VALUE_ACCESSOR,
50
+ useExisting: NgilTimePickerComponent,
51
+ multi: true
52
+ }
53
+ ], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"formGroup\" class=\"ngil-time-picker\">\r\n <div class=\"ngil-time-picker__field\">\r\n <button #hourButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"hour\"\r\n [buttonUp]=\"hourButtonUp\"\r\n [buttonDown]=\"hourButtonDown\"\r\n [max]=\"23\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #hourButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #minuteButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"minute\"\r\n [buttonUp]=\"minuteButtonUp\"\r\n [buttonDown]=\"minuteButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #minuteButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #secondButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"second\"\r\n [buttonUp]=\"secondButtonUp\"\r\n [buttonDown]=\"secondButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #secondButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n</form>\r\n\r\n<ng-template #arrowUp>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 75 50, 25 90, 75\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #arrowDown>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 25 50, 75 90, 25\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n", styles: [".ngil-time-picker{display:flex;align-items:center;background:#fff;border:1px solid #000;gap:.5rem;padding:.5rem}.ngil-time-picker__field{width:25px;position:relative;display:flex;flex-direction:column;align-items:center;gap:.5rem}.ngil-time-picker__input{width:calc(100% - 7px);padding:3px;text-align:center}.ngil-time-picker__button{background:none;border:none;position:relative;display:flex}.ngil-time-picker__arrow{width:18px;height:18px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NumberRotationDirective, selector: "input[ngilNumberRotation]", inputs: ["min", "max", "buttonUp", "buttonDown"] }] }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgilTimePickerComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ selector: 'ngil-time-picker', providers: [
58
+ {
59
+ provide: NG_VALUE_ACCESSOR,
60
+ useExisting: NgilTimePickerComponent,
61
+ multi: true
62
+ }
63
+ ], template: "<form [formGroup]=\"formGroup\" class=\"ngil-time-picker\">\r\n <div class=\"ngil-time-picker__field\">\r\n <button #hourButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"hour\"\r\n [buttonUp]=\"hourButtonUp\"\r\n [buttonDown]=\"hourButtonDown\"\r\n [max]=\"23\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #hourButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #minuteButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"minute\"\r\n [buttonUp]=\"minuteButtonUp\"\r\n [buttonDown]=\"minuteButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #minuteButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #secondButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"second\"\r\n [buttonUp]=\"secondButtonUp\"\r\n [buttonDown]=\"secondButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #secondButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n</form>\r\n\r\n<ng-template #arrowUp>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 75 50, 25 90, 75\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #arrowDown>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 25 50, 75 90, 25\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n", styles: [".ngil-time-picker{display:flex;align-items:center;background:#fff;border:1px solid #000;gap:.5rem;padding:.5rem}.ngil-time-picker__field{width:25px;position:relative;display:flex;flex-direction:column;align-items:center;gap:.5rem}.ngil-time-picker__input{width:calc(100% - 7px);padding:3px;text-align:center}.ngil-time-picker__button{background:none;border:none;position:relative;display:flex}.ngil-time-picker__arrow{width:18px;height:18px;cursor:pointer}\n"] }]
64
+ }] });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2lsL3VpL2Zvcm0taW5wdXRzL3NyYy9saWIvY29tcG9uZW50cy90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25naWwvdWkvZm9ybS1pbnB1dHMvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWUzQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsc0JBQXVDO0lBWnBGOztRQWFVLGlCQUFZLEdBQW9CLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUUxRSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsY0FBUyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3hCLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBUyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUM1RSxNQUFNLEVBQUUsSUFBSSxXQUFXLENBQVMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEYsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFTLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2pGLENBQUMsQ0FBQztLQWdDSjtJQTlCQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ1osSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJO29CQUMxQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU07b0JBQ2hELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtpQkFDakQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFzQjtRQUMvQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQ3JCO2dCQUNFLEdBQUcsSUFBSSxDQUFDLFlBQVk7Z0JBQ3BCLEdBQUcsS0FBSzthQUNULEVBQ0QsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQ3JCLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQzs4R0F2Q1UsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMkNBUnZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLHVCQUF1QjtnQkFDcEMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQ2hCSCxncEdBd0dBOzsyRkR0RmEsdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNFLGtCQUFrQixhQUdqQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHlCQUF5Qjs0QkFDcEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFic3RyYWN0SW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmdpbC9mb3JtLWN2YSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGltZVBpY2tlclZhbHVlIH0gZnJvbSAnLi90aW1lLXBpY2tlci5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25naWwtdGltZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBOZ2lsVGltZVBpY2tlckNvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ2lsVGltZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0SW5wdXRDb21wb25lbnQ8VGltZVBpY2tlclZhbHVlPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIHByaXZhdGUgZGVmYXVsdFZhbHVlOiBUaW1lUGlja2VyVmFsdWUgPSB7IGhvdXI6IDAsIG1pbnV0ZTogMCwgc2Vjb25kOiAwIH07XHJcblxyXG4gIHZhbHVlID0gJyc7XHJcbiAgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICBob3VyOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPih0aGlzLmRlZmF1bHRWYWx1ZS5ob3VyLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLFxyXG4gICAgbWludXRlOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPih0aGlzLmRlZmF1bHRWYWx1ZS5taW51dGUsIHsgbm9uTnVsbGFibGU6IHRydWUgfSksXHJcbiAgICBzZWNvbmQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KHRoaXMuZGVmYXVsdFZhbHVlLnNlY29uZCwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KVxyXG4gIH0pO1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpc3RlblZhbHVlQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGxpc3RlblZhbHVlQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh7XHJcbiAgICAgICAgICBob3VyOiB2YWx1ZS5ob3VyID8/IHRoaXMuZGVmYXVsdFZhbHVlLmhvdXIsXHJcbiAgICAgICAgICBtaW51dGU6IHZhbHVlLm1pbnV0ZSA/PyB0aGlzLmRlZmF1bHRWYWx1ZS5taW51dGUsXHJcbiAgICAgICAgICBzZWNvbmQ6IHZhbHVlLnNlY29uZCA/PyB0aGlzLmRlZmF1bHRWYWx1ZS5zZWNvbmRcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBUaW1lUGlja2VyVmFsdWUpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5zZXRWYWx1ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICAuLi50aGlzLmRlZmF1bHRWYWx1ZSxcclxuICAgICAgICAgIC4uLnZhbHVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQodGhpcy5kZWZhdWx0VmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cIm5naWwtdGltZS1waWNrZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwibmdpbC10aW1lLXBpY2tlcl9fZmllbGRcIj5cclxuICAgIDxidXR0b24gI2hvdXJCdXR0b25VcCBjbGFzcz1cIm5naWwtdGltZS1waWNrZXJfX2J1dHRvblwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXJyb3dVcFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8aW5wdXRcclxuICAgICAgbmdpbE51bWJlclJvdGF0aW9uXHJcbiAgICAgIGNsYXNzPVwibmdpbC10aW1lLXBpY2tlcl9faW5wdXRcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJob3VyXCJcclxuICAgICAgW2J1dHRvblVwXT1cImhvdXJCdXR0b25VcFwiXHJcbiAgICAgIFtidXR0b25Eb3duXT1cImhvdXJCdXR0b25Eb3duXCJcclxuICAgICAgW21heF09XCIyM1wiXHJcbiAgICAgIFttaW5dPVwiMFwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgIC8+XHJcbiAgICA8YnV0dG9uICNob3VyQnV0dG9uRG93biBjbGFzcz1cIm5naWwtdGltZS1waWNrZXJfX2J1dHRvblwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXJyb3dEb3duXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHNwYW4+Ojwvc3Bhbj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm5naWwtdGltZS1waWNrZXJfX2ZpZWxkXCI+XHJcbiAgICA8YnV0dG9uICNtaW51dGVCdXR0b25VcCBjbGFzcz1cIm5naWwtdGltZS1waWNrZXJfX2J1dHRvblwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXJyb3dVcFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8aW5wdXRcclxuICAgICAgbmdpbE51bWJlclJvdGF0aW9uXHJcbiAgICAgIGNsYXNzPVwibmdpbC10aW1lLXBpY2tlcl9faW5wdXRcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJtaW51dGVcIlxyXG4gICAgICBbYnV0dG9uVXBdPVwibWludXRlQnV0dG9uVXBcIlxyXG4gICAgICBbYnV0dG9uRG93bl09XCJtaW51dGVCdXR0b25Eb3duXCJcclxuICAgICAgW21heF09XCI1OVwiXHJcbiAgICAgIFttaW5dPVwiMFwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgIC8+XHJcbiAgICA8YnV0dG9uICNtaW51dGVCdXR0b25Eb3duIGNsYXNzPVwibmdpbC10aW1lLXBpY2tlcl9fYnV0dG9uXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhcnJvd0Rvd25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8c3Bhbj46PC9zcGFuPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibmdpbC10aW1lLXBpY2tlcl9fZmllbGRcIj5cclxuICAgIDxidXR0b24gI3NlY29uZEJ1dHRvblVwIGNsYXNzPVwibmdpbC10aW1lLXBpY2tlcl9fYnV0dG9uXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhcnJvd1VwXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxpbnB1dFxyXG4gICAgICBuZ2lsTnVtYmVyUm90YXRpb25cclxuICAgICAgY2xhc3M9XCJuZ2lsLXRpbWUtcGlja2VyX19pbnB1dFwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFwiXHJcbiAgICAgIFtidXR0b25VcF09XCJzZWNvbmRCdXR0b25VcFwiXHJcbiAgICAgIFtidXR0b25Eb3duXT1cInNlY29uZEJ1dHRvbkRvd25cIlxyXG4gICAgICBbbWF4XT1cIjU5XCJcclxuICAgICAgW21pbl09XCIwXCJcclxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgLz5cclxuICAgIDxidXR0b24gI3NlY29uZEJ1dHRvbkRvd24gY2xhc3M9XCJuZ2lsLXRpbWUtcGlja2VyX19idXR0b25cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFycm93RG93blwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYXJyb3dVcD5cclxuICA8c3ZnXHJcbiAgICBfbmdjb250ZW50LXZyZS1jMjM1PVwiXCJcclxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcclxuICAgIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiXHJcbiAgICB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICBjbGFzcz1cIm5naWwtdGltZS1waWNrZXJfX2Fycm93XCJcclxuICA+XHJcbiAgICA8cG9seWxpbmVcclxuICAgICAgX25nY29udGVudC12cmUtYzIzNT1cIlwiXHJcbiAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgc3Ryb2tlPVwiIzAwMDAwMFwiXHJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjEwXCJcclxuICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgcG9pbnRzPVwiMTAsIDc1IDUwLCAyNSA5MCwgNzVcIlxyXG4gICAgPjwvcG9seWxpbmU+XHJcbiAgPC9zdmc+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Fycm93RG93bj5cclxuICA8c3ZnXHJcbiAgICBfbmdjb250ZW50LXZyZS1jMjM1PVwiXCJcclxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcclxuICAgIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiXHJcbiAgICB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICBjbGFzcz1cIm5naWwtdGltZS1waWNrZXJfX2Fycm93XCJcclxuICA+XHJcbiAgICA8cG9seWxpbmVcclxuICAgICAgX25nY29udGVudC12cmUtYzIzNT1cIlwiXHJcbiAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgc3Ryb2tlPVwiIzAwMDAwMFwiXHJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjEwXCJcclxuICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgcG9pbnRzPVwiMTAsIDI1IDUwLCA3NSA5MCwgMjVcIlxyXG4gICAgPjwvcG9seWxpbmU+XHJcbiAgPC9zdmc+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,114 @@
1
+ import { Directive, ElementRef, EventEmitter, HostListener, Input, Optional, Output } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { Subject } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { NgilInputComponent } from '../input/input.component';
6
+ import { NgilTimePickerOverlayComponent } from '../time-picker-overlay/time-picker-overlay.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../input/input.component";
9
+ import * as i2 from "@angular/forms";
10
+ export class TimePickerDirective {
11
+ constructor(elementRef, inputComponent, ngControl) {
12
+ this.elementRef = elementRef;
13
+ this.inputComponent = inputComponent;
14
+ this.ngControl = ngControl;
15
+ this.changed = new EventEmitter();
16
+ this.destroy$ = new Subject();
17
+ this.onKeyDown = (event) => {
18
+ if (isNaN(+event.key) && event.key !== ':' && event.key.length === 1) {
19
+ event.preventDefault();
20
+ }
21
+ };
22
+ this.onInput = (event) => {
23
+ const value = this.getTimePickerValue(event.target.value);
24
+ this.picker?.setValue({
25
+ hour: +value.hour,
26
+ minute: +value.minute || 0,
27
+ second: +value.second || 0
28
+ });
29
+ };
30
+ }
31
+ ngOnInit() {
32
+ this.ngControl?.control?.setValidators([this.timeValidator()]);
33
+ }
34
+ timeValidator() {
35
+ return (control) => {
36
+ const value = this.getTimePickerValue(control.value);
37
+ if (this.itemHasError(value.hour, 23)) {
38
+ return {
39
+ invalidHour: true
40
+ };
41
+ }
42
+ if (this.itemHasError(value.minute, 59)) {
43
+ return {
44
+ invalidMinute: true
45
+ };
46
+ }
47
+ if (this.itemHasError(value.second, 59)) {
48
+ return {
49
+ invalidSecond: true
50
+ };
51
+ }
52
+ return null;
53
+ };
54
+ }
55
+ itemHasError(value, max, min = 0) {
56
+ if (value && (value.length > 2 || +value > max || +value < min)) {
57
+ return true;
58
+ }
59
+ return false;
60
+ }
61
+ getTimePickerValue(value) {
62
+ const split = value?.split(':');
63
+ return {
64
+ hour: split ? split[0] : '00',
65
+ minute: split ? split[1] : '00',
66
+ second: split ? split[2] : '00'
67
+ };
68
+ }
69
+ ngAfterViewInit() {
70
+ if (this.picker) {
71
+ this.picker.origin = this.elementRef;
72
+ this.picker.valueChanges$.pipe(takeUntil(this.destroy$)).subscribe(value => {
73
+ this.setInputText(value);
74
+ this.changed.emit(value);
75
+ });
76
+ }
77
+ }
78
+ setInputText(value) {
79
+ const text = [this.getItemText(value.hour), this.getItemText(value.minute), this.getItemText(value.second)].join(':');
80
+ this.inputComponent?.control.setValue(text);
81
+ this.elementRef.nativeElement.value = text;
82
+ this.ngControl?.control?.setValue(text);
83
+ }
84
+ getItemText(value) {
85
+ return value.toString().padStart(2, '0');
86
+ }
87
+ ngOnDestroy() {
88
+ this.destroy$.next();
89
+ this.destroy$.complete();
90
+ }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: TimePickerDirective, deps: [{ token: i0.ElementRef }, { token: i1.NgilInputComponent, optional: true }, { token: i2.NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
92
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.2", type: TimePickerDirective, selector: "[ngilTimePicker]", inputs: { picker: "picker" }, outputs: { changed: "changed" }, host: { listeners: { "keydown": "onKeyDown($event)", "input": "onInput($event)" } }, ngImport: i0 }); }
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: TimePickerDirective, decorators: [{
95
+ type: Directive,
96
+ args: [{
97
+ selector: '[ngilTimePicker]'
98
+ }]
99
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NgilInputComponent, decorators: [{
100
+ type: Optional
101
+ }] }, { type: i2.NgControl, decorators: [{
102
+ type: Optional
103
+ }] }], propDecorators: { picker: [{
104
+ type: Input
105
+ }], changed: [{
106
+ type: Output
107
+ }], onKeyDown: [{
108
+ type: HostListener,
109
+ args: ['keydown', ['$event']]
110
+ }], onInput: [{
111
+ type: HostListener,
112
+ args: ['input', ['$event']]
113
+ }] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2lsL3VpL2Zvcm0taW5wdXRzL3NyYy9saWIvY29tcG9uZW50cy90aW1lLXBpY2tlci90aW1lLXBpY2tlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLFNBQVMsRUFBaUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7OztBQU10RyxNQUFNLE9BQU8sbUJBQW1CO0lBdUI5QixZQUNtQixVQUF3QyxFQUM1QixjQUFtQyxFQUNuQyxTQUFxQjtRQUZqQyxlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQXZCMUMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBRXJDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR2xELGNBQVMsR0FBRyxDQUFDLEtBQW9CLEVBQVEsRUFBRTtZQUN6QyxJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxD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O3NCQUFoQixNQUFNO2dCQUtQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT0EsT0FBTztzQkFBekMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBOZ2lsSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2lsVGltZVBpY2tlck92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuLi90aW1lLXBpY2tlci1vdmVybGF5L3RpbWUtcGlja2VyLW92ZXJsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGltZVBpY2tlclZhbHVlIH0gZnJvbSAnLi90aW1lLXBpY2tlci5tb2RlbCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tuZ2lsVGltZVBpY2tlcl0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHBpY2tlcj86IE5naWxUaW1lUGlja2VyT3ZlcmxheUNvbXBvbmVudDtcclxuXHJcbiAgQE91dHB1dCgpIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRpbWVQaWNrZXJWYWx1ZT4oKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XHJcbiAgICBpZiAoaXNOYU4oK2V2ZW50LmtleSkgJiYgZXZlbnQua2V5ICE9PSAnOicgJiYgZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSkgb25JbnB1dCA9IChldmVudDogSW5wdXRFdmVudCk6IHZvaWQgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFRpbWVQaWNrZXJWYWx1ZSgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcclxuICAgIHRoaXMucGlja2VyPy5zZXRWYWx1ZSh7XHJcbiAgICAgIGhvdXI6ICt2YWx1ZS5ob3VyLFxyXG4gICAgICBtaW51dGU6ICt2YWx1ZS5taW51dGUgfHwgMCxcclxuICAgICAgc2Vjb25kOiArdmFsdWUuc2Vjb25kIHx8IDBcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBpbnB1dENvbXBvbmVudD86IE5naWxJbnB1dENvbXBvbmVudCxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgbmdDb250cm9sPzogTmdDb250cm9sXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWxpZGF0b3JzKFt0aGlzLnRpbWVWYWxpZGF0b3IoKV0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0aW1lVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VGltZVBpY2tlclZhbHVlKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICBpZiAodGhpcy5pdGVtSGFzRXJyb3IodmFsdWUuaG91ciwgMjMpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGludmFsaWRIb3VyOiB0cnVlXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuaXRlbUhhc0Vycm9yKHZhbHVlLm1pbnV0ZSwgNTkpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGludmFsaWRNaW51dGU6IHRydWVcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5pdGVtSGFzRXJyb3IodmFsdWUuc2Vjb25kLCA1OSkpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaW52YWxpZFNlY29uZDogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXRlbUhhc0Vycm9yKHZhbHVlOiBzdHJpbmcsIG1heDogbnVtYmVyLCBtaW4gPSAwKSB7XHJcbiAgICBpZiAodmFsdWUgJiYgKHZhbHVlLmxlbmd0aCA+IDIgfHwgK3ZhbHVlID4gbWF4IHx8ICt2YWx1ZSA8IG1pbikpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRUaW1lUGlja2VyVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIGNvbnN0IHNwbGl0ID0gdmFsdWU/LnNwbGl0KCc6Jyk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaG91cjogc3BsaXQgPyBzcGxpdFswXSA6ICcwMCcsXHJcbiAgICAgIG1pbnV0ZTogc3BsaXQgPyBzcGxpdFsxXSA6ICcwMCcsXHJcbiAgICAgIHNlY29uZDogc3BsaXQgPyBzcGxpdFsyXSA6ICcwMCdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5waWNrZXIpIHtcclxuICAgICAgdGhpcy5waWNrZXIub3JpZ2luID0gdGhpcy5lbGVtZW50UmVmO1xyXG4gICAgICB0aGlzLnBpY2tlci52YWx1ZUNoYW5nZXMkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0SW5wdXRUZXh0KHZhbHVlKTtcclxuICAgICAgICB0aGlzLmNoYW5nZWQuZW1pdCh2YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRJbnB1dFRleHQodmFsdWU6IFRpbWVQaWNrZXJWYWx1ZSk6IHZvaWQge1xyXG4gICAgY29uc3QgdGV4dCA9IFt0aGlzLmdldEl0ZW1UZXh0KHZhbHVlLmhvdXIpLCB0aGlzLmdldEl0ZW1UZXh0KHZhbHVlLm1pbnV0ZSksIHRoaXMuZ2V0SXRlbVRleHQodmFsdWUuc2Vjb25kKV0uam9pbihcclxuICAgICAgJzonXHJcbiAgICApO1xyXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudD8uY29udHJvbC5zZXRWYWx1ZSh0ZXh0KTtcclxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGV4dDtcclxuICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSh0ZXh0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SXRlbVRleHQodmFsdWU6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25naWwvdWkvZm9ybS1pbnB1dHMvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRpbWVQaWNrZXJWYWx1ZSB7XHJcbiAgaG91cjogbnVtYmVyO1xyXG4gIG1pbnV0ZTogbnVtYmVyO1xyXG4gIHNlY29uZDogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PickerToggleComponent {
4
+ constructor() {
5
+ this.onClick = (event) => {
6
+ if (!this.picker?.isOpen) {
7
+ this.picker?.open();
8
+ }
9
+ event.stopPropagation();
10
+ };
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: PickerToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: PickerToggleComponent, selector: "ngil-picker-toggle", inputs: { picker: "picker" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0, template: "<button class=\"toggle-button\" type=\"button\">\r\n <svg\r\n class=\"mat-datepicker-toggle-default-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"24px\"\r\n height=\"24px\"\r\n fill=\"currentColor\"\r\n focusable=\"false\"\r\n >\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"\r\n />\r\n </svg>\r\n</button>\r\n", styles: [".toggle-button{background:none;border:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: PickerToggleComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'ngil-picker-toggle', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"toggle-button\" type=\"button\">\r\n <svg\r\n class=\"mat-datepicker-toggle-default-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"24px\"\r\n height=\"24px\"\r\n fill=\"currentColor\"\r\n focusable=\"false\"\r\n >\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"\r\n />\r\n </svg>\r\n</button>\r\n", styles: [".toggle-button{background:none;border:none}\n"] }]
18
+ }], propDecorators: { picker: [{
19
+ type: Input
20
+ }], onClick: [{
21
+ type: HostListener,
22
+ args: ['click', ['$event']]
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLXRvZ2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdpbC91aS9mb3JtLWlucHV0cy9zcmMvbGliL2NvbXBvbmVudHMvdGltZS1waWNrZXItb3ZlcmxheS9waWNrZXItdG9nZ2xlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2lsL3VpL2Zvcm0taW5wdXRzL3NyYy9saWIvY29tcG9uZW50cy90aW1lLXBpY2tlci1vdmVybGF5L3BpY2tlci10b2dnbGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVTNHLE1BQU0sT0FBTyxxQkFBcUI7SUFQbEM7UUFVcUMsWUFBTyxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDdEIsQ0FBQztZQUNELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUM7S0FDSDs4R0FUWSxxQkFBcUI7a0dBQXJCLHFCQUFxQiw2SUNWbEMsZ2NBY0E7OzJGREphLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUU2QixPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5naWxUaW1lUGlja2VyT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vdGltZS1waWNrZXItb3ZlcmxheS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ2lsLXBpY2tlci10b2dnbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAncGlja2VyLXRvZ2dsZS5odG1sJyxcclxuICBzdHlsZVVybHM6IFsncGlja2VyLXRvZ2dsZS5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGlja2VyVG9nZ2xlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBwaWNrZXI6IE5naWxUaW1lUGlja2VyT3ZlcmxheUNvbXBvbmVudCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBvbkNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLnBpY2tlcj8uaXNPcGVuKSB7XHJcbiAgICAgIHRoaXMucGlja2VyPy5vcGVuKCk7XHJcbiAgICB9XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9O1xyXG59XHJcbiIsIjxidXR0b24gY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiPlxyXG4gIDxzdmdcclxuICAgIGNsYXNzPVwibWF0LWRhdGVwaWNrZXItdG9nZ2xlLWRlZmF1bHQtaWNvblwiXHJcbiAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgIHdpZHRoPVwiMjRweFwiXHJcbiAgICBoZWlnaHQ9XCIyNHB4XCJcclxuICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxyXG4gID5cclxuICAgIDxwYXRoXHJcbiAgICAgIGQ9XCJNMTkgM2gtMVYxaC0ydjJIOFYxSDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY4aDE0djExek03IDEwaDV2NUg3elwiXHJcbiAgICAvPlxyXG4gIDwvc3ZnPlxyXG48L2J1dHRvbj5cclxuIl19
@@ -0,0 +1,114 @@
1
+ import { Overlay } from '@angular/cdk/overlay';
2
+ import { ComponentPortal } from '@angular/cdk/portal';
3
+ import { Component } from '@angular/core';
4
+ import { Subject } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import { NgilTimePickerComponent } from '../time-picker/time-picker.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/cdk/overlay";
9
+ export class NgilTimePickerOverlayComponent {
10
+ constructor(overlay) {
11
+ this.overlay = overlay;
12
+ this.valueChanges$ = new Subject();
13
+ this.isOpen = false;
14
+ this.value = { hour: 0, minute: 0, second: 0 };
15
+ this.destroy$ = new Subject();
16
+ this.contentComponent = NgilTimePickerComponent;
17
+ }
18
+ ngOnDestroy() {
19
+ this.destroy$.next();
20
+ this.destroy$.complete();
21
+ }
22
+ open() {
23
+ this.overlayRef = this.overlay.create({
24
+ positionStrategy: this.getStrategy(),
25
+ hasBackdrop: true,
26
+ backdropClass: 'cdk-overlay-transparent-backdrop'
27
+ });
28
+ const portal = new ComponentPortal(this.contentComponent);
29
+ const componentRef = this.overlayRef.attach(portal);
30
+ this.componentInstance = componentRef.instance;
31
+ this.componentInstance.writeValue(this.value);
32
+ this.componentInstance.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {
33
+ const value = this.componentInstance?.formGroup.getRawValue();
34
+ this.valueChanges$.next({
35
+ hour: value?.hour ?? 0,
36
+ minute: value?.minute ?? 0,
37
+ second: value?.second ?? 0
38
+ });
39
+ });
40
+ this.overlayRef
41
+ .backdropClick()
42
+ .pipe(takeUntil(this.destroy$))
43
+ .subscribe(() => {
44
+ this.close();
45
+ });
46
+ this.isOpen = true;
47
+ }
48
+ close() {
49
+ this.destroyOverlay();
50
+ }
51
+ destroyOverlay() {
52
+ this.destroy$.next();
53
+ this.componentInstance?.ngOnDestroy();
54
+ this.overlayRef?.dispose();
55
+ this.componentInstance = undefined;
56
+ this.overlayRef = undefined;
57
+ this.isOpen = false;
58
+ }
59
+ setValue(value) {
60
+ this.value = value;
61
+ if (this.componentInstance) {
62
+ this.componentInstance.writeValue(this.value);
63
+ }
64
+ }
65
+ getStrategy() {
66
+ const primaryX = 'start';
67
+ const secondaryX = primaryX === 'start' ? 'end' : 'start';
68
+ const primaryY = 'top';
69
+ const secondaryY = 'bottom';
70
+ if (!this.origin) {
71
+ return undefined;
72
+ }
73
+ const strategy = this.overlay
74
+ .position()
75
+ .flexibleConnectedTo(this.origin)
76
+ .withPositions([
77
+ {
78
+ originX: primaryX,
79
+ originY: secondaryY,
80
+ overlayX: primaryX,
81
+ overlayY: primaryY
82
+ },
83
+ {
84
+ originX: primaryX,
85
+ originY: primaryY,
86
+ overlayX: primaryX,
87
+ overlayY: secondaryY
88
+ },
89
+ {
90
+ originX: secondaryX,
91
+ originY: secondaryY,
92
+ overlayX: secondaryX,
93
+ overlayY: primaryY
94
+ },
95
+ {
96
+ originX: secondaryX,
97
+ originY: primaryY,
98
+ overlayX: secondaryX,
99
+ overlayY: secondaryY
100
+ }
101
+ ]);
102
+ return strategy;
103
+ }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgilTimePickerOverlayComponent, deps: [{ token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NgilTimePickerOverlayComponent, selector: "ngil-time-picker-overlay", ngImport: i0, template: '', isInline: true }); }
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgilTimePickerOverlayComponent, decorators: [{
108
+ type: Component,
109
+ args: [{
110
+ selector: 'ngil-time-picker-overlay',
111
+ template: ''
112
+ }]
113
+ }], ctorParameters: () => [{ type: i1.Overlay }] });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItb3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25naWwvdWkvZm9ybS1pbnB1dHMvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUtcGlja2VyLW92ZXJsYXkvdGltZS1waWNrZXItb3ZlcmxheS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBTy9FLE1BQU0sT0FBTyw4QkFBOEI7SUFXekMsWUFBNkIsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQVQ3QyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQy9DLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFTCxVQUFLLEdBQW9CLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNsRCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN4QyxxQkFBZ0IsR0FBRyx1QkFBdUIsQ0FBQztJQUlMLENBQUM7SUFFakQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSTtRQUNG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TUFBTSxDQUFDO2FBQ2hDLGFBQWEsQ0FBQztZQUNiO2dCQUNFLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRSxRQUFRO2FBQ25CO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFLFVBQVU7YUFDckI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixRQUFRLEVBQUUsUUFBUTthQUNuQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFFBQVEsRUFBRSxVQUFVO2FBQ3JCO1NBQ0YsQ0FBQyxDQUFDO1FBRUwsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs4R0E5R1UsOEJBQThCO2tHQUE5Qiw4QkFBOEIsZ0VBRi9CLEVBQUU7OzJGQUVELDhCQUE4QjtrQkFKMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTmdpbFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaW1lUGlja2VyVmFsdWUgfSBmcm9tICcuLi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25naWwtdGltZS1waWNrZXItb3ZlcmxheScsXHJcbiAgdGVtcGxhdGU6ICcnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ2lsVGltZVBpY2tlck92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIG9yaWdpbj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgdmFsdWVDaGFuZ2VzJCA9IG5ldyBTdWJqZWN0PFRpbWVQaWNrZXJWYWx1ZT4oKTtcclxuICBpc09wZW4gPSBmYWxzZTtcclxuXHJcbiAgcHJvdGVjdGVkIHZhbHVlOiBUaW1lUGlja2VyVmFsdWUgPSB7IGhvdXI6IDAsIG1pbnV0ZTogMCwgc2Vjb25kOiAwIH07XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcm90ZWN0ZWQgY29udGVudENvbXBvbmVudCA9IE5naWxUaW1lUGlja2VyQ29tcG9uZW50O1xyXG4gIHByb3RlY3RlZCBjb21wb25lbnRJbnN0YW5jZTogdW5kZWZpbmVkIHwgTmdpbFRpbWVQaWNrZXJDb21wb25lbnQ7XHJcbiAgcHJpdmF0ZSBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvdmVybGF5OiBPdmVybGF5KSB7fVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb3BlbigpIHtcclxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLmdldFN0cmF0ZWd5KCksXHJcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5jb250ZW50Q29tcG9uZW50KTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcclxuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICB0aGlzLmNvbXBvbmVudEluc3RhbmNlLndyaXRlVmFsdWUodGhpcy52YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZS5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29tcG9uZW50SW5zdGFuY2U/LmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlcyQubmV4dCh7XHJcbiAgICAgICAgaG91cjogdmFsdWU/LmhvdXIgPz8gMCxcclxuICAgICAgICBtaW51dGU6IHZhbHVlPy5taW51dGUgPz8gMCxcclxuICAgICAgICBzZWNvbmQ6IHZhbHVlPy5zZWNvbmQgPz8gMFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub3ZlcmxheVJlZlxyXG4gICAgICAuYmFja2Ryb3BDbGljaygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveU92ZXJsYXkoKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2U/Lm5nT25EZXN0cm95KCk7XHJcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUodmFsdWU6IFRpbWVQaWNrZXJWYWx1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbXBvbmVudEluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2Uud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3RyYXRlZ3koKSB7XHJcbiAgICBjb25zdCBwcmltYXJ5WCA9ICdzdGFydCc7XHJcbiAgICBjb25zdCBzZWNvbmRhcnlYID0gcHJpbWFyeVggPT09ICdzdGFydCcgPyAnZW5kJyA6ICdzdGFydCc7XHJcbiAgICBjb25zdCBwcmltYXJ5WSA9ICd0b3AnO1xyXG4gICAgY29uc3Qgc2Vjb25kYXJ5WSA9ICdib3R0b20nO1xyXG5cclxuICAgIGlmICghdGhpcy5vcmlnaW4pIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMub3ZlcmxheVxyXG4gICAgICAucG9zaXRpb24oKVxyXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm9yaWdpbilcclxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG9yaWdpblg6IHByaW1hcnlYLFxyXG4gICAgICAgICAgb3JpZ2luWTogc2Vjb25kYXJ5WSxcclxuICAgICAgICAgIG92ZXJsYXlYOiBwcmltYXJ5WCxcclxuICAgICAgICAgIG92ZXJsYXlZOiBwcmltYXJ5WVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogcHJpbWFyeVgsXHJcbiAgICAgICAgICBvcmlnaW5ZOiBwcmltYXJ5WSxcclxuICAgICAgICAgIG92ZXJsYXlYOiBwcmltYXJ5WCxcclxuICAgICAgICAgIG92ZXJsYXlZOiBzZWNvbmRhcnlZXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiBzZWNvbmRhcnlYLFxyXG4gICAgICAgICAgb3JpZ2luWTogc2Vjb25kYXJ5WSxcclxuICAgICAgICAgIG92ZXJsYXlYOiBzZWNvbmRhcnlYLFxyXG4gICAgICAgICAgb3ZlcmxheVk6IHByaW1hcnlZXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiBzZWNvbmRhcnlYLFxyXG4gICAgICAgICAgb3JpZ2luWTogcHJpbWFyeVksXHJcbiAgICAgICAgICBvdmVybGF5WDogc2Vjb25kYXJ5WCxcclxuICAgICAgICAgIG92ZXJsYXlZOiBzZWNvbmRhcnlZXHJcbiAgICAgICAgfVxyXG4gICAgICBdKTtcclxuXHJcbiAgICByZXR1cm4gc3RyYXRlZ3k7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,102 @@
1
+ import { Directive, ElementRef, HostListener, Input } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ export class NumberRotationDirective {
6
+ get length() {
7
+ return this.max.toString().length;
8
+ }
9
+ constructor(elementRef, ngControl) {
10
+ this.elementRef = elementRef;
11
+ this.ngControl = ngControl;
12
+ this.min = 0;
13
+ this.max = 10;
14
+ this.onKeyDown = (event) => {
15
+ this.onKeyDownEvent(event);
16
+ };
17
+ this.onInput = (event) => {
18
+ let value = event.target.value;
19
+ if (+value > this.max) {
20
+ value = value.slice(this.length);
21
+ }
22
+ this.setValue(+value);
23
+ };
24
+ this.onUp = () => {
25
+ const value = +this.elementRef.nativeElement.value;
26
+ this.setValue(value + 1);
27
+ };
28
+ this.onDown = () => {
29
+ const value = +this.elementRef.nativeElement.value;
30
+ this.setValue(value - 1);
31
+ };
32
+ }
33
+ ngOnInit() {
34
+ this.elementRef.nativeElement.value = this.elementRef.nativeElement.value.toString().padStart(this.length, '0');
35
+ }
36
+ ngAfterViewInit() {
37
+ this.buttonUp?.addEventListener('click', this.onUp);
38
+ this.buttonDown?.addEventListener('click', this.onDown);
39
+ }
40
+ onKeyDownEvent(event) {
41
+ if (!this.isKeyValid(event.key)) {
42
+ event.preventDefault();
43
+ return;
44
+ }
45
+ if (event.key === 'ArrowUp') {
46
+ event.preventDefault();
47
+ this.onUp();
48
+ }
49
+ if (event.key === 'ArrowDown') {
50
+ event.preventDefault();
51
+ this.onDown();
52
+ }
53
+ }
54
+ isKeyValid(key) {
55
+ if (key.length !== 1 || !isNaN(+key)) {
56
+ return true;
57
+ }
58
+ return false;
59
+ }
60
+ setValue(value) {
61
+ if (value < this.min) {
62
+ this.setInputValue(this.max);
63
+ }
64
+ else if (value > this.max) {
65
+ this.setInputValue(this.min);
66
+ }
67
+ else {
68
+ this.setInputValue(value);
69
+ }
70
+ }
71
+ setInputValue(value) {
72
+ this.ngControl.control?.setValue(value);
73
+ this.elementRef.nativeElement.value = value.toString().padStart(this.length, '0');
74
+ }
75
+ ngOnDestroy() {
76
+ this.buttonUp?.removeEventListener('click', this.onUp);
77
+ this.buttonDown?.removeEventListener('click', this.onDown);
78
+ }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NumberRotationDirective, deps: [{ token: i0.ElementRef }, { token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive }); }
80
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.2", type: NumberRotationDirective, selector: "input[ngilNumberRotation]", inputs: { min: "min", max: "max", buttonUp: "buttonUp", buttonDown: "buttonDown" }, host: { listeners: { "keydown": "onKeyDown($event)", "input": "onInput($event)" } }, ngImport: i0 }); }
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NumberRotationDirective, decorators: [{
83
+ type: Directive,
84
+ args: [{
85
+ selector: 'input[ngilNumberRotation]'
86
+ }]
87
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NgControl }], propDecorators: { min: [{
88
+ type: Input
89
+ }], max: [{
90
+ type: Input
91
+ }], buttonUp: [{
92
+ type: Input
93
+ }], buttonDown: [{
94
+ type: Input
95
+ }], onKeyDown: [{
96
+ type: HostListener,
97
+ args: ['keydown', ['$event']]
98
+ }], onInput: [{
99
+ type: HostListener,
100
+ args: ['input', ['$event']]
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXJvdGF0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdpbC91aS9mb3JtLWlucHV0cy9zcmMvbGliL2RpcmVjdGl2ZXMvbnVtYmVyLXJvdGF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLHVCQUF1QjtJQU1sQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFnQkQsWUFBNkIsVUFBd0MsRUFBbUIsU0FBb0I7UUFBL0UsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFBbUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXZCbkcsUUFBRyxHQUFHLENBQUMsQ0FBQztRQUNSLFFBQUcsR0FBRyxFQUFFLENBQUM7UUFTbEIsY0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBUSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDO1FBR0YsWUFBTyxHQUFHLENBQUMsS0FBaUIsRUFBUSxFQUFFO1lBQ3BDLElBQUksS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztZQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDdEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxD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QUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQzs4R0F4RlUsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7dUdBRVUsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT04sU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNbkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdpbnB1dFtuZ2lsTnVtYmVyUm90YXRpb25dJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTnVtYmVyUm90YXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbWluID0gMDtcclxuICBASW5wdXQoKSBtYXggPSAxMDtcclxuICBASW5wdXQoKSBidXR0b25VcD86IEhUTUxFbGVtZW50O1xyXG4gIEBJbnB1dCgpIGJ1dHRvbkRvd24/OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4LnRvU3RyaW5nKCkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLm9uS2V5RG93bkV2ZW50KGV2ZW50KTtcclxuICB9O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pXHJcbiAgb25JbnB1dCA9IChldmVudDogSW5wdXRFdmVudCk6IHZvaWQgPT4ge1xyXG4gICAgbGV0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgIGlmICgrdmFsdWUgPiB0aGlzLm1heCkge1xyXG4gICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKHRoaXMubGVuZ3RoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0VmFsdWUoK3ZhbHVlKTtcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sIHByaXZhdGUgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZS50b1N0cmluZygpLnBhZFN0YXJ0KHRoaXMubGVuZ3RoLCAnMCcpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5idXR0b25VcD8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9uVXApO1xyXG4gICAgdGhpcy5idXR0b25Eb3duPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25Eb3duKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25LZXlEb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc0tleVZhbGlkKGV2ZW50LmtleSkpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLm9uVXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLm9uRG93bigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0tleVZhbGlkKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoa2V5Lmxlbmd0aCAhPT0gMSB8fCAhaXNOYU4oK2tleSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblVwID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSArdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICB0aGlzLnNldFZhbHVlKHZhbHVlICsgMSk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBvbkRvd24gPSAoKTogdm9pZCA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9ICt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgIHRoaXMuc2V0VmFsdWUodmFsdWUgLSAxKTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHNldFZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSA8IHRoaXMubWluKSB7XHJcbiAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh0aGlzLm1heCk7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID4gdGhpcy5tYXgpIHtcclxuICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKHRoaXMubWluKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldElucHV0VmFsdWUodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZS50b1N0cmluZygpLnBhZFN0YXJ0KHRoaXMubGVuZ3RoLCAnMCcpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmJ1dHRvblVwPy5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25VcCk7XHJcbiAgICB0aGlzLmJ1dHRvbkRvd24/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkRvd24pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,68 @@
1
+ import { OverlayModule } from '@angular/cdk/overlay';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgModule } from '@angular/core';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { NgilInputComponent } from './components/input/input.component';
6
+ import { OverlayToggleDirective } from './components/overlay/overlay-toggle.directive';
7
+ import { NgilOverlayComponent } from './components/overlay/overlay.component';
8
+ import { NgilSelectOptionsComponent } from './components/select-options/select-options.component';
9
+ import { NgilSelectComponent } from './components/select/select.component';
10
+ import { NgilTextareaComponent } from './components/textarea/textarea.component';
11
+ import { PickerToggleComponent } from './components/time-picker-overlay/picker-toggle';
12
+ import { NgilTimePickerOverlayComponent } from './components/time-picker-overlay/time-picker-overlay.component';
13
+ import { NgilTimePickerComponent } from './components/time-picker/time-picker.component';
14
+ import { TimePickerDirective } from './components/time-picker/time-picker.directive';
15
+ import { NumberRotationDirective } from './directives/number-rotation.directive';
16
+ import * as i0 from "@angular/core";
17
+ export class NgilUiFormModule {
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgilUiFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
19
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: NgilUiFormModule, declarations: [NgilInputComponent,
20
+ NgilTimePickerComponent,
21
+ NgilTimePickerOverlayComponent,
22
+ PickerToggleComponent,
23
+ NumberRotationDirective,
24
+ TimePickerDirective,
25
+ NgilSelectComponent,
26
+ NgilTextareaComponent,
27
+ NgilSelectOptionsComponent,
28
+ NgilOverlayComponent,
29
+ OverlayToggleDirective], imports: [CommonModule, ReactiveFormsModule, OverlayModule], exports: [NgilInputComponent,
30
+ NgilSelectComponent,
31
+ NgilTextareaComponent,
32
+ NgilTimePickerComponent,
33
+ NgilTimePickerOverlayComponent,
34
+ PickerToggleComponent,
35
+ NumberRotationDirective,
36
+ TimePickerDirective] }); }
37
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgilUiFormModule, imports: [CommonModule, ReactiveFormsModule, OverlayModule] }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgilUiFormModule, decorators: [{
40
+ type: NgModule,
41
+ args: [{
42
+ imports: [CommonModule, ReactiveFormsModule, OverlayModule],
43
+ declarations: [
44
+ NgilInputComponent,
45
+ NgilTimePickerComponent,
46
+ NgilTimePickerOverlayComponent,
47
+ PickerToggleComponent,
48
+ NumberRotationDirective,
49
+ TimePickerDirective,
50
+ NgilSelectComponent,
51
+ NgilTextareaComponent,
52
+ NgilSelectOptionsComponent,
53
+ NgilOverlayComponent,
54
+ OverlayToggleDirective
55
+ ],
56
+ exports: [
57
+ NgilInputComponent,
58
+ NgilSelectComponent,
59
+ NgilTextareaComponent,
60
+ NgilTimePickerComponent,
61
+ NgilTimePickerOverlayComponent,
62
+ PickerToggleComponent,
63
+ NumberRotationDirective,
64
+ TimePickerDirective
65
+ ]
66
+ }]
67
+ }] });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdpbC11aS1mb3JtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdpbC91aS9mb3JtLWlucHV0cy9zcmMvbGliL25naWwtdWktZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQTRCakYsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBdkJ6QixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLDBCQUEwQjtZQUMxQixvQkFBb0I7WUFDcEIsc0JBQXNCLGFBWmQsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsYUFleEQsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLG1CQUFtQjsrR0FHVixnQkFBZ0IsWUF6QmpCLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhOzsyRkF5Qi9DLGdCQUFnQjtrQkExQjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztvQkFDM0QsWUFBWSxFQUFFO3dCQUNaLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2Qiw4QkFBOEI7d0JBQzlCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2Qiw4QkFBOEI7d0JBQzlCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdpbElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92ZXJsYXlUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvb3ZlcmxheS9vdmVybGF5LXRvZ2dsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOZ2lsT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vdmVybGF5L292ZXJsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdpbFNlbGVjdE9wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0LW9wdGlvbnMvc2VsZWN0LW9wdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdpbFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5naWxUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQaWNrZXJUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZS1waWNrZXItb3ZlcmxheS9waWNrZXItdG9nZ2xlJztcclxuaW1wb3J0IHsgTmdpbFRpbWVQaWNrZXJPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWUtcGlja2VyLW92ZXJsYXkvdGltZS1waWNrZXItb3ZlcmxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2lsVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaW1lUGlja2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE51bWJlclJvdGF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL251bWJlci1yb3RhdGlvbi5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBPdmVybGF5TW9kdWxlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIE5naWxJbnB1dENvbXBvbmVudCxcclxuICAgIE5naWxUaW1lUGlja2VyQ29tcG9uZW50LFxyXG4gICAgTmdpbFRpbWVQaWNrZXJPdmVybGF5Q29tcG9uZW50LFxyXG4gICAgUGlja2VyVG9nZ2xlQ29tcG9uZW50LFxyXG4gICAgTnVtYmVyUm90YXRpb25EaXJlY3RpdmUsXHJcbiAgICBUaW1lUGlja2VyRGlyZWN0aXZlLFxyXG4gICAgTmdpbFNlbGVjdENvbXBvbmVudCxcclxuICAgIE5naWxUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIE5naWxTZWxlY3RPcHRpb25zQ29tcG9uZW50LFxyXG4gICAgTmdpbE92ZXJsYXlDb21wb25lbnQsXHJcbiAgICBPdmVybGF5VG9nZ2xlRGlyZWN0aXZlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBOZ2lsSW5wdXRDb21wb25lbnQsXHJcbiAgICBOZ2lsU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgTmdpbFRleHRhcmVhQ29tcG9uZW50LFxyXG4gICAgTmdpbFRpbWVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBOZ2lsVGltZVBpY2tlck92ZXJsYXlDb21wb25lbnQsXHJcbiAgICBQaWNrZXJUb2dnbGVDb21wb25lbnQsXHJcbiAgICBOdW1iZXJSb3RhdGlvbkRpcmVjdGl2ZSxcclxuICAgIFRpbWVQaWNrZXJEaXJlY3RpdmVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ2lsVWlGb3JtTW9kdWxlIHt9XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdpbC1mb3JtLWlucHV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdpbC91aS9mb3JtLWlucHV0cy9zcmMvbmdpbC1mb3JtLWlucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==