ps-toolkit-ui 1.21.42 → 1.21.51

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/bundles/ps-toolkit-ui.umd.js +10321 -0
  2. package/bundles/ps-toolkit-ui.umd.js.map +1 -0
  3. package/bundles/ps-toolkit-ui.umd.min.js +2 -0
  4. package/bundles/ps-toolkit-ui.umd.min.js.map +1 -0
  5. package/esm2015/lib/classes/addModal.class.js +36 -0
  6. package/esm2015/lib/classes/chart.class.js +165 -0
  7. package/esm2015/lib/classes/currentDataClass.js +17 -0
  8. package/esm2015/lib/classes/enum.class.js +253 -0
  9. package/esm2015/lib/classes/excel.class.js +56 -0
  10. package/esm2015/lib/classes/form.class.js +667 -0
  11. package/esm2015/lib/classes/header.class.js +16 -0
  12. package/esm2015/lib/classes/helper.class.js +650 -0
  13. package/esm2015/lib/classes/lang.class.js +35 -0
  14. package/esm2015/lib/classes/login.class.js +29 -0
  15. package/esm2015/lib/classes/modal.class.js +49 -0
  16. package/esm2015/lib/classes/permission.class.js +63 -0
  17. package/esm2015/lib/classes/request.class.js +155 -0
  18. package/esm2015/lib/classes/safehtml.class.js +17 -0
  19. package/esm2015/lib/classes/safestyle.class.js +17 -0
  20. package/esm2015/lib/classes/sidebar.class.js +16 -0
  21. package/esm2015/lib/classes/steps.class.js +45 -0
  22. package/esm2015/lib/classes/string.class.js +251 -0
  23. package/esm2015/lib/classes/table.class.js +593 -0
  24. package/esm2015/lib/components/accordion/accordion.component.js +45 -0
  25. package/esm2015/lib/components/alert/alert.component.js +39 -0
  26. package/esm2015/lib/components/base.component.js +54 -0
  27. package/esm2015/lib/components/calendar/calendar.component.js +98 -0
  28. package/esm2015/lib/components/chart/chart.component.js +17 -0
  29. package/esm2015/lib/components/clock/clock.component.js +33 -0
  30. package/esm2015/lib/components/confirm/confirm.component.js +50 -0
  31. package/esm2015/lib/components/error/error.component.js +26 -0
  32. package/esm2015/lib/components/footer/footer.component.js +23 -0
  33. package/esm2015/lib/components/form/bank-card/form.bank-card.component.js +200 -0
  34. package/esm2015/lib/components/form/button/form.button.component.js +68 -0
  35. package/esm2015/lib/components/form/checkbox/form.checkbox.component.js +67 -0
  36. package/esm2015/lib/components/form/ckeditor/form.ckeditor.component.js +90 -0
  37. package/esm2015/lib/components/form/date/form.date.component.js +314 -0
  38. package/esm2015/lib/components/form/datetime/form.datetime.component.js +106 -0
  39. package/esm2015/lib/components/form/file/form.file.component.js +124 -0
  40. package/esm2015/lib/components/form/finger/form.finger.component.js +140 -0
  41. package/esm2015/lib/components/form/hidden/form.hidden.component.js +31 -0
  42. package/esm2015/lib/components/form/icon/form.icon.component.js +84 -0
  43. package/esm2015/lib/components/form/index/form.component.js +51 -0
  44. package/esm2015/lib/components/form/label/form.label.component.js +32 -0
  45. package/esm2015/lib/components/form/plaque/form.plaque.component.js +258 -0
  46. package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +468 -0
  47. package/esm2015/lib/components/form/radio/form.radio.component.js +82 -0
  48. package/esm2015/lib/components/form/select/form.select.component.js +452 -0
  49. package/esm2015/lib/components/form/select/item/form.select.item.component.js +27 -0
  50. package/esm2015/lib/components/form/slide/form.slide.component.js +84 -0
  51. package/esm2015/lib/components/form/star/form.star.component.js +66 -0
  52. package/esm2015/lib/components/form/table/form.table.component.js +96 -0
  53. package/esm2015/lib/components/form/tag/form.tag.component.js +100 -0
  54. package/esm2015/lib/components/form/textarea/form.textarea.component.js +83 -0
  55. package/esm2015/lib/components/form/textbox/form.textbox.component.js +227 -0
  56. package/esm2015/lib/components/form/time/form.time.component.js +149 -0
  57. package/esm2015/lib/components/form/toggle/form.toggle.component.js +72 -0
  58. package/esm2015/lib/components/form/tree/form.tree.component.js +157 -0
  59. package/esm2015/lib/components/form/tree/item/form.tree.item.component.js +50 -0
  60. package/esm2015/lib/components/form/uploader/form.uploader.component.js +159 -0
  61. package/esm2015/lib/components/form/vehicle/form.vehicle.component.js +104 -0
  62. package/esm2015/lib/components/form/vehicle/search/form.vehicle.search.component.js +237 -0
  63. package/esm2015/lib/components/header/header.component.js +28 -0
  64. package/esm2015/lib/components/header/sub/sub.header.component.js +14 -0
  65. package/esm2015/lib/components/layout/layout.component.js +18 -0
  66. package/esm2015/lib/components/loading/loading.component.js +22 -0
  67. package/esm2015/lib/components/login/login.component.js +159 -0
  68. package/esm2015/lib/components/modal/modal.component.js +25 -0
  69. package/esm2015/lib/components/notfound/notfound.component.js +29 -0
  70. package/esm2015/lib/components/notification/notification.component.js +14 -0
  71. package/esm2015/lib/components/sidebar/item/sidebar.item.component.js +55 -0
  72. package/esm2015/lib/components/sidebar/sidebar.component.js +98 -0
  73. package/esm2015/lib/components/steps/steps.component.js +88 -0
  74. package/esm2015/lib/components/table/loading/table.loading.component.js +17 -0
  75. package/esm2015/lib/components/table/pagination/table.pagination.component.js +84 -0
  76. package/esm2015/lib/components/table/row/table.row.component.js +450 -0
  77. package/esm2015/lib/components/table/table.component.js +240 -0
  78. package/esm2015/lib/components/tooltip/tooltip.component.js +19 -0
  79. package/esm2015/lib/ps-toolkit-ui.module.js +105 -0
  80. package/esm2015/lib/services/config.service.js +14 -0
  81. package/esm2015/lib/services/sidebar.service.js +21 -0
  82. package/esm2015/ps-toolkit-ui.js +21 -0
  83. package/esm2015/public-api.js +64 -0
  84. package/fesm2015/ps-toolkit-ui.js +8926 -0
  85. package/fesm2015/ps-toolkit-ui.js.map +1 -0
  86. package/lib/classes/addModal.class.d.ts +14 -0
  87. package/lib/classes/chart.class.d.ts +15 -0
  88. package/lib/classes/currentDataClass.d.ts +10 -0
  89. package/lib/classes/enum.class.d.ts +221 -0
  90. package/lib/classes/excel.class.d.ts +8 -0
  91. package/lib/classes/form.class.d.ts +193 -0
  92. package/lib/classes/header.class.d.ts +8 -0
  93. package/lib/classes/helper.class.d.ts +50 -0
  94. package/lib/classes/lang.class.d.ts +5 -0
  95. package/lib/classes/login.class.d.ts +21 -0
  96. package/lib/classes/modal.class.d.ts +19 -0
  97. package/lib/classes/permission.class.d.ts +35 -0
  98. package/lib/classes/request.class.d.ts +10 -0
  99. package/lib/classes/safehtml.class.d.ts +7 -0
  100. package/lib/classes/safestyle.class.d.ts +7 -0
  101. package/lib/classes/sidebar.class.d.ts +14 -0
  102. package/lib/classes/steps.class.d.ts +31 -0
  103. package/lib/classes/string.class.d.ts +249 -0
  104. package/lib/classes/table.class.d.ts +88 -0
  105. package/lib/components/accordion/accordion.component.d.ts +7 -0
  106. package/lib/components/alert/alert.component.d.ts +10 -0
  107. package/lib/components/base.component.d.ts +17 -0
  108. package/lib/components/calendar/calendar.component.d.ts +26 -0
  109. package/lib/components/chart/chart.component.d.ts +5 -0
  110. package/lib/components/clock/clock.component.d.ts +11 -0
  111. package/lib/components/confirm/confirm.component.d.ts +14 -0
  112. package/lib/components/error/error.component.d.ts +7 -0
  113. package/lib/components/footer/footer.component.d.ts +6 -0
  114. package/lib/components/form/bank-card/form.bank-card.component.d.ts +28 -0
  115. package/lib/components/form/button/form.button.component.d.ts +15 -0
  116. package/lib/components/form/checkbox/form.checkbox.component.d.ts +14 -0
  117. package/lib/components/form/ckeditor/form.ckeditor.component.d.ts +14 -0
  118. package/lib/components/form/date/form.date.component.d.ts +45 -0
  119. package/lib/components/form/datetime/form.datetime.component.d.ts +13 -0
  120. package/lib/components/form/file/form.file.component.d.ts +18 -0
  121. package/lib/components/form/finger/form.finger.component.d.ts +15 -0
  122. package/lib/components/form/hidden/form.hidden.component.d.ts +7 -0
  123. package/lib/components/form/icon/form.icon.component.d.ts +16 -0
  124. package/lib/components/form/index/form.component.d.ts +10 -0
  125. package/lib/components/form/label/form.label.component.d.ts +8 -0
  126. package/lib/components/form/plaque/form.plaque.component.d.ts +21 -0
  127. package/lib/components/form/plaque/select/form.plaque.select.component.d.ts +38 -0
  128. package/lib/components/form/radio/form.radio.component.d.ts +13 -0
  129. package/lib/components/form/select/form.select.component.d.ts +45 -0
  130. package/lib/components/form/select/item/form.select.item.component.d.ts +12 -0
  131. package/lib/components/form/slide/form.slide.component.d.ts +13 -0
  132. package/lib/components/form/star/form.star.component.d.ts +13 -0
  133. package/lib/components/form/table/form.table.component.d.ts +9 -0
  134. package/lib/components/form/tag/form.tag.component.d.ts +16 -0
  135. package/lib/components/form/textarea/form.textarea.component.d.ts +13 -0
  136. package/lib/components/form/textbox/form.textbox.component.d.ts +20 -0
  137. package/lib/components/form/time/form.time.component.d.ts +25 -0
  138. package/lib/components/form/toggle/form.toggle.component.d.ts +13 -0
  139. package/lib/components/form/tree/form.tree.component.d.ts +21 -0
  140. package/lib/components/form/tree/item/form.tree.item.component.d.ts +19 -0
  141. package/lib/components/form/uploader/form.uploader.component.d.ts +21 -0
  142. package/lib/components/form/vehicle/form.vehicle.component.d.ts +18 -0
  143. package/lib/components/form/vehicle/search/form.vehicle.search.component.d.ts +22 -0
  144. package/lib/components/header/header.component.d.ts +10 -0
  145. package/lib/components/header/sub/sub.header.component.d.ts +3 -0
  146. package/lib/components/layout/layout.component.d.ts +7 -0
  147. package/lib/components/loading/loading.component.d.ts +5 -0
  148. package/lib/components/login/login.component.d.ts +15 -0
  149. package/lib/components/modal/modal.component.d.ts +9 -0
  150. package/lib/components/notfound/notfound.component.d.ts +8 -0
  151. package/lib/components/notification/notification.component.d.ts +3 -0
  152. package/lib/components/sidebar/item/sidebar.item.component.d.ts +14 -0
  153. package/lib/components/sidebar/sidebar.component.d.ts +22 -0
  154. package/lib/components/steps/steps.component.d.ts +16 -0
  155. package/lib/components/table/loading/table.loading.component.d.ts +5 -0
  156. package/lib/components/table/pagination/table.pagination.component.d.ts +15 -0
  157. package/lib/components/table/row/table.row.component.d.ts +44 -0
  158. package/lib/components/table/table.component.d.ts +43 -0
  159. package/lib/components/tooltip/tooltip.component.d.ts +5 -0
  160. package/lib/ps-toolkit-ui.module.d.ts +4 -0
  161. package/lib/services/config.service.d.ts +6 -0
  162. package/lib/services/sidebar.service.d.ts +9 -0
  163. package/package.json +12 -16
  164. package/ps-toolkit-ui.d.ts +20 -0
  165. package/ps-toolkit-ui.metadata.json +1 -0
  166. package/public-api.d.ts +60 -0
  167. package/fesm2022/ps-toolkit-ui.mjs +0 -9472
  168. package/fesm2022/ps-toolkit-ui.mjs.map +0 -1
  169. package/types/ps-toolkit-ui.d.ts +0 -1671
