ps-toolkit-ui 1.20.91 → 1.21.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/fesm2022/ps-toolkit-ui.mjs +9415 -0
  2. package/fesm2022/ps-toolkit-ui.mjs.map +1 -0
  3. package/package.json +16 -12
  4. package/types/ps-toolkit-ui.d.ts +1671 -0
  5. package/bundles/ps-toolkit-ui.umd.js +0 -10321
  6. package/bundles/ps-toolkit-ui.umd.js.map +0 -1
  7. package/bundles/ps-toolkit-ui.umd.min.js +0 -2
  8. package/bundles/ps-toolkit-ui.umd.min.js.map +0 -1
  9. package/esm2015/lib/classes/addModal.class.js +0 -36
  10. package/esm2015/lib/classes/chart.class.js +0 -165
  11. package/esm2015/lib/classes/currentDataClass.js +0 -17
  12. package/esm2015/lib/classes/enum.class.js +0 -253
  13. package/esm2015/lib/classes/excel.class.js +0 -56
  14. package/esm2015/lib/classes/form.class.js +0 -667
  15. package/esm2015/lib/classes/header.class.js +0 -16
  16. package/esm2015/lib/classes/helper.class.js +0 -650
  17. package/esm2015/lib/classes/lang.class.js +0 -35
  18. package/esm2015/lib/classes/login.class.js +0 -29
  19. package/esm2015/lib/classes/modal.class.js +0 -49
  20. package/esm2015/lib/classes/permission.class.js +0 -63
  21. package/esm2015/lib/classes/request.class.js +0 -155
  22. package/esm2015/lib/classes/safehtml.class.js +0 -17
  23. package/esm2015/lib/classes/safestyle.class.js +0 -17
  24. package/esm2015/lib/classes/sidebar.class.js +0 -16
  25. package/esm2015/lib/classes/steps.class.js +0 -45
  26. package/esm2015/lib/classes/string.class.js +0 -251
  27. package/esm2015/lib/classes/table.class.js +0 -593
  28. package/esm2015/lib/components/accordion/accordion.component.js +0 -45
  29. package/esm2015/lib/components/alert/alert.component.js +0 -39
  30. package/esm2015/lib/components/base.component.js +0 -54
  31. package/esm2015/lib/components/calendar/calendar.component.js +0 -98
  32. package/esm2015/lib/components/chart/chart.component.js +0 -17
  33. package/esm2015/lib/components/clock/clock.component.js +0 -33
  34. package/esm2015/lib/components/confirm/confirm.component.js +0 -50
  35. package/esm2015/lib/components/error/error.component.js +0 -26
  36. package/esm2015/lib/components/footer/footer.component.js +0 -23
  37. package/esm2015/lib/components/form/bank-card/form.bank-card.component.js +0 -200
  38. package/esm2015/lib/components/form/button/form.button.component.js +0 -68
  39. package/esm2015/lib/components/form/checkbox/form.checkbox.component.js +0 -67
  40. package/esm2015/lib/components/form/ckeditor/form.ckeditor.component.js +0 -90
  41. package/esm2015/lib/components/form/date/form.date.component.js +0 -314
  42. package/esm2015/lib/components/form/datetime/form.datetime.component.js +0 -106
  43. package/esm2015/lib/components/form/file/form.file.component.js +0 -124
  44. package/esm2015/lib/components/form/finger/form.finger.component.js +0 -140
  45. package/esm2015/lib/components/form/hidden/form.hidden.component.js +0 -31
  46. package/esm2015/lib/components/form/icon/form.icon.component.js +0 -84
  47. package/esm2015/lib/components/form/index/form.component.js +0 -51
  48. package/esm2015/lib/components/form/label/form.label.component.js +0 -32
  49. package/esm2015/lib/components/form/plaque/form.plaque.component.js +0 -258
  50. package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +0 -468
  51. package/esm2015/lib/components/form/radio/form.radio.component.js +0 -82
  52. package/esm2015/lib/components/form/select/form.select.component.js +0 -452
  53. package/esm2015/lib/components/form/select/item/form.select.item.component.js +0 -27
  54. package/esm2015/lib/components/form/slide/form.slide.component.js +0 -84
  55. package/esm2015/lib/components/form/star/form.star.component.js +0 -66
  56. package/esm2015/lib/components/form/table/form.table.component.js +0 -96
  57. package/esm2015/lib/components/form/tag/form.tag.component.js +0 -100
  58. package/esm2015/lib/components/form/textarea/form.textarea.component.js +0 -83
  59. package/esm2015/lib/components/form/textbox/form.textbox.component.js +0 -227
  60. package/esm2015/lib/components/form/time/form.time.component.js +0 -149
  61. package/esm2015/lib/components/form/toggle/form.toggle.component.js +0 -72
  62. package/esm2015/lib/components/form/tree/form.tree.component.js +0 -157
  63. package/esm2015/lib/components/form/tree/item/form.tree.item.component.js +0 -50
  64. package/esm2015/lib/components/form/uploader/form.uploader.component.js +0 -159
  65. package/esm2015/lib/components/form/vehicle/form.vehicle.component.js +0 -104
  66. package/esm2015/lib/components/form/vehicle/search/form.vehicle.search.component.js +0 -237
  67. package/esm2015/lib/components/header/header.component.js +0 -28
  68. package/esm2015/lib/components/header/sub/sub.header.component.js +0 -14
  69. package/esm2015/lib/components/layout/layout.component.js +0 -18
  70. package/esm2015/lib/components/loading/loading.component.js +0 -22
  71. package/esm2015/lib/components/login/login.component.js +0 -159
  72. package/esm2015/lib/components/modal/modal.component.js +0 -25
  73. package/esm2015/lib/components/notfound/notfound.component.js +0 -29
  74. package/esm2015/lib/components/notification/notification.component.js +0 -14
  75. package/esm2015/lib/components/sidebar/item/sidebar.item.component.js +0 -55
  76. package/esm2015/lib/components/sidebar/sidebar.component.js +0 -98
  77. package/esm2015/lib/components/steps/steps.component.js +0 -88
  78. package/esm2015/lib/components/table/loading/table.loading.component.js +0 -17
  79. package/esm2015/lib/components/table/pagination/table.pagination.component.js +0 -84
  80. package/esm2015/lib/components/table/row/table.row.component.js +0 -450
  81. package/esm2015/lib/components/table/table.component.js +0 -240
  82. package/esm2015/lib/components/tooltip/tooltip.component.js +0 -19
  83. package/esm2015/lib/ps-toolkit-ui.module.js +0 -105
  84. package/esm2015/lib/services/config.service.js +0 -14
  85. package/esm2015/lib/services/sidebar.service.js +0 -21
  86. package/esm2015/ps-toolkit-ui.js +0 -21
  87. package/esm2015/public-api.js +0 -64
  88. package/fesm2015/ps-toolkit-ui.js +0 -8926
  89. package/fesm2015/ps-toolkit-ui.js.map +0 -1
  90. package/lib/classes/addModal.class.d.ts +0 -14
  91. package/lib/classes/chart.class.d.ts +0 -15
  92. package/lib/classes/currentDataClass.d.ts +0 -10
  93. package/lib/classes/enum.class.d.ts +0 -221
  94. package/lib/classes/excel.class.d.ts +0 -8
  95. package/lib/classes/form.class.d.ts +0 -193
  96. package/lib/classes/header.class.d.ts +0 -8
  97. package/lib/classes/helper.class.d.ts +0 -50
  98. package/lib/classes/lang.class.d.ts +0 -5
  99. package/lib/classes/login.class.d.ts +0 -21
  100. package/lib/classes/modal.class.d.ts +0 -19
  101. package/lib/classes/permission.class.d.ts +0 -35
  102. package/lib/classes/request.class.d.ts +0 -10
  103. package/lib/classes/safehtml.class.d.ts +0 -7
  104. package/lib/classes/safestyle.class.d.ts +0 -7
  105. package/lib/classes/sidebar.class.d.ts +0 -14
  106. package/lib/classes/steps.class.d.ts +0 -31
  107. package/lib/classes/string.class.d.ts +0 -249
  108. package/lib/classes/table.class.d.ts +0 -88
  109. package/lib/components/accordion/accordion.component.d.ts +0 -7
  110. package/lib/components/alert/alert.component.d.ts +0 -10
  111. package/lib/components/base.component.d.ts +0 -17
  112. package/lib/components/calendar/calendar.component.d.ts +0 -26
  113. package/lib/components/chart/chart.component.d.ts +0 -5
  114. package/lib/components/clock/clock.component.d.ts +0 -11
  115. package/lib/components/confirm/confirm.component.d.ts +0 -14
  116. package/lib/components/error/error.component.d.ts +0 -7
  117. package/lib/components/footer/footer.component.d.ts +0 -6
  118. package/lib/components/form/bank-card/form.bank-card.component.d.ts +0 -28
  119. package/lib/components/form/button/form.button.component.d.ts +0 -15
  120. package/lib/components/form/checkbox/form.checkbox.component.d.ts +0 -14
  121. package/lib/components/form/ckeditor/form.ckeditor.component.d.ts +0 -14
  122. package/lib/components/form/date/form.date.component.d.ts +0 -45
  123. package/lib/components/form/datetime/form.datetime.component.d.ts +0 -13
  124. package/lib/components/form/file/form.file.component.d.ts +0 -18
  125. package/lib/components/form/finger/form.finger.component.d.ts +0 -15
  126. package/lib/components/form/hidden/form.hidden.component.d.ts +0 -7
  127. package/lib/components/form/icon/form.icon.component.d.ts +0 -16
  128. package/lib/components/form/index/form.component.d.ts +0 -10
  129. package/lib/components/form/label/form.label.component.d.ts +0 -8
  130. package/lib/components/form/plaque/form.plaque.component.d.ts +0 -21
  131. package/lib/components/form/plaque/select/form.plaque.select.component.d.ts +0 -38
  132. package/lib/components/form/radio/form.radio.component.d.ts +0 -13
  133. package/lib/components/form/select/form.select.component.d.ts +0 -45
  134. package/lib/components/form/select/item/form.select.item.component.d.ts +0 -12
  135. package/lib/components/form/slide/form.slide.component.d.ts +0 -13
  136. package/lib/components/form/star/form.star.component.d.ts +0 -13
  137. package/lib/components/form/table/form.table.component.d.ts +0 -9
  138. package/lib/components/form/tag/form.tag.component.d.ts +0 -16
  139. package/lib/components/form/textarea/form.textarea.component.d.ts +0 -13
  140. package/lib/components/form/textbox/form.textbox.component.d.ts +0 -20
  141. package/lib/components/form/time/form.time.component.d.ts +0 -25
  142. package/lib/components/form/toggle/form.toggle.component.d.ts +0 -13
  143. package/lib/components/form/tree/form.tree.component.d.ts +0 -21
  144. package/lib/components/form/tree/item/form.tree.item.component.d.ts +0 -19
  145. package/lib/components/form/uploader/form.uploader.component.d.ts +0 -21
  146. package/lib/components/form/vehicle/form.vehicle.component.d.ts +0 -18
  147. package/lib/components/form/vehicle/search/form.vehicle.search.component.d.ts +0 -22
  148. package/lib/components/header/header.component.d.ts +0 -10
  149. package/lib/components/header/sub/sub.header.component.d.ts +0 -3
  150. package/lib/components/layout/layout.component.d.ts +0 -7
  151. package/lib/components/loading/loading.component.d.ts +0 -5
  152. package/lib/components/login/login.component.d.ts +0 -15
  153. package/lib/components/modal/modal.component.d.ts +0 -9
  154. package/lib/components/notfound/notfound.component.d.ts +0 -8
  155. package/lib/components/notification/notification.component.d.ts +0 -3
  156. package/lib/components/sidebar/item/sidebar.item.component.d.ts +0 -14
  157. package/lib/components/sidebar/sidebar.component.d.ts +0 -22
  158. package/lib/components/steps/steps.component.d.ts +0 -16
  159. package/lib/components/table/loading/table.loading.component.d.ts +0 -5
  160. package/lib/components/table/pagination/table.pagination.component.d.ts +0 -15
  161. package/lib/components/table/row/table.row.component.d.ts +0 -44
  162. package/lib/components/table/table.component.d.ts +0 -43
  163. package/lib/components/tooltip/tooltip.component.d.ts +0 -5
  164. package/lib/ps-toolkit-ui.module.d.ts +0 -4
  165. package/lib/services/config.service.d.ts +0 -6
  166. package/lib/services/sidebar.service.d.ts +0 -9
  167. package/ps-toolkit-ui.d.ts +0 -20
  168. package/ps-toolkit-ui.metadata.json +0 -1
  169. package/public-api.d.ts +0 -60
@@ -1,124 +0,0 @@
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==
@@ -1,140 +0,0 @@
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==
@@ -1,31 +0,0 @@
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==
@@ -1,84 +0,0 @@
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==
@@ -1,51 +0,0 @@
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==
@@ -1,32 +0,0 @@
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==