@solcre-org/core-ui 2.12.43 → 2.12.44

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 (273) hide show
  1. package/assets/css/inc/components/area-code.css +174 -0
  2. package/assets/css/inc/components/data-entry.input.css +14 -1
  3. package/assets/css/inc/components/table.css +172 -83
  4. package/assets/css/main.css +1 -0
  5. package/assets/i18n/en/common.json +7 -0
  6. package/assets/i18n/es/common.json +7 -0
  7. package/assets/images/flags/001-paraguay.svg +1 -0
  8. package/assets/images/flags/002-senegal.svg +1 -0
  9. package/assets/images/flags/003-democratic republic of congo.svg +1 -0
  10. package/assets/images/flags/004-estonia.svg +1 -0
  11. package/assets/images/flags/005-georgia.svg +1 -0
  12. package/assets/images/flags/006-ghana.svg +1 -0
  13. package/assets/images/flags/007-jersey.svg +1 -0
  14. package/assets/images/flags/008-madagascar.svg +1 -0
  15. package/assets/images/flags/009-malawi.svg +1 -0
  16. package/assets/images/flags/010-mongolia.svg +1 -0
  17. package/assets/images/flags/011-china.svg +1 -0
  18. package/assets/images/flags/012-nepal.svg +1 -0
  19. package/assets/images/flags/013-samoa.svg +1 -0
  20. package/assets/images/flags/014-haiti.svg +1 -0
  21. package/assets/images/flags/015-isle of man.svg +1 -0
  22. package/assets/images/flags/016-ivory coast.svg +1 -0
  23. package/assets/images/flags/017-lesotho.svg +1 -0
  24. package/assets/images/flags/018-rwanda.svg +1 -0
  25. package/assets/images/flags/019-zimbabwe.svg +1 -0
  26. package/assets/images/flags/020-equatorial guinea.svg +1 -0
  27. package/assets/images/flags/021-republic of the congo.svg +1 -0
  28. package/assets/images/flags/022-brazil.svg +1 -0
  29. package/assets/images/flags/023-sri lanka.svg +1 -0
  30. package/assets/images/flags/024-swaziland.svg +1 -0
  31. package/assets/images/flags/025-tajikistan.svg +1 -0
  32. package/assets/images/flags/026-trinidad and tobago.svg +1 -0
  33. package/assets/images/flags/027-french polynesia.svg +1 -0
  34. package/assets/images/flags/028-madeira.svg +1 -0
  35. package/assets/images/flags/029-maldives.svg +1 -0
  36. package/assets/images/flags/030-moldova.svg +1 -0
  37. package/assets/images/flags/031-montenegro.svg +1 -0
  38. package/assets/images/flags/032-papua new guinea.svg +1 -0
  39. package/assets/images/flags/033-mexico.svg +1 -0
  40. package/assets/images/flags/034-tibet.svg +1 -0
  41. package/assets/images/flags/035-East Timor.svg +1 -0
  42. package/assets/images/flags/036-libya.svg +1 -0
  43. package/assets/images/flags/037-nato.svg +1 -0
  44. package/assets/images/flags/038-republic of macedonia.svg +1 -0
  45. package/assets/images/flags/039-sahrawi arab democratic republic.svg +1 -0
  46. package/assets/images/flags/040-sudan.svg +1 -0
  47. package/assets/images/flags/041-uzbekist/303/241n.svg +1 -0
  48. package/assets/images/flags/042-yemen.svg +1 -0
  49. package/assets/images/flags/043-liberia.svg +1 -0
  50. package/assets/images/flags/044-russia.svg +1 -0
  51. package/assets/images/flags/045-liechtenstein.svg +1 -0
  52. package/assets/images/flags/046-northern cyprus.svg +1 -0
  53. package/assets/images/flags/047-san marino.svg +1 -0
  54. package/assets/images/flags/048-st barts.svg +1 -0
  55. package/assets/images/flags/049-curacao.svg +1 -0
  56. package/assets/images/flags/050-djibouti.svg +1 -0
  57. package/assets/images/flags/051-eritrea.svg +1 -0
  58. package/assets/images/flags/052-guinea bissau.svg +1 -0
  59. package/assets/images/flags/053-kyrgyzstan.svg +1 -0
  60. package/assets/images/flags/054-mali.svg +1 -0
  61. package/assets/images/flags/055-india.svg +1 -0
  62. package/assets/images/flags/056-marshall island.svg +1 -0
  63. package/assets/images/flags/057-micronesia.svg +1 -0
  64. package/assets/images/flags/058-niger.svg +1 -0
  65. package/assets/images/flags/059-norfolk island.svg +1 -0
  66. package/assets/images/flags/060-sao tome and prince.svg +1 -0
  67. package/assets/images/flags/061-sardinia.svg +1 -0
  68. package/assets/images/flags/062-bhutan.svg +1 -0
  69. package/assets/images/flags/063-somalia.svg +1 -0
  70. package/assets/images/flags/064-suriname.svg +1 -0
  71. package/assets/images/flags/065-azores islands.svg +1 -0
  72. package/assets/images/flags/066-canada.svg +1 -0
  73. package/assets/images/flags/067-bahamas.svg +1 -0
  74. package/assets/images/flags/068-togo.svg +1 -0
  75. package/assets/images/flags/069-turkmenistan.svg +1 -0
  76. package/assets/images/flags/070-tuvalu.svg +1 -0
  77. package/assets/images/flags/071-vatican city.svg +1 -0
  78. package/assets/images/flags/072-austria.svg +1 -0
  79. package/assets/images/flags/073-virgin islands.svg +1 -0
  80. package/assets/images/flags/074-falkland islands.svg +1 -0
  81. package/assets/images/flags/075-gabon.svg +1 -0
  82. package/assets/images/flags/076-gibraltar.svg +1 -0
  83. package/assets/images/flags/077-netherlands.svg +1 -0
  84. package/assets/images/flags/078-greenland.svg +1 -0
  85. package/assets/images/flags/079-grenada.svg +1 -0
  86. package/assets/images/flags/080-guam.svg +1 -0
  87. package/assets/images/flags/081-guernsey.svg +1 -0
  88. package/assets/images/flags/082-guyana.svg +1 -0
  89. package/assets/images/flags/083-kiribati.svg +1 -0
  90. package/assets/images/flags/084-kuwait.svg +1 -0
  91. package/assets/images/flags/085-mauritania.svg +1 -0
  92. package/assets/images/flags/086-melilla.svg +1 -0
  93. package/assets/images/flags/087-montserrat.svg +1 -0
  94. package/assets/images/flags/088-thailand.svg +1 -0
  95. package/assets/images/flags/089-nauru.svg +1 -0
  96. package/assets/images/flags/090-northern marianas islands.svg +1 -0
  97. package/assets/images/flags/091-ossetia.svg +1 -0
  98. package/assets/images/flags/092-palestine.svg +1 -0
  99. package/assets/images/flags/093-pitcairn islands.svg +1 -0
  100. package/assets/images/flags/094-saba island.svg +1 -0
  101. package/assets/images/flags/095-saint kitts and nevis.svg +1 -0
  102. package/assets/images/flags/096-sint eustatius.svg +1 -0
  103. package/assets/images/flags/097-sint maarten.svg +1 -0
  104. package/assets/images/flags/098-portugal.svg +1 -0
  105. package/assets/images/flags/099-solomon islands.svg +1 -0
  106. package/assets/images/flags/100-somaliland.svg +1 -0
  107. package/assets/images/flags/101-south sudan.svg +1 -0
  108. package/assets/images/flags/102-st vincent and the grenadines.svg +1 -0
  109. package/assets/images/flags/103-gambia.svg +1 -0
  110. package/assets/images/flags/104-tokelau.svg +1 -0
  111. package/assets/images/flags/105-transnistria.svg +1 -0
  112. package/assets/images/flags/106-turks and caicos.svg +1 -0
  113. package/assets/images/flags/107-orkney islands.svg +1 -0
  114. package/assets/images/flags/108-guinea.svg +1 -0
  115. package/assets/images/flags/109-vietnam.svg +1 -0
  116. package/assets/images/flags/110-united kingdom.svg +1 -0
  117. package/assets/images/flags/111-kosovo.svg +1 -0
  118. package/assets/images/flags/112-seychelles.svg +1 -0
  119. package/assets/images/flags/113-sierra leone.svg +1 -0
  120. package/assets/images/flags/114-vanuatu.svg +1 -0
  121. package/assets/images/flags/115-dominica.svg +1 -0
  122. package/assets/images/flags/116-faroe islands.svg +1 -0
  123. package/assets/images/flags/117-fiji.svg +1 -0
  124. package/assets/images/flags/118-macao.svg +1 -0
  125. package/assets/images/flags/119-niue.svg +1 -0
  126. package/assets/images/flags/120-palau.svg +1 -0
  127. package/assets/images/flags/121-england.svg +1 -0
  128. package/assets/images/flags/122-Rapa Nui.svg +1 -0
  129. package/assets/images/flags/123-st lucia.svg +1 -0
  130. package/assets/images/flags/124-tonga.svg +1 -0
  131. package/assets/images/flags/125-martinique.svg +1 -0
  132. package/assets/images/flags/126-galapagos islands.svg +1 -0
  133. package/assets/images/flags/127-bulgaria.svg +1 -0
  134. package/assets/images/flags/128-croatia.svg +1 -0
  135. package/assets/images/flags/129-bolivia.svg +1 -0
  136. package/assets/images/flags/130-cambodia.svg +1 -0
  137. package/assets/images/flags/131-costa rica.svg +1 -0
  138. package/assets/images/flags/132-singapore.svg +1 -0
  139. package/assets/images/flags/133-cuba.svg +1 -0
  140. package/assets/images/flags/134-bangladesh.svg +1 -0
  141. package/assets/images/flags/135-botswana.svg +1 -0
  142. package/assets/images/flags/136-Algeria.svg +1 -0
  143. package/assets/images/flags/137-azerbaijan.svg +1 -0
  144. package/assets/images/flags/138-angola.svg +1 -0
  145. package/assets/images/flags/139-british columbia.svg +1 -0
  146. package/assets/images/flags/140-afghanistan.svg +1 -0
  147. package/assets/images/flags/141-armenia.svg +1 -0
  148. package/assets/images/flags/142-basque country.svg +1 -0
  149. package/assets/images/flags/143-australia.svg +1 -0
  150. package/assets/images/flags/144-burkina faso.svg +1 -0
  151. package/assets/images/flags/145-albania.svg +1 -0
  152. package/assets/images/flags/146-bahrain.svg +1 -0
  153. package/assets/images/flags/147-belize.svg +1 -0
  154. package/assets/images/flags/148-bermuda.svg +1 -0
  155. package/assets/images/flags/149-bosnia and herzegovina.svg +1 -0
  156. package/assets/images/flags/150-british virgin islands.svg +1 -0
  157. package/assets/images/flags/151-barbados.svg +1 -0
  158. package/assets/images/flags/152-belarus.svg +1 -0
  159. package/assets/images/flags/153-bonaire.svg +1 -0
  160. package/assets/images/flags/154-turkey.svg +1 -0
  161. package/assets/images/flags/155-brunei.svg +1 -0
  162. package/assets/images/flags/156-cameroon.svg +1 -0
  163. package/assets/images/flags/157-aland islands.svg +1 -0
  164. package/assets/images/flags/158-antigua and barbuda.svg +1 -0
  165. package/assets/images/flags/159-burundi.svg +1 -0
  166. package/assets/images/flags/160-andorra.svg +1 -0
  167. package/assets/images/flags/161-balearic islands.svg +1 -0
  168. package/assets/images/flags/162-abkhazia.svg +1 -0
  169. package/assets/images/flags/163-aruba.svg +1 -0
  170. package/assets/images/flags/164-benin.svg +1 -0
  171. package/assets/images/flags/165-poland.svg +1 -0
  172. package/assets/images/flags/166-cape verde.svg +1 -0
  173. package/assets/images/flags/167-chad.svg +1 -0
  174. package/assets/images/flags/168-bhutan.svg +1 -0
  175. package/assets/images/flags/169-british indian ocean territory.svg +1 -0
  176. package/assets/images/flags/170-cayman islands.svg +1 -0
  177. package/assets/images/flags/171-central african republic.svg +1 -0
  178. package/assets/images/flags/172-comoros.svg +1 -0
  179. package/assets/images/flags/173-canary islands.svg +1 -0
  180. package/assets/images/flags/174-corsica.svg +1 -0
  181. package/assets/images/flags/175-anguilla.svg +1 -0
  182. package/assets/images/flags/176-switzerland.svg +1 -0
  183. package/assets/images/flags/177-american samoa.svg +1 -0
  184. package/assets/images/flags/178-ceuta.svg +1 -0
  185. package/assets/images/flags/179-christmas island.svg +1 -0
  186. package/assets/images/flags/180-cocos island.svg +1 -0
  187. package/assets/images/flags/181-cook islands.svg +1 -0
  188. package/assets/images/flags/182-morocco.svg +10 -0
  189. package/assets/images/flags/183-taiwan.svg +1 -0
  190. package/assets/images/flags/184-egypt.svg +1 -0
  191. package/assets/images/flags/185-indonesia.svg +1 -0
  192. package/assets/images/flags/186-united states.svg +1 -0
  193. package/assets/images/flags/187-philippines.svg +1 -0
  194. package/assets/images/flags/188-south africa.svg +1 -0
  195. package/assets/images/flags/189-peru.svg +1 -0
  196. package/assets/images/flags/190-sweden.svg +1 -0
  197. package/assets/images/flags/191-denmark.svg +1 -0
  198. package/assets/images/flags/192-greece.svg +1 -0
  199. package/assets/images/flags/193-ireland.svg +1 -0
  200. package/assets/images/flags/194-laos.svg +1 -0
  201. package/assets/images/flags/195-united arab emirates.svg +1 -0
  202. package/assets/images/flags/196-hong kong.svg +1 -0
  203. package/assets/images/flags/197-france.svg +1 -0
  204. package/assets/images/flags/198-ukraine.svg +1 -0
  205. package/assets/images/flags/199-argentina.svg +1 -0
  206. package/assets/images/flags/200-iran.svg +1 -0
  207. package/assets/images/flags/201-colombia.svg +1 -0
  208. package/assets/images/flags/202-czech republic.svg +1 -0
  209. package/assets/images/flags/203-israel.svg +1 -0
  210. package/assets/images/flags/204-saudi arabia.svg +1 -0
  211. package/assets/images/flags/205-norway.svg +1 -0
  212. package/assets/images/flags/206-venezuela.svg +1 -0
  213. package/assets/images/flags/207-malaysia.svg +1 -0
  214. package/assets/images/flags/208-germany.svg +1 -0
  215. package/assets/images/flags/209-belgium.svg +1 -0
  216. package/assets/images/flags/210-hungary.svg +1 -0
  217. package/assets/images/flags/211-finland.svg +1 -0
  218. package/assets/images/flags/212-chile.svg +1 -0
  219. package/assets/images/flags/213-romania.svg +1 -0
  220. package/assets/images/flags/214-ecuador.svg +1 -0
  221. package/assets/images/flags/215-new zealand.svg +1 -0
  222. package/assets/images/flags/216-panama.svg +1 -0
  223. package/assets/images/flags/217-united nations.svg +1 -0
  224. package/assets/images/flags/218-slovakia.svg +1 -0
  225. package/assets/images/flags/219-south korea.svg +1 -0
  226. package/assets/images/flags/220-monaco.svg +1 -0
  227. package/assets/images/flags/221-jordan.svg +1 -0
  228. package/assets/images/flags/222-iceland.svg +1 -0
  229. package/assets/images/flags/223-guatemala.svg +1 -0
  230. package/assets/images/flags/224-syria.svg +1 -0
  231. package/assets/images/flags/225-uruguay.svg +1 -0
  232. package/assets/images/flags/226-north korea.svg +1 -0
  233. package/assets/images/flags/227-scotland.svg +1 -0
  234. package/assets/images/flags/228-serbia.svg +1 -0
  235. package/assets/images/flags/229-kazakhstan.svg +1 -0
  236. package/assets/images/flags/230-spain.svg +1 -0
  237. package/assets/images/flags/231-latvia.svg +1 -0
  238. package/assets/images/flags/232-pakistan.svg +1 -0
  239. package/assets/images/flags/233-cyprus.svg +1 -0
  240. package/assets/images/flags/234-kenya.svg +1 -0
  241. package/assets/images/flags/235-myanmar.svg +1 -0
  242. package/assets/images/flags/236-honduras.svg +1 -0
  243. package/assets/images/flags/237-jamaica.svg +1 -0
  244. package/assets/images/flags/238-lithuania.svg +1 -0
  245. package/assets/images/flags/239-hawaii.svg +1 -0
  246. package/assets/images/flags/240-luxembourg.svg +1 -0
  247. package/assets/images/flags/241-japan.svg +1 -0
  248. package/assets/images/flags/242-mauritius.svg +1 -0
  249. package/assets/images/flags/243-namibia.svg +1 -0
  250. package/assets/images/flags/244-qatar.svg +1 -0
  251. package/assets/images/flags/245-dominican republic.svg +1 -0
  252. package/assets/images/flags/246-wales.svg +1 -0
  253. package/assets/images/flags/247-zambia.svg +1 -0
  254. package/assets/images/flags/248-el salvador.svg +1 -0
  255. package/assets/images/flags/249-nicaragua.svg +1 -0
  256. package/assets/images/flags/250-tunisia.svg +1 -0
  257. package/assets/images/flags/251-malta.svg +1 -0
  258. package/assets/images/flags/252-european union.svg +1 -0
  259. package/assets/images/flags/253-nigeria.svg +1 -0
  260. package/assets/images/flags/254-uganda.svg +1 -0
  261. package/assets/images/flags/255-lebanon.svg +1 -0
  262. package/assets/images/flags/256-iraq.svg +1 -0
  263. package/assets/images/flags/257-mozambique.svg +1 -0
  264. package/assets/images/flags/258-puerto rico.svg +1 -0
  265. package/assets/images/flags/259-slovenia.svg +1 -0
  266. package/assets/images/flags/260-tanzania.svg +1 -0
  267. package/assets/images/flags/261-oman.svg +1 -0
  268. package/assets/images/flags/262-ethiopia.svg +1 -0
  269. package/assets/images/flags/263-italy.svg +1 -0
  270. package/fesm2022/solcre-org-core-ui.mjs +1031 -114
  271. package/fesm2022/solcre-org-core-ui.mjs.map +1 -1
  272. package/index.d.ts +389 -71
  273. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Directive, input, Component, inject, output, computed, signal, effect, Pipe, Injectable, ViewChild, ViewContainerRef, TemplateRef, InjectionToken, ContentChild, ChangeDetectionStrategy, ElementRef, HostListener, viewChild, ChangeDetectorRef, afterNextRender, importProvidersFrom } from '@angular/core';
2
+ import { HostBinding, Directive, input, Component, inject, output, computed, signal, effect, Pipe, Injectable, ElementRef, untracked, HostListener, ViewChild, ViewContainerRef, TemplateRef, InjectionToken, ContentChild, ChangeDetectionStrategy, viewChild, ChangeDetectorRef, afterNextRender, importProvidersFrom } from '@angular/core';
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule, DatePipe } from '@angular/common';
5
5
  import * as i3 from '@ngx-translate/core';