@@ -0,0 +1,237 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { InputClass } from '../../../../classes/form.class';
3
+ import { InputError, InputType, VehicleType } from '../../../../classes/enum.class';
4
+ import { HelperClass } from '../../../../classes/helper.class';
5
+ export class FormVehicleSearchComponent {
6
+ constructor() {
7
+ this.changeIndex = new EventEmitter();
8
+ this.type = null;
9
+ this.wsAuth = null;
10
+ }
11
+ get vehicleType() { return VehicleType; }
12
+ ngOnInit() {
13
+ var _a;
14
+ this.type = this.inp.rows.find(_ => true);
15
+ this.car = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-user', InputType.SelectAutoCompletePlaque, 'plaque-inp');
16
+ this.motor = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-motorcycle', InputType.SelectAutoCompletePlaqueM, 'plaque-inp');
17
+ this.carF = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-earth-asia', InputType.SelectAutoCompletePlaqueF, 'plaque-inp');
18
+ this.carG = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-globe', InputType.SelectAutoCompletePlaqueG, 'plaque-inp');
19
+ this.driver = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', null, InputType.SelectAutoComplete, 'plaque-inp');
20
+ this.driver.placeholder = this.inp.l('DriverName');
21
+ this.fingerprint = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', null, InputType.Select, 'plaque-inp');
22
+ this.car.displayLabel = this.motor.displayLabel = this.carF.displayLabel = this.carG.displayLabel = this.driver.displayLabel = this.fingerprint.displayLabel = false;
23
+ this.car.url = this.motor.url = this.carF.url = this.carG.url = this.driver.url = this.inp.url.replace('_{}', '_' + this.type);
24
+ this.car.onChange = () => {
25
+ this.inp.error = null;
26
+ this.changeIndex.emit('Tab');
27
+ if (this.inp.onChange) {
28
+ this.inp.onChange(this.car.data());
29
+ }
30
+ };
31
+ this.motor.onChange = () => {
32
+ this.inp.error = null;
33
+ this.changeIndex.emit('Tab');
34
+ if (this.inp.onChange) {
35
+ this.inp.onChange(this.motor.data());
36
+ }
37
+ };
38
+ this.carF.onChange = () => {
39
+ this.inp.error = null;
40
+ this.changeIndex.emit('Tab');
41
+ if (this.inp.onChange) {
42
+ this.inp.onChange(this.carF.data());
43
+ }
44
+ };
45
+ this.carG.onChange = () => {
46
+ this.inp.error = null;
47
+ this.changeIndex.emit('Tab');
48
+ if (this.inp.onChange) {
49
+ this.inp.onChange(this.carG.data());
50
+ }
51
+ };
52
+ this.driver.onChange = (e) => {
53
+ this.inp.error = null;
54
+ if (e.value != null) {
55
+ this.changeIndex.emit('Tab');
56
+ if (this.inp.onChange) {
57
+ this.inp.onChange(this.driver.data());
58
+ }
59
+ }
60
+ };
61
+ this.fingerprint.onChange = () => {
62
+ this.inp.error = null;
63
+ this.changeIndex.emit('Tab');
64
+ if (this.inp.onChange) {
65
+ this.inp.onChange(this.fingerprint.data());
66
+ }
67
+ };
68
+ this.fingerprint.disabled = true;
69
+ this.fingerprint.placeholder = this.inp.l('LoadingText', 'Waiting');
70
+ this.inp.setValue = (v, isEdit = false) => {
71
+ if (v != null && v.Search) {
72
+ this.changeType(v.Type, isEdit);
73
+ setTimeout(() => {
74
+ if (v.Type === VehicleType.Motorcycle) {
75
+ this.motor.setValue(v.Value, false);
76
+ this.motor.setSearch(v.Search);
77
+ }
78
+ else if (v.Type === VehicleType.CarF) {
79
+ this.carF.setValue(v.Value, false);
80
+ this.carF.setSearch(v.Search);
81
+ }
82
+ else if (v.Type === VehicleType.Car) {
83
+ this.car.setValue(v.Value, false);
84
+ this.car.setSearch(v.Search);
85
+ }
86
+ else if (v.Type === VehicleType.CarG) {
87
+ this.carG.setValue(v.Value, false);
88
+ this.carG.setSearch(v.Search);
89
+ }
90
+ else if (v.Type === VehicleType.Driver) {
91
+ this.driver.setValue(v.Value, false);
92
+ this.driver.setSearch(v.Search);
93
+ }
94
+ });
95
+ }
96
+ };
97
+ this.inp.focus = () => {
98
+ this.onFocusIn();
99
+ };
100
+ this.inp.isValid = () => {
101
+ this.inp.error = null;
102
+ if (this.inp.required && this.type === VehicleType.Car && !this.car.isValid()) {
103
+ this.inp.error = InputError.Required;
104
+ return false;
105
+ }
106
+ if (this.inp.required && this.type === VehicleType.Motorcycle && !this.motor.isValid()) {
107
+ this.inp.error = InputError.Required;
108
+ return false;
109
+ }
110
+ if (this.inp.required && this.type === VehicleType.CarF && !this.carF.isValid()) {
111
+ this.inp.error = InputError.Required;
112
+ return false;
113
+ }
114
+ if (this.inp.required && this.type === VehicleType.CarG && !this.carG.isValid()) {
115
+ this.inp.error = InputError.Required;
116
+ return false;
117
+ }
118
+ if (this.inp.required && this.type === VehicleType.Driver && !this.driver.isValid()) {
119
+ this.inp.error = InputError.Required;
120
+ return false;
121
+ }
122
+ if (this.inp.required && this.type === VehicleType.Fingerprint && !this.fingerprint.isValid()) {
123
+ this.inp.error = InputError.Required;
124
+ return false;
125
+ }
126
+ return true;
127
+ };
128
+ this.inp.clear = () => {
129
+ this.inp.error = null;
130
+ this.inp.setValue(null, false);
131
+ this.changeType(VehicleType.Car);
132
+ this.car.clear();
133
+ this.motor.clear();
134
+ this.carF.clear();
135
+ this.carG.clear();
136
+ this.driver.clear();
137
+ this.fingerprint.clear();
138
+ };
139
+ this.inp.data = () => {
140
+ const d = this.type === VehicleType.Car ? this.car.data() :
141
+ this.type === VehicleType.Motorcycle ? this.motor.data() :
142
+ this.type === VehicleType.CarF ? this.carF.data() :
143
+ this.type === VehicleType.CarG ? this.carG.data() :
144
+ this.type === VehicleType.Driver ? this.driver.data() :
145
+ this.type === VehicleType.Fingerprint ? this.fingerprint.data() : null;
146
+ const r = {};
147
+ r[this.inp.name] = d[this.inp.name + 'Item'];
148
+ r[this.inp.name + 'Name'] = d[this.inp.name + 'ItemName'];
149
+ r.Type = this.type;
150
+ return r;
151
+ };
152
+ if (this.inp.addModal) {
153
+ if ((_a = this.inp.addModal.form) === null || _a === void 0 ? void 0 : _a.permission) {
154
+ this.addIcon = new InputClass(this.inp.environment, this.inp.l, 'Add' + this.inp.name, 'fad fa-plus', InputType.Icon, 'blue m-b-2');
155
+ this.addIcon.onClick = () => {
156
+ this.inp.addModal.show();
157
+ };
158
+ }
159
+ }
160
+ }
161
+ changeType(t, isEdit = false) {
162
+ this.type = t;
163
+ if (this.wsAuth != null) {
164
+ this.wsAuth.close();
165
+ }
166
+ if (t === VehicleType.Fingerprint) {
167
+ this.fingerprint.loading = true;
168
+ this.fingerprint.placeholder = this.inp.l('LoadingText', 'Waiting');
169
+ this.fingerprint.value = null;
170
+ this.fingerprint.search = null;
171
+ this.wsAuth = new WebSocket('ws://localhost:7890/Auth');
172
+ this.wsAuth.onopen = () => {
173
+ };
174
+ this.wsAuth.onmessage = (evt) => {
175
+ if (this.wsAuth != null) {
176
+ this.wsAuth.close();
177
+ }
178
+ if (evt.data === 'Notfound') {
179
+ HelperClass.addNotification(this.inp.l('NotfoundTitle'));
180
+ this.fingerprint.placeholder = this.inp.l('NotfoundTitle');
181
+ this.fingerprint.value = null;
182
+ this.fingerprint.search = null;
183
+ this.fingerprint.loading = false;
184
+ }
185
+ else if (evt.data.startsWith('Error')) {
186
+ HelperClass.addNotification(evt.data);
187
+ this.fingerprint.placeholder = this.inp.l('NotfoundTitle');
188
+ this.fingerprint.value = null;
189
+ this.fingerprint.search = null;
190
+ this.fingerprint.loading = false;
191
+ }
192
+ else {
193
+ const user = JSON.parse(evt.data);
194
+ this.fingerprint.value = user.Id;
195
+ this.fingerprint.search = user.Name;
196
+ this.fingerprint.loading = false;
197
+ }
198
+ this.wsAuth.close();
199
+ this.wsAuth = null;
200
+ };
201
+ this.wsAuth.onclose = () => {
202
+ };
203
+ }
204
+ this.car.url = this.motor.url = this.carF.url = this.carG.url = this.driver.url = this.inp.url.replace('_{}', '_' + this.type);
205
+ if (!isEdit) {
206
+ this.onFocusIn();
207
+ }
208
+ }
209
+ onFocusIn() {
210
+ if (this.type === VehicleType.Car || this.type === VehicleType.Motorcycle || this.type === VehicleType.CarF || this.type === VehicleType.CarG) {
211
+ setTimeout(() => {
212
+ $('#' + this.inp.id + 'VehicleSearchInput .plaque-inp').click();
213
+ $('#' + this.inp.id + 'VehicleSearchInput #Part1TextInput .control').focus();
214
+ }, 100);
215
+ }
216
+ else if (this.type === VehicleType.Driver) {
217
+ this.driver.focus();
218
+ }
219
+ else if (this.type === VehicleType.Fingerprint) {
220
+ this.fingerprint.focus();
221
+ }
222
+ }
223
+ }
224
+ FormVehicleSearchComponent.decorators = [
225
+ { type: Component, args: [{
226
+ selector: 'lib-form-vehicle-search',
227
+ template: "<div #inputDiv [id]=\"inp.id + 'VehicleSearchInput'\" [style]=\"inp.style\" [className]=\"inp.class + (inp.error == null ? '' : ' error') + (inp.icon != null ? '' : ' without-icon') + (inp.addModal != null ? ' add-modal' : '') + ' form-input-con w-100 vehicle-search'\">\r\n <div class=\"form-input\">\r\n <div class=\"label\">\r\n <i *ngIf=\"inp.required\" class=\"f-r fas fa-star-of-life required-icon\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Car)\" [className]=\"(type == vehicleType.Car ? 'active ' : '') + 'change-type-btn fas fa-car'\" (click)=\"changeType(vehicleType.Car)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Motorcycle)\" [className]=\"(type == vehicleType.Motorcycle ? 'active ' : '') + 'change-type-btn fas fa-motorcycle'\" (click)=\"changeType(vehicleType.Motorcycle)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Driver)\" [className]=\"(type == vehicleType.Driver ? 'active ' : '') + 'change-type-btn fas fa-user'\" (click)=\"changeType(vehicleType.Driver)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Fingerprint)\" [className]=\"(type == vehicleType.Fingerprint ? 'active ' : '') + 'change-type-btn fas fa-fingerprint'\" (click)=\"changeType(vehicleType.Fingerprint)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarF)\" [className]=\"(type == vehicleType.CarF ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarF)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarG)\" [className]=\"(type == vehicleType.CarG ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarG)\"></i>\r\n </div>\r\n <div class=\"w-100 p-r\">\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"car\" *ngIf=\"type === vehicleType.Car\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"motor\" *ngIf=\"type === vehicleType.Motorcycle\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carF\" *ngIf=\"type === vehicleType.CarF\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carG\" *ngIf=\"type === vehicleType.CarG\"></lib-form-plaque-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"driver\" *ngIf=\"type === vehicleType.Driver\"></lib-form-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"fingerprint\" *ngIf=\"type === vehicleType.Fingerprint\"></lib-form-select>\r\n </div>\r\n </div>\r\n <lib-form-icon *ngIf=\"addIcon != null\" [inp]=\"addIcon\"></lib-form-icon>\r\n</div>\r\n<lib-modal *ngIf=\"inp.addModal != null\" [modal]=\"inp.addModal\"></lib-modal>\r\n",
228
+ styles: [".form-input-con.vehicle-search{align-items:end;display:flex;float:right;justify-content:center;position:relative}.form-input-con.vehicle-search .form-input{float:right;position:relative;width:198px}.form-input-con.vehicle-search .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.vehicle-search.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.vehicle-search .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.vehicle-search .form-input .label .change-type-btn{cursor:pointer;float:right;font-size:16px;height:20px;line-height:20px;text-align:center;width:30px}.form-input-con.vehicle-search .form-input .label .change-type-btn.fa-user{font-size:14px;line-height:18px}.form-input-con.vehicle-search .form-input .label .change-type-btn.active,.form-input-con.vehicle-search .form-input .label .change-type-btn:hover{color:var(--primary)}.form-input-con.vehicle-search .form-input .control{background-color:#fff;background-image:none;border:none;border-radius:var(--border-radius-base);box-shadow:0 1px 3px 0 rgba(0,0,0,.4);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input-con.vehicle-search .form-input .control:focus,.form-input-con.vehicle-search:hover .form-input .control{box-shadow:0 1px 5px 0 rgba(0,0,0,.7)}.form-input-con.vehicle-search .form-input span.icon{bottom:0;color:var(--primary);cursor:text;font-size:14px;height:35px;left:0;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.vehicle-search .form-input span.icon.button{background-color:var(--base);border-radius:var(--border-radius-base) 0 0 var(--border-radius-base);color:#fff;cursor:pointer}.form-input-con.vehicle-search .form-input span.icon.button:hover{background-color:var(--base-dark)}.form-input-con.vehicle-search .form-input span.icon.button.blue{background-color:var(--blue)}.form-input-con.vehicle-search .form-input span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input-con.vehicle-search .form-input span.icon.button.green{background-color:var(--green)}.form-input-con.vehicle-search .form-input span.icon.button.green:hover{background-color:var(--green-dark)}.form-input-con.vehicle-search .form-input span.icon.button.red{background-color:var(--red)}.form-input-con.vehicle-search .form-input span.icon.button.red:hover{background-color:var(--red-dark)}.form-input-con.vehicle-search .form-input span.icon.button.yellow{background-color:var(--yellow)}.form-input-con.vehicle-search .form-input span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input-con.vehicle-search.disabled .form-input .control,.form-input-con.vehicle-search.disabled .form-input .label,.form-input-con.vehicle-search.disabled .form-input span.icon{-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}.form-input-con.vehicle-search.error .form-input .control{box-shadow:0 1px 3px 0 var(--red)}.form-input-con.vehicle-search.error .form-input .control,.form-input-con.vehicle-search.error .form-input span.icon{color:var(--red-light)}.form-input-con.vehicle-search .form-input .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:0;height:3px;line-height:3px;position:absolute;right:0;transition:width .5s ease-in-out;width:100%;z-index:2}.form-input-con.vehicle-search.without-icon .form-input .control{padding:5px 10px}.form-input-con.vehicle-search.h-50 .form-input .control{height:50px}.form-input-con.vehicle-search.h-50 .form-input span.icon{height:50px;line-height:50px}.form-input-con.vehicle-search.h-45 .form-input .control{height:45px}.form-input-con.vehicle-search.h-45 .form-input span.icon{height:45px;line-height:45px}.form-input-con.vehicle-search.h-30 .form-input .control{font-size:10px;height:30px;padding:0}.form-input-con.vehicle-search.h-30 .form-input span.icon{height:30px;line-height:30px}.form-input-con.vehicle-search.h-35 .form-input{height:35px}.form-input-con.vehicle-search.h-35 .form-input .control{height:35px;padding:0 35px}.form-input-con.vehicle-search.h-35 .form-input span.icon{height:35px;line-height:35px}.form-input-con.vehicle-search.h-25 .form-input .control{height:25px;padding:0}.form-input-con.vehicle-search.h-25 .form-input span.icon{height:25px;line-height:25px}.form-input-con.vehicle-search.table-search .form-input{float:right;margin-right:10%;margin-top:4px;width:80%}.form-input-con.vehicle-search.h-22 .form-input .control{height:22px;padding:0}.form-input-con.vehicle-search.h-22 .form-input span.icon{height:22px;line-height:22px}.form-input-con.vehicle-search.plaque-part-1 .form-input{float:left;padding:0!important;width:35px!important}.form-input-con.vehicle-search.plaque-part-1 .form-input .plaque-part-m{width:49px!important}.form-input-con.vehicle-search.plaque-part-3 .form-input{float:left;padding:0!important;width:49px!important}.form-input-con.vehicle-search.plaque-part-3 .form-input .plaque-part-m{width:69px!important}.form-input-con.vehicle-search.plaque-part-4 .form-input{float:left;margin-top:10px;padding:0!important;width:34px!important}.form-input-con.vehicle-search.plaque-part-4 .form-input .control{height:25px!important}.form-input-con.vehicle-search.plaque-part-4 .form-input .plaque-part-m{display:none!important}.form-input-con.vehicle-search.bank-card-part-item .form-input{float:left;padding:0!important;width:25%}.form-input-con.vehicle-search.bank-card-part-item .form-input :not(.bank-card-part-4):after{content:\"\\f068\";font-family:Font Awesome\\ 5 Free;font-size:6px;font-weight:900;height:20px;line-height:20px;position:absolute;right:-10px;text-align:center;top:calc(50% - 10px);width:20px}.form-input-con.vehicle-search.bank-card-part-item .form-input .control{background-color:initial!important;box-shadow:unset!important;font-size:13px!important;padding:0!important}"]
229
+ },] }
230
+ ];
231
+ FormVehicleSearchComponent.ctorParameters = () => [];
232
+ FormVehicleSearchComponent.propDecorators = {
233
+ inp: [{ type: Input }],
234
+ changeIndex: [{ type: Output }],
235
+ inputDiv: [{ type: ViewChild, args: ['inputDiv',] }]
236
+ };
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS52ZWhpY2xlLnNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS92ZWhpY2xlL3NlYXJjaC9mb3JtLnZlaGljbGUuc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBTzdELE1BQU0sT0FBTywwQkFBMEI7SUFnQnJDO1FBWkEsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3pDLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBUXpCLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFJZCxDQUFDO0lBSEQsSUFBSSxXQUFXLEtBQXlCLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQztJQUk3RCxRQUFROztRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ2hGLFNBQVMsRUFBRSxTQUFTLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ2xGLGVBQWUsRUFBRSxTQUFTLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ2pGLGVBQWUsRUFBRSxTQUFTLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ2pGLFVBQVUsRUFBRSxTQUFTLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ25GLElBQUksRUFBRSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFVBQVUsQ0FB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QUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxVQUFVLEVBQUM7d0JBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDaEM7eUJBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUU7d0JBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDL0I7eUJBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxHQUFHLEVBQUM7d0JBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDOUI7eUJBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUM7d0JBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDL0I7eUJBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUM7d0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMs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SW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlLCBWZWhpY2xlVHlwZX0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS12ZWhpY2xlLXNlYXJjaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0udmVoaWNsZS5zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0udmVoaWNsZS5zZWFyY2guY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtVmVoaWNsZVNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICB0eXBlOiBWZWhpY2xlVHlwZSA9IG51bGw7XHJcbiAgY2FyOiBJbnB1dENsYXNzO1xyXG4gIG1vdG9yOiBJbnB1dENsYXNzO1xyXG4gIGNhckY6IElucHV0Q2xhc3M7XHJcbiAgY2FyRzogSW5wdXRDbGFzcztcclxuICBkcml2ZXI6IElucHV0Q2xhc3M7XHJcbiAgZmluZ2VycHJpbnQ6IElucHV0Q2xhc3M7XHJcbiAgYWRkSWNvbjogSW5wdXRDbGFzcztcclxuICB3c0F1dGggPSBudWxsO1xyXG4gIGdldCB2ZWhpY2xlVHlwZSgpOiB0eXBlb2YgVmVoaWNsZVR5cGUgeyByZXR1cm4gVmVoaWNsZVR5cGU7IH1cclxuICBAVmlld0NoaWxkKCdpbnB1dERpdicpIGlucHV0RGl2OiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50eXBlID0gdGhpcy5pbnAucm93cy5maW5kKF8gPT4gdHJ1ZSk7XHJcbiAgICB0aGlzLmNhciA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCB0aGlzLmlucC5uYW1lICsgJ0l0ZW0nLFxyXG4gICAgICAnZmEtdXNlcicsIElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUsICdwbGFxdWUtaW5wJyk7XHJcbiAgICB0aGlzLm1vdG9yID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsIHRoaXMuaW5wLm5hbWUgKyAnSXRlbScsXHJcbiAgICAgICdmYS1tb3RvcmN5Y2xlJywgSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0sICdwbGFxdWUtaW5wJyk7XHJcbiAgICB0aGlzLmNhckYgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgdGhpcy5pbnAubmFtZSArICdJdGVtJyxcclxuICAgICAgJ2ZhLWVhcnRoLWFzaWEnLCBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRiwgJ3BsYXF1ZS1pbnAnKTtcclxuICAgIHRoaXMuY2FyRyA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCB0aGlzLmlucC5uYW1lICsgJ0l0ZW0nLFxyXG4gICAgICAnZmEtZ2xvYmUnLCBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRywgJ3BsYXF1ZS1pbnAnKTtcclxuICAgIHRoaXMuZHJpdmVyID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsIHRoaXMuaW5wLm5hbWUgKyAnSXRlbScsXHJcbiAgICAgIG51bGwsIElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUsICdwbGFxdWUtaW5wJyk7XHJcbiAgICB0aGlzLmRyaXZlci5wbGFjZWhvbGRlciA9IHRoaXMuaW5wLmwoJ0RyaXZlck5hbWUnKTtcclxuICAgIHRoaXMuZmluZ2VycHJpbnQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgdGhpcy5pbnAubmFtZSArICdJdGVtJywgbnVsbCwgSW5wdXRUeXBlLlNlbGVjdCwgJ3BsYXF1ZS1pbnAnKTtcclxuICAgIHRoaXMuY2FyLmRpc3BsYXlMYWJlbCA9IHRoaXMubW90b3IuZGlzcGxheUxhYmVsID0gdGhpcy5jYXJGLmRpc3BsYXlMYWJlbCA9IHRoaXMuY2FyRy5kaXNwbGF5TGFiZWwgPSB0aGlzLmRyaXZlci5kaXNwbGF5TGFiZWwgPSB0aGlzLmZpbmdlcnByaW50LmRpc3BsYXlMYWJlbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXIudXJsID0gdGhpcy5tb3Rvci51cmwgPSB0aGlzLmNhckYudXJsID0gdGhpcy5jYXJHLnVybCA9IHRoaXMuZHJpdmVyLnVybCA9IHRoaXMuaW5wLnVybC5yZXBsYWNlKCdfe30nLCAnXycgKyB0aGlzLnR5cGUpO1xyXG4gICAgdGhpcy5jYXIub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLmNhci5kYXRhKCkpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5tb3Rvci5vbkNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1RhYicpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMubW90b3IuZGF0YSgpKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuY2FyRi5vbkNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1RhYicpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuY2FyRi5kYXRhKCkpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5jYXJHLm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5jYXJHLmRhdGEoKSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmRyaXZlci5vbkNoYW5nZSA9IChlKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKGUudmFsdWUgIT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5kcml2ZXIuZGF0YSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmZpbmdlcnByaW50Lm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5maW5nZXJwcmludC5kYXRhKCkpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5maW5nZXJwcmludC5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLmZpbmdlcnByaW50LnBsYWNlaG9sZGVyID0gdGhpcy5pbnAubCgnTG9hZGluZ1RleHQnLCAnV2FpdGluZycpO1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodiwgaXNFZGl0ID0gZmFsc2UpID0+IHtcclxuICAgICAgaWYgKHYgIT0gbnVsbCAmJiB2LlNlYXJjaCl7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VUeXBlKHYuVHlwZSwgaXNFZGl0KTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIGlmICh2LlR5cGUgPT09IFZlaGljbGVUeXBlLk1vdG9yY3ljbGUpe1xyXG4gICAgICAgICAgICB0aGlzLm1vdG9yLnNldFZhbHVlKHYuVmFsdWUsIGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5tb3Rvci5zZXRTZWFyY2godi5TZWFyY2gpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh2LlR5cGUgPT09IFZlaGljbGVUeXBlLkNhckYpIHtcclxuICAgICAgICAgICAgdGhpcy5jYXJGLnNldFZhbHVlKHYuVmFsdWUsIGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5jYXJGLnNldFNlYXJjaCh2LlNlYXJjaCk7XHJcbiAgICAgICAgICB9ZWxzZSBpZiAodi5UeXBlID09PSBWZWhpY2xlVHlwZS5DYXIpe1xyXG4gICAgICAgICAgICB0aGlzLmNhci5zZXRWYWx1ZSh2LlZhbHVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyLnNldFNlYXJjaCh2LlNlYXJjaCk7XHJcbiAgICAgICAgICB9ZWxzZSBpZiAodi5UeXBlID09PSBWZWhpY2xlVHlwZS5DYXJHKXtcclxuICAgICAgICAgICAgdGhpcy5jYXJHLnNldFZhbHVlKHYuVmFsdWUsIGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5jYXJHLnNldFNlYXJjaCh2LlNlYXJjaCk7XHJcbiAgICAgICAgICB9ZWxzZSBpZiAodi5UeXBlID09PSBWZWhpY2xlVHlwZS5Ecml2ZXIpe1xyXG4gICAgICAgICAgICB0aGlzLmRyaXZlci5zZXRWYWx1ZSh2LlZhbHVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZHJpdmVyLnNldFNlYXJjaCh2LlNlYXJjaCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5mb2N1cyA9ICgpID0+IHtcclxuICAgICAgdGhpcy5vbkZvY3VzSW4oKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkNhciAmJiAhdGhpcy5jYXIuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5Nb3RvcmN5Y2xlICYmICF0aGlzLm1vdG9yLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyRiAmJiAhdGhpcy5jYXJGLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyRyAmJiAhdGhpcy5jYXJHLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuRHJpdmVyICYmICF0aGlzLmRyaXZlci5pc1ZhbGlkKCkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkZpbmdlcnByaW50ICYmICF0aGlzLmZpbmdlcnByaW50LmlzVmFsaWQoKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAuc2V0VmFsdWUobnVsbCwgZmFsc2UpO1xyXG4gICAgICB0aGlzLmNoYW5nZVR5cGUoVmVoaWNsZVR5cGUuQ2FyKTtcclxuICAgICAgdGhpcy5jYXIuY2xlYXIoKTtcclxuICAgICAgdGhpcy5tb3Rvci5jbGVhcigpO1xyXG4gICAgICB0aGlzLmNhckYuY2xlYXIoKTtcclxuICAgICAgdGhpcy5jYXJHLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuZHJpdmVyLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuZmluZ2VycHJpbnQuY2xlYXIoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5kYXRhID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBkID0gdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5DYXIgPyB0aGlzLmNhci5kYXRhKCkgOlxyXG4gICAgICAgIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuTW90b3JjeWNsZSA/IHRoaXMubW90b3IuZGF0YSgpIDpcclxuICAgICAgICAgIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyRiA/IHRoaXMuY2FyRi5kYXRhKCkgOlxyXG4gICAgICAgICAgICB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkNhckcgPyB0aGlzLmNhckcuZGF0YSgpIDpcclxuICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkRyaXZlciA/IHRoaXMuZHJpdmVyLmRhdGEoKSA6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkZpbmdlcnByaW50ID8gdGhpcy5maW5nZXJwcmludC5kYXRhKCkgOiBudWxsO1xyXG4gICAgICBjb25zdCByOiBhbnkgPSB7fTtcclxuICAgICAgclt0aGlzLmlucC5uYW1lXSA9IGRbdGhpcy5pbnAubmFtZSArICdJdGVtJ107XHJcbiAgICAgIHJbdGhpcy5pbnAubmFtZSArICdOYW1lJ10gPSBkW3RoaXMuaW5wLm5hbWUgKyAnSXRlbU5hbWUnXTtcclxuICAgICAgci5UeXBlID0gdGhpcy50eXBlO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5pbnAuYWRkTW9kYWwpe1xyXG4gICAgICBpZiAodGhpcy5pbnAuYWRkTW9kYWwuZm9ybT8ucGVybWlzc2lvbil7XHJcbiAgICAgICAgdGhpcy5hZGRJY29uID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsICdBZGQnICsgdGhpcy5pbnAubmFtZSwgJ2ZhZCBmYS1wbHVzJywgSW5wdXRUeXBlLkljb24sICdibHVlIG0tYi0yJyk7XHJcbiAgICAgICAgdGhpcy5hZGRJY29uLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucC5hZGRNb2RhbC5zaG93KCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBjaGFuZ2VUeXBlKHQ6IFZlaGljbGVUeXBlLCBpc0VkaXQgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgdGhpcy50eXBlID0gdDtcclxuICAgIGlmICh0aGlzLndzQXV0aCAhPSBudWxsKXtcclxuICAgICAgdGhpcy53c0F1dGguY2xvc2UoKTtcclxuICAgIH1cclxuICAgIGlmICh0ID09PSBWZWhpY2xlVHlwZS5GaW5nZXJwcmludCl7XHJcbiAgICAgIHRoaXMuZmluZ2VycHJpbnQubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZmluZ2VycHJpbnQucGxhY2Vob2xkZXIgPSB0aGlzLmlucC5sKCdMb2FkaW5nVGV4dCcsICdXYWl0aW5nJyk7XHJcbiAgICAgIHRoaXMuZmluZ2VycHJpbnQudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmZpbmdlcnByaW50LnNlYXJjaCA9IG51bGw7XHJcbiAgICAgIHRoaXMud3NBdXRoID0gbmV3IFdlYlNvY2tldCgnd3M6Ly9sb2NhbGhvc3Q6Nzg5MC9BdXRoJyk7XHJcbiAgICAgIHRoaXMud3NBdXRoLm9ub3BlbiA9ICgpID0+IHtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHRoaXMud3NBdXRoLm9ubWVzc2FnZSA9IChldnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy53c0F1dGggIT0gbnVsbCl7XHJcbiAgICAgICAgICB0aGlzLndzQXV0aC5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZ0LmRhdGEgPT09ICdOb3Rmb3VuZCcpe1xyXG4gICAgICAgICAgSGVscGVyQ2xhc3MuYWRkTm90aWZpY2F0aW9uKHRoaXMuaW5wLmwoJ05vdGZvdW5kVGl0bGUnKSk7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnBsYWNlaG9sZGVyID0gdGhpcy5pbnAubCgnTm90Zm91bmRUaXRsZScpO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnNlYXJjaCA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2UgaWYgKGV2dC5kYXRhLnN0YXJ0c1dpdGgoJ0Vycm9yJykpe1xyXG4gICAgICAgICAgSGVscGVyQ2xhc3MuYWRkTm90aWZpY2F0aW9uKGV2dC5kYXRhKTtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQucGxhY2Vob2xkZXIgPSB0aGlzLmlucC5sKCdOb3Rmb3VuZFRpdGxlJyk7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnZhbHVlID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQuc2VhcmNoID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCB1c2VyID0gSlNPTi5wYXJzZShldnQuZGF0YSk7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnZhbHVlID0gdXNlci5JZDtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQuc2VhcmNoID0gdXNlci5OYW1lO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMud3NBdXRoLmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy53c0F1dGggPSBudWxsO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLndzQXV0aC5vbmNsb3NlID0gKCkgPT4ge1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYXIudXJsID0gdGhpcy5tb3Rvci51cmwgPSB0aGlzLmNhckYudXJsID0gdGhpcy5jYXJHLnVybCA9IHRoaXMuZHJpdmVyLnVybCA9IHRoaXMuaW5wLnVybC5yZXBsYWNlKCdfe30nLCAnXycgKyB0aGlzLnR5cGUpO1xyXG4gICAgaWYgKCFpc0VkaXQpe1xyXG4gICAgICB0aGlzLm9uRm9jdXNJbigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkZvY3VzSW4oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5DYXIgfHwgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5Nb3RvcmN5Y2xlIHx8IHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyRiB8fCB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkNhckcpe1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAkKCcjJyArIHRoaXMuaW5wLmlkICsgJ1ZlaGljbGVTZWFyY2hJbnB1dCAucGxhcXVlLWlucCcpLmNsaWNrKCk7XHJcbiAgICAgICAgJCgnIycgKyB0aGlzLmlucC5pZCArICdWZWhpY2xlU2VhcmNoSW5wdXQgI1BhcnQxVGV4dElucHV0IC5jb250cm9sJykuZm9jdXMoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5Ecml2ZXIpe1xyXG4gICAgICB0aGlzLmRyaXZlci5mb2N1cygpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkZpbmdlcnByaW50KXtcclxuICAgICAgdGhpcy5maW5nZXJwcmludC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { PsToolkitUiConfigService } from '../../services/config.service';
3
+ import * as $ from 'jquery';
4
+ import { InputType } from '../../classes/enum.class';
5
+ export class HeaderComponent {
6
+ constructor(config) {
7
+ this.config = config;
8
+ this.header = null;
9
+ }
10
+ get type() { return InputType; }
11
+ showUserDropDown(e) {
12
+ $(e.target).closest('#Header').find('.user-drop-down').slideToggle(100);
13
+ }
14
+ }
15
+ HeaderComponent.decorators = [
16
+ { type: Component, args: [{
17
+ selector: 'lib-header',
18
+ template: "<div id=\"Header\" class=\"underline\">\r\n <div class=\"content\"><ng-content></ng-content></div>\r\n <div class=\"user-con\">\r\n <i (click)=\"showUserDropDown($event)\" class=\"fad fa-user user\"></i>\r\n <div class=\"user-drop-down\">\r\n <div class=\"username underline\" *ngIf=\"header.username != null\">{{header.username}}</div>\r\n <div class=\"info\" *ngIf=\"header.info != null\" [innerHTML]=\"header.info\"></div>\r\n <span *ngFor=\"let btn of header.buttons\">\r\n <lib-form-button [inp]=\"btn\" *ngIf=\"btn.type == type.Button\"></lib-form-button>\r\n <lib-form-icon [inp]=\"btn\" *ngIf=\"btn.type == type.Icon\"></lib-form-icon>\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n",
19
+ styles: ["#Header{background-color:#fff;float:right;height:50px;position:relative;width:100%;z-index:110}#Header .content{float:right;height:100%;margin-right:50px;text-align:center;width:calc(100% - 150px)}#Header .user-con{align-items:center;display:flex;float:right;height:100%;justify-content:center;position:relative;width:100px}#Header .user-con .user{border-radius:50%;color:var(--primary);cursor:pointer;float:right;font-size:18px;height:30px;line-height:30px;text-align:center;width:30px}#Header .user-con .user:hover{color:var(--primary-dark)}#Header .user-con .user-drop-down{background-color:#fff;border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);display:none;left:20px;overflow:hidden;position:absolute;top:55px;width:150px}#Header .user-con .user-drop-down .username{float:right;font-weight:var(--font-bold);line-height:35px;position:relative;text-align:center;width:100%}#Header .user-con .user-drop-down .info{float:right;width:100%}::ng-deep #Header .user-drop-down .form-input-con.button .control{border-radius:0}@media (max-width:399.98px){#Header .content{font-size:12px;width:calc(100% - 100px)}#Header .user-con{width:50px}}@media (min-width:400px) and (max-width:499.98px){#Header .content{font-size:12px;width:calc(100% - 100px)}#Header .user-con{width:50px}}"]
20
+ },] }
21
+ ];
22
+ HeaderComponent.ctorParameters = () => [
23
+ { type: PsToolkitUiConfigService }
24
+ ];
25
+ HeaderComponent.propDecorators = {
26
+ header: [{ type: Input }]
27
+ };
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFPbkQsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFBbUIsTUFBZ0M7UUFBaEMsV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUFGbkQsV0FBTSxHQUFnQixJQUFJLENBQUM7SUFHM0IsQ0FBQztJQUZELElBQUksSUFBSSxLQUFzQixPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFHakQsZ0JBQWdCLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUUsQ0FBQzs7O1lBYkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0Qiw2dUJBQXNDOzthQUV2Qzs7O1lBVE8sd0JBQXdCOzs7cUJBVzdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UHNUb29sa2l0VWlDb25maWdTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHtIZWFkZXJDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9oZWFkZXIuY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0VHlwZX0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50e1xyXG4gIEBJbnB1dCgpXHJcbiAgaGVhZGVyOiBIZWFkZXJDbGFzcyA9IG51bGw7XHJcbiAgZ2V0IHR5cGUoKTogdHlwZW9mIElucHV0VHlwZXsgcmV0dXJuIElucHV0VHlwZTsgfVxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb25maWc6IFBzVG9vbGtpdFVpQ29uZmlnU2VydmljZSl7XHJcbiAgfVxyXG4gIHNob3dVc2VyRHJvcERvd24oZSk6IHZvaWR7XHJcbiAgICAkKGUudGFyZ2V0KS5jbG9zZXN0KCcjSGVhZGVyJykuZmluZCgnLnVzZXItZHJvcC1kb3duJykuc2xpZGVUb2dnbGUoMTAwKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,14 @@
1
+ import { Component } from '@angular/core';
2
+ export class SubHeaderComponent {
3
+ constructor() {
4
+ }
5
+ }
6
+ SubHeaderComponent.decorators = [
7
+ { type: Component, args: [{
8
+ selector: 'lib-sub-header',
9
+ template: "<!--<div id=\"SubHeader\">-->\r\n<!-- <div class=\"breadcrumb\" *ngIf=\"app.breadcrumb != null\">-->\r\n<!-- <a class=\"item\"><div class=\"name\">{{app.breadcrumb[app.breadcrumb.length - 1].Name}}</div></a>-->\r\n<!-- <a class=\"item\" [routerLink]=\"b.Url\" *ngFor=\"let b of (app.breadcrumb.length == 1 ? [] : app.breadcrumb)\"><div class=\"name\">{{b.Name}}</div><i class=\"fad fa-angle-left\"></i></a>-->\r\n<!-- </div>-->\r\n<!-- <div class=\"breadcrumb\" *ngIf=\"app.breadcrumb == null\" [innerHTML]=\"this.l('LoadingDot')\">-->\r\n<!-- </div>-->\r\n<!--</div>-->\r\n",
10
+ styles: ["#SubHeader{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;box-shadow:var(--box-shadow-header);position:relative;z-index:10}#SubHeader,#SubHeader .breadcrumb{float:right;height:40px;width:100%}#SubHeader .breadcrumb{line-height:40px;padding:0 40px}#SubHeader .breadcrumb .item{float:right}#SubHeader .breadcrumb .item .name{cursor:pointer;font-size:12px;font-weight:var(--font-light);padding:0 20px;position:relative}#SubHeader .breadcrumb .item .name,#SubHeader .breadcrumb .item i{color:var(--black-light)!important;float:right;height:40px;line-height:40px}#SubHeader .breadcrumb .item i{cursor:default;font-size:15px;text-align:center;width:20px}#SubHeader .breadcrumb .item:not(:first-of-type) .name:hover{color:var(--primary)!important}#SubHeader .breadcrumb .item:first-of-type .name{color:var(--black)!important;cursor:default;font-size:16px;font-weight:var(--font-bold);margin-left:30px;padding:0;pointer-events:none}#SubHeader .breadcrumb .item:last-of-type i{display:none}"]
11
+ },] }
12
+ ];
13
+ SubHeaderComponent.ctorParameters = () => [];
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLmhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaGVhZGVyL3N1Yi9zdWIuaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBT3hDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7SUFDQSxDQUFDOzs7WUFQRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsb2xCQUEwQzs7YUFFM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zdWItaGVhZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3ViLmhlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3ViLmhlYWRlci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1YkhlYWRlckNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IoKXtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,18 @@
1
+ import { Component, Input } from '@angular/core';
2
+ export class LayoutComponent {
3
+ constructor() {
4
+ }
5
+ }
6
+ LayoutComponent.decorators = [
7
+ { type: Component, args: [{
8
+ selector: 'lib-layout',
9
+ template: "<div id=\"Layout\">\r\n <div class=\"layout-con\">\r\n <div class=\"panel\" *ngIf=\"currentData.user != null\">\r\n <lib-sidebar [currentData]=\"currentData\">\r\n <ng-content select=\"[slot=sidebar]\"></ng-content>\r\n </lib-sidebar>\r\n <div class=\"content\">\r\n <lib-header [header]=\"header\">\r\n <ng-content select=\"[slot=header]\"></ng-content>\r\n </lib-header>\r\n\r\n <div class=\"content-scroll-con\">\r\n <div class=\"content-scroll\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <lib-footer></lib-footer>\r\n </div>\r\n</div>\r\n",
10
+ styles: ["#Layout,#Layout .layout-con,#Layout .panel{float:right;width:100%}#Layout .panel{display:flex;flex-direction:row;position:relative}#Layout .panel .content{background-color:var(--base-white);direction:rtl;float:left;overflow:hidden;position:relative;transition:width .3s;width:100%}#Layout .panel .content .content-scroll-con{height:calc(100vh - 85px);min-height:calc(100vh - 85px);overflow-y:auto;width:100%}#Layout .panel .content .content-scroll-con .content-scroll{float:right;padding:20px;width:100%}@media (max-width:599.98px){#Layout .panel .content .content-scroll-con{height:calc(100vh - 50px);min-height:calc(100vh - 50px)}}"]
11
+ },] }
12
+ ];
13
+ LayoutComponent.ctorParameters = () => [];
14
+ LayoutComponent.propDecorators = {
15
+ currentData: [{ type: Input }],
16
+ header: [{ type: Input }]
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFnQixLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFTckUsTUFBTSxPQUFPLGVBQWU7SUFLMUI7SUFDQSxDQUFDOzs7WUFYRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLDZyQkFBc0M7O2FBRXZDOzs7OzBCQUVFLEtBQUs7cUJBRUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0N1cnJlbnREYXRhQ2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvY3VycmVudERhdGFDbGFzcyc7XHJcbmltcG9ydCB7SGVhZGVyQ2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvaGVhZGVyLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGF5b3V0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGF5b3V0Q29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIGN1cnJlbnREYXRhOiBDdXJyZW50RGF0YUNsYXNzO1xyXG4gIEBJbnB1dCgpXHJcbiAgaGVhZGVyOiBIZWFkZXJDbGFzcztcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,22 @@
1
+ import { Component } from '@angular/core';
2
+ import { LangClass } from '../../classes/lang.class';
3
+ import { PsToolkitUiConfigService } from '../../services/config.service';
4
+ export class LoadingComponent {
5
+ constructor(config) {
6
+ const lang = new LangClass(config.currentLang, config.strings);
7
+ this.l = (key, v = null) => {
8
+ return lang.get('Public', null, key, v);
9
+ };
10
+ }
11
+ }
12
+ LoadingComponent.decorators = [
13
+ { type: Component, args: [{
14
+ selector: 'lib-loading',
15
+ template: "<div id=\"Loading\">\r\n <div class=\"content\">\r\n <div class=\"loading-cell\">\r\n <div class=\"icon\"><i class=\"fas fa-spin fa-spinner\"></i></div>\r\n <div class=\"title\" [innerHTML]=\"l('Loading', 'Process')\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n",
16
+ styles: ["#Loading{background-color:var(--black);display:table;height:100vh;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:105}#Loading .content{display:table-cell;height:100%;vertical-align:middle;width:100%}#Loading .content .loading-cell{float:right;width:100%}#Loading .content .loading-cell .icon{color:#fff;float:right;font-size:40px;height:70px;line-height:70px;text-align:center;width:100%}#Loading .content .loading-cell .title{color:#fff;float:right;font-size:20px;height:50px;line-height:50px;text-align:center;width:100%}"]
17
+ },] }
18
+ ];
19
+ LoadingComponent.ctorParameters = () => [
20
+ { type: PsToolkitUiConfigService }
21
+ ];
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU92RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQVksTUFBZ0M7UUFDMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFVLEVBQUU7WUFDekMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQztJQUNKLENBQUM7OztZQVpGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsa1NBQXVDOzthQUV4Qzs7O1lBTk8sd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0xhbmdDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9sYW5nLmNsYXNzJztcclxuaW1wb3J0IHtQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxvYWRpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkaW5nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2FkaW5nLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9hZGluZ0NvbXBvbmVudCB7XHJcbiAgbDogKGssIHY/KSA9PiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoY29uZmlnOiBQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2Upe1xyXG4gICAgY29uc3QgbGFuZyA9IG5ldyBMYW5nQ2xhc3MoY29uZmlnLmN1cnJlbnRMYW5nLCBjb25maWcuc3RyaW5ncyk7XHJcbiAgICB0aGlzLmwgPSAoa2V5OiBzdHJpbmcsIHYgPSBudWxsKTogc3RyaW5nID0+IHtcclxuICAgICAgcmV0dXJuIGxhbmcuZ2V0KCdQdWJsaWMnLCBudWxsLCBrZXksIHYpO1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19