ps-toolkit-ui 1.21.42 → 1.21.67
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/ps-toolkit-ui.umd.js +10322 -0
- package/bundles/ps-toolkit-ui.umd.js.map +1 -0
- package/bundles/ps-toolkit-ui.umd.min.js +2 -0
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -0
- package/esm2015/lib/classes/addModal.class.js +36 -0
- package/esm2015/lib/classes/chart.class.js +165 -0
- package/esm2015/lib/classes/currentDataClass.js +17 -0
- package/esm2015/lib/classes/enum.class.js +253 -0
- package/esm2015/lib/classes/excel.class.js +56 -0
- package/esm2015/lib/classes/form.class.js +667 -0
- package/esm2015/lib/classes/header.class.js +16 -0
- package/esm2015/lib/classes/helper.class.js +650 -0
- package/esm2015/lib/classes/lang.class.js +35 -0
- package/esm2015/lib/classes/login.class.js +29 -0
- package/esm2015/lib/classes/modal.class.js +49 -0
- package/esm2015/lib/classes/permission.class.js +63 -0
- package/esm2015/lib/classes/request.class.js +155 -0
- package/esm2015/lib/classes/safehtml.class.js +17 -0
- package/esm2015/lib/classes/safestyle.class.js +17 -0
- package/esm2015/lib/classes/sidebar.class.js +16 -0
- package/esm2015/lib/classes/steps.class.js +45 -0
- package/esm2015/lib/classes/string.class.js +251 -0
- package/esm2015/lib/classes/table.class.js +593 -0
- package/esm2015/lib/components/accordion/accordion.component.js +45 -0
- package/esm2015/lib/components/alert/alert.component.js +39 -0
- package/esm2015/lib/components/base.component.js +54 -0
- package/esm2015/lib/components/calendar/calendar.component.js +98 -0
- package/esm2015/lib/components/chart/chart.component.js +17 -0
- package/esm2015/lib/components/clock/clock.component.js +33 -0
- package/esm2015/lib/components/confirm/confirm.component.js +50 -0
- package/esm2015/lib/components/error/error.component.js +26 -0
- package/esm2015/lib/components/footer/footer.component.js +23 -0
- package/esm2015/lib/components/form/bank-card/form.bank-card.component.js +200 -0
- package/esm2015/lib/components/form/button/form.button.component.js +68 -0
- package/esm2015/lib/components/form/checkbox/form.checkbox.component.js +67 -0
- package/esm2015/lib/components/form/ckeditor/form.ckeditor.component.js +90 -0
- package/esm2015/lib/components/form/date/form.date.component.js +314 -0
- package/esm2015/lib/components/form/datetime/form.datetime.component.js +106 -0
- package/esm2015/lib/components/form/file/form.file.component.js +124 -0
- package/esm2015/lib/components/form/finger/form.finger.component.js +140 -0
- package/esm2015/lib/components/form/hidden/form.hidden.component.js +31 -0
- package/esm2015/lib/components/form/icon/form.icon.component.js +84 -0
- package/esm2015/lib/components/form/index/form.component.js +51 -0
- package/esm2015/lib/components/form/label/form.label.component.js +32 -0
- package/esm2015/lib/components/form/plaque/form.plaque.component.js +258 -0
- package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +468 -0
- package/esm2015/lib/components/form/radio/form.radio.component.js +82 -0
- package/esm2015/lib/components/form/select/form.select.component.js +452 -0
- package/esm2015/lib/components/form/select/item/form.select.item.component.js +27 -0
- package/esm2015/lib/components/form/slide/form.slide.component.js +84 -0
- package/esm2015/lib/components/form/star/form.star.component.js +66 -0
- package/esm2015/lib/components/form/table/form.table.component.js +96 -0
- package/esm2015/lib/components/form/tag/form.tag.component.js +100 -0
- package/esm2015/lib/components/form/textarea/form.textarea.component.js +83 -0
- package/esm2015/lib/components/form/textbox/form.textbox.component.js +227 -0
- package/esm2015/lib/components/form/time/form.time.component.js +149 -0
- package/esm2015/lib/components/form/toggle/form.toggle.component.js +72 -0
- package/esm2015/lib/components/form/tree/form.tree.component.js +157 -0
- package/esm2015/lib/components/form/tree/item/form.tree.item.component.js +50 -0
- package/esm2015/lib/components/form/uploader/form.uploader.component.js +159 -0
- package/esm2015/lib/components/form/vehicle/form.vehicle.component.js +104 -0
- package/esm2015/lib/components/form/vehicle/search/form.vehicle.search.component.js +237 -0
- package/esm2015/lib/components/header/header.component.js +28 -0
- package/esm2015/lib/components/header/sub/sub.header.component.js +14 -0
- package/esm2015/lib/components/layout/layout.component.js +18 -0
- package/esm2015/lib/components/loading/loading.component.js +22 -0
- package/esm2015/lib/components/login/login.component.js +159 -0
- package/esm2015/lib/components/modal/modal.component.js +25 -0
- package/esm2015/lib/components/notfound/notfound.component.js +29 -0
- package/esm2015/lib/components/notification/notification.component.js +14 -0
- package/esm2015/lib/components/sidebar/item/sidebar.item.component.js +55 -0
- package/esm2015/lib/components/sidebar/sidebar.component.js +98 -0
- package/esm2015/lib/components/steps/steps.component.js +88 -0
- package/esm2015/lib/components/table/loading/table.loading.component.js +17 -0
- package/esm2015/lib/components/table/pagination/table.pagination.component.js +84 -0
- package/esm2015/lib/components/table/row/table.row.component.js +451 -0
- package/esm2015/lib/components/table/table.component.js +240 -0
- package/esm2015/lib/components/tooltip/tooltip.component.js +19 -0
- package/esm2015/lib/ps-toolkit-ui.module.js +105 -0
- package/esm2015/lib/services/config.service.js +14 -0
- package/esm2015/lib/services/sidebar.service.js +21 -0
- package/esm2015/ps-toolkit-ui.js +21 -0
- package/esm2015/public-api.js +64 -0
- package/fesm2015/ps-toolkit-ui.js +8927 -0
- package/fesm2015/ps-toolkit-ui.js.map +1 -0
- package/lib/classes/addModal.class.d.ts +14 -0
- package/lib/classes/chart.class.d.ts +15 -0
- package/lib/classes/currentDataClass.d.ts +10 -0
- package/lib/classes/enum.class.d.ts +221 -0
- package/lib/classes/excel.class.d.ts +8 -0
- package/lib/classes/form.class.d.ts +193 -0
- package/lib/classes/header.class.d.ts +8 -0
- package/lib/classes/helper.class.d.ts +50 -0
- package/lib/classes/lang.class.d.ts +5 -0
- package/lib/classes/login.class.d.ts +21 -0
- package/lib/classes/modal.class.d.ts +19 -0
- package/lib/classes/permission.class.d.ts +35 -0
- package/lib/classes/request.class.d.ts +10 -0
- package/lib/classes/safehtml.class.d.ts +7 -0
- package/lib/classes/safestyle.class.d.ts +7 -0
- package/lib/classes/sidebar.class.d.ts +14 -0
- package/lib/classes/steps.class.d.ts +31 -0
- package/lib/classes/string.class.d.ts +249 -0
- package/lib/classes/table.class.d.ts +88 -0
- package/lib/components/accordion/accordion.component.d.ts +7 -0
- package/lib/components/alert/alert.component.d.ts +10 -0
- package/lib/components/base.component.d.ts +17 -0
- package/lib/components/calendar/calendar.component.d.ts +26 -0
- package/lib/components/chart/chart.component.d.ts +5 -0
- package/lib/components/clock/clock.component.d.ts +11 -0
- package/lib/components/confirm/confirm.component.d.ts +14 -0
- package/lib/components/error/error.component.d.ts +7 -0
- package/lib/components/footer/footer.component.d.ts +6 -0
- package/lib/components/form/bank-card/form.bank-card.component.d.ts +28 -0
- package/lib/components/form/button/form.button.component.d.ts +15 -0
- package/lib/components/form/checkbox/form.checkbox.component.d.ts +14 -0
- package/lib/components/form/ckeditor/form.ckeditor.component.d.ts +14 -0
- package/lib/components/form/date/form.date.component.d.ts +45 -0
- package/lib/components/form/datetime/form.datetime.component.d.ts +13 -0
- package/lib/components/form/file/form.file.component.d.ts +18 -0
- package/lib/components/form/finger/form.finger.component.d.ts +15 -0
- package/lib/components/form/hidden/form.hidden.component.d.ts +7 -0
- package/lib/components/form/icon/form.icon.component.d.ts +16 -0
- package/lib/components/form/index/form.component.d.ts +10 -0
- package/lib/components/form/label/form.label.component.d.ts +8 -0
- package/lib/components/form/plaque/form.plaque.component.d.ts +21 -0
- package/lib/components/form/plaque/select/form.plaque.select.component.d.ts +38 -0
- package/lib/components/form/radio/form.radio.component.d.ts +13 -0
- package/lib/components/form/select/form.select.component.d.ts +45 -0
- package/lib/components/form/select/item/form.select.item.component.d.ts +12 -0
- package/lib/components/form/slide/form.slide.component.d.ts +13 -0
- package/lib/components/form/star/form.star.component.d.ts +13 -0
- package/lib/components/form/table/form.table.component.d.ts +9 -0
- package/lib/components/form/tag/form.tag.component.d.ts +16 -0
- package/lib/components/form/textarea/form.textarea.component.d.ts +13 -0
- package/lib/components/form/textbox/form.textbox.component.d.ts +20 -0
- package/lib/components/form/time/form.time.component.d.ts +25 -0
- package/lib/components/form/toggle/form.toggle.component.d.ts +13 -0
- package/lib/components/form/tree/form.tree.component.d.ts +21 -0
- package/lib/components/form/tree/item/form.tree.item.component.d.ts +19 -0
- package/lib/components/form/uploader/form.uploader.component.d.ts +21 -0
- package/lib/components/form/vehicle/form.vehicle.component.d.ts +18 -0
- package/lib/components/form/vehicle/search/form.vehicle.search.component.d.ts +22 -0
- package/lib/components/header/header.component.d.ts +10 -0
- package/lib/components/header/sub/sub.header.component.d.ts +3 -0
- package/lib/components/layout/layout.component.d.ts +7 -0
- package/lib/components/loading/loading.component.d.ts +5 -0
- package/lib/components/login/login.component.d.ts +15 -0
- package/lib/components/modal/modal.component.d.ts +9 -0
- package/lib/components/notfound/notfound.component.d.ts +8 -0
- package/lib/components/notification/notification.component.d.ts +3 -0
- package/lib/components/sidebar/item/sidebar.item.component.d.ts +14 -0
- package/lib/components/sidebar/sidebar.component.d.ts +22 -0
- package/lib/components/steps/steps.component.d.ts +16 -0
- package/lib/components/table/loading/table.loading.component.d.ts +5 -0
- package/lib/components/table/pagination/table.pagination.component.d.ts +15 -0
- package/lib/components/table/row/table.row.component.d.ts +44 -0
- package/lib/components/table/table.component.d.ts +43 -0
- package/lib/components/tooltip/tooltip.component.d.ts +5 -0
- package/lib/ps-toolkit-ui.module.d.ts +4 -0
- package/lib/services/config.service.d.ts +6 -0
- package/lib/services/sidebar.service.d.ts +9 -0
- package/package.json +12 -16
- package/ps-toolkit-ui.d.ts +20 -0
- package/ps-toolkit-ui.metadata.json +1 -0
- package/public-api.d.ts +60 -0
- package/fesm2022/ps-toolkit-ui.mjs +0 -9472
- package/fesm2022/ps-toolkit-ui.mjs.map +0 -1
- package/types/ps-toolkit-ui.d.ts +0 -1671
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import * as $ from 'jquery';
|
|
3
|
+
import { InputError } from '../../../classes/enum.class';
|
|
4
|
+
import { HelperClass } from '../../../classes/helper.class';
|
|
5
|
+
export class FormFileComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.changeIndex = new EventEmitter();
|
|
8
|
+
this.id = HelperClass.random(10);
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() {
|
|
11
|
+
this.inp.setValue = (v) => {
|
|
12
|
+
this.inp.value = v;
|
|
13
|
+
};
|
|
14
|
+
this.inp.isValid = () => {
|
|
15
|
+
this.inp.error = null;
|
|
16
|
+
if (this.inp.required && !this.inp.value) {
|
|
17
|
+
this.inp.error = InputError.Required;
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (!this.inp.required && !this.inp.value) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (this.inp.allowed != null && this.inp.value != null && typeof this.inp.value !== 'string' &&
|
|
24
|
+
this.inp.value.filter(x => typeof x !== 'string').map(x => this.inp.allowed.includes(x.name.split('.').pop().toLowerCase())).filter(x => !x).length > 0) {
|
|
25
|
+
this.inp.error = InputError.NotAllowed;
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
if (this.inp.maxLength !== -1 && this.inp.value != null && typeof this.inp.value !== 'string' &&
|
|
29
|
+
this.inp.value.map(x => x.size > this.inp.maxLength * 1024).filter(x => x).length > 0) {
|
|
30
|
+
this.inp.error = InputError.MaxContent;
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
};
|
|
35
|
+
this.inp.clear = () => {
|
|
36
|
+
this.inp.error = null;
|
|
37
|
+
this.inp.value = this.inp.default;
|
|
38
|
+
};
|
|
39
|
+
this.inp.data = () => {
|
|
40
|
+
const result = {};
|
|
41
|
+
if (this.inp.value) {
|
|
42
|
+
result[this.inp.name] = this.inp.name;
|
|
43
|
+
if (typeof this.inp.value !== 'string') {
|
|
44
|
+
result[this.inp.name + 'File'] = this.inp.value.filter(x => typeof x !== 'string');
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
50
|
+
this.inp.focus = () => {
|
|
51
|
+
this.onClick();
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
getPdfImage(file) {
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
const reader = new FileReader();
|
|
57
|
+
reader.readAsDataURL(file);
|
|
58
|
+
reader.onload = () => {
|
|
59
|
+
const i = new Image();
|
|
60
|
+
i.src = window.URL.createObjectURL(file);
|
|
61
|
+
i.onload = () => {
|
|
62
|
+
let w = i.width;
|
|
63
|
+
let h = i.height;
|
|
64
|
+
if (w > 200) {
|
|
65
|
+
h = (200 * h) / w;
|
|
66
|
+
w = 200;
|
|
67
|
+
}
|
|
68
|
+
if (h > 287) {
|
|
69
|
+
w = (287 * w) / h;
|
|
70
|
+
h = 287;
|
|
71
|
+
}
|
|
72
|
+
resolve({ base64: reader.result.toString(), w, h });
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
reader.onerror = error => reject(error);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
onClick() {
|
|
79
|
+
$(this.inputBase.nativeElement).focus();
|
|
80
|
+
}
|
|
81
|
+
onChange(e) {
|
|
82
|
+
this.inp.error = null;
|
|
83
|
+
const v = [];
|
|
84
|
+
for (const f of e.target.files) {
|
|
85
|
+
v.push(f);
|
|
86
|
+
}
|
|
87
|
+
this.inp.value = v;
|
|
88
|
+
this.changeIndex.emit('Tab');
|
|
89
|
+
}
|
|
90
|
+
onKeyDown(e) {
|
|
91
|
+
const code = e.keyCode || e.which;
|
|
92
|
+
if (code === 9 || code === 13) {
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
this.changeIndex.emit(e.shiftKey ? 'ShiftTab' : 'Tab');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
onFocusIn() {
|
|
98
|
+
$(this.inputBase.nativeElement).focus();
|
|
99
|
+
}
|
|
100
|
+
title() {
|
|
101
|
+
if (this.inp.value == null || (this.inp.value instanceof Array && this.inp.value.length === 0)) {
|
|
102
|
+
return this.inp.l('FileNotSelected');
|
|
103
|
+
}
|
|
104
|
+
const t = typeof this.inp.value === 'string' ? this.inp.value : this.inp.value.map(x => typeof x === 'string' ? x : x.name).join(', ');
|
|
105
|
+
const l = typeof this.inp.value === 'string' ? 1 : this.inp.value.length;
|
|
106
|
+
return this.inp.l('FileSelected', [l, t]);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
FormFileComponent.decorators = [
|
|
110
|
+
{ type: Component, args: [{
|
|
111
|
+
selector: 'lib-form-file',
|
|
112
|
+
template: "<label #inputDiv [id]=\"id + 'FileInput'\" [for]=\"id + 'FileInputBase'\" [className]=\"'form-input-con file w-100' + (inp.error == null ? '' : ' error') + (inp.disabled || inp.loading ? ' disabled' : '') + (inp.value != null && inp.value != '' ? ' has-value' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"onClick()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <input #inputBaseFile class=\"input-base-file\" type=\"file\" [id]=\"id + 'FileInputBase'\" [multiple]=\"inp.multiple\" (change)=\"onChange($event)\">\r\n <input #inputBase type=\"text\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div class=\"title\">{{title()}}</div>\r\n <div class=\"button\">{{inp.multiple ? inp.l(\"ChooseFiles\") : inp.l(\"ChooseFile\")}}</div>\r\n </div>\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n</label>\r\n",
|
|
113
|
+
styles: [".form-input-con.file{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:pointer;padding:0 15px;position:relative}.form-input-con.file .form-input{float:right;position:relative;width:100%}.form-input-con.file .form-input .input-base,.form-input-con.file .form-input .input-base-file{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input-con.file .form-input .control{background-color:#fff;border:var(--border-input);border-radius:var(--border-radius-base);float:left;font-size:11px;height:35px;line-height:35px;overflow:hidden;padding:0 135px 0 35px;position:relative;text-align:center;text-overflow:ellipsis;width:100%;z-index:2}.form-input-con.file .form-input .control .title{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.form-input-con.file .form-input .control:hover,.form-input-con.file .form-input .input-base:focus+.control{border:var(--border-input-dark);outline:none}.form-input-con.file .form-input i.icon{bottom:0;color:var(--primary);font-size:13px;height:35px;left:0;line-height:35px;position:absolute;text-align:center;width:35px;z-index:2}.form-input-con.file .form-input .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.file .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.file .form-input .control .title{float:right;width:100%}.form-input-con.file .form-input .control .button{background-color:var(--green);border-radius:0 var(--border-radius-base) var(--border-radius-base) 0;bottom:0;color:#fff;font-size:10px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;width:100px;z-index:2}.form-input-con.file .form-input .button:hover,.form-input-con.file .form-input .control:hover .button,.form-input-con.file .form-input .input-base:focus+.control .button{background-color:var(--green-dark)}.form-input-con.file.error .form-input .control{border:var(--border-input-red)}.form-input-con.file.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.file.error .form-input .control,.form-input-con.file.error .form-input .icon{color:var(--red)}.form-input-con.file.disabled{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7;pointer-events:none}.form-input-con.file.h-40 .form-input .control{font-size:13px;height:40px;line-height:40px}.form-input-con.file.has-value.h-40 .form-input .control{direction:ltr;font-size:9px;height:40px}.form-input-con.file.h-40 .form-input .control .button,.form-input-con.file.h-40 .form-input i.icon{height:40px;line-height:40px}form-input-con.file.h-30 .form-input .control{height:30px;line-height:30px}.form-input-con.file.h-30 .form-input .control{direction:ltr;font-size:9px;height:30px;line-height:30px}.form-input-con.file.h-30 .form-input .control .button,.form-input-con.file.h-30 .form-input i.icon{height:30px;line-height:30px}"]
|
|
114
|
+
},] }
|
|
115
|
+
];
|
|
116
|
+
FormFileComponent.ctorParameters = () => [];
|
|
117
|
+
FormFileComponent.propDecorators = {
|
|
118
|
+
inp: [{ type: Input }],
|
|
119
|
+
changeIndex: [{ type: Output }],
|
|
120
|
+
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }],
|
|
121
|
+
inputBaseFile: [{ type: ViewChild, args: ['inputBaseFile',] }],
|
|
122
|
+
inputBase: [{ type: ViewChild, args: ['inputBase',] }]
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL2ZpbGUvZm9ybS5maWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBZ0IsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU8xRCxNQUFNLE9BQU8saUJBQWlCO0lBUzVCO1FBTEEsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBTXZDLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FB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S0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBQztZQUM3RixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDdEM7UUFDRCxNQUFNLENBQUMsR0FBRyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZJLE1BQU0sQ0FBQyxHQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN6RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7OztZQW5IRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLGlvQ0FBeUM7O2FBRTFDOzs7O2tCQUVFLEtBQUs7MEJBRUwsTUFBTTt1QkFFTixTQUFTLFNBQUMsVUFBVTs0QkFDcEIsU0FBUyxTQUFDLGVBQWU7d0JBQ3pCLFNBQVMsU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0RXJyb3J9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZvcm0tZmlsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5maWxlLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dERpdicpIGlucHV0RGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0QmFzZUZpbGUnKSBpbnB1dEJhc2VGaWxlOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0QmFzZScpIGlucHV0QmFzZTogRWxlbWVudFJlZjtcclxuICBpZDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLmlkID0gSGVscGVyQ2xhc3MucmFuZG9tKDEwKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgIXRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuaW5wLnJlcXVpcmVkICYmICF0aGlzLmlucC52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5hbGxvd2VkICE9IG51bGwgJiYgdGhpcy5pbnAudmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5pbnAudmFsdWUgIT09ICdzdHJpbmcnICYmXHJcbiAgICAgICAgdGhpcy5pbnAudmFsdWUuZmlsdGVyKHggPT4gdHlwZW9mIHggIT09ICdzdHJpbmcnKS5tYXAoeCA9PiB0aGlzLmlucC5hbGxvd2VkLmluY2x1ZGVzKHgubmFtZS5zcGxpdCgnLicpLnBvcCgpLnRvTG93ZXJDYXNlKCkpKS5maWx0ZXIoeCA9PiAheCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5Ob3RBbGxvd2VkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAubWF4TGVuZ3RoICE9PSAtMSAmJiB0aGlzLmlucC52YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB0aGlzLmlucC52YWx1ZSAhPT0gJ3N0cmluZycgJiZcclxuICAgICAgICB0aGlzLmlucC52YWx1ZS5tYXAoeCA9PiB4LnNpemUgPiB0aGlzLmlucC5tYXhMZW5ndGggKiAxMDI0KS5maWx0ZXIoeCA9PiB4KS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLk1heENvbnRlbnQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmNsZWFyID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdGhpcy5pbnAuZGVmYXVsdDtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5kYXRhID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSB7fTtcclxuICAgICAgaWYgKHRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgcmVzdWx0W3RoaXMuaW5wLm5hbWVdID0gdGhpcy5pbnAubmFtZTtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW5wLnZhbHVlICE9PSAnc3RyaW5nJyl7XHJcbiAgICAgICAgICByZXN1bHRbdGhpcy5pbnAubmFtZSArICdGaWxlJ10gPSB0aGlzLmlucC52YWx1ZS5maWx0ZXIoeCA9PiB0eXBlb2YgeCAhPT0gJ3N0cmluZycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub25DbGljaygpO1xyXG4gICAgfTtcclxuICB9XHJcbiAgZ2V0UGRmSW1hZ2UoZmlsZSk6IGFueXtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGkgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICBpLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xyXG4gICAgICAgIGkub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHcgPSBpLndpZHRoO1xyXG4gICAgICAgICAgbGV0IGggPSBpLmhlaWdodDtcclxuICAgICAgICAgIGlmICh3ID4gMjAwKXtcclxuICAgICAgICAgICAgaCA9ICgyMDAgKiBoKSAvIHc7XHJcbiAgICAgICAgICAgIHcgPSAyMDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaCA+IDI4Nyl7XHJcbiAgICAgICAgICAgIHcgPSAoMjg3ICogdykgLyBoO1xyXG4gICAgICAgICAgICBoID0gMjg3O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzb2x2ZSh7YmFzZTY0OiByZWFkZXIucmVzdWx0LnRvU3RyaW5nKCksIHcsIGh9KTtcclxuICAgICAgICB9O1xyXG4gICAgICB9O1xyXG4gICAgICByZWFkZXIub25lcnJvciA9IGVycm9yID0+IHJlamVjdChlcnJvcik7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25DbGljaygpOiB2b2lke1xyXG4gICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG4gIH1cclxuICBvbkNoYW5nZShlKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgIGNvbnN0IHYgPSBbXTtcclxuICAgIGZvciAoY29uc3QgZiBvZiBlLnRhcmdldC5maWxlcyl7XHJcbiAgICAgIHYucHVzaChmKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5IHx8IGNvZGUgPT09IDEzKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KGUuc2hpZnRLZXkgPyAnU2hpZnRUYWInIDogJ1RhYicpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkZvY3VzSW4oKTogdm9pZHtcclxuICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuZm9jdXMoKTtcclxuICB9XHJcbiAgdGl0bGUoKTogc3RyaW5ne1xyXG4gICAgaWYgKHRoaXMuaW5wLnZhbHVlID09IG51bGwgfHwgKHRoaXMuaW5wLnZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgdGhpcy5pbnAudmFsdWUubGVuZ3RoID09PSAwKSl7XHJcbiAgICAgIHJldHVybiB0aGlzLmlucC5sKCdGaWxlTm90U2VsZWN0ZWQnKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHQgPSB0eXBlb2YgdGhpcy5pbnAudmFsdWUgPT09ICdzdHJpbmcnID8gdGhpcy5pbnAudmFsdWUgOiB0aGlzLmlucC52YWx1ZS5tYXAoeCA9PiB0eXBlb2YgeCA9PT0gJ3N0cmluZycgPyB4IDogeC5uYW1lKS5qb2luKCcsICcpO1xyXG4gICAgY29uc3QgbCA9IHR5cGVvZiB0aGlzLmlucC52YWx1ZSA9PT0gJ3N0cmluZycgPyAxIDogdGhpcy5pbnAudmFsdWUubGVuZ3RoO1xyXG4gICAgcmV0dXJuIHRoaXMuaW5wLmwoJ0ZpbGVTZWxlY3RlZCcsIFtsLCB0XSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { InputError } from '../../../classes/enum.class';
|
|
3
|
+
import { HelperClass } from '../../../classes/helper.class';
|
|
4
|
+
export class FormFingerComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.changeIndex = new EventEmitter();
|
|
7
|
+
this.wsRegister = null;
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
this.inp.setValue = (v) => {
|
|
11
|
+
this.inp.value = v != null ? v : {
|
|
12
|
+
R1: null,
|
|
13
|
+
R2: null,
|
|
14
|
+
R3: null,
|
|
15
|
+
R4: null,
|
|
16
|
+
R5: null,
|
|
17
|
+
L1: null,
|
|
18
|
+
L2: null,
|
|
19
|
+
L3: null,
|
|
20
|
+
L4: null,
|
|
21
|
+
L5: null,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
this.inp.focus = () => {
|
|
25
|
+
this.onFocusIn();
|
|
26
|
+
};
|
|
27
|
+
this.inp.isValid = () => {
|
|
28
|
+
this.inp.error = null;
|
|
29
|
+
if (this.inp.required && !this.inp.value) {
|
|
30
|
+
this.inp.error = InputError.Required;
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (!this.inp.required && !this.inp.value) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
};
|
|
38
|
+
this.inp.clear = () => {
|
|
39
|
+
this.inp.error = null;
|
|
40
|
+
this.inp.setValue(null, false);
|
|
41
|
+
};
|
|
42
|
+
this.inp.data = () => {
|
|
43
|
+
if (this.inp.value === null) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const d = {};
|
|
47
|
+
for (const [key, value] of Object.entries(this.inp.value)) {
|
|
48
|
+
if (value != null && value !== 'Loading') {
|
|
49
|
+
// @ts-ignore
|
|
50
|
+
d[key] = value.Hash.toString();
|
|
51
|
+
// @ts-ignore
|
|
52
|
+
d[key + 'Image'] = value.Image.toString();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return d;
|
|
56
|
+
};
|
|
57
|
+
this.inp.setValue(null, false);
|
|
58
|
+
}
|
|
59
|
+
onClick() {
|
|
60
|
+
this.onFocusIn();
|
|
61
|
+
}
|
|
62
|
+
onFocusIn() {
|
|
63
|
+
this.inputBase.nativeElement.focus();
|
|
64
|
+
}
|
|
65
|
+
onKeyDown(e) {
|
|
66
|
+
const code = e.keyCode || e.which;
|
|
67
|
+
if (code === 9 || code === 13) {
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
this.changeIndex.emit(e.shiftKey ? 'ShiftTab' : 'Tab');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
addRemoveFinger(f) {
|
|
73
|
+
const fv = this.inp.value[f];
|
|
74
|
+
if (fv === 'Loading') {
|
|
75
|
+
if (this.wsRegister != null) {
|
|
76
|
+
this.wsRegister.close();
|
|
77
|
+
this.wsRegister = null;
|
|
78
|
+
}
|
|
79
|
+
this.inp.value[f] = null;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.inp.value.R1 = this.inp.value.R1 === 'Loading' ? null : this.inp.value.R1;
|
|
83
|
+
this.inp.value.R2 = this.inp.value.R2 === 'Loading' ? null : this.inp.value.R2;
|
|
84
|
+
this.inp.value.R3 = this.inp.value.R3 === 'Loading' ? null : this.inp.value.R3;
|
|
85
|
+
this.inp.value.R4 = this.inp.value.R4 === 'Loading' ? null : this.inp.value.R4;
|
|
86
|
+
this.inp.value.R5 = this.inp.value.R5 === 'Loading' ? null : this.inp.value.R5;
|
|
87
|
+
this.inp.value.L1 = this.inp.value.L1 === 'Loading' ? null : this.inp.value.L1;
|
|
88
|
+
this.inp.value.L2 = this.inp.value.L2 === 'Loading' ? null : this.inp.value.L2;
|
|
89
|
+
this.inp.value.L3 = this.inp.value.L3 === 'Loading' ? null : this.inp.value.L3;
|
|
90
|
+
this.inp.value.L4 = this.inp.value.L4 === 'Loading' ? null : this.inp.value.L4;
|
|
91
|
+
this.inp.value.L5 = this.inp.value.L5 === 'Loading' ? null : this.inp.value.L5;
|
|
92
|
+
if (fv != null) {
|
|
93
|
+
this.inp.value[f] = null;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.wsRegister = new WebSocket('ws://localhost:7890/Register');
|
|
97
|
+
this.wsRegister.onopen = () => {
|
|
98
|
+
this.inp.value[f] = 'Loading';
|
|
99
|
+
};
|
|
100
|
+
this.wsRegister.onmessage = (evt) => {
|
|
101
|
+
console.log(evt.data);
|
|
102
|
+
if (evt.data === 'Exist') {
|
|
103
|
+
this.inp.value[f] = null;
|
|
104
|
+
HelperClass.addNotification(this.inp.l('FingerprintExist'));
|
|
105
|
+
}
|
|
106
|
+
else if (evt.data.startsWith('Error')) {
|
|
107
|
+
this.inp.value[f] = null;
|
|
108
|
+
HelperClass.addNotification(this.inp.l(evt.data));
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
const r = JSON.parse(evt.data);
|
|
112
|
+
r.ImageBase64 = 'data:image/png;base64,' + r.Image;
|
|
113
|
+
this.inp.value[f] = r;
|
|
114
|
+
}
|
|
115
|
+
this.wsRegister.close();
|
|
116
|
+
this.wsRegister = null;
|
|
117
|
+
};
|
|
118
|
+
this.wsRegister.onclose = () => {
|
|
119
|
+
};
|
|
120
|
+
this.wsRegister.onerror = () => {
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
FormFingerComponent.decorators = [
|
|
127
|
+
{ type: Component, args: [{
|
|
128
|
+
selector: 'lib-form-finger',
|
|
129
|
+
template: "<div #inputDiv [id]=\"inp.id + 'FingerInput'\" [className]=\"'form-input finger w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + ' ' + inp.class\">\r\n <div class=\"form-input-flex\">\r\n <div class=\"form-input-con\" (click)=\"onClick()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <input #inputBase type=\"checkbox\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fa-spin fa-spinner ' : inp.icon) + (inp.icon.includes('far') ? '' : ' fas') + ' icon'\"></i>\r\n <div class=\"fingers\">\r\n <div class=\"hand-con right\">\r\n <i class=\"fas fa-hand-paper hand fa-flip-horizontal\"></i>\r\n <div (click)=\"addRemoveFinger('R1')\" [className]=\"(inp.value.R1 == 'Loading' ? 'loading ' : (inp.value.R1 == null ? '' : 'remove ')) + 'btn-f f1'\">\r\n <i [className]=\"(inp.value.R1 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R1 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R1 && inp.value.R1.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R1.ImageBase64 ? inp.value.R1.ImageBase64 : inp.value.R1.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('R2')\" [className]=\"(inp.value.R2 == 'Loading' ? 'loading ' : (inp.value.R2 == null ? '' : 'remove ')) + 'btn-f f2'\">\r\n <i [className]=\"(inp.value.R2 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R2 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R2 && inp.value.R2.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R2.ImageBase64 ? inp.value.R2.ImageBase64 : inp.value.R2.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('R3')\" [className]=\"(inp.value.R3 == 'Loading' ? 'loading ' : (inp.value.R3 == null ? '' : 'remove ')) + 'btn-f f3'\">\r\n <i [className]=\"(inp.value.R3 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R3 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R3 && inp.value.R3.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R3.ImageBase64 ? inp.value.R3.ImageBase64 : inp.value.R3.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('R4')\" [className]=\"(inp.value.R4 == 'Loading' ? 'loading ' : (inp.value.R4 == null ? '' : 'remove ')) + 'btn-f f4'\">\r\n <i [className]=\"(inp.value.R4 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R4 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R4 && inp.value.R4.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R4.ImageBase64 ? inp.value.R4.ImageBase64 : inp.value.R4.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('R5')\" [className]=\"(inp.value.R5 == 'Loading' ? 'loading ' : (inp.value.R5 == null ? '' : 'remove ')) + 'btn-f f5'\">\r\n <i [className]=\"(inp.value.R5 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R5 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R5 && inp.value.R5.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R5.ImageBase64 ? inp.value.R5.ImageBase64 : inp.value.R5.Image) + '\\')'}\"></div>\r\n </div>\r\n </div>\r\n <div class=\"hand-con left\">\r\n <i class=\"fas hand fa-hand-paper\"></i>\r\n <div (click)=\"addRemoveFinger('L1')\" [className]=\"(inp.value.L1 == 'Loading' ? 'loading ' : (inp.value.L1 == null ? '' : 'remove ')) + 'btn-f f1'\">\r\n <i [className]=\"(inp.value.L1 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L1 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L1 && inp.value.L1.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L1.ImageBase64 ? inp.value.L1.ImageBase64 : inp.value.L1.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('L2')\" [className]=\"(inp.value.L2 == 'Loading' ? 'loading ' : (inp.value.L2 == null ? '' : 'remove ')) + 'btn-f f2'\">\r\n <i [className]=\"(inp.value.L2 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L2 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L2 && inp.value.L2.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L2.ImageBase64 ? inp.value.L2.ImageBase64 : inp.value.L2.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('L3')\" [className]=\"(inp.value.L3 == 'Loading' ? 'loading ' : (inp.value.L3 == null ? '' : 'remove ')) + 'btn-f f3'\">\r\n <i [className]=\"(inp.value.L3 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L3 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L3 && inp.value.L3.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L3.ImageBase64 ? inp.value.L3.ImageBase64 : inp.value.L3.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('L4')\" [className]=\"(inp.value.L4 == 'Loading' ? 'loading ' : (inp.value.L4 == null ? '' : 'remove ')) + 'btn-f f4'\">\r\n <i [className]=\"(inp.value.L4 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L4 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L4 && inp.value.L4.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L4.ImageBase64 ? inp.value.L4.ImageBase64 : inp.value.L4.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('L5')\" [className]=\"(inp.value.L5 == 'Loading' ? 'loading ' : (inp.value.L5 == null ? '' : 'remove ')) + 'btn-f f5'\">\r\n <i [className]=\"(inp.value.L5 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L5 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L5 && inp.value.L5.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L5.ImageBase64 ? inp.value.L5.ImageBase64 : inp.value.L5.Image) + '\\')'}\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
130
|
+
styles: [".form-input.finger{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;padding:0 15px;position:relative}.form-input.finger .form-input-flex{align-items:center;display:flex;float:right;justify-content:center;width:100%}.form-input.finger .form-input-flex .form-input-con{float:right;width:250px}.form-input.finger .form-input-flex .form-input-con .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input.finger .form-input-flex .form-input-con.error .label{color:var(--red);font-size:10px}.form-input.finger .form-input-flex .form-input-con .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input.finger .form-input-flex .form-input-con>.control{background-color:#fff;border-radius:var(--border-radius-base);box-shadow:0 1px 3px 0 rgba(0,0,0,.4);float:right;min-height:35px;position:relative;width:100%}.form-input.finger .form-input-flex .form-input-con .input-base{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input.finger .form-input-flex .form-input-con .input-base:focus+.control,.form-input.finger .form-input-flex .form-input-con:hover .control{box-shadow:0 1px 5px 0 rgba(0,0,0,.7)}.form-input.finger .form-input-flex .form-input-con i.icon{color:var(--primary);cursor:default;font-size:14px;height:35px;left:0;line-height:35px;position:absolute;text-align:center;top:0;transition:all .35s ease-in-out;width:35px;z-index:1}.form-input.finger .form-input-flex .form-input-con.error>.control{box-shadow:0 1px 3px 0 var(--red)}.form-input.finger .form-input-flex .form-input-con.error i.icon{color:var(--red-light)}.form-input.finger .form-input-flex .form-input-con>.control .fingers{float:right;position:relative;width:100%}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con{float:right;position:relative;width:50%}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .hand{float:right;font-size:85px;height:100px;line-height:100px;padding-right:10px;position:relative;text-align:right;width:100%}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f{align-items:center;background-color:var(--green);border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:10px;height:15px;justify-content:center;position:absolute;text-align:center;width:15px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f:hover{background-color:var(--green-dark)}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.remove{background-color:var(--red)}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.remove:hover{background-color:var(--red-dark)}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.loading,.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.loading:hover{background-color:var(--primary)}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f1{right:28px;top:50px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f2{right:49px;top:11px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f3{right:65px;top:5px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f4{right:81px;top:11px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f5{right:98px;top:22px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f1{left:28px;top:50px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f2{left:49px;top:11px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f3{left:65px;top:5px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f4{left:81px;top:11px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f5{left:98px;top:22px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f .img{background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:var(--border-radius-base);bottom:20px;box-shadow:var(--box-shadow);display:none;height:100px;position:absolute;right:-29px;width:75px;z-index:1}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.remove:hover .img{display:block}"]
|
|
131
|
+
},] }
|
|
132
|
+
];
|
|
133
|
+
FormFingerComponent.propDecorators = {
|
|
134
|
+
inp: [{ type: Input }],
|
|
135
|
+
changeIndex: [{ type: Output }],
|
|
136
|
+
inputBase: [{ type: ViewChild, args: ['inputBase',] }],
|
|
137
|
+
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }],
|
|
138
|
+
inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5maW5nZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vZmluZ2VyL2Zvcm0uZmluZ2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBTzFELE1BQU0sT0FBTyxtQkFBbUI7SUFMaEM7UUFTRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFJekMsZUFBVSxHQUFHLElBQUksQ0FBQztJQWtIcEIsQ0FBQztJQWpIQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixFQUFFLEVBQUUsSUFBSTtnQkFDUixFQUFFLEVBQUUsSUFBSTtnQkFDUixFQUFFLEVBQUUsSUFBSTtnQkFDUixFQUFFLEVBQUUsSUFBSTtnQkFDUixFQUFFLEVBQUUsSUFBSTtnQkFDUixFQUFFLEVBQUUsSUFBSTtnQkFDUixFQUFFLEVBQUUsSUFBSTtnQkFDUixFQUFFLEVBQUUsSUFBSTtnQkFDUixFQUFFLEVBQUUsSUFBSTtnQkFDUixFQUFFLEVBQUUsSUFBSTthQUNULENBQUM7UUFDSixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFD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QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUN4QjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUMxQjthQUFJO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9FLElBQUksRUFBRSxJQUFJLElBQUksRUFBQztnQkFDYixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7YUFDMUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDO2dCQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0QixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFDO3dCQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7d0JBQ3pCLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO3FCQUM3RDt5QkFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFDO3dCQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7d0JBQ3pCLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ25EO3lCQUFNO3dCQUNMLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUMvQixDQUFDLENBQUMsV0FBVyxHQUFHLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7d0JBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDdkI7b0JBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQztnQkFDRixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7Z0JBQy9CLENBQUMsQ0FBQztnQkFDRixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7Z0JBQy9CLENBQUMsQ0FBQzthQUNIO1NBQ0Y7SUFDSCxDQUFDOzs7WUE5SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLDJrTkFBMkM7O2FBRTVDOzs7a0JBRUUsS0FBSzswQkFFTCxNQUFNO3dCQUVOLFNBQVMsU0FBQyxXQUFXO3VCQUNyQixTQUFTLFNBQUMsVUFBVTt5QkFDcEIsU0FBUyxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dEVycm9yfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2hlbHBlci5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWZpbmdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uZmluZ2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmZpbmdlci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1GaW5nZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5wOiBJbnB1dENsYXNzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RGl2JykgaW5wdXREaXY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRMYWJlbCcpIGlucHV0TGFiZWw6IEVsZW1lbnRSZWY7XHJcbiAgd3NSZWdpc3RlciA9IG51bGw7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdiAhPSBudWxsID8gdiA6IHtcclxuICAgICAgICBSMTogbnVsbCxcclxuICAgICAgICBSMjogbnVsbCxcclxuICAgICAgICBSMzogbnVsbCxcclxuICAgICAgICBSNDogbnVsbCxcclxuICAgICAgICBSNTogbnVsbCxcclxuICAgICAgICBMMTogbnVsbCxcclxuICAgICAgICBMMjogbnVsbCxcclxuICAgICAgICBMMzogbnVsbCxcclxuICAgICAgICBMNDogbnVsbCxcclxuICAgICAgICBMNTogbnVsbCxcclxuICAgICAgfTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5mb2N1cyA9ICgpID0+IHtcclxuICAgICAgdGhpcy5vbkZvY3VzSW4oKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiAhdGhpcy5pbnAudmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5pbnAucmVxdWlyZWQgJiYgIXRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAuc2V0VmFsdWUobnVsbCwgZmFsc2UpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlucC52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGQgPSB7fTtcclxuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5pbnAudmFsdWUpKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT09ICdMb2FkaW5nJyl7XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICBkW2tleV0gPSB2YWx1ZS5IYXNoLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICBkW2tleSArICdJbWFnZSddID0gdmFsdWUuSW1hZ2UudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGQ7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUobnVsbCwgZmFsc2UpO1xyXG4gIH1cclxuICBvbkNsaWNrKCk6IHZvaWR7XHJcbiAgICB0aGlzLm9uRm9jdXNJbigpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1c0luKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWR7XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSB8fCBjb2RlID09PSAxMykge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInKTtcclxuICAgIH1cclxuICB9XHJcbiAgYWRkUmVtb3ZlRmluZ2VyKGY6IHN0cmluZyk6IHZvaWR7XHJcbiAgICBjb25zdCBmdiA9IHRoaXMuaW5wLnZhbHVlW2ZdO1xyXG4gICAgaWYgKGZ2ID09PSAnTG9hZGluZycpIHtcclxuICAgICAgaWYgKHRoaXMud3NSZWdpc3RlciAhPSBudWxsKXtcclxuICAgICAgICB0aGlzLndzUmVnaXN0ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLndzUmVnaXN0ZXIgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlW2ZdID0gbnVsbDtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucC52YWx1ZS5SMSA9IHRoaXMuaW5wLnZhbHVlLlIxID09PSAnTG9hZGluZycgPyBudWxsIDogdGhpcy5pbnAudmFsdWUuUjE7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlLlIyID0gdGhpcy5pbnAudmFsdWUuUjIgPT09ICdMb2FkaW5nJyA/IG51bGwgOiB0aGlzLmlucC52YWx1ZS5SMjtcclxuICAgICAgdGhpcy5pbnAudmFsdWUuUjMgPSB0aGlzLmlucC52YWx1ZS5SMyA9PT0gJ0xvYWRpbmcnID8gbnVsbCA6IHRoaXMuaW5wLnZhbHVlLlIzO1xyXG4gICAgICB0aGlzLmlucC52YWx1ZS5SNCA9IHRoaXMuaW5wLnZhbHVlLlI0ID09PSAnTG9hZGluZycgPyBudWxsIDogdGhpcy5pbnAudmFsdWUuUjQ7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlLlI1ID0gdGhpcy5pbnAudmFsdWUuUjUgPT09ICdMb2FkaW5nJyA/IG51bGwgOiB0aGlzLmlucC52YWx1ZS5SNTtcclxuICAgICAgdGhpcy5pbnAudmFsdWUuTDEgPSB0aGlzLmlucC52YWx1ZS5MMSA9PT0gJ0xvYWRpbmcnID8gbnVsbCA6IHRoaXMuaW5wLnZhbHVlLkwxO1xyXG4gICAgICB0aGlzLmlucC52YWx1ZS5MMiA9IHRoaXMuaW5wLnZhbHVlLkwyID09PSAnTG9hZGluZycgPyBudWxsIDogdGhpcy5pbnAudmFsdWUuTDI7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlLkwzID0gdGhpcy5pbnAudmFsdWUuTDMgPT09ICdMb2FkaW5nJyA/IG51bGwgOiB0aGlzLmlucC52YWx1ZS5MMztcclxuICAgICAgdGhpcy5pbnAudmFsdWUuTDQgPSB0aGlzLmlucC52YWx1ZS5MNCA9PT0gJ0xvYWRpbmcnID8gbnVsbCA6IHRoaXMuaW5wLnZhbHVlLkw0O1xyXG4gICAgICB0aGlzLmlucC52YWx1ZS5MNSA9IHRoaXMuaW5wLnZhbHVlLkw1ID09PSAnTG9hZGluZycgPyBudWxsIDogdGhpcy5pbnAudmFsdWUuTDU7XHJcbiAgICAgIGlmIChmdiAhPSBudWxsKXtcclxuICAgICAgICB0aGlzLmlucC52YWx1ZVtmXSA9IG51bGw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy53c1JlZ2lzdGVyID0gbmV3IFdlYlNvY2tldCgnd3M6Ly9sb2NhbGhvc3Q6Nzg5MC9SZWdpc3RlcicpO1xyXG4gICAgICAgIHRoaXMud3NSZWdpc3Rlci5vbm9wZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucC52YWx1ZVtmXSA9ICdMb2FkaW5nJztcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMud3NSZWdpc3Rlci5vbm1lc3NhZ2UgPSAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhldnQuZGF0YSk7XHJcbiAgICAgICAgICBpZiAoZXZ0LmRhdGEgPT09ICdFeGlzdCcpe1xyXG4gICAgICAgICAgICB0aGlzLmlucC52YWx1ZVtmXSA9IG51bGw7XHJcbiAgICAgICAgICAgIEhlbHBlckNsYXNzLmFkZE5vdGlmaWNhdGlvbih0aGlzLmlucC5sKCdGaW5nZXJwcmludEV4aXN0JykpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChldnQuZGF0YS5zdGFydHNXaXRoKCdFcnJvcicpKXtcclxuICAgICAgICAgICAgdGhpcy5pbnAudmFsdWVbZl0gPSBudWxsO1xyXG4gICAgICAgICAgICBIZWxwZXJDbGFzcy5hZGROb3RpZmljYXRpb24odGhpcy5pbnAubChldnQuZGF0YSkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgciA9IEpTT04ucGFyc2UoZXZ0LmRhdGEpO1xyXG4gICAgICAgICAgICByLkltYWdlQmFzZTY0ID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnICsgci5JbWFnZTtcclxuICAgICAgICAgICAgdGhpcy5pbnAudmFsdWVbZl0gPSByO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy53c1JlZ2lzdGVyLmNsb3NlKCk7XHJcbiAgICAgICAgICB0aGlzLndzUmVnaXN0ZXIgPSBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy53c1JlZ2lzdGVyLm9uY2xvc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLndzUmVnaXN0ZXIub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
export class FormHiddenComponent {
|
|
3
|
+
constructor() {
|
|
4
|
+
}
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
this.inp.setValue = (v) => {
|
|
7
|
+
this.inp.value = v;
|
|
8
|
+
};
|
|
9
|
+
this.inp.isValid = () => {
|
|
10
|
+
return true;
|
|
11
|
+
};
|
|
12
|
+
this.inp.clear = () => {
|
|
13
|
+
this.inp.value = null;
|
|
14
|
+
};
|
|
15
|
+
this.inp.data = () => {
|
|
16
|
+
return this.inp.value;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
FormHiddenComponent.decorators = [
|
|
21
|
+
{ type: Component, args: [{
|
|
22
|
+
selector: 'lib-form-hidden',
|
|
23
|
+
template: "",
|
|
24
|
+
styles: [""]
|
|
25
|
+
},] }
|
|
26
|
+
];
|
|
27
|
+
FormHiddenComponent.ctorParameters = () => [];
|
|
28
|
+
FormHiddenComponent.propDecorators = {
|
|
29
|
+
inp: [{ type: Input }]
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5oaWRkZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vaGlkZGVuL2Zvcm0uaGlkZGVuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQVF2RCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCO0lBQ0EsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ3hCLENBQUMsQ0FBQztJQUNKLENBQUM7OztZQXhCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsWUFBMkM7O2FBRTVDOzs7O2tCQUVFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZvcm0taGlkZGVuJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5oaWRkZW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uaGlkZGVuLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUhpZGRlbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKVxyXG4gIGlucDogSW5wdXRDbGFzcztcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSBudWxsO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlucC52YWx1ZTtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import * as $ from 'jquery';
|
|
3
|
+
export class FormIconComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.changeIndex = new EventEmitter();
|
|
6
|
+
}
|
|
7
|
+
ngOnInit() {
|
|
8
|
+
this.inp.setValue = (v) => {
|
|
9
|
+
};
|
|
10
|
+
this.inp.isValid = () => {
|
|
11
|
+
return true;
|
|
12
|
+
};
|
|
13
|
+
this.inp.focus = () => {
|
|
14
|
+
this.onFocusIn();
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
onFocusIn(e = null) {
|
|
18
|
+
$(this.inputBase.nativeElement).focus();
|
|
19
|
+
if (this.inp.onFocusIn) {
|
|
20
|
+
this.inp.onFocusIn(e);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
onFocusOut(e = null) {
|
|
24
|
+
if (this.inp.onFocusOut) {
|
|
25
|
+
this.inp.onFocusOut(e);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
onClick(e) {
|
|
29
|
+
if (e.screenX && e.screenX !== 0 && e.screenY && e.screenY !== 0) {
|
|
30
|
+
this.mouseClick(e);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.codeClick(e);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
mouseClick(e) {
|
|
37
|
+
this.onFocusIn(e);
|
|
38
|
+
if (this.inp.modal) {
|
|
39
|
+
if (this.inp.row) {
|
|
40
|
+
this.inp.modal.relatedId = this.inp.row.Id;
|
|
41
|
+
}
|
|
42
|
+
this.inp.modal.show(this.inp.row.Data);
|
|
43
|
+
if (this.inp.modal.form) {
|
|
44
|
+
this.inp.modal.form.onSuccessBase = () => {
|
|
45
|
+
this.inp.modal.hide();
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (!this.inp.loading && this.inp.onClick != null) {
|
|
50
|
+
this.inp.onClick(this.inp);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
codeClick(e) {
|
|
54
|
+
this.onFocusIn(e);
|
|
55
|
+
}
|
|
56
|
+
onKeyDown(e) {
|
|
57
|
+
const code = e.keyCode || e.which;
|
|
58
|
+
if (code === 9) {
|
|
59
|
+
e.preventDefault();
|
|
60
|
+
this.changeIndex.emit(e.shiftKey ? 'ShiftTab' : 'Tab');
|
|
61
|
+
}
|
|
62
|
+
if (code === 13) {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
if (!this.inp.loading && this.inp.onClick != null) {
|
|
65
|
+
this.inp.onClick(this.inp);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
FormIconComponent.decorators = [
|
|
71
|
+
{ type: Component, args: [{
|
|
72
|
+
selector: 'lib-form-icon',
|
|
73
|
+
template: "<div [id]=\"inp.id + 'IconInput'\" *ngIf=\"inp.url == null\" #inputDiv (click)=\"onClick($event)\" [className]=\"inp.class + ' form-input icon'\" [style]=\"inp.style\" data-tooltip-location=\"bottom\" [attr.data-tooltip]=\"inp.l(inp.name)\">\r\n <input #inputBase type=\"button\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn($event)\" (focusout)=\"onFocusOut($event)\">\r\n <div class=\"icon-con\">\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n</div>\r\n<a [id]=\"inp.id + 'IconInput'\" *ngIf=\"inp.url != null && inp.url.startsWith('/')\" [target]=\"inp.urlNewTab ? '_blank' : ''\" [routerLink]=\"inp.url\" [queryParams]=\"inp.queryParams != null ? inp.queryParams : null\" #inputDiv (click)=\"onClick($event)\" [className]=\"inp.class + ' form-input icon'\" [style]=\"inp.style\" data-tooltip-location=\"bottom\" [attr.data-tooltip]=\"inp.l(inp.name)\">\r\n <input #inputBase type=\"button\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn($event)\" (focusout)=\"onFocusOut($event)\">\r\n <div class=\"icon-con\">\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n</a>\r\n\r\n<a [id]=\"inp.id + 'IconInput'\" *ngIf=\"inp.url != null && !inp.url.startsWith('/')\" [target]=\"inp.urlNewTab ? '_blank' : ''\" [href]=\"inp.url\" #inputDiv (click)=\"onClick($event)\" [className]=\"inp.class + ' form-input icon'\" [style]=\"inp.style\" data-tooltip-location=\"bottom\" [attr.data-tooltip]=\"inp.l(inp.name)\">\r\n <input #inputBase type=\"button\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn($event)\" (focusout)=\"onFocusOut($event)\">\r\n <div class=\"icon-con\">\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n</a>\r\n",
|
|
74
|
+
styles: [".form-input.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:pointer;float:right;height:30px;position:relative;width:30px}.form-input.icon .input-base{height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:0}.form-input.icon .icon-con{align-items:center;border-radius:var(--border-radius-base);display:flex;float:right;height:100%;justify-content:center;position:absolute;right:0;top:0;width:100%}.form-input.icon .icon-con i.icon{color:var(--black-light);float:right;font-size:18px}.form-input.icon .input-base:focus+.icon-con,.form-input.icon:hover .icon-con{background-color:var(--black-white)}.form-input.icon .input-base:focus+.icon-con .icon,.form-input.icon:hover .icon-con i.icon{color:var(--black-light)}.form-input.icon.red .input-base:focus+.icon-con,.form-input.icon.red:hover .icon-con{background-color:var(--red-white)}.form-input.icon.red .input-base:focus+.icon-con .icon,.form-input.icon.red:hover .icon-con i.icon{color:var(--red)}.form-input.icon.blue .input-base:focus+.icon-con,.form-input.icon.blue:hover .icon-con{background-color:var(--blue-white)}.form-input.icon.blue .input-base:focus+.icon-con .icon,.form-input.icon.blue:hover .icon-con i.icon{color:var(--blue)}.form-input.icon.black .input-base:focus+.icon-con,.form-input.icon.black:hover .icon-con{background-color:var(--black-white)}.form-input.icon.black .input-base:focus+.icon-con .icon,.form-input.icon.black:hover .icon-con i.icon{color:var(--black)}.form-input.icon.green .input-base:focus+.icon-con,.form-input.icon.green:hover .icon-con{background-color:var(--green-white)}.form-input.icon.green .input-base:focus+.icon-con .icon,.form-input.icon.green:hover .icon-con i.icon{color:var(--green)}.form-input.icon.primary .input-base:focus+.icon-con,.form-input.icon.primary:hover .icon-con{background-color:var(--primary-white)}.form-input.icon.primary .input-base:focus+.icon-con .icon,.form-input.icon.primary:hover .icon-con i.icon{color:var(--primary)}.form-input.icon.h-15{height:15px;width:15px}.form-input.icon.h-15 .icon-con i.icon{font-size:11px}.form-input.icon.h-20{height:20px;width:20px}.form-input.icon.h-20 .icon-con i.icon{font-size:16px}.form-input.icon.h-25{height:25px;width:25px}.form-input.icon.h-25 .icon-con i.icon{font-size:15px}.form-input.icon.h-45{height:45px;width:45px}.form-input.icon.h-45 .icon-con i.icon{font-size:20px}"]
|
|
75
|
+
},] }
|
|
76
|
+
];
|
|
77
|
+
FormIconComponent.ctorParameters = () => [];
|
|
78
|
+
FormIconComponent.propDecorators = {
|
|
79
|
+
inp: [{ type: Input }],
|
|
80
|
+
changeIndex: [{ type: Output }],
|
|
81
|
+
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }],
|
|
82
|
+
inputBase: [{ type: ViewChild, args: ['inputBase',] }]
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5pY29uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL2ljb24vZm9ybS5pY29uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBZ0IsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFRNUIsTUFBTSxPQUFPLGlCQUFpQjtJQU81QjtRQUhBLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUl6QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDMUIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsU0FBUyxDQUFDLENBQUMsR0FBRyxJQUFJO1FBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQUMsR0FBRyxJQUFJO1FBQ2pCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUM7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsRUFBRTtZQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BCO2FBQUk7WUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDO1lBQ2pCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUM7Z0JBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzthQUM1QztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBQztnQkFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUU7b0JBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4QixDQUFDLENBQUM7YUFDSDtTQUNGO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksRUFBQztZQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBQ0QsU0FBUyxDQUFDLENBQUM7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxTQUFTLENBQUMsQ0FBQztRQUNULE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDZCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4RDtRQUNELElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtZQUNmLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFDO2dCQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDNUI7U0FDRjtJQUNILENBQUM7OztZQTNFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLHErREFBeUM7O2FBRTFDOzs7O2tCQUVFLEtBQUs7MEJBRUwsTUFBTTt1QkFFTixTQUFTLFNBQUMsVUFBVTt3QkFDcEIsU0FBUyxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWljb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmljb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uaWNvbi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1JY29uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5wOiBJbnB1dENsYXNzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgY29uc3RydWN0b3IoKXtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodikgPT4ge1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmlzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uRm9jdXNJbigpO1xyXG4gICAgfTtcclxuICB9XHJcbiAgb25Gb2N1c0luKGUgPSBudWxsKTogdm9pZHtcclxuICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuZm9jdXMoKTtcclxuICAgIGlmICh0aGlzLmlucC5vbkZvY3VzSW4pe1xyXG4gICAgICB0aGlzLmlucC5vbkZvY3VzSW4oZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRm9jdXNPdXQoZSA9IG51bGwpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLm9uRm9jdXNPdXQpe1xyXG4gICAgICB0aGlzLmlucC5vbkZvY3VzT3V0KGUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNsaWNrKGUpOiB2b2lke1xyXG4gICAgaWYgKGUuc2NyZWVuWCAmJiBlLnNjcmVlblggIT09IDAgJiYgZS5zY3JlZW5ZICYmIGUuc2NyZWVuWSAhPT0gMCkge1xyXG4gICAgICB0aGlzLm1vdXNlQ2xpY2soZSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jb2RlQ2xpY2soZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG1vdXNlQ2xpY2soZSk6IHZvaWR7XHJcbiAgICB0aGlzLm9uRm9jdXNJbihlKTtcclxuICAgIGlmICh0aGlzLmlucC5tb2RhbCl7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yb3cpe1xyXG4gICAgICAgIHRoaXMuaW5wLm1vZGFsLnJlbGF0ZWRJZCA9IHRoaXMuaW5wLnJvdy5JZDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC5tb2RhbC5zaG93KHRoaXMuaW5wLnJvdy5EYXRhKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm1vZGFsLmZvcm0pe1xyXG4gICAgICAgIHRoaXMuaW5wLm1vZGFsLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW5wLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuaW5wLmxvYWRpbmcgJiYgdGhpcy5pbnAub25DbGljayAhPSBudWxsKXtcclxuICAgICAgdGhpcy5pbnAub25DbGljayh0aGlzLmlucCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvZGVDbGljayhlKTogdm9pZHtcclxuICAgIHRoaXMub25Gb2N1c0luKGUpO1xyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWR7XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInKTtcclxuICAgIH1cclxuICAgIGlmIChjb2RlID09PSAxMykge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGlmICghdGhpcy5pbnAubG9hZGluZyAmJiB0aGlzLmlucC5vbkNsaWNrICE9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2xpY2sodGhpcy5pbnApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { InputType } from '../../../classes/enum.class';
|
|
3
|
+
export class FormComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
}
|
|
6
|
+
get type() { return InputType; }
|
|
7
|
+
ngOnInit() {
|
|
8
|
+
if (this.form.onTop) {
|
|
9
|
+
this.form.inputs.filter(x => x.type !== InputType.Label).forEach(x => x.class = 'h-30 ' + x.class);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
changeIndex(index, action) {
|
|
13
|
+
const n = action === 'ShiftTab' || action === 'ShiftEnter' ? -1 : 1;
|
|
14
|
+
const lastInp = this.form.inputs.map(x => x.type !== InputType.Submit && x.type !== InputType.Button &&
|
|
15
|
+
x.type !== InputType.Label && x.type !== InputType.Hidden && !x.disabled && x.visible).lastIndexOf(true);
|
|
16
|
+
if (index === lastInp && action === 'Enter') {
|
|
17
|
+
const submit = this.form.inputs.find(x => x.type === InputType.Submit);
|
|
18
|
+
if (submit) {
|
|
19
|
+
submit.onClick(submit);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
let next = index + n;
|
|
24
|
+
while (next >= 0 && next < this.form.inputs.length && (this.form.inputs[next].disabled || !this.form.inputs[next].visible
|
|
25
|
+
|| this.form.inputs[next].type === InputType.Label || this.form.inputs[next].type === InputType.Hidden)) {
|
|
26
|
+
next = next + n;
|
|
27
|
+
}
|
|
28
|
+
if (next >= 0 && next < this.form.inputs.length) {
|
|
29
|
+
setTimeout(() => {
|
|
30
|
+
this.form.inputs[next].focus(true);
|
|
31
|
+
}, 1);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
setTimeout(() => {
|
|
35
|
+
this.form.inputs[index].focusOut();
|
|
36
|
+
}, 1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
FormComponent.decorators = [
|
|
41
|
+
{ type: Component, args: [{
|
|
42
|
+
selector: 'lib-form',
|
|
43
|
+
template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form w-100 m-0' + (form.class ? ' ' + form.class : '')\">\r\n <div *ngIf=\"form.displayLabel\" [className]=\"(form.subName ? '' : 'underline ') + 'title'\">{{this.form.l(this.form.name)}}</div>\r\n <div *ngIf=\"form.displayLabel && form.subName\" class=\"sub-title underline\" [innerHTML]=\"this.form.l(this.form.subName)\"></div>\r\n <div *ngIf=\"form.loading\" class=\"loading\">\r\n <div class=\"text\" [innerHTML]=\"form.l('LoadingTable', 'Processing')\"></div>\r\n </div>\r\n <div *ngIf=\"!form.permission\" class=\"loading\">\r\n <div class=\"text\"><i class=\"fas fa-shield-alt icon\"></i>{{ form.l(\"PermissionDenied\") }}</div>\r\n </div>\r\n <ng-content></ng-content>\r\n <div class=\"inputs\">\r\n <span *ngFor=\"let inp of form.inputs; let i = index\">\r\n <lib-form-textbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Text || inp.type == type.Password || inp.type == type.Mobile || inp.type == type.Username || inp.type == type.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.NationalNum || inp.type == type.NationalCodeNum || inp.type == type.EconomicNum || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba || inp.type == type.Color || inp.type == type.BillNumber)\" [inp]=\"inp\"></lib-form-textbox>\r\n <lib-form-textarea (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.TextArea\" [inp]=\"inp\"></lib-form-textarea>\r\n <lib-form-checkbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Check\" [inp]=\"inp\"></lib-form-checkbox>\r\n <lib-form-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectSearchRadio || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-select>\r\n <lib-form-date (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Date || inp.type == type.Month || inp.type == type.Year)\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-date>\r\n <lib-form-time (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-time>\r\n <lib-form-datetime (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-datetime>\r\n <lib-form-file (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.File\" [inp]=\"inp\"></lib-form-file>\r\n <lib-form-button (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Button || inp.type == type.Submit)\" [inp]=\"inp\"></lib-form-button>\r\n <lib-form-icon (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Icon\" [inp]=\"inp\"></lib-form-icon>\r\n <lib-form-radio (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Radio\" [inp]=\"inp\"></lib-form-radio>\r\n <lib-form-tree (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Tree || inp.type == type.TreeRadio)\" [inp]=\"inp\"></lib-form-tree>\r\n <lib-form-plaque (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Plaque || inp.type == type.PlaqueM || inp.type == type.PlaqueF || inp.type == type.PlaqueG)\" [inp]=\"inp\"></lib-form-plaque>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.SelectAutoCompletePlaque || inp.type == type.SelectAutoCompletePlaqueM || inp.type == type.SelectAutoCompletePlaqueF || inp.type == type.SelectAutoCompletePlaqueG)\" [inp]=\"inp\"></lib-form-plaque-select>\r\n <lib-form-bank-card (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.BankCard\" [inp]=\"inp\"></lib-form-bank-card>\r\n <lib-form-vehicle-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.VehicleSearch\" [inp]=\"inp\"></lib-form-vehicle-search>\r\n <lib-form-vehicle (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Vehicle\" [inp]=\"inp\"></lib-form-vehicle>\r\n <lib-form-finger (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Finger\" [inp]=\"inp\"></lib-form-finger>\r\n <lib-form-star (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Star\" [inp]=\"inp\"></lib-form-star>\r\n <lib-form-toggle (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Toggle\" [inp]=\"inp\"></lib-form-toggle>\r\n <lib-form-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-tag (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Tag\" [inp]=\"inp\"></lib-form-tag>\r\n <lib-form-ckeditor (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Ckeditor\" [inp]=\"inp\"></lib-form-ckeditor>\r\n <lib-form-uploader (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Uploader\" [inp]=\"inp\"></lib-form-uploader>\r\n <lib-form-slide (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Slide\" [inp]=\"inp\"></lib-form-slide>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\r\n </span>\r\n </div>\r\n</form>\r\n",
|
|
44
|
+
styles: [".form{border-radius:var(--border-radius-base);padding:20px;position:relative}.form>.title{font-size:16px;font-weight:var(--font-bold);height:40px}.form>.sub-title,.form>.title{float:right;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form>.sub-title{color:var(--black-light);font-size:12px;font-weight:var(--font-light);height:30px}.form .loading{background-color:#fff;border-radius:var(--border-radius-base);height:100%;right:0;top:0;z-index:104}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-weight:var(--font-bold);height:35px;line-height:35px;top:calc(50% - 20px)}::ng-deep .form .loading .icon{font-size:20px!important;line-height:30px;margin-left:5px;position:relative;top:5px}.form-buttons,.form-error{float:right;width:100%}.form-error{color:var(--red-light);font-size:11px;height:15px;line-height:8px;margin-top:10px;padding:0 10px;position:relative;text-align:center}.form-error .message{float:left;width:calc(100% - 40px)}.form-error .icon{float:right;height:20px;line-height:6px;right:0;top:0;width:40px}.form .inputs{margin:0 -15px}"]
|
|
45
|
+
},] }
|
|
46
|
+
];
|
|
47
|
+
FormComponent.ctorParameters = () => [];
|
|
48
|
+
FormComponent.propDecorators = {
|
|
49
|
+
form: [{ type: Input }]
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS9pbmRleC9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFPdEQsTUFBTSxPQUFPLGFBQWE7SUFJeEI7SUFDQSxDQUFDO0lBRkQsSUFBSSxJQUFJLEtBQXVCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUdsRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBQztZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEc7SUFDSCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNO1FBQ3ZCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sS0FBSyxVQUFVLElBQUksTUFBTSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU07WUFDN0QsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RyxJQUFJLEtBQUssS0FBSyxPQUFPLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RSxJQUFJLE1BQU0sRUFBQztnQkFDVCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QixPQUFPO2FBQ1I7U0FDRjtRQUNELElBQUksSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDckIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPO2VBQ3BILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUM7WUFDeEcsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7U0FDakI7UUFDRCxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBQztZQUM5QyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDUDthQUFJO1lBQ0gsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDUDtJQUNILENBQUM7OztZQTFDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLG9zTEFBb0M7O2FBRXJDOzs7O21CQUVFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybUNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0VHlwZX0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKVxyXG4gIGZvcm06IEZvcm1DbGFzcztcclxuICBnZXQgdHlwZSgpOiB0eXBlb2YgSW5wdXRUeXBlIHsgcmV0dXJuIElucHV0VHlwZTsgfVxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5mb3JtLm9uVG9wKXtcclxuICAgICAgdGhpcy5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiB4LnR5cGUgIT09IElucHV0VHlwZS5MYWJlbCkuZm9yRWFjaCh4ID0+IHguY2xhc3MgPSAnaC0zMCAnICsgeC5jbGFzcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoYW5nZUluZGV4KGluZGV4LCBhY3Rpb24pOiB2b2lke1xyXG4gICAgY29uc3QgbiA9IGFjdGlvbiA9PT0gJ1NoaWZ0VGFiJyB8fCBhY3Rpb24gPT09ICdTaGlmdEVudGVyJyA/IC0xIDogMTtcclxuICAgIGNvbnN0IGxhc3RJbnAgPSB0aGlzLmZvcm0uaW5wdXRzLm1hcChcclxuICAgICAgeCA9PiB4LnR5cGUgIT09IElucHV0VHlwZS5TdWJtaXQgJiYgeC50eXBlICE9PSBJbnB1dFR5cGUuQnV0dG9uICYmXHJcbiAgICAgICAgeC50eXBlICE9PSBJbnB1dFR5cGUuTGFiZWwgJiYgeC50eXBlICE9PSBJbnB1dFR5cGUuSGlkZGVuICYmICF4LmRpc2FibGVkICYmIHgudmlzaWJsZSkubGFzdEluZGV4T2YodHJ1ZSk7XHJcbiAgICBpZiAoaW5kZXggPT09IGxhc3RJbnAgJiYgYWN0aW9uID09PSAnRW50ZXInKSB7XHJcbiAgICAgIGNvbnN0IHN1Ym1pdCA9IHRoaXMuZm9ybS5pbnB1dHMuZmluZCh4ID0+IHgudHlwZSA9PT0gSW5wdXRUeXBlLlN1Ym1pdCk7XHJcbiAgICAgIGlmIChzdWJtaXQpe1xyXG4gICAgICAgIHN1Ym1pdC5vbkNsaWNrKHN1Ym1pdCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgbmV4dCA9IGluZGV4ICsgbjtcclxuICAgIHdoaWxlIChuZXh0ID49IDAgJiYgbmV4dCA8IHRoaXMuZm9ybS5pbnB1dHMubGVuZ3RoICYmICh0aGlzLmZvcm0uaW5wdXRzW25leHRdLmRpc2FibGVkIHx8ICF0aGlzLmZvcm0uaW5wdXRzW25leHRdLnZpc2libGVcclxuICAgICAgfHwgdGhpcy5mb3JtLmlucHV0c1tuZXh0XS50eXBlID09PSBJbnB1dFR5cGUuTGFiZWwgfHwgdGhpcy5mb3JtLmlucHV0c1tuZXh0XS50eXBlID09PSBJbnB1dFR5cGUuSGlkZGVuKSl7XHJcbiAgICAgIG5leHQgPSBuZXh0ICsgbjtcclxuICAgIH1cclxuICAgIGlmIChuZXh0ID49IDAgJiYgbmV4dCA8IHRoaXMuZm9ybS5pbnB1dHMubGVuZ3RoKXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmlucHV0c1tuZXh0XS5mb2N1cyh0cnVlKTtcclxuICAgICAgfSwgMSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmlucHV0c1tpbmRleF0uZm9jdXNPdXQoKTtcclxuICAgICAgfSwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
export class FormLabelComponent {
|
|
3
|
+
constructor() {
|
|
4
|
+
}
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
this.inp.setValue = (v) => {
|
|
7
|
+
this.inp.value = v;
|
|
8
|
+
};
|
|
9
|
+
this.inp.isValid = () => {
|
|
10
|
+
return true;
|
|
11
|
+
};
|
|
12
|
+
this.inp.clear = () => {
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
onClick() {
|
|
16
|
+
if (this.inp.onClick) {
|
|
17
|
+
this.inp.onClick(this.inp);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
FormLabelComponent.decorators = [
|
|
22
|
+
{ type: Component, args: [{
|
|
23
|
+
selector: 'lib-form-label',
|
|
24
|
+
template: "<div [id]=\"inp.id + 'LabelInput'\" (click)=\"onClick()\" #inputDiv [className]=\"'form-input label w-100' + ' ' + inp.class\" [innerHTML]=\"inp.l(inp.value)\">\r\n</div>\r\n",
|
|
25
|
+
styles: [".form-input.label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;font-size:12px;line-height:30px;min-height:30px!important;padding:0 15px;position:relative;text-align:center}.form-input.label.underline{margin:20px 15px;min-height:0!important;width:calc(100% - 30px)}.form-input.label.form-group-title{margin:0 15px 10px;width:calc(100% - 30px)}.form-input.label.space{margin:10px 15px;min-height:0!important;width:calc(100% - 30px)}.form-input.label.h-58{line-height:58px;min-height:58px!important}.form-input.label.h-45{line-height:45px;min-height:45px!important}.form-input.label.h-40{line-height:40px;min-height:40px!important}.form-input.label.h-35{line-height:35px;min-height:35px!important}.form-input.label.h-25{line-height:25px;min-height:25px!important}.form-input.label.h-20{line-height:20px;min-height:20px!important}.form-input.label.h-15{line-height:15px;min-height:15px!important}"]
|
|
26
|
+
},] }
|
|
27
|
+
];
|
|
28
|
+
FormLabelComponent.ctorParameters = () => [];
|
|
29
|
+
FormLabelComponent.propDecorators = {
|
|
30
|
+
inp: [{ type: Input }]
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS9sYWJlbC9mb3JtLmxhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQVF2RCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCO0lBQ0EsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7UUFDdEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7OztZQXpCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsMExBQTBDOzthQUUzQzs7OztrQkFFRSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWxhYmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5sYWJlbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5sYWJlbC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1MYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKVxyXG4gIGlucDogSW5wdXRDbGFzcztcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgIH07XHJcbiAgfVxyXG4gIG9uQ2xpY2soKTogdm9pZHtcclxuICAgIGlmICh0aGlzLmlucC5vbkNsaWNrKXtcclxuICAgICAgdGhpcy5pbnAub25DbGljayh0aGlzLmlucCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|