@@ -9,11 +9,12 @@ import { FormControl, Validators, FormsModule, ReactiveFormsModule, FormBuilder
9
9
  import * as i5 from '@ng-select/ng-select';
10
10
  import { NgSelectModule, NgSelectComponent } from '@ng-select/ng-select';
11
11
  import { AuthService, ApiService } from '@solcre-org/core';
12
- import { map, BehaviorSubject, Subject, throttleTime, takeUntil, debounceTime, distinctUntilChanged, tap, switchMap, of, catchError, finalize, throwError, Observable, forkJoin, zip, timeout, Subscription, from } from 'rxjs';
12
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
13
+ import { distinctUntilChanged, debounceTime, tap as tap$1, filter, catchError as catchError$1, map as map$1 } from 'rxjs/operators';
14
+ import { map, BehaviorSubject, Subject, throttleTime, takeUntil, debounceTime as debounceTime$1, distinctUntilChanged as distinctUntilChanged$1, tap, switchMap, of, catchError, finalize, throwError, Observable, forkJoin, zip, timeout, Subscription, from } from 'rxjs';
13
15
  import * as i4 from '@angular/router';
14
16
  import { RouterModule, Router, NavigationEnd, NavigationStart } from '@angular/router';
15
17
  import { DomSanitizer } from '@angular/platform-browser';
16
- import { tap as tap$1, filter, catchError as catchError$1, map as map$1 } from 'rxjs/operators';
17
18
  import * as i1$1 from '@angular/common/http';
18
19
  import { HttpClient, HttpHeaders } from '@angular/common/http';
19
20
  import dayjs from 'dayjs';
@@ -2160,6 +2161,1010 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
2160
2161
  args: [{ selector: 'core-password-field', standalone: true, imports: [CommonModule, FormsModule, TranslateModule, ReactiveFormsModule, FieldErrorsComponent], hostDirectives: [CoreHostDirective], template: "<!-- ! Solcre: Esto lo estoy haciendo a ciegas \uD83D\uDE05 -->\n \n<div class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <label class=\"c-entry-input\"\n [class.is-invalid]=\"hasError()\"\n [class.is-readonly]=\"hasError()\"\n [class.is-disabled]=\"hasError()\">\n\n @if (field().prefixIcon) {\n <span class=\"c-entry-input__addon {{ field().prefixIcon }}\"></span>\n }\n\n <input \n [type]=\"inputType()\" \n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput()\">\n\n <button class=\"c-entry-input__addon\"\n (click)=\"togglePasswordVisibility()\"\n [class]=\"showPassword()? 'icon-password-hide-thin' :'icon-password-thin'\"\n ></button>\n\n </label>\n <core-field-errors [errors]=\"errors()\" />\n</div> <!-- .c-entry-item -->\n\n" }]
2161
2162
  }], ctorParameters: () => [] });
2162
2163
 
