libey-ng-component-library 0.0.18 → 0.0.20
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/libey-ng-component-library.umd.js +1757 -21
- package/bundles/libey-ng-component-library.umd.js.map +1 -1
- package/esm2015/lib/libey-ng-component-library.module.js +22 -6
- package/esm2015/lib/signature/libey-ng-signature/libey-ng-signature.component.js +197 -0
- package/esm2015/lib/signature/libey-ng-signature.module.js +53 -0
- package/esm2015/public-api.js +9 -1
- package/esm2015/utils/SigWeb/SigWeb.js +1442 -0
- package/fesm2015/libey-ng-component-library.js +1707 -7
- package/fesm2015/libey-ng-component-library.js.map +1 -1
- package/lib/libey-ng-component-library.module.d.ts +3 -1
- package/lib/signature/libey-ng-signature/libey-ng-signature.component.d.ts +40 -0
- package/lib/signature/libey-ng-signature.module.d.ts +12 -0
- package/package.json +5 -1
- package/public-api.d.ts +8 -0
- package/utils/SigWeb/SigWeb.d.ts +219 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { Component, ViewChild, Output, EventEmitter, Input, } from '@angular/core';
|
|
2
|
+
import { SigWebTablet } from '../../../utils/SigWeb/SigWeb';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { SignaturePad } from 'angular2-signaturepad';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "angular2-signaturepad";
|
|
7
|
+
import * as i2 from "@ng-select/ng-select";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i4 from "@angular/forms";
|
|
10
|
+
class OutputMessage {
|
|
11
|
+
}
|
|
12
|
+
export class LibeyNgSignatureComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.OutputSignature = new EventEmitter();
|
|
15
|
+
this.DeviceType = 'mousepad';
|
|
16
|
+
this._destroy$ = new Subject();
|
|
17
|
+
this.widthView = 500;
|
|
18
|
+
this.heightView = 200;
|
|
19
|
+
this.widthRender = 500;
|
|
20
|
+
this.heightRender = 200;
|
|
21
|
+
this.signaturePadOptions = {
|
|
22
|
+
minWidth: 5,
|
|
23
|
+
canvasWidth: this.widthView,
|
|
24
|
+
canvasHeight: this.heightView,
|
|
25
|
+
};
|
|
26
|
+
this.FileValidated = false;
|
|
27
|
+
this.NotDriver = false;
|
|
28
|
+
this.UploadFile = null;
|
|
29
|
+
}
|
|
30
|
+
ngAfterViewInit() {
|
|
31
|
+
this.InitDevice();
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
this.closingSigWeb();
|
|
35
|
+
this._destroy$.next(true);
|
|
36
|
+
}
|
|
37
|
+
ChangeDevice() {
|
|
38
|
+
this.NotDriver = false;
|
|
39
|
+
this.UploadFile = null;
|
|
40
|
+
this.File = null;
|
|
41
|
+
setTimeout(() => {
|
|
42
|
+
this.InitDevice();
|
|
43
|
+
}, 200);
|
|
44
|
+
}
|
|
45
|
+
InitDevice() {
|
|
46
|
+
if (this.DeviceType == 'pinpad') {
|
|
47
|
+
this.cnvContext = (this.canvas.nativeElement).getContext('2d');
|
|
48
|
+
}
|
|
49
|
+
if (this.DeviceType == 'mousepad') {
|
|
50
|
+
this.signaturePad.set('minWidth', 5);
|
|
51
|
+
this.signaturePad.clear();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
closingSigWeb() {
|
|
55
|
+
SigWebTablet.ClearTablet();
|
|
56
|
+
SigWebTablet.SetTabletState(0, this.tmr, null);
|
|
57
|
+
}
|
|
58
|
+
onSign() {
|
|
59
|
+
this.NotDriver = false;
|
|
60
|
+
this.UploadFile = null;
|
|
61
|
+
var driver = SigWebTablet.GetVersionString();
|
|
62
|
+
if (driver == null) {
|
|
63
|
+
this.NotDriver = true;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.NotDriver = false;
|
|
67
|
+
console.log('onSign Clicked!');
|
|
68
|
+
SigWebTablet.SetDisplayXSize(this.widthRender);
|
|
69
|
+
SigWebTablet.SetDisplayYSize(this.heightRender);
|
|
70
|
+
SigWebTablet.SetTabletState(0, this.tmr, null);
|
|
71
|
+
SigWebTablet.SetJustifyMode(0);
|
|
72
|
+
SigWebTablet.ClearTablet();
|
|
73
|
+
if (this.tmr == null) {
|
|
74
|
+
this.tmr = SigWebTablet.SetTabletState(1, this.cnvContext, 50);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
SigWebTablet.SetTabletState(0, this.tmr, null);
|
|
78
|
+
this.tmr = null;
|
|
79
|
+
this.tmr = SigWebTablet.SetTabletState(1, this.cnvContext, 50);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
onClear() {
|
|
84
|
+
if (this.UploadFile == null) {
|
|
85
|
+
if (this.DeviceType == 'pinpad') {
|
|
86
|
+
SigWebTablet.ClearTablet();
|
|
87
|
+
if (this.cnvContext) {
|
|
88
|
+
this.cnvContext.clearRect(0, 0, this.canvas.nativeElement.width, this.canvas.nativeElement.height);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (this.DeviceType == 'mousepad') {
|
|
92
|
+
this.signaturePad.clear();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.File = null;
|
|
97
|
+
this.UploadFile = null;
|
|
98
|
+
this.ChangeDevice();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
onDone() {
|
|
102
|
+
var result = new OutputMessage();
|
|
103
|
+
if (this.UploadFile == null) {
|
|
104
|
+
if (this.DeviceType == 'pinpad') {
|
|
105
|
+
// if (Number(SigWebTablet.NumberOfTabletPoints()) === 0) {
|
|
106
|
+
// alert('Por favor firme antes de continuar');
|
|
107
|
+
// } else {
|
|
108
|
+
SigWebTablet.SetTabletState(0, this.tmr, null);
|
|
109
|
+
SigWebTablet.SetSigCompressionMode(1);
|
|
110
|
+
result.bioSigData = SigWebTablet.GetSigString();
|
|
111
|
+
result.sigImgData = SigWebTablet.GetSigString();
|
|
112
|
+
SigWebTablet.SetImageXSize(this.widthRender);
|
|
113
|
+
SigWebTablet.SetImageYSize(this.heightRender);
|
|
114
|
+
SigWebTablet.SetImagePenWidth(5);
|
|
115
|
+
SigWebTablet.GetSigImageB64((base64) => {
|
|
116
|
+
result.sigString = "data:image/png;base64," + base64;
|
|
117
|
+
this.OutputSignature.emit(result);
|
|
118
|
+
});
|
|
119
|
+
// }
|
|
120
|
+
}
|
|
121
|
+
if (this.DeviceType == 'mousepad') {
|
|
122
|
+
var result = new OutputMessage();
|
|
123
|
+
result.sigString = this.signaturePad.toDataURL();
|
|
124
|
+
this.OutputSignature.emit(result);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
result.sigString = this.UploadFile;
|
|
129
|
+
this.OutputSignature.emit(result);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
fileEvent(event) {
|
|
133
|
+
this.UploadFile = null;
|
|
134
|
+
this.FileValidated = false;
|
|
135
|
+
const file = event.target.files[0];
|
|
136
|
+
if (file.type == 'image/jpeg' || file.type == 'image/png') {
|
|
137
|
+
this.FileValidated = false;
|
|
138
|
+
const newWidth = this.widthRender;
|
|
139
|
+
const newHeight = this.heightRender;
|
|
140
|
+
this.resizeImage(file, newWidth, newHeight)
|
|
141
|
+
.then((resizedImageDataUrl) => {
|
|
142
|
+
this.UploadFile = resizedImageDataUrl;
|
|
143
|
+
})
|
|
144
|
+
.catch((error) => {
|
|
145
|
+
console.error('Error al redimensionar la imagen:', error);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this.File = null;
|
|
150
|
+
this.UploadFile = null;
|
|
151
|
+
this.FileValidated = true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
resizeImage(image, newWidth, newHeight) {
|
|
155
|
+
return new Promise((resolve, reject) => {
|
|
156
|
+
const reader = new FileReader();
|
|
157
|
+
reader.onload = (e) => {
|
|
158
|
+
const img = new Image();
|
|
159
|
+
img.src = e.target.result;
|
|
160
|
+
img.onload = () => {
|
|
161
|
+
const canvas = document.createElement('canvas');
|
|
162
|
+
const ctx = canvas.getContext('2d');
|
|
163
|
+
canvas.width = newWidth;
|
|
164
|
+
canvas.height = newHeight;
|
|
165
|
+
ctx.drawImage(img, 0, 0, newWidth, newHeight);
|
|
166
|
+
const resizedImageDataUrl = canvas.toDataURL(image.type);
|
|
167
|
+
resolve(resizedImageDataUrl);
|
|
168
|
+
};
|
|
169
|
+
img.onerror = (error) => {
|
|
170
|
+
reject(error);
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
reader.readAsDataURL(image);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
LibeyNgSignatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LibeyNgSignatureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
178
|
+
LibeyNgSignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: LibeyNgSignatureComponent, selector: "lib-libey-ng-signature", inputs: { DeviceType: "DeviceType" }, outputs: { OutputSignature: "OutputSignature" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["sigImg"], descendants: true }, { propertyName: "signaturePad", first: true, predicate: SignaturePad, descendants: true }], ngImport: i0, template: "<div class=\"container\">\n <div *ngIf=\"UploadFile==null\">\n <div *ngIf=\"DeviceType=='pinpad'\" style=\"cursor: pointer; border: 1px ridge #d2d2d2;\">\n <canvas (click)=\"onSign()\" #sigImg [width]=\"widthView\" [height]=\"heightView\"></canvas> \n </div>\n <div *ngIf=\"DeviceType=='mousepad'\" style=\"border: 1px ridge #d2d2d2;\">\n <signature-pad [options]=\"signaturePadOptions\"></signature-pad>\n </div>\n </div>\n <div *ngIf=\"UploadFile!=null\" style=\"border: 1px ridge #d2d2d2;\">\n <img [src]=\"UploadFile\" [width]=\"widthView\" [height]=\"heightView\" />\n </div>\n</div>\n\n<div class=\"row\">\n <div class=\"col-md-12\">\n <input type=\"file\" (change)=\"fileEvent($event)\" [(ngModel)]=\"File\" class=\"form-control form-control-ph\"\n accept=\"image/png, image/jpeg\" style=\"width: 485px;\">\n <label *ngIf=\"FileValidated\" [ngClass]=\"'text-danger'\">Archivo requerido. Formatos permitidos (jpeg, jpg, png)</label>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col-md-6\">\n <ng-select [(ngModel)]=\"DeviceType\" class=\"ng-select\" placeholder=\"Seleccionar\" [clearable]=\"false\"\n (change)=\"ChangeDevice()\">\n <ng-option [value]=\"'pinpad'\">Pinpad</ng-option>\n <ng-option [value]=\"'mousepad'\">Mousepad</ng-option>\n </ng-select>\n <label *ngIf=\"NotDriver\" [ngClass]=\"'text-danger'\">No tiene el driver instalado</label>\n </div>\n <div class=\"col-md-6\">\n <p class=\"text-primary font-link-rp\" style=\"text-align: right; cursor: pointer;\" (click)=\"onClear()\">\n Limpiar firma\n </p>\n </div>\n</div>\n\n<div class=\"modal-footer mt-15 mb-4\">\n <button type=\"button\" class=\"btn btn-primary btn-save-rp\" (click)=\"onDone()\"> \n <i class=\"icon-save-white\"></i> Guardar\n </button>\n</div>", styles: [".container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}\n"], components: [{ type: i1.SignaturePad, selector: "signature-pad", inputs: ["options"], outputs: ["onBeginEvent", "onEndEvent"] }, { type: i2.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i2.ɵr, selector: "ng-option", inputs: ["disabled", "value"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LibeyNgSignatureComponent, decorators: [{
|
|
180
|
+
type: Component,
|
|
181
|
+
args: [{
|
|
182
|
+
selector: 'lib-libey-ng-signature',
|
|
183
|
+
templateUrl: './libey-ng-signature.component.html',
|
|
184
|
+
styleUrls: ['./libey-ng-signature.component.css'],
|
|
185
|
+
}]
|
|
186
|
+
}], ctorParameters: function () { return []; }, propDecorators: { OutputSignature: [{
|
|
187
|
+
type: Output
|
|
188
|
+
}], DeviceType: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], canvas: [{
|
|
191
|
+
type: ViewChild,
|
|
192
|
+
args: ['sigImg', { static: false }]
|
|
193
|
+
}], signaturePad: [{
|
|
194
|
+
type: ViewChild,
|
|
195
|
+
args: [SignaturePad]
|
|
196
|
+
}] } });
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliZXktbmctc2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYmV5LW5nLWNvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvc2lnbmF0dXJlL2xpYmV5LW5nLXNpZ25hdHVyZS9saWJleS1uZy1zaWduYXR1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliZXktbmctY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9zaWduYXR1cmUvbGliZXktbmctc2lnbmF0dXJlL2xpYmV5LW5nLXNpZ25hdHVyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUdULFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQU9yRCxNQUFNLGFBQWE7Q0FJbEI7QUFPRCxNQUFNLE9BQU8seUJBQXlCO0lBdUJwQztRQXRCVSxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBQ3RELGVBQVUsR0FBVyxVQUFVLENBQUM7UUFFakMsY0FBUyxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBTTdELGNBQVMsR0FBVyxHQUFHLENBQUM7UUFDeEIsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUN6QixnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQUMxQixpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQUMzQix3QkFBbUIsR0FBVztZQUM1QixRQUFRLEVBQUUsQ0FBQztZQUNYLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUztZQUMz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bXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaWdXZWJUYWJsZXQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9TaWdXZWIvU2lnV2ViJztcbmltcG9ydCB7IEZvcm0sIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2lnbmF0dXJlUGFkIH0gZnJvbSAnYW5ndWxhcjItc2lnbmF0dXJlcGFkJztcbmludGVyZmFjZSBJT3V0cHV0TWVzc2FnZSB7XG4gIGJpb1NpZ0RhdGE6IHN0cmluZztcbiAgc2lnSW1nRGF0YTogc3RyaW5nO1xuICBzaWdTdHJpbmc6IHN0cmluZztcbn1cblxuY2xhc3MgT3V0cHV0TWVzc2FnZSBpbXBsZW1lbnRzIElPdXRwdXRNZXNzYWdlIHtcbiAgYmlvU2lnRGF0YTogc3RyaW5nO1xuICBzaWdJbWdEYXRhOiBzdHJpbmc7XG4gIHNpZ1N0cmluZzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbGliZXktbmctc2lnbmF0dXJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYmV5LW5nLXNpZ25hdHVyZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpYmV5LW5nLXNpZ25hdHVyZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExpYmV5TmdTaWduYXR1cmVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAT3V0cHV0KCkgT3V0cHV0U2lnbmF0dXJlID0gbmV3IEV2ZW50RW1pdHRlcjxJT3V0cHV0TWVzc2FnZT4oKTtcbiAgQElucHV0KCkgRGV2aWNlVHlwZTogc3RyaW5nID0gJ21vdXNlcGFkJztcblxuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIEBWaWV3Q2hpbGQoJ3NpZ0ltZycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBjYW52YXMhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcbiAgQFZpZXdDaGlsZChTaWduYXR1cmVQYWQpIHNpZ25hdHVyZVBhZDogU2lnbmF0dXJlUGFkO1xuICBjbnZDb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG4gIHRtcjogYW55O1xuICB3aWR0aFZpZXc6IG51bWJlciA9IDUwMDtcbiAgaGVpZ2h0VmlldzogbnVtYmVyID0gMjAwO1xuICB3aWR0aFJlbmRlcjogbnVtYmVyID0gNTAwO1xuICBoZWlnaHRSZW5kZXI6IG51bWJlciA9IDIwMDtcbiAgc2lnbmF0dXJlUGFkT3B0aW9uczogT2JqZWN0ID0ge1xuICAgIG1pbldpZHRoOiA1LFxuICAgIGNhbnZhc1dpZHRoOiB0aGlzLndpZHRoVmlldyxcbiAgICBjYW52YXNIZWlnaHQ6IHRoaXMuaGVpZ2h0VmlldyxcbiAgfTtcbiAgRmlsZVZhbGlkYXRlZCA9IGZhbHNlO1xuICBOb3REcml2ZXIgPSBmYWxzZTtcbiAgVXBsb2FkRmlsZTogc3RyaW5nID0gbnVsbDtcbiAgRmlsZTogYW55O1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuSW5pdERldmljZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zaW5nU2lnV2ViKCk7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIENoYW5nZURldmljZSgpIHtcbiAgICB0aGlzLk5vdERyaXZlciA9IGZhbHNlO1xuICAgIHRoaXMuVXBsb2FkRmlsZSA9IG51bGw7XG4gICAgdGhpcy5GaWxlID0gbnVsbDtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuSW5pdERldmljZSgpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBJbml0RGV2aWNlKCkge1xuICAgIGlmICh0aGlzLkRldmljZVR5cGUgPT0gJ3BpbnBhZCcpIHtcbiAgICAgIHRoaXMuY252Q29udGV4dCA9ICg8SFRNTENhbnZhc0VsZW1lbnQ+KFxuICAgICAgICB0aGlzLmNhbnZhcy5uYXRpdmVFbGVtZW50XG4gICAgICApKS5nZXRDb250ZXh0KCcyZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5EZXZpY2VUeXBlID09ICdtb3VzZXBhZCcpIHtcbiAgICAgIHRoaXMuc2lnbmF0dXJlUGFkLnNldCgnbWluV2lkdGgnLCA1KTtcbiAgICAgIHRoaXMuc2lnbmF0dXJlUGFkLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2luZ1NpZ1dlYigpIHtcbiAgICBTaWdXZWJUYWJsZXQuQ2xlYXJUYWJsZXQoKTtcbiAgICBTaWdXZWJUYWJsZXQuU2V0VGFibGV0U3RhdGUoMCwgdGhpcy50bXIsIG51bGwpO1xuICB9XG5cbiAgb25TaWduKCkge1xuICAgIHRoaXMuTm90RHJpdmVyID0gZmFsc2U7XG4gICAgdGhpcy5VcGxvYWRGaWxlID0gbnVsbDtcbiAgICB2YXIgZHJpdmVyID0gU2lnV2ViVGFibGV0LkdldFZlcnNpb25TdHJpbmcoKTtcbiAgICBpZihkcml2ZXIgPT0gbnVsbCl7XG4gICAgICB0aGlzLk5vdERyaXZlciA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLk5vdERyaXZlciA9IGZhbHNlO1xuICAgICAgY29uc29sZS5sb2coJ29uU2lnbiBDbGlja2VkIScpO1xuICAgICAgU2lnV2ViVGFibGV0LlNldERpc3BsYXlYU2l6ZSh0aGlzLndpZHRoUmVuZGVyKTtcbiAgICAgIFNpZ1dlYlRhYmxldC5TZXREaXNwbGF5WVNpemUodGhpcy5oZWlnaHRSZW5kZXIpO1xuICAgICAgU2lnV2ViVGFibGV0LlNldFRhYmxldFN0YXRlKDAsIHRoaXMudG1yLCBudWxsKTtcbiAgICAgIFNpZ1dlYlRhYmxldC5TZXRKdXN0aWZ5TW9kZSgwKTtcbiAgICAgIFNpZ1dlYlRhYmxldC5DbGVhclRhYmxldCgpO1xuXG4gICAgICBpZiAodGhpcy50bXIgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnRtciA9IFNpZ1dlYlRhYmxldC5TZXRUYWJsZXRTdGF0ZSgxLCB0aGlzLmNudkNvbnRleHQsIDUwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFNpZ1dlYlRhYmxldC5TZXRUYWJsZXRTdGF0ZSgwLCB0aGlzLnRtciwgbnVsbCk7XG4gICAgICAgIHRoaXMudG1yID0gbnVsbDtcbiAgICAgICAgdGhpcy50bXIgPSBTaWdXZWJUYWJsZXQuU2V0VGFibGV0U3RhdGUoMSwgdGhpcy5jbnZDb250ZXh0LCA1MCk7XG4gICAgICB9XG4gICAgfSAgICBcbiAgfVxuXG4gIG9uQ2xlYXIoKSB7XG4gICAgaWYodGhpcy5VcGxvYWRGaWxlID09IG51bGwpe1xuICAgICAgaWYgKHRoaXMuRGV2aWNlVHlwZSA9PSAncGlucGFkJykge1xuICAgICAgICBTaWdXZWJUYWJsZXQuQ2xlYXJUYWJsZXQoKTtcbiAgICAgICAgaWYgKHRoaXMuY252Q29udGV4dCkge1xuICAgICAgICAgIHRoaXMuY252Q29udGV4dC5jbGVhclJlY3QoXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIHRoaXMuY2FudmFzLm5hdGl2ZUVsZW1lbnQud2lkdGgsXG4gICAgICAgICAgICB0aGlzLmNhbnZhcy5uYXRpdmVFbGVtZW50LmhlaWdodFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLkRldmljZVR5cGUgPT0gJ21vdXNlcGFkJykge1xuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZC5jbGVhcigpO1xuICAgICAgfVxuICAgIH1lbHNle1xuICAgICAgdGhpcy5GaWxlID0gbnVsbDtcbiAgICAgIHRoaXMuVXBsb2FkRmlsZSA9IG51bGw7XG4gICAgICB0aGlzLkNoYW5nZURldmljZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRG9uZSgpIHtcbiAgICB2YXIgcmVzdWx0ID0gbmV3IE91dHB1dE1lc3NhZ2UoKTtcbiAgICBpZih0aGlzLlVwbG9hZEZpbGUgPT0gbnVsbCl7XG4gICAgICBpZiAodGhpcy5EZXZpY2VUeXBlID09ICdwaW5wYWQnKSB7XG4gICAgICAgIC8vIGlmIChOdW1iZXIoU2lnV2ViVGFibGV0Lk51bWJlck9mVGFibGV0UG9pbnRzKCkpID09PSAwKSB7XG4gICAgICAgIC8vICAgYWxlcnQoJ1BvciBmYXZvciBmaXJtZSBhbnRlcyBkZSBjb250aW51YXInKTtcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgU2lnV2ViVGFibGV0LlNldFRhYmxldFN0YXRlKDAsIHRoaXMudG1yLCBudWxsKTtcblxuICAgICAgICBTaWdXZWJUYWJsZXQuU2V0U2lnQ29tcHJlc3Npb25Nb2RlKDEpO1xuICAgICAgICByZXN1bHQuYmlvU2lnRGF0YSA9IFNpZ1dlYlRhYmxldC5HZXRTaWdTdHJpbmcoKTtcbiAgICAgICAgcmVzdWx0LnNpZ0ltZ0RhdGEgPSBTaWdXZWJUYWJsZXQuR2V0U2lnU3RyaW5nKCk7XG4gICAgICAgIFNpZ1dlYlRhYmxldC5TZXRJbWFnZVhTaXplKHRoaXMud2lkdGhSZW5kZXIpO1xuICAgICAgICBTaWdXZWJUYWJsZXQuU2V0SW1hZ2VZU2l6ZSh0aGlzLmhlaWdodFJlbmRlcik7XG4gICAgICAgIFNpZ1dlYlRhYmxldC5TZXRJbWFnZVBlbldpZHRoKDUpO1xuICAgICAgICBTaWdXZWJUYWJsZXQuR2V0U2lnSW1hZ2VCNjQoKGJhc2U2NDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmVzdWx0LnNpZ1N0cmluZyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LFwiICsgYmFzZTY0O1xuICAgICAgICAgIHRoaXMuT3V0cHV0U2lnbmF0dXJlLmVtaXQocmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLkRldmljZVR5cGUgPT0gJ21vdXNlcGFkJykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IE91dHB1dE1lc3NhZ2UoKTtcbiAgICAgICAgcmVzdWx0LnNpZ1N0cmluZyA9IHRoaXMuc2lnbmF0dXJlUGFkLnRvRGF0YVVSTCgpO1xuICAgICAgICB0aGlzLk91dHB1dFNpZ25hdHVyZS5lbWl0KHJlc3VsdCk7XG4gICAgICB9XG4gICAgfWVsc2V7XG4gICAgICByZXN1bHQuc2lnU3RyaW5nID0gdGhpcy5VcGxvYWRGaWxlO1xuICAgICAgdGhpcy5PdXRwdXRTaWduYXR1cmUuZW1pdChyZXN1bHQpO1xuICAgIH1cbiAgfVxuICBmaWxlRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuVXBsb2FkRmlsZSA9IG51bGw7XG4gICAgdGhpcy5GaWxlVmFsaWRhdGVkID0gZmFsc2U7XG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcbiAgICBpZiAoZmlsZS50eXBlID09ICdpbWFnZS9qcGVnJyB8fCBmaWxlLnR5cGUgPT0gJ2ltYWdlL3BuZycpIHtcbiAgICAgIHRoaXMuRmlsZVZhbGlkYXRlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgbmV3V2lkdGggPSB0aGlzLndpZHRoUmVuZGVyO1xuICAgICAgY29uc3QgbmV3SGVpZ2h0ID0gdGhpcy5oZWlnaHRSZW5kZXI7XG4gICAgICB0aGlzLnJlc2l6ZUltYWdlKGZpbGUsIG5ld1dpZHRoLCBuZXdIZWlnaHQpXG4gICAgICAgIC50aGVuKChyZXNpemVkSW1hZ2VEYXRhVXJsKSA9PiB7XG4gICAgICAgICAgdGhpcy5VcGxvYWRGaWxlID0gcmVzaXplZEltYWdlRGF0YVVybDtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFsIHJlZGltZW5zaW9uYXIgbGEgaW1hZ2VuOicsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLkZpbGUgPSBudWxsO1xuICAgICAgdGhpcy5VcGxvYWRGaWxlID0gbnVsbDtcbiAgICAgIHRoaXMuRmlsZVZhbGlkYXRlZCA9IHRydWU7XG4gICAgfVxuICB9XG4gIHJlc2l6ZUltYWdlKGltYWdlOiBGaWxlLCBuZXdXaWR0aDogbnVtYmVyLCBuZXdIZWlnaHQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkID0gKGUpID0+IHtcbiAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgIGltZy5zcmMgPSBlLnRhcmdldC5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICAgIGNhbnZhcy53aWR0aCA9IG5ld1dpZHRoO1xuICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBuZXdIZWlnaHQ7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIG5ld1dpZHRoLCBuZXdIZWlnaHQpO1xuICAgICAgICAgIGNvbnN0IHJlc2l6ZWRJbWFnZURhdGFVcmwgPSBjYW52YXMudG9EYXRhVVJMKGltYWdlLnR5cGUpO1xuICAgICAgICAgIHJlc29sdmUocmVzaXplZEltYWdlRGF0YVVybCk7XG4gICAgICAgIH07XG4gICAgICAgIGltZy5vbmVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChpbWFnZSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgPGRpdiAqbmdJZj1cIlVwbG9hZEZpbGU9PW51bGxcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiRGV2aWNlVHlwZT09J3BpbnBhZCdcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjsgYm9yZGVyOiAxcHggcmlkZ2UgI2QyZDJkMjtcIj5cbiAgICAgIDxjYW52YXMgIChjbGljayk9XCJvblNpZ24oKVwiICNzaWdJbWcgW3dpZHRoXT1cIndpZHRoVmlld1wiIFtoZWlnaHRdPVwiaGVpZ2h0Vmlld1wiPjwvY2FudmFzPiAgXG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIkRldmljZVR5cGU9PSdtb3VzZXBhZCdcIiBzdHlsZT1cImJvcmRlcjogMXB4IHJpZGdlICNkMmQyZDI7XCI+XG4gICAgICA8c2lnbmF0dXJlLXBhZCBbb3B0aW9uc109XCJzaWduYXR1cmVQYWRPcHRpb25zXCI+PC9zaWduYXR1cmUtcGFkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIlVwbG9hZEZpbGUhPW51bGxcIiBzdHlsZT1cImJvcmRlcjogMXB4IHJpZGdlICNkMmQyZDI7XCI+XG4gICAgPGltZyBbc3JjXT1cIlVwbG9hZEZpbGVcIiBbd2lkdGhdPVwid2lkdGhWaWV3XCIgW2hlaWdodF09XCJoZWlnaHRWaWV3XCIgLz5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgKGNoYW5nZSk9XCJmaWxlRXZlbnQoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiRmlsZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1waFwiXG4gICAgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCIgc3R5bGU9XCJ3aWR0aDogNDg1cHg7XCI+XG4gICAgPGxhYmVsICpuZ0lmPVwiRmlsZVZhbGlkYXRlZFwiIFtuZ0NsYXNzXT1cIid0ZXh0LWRhbmdlcidcIj5BcmNoaXZvIHJlcXVlcmlkby4gRm9ybWF0b3MgcGVybWl0aWRvcyAoanBlZywganBnLCBwbmcpPC9sYWJlbD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICA8bmctc2VsZWN0IFsobmdNb2RlbCldPVwiRGV2aWNlVHlwZVwiIGNsYXNzPVwibmctc2VsZWN0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY2Npb25hclwiIFtjbGVhcmFibGVdPVwiZmFsc2VcIlxuICAgICAgKGNoYW5nZSk9XCJDaGFuZ2VEZXZpY2UoKVwiPlxuICAgICAgICAgIDxuZy1vcHRpb24gW3ZhbHVlXT1cIidwaW5wYWQnXCI+UGlucGFkPC9uZy1vcHRpb24+XG4gICAgICAgICAgPG5nLW9wdGlvbiBbdmFsdWVdPVwiJ21vdXNlcGFkJ1wiPk1vdXNlcGFkPC9uZy1vcHRpb24+XG4gICAgICA8L25nLXNlbGVjdD5cbiAgICAgIDxsYWJlbCAqbmdJZj1cIk5vdERyaXZlclwiIFtuZ0NsYXNzXT1cIid0ZXh0LWRhbmdlcidcIj5ObyB0aWVuZSBlbCBkcml2ZXIgaW5zdGFsYWRvPC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1saW5rLXJwXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJvbkNsZWFyKClcIj5cbiAgICAgICAgICBMaW1waWFyIGZpcm1hXG4gICAgICA8L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXIgbXQtMTUgbWItNFwiPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc2F2ZS1ycFwiIChjbGljayk9XCJvbkRvbmUoKVwiPiBcbiAgICAgIDxpIGNsYXNzPVwiaWNvbi1zYXZlLXdoaXRlXCI+PC9pPiBHdWFyZGFyXG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { LibeyNgSignatureComponent } from './libey-ng-signature/libey-ng-signature.component';
|
|
5
|
+
import { SignaturePadModule } from 'angular2-signaturepad';
|
|
6
|
+
import { NgSelectModule } from '@ng-select/ng-select';
|
|
7
|
+
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class LibeyNgSignatureModule {
|
|
10
|
+
}
|
|
11
|
+
LibeyNgSignatureModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LibeyNgSignatureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
LibeyNgSignatureModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LibeyNgSignatureModule, declarations: [LibeyNgSignatureComponent], imports: [FormsModule,
|
|
13
|
+
ReactiveFormsModule,
|
|
14
|
+
SignaturePadModule,
|
|
15
|
+
CommonModule,
|
|
16
|
+
NgSelectModule,
|
|
17
|
+
NgbModule], exports: [LibeyNgSignatureComponent,
|
|
18
|
+
SignaturePadModule,
|
|
19
|
+
NgSelectModule,
|
|
20
|
+
NgbModule] });
|
|
21
|
+
LibeyNgSignatureModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LibeyNgSignatureModule, imports: [[
|
|
22
|
+
FormsModule,
|
|
23
|
+
ReactiveFormsModule,
|
|
24
|
+
SignaturePadModule,
|
|
25
|
+
CommonModule,
|
|
26
|
+
NgSelectModule,
|
|
27
|
+
NgbModule
|
|
28
|
+
], SignaturePadModule,
|
|
29
|
+
NgSelectModule,
|
|
30
|
+
NgbModule] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LibeyNgSignatureModule, decorators: [{
|
|
32
|
+
type: NgModule,
|
|
33
|
+
args: [{
|
|
34
|
+
declarations: [
|
|
35
|
+
LibeyNgSignatureComponent
|
|
36
|
+
],
|
|
37
|
+
imports: [
|
|
38
|
+
FormsModule,
|
|
39
|
+
ReactiveFormsModule,
|
|
40
|
+
SignaturePadModule,
|
|
41
|
+
CommonModule,
|
|
42
|
+
NgSelectModule,
|
|
43
|
+
NgbModule
|
|
44
|
+
],
|
|
45
|
+
exports: [
|
|
46
|
+
LibeyNgSignatureComponent,
|
|
47
|
+
SignaturePadModule,
|
|
48
|
+
NgSelectModule,
|
|
49
|
+
NgbModule
|
|
50
|
+
]
|
|
51
|
+
}]
|
|
52
|
+
}] });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliZXktbmctc2lnbmF0dXJlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYmV5LW5nLWNvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvc2lnbmF0dXJlL2xpYmV5LW5nLXNpZ25hdHVyZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBcUJ2RCxNQUFNLE9BQU8sc0JBQXNCOztvSEFBdEIsc0JBQXNCO3FIQUF0QixzQkFBc0IsaUJBakIvQix5QkFBeUIsYUFHekIsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsWUFBWTtRQUNaLGNBQWM7UUFDZCxTQUFTLGFBR1QseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsU0FBUztxSEFHQSxzQkFBc0IsWUFmeEI7WUFDUCxXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixZQUFZO1lBQ1osY0FBYztZQUNkLFNBQVM7U0FDVixFQUdDLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsU0FBUzs0RkFHQSxzQkFBc0I7a0JBbkJsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsU0FBUztxQkFDVjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3dCQUN6QixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsU0FBUztxQkFDVjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMaWJleU5nU2lnbmF0dXJlQ29tcG9uZW50IH0gZnJvbSAnLi9saWJleS1uZy1zaWduYXR1cmUvbGliZXktbmctc2lnbmF0dXJlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWduYXR1cmVQYWRNb2R1bGUgIH0gZnJvbSAnYW5ndWxhcjItc2lnbmF0dXJlcGFkJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBMaWJleU5nU2lnbmF0dXJlQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNpZ25hdHVyZVBhZE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTmdTZWxlY3RNb2R1bGUsXG4gICAgTmdiTW9kdWxlIFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTGliZXlOZ1NpZ25hdHVyZUNvbXBvbmVudCxcbiAgICBTaWduYXR1cmVQYWRNb2R1bGUsXG4gICAgTmdTZWxlY3RNb2R1bGUsXG4gICAgTmdiTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGliZXlOZ1NpZ25hdHVyZU1vZHVsZSB7IH1cbiJdfQ==
|
package/esm2015/public-api.js
CHANGED
|
@@ -7,4 +7,12 @@ export * from './lib/libey-ng-component-library.module';
|
|
|
7
7
|
export * from './lib/table/libey-ng-table.module';
|
|
8
8
|
export * from './lib/table/libey-ng-table.component';
|
|
9
9
|
export * from './lib/table/directives/libey-column.directive';
|
|
10
|
-
|
|
10
|
+
export * from './lib/signature/libey-ng-signature.module';
|
|
11
|
+
export * from './lib/signature/libey-ng-signature/libey-ng-signature.component';
|
|
12
|
+
export * from './utils/SigWeb/SigWeb';
|
|
13
|
+
import { SignaturePadModule, SignaturePad } from 'angular2-signaturepad';
|
|
14
|
+
export { SignaturePadModule, SignaturePad };
|
|
15
|
+
export { NgSelectModule } from '@ng-select/ng-select';
|
|
16
|
+
export { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
17
|
+
export * from '@popperjs/core';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2xpYmV5LW5nLWNvbXBvbmVudC1saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGxpYmV5LW5nLWNvbXBvbmVudC1saWJyYXJ5XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbGliZXktbmctY29tcG9uZW50LWxpYnJhcnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saWJleS1uZy1jb21wb25lbnQtbGlicmFyeS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGliZXktbmctY29tcG9uZW50LWxpYnJhcnkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYmxlL2xpYmV5LW5nLXRhYmxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJsZS9saWJleS1uZy10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFibGUvZGlyZWN0aXZlcy9saWJleS1jb2x1bW4uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NpZ25hdHVyZS9saWJleS1uZy1zaWduYXR1cmUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NpZ25hdHVyZS9saWJleS1uZy1zaWduYXR1cmUvbGliZXktbmctc2lnbmF0dXJlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL1NpZ1dlYi9TaWdXZWInO1xuaW1wb3J0IHsgU2lnbmF0dXJlUGFkTW9kdWxlLCBTaWduYXR1cmVQYWQgfSBmcm9tICdhbmd1bGFyMi1zaWduYXR1cmVwYWQnO1xuZXhwb3J0IHsgU2lnbmF0dXJlUGFkTW9kdWxlLCBTaWduYXR1cmVQYWQgfTtcbmV4cG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuZXhwb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuZXhwb3J0ICogZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xuIl19
|