2164
+ var AlertType;
2165
+ (function (AlertType) {
2166
+ AlertType["DEFAULT"] = "default";
2167
+ AlertType["ERROR"] = "error";
2168
+ AlertType["SUCCESS"] = "success";
2169
+ AlertType["HIGHLIGHTED"] = "highlight";
2170
+ AlertType["WAITING"] = "waiting";
2171
+ })(AlertType || (AlertType = {}));
2172
+
2173
+ var FieldType;
2174
+ (function (FieldType) {
2175
+ FieldType["TEXT"] = "text";
2176
+ FieldType["TEXTAREA"] = "textarea";
2177
+ FieldType["NUMBER"] = "number";
2178
+ FieldType["CHECKBOX"] = "checkbox";
2179
+ FieldType["SELECT"] = "select";
2180
+ FieldType["DATE"] = "date";
2181
+ FieldType["DATETIME"] = "datetime";
2182
+ FieldType["TIME"] = "time";
2183
+ FieldType["PASSWORD"] = "password";
2184
+ FieldType["SWITCH"] = "switch";
2185
+ FieldType["SERVER_SELECT"] = "server-select";
2186
+ FieldType["FILE"] = "file";
2187
+ FieldType["PHONE"] = "phone";
2188
+ })(FieldType || (FieldType = {}));
2189
+ var NumberFieldType;
2190
+ (function (NumberFieldType) {
2191
+ NumberFieldType["DEFAULT"] = "default";
2192
+ NumberFieldType["DECIMAL"] = "decimal";
2193
+ NumberFieldType["INTEGER"] = "integer";
2194
+ })(NumberFieldType || (NumberFieldType = {}));
2195
+
2196
+ var FileType;
2197
+ (function (FileType) {
2198
+ FileType["COMPANY_INVENTORY"] = "company_inventory";
2199
+ FileType["COMPANY_LEGAL"] = "company_legals";
2200
+ FileType["COMPANY_AZF_PROCEDURE"] = "company_azf_procedure";
2201
+ FileType["COMPANY_TELEWORK"] = "company_remote_work";
2202
+ FileType["FILE_TEMPLATE"] = "file_template";
2203
+ FileType["COMPANY_EMPLOYEES_BULK"] = "company_employees_bulk";
2204
+ })(FileType || (FileType = {}));
2205
+
2206
+ var NumberRange;
2207
+ (function (NumberRange) {
2208
+ NumberRange["MIN"] = "min";
2209
+ NumberRange["MAX"] = "max";
2210
+ })(NumberRange || (NumberRange = {}));
2211
+
2212
+ var LayoutBreakpoint;
2213
+ (function (LayoutBreakpoint) {
2214
+ LayoutBreakpoint["MOBILE"] = "mobile";
2215
+ LayoutBreakpoint["TABLET"] = "tablet";
2216
+ LayoutBreakpoint["DESKTOP"] = "desktop";
2217
+ })(LayoutBreakpoint || (LayoutBreakpoint = {}));
2218
+
2219
+ var SidebarVisibility;
2220
+ (function (SidebarVisibility) {
2221
+ SidebarVisibility["SHOW"] = "show";
2222
+ SidebarVisibility["HIDE"] = "hide";
2223
+ })(SidebarVisibility || (SidebarVisibility = {}));
2224
+
2225
+ var LayoutType;
2226
+ (function (LayoutType) {
2227
+ LayoutType["DEFAULT"] = "default";
2228
+ })(LayoutType || (LayoutType = {}));
2229
+
2230
+ var SidebarHeight;
2231
+ (function (SidebarHeight) {
2232
+ SidebarHeight["DEFAULT"] = "default";
2233
+ SidebarHeight["FULL"] = "full";
2234
+ })(SidebarHeight || (SidebarHeight = {}));
2235
+
2236
+ var SidebarPosition;
2237
+ (function (SidebarPosition) {
2238
+ SidebarPosition["LEFT"] = "left";
2239
+ SidebarPosition["RIGHT"] = "right";
2240
+ })(SidebarPosition || (SidebarPosition = {}));
2241
+
2242
+ var SidebarWidth;
2243
+ (function (SidebarWidth) {
2244
+ SidebarWidth["DEFAULT"] = "default";
2245
+ SidebarWidth["WIDE"] = "wide";
2246
+ })(SidebarWidth || (SidebarWidth = {}));
2247
+
2248
+ var SidebarMobileType;
2249
+ (function (SidebarMobileType) {
2250
+ SidebarMobileType["SELECT"] = "select";
2251
+ SidebarMobileType["SCROLL"] = "scroll";
2252
+ SidebarMobileType["MODAL"] = "modal";
2253
+ })(SidebarMobileType || (SidebarMobileType = {}));
2254
+
2255
+ var HeaderElementType;
2256
+ (function (HeaderElementType) {
2257
+ HeaderElementType["GLOBAL_ACTIONS"] = "globalActions";
2258
+ HeaderElementType["CUSTOM_ACTIONS"] = "customActions";
2259
+ HeaderElementType["FILTER"] = "filter";
2260
+ HeaderElementType["CREATE"] = "create";
2261
+ HeaderElementType["CUSTOM_TEMPLATE"] = "customTemplate";
2262
+ })(HeaderElementType || (HeaderElementType = {}));
2263
+
2264
+ var CountryCode;
2265
+ (function (CountryCode) {
2266
+ CountryCode["AD"] = "AD";
2267
+ CountryCode["AE"] = "AE";
2268
+ CountryCode["AF"] = "AF";
2269
+ CountryCode["AG"] = "AG";
2270
+ CountryCode["AI"] = "AI";
2271
+ CountryCode["AL"] = "AL";
2272
+ CountryCode["AM"] = "AM";
2273
+ CountryCode["AO"] = "AO";
2274
+ CountryCode["AR"] = "AR";
2275
+ CountryCode["AS"] = "AS";
2276
+ CountryCode["AT"] = "AT";
2277
+ CountryCode["AU"] = "AU";
2278
+ CountryCode["AW"] = "AW";
2279
+ CountryCode["AX"] = "AX";
2280
+ CountryCode["AZ"] = "AZ";
2281
+ CountryCode["BA"] = "BA";
2282
+ CountryCode["BB"] = "BB";
2283
+ CountryCode["BD"] = "BD";
2284
+ CountryCode["BE"] = "BE";
2285
+ CountryCode["BF"] = "BF";
2286
+ CountryCode["BG"] = "BG";
2287
+ CountryCode["BH"] = "BH";
2288
+ CountryCode["BI"] = "BI";
2289
+ CountryCode["BJ"] = "BJ";
2290
+ CountryCode["BL"] = "BL";
2291
+ CountryCode["BM"] = "BM";
2292
+ CountryCode["BN"] = "BN";
2293
+ CountryCode["BO"] = "BO";
2294
+ CountryCode["BQ"] = "BQ";
2295
+ CountryCode["BR"] = "BR";
2296
+ CountryCode["BS"] = "BS";
2297
+ CountryCode["BT"] = "BT";
2298
+ CountryCode["BW"] = "BW";
2299
+ CountryCode["BY"] = "BY";
2300
+ CountryCode["BZ"] = "BZ";
2301
+ CountryCode["CA"] = "CA";
2302
+ CountryCode["CC"] = "CC";
2303
+ CountryCode["CD"] = "CD";
2304
+ CountryCode["CF"] = "CF";
2305
+ CountryCode["CG"] = "CG";
2306
+ CountryCode["CH"] = "CH";
2307
+ CountryCode["CI"] = "CI";
2308
+ CountryCode["CK"] = "CK";
2309
+ CountryCode["CL"] = "CL";
2310
+ CountryCode["CM"] = "CM";
2311
+ CountryCode["CN"] = "CN";
2312
+ CountryCode["CO"] = "CO";
2313
+ CountryCode["CR"] = "CR";
2314
+ CountryCode["CU"] = "CU";
2315
+ CountryCode["CV"] = "CV";
2316
+ CountryCode["CW"] = "CW";
2317
+ CountryCode["CX"] = "CX";
2318
+ CountryCode["CY"] = "CY";
2319
+ CountryCode["CZ"] = "CZ";
2320
+ CountryCode["DE"] = "DE";
2321
+ CountryCode["DJ"] = "DJ";
2322
+ CountryCode["DK"] = "DK";
2323
+ CountryCode["DM"] = "DM";
2324
+ CountryCode["DO"] = "DO";
2325
+ CountryCode["DZ"] = "DZ";
2326
+ CountryCode["EC"] = "EC";
2327
+ CountryCode["EE"] = "EE";
2328
+ CountryCode["EG"] = "EG";
2329
+ CountryCode["EH"] = "EH";
2330
+ CountryCode["ER"] = "ER";
2331
+ CountryCode["ES"] = "ES";
2332
+ CountryCode["ET"] = "ET";
2333
+ CountryCode["FI"] = "FI";
2334
+ CountryCode["FJ"] = "FJ";
2335
+ CountryCode["FK"] = "FK";
2336
+ CountryCode["FM"] = "FM";
2337
+ CountryCode["FO"] = "FO";
2338
+ CountryCode["FR"] = "FR";
2339
+ CountryCode["GA"] = "GA";
2340
+ CountryCode["GB"] = "GB";
2341
+ CountryCode["GD"] = "GD";
2342
+ CountryCode["GE"] = "GE";
2343
+ CountryCode["GG"] = "GG";
2344
+ CountryCode["GH"] = "GH";
2345
+ CountryCode["GI"] = "GI";
2346
+ CountryCode["GL"] = "GL";
2347
+ CountryCode["GM"] = "GM";
2348
+ CountryCode["GN"] = "GN";
2349
+ CountryCode["GQ"] = "GQ";
2350
+ CountryCode["GR"] = "GR";
2351
+ CountryCode["GT"] = "GT";
2352
+ CountryCode["GU"] = "GU";
2353
+ CountryCode["GW"] = "GW";
2354
+ CountryCode["GY"] = "GY";
2355
+ CountryCode["HK"] = "HK";
2356
+ CountryCode["HN"] = "HN";
2357
+ CountryCode["HR"] = "HR";
2358
+ CountryCode["HT"] = "HT";
2359
+ CountryCode["HU"] = "HU";
2360
+ CountryCode["ID"] = "ID";
2361
+ CountryCode["IE"] = "IE";
2362
+ CountryCode["IL"] = "IL";
2363
+ CountryCode["IM"] = "IM";
2364
+ CountryCode["IN"] = "IN";
2365
+ CountryCode["IO"] = "IO";
2366
+ CountryCode["IQ"] = "IQ";
2367
+ CountryCode["IR"] = "IR";
2368
+ CountryCode["IS"] = "IS";
2369
+ CountryCode["IT"] = "IT";
2370
+ CountryCode["JE"] = "JE";
2371
+ CountryCode["JM"] = "JM";
2372
+ CountryCode["JO"] = "JO";
2373
+ CountryCode["JP"] = "JP";
2374
+ CountryCode["KE"] = "KE";
2375
+ CountryCode["KG"] = "KG";
2376
+ CountryCode["KH"] = "KH";
2377
+ CountryCode["KI"] = "KI";
2378
+ CountryCode["KM"] = "KM";
2379
+ CountryCode["KN"] = "KN";
2380
+ CountryCode["KP"] = "KP";
2381
+ CountryCode["KR"] = "KR";
2382
+ CountryCode["KW"] = "KW";
2383
+ CountryCode["KY"] = "KY";
2384
+ CountryCode["KZ"] = "KZ";
2385
+ CountryCode["LA"] = "LA";
2386
+ CountryCode["LB"] = "LB";
2387
+ CountryCode["LC"] = "LC";
2388
+ CountryCode["LI"] = "LI";
2389
+ CountryCode["LK"] = "LK";
2390
+ CountryCode["LR"] = "LR";
2391
+ CountryCode["LS"] = "LS";
2392
+ CountryCode["LT"] = "LT";
2393
+ CountryCode["LU"] = "LU";
2394
+ CountryCode["LV"] = "LV";
2395
+ CountryCode["LY"] = "LY";
2396
+ CountryCode["MA"] = "MA";
2397
+ CountryCode["MC"] = "MC";
2398
+ CountryCode["MD"] = "MD";
2399
+ CountryCode["ME"] = "ME";
2400
+ CountryCode["MG"] = "MG";
2401
+ CountryCode["MH"] = "MH";
2402
+ CountryCode["MK"] = "MK";
2403
+ CountryCode["ML"] = "ML";
2404
+ CountryCode["MM"] = "MM";
2405
+ CountryCode["MN"] = "MN";
2406
+ CountryCode["MO"] = "MO";
2407
+ CountryCode["MP"] = "MP";
2408
+ CountryCode["MQ"] = "MQ";
2409
+ CountryCode["MR"] = "MR";
2410
+ CountryCode["MS"] = "MS";
2411
+ CountryCode["MT"] = "MT";
2412
+ CountryCode["MU"] = "MU";
2413
+ CountryCode["MV"] = "MV";
2414
+ CountryCode["MW"] = "MW";
2415
+ CountryCode["MX"] = "MX";
2416
+ CountryCode["MY"] = "MY";
2417
+ CountryCode["MZ"] = "MZ";
2418
+ CountryCode["NA"] = "NA";
2419
+ CountryCode["NE"] = "NE";
2420
+ CountryCode["NF"] = "NF";
2421
+ CountryCode["NG"] = "NG";
2422
+ CountryCode["NI"] = "NI";
2423
+ CountryCode["NL"] = "NL";
2424
+ CountryCode["NO"] = "NO";
2425
+ CountryCode["NP"] = "NP";
2426
+ CountryCode["NR"] = "NR";
2427
+ CountryCode["NU"] = "NU";
2428
+ CountryCode["NZ"] = "NZ";
2429
+ CountryCode["OM"] = "OM";
2430
+ CountryCode["PA"] = "PA";
2431
+ CountryCode["PE"] = "PE";
2432
+ CountryCode["PF"] = "PF";
2433
+ CountryCode["PG"] = "PG";
2434
+ CountryCode["PH"] = "PH";
2435
+ CountryCode["PK"] = "PK";
2436
+ CountryCode["PL"] = "PL";
2437
+ CountryCode["PN"] = "PN";
2438
+ CountryCode["PS"] = "PS";
2439
+ CountryCode["PT"] = "PT";
2440
+ CountryCode["PW"] = "PW";
2441
+ CountryCode["PY"] = "PY";
2442
+ CountryCode["QA"] = "QA";
2443
+ CountryCode["RO"] = "RO";
2444
+ CountryCode["RS"] = "RS";
2445
+ CountryCode["RU"] = "RU";
2446
+ CountryCode["RW"] = "RW";
2447
+ CountryCode["SA"] = "SA";
2448
+ CountryCode["SB"] = "SB";
2449
+ CountryCode["SC"] = "SC";
2450
+ CountryCode["SD"] = "SD";
2451
+ CountryCode["SE"] = "SE";
2452
+ CountryCode["SG"] = "SG";
2453
+ CountryCode["SI"] = "SI";
2454
+ CountryCode["SK"] = "SK";
2455
+ CountryCode["SL"] = "SL";
2456
+ CountryCode["SM"] = "SM";
2457
+ CountryCode["SN"] = "SN";
2458
+ CountryCode["SO"] = "SO";
2459
+ CountryCode["SR"] = "SR";
2460
+ CountryCode["SS"] = "SS";
2461
+ CountryCode["ST"] = "ST";
2462
+ CountryCode["SV"] = "SV";
2463
+ CountryCode["SX"] = "SX";
2464
+ CountryCode["SY"] = "SY";
2465
+ CountryCode["SZ"] = "SZ";
2466
+ CountryCode["TC"] = "TC";
2467
+ CountryCode["TD"] = "TD";
2468
+ CountryCode["TG"] = "TG";
2469
+ CountryCode["TH"] = "TH";
2470
+ CountryCode["TJ"] = "TJ";
2471
+ CountryCode["TK"] = "TK";
2472
+ CountryCode["TL"] = "TL";
2473
+ CountryCode["TM"] = "TM";
2474
+ CountryCode["TN"] = "TN";
2475
+ CountryCode["TO"] = "TO";
2476
+ CountryCode["TR"] = "TR";
2477
+ CountryCode["TT"] = "TT";
2478
+ CountryCode["TV"] = "TV";
2479
+ CountryCode["TW"] = "TW";
2480
+ CountryCode["TZ"] = "TZ";
2481
+ CountryCode["UA"] = "UA";
2482
+ CountryCode["UG"] = "UG";
2483
+ CountryCode["UN"] = "UN";
2484
+ CountryCode["US"] = "US";
2485
+ CountryCode["UY"] = "UY";
2486
+ CountryCode["UZ"] = "UZ";
2487
+ CountryCode["VA"] = "VA";
2488
+ CountryCode["VC"] = "VC";
2489
+ CountryCode["VE"] = "VE";
2490
+ CountryCode["VG"] = "VG";
2491
+ CountryCode["VI"] = "VI";
2492
+ CountryCode["VN"] = "VN";
2493
+ CountryCode["VU"] = "VU";
2494
+ CountryCode["WS"] = "WS";
2495
+ CountryCode["XK"] = "XK";
2496
+ CountryCode["XX"] = "XX";
2497
+ CountryCode["YE"] = "YE";
2498
+ CountryCode["ZA"] = "ZA";
2499
+ CountryCode["ZM"] = "ZM";
2500
+ CountryCode["ZW"] = "ZW";
2501
+ })(CountryCode || (CountryCode = {}));
2502
+ const ALL_COUNTRY_CODES = Object.values(CountryCode);
2503
+ function isValidCountryCode(code) {
2504
+ return ALL_COUNTRY_CODES.includes(code);
2505
+ }
2506
+ function getCountryCodeStrings() {
2507
+ return ALL_COUNTRY_CODES.map(code => code.toString());
2508
+ }
2509
+
2510
+ const DEFAULT_COUNTRIES = [
2511
+ { "code": CountryCode.PY, "phone": "+595", "name": "Paraguay", "flag": "001-paraguay.svg" },
2512
+ { "code": CountryCode.SN, "phone": "+221", "name": "Senegal", "flag": "002-senegal.svg" },
2513
+ { "code": CountryCode.CD, "phone": "+243", "name": "Democratic Republic of Congo", "flag": "003-democratic republic of congo.svg" },
2514
+ { "code": CountryCode.EE, "phone": "+372", "name": "Estonia", "flag": "004-estonia.svg" },
2515
+ { "code": CountryCode.GE, "phone": "+995", "name": "Georgia", "flag": "005-georgia.svg" },
2516
+ { "code": CountryCode.GH, "phone": "+233", "name": "Ghana", "flag": "006-ghana.svg" },
2517
+ { "code": CountryCode.JE, "phone": "+44", "name": "Jersey", "flag": "007-jersey.svg" },
2518
+ { "code": CountryCode.MG, "phone": "+261", "name": "Madagascar", "flag": "008-madagascar.svg" },
2519
+ { "code": CountryCode.MW, "phone": "+265", "name": "Malawi", "flag": "009-malawi.svg" },
2520
+ { "code": CountryCode.MN, "phone": "+976", "name": "Mongolia", "flag": "010-mongolia.svg" },
2521
+ { "code": CountryCode.CN, "phone": "+86", "name": "China", "flag": "011-china.svg" },
2522
+ { "code": CountryCode.NP, "phone": "+977", "name": "Nepal", "flag": "012-nepal.svg" },
2523
+ { "code": CountryCode.WS, "phone": "+685", "name": "Samoa", "flag": "013-samoa.svg" },
2524
+ { "code": CountryCode.HT, "phone": "+509", "name": "Haiti", "flag": "014-haiti.svg" },
2525
+ { "code": CountryCode.IM, "phone": "+44", "name": "Isle of Man", "flag": "015-isle of man.svg" },
2526
+ { "code": CountryCode.CI, "phone": "+225", "name": "Ivory Coast", "flag": "016-ivory coast.svg" },
2527
+ { "code": CountryCode.LS, "phone": "+266", "name": "Lesotho", "flag": "017-lesotho.svg" },
2528
+ { "code": CountryCode.RW, "phone": "+250", "name": "Rwanda", "flag": "018-rwanda.svg" },
2529
+ { "code": CountryCode.ZW, "phone": "+263", "name": "Zimbabwe", "flag": "019-zimbabwe.svg" },
2530
+ { "code": CountryCode.GQ, "phone": "+240", "name": "Equatorial Guinea", "flag": "020-equatorial guinea.svg" },
2531
+ { "code": CountryCode.CG, "phone": "+242", "name": "Republic of the Congo", "flag": "021-republic of the congo.svg" },
2532
+ { "code": CountryCode.BR, "phone": "+55", "name": "Brazil", "flag": "022-brazil.svg" },
2533
+ { "code": CountryCode.LK, "phone": "+94", "name": "Sri Lanka", "flag": "023-sri lanka.svg" },
2534
+ { "code": CountryCode.SZ, "phone": "+268", "name": "Swaziland", "flag": "024-swaziland.svg" },
2535
+ { "code": CountryCode.TJ, "phone": "+992", "name": "Tajikistan", "flag": "025-tajikistan.svg" },
2536
+ { "code": CountryCode.TT, "phone": "+1", "name": "Trinidad and Tobago", "flag": "026-trinidad and tobago.svg" },
2537
+ { "code": CountryCode.PF, "phone": "+689", "name": "French Polynesia", "flag": "027-french polynesia.svg" },
2538
+ { "code": CountryCode.PT, "phone": "+351", "name": "Madeira", "flag": "028-madeira.svg" },
2539
+ { "code": CountryCode.MV, "phone": "+960", "name": "Maldives", "flag": "029-maldives.svg" },
2540
+ { "code": CountryCode.MD, "phone": "+373", "name": "Moldova", "flag": "030-moldova.svg" },
2541
+ { "code": CountryCode.ME, "phone": "+382", "name": "Montenegro", "flag": "031-montenegro.svg" },
2542
+ { "code": CountryCode.PG, "phone": "+675", "name": "Papua New Guinea", "flag": "032-papua new guinea.svg" },
2543
+ { "code": CountryCode.MX, "phone": "+52", "name": "Mexico", "flag": "033-mexico.svg" },
2544
+ { "code": CountryCode.CN, "phone": "+86", "name": "Tibet", "flag": "034-tibet.svg" },
2545
+ { "code": CountryCode.TL, "phone": "+670", "name": "East Timor", "flag": "035-East Timor.svg" },
2546
+ { "code": CountryCode.LY, "phone": "+218", "name": "Libya", "flag": "036-libya.svg" },
2547
+ { "code": CountryCode.XX, "phone": "+1", "name": "NATO", "flag": "037-nato.svg" },
2548
+ { "code": CountryCode.MK, "phone": "+389", "name": "Republic of Macedonia", "flag": "038-republic of macedonia.svg" },
2549
+ { "code": CountryCode.EH, "phone": "+212", "name": "Sahrawi Arab Democratic Republic", "flag": "039-sahrawi arab democratic republic.svg" },
2550
+ { "code": CountryCode.SD, "phone": "+249", "name": "Sudan", "flag": "040-sudan.svg" },
2551
+ { "code": CountryCode.UZ, "phone": "+998", "name": "Uzbekistan", "flag": "041-uzbekistan.svg" },
2552
+ { "code": CountryCode.YE, "phone": "+967", "name": "Yemen", "flag": "042-yemen.svg" },
2553
+ { "code": CountryCode.LR, "phone": "+231", "name": "Liberia", "flag": "043-liberia.svg" },
2554
+ { "code": CountryCode.RU, "phone": "+7", "name": "Russia", "flag": "044-russia.svg" },
2555
+ { "code": CountryCode.LI, "phone": "+423", "name": "Liechtenstein", "flag": "045-liechtenstein.svg" },
2556
+ { "code": CountryCode.CY, "phone": "+357", "name": "Northern Cyprus", "flag": "046-northern cyprus.svg" },
2557
+ { "code": CountryCode.SM, "phone": "+378", "name": "San Marino", "flag": "047-san marino.svg" },
2558
+ { "code": CountryCode.BL, "phone": "+590", "name": "St Barts", "flag": "048-st barts.svg" },
2559
+ { "code": CountryCode.CW, "phone": "+599", "name": "Curacao", "flag": "049-curacao.svg" },
2560
+ { "code": CountryCode.DJ, "phone": "+253", "name": "Djibouti", "flag": "050-djibouti.svg" },
2561
+ { "code": CountryCode.ER, "phone": "+291", "name": "Eritrea", "flag": "051-eritrea.svg" },
2562
+ { "code": CountryCode.GW, "phone": "+245", "name": "Guinea Bissau", "flag": "052-guinea bissau.svg" },
2563
+ { "code": CountryCode.KG, "phone": "+996", "name": "Kyrgyzstan", "flag": "053-kyrgyzstan.svg" },
2564
+ { "code": CountryCode.ML, "phone": "+223", "name": "Mali", "flag": "054-mali.svg" },
2565
+ { "code": CountryCode.IN, "phone": "+91", "name": "India", "flag": "055-india.svg" },
2566
+ { "code": CountryCode.MH, "phone": "+692", "name": "Marshall Island", "flag": "056-marshall island.svg" },
2567
+ { "code": CountryCode.FM, "phone": "+691", "name": "Micronesia", "flag": "057-micronesia.svg" },
2568
+ { "code": CountryCode.NE, "phone": "+227", "name": "Niger", "flag": "058-niger.svg" },
2569
+ { "code": CountryCode.NF, "phone": "+672", "name": "Norfolk Island", "flag": "059-norfolk island.svg" },
2570
+ { "code": CountryCode.ST, "phone": "+239", "name": "Sao Tome and Principe", "flag": "060-sao tome and principe.svg" },
2571
+ { "code": CountryCode.IT, "phone": "+39", "name": "Sardinia", "flag": "061-sardinia.svg" },
2572
+ { "code": CountryCode.BT, "phone": "+975", "name": "Bhutan", "flag": "062-bhutan.svg" },
2573
+ { "code": CountryCode.SO, "phone": "+252", "name": "Somalia", "flag": "063-somalia.svg" },
2574
+ { "code": CountryCode.SR, "phone": "+597", "name": "Suriname", "flag": "064-suriname.svg" },
2575
+ { "code": CountryCode.PT, "phone": "+351", "name": "Azores Islands", "flag": "065-azores islands.svg" },
2576
+ { "code": CountryCode.CA, "phone": "+1", "name": "Canada", "flag": "066-canada.svg" },
2577
+ { "code": CountryCode.BS, "phone": "+1", "name": "Bahamas", "flag": "067-bahamas.svg" },
2578
+ { "code": CountryCode.TG, "phone": "+228", "name": "Togo", "flag": "068-togo.svg" },
2579
+ { "code": CountryCode.TM, "phone": "+993", "name": "Turkmenistan", "flag": "069-turkmenistan.svg" },
2580
+ { "code": CountryCode.TV, "phone": "+688", "name": "Tuvalu", "flag": "070-tuvalu.svg" },
2581
+ { "code": CountryCode.VA, "phone": "+379", "name": "Vatican City", "flag": "071-vatican city.svg" },
2582
+ { "code": CountryCode.AT, "phone": "+43", "name": "Austria", "flag": "072-austria.svg" },
2583
+ { "code": CountryCode.VI, "phone": "+1", "name": "Virgin Islands", "flag": "073-virgin islands.svg" },
2584
+ { "code": CountryCode.FK, "phone": "+500", "name": "Falkland Islands", "flag": "074-falkland islands.svg" },
2585
+ { "code": CountryCode.GA, "phone": "+241", "name": "Gabon", "flag": "075-gabon.svg" },
2586
+ { "code": CountryCode.GI, "phone": "+350", "name": "Gibraltar", "flag": "076-gibraltar.svg" },
2587
+ { "code": CountryCode.NL, "phone": "+31", "name": "Netherlands", "flag": "077-netherlands.svg" },
2588
+ { "code": CountryCode.GL, "phone": "+299", "name": "Greenland", "flag": "078-greenland.svg" },
2589
+ { "code": CountryCode.GD, "phone": "+1", "name": "Grenada", "flag": "079-grenada.svg" },
2590
+ { "code": CountryCode.GU, "phone": "+1", "name": "Guam", "flag": "080-guam.svg" },
2591
+ { "code": CountryCode.GG, "phone": "+44", "name": "Guernsey", "flag": "081-guernsey.svg" },
2592
+ { "code": CountryCode.GY, "phone": "+592", "name": "Guyana", "flag": "082-guyana.svg" },
2593
+ { "code": CountryCode.KI, "phone": "+686", "name": "Kiribati", "flag": "083-kiribati.svg" },
2594
+ { "code": CountryCode.KW, "phone": "+965", "name": "Kuwait", "flag": "084-kuwait.svg" },
2595
+ { "code": CountryCode.MR, "phone": "+222", "name": "Mauritania", "flag": "085-mauritania.svg" },
2596
+ { "code": CountryCode.ES, "phone": "+34", "name": "Melilla", "flag": "086-melilla.svg" },
2597
+ { "code": CountryCode.MS, "phone": "+1", "name": "Montserrat", "flag": "087-montserrat.svg" },
2598
+ { "code": CountryCode.TH, "phone": "+66", "name": "Thailand", "flag": "088-thailand.svg" },
2599
+ { "code": CountryCode.NR, "phone": "+674", "name": "Nauru", "flag": "089-nauru.svg" },
2600
+ { "code": CountryCode.MP, "phone": "+1", "name": "Northern Marianas Islands", "flag": "090-northern marianas islands.svg" },
2601
+ { "code": CountryCode.GE, "phone": "+995", "name": "Ossetia", "flag": "091-ossetia.svg" },
2602
+ { "code": CountryCode.PS, "phone": "+970", "name": "Palestine", "flag": "092-palestine.svg" },
2603
+ { "code": CountryCode.PN, "phone": "+64", "name": "Pitcairn Islands", "flag": "093-pitcairn islands.svg" },
2604
+ { "code": CountryCode.BQ, "phone": "+599", "name": "Saba Island", "flag": "094-saba island.svg" },
2605
+ { "code": CountryCode.KN, "phone": "+1", "name": "Saint Kitts and Nevis", "flag": "095-saint kitts and nevis.svg" },
2606
+ { "code": CountryCode.BQ, "phone": "+599", "name": "Sint Eustatius", "flag": "096-sint eustatius.svg" },
2607
+ { "code": CountryCode.SX, "phone": "+1", "name": "Sint Maarten", "flag": "097-sint maarten.svg" },
2608
+ { "code": CountryCode.PT, "phone": "+351", "name": "Portugal", "flag": "098-portugal.svg" },
2609
+ { "code": CountryCode.SB, "phone": "+677", "name": "Solomon Islands", "flag": "099-solomon islands.svg" },
2610
+ { "code": CountryCode.SO, "phone": "+252", "name": "Somaliland", "flag": "100-somaliland.svg" },
2611
+ { "code": CountryCode.SS, "phone": "+211", "name": "South Sudan", "flag": "101-south sudan.svg" },
2612
+ { "code": CountryCode.VC, "phone": "+1", "name": "St Vincent and the Grenadines", "flag": "102-st vincent and the grenadines.svg" },
2613
+ { "code": CountryCode.GM, "phone": "+220", "name": "Gambia", "flag": "103-gambia.svg" },
2614
+ { "code": CountryCode.TK, "phone": "+690", "name": "Tokelau", "flag": "104-tokelau.svg" },
2615
+ { "code": CountryCode.MD, "phone": "+373", "name": "Transnistria", "flag": "105-transnistria.svg" },
2616
+ { "code": CountryCode.TC, "phone": "+1", "name": "Turks and Caicos", "flag": "106-turks and caicos.svg" },
2617
+ { "code": CountryCode.GB, "phone": "+44", "name": "Orkney Islands", "flag": "107-orkney islands.svg" },
2618
+ { "code": CountryCode.GN, "phone": "+224", "name": "Guinea", "flag": "108-guinea.svg" },
2619
+ { "code": CountryCode.VN, "phone": "+84", "name": "Vietnam", "flag": "109-vietnam.svg" },
2620
+ { "code": CountryCode.GB, "phone": "+44", "name": "United Kingdom", "flag": "110-united kingdom.svg" },
2621
+ { "code": CountryCode.XK, "phone": "+383", "name": "Kosovo", "flag": "111-kosovo.svg" },
2622
+ { "code": CountryCode.SC, "phone": "+248", "name": "Seychelles", "flag": "112-seychelles.svg" },
2623
+ { "code": CountryCode.SL, "phone": "+232", "name": "Sierra Leone", "flag": "113-sierra leone.svg" },
2624
+ { "code": CountryCode.VU, "phone": "+678", "name": "Vanuatu", "flag": "114-vanuatu.svg" },
2625
+ { "code": CountryCode.DM, "phone": "+1", "name": "Dominica", "flag": "115-dominica.svg" },
2626
+ { "code": CountryCode.FO, "phone": "+298", "name": "Faroe Islands", "flag": "116-faroe islands.svg" },
2627
+ { "code": CountryCode.FJ, "phone": "+679", "name": "Fiji", "flag": "117-fiji.svg" },
2628
+ { "code": CountryCode.MO, "phone": "+853", "name": "Macao", "flag": "118-macao.svg" },
2629
+ { "code": CountryCode.NU, "phone": "+683", "name": "Niue", "flag": "119-niue.svg" },
2630
+ { "code": CountryCode.PW, "phone": "+680", "name": "Palau", "flag": "120-palau.svg" },
2631
+ { "code": CountryCode.GB, "phone": "+44", "name": "England", "flag": "121-england.svg" },
2632
+ { "code": CountryCode.CL, "phone": "+56", "name": "Rapa Nui", "flag": "122-Rapa Nui.svg" },
2633
+ { "code": CountryCode.LC, "phone": "+1", "name": "St Lucia", "flag": "123-st lucia.svg" },
2634
+ { "code": CountryCode.TO, "phone": "+676", "name": "Tonga", "flag": "124-tonga.svg" },
2635
+ { "code": CountryCode.MQ, "phone": "+596", "name": "Martinique", "flag": "125-martinique.svg" },
2636
+ { "code": CountryCode.EC, "phone": "+593", "name": "Galapagos Islands", "flag": "126-galapagos islands.svg" },
2637
+ { "code": CountryCode.BG, "phone": "+359", "name": "Bulgaria", "flag": "127-bulgaria.svg" },
2638
+ { "code": CountryCode.HR, "phone": "+385", "name": "Croatia", "flag": "128-croatia.svg" },
2639
+ { "code": CountryCode.BO, "phone": "+591", "name": "Bolivia", "flag": "129-bolivia.svg" },
2640
+ { "code": CountryCode.KH, "phone": "+855", "name": "Cambodia", "flag": "130-cambodia.svg" },
2641
+ { "code": CountryCode.CR, "phone": "+506", "name": "Costa Rica", "flag": "131-costa rica.svg" },
2642
+ { "code": CountryCode.SG, "phone": "+65", "name": "Singapore", "flag": "132-singapore.svg" },
2643
+ { "code": CountryCode.CU, "phone": "+53", "name": "Cuba", "flag": "133-cuba.svg" },
2644
+ { "code": CountryCode.BD, "phone": "+880", "name": "Bangladesh", "flag": "134-bangladesh.svg" },
2645
+ { "code": CountryCode.BW, "phone": "+267", "name": "Botswana", "flag": "135-botswana.svg" },
2646
+ { "code": CountryCode.DZ, "phone": "+213", "name": "Algeria", "flag": "136-Algeria.svg" },
2647
+ { "code": CountryCode.AZ, "phone": "+994", "name": "Azerbaijan", "flag": "137-azerbaijan.svg" },
2648
+ { "code": CountryCode.AO, "phone": "+244", "name": "Angola", "flag": "138-angola.svg" },
2649
+ { "code": CountryCode.CA, "phone": "+1", "name": "British Columbia", "flag": "139-british columbia.svg" },
2650
+ { "code": CountryCode.AF, "phone": "+93", "name": "Afghanistan", "flag": "140-afghanistan.svg" },
2651
+ { "code": CountryCode.AM, "phone": "+374", "name": "Armenia", "flag": "141-armenia.svg" },
2652
+ { "code": CountryCode.ES, "phone": "+34", "name": "Basque Country", "flag": "142-basque country.svg" },
2653
+ { "code": CountryCode.AU, "phone": "+61", "name": "Australia", "flag": "143-australia.svg" },
2654
+ { "code": CountryCode.BF, "phone": "+226", "name": "Burkina Faso", "flag": "144-burkina faso.svg" },
2655
+ { "code": CountryCode.AL, "phone": "+355", "name": "Albania", "flag": "145-albania.svg" },
2656
+ { "code": CountryCode.BH, "phone": "+973", "name": "Bahrain", "flag": "146-bahrain.svg" },
2657
+ { "code": CountryCode.BZ, "phone": "+501", "name": "Belize", "flag": "147-belize.svg" },
2658
+ { "code": CountryCode.BM, "phone": "+1", "name": "Bermuda", "flag": "148-bermuda.svg" },
2659
+ { "code": CountryCode.BA, "phone": "+387", "name": "Bosnia and Herzegovina", "flag": "149-bosnia and herzegovina.svg" },
2660
+ { "code": CountryCode.VG, "phone": "+1", "name": "British Virgin Islands", "flag": "150-british virgin islands.svg" },
2661
+ { "code": CountryCode.BB, "phone": "+1", "name": "Barbados", "flag": "151-barbados.svg" },
2662
+ { "code": CountryCode.BY, "phone": "+375", "name": "Belarus", "flag": "152-belarus.svg" },
2663
+ { "code": CountryCode.BQ, "phone": "+599", "name": "Bonaire", "flag": "153-bonaire.svg" },
2664
+ { "code": CountryCode.TR, "phone": "+90", "name": "Turkey", "flag": "154-turkey.svg" },
2665
+ { "code": CountryCode.BN, "phone": "+673", "name": "Brunei", "flag": "155-brunei.svg" },
2666
+ { "code": CountryCode.CM, "phone": "+237", "name": "Cameroon", "flag": "156-cameroon.svg" },
2667
+ { "code": CountryCode.AX, "phone": "+358", "name": "Aland Islands", "flag": "157-aland islands.svg" },
2668
+ { "code": CountryCode.AG, "phone": "+1", "name": "Antigua and Barbuda", "flag": "158-antigua and barbuda.svg" },
2669
+ { "code": CountryCode.BI, "phone": "+257", "name": "Burundi", "flag": "159-burundi.svg" },
2670
+ { "code": CountryCode.AD, "phone": "+376", "name": "Andorra", "flag": "160-andorra.svg" },
2671
+ { "code": CountryCode.ES, "phone": "+34", "name": "Balearic Islands", "flag": "161-balearic islands.svg" },
2672
+ { "code": CountryCode.GE, "phone": "+7", "name": "Abkhazia", "flag": "162-abkhazia.svg" },
2673
+ { "code": CountryCode.AW, "phone": "+297", "name": "Aruba", "flag": "163-aruba.svg" },
2674
+ { "code": CountryCode.BJ, "phone": "+229", "name": "Benin", "flag": "164-benin.svg" },
2675
+ { "code": CountryCode.PL, "phone": "+48", "name": "Poland", "flag": "165-poland.svg" },
2676
+ { "code": CountryCode.CV, "phone": "+238", "name": "Cape Verde", "flag": "166-cape verde.svg" },
2677
+ { "code": CountryCode.TD, "phone": "+235", "name": "Chad", "flag": "167-chad.svg" },
2678
+ { "code": CountryCode.BT, "phone": "+975", "name": "Bhutan", "flag": "168-bhutan.svg" },
2679
+ { "code": CountryCode.IO, "phone": "+246", "name": "British Indian Ocean Territory", "flag": "169-british indian ocean territory.svg" },
2680
+ { "code": CountryCode.KY, "phone": "+1", "name": "Cayman Islands", "flag": "170-cayman islands.svg" },
2681
+ { "code": CountryCode.CF, "phone": "+236", "name": "Central African Republic", "flag": "171-central african republic.svg" },
2682
+ { "code": CountryCode.KM, "phone": "+269", "name": "Comoros", "flag": "172-comoros.svg" },
2683
+ { "code": CountryCode.ES, "phone": "+34", "name": "Canary Islands", "flag": "173-canary islands.svg" },
2684
+ { "code": CountryCode.FR, "phone": "+33", "name": "Corsica", "flag": "174-corsica.svg" },
2685
+ { "code": CountryCode.AI, "phone": "+1", "name": "Anguilla", "flag": "175-anguilla.svg" },
2686
+ { "code": CountryCode.CH, "phone": "+41", "name": "Switzerland", "flag": "176-switzerland.svg" },
2687
+ { "code": CountryCode.AS, "phone": "+1", "name": "American Samoa", "flag": "177-american samoa.svg" },
2688
+ { "code": CountryCode.ES, "phone": "+34", "name": "Ceuta", "flag": "178-ceuta.svg" },
2689
+ { "code": CountryCode.CX, "phone": "+61", "name": "Christmas Island", "flag": "179-christmas island.svg" },
2690
+ { "code": CountryCode.CC, "phone": "+61", "name": "Cocos Island", "flag": "180-cocos island.svg" },
2691
+ { "code": CountryCode.CK, "phone": "+682", "name": "Cook Islands", "flag": "181-cook islands.svg" },
2692
+ { "code": CountryCode.MA, "phone": "+212", "name": "Morocco", "flag": "182-morocco.svg" },
2693
+ { "code": CountryCode.TW, "phone": "+886", "name": "Taiwan", "flag": "183-taiwan.svg" },
2694
+ { "code": CountryCode.EG, "phone": "+20", "name": "Egypt", "flag": "184-egypt.svg" },
2695
+ { "code": CountryCode.ID, "phone": "+62", "name": "Indonesia", "flag": "185-indonesia.svg" },
2696
+ { "code": CountryCode.US, "phone": "+1", "name": "United States", "flag": "186-united states.svg" },
2697
+ { "code": CountryCode.PH, "phone": "+63", "name": "Philippines", "flag": "187-philippines.svg" },
2698
+ { "code": CountryCode.ZA, "phone": "+27", "name": "South Africa", "flag": "188-south africa.svg" },
2699
+ { "code": CountryCode.PE, "phone": "+51", "name": "Peru", "flag": "189-peru.svg" },
2700
+ { "code": CountryCode.SE, "phone": "+46", "name": "Sweden", "flag": "190-sweden.svg" },
2701
+ { "code": CountryCode.DK, "phone": "+45", "name": "Denmark", "flag": "191-denmark.svg" },
2702
+ { "code": CountryCode.GR, "phone": "+30", "name": "Greece", "flag": "192-greece.svg" },
2703
+ { "code": CountryCode.IE, "phone": "+353", "name": "Ireland", "flag": "193-ireland.svg" },
2704
+ { "code": CountryCode.LA, "phone": "+856", "name": "Laos", "flag": "194-laos.svg" },
2705
+ { "code": CountryCode.AE, "phone": "+971", "name": "United Arab Emirates", "flag": "195-united arab emirates.svg" },
2706
+ { "code": CountryCode.HK, "phone": "+852", "name": "Hong Kong", "flag": "196-hong kong.svg" },
2707
+ { "code": CountryCode.FR, "phone": "+33", "name": "France", "flag": "197-france.svg" },
2708
+ { "code": CountryCode.UA, "phone": "+380", "name": "Ukraine", "flag": "198-ukraine.svg" },
2709
+ { "code": CountryCode.AR, "phone": "+54", "name": "Argentina", "flag": "199-argentina.svg" },
2710
+ { "code": CountryCode.IR, "phone": "+98", "name": "Iran", "flag": "200-iran.svg" },
2711
+ { "code": CountryCode.CO, "phone": "+57", "name": "Colombia", "flag": "201-colombia.svg" },
2712
+ { "code": CountryCode.CZ, "phone": "+420", "name": "Czech Republic", "flag": "202-czech republic.svg" },
2713
+ { "code": CountryCode.IL, "phone": "+972", "name": "Israel", "flag": "203-israel.svg" },
2714
+ { "code": CountryCode.SA, "phone": "+966", "name": "Saudi Arabia", "flag": "204-saudi arabia.svg" },
2715
+ { "code": CountryCode.NO, "phone": "+47", "name": "Norway", "flag": "205-norway.svg" },
2716
+ { "code": CountryCode.VE, "phone": "+58", "name": "Venezuela", "flag": "206-venezuela.svg" },
2717
+ { "code": CountryCode.MY, "phone": "+60", "name": "Malaysia", "flag": "207-malaysia.svg" },
2718
+ { "code": CountryCode.DE, "phone": "+49", "name": "Germany", "flag": "208-germany.svg" },
2719
+ { "code": CountryCode.BE, "phone": "+32", "name": "Belgium", "flag": "209-belgium.svg" },
2720
+ { "code": CountryCode.HU, "phone": "+36", "name": "Hungary", "flag": "210-hungary.svg" },
2721
+ { "code": CountryCode.FI, "phone": "+358", "name": "Finland", "flag": "211-finland.svg" },
2722
+ { "code": CountryCode.CL, "phone": "+56", "name": "Chile", "flag": "212-chile.svg" },
2723
+ { "code": CountryCode.RO, "phone": "+40", "name": "Romania", "flag": "213-romania.svg" },
2724
+ { "code": CountryCode.EC, "phone": "+593", "name": "Ecuador", "flag": "214-ecuador.svg" },
2725
+ { "code": CountryCode.NZ, "phone": "+64", "name": "New Zealand", "flag": "215-new zealand.svg" },
2726
+ { "code": CountryCode.PA, "phone": "+507", "name": "Panama", "flag": "216-panama.svg" },
2727
+ { "code": CountryCode.UN, "phone": "+1", "name": "United Nations", "flag": "217-united nations.svg" },
2728
+ { "code": CountryCode.SK, "phone": "+421", "name": "Slovakia", "flag": "218-slovakia.svg" },
2729
+ { "code": CountryCode.KR, "phone": "+82", "name": "South Korea", "flag": "219-south korea.svg" },
2730
+ { "code": CountryCode.MC, "phone": "+377", "name": "Monaco", "flag": "220-monaco.svg" },
2731
+ { "code": CountryCode.JO, "phone": "+962", "name": "Jordan", "flag": "221-jordan.svg" },
2732
+ { "code": CountryCode.IS, "phone": "+354", "name": "Iceland", "flag": "222-iceland.svg" },
2733
+ { "code": CountryCode.GT, "phone": "+502", "name": "Guatemala", "flag": "223-guatemala.svg" },
2734
+ { "code": CountryCode.SY, "phone": "+963", "name": "Syria", "flag": "224-syria.svg" },
2735
+ { "code": CountryCode.UY, "phone": "+598", "name": "Uruguay", "flag": "225-uruguay.svg" },
2736
+ { "code": CountryCode.KP, "phone": "+850", "name": "North Korea", "flag": "226-north korea.svg" },
2737
+ { "code": CountryCode.GB, "phone": "+44", "name": "Scotland", "flag": "227-scotland.svg" },
2738
+ { "code": CountryCode.RS, "phone": "+381", "name": "Serbia", "flag": "228-serbia.svg" },
2739
+ { "code": CountryCode.KZ, "phone": "+7", "name": "Kazakhstan", "flag": "229-kazakhstan.svg" },
2740
+ { "code": CountryCode.LV, "phone": "+371", "name": "Latvia", "flag": "231-latvia.svg" },
2741
+ { "code": CountryCode.PK, "phone": "+92", "name": "Pakistan", "flag": "232-pakistan.svg" },
2742
+ { "code": CountryCode.CY, "phone": "+357", "name": "Cyprus", "flag": "233-cyprus.svg" },
2743
+ { "code": CountryCode.KE, "phone": "+254", "name": "Kenya", "flag": "234-kenya.svg" },
2744
+ { "code": CountryCode.MM, "phone": "+95", "name": "Myanmar", "flag": "235-myanmar.svg" },
2745
+ { "code": CountryCode.HN, "phone": "+504", "name": "Honduras", "flag": "236-honduras.svg" },
2746
+ { "code": CountryCode.JM, "phone": "+1", "name": "Jamaica", "flag": "237-jamaica.svg" },
2747
+ { "code": CountryCode.LT, "phone": "+370", "name": "Lithuania", "flag": "238-lithuania.svg" },
2748
+ { "code": CountryCode.LU, "phone": "+352", "name": "Luxembourg", "flag": "240-luxembourg.svg" },
2749
+ { "code": CountryCode.JP, "phone": "+81", "name": "Japan", "flag": "241-japan.svg" },
2750
+ { "code": CountryCode.MU, "phone": "+230", "name": "Mauritius", "flag": "242-mauritius.svg" },
2751
+ { "code": CountryCode.NA, "phone": "+264", "name": "Namibia", "flag": "243-namibia.svg" },
2752
+ { "code": CountryCode.QA, "phone": "+974", "name": "Qatar", "flag": "244-qatar.svg" },
2753
+ { "code": CountryCode.DO, "phone": "+1", "name": "Dominican Republic", "flag": "245-dominican republic.svg" },
2754
+ { "code": CountryCode.ZM, "phone": "+260", "name": "Zambia", "flag": "247-zambia.svg" },
2755
+ { "code": CountryCode.SV, "phone": "+503", "name": "El Salvador", "flag": "248-el salvador.svg" },
2756
+ { "code": CountryCode.NI, "phone": "+505", "name": "Nicaragua", "flag": "249-nicaragua.svg" },
2757
+ { "code": CountryCode.TN, "phone": "+216", "name": "Tunisia", "flag": "250-tunisia.svg" },
2758
+ { "code": CountryCode.MT, "phone": "+356", "name": "Malta", "flag": "251-malta.svg" },
2759
+ { "code": CountryCode.NG, "phone": "+234", "name": "Nigeria", "flag": "253-nigeria.svg" },
2760
+ { "code": CountryCode.UG, "phone": "+256", "name": "Uganda", "flag": "254-uganda.svg" },
2761
+ { "code": CountryCode.LB, "phone": "+961", "name": "Lebanon", "flag": "255-lebanon.svg" },
2762
+ { "code": CountryCode.IQ, "phone": "+964", "name": "Iraq", "flag": "256-iraq.svg" },
2763
+ { "code": CountryCode.MZ, "phone": "+258", "name": "Mozambique", "flag": "257-mozambique.svg" },
2764
+ { "code": CountryCode.SI, "phone": "+386", "name": "Slovenia", "flag": "259-slovenia.svg" },
2765
+ { "code": CountryCode.TZ, "phone": "+255", "name": "Tanzania", "flag": "260-tanzania.svg" },
2766
+ { "code": CountryCode.OM, "phone": "+968", "name": "Oman", "flag": "261-oman.svg" },
2767
+ { "code": CountryCode.ET, "phone": "+251", "name": "Ethiopia", "flag": "262-ethiopia.svg" },
2768
+ { "code": CountryCode.IT, "phone": "+39", "name": "Italy", "flag": "263-italy.svg" }
2769
+ ];
2770
+ const LATIN_AMERICA_COUNTRIES = DEFAULT_COUNTRIES.filter(country => ['AR', 'BO', 'BR', 'CL', 'CO', 'CR', 'CU', 'DO', 'EC', 'SV', 'GT', 'HT', 'HN', 'MX', 'NI', 'PA', 'PY', 'PE', 'UY', 'VE'].includes(country.code));
2771
+ const COMMON_COUNTRIES = DEFAULT_COUNTRIES.filter(country => ['US', 'CA', 'GB', 'DE', 'FR', 'ES', 'IT', 'BR', 'AR', 'MX', 'AU', 'IN', 'CN', 'JP', 'RU'].includes(country.code));
2772
+ const SOUTH_AMERICA_COUNTRIES = DEFAULT_COUNTRIES.filter(country => ['AR', 'BO', 'BR', 'CL', 'CO', 'EC', 'GY', 'PY', 'PE', 'SR', 'UY', 'VE'].includes(country.code));
2773
+
2774
+ class PhoneFieldComponent extends BaseFieldComponent {
2775
+ countryControl = new FormControl('');
2776
+ phoneControl = new FormControl('');
2777
+ phoneConfig = computed(() => {
2778
+ const field = this.field();
2779
+ if (!field) {
2780
+ return {
2781
+ availableCountries: DEFAULT_COUNTRIES,
2782
+ defaultCountry: 'US',
2783
+ showFlags: true,
2784
+ showCountryCode: true,
2785
+ showPhoneCode: true,
2786
+ phonePlaceholder: '',
2787
+ validatePhoneFormat: false,
2788
+ separator: ' - ',
2789
+ countrySelectWidth: 35,
2790
+ flagsBasePath: '/assets/images/flags/',
2791
+ payloadFormat: 'object'
2792
+ };
2793
+ }
2794
+ return {
2795
+ availableCountries: DEFAULT_COUNTRIES,
2796
+ defaultCountry: 'US',
2797
+ showFlags: true,
2798
+ showCountryCode: true,
2799
+ showPhoneCode: true,
2800
+ phonePlaceholder: '',
2801
+ validatePhoneFormat: false,
2802
+ separator: ' - ',
2803
+ countrySelectWidth: 35,
2804
+ flagsBasePath: '/assets/images/flags/',
2805
+ payloadFormat: 'object',
2806
+ ...(field.phoneConfig || {})
2807
+ };
2808
+ });
2809
+ availableCountries = computed(() => {
2810
+ const config = this.phoneConfig();
2811
+ const availableCountries = config.availableCountries;
2812
+ if (typeof availableCountries === 'string') {
2813
+ switch (availableCountries) {
2814
+ case 'latin-america':
2815
+ return LATIN_AMERICA_COUNTRIES;
2816
+ case 'south-america':
2817
+ return SOUTH_AMERICA_COUNTRIES;
2818
+ case 'custom':
2819
+ return config.customCountriesList
2820
+ ? DEFAULT_COUNTRIES.filter(country => config.customCountriesList.includes(country.code))
2821
+ : [];
2822
+ case 'common':
2823
+ return COMMON_COUNTRIES;
2824
+ case 'all':
2825
+ default:
2826
+ return DEFAULT_COUNTRIES;
2827
+ }
2828
+ }
2829
+ if (Array.isArray(availableCountries)) {
2830
+ return availableCountries;
2831
+ }
2832
+ return DEFAULT_COUNTRIES;
2833
+ });
2834
+ selectedCountry = signal(null);
2835
+ dropdownOpen = signal(false);
2836
+ isUpdatingValue = false;
2837
+ isDisabled = computed(() => {
2838
+ if (this.isReadonly())
2839
+ return true;
2840
+ return this.evaluateDisabled();
2841
+ });
2842
+ hostElement = inject((ElementRef));
2843
+ constructor() {
2844
+ super();
2845
+ effect(() => {
2846
+ const initialValue = this.value();
2847
+ if (this.isUpdatingValue)
2848
+ return;
2849
+ if (initialValue && typeof initialValue === 'object') {
2850
+ this.setInitialValue(initialValue);
2851
+ }
2852
+ else if (typeof initialValue === 'string' && initialValue) {
2853
+ this.parseStringValue(initialValue);
2854
+ }
2855
+ }, { allowSignalWrites: true });
2856
+ effect(() => {
2857
+ const field = this.field();
2858
+ if (field && !this.countryControl.value && !this.value()) {
2859
+ const config = this.phoneConfig();
2860
+ if (config.defaultCountry) {
2861
+ const country = this.availableCountries().find(c => c.code === config.defaultCountry);
2862
+ if (country) {
2863
+ this.countryControl.setValue(config.defaultCountry, { emitEvent: false });
2864
+ this.selectedCountry.set(country);
2865
+ }
2866
+ }
2867
+ }
2868
+ }, { allowSignalWrites: true });
2869
+ effect(() => {
2870
+ const disabled = this.isDisabled();
2871
+ if (disabled) {
2872
+ this.phoneControl.disable({ emitEvent: false });
2873
+ this.countryControl.disable({ emitEvent: false });
2874
+ }
2875
+ else {
2876
+ this.phoneControl.enable({ emitEvent: false });
2877
+ this.countryControl.enable({ emitEvent: false });
2878
+ }
2879
+ });
2880
+ this.countryControl.valueChanges
2881
+ .pipe(takeUntilDestroyed(), distinctUntilChanged())
2882
+ .subscribe((countryCode) => {
2883
+ if (!countryCode) {
2884
+ this.selectedCountry.set(null);
2885
+ }
2886
+ else {
2887
+ const country = this.availableCountries().find(c => c.code === countryCode) || null;
2888
+ this.selectedCountry.set(country);
2889
+ }
2890
+ if (!this.isUpdatingValue) {
2891
+ this.updatePhoneValue();
2892
+ }
2893
+ });
2894
+ this.phoneControl.valueChanges
2895
+ .pipe(takeUntilDestroyed(), debounceTime(300), distinctUntilChanged())
2896
+ .subscribe((phoneNumber) => {
2897
+ if (!this.isUpdatingValue) {
2898
+ this.updatePhoneValue();
2899
+ }
2900
+ });
2901
+ }
2902
+ setInitialValue(value) {
2903
+ this.isUpdatingValue = true;
2904
+ if (value.countryCode) {
2905
+ const country = this.availableCountries().find(c => c.code === value.countryCode);
2906
+ if (country) {
2907
+ this.countryControl.setValue(value.countryCode, { emitEvent: false });
2908
+ this.selectedCountry.set(country);
2909
+ }
2910
+ }
2911
+ if (value.phoneNumber) {
2912
+ this.phoneControl.setValue(value.phoneNumber, { emitEvent: false });
2913
+ }
2914
+ setTimeout(() => {
2915
+ this.isUpdatingValue = false;
2916
+ }, 0);
2917
+ }
2918
+ parseStringValue(value) {
2919
+ this.isUpdatingValue = true;
2920
+ const config = this.phoneConfig();
2921
+ if (config.payloadFormat === 'phoneNumber') {
2922
+ this.phoneControl.setValue(value, { emitEvent: false });
2923
+ if (config.defaultCountry) {
2924
+ const country = this.availableCountries().find(c => c.code === config.defaultCountry);
2925
+ if (country) {
2926
+ this.countryControl.setValue(config.defaultCountry, { emitEvent: false });
2927
+ this.selectedCountry.set(country);
2928
+ }
2929
+ }
2930
+ }
2931
+ else {
2932
+ const match = value.match(/^(\+?\d{1,4})[\s-]?(.+)$/);
2933
+ if (match) {
2934
+ const phoneCode = match[1].startsWith('+') ? match[1] : `+${match[1]}`;
2935
+ const phoneNumber = match[2];
2936
+ const country = this.availableCountries().find(c => c.phone === phoneCode);
2937
+ if (country) {
2938
+ this.countryControl.setValue(country.code, { emitEvent: false });
2939
+ this.selectedCountry.set(country);
2940
+ }
2941
+ this.phoneControl.setValue(phoneNumber, { emitEvent: false });
2942
+ }
2943
+ else {
2944
+ this.phoneControl.setValue(value, { emitEvent: false });
2945
+ }
2946
+ }
2947
+ setTimeout(() => {
2948
+ this.isUpdatingValue = false;
2949
+ }, 0);
2950
+ }
2951
+ updatePhoneValue() {
2952
+ if (this.isUpdatingValue)
2953
+ return;
2954
+ const country = this.selectedCountry();
2955
+ const phoneNumber = this.phoneControl.value || '';
2956
+ const countryCode = this.countryControl.value || '';
2957
+ const config = this.phoneConfig();
2958
+ if (!country && !phoneNumber) {
2959
+ this.valueChange.emit('');
2960
+ return;
2961
+ }
2962
+ const phoneValue = {
2963
+ countryCode: countryCode,
2964
+ phoneCode: country?.phone || '',
2965
+ phoneNumber: phoneNumber,
2966
+ fullNumber: country && phoneNumber ? `${country.phone} ${phoneNumber}` : phoneNumber
2967
+ };
2968
+ let valueToEmit = phoneValue;
2969
+ switch (config.payloadFormat) {
2970
+ case 'fullNumber':
2971
+ valueToEmit = phoneValue.fullNumber || '';
2972
+ break;
2973
+ case 'phoneNumber':
2974
+ valueToEmit = phoneValue.phoneNumber || '';
2975
+ break;
2976
+ case 'phoneCode':
2977
+ valueToEmit = phoneValue.phoneCode || '';
2978
+ break;
2979
+ case 'countryCode':
2980
+ valueToEmit = phoneValue.countryCode || '';
2981
+ break;
2982
+ case 'object':
2983
+ default:
2984
+ valueToEmit = phoneValue;
2985
+ break;
2986
+ }
2987
+ this.valueChange.emit(valueToEmit);
2988
+ }
2989
+ syncCountryFromControl() {
2990
+ const countryCode = untracked(() => this.countryControl.value);
2991
+ if (!countryCode) {
2992
+ this.selectedCountry.set(null);
2993
+ }
2994
+ else {
2995
+ const country = untracked(() => this.availableCountries()).find(c => c.code === countryCode) || null;
2996
+ this.selectedCountry.set(country);
2997
+ }
2998
+ }
2999
+ getCountryLabel(country) {
3000
+ const config = this.phoneConfig();
3001
+ const parts = [];
3002
+ if (config.showCountryCode) {
3003
+ parts.push(country.code);
3004
+ }
3005
+ parts.push(country.name);
3006
+ if (config.showPhoneCode) {
3007
+ parts.push(country.phone);
3008
+ }
3009
+ return parts.reverse().join(config.separator);
3010
+ }
3011
+ getPhonePlaceholder() {
3012
+ const config = this.phoneConfig();
3013
+ if (config.phonePlaceholder) {
3014
+ return config.phonePlaceholder;
3015
+ }
3016
+ const selectedCountry = this.selectedCountry();
3017
+ if (selectedCountry) {
3018
+ switch (selectedCountry.code) {
3019
+ case 'US':
3020
+ case 'CA':
3021
+ return '(555) 123-4567';
3022
+ case 'AR':
3023
+ return '11 1234-5678';
3024
+ case 'BR':
3025
+ return '(11) 99999-9999';
3026
+ case 'MX':
3027
+ return '55 1234 5678';
3028
+ case 'ES':
3029
+ case 'FR':
3030
+ case 'IT':
3031
+ return '123 456 789';
3032
+ default:
3033
+ return 'phoneField.defaultPlaceholder';
3034
+ }
3035
+ }
3036
+ return 'phoneField.defaultPlaceholder';
3037
+ }
3038
+ getFlagUrl(country) {
3039
+ const config = this.phoneConfig();
3040
+ if (!config.showFlags || !country.flag) {
3041
+ return '';
3042
+ }
3043
+ const baseUrl = config.flagsBasePath || '/assets/images/flags/';
3044
+ return `${baseUrl}${country.flag}`;
3045
+ }
3046
+ onBlurInput() {
3047
+ super.onBlurInput();
3048
+ if (this.phoneConfig().validatePhoneFormat) {
3049
+ this.validatePhoneFormat();
3050
+ }
3051
+ }
3052
+ validatePhoneFormat() {
3053
+ const phoneNumber = this.phoneControl.value;
3054
+ const country = this.selectedCountry();
3055
+ if (!phoneNumber || !country)
3056
+ return;
3057
+ const phoneRegex = /^[\d\s\-\(\)]+$/;
3058
+ if (!phoneRegex.test(phoneNumber)) {
3059
+ this.phoneControl.setErrors({ 'invalidFormat': true });
3060
+ }
3061
+ else {
3062
+ this.phoneControl.setErrors(null);
3063
+ }
3064
+ }
3065
+ static getLatinAmericaConfig() {
3066
+ return {
3067
+ phoneConfig: {
3068
+ availableCountries: LATIN_AMERICA_COUNTRIES,
3069
+ defaultCountry: CountryCode.UY,
3070
+ showFlags: true,
3071
+ showCountryCode: true,
3072
+ showPhoneCode: true,
3073
+ separator: ' - ',
3074
+ payloadFormat: 'fullNumber'
3075
+ }
3076
+ };
3077
+ }
3078
+ static getCommonCountriesConfig() {
3079
+ return {
3080
+ phoneConfig: {
3081
+ availableCountries: COMMON_COUNTRIES,
3082
+ defaultCountry: CountryCode.US,
3083
+ showFlags: true,
3084
+ showCountryCode: true,
3085
+ showPhoneCode: true,
3086
+ separator: ' - ',
3087
+ payloadFormat: 'fullNumber'
3088
+ }
3089
+ };
3090
+ }
3091
+ isDropdownOpen() {
3092
+ return this.dropdownOpen();
3093
+ }
3094
+ onDocumentClick(event) {
3095
+ if (!this.dropdownOpen())
3096
+ return;
3097
+ const target = event.target;
3098
+ const host = this.hostElement.nativeElement;
3099
+ if (!target || host.contains(target))
3100
+ return;
3101
+ this.dropdownOpen.set(false);
3102
+ }
3103
+ toggleDropdown() {
3104
+ if (this.isDisabled() || this.isReadonly())
3105
+ return;
3106
+ this.dropdownOpen.set(!this.dropdownOpen());
3107
+ }
3108
+ selectCountry(country, event) {
3109
+ event?.stopPropagation();
3110
+ if (this.isDisabled() || this.isReadonly())
3111
+ return;
3112
+ this.isUpdatingValue = true;
3113
+ this.countryControl.setValue(country.code, { emitEvent: false });
3114
+ this.selectedCountry.set(country);
3115
+ this.dropdownOpen.set(false);
3116
+ setTimeout(() => {
3117
+ this.isUpdatingValue = false;
3118
+ this.updatePhoneValue();
3119
+ }, 0);
3120
+ }
3121
+ onFlagError(event) {
3122
+ const img = event.target;
3123
+ img.style.display = 'none';
3124
+ }
3125
+ getSelectedCountryDisplay() {
3126
+ const country = this.selectedCountry();
3127
+ if (!country) {
3128
+ return '';
3129
+ }
3130
+ const config = this.phoneConfig();
3131
+ const parts = [];
3132
+ if (config.showCountryCode) {
3133
+ parts.push(country.code);
3134
+ }
3135
+ if (config.showPhoneCode) {
3136
+ parts.push(country.phone);
3137
+ }
3138
+ if (!config.showCountryCode && !config.showPhoneCode) {
3139
+ parts.push(country.name);
3140
+ }
3141
+ return parts.join(' ');
3142
+ }
3143
+ onAreaCodeClick(event) {
3144
+ event.stopPropagation();
3145
+ this.toggleDropdown();
3146
+ }
3147
+ onAreaCodeKeydown(event) {
3148
+ if (this.isDisabled() || this.isReadonly())
3149
+ return;
3150
+ const key = event.key;
3151
+ if (key === 'Enter' || key === ' ' || key === 'Spacebar') {
3152
+ event.preventDefault();
3153
+ event.stopPropagation();
3154
+ this.toggleDropdown();
3155
+ }
3156
+ }
3157
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PhoneFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3158
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: PhoneFieldComponent, isStandalone: true, selector: "core-phone-field", host: { listeners: { "document:click": "onDocumentClick($event)" } }, usesInheritance: true, ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div class=\"c-entry-phone\" [class.is-disabled]=\"isDisabled()\">\n <div\n class=\"c-entry-input c-entry-input--phone c-area-code js-area-code c-phone-field__custom-select\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-readonly]=\"isReadonly()\"\n (click)=\"onAreaCodeClick($event)\"\n (keydown.enter)=\"onAreaCodeKeydown($any($event))\"\n (keydown.space)=\"onAreaCodeKeydown($any($event))\"\n role=\"button\"\n [attr.tabindex]=\"isDisabled() ? -1 : 0\"\n [attr.aria-expanded]=\"isDropdownOpen()\"\n [attr.aria-haspopup]=\"true\"\n >\n <input type=\"hidden\" class=\"js-area-value\" [value]=\"selectedCountry()?.phone || ''\" />\n <div class=\"c-area-code__selected js-area-code-selected\">\n @if (phoneConfig().showFlags && selectedCountry()?.flag) {\n <img\n class=\"c-area-code__flag\"\n [src]=\"getFlagUrl(selectedCountry()!)\"\n [alt]=\"selectedCountry()?.name || ''\"\n (error)=\"onFlagError($event)\"\n />\n }\n <span class=\"c-area-code__num\">{{ getSelectedCountryDisplay() }}</span>\n <span class=\"c-area-code__arrow icon-arrow-down\"></span>\n </div>\n <div class=\"c-area-code__options js-area-code-options\" [class.show]=\"isDropdownOpen()\">\n @for (country of availableCountries(); track country.code + '-' + country.name) {\n <div class=\"c-area-code__option\" (click)=\"selectCountry(country, $event)\">\n @if (phoneConfig().showFlags && country.flag) {\n <img\n class=\"c-area-code__flag\"\n [src]=\"getFlagUrl(country)\"\n [alt]=\"country.name\"\n (error)=\"onFlagError($event)\"\n />\n }\n <span>{{ getCountryLabel(country) }}</span>\n </div>\n }\n </div>\n </div>\n\n <span\n class=\"c-entry-input\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-invalid]=\"hasError()\"\n >\n <input\n type=\"tel\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"phoneControl\"\n [placeholder]=\"getPhonePlaceholder() | translate\"\n [readonly]=\"isReadonly() || field().blocked\"\n [class.has-error]=\"hasError()\"\n [class.is-invalid]=\"hasError()\"\n inputmode=\"tel\"\n autocomplete=\"tel\"\n (blur)=\"onBlurInput()\"\n (keydown.enter)=\"onEnterInput($any($event))\"\n />\n </span>\n </div>\n\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }] });
3159
+ }
3160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PhoneFieldComponent, decorators: [{
3161
+ type: Component,
3162
+ args: [{ selector: 'core-phone-field', standalone: true, imports: [CommonModule, ReactiveFormsModule, TranslateModule, FieldErrorsComponent], template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <div class=\"c-entry-phone\" [class.is-disabled]=\"isDisabled()\">\n <div\n class=\"c-entry-input c-entry-input--phone c-area-code js-area-code c-phone-field__custom-select\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-readonly]=\"isReadonly()\"\n (click)=\"onAreaCodeClick($event)\"\n (keydown.enter)=\"onAreaCodeKeydown($any($event))\"\n (keydown.space)=\"onAreaCodeKeydown($any($event))\"\n role=\"button\"\n [attr.tabindex]=\"isDisabled() ? -1 : 0\"\n [attr.aria-expanded]=\"isDropdownOpen()\"\n [attr.aria-haspopup]=\"true\"\n >\n <input type=\"hidden\" class=\"js-area-value\" [value]=\"selectedCountry()?.phone || ''\" />\n <div class=\"c-area-code__selected js-area-code-selected\">\n @if (phoneConfig().showFlags && selectedCountry()?.flag) {\n <img\n class=\"c-area-code__flag\"\n [src]=\"getFlagUrl(selectedCountry()!)\"\n [alt]=\"selectedCountry()?.name || ''\"\n (error)=\"onFlagError($event)\"\n />\n }\n <span class=\"c-area-code__num\">{{ getSelectedCountryDisplay() }}</span>\n <span class=\"c-area-code__arrow icon-arrow-down\"></span>\n </div>\n <div class=\"c-area-code__options js-area-code-options\" [class.show]=\"isDropdownOpen()\">\n @for (country of availableCountries(); track country.code + '-' + country.name) {\n <div class=\"c-area-code__option\" (click)=\"selectCountry(country, $event)\">\n @if (phoneConfig().showFlags && country.flag) {\n <img\n class=\"c-area-code__flag\"\n [src]=\"getFlagUrl(country)\"\n [alt]=\"country.name\"\n (error)=\"onFlagError($event)\"\n />\n }\n <span>{{ getCountryLabel(country) }}</span>\n </div>\n }\n </div>\n </div>\n\n <span\n class=\"c-entry-input\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-invalid]=\"hasError()\"\n >\n <input\n type=\"tel\"\n [id]=\"field().key.toString()\"\n [name]=\"field().key.toString()\"\n [formControl]=\"phoneControl\"\n [placeholder]=\"getPhonePlaceholder() | translate\"\n [readonly]=\"isReadonly() || field().blocked\"\n [class.has-error]=\"hasError()\"\n [class.is-invalid]=\"hasError()\"\n inputmode=\"tel\"\n autocomplete=\"tel\"\n (blur)=\"onBlurInput()\"\n (keydown.enter)=\"onEnterInput($any($event))\"\n />\n </span>\n </div>\n\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n" }]
3163
+ }], ctorParameters: () => [], propDecorators: { onDocumentClick: [{
3164
+ type: HostListener,
3165
+ args: ['document:click', ['$event']]
3166
+ }] } });
3167
+
2163
3168
  class SelectFieldComponent extends BaseFieldComponent {
2164
3169
  ngSelect;
2165
3170
  field = input.required();
@@ -2227,6 +3232,16 @@ class SelectFieldComponent extends BaseFieldComponent {
2227
3232
  this.scheduleDynamicValue(newValue);
2228
3233
  }
2229
3234
  });
3235
+ effect(() => {
3236
+ const control = this.formControl();
3237
+ const currentValue = control.value;
3238
+ if (!this.field().multiple &&
3239
+ typeof currentValue === 'string' &&
3240
+ currentValue.trim() === '') {
3241
+ control.setValue(null, { emitEvent: false });
3242
+ this.hasValue.set(false);
3243
+ }
3244
+ });
2230
3245
  }
2231
3246
  ngOnInit() {
2232
3247
  this.userHasInteracted.set(false);
@@ -2684,13 +3699,13 @@ class ServerSelectFieldComponent extends BaseFieldComponent {
2684
3699
  this.initializeWithOptions();
2685
3700
  this.initializeWithPreloadedOptions();
2686
3701
  this.initializeWithExistingValues();
2687
- this.formControl().valueChanges.pipe(debounceTime(100), distinctUntilChanged(), takeUntil(this.destroy$)).subscribe(value => {
3702
+ this.formControl().valueChanges.pipe(debounceTime$1(100), distinctUntilChanged$1(), takeUntil(this.destroy$)).subscribe(value => {
2688
3703
  if (!this.initialized && value) {
2689
3704
  this.initialized = true;
2690
3705
  this.updateItemsWithValue(value);
2691
3706
  }
2692
3707
  });
2693
- this.searchInput$.pipe(debounceTime(300), distinctUntilChanged(), tap(() => {
3708
+ this.searchInput$.pipe(debounceTime$1(300), distinctUntilChanged$1(), tap(() => {
2694
3709
  this.isLoadingSignal.set(true);
2695
3710
  this.hasSearchedSignal.set(true);
2696
3711
  }), switchMap(term => {
@@ -3302,11 +4317,11 @@ class TextFieldComponent extends BaseFieldComponent {
3302
4317
  this.onEnterInput(keyboardEvent);
3303
4318
  }
3304
4319
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3305
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextFieldComponent, isStandalone: true, selector: "core-text-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- \n ! Solcre: Detalles del input implementados:\n \u2705 Estado disabled agregado - Implementado isDisabled()\n \u2705 Type din\u00E1mico implementado - Acepta text, email, url, tel, etc.\n \u2705 style=\"--chars: XXX\" implementado - Ancho adaptable seg\u00FAn caracteres\n \u2705 PrefixIcon agregado - Soporte para iconos de prefijo\n -->\n\n <span class=\"c-entry-input\"\n [style.--chars]=\"getCharsWidth()\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\">\n @if (field().prefixIcon) {\n <span class=\"c-entry-input__addon\" [class]=\"field().prefixIcon | coreIconCompat\"></span>\n }\n <input \n [type]=\"getInputType()\"\n [class.has-error]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput($event)\"\n (keydown.enter)=\"handleEnterKey($event)\"\n />\n <span *ngIf=\"field().blocked\" class=\"c-entry-input__addon icon-locked-thin\"></span>\n </span>\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
4320
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextFieldComponent, isStandalone: true, selector: "core-text-field", usesInheritance: true, hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- \n ! Solcre: Detalles del input implementados:\n \u2705 Estado disabled agregado - Implementado isDisabled()\n \u2705 Type din\u00E1mico implementado - Acepta text, email, url, tel, etc.\n \u2705 style=\"--chars: XXX\" implementado - Ancho adaptable seg\u00FAn caracteres\n \u2705 PrefixIcon agregado - Soporte para iconos de prefijo\n -->\n\n <span class=\"c-entry-input\"\n [style.--chars]=\"getCharsWidth()\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\">\n @if (field().prefixIcon) {\n <span class=\"c-entry-input__addon\" [class]=\"field().prefixIcon | coreIconCompat\"></span>\n }\n <input \n [type]=\"getInputType()\"\n [class.has-error]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-invalid]=\"hasError()\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput($event)\"\n (keydown.enter)=\"handleEnterKey($event)\"\n />\n <span *ngIf=\"field().blocked\" class=\"c-entry-input__addon icon-locked-thin\"></span>\n </span>\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FieldErrorsComponent, selector: "core-field-errors", inputs: ["errors"] }, { kind: "pipe", type: IconCompatPipe, name: "coreIconCompat" }] });
3306
4321
  }
3307
4322
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextFieldComponent, decorators: [{
3308
4323
  type: Component,
3309
- args: [{ selector: 'core-text-field', standalone: true, imports: [CommonModule, FormsModule, TranslateModule, ReactiveFormsModule, FieldErrorsComponent, IconCompatPipe], hostDirectives: [CoreHostDirective], template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- \n ! Solcre: Detalles del input implementados:\n \u2705 Estado disabled agregado - Implementado isDisabled()\n \u2705 Type din\u00E1mico implementado - Acepta text, email, url, tel, etc.\n \u2705 style=\"--chars: XXX\" implementado - Ancho adaptable seg\u00FAn caracteres\n \u2705 PrefixIcon agregado - Soporte para iconos de prefijo\n -->\n\n <span class=\"c-entry-input\"\n [style.--chars]=\"getCharsWidth()\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\">\n @if (field().prefixIcon) {\n <span class=\"c-entry-input__addon\" [class]=\"field().prefixIcon | coreIconCompat\"></span>\n }\n <input \n [type]=\"getInputType()\"\n [class.has-error]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput($event)\"\n (keydown.enter)=\"handleEnterKey($event)\"\n />\n <span *ngIf=\"field().blocked\" class=\"c-entry-input__addon icon-locked-thin\"></span>\n </span>\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n" }]
4324
+ args: [{ selector: 'core-text-field', standalone: true, imports: [CommonModule, FormsModule, TranslateModule, ReactiveFormsModule, FieldErrorsComponent, IconCompatPipe], hostDirectives: [CoreHostDirective], template: "<label class=\"c-entry-item\" [class.c-entry-item--inline]=\"field().inline\">\n <span class=\"c-entry-text\" *ngIf=\"field().label\">\n {{ field().label | translate }}\n @if (hasRequiredValidators()) {\n <span class=\"c-required\">*</span>\n }\n </span>\n\n <!-- \n ! Solcre: Detalles del input implementados:\n \u2705 Estado disabled agregado - Implementado isDisabled()\n \u2705 Type din\u00E1mico implementado - Acepta text, email, url, tel, etc.\n \u2705 style=\"--chars: XXX\" implementado - Ancho adaptable seg\u00FAn caracteres\n \u2705 PrefixIcon agregado - Soporte para iconos de prefijo\n -->\n\n <span class=\"c-entry-input\"\n [style.--chars]=\"getCharsWidth()\"\n [class.is-readonly]=\"isReadonly() || field().blocked\"\n [class.is-disabled]=\"isDisabled()\">\n @if (field().prefixIcon) {\n <span class=\"c-entry-input__addon\" [class]=\"field().prefixIcon | coreIconCompat\"></span>\n }\n <input \n [type]=\"getInputType()\"\n [class.has-error]=\"hasError()\"\n [class.is-disabled]=\"isDisabled()\"\n [class.is-invalid]=\"hasError()\"\n [formControl]=\"formControl()\"\n [placeholder]=\"(field().placeholder ?? '') | translate\"\n (blur)=\"onBlurInput($event)\"\n (keydown.enter)=\"handleEnterKey($event)\"\n />\n <span *ngIf=\"field().blocked\" class=\"c-entry-input__addon icon-locked-thin\"></span>\n </span>\n <core-field-errors [errors]=\"errors()\"></core-field-errors>\n</label>\n" }]
3310
4325
  }], ctorParameters: () => [] });
3311
4326
 
3312
4327
  class TimeFieldComponent {
@@ -3620,6 +4635,7 @@ class DynamicFieldDirective {
3620
4635
  time: TimeFieldComponent,
3621
4636
  password: PasswordFieldComponent,
3622
4637
  file: FileFieldComponent,
4638
+ phone: PhoneFieldComponent,
3623
4639
  };
3624
4640
  ngOnChanges(changes) {
3625
4641
  if (changes['field']?.firstChange || this.shouldReloadComponent(changes)) {
@@ -4613,28 +5629,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
4613
5629
  args: ['class']
4614
5630
  }] } });
4615
5631
 
4616
- var FieldType;
4617
- (function (FieldType) {
4618
- FieldType["TEXT"] = "text";
4619
- FieldType["TEXTAREA"] = "textarea";
4620
- FieldType["NUMBER"] = "number";
4621
- FieldType["CHECKBOX"] = "checkbox";
4622
- FieldType["SELECT"] = "select";
4623
- FieldType["DATE"] = "date";
4624
- FieldType["DATETIME"] = "datetime";
4625
- FieldType["TIME"] = "time";
4626
- FieldType["PASSWORD"] = "password";
4627
- FieldType["SWITCH"] = "switch";
4628
- FieldType["SERVER_SELECT"] = "server-select";
4629
- FieldType["FILE"] = "file";
4630
- })(FieldType || (FieldType = {}));
4631
- var NumberFieldType;
4632
- (function (NumberFieldType) {
4633
- NumberFieldType["DEFAULT"] = "default";
4634
- NumberFieldType["DECIMAL"] = "decimal";
4635
- NumberFieldType["INTEGER"] = "integer";
4636
- })(NumberFieldType || (NumberFieldType = {}));
4637
-
4638
5632
  class GenericTabsComponent {
4639
5633
  config = input({
4640
5634
  tabs: [],
@@ -5250,15 +6244,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
5250
6244
  }]
5251
6245
  }] });
5252
6246
 
5253
- var AlertType;
5254
- (function (AlertType) {
5255
- AlertType["DEFAULT"] = "default";
5256
- AlertType["ERROR"] = "error";
5257
- AlertType["SUCCESS"] = "success";
5258
- AlertType["HIGHLIGHTED"] = "highlight";
5259
- AlertType["WAITING"] = "waiting";
5260
- })(AlertType || (AlertType = {}));
5261
-
5262
6247
  class AlertService {
5263
6248
  alerts = signal([]);
5264
6249
  alerts$ = this.alerts.asReadonly();
@@ -9528,15 +10513,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
9528
10513
  }]
9529
10514
  }] });
9530
10515
 
9531
- var HeaderElementType;
9532
- (function (HeaderElementType) {
9533
- HeaderElementType["GLOBAL_ACTIONS"] = "globalActions";
9534
- HeaderElementType["CUSTOM_ACTIONS"] = "customActions";
9535
- HeaderElementType["FILTER"] = "filter";
9536
- HeaderElementType["CREATE"] = "create";
9537
- HeaderElementType["CUSTOM_TEMPLATE"] = "customTemplate";
9538
- })(HeaderElementType || (HeaderElementType = {}));
9539
-
9540
10516
  class HeaderService {
9541
10517
  translateService = inject(TranslateService);
9542
10518
  title = signal('');
@@ -9804,7 +10780,7 @@ class InlineEditService {
9804
10780
  setupSubscriptions() {
9805
10781
  this.subscriptions.forEach(sub => sub.unsubscribe());
9806
10782
  this.subscriptions = [];
9807
- this.subscriptions.push(this.immediateSaveSubject.pipe(debounceTime(50), switchMap(({ rowId, column, value, source }) => {
10783
+ this.subscriptions.push(this.immediateSaveSubject.pipe(debounceTime$1(50), switchMap(({ rowId, column, value, source }) => {
9808
10784
  this.performInlineEdit(rowId, column, value, source);
9809
10785
  return of(true);
9810
10786
  })).subscribe());
@@ -11937,7 +12913,7 @@ class GenericTableComponent {
11937
12913
  };
11938
12914
  }
11939
12915
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11940
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTableComponent, isStandalone: true, selector: "core-generic-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, modalFields: { classPropertyName: "modalFields", publicName: "modalFields", isSignal: true, isRequired: false, transformFunction: null }, modalTabs: { classPropertyName: "modalTabs", publicName: "modalTabs", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null }, globalActions: { classPropertyName: "globalActions", publicName: "globalActions", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: true, isRequired: false, transformFunction: null }, showSelection: { classPropertyName: "showSelection", publicName: "showSelection", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showCreateButton: { classPropertyName: "showCreateButton", publicName: "showCreateButton", isSignal: true, isRequired: false, transformFunction: null }, filterButtonConfig: { classPropertyName: "filterButtonConfig", publicName: "filterButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonConfig: { classPropertyName: "createButtonConfig", publicName: "createButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonText: { classPropertyName: "createButtonText", publicName: "createButtonText", isSignal: true, isRequired: false, transformFunction: null }, dataInput: { classPropertyName: "dataInput", publicName: "dataInput", isSignal: true, isRequired: false, transformFunction: null }, customFilters: { classPropertyName: "customFilters", publicName: "customFilters", isSignal: true, isRequired: false, transformFunction: null }, enablePagination: { classPropertyName: "enablePagination", publicName: "enablePagination", isSignal: true, isRequired: false, transformFunction: null }, modelFactory: { classPropertyName: "modelFactory", publicName: "modelFactory", isSignal: true, isRequired: false, transformFunction: null }, endpoint: { classPropertyName: "endpoint", publicName: "endpoint", isSignal: true, isRequired: false, transformFunction: null }, customParams: { classPropertyName: "customParams", publicName: "customParams", isSignal: true, isRequired: false, transformFunction: null }, customArrayKey: { classPropertyName: "customArrayKey", publicName: "customArrayKey", isSignal: true, isRequired: false, transformFunction: null }, listTitle: { classPropertyName: "listTitle", publicName: "listTitle", isSignal: true, isRequired: false, transformFunction: null }, moreData: { classPropertyName: "moreData", publicName: "moreData", isSignal: true, isRequired: false, transformFunction: null }, inModal: { classPropertyName: "inModal", publicName: "inModal", isSignal: true, isRequired: false, transformFunction: null }, expansionConfig: { classPropertyName: "expansionConfig", publicName: "expansionConfig", isSignal: true, isRequired: false, transformFunction: null }, fileUploadConfig: { classPropertyName: "fileUploadConfig", publicName: "fileUploadConfig", isSignal: true, isRequired: false, transformFunction: null }, rowStyleConfigs: { classPropertyName: "rowStyleConfigs", publicName: "rowStyleConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnDisabledConfigs: { classPropertyName: "columnDisabledConfigs", publicName: "columnDisabledConfigs", isSignal: true, isRequired: false, transformFunction: null }, rowVisibilityConfigs: { classPropertyName: "rowVisibilityConfigs", publicName: "rowVisibilityConfigs", isSignal: true, isRequired: false, transformFunction: null }, headerOrder: { classPropertyName: "headerOrder", publicName: "headerOrder", isSignal: true, isRequired: false, transformFunction: null }, showActiveFilters: { classPropertyName: "showActiveFilters", publicName: "showActiveFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFiltersConfig: { classPropertyName: "activeFiltersConfig", publicName: "activeFiltersConfig", isSignal: true, isRequired: false, transformFunction: null }, sortConfig: { classPropertyName: "sortConfig", publicName: "sortConfig", isSignal: true, isRequired: false, transformFunction: null }, showManualRefresh: { classPropertyName: "showManualRefresh", publicName: "showManualRefresh", isSignal: true, isRequired: false, transformFunction: null }, manualRefreshConfig: { classPropertyName: "manualRefreshConfig", publicName: "manualRefreshConfig", isSignal: true, isRequired: false, transformFunction: null }, refreshButtonConfig: { classPropertyName: "refreshButtonConfig", publicName: "refreshButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, customEdit: { classPropertyName: "customEdit", publicName: "customEdit", isSignal: true, isRequired: false, transformFunction: null }, customDelete: { classPropertyName: "customDelete", publicName: "customDelete", isSignal: true, isRequired: false, transformFunction: null }, customView: { classPropertyName: "customView", publicName: "customView", isSignal: true, isRequired: false, transformFunction: null }, customSave: { classPropertyName: "customSave", publicName: "customSave", isSignal: true, isRequired: false, transformFunction: null }, useCustomSave: { classPropertyName: "useCustomSave", publicName: "useCustomSave", isSignal: true, isRequired: false, transformFunction: null }, onApiError: { classPropertyName: "onApiError", publicName: "onApiError", isSignal: true, isRequired: false, transformFunction: null }, inlineEditConfig: { classPropertyName: "inlineEditConfig", publicName: "inlineEditConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", selectionChanged: "selectionChanged", dataCreated: "dataCreated", dataUpdated: "dataUpdated", dataDeleted: "dataDeleted", dataFetched: "dataFetched", onMoreDataLoaded: "onMoreDataLoaded", globalActionTriggered: "globalActionTriggered", modalData: "modalData", beforeSave: "beforeSave", onFilterChange: "onFilterChange", onClearFilters: "onClearFilters", activeFilterRemoved: "activeFilterRemoved", activeFiltersCleared: "activeFiltersCleared", dataRefreshed: "dataRefreshed", inlineEditSave: "inlineEditSave", inlineEditModeChanged: "inlineEditModeChanged", inlineEditValidationError: "inlineEditValidationError" }, host: { listeners: { "window:beforeunload": "onBeforeUnload($event)", "document:click": "closeSubmenu()" } }, providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], viewQueries: [{ propertyName: "sentinel", first: true, predicate: ["sentinel"], descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: ["dropdownTrigger"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "manualRefreshComponent", first: true, predicate: CoreManualRefreshComponent, descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\">\n </core-active-filters>\n}\n<div class=\"c-table\" [class.in-modal]=\"inModal()\" [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\">\n @if (showManualRefresh()) {\n <core-manual-refresh \n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\">\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isAllSelected()\" (change)=\"masterToggle()\" />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button class=\"c-table-order\" tabindex=\"-1\"\n [class.is-asc]=\"getColumnSortState(column) === SortDirection.ASC\"\n [class.is-desc]=\"getColumnSortState(column) === SortDirection.DESC\"\n [class.has-multiple-sorts]=\"isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null\"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\">\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span class=\"c-table-order__arrow--asc icon-arrow-down\"></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (showActions() && (actions().length > 0 || customActions().length > 0)) {\n <th class=\"u-align-right\">{{ 'table.actions' | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr [ngClass]=\"getRowClasses(row)\" \n [class.is-editing-inline]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\">\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isRowSelected(row)\" (change)=\"toggleRow(row)\" />\n </td>\n }\n @for (column of columns(); track $index) {\n <td [attr.data-label]=\"column.label | translate\" \n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column)\n ]\" \n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\">\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container *ngTemplateOutlet=\"column.template; context: { $implicit: row, column: column }\"></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong>\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong> {{ getFormattedValue(row,\n column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (showActions() && (actions().length > 0 || customActions().length > 0 || expansionConfig()?.enabled)) {\n\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown [rowId]=\"row.getId()\" [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\" [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"triggerCustomAction($event.action, $event.row)\" #dropdown>\n </core-dropdown>\n @for (actionConfig of getVisibleDefaultActions(row, false); track actionConfig.action) {\n @if (hasPermission(actionConfig)) {\n @if (actionConfig.action === TableAction.VIEW || actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE) {\n <core-generic-button [config]=\"getActionButtonConfig(actionConfig.action, actionConfig, row)\"\n (buttonClick)=\"onButtonClick($event, actionConfig.action, row)\">\n </core-generic-button>\n }\n }\n }\n @for (customAction of getVisibleCustomActions(row, false); track customAction.label || $index) {\n @if (hasPermission(customAction)) {\n <core-generic-button [config]=\"getCustomActionButtonConfigForRow(customAction, row)\"\n (buttonClick)=\"onButtonClick($event, customAction, row)\">\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button [config]=\"getMoreActionsButtonConfig(row.getId())\" [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\" #dropdownTrigger>\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button [config]=\"getExpandButtonConfig(row)\" (buttonClick)=\"onExpandButtonClick($event, row)\">\n </core-generic-button>\n }\n\n </div> <!-- .c-table__actions -->\n </td> <!-- td parent of .c-table__actions -->\n } <!-- @if (showActions() -->\n\n\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"expansion-row\" [ngClass]=\"getRowClasses(row)\">\n <td [attr.colspan]=\"displayedColumns().length\" class=\"expansion-content\">\n <ng-container *ngTemplateOutlet=\"expansionConfig()!.template; context: { $implicit: row }\">\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ 'table.noData' | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div> <!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n<!-- Todo: Ver qu\u00E9 onda esto -->\n<div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n<core-generic-pagination \n [tableId]=\"tableId\" \n [isServerSide]=\"!!endpoint()\">\n</core-generic-pagination>\n}\n\n<core-generic-modal [isOpen]=\"tableActionService.getIsModalOpen()\" [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\" [fields]=\"hasTabs() ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() ? modalTabs() : []\" [title]=\"tableActionService.getModalTitle()\" [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\" (close)=\"tableActionService.closeModal()\" (modalData)=\"onModalData($event)\">\n</core-generic-modal>\n\n<core-filter-modal [isOpen]=\"isFilterModalOpen()\" [filters]=\"customFilters()\" [currentFilterValues]=\"currentFilterValues()\" (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\" (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\">\n</core-filter-modal>", styles: [".in-modal .c-table thead th:last-child,.c-table tbody td:last-child{text-align:left}.c-table__order-btn--asc{transform:rotate(180deg)}.c-table__order-btn--desc{transform:rotate(0)}.c-table tr.is-editing-inline{background-color:#fff3cd;border-left:3px solid #ffc107}.c-table tr.is-editing-inline td{background-color:#fff3cd}.c-table tr.is-editing-inline:hover td{background-color:#ffecb5}.expansion-row .expansion-content{padding:16px;background-color:#f8f9fa;border-top:1px solid #dee2e6}.expansion-row td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:#28a745}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: GenericModalComponent, selector: "core-generic-modal", inputs: ["isOpen", "mode", "data", "fields", "tabs", "steps", "title", "isMultiple", "customTemplate", "customViewTemplate", "finalStepTemplate", "buttonConfig", "modelFactory", "errors", "validators", "customHasChanges", "stepValidationEnabled", "allowFreeNavigation", "autoMarkCompleted"], outputs: ["save", "close", "modalData"] }, { kind: "component", type: GenericPaginationComponent, selector: "core-generic-pagination", inputs: ["tableId", "isServerSide"] }, { kind: "component", type: DropdownComponent, selector: "core-dropdown", inputs: ["rowId", "triggerElementId", "extraDefaultActions", "extraCustomActions", "row"], outputs: ["actionTriggered", "customActionTriggered"] }, { kind: "component", type: FilterModalComponent, selector: "core-filter-modal", inputs: ["isOpen", "filters", "currentFilterValues"], outputs: ["close", "filterChange", "clearFilters", "globalFilterChange"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }, { kind: "component", type: ActiveFiltersComponent, selector: "core-active-filters", inputs: ["activeFilters", "config"], outputs: ["onFilterRemove", "onClearAll"] }, { kind: "component", type: CoreManualRefreshComponent, selector: "core-manual-refresh", inputs: ["config", "refreshId"], outputs: ["onRefresh", "timestampUpdated"] }] });
12916
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTableComponent, isStandalone: true, selector: "core-generic-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, modalFields: { classPropertyName: "modalFields", publicName: "modalFields", isSignal: true, isRequired: false, transformFunction: null }, modalTabs: { classPropertyName: "modalTabs", publicName: "modalTabs", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null }, globalActions: { classPropertyName: "globalActions", publicName: "globalActions", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: true, isRequired: false, transformFunction: null }, showSelection: { classPropertyName: "showSelection", publicName: "showSelection", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showCreateButton: { classPropertyName: "showCreateButton", publicName: "showCreateButton", isSignal: true, isRequired: false, transformFunction: null }, filterButtonConfig: { classPropertyName: "filterButtonConfig", publicName: "filterButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonConfig: { classPropertyName: "createButtonConfig", publicName: "createButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonText: { classPropertyName: "createButtonText", publicName: "createButtonText", isSignal: true, isRequired: false, transformFunction: null }, dataInput: { classPropertyName: "dataInput", publicName: "dataInput", isSignal: true, isRequired: false, transformFunction: null }, customFilters: { classPropertyName: "customFilters", publicName: "customFilters", isSignal: true, isRequired: false, transformFunction: null }, enablePagination: { classPropertyName: "enablePagination", publicName: "enablePagination", isSignal: true, isRequired: false, transformFunction: null }, modelFactory: { classPropertyName: "modelFactory", publicName: "modelFactory", isSignal: true, isRequired: false, transformFunction: null }, endpoint: { classPropertyName: "endpoint", publicName: "endpoint", isSignal: true, isRequired: false, transformFunction: null }, customParams: { classPropertyName: "customParams", publicName: "customParams", isSignal: true, isRequired: false, transformFunction: null }, customArrayKey: { classPropertyName: "customArrayKey", publicName: "customArrayKey", isSignal: true, isRequired: false, transformFunction: null }, listTitle: { classPropertyName: "listTitle", publicName: "listTitle", isSignal: true, isRequired: false, transformFunction: null }, moreData: { classPropertyName: "moreData", publicName: "moreData", isSignal: true, isRequired: false, transformFunction: null }, inModal: { classPropertyName: "inModal", publicName: "inModal", isSignal: true, isRequired: false, transformFunction: null }, expansionConfig: { classPropertyName: "expansionConfig", publicName: "expansionConfig", isSignal: true, isRequired: false, transformFunction: null }, fileUploadConfig: { classPropertyName: "fileUploadConfig", publicName: "fileUploadConfig", isSignal: true, isRequired: false, transformFunction: null }, rowStyleConfigs: { classPropertyName: "rowStyleConfigs", publicName: "rowStyleConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnDisabledConfigs: { classPropertyName: "columnDisabledConfigs", publicName: "columnDisabledConfigs", isSignal: true, isRequired: false, transformFunction: null }, rowVisibilityConfigs: { classPropertyName: "rowVisibilityConfigs", publicName: "rowVisibilityConfigs", isSignal: true, isRequired: false, transformFunction: null }, headerOrder: { classPropertyName: "headerOrder", publicName: "headerOrder", isSignal: true, isRequired: false, transformFunction: null }, showActiveFilters: { classPropertyName: "showActiveFilters", publicName: "showActiveFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFiltersConfig: { classPropertyName: "activeFiltersConfig", publicName: "activeFiltersConfig", isSignal: true, isRequired: false, transformFunction: null }, sortConfig: { classPropertyName: "sortConfig", publicName: "sortConfig", isSignal: true, isRequired: false, transformFunction: null }, showManualRefresh: { classPropertyName: "showManualRefresh", publicName: "showManualRefresh", isSignal: true, isRequired: false, transformFunction: null }, manualRefreshConfig: { classPropertyName: "manualRefreshConfig", publicName: "manualRefreshConfig", isSignal: true, isRequired: false, transformFunction: null }, refreshButtonConfig: { classPropertyName: "refreshButtonConfig", publicName: "refreshButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, customEdit: { classPropertyName: "customEdit", publicName: "customEdit", isSignal: true, isRequired: false, transformFunction: null }, customDelete: { classPropertyName: "customDelete", publicName: "customDelete", isSignal: true, isRequired: false, transformFunction: null }, customView: { classPropertyName: "customView", publicName: "customView", isSignal: true, isRequired: false, transformFunction: null }, customSave: { classPropertyName: "customSave", publicName: "customSave", isSignal: true, isRequired: false, transformFunction: null }, useCustomSave: { classPropertyName: "useCustomSave", publicName: "useCustomSave", isSignal: true, isRequired: false, transformFunction: null }, onApiError: { classPropertyName: "onApiError", publicName: "onApiError", isSignal: true, isRequired: false, transformFunction: null }, inlineEditConfig: { classPropertyName: "inlineEditConfig", publicName: "inlineEditConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", selectionChanged: "selectionChanged", dataCreated: "dataCreated", dataUpdated: "dataUpdated", dataDeleted: "dataDeleted", dataFetched: "dataFetched", onMoreDataLoaded: "onMoreDataLoaded", globalActionTriggered: "globalActionTriggered", modalData: "modalData", beforeSave: "beforeSave", onFilterChange: "onFilterChange", onClearFilters: "onClearFilters", activeFilterRemoved: "activeFilterRemoved", activeFiltersCleared: "activeFiltersCleared", dataRefreshed: "dataRefreshed", inlineEditSave: "inlineEditSave", inlineEditModeChanged: "inlineEditModeChanged", inlineEditValidationError: "inlineEditValidationError" }, host: { listeners: { "window:beforeunload": "onBeforeUnload($event)", "document:click": "closeSubmenu()" } }, providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], viewQueries: [{ propertyName: "sentinel", first: true, predicate: ["sentinel"], descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: ["dropdownTrigger"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "manualRefreshComponent", first: true, predicate: CoreManualRefreshComponent, descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\">\n </core-active-filters>\n}\n<div class=\"c-table\" [class.in-modal]=\"inModal()\" [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\">\n @if (showManualRefresh()) {\n <core-manual-refresh \n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\">\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isAllSelected()\" (change)=\"masterToggle()\" />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button class=\"c-table-order\" tabindex=\"-1\"\n [class.is-asc]=\"getColumnSortState(column) === SortDirection.ASC\"\n [class.is-desc]=\"getColumnSortState(column) === SortDirection.DESC\"\n [class.has-multiple-sorts]=\"isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null\"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\">\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span class=\"c-table-order__arrow--asc icon-arrow-down\"></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (showActions() && (actions().length > 0 || customActions().length > 0)) {\n <th class=\"u-align-right\">{{ 'table.actions' | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr [ngClass]=\"getRowClasses(row)\" \n [class.is-editable]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\">\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isRowSelected(row)\" (change)=\"toggleRow(row)\" />\n </td>\n }\n @for (column of columns(); track $index) {\n <td [attr.data-label]=\"column.label | translate\" \n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column)\n ]\" \n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\">\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container *ngTemplateOutlet=\"column.template; context: { $implicit: row, column: column }\"></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong>\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong> {{ getFormattedValue(row,\n column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (showActions() && (actions().length > 0 || customActions().length > 0 || expansionConfig()?.enabled)) {\n\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown [rowId]=\"row.getId()\" [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\" [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"triggerCustomAction($event.action, $event.row)\" #dropdown>\n </core-dropdown>\n @for (actionConfig of getVisibleDefaultActions(row, false); track actionConfig.action) {\n @if (hasPermission(actionConfig)) {\n @if (actionConfig.action === TableAction.VIEW || actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE) {\n <core-generic-button [config]=\"getActionButtonConfig(actionConfig.action, actionConfig, row)\"\n (buttonClick)=\"onButtonClick($event, actionConfig.action, row)\">\n </core-generic-button>\n }\n }\n }\n @for (customAction of getVisibleCustomActions(row, false); track customAction.label || $index) {\n @if (hasPermission(customAction)) {\n <core-generic-button [config]=\"getCustomActionButtonConfigForRow(customAction, row)\"\n (buttonClick)=\"onButtonClick($event, customAction, row)\">\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button [config]=\"getMoreActionsButtonConfig(row.getId())\" [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\" #dropdownTrigger>\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button [config]=\"getExpandButtonConfig(row)\" (buttonClick)=\"onExpandButtonClick($event, row)\">\n </core-generic-button>\n }\n\n </div> <!-- .c-table__actions -->\n </td> <!-- td parent of .c-table__actions -->\n } <!-- @if (showActions() -->\n\n\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"expansion-row\" [ngClass]=\"getRowClasses(row)\">\n <td [attr.colspan]=\"displayedColumns().length\" class=\"expansion-content\">\n <ng-container *ngTemplateOutlet=\"expansionConfig()!.template; context: { $implicit: row }\">\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ 'table.noData' | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div> <!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n<!-- Todo: Ver qu\u00E9 onda esto -->\n<div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n<core-generic-pagination \n [tableId]=\"tableId\" \n [isServerSide]=\"!!endpoint()\">\n</core-generic-pagination>\n}\n\n<core-generic-modal [isOpen]=\"tableActionService.getIsModalOpen()\" [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\" [fields]=\"hasTabs() ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() ? modalTabs() : []\" [title]=\"tableActionService.getModalTitle()\" [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\" (close)=\"tableActionService.closeModal()\" (modalData)=\"onModalData($event)\">\n</core-generic-modal>\n\n<core-filter-modal [isOpen]=\"isFilterModalOpen()\" [filters]=\"customFilters()\" [currentFilterValues]=\"currentFilterValues()\" (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\" (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\">\n</core-filter-modal>", styles: [".expansion-row .expansion-content{padding:16px;background-color:#f8f9fa;border-top:1px solid #dee2e6}.expansion-row td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:#28a745}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: GenericModalComponent, selector: "core-generic-modal", inputs: ["isOpen", "mode", "data", "fields", "tabs", "steps", "title", "isMultiple", "customTemplate", "customViewTemplate", "finalStepTemplate", "buttonConfig", "modelFactory", "errors", "validators", "customHasChanges", "stepValidationEnabled", "allowFreeNavigation", "autoMarkCompleted"], outputs: ["save", "close", "modalData"] }, { kind: "component", type: GenericPaginationComponent, selector: "core-generic-pagination", inputs: ["tableId", "isServerSide"] }, { kind: "component", type: DropdownComponent, selector: "core-dropdown", inputs: ["rowId", "triggerElementId", "extraDefaultActions", "extraCustomActions", "row"], outputs: ["actionTriggered", "customActionTriggered"] }, { kind: "component", type: FilterModalComponent, selector: "core-filter-modal", inputs: ["isOpen", "filters", "currentFilterValues"], outputs: ["close", "filterChange", "clearFilters", "globalFilterChange"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }, { kind: "component", type: ActiveFiltersComponent, selector: "core-active-filters", inputs: ["activeFilters", "config"], outputs: ["onFilterRemove", "onClearAll"] }, { kind: "component", type: CoreManualRefreshComponent, selector: "core-manual-refresh", inputs: ["config", "refreshId"], outputs: ["onRefresh", "timestampUpdated"] }] });
11941
12917
  }
11942
12918
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTableComponent, decorators: [{
11943
12919
  type: Component,
@@ -11952,7 +12928,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
11952
12928
  DynamicFieldDirective,
11953
12929
  ActiveFiltersComponent,
11954
12930
  CoreManualRefreshComponent,
11955
- ], hostDirectives: [CoreHostDirective], providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\">\n </core-active-filters>\n}\n<div class=\"c-table\" [class.in-modal]=\"inModal()\" [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\">\n @if (showManualRefresh()) {\n <core-manual-refresh \n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\">\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isAllSelected()\" (change)=\"masterToggle()\" />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button class=\"c-table-order\" tabindex=\"-1\"\n [class.is-asc]=\"getColumnSortState(column) === SortDirection.ASC\"\n [class.is-desc]=\"getColumnSortState(column) === SortDirection.DESC\"\n [class.has-multiple-sorts]=\"isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null\"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\">\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span class=\"c-table-order__arrow--asc icon-arrow-down\"></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (showActions() && (actions().length > 0 || customActions().length > 0)) {\n <th class=\"u-align-right\">{{ 'table.actions' | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr [ngClass]=\"getRowClasses(row)\" \n [class.is-editing-inline]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\">\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isRowSelected(row)\" (change)=\"toggleRow(row)\" />\n </td>\n }\n @for (column of columns(); track $index) {\n <td [attr.data-label]=\"column.label | translate\" \n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column)\n ]\" \n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\">\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container *ngTemplateOutlet=\"column.template; context: { $implicit: row, column: column }\"></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong>\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong> {{ getFormattedValue(row,\n column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (showActions() && (actions().length > 0 || customActions().length > 0 || expansionConfig()?.enabled)) {\n\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown [rowId]=\"row.getId()\" [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\" [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"triggerCustomAction($event.action, $event.row)\" #dropdown>\n </core-dropdown>\n @for (actionConfig of getVisibleDefaultActions(row, false); track actionConfig.action) {\n @if (hasPermission(actionConfig)) {\n @if (actionConfig.action === TableAction.VIEW || actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE) {\n <core-generic-button [config]=\"getActionButtonConfig(actionConfig.action, actionConfig, row)\"\n (buttonClick)=\"onButtonClick($event, actionConfig.action, row)\">\n </core-generic-button>\n }\n }\n }\n @for (customAction of getVisibleCustomActions(row, false); track customAction.label || $index) {\n @if (hasPermission(customAction)) {\n <core-generic-button [config]=\"getCustomActionButtonConfigForRow(customAction, row)\"\n (buttonClick)=\"onButtonClick($event, customAction, row)\">\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button [config]=\"getMoreActionsButtonConfig(row.getId())\" [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\" #dropdownTrigger>\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button [config]=\"getExpandButtonConfig(row)\" (buttonClick)=\"onExpandButtonClick($event, row)\">\n </core-generic-button>\n }\n\n </div> <!-- .c-table__actions -->\n </td> <!-- td parent of .c-table__actions -->\n } <!-- @if (showActions() -->\n\n\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"expansion-row\" [ngClass]=\"getRowClasses(row)\">\n <td [attr.colspan]=\"displayedColumns().length\" class=\"expansion-content\">\n <ng-container *ngTemplateOutlet=\"expansionConfig()!.template; context: { $implicit: row }\">\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ 'table.noData' | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div> <!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n<!-- Todo: Ver qu\u00E9 onda esto -->\n<div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n<core-generic-pagination \n [tableId]=\"tableId\" \n [isServerSide]=\"!!endpoint()\">\n</core-generic-pagination>\n}\n\n<core-generic-modal [isOpen]=\"tableActionService.getIsModalOpen()\" [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\" [fields]=\"hasTabs() ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() ? modalTabs() : []\" [title]=\"tableActionService.getModalTitle()\" [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\" (close)=\"tableActionService.closeModal()\" (modalData)=\"onModalData($event)\">\n</core-generic-modal>\n\n<core-filter-modal [isOpen]=\"isFilterModalOpen()\" [filters]=\"customFilters()\" [currentFilterValues]=\"currentFilterValues()\" (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\" (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\">\n</core-filter-modal>", styles: [".in-modal .c-table thead th:last-child,.c-table tbody td:last-child{text-align:left}.c-table__order-btn--asc{transform:rotate(180deg)}.c-table__order-btn--desc{transform:rotate(0)}.c-table tr.is-editing-inline{background-color:#fff3cd;border-left:3px solid #ffc107}.c-table tr.is-editing-inline td{background-color:#fff3cd}.c-table tr.is-editing-inline:hover td{background-color:#ffecb5}.expansion-row .expansion-content{padding:16px;background-color:#f8f9fa;border-top:1px solid #dee2e6}.expansion-row td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:#28a745}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}\n"] }]
12931
+ ], hostDirectives: [CoreHostDirective], providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\">\n </core-active-filters>\n}\n<div class=\"c-table\" [class.in-modal]=\"inModal()\" [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\">\n @if (showManualRefresh()) {\n <core-manual-refresh \n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\">\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isAllSelected()\" (change)=\"masterToggle()\" />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button class=\"c-table-order\" tabindex=\"-1\"\n [class.is-asc]=\"getColumnSortState(column) === SortDirection.ASC\"\n [class.is-desc]=\"getColumnSortState(column) === SortDirection.DESC\"\n [class.has-multiple-sorts]=\"isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null\"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\">\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span class=\"c-table-order__arrow--asc icon-arrow-down\"></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (showActions() && (actions().length > 0 || customActions().length > 0)) {\n <th class=\"u-align-right\">{{ 'table.actions' | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr [ngClass]=\"getRowClasses(row)\" \n [class.is-editable]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\">\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input type=\"checkbox\" [checked]=\"isRowSelected(row)\" (change)=\"toggleRow(row)\" />\n </td>\n }\n @for (column of columns(); track $index) {\n <td [attr.data-label]=\"column.label | translate\" \n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column)\n ]\" \n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\">\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container *ngTemplateOutlet=\"column.template; context: { $implicit: row, column: column }\"></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong>\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\">{{ column.label | translate }}:</strong> {{ getFormattedValue(row,\n column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (showActions() && (actions().length > 0 || customActions().length > 0 || expansionConfig()?.enabled)) {\n\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown [rowId]=\"row.getId()\" [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\" [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"triggerCustomAction($event.action, $event.row)\" #dropdown>\n </core-dropdown>\n @for (actionConfig of getVisibleDefaultActions(row, false); track actionConfig.action) {\n @if (hasPermission(actionConfig)) {\n @if (actionConfig.action === TableAction.VIEW || actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE) {\n <core-generic-button [config]=\"getActionButtonConfig(actionConfig.action, actionConfig, row)\"\n (buttonClick)=\"onButtonClick($event, actionConfig.action, row)\">\n </core-generic-button>\n }\n }\n }\n @for (customAction of getVisibleCustomActions(row, false); track customAction.label || $index) {\n @if (hasPermission(customAction)) {\n <core-generic-button [config]=\"getCustomActionButtonConfigForRow(customAction, row)\"\n (buttonClick)=\"onButtonClick($event, customAction, row)\">\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button [config]=\"getMoreActionsButtonConfig(row.getId())\" [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\" #dropdownTrigger>\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button [config]=\"getExpandButtonConfig(row)\" (buttonClick)=\"onExpandButtonClick($event, row)\">\n </core-generic-button>\n }\n\n </div> <!-- .c-table__actions -->\n </td> <!-- td parent of .c-table__actions -->\n } <!-- @if (showActions() -->\n\n\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"expansion-row\" [ngClass]=\"getRowClasses(row)\">\n <td [attr.colspan]=\"displayedColumns().length\" class=\"expansion-content\">\n <ng-container *ngTemplateOutlet=\"expansionConfig()!.template; context: { $implicit: row }\">\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ 'table.noData' | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div> <!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n<!-- Todo: Ver qu\u00E9 onda esto -->\n<div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n<core-generic-pagination \n [tableId]=\"tableId\" \n [isServerSide]=\"!!endpoint()\">\n</core-generic-pagination>\n}\n\n<core-generic-modal [isOpen]=\"tableActionService.getIsModalOpen()\" [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\" [fields]=\"hasTabs() ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() ? modalTabs() : []\" [title]=\"tableActionService.getModalTitle()\" [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\" (close)=\"tableActionService.closeModal()\" (modalData)=\"onModalData($event)\">\n</core-generic-modal>\n\n<core-filter-modal [isOpen]=\"isFilterModalOpen()\" [filters]=\"customFilters()\" [currentFilterValues]=\"currentFilterValues()\" (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\" (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\">\n</core-filter-modal>", styles: [".expansion-row .expansion-content{padding:16px;background-color:#f8f9fa;border-top:1px solid #dee2e6}.expansion-row td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:#28a745}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}\n"] }]
11956
12932
  }], ctorParameters: () => [], propDecorators: { sentinel: [{
11957
12933
  type: ViewChild,
11958
12934
  args: ['sentinel', { static: false }]
@@ -12246,65 +13222,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
12246
13222
  args: [{ selector: 'core-generic-documentation', standalone: true, imports: [CommonModule, TranslateModule, GenericButtonComponent], hostDirectives: [CoreHostDirective], template: "<div *ngIf=\"!loading() && hasDocuments() && isGridMode()\" class=\"c-components-grid\">\n <div \n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\" \n class=\"c-doc\">\n \n <div class=\"c-bulleted-text\" *ngIf=\"config().showUploadDate || config().showUploadedBy\">\n <time \n *ngIf=\"config().showUploadDate\"\n \n [attr.datetime]=\"document.uploadedDate\">\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span \n *ngIf=\"config().showUploadedBy\"\n >\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p \n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\">\n {{ document.description }}\n </p>\n </div>\n <!-- DEV: Ajustar botones -->\n <div class=\"c-doc__group-btns\">\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DOWNLOAD, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\">\n </core-generic-button>\n </div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"!loading() && hasDocuments() && isListMode()\" class=\"c-components-grid\">\n <ul class=\"c-doc-list\">\n <li \n *ngFor=\"let document of documents(); trackBy: trackByDocumentId\" \n class=\"c-doc-list__item\">\n \n <div class=\"c-doc\">\n <div class=\"c-bulleted-text\" *ngIf=\"config().showUploadDate || config().showUploadedBy\">\n <time \n *ngIf=\"config().showUploadDate\"\n [attr.datetime]=\"document.uploadedDate\">\n <span [class]=\"getFileIcon(document)\"></span>\n {{ formatDate(document.uploadedDate) }}\n </time>\n <span \n *ngIf=\"config().showUploadedBy\">\n {{ document.uploadedBy }}\n </span>\n </div>\n\n <div class=\"c-doc__file c-doc-file\">\n <div>\n <p class=\"c-doc__name\">{{ document.name }}</p>\n <p \n *ngIf=\"config().showDescription && document.description\"\n class=\"c-doc__description\">\n {{ document.description }}\n </p>\n </div>\n\n <div class=\"c-doc__group-btns\">\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DOWNLOAD, document)\"\n [config]=\"getDownloadButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DOWNLOAD, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.DELETE, document)\"\n [config]=\"getDeleteButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.DELETE, document, $event.originalEvent)\">\n </core-generic-button>\n\n <core-generic-button \n *ngIf=\"canPerformAction(DocumentAction.HELP, document)\"\n [config]=\"getHelpButtonConfig(document)\"\n [data]=\"document\"\n (buttonClick)=\"onButtonClick(DocumentAction.HELP, document, $event.originalEvent)\">\n </core-generic-button>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n\n<!-- Loading state -->\n<div *ngIf=\"loading()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon icon-loading\"></span>\n <p class=\"c-empty-state__message\">{{ 'commons.loading' | translate }}</p>\n </div>\n</div>\n\n<!-- Empty state - No documents -->\n<div *ngIf=\"!loading() && !hasDocuments()\" class=\"c-empty-state\">\n <div class=\"c-empty-state__content\">\n <span class=\"c-empty-state__icon\" [class]=\"getEmptyStateIcon()\"></span>\n <p class=\"c-empty-state__message\">{{ getEmptyStateMessage() | translate }}</p>\n \n <!-- Upload button if user can upload -->\n <core-generic-button \n *ngIf=\"canUpload()\"\n [config]=\"uploadButtonConfig()\"\n (buttonClick)=\"onUploadClick($event.originalEvent)\">\n </core-generic-button>\n </div>\n</div>\n", styles: [".c-empty-state{--_color-main-hsl: var(--color-neutral-800-hsl);--_color-text-hsl: var(--color-neutral-800-hsl);--_py: 4em;--_px: 1.5em;--_br: var(--core-main-br);--_fz: var(--fz-200);display:flex;justify-content:center;align-items:center;text-align:center;padding:var(--_py) var(--_px);background-color:hsl(var(--_color-main-hsl)/4%);border-radius:var(--_br);font-size:var(--_fz);font-weight:600;max-width:100rem}.c-empty-state__content{max-width:25em}.c-empty-state__icon{display:block;font-size:2.4em;margin-bottom:.6em;opacity:.7}.c-empty-state__icon.icon-loading{animation:spin 1s linear infinite}.c-empty-state__message{color:#6b7280;line-height:1.5}.c-empty-state core-generic-button{display:block;margin-top:1.8em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
12247
13223
  }], ctorParameters: () => [] });
12248
13224
 
12249
- var SidebarWidth;
12250
- (function (SidebarWidth) {
12251
- SidebarWidth["DEFAULT"] = "default";
12252
- SidebarWidth["WIDE"] = "wide";
12253
- })(SidebarWidth || (SidebarWidth = {}));
12254
-
12255
- var SidebarHeight;
12256
- (function (SidebarHeight) {
12257
- SidebarHeight["DEFAULT"] = "default";
12258
- SidebarHeight["FULL"] = "full";
12259
- })(SidebarHeight || (SidebarHeight = {}));
12260
-
12261
- var FileType;
12262
- (function (FileType) {
12263
- FileType["COMPANY_INVENTORY"] = "company_inventory";
12264
- FileType["COMPANY_LEGAL"] = "company_legals";
12265
- FileType["COMPANY_AZF_PROCEDURE"] = "company_azf_procedure";
12266
- FileType["COMPANY_TELEWORK"] = "company_remote_work";
12267
- FileType["FILE_TEMPLATE"] = "file_template";
12268
- FileType["COMPANY_EMPLOYEES_BULK"] = "company_employees_bulk";
12269
- })(FileType || (FileType = {}));
12270
-
12271
- var NumberRange;
12272
- (function (NumberRange) {
12273
- NumberRange["MIN"] = "min";
12274
- NumberRange["MAX"] = "max";
12275
- })(NumberRange || (NumberRange = {}));
12276
-
12277
- var LayoutBreakpoint;
12278
- (function (LayoutBreakpoint) {
12279
- LayoutBreakpoint["MOBILE"] = "mobile";
12280
- LayoutBreakpoint["TABLET"] = "tablet";
12281
- LayoutBreakpoint["DESKTOP"] = "desktop";
12282
- })(LayoutBreakpoint || (LayoutBreakpoint = {}));
12283
-
12284
- var SidebarVisibility;
12285
- (function (SidebarVisibility) {
12286
- SidebarVisibility["SHOW"] = "show";
12287
- SidebarVisibility["HIDE"] = "hide";
12288
- })(SidebarVisibility || (SidebarVisibility = {}));
12289
-
12290
- var LayoutType;
12291
- (function (LayoutType) {
12292
- LayoutType["DEFAULT"] = "default";
12293
- })(LayoutType || (LayoutType = {}));
12294
-
12295
- var SidebarPosition;
12296
- (function (SidebarPosition) {
12297
- SidebarPosition["LEFT"] = "left";
12298
- SidebarPosition["RIGHT"] = "right";
12299
- })(SidebarPosition || (SidebarPosition = {}));
12300
-
12301
- var SidebarMobileType;
12302
- (function (SidebarMobileType) {
12303
- SidebarMobileType["SELECT"] = "select";
12304
- SidebarMobileType["SCROLL"] = "scroll";
12305
- SidebarMobileType["MODAL"] = "modal";
12306
- })(SidebarMobileType || (SidebarMobileType = {}));
12307
-
12308
13225
  class LayoutService {
12309
13226
  layoutConfig = signal({
12310
13227
  layout: LayoutType.DEFAULT,
@@ -13497,12 +14414,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
13497
14414
  // Este archivo es generado automáticamente por scripts/update-version.js
13498
14415
  // No edites manualmente este archivo
13499
14416
  const VERSION = {
13500
- full: '2.12.43',
14417
+ full: '2.12.44',
13501
14418
  major: 2,
13502
14419
  minor: 12,
13503
- patch: 43,
13504
- timestamp: '2025-09-22T14:27:19.870Z',
13505
- buildDate: '22/9/2025'
14420
+ patch: 44,
14421
+ timestamp: '2025-09-23T14:11:54.764Z',
14422
+ buildDate: '23/9/2025'
13506
14423
  };
13507
14424
 
13508
14425
  class MainNavComponent {
@@ -16480,5 +17397,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
16480
17397
  * Generated bundle index. Do not edit.
16481
17398
  */
16482
17399
 
16483
- export { ActiveFiltersComponent, AgeValidationHelper, AlertComponent, AlertContainerComponent, AlertService, AlertType, ApiConfigurationProvider, BaseFieldComponent, ButtonContext, ButtonSize, ButtonType, CacheBustingInterceptor, CardComponent, CarouselComponent, ChatMessagePosition, ChatMessageType, CheckboxFieldComponent, ConfigurationModel, ConfirmationDialogComponent, ConfirmationDialogService, CoreHostDirective, CoreManualRefreshComponent, CoreUiHttpLoaderFactory, CoreUiTranslateLoader, CoreUiTranslateService, DataListComponent, DataListItemComponent, DateFieldComponent, DateUtility, DatetimeFieldComponent, DialogActions, DocumentAction, DocumentDisplayMode, DropdownComponent, DropdownDirection, DropdownService, DynamicFieldDirective, DynamicFieldsHelper, FieldErrorsComponent, FieldType, FileFieldComponent, FileModel, FilePreviewActionType, FileTemplateModel, FileTemplateType, FileType, FileTypeModel, FileUploadService, FilterModalComponent, FilterService, FilterType, GalleryAnimationType, GalleryLayoutType, GalleryModalComponent, GalleryModalGlobalService, GenericButtonComponent, GenericChatComponent, GenericChatService, GenericDocumentationComponent, GenericGalleryComponent, GenericModalComponent, GenericPaginationComponent, GenericRatingComponent, GenericSidebarComponent, GenericSkeletonComponent, GenericStepsComponent, GenericTableComponent, GenericTabsComponent, GenericTimelineComponent, GlobalApiConfigService, HeaderComponent, HeaderConfigurationService, HeaderElementType, HeaderService, HttpLoaderFactory, ImageModalComponent, ImageModalService, ImagePreviewComponent, LayoutAuth, LayoutBreakpoint, LayoutComponent, LayoutService, LayoutStateService, LayoutType, LoaderComponent, LoaderService, MainNavComponent, MainNavService, ManualRefreshService, ModalMode, ModelApiService, MultiEntryFieldComponent, MultiEntryOutputFormat, NumberFieldComponent, NumberFieldConfigType, NumberFieldType, NumberRange, PERMISSION_ACTIONS_PROVIDER, PERMISSION_PROVIDER, PERMISSION_RESOURCES_PROVIDER, PaginationService, PasswordFieldComponent, PermissionEnumsService, PermissionModel, PermissionService, PermissionWrapperService, PermissionsActions, PermissionsInterceptor, PermissionsResources, ProgressBarComponent, ProgressBarSize, RatingService, RatingSize, RatingType, ResetPasswordModel, RoleModel, SelectFieldComponent, ServerSelectFieldComponent, ServerSelectService, SidebarCustomModalComponent, SidebarCustomModalService, SidebarHeight, SidebarMobileModalService, SidebarMobileType, SidebarPosition, SidebarService, SidebarState, SidebarTemplateRegistryService, SidebarVisibility, SidebarWidth, SkeletonAnimation, SkeletonService, SkeletonSize, SkeletonType, SmartFieldComponent, SortDirection, SortMode, StepSize, StepStatus, StepType, StepsService, SwitchFieldComponent, TableAction, TableActionService, TableDataService, TableSortService, TextAreaFieldComponent, TextFieldComponent, TimeFieldComponent, TimeInterval, TimelineService, TimelineStatus, TimelineType, TranslationMergeService, UruguayanDocumentValidationHelper, UsersModel, VERSION, ageValidator, calculateAge, equalToValidator, generateRandomUruguayanDocument, getLatestBirthDateForAge, getRandomCi, getUruguayanDocumentValidationDigit, getValidationDigit, isSameDate, provideCoreUiTranslateLoader, providePermissionActions, providePermissionEnums, providePermissionResources, providePermissionService, providePermissionServiceFactory, provideTranslateLoader, random, transform, transformUruguayanDocument, uruguayanDocumentValidator, validate, validateAge, validateCi, validateUruguayanDocument, validationDigit };
17400
+ export { ALL_COUNTRY_CODES, ActiveFiltersComponent, AgeValidationHelper, AlertComponent, AlertContainerComponent, AlertService, AlertType, ApiConfigurationProvider, BaseFieldComponent, ButtonContext, ButtonSize, ButtonType, COMMON_COUNTRIES, CacheBustingInterceptor, CardComponent, CarouselComponent, ChatMessagePosition, ChatMessageType, CheckboxFieldComponent, ConfigurationModel, ConfirmationDialogComponent, ConfirmationDialogService, CoreHostDirective, CoreManualRefreshComponent, CoreUiHttpLoaderFactory, CoreUiTranslateLoader, CoreUiTranslateService, CountryCode, DEFAULT_COUNTRIES, DataListComponent, DataListItemComponent, DateFieldComponent, DateUtility, DatetimeFieldComponent, DialogActions, DocumentAction, DocumentDisplayMode, DropdownComponent, DropdownDirection, DropdownService, DynamicFieldDirective, DynamicFieldsHelper, FieldErrorsComponent, FieldType, FileFieldComponent, FileModel, FilePreviewActionType, FileTemplateModel, FileTemplateType, FileType, FileTypeModel, FileUploadService, FilterModalComponent, FilterService, FilterType, GalleryAnimationType, GalleryLayoutType, GalleryModalComponent, GalleryModalGlobalService, GenericButtonComponent, GenericChatComponent, GenericChatService, GenericDocumentationComponent, GenericGalleryComponent, GenericModalComponent, GenericPaginationComponent, GenericRatingComponent, GenericSidebarComponent, GenericSkeletonComponent, GenericStepsComponent, GenericTableComponent, GenericTabsComponent, GenericTimelineComponent, GlobalApiConfigService, HeaderComponent, HeaderConfigurationService, HeaderElementType, HeaderService, HttpLoaderFactory, ImageModalComponent, ImageModalService, ImagePreviewComponent, LATIN_AMERICA_COUNTRIES, LayoutAuth, LayoutBreakpoint, LayoutComponent, LayoutService, LayoutStateService, LayoutType, LoaderComponent, LoaderService, MainNavComponent, MainNavService, ManualRefreshService, ModalMode, ModelApiService, MultiEntryFieldComponent, MultiEntryOutputFormat, NumberFieldComponent, NumberFieldConfigType, NumberFieldType, NumberRange, PERMISSION_ACTIONS_PROVIDER, PERMISSION_PROVIDER, PERMISSION_RESOURCES_PROVIDER, PaginationService, PasswordFieldComponent, PermissionEnumsService, PermissionModel, PermissionService, PermissionWrapperService, PermissionsActions, PermissionsInterceptor, PermissionsResources, PhoneFieldComponent, ProgressBarComponent, ProgressBarSize, RatingService, RatingSize, RatingType, ResetPasswordModel, RoleModel, SOUTH_AMERICA_COUNTRIES, SelectFieldComponent, ServerSelectFieldComponent, ServerSelectService, SidebarCustomModalComponent, SidebarCustomModalService, SidebarHeight, SidebarMobileModalService, SidebarMobileType, SidebarPosition, SidebarService, SidebarState, SidebarTemplateRegistryService, SidebarVisibility, SidebarWidth, SkeletonAnimation, SkeletonService, SkeletonSize, SkeletonType, SmartFieldComponent, SortDirection, SortMode, StepSize, StepStatus, StepType, StepsService, SwitchFieldComponent, TableAction, TableActionService, TableDataService, TableSortService, TextAreaFieldComponent, TextFieldComponent, TimeFieldComponent, TimeInterval, TimelineService, TimelineStatus, TimelineType, TranslationMergeService, UruguayanDocumentValidationHelper, UsersModel, VERSION, ageValidator, calculateAge, equalToValidator, generateRandomUruguayanDocument, getCountryCodeStrings, getLatestBirthDateForAge, getRandomCi, getUruguayanDocumentValidationDigit, getValidationDigit, isSameDate, isValidCountryCode, provideCoreUiTranslateLoader, providePermissionActions, providePermissionEnums, providePermissionResources, providePermissionService, providePermissionServiceFactory, provideTranslateLoader, random, transform, transformUruguayanDocument, uruguayanDocumentValidator, validate, validateAge, validateCi, validateUruguayanDocument, validationDigit };
16484
17401
  //# sourceMappingURL=solcre-org-core-ui.mjs